From win-pv-devel-bounces@lists.xenproject.org Mon Jan 05 09:09:06 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 05 Jan 2015 09:09:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y83er-0007di-Tc; Mon, 05 Jan 2015 09:09:05 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1Y83ep-0007dS-D2
	for win-pv-devel@lists.xenproject.org; Mon, 05 Jan 2015 09:09:04 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	D2/05-25276-EA45AA45; Mon, 05 Jan 2015 09:09:02 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-2.tower-21.messagelabs.com!1420448938!11220533!1
X-Originating-IP: [74.125.82.170]
X-SpamReason: No, hits=2.2 required=7.0 tests=BIZ_TLD,BODY_RANDOM_LONG,
	HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18691 invoked from network); 5 Jan 2015 09:08:58 -0000
Received: from mail-we0-f170.google.com (HELO mail-we0-f170.google.com)
	(74.125.82.170)
	by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Jan 2015 09:08:58 -0000
Received: by mail-we0-f170.google.com with SMTP id w61so7512139wes.29
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 05 Jan 2015 01:08:57 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:cc:subject:references:in-reply-to:content-type;
	bh=1LGHFPi0IMHVvmKNB3nB6HCaOSjcMDpSaYWmEgaRxkE=;
	b=Mdhvrjwc2iG0d/oK53cJlvZoxSusOGrny1sOQhNjNwUQSjDk3pc36Y4eiG9WjHVnAW
	sXwtxfVi1Ho+l88jKhU9/bdtaOCpSFM/Yt5CXFsQrWPkmuR/MGDW2Lq8IkbRgp0XCa+6
	FWbG8NDcbeHWb/amr1T2TbP8XUC2A/z2UTuV7jAuSkVgXjoIkC+9gdyBjDz4bSi3iRxM
	5w7FF7r5acbE5DQ+SUz4l4CWqC/EwGfZ6RIXjdYKUNsxn69aC3ANZkqjy644CHhQUcm4
	seT+xo76dT/dGSKVI+iafYQCwc9eBsdp96Vp5KRBDRWSSHoJbvk6mjGN1Awc6Pc1xBbv
	Glhg==
X-Gm-Message-State: ALoCoQnuA6qArgGEDd6Mu3WcafQGa1h6HyG1w9aSpEJ7X00zQGn/vaQAn2wVnEl/SLGW/shf5jWc
X-Received: by 10.180.12.75 with SMTP id w11mr23981178wib.9.1420448937719;
	Mon, 05 Jan 2015 01:08:57 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id
	ej10sm11697840wib.1.2015.01.05.01.08.48
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 05 Jan 2015 01:08:56 -0800 (PST)
Message-ID: <54AA549F.8050507@m2r.biz>
Date: Mon, 05 Jan 2015 10:08:47 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Goonie Windy <monsieur.goonie@gmail.com>
References: <CAE5x5YU4qBTxp+36FioAROdTOPgrU79MN3s+BkmPTWq+qsVt6w@mail.gmail.com>	<54A53352.5090603@m2r.biz>	<CAE5x5YVwj5zpUiS92V_8BuinUrtZZhpd8BMbH=Mo_gCmD29S2Q@mail.gmail.com>	<54A5505C.1070602@m2r.biz>	<CAE5x5YXdw2n-xxwpmbS_cgeTb+GSiBQ2QbUmxF7j-5gX8a24Jg@mail.gmail.com>	<CABMPFzg4jYoMoUM2k5wys3y=iyW712RiLKSixDofXgsKe+PwJw@mail.gmail.com>	<CAE5x5YXhCUvsfKdUN1nNQ_4hPXjBMoeSTMGYu5ysw4wki-n0PQ@mail.gmail.com>	<CAE5x5YVhL+AmvS53KgNkz8MgDYbH5At_DDt4+tCPzqnht2V-KQ@mail.gmail.com>	<54A97FA5.90208@m2r.biz>	<CAE5x5YXmTZAO0c4n1qXxa2+1T2xT3QPHf3Be2CrK2dxtjmpihA@mail.gmail.com>	<CAE5x5YUjXY9bqY6mOSU2b0RgLaLaM4K0MpS-KOWCB2E+_QLnXA@mail.gmail.com>	<CAE5x5YXuAPCKM5aP=63ZiH-ffmfki1ioMNsYEV36+SBLz0_t_A@mail.gmail.com>	<CAE5x5YUXObr6g2juExrb4zzLDg+S=v+Rw1ZDqCy7G6TfhpZTAQ@mail.gmail.com>	<CAE5x5YV_VDjEK6rxFcZX09WGcLT-i4OrtU8gJa6ZfYTZdjvJ0w@mail.gmail.com>	<CAE5x5YU9RJo0SFWOAV-hrxmA0FfKz+fXSHqu7mC04e2j6hbvWw@mail.gmail.com>
	<CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
In-Reply-To: <CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"Paul.Durrant@citrix.com >> Paul Durrant" <paul.durrant@citrix.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] [Xen-devel] [DEBUGGING Xen/Qxl/Debian Sid] qemu
 crash on xenbus pv driver install
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6551787272704672436=="
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--===============6551787272704672436==
Content-Type: multipart/alternative;
 boundary="------------040102060609020209000305"

This is a multi-part message in MIME format.
--------------040102060609020209000305
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Length: 128124
Content-Transfer-Encoding: quoted-printable

Il 05/01/2015 00:24, Goonie Windy ha scritto:
> AND DMESG
> [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8 ip 
> 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in libc-2.19.so 
> <http://libc-2.19.so>[7f92a64d4000+19f000]
> [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state
> [ 3096.118716] device vif5.0-emu left promiscuous mode
> [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state
> [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state
> [ 3584.894741] device vif5.0 left promiscuous mode
> [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state
> [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
> [ 3681.878054] device vif6.0 entered promiscuous mode
> [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
> [ 3682.193528] device vif6.0-emu entered promiscuous mode
> [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding state
> [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding state
> [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state
> [ 3780.535444] device vif6.0-emu left promiscuous mode
> [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state
> [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state
> [ 3899.555577] device vif6.0 left promiscuous mode
> [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state
>
>
> 2015-01-05 0:21 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com 
> <mailto:monsieur.goonie@gmail.com>>:
>
>       GNU nano 2.2.6                                         
>     Fichier : qemu-dm-win7.log
>
>     (/usr/local/sbin/xl:9535): Spice-Warning **:
>     reds.c:1863:reds_handle_ticket: Invalid password
>     main_channel_link: add main channel client
>     main_channel_handle_parsed: net test: latency 0.318000 ms, bitrate
>     26597402597 bps (25365.259740 Mbps)
>     inputs_connect: inputs channel client create
>     red_dispatcher_set_cursor_peer:
>     main_channel_handle_parsed: agent start
>     main_channel_handle_parsed: agent start
>     *** Error in `/usr/lib/xen/bin/qemu-system-i386': double free or
>     corruption (out): 0x00007f0e38dd26f0 ***
>
>
>     2015-01-05 0:00 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com
>     <mailto:monsieur.goonie@gmail.com>>:
>
>         Should add this too:
>         host                   : E766
>         release                : 3.16.0-4-amd64
>         version                : #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08)
>         machine                : x86_64
>         nr_cpus                : 4
>         max_cpu_id             : 7
>         nr_nodes               : 1
>         cores_per_socket       : 2
>         threads_per_core       : 2
>         cpu_mhz                : 2594
>         hw_caps                :
>         bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:00000281
>         virt_caps              : hvm hvm_directio
>         total_memory           : 8055
>         free_memory            : 2309
>         sharing_freed_memory   : 0
>         sharing_used_memory    : 0
>         outstanding_claims     : 0
>         free_cpus              : 0
>         xen_major              : 4
>         xen_minor              : 5
>         xen_extra              : .0-rc
>         xen_version            : 4.5.0-rc
>         xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p
>         hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
>         xen_scheduler          : credit
>         xen_pagesize           : 4096
>         platform_params        : virt_start=3D0xffff800000000000
>         xen_changeset          : Thu Dec 18 10:02:16 2014 +0000
>         git:36174af-dirty
>         xen_commandline        : placeholder
>         cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>         cc_compile_by          : root
>         cc_compile_domain      :
>         cc_compile_date        : Wed Dec 31 01:20:47 CET 2014
>         xend_config_format     : 4
>
>
>
>         2015-01-04 23:39 GMT+01:00 Goonie Windy
>         <monsieur.goonie@gmail.com <mailto:monsieur.goonie@gmail.com>>:
>
>             My qemu log after spice failure:
>             (/usr/local/sbin/xl:4254): Spice-Warning **:
>             reds.c:1863:reds_handle_ticket: Invalid password
>             main_channel_link: add main channel client
>             main_channel_handle_parsed: net test: latency 0.257000 ms,
>             bitrate 81920000000 bps (78125.000000 Mbps)
>             red_dispatcher_set_cursor_peer:
>             inputs_connect: inputs channel client create
>             main_channel_handle_parsed: agent start
>             main_channel_handle_parsed: agent start
>             qemu-system-i386: malloc.c:2372: sysmalloc: Assertion
>             `(old_top =3D=3D (((mbinptr) (((char *) &((av)->bins[((1) - 1)
>             * 2])) - __builtin_offsetof (struct malloc_chunk, fd))))
>             && old_size =3D=3D 0) || ((unsigned long) (old_size) >=3D
>             (unsigned long)((((__builtin_offsetof (struct
>             malloc_chunk, fd_nextsize))+((2 *(sizeof(size_t))) - 1)) &
>             ~((2 *(sizeof(size_t))) - 1))) && ((old_top)->size & 0x1)
>             && ((unsigned long) old_end & pagemask) =3D=3D 0)' failed.
>
>
>             2015-01-04 23:10 GMT+01:00 Goonie Windy
>             <monsieur.goonie@gmail.com
>             <mailto:monsieur.goonie@gmail.com>>:
>
>                 This one is bug from trying to install winpv  bus driver
>

If you followed all my advices your configurations should be ok and you 
found a new bug or inexpected case.
I do not have the knowledge to solve it.
Added to cc also win-pv-devel
Can someone take a look to this problem please=3F

>
>
>                 Program received signal SIGSEGV, Segmentation fault.
>                 _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>                 bytes=3Dbytes@entry=3D73729)
>                     at malloc.c:3775
>                 3775    malloc.c: Aucun fichier ou dossier de ce type.
>                 (gdb) bt full
>                 #0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>                     bytes=3Dbytes@entry=3D73729) at malloc.c:3775
>                         p =3D 0x555557303880
>                         iters =3D <optimized out>
>                         nb =3D 73744
>                         idx =3D <optimized out>
>                         bin =3D <optimized out>
>                         victim =3D 0x555557303870
>                         size =3D <optimized out>
>                         victim_index =3D <optimized out>
>                         remainder =3D 0x555557315880
>                         remainder_size =3D <optimized out>
>                         block =3D 4
>                         bit =3D <optimized out>
>                         map =3D 66981887
>                         fwd =3D <optimized out>
>                         bck =3D <optimized out>
>                         errstr =3D 0x0
>                         __func__ =3D "_int_malloc"
>                 #1  0x00007ffff3eb74a1 in _int_realloc (
>                     av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>                 oldp=3Doldp@entry=3D0x55555689d270,
>                     oldsize=3Doldsize@entry=3D36880, nb=3Dnb@entry=3D73744) at
>                 malloc.c:4286
>                         newp =3D <optimized out>
>                 ---Type <return> to continue, or q <return> to quit---
>                         newsize =3D <optimized out>
>                         newmem =3D <optimized out>
>                         next =3D 0x5555568a6280
>                         remainder =3D <optimized out>
>                         remainder_size =3D <optimized out>
>                         bck =3D <optimized out>
>                         fwd =3D <optimized out>
>                         copysize =3D <optimized out>
>                         ncopies =3D <optimized out>
>                         s =3D <optimized out>
>                         d =3D <optimized out>
>                         errstr =3D 0x0
>                         __func__ =3D "_int_realloc"
>                         nextsize =3D <optimized out>
>                 #2  0x00007ffff3eb85f9 in __GI___libc_realloc
>                 (oldmem=3D0x55555689d280,
>                     bytes=3D73728) at malloc.c:3029
>                         ar_ptr =3D 0x7ffff41df620 <main_arena>
>                         nb =3D 73744
>                         newp =3D <optimized out>
>                         hook =3D <optimized out>
>                         oldp =3D 0x55555689d270
>                         oldsize =3D 36880
>                         __func__ =3D "__libc_realloc"
>                 ---Type <return> to continue, or q <return> to quit---
>                 #3  0x0000555555819563 in realloc_and_trace
>                 (mem=3D0x55555689d280, n_bytes=3D73728)
>                     at vl.c:2857
>                         ptr =3D 0x7fffffffcf30
>                 #4  0x00007ffff708388e in g_realloc (mem=3D<optimized
>                 out>, n_bytes=3D73728)
>                     at /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162
>                         newmem =3D <optimized out>
>                 #5  0x000055555582d3e2 in phys_map_node_reserve
>                 (map=3D0x5555563ccf98, nodes=3D18)
>                     at /home/goon/xen/tools/qemu-xen-dir/exec.c:152
>                 No locals.
>                 #6  0x000055555582d701 in phys_page_set
>                 (d=3D0x5555563ccf90, index=3D160, nb=3D16,
>                     leaf=3D5) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:211
>                 No locals.
>                 #7  0x000055555582f1ae in register_multipage
>                 (d=3D0x5555563ccf90,
>                     section=3D0x7fffffffcfe0) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:937
>                         start_addr =3D 655360
>                         section_index =3D 5
>                         num_pages =3D 16
>                         __PRETTY_FUNCTION__ =3D "register_multipage"
>                 #8  0x000055555582f4b4 in mem_add
>                 (listener=3D0x55555633b898,
>                     section=3D0x7fffffffd1a0) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:968
>                         as =3D 0x55555633b860
>                         d =3D 0x5555563ccf90
>                         now =3D {mr =3D 0x55555636dd30, address_space =3D
>                 0x55555633b860,
>                 ---Type <return> to continue, or q <return> to quit---
>                           offset_within_region =3D 0, size =3D {lo =3D
>                 65536, hi =3D 0},
>                 offset_within_address_space =3D 655360, readonly =3D false}
>                         remain =3D {mr =3D 0x55555636dd30, address_space =3D
>                 0x55555633b860,
>                           offset_within_region =3D 0, size =3D {lo =3D
>                 65536, hi =3D 0},
>                 offset_within_address_space =3D 655360, readonly =3D false}
>                         page_size =3D {lo =3D 4096, hi =3D 0}
>                 #9  0x0000555555892a01 in
>                 address_space_update_topology_pass (
>                     as=3D0x55555633b860, old_view=3D0x555556495910,
>                 new_view=3D0x55555687f2c0,
>                     adding=3Dtrue) at
>                 /home/goon/xen/tools/qemu-xen-dir/memory.c:736
>                         _listener =3D 0x55555633b898
>                         iold =3D 1
>                         inew =3D 1
>                         frold =3D 0x5555565fd828
>                         frnew =3D 0x5555568b23e8
>                 #10 0x0000555555892fd7 in
>                 address_space_update_topology (as=3D0x55555633b860)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:765
>                         old_view =3D 0x555556495910
>                         new_view =3D 0x55555687f2c0
>                 #11 0x00005555558930fc in
>                 memory_region_transaction_commit ()
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:800
>                         as =3D 0x55555633b860
>                         __PRETTY_FUNCTION__ =3D
>                 "memory_region_transaction_commit"
>                 #12 0x00005555558951ed in memory_region_del_subregion
>                 (mr=3D0x5555562855d0,
>                 ---Type <return> to continue, or q <return> to quit---
>                     subregion=3D0x555556349250)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:1487
>                         __PRETTY_FUNCTION__ =3D
>                 "memory_region_del_subregion"
>                 #13 0x000055555570fdf3 in pci_update_mappings
>                 (d=3D0x5555563489f0)
>                     at hw/pci/pci.c:1113
>                         r =3D 0x555556348af8
>                         i =3D 0
>                         new_addr =3D 18446744073709551615
>                 #14 0x0000555555710110 in pci_default_write_config
>                 (d=3D0x5555563489f0, addr=3D4,
>                     val=3D0, l=3D2) at hw/pci/pci.c:1168
>                         i =3D 2
>                         was_irq_disabled =3D 0
>                         __PRETTY_FUNCTION__ =3D "pci_default_write_config"
>                 #15 0x0000555555714125 in pci_host_config_write_common (
>                     pci_dev=3D0x5555563489f0, addr=3D4, limit=3D256,
>                 val=3D1024, len=3D2)
>                     at hw/pci/pci_host.c:57
>                         __PRETTY_FUNCTION__ =3D
>                 "pci_host_config_write_common"
>                 #16 0x0000555555714229 in pci_data_write
>                 (s=3D0x5555562a8cf0, addr=3D2147487748 <tel:2147487748>,
>                     val=3D1024, len=3D2) at hw/pci/pci_host.c:84
>                         pci_dev =3D 0x5555563489f0
>                         config_addr =3D 4
>                 #17 0x0000555555714351 in pci_host_data_write
>                 (opaque=3D0x555556311470, addr=3D0,
>                     val=3D1024, len=3D2) at hw/pci/pci_host.c:137
>                 ---Type <return> to continue, or q <return> to quit---
>                         s =3D 0x555556311470
>                 #18 0x0000555555891531 in memory_region_write_accessor
>                 (mr=3D0x555556313860,
>                     addr=3D0, value=3D0x7fffffffd5e8, size=3D2, shift=3D0,
>                 mask=3D65535)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:441
>                         tmp =3D 1024
>                 #19 0x0000555555891636 in access_with_adjusted_size
>                 (addr=3D0,
>                     value=3D0x7fffffffd5e8, size=3D2, access_size_min=3D1,
>                 access_size_max=3D4,
>                     access=3D0x5555558914b0
>                 <memory_region_write_accessor>, mr=3D0x555556313860)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:478
>                         access_mask =3D 65535
>                         access_size =3D 2
>                         i =3D 0
>                 #20 0x0000555555893772 in memory_region_dispatch_write
>                 (mr=3D0x555556313860,
>                     addr=3D0, data=3D1024, size=3D2)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:985
>                 No locals.
>                 #21 0x0000555555896068 in io_mem_write
>                 (mr=3D0x555556313860, addr=3D0, val=3D1024,
>                     size=3D2) at
>                 /home/goon/xen/tools/qemu-xen-dir/memory.c:1744
>                 No locals.
>                 #22 0x000055555583183c in address_space_rw (
>                     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>                 buf=3D0x7fffffffd6f0 "",
>                     len=3D2, is_write=3Dtrue) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:2029
>                         l =3D 2
>                 ---Type <return> to continue, or q <return> to quit---
>                         ptr =3D 0x7fffffffd6f4 "\377\377\377\377"
>                         val =3D 1024
>                         addr1 =3D 0
>                         mr =3D 0x555556313860
>                         error =3D false
>                 #23 0x0000555555831b12 in address_space_write (
>                     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>                 buf=3D0x7fffffffd6f0 "",
>                     len=3D2) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:2091
>                 No locals.
>                 #24 0x000055555588f486 in cpu_outw (addr=3D3324, val=3D1024)
>                     at /home/goon/xen/tools/qemu-xen-dir/ioport.c:77
>                         buf =3D "\000\004"
>                 #25 0x000055555590f460 in do_outp (addr=3D3324, size=3D2,
>                 val=3D1024)
>                     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668
>                 No locals.
>                 #26 0x000055555590f66f in cpu_ioreq_pio
>                 (req=3D0x7ffff7ff3000)
>                     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729
>                         i =3D 0
>                 #27 0x000055555590f910 in handle_ioreq
>                 (req=3D0x7ffff7ff3000)
>                     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781
>                 No locals.
>                 #28 0x000055555590fc0f in cpu_handle_ioreq
>                 (opaque=3D0x5555562abf10)
>                     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856
>                 ---Type <return> to continue, or q <return> to quit---
>                         state =3D 0x5555562abf10
>                         req =3D 0x7ffff7ff3000
>                 #29 0x000055555577c385 in qemu_iohandler_poll
>                 (pollfds=3D0x555556277600, ret=3D1)
>                     at iohandler.c:143
>                         revents =3D 1
>                         pioh =3D 0x55555627ca90
>                         ioh =3D 0x555556366320
>                 #30 0x000055555577d14b in main_loop_wait
>                 (nonblocking=3D0) at main-loop.c:485
>                         ret =3D 1
>                         timeout =3D 4294967295
>                         timeout_ns =3D 16717983
>                 #31 0x0000555555815fbd in main_loop () at vl.c:2056
>                         nonblocking =3D false
>                         last_io =3D 1
>                 #32 0x000055555581d66b in main (argc=3D64,
>                 argv=3D0x7fffffffdc78,
>                     envp=3D0x7fffffffde80) at vl.c:4535
>                         i =3D 64
>                         snapshot =3D 0
>                         linux_boot =3D 0
>                         icount_option =3D 0x0
>                         initrd_filename =3D 0x0
>                         kernel_filename =3D 0x0
>                         kernel_cmdline =3D 0x55555598c664 ""
>                 ---Type <return> to continue, or q <return> to quit---
>                         boot_order =3D 0x555556275340 "dc"
>                         ds =3D 0x5555563564e0
>                         cyls =3D 0
>                         heads =3D 0
>                         secs =3D 0
>                         translation =3D 0
>                         hda_opts =3D 0x0
>                         opts =3D 0x555556275290
>                         machine_opts =3D 0x555556276ef0
>                         olist =3D 0x555555d72700 <qemu_machine_opts>
>                         optind =3D 64
>                         optarg =3D 0x7fffffffe61a
>                 "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"
>                         loadvm =3D 0x0
>                         machine_class =3D 0x55555626e030
>                         machine =3D 0x555555d78540 <xenfv_machine>
>                         cpu_model =3D 0x0
>                         vga_model =3D 0x0
>                         qtest_chrdev =3D 0x0
>                         qtest_log =3D 0x0
>                         pid_file =3D 0x0
>                         incoming =3D 0x0
>                         show_vnc_port =3D 0
>                 ---Type <return> to continue, or q <return> to quit---
>                         defconfig =3D true
>                         userconfig =3D true
>                         log_mask =3D 0x0
>                         log_file =3D 0x0
>                         mem_trace =3D {malloc =3D 0x55555581950b
>                 <malloc_and_trace>,
>                           realloc =3D 0x555555819540 <realloc_and_trace>,
>                           free =3D 0x555555819584 <free_and_trace>,
>                 calloc =3D 0x0,
>                           try_malloc =3D 0x0, try_realloc =3D 0x0}
>                         trace_events =3D 0x0
>                         trace_file =3D 0x0
>                         __func__ =3D "main"
>                         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>                           ram_size =3D 2013265920 <tel:2013265920>,
>                 boot_order =3D 0x555556275340 "dc",
>                           kernel_filename =3D 0x0, kernel_cmdline =3D
>                 0x55555598c664 "",
>                           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>
>
>                 2015-01-04 22:29 GMT+01:00 Goonie Windy
>                 <monsieur.goonie@gmail.com
>                 <mailto:monsieur.goonie@gmail.com>>:
>
>                     Copyright (C) 2014 Free Software Foundation, Inc.
>                     License GPLv3+: GNU GPL version 3 or later
>                     <http://gnu.org/licenses/gpl.html>
>                     This is free software: you are free to change and
>                     redistribute it.
>                     There is NO WARRANTY, to the extent permitted by
>                     law.  Type "show copying"
>                     and "show warranty" for details.
>                     This GDB was configured as "x86_64-linux-gnu".
>                     Type "show configuration" for configuration details.
>                     For bug reporting instructions, please see:
>                     <http://www.gnu.org/software/gdb/bugs/>.
>                     Find the GDB manual and other documentation
>                     resources online at:
>                     <http://www.gnu.org/software/gdb/documentation/>.
>                     For help, type "help".
>                     Type "apropos word" to search for commands related
>                     to "word"...
>                     Reading symbols from
>                     /usr/lib/xen/bin/qemu-system-i386...done.
>                     (gdb) target remote localhost:1234
>                     Remote debugging using localhost:1234
>                     Reading symbols from
>                     /lib64/ld-linux-x86-64.so.2...Reading symbols from
>                     /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>                     done.
>                     Loaded symbols for /lib64/ld-linux-x86-64.so.2
>                     0x00007ffff7ddd190 in _start () from
>                     /lib64/ld-linux-x86-64.so.2
>                     (gdb) c
>                     Continuing.
>
>                     Program received signal SIGSEGV, Segmentation fault.
>                     0x00007ffff50e5801 in
>                     spice_char_device_write_to_device (
>                     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                     443    char_device.c: Aucun fichier ou dossier de
>                     ce type.
>                     (gdb) bt full
>                     #0  0x00007ffff50e5801 in
>                     spice_char_device_write_to_device (
>                     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                             sif =3D <optimized out>
>                             total =3D <optimized out>
>                             n =3D <optimized out>
>                     #1  0x00007ffff50e6497 in
>                     spice_char_device_write_to_device (
>                         dev=3D0x55555647c750) at char_device.c:436
>                     No locals.
>                     #2 spice_char_device_start (dev=3D0x55555647c750) at
>                     char_device.c:798
>                             __FUNCTION__ =3D "spice_char_device_start"
>                     #3  0x00007ffff51299c6 in spice_server_vm_start
>                     (s=3D<optimized out>)
>                         at reds.c:3795
>                             st_item =3D 0x5555562d8350
>                             item =3D 0x5555562d8350
>                             __FUNCTION__ =3D "spice_server_vm_start"
>                     #4  0x00005555557f40c9 in qemu_spice_display_start
>                     () at ui/spice-core.c:909
>                     No locals.
>                     #5  0x00005555556c4365 in qxl_hard_reset
>                     (d=3D0x55555637d7e0, loadvm=3D0)
>                         at hw/display/qxl.c:1172
>                             startstop =3D true
>                     #6  0x00005555556c43a3 in qxl_reset_handler
>                     (dev=3D0x55555637d7e0)
>                         at hw/display/qxl.c:1180
>                             d =3D 0x55555637d7e0
>                     ---Type <return> to continue, or q <return> to quit---
>                     #7  0x0000555555699658 in device_reset
>                     (dev=3D0x55555637d7e0)
>                         at hw/core/qdev.c:934
>                             klass =3D 0x555556270410
>                             __func__ =3D "device_reset"
>                     #8  0x0000555555697a56 in qdev_reset_one
>                     (dev=3D0x55555637d7e0, opaque=3D0x0)
>                         at hw/core/qdev.c:240
>                     No locals.
>                     #9  0x0000555555697f64 in qdev_walk_children
>                     (dev=3D0x55555637d7e0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:411
>                             bus =3D 0x0
>                             err =3D 0
>                     #10 0x0000555555697e57 in qbus_walk_children
>                     (bus=3D0x5555562a8ee0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:369
>                             kid =3D 0x55555633d4f0
>                             err =3D 0
>                     #11 0x0000555555697f28 in qdev_walk_children
>                     (dev=3D0x5555563131b0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:403
>                     ---Type <return> to continue, or q <return> to quit---
>                             bus =3D 0x5555562a8ee0
>                             err =3D 0
>                     #12 0x0000555555697e57 in qbus_walk_children
>                     (bus=3D0x5555562a60b0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:369
>                             kid =3D 0x5555562a6a80
>                             err =3D 0
>                     #13 0x0000555555697b32 in qbus_reset_all
>                     (bus=3D0x5555562a60b0)
>                         at hw/core/qdev.c:261
>                     No locals.
>                     #14 0x0000555555697b54 in qbus_reset_all_fn
>                     (opaque=3D0x5555562a60b0)
>                         at hw/core/qdev.c:267
>                             bus =3D 0x5555562a60b0
>                     #15 0x0000555555815b1f in qemu_devices_reset () at
>                     vl.c:1872
>                             re =3D 0x555556375890
>                             nre =3D 0x0
>                     #16 0x0000555555815bbf in qemu_system_reset
>                     (report=3Dtrue) at vl.c:1885
>                             mc =3D 0x55555626e030
>                             __func__ =3D "qemu_system_reset"
>                     #17 0x000055555590fcb9 in cpu_handle_ioreq
>                     (opaque=3D0x5555562b0950)
>                         at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>                             state =3D 0x5555562b0950
>                     ---Type <return> to continue, or q <return> to quit---
>                             req =3D 0x7ffff7ff3000
>                     #18 0x000055555577c385 in qemu_iohandler_poll
>                     (pollfds=3D0x555556277600, ret=3D1)
>                         at iohandler.c:143
>                             revents =3D 1
>                             pioh =3D 0x5555563218c0
>                             ioh =3D 0x555556362a80
>                     #19 0x000055555577d14b in main_loop_wait
>                     (nonblocking=3D0) at main-loop.c:485
>                             ret =3D 1
>                             timeout =3D 4294967295
>                             timeout_ns =3D 17355567
>                     #20 0x0000555555815fbd in main_loop () at vl.c:2056
>                             nonblocking =3D false
>                             last_io =3D 1
>                     #21 0x000055555581d66b in main (argc=3D66,
>                     argv=3D0x7fffffffdc58,
>                         envp=3D0x7fffffffde70) at vl.c:4535
>                             i =3D 64
>                             snapshot =3D 0
>                             linux_boot =3D 0
>                             icount_option =3D 0x0
>                             initrd_filename =3D 0x0
>                             kernel_filename =3D 0x0
>                             kernel_cmdline =3D 0x55555598c664 ""
>                             boot_order =3D 0x555556275380 "dc"
>                     ---Type <return> to continue, or q <return> to quit---
>                             ds =3D 0x5555563324a0
>                             cyls =3D 0
>                             heads =3D 0
>                             secs =3D 0
>                             translation =3D 0
>                             hda_opts =3D 0x0
>                             opts =3D 0x5555562752d0
>                             machine_opts =3D 0x555556276f30
>                             olist =3D 0x555555d72700 <qemu_machine_opts>
>                             optind =3D 66
>                             optarg =3D 0x7fffffffe61a
>                     "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"
>                             loadvm =3D 0x0
>                             machine_class =3D 0x55555626e030
>                             machine =3D 0x555555d78540 <xenfv_machine>
>                             cpu_model =3D 0x0
>                             vga_model =3D 0x0
>                             qtest_chrdev =3D 0x0
>                             qtest_log =3D 0x0
>                             pid_file =3D 0x0
>                             incoming =3D 0x0
>                             show_vnc_port =3D 0
>                             defconfig =3D true
>                     ---Type <return> to continue, or q <return> to quit---
>                             userconfig =3D true
>                             log_mask =3D 0x0
>                             log_file =3D 0x0
>                             mem_trace =3D {malloc =3D 0x55555581950b
>                     <malloc_and_trace>,
>                               realloc =3D 0x555555819540
>                     <realloc_and_trace>,
>                               free =3D 0x555555819584 <free_and_trace>,
>                     calloc =3D 0x0,
>                               try_malloc =3D 0x0, try_realloc =3D 0x0}
>                             trace_events =3D 0x0
>                             trace_file =3D 0x0
>                             __func__ =3D "main"
>                             args =3D {machine =3D 0x555555d78540
>                     <xenfv_machine>,
>                               ram_size =3D 2013265920 <tel:2013265920>,
>                     boot_order =3D 0x555556275380 "dc",
>                               kernel_filename =3D 0x0, kernel_cmdline =3D
>                     0x55555598c664 "",
>                               initrd_filename =3D 0x0, cpu_model =3D 0x0}
>                     (gdb) bt full ecc
>                     No symbol "ecc" in current context.
>
>                     (gdb) bt full
>                     #0  0x00007ffff50e5801 in
>                     spice_char_device_write_to_device (
>                     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                             sif =3D <optimized out>
>                             total =3D <optimized out>
>                             n =3D <optimized out>
>                     #1  0x00007ffff50e6497 in
>                     spice_char_device_write_to_device (
>                         dev=3D0x55555647c750) at char_device.c:436
>                     No locals.
>                     #2 spice_char_device_start (dev=3D0x55555647c750) at
>                     char_device.c:798
>                             __FUNCTION__ =3D "spice_char_device_start"
>                     #3  0x00007ffff51299c6 in spice_server_vm_start
>                     (s=3D<optimized out>)
>                         at reds.c:3795
>                             st_item =3D 0x5555562d8350
>                             item =3D 0x5555562d8350
>                             __FUNCTION__ =3D "spice_server_vm_start"
>                     #4  0x00005555557f40c9 in qemu_spice_display_start
>                     () at ui/spice-core.c:909
>                     No locals.
>                     #5  0x00005555556c4365 in qxl_hard_reset
>                     (d=3D0x55555637d7e0, loadvm=3D0)
>                         at hw/display/qxl.c:1172
>                             startstop =3D true
>                     #6  0x00005555556c43a3 in qxl_reset_handler
>                     (dev=3D0x55555637d7e0)
>                         at hw/display/qxl.c:1180
>                             d =3D 0x55555637d7e0
>                     ---Type <return> to continue, or q <return> to quit---
>                     #7  0x0000555555699658 in device_reset
>                     (dev=3D0x55555637d7e0)
>                         at hw/core/qdev.c:934
>                             klass =3D 0x555556270410
>                             __func__ =3D "device_reset"
>                     #8  0x0000555555697a56 in qdev_reset_one
>                     (dev=3D0x55555637d7e0, opaque=3D0x0)
>                         at hw/core/qdev.c:240
>                     No locals.
>                     #9  0x0000555555697f64 in qdev_walk_children
>                     (dev=3D0x55555637d7e0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:411
>                             bus =3D 0x0
>                             err =3D 0
>                     #10 0x0000555555697e57 in qbus_walk_children
>                     (bus=3D0x5555562a8ee0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:369
>                             kid =3D 0x55555633d4f0
>                             err =3D 0
>                     #11 0x0000555555697f28 in qdev_walk_children
>                     (dev=3D0x5555563131b0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:403
>                     ---Type <return> to continue, or q <return> to quit---
>                             bus =3D 0x5555562a8ee0
>                             err =3D 0
>                     #12 0x0000555555697e57 in qbus_walk_children
>                     (bus=3D0x5555562a60b0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:369
>                             kid =3D 0x5555562a6a80
>                             err =3D 0
>                     #13 0x0000555555697b32 in qbus_reset_all
>                     (bus=3D0x5555562a60b0)
>                         at hw/core/qdev.c:261
>                     No locals.
>                     #14 0x0000555555697b54 in qbus_reset_all_fn
>                     (opaque=3D0x5555562a60b0)
>                         at hw/core/qdev.c:267
>                             bus =3D 0x5555562a60b0
>                     #15 0x0000555555815b1f in qemu_devices_reset () at
>                     vl.c:1872
>                             re =3D 0x555556375890
>                             nre =3D 0x0
>                     #16 0x0000555555815bbf in qemu_system_reset
>                     (report=3Dtrue) at vl.c:1885
>                             mc =3D 0x55555626e030
>                             __func__ =3D "qemu_system_reset"
>                     #17 0x000055555590fcb9 in cpu_handle_ioreq
>                     (opaque=3D0x5555562b0950)
>                         at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>                             state =3D 0x5555562b0950
>                     ---Type <return> to continue, or q <return> to quit---
>                             req =3D 0x7ffff7ff3000
>                     #18 0x000055555577c385 in qemu_iohandler_poll
>                     (pollfds=3D0x555556277600, ret=3D1)
>                         at iohandler.c:143
>                             revents =3D 1
>                             pioh =3D 0x5555563218c0
>                             ioh =3D 0x555556362a80
>                     #19 0x000055555577d14b in main_loop_wait
>                     (nonblocking=3D0) at main-loop.c:485
>                             ret =3D 1
>                             timeout =3D 4294967295
>                             timeout_ns =3D 17355567
>                     #20 0x0000555555815fbd in main_loop () at vl.c:2056
>                             nonblocking =3D false
>                             last_io =3D 1
>                     #21 0x000055555581d66b in main (argc=3D66,
>                     argv=3D0x7fffffffdc58,
>                         envp=3D0x7fffffffde70) at vl.c:4535
>                             i =3D 64
>                             snapshot =3D 0
>                             linux_boot =3D 0
>                             icount_option =3D 0x0
>                             initrd_filename =3D 0x0
>                             kernel_filename =3D 0x0
>                             kernel_cmdline =3D 0x55555598c664 ""
>                             boot_order =3D 0x555556275380 "dc"
>                     ---Type <return> to continue, or q <return> to quit---
>                             ds =3D 0x5555563324a0
>                             cyls =3D 0
>                             heads =3D 0
>                             secs =3D 0
>                             translation =3D 0
>                             hda_opts =3D 0x0
>                             opts =3D 0x5555562752d0
>                             machine_opts =3D 0x555556276f30
>                             olist =3D 0x555555d72700 <qemu_machine_opts>
>                             optind =3D 66
>                             optarg =3D 0x7fffffffe61a
>                     "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"
>                             loadvm =3D 0x0
>                             machine_class =3D 0x55555626e030
>                             machine =3D 0x555555d78540 <xenfv_machine>
>                             cpu_model =3D 0x0
>                             vga_model =3D 0x0
>                             qtest_chrdev =3D 0x0
>                             qtest_log =3D 0x0
>                             pid_file =3D 0x0
>                             incoming =3D 0x0
>                             show_vnc_port =3D 0
>                             defconfig =3D true
>                     ---Type <return> to continue, or q <return> to quit---
>                             userconfig =3D true
>                             log_mask =3D 0x0
>                             log_file =3D 0x0
>                             mem_trace =3D {malloc =3D 0x55555581950b
>                     <malloc_and_trace>,
>                               realloc =3D 0x555555819540
>                     <realloc_and_trace>,
>                               free =3D 0x555555819584 <free_and_trace>,
>                     calloc =3D 0x0,
>                               try_malloc =3D 0x0, try_realloc =3D 0x0}
>                             trace_events =3D 0x0
>                             trace_file =3D 0x0
>                             __func__ =3D "main"
>                             args =3D {machine =3D 0x555555d78540
>                     <xenfv_machine>,
>                               ram_size =3D 2013265920 <tel:2013265920>,
>                     boot_order =3D 0x555556275380 "dc",
>                               kernel_filename =3D 0x0, kernel_cmdline =3D
>                     0x55555598c664 "",
>                               initrd_filename =3D 0x0, cpu_model =3D 0x0}
>
>
>                     AND
>
>                     attached files
>
>
>
>
>
>
>
>
>                     2015-01-04 22:24 GMT+01:00 Goonie Windy
>                     <monsieur.goonie@gmail.com
>                     <mailto:monsieur.goonie@gmail.com>>:
>
>                         GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
>                         Copyright (C) 2014 Free Software Foundation, Inc.
>                         License GPLv3+: GNU GPL version 3 or later
>                         <http://gnu.org/licenses/gpl.html>
>                         This is free software: you are free to change
>                         and redistribute it.
>                         There is NO WARRANTY, to the extent permitted
>                         by law.  Type "show copying"
>                         and "show warranty" for details.
>                         This GDB was configured as "x86_64-linux-gnu".
>                         Type "show configuration" for configuration
>                         details.
>                         For bug reporting instructions, please see:
>                         <http://www.gnu.org/software/gdb/bugs/>.
>                         Find the GDB manual and other documentation
>                         resources online at:
>                         <http://www.gnu.org/software/gdb/documentation/>.
>                         For help, type "help".
>                         Type "apropos word" to search for commands
>                         related to "word"...
>                         Reading symbols from
>                         /usr/lib/xen/bin/qemu-system-i386...done.
>                         (gdb) target remote localhost:1234
>                         Remote debugging using localhost:1234
>                         Reading symbols from
>                         /lib64/ld-linux-x86-64.so.2...Reading symbols
>                         from
>                         /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>                         done.
>                         Loaded symbols for /lib64/ld-linux-x86-64.so.2
>                         0x00007ffff7ddd190 in _start () from
>                         /lib64/ld-linux-x86-64.so.2
>                         (gdb) c
>                         Continuing.
>
>                         Program received signal SIGSEGV, Segmentation
>                         fault.
>                         0x00007ffff50e5801 in
>                         spice_char_device_write_to_device (
>                         dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                         443    char_device.c: Aucun fichier ou dossier
>                         de ce type.
>                         (gdb) bt full
>                         #0  0x00007ffff50e5801 in
>                         spice_char_device_write_to_device (
>                         dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                                 sif =3D <optimized out>
>                                 total =3D <optimized out>
>                                 n =3D <optimized out>
>                         #1  0x00007ffff50e6497 in
>                         spice_char_device_write_to_device (
>                             dev=3D0x55555647c750) at char_device.c:436
>                         No locals.
>                         #2 spice_char_device_start
>                         (dev=3D0x55555647c750) at char_device.c:798
>                                 __FUNCTION__ =3D "spice_char_device_start"
>                         #3  0x00007ffff51299c6 in
>                         spice_server_vm_start (s=3D<optimized out>)
>                             at reds.c:3795
>                                 st_item =3D 0x5555562d8350
>                                 item =3D 0x5555562d8350
>                                 __FUNCTION__ =3D "spice_server_vm_start"
>                         #4  0x00005555557f40c9 in
>                         qemu_spice_display_start () at ui/spice-core.c:909
>                         No locals.
>                         #5  0x00005555556c4365 in qxl_hard_reset
>                         (d=3D0x55555637d7e0, loadvm=3D0)
>                             at hw/display/qxl.c:1172
>                                 startstop =3D true
>                         #6  0x00005555556c43a3 in qxl_reset_handler
>                         (dev=3D0x55555637d7e0)
>                             at hw/display/qxl.c:1180
>                                 d =3D 0x55555637d7e0
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                         #7  0x0000555555699658 in device_reset
>                         (dev=3D0x55555637d7e0)
>                             at hw/core/qdev.c:934
>                                 klass =3D 0x555556270410
>                                 __func__ =3D "device_reset"
>                         #8  0x0000555555697a56 in qdev_reset_one
>                         (dev=3D0x55555637d7e0, opaque=3D0x0)
>                             at hw/core/qdev.c:240
>                         No locals.
>                         #9  0x0000555555697f64 in qdev_walk_children
>                         (dev=3D0x55555637d7e0,
>                             pre_devfn=3D0x0, pre_busfn=3D0x0,
>                         post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                         post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                         opaque=3D0x0)
>                             at hw/core/qdev.c:411
>                                 bus =3D 0x0
>                                 err =3D 0
>                         #10 0x0000555555697e57 in qbus_walk_children
>                         (bus=3D0x5555562a8ee0,
>                             pre_devfn=3D0x0, pre_busfn=3D0x0,
>                         post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                         post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                         opaque=3D0x0)
>                             at hw/core/qdev.c:369
>                                 kid =3D 0x55555633d4f0
>                                 err =3D 0
>                         #11 0x0000555555697f28 in qdev_walk_children
>                         (dev=3D0x5555563131b0,
>                             pre_devfn=3D0x0, pre_busfn=3D0x0,
>                         post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                         post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                         opaque=3D0x0)
>                             at hw/core/qdev.c:403
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                                 bus =3D 0x5555562a8ee0
>                                 err =3D 0
>                         #12 0x0000555555697e57 in qbus_walk_children
>                         (bus=3D0x5555562a60b0,
>                             pre_devfn=3D0x0, pre_busfn=3D0x0,
>                         post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                         post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                         opaque=3D0x0)
>                             at hw/core/qdev.c:369
>                                 kid =3D 0x5555562a6a80
>                                 err =3D 0
>                         #13 0x0000555555697b32 in qbus_reset_all
>                         (bus=3D0x5555562a60b0)
>                             at hw/core/qdev.c:261
>                         No locals.
>                         #14 0x0000555555697b54 in qbus_reset_all_fn
>                         (opaque=3D0x5555562a60b0)
>                             at hw/core/qdev.c:267
>                                 bus =3D 0x5555562a60b0
>                         #15 0x0000555555815b1f in qemu_devices_reset
>                         () at vl.c:1872
>                                 re =3D 0x555556375890
>                                 nre =3D 0x0
>                         #16 0x0000555555815bbf in qemu_system_reset
>                         (report=3Dtrue) at vl.c:1885
>                                 mc =3D 0x55555626e030
>                                 __func__ =3D "qemu_system_reset"
>                         #17 0x000055555590fcb9 in cpu_handle_ioreq
>                         (opaque=3D0x5555562b0950)
>                             at
>                         /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>                                 state =3D 0x5555562b0950
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                                 req =3D 0x7ffff7ff3000
>                         #18 0x000055555577c385 in qemu_iohandler_poll
>                         (pollfds=3D0x555556277600, ret=3D1)
>                             at iohandler.c:143
>                                 revents =3D 1
>                                 pioh =3D 0x5555563218c0
>                                 ioh =3D 0x555556362a80
>                         #19 0x000055555577d14b in main_loop_wait
>                         (nonblocking=3D0) at main-loop.c:485
>                                 ret =3D 1
>                                 timeout =3D 4294967295
>                                 timeout_ns =3D 17355567
>                         #20 0x0000555555815fbd in main_loop () at
>                         vl.c:2056
>                                 nonblocking =3D false
>                                 last_io =3D 1
>                         #21 0x000055555581d66b in main (argc=3D66,
>                         argv=3D0x7fffffffdc58,
>                             envp=3D0x7fffffffde70) at vl.c:4535
>                                 i =3D 64
>                                 snapshot =3D 0
>                                 linux_boot =3D 0
>                                 icount_option =3D 0x0
>                                 initrd_filename =3D 0x0
>                                 kernel_filename =3D 0x0
>                                 kernel_cmdline =3D 0x55555598c664 ""
>                                 boot_order =3D 0x555556275380 "dc"
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                                 ds =3D 0x5555563324a0
>                                 cyls =3D 0
>                                 heads =3D 0
>                                 secs =3D 0
>                                 translation =3D 0
>                                 hda_opts =3D 0x0
>                                 opts =3D 0x5555562752d0
>                                 machine_opts =3D 0x555556276f30
>                                 olist =3D 0x555555d72700 <qemu_machine_opts>
>                                 optind =3D 66
>                                 optarg =3D 0x7fffffffe61a
>                         "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"
>                                 loadvm =3D 0x0
>                                 machine_class =3D 0x55555626e030
>                                 machine =3D 0x555555d78540 <xenfv_machine>
>                                 cpu_model =3D 0x0
>                                 vga_model =3D 0x0
>                                 qtest_chrdev =3D 0x0
>                                 qtest_log =3D 0x0
>                                 pid_file =3D 0x0
>                                 incoming =3D 0x0
>                                 show_vnc_port =3D 0
>                                 defconfig =3D true
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                                 userconfig =3D true
>                                 log_mask =3D 0x0
>                                 log_file =3D 0x0
>                                 mem_trace =3D {malloc =3D 0x55555581950b
>                         <malloc_and_trace>,
>                                   realloc =3D 0x555555819540
>                         <realloc_and_trace>,
>                                   free =3D 0x555555819584
>                         <free_and_trace>, calloc =3D 0x0,
>                                   try_malloc =3D 0x0, try_realloc =3D 0x0}
>                                 trace_events =3D 0x0
>                                 trace_file =3D 0x0
>                                 __func__ =3D "main"
>                                 args =3D {machine =3D 0x555555d78540
>                         <xenfv_machine>,
>                                   ram_size =3D 2013265920
>                         <tel:2013265920>, boot_order =3D 0x555556275380
>                         "dc",
>                         kernel_filename =3D 0x0, kernel_cmdline =3D
>                         0x55555598c664 "",
>                         initrd_filename =3D 0x0, cpu_model =3D 0x0}
>
>
>                         2015-01-04 19:00 GMT+01:00 Fabio Fantoni
>                         <fabio.fantoni@m2r.biz
>                         <mailto:fabio.fantoni@m2r.biz>>:
>
>
>                             Il 04/01/2015 01:11, Goonie Windy ha scritto:
>>                             Forgot to say that it is not a matter of
>>                             timeout :/, it's when pressing c that it
>>                             breaks
>>
>>                             2015-01-04 1:07 GMT+01:00 Goonie Windy
>>                             <monsieur.goonie@gmail.com
>>                             <mailto:monsieur.goonie@gmail.com>>:
>>
>>                                  ok, I'm using the Upstream compiled
>>                                 in Xen so I created the file
>>                                 qemu-dbg, chmoded it etc...
>>
>>
>>
>>                                 But that's as far as I can get:
>>
>>
>>                                 xl create result:
>>                                 WARNING: device model override given
>>                                 without specific DM version
>>
>
>                             The problem should solved with this in
>                             domU's xl cfg:
>                             device_model_version=3Dqemu-xen
>
>
>>                                 libxl: error:
>>                                 libxl_exec.c:421:spawn_middle_death:
>>                                 domain 32 device model [-1]:
>>                                 unexpectedly exited with exit status
>>                                 0, when we were waiting for it to
>>                                 confirm startup
>>                                 libxl: error:
>>                                 libxl_dm.c:1490:device_model_spawn_outcome:
>>                                 domain 32 device model: spawn failed
>>                                 (rc=3D-3)
>>                                 libxl: error:
>>                                 libxl_create.c:1332:domcreate_devmodel_started:
>>                                 device model did not start: -3
>>                                 libxl: error:
>>                                 libxl_dm.c:1594:kill_device_model:
>>                                 Device Model already exited
>>
>
>                             If the problem persist look the domU's
>                             qemu log.
>
>
>>
>>
>>                                 gdb output:
>>                                 target remote localhost:1234 c
>>                                 Remote debugging using localhost:1234 c
>>                                 Reading symbols from
>>                                 /lib64/ld-linux-x86-64.so.2...Reading
>>                                 symbols from
>>                                 /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>                                 done.
>>                                 Loaded symbols for
>>                                 /lib64/ld-linux-x86-64.so.2
>>                                 0x00007ffff7ddd190 in _start () from
>>                                 /lib64/ld-linux-x86-64.so.2
>>                                 (gdb) c
>>                                 Continuing.
>>                                 [Inferior 1 (process 6455) exited
>>                                 with code 01]
>>
>>
>>
>>                                 libxl_exec.c shows me
>>                                 421(
>>                                  else {
>>                                         if (!status)
>>                                 LOG(ERROR, "%s [%ld]: unexpectedly
>>                                 exited with exit status 0,"
>>                                 " when we were waiting for it to
>>                                 confirm startup",
>>                                 ss->what, (unsigned long)pid);
>>                                         else if (status <=3D 127)
>>                                 )
>>
>>
>>                                 that it is a matter of status (=3F) missing
>>
>>
>>                                 That's all I could find out.
>>
>>                                 2015-01-03 14:36 GMT+01:00 Fabio
>>                                 Fantoni <fabio.fantoni@m2r.biz
>>                                 <mailto:fabio.fantoni@m2r.biz>>:
>>
>>                                     2015-01-03 1:24 GMT+01:00 Goonie
>>                                     Windy <monsieur.goonie@gmail.com
>>                                     <mailto:monsieur.goonie@gmail.com>>:
>>
>>                                         Fabio, actually I would have
>>                                         to compile qemu-dbg during
>>                                         compilation of xen, right=3F
>>                                         Because I uninstalled it for
>>                                         installing 4.5RC4.
>>
>>
>>                                     If you use qemu compiled in xen
>>                                     is not stripped is you have debug
>>                                     enabled in xen config (enabled by
>>                                     default except stable release).
>>                                     Qemu packages in debian seems not
>>                                     have -dbg package instead, I not
>>                                     remember if are at least not
>>                                     stripped, if are stripped and
>>                                     without -dbg pkg we should open a
>>                                     bugreport about in debian tracker.
>>
>>
>>                                         regards
>>
>>                                         2015-01-01 14:49 GMT+01:00
>>                                         Fabio Fantoni
>>                                         <fabio.fantoni@m2r.biz
>>                                         <mailto:fabio.fantoni@m2r.biz>>:
>>
>>
>>                                             Il 01/01/2015 13:24,
>>                                             Goonie Windy ha scritto:
>>>                                             Hello Fabio, well same
>>>                                             thing happens with
>>>                                             remote-viewer,
>>>
>>>
>>>                                             about not using dom0 as
>>>                                             desktop, it's a laptop
>>>                                             I'm using for those tests,
>>>
>>>                                             Way to go is to use a
>>>                                             blank machine with only
>>>                                             Xen and then virtualise
>>>                                             all machines inside=3F
>>
>>                                             Try to post what version
>>                                             of qemu, spice ecc your
>>                                             are using, your domU xl
>>                                             cfg and backtrace of the
>>                                             crash (following the
>>                                             howto I wrote should be
>>                                             simple)
>>
>>
>>>
>>>
>>>                                             regards
>>>
>>>
>>>
>>>                                             gregB
>>>
>>>                                             2015-01-01 12:45
>>>                                             GMT+01:00 Fabio Fantoni
>>>                                             <fabio.fantoni@m2r.biz
>>>                                             <mailto:fabio.fantoni@m2r.biz>>:
>>>
>>>
>>>                                                 Il 01/01/2015 11:36,
>>>                                                 Goonie Windy ha scritto:
>>>>                                                 Actulally I have,
>>>>
>>>>                                                  qemu-system-i38[13389]:
>>>>                                                 segfault at 0 ip
>>>>                                                 00007fd3d166d801 sp
>>>>                                                 00007ffffc8595d0
>>>>                                                 error 4 in
>>>>                                                 libspice-server.so.1.9.0[7fd3d1661000+11b000]
>>>>
>>>>                                                 BTW happy new year
>>>>
>>>>                                                 2015-01-01 11:30
>>>>                                                 GMT+01:00 Goonie
>>>>                                                 Windy
>>>>                                                 <monsieur.goonie@gmail.com
>>>>                                                 <mailto:monsieur.goonie@gmail.com>>:
>>>>
>>>>                                                     Fabio,
>>>>
>>>>                                                     ok for all
>>>>                                                     concerning
>>>>                                                     rombios ...
>>>>
>>>>                                                     My spicec
>>>>                                                     connection
>>>>                                                     keeps on dying
>>>>                                                     with
>>>>                                                     "Spice-Warning
>>>>                                                     **:
>>>>                                                     red_peer.cpp:128:connect_to_peer:
>>>>                                                     failed to
>>>>                                                     connect:
>>>>                                                     Connexion
>>>>                                                     refus=C3=A9e (111)"
>>>>                                                     Then I can't
>>>>                                                     access VM and
>>>>                                                     have to destroy it.
>>>>
>>>>                                                     I'm connecting
>>>>                                                     with
>>>>                                                     spicec -h
>>>>                                                     0.0.0.0 -p 6000
>>>>
>>>>                                                     Any idea=3F
>>>>
>>>
>>>                                                 spicec is very old
>>>                                                 and deprecated
>>>                                                 client and was
>>>                                                 already removed in
>>>                                                 spice git for next
>>>                                                 version.
>>>                                                 there are spicy and
>>>                                                 virt-viewer, the
>>>                                                 second is better.
>>>                                                 from address seems
>>>                                                 that you use dom0 as
>>>                                                 desktop, don't seems
>>>                                                 good for me^^''
>>>
>>>                                                 if you still have
>>>                                                 the qemu crash
>>>                                                 install spice debug
>>>                                                 package and take a
>>>                                                 backtrace with gdb.
>>>
>>>                                                 For use gdb on qemu
>>>                                                 as it child process
>>>                                                 is particular.
>>>
>>>                                                 Small help with gdb
>>>                                                 of qemu launched by xl:
>>>                                                 add the line below
>>>                                                 in domU's xl cfg:
>>>                                                 device_model_override=3D"/usr/lib/xen/bin/qemu-gdb"
>>>                                                 vi
>>>                                                 /usr/lib/xen/bin/qemu-gdb
>>>                                                 # create the file,
>>>                                                 change the qemu path
>>>                                                 if needed
>>>                                                 #!/bin/sh
>>>                                                 exec gdbserver
>>>                                                 0.0.0.0:1234
>>>                                                 <http://0.0.0.0:1234> /usr/lib/xen/bin/qemu-system-i386
>>>                                                 "$@"
>>>                                                 # after xl create
>>>                                                 with (qemu gdb), do
>>>                                                 it fast after xl
>>>                                                 create when arrive
>>>                                                 on qemu process
>>>                                                 launch (before
>>>                                                 timeout or xl create
>>>                                                 will fails)
>>>                                                 target remote
>>>                                                 localhost:1234 #
>>>                                                 prepare this command
>>>                                                 in other ssh to the
>>>                                                 xen dom0 and enter
>>>                                                 on xl create when
>>>                                                 arrive on qemu launch
>>>                                                 c # press immediatly
>>>                                                 bt full # when qemu
>>>                                                 stops with crash
>>>
>>>
>>>>
>>>>
>>>>                                                     regards,
>>>>
>>>>                                                     greg
>>>>
>>>>                                                     2014-12-31
>>>>                                                     10:03 GMT+01:00
>>>>                                                     Fabio Fantoni
>>>>                                                     <fabio.fantoni@m2r.biz
>>>>                                                     <mailto:fabio.fantoni@m2r.biz>>:
>>>>
>>>>                                                         Il
>>>>                                                         31/12/2014
>>>>                                                         02:26,
>>>>                                                         Goonie
>>>>                                                         Windy ha
>>>>                                                         scritto:
>>>>>                                                         Ok Fabio,
>>>>>                                                         thanks to
>>>>>                                                         your
>>>>>                                                         configure,
>>>>>                                                         some bits
>>>>>                                                         of hacking
>>>>>                                                         the
>>>>>                                                         install
>>>>>                                                         part and
>>>>>                                                         lots of
>>>>>                                                         advises/support/encouragements
>>>>>                                                         ;) from
>>>>>                                                         Mark Pryor
>>>>>                                                         I ended up
>>>>>                                                          installing 4.5RC4
>>>>>                                                         with QXL
>>>>>                                                         support on
>>>>>                                                         Deb8 unstable.
>>>>>
>>>>>
>>>>>                                                         So now
>>>>>                                                         what do
>>>>>                                                         you want
>>>>>                                                         me to test
>>>>>                                                         fabio=3F
>>>>>                                                         I have
>>>>>                                                         win7 x64 /
>>>>>                                                         win 2k8R2
>>>>>                                                         vms in
>>>>>                                                         test mode
>>>>>                                                         ready to
>>>>>                                                         install
>>>>>                                                         drvers.
>>>>>
>>>>>                                                         the
>>>>>                                                         numerous
>>>>>                                                         troubles I
>>>>>                                                         went
>>>>>                                                         through
>>>>>                                                         are
>>>>>                                                         related in
>>>>>                                                         the
>>>>>                                                         IRCcopy
>>>>>                                                         attached.
>>>>>                                                         I actually
>>>>>                                                         couldn't
>>>>>                                                         build
>>>>>                                                         rombios
>>>>>                                                         and used
>>>>>                                                         seabios
>>>>>                                                         provided
>>>>>                                                         by the
>>>>>                                                         system
>>>>>                                                         -like you-
>>>>>                                                         I should
>>>>>                                                         try to
>>>>>                                                         compile/find
>>>>>                                                         latest qxl
>>>>>                                                         now.
>>>>
>>>>                                                         rombios is
>>>>                                                         used only
>>>>                                                         by qemu
>>>>                                                         traditional
>>>>                                                         that is
>>>>                                                         very old,
>>>>                                                         without
>>>>                                                         spice
>>>>                                                         support and
>>>>                                                         hvm domUs
>>>>                                                         have lower
>>>>                                                         performance
>>>>                                                         with it.
>>>>                                                         qxl drivers
>>>>                                                         in latest
>>>>                                                         spice guest
>>>>                                                         tools are
>>>>                                                         signed and
>>>>                                                         not require
>>>>                                                         windows
>>>>                                                         testsigning
>>>>                                                         mode, same
>>>>                                                         for james
>>>>                                                         haper xen
>>>>                                                         gplpv.
>>>>                                                         If you want
>>>>                                                         test new
>>>>                                                         winpv
>>>>                                                         drivers
>>>>                                                         instead you
>>>>                                                         need it.
>>>>
>>>>                                                         For me qxl
>>>>                                                         is working
>>>>                                                         good on w7
>>>>                                                         domUs
>>>>                                                         except
>>>>                                                         after
>>>>                                                         save/restore when
>>>>                                                         "freeze"
>>>>                                                         2-3 minutes
>>>>                                                         on screen
>>>>                                                         resolution
>>>>                                                         change and
>>>>                                                         I not found
>>>>                                                         the exact
>>>>                                                         problem for
>>>>                                                         now.
>>>>                                                         I also not
>>>>                                                         found how
>>>>                                                         to have qxl
>>>>                                                         working in
>>>>                                                         linux
>>>>                                                         domUs, on
>>>>                                                         latest test
>>>>                                                         xorg crash
>>>>                                                         on start
>>>>                                                         with qxl
>>>>                                                         driver
>>>>                                                         installed.
>>>>                                                         Probably
>>>>                                                         other
>>>>                                                         changes are
>>>>                                                         needed in
>>>>                                                         hvmloader
>>>>                                                         and/or xen
>>>>                                                         hypervisor
>>>>                                                         and/or qxl
>>>>                                                         driver.
>>>>                                                         Any help
>>>>                                                         testing it
>>>>                                                         is
>>>>                                                         appreciated.
>>>>
>>>>
>>>>>
>>>>>                                                         See you in
>>>>>                                                         2K15.
>>>>>
>>>>>                                                         greg B
>>>>>
>>>>>                                                         2014-12-29
>>>>>                                                         14:49
>>>>>                                                         GMT+01:00
>>>>>                                                         Fabio
>>>>>                                                         Fantoni
>>>>>                                                         <fabio.fantoni@m2r.biz
>>>>>                                                         <mailto:fabio.fantoni@m2r.biz>>:
>>>>>
>>>>>                                                             Il
>>>>>                                                             29/12/2014
>>>>>                                                             14:13,
>>>>>                                                             Goonie
>>>>>                                                             Windy
>>>>>                                                             ha
>>>>>                                                             scritto:
>>>>>>                                                             ok,
>>>>>>                                                             I'm
>>>>>>                                                             trying to
>>>>>>                                                             patch
>>>>>>                                                             the
>>>>>>                                                             files
>>>>>>                                                             with
>>>>>>                                                             yours,
>>>>>>
>>>>>>
>>>>>>                                                             I
>>>>>>                                                             need
>>>>>>                                                             to do
>>>>>>                                                             it
>>>>>>                                                             manually
>>>>>>                                                             right=3F
>>>>>>
>>>>>>                                                             git
>>>>>>                                                             apply
>>>>>>                                                             is
>>>>>>                                                             not
>>>>>>                                                             working
>>>>>>                                                             here.
>>>>>
>>>>>                                                             If the
>>>>>                                                             patch
>>>>>                                                             need a
>>>>>                                                             "refresh"
>>>>>                                                             the
>>>>>                                                             conflict
>>>>>                                                             should
>>>>>                                                             be
>>>>>                                                             solved
>>>>>                                                             manually.
>>>>>                                                             Taking
>>>>>                                                             the
>>>>>                                                             patch
>>>>>                                                             updated from
>>>>>                                                             here
>>>>>                                                             probably
>>>>>                                                             it can
>>>>>                                                             be
>>>>>                                                             applied to
>>>>>                                                             latest
>>>>>                                                             4.5-rc:
>>>>>                                                             https://github.com/Fantu/Xen/commits/rebase/m2r-staging
>>>>>
>>>>>>
>>>>>>
>>>>>>                                                             regards
>>>>>>
>>>>>>                                                             greg
>>>>>>
>>>>>>                                                             2014-12-29
>>>>>>                                                             13:46
>>>>>>                                                             GMT+01:00
>>>>>>                                                             Goonie Windy
>>>>>>                                                             <monsieur.goonie@gmail.com
>>>>>>                                                             <mailto:monsieur.goonie@gmail.com>>:
>>>>>>
>>>>>>                                                                 There
>>>>>>                                                                 is an
>>>>>>                                                                 error
>>>>>>                                                                 in pageqs
>>>>>>                                                                 describing
>>>>>>                                                                 how
>>>>>>                                                                 to compile
>>>>>>                                                                 from
>>>>>>                                                                 sources
>>>>>>                                                                 as in
>>>>>>                                                                 4.5
>>>>>>
>>>>>>                                                                 cat .config
>>>>>>                                                                 PYTHON_PREFIX_ARG=3D--install-layout=3Ddeb
>>>>>>
>>>>>>                                                                 is in fact in .INSTALL
>>>>>>
>>>>>
>>>>>                                                             If
>>>>>                                                             also
>>>>>                                                             you
>>>>>                                                             use
>>>>>                                                             debian
>>>>>                                                             you
>>>>>                                                             can
>>>>>                                                             use
>>>>>                                                             make
>>>>>                                                             debball that
>>>>>                                                             is
>>>>>                                                             better
>>>>>                                                             for
>>>>>                                                             install/remove
>>>>>                                                             easy
>>>>>                                                             and
>>>>>                                                             fast
>>>>>                                                             test
>>>>>                                                             build.
>>>>>
>>>>>                                                             And
>>>>>                                                             for
>>>>>                                                             example I
>>>>>                                                             use
>>>>>                                                             this
>>>>>                                                             configure
>>>>>                                                             options with
>>>>>                                                             xen 4.5:
>>>>>                                                             ./configure
>>>>>                                                             --prefix=3D/usr
>>>>>                                                             --disable-blktap1
>>>>>                                                             --disable-qemu-traditional
>>>>>                                                             --disable-rombios
>>>>>                                                             --with-system-seabios=3D/usr/share/seabios/bios-256k.bin
>>>>>                                                             --with-extra-qemuu-configure-args=3D"--enable-spice
>>>>>                                                             --enable-usb-redir"
>>>>>                                                             --disable-blktap2
>>>>>                                                             I use
>>>>>                                                             wheezy
>>>>>                                                             building
>>>>>                                                             updated packages
>>>>>                                                             from
>>>>>                                                             sid:
>>>>>                                                             seabios 1.7.5-1,
>>>>>                                                             spice
>>>>>                                                             0.12.5-1,
>>>>>                                                             spice-protocol
>>>>>                                                             0.12.7-1
>>>>>                                                             and
>>>>>                                                             usbredir
>>>>>                                                             0.7-1.
>>>>>                                                             If you
>>>>>                                                             use
>>>>>                                                             jessie
>>>>>                                                             instead you
>>>>>                                                             have
>>>>>                                                             all
>>>>>                                                             packages
>>>>>                                                             updated.
>>>>>
>>>>>                                                             About
>>>>>                                                             python
>>>>>                                                             I'm
>>>>>                                                             using
>>>>>                                                             this
>>>>>                                                             workaround
>>>>>                                                             (before execute
>>>>>                                                             configure)
>>>>>                                                             even
>>>>>                                                             if
>>>>>                                                             probably
>>>>>                                                             is not
>>>>>                                                             the best:
>>>>>                                                             Config.mk
>>>>>                                                             -PYTHON_PREFIX_ARG
>>>>>                                                             =3F=3D--prefix=3D"$(PREFIX)"
>>>>>                                                             +PYTHON_PREFIX_ARG
>>>>>                                                             =3F=3D
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>                                                                 2014-12-29
>>>>>>                                                                 1:20
>>>>>>                                                                 GMT+01:00
>>>>>>                                                                 Goonie
>>>>>>                                                                 Windy
>>>>>>                                                                 <monsieur.goonie@gmail.com
>>>>>>                                                                 <mailto:monsieur.goonie@gmail.com>>:
>>>>>>
>>>>>>                                                                     well
>>>>>>                                                                     figured
>>>>>>                                                                     out
>>>>>>                                                                     it
>>>>>>                                                                     is
>>>>>>                                                                     because
>>>>>>                                                                     you
>>>>>>                                                                     have
>>>>>>                                                                     to
>>>>>>                                                                     "enforce"
>>>>>>                                                                     locale:
>>>>>>                                                                     export
>>>>>>                                                                     LC_ALL=3Den_US.utf-8
>>>>>>                                                                     if
>>>>>>                                                                     keyboard
>>>>>>                                                                     mapping
>>>>>>                                                                     is
>>>>>>                                                                     else
>>>>>>
>>>>>>                                                                     2014-12-28
>>>>>>                                                                     21:19
>>>>>>                                                                     GMT+01:00
>>>>>>                                                                     Goonie
>>>>>>                                                                     Windy
>>>>>>                                                                     <monsieur.goonie@gmail.com
>>>>>>                                                                     <mailto:monsieur.goonie@gmail.com>>:
>>>>>>
>>>>>>                                                                         Trying
>>>>>>                                                                         to
>>>>>>                                                                         compile
>>>>>>                                                                         xen
>>>>>>                                                                         4.5RC4
>>>>>>                                                                         in
>>>>>>                                                                         order
>>>>>>                                                                         to
>>>>>>                                                                         test
>>>>>>                                                                         your
>>>>>>                                                                         patch
>>>>>>                                                                         I end
>>>>>>                                                                         up
>>>>>>                                                                         with
>>>>>>                                                                         these
>>>>>>                                                                         errors
>>>>>>                                                                         compiling
>>>>>>                                                                         the
>>>>>>                                                                         Seabios
>>>>>>                                                                         directories,
>>>>>>
>>>>>>                                                                         any
>>>>>>                                                                         idea=3F
>>>>>>
>>>>>>                                                                           Compiling
>>>>>>                                                                         to
>>>>>>                                                                         assembler
>>>>>>                                                                         out/src/asm-offsets.s
>>>>>>                                                                           Generating
>>>>>>                                                                         offset
>>>>>>                                                                         file
>>>>>>                                                                         out/asm-offsets.h
>>>>>>                                                                           Compiling
>>>>>>                                                                         (16bit)
>>>>>>                                                                         out/romlayout.o
>>>>>>                                                                           Building
>>>>>>                                                                         ld
>>>>>>                                                                         scripts
>>>>>>                                                                         Version:
>>>>>>                                                                         rel-1.7.5-0-ge51488c-20141228_210340-E766
>>>>>>                                                                         Traceback
>>>>>>                                                                         (most
>>>>>>                                                                         recent
>>>>>>                                                                         call
>>>>>>                                                                         last):
>>>>>>                                                                           File
>>>>>>                                                                         "./scripts/layoutrom.py",
>>>>>>                                                                         line
>>>>>>                                                                         709,
>>>>>>                                                                         in
>>>>>>                                                                         <module>
>>>>>>                                                                            
>>>>>>                                                                         main()
>>>>>>                                                                           File
>>>>>>                                                                         "./scripts/layoutrom.py",
>>>>>>                                                                         line
>>>>>>                                                                         671,
>>>>>>                                                                         in
>>>>>>                                                                         main
>>>>>>                                                                            
>>>>>>                                                                         info16
>>>>>>                                                                         =3D parseObjDump(infile16,
>>>>>>                                                                         '16')
>>>>>>                                                                           File
>>>>>>                                                                         "./scripts/layoutrom.py",
>>>>>>                                                                         line
>>>>>>                                                                         586,
>>>>>>                                                                         in
>>>>>>                                                                         parseObjDump
>>>>>>                                                                         relocsection
>>>>>>                                                                         =3D sectionmap[sectionname]
>>>>>>                                                                         KeyError:
>>>>>>                                                                         '.text.asm./home/goon/xen/tools/firmware/seabios-dir-remote/src/fw/smp.c.79'
>>>>>>                                                                         Makefile:155:
>>>>>>                                                                         recipe
>>>>>>                                                                         for
>>>>>>                                                                         target
>>>>>>                                                                         'out/romlayout16.lds'
>>>>>>                                                                         failed
>>>>>>                                                                         make[6]:
>>>>>>                                                                         ***
>>>>>>                                                                         [out/romlayout16.lds]
>>>>>>                                                                         Error
>>>>>>                                                                         1
>>>>>>                                                                         make[6]:
>>>>>>                                                                         Leaving
>>>>>>                                                                         directory
>>>>>>                                                                         '/home/goon/xen/tools/firmware/seabios-dir-remote'
>>>>>>                                                                         /home/goon/xen/tools/firmware/../../tools/Rules.mk:116:
>>>>>>                                                                         recipe
>>>>>>                                                                         for
>>>>>>                                                                         target
>>>>>>                                                                         'subdir-all-seabios-dir'
>>>>>>                                                                         failed
>>>>>>
>>>>>>
>>>>>>
>>>>>>                                                                         2014-12-27
>>>>>>                                                                         17:35
>>>>>>                                                                         GMT+01:00
>>>>>>                                                                         Goonie
>>>>>>                                                                         Windy
>>>>>>                                                                         <monsieur.goonie@gmail.com
>>>>>>                                                                         <mailto:monsieur.goonie@gmail.com>>:
>>>>>>
>>>>>>                                                                             Hello
>>>>>>                                                                             Fabio,
>>>>>>
>>>>>>                                                                             Sure
>>>>>>                                                                             thing
>>>>>>                                                                             I will
>>>>>>                                                                             help
>>>>>>                                                                             debug
>>>>>>                                                                             the
>>>>>>                                                                             win7
>>>>>>                                                                             and
>>>>>>                                                                             the
>>>>>>                                                                             win8
>>>>>>                                                                             versions.
>>>>>>                                                                             Where
>>>>>>                                                                             to
>>>>>>                                                                             start=3F
>>>>>>
>>>>>>                                                                             I'll
>>>>>>                                                                             try
>>>>>>                                                                             to
>>>>>>                                                                             see
>>>>>>                                                                             if
>>>>>>                                                                             I can
>>>>>>                                                                             patch
>>>>>>                                                                             with
>>>>>>                                                                             patch
>>>>>>                                                                             from
>>>>>>                                                                             https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe
>>>>>>                                                                             and
>>>>>>                                                                             if
>>>>>>                                                                             not
>>>>>>                                                                             will
>>>>>>                                                                             post
>>>>>>                                                                             result.
>>>>>>
>>>>>>
>>>>>>                                                                             best
>>>>>>                                                                             regards,
>>>>>>
>>>>>>
>>>>>>                                                                             greg
>>>>>>                                                                             Bahde
>>>>>>
>>>>>>                                                                             2014-12-27
>>>>>>                                                                             15:10
>>>>>>                                                                             GMT+01:00
>>>>>>                                                                             Fabio
>>>>>>                                                                             Fantoni
>>>>>>                                                                             <fabio.fantoni@m2r.biz
>>>>>>                                                                             <mailto:fabio.fantoni@m2r.biz>>:
>>>>>>
>>>>>>
>>>>>>                                                                                 Il
>>>>>>                                                                                 27/12/2014
>>>>>>                                                                                 02:15,
>>>>>>                                                                                 Goonie
>>>>>>                                                                                 Windy
>>>>>>                                                                                 ha
>>>>>>                                                                                 scritto:
>>>>>>>                                                                                 I tried
>>>>>>>                                                                                 to
>>>>>>>                                                                                 install
>>>>>>>                                                                                 Qxl
>>>>>>>                                                                                 drivers
>>>>>>>                                                                                 under
>>>>>>>                                                                                 win7/win
>>>>>>>                                                                                 2k8/win8.1
>>>>>>>                                                                                 all      
>>>>>>>                                                                                 x64
>>>>>>>                                                                                 versions,
>>>>>>>                                                                                 without
>>>>>>>                                                                                 any
>>>>>>>                                                                                 luck.
>>>>>>>
>>>>>>>
>>>>>>>                                                                                 admin
>>>>>>>                                                                                 message
>>>>>>>                                                                                 is
>>>>>>>                                                                                 as
>>>>>>>                                                                                 follow:
>>>>>>>                                                                                 Driver
>>>>>>>                                                                                 Management
>>>>>>>                                                                                 concluded
>>>>>>>                                                                                 the
>>>>>>>                                                                                 process
>>>>>>>                                                                                 to
>>>>>>>                                                                                 install
>>>>>>>                                                                                 driver
>>>>>>>                                                                                 FileRepository\qxl.inf_amd64_
>>>>>>>
>>>>>>>                                                                                 neutral_f0c429882d5c81ed\qxl.inf
>>>>>>>                                                                                 for
>>>>>>>                                                                                 Device
>>>>>>>                                                                                 Instance
>>>>>>>                                                                                 ID
>>>>>>>                                                                                 PCI\VEN_1013&DEV_00B8&SUBSYS_11001AF4&REV_00\3&267A616A&1&28
>>>>>>>                                                                                 with
>>>>>>>                                                                                 the
>>>>>>>                                                                                 following
>>>>>>>                                                                                 status:
>>>>>>>                                                                                 0xe000022d.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                                                                                 Does
>>>>>>>
>>>>>>>                                                                                 http://lists.xen.org/archives/html/xen-devel/2014-05/msg03214.html
>>>>>>>
>>>>>>>                                                                                 can
>>>>>>>                                                                                 it
>>>>>>>                                                                                 be
>>>>>>>                                                                                 installed
>>>>>>>                                                                                 on
>>>>>>>                                                                                 my
>>>>>>>                                                                                 xen
>>>>>>>                                                                                 stack=3F
>>>>>>>
>>>>>>
>>>>>>                                                                                 Yes
>>>>>>                                                                                 but
>>>>>>                                                                                 probably
>>>>>>                                                                                 require
>>>>>>                                                                                 a small
>>>>>>                                                                                 refresh,
>>>>>>                                                                                 I always
>>>>>>                                                                                 posted
>>>>>>                                                                                 the
>>>>>>                                                                                 patch
>>>>>>                                                                                 based
>>>>>>                                                                                 on
>>>>>>                                                                                 updated
>>>>>>                                                                                 xen-unstable.
>>>>>>
>>>>>>
>>>>>>                                                                                 Here
>>>>>>                                                                                 qxl
>>>>>>                                                                                 patch
>>>>>>                                                                                 refreshed
>>>>>>                                                                                 for
>>>>>>                                                                                 xen
>>>>>>                                                                                 4.5
>>>>>>                                                                                 if
>>>>>>                                                                                 needed:
>>>>>>                                                                                 https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe
>>>>>>
>>>>>>                                                                                 Here
>>>>>>                                                                                 the
>>>>>>                                                                                 latest
>>>>>>                                                                                 spice
>>>>>>                                                                                 guest
>>>>>>                                                                                 tools
>>>>>>                                                                                 for
>>>>>>                                                                                 windows
>>>>>>                                                                                 with
>>>>>>                                                                                 qxl
>>>>>>                                                                                 driver
>>>>>>                                                                                 included:
>>>>>>                                                                                 http://www.spice-space.org/download/binaries/spice-guest-tools/spice-guest-tools-0.74.exe
>>>>>>
>>>>>>                                                                                 Windows
>>>>>>                                                                                 >=3D8
>>>>>>                                                                                 and
>>>>>>                                                                                 similar
>>>>>>                                                                                 require
>>>>>>                                                                                 a new
>>>>>>                                                                                 qxl
>>>>>>                                                                                 drivers,
>>>>>>                                                                                 there
>>>>>>                                                                                 are
>>>>>>                                                                                 a beta
>>>>>>                                                                                 build
>>>>>>                                                                                 but
>>>>>>                                                                                 latest
>>>>>>                                                                                 tried
>>>>>>                                                                                 some
>>>>>>                                                                                 months
>>>>>>                                                                                 ago
>>>>>>                                                                                 have
>>>>>>                                                                                 serious
>>>>>>                                                                                 bug
>>>>>>                                                                                 and
>>>>>>                                                                                 I not
>>>>>>                                                                                 found
>>>>>>                                                                                 recent
>>>>>>                                                                                 build
>>>>>>                                                                                 full
>>>>>>                                                                                 working
>>>>>>                                                                                 on
>>>>>>                                                                                 windows
>>>>>>                                                                                 8.
>>>>>>
>>>>>>                                                                                 On
>>>>>>                                                                                 xen
>>>>>>                                                                                 windows
>>>>>>                                                                                 7 domUs
>>>>>>                                                                                 qxl
>>>>>>                                                                                 works
>>>>>>                                                                                 good
>>>>>>                                                                                 except
>>>>>>                                                                                 a problem
>>>>>>                                                                                 after
>>>>>>                                                                                 save/restore
>>>>>>                                                                                 and
>>>>>>                                                                                 on
>>>>>>                                                                                 linux
>>>>>>                                                                                 domUs
>>>>>>                                                                                 is
>>>>>>                                                                                 not
>>>>>>                                                                                 working,
>>>>>>                                                                                 for
>>>>>>                                                                                 now
>>>>>>                                                                                 I not
>>>>>>                                                                                 found
>>>>>>                                                                                 exactly
>>>>>>                                                                                 cause
>>>>>>                                                                                 and
>>>>>>                                                                                 solution.
>>>>>>                                                                                 On
>>>>>>                                                                                 mailing
>>>>>>                                                                                 list
>>>>>>                                                                                 up
>>>>>>                                                                                 to
>>>>>>                                                                                 2 years
>>>>>>                                                                                 ago
>>>>>>                                                                                 you
>>>>>>                                                                                 can
>>>>>>                                                                                 find
>>>>>>                                                                                 many
>>>>>>                                                                                 my
>>>>>>                                                                                 mails
>>>>>>                                                                                 about.
>>>>>>                                                                                 Any
>>>>>>                                                                                 help
>>>>>>                                                                                 to
>>>>>>                                                                                 test
>>>>>>                                                                                 it
>>>>>>                                                                                 is
>>>>>>                                                                                 appreciated.
>>>>>>
>>>>>>                                                                                 Sorry
>>>>>>                                                                                 for
>>>>>>                                                                                 my
>>>>>>                                                                                 bad
>>>>>>                                                                                 english.
>>>>>>
>>>>>>>
>>>>>>>                                                                                 Also,
>>>>>>>                                                                                 can 
>>>>>>>                                                                                 I get
>>>>>>>                                                                                 invited
>>>>>>>                                                                                 at
>>>>>>>                                                                                 xendevel
>>>>>>>                                                                                 irc
>>>>>>>                                                                                 =3F
>>>>>>>                                                                                 regards
>>>>>>>
>>>>>>>                                                                                 Greg
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                                                                                 _______________________________________________
>>>>>>>                                                                                 Xen-devel mailing list
>>>>>>>                                                                                 Xen-devel@lists.xen.org  <mailto:Xen-devel@lists.xen.org>
>>>>>>>                                                                                 http://lists.xen.org/xen-devel
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>>
>>
>
>
>
>
>
>
>
>


--------------040102060609020209000305
Content-Type: text/html; charset=utf-8
Content-Length: 238668
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Type">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div class=3D"moz-cite-prefix">Il 05/01/2015 00:24, Goonie Windy ha
      scritto:<br>
    </div>
    <blockquote
cite=3D"mid:CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com"
      type=3D"cite">
      <div dir=3D"ltr">AND DMESG<br>
        [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8
        ip 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in <a
          moz-do-not-send=3D"true" href=3D"http://libc-2.19.so">libc-2.19.so</a>[7f92a64d4000+19f000]<br>
        [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state<br>
        [ 3096.118716] device vif5.0-emu left promiscuous mode<br>
        [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state<br>
        [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3584.894741] device vif5.0 left promiscuous mode<br>
        [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3681.878054] device vif6.0 entered promiscuous mode<br>
        [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3682.193528] device vif6.0-emu entered promiscuous mode<br>
        [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state<br>
        [ 3780.535444] device vif6.0-emu left promiscuous mode<br>
        [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state<br>
        [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state<br>
        [ 3899.555577] device vif6.0 left promiscuous mode<br>
        [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state<br>
        <br>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">2015-01-05 0:21 GMT+01:00 Goonie Windy
          <span dir=3D"ltr">&lt;<a moz-do-not-send=3D"true"
              href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir=3D"ltr">=C2=A0 GNU nano
              2.2.6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Fichier=C2=A0:
              qemu-dm-win7.log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
              <br>
              <br>
              (/usr/local/sbin/xl:9535): Spice-Warning **:
              reds.c:1863:reds_handle_ticket: Invalid password<br>
              main_channel_link: add main channel client<br>
              main_channel_handle_parsed: net test: latency 0.318000 ms,
              bitrate 26597402597 bps (25365.259740 Mbps)<br>
              inputs_connect: inputs channel client create<br>
              red_dispatcher_set_cursor_peer:<br>
              main_channel_handle_parsed: agent start<br>
              main_channel_handle_parsed: agent start<br>
              *** Error in `/usr/lib/xen/bin/qemu-system-i386': double
              free or corruption (out): 0x00007f0e38dd26f0 ***<br>
              <br>
            </div>
            <div class=3D"gmail_extra"><br>
              <div class=3D"gmail_quote">2015-01-05 0:00 GMT+01:00 Goonie
                Windy <span dir=3D"ltr">&lt;<a moz-do-not-send=3D"true"
                    href=3D"mailto:monsieur.goonie@gmail.com"
                    target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <div dir=3D"ltr">Should add this too:<br>
                    host=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : E766<br>
                    release=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 3.16.0-4-amd64<br>
                    version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : #1 SMP Debian 3.16.7-ckt2-1
                    (2014-12-08)<br>
                    machine=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : x86_64<br>
                    nr_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    max_cpu_id=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 7<br>
                    nr_nodes=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 1<br>
                    cores_per_socket=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2<br>
                    threads_per_core=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2<br>
                    cpu_mhz=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2594<br>
                    hw_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:00000281<br>
                    virt_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : hvm hvm_directio<br>
                    total_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 8055<br>
                    free_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2309<br>
                    sharing_freed_memory=C2=A0=C2=A0 : 0<br>
                    sharing_used_memory=C2=A0=C2=A0=C2=A0 : 0<br>
                    outstanding_claims=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    free_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    xen_major=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    xen_minor=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 5<br>
                    xen_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : .0-rc<br>
                    xen_version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4.5.0-rc<br>
                    xen_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : xen-3.0-x86_64
                    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
                    hvm-3.0-x86_64 <br>
                    xen_scheduler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : credit<br>
                    xen_pagesize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4096<br>
                    platform_params=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    virt_start=3D0xffff800000000000<br>
                    xen_changeset=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : Thu Dec 18 10:02:16 2014
                    +0000 git:36174af-dirty<br>
                    xen_commandline=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : placeholder<br>
                    cc_compiler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : gcc (Debian 4.9.2-10) 4.9.2<br>
                    cc_compile_by=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : root<br>
                    cc_compile_domain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : <br>
                    cc_compile_date=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : Wed Dec 31 01:20:47 CET
                    2014<br>
                    xend_config_format=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    <br>
                    <br>
                  </div>
                  <div class=3D"gmail_extra"><br>
                    <div class=3D"gmail_quote">2015-01-04 23:39 GMT+01:00
                      Goonie Windy <span dir=3D"ltr">&lt;<a
                          moz-do-not-send=3D"true"
                          href=3D"mailto:monsieur.goonie@gmail.com"
                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0
                        0 .8ex;border-left:1px #ccc
                        solid;padding-left:1ex">
                        <div dir=3D"ltr">My qemu log after spice failure:<br>
                          (/usr/local/sbin/xl:4254): Spice-Warning **:
                          reds.c:1863:reds_handle_ticket: Invalid
                          password<br>
                          main_channel_link: add main channel client<br>
                          main_channel_handle_parsed: net test: latency
                          0.257000 ms, bitrate 81920000000 bps
                          (78125.000000 Mbps)<br>
                          red_dispatcher_set_cursor_peer: <br>
                          inputs_connect: inputs channel client create<br>
                          main_channel_handle_parsed: agent start<br>
                          main_channel_handle_parsed: agent start<br>
                          qemu-system-i386: malloc.c:2372: sysmalloc:
                          Assertion `(old_top =3D=3D (((mbinptr) (((char *)
                          &amp;((av)-&gt;bins[((1) - 1) * 2])) -
                          __builtin_offsetof (struct malloc_chunk,
                          fd)))) &amp;&amp; old_size =3D=3D 0) || ((unsigned
                          long) (old_size) &gt;=3D (unsigned
                          long)((((__builtin_offsetof (struct
                          malloc_chunk, fd_nextsize))+((2
                          *(sizeof(size_t))) - 1)) &amp; ~((2
                          *(sizeof(size_t))) - 1))) &amp;&amp;
                          ((old_top)-&gt;size &amp; 0x1) &amp;&amp;
                          ((unsigned long) old_end &amp; pagemask) =3D=3D
                          0)' failed.<br>
                          <br>
                        </div>
                        <div class=3D"gmail_extra"><br>
                          <div class=3D"gmail_quote">2015-01-04 23:10
                            GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a
                                moz-do-not-send=3D"true"
                                href=3D"mailto:monsieur.goonie@gmail.com"
                                target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                            <blockquote class=3D"gmail_quote"
                              style=3D"margin:0 0 0 .8ex;border-left:1px
                              #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div>This one is bug from trying to
                                  install winpv=C2=A0 bus driver<br>
                                </div>
                              </div>
                            </blockquote>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
    If you followed all my advices your configurations should be ok and
    you found a new bug or inexpected case.<br>
    <span id=3D"result_box" class=3D"short_text" lang=3D"en"><span class=3D"hps">I
        do not have</span> <span class=3D"hps">the knowledge to</span> <span
        class=3D"hps">solve it.</span></span><br>
    Added to cc also win-pv-devel<br>
    Can someone take a look to this problem please=3F<br>
    <br>
    <blockquote
cite=3D"mid:CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com"
      type=3D"cite">
      <div class=3D"gmail_extra">
        <div class=3D"gmail_quote">
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div class=3D"gmail_extra">
              <div class=3D"gmail_quote">
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <div class=3D"gmail_extra">
                    <div class=3D"gmail_quote">
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0
                        0 .8ex;border-left:1px #ccc
                        solid;padding-left:1ex">
                        <div class=3D"gmail_extra">
                          <div class=3D"gmail_quote">
                            <blockquote class=3D"gmail_quote"
                              style=3D"margin:0 0 0 .8ex;border-left:1px
                              #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div><br>
                                </div>
                                <div>
                                  <div><br>
                                    Program received signal SIGSEGV,
                                    Segmentation fault.<br>
                                    _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    bytes=3Dbytes@entry=3D73729)<br>
                                    =C2=A0=C2=A0=C2=A0 at malloc.c:3775<br>
                                    3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun fichier ou
                                    dossier de ce type.<br>
                                    (gdb) bt full<br>
                                    #0=C2=A0 _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=3D73729) at
                                    malloc.c:3775<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 p =3D 0x555557303880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 iters =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 idx =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bin =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 victim =3D 0x555557303870<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 victim_index =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder =3D 0x555557315880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 block =3D 4<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bit =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 map =3D 66981887<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "_int_malloc"<br>
                                    #1=C2=A0 0x00007ffff3eb74a1 in
                                    _int_realloc (<br>
                                    =C2=A0=C2=A0=C2=A0 av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    oldp=3Doldp@entry=3D0x55555689d270, <br>
                                    =C2=A0=C2=A0=C2=A0 oldsize=3Doldsize@entry=3D36880,
                                    nb=3Dnb@entry=3D73744) at malloc.c:4286<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newp =3D &lt;optimized out&gt;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newsize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 next =3D 0x5555568a6280<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 copysize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ncopies =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "_int_realloc"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextsize =3D &lt;optimized
                                    out&gt;<br>
                                    #2=C2=A0 0x00007ffff3eb85f9 in
                                    __GI___libc_realloc
                                    (oldmem=3D0x55555689d280, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3D73728) at malloc.c:3029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ar_ptr =3D 0x7ffff41df620
                                    &lt;main_arena&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newp =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hook =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 oldp =3D 0x55555689d270<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 oldsize =3D 36880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "__libc_realloc"<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    #3=C2=A0 0x0000555555819563 in
                                    realloc_and_trace
                                    (mem=3D0x55555689d280, n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at vl.c:2857<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ptr =3D 0x7fffffffcf30<br>
                                    #4=C2=A0 0x00007ffff708388e in g_realloc
                                    (mem=3D&lt;optimized out&gt;,
                                    n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    #5=C2=A0 0x000055555582d3e2 in
                                    phys_map_node_reserve
                                    (map=3D0x5555563ccf98, nodes=3D18)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:152<br>
                                    No locals.<br>
                                    #6=C2=A0 0x000055555582d701 in
                                    phys_page_set (d=3D0x5555563ccf90,
                                    index=3D160, nb=3D16, <br>
                                    =C2=A0=C2=A0=C2=A0 leaf=3D5) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:211<br>
                                    No locals.<br>
                                    #7=C2=A0 0x000055555582f1ae in
                                    register_multipage
                                    (d=3D0x5555563ccf90, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffffcfe0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:937<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 start_addr =3D 655360<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 section_index =3D 5<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 num_pages =3D 16<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "register_multipage"<br>
                                    #8=C2=A0 0x000055555582f4b4 in mem_add
                                    (listener=3D0x55555633b898, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffffd1a0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:968<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D 0x5555563ccf90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 now =3D {mr =3D 0x55555636dd30,
                                    address_space =3D 0x55555633b860, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remain =3D {mr =3D
                                    0x55555636dd30, address_space =3D
                                    0x55555633b860, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 page_size =3D {lo =3D 4096, hi =3D
                                    0}<br>
                                    #9=C2=A0 0x0000555555892a01 in
                                    address_space_update_topology_pass (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x55555633b860,
                                    old_view=3D0x555556495910,
                                    new_view=3D0x55555687f2c0, <br>
                                    =C2=A0=C2=A0=C2=A0 adding=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:736<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 _listener =3D 0x55555633b898<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 iold =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 inew =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frold =3D 0x5555565fd828<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frnew =3D 0x5555568b23e8<br>
                                    #10 0x0000555555892fd7 in
                                    address_space_update_topology
                                    (as=3D0x55555633b860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:765<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 old_view =3D 0x555556495910<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 new_view =3D 0x55555687f2c0<br>
                                    #11 0x00005555558930fc in
                                    memory_region_transaction_commit ()<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:800<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "memory_region_transaction_commit"<br>
                                    #12 0x00005555558951ed in
                                    memory_region_del_subregion
                                    (mr=3D0x5555562855d0, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0 subregion=3D0x555556349250)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:1487<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "memory_region_del_subregion"<br>
                                    #13 0x000055555570fdf3 in
                                    pci_update_mappings
                                    (d=3D0x5555563489f0)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci.c:1113<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 r =3D 0x555556348af8<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 new_addr =3D
                                    18446744073709551615<br>
                                    #14 0x0000555555710110 in
                                    pci_default_write_config
                                    (d=3D0x5555563489f0, addr=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D0, l=3D2) at hw/pci/pci.c:1168<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 was_irq_disabled =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "pci_default_write_config"<br>
                                    #15 0x0000555555714125 in
                                    pci_host_config_write_common (<br>
                                    =C2=A0=C2=A0=C2=A0 pci_dev=3D0x5555563489f0, addr=3D4,
                                    limit=3D256, val=3D1024, len=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci_host.c:57<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "pci_host_config_write_common"<br>
                                    #16 0x0000555555714229 in
                                    pci_data_write (s=3D0x5555562a8cf0,
                                    addr=3D<a moz-do-not-send=3D"true"
                                      href=3D"tel:2147487748"
                                      value=3D"+12147487748"
                                      target=3D"_blank">2147487748</a>, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2) at
                                    hw/pci/pci_host.c:84<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pci_dev =3D 0x5555563489f0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 config_addr =3D 4<br>
                                    #17 0x0000555555714351 in
                                    pci_host_data_write
                                    (opaque=3D0x555556311470, addr=3D0, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2) at
                                    hw/pci/pci_host.c:137<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s =3D 0x555556311470<br>
                                    #18 0x0000555555891531 in
                                    memory_region_write_accessor
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, value=3D0x7fffffffd5e8,
                                    size=3D2, shift=3D0, mask=3D65535)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:441<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tmp =3D 1024<br>
                                    #19 0x0000555555891636 in
                                    access_with_adjusted_size (addr=3D0, <br>
                                    =C2=A0=C2=A0=C2=A0 value=3D0x7fffffffd5e8, size=3D2,
                                    access_size_min=3D1,
                                    access_size_max=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 access=3D0x5555558914b0
                                    &lt;memory_region_write_accessor&gt;,
                                    mr=3D0x555556313860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:478<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 access_mask =3D 65535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 access_size =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br>
                                    #20 0x0000555555893772 in
                                    memory_region_dispatch_write
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, data=3D1024, size=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:985<br>
                                    No locals.<br>
                                    #21 0x0000555555896068 in
                                    io_mem_write (mr=3D0x555556313860,
                                    addr=3D0, val=3D1024, <br>
                                    =C2=A0=C2=A0=C2=A0 size=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:1744<br>
                                    No locals.<br>
                                    #22 0x000055555583183c in
                                    address_space_rw (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 "", <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2, is_write=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:2029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 l =3D 2<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ptr =3D 0x7fffffffd6f4
                                    "\377\377\377\377"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 val =3D 1024<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 addr1 =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mr =3D 0x555556313860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 error =3D false<br>
                                    #23 0x0000555555831b12 in
                                    address_space_write (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 "", <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:2091<br>
                                    No locals.<br>
                                    #24 0x000055555588f486 in cpu_outw
                                    (addr=3D3324, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/ioport.c:77<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 buf =3D "\000\004"<br>
                                    #25 0x000055555590f460 in do_outp
                                    (addr=3D3324, size=3D2, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668<br>
                                    No locals.<br>
                                    #26 0x000055555590f66f in
                                    cpu_ioreq_pio (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br>
                                    #27 0x000055555590f910 in
                                    handle_ioreq (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781<br>
                                    No locals.<br>
                                    #28 0x000055555590fc0f in
                                    cpu_handle_ioreq
                                    (opaque=3D0x5555562abf10)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D 0x5555562abf10<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 req =3D 0x7ffff7ff3000<br>
                                    #29 0x000055555577c385 in
                                    qemu_iohandler_poll
                                    (pollfds=3D0x555556277600, ret=3D1)<br>
                                    =C2=A0=C2=A0=C2=A0 at iohandler.c:143<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 revents =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pioh =3D 0x55555627ca90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ioh =3D 0x555556366320<br>
                                    #30 0x000055555577d14b in
                                    main_loop_wait (nonblocking=3D0) at
                                    main-loop.c:485<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D 4294967295<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D 16717983<br>
                                    #31 0x0000555555815fbd in main_loop
                                    () at vl.c:2056<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D false<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                    #32 0x000055555581d66b in main
                                    (argc=3D64, argv=3D0x7fffffffdc78, <br>
                                    =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde80) at
                                    vl.c:4535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                    0x55555598c664 ""<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x555556275340
                                    "dc"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D 0x5555563564e0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D 0x555556275290<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D
                                    0x555556276ef0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D 0x555555d72700
                                    &lt;qemu_machine_opts&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D 0x7fffffffe61a
                                    "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D
                                    0x55555626e030<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D 0x555555d78540
                                    &lt;xenfv_machine&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D {malloc =3D
                                    0x55555581950b
                                    &lt;malloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D 0x555555819540
                                    &lt;realloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D 0x555555819584
                                    &lt;free_and_trace&gt;, calloc =3D
                                    0x0, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D 0x0,
                                    try_realloc =3D 0x0}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "main"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine =3D
                                    0x555555d78540
                                    &lt;xenfv_machine&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a
                                      moz-do-not-send=3D"true"
                                      href=3D"tel:2013265920"
                                      value=3D"+12013265920"
                                      target=3D"_blank">2013265920</a>,
                                    boot_order =3D 0x555556275340 "dc", <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0,
                                    kernel_cmdline =3D 0x55555598c664 "",
                                    <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0,
                                    cpu_model =3D 0x0}<br>
                                    <br>
                                  </div>
                                </div>
                              </div>
                              <div class=3D"gmail_extra"><br>
                                <div class=3D"gmail_quote">2015-01-04
                                  22:29 GMT+01:00 Goonie Windy <span
                                    dir=3D"ltr">&lt;<a
                                      moz-do-not-send=3D"true"
                                      href=3D"mailto:monsieur.goonie@gmail.com"
                                      target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                  <blockquote class=3D"gmail_quote"
                                    style=3D"margin:0 0 0
                                    .8ex;border-left:1px #ccc
                                    solid;padding-left:1ex">
                                    <div dir=3D"ltr">
                                      <div>
                                        <div>
                                          <div>
                                            <div>Copyright (C) 2014 Free
                                              Software Foundation, Inc.<br>
                                              License GPLv3+: GNU GPL
                                              version 3 or later &lt;<a
                                                moz-do-not-send=3D"true"
                                                href=3D"http://gnu.org/licenses/gpl.html"
                                                target=3D"_blank">http://gnu.org/licenses/gpl.html</a>&gt;<br>
                                              This is free software: you
                                              are free to change and
                                              redistribute it.<br>
                                              There is NO WARRANTY, to
                                              the extent permitted by
                                              law.=C2=A0 Type "show copying"<br>
                                              and "show warranty" for
                                              details.<br>
                                              This GDB was configured as
                                              "x86_64-linux-gnu".<br>
                                              Type "show configuration"
                                              for configuration details.<br>
                                              For bug reporting
                                              instructions, please see:<br>
                                              &lt;<a
                                                moz-do-not-send=3D"true"
                                                href=3D"http://www.gnu.org/software/gdb/bugs/"
                                                target=3D"_blank">http://www.gnu.org/software/gdb/bugs/</a>&gt;.<br>
                                              Find the GDB manual and
                                              other documentation
                                              resources online at:<br>
                                              &lt;<a
                                                moz-do-not-send=3D"true"
                                                href=3D"http://www.gnu.org/software/gdb/documentation/"
                                                target=3D"_blank">http://www.gnu.org/software/gdb/documentation/</a>&gt;.<br>
                                              For help, type "help".<br>
                                              Type "apropos word" to
                                              search for commands
                                              related to "word"...<br>
                                              Reading symbols from
                                              /usr/lib/xen/bin/qemu-system-i386...done.<br>
                                              (gdb) target remote
                                              localhost:1234<br>
                                              Remote debugging using
                                              localhost:1234<br>
                                              Reading symbols from
                                              /lib64/ld-linux-x86-64.so.2...Reading
                                              symbols from
                                              /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.<br>
                                              done.<br>
                                              Loaded symbols for
                                              /lib64/ld-linux-x86-64.so.2<br>
                                              0x00007ffff7ddd190 in
                                              _start () from
                                              /lib64/ld-linux-x86-64.so.2<br>
                                              (gdb) c<br>
                                              Continuing.<br>
                                              <br>
                                              Program received signal
                                              SIGSEGV, Segmentation
                                              fault.<br>
                                              0x00007ffff50e5801 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c750)
                                              at char_device.c:443<br>
                                              443=C2=A0=C2=A0=C2=A0 char_device.c:
                                              Aucun fichier ou dossier
                                              de ce type.<br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              "spice_char_device_start"<br>
                                              #3=C2=A0 0x00007ffff51299c6 in
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<br>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              "spice_server_vm_start"<br>
                                              #4=C2=A0 0x00005555557f40c9 in
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 in
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 in
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 in
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                              "device_reset"<br>
                                              #8=C2=A0 0x0000555555697a56 in
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 in
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                              "qemu_system_reset"<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandler.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 ""<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 "dc"<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "main"<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a
                                                moz-do-not-send=3D"true"
                                                href=3D"tel:2013265920"
                                                value=3D"+12013265920"
                                                target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 "dc", <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 "", <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<br>
                                            </div>
                                          </div>
                                          (gdb) bt full ecc<br>
                                          No symbol "ecc" in current
                                          context.
                                          <div>
                                            <div><br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              "spice_char_device_start"<br>
                                              #3=C2=A0 0x00007ffff51299c6 in
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<br>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              "spice_server_vm_start"<br>
                                              #4=C2=A0 0x00005555557f40c9 in
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 in
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 in
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 in
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                              "device_reset"<br>
                                              #8=C2=A0 0x0000555555697a56 in
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 in
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                              "qemu_system_reset"<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandler.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 ""<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 "dc"<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "main"<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a
                                                moz-do-not-send=3D"true"
                                                href=3D"tel:2013265920"
                                                value=3D"+12013265920"
                                                target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 "dc", <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 "", <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<br>
                                              <br>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                        AND <br>
                                        <br>
                                      </div>
                                      attached files<br>
                                      <br>
                                      <br>
                                      <div><br>
                                        <div><br>
                                          <br>
                                          <br>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                    <div>
                                      <div>
                                        <div class=3D"gmail_extra"><br>
                                          <div class=3D"gmail_quote">2015-01-04
                                            22:24 GMT+01:00 Goonie Windy
                                            <span dir=3D"ltr">&lt;<a
                                                moz-do-not-send=3D"true"
                                                href=3D"mailto:monsieur.goonie@gmail.com"
                                                target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                            <blockquote
                                              class=3D"gmail_quote"
                                              style=3D"margin:0 0 0
                                              .8ex;border-left:1px #ccc
                                              solid;padding-left:1ex">
                                              <div dir=3D"ltr">GNU gdb
                                                (Debian 7.7.1+dfsg-5)
                                                7.7.1<br>
                                                Copyright (C) 2014 Free
                                                Software Foundation,
                                                Inc.<br>
                                                License GPLv3+: GNU GPL
                                                version 3 or later &lt;<a
                                                  moz-do-not-send=3D"true"
href=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/licenses/gpl.html</a>&gt;<br>
                                                This is free software:
                                                you are free to change
                                                and redistribute it.<br>
                                                There is NO WARRANTY, to
                                                the extent permitted by
                                                law.=C2=A0 Type "show
                                                copying"<br>
                                                and "show warranty" for
                                                details.<br>
                                                This GDB was configured
                                                as "x86_64-linux-gnu".<br>
                                                Type "show
                                                configuration" for
                                                configuration details.<br>
                                                For bug reporting
                                                instructions, please
                                                see:<br>
                                                &lt;<a
                                                  moz-do-not-send=3D"true"
href=3D"http://www.gnu.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gdb/bugs/</a>&gt;.<br>
                                                Find the GDB manual and
                                                other documentation
                                                resources online at:<br>
                                                &lt;<a
                                                  moz-do-not-send=3D"true"
href=3D"http://www.gnu.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/software/gdb/documentation/</a>&gt;.<br>
                                                For help, type "help".<br>
                                                Type "apropos word" to
                                                search for commands
                                                related to "word"...<br>
                                                Reading symbols from
                                                /usr/lib/xen/bin/qemu-system-i386...done.<br>
                                                (gdb) target remote
                                                localhost:1234<span><br>
                                                  Remote debugging using
                                                  localhost:1234<br>
                                                </span><span>Reading
                                                  symbols from
                                                  /lib64/ld-linux-x86-64.so.2...Reading
                                                  symbols from
                                                  /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.<br>
                                                  done.<br>
                                                  Loaded symbols for
                                                  /lib64/ld-linux-x86-64.so.2<br>
                                                  0x00007ffff7ddd190 in
                                                  _start () from
                                                  /lib64/ld-linux-x86-64.so.2<br>
                                                  (gdb) c<br>
                                                  Continuing.<br>
                                                  <br>
                                                </span>Program received
                                                signal SIGSEGV,
                                                Segmentation fault.<br>
                                                0x00007ffff50e5801 in
                                                spice_char_device_write_to_device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x55555647c750)
                                                at char_device.c:443<br>
                                                443=C2=A0=C2=A0=C2=A0 char_device.c:
                                                Aucun fichier ou dossier
                                                de ce type.<br>
                                                (gdb) bt full<br>
                                                #0=C2=A0 0x00007ffff50e5801
                                                in
                                                spice_char_device_write_to_device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x55555647c750)
                                                at char_device.c:443<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sif =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 total =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n =3D
                                                &lt;optimized out&gt;<br>
                                                #1=C2=A0 0x00007ffff50e6497
                                                in
                                                spice_char_device_write_to_device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0 dev=3D0x55555647c750)
                                                at char_device.c:436<br>
                                                No locals.<br>
                                                #2=C2=A0
                                                spice_char_device_start
                                                (dev=3D0x55555647c750) at
                                                char_device.c:798<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                "spice_char_device_start"<br>
                                                #3=C2=A0 0x00007ffff51299c6
                                                in spice_server_vm_start
                                                (s=3D&lt;optimized
                                                out&gt;)<br>
                                                =C2=A0=C2=A0=C2=A0 at reds.c:3795<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 st_item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                "spice_server_vm_start"<br>
                                                #4=C2=A0 0x00005555557f40c9
                                                in
                                                qemu_spice_display_start
                                                () at
                                                ui/spice-core.c:909<br>
                                                No locals.<br>
                                                #5=C2=A0 0x00005555556c4365
                                                in qxl_hard_reset
                                                (d=3D0x55555637d7e0,
                                                loadvm=3D0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1172<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 startstop =3D true<br>
                                                #6=C2=A0 0x00005555556c43a3
                                                in qxl_reset_handler
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1180<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D
                                                0x55555637d7e0<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                #7=C2=A0 0x0000555555699658
                                                in device_reset
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:934<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 klass =3D
                                                0x555556270410<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                                "device_reset"<br>
                                                #8=C2=A0 0x0000555555697a56
                                                in qdev_reset_one
                                                (dev=3D0x55555637d7e0,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:240<br>
                                                No locals.<br>
                                                #9=C2=A0 0x0000555555697f64
                                                in qdev_walk_children
                                                (dev=3D0x55555637d7e0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:411<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #10 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a8ee0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                                0x55555633d4f0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #11 0x0000555555697f28
                                                in qdev_walk_children
                                                (dev=3D0x5555563131b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:403<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a8ee0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #12 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a60b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                                0x5555562a6a80<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #13 0x0000555555697b32
                                                in qbus_reset_all
                                                (bus=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:261<br>
                                                No locals.<br>
                                                #14 0x0000555555697b54
                                                in qbus_reset_all_fn
                                                (opaque=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:267<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a60b0<br>
                                                #15 0x0000555555815b1f
                                                in qemu_devices_reset ()
                                                at vl.c:1872<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re =3D
                                                0x555556375890<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                                #16 0x0000555555815bbf
                                                in qemu_system_reset
                                                (report=3Dtrue) at
                                                vl.c:1885<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mc =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                                "qemu_system_reset"<br>
                                                #17 0x000055555590fcb9
                                                in cpu_handle_ioreq
                                                (opaque=3D0x5555562b0950)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D
                                                0x5555562b0950<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 req =3D
                                                0x7ffff7ff3000<br>
                                                #18 0x000055555577c385
                                                in qemu_iohandler_poll
                                                (pollfds=3D0x555556277600,
                                                ret=3D1)<br>
                                                =C2=A0=C2=A0=C2=A0 at iohandler.c:143<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 revents =3D 1<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pioh =3D
                                                0x5555563218c0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ioh =3D
                                                0x555556362a80<br>
                                                #19 0x000055555577d14b
                                                in main_loop_wait
                                                (nonblocking=3D0) at
                                                main-loop.c:485<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D
                                                4294967295<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D
                                                17355567<br>
                                                #20 0x0000555555815fbd
                                                in main_loop () at
                                                vl.c:2056<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D
                                                false<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                                #21 0x000055555581d66b
                                                in main (argc=3D66,
                                                argv=3D0x7fffffffdc58, <br>
                                                =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde70)
                                                at vl.c:4535<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D
                                                0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                                =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                                =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                                0x55555598c664 ""<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D
                                                0x555556275380 "dc"<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D
                                                0x5555563324a0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D
                                                0x5555562752d0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D
                                                0x555556276f30<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D
                                                0x555555d72700
                                                &lt;qemu_machine_opts&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D
                                                0x7fffffffe61a
                                                "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D
                                                0x555555d78540
                                                &lt;xenfv_machine&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D
                                                0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_vnc_port =3D
                                                0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D
                                                true<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D
                                                {malloc =3D 0x55555581950b
                                                &lt;malloc_and_trace&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                                0x555555819540
                                                &lt;realloc_and_trace&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                                0x555555819584
                                                &lt;free_and_trace&gt;,
                                                calloc =3D 0x0, <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                                0x0, try_realloc =3D 0x0}<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D
                                                0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                                "main"<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine
                                                =3D 0x555555d78540
                                                &lt;xenfv_machine&gt;, <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a
                                                  moz-do-not-send=3D"true"
                                                  href=3D"tel:2013265920"
                                                  value=3D"+12013265920"
                                                  target=3D"_blank">2013265920</a>,
                                                boot_order =3D
                                                0x555556275380 "dc", <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                kernel_filename =3D 0x0,
                                                kernel_cmdline =3D
                                                0x55555598c664 "", <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                initrd_filename =3D 0x0,
                                                cpu_model =3D 0x0}<br>
                                                <br>
                                              </div>
                                              <div>
                                                <div>
                                                  <div
                                                    class=3D"gmail_extra"><br>
                                                    <div
                                                      class=3D"gmail_quote">2015-01-04
                                                      19:00 GMT+01:00
                                                      Fabio Fantoni <span
                                                        dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                      <blockquote
                                                        class=3D"gmail_quote"
                                                        style=3D"margin:0
                                                        0 0
                                                        .8ex;border-left:1px
                                                        #ccc
                                                        solid;padding-left:1ex">
                                                        <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <br>
                                                          <div>Il
                                                          04/01/2015
                                                          01:11, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">Forgot
                                                          to say that it
                                                          is not a
                                                          matter of
                                                          timeout :/,
                                                          it's when
                                                          pressing c
                                                          that it breaks<br>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-04
                                                          1:07 GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>=C2=A0ok, I'm
                                                          using the
                                                          Upstream
                                                          compiled in
                                                          Xen so I
                                                          created the
                                                          file qemu-dbg,
                                                          chmoded it
                                                          etc... <br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>But
                                                          that's as far
                                                          as I can get:
                                                          <br>
                                                          <br>
                                                          <br>
                                                          xl create
                                                          result:<br>
                                                          WARNING:
                                                          device model
                                                          override given
                                                          without
                                                          specific DM
                                                          version<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> The
                                                          problem should
                                                          solved with
                                                          this in domU's
                                                          xl cfg:<br>
device_model_version=3Dqemu-xen<span><br>
                                                          <br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote">
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>libxl:
                                                          error:
                                                          libxl_exec.c:4<span
style=3D"color:rgb(204,0,0)">21:spawn_middle_death: domain 32 device model
                                                          [-1]:
                                                          unexpectedly
                                                          exited with
                                                          exit status 0,
                                                          when we were
                                                          waiting for it
                                                          to confirm
                                                          startup</span><br>
                                                          libxl: error:
                                                          libxl_dm.c:1490:device_model_spawn_outcome:
                                                          domain 32
                                                          device model:
                                                          spawn failed
                                                          (rc=3D-3)<br>
                                                          libxl: error:
                                                          libxl_create.c:1332:domcreate_devmodel_started:
                                                          device model
                                                          did not start:
                                                          -3<br>
                                                          libxl: error:
                                                          libxl_dm.c:1594:kill_device_model:
                                                          Device Model
                                                          already exited<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> If the
                                                          problem
                                                          persist look
                                                          the domU's
                                                          qemu log.
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote">
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          </div>
                                                          <div><br>
                                                          gdb output:<br>
                                                          target remote
                                                          localhost:1234=C2=A0
                                                          c<br>
                                                          Remote
                                                          debugging
                                                          using
                                                          localhost:1234=C2=A0
                                                          c<br>
                                                          Reading
                                                          symbols from
                                                          /lib64/ld-linux-x86-64.so.2...Reading
                                                          symbols from
                                                          /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.<br>
                                                          done.<br>
                                                          Loaded symbols
                                                          for
                                                          /lib64/ld-linux-x86-64.so.2<br>
                                                          0x00007ffff7ddd190
                                                          in _start ()
                                                          from
                                                          /lib64/ld-linux-x86-64.so.2<br>
                                                          (gdb) c<br>
                                                          Continuing.<br>
                                                          [Inferior 1
                                                          (process 6455)
                                                          exited with
                                                          code 01]<br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>libxl_exec.c
                                                          shows me <br>
                                                          421(<br>
                                                          =C2=A0else {<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if
                                                          (!status)<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          LOG(ERROR, "%s
                                                          [%ld]:
                                                          unexpectedly
                                                          exited with
                                                          exit status
                                                          0,"<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          " when we were
                                                          waiting for it
                                                          to confirm
                                                          startup",<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          ss-&gt;what,
                                                          (unsigned
                                                          long)pid);<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else
                                                          if (status
                                                          &lt;=3D 127)<br>
                                                          )<br>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div>that it
                                                          is a matter of
                                                          status (=3F)=C2=A0
                                                          missing<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>That's
                                                          all I could
                                                          find out.</div>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-03
                                                          14:36
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr"><span>2015-01-03
                                                          1:24 GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          </span>
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote"><span>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>Fabio,
                                                          actually I
                                                          would have to
                                                          compile
                                                          qemu-dbg
                                                          during
                                                          compilation of
                                                          xen, right=3F<br>
                                                          </div>
                                                          <div>Because I
                                                          uninstalled it
                                                          for installing
                                                          4.5RC4.<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <div><br>
                                                          </div>
                                                          </span>
                                                          <div>If you
                                                          use qemu
                                                          compiled in
                                                          xen is not
                                                          stripped is
                                                          you have debug
                                                          enabled in xen
                                                          config
                                                          (enabled by
                                                          default except
                                                          stable
                                                          release).<br>
                                                          </div>
                                                          <div>Qemu
                                                          packages in
                                                          debian seems
                                                          not have -dbg
                                                          package
                                                          instead, I not
                                                          remember if
                                                          are at least
                                                          not stripped,
                                                          if are
                                                          stripped and
                                                          without -dbg
                                                          pkg we should
                                                          open a
                                                          bugreport
                                                          about in
                                                          debian
                                                          tracker.<br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div>=C2=A0</div>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          </div>
                                                          regards<br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-01

                                                          14:49
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <br>
                                                          <div>Il
                                                          01/01/2015
                                                          13:24, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>Hello
                                                          Fabio, well
                                                          same thing
                                                          happens with
                                                          remote-viewer,
                                                          <br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          about not
                                                          using dom0 as
                                                          desktop, it's
                                                          a laptop I'm
                                                          using for
                                                          those tests,<br>
                                                          <br>
                                                          </div>
                                                          Way to go is
                                                          to use a blank
                                                          machine with
                                                          only Xen and
                                                          then
                                                          virtualise all
                                                          machines
                                                          inside=3F<br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> Try to
                                                          post what
                                                          version of
                                                          qemu, spice
                                                          ecc your are
                                                          using, your
                                                          domU xl cfg
                                                          and backtrace
                                                          of the crash
                                                          (following the
                                                          howto I wrote
                                                          should be
                                                          simple)
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr"><br>
                                                          <br>
                                                          regards<br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          gregB<br>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-01

                                                          12:45
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <br>
                                                          <div>Il
                                                          01/01/2015
                                                          11:36, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>Actulally
                                                          I have, <br>
                                                          <br>
                                                          =C2=A0qemu-system-i38[13389]:

                                                          segfault at 0
                                                          ip
                                                          00007fd3d166d801
                                                          sp
                                                          00007ffffc8595d0
                                                          error 4 in
                                                          libspice-server.so.1.9.0[7fd3d1661000+11b000]<br>
                                                          <br>
                                                          </div>
                                                          BTW happy new
                                                          year<br>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-01

                                                          11:30
                                                          GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>Fabio, <br>
                                                          <br>
                                                          </div>
                                                          ok for all
                                                          concerning
                                                          rombios ...<br>
                                                          <br>
                                                          </div>
                                                          <div>My spicec
                                                          connection
                                                          keeps on dying
                                                          with <br>
                                                          </div>
                                                          <div>"Spice-Warning

                                                          **:
                                                          red_peer.cpp:128:connect_to_peer:
                                                          failed to
                                                          connect:
                                                          Connexion
                                                          refus=C3=A9e (111)"<br>
                                                          </div>
                                                          <div>Then I
                                                          can't access
                                                          VM and have to
                                                          destroy it.<br>
                                                          <br>
                                                          </div>
                                                          <div>I'm
                                                          connecting
                                                          with <br>
                                                          </div>
                                                          <div>spicec -h
                                                          0.0.0.0 -p
                                                          6000<br>
                                                          <br>
                                                          </div>
                                                          <div>Any idea=3F<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> spicec
                                                          is very old
                                                          and deprecated
                                                          client and was
                                                          already
                                                          removed in
                                                          spice git for
                                                          next version.<br>
                                                          there are
                                                          spicy and
                                                          virt-viewer,
                                                          the second is
                                                          better.<br>
                                                          from address
                                                          seems that you
                                                          use dom0 as
                                                          desktop, don't
                                                          seems good for
                                                          me^^''<br>
                                                          <br>
                                                          if you still
                                                          have the qemu
                                                          crash install
                                                          spice debug
                                                          package and
                                                          take a
                                                          backtrace with
                                                          gdb.<br>
                                                          <br>
                                                          For use gdb on
                                                          qemu as it
                                                          child process
                                                          is particular.<br>
                                                          <br>
                                                          <font
                                                          color=3D"#000000">Small

                                                          help with gdb
                                                          of qemu
                                                          launched by
                                                          xl:<br>
                                                          add the line
                                                          below in
                                                          domU's xl cfg:<br>
device_model_override=3D"/usr/lib/xen/bin/qemu-gdb"<br>
                                                          vi
                                                          /usr/lib/xen/bin/qemu-gdb
                                                          # create the
                                                          file, change
                                                          the qemu path
                                                          if needed<br>
                                                          #!/bin/sh<br>
                                                          exec gdbserver
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"http://0.0.0.0:1234" target=3D"_blank">0.0.0.0:1234</a>
                                                          /usr/lib/xen/bin/qemu-system-i386
                                                          "$@"</font><br>
                                                          <font
                                                          color=3D"#000000">#
                                                          after xl
                                                          create with
                                                          (qemu gdb), do
                                                          it fast after
                                                          xl create when
                                                          arrive on qemu
                                                          process launch
                                                          (before
                                                          timeout or xl
                                                          create will
                                                          fails)<br>
                                                          target remote
                                                          localhost:1234
                                                          # prepare this
                                                          command in
                                                          other ssh to
                                                          the xen dom0
                                                          and enter on
                                                          xl create when
                                                          arrive on qemu
                                                          launch<br>
                                                          c # press
                                                          immediatly<br>
                                                          bt full # when
                                                          qemu stops</font>
                                                          with crash
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote">
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          <br>
                                                          regards, <br>
                                                          <br>
                                                          </div>
                                                          <div>greg<br>
                                                          </div>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-31


                                                          10:03
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <div>Il
                                                          31/12/2014
                                                          02:26, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>Ok Fabio,
                                                          thanks to your
                                                          configure,
                                                          some bits of
                                                          hacking the
                                                          install part
                                                          and lots of
                                                          advises/support/encouragements
                                                          ;) from Mark
                                                          Pryor I ended
                                                          up<br>
                                                          </div>
                                                          =C2=A0installing
                                                          4.5RC4 with
                                                          QXL support on
                                                          Deb8 unstable.<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>So now
                                                          what do you
                                                          want me to
                                                          test fabio=3F<br>
                                                          </div>
                                                          <div>I have
                                                          win7 x64 / win
                                                          2k8R2 vms in
                                                          test mode
                                                          ready to
                                                          install
                                                          drvers.<br>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div>the
                                                          numerous
                                                          troubles I
                                                          went through
                                                          are related in
                                                          the IRCcopy
                                                          attached.<br>
                                                          </div>
                                                          <div>I
                                                          actually
                                                          couldn't build
                                                          rombios and
                                                          used seabios
                                                          provided by
                                                          the system
                                                          -like you-<br>
                                                          </div>
                                                          <div>I should
                                                          try to
                                                          compile/find
                                                          latest qxl
                                                          now.<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span>
                                                          rombios is
                                                          used only by
                                                          qemu
                                                          traditional
                                                          that is very
                                                          old, without
                                                          spice support
                                                          and hvm domUs
                                                          have lower
                                                          performance
                                                          with it.<br>
                                                          qxl drivers in
                                                          latest spice
                                                          guest tools
                                                          are signed and
                                                          not require
                                                          windows
                                                          testsigning
                                                          mode, same for
                                                          james haper
                                                          xen gplpv.<br>
                                                          If you want
                                                          test new winpv
                                                          drivers
                                                          instead you
                                                          need it.<br>
                                                          <br>
                                                          For me qxl is
                                                          working good
                                                          on w7 domUs
                                                          except after
                                                          save/restore
                                                          when "freeze"
                                                          2-3 minutes on
                                                          screen
                                                          resolution
                                                          change and I
                                                          not found the
                                                          exact problem
                                                          for now.<br>
                                                          I also not
                                                          found how to
                                                          have qxl
                                                          working in
                                                          linux domUs,
                                                          on latest test
                                                          xorg crash on
                                                          start with qxl
                                                          driver
                                                          installed.<br>
                                                          Probably other
                                                          changes are
                                                          needed in
                                                          hvmloader
                                                          and/or xen
                                                          hypervisor
                                                          and/or qxl
                                                          driver.<br>
                                                          Any help
                                                          testing it is
                                                          appreciated.
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          </div>
                                                          <div>See you
                                                          in 2K15.<br>
                                                          <br>
                                                          </div>
                                                          <div>greg B<br>
                                                          </div>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-29



                                                          14:49
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <div>Il
                                                          29/12/2014
                                                          14:13, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>
                                                          <div>ok, I'm
                                                          trying to
                                                          patch the
                                                          files with
                                                          yours,<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          I need to do
                                                          it manually
                                                          right=3F <br>
                                                          <br>
                                                          git apply is
                                                          not working
                                                          here. <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> If the
                                                          patch need a
                                                          "refresh" the
                                                          conflict
                                                          should be
                                                          solved
                                                          manually.<br>
                                                          Taking the
                                                          patch updated
                                                          from here
                                                          probably it
                                                          can be applied
                                                          to latest
                                                          4.5-rc:<br>
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"https://github.com/Fantu/Xen/commits/rebase/m2r-staging"
                                                          target=3D"_blank">https://github.com/Fantu/Xen/commits/rebase/m2r-staging</a><span><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          </div>
                                                          regards<br>
                                                          <br>
                                                          </div>
                                                          greg<br>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-29



                                                          13:46
                                                          GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">There


                                                          is an error in
                                                          pageqs
                                                          describing how
                                                          to compile
                                                          from sources
                                                          as in 4.5 <br>
                                                          <pre>cat .config
PYTHON_PREFIX_ARG=3D--install-layout=3Ddeb

</pre>
                                                          <pre>is in fact in .INSTALL
</pre>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> If
                                                          also you use
                                                          debian you can
                                                          use make
                                                          debball that
                                                          is better for
                                                          install/remove
                                                          easy and fast
                                                          test build.<br>
                                                          <br>
                                                          And for
                                                          example I use
                                                          this configure
                                                          options with
                                                          xen 4.5:<br>
                                                          ./configure
                                                          --prefix=3D/usr
                                                          --disable-blktap1


                                                          --disable-qemu-traditional


                                                          --disable-rombios


                                                          --with-system-seabios=3D/usr/share/seabios/bios-256k.bin


                                                          --with-extra-qemuu-configure-args=3D"--enable-spice




--enable-usb-redir"
--disable-blktap2<br>
                                                          I use wheezy
                                                          building
                                                          updated
                                                          packages from
                                                          sid: seabios
                                                          1.7.5-1, spice
                                                          0.12.5-1,
                                                          spice-protocol
                                                          0.12.7-1 and
                                                          usbredir
                                                          0.7-1.<br>
                                                          If you use
                                                          jessie instead
                                                          you have all
                                                          packages
                                                          updated.<br>
                                                          <br>
                                                          About python
                                                          I'm using this
                                                          workaround
                                                          (before
                                                          execute
                                                          configure)
                                                          even if
                                                          probably is
                                                          not the best:<br>
                                                          <span
                                                          title=3D"Config.mk">Config.mk</span><br>
                                                          -<span>PYTHON_PREFIX_ARG</span>
                                                          =3F=3D<span>
                                                          --prefix=3D"</span><span><span>$(</span><span>PREFIX</span><span>)</span></span><span>"</span><br>
                                                          +<span>PYTHON_PREFIX_ARG</span>
                                                          =3F=3D
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote">
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr"><br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-29



                                                          1:20 GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>well
                                                          figured out it
                                                          is because you
                                                          have to
                                                          "enforce"
                                                          locale:=C2=A0
                                                          export
                                                          LC_ALL=3Den_US.utf-8
                                                          if keyboard
                                                          mapping is
                                                          else<br>
                                                          </div>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-28




                                                          21:19
                                                          GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>Trying to
                                                          compile xen
                                                          4.5RC4 in
                                                          order to test
                                                          your patch I
                                                          end up with=C2=A0
                                                          these errors
                                                          compiling the
                                                          Seabios
                                                          directories,<br>
                                                          <br>
                                                          </div>
                                                          any idea=3F<br>
                                                          <br>
                                                          =C2=A0 Compiling to
                                                          assembler
                                                          out/src/asm-offsets.s<br>
                                                          =C2=A0 Generating
                                                          offset file
                                                          out/asm-offsets.h<br>
                                                          =C2=A0 Compiling
                                                          (16bit)
                                                          out/romlayout.o<br>
                                                          =C2=A0 Building ld
                                                          scripts<br>
                                                          Version:
                                                          rel-1.7.5-0-ge51488c-20141228_210340-E766<br>
                                                          Traceback
                                                          (most recent
                                                          call last):<br>
                                                          =C2=A0 File
                                                          "./scripts/layoutrom.py",
                                                          line 709, in
                                                          &lt;module&gt;<br>
                                                          =C2=A0=C2=A0=C2=A0 main()<br>
                                                          =C2=A0 File
                                                          "./scripts/layoutrom.py",
                                                          line 671, in
                                                          main<br>
                                                          =C2=A0=C2=A0=C2=A0 info16 =3D
                                                          parseObjDump(infile16,
                                                          '16')<br>
                                                          =C2=A0 File
                                                          "./scripts/layoutrom.py",
                                                          line 586, in
                                                          parseObjDump<br>
                                                          =C2=A0=C2=A0=C2=A0
                                                          relocsection =3D
sectionmap[sectionname]<br>
                                                          KeyError:
'.text.asm./home/goon/xen/tools/firmware/seabios-dir-remote/src/fw/smp.c.79'<br>
                                                          Makefile:155:
                                                          recipe for
                                                          target
                                                          'out/romlayout16.lds'
                                                          failed<br>
                                                          make[6]: ***
                                                          [out/romlayout16.lds]
                                                          Error 1<br>
                                                          make[6]:
                                                          Leaving
                                                          directory
                                                          '/home/goon/xen/tools/firmware/seabios-dir-remote'<br>
                                                          /home/goon/xen/tools/firmware/../../tools/Rules.mk:116:





                                                          recipe for
                                                          target
                                                          'subdir-all-seabios-dir'
                                                          failed<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-27





                                                          17:35
                                                          GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>
                                                          <div>Hello
                                                          Fabio,<br>
                                                          <br>
                                                          Sure thing I
                                                          will help
                                                          debug the win7
                                                          and the win8
                                                          versions.<br>
                                                          </div>
                                                          Where to
                                                          start=3F<br>
                                                          <br>
                                                          </div>
                                                          I'll try to
                                                          see if I can
                                                          patch with
                                                          patch from <a
moz-do-not-send=3D"true"
href=3D"https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe"
target=3D"_blank">https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe</a>
                                                          and if not
                                                          will post
                                                          result.<br>
                                                          <br>
                                                          <br>
                                                          best regards,<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          greg Bahde<br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-27





                                                          15:10
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <br>
                                                          <div>Il
                                                          27/12/2014
                                                          02:15, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>
                                                          <div>I tried
                                                          to install Qxl
                                                          drivers under
                                                          win7/win
                                                          2k8/win8.1=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          all=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 x64
                                                          versions,
                                                          without any
                                                          luck.<br>
                                                          <br>
                                                          <br>
                                                          admin message
                                                          is as follow:<br>
                                                          Driver
                                                          Management
                                                          concluded the
                                                          process to
                                                          install driver
                                                          FileRepository\qxl.inf_amd64_






                                                          <div dir=3D"ltr">neutral_f0c429882d5c81ed\qxl.inf





                                                          for Device
                                                          Instance ID
                                                          PCI\VEN_1013&amp;DEV_00B8&amp;SUBSYS_11001AF4&amp;REV_00\3&amp;267A616A&amp;1&amp;28






                                                          with the
                                                          following
                                                          status:
                                                          0xe000022d.</div>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          Does <br>
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"http://lists.xen.org/archives/html/xen-devel/2014-05/msg03214.html"
target=3D"_blank">http://lists.xen.org/archives/html/xen-devel/2014-05/msg03214.html</a><br>
                                                          <br>
                                                          </div>
                                                          can it be
                                                          installed on
                                                          my xen stack=3F
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> Yes
                                                          but probably
                                                          require a
                                                          small refresh,
                                                          I always
                                                          posted the
                                                          patch based on
                                                          updated
                                                          xen-unstable.
                                                          <br>
                                                          <br>
                                                          Here qxl patch
                                                          refreshed for
                                                          xen 4.5 if
                                                          needed:<br>
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe"
target=3D"_blank">https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe</a><br>
                                                          <br>
                                                          Here the
                                                          latest spice
                                                          guest tools
                                                          for windows
                                                          with qxl
                                                          driver
                                                          included:<br>
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"http://www.spice-space.org/download/binaries/spice-guest-tools/spice-guest-tools-0.74.exe"
target=3D"_blank">http://www.spice-space.org/download/binaries/spice-guest-tools/spice-guest-tools-0.74.exe</a><br>
                                                          <br>
                                                          Windows &gt;=3D8
                                                          and similar
                                                          require a new
                                                          qxl drivers,
                                                          there are a
                                                          beta build but
                                                          latest tried
                                                          some months
                                                          ago have
                                                          serious bug
                                                          and I not
                                                          found recent
                                                          build full
                                                          working on
                                                          windows 8.<br>
                                                          <br>
                                                          On xen windows
                                                          7 domUs qxl
                                                          works good
                                                          except a
                                                          problem after
                                                          save/restore
                                                          and on linux
                                                          domUs is not
                                                          working, for
                                                          now I not
                                                          found exactly
                                                          cause and
                                                          solution.<br>
                                                          On mailing
                                                          list up to 2
                                                          years ago you
                                                          can find many
                                                          my mails
                                                          about.<br>
                                                          Any help to
                                                          test it is
                                                          appreciated.<br>
                                                          <br>
                                                          Sorry for my
                                                          bad english.<br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite"><span>
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          Also, can=C2=A0 I
                                                          get invited at
                                                          xendevel irc =3F<br>
                                                          regards<br>
                                                          <br>
                                                          </div>
                                                          Greg <br>
                                                          </div>
                                                          <br>
                                                          <fieldset></fieldset>
                                                          <br>
                                                          </span>
                                                          <pre>_______________________________________________
Xen-devel mailing list
<a moz-do-not-send=3D"true" href=3D"mailto:Xen-devel@lists.xen.org" target=3D"_blank">Xen-devel@lists.xen.org</a>
<a moz-do-not-send=3D"true" href=3D"http://lists.xen.org/xen-devel" target=3D"_blank">http://lists.xen.org/xen-devel</a>
</pre>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                        </div>
                                                      </blockquote>
                                                    </div>
                                                    <br>
                                                  </div>
                                                </div>
                                              </div>
                                            </blockquote>
                                          </div>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                  </blockquote>
                                </div>
                                <br>
                              </div>
                            </blockquote>
                          </div>
                          <br>
                        </div>
                      </blockquote>
                    </div>
                    <br>
                  </div>
                </blockquote>
              </div>
              <br>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>

--------------040102060609020209000305--


--===============6551787272704672436==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--===============6551787272704672436==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jan 05 09:09:06 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 05 Jan 2015 09:09:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y83er-0007di-Tc; Mon, 05 Jan 2015 09:09:05 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1Y83ep-0007dS-D2
	for win-pv-devel@lists.xenproject.org; Mon, 05 Jan 2015 09:09:04 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	D2/05-25276-EA45AA45; Mon, 05 Jan 2015 09:09:02 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-2.tower-21.messagelabs.com!1420448938!11220533!1
X-Originating-IP: [74.125.82.170]
X-SpamReason: No, hits=2.2 required=7.0 tests=BIZ_TLD,BODY_RANDOM_LONG,
	HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18691 invoked from network); 5 Jan 2015 09:08:58 -0000
Received: from mail-we0-f170.google.com (HELO mail-we0-f170.google.com)
	(74.125.82.170)
	by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Jan 2015 09:08:58 -0000
Received: by mail-we0-f170.google.com with SMTP id w61so7512139wes.29
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 05 Jan 2015 01:08:57 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:cc:subject:references:in-reply-to:content-type;
	bh=1LGHFPi0IMHVvmKNB3nB6HCaOSjcMDpSaYWmEgaRxkE=;
	b=Mdhvrjwc2iG0d/oK53cJlvZoxSusOGrny1sOQhNjNwUQSjDk3pc36Y4eiG9WjHVnAW
	sXwtxfVi1Ho+l88jKhU9/bdtaOCpSFM/Yt5CXFsQrWPkmuR/MGDW2Lq8IkbRgp0XCa+6
	FWbG8NDcbeHWb/amr1T2TbP8XUC2A/z2UTuV7jAuSkVgXjoIkC+9gdyBjDz4bSi3iRxM
	5w7FF7r5acbE5DQ+SUz4l4CWqC/EwGfZ6RIXjdYKUNsxn69aC3ANZkqjy644CHhQUcm4
	seT+xo76dT/dGSKVI+iafYQCwc9eBsdp96Vp5KRBDRWSSHoJbvk6mjGN1Awc6Pc1xBbv
	Glhg==
X-Gm-Message-State: ALoCoQnuA6qArgGEDd6Mu3WcafQGa1h6HyG1w9aSpEJ7X00zQGn/vaQAn2wVnEl/SLGW/shf5jWc
X-Received: by 10.180.12.75 with SMTP id w11mr23981178wib.9.1420448937719;
	Mon, 05 Jan 2015 01:08:57 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id
	ej10sm11697840wib.1.2015.01.05.01.08.48
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 05 Jan 2015 01:08:56 -0800 (PST)
Message-ID: <54AA549F.8050507@m2r.biz>
Date: Mon, 05 Jan 2015 10:08:47 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Goonie Windy <monsieur.goonie@gmail.com>
References: <CAE5x5YU4qBTxp+36FioAROdTOPgrU79MN3s+BkmPTWq+qsVt6w@mail.gmail.com>	<54A53352.5090603@m2r.biz>	<CAE5x5YVwj5zpUiS92V_8BuinUrtZZhpd8BMbH=Mo_gCmD29S2Q@mail.gmail.com>	<54A5505C.1070602@m2r.biz>	<CAE5x5YXdw2n-xxwpmbS_cgeTb+GSiBQ2QbUmxF7j-5gX8a24Jg@mail.gmail.com>	<CABMPFzg4jYoMoUM2k5wys3y=iyW712RiLKSixDofXgsKe+PwJw@mail.gmail.com>	<CAE5x5YXhCUvsfKdUN1nNQ_4hPXjBMoeSTMGYu5ysw4wki-n0PQ@mail.gmail.com>	<CAE5x5YVhL+AmvS53KgNkz8MgDYbH5At_DDt4+tCPzqnht2V-KQ@mail.gmail.com>	<54A97FA5.90208@m2r.biz>	<CAE5x5YXmTZAO0c4n1qXxa2+1T2xT3QPHf3Be2CrK2dxtjmpihA@mail.gmail.com>	<CAE5x5YUjXY9bqY6mOSU2b0RgLaLaM4K0MpS-KOWCB2E+_QLnXA@mail.gmail.com>	<CAE5x5YXuAPCKM5aP=63ZiH-ffmfki1ioMNsYEV36+SBLz0_t_A@mail.gmail.com>	<CAE5x5YUXObr6g2juExrb4zzLDg+S=v+Rw1ZDqCy7G6TfhpZTAQ@mail.gmail.com>	<CAE5x5YV_VDjEK6rxFcZX09WGcLT-i4OrtU8gJa6ZfYTZdjvJ0w@mail.gmail.com>	<CAE5x5YU9RJo0SFWOAV-hrxmA0FfKz+fXSHqu7mC04e2j6hbvWw@mail.gmail.com>
	<CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
In-Reply-To: <CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"Paul.Durrant@citrix.com >> Paul Durrant" <paul.durrant@citrix.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] [Xen-devel] [DEBUGGING Xen/Qxl/Debian Sid] qemu
 crash on xenbus pv driver install
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6551787272704672436=="
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--===============6551787272704672436==
Content-Type: multipart/alternative;
 boundary="------------040102060609020209000305"

This is a multi-part message in MIME format.
--------------040102060609020209000305
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Length: 128124
Content-Transfer-Encoding: quoted-printable

Il 05/01/2015 00:24, Goonie Windy ha scritto:
> AND DMESG
> [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8 ip 
> 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in libc-2.19.so 
> <http://libc-2.19.so>[7f92a64d4000+19f000]
> [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state
> [ 3096.118716] device vif5.0-emu left promiscuous mode
> [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state
> [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state
> [ 3584.894741] device vif5.0 left promiscuous mode
> [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state
> [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
> [ 3681.878054] device vif6.0 entered promiscuous mode
> [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
> [ 3682.193528] device vif6.0-emu entered promiscuous mode
> [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding state
> [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding state
> [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state
> [ 3780.535444] device vif6.0-emu left promiscuous mode
> [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state
> [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state
> [ 3899.555577] device vif6.0 left promiscuous mode
> [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state
>
>
> 2015-01-05 0:21 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com 
> <mailto:monsieur.goonie@gmail.com>>:
>
>       GNU nano 2.2.6                                         
>     Fichier : qemu-dm-win7.log
>
>     (/usr/local/sbin/xl:9535): Spice-Warning **:
>     reds.c:1863:reds_handle_ticket: Invalid password
>     main_channel_link: add main channel client
>     main_channel_handle_parsed: net test: latency 0.318000 ms, bitrate
>     26597402597 bps (25365.259740 Mbps)
>     inputs_connect: inputs channel client create
>     red_dispatcher_set_cursor_peer:
>     main_channel_handle_parsed: agent start
>     main_channel_handle_parsed: agent start
>     *** Error in `/usr/lib/xen/bin/qemu-system-i386': double free or
>     corruption (out): 0x00007f0e38dd26f0 ***
>
>
>     2015-01-05 0:00 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com
>     <mailto:monsieur.goonie@gmail.com>>:
>
>         Should add this too:
>         host                   : E766
>         release                : 3.16.0-4-amd64
>         version                : #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08)
>         machine                : x86_64
>         nr_cpus                : 4
>         max_cpu_id             : 7
>         nr_nodes               : 1
>         cores_per_socket       : 2
>         threads_per_core       : 2
>         cpu_mhz                : 2594
>         hw_caps                :
>         bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:00000281
>         virt_caps              : hvm hvm_directio
>         total_memory           : 8055
>         free_memory            : 2309
>         sharing_freed_memory   : 0
>         sharing_used_memory    : 0
>         outstanding_claims     : 0
>         free_cpus              : 0
>         xen_major              : 4
>         xen_minor              : 5
>         xen_extra              : .0-rc
>         xen_version            : 4.5.0-rc
>         xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p
>         hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
>         xen_scheduler          : credit
>         xen_pagesize           : 4096
>         platform_params        : virt_start=3D0xffff800000000000
>         xen_changeset          : Thu Dec 18 10:02:16 2014 +0000
>         git:36174af-dirty
>         xen_commandline        : placeholder
>         cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>         cc_compile_by          : root
>         cc_compile_domain      :
>         cc_compile_date        : Wed Dec 31 01:20:47 CET 2014
>         xend_config_format     : 4
>
>
>
>         2015-01-04 23:39 GMT+01:00 Goonie Windy
>         <monsieur.goonie@gmail.com <mailto:monsieur.goonie@gmail.com>>:
>
>             My qemu log after spice failure:
>             (/usr/local/sbin/xl:4254): Spice-Warning **:
>             reds.c:1863:reds_handle_ticket: Invalid password
>             main_channel_link: add main channel client
>             main_channel_handle_parsed: net test: latency 0.257000 ms,
>             bitrate 81920000000 bps (78125.000000 Mbps)
>             red_dispatcher_set_cursor_peer:
>             inputs_connect: inputs channel client create
>             main_channel_handle_parsed: agent start
>             main_channel_handle_parsed: agent start
>             qemu-system-i386: malloc.c:2372: sysmalloc: Assertion
>             `(old_top =3D=3D (((mbinptr) (((char *) &((av)->bins[((1) - 1)
>             * 2])) - __builtin_offsetof (struct malloc_chunk, fd))))
>             && old_size =3D=3D 0) || ((unsigned long) (old_size) >=3D
>             (unsigned long)((((__builtin_offsetof (struct
>             malloc_chunk, fd_nextsize))+((2 *(sizeof(size_t))) - 1)) &
>             ~((2 *(sizeof(size_t))) - 1))) && ((old_top)->size & 0x1)
>             && ((unsigned long) old_end & pagemask) =3D=3D 0)' failed.
>
>
>             2015-01-04 23:10 GMT+01:00 Goonie Windy
>             <monsieur.goonie@gmail.com
>             <mailto:monsieur.goonie@gmail.com>>:
>
>                 This one is bug from trying to install winpv  bus driver
>

If you followed all my advices your configurations should be ok and you 
found a new bug or inexpected case.
I do not have the knowledge to solve it.
Added to cc also win-pv-devel
Can someone take a look to this problem please=3F

>
>
>                 Program received signal SIGSEGV, Segmentation fault.
>                 _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>                 bytes=3Dbytes@entry=3D73729)
>                     at malloc.c:3775
>                 3775    malloc.c: Aucun fichier ou dossier de ce type.
>                 (gdb) bt full
>                 #0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>                     bytes=3Dbytes@entry=3D73729) at malloc.c:3775
>                         p =3D 0x555557303880
>                         iters =3D <optimized out>
>                         nb =3D 73744
>                         idx =3D <optimized out>
>                         bin =3D <optimized out>
>                         victim =3D 0x555557303870
>                         size =3D <optimized out>
>                         victim_index =3D <optimized out>
>                         remainder =3D 0x555557315880
>                         remainder_size =3D <optimized out>
>                         block =3D 4
>                         bit =3D <optimized out>
>                         map =3D 66981887
>                         fwd =3D <optimized out>
>                         bck =3D <optimized out>
>                         errstr =3D 0x0
>                         __func__ =3D "_int_malloc"
>                 #1  0x00007ffff3eb74a1 in _int_realloc (
>                     av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>                 oldp=3Doldp@entry=3D0x55555689d270,
>                     oldsize=3Doldsize@entry=3D36880, nb=3Dnb@entry=3D73744) at
>                 malloc.c:4286
>                         newp =3D <optimized out>
>                 ---Type <return> to continue, or q <return> to quit---
>                         newsize =3D <optimized out>
>                         newmem =3D <optimized out>
>                         next =3D 0x5555568a6280
>                         remainder =3D <optimized out>
>                         remainder_size =3D <optimized out>
>                         bck =3D <optimized out>
>                         fwd =3D <optimized out>
>                         copysize =3D <optimized out>
>                         ncopies =3D <optimized out>
>                         s =3D <optimized out>
>                         d =3D <optimized out>
>                         errstr =3D 0x0
>                         __func__ =3D "_int_realloc"
>                         nextsize =3D <optimized out>
>                 #2  0x00007ffff3eb85f9 in __GI___libc_realloc
>                 (oldmem=3D0x55555689d280,
>                     bytes=3D73728) at malloc.c:3029
>                         ar_ptr =3D 0x7ffff41df620 <main_arena>
>                         nb =3D 73744
>                         newp =3D <optimized out>
>                         hook =3D <optimized out>
>                         oldp =3D 0x55555689d270
>                         oldsize =3D 36880
>                         __func__ =3D "__libc_realloc"
>                 ---Type <return> to continue, or q <return> to quit---
>                 #3  0x0000555555819563 in realloc_and_trace
>                 (mem=3D0x55555689d280, n_bytes=3D73728)
>                     at vl.c:2857
>                         ptr =3D 0x7fffffffcf30
>                 #4  0x00007ffff708388e in g_realloc (mem=3D<optimized
>                 out>, n_bytes=3D73728)
>                     at /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162
>                         newmem =3D <optimized out>
>                 #5  0x000055555582d3e2 in phys_map_node_reserve
>                 (map=3D0x5555563ccf98, nodes=3D18)
>                     at /home/goon/xen/tools/qemu-xen-dir/exec.c:152
>                 No locals.
>                 #6  0x000055555582d701 in phys_page_set
>                 (d=3D0x5555563ccf90, index=3D160, nb=3D16,
>                     leaf=3D5) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:211
>                 No locals.
>                 #7  0x000055555582f1ae in register_multipage
>                 (d=3D0x5555563ccf90,
>                     section=3D0x7fffffffcfe0) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:937
>                         start_addr =3D 655360
>                         section_index =3D 5
>                         num_pages =3D 16
>                         __PRETTY_FUNCTION__ =3D "register_multipage"
>                 #8  0x000055555582f4b4 in mem_add
>                 (listener=3D0x55555633b898,
>                     section=3D0x7fffffffd1a0) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:968
>                         as =3D 0x55555633b860
>                         d =3D 0x5555563ccf90
>                         now =3D {mr =3D 0x55555636dd30, address_space =3D
>                 0x55555633b860,
>                 ---Type <return> to continue, or q <return> to quit---
>                           offset_within_region =3D 0, size =3D {lo =3D
>                 65536, hi =3D 0},
>                 offset_within_address_space =3D 655360, readonly =3D false}
>                         remain =3D {mr =3D 0x55555636dd30, address_space =3D
>                 0x55555633b860,
>                           offset_within_region =3D 0, size =3D {lo =3D
>                 65536, hi =3D 0},
>                 offset_within_address_space =3D 655360, readonly =3D false}
>                         page_size =3D {lo =3D 4096, hi =3D 0}
>                 #9  0x0000555555892a01 in
>                 address_space_update_topology_pass (
>                     as=3D0x55555633b860, old_view=3D0x555556495910,
>                 new_view=3D0x55555687f2c0,
>                     adding=3Dtrue) at
>                 /home/goon/xen/tools/qemu-xen-dir/memory.c:736
>                         _listener =3D 0x55555633b898
>                         iold =3D 1
>                         inew =3D 1
>                         frold =3D 0x5555565fd828
>                         frnew =3D 0x5555568b23e8
>                 #10 0x0000555555892fd7 in
>                 address_space_update_topology (as=3D0x55555633b860)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:765
>                         old_view =3D 0x555556495910
>                         new_view =3D 0x55555687f2c0
>                 #11 0x00005555558930fc in
>                 memory_region_transaction_commit ()
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:800
>                         as =3D 0x55555633b860
>                         __PRETTY_FUNCTION__ =3D
>                 "memory_region_transaction_commit"
>                 #12 0x00005555558951ed in memory_region_del_subregion
>                 (mr=3D0x5555562855d0,
>                 ---Type <return> to continue, or q <return> to quit---
>                     subregion=3D0x555556349250)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:1487
>                         __PRETTY_FUNCTION__ =3D
>                 "memory_region_del_subregion"
>                 #13 0x000055555570fdf3 in pci_update_mappings
>                 (d=3D0x5555563489f0)
>                     at hw/pci/pci.c:1113
>                         r =3D 0x555556348af8
>                         i =3D 0
>                         new_addr =3D 18446744073709551615
>                 #14 0x0000555555710110 in pci_default_write_config
>                 (d=3D0x5555563489f0, addr=3D4,
>                     val=3D0, l=3D2) at hw/pci/pci.c:1168
>                         i =3D 2
>                         was_irq_disabled =3D 0
>                         __PRETTY_FUNCTION__ =3D "pci_default_write_config"
>                 #15 0x0000555555714125 in pci_host_config_write_common (
>                     pci_dev=3D0x5555563489f0, addr=3D4, limit=3D256,
>                 val=3D1024, len=3D2)
>                     at hw/pci/pci_host.c:57
>                         __PRETTY_FUNCTION__ =3D
>                 "pci_host_config_write_common"
>                 #16 0x0000555555714229 in pci_data_write
>                 (s=3D0x5555562a8cf0, addr=3D2147487748 <tel:2147487748>,
>                     val=3D1024, len=3D2) at hw/pci/pci_host.c:84
>                         pci_dev =3D 0x5555563489f0
>                         config_addr =3D 4
>                 #17 0x0000555555714351 in pci_host_data_write
>                 (opaque=3D0x555556311470, addr=3D0,
>                     val=3D1024, len=3D2) at hw/pci/pci_host.c:137
>                 ---Type <return> to continue, or q <return> to quit---
>                         s =3D 0x555556311470
>                 #18 0x0000555555891531 in memory_region_write_accessor
>                 (mr=3D0x555556313860,
>                     addr=3D0, value=3D0x7fffffffd5e8, size=3D2, shift=3D0,
>                 mask=3D65535)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:441
>                         tmp =3D 1024
>                 #19 0x0000555555891636 in access_with_adjusted_size
>                 (addr=3D0,
>                     value=3D0x7fffffffd5e8, size=3D2, access_size_min=3D1,
>                 access_size_max=3D4,
>                     access=3D0x5555558914b0
>                 <memory_region_write_accessor>, mr=3D0x555556313860)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:478
>                         access_mask =3D 65535
>                         access_size =3D 2
>                         i =3D 0
>                 #20 0x0000555555893772 in memory_region_dispatch_write
>                 (mr=3D0x555556313860,
>                     addr=3D0, data=3D1024, size=3D2)
>                     at /home/goon/xen/tools/qemu-xen-dir/memory.c:985
>                 No locals.
>                 #21 0x0000555555896068 in io_mem_write
>                 (mr=3D0x555556313860, addr=3D0, val=3D1024,
>                     size=3D2) at
>                 /home/goon/xen/tools/qemu-xen-dir/memory.c:1744
>                 No locals.
>                 #22 0x000055555583183c in address_space_rw (
>                     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>                 buf=3D0x7fffffffd6f0 "",
>                     len=3D2, is_write=3Dtrue) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:2029
>                         l =3D 2
>                 ---Type <return> to continue, or q <return> to quit---
>                         ptr =3D 0x7fffffffd6f4 "\377\377\377\377"
>                         val =3D 1024
>                         addr1 =3D 0
>                         mr =3D 0x555556313860
>                         error =3D false
>                 #23 0x0000555555831b12 in address_space_write (
>                     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>                 buf=3D0x7fffffffd6f0 "",
>                     len=3D2) at
>                 /home/goon/xen/tools/qemu-xen-dir/exec.c:2091
>                 No locals.
>                 #24 0x000055555588f486 in cpu_outw (addr=3D3324, val=3D1024)
>                     at /home/goon/xen/tools/qemu-xen-dir/ioport.c:77
>                         buf =3D "\000\004"
>                 #25 0x000055555590f460 in do_outp (addr=3D3324, size=3D2,
>                 val=3D1024)
>                     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668
>                 No locals.
>                 #26 0x000055555590f66f in cpu_ioreq_pio
>                 (req=3D0x7ffff7ff3000)
>                     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729
>                         i =3D 0
>                 #27 0x000055555590f910 in handle_ioreq
>                 (req=3D0x7ffff7ff3000)
>                     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781
>                 No locals.
>                 #28 0x000055555590fc0f in cpu_handle_ioreq
>                 (opaque=3D0x5555562abf10)
>                     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856
>                 ---Type <return> to continue, or q <return> to quit---
>                         state =3D 0x5555562abf10
>                         req =3D 0x7ffff7ff3000
>                 #29 0x000055555577c385 in qemu_iohandler_poll
>                 (pollfds=3D0x555556277600, ret=3D1)
>                     at iohandler.c:143
>                         revents =3D 1
>                         pioh =3D 0x55555627ca90
>                         ioh =3D 0x555556366320
>                 #30 0x000055555577d14b in main_loop_wait
>                 (nonblocking=3D0) at main-loop.c:485
>                         ret =3D 1
>                         timeout =3D 4294967295
>                         timeout_ns =3D 16717983
>                 #31 0x0000555555815fbd in main_loop () at vl.c:2056
>                         nonblocking =3D false
>                         last_io =3D 1
>                 #32 0x000055555581d66b in main (argc=3D64,
>                 argv=3D0x7fffffffdc78,
>                     envp=3D0x7fffffffde80) at vl.c:4535
>                         i =3D 64
>                         snapshot =3D 0
>                         linux_boot =3D 0
>                         icount_option =3D 0x0
>                         initrd_filename =3D 0x0
>                         kernel_filename =3D 0x0
>                         kernel_cmdline =3D 0x55555598c664 ""
>                 ---Type <return> to continue, or q <return> to quit---
>                         boot_order =3D 0x555556275340 "dc"
>                         ds =3D 0x5555563564e0
>                         cyls =3D 0
>                         heads =3D 0
>                         secs =3D 0
>                         translation =3D 0
>                         hda_opts =3D 0x0
>                         opts =3D 0x555556275290
>                         machine_opts =3D 0x555556276ef0
>                         olist =3D 0x555555d72700 <qemu_machine_opts>
>                         optind =3D 64
>                         optarg =3D 0x7fffffffe61a
>                 "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"
>                         loadvm =3D 0x0
>                         machine_class =3D 0x55555626e030
>                         machine =3D 0x555555d78540 <xenfv_machine>
>                         cpu_model =3D 0x0
>                         vga_model =3D 0x0
>                         qtest_chrdev =3D 0x0
>                         qtest_log =3D 0x0
>                         pid_file =3D 0x0
>                         incoming =3D 0x0
>                         show_vnc_port =3D 0
>                 ---Type <return> to continue, or q <return> to quit---
>                         defconfig =3D true
>                         userconfig =3D true
>                         log_mask =3D 0x0
>                         log_file =3D 0x0
>                         mem_trace =3D {malloc =3D 0x55555581950b
>                 <malloc_and_trace>,
>                           realloc =3D 0x555555819540 <realloc_and_trace>,
>                           free =3D 0x555555819584 <free_and_trace>,
>                 calloc =3D 0x0,
>                           try_malloc =3D 0x0, try_realloc =3D 0x0}
>                         trace_events =3D 0x0
>                         trace_file =3D 0x0
>                         __func__ =3D "main"
>                         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>                           ram_size =3D 2013265920 <tel:2013265920>,
>                 boot_order =3D 0x555556275340 "dc",
>                           kernel_filename =3D 0x0, kernel_cmdline =3D
>                 0x55555598c664 "",
>                           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>
>
>                 2015-01-04 22:29 GMT+01:00 Goonie Windy
>                 <monsieur.goonie@gmail.com
>                 <mailto:monsieur.goonie@gmail.com>>:
>
>                     Copyright (C) 2014 Free Software Foundation, Inc.
>                     License GPLv3+: GNU GPL version 3 or later
>                     <http://gnu.org/licenses/gpl.html>
>                     This is free software: you are free to change and
>                     redistribute it.
>                     There is NO WARRANTY, to the extent permitted by
>                     law.  Type "show copying"
>                     and "show warranty" for details.
>                     This GDB was configured as "x86_64-linux-gnu".
>                     Type "show configuration" for configuration details.
>                     For bug reporting instructions, please see:
>                     <http://www.gnu.org/software/gdb/bugs/>.
>                     Find the GDB manual and other documentation
>                     resources online at:
>                     <http://www.gnu.org/software/gdb/documentation/>.
>                     For help, type "help".
>                     Type "apropos word" to search for commands related
>                     to "word"...
>                     Reading symbols from
>                     /usr/lib/xen/bin/qemu-system-i386...done.
>                     (gdb) target remote localhost:1234
>                     Remote debugging using localhost:1234
>                     Reading symbols from
>                     /lib64/ld-linux-x86-64.so.2...Reading symbols from
>                     /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>                     done.
>                     Loaded symbols for /lib64/ld-linux-x86-64.so.2
>                     0x00007ffff7ddd190 in _start () from
>                     /lib64/ld-linux-x86-64.so.2
>                     (gdb) c
>                     Continuing.
>
>                     Program received signal SIGSEGV, Segmentation fault.
>                     0x00007ffff50e5801 in
>                     spice_char_device_write_to_device (
>                     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                     443    char_device.c: Aucun fichier ou dossier de
>                     ce type.
>                     (gdb) bt full
>                     #0  0x00007ffff50e5801 in
>                     spice_char_device_write_to_device (
>                     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                             sif =3D <optimized out>
>                             total =3D <optimized out>
>                             n =3D <optimized out>
>                     #1  0x00007ffff50e6497 in
>                     spice_char_device_write_to_device (
>                         dev=3D0x55555647c750) at char_device.c:436
>                     No locals.
>                     #2 spice_char_device_start (dev=3D0x55555647c750) at
>                     char_device.c:798
>                             __FUNCTION__ =3D "spice_char_device_start"
>                     #3  0x00007ffff51299c6 in spice_server_vm_start
>                     (s=3D<optimized out>)
>                         at reds.c:3795
>                             st_item =3D 0x5555562d8350
>                             item =3D 0x5555562d8350
>                             __FUNCTION__ =3D "spice_server_vm_start"
>                     #4  0x00005555557f40c9 in qemu_spice_display_start
>                     () at ui/spice-core.c:909
>                     No locals.
>                     #5  0x00005555556c4365 in qxl_hard_reset
>                     (d=3D0x55555637d7e0, loadvm=3D0)
>                         at hw/display/qxl.c:1172
>                             startstop =3D true
>                     #6  0x00005555556c43a3 in qxl_reset_handler
>                     (dev=3D0x55555637d7e0)
>                         at hw/display/qxl.c:1180
>                             d =3D 0x55555637d7e0
>                     ---Type <return> to continue, or q <return> to quit---
>                     #7  0x0000555555699658 in device_reset
>                     (dev=3D0x55555637d7e0)
>                         at hw/core/qdev.c:934
>                             klass =3D 0x555556270410
>                             __func__ =3D "device_reset"
>                     #8  0x0000555555697a56 in qdev_reset_one
>                     (dev=3D0x55555637d7e0, opaque=3D0x0)
>                         at hw/core/qdev.c:240
>                     No locals.
>                     #9  0x0000555555697f64 in qdev_walk_children
>                     (dev=3D0x55555637d7e0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:411
>                             bus =3D 0x0
>                             err =3D 0
>                     #10 0x0000555555697e57 in qbus_walk_children
>                     (bus=3D0x5555562a8ee0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:369
>                             kid =3D 0x55555633d4f0
>                             err =3D 0
>                     #11 0x0000555555697f28 in qdev_walk_children
>                     (dev=3D0x5555563131b0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:403
>                     ---Type <return> to continue, or q <return> to quit---
>                             bus =3D 0x5555562a8ee0
>                             err =3D 0
>                     #12 0x0000555555697e57 in qbus_walk_children
>                     (bus=3D0x5555562a60b0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:369
>                             kid =3D 0x5555562a6a80
>                             err =3D 0
>                     #13 0x0000555555697b32 in qbus_reset_all
>                     (bus=3D0x5555562a60b0)
>                         at hw/core/qdev.c:261
>                     No locals.
>                     #14 0x0000555555697b54 in qbus_reset_all_fn
>                     (opaque=3D0x5555562a60b0)
>                         at hw/core/qdev.c:267
>                             bus =3D 0x5555562a60b0
>                     #15 0x0000555555815b1f in qemu_devices_reset () at
>                     vl.c:1872
>                             re =3D 0x555556375890
>                             nre =3D 0x0
>                     #16 0x0000555555815bbf in qemu_system_reset
>                     (report=3Dtrue) at vl.c:1885
>                             mc =3D 0x55555626e030
>                             __func__ =3D "qemu_system_reset"
>                     #17 0x000055555590fcb9 in cpu_handle_ioreq
>                     (opaque=3D0x5555562b0950)
>                         at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>                             state =3D 0x5555562b0950
>                     ---Type <return> to continue, or q <return> to quit---
>                             req =3D 0x7ffff7ff3000
>                     #18 0x000055555577c385 in qemu_iohandler_poll
>                     (pollfds=3D0x555556277600, ret=3D1)
>                         at iohandler.c:143
>                             revents =3D 1
>                             pioh =3D 0x5555563218c0
>                             ioh =3D 0x555556362a80
>                     #19 0x000055555577d14b in main_loop_wait
>                     (nonblocking=3D0) at main-loop.c:485
>                             ret =3D 1
>                             timeout =3D 4294967295
>                             timeout_ns =3D 17355567
>                     #20 0x0000555555815fbd in main_loop () at vl.c:2056
>                             nonblocking =3D false
>                             last_io =3D 1
>                     #21 0x000055555581d66b in main (argc=3D66,
>                     argv=3D0x7fffffffdc58,
>                         envp=3D0x7fffffffde70) at vl.c:4535
>                             i =3D 64
>                             snapshot =3D 0
>                             linux_boot =3D 0
>                             icount_option =3D 0x0
>                             initrd_filename =3D 0x0
>                             kernel_filename =3D 0x0
>                             kernel_cmdline =3D 0x55555598c664 ""
>                             boot_order =3D 0x555556275380 "dc"
>                     ---Type <return> to continue, or q <return> to quit---
>                             ds =3D 0x5555563324a0
>                             cyls =3D 0
>                             heads =3D 0
>                             secs =3D 0
>                             translation =3D 0
>                             hda_opts =3D 0x0
>                             opts =3D 0x5555562752d0
>                             machine_opts =3D 0x555556276f30
>                             olist =3D 0x555555d72700 <qemu_machine_opts>
>                             optind =3D 66
>                             optarg =3D 0x7fffffffe61a
>                     "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"
>                             loadvm =3D 0x0
>                             machine_class =3D 0x55555626e030
>                             machine =3D 0x555555d78540 <xenfv_machine>
>                             cpu_model =3D 0x0
>                             vga_model =3D 0x0
>                             qtest_chrdev =3D 0x0
>                             qtest_log =3D 0x0
>                             pid_file =3D 0x0
>                             incoming =3D 0x0
>                             show_vnc_port =3D 0
>                             defconfig =3D true
>                     ---Type <return> to continue, or q <return> to quit---
>                             userconfig =3D true
>                             log_mask =3D 0x0
>                             log_file =3D 0x0
>                             mem_trace =3D {malloc =3D 0x55555581950b
>                     <malloc_and_trace>,
>                               realloc =3D 0x555555819540
>                     <realloc_and_trace>,
>                               free =3D 0x555555819584 <free_and_trace>,
>                     calloc =3D 0x0,
>                               try_malloc =3D 0x0, try_realloc =3D 0x0}
>                             trace_events =3D 0x0
>                             trace_file =3D 0x0
>                             __func__ =3D "main"
>                             args =3D {machine =3D 0x555555d78540
>                     <xenfv_machine>,
>                               ram_size =3D 2013265920 <tel:2013265920>,
>                     boot_order =3D 0x555556275380 "dc",
>                               kernel_filename =3D 0x0, kernel_cmdline =3D
>                     0x55555598c664 "",
>                               initrd_filename =3D 0x0, cpu_model =3D 0x0}
>                     (gdb) bt full ecc
>                     No symbol "ecc" in current context.
>
>                     (gdb) bt full
>                     #0  0x00007ffff50e5801 in
>                     spice_char_device_write_to_device (
>                     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                             sif =3D <optimized out>
>                             total =3D <optimized out>
>                             n =3D <optimized out>
>                     #1  0x00007ffff50e6497 in
>                     spice_char_device_write_to_device (
>                         dev=3D0x55555647c750) at char_device.c:436
>                     No locals.
>                     #2 spice_char_device_start (dev=3D0x55555647c750) at
>                     char_device.c:798
>                             __FUNCTION__ =3D "spice_char_device_start"
>                     #3  0x00007ffff51299c6 in spice_server_vm_start
>                     (s=3D<optimized out>)
>                         at reds.c:3795
>                             st_item =3D 0x5555562d8350
>                             item =3D 0x5555562d8350
>                             __FUNCTION__ =3D "spice_server_vm_start"
>                     #4  0x00005555557f40c9 in qemu_spice_display_start
>                     () at ui/spice-core.c:909
>                     No locals.
>                     #5  0x00005555556c4365 in qxl_hard_reset
>                     (d=3D0x55555637d7e0, loadvm=3D0)
>                         at hw/display/qxl.c:1172
>                             startstop =3D true
>                     #6  0x00005555556c43a3 in qxl_reset_handler
>                     (dev=3D0x55555637d7e0)
>                         at hw/display/qxl.c:1180
>                             d =3D 0x55555637d7e0
>                     ---Type <return> to continue, or q <return> to quit---
>                     #7  0x0000555555699658 in device_reset
>                     (dev=3D0x55555637d7e0)
>                         at hw/core/qdev.c:934
>                             klass =3D 0x555556270410
>                             __func__ =3D "device_reset"
>                     #8  0x0000555555697a56 in qdev_reset_one
>                     (dev=3D0x55555637d7e0, opaque=3D0x0)
>                         at hw/core/qdev.c:240
>                     No locals.
>                     #9  0x0000555555697f64 in qdev_walk_children
>                     (dev=3D0x55555637d7e0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:411
>                             bus =3D 0x0
>                             err =3D 0
>                     #10 0x0000555555697e57 in qbus_walk_children
>                     (bus=3D0x5555562a8ee0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:369
>                             kid =3D 0x55555633d4f0
>                             err =3D 0
>                     #11 0x0000555555697f28 in qdev_walk_children
>                     (dev=3D0x5555563131b0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:403
>                     ---Type <return> to continue, or q <return> to quit---
>                             bus =3D 0x5555562a8ee0
>                             err =3D 0
>                     #12 0x0000555555697e57 in qbus_walk_children
>                     (bus=3D0x5555562a60b0,
>                         pre_devfn=3D0x0, pre_busfn=3D0x0,
>                     post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                     post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                     opaque=3D0x0)
>                         at hw/core/qdev.c:369
>                             kid =3D 0x5555562a6a80
>                             err =3D 0
>                     #13 0x0000555555697b32 in qbus_reset_all
>                     (bus=3D0x5555562a60b0)
>                         at hw/core/qdev.c:261
>                     No locals.
>                     #14 0x0000555555697b54 in qbus_reset_all_fn
>                     (opaque=3D0x5555562a60b0)
>                         at hw/core/qdev.c:267
>                             bus =3D 0x5555562a60b0
>                     #15 0x0000555555815b1f in qemu_devices_reset () at
>                     vl.c:1872
>                             re =3D 0x555556375890
>                             nre =3D 0x0
>                     #16 0x0000555555815bbf in qemu_system_reset
>                     (report=3Dtrue) at vl.c:1885
>                             mc =3D 0x55555626e030
>                             __func__ =3D "qemu_system_reset"
>                     #17 0x000055555590fcb9 in cpu_handle_ioreq
>                     (opaque=3D0x5555562b0950)
>                         at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>                             state =3D 0x5555562b0950
>                     ---Type <return> to continue, or q <return> to quit---
>                             req =3D 0x7ffff7ff3000
>                     #18 0x000055555577c385 in qemu_iohandler_poll
>                     (pollfds=3D0x555556277600, ret=3D1)
>                         at iohandler.c:143
>                             revents =3D 1
>                             pioh =3D 0x5555563218c0
>                             ioh =3D 0x555556362a80
>                     #19 0x000055555577d14b in main_loop_wait
>                     (nonblocking=3D0) at main-loop.c:485
>                             ret =3D 1
>                             timeout =3D 4294967295
>                             timeout_ns =3D 17355567
>                     #20 0x0000555555815fbd in main_loop () at vl.c:2056
>                             nonblocking =3D false
>                             last_io =3D 1
>                     #21 0x000055555581d66b in main (argc=3D66,
>                     argv=3D0x7fffffffdc58,
>                         envp=3D0x7fffffffde70) at vl.c:4535
>                             i =3D 64
>                             snapshot =3D 0
>                             linux_boot =3D 0
>                             icount_option =3D 0x0
>                             initrd_filename =3D 0x0
>                             kernel_filename =3D 0x0
>                             kernel_cmdline =3D 0x55555598c664 ""
>                             boot_order =3D 0x555556275380 "dc"
>                     ---Type <return> to continue, or q <return> to quit---
>                             ds =3D 0x5555563324a0
>                             cyls =3D 0
>                             heads =3D 0
>                             secs =3D 0
>                             translation =3D 0
>                             hda_opts =3D 0x0
>                             opts =3D 0x5555562752d0
>                             machine_opts =3D 0x555556276f30
>                             olist =3D 0x555555d72700 <qemu_machine_opts>
>                             optind =3D 66
>                             optarg =3D 0x7fffffffe61a
>                     "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"
>                             loadvm =3D 0x0
>                             machine_class =3D 0x55555626e030
>                             machine =3D 0x555555d78540 <xenfv_machine>
>                             cpu_model =3D 0x0
>                             vga_model =3D 0x0
>                             qtest_chrdev =3D 0x0
>                             qtest_log =3D 0x0
>                             pid_file =3D 0x0
>                             incoming =3D 0x0
>                             show_vnc_port =3D 0
>                             defconfig =3D true
>                     ---Type <return> to continue, or q <return> to quit---
>                             userconfig =3D true
>                             log_mask =3D 0x0
>                             log_file =3D 0x0
>                             mem_trace =3D {malloc =3D 0x55555581950b
>                     <malloc_and_trace>,
>                               realloc =3D 0x555555819540
>                     <realloc_and_trace>,
>                               free =3D 0x555555819584 <free_and_trace>,
>                     calloc =3D 0x0,
>                               try_malloc =3D 0x0, try_realloc =3D 0x0}
>                             trace_events =3D 0x0
>                             trace_file =3D 0x0
>                             __func__ =3D "main"
>                             args =3D {machine =3D 0x555555d78540
>                     <xenfv_machine>,
>                               ram_size =3D 2013265920 <tel:2013265920>,
>                     boot_order =3D 0x555556275380 "dc",
>                               kernel_filename =3D 0x0, kernel_cmdline =3D
>                     0x55555598c664 "",
>                               initrd_filename =3D 0x0, cpu_model =3D 0x0}
>
>
>                     AND
>
>                     attached files
>
>
>
>
>
>
>
>
>                     2015-01-04 22:24 GMT+01:00 Goonie Windy
>                     <monsieur.goonie@gmail.com
>                     <mailto:monsieur.goonie@gmail.com>>:
>
>                         GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
>                         Copyright (C) 2014 Free Software Foundation, Inc.
>                         License GPLv3+: GNU GPL version 3 or later
>                         <http://gnu.org/licenses/gpl.html>
>                         This is free software: you are free to change
>                         and redistribute it.
>                         There is NO WARRANTY, to the extent permitted
>                         by law.  Type "show copying"
>                         and "show warranty" for details.
>                         This GDB was configured as "x86_64-linux-gnu".
>                         Type "show configuration" for configuration
>                         details.
>                         For bug reporting instructions, please see:
>                         <http://www.gnu.org/software/gdb/bugs/>.
>                         Find the GDB manual and other documentation
>                         resources online at:
>                         <http://www.gnu.org/software/gdb/documentation/>.
>                         For help, type "help".
>                         Type "apropos word" to search for commands
>                         related to "word"...
>                         Reading symbols from
>                         /usr/lib/xen/bin/qemu-system-i386...done.
>                         (gdb) target remote localhost:1234
>                         Remote debugging using localhost:1234
>                         Reading symbols from
>                         /lib64/ld-linux-x86-64.so.2...Reading symbols
>                         from
>                         /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>                         done.
>                         Loaded symbols for /lib64/ld-linux-x86-64.so.2
>                         0x00007ffff7ddd190 in _start () from
>                         /lib64/ld-linux-x86-64.so.2
>                         (gdb) c
>                         Continuing.
>
>                         Program received signal SIGSEGV, Segmentation
>                         fault.
>                         0x00007ffff50e5801 in
>                         spice_char_device_write_to_device (
>                         dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                         443    char_device.c: Aucun fichier ou dossier
>                         de ce type.
>                         (gdb) bt full
>                         #0  0x00007ffff50e5801 in
>                         spice_char_device_write_to_device (
>                         dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>                                 sif =3D <optimized out>
>                                 total =3D <optimized out>
>                                 n =3D <optimized out>
>                         #1  0x00007ffff50e6497 in
>                         spice_char_device_write_to_device (
>                             dev=3D0x55555647c750) at char_device.c:436
>                         No locals.
>                         #2 spice_char_device_start
>                         (dev=3D0x55555647c750) at char_device.c:798
>                                 __FUNCTION__ =3D "spice_char_device_start"
>                         #3  0x00007ffff51299c6 in
>                         spice_server_vm_start (s=3D<optimized out>)
>                             at reds.c:3795
>                                 st_item =3D 0x5555562d8350
>                                 item =3D 0x5555562d8350
>                                 __FUNCTION__ =3D "spice_server_vm_start"
>                         #4  0x00005555557f40c9 in
>                         qemu_spice_display_start () at ui/spice-core.c:909
>                         No locals.
>                         #5  0x00005555556c4365 in qxl_hard_reset
>                         (d=3D0x55555637d7e0, loadvm=3D0)
>                             at hw/display/qxl.c:1172
>                                 startstop =3D true
>                         #6  0x00005555556c43a3 in qxl_reset_handler
>                         (dev=3D0x55555637d7e0)
>                             at hw/display/qxl.c:1180
>                                 d =3D 0x55555637d7e0
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                         #7  0x0000555555699658 in device_reset
>                         (dev=3D0x55555637d7e0)
>                             at hw/core/qdev.c:934
>                                 klass =3D 0x555556270410
>                                 __func__ =3D "device_reset"
>                         #8  0x0000555555697a56 in qdev_reset_one
>                         (dev=3D0x55555637d7e0, opaque=3D0x0)
>                             at hw/core/qdev.c:240
>                         No locals.
>                         #9  0x0000555555697f64 in qdev_walk_children
>                         (dev=3D0x55555637d7e0,
>                             pre_devfn=3D0x0, pre_busfn=3D0x0,
>                         post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                         post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                         opaque=3D0x0)
>                             at hw/core/qdev.c:411
>                                 bus =3D 0x0
>                                 err =3D 0
>                         #10 0x0000555555697e57 in qbus_walk_children
>                         (bus=3D0x5555562a8ee0,
>                             pre_devfn=3D0x0, pre_busfn=3D0x0,
>                         post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                         post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                         opaque=3D0x0)
>                             at hw/core/qdev.c:369
>                                 kid =3D 0x55555633d4f0
>                                 err =3D 0
>                         #11 0x0000555555697f28 in qdev_walk_children
>                         (dev=3D0x5555563131b0,
>                             pre_devfn=3D0x0, pre_busfn=3D0x0,
>                         post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                         post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                         opaque=3D0x0)
>                             at hw/core/qdev.c:403
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                                 bus =3D 0x5555562a8ee0
>                                 err =3D 0
>                         #12 0x0000555555697e57 in qbus_walk_children
>                         (bus=3D0x5555562a60b0,
>                             pre_devfn=3D0x0, pre_busfn=3D0x0,
>                         post_devfn=3D0x555555697a3a <qdev_reset_one>,
>                         post_busfn=3D0x555555697a5d <qbus_reset_one>,
>                         opaque=3D0x0)
>                             at hw/core/qdev.c:369
>                                 kid =3D 0x5555562a6a80
>                                 err =3D 0
>                         #13 0x0000555555697b32 in qbus_reset_all
>                         (bus=3D0x5555562a60b0)
>                             at hw/core/qdev.c:261
>                         No locals.
>                         #14 0x0000555555697b54 in qbus_reset_all_fn
>                         (opaque=3D0x5555562a60b0)
>                             at hw/core/qdev.c:267
>                                 bus =3D 0x5555562a60b0
>                         #15 0x0000555555815b1f in qemu_devices_reset
>                         () at vl.c:1872
>                                 re =3D 0x555556375890
>                                 nre =3D 0x0
>                         #16 0x0000555555815bbf in qemu_system_reset
>                         (report=3Dtrue) at vl.c:1885
>                                 mc =3D 0x55555626e030
>                                 __func__ =3D "qemu_system_reset"
>                         #17 0x000055555590fcb9 in cpu_handle_ioreq
>                         (opaque=3D0x5555562b0950)
>                             at
>                         /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>                                 state =3D 0x5555562b0950
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                                 req =3D 0x7ffff7ff3000
>                         #18 0x000055555577c385 in qemu_iohandler_poll
>                         (pollfds=3D0x555556277600, ret=3D1)
>                             at iohandler.c:143
>                                 revents =3D 1
>                                 pioh =3D 0x5555563218c0
>                                 ioh =3D 0x555556362a80
>                         #19 0x000055555577d14b in main_loop_wait
>                         (nonblocking=3D0) at main-loop.c:485
>                                 ret =3D 1
>                                 timeout =3D 4294967295
>                                 timeout_ns =3D 17355567
>                         #20 0x0000555555815fbd in main_loop () at
>                         vl.c:2056
>                                 nonblocking =3D false
>                                 last_io =3D 1
>                         #21 0x000055555581d66b in main (argc=3D66,
>                         argv=3D0x7fffffffdc58,
>                             envp=3D0x7fffffffde70) at vl.c:4535
>                                 i =3D 64
>                                 snapshot =3D 0
>                                 linux_boot =3D 0
>                                 icount_option =3D 0x0
>                                 initrd_filename =3D 0x0
>                                 kernel_filename =3D 0x0
>                                 kernel_cmdline =3D 0x55555598c664 ""
>                                 boot_order =3D 0x555556275380 "dc"
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                                 ds =3D 0x5555563324a0
>                                 cyls =3D 0
>                                 heads =3D 0
>                                 secs =3D 0
>                                 translation =3D 0
>                                 hda_opts =3D 0x0
>                                 opts =3D 0x5555562752d0
>                                 machine_opts =3D 0x555556276f30
>                                 olist =3D 0x555555d72700 <qemu_machine_opts>
>                                 optind =3D 66
>                                 optarg =3D 0x7fffffffe61a
>                         "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"
>                                 loadvm =3D 0x0
>                                 machine_class =3D 0x55555626e030
>                                 machine =3D 0x555555d78540 <xenfv_machine>
>                                 cpu_model =3D 0x0
>                                 vga_model =3D 0x0
>                                 qtest_chrdev =3D 0x0
>                                 qtest_log =3D 0x0
>                                 pid_file =3D 0x0
>                                 incoming =3D 0x0
>                                 show_vnc_port =3D 0
>                                 defconfig =3D true
>                         ---Type <return> to continue, or q <return> to
>                         quit---
>                                 userconfig =3D true
>                                 log_mask =3D 0x0
>                                 log_file =3D 0x0
>                                 mem_trace =3D {malloc =3D 0x55555581950b
>                         <malloc_and_trace>,
>                                   realloc =3D 0x555555819540
>                         <realloc_and_trace>,
>                                   free =3D 0x555555819584
>                         <free_and_trace>, calloc =3D 0x0,
>                                   try_malloc =3D 0x0, try_realloc =3D 0x0}
>                                 trace_events =3D 0x0
>                                 trace_file =3D 0x0
>                                 __func__ =3D "main"
>                                 args =3D {machine =3D 0x555555d78540
>                         <xenfv_machine>,
>                                   ram_size =3D 2013265920
>                         <tel:2013265920>, boot_order =3D 0x555556275380
>                         "dc",
>                         kernel_filename =3D 0x0, kernel_cmdline =3D
>                         0x55555598c664 "",
>                         initrd_filename =3D 0x0, cpu_model =3D 0x0}
>
>
>                         2015-01-04 19:00 GMT+01:00 Fabio Fantoni
>                         <fabio.fantoni@m2r.biz
>                         <mailto:fabio.fantoni@m2r.biz>>:
>
>
>                             Il 04/01/2015 01:11, Goonie Windy ha scritto:
>>                             Forgot to say that it is not a matter of
>>                             timeout :/, it's when pressing c that it
>>                             breaks
>>
>>                             2015-01-04 1:07 GMT+01:00 Goonie Windy
>>                             <monsieur.goonie@gmail.com
>>                             <mailto:monsieur.goonie@gmail.com>>:
>>
>>                                  ok, I'm using the Upstream compiled
>>                                 in Xen so I created the file
>>                                 qemu-dbg, chmoded it etc...
>>
>>
>>
>>                                 But that's as far as I can get:
>>
>>
>>                                 xl create result:
>>                                 WARNING: device model override given
>>                                 without specific DM version
>>
>
>                             The problem should solved with this in
>                             domU's xl cfg:
>                             device_model_version=3Dqemu-xen
>
>
>>                                 libxl: error:
>>                                 libxl_exec.c:421:spawn_middle_death:
>>                                 domain 32 device model [-1]:
>>                                 unexpectedly exited with exit status
>>                                 0, when we were waiting for it to
>>                                 confirm startup
>>                                 libxl: error:
>>                                 libxl_dm.c:1490:device_model_spawn_outcome:
>>                                 domain 32 device model: spawn failed
>>                                 (rc=3D-3)
>>                                 libxl: error:
>>                                 libxl_create.c:1332:domcreate_devmodel_started:
>>                                 device model did not start: -3
>>                                 libxl: error:
>>                                 libxl_dm.c:1594:kill_device_model:
>>                                 Device Model already exited
>>
>
>                             If the problem persist look the domU's
>                             qemu log.
>
>
>>
>>
>>                                 gdb output:
>>                                 target remote localhost:1234 c
>>                                 Remote debugging using localhost:1234 c
>>                                 Reading symbols from
>>                                 /lib64/ld-linux-x86-64.so.2...Reading
>>                                 symbols from
>>                                 /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>                                 done.
>>                                 Loaded symbols for
>>                                 /lib64/ld-linux-x86-64.so.2
>>                                 0x00007ffff7ddd190 in _start () from
>>                                 /lib64/ld-linux-x86-64.so.2
>>                                 (gdb) c
>>                                 Continuing.
>>                                 [Inferior 1 (process 6455) exited
>>                                 with code 01]
>>
>>
>>
>>                                 libxl_exec.c shows me
>>                                 421(
>>                                  else {
>>                                         if (!status)
>>                                 LOG(ERROR, "%s [%ld]: unexpectedly
>>                                 exited with exit status 0,"
>>                                 " when we were waiting for it to
>>                                 confirm startup",
>>                                 ss->what, (unsigned long)pid);
>>                                         else if (status <=3D 127)
>>                                 )
>>
>>
>>                                 that it is a matter of status (=3F) missing
>>
>>
>>                                 That's all I could find out.
>>
>>                                 2015-01-03 14:36 GMT+01:00 Fabio
>>                                 Fantoni <fabio.fantoni@m2r.biz
>>                                 <mailto:fabio.fantoni@m2r.biz>>:
>>
>>                                     2015-01-03 1:24 GMT+01:00 Goonie
>>                                     Windy <monsieur.goonie@gmail.com
>>                                     <mailto:monsieur.goonie@gmail.com>>:
>>
>>                                         Fabio, actually I would have
>>                                         to compile qemu-dbg during
>>                                         compilation of xen, right=3F
>>                                         Because I uninstalled it for
>>                                         installing 4.5RC4.
>>
>>
>>                                     If you use qemu compiled in xen
>>                                     is not stripped is you have debug
>>                                     enabled in xen config (enabled by
>>                                     default except stable release).
>>                                     Qemu packages in debian seems not
>>                                     have -dbg package instead, I not
>>                                     remember if are at least not
>>                                     stripped, if are stripped and
>>                                     without -dbg pkg we should open a
>>                                     bugreport about in debian tracker.
>>
>>
>>                                         regards
>>
>>                                         2015-01-01 14:49 GMT+01:00
>>                                         Fabio Fantoni
>>                                         <fabio.fantoni@m2r.biz
>>                                         <mailto:fabio.fantoni@m2r.biz>>:
>>
>>
>>                                             Il 01/01/2015 13:24,
>>                                             Goonie Windy ha scritto:
>>>                                             Hello Fabio, well same
>>>                                             thing happens with
>>>                                             remote-viewer,
>>>
>>>
>>>                                             about not using dom0 as
>>>                                             desktop, it's a laptop
>>>                                             I'm using for those tests,
>>>
>>>                                             Way to go is to use a
>>>                                             blank machine with only
>>>                                             Xen and then virtualise
>>>                                             all machines inside=3F
>>
>>                                             Try to post what version
>>                                             of qemu, spice ecc your
>>                                             are using, your domU xl
>>                                             cfg and backtrace of the
>>                                             crash (following the
>>                                             howto I wrote should be
>>                                             simple)
>>
>>
>>>
>>>
>>>                                             regards
>>>
>>>
>>>
>>>                                             gregB
>>>
>>>                                             2015-01-01 12:45
>>>                                             GMT+01:00 Fabio Fantoni
>>>                                             <fabio.fantoni@m2r.biz
>>>                                             <mailto:fabio.fantoni@m2r.biz>>:
>>>
>>>
>>>                                                 Il 01/01/2015 11:36,
>>>                                                 Goonie Windy ha scritto:
>>>>                                                 Actulally I have,
>>>>
>>>>                                                  qemu-system-i38[13389]:
>>>>                                                 segfault at 0 ip
>>>>                                                 00007fd3d166d801 sp
>>>>                                                 00007ffffc8595d0
>>>>                                                 error 4 in
>>>>                                                 libspice-server.so.1.9.0[7fd3d1661000+11b000]
>>>>
>>>>                                                 BTW happy new year
>>>>
>>>>                                                 2015-01-01 11:30
>>>>                                                 GMT+01:00 Goonie
>>>>                                                 Windy
>>>>                                                 <monsieur.goonie@gmail.com
>>>>                                                 <mailto:monsieur.goonie@gmail.com>>:
>>>>
>>>>                                                     Fabio,
>>>>
>>>>                                                     ok for all
>>>>                                                     concerning
>>>>                                                     rombios ...
>>>>
>>>>                                                     My spicec
>>>>                                                     connection
>>>>                                                     keeps on dying
>>>>                                                     with
>>>>                                                     "Spice-Warning
>>>>                                                     **:
>>>>                                                     red_peer.cpp:128:connect_to_peer:
>>>>                                                     failed to
>>>>                                                     connect:
>>>>                                                     Connexion
>>>>                                                     refus=C3=A9e (111)"
>>>>                                                     Then I can't
>>>>                                                     access VM and
>>>>                                                     have to destroy it.
>>>>
>>>>                                                     I'm connecting
>>>>                                                     with
>>>>                                                     spicec -h
>>>>                                                     0.0.0.0 -p 6000
>>>>
>>>>                                                     Any idea=3F
>>>>
>>>
>>>                                                 spicec is very old
>>>                                                 and deprecated
>>>                                                 client and was
>>>                                                 already removed in
>>>                                                 spice git for next
>>>                                                 version.
>>>                                                 there are spicy and
>>>                                                 virt-viewer, the
>>>                                                 second is better.
>>>                                                 from address seems
>>>                                                 that you use dom0 as
>>>                                                 desktop, don't seems
>>>                                                 good for me^^''
>>>
>>>                                                 if you still have
>>>                                                 the qemu crash
>>>                                                 install spice debug
>>>                                                 package and take a
>>>                                                 backtrace with gdb.
>>>
>>>                                                 For use gdb on qemu
>>>                                                 as it child process
>>>                                                 is particular.
>>>
>>>                                                 Small help with gdb
>>>                                                 of qemu launched by xl:
>>>                                                 add the line below
>>>                                                 in domU's xl cfg:
>>>                                                 device_model_override=3D"/usr/lib/xen/bin/qemu-gdb"
>>>                                                 vi
>>>                                                 /usr/lib/xen/bin/qemu-gdb
>>>                                                 # create the file,
>>>                                                 change the qemu path
>>>                                                 if needed
>>>                                                 #!/bin/sh
>>>                                                 exec gdbserver
>>>                                                 0.0.0.0:1234
>>>                                                 <http://0.0.0.0:1234> /usr/lib/xen/bin/qemu-system-i386
>>>                                                 "$@"
>>>                                                 # after xl create
>>>                                                 with (qemu gdb), do
>>>                                                 it fast after xl
>>>                                                 create when arrive
>>>                                                 on qemu process
>>>                                                 launch (before
>>>                                                 timeout or xl create
>>>                                                 will fails)
>>>                                                 target remote
>>>                                                 localhost:1234 #
>>>                                                 prepare this command
>>>                                                 in other ssh to the
>>>                                                 xen dom0 and enter
>>>                                                 on xl create when
>>>                                                 arrive on qemu launch
>>>                                                 c # press immediatly
>>>                                                 bt full # when qemu
>>>                                                 stops with crash
>>>
>>>
>>>>
>>>>
>>>>                                                     regards,
>>>>
>>>>                                                     greg
>>>>
>>>>                                                     2014-12-31
>>>>                                                     10:03 GMT+01:00
>>>>                                                     Fabio Fantoni
>>>>                                                     <fabio.fantoni@m2r.biz
>>>>                                                     <mailto:fabio.fantoni@m2r.biz>>:
>>>>
>>>>                                                         Il
>>>>                                                         31/12/2014
>>>>                                                         02:26,
>>>>                                                         Goonie
>>>>                                                         Windy ha
>>>>                                                         scritto:
>>>>>                                                         Ok Fabio,
>>>>>                                                         thanks to
>>>>>                                                         your
>>>>>                                                         configure,
>>>>>                                                         some bits
>>>>>                                                         of hacking
>>>>>                                                         the
>>>>>                                                         install
>>>>>                                                         part and
>>>>>                                                         lots of
>>>>>                                                         advises/support/encouragements
>>>>>                                                         ;) from
>>>>>                                                         Mark Pryor
>>>>>                                                         I ended up
>>>>>                                                          installing 4.5RC4
>>>>>                                                         with QXL
>>>>>                                                         support on
>>>>>                                                         Deb8 unstable.
>>>>>
>>>>>
>>>>>                                                         So now
>>>>>                                                         what do
>>>>>                                                         you want
>>>>>                                                         me to test
>>>>>                                                         fabio=3F
>>>>>                                                         I have
>>>>>                                                         win7 x64 /
>>>>>                                                         win 2k8R2
>>>>>                                                         vms in
>>>>>                                                         test mode
>>>>>                                                         ready to
>>>>>                                                         install
>>>>>                                                         drvers.
>>>>>
>>>>>                                                         the
>>>>>                                                         numerous
>>>>>                                                         troubles I
>>>>>                                                         went
>>>>>                                                         through
>>>>>                                                         are
>>>>>                                                         related in
>>>>>                                                         the
>>>>>                                                         IRCcopy
>>>>>                                                         attached.
>>>>>                                                         I actually
>>>>>                                                         couldn't
>>>>>                                                         build
>>>>>                                                         rombios
>>>>>                                                         and used
>>>>>                                                         seabios
>>>>>                                                         provided
>>>>>                                                         by the
>>>>>                                                         system
>>>>>                                                         -like you-
>>>>>                                                         I should
>>>>>                                                         try to
>>>>>                                                         compile/find
>>>>>                                                         latest qxl
>>>>>                                                         now.
>>>>
>>>>                                                         rombios is
>>>>                                                         used only
>>>>                                                         by qemu
>>>>                                                         traditional
>>>>                                                         that is
>>>>                                                         very old,
>>>>                                                         without
>>>>                                                         spice
>>>>                                                         support and
>>>>                                                         hvm domUs
>>>>                                                         have lower
>>>>                                                         performance
>>>>                                                         with it.
>>>>                                                         qxl drivers
>>>>                                                         in latest
>>>>                                                         spice guest
>>>>                                                         tools are
>>>>                                                         signed and
>>>>                                                         not require
>>>>                                                         windows
>>>>                                                         testsigning
>>>>                                                         mode, same
>>>>                                                         for james
>>>>                                                         haper xen
>>>>                                                         gplpv.
>>>>                                                         If you want
>>>>                                                         test new
>>>>                                                         winpv
>>>>                                                         drivers
>>>>                                                         instead you
>>>>                                                         need it.
>>>>
>>>>                                                         For me qxl
>>>>                                                         is working
>>>>                                                         good on w7
>>>>                                                         domUs
>>>>                                                         except
>>>>                                                         after
>>>>                                                         save/restore when
>>>>                                                         "freeze"
>>>>                                                         2-3 minutes
>>>>                                                         on screen
>>>>                                                         resolution
>>>>                                                         change and
>>>>                                                         I not found
>>>>                                                         the exact
>>>>                                                         problem for
>>>>                                                         now.
>>>>                                                         I also not
>>>>                                                         found how
>>>>                                                         to have qxl
>>>>                                                         working in
>>>>                                                         linux
>>>>                                                         domUs, on
>>>>                                                         latest test
>>>>                                                         xorg crash
>>>>                                                         on start
>>>>                                                         with qxl
>>>>                                                         driver
>>>>                                                         installed.
>>>>                                                         Probably
>>>>                                                         other
>>>>                                                         changes are
>>>>                                                         needed in
>>>>                                                         hvmloader
>>>>                                                         and/or xen
>>>>                                                         hypervisor
>>>>                                                         and/or qxl
>>>>                                                         driver.
>>>>                                                         Any help
>>>>                                                         testing it
>>>>                                                         is
>>>>                                                         appreciated.
>>>>
>>>>
>>>>>
>>>>>                                                         See you in
>>>>>                                                         2K15.
>>>>>
>>>>>                                                         greg B
>>>>>
>>>>>                                                         2014-12-29
>>>>>                                                         14:49
>>>>>                                                         GMT+01:00
>>>>>                                                         Fabio
>>>>>                                                         Fantoni
>>>>>                                                         <fabio.fantoni@m2r.biz
>>>>>                                                         <mailto:fabio.fantoni@m2r.biz>>:
>>>>>
>>>>>                                                             Il
>>>>>                                                             29/12/2014
>>>>>                                                             14:13,
>>>>>                                                             Goonie
>>>>>                                                             Windy
>>>>>                                                             ha
>>>>>                                                             scritto:
>>>>>>                                                             ok,
>>>>>>                                                             I'm
>>>>>>                                                             trying to
>>>>>>                                                             patch
>>>>>>                                                             the
>>>>>>                                                             files
>>>>>>                                                             with
>>>>>>                                                             yours,
>>>>>>
>>>>>>
>>>>>>                                                             I
>>>>>>                                                             need
>>>>>>                                                             to do
>>>>>>                                                             it
>>>>>>                                                             manually
>>>>>>                                                             right=3F
>>>>>>
>>>>>>                                                             git
>>>>>>                                                             apply
>>>>>>                                                             is
>>>>>>                                                             not
>>>>>>                                                             working
>>>>>>                                                             here.
>>>>>
>>>>>                                                             If the
>>>>>                                                             patch
>>>>>                                                             need a
>>>>>                                                             "refresh"
>>>>>                                                             the
>>>>>                                                             conflict
>>>>>                                                             should
>>>>>                                                             be
>>>>>                                                             solved
>>>>>                                                             manually.
>>>>>                                                             Taking
>>>>>                                                             the
>>>>>                                                             patch
>>>>>                                                             updated from
>>>>>                                                             here
>>>>>                                                             probably
>>>>>                                                             it can
>>>>>                                                             be
>>>>>                                                             applied to
>>>>>                                                             latest
>>>>>                                                             4.5-rc:
>>>>>                                                             https://github.com/Fantu/Xen/commits/rebase/m2r-staging
>>>>>
>>>>>>
>>>>>>
>>>>>>                                                             regards
>>>>>>
>>>>>>                                                             greg
>>>>>>
>>>>>>                                                             2014-12-29
>>>>>>                                                             13:46
>>>>>>                                                             GMT+01:00
>>>>>>                                                             Goonie Windy
>>>>>>                                                             <monsieur.goonie@gmail.com
>>>>>>                                                             <mailto:monsieur.goonie@gmail.com>>:
>>>>>>
>>>>>>                                                                 There
>>>>>>                                                                 is an
>>>>>>                                                                 error
>>>>>>                                                                 in pageqs
>>>>>>                                                                 describing
>>>>>>                                                                 how
>>>>>>                                                                 to compile
>>>>>>                                                                 from
>>>>>>                                                                 sources
>>>>>>                                                                 as in
>>>>>>                                                                 4.5
>>>>>>
>>>>>>                                                                 cat .config
>>>>>>                                                                 PYTHON_PREFIX_ARG=3D--install-layout=3Ddeb
>>>>>>
>>>>>>                                                                 is in fact in .INSTALL
>>>>>>
>>>>>
>>>>>                                                             If
>>>>>                                                             also
>>>>>                                                             you
>>>>>                                                             use
>>>>>                                                             debian
>>>>>                                                             you
>>>>>                                                             can
>>>>>                                                             use
>>>>>                                                             make
>>>>>                                                             debball that
>>>>>                                                             is
>>>>>                                                             better
>>>>>                                                             for
>>>>>                                                             install/remove
>>>>>                                                             easy
>>>>>                                                             and
>>>>>                                                             fast
>>>>>                                                             test
>>>>>                                                             build.
>>>>>
>>>>>                                                             And
>>>>>                                                             for
>>>>>                                                             example I
>>>>>                                                             use
>>>>>                                                             this
>>>>>                                                             configure
>>>>>                                                             options with
>>>>>                                                             xen 4.5:
>>>>>                                                             ./configure
>>>>>                                                             --prefix=3D/usr
>>>>>                                                             --disable-blktap1
>>>>>                                                             --disable-qemu-traditional
>>>>>                                                             --disable-rombios
>>>>>                                                             --with-system-seabios=3D/usr/share/seabios/bios-256k.bin
>>>>>                                                             --with-extra-qemuu-configure-args=3D"--enable-spice
>>>>>                                                             --enable-usb-redir"
>>>>>                                                             --disable-blktap2
>>>>>                                                             I use
>>>>>                                                             wheezy
>>>>>                                                             building
>>>>>                                                             updated packages
>>>>>                                                             from
>>>>>                                                             sid:
>>>>>                                                             seabios 1.7.5-1,
>>>>>                                                             spice
>>>>>                                                             0.12.5-1,
>>>>>                                                             spice-protocol
>>>>>                                                             0.12.7-1
>>>>>                                                             and
>>>>>                                                             usbredir
>>>>>                                                             0.7-1.
>>>>>                                                             If you
>>>>>                                                             use
>>>>>                                                             jessie
>>>>>                                                             instead you
>>>>>                                                             have
>>>>>                                                             all
>>>>>                                                             packages
>>>>>                                                             updated.
>>>>>
>>>>>                                                             About
>>>>>                                                             python
>>>>>                                                             I'm
>>>>>                                                             using
>>>>>                                                             this
>>>>>                                                             workaround
>>>>>                                                             (before execute
>>>>>                                                             configure)
>>>>>                                                             even
>>>>>                                                             if
>>>>>                                                             probably
>>>>>                                                             is not
>>>>>                                                             the best:
>>>>>                                                             Config.mk
>>>>>                                                             -PYTHON_PREFIX_ARG
>>>>>                                                             =3F=3D--prefix=3D"$(PREFIX)"
>>>>>                                                             +PYTHON_PREFIX_ARG
>>>>>                                                             =3F=3D
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>                                                                 2014-12-29
>>>>>>                                                                 1:20
>>>>>>                                                                 GMT+01:00
>>>>>>                                                                 Goonie
>>>>>>                                                                 Windy
>>>>>>                                                                 <monsieur.goonie@gmail.com
>>>>>>                                                                 <mailto:monsieur.goonie@gmail.com>>:
>>>>>>
>>>>>>                                                                     well
>>>>>>                                                                     figured
>>>>>>                                                                     out
>>>>>>                                                                     it
>>>>>>                                                                     is
>>>>>>                                                                     because
>>>>>>                                                                     you
>>>>>>                                                                     have
>>>>>>                                                                     to
>>>>>>                                                                     "enforce"
>>>>>>                                                                     locale:
>>>>>>                                                                     export
>>>>>>                                                                     LC_ALL=3Den_US.utf-8
>>>>>>                                                                     if
>>>>>>                                                                     keyboard
>>>>>>                                                                     mapping
>>>>>>                                                                     is
>>>>>>                                                                     else
>>>>>>
>>>>>>                                                                     2014-12-28
>>>>>>                                                                     21:19
>>>>>>                                                                     GMT+01:00
>>>>>>                                                                     Goonie
>>>>>>                                                                     Windy
>>>>>>                                                                     <monsieur.goonie@gmail.com
>>>>>>                                                                     <mailto:monsieur.goonie@gmail.com>>:
>>>>>>
>>>>>>                                                                         Trying
>>>>>>                                                                         to
>>>>>>                                                                         compile
>>>>>>                                                                         xen
>>>>>>                                                                         4.5RC4
>>>>>>                                                                         in
>>>>>>                                                                         order
>>>>>>                                                                         to
>>>>>>                                                                         test
>>>>>>                                                                         your
>>>>>>                                                                         patch
>>>>>>                                                                         I end
>>>>>>                                                                         up
>>>>>>                                                                         with
>>>>>>                                                                         these
>>>>>>                                                                         errors
>>>>>>                                                                         compiling
>>>>>>                                                                         the
>>>>>>                                                                         Seabios
>>>>>>                                                                         directories,
>>>>>>
>>>>>>                                                                         any
>>>>>>                                                                         idea=3F
>>>>>>
>>>>>>                                                                           Compiling
>>>>>>                                                                         to
>>>>>>                                                                         assembler
>>>>>>                                                                         out/src/asm-offsets.s
>>>>>>                                                                           Generating
>>>>>>                                                                         offset
>>>>>>                                                                         file
>>>>>>                                                                         out/asm-offsets.h
>>>>>>                                                                           Compiling
>>>>>>                                                                         (16bit)
>>>>>>                                                                         out/romlayout.o
>>>>>>                                                                           Building
>>>>>>                                                                         ld
>>>>>>                                                                         scripts
>>>>>>                                                                         Version:
>>>>>>                                                                         rel-1.7.5-0-ge51488c-20141228_210340-E766
>>>>>>                                                                         Traceback
>>>>>>                                                                         (most
>>>>>>                                                                         recent
>>>>>>                                                                         call
>>>>>>                                                                         last):
>>>>>>                                                                           File
>>>>>>                                                                         "./scripts/layoutrom.py",
>>>>>>                                                                         line
>>>>>>                                                                         709,
>>>>>>                                                                         in
>>>>>>                                                                         <module>
>>>>>>                                                                            
>>>>>>                                                                         main()
>>>>>>                                                                           File
>>>>>>                                                                         "./scripts/layoutrom.py",
>>>>>>                                                                         line
>>>>>>                                                                         671,
>>>>>>                                                                         in
>>>>>>                                                                         main
>>>>>>                                                                            
>>>>>>                                                                         info16
>>>>>>                                                                         =3D parseObjDump(infile16,
>>>>>>                                                                         '16')
>>>>>>                                                                           File
>>>>>>                                                                         "./scripts/layoutrom.py",
>>>>>>                                                                         line
>>>>>>                                                                         586,
>>>>>>                                                                         in
>>>>>>                                                                         parseObjDump
>>>>>>                                                                         relocsection
>>>>>>                                                                         =3D sectionmap[sectionname]
>>>>>>                                                                         KeyError:
>>>>>>                                                                         '.text.asm./home/goon/xen/tools/firmware/seabios-dir-remote/src/fw/smp.c.79'
>>>>>>                                                                         Makefile:155:
>>>>>>                                                                         recipe
>>>>>>                                                                         for
>>>>>>                                                                         target
>>>>>>                                                                         'out/romlayout16.lds'
>>>>>>                                                                         failed
>>>>>>                                                                         make[6]:
>>>>>>                                                                         ***
>>>>>>                                                                         [out/romlayout16.lds]
>>>>>>                                                                         Error
>>>>>>                                                                         1
>>>>>>                                                                         make[6]:
>>>>>>                                                                         Leaving
>>>>>>                                                                         directory
>>>>>>                                                                         '/home/goon/xen/tools/firmware/seabios-dir-remote'
>>>>>>                                                                         /home/goon/xen/tools/firmware/../../tools/Rules.mk:116:
>>>>>>                                                                         recipe
>>>>>>                                                                         for
>>>>>>                                                                         target
>>>>>>                                                                         'subdir-all-seabios-dir'
>>>>>>                                                                         failed
>>>>>>
>>>>>>
>>>>>>
>>>>>>                                                                         2014-12-27
>>>>>>                                                                         17:35
>>>>>>                                                                         GMT+01:00
>>>>>>                                                                         Goonie
>>>>>>                                                                         Windy
>>>>>>                                                                         <monsieur.goonie@gmail.com
>>>>>>                                                                         <mailto:monsieur.goonie@gmail.com>>:
>>>>>>
>>>>>>                                                                             Hello
>>>>>>                                                                             Fabio,
>>>>>>
>>>>>>                                                                             Sure
>>>>>>                                                                             thing
>>>>>>                                                                             I will
>>>>>>                                                                             help
>>>>>>                                                                             debug
>>>>>>                                                                             the
>>>>>>                                                                             win7
>>>>>>                                                                             and
>>>>>>                                                                             the
>>>>>>                                                                             win8
>>>>>>                                                                             versions.
>>>>>>                                                                             Where
>>>>>>                                                                             to
>>>>>>                                                                             start=3F
>>>>>>
>>>>>>                                                                             I'll
>>>>>>                                                                             try
>>>>>>                                                                             to
>>>>>>                                                                             see
>>>>>>                                                                             if
>>>>>>                                                                             I can
>>>>>>                                                                             patch
>>>>>>                                                                             with
>>>>>>                                                                             patch
>>>>>>                                                                             from
>>>>>>                                                                             https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe
>>>>>>                                                                             and
>>>>>>                                                                             if
>>>>>>                                                                             not
>>>>>>                                                                             will
>>>>>>                                                                             post
>>>>>>                                                                             result.
>>>>>>
>>>>>>
>>>>>>                                                                             best
>>>>>>                                                                             regards,
>>>>>>
>>>>>>
>>>>>>                                                                             greg
>>>>>>                                                                             Bahde
>>>>>>
>>>>>>                                                                             2014-12-27
>>>>>>                                                                             15:10
>>>>>>                                                                             GMT+01:00
>>>>>>                                                                             Fabio
>>>>>>                                                                             Fantoni
>>>>>>                                                                             <fabio.fantoni@m2r.biz
>>>>>>                                                                             <mailto:fabio.fantoni@m2r.biz>>:
>>>>>>
>>>>>>
>>>>>>                                                                                 Il
>>>>>>                                                                                 27/12/2014
>>>>>>                                                                                 02:15,
>>>>>>                                                                                 Goonie
>>>>>>                                                                                 Windy
>>>>>>                                                                                 ha
>>>>>>                                                                                 scritto:
>>>>>>>                                                                                 I tried
>>>>>>>                                                                                 to
>>>>>>>                                                                                 install
>>>>>>>                                                                                 Qxl
>>>>>>>                                                                                 drivers
>>>>>>>                                                                                 under
>>>>>>>                                                                                 win7/win
>>>>>>>                                                                                 2k8/win8.1
>>>>>>>                                                                                 all      
>>>>>>>                                                                                 x64
>>>>>>>                                                                                 versions,
>>>>>>>                                                                                 without
>>>>>>>                                                                                 any
>>>>>>>                                                                                 luck.
>>>>>>>
>>>>>>>
>>>>>>>                                                                                 admin
>>>>>>>                                                                                 message
>>>>>>>                                                                                 is
>>>>>>>                                                                                 as
>>>>>>>                                                                                 follow:
>>>>>>>                                                                                 Driver
>>>>>>>                                                                                 Management
>>>>>>>                                                                                 concluded
>>>>>>>                                                                                 the
>>>>>>>                                                                                 process
>>>>>>>                                                                                 to
>>>>>>>                                                                                 install
>>>>>>>                                                                                 driver
>>>>>>>                                                                                 FileRepository\qxl.inf_amd64_
>>>>>>>
>>>>>>>                                                                                 neutral_f0c429882d5c81ed\qxl.inf
>>>>>>>                                                                                 for
>>>>>>>                                                                                 Device
>>>>>>>                                                                                 Instance
>>>>>>>                                                                                 ID
>>>>>>>                                                                                 PCI\VEN_1013&DEV_00B8&SUBSYS_11001AF4&REV_00\3&267A616A&1&28
>>>>>>>                                                                                 with
>>>>>>>                                                                                 the
>>>>>>>                                                                                 following
>>>>>>>                                                                                 status:
>>>>>>>                                                                                 0xe000022d.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                                                                                 Does
>>>>>>>
>>>>>>>                                                                                 http://lists.xen.org/archives/html/xen-devel/2014-05/msg03214.html
>>>>>>>
>>>>>>>                                                                                 can
>>>>>>>                                                                                 it
>>>>>>>                                                                                 be
>>>>>>>                                                                                 installed
>>>>>>>                                                                                 on
>>>>>>>                                                                                 my
>>>>>>>                                                                                 xen
>>>>>>>                                                                                 stack=3F
>>>>>>>
>>>>>>
>>>>>>                                                                                 Yes
>>>>>>                                                                                 but
>>>>>>                                                                                 probably
>>>>>>                                                                                 require
>>>>>>                                                                                 a small
>>>>>>                                                                                 refresh,
>>>>>>                                                                                 I always
>>>>>>                                                                                 posted
>>>>>>                                                                                 the
>>>>>>                                                                                 patch
>>>>>>                                                                                 based
>>>>>>                                                                                 on
>>>>>>                                                                                 updated
>>>>>>                                                                                 xen-unstable.
>>>>>>
>>>>>>
>>>>>>                                                                                 Here
>>>>>>                                                                                 qxl
>>>>>>                                                                                 patch
>>>>>>                                                                                 refreshed
>>>>>>                                                                                 for
>>>>>>                                                                                 xen
>>>>>>                                                                                 4.5
>>>>>>                                                                                 if
>>>>>>                                                                                 needed:
>>>>>>                                                                                 https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe
>>>>>>
>>>>>>                                                                                 Here
>>>>>>                                                                                 the
>>>>>>                                                                                 latest
>>>>>>                                                                                 spice
>>>>>>                                                                                 guest
>>>>>>                                                                                 tools
>>>>>>                                                                                 for
>>>>>>                                                                                 windows
>>>>>>                                                                                 with
>>>>>>                                                                                 qxl
>>>>>>                                                                                 driver
>>>>>>                                                                                 included:
>>>>>>                                                                                 http://www.spice-space.org/download/binaries/spice-guest-tools/spice-guest-tools-0.74.exe
>>>>>>
>>>>>>                                                                                 Windows
>>>>>>                                                                                 >=3D8
>>>>>>                                                                                 and
>>>>>>                                                                                 similar
>>>>>>                                                                                 require
>>>>>>                                                                                 a new
>>>>>>                                                                                 qxl
>>>>>>                                                                                 drivers,
>>>>>>                                                                                 there
>>>>>>                                                                                 are
>>>>>>                                                                                 a beta
>>>>>>                                                                                 build
>>>>>>                                                                                 but
>>>>>>                                                                                 latest
>>>>>>                                                                                 tried
>>>>>>                                                                                 some
>>>>>>                                                                                 months
>>>>>>                                                                                 ago
>>>>>>                                                                                 have
>>>>>>                                                                                 serious
>>>>>>                                                                                 bug
>>>>>>                                                                                 and
>>>>>>                                                                                 I not
>>>>>>                                                                                 found
>>>>>>                                                                                 recent
>>>>>>                                                                                 build
>>>>>>                                                                                 full
>>>>>>                                                                                 working
>>>>>>                                                                                 on
>>>>>>                                                                                 windows
>>>>>>                                                                                 8.
>>>>>>
>>>>>>                                                                                 On
>>>>>>                                                                                 xen
>>>>>>                                                                                 windows
>>>>>>                                                                                 7 domUs
>>>>>>                                                                                 qxl
>>>>>>                                                                                 works
>>>>>>                                                                                 good
>>>>>>                                                                                 except
>>>>>>                                                                                 a problem
>>>>>>                                                                                 after
>>>>>>                                                                                 save/restore
>>>>>>                                                                                 and
>>>>>>                                                                                 on
>>>>>>                                                                                 linux
>>>>>>                                                                                 domUs
>>>>>>                                                                                 is
>>>>>>                                                                                 not
>>>>>>                                                                                 working,
>>>>>>                                                                                 for
>>>>>>                                                                                 now
>>>>>>                                                                                 I not
>>>>>>                                                                                 found
>>>>>>                                                                                 exactly
>>>>>>                                                                                 cause
>>>>>>                                                                                 and
>>>>>>                                                                                 solution.
>>>>>>                                                                                 On
>>>>>>                                                                                 mailing
>>>>>>                                                                                 list
>>>>>>                                                                                 up
>>>>>>                                                                                 to
>>>>>>                                                                                 2 years
>>>>>>                                                                                 ago
>>>>>>                                                                                 you
>>>>>>                                                                                 can
>>>>>>                                                                                 find
>>>>>>                                                                                 many
>>>>>>                                                                                 my
>>>>>>                                                                                 mails
>>>>>>                                                                                 about.
>>>>>>                                                                                 Any
>>>>>>                                                                                 help
>>>>>>                                                                                 to
>>>>>>                                                                                 test
>>>>>>                                                                                 it
>>>>>>                                                                                 is
>>>>>>                                                                                 appreciated.
>>>>>>
>>>>>>                                                                                 Sorry
>>>>>>                                                                                 for
>>>>>>                                                                                 my
>>>>>>                                                                                 bad
>>>>>>                                                                                 english.
>>>>>>
>>>>>>>
>>>>>>>                                                                                 Also,
>>>>>>>                                                                                 can 
>>>>>>>                                                                                 I get
>>>>>>>                                                                                 invited
>>>>>>>                                                                                 at
>>>>>>>                                                                                 xendevel
>>>>>>>                                                                                 irc
>>>>>>>                                                                                 =3F
>>>>>>>                                                                                 regards
>>>>>>>
>>>>>>>                                                                                 Greg
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                                                                                 _______________________________________________
>>>>>>>                                                                                 Xen-devel mailing list
>>>>>>>                                                                                 Xen-devel@lists.xen.org  <mailto:Xen-devel@lists.xen.org>
>>>>>>>                                                                                 http://lists.xen.org/xen-devel
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>>
>>
>
>
>
>
>
>
>
>


--------------040102060609020209000305
Content-Type: text/html; charset=utf-8
Content-Length: 238668
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Type">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div class=3D"moz-cite-prefix">Il 05/01/2015 00:24, Goonie Windy ha
      scritto:<br>
    </div>
    <blockquote
cite=3D"mid:CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com"
      type=3D"cite">
      <div dir=3D"ltr">AND DMESG<br>
        [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8
        ip 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in <a
          moz-do-not-send=3D"true" href=3D"http://libc-2.19.so">libc-2.19.so</a>[7f92a64d4000+19f000]<br>
        [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state<br>
        [ 3096.118716] device vif5.0-emu left promiscuous mode<br>
        [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state<br>
        [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3584.894741] device vif5.0 left promiscuous mode<br>
        [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3681.878054] device vif6.0 entered promiscuous mode<br>
        [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3682.193528] device vif6.0-emu entered promiscuous mode<br>
        [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state<br>
        [ 3780.535444] device vif6.0-emu left promiscuous mode<br>
        [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state<br>
        [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state<br>
        [ 3899.555577] device vif6.0 left promiscuous mode<br>
        [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state<br>
        <br>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">2015-01-05 0:21 GMT+01:00 Goonie Windy
          <span dir=3D"ltr">&lt;<a moz-do-not-send=3D"true"
              href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir=3D"ltr">=C2=A0 GNU nano
              2.2.6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Fichier=C2=A0:
              qemu-dm-win7.log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
              <br>
              <br>
              (/usr/local/sbin/xl:9535): Spice-Warning **:
              reds.c:1863:reds_handle_ticket: Invalid password<br>
              main_channel_link: add main channel client<br>
              main_channel_handle_parsed: net test: latency 0.318000 ms,
              bitrate 26597402597 bps (25365.259740 Mbps)<br>
              inputs_connect: inputs channel client create<br>
              red_dispatcher_set_cursor_peer:<br>
              main_channel_handle_parsed: agent start<br>
              main_channel_handle_parsed: agent start<br>
              *** Error in `/usr/lib/xen/bin/qemu-system-i386': double
              free or corruption (out): 0x00007f0e38dd26f0 ***<br>
              <br>
            </div>
            <div class=3D"gmail_extra"><br>
              <div class=3D"gmail_quote">2015-01-05 0:00 GMT+01:00 Goonie
                Windy <span dir=3D"ltr">&lt;<a moz-do-not-send=3D"true"
                    href=3D"mailto:monsieur.goonie@gmail.com"
                    target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <div dir=3D"ltr">Should add this too:<br>
                    host=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : E766<br>
                    release=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 3.16.0-4-amd64<br>
                    version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : #1 SMP Debian 3.16.7-ckt2-1
                    (2014-12-08)<br>
                    machine=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : x86_64<br>
                    nr_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    max_cpu_id=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 7<br>
                    nr_nodes=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 1<br>
                    cores_per_socket=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2<br>
                    threads_per_core=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2<br>
                    cpu_mhz=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2594<br>
                    hw_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:00000281<br>
                    virt_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : hvm hvm_directio<br>
                    total_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 8055<br>
                    free_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2309<br>
                    sharing_freed_memory=C2=A0=C2=A0 : 0<br>
                    sharing_used_memory=C2=A0=C2=A0=C2=A0 : 0<br>
                    outstanding_claims=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    free_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    xen_major=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    xen_minor=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 5<br>
                    xen_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : .0-rc<br>
                    xen_version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4.5.0-rc<br>
                    xen_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : xen-3.0-x86_64
                    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
                    hvm-3.0-x86_64 <br>
                    xen_scheduler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : credit<br>
                    xen_pagesize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4096<br>
                    platform_params=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    virt_start=3D0xffff800000000000<br>
                    xen_changeset=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : Thu Dec 18 10:02:16 2014
                    +0000 git:36174af-dirty<br>
                    xen_commandline=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : placeholder<br>
                    cc_compiler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : gcc (Debian 4.9.2-10) 4.9.2<br>
                    cc_compile_by=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : root<br>
                    cc_compile_domain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : <br>
                    cc_compile_date=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : Wed Dec 31 01:20:47 CET
                    2014<br>
                    xend_config_format=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    <br>
                    <br>
                  </div>
                  <div class=3D"gmail_extra"><br>
                    <div class=3D"gmail_quote">2015-01-04 23:39 GMT+01:00
                      Goonie Windy <span dir=3D"ltr">&lt;<a
                          moz-do-not-send=3D"true"
                          href=3D"mailto:monsieur.goonie@gmail.com"
                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0
                        0 .8ex;border-left:1px #ccc
                        solid;padding-left:1ex">
                        <div dir=3D"ltr">My qemu log after spice failure:<br>
                          (/usr/local/sbin/xl:4254): Spice-Warning **:
                          reds.c:1863:reds_handle_ticket: Invalid
                          password<br>
                          main_channel_link: add main channel client<br>
                          main_channel_handle_parsed: net test: latency
                          0.257000 ms, bitrate 81920000000 bps
                          (78125.000000 Mbps)<br>
                          red_dispatcher_set_cursor_peer: <br>
                          inputs_connect: inputs channel client create<br>
                          main_channel_handle_parsed: agent start<br>
                          main_channel_handle_parsed: agent start<br>
                          qemu-system-i386: malloc.c:2372: sysmalloc:
                          Assertion `(old_top =3D=3D (((mbinptr) (((char *)
                          &amp;((av)-&gt;bins[((1) - 1) * 2])) -
                          __builtin_offsetof (struct malloc_chunk,
                          fd)))) &amp;&amp; old_size =3D=3D 0) || ((unsigned
                          long) (old_size) &gt;=3D (unsigned
                          long)((((__builtin_offsetof (struct
                          malloc_chunk, fd_nextsize))+((2
                          *(sizeof(size_t))) - 1)) &amp; ~((2
                          *(sizeof(size_t))) - 1))) &amp;&amp;
                          ((old_top)-&gt;size &amp; 0x1) &amp;&amp;
                          ((unsigned long) old_end &amp; pagemask) =3D=3D
                          0)' failed.<br>
                          <br>
                        </div>
                        <div class=3D"gmail_extra"><br>
                          <div class=3D"gmail_quote">2015-01-04 23:10
                            GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a
                                moz-do-not-send=3D"true"
                                href=3D"mailto:monsieur.goonie@gmail.com"
                                target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                            <blockquote class=3D"gmail_quote"
                              style=3D"margin:0 0 0 .8ex;border-left:1px
                              #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div>This one is bug from trying to
                                  install winpv=C2=A0 bus driver<br>
                                </div>
                              </div>
                            </blockquote>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
    If you followed all my advices your configurations should be ok and
    you found a new bug or inexpected case.<br>
    <span id=3D"result_box" class=3D"short_text" lang=3D"en"><span class=3D"hps">I
        do not have</span> <span class=3D"hps">the knowledge to</span> <span
        class=3D"hps">solve it.</span></span><br>
    Added to cc also win-pv-devel<br>
    Can someone take a look to this problem please=3F<br>
    <br>
    <blockquote
cite=3D"mid:CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com"
      type=3D"cite">
      <div class=3D"gmail_extra">
        <div class=3D"gmail_quote">
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div class=3D"gmail_extra">
              <div class=3D"gmail_quote">
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <div class=3D"gmail_extra">
                    <div class=3D"gmail_quote">
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0
                        0 .8ex;border-left:1px #ccc
                        solid;padding-left:1ex">
                        <div class=3D"gmail_extra">
                          <div class=3D"gmail_quote">
                            <blockquote class=3D"gmail_quote"
                              style=3D"margin:0 0 0 .8ex;border-left:1px
                              #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div><br>
                                </div>
                                <div>
                                  <div><br>
                                    Program received signal SIGSEGV,
                                    Segmentation fault.<br>
                                    _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    bytes=3Dbytes@entry=3D73729)<br>
                                    =C2=A0=C2=A0=C2=A0 at malloc.c:3775<br>
                                    3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun fichier ou
                                    dossier de ce type.<br>
                                    (gdb) bt full<br>
                                    #0=C2=A0 _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=3D73729) at
                                    malloc.c:3775<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 p =3D 0x555557303880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 iters =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 idx =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bin =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 victim =3D 0x555557303870<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 victim_index =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder =3D 0x555557315880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 block =3D 4<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bit =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 map =3D 66981887<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "_int_malloc"<br>
                                    #1=C2=A0 0x00007ffff3eb74a1 in
                                    _int_realloc (<br>
                                    =C2=A0=C2=A0=C2=A0 av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    oldp=3Doldp@entry=3D0x55555689d270, <br>
                                    =C2=A0=C2=A0=C2=A0 oldsize=3Doldsize@entry=3D36880,
                                    nb=3Dnb@entry=3D73744) at malloc.c:4286<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newp =3D &lt;optimized out&gt;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newsize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 next =3D 0x5555568a6280<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 copysize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ncopies =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "_int_realloc"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextsize =3D &lt;optimized
                                    out&gt;<br>
                                    #2=C2=A0 0x00007ffff3eb85f9 in
                                    __GI___libc_realloc
                                    (oldmem=3D0x55555689d280, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3D73728) at malloc.c:3029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ar_ptr =3D 0x7ffff41df620
                                    &lt;main_arena&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newp =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hook =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 oldp =3D 0x55555689d270<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 oldsize =3D 36880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "__libc_realloc"<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    #3=C2=A0 0x0000555555819563 in
                                    realloc_and_trace
                                    (mem=3D0x55555689d280, n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at vl.c:2857<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ptr =3D 0x7fffffffcf30<br>
                                    #4=C2=A0 0x00007ffff708388e in g_realloc
                                    (mem=3D&lt;optimized out&gt;,
                                    n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    #5=C2=A0 0x000055555582d3e2 in
                                    phys_map_node_reserve
                                    (map=3D0x5555563ccf98, nodes=3D18)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:152<br>
                                    No locals.<br>
                                    #6=C2=A0 0x000055555582d701 in
                                    phys_page_set (d=3D0x5555563ccf90,
                                    index=3D160, nb=3D16, <br>
                                    =C2=A0=C2=A0=C2=A0 leaf=3D5) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:211<br>
                                    No locals.<br>
                                    #7=C2=A0 0x000055555582f1ae in
                                    register_multipage
                                    (d=3D0x5555563ccf90, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffffcfe0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:937<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 start_addr =3D 655360<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 section_index =3D 5<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 num_pages =3D 16<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "register_multipage"<br>
                                    #8=C2=A0 0x000055555582f4b4 in mem_add
                                    (listener=3D0x55555633b898, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffffd1a0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:968<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D 0x5555563ccf90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 now =3D {mr =3D 0x55555636dd30,
                                    address_space =3D 0x55555633b860, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remain =3D {mr =3D
                                    0x55555636dd30, address_space =3D
                                    0x55555633b860, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 page_size =3D {lo =3D 4096, hi =3D
                                    0}<br>
                                    #9=C2=A0 0x0000555555892a01 in
                                    address_space_update_topology_pass (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x55555633b860,
                                    old_view=3D0x555556495910,
                                    new_view=3D0x55555687f2c0, <br>
                                    =C2=A0=C2=A0=C2=A0 adding=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:736<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 _listener =3D 0x55555633b898<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 iold =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 inew =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frold =3D 0x5555565fd828<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frnew =3D 0x5555568b23e8<br>
                                    #10 0x0000555555892fd7 in
                                    address_space_update_topology
                                    (as=3D0x55555633b860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:765<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 old_view =3D 0x555556495910<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 new_view =3D 0x55555687f2c0<br>
                                    #11 0x00005555558930fc in
                                    memory_region_transaction_commit ()<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:800<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "memory_region_transaction_commit"<br>
                                    #12 0x00005555558951ed in
                                    memory_region_del_subregion
                                    (mr=3D0x5555562855d0, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0 subregion=3D0x555556349250)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:1487<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "memory_region_del_subregion"<br>
                                    #13 0x000055555570fdf3 in
                                    pci_update_mappings
                                    (d=3D0x5555563489f0)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci.c:1113<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 r =3D 0x555556348af8<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 new_addr =3D
                                    18446744073709551615<br>
                                    #14 0x0000555555710110 in
                                    pci_default_write_config
                                    (d=3D0x5555563489f0, addr=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D0, l=3D2) at hw/pci/pci.c:1168<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 was_irq_disabled =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "pci_default_write_config"<br>
                                    #15 0x0000555555714125 in
                                    pci_host_config_write_common (<br>
                                    =C2=A0=C2=A0=C2=A0 pci_dev=3D0x5555563489f0, addr=3D4,
                                    limit=3D256, val=3D1024, len=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci_host.c:57<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D
                                    "pci_host_config_write_common"<br>
                                    #16 0x0000555555714229 in
                                    pci_data_write (s=3D0x5555562a8cf0,
                                    addr=3D<a moz-do-not-send=3D"true"
                                      href=3D"tel:2147487748"
                                      value=3D"+12147487748"
                                      target=3D"_blank">2147487748</a>, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2) at
                                    hw/pci/pci_host.c:84<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pci_dev =3D 0x5555563489f0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 config_addr =3D 4<br>
                                    #17 0x0000555555714351 in
                                    pci_host_data_write
                                    (opaque=3D0x555556311470, addr=3D0, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2) at
                                    hw/pci/pci_host.c:137<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s =3D 0x555556311470<br>
                                    #18 0x0000555555891531 in
                                    memory_region_write_accessor
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, value=3D0x7fffffffd5e8,
                                    size=3D2, shift=3D0, mask=3D65535)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:441<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tmp =3D 1024<br>
                                    #19 0x0000555555891636 in
                                    access_with_adjusted_size (addr=3D0, <br>
                                    =C2=A0=C2=A0=C2=A0 value=3D0x7fffffffd5e8, size=3D2,
                                    access_size_min=3D1,
                                    access_size_max=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 access=3D0x5555558914b0
                                    &lt;memory_region_write_accessor&gt;,
                                    mr=3D0x555556313860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:478<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 access_mask =3D 65535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 access_size =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br>
                                    #20 0x0000555555893772 in
                                    memory_region_dispatch_write
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, data=3D1024, size=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:985<br>
                                    No locals.<br>
                                    #21 0x0000555555896068 in
                                    io_mem_write (mr=3D0x555556313860,
                                    addr=3D0, val=3D1024, <br>
                                    =C2=A0=C2=A0=C2=A0 size=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/memory.c:1744<br>
                                    No locals.<br>
                                    #22 0x000055555583183c in
                                    address_space_rw (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 "", <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2, is_write=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:2029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 l =3D 2<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ptr =3D 0x7fffffffd6f4
                                    "\377\377\377\377"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 val =3D 1024<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 addr1 =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mr =3D 0x555556313860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 error =3D false<br>
                                    #23 0x0000555555831b12 in
                                    address_space_write (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 "", <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.c:2091<br>
                                    No locals.<br>
                                    #24 0x000055555588f486 in cpu_outw
                                    (addr=3D3324, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/ioport.c:77<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 buf =3D "\000\004"<br>
                                    #25 0x000055555590f460 in do_outp
                                    (addr=3D3324, size=3D2, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668<br>
                                    No locals.<br>
                                    #26 0x000055555590f66f in
                                    cpu_ioreq_pio (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br>
                                    #27 0x000055555590f910 in
                                    handle_ioreq (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781<br>
                                    No locals.<br>
                                    #28 0x000055555590fc0f in
                                    cpu_handle_ioreq
                                    (opaque=3D0x5555562abf10)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D 0x5555562abf10<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 req =3D 0x7ffff7ff3000<br>
                                    #29 0x000055555577c385 in
                                    qemu_iohandler_poll
                                    (pollfds=3D0x555556277600, ret=3D1)<br>
                                    =C2=A0=C2=A0=C2=A0 at iohandler.c:143<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 revents =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pioh =3D 0x55555627ca90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ioh =3D 0x555556366320<br>
                                    #30 0x000055555577d14b in
                                    main_loop_wait (nonblocking=3D0) at
                                    main-loop.c:485<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D 4294967295<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D 16717983<br>
                                    #31 0x0000555555815fbd in main_loop
                                    () at vl.c:2056<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D false<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                    #32 0x000055555581d66b in main
                                    (argc=3D64, argv=3D0x7fffffffdc78, <br>
                                    =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde80) at
                                    vl.c:4535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                    0x55555598c664 ""<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x555556275340
                                    "dc"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D 0x5555563564e0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D 0x555556275290<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D
                                    0x555556276ef0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D 0x555555d72700
                                    &lt;qemu_machine_opts&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D 0x7fffffffe61a
                                    "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D
                                    0x55555626e030<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D 0x555555d78540
                                    &lt;xenfv_machine&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D {malloc =3D
                                    0x55555581950b
                                    &lt;malloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D 0x555555819540
                                    &lt;realloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D 0x555555819584
                                    &lt;free_and_trace&gt;, calloc =3D
                                    0x0, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D 0x0,
                                    try_realloc =3D 0x0}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "main"<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine =3D
                                    0x555555d78540
                                    &lt;xenfv_machine&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a
                                      moz-do-not-send=3D"true"
                                      href=3D"tel:2013265920"
                                      value=3D"+12013265920"
                                      target=3D"_blank">2013265920</a>,
                                    boot_order =3D 0x555556275340 "dc", <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0,
                                    kernel_cmdline =3D 0x55555598c664 "",
                                    <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0,
                                    cpu_model =3D 0x0}<br>
                                    <br>
                                  </div>
                                </div>
                              </div>
                              <div class=3D"gmail_extra"><br>
                                <div class=3D"gmail_quote">2015-01-04
                                  22:29 GMT+01:00 Goonie Windy <span
                                    dir=3D"ltr">&lt;<a
                                      moz-do-not-send=3D"true"
                                      href=3D"mailto:monsieur.goonie@gmail.com"
                                      target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                  <blockquote class=3D"gmail_quote"
                                    style=3D"margin:0 0 0
                                    .8ex;border-left:1px #ccc
                                    solid;padding-left:1ex">
                                    <div dir=3D"ltr">
                                      <div>
                                        <div>
                                          <div>
                                            <div>Copyright (C) 2014 Free
                                              Software Foundation, Inc.<br>
                                              License GPLv3+: GNU GPL
                                              version 3 or later &lt;<a
                                                moz-do-not-send=3D"true"
                                                href=3D"http://gnu.org/licenses/gpl.html"
                                                target=3D"_blank">http://gnu.org/licenses/gpl.html</a>&gt;<br>
                                              This is free software: you
                                              are free to change and
                                              redistribute it.<br>
                                              There is NO WARRANTY, to
                                              the extent permitted by
                                              law.=C2=A0 Type "show copying"<br>
                                              and "show warranty" for
                                              details.<br>
                                              This GDB was configured as
                                              "x86_64-linux-gnu".<br>
                                              Type "show configuration"
                                              for configuration details.<br>
                                              For bug reporting
                                              instructions, please see:<br>
                                              &lt;<a
                                                moz-do-not-send=3D"true"
                                                href=3D"http://www.gnu.org/software/gdb/bugs/"
                                                target=3D"_blank">http://www.gnu.org/software/gdb/bugs/</a>&gt;.<br>
                                              Find the GDB manual and
                                              other documentation
                                              resources online at:<br>
                                              &lt;<a
                                                moz-do-not-send=3D"true"
                                                href=3D"http://www.gnu.org/software/gdb/documentation/"
                                                target=3D"_blank">http://www.gnu.org/software/gdb/documentation/</a>&gt;.<br>
                                              For help, type "help".<br>
                                              Type "apropos word" to
                                              search for commands
                                              related to "word"...<br>
                                              Reading symbols from
                                              /usr/lib/xen/bin/qemu-system-i386...done.<br>
                                              (gdb) target remote
                                              localhost:1234<br>
                                              Remote debugging using
                                              localhost:1234<br>
                                              Reading symbols from
                                              /lib64/ld-linux-x86-64.so.2...Reading
                                              symbols from
                                              /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.<br>
                                              done.<br>
                                              Loaded symbols for
                                              /lib64/ld-linux-x86-64.so.2<br>
                                              0x00007ffff7ddd190 in
                                              _start () from
                                              /lib64/ld-linux-x86-64.so.2<br>
                                              (gdb) c<br>
                                              Continuing.<br>
                                              <br>
                                              Program received signal
                                              SIGSEGV, Segmentation
                                              fault.<br>
                                              0x00007ffff50e5801 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c750)
                                              at char_device.c:443<br>
                                              443=C2=A0=C2=A0=C2=A0 char_device.c:
                                              Aucun fichier ou dossier
                                              de ce type.<br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              "spice_char_device_start"<br>
                                              #3=C2=A0 0x00007ffff51299c6 in
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<br>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              "spice_server_vm_start"<br>
                                              #4=C2=A0 0x00005555557f40c9 in
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 in
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 in
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 in
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                              "device_reset"<br>
                                              #8=C2=A0 0x0000555555697a56 in
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 in
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                              "qemu_system_reset"<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandler.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 ""<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 "dc"<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "main"<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a
                                                moz-do-not-send=3D"true"
                                                href=3D"tel:2013265920"
                                                value=3D"+12013265920"
                                                target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 "dc", <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 "", <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<br>
                                            </div>
                                          </div>
                                          (gdb) bt full ecc<br>
                                          No symbol "ecc" in current
                                          context.
                                          <div>
                                            <div><br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 in
                                              spice_char_device_write_to_device
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              "spice_char_device_start"<br>
                                              #3=C2=A0 0x00007ffff51299c6 in
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<br>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              "spice_server_vm_start"<br>
                                              #4=C2=A0 0x00005555557f40c9 in
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 in
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 in
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 in
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                              "device_reset"<br>
                                              #8=C2=A0 0x0000555555697a56 in
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 in
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                              "qemu_system_reset"<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandler.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 ""<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 "dc"<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D "main"<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a
                                                moz-do-not-send=3D"true"
                                                href=3D"tel:2013265920"
                                                value=3D"+12013265920"
                                                target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 "dc", <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 "", <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<br>
                                              <br>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                        AND <br>
                                        <br>
                                      </div>
                                      attached files<br>
                                      <br>
                                      <br>
                                      <div><br>
                                        <div><br>
                                          <br>
                                          <br>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                    <div>
                                      <div>
                                        <div class=3D"gmail_extra"><br>
                                          <div class=3D"gmail_quote">2015-01-04
                                            22:24 GMT+01:00 Goonie Windy
                                            <span dir=3D"ltr">&lt;<a
                                                moz-do-not-send=3D"true"
                                                href=3D"mailto:monsieur.goonie@gmail.com"
                                                target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                            <blockquote
                                              class=3D"gmail_quote"
                                              style=3D"margin:0 0 0
                                              .8ex;border-left:1px #ccc
                                              solid;padding-left:1ex">
                                              <div dir=3D"ltr">GNU gdb
                                                (Debian 7.7.1+dfsg-5)
                                                7.7.1<br>
                                                Copyright (C) 2014 Free
                                                Software Foundation,
                                                Inc.<br>
                                                License GPLv3+: GNU GPL
                                                version 3 or later &lt;<a
                                                  moz-do-not-send=3D"true"
href=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/licenses/gpl.html</a>&gt;<br>
                                                This is free software:
                                                you are free to change
                                                and redistribute it.<br>
                                                There is NO WARRANTY, to
                                                the extent permitted by
                                                law.=C2=A0 Type "show
                                                copying"<br>
                                                and "show warranty" for
                                                details.<br>
                                                This GDB was configured
                                                as "x86_64-linux-gnu".<br>
                                                Type "show
                                                configuration" for
                                                configuration details.<br>
                                                For bug reporting
                                                instructions, please
                                                see:<br>
                                                &lt;<a
                                                  moz-do-not-send=3D"true"
href=3D"http://www.gnu.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gdb/bugs/</a>&gt;.<br>
                                                Find the GDB manual and
                                                other documentation
                                                resources online at:<br>
                                                &lt;<a
                                                  moz-do-not-send=3D"true"
href=3D"http://www.gnu.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/software/gdb/documentation/</a>&gt;.<br>
                                                For help, type "help".<br>
                                                Type "apropos word" to
                                                search for commands
                                                related to "word"...<br>
                                                Reading symbols from
                                                /usr/lib/xen/bin/qemu-system-i386...done.<br>
                                                (gdb) target remote
                                                localhost:1234<span><br>
                                                  Remote debugging using
                                                  localhost:1234<br>
                                                </span><span>Reading
                                                  symbols from
                                                  /lib64/ld-linux-x86-64.so.2...Reading
                                                  symbols from
                                                  /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.<br>
                                                  done.<br>
                                                  Loaded symbols for
                                                  /lib64/ld-linux-x86-64.so.2<br>
                                                  0x00007ffff7ddd190 in
                                                  _start () from
                                                  /lib64/ld-linux-x86-64.so.2<br>
                                                  (gdb) c<br>
                                                  Continuing.<br>
                                                  <br>
                                                </span>Program received
                                                signal SIGSEGV,
                                                Segmentation fault.<br>
                                                0x00007ffff50e5801 in
                                                spice_char_device_write_to_device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x55555647c750)
                                                at char_device.c:443<br>
                                                443=C2=A0=C2=A0=C2=A0 char_device.c:
                                                Aucun fichier ou dossier
                                                de ce type.<br>
                                                (gdb) bt full<br>
                                                #0=C2=A0 0x00007ffff50e5801
                                                in
                                                spice_char_device_write_to_device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x55555647c750)
                                                at char_device.c:443<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sif =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 total =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n =3D
                                                &lt;optimized out&gt;<br>
                                                #1=C2=A0 0x00007ffff50e6497
                                                in
                                                spice_char_device_write_to_device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0 dev=3D0x55555647c750)
                                                at char_device.c:436<br>
                                                No locals.<br>
                                                #2=C2=A0
                                                spice_char_device_start
                                                (dev=3D0x55555647c750) at
                                                char_device.c:798<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                "spice_char_device_start"<br>
                                                #3=C2=A0 0x00007ffff51299c6
                                                in spice_server_vm_start
                                                (s=3D&lt;optimized
                                                out&gt;)<br>
                                                =C2=A0=C2=A0=C2=A0 at reds.c:3795<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 st_item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                "spice_server_vm_start"<br>
                                                #4=C2=A0 0x00005555557f40c9
                                                in
                                                qemu_spice_display_start
                                                () at
                                                ui/spice-core.c:909<br>
                                                No locals.<br>
                                                #5=C2=A0 0x00005555556c4365
                                                in qxl_hard_reset
                                                (d=3D0x55555637d7e0,
                                                loadvm=3D0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1172<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 startstop =3D true<br>
                                                #6=C2=A0 0x00005555556c43a3
                                                in qxl_reset_handler
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1180<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D
                                                0x55555637d7e0<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                #7=C2=A0 0x0000555555699658
                                                in device_reset
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:934<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 klass =3D
                                                0x555556270410<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                                "device_reset"<br>
                                                #8=C2=A0 0x0000555555697a56
                                                in qdev_reset_one
                                                (dev=3D0x55555637d7e0,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:240<br>
                                                No locals.<br>
                                                #9=C2=A0 0x0000555555697f64
                                                in qdev_walk_children
                                                (dev=3D0x55555637d7e0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:411<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #10 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a8ee0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                                0x55555633d4f0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #11 0x0000555555697f28
                                                in qdev_walk_children
                                                (dev=3D0x5555563131b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:403<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a8ee0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #12 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a60b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devfn=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kid =3D
                                                0x5555562a6a80<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #13 0x0000555555697b32
                                                in qbus_reset_all
                                                (bus=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:261<br>
                                                No locals.<br>
                                                #14 0x0000555555697b54
                                                in qbus_reset_all_fn
                                                (opaque=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:267<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a60b0<br>
                                                #15 0x0000555555815b1f
                                                in qemu_devices_reset ()
                                                at vl.c:1872<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re =3D
                                                0x555556375890<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                                #16 0x0000555555815bbf
                                                in qemu_system_reset
                                                (report=3Dtrue) at
                                                vl.c:1885<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mc =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                                "qemu_system_reset"<br>
                                                #17 0x000055555590fcb9
                                                in cpu_handle_ioreq
                                                (opaque=3D0x5555562b0950)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D
                                                0x5555562b0950<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 req =3D
                                                0x7ffff7ff3000<br>
                                                #18 0x000055555577c385
                                                in qemu_iohandler_poll
                                                (pollfds=3D0x555556277600,
                                                ret=3D1)<br>
                                                =C2=A0=C2=A0=C2=A0 at iohandler.c:143<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 revents =3D 1<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pioh =3D
                                                0x5555563218c0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ioh =3D
                                                0x555556362a80<br>
                                                #19 0x000055555577d14b
                                                in main_loop_wait
                                                (nonblocking=3D0) at
                                                main-loop.c:485<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D
                                                4294967295<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D
                                                17355567<br>
                                                #20 0x0000555555815fbd
                                                in main_loop () at
                                                vl.c:2056<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D
                                                false<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                                #21 0x000055555581d66b
                                                in main (argc=3D66,
                                                argv=3D0x7fffffffdc58, <br>
                                                =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde70)
                                                at vl.c:4535<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D
                                                0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                                =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                                =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                                0x55555598c664 ""<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D
                                                0x555556275380 "dc"<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D
                                                0x5555563324a0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D
                                                0x5555562752d0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D
                                                0x555556276f30<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D
                                                0x555555d72700
                                                &lt;qemu_machine_opts&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D
                                                0x7fffffffe61a
                                                "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback"<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D
                                                0x555555d78540
                                                &lt;xenfv_machine&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D
                                                0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_vnc_port =3D
                                                0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D
                                                true<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D
                                                {malloc =3D 0x55555581950b
                                                &lt;malloc_and_trace&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                                0x555555819540
                                                &lt;realloc_and_trace&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                                0x555555819584
                                                &lt;free_and_trace&gt;,
                                                calloc =3D 0x0, <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                                0x0, try_realloc =3D 0x0}<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D
                                                0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D
                                                "main"<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine
                                                =3D 0x555555d78540
                                                &lt;xenfv_machine&gt;, <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a
                                                  moz-do-not-send=3D"true"
                                                  href=3D"tel:2013265920"
                                                  value=3D"+12013265920"
                                                  target=3D"_blank">2013265920</a>,
                                                boot_order =3D
                                                0x555556275380 "dc", <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                kernel_filename =3D 0x0,
                                                kernel_cmdline =3D
                                                0x55555598c664 "", <br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                initrd_filename =3D 0x0,
                                                cpu_model =3D 0x0}<br>
                                                <br>
                                              </div>
                                              <div>
                                                <div>
                                                  <div
                                                    class=3D"gmail_extra"><br>
                                                    <div
                                                      class=3D"gmail_quote">2015-01-04
                                                      19:00 GMT+01:00
                                                      Fabio Fantoni <span
                                                        dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                      <blockquote
                                                        class=3D"gmail_quote"
                                                        style=3D"margin:0
                                                        0 0
                                                        .8ex;border-left:1px
                                                        #ccc
                                                        solid;padding-left:1ex">
                                                        <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <br>
                                                          <div>Il
                                                          04/01/2015
                                                          01:11, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">Forgot
                                                          to say that it
                                                          is not a
                                                          matter of
                                                          timeout :/,
                                                          it's when
                                                          pressing c
                                                          that it breaks<br>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-04
                                                          1:07 GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>=C2=A0ok, I'm
                                                          using the
                                                          Upstream
                                                          compiled in
                                                          Xen so I
                                                          created the
                                                          file qemu-dbg,
                                                          chmoded it
                                                          etc... <br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>But
                                                          that's as far
                                                          as I can get:
                                                          <br>
                                                          <br>
                                                          <br>
                                                          xl create
                                                          result:<br>
                                                          WARNING:
                                                          device model
                                                          override given
                                                          without
                                                          specific DM
                                                          version<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> The
                                                          problem should
                                                          solved with
                                                          this in domU's
                                                          xl cfg:<br>
device_model_version=3Dqemu-xen<span><br>
                                                          <br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote">
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>libxl:
                                                          error:
                                                          libxl_exec.c:4<span
style=3D"color:rgb(204,0,0)">21:spawn_middle_death: domain 32 device model
                                                          [-1]:
                                                          unexpectedly
                                                          exited with
                                                          exit status 0,
                                                          when we were
                                                          waiting for it
                                                          to confirm
                                                          startup</span><br>
                                                          libxl: error:
                                                          libxl_dm.c:1490:device_model_spawn_outcome:
                                                          domain 32
                                                          device model:
                                                          spawn failed
                                                          (rc=3D-3)<br>
                                                          libxl: error:
                                                          libxl_create.c:1332:domcreate_devmodel_started:
                                                          device model
                                                          did not start:
                                                          -3<br>
                                                          libxl: error:
                                                          libxl_dm.c:1594:kill_device_model:
                                                          Device Model
                                                          already exited<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> If the
                                                          problem
                                                          persist look
                                                          the domU's
                                                          qemu log.
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote">
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          </div>
                                                          <div><br>
                                                          gdb output:<br>
                                                          target remote
                                                          localhost:1234=C2=A0
                                                          c<br>
                                                          Remote
                                                          debugging
                                                          using
                                                          localhost:1234=C2=A0
                                                          c<br>
                                                          Reading
                                                          symbols from
                                                          /lib64/ld-linux-x86-64.so.2...Reading
                                                          symbols from
                                                          /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.<br>
                                                          done.<br>
                                                          Loaded symbols
                                                          for
                                                          /lib64/ld-linux-x86-64.so.2<br>
                                                          0x00007ffff7ddd190
                                                          in _start ()
                                                          from
                                                          /lib64/ld-linux-x86-64.so.2<br>
                                                          (gdb) c<br>
                                                          Continuing.<br>
                                                          [Inferior 1
                                                          (process 6455)
                                                          exited with
                                                          code 01]<br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>libxl_exec.c
                                                          shows me <br>
                                                          421(<br>
                                                          =C2=A0else {<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if
                                                          (!status)<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          LOG(ERROR, "%s
                                                          [%ld]:
                                                          unexpectedly
                                                          exited with
                                                          exit status
                                                          0,"<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          " when we were
                                                          waiting for it
                                                          to confirm
                                                          startup",<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          ss-&gt;what,
                                                          (unsigned
                                                          long)pid);<br>
                                                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else
                                                          if (status
                                                          &lt;=3D 127)<br>
                                                          )<br>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div>that it
                                                          is a matter of
                                                          status (=3F)=C2=A0
                                                          missing<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>That's
                                                          all I could
                                                          find out.</div>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-03
                                                          14:36
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr"><span>2015-01-03
                                                          1:24 GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          </span>
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote"><span>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>Fabio,
                                                          actually I
                                                          would have to
                                                          compile
                                                          qemu-dbg
                                                          during
                                                          compilation of
                                                          xen, right=3F<br>
                                                          </div>
                                                          <div>Because I
                                                          uninstalled it
                                                          for installing
                                                          4.5RC4.<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <div><br>
                                                          </div>
                                                          </span>
                                                          <div>If you
                                                          use qemu
                                                          compiled in
                                                          xen is not
                                                          stripped is
                                                          you have debug
                                                          enabled in xen
                                                          config
                                                          (enabled by
                                                          default except
                                                          stable
                                                          release).<br>
                                                          </div>
                                                          <div>Qemu
                                                          packages in
                                                          debian seems
                                                          not have -dbg
                                                          package
                                                          instead, I not
                                                          remember if
                                                          are at least
                                                          not stripped,
                                                          if are
                                                          stripped and
                                                          without -dbg
                                                          pkg we should
                                                          open a
                                                          bugreport
                                                          about in
                                                          debian
                                                          tracker.<br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div>=C2=A0</div>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          </div>
                                                          regards<br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-01

                                                          14:49
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <br>
                                                          <div>Il
                                                          01/01/2015
                                                          13:24, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>Hello
                                                          Fabio, well
                                                          same thing
                                                          happens with
                                                          remote-viewer,
                                                          <br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          about not
                                                          using dom0 as
                                                          desktop, it's
                                                          a laptop I'm
                                                          using for
                                                          those tests,<br>
                                                          <br>
                                                          </div>
                                                          Way to go is
                                                          to use a blank
                                                          machine with
                                                          only Xen and
                                                          then
                                                          virtualise all
                                                          machines
                                                          inside=3F<br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> Try to
                                                          post what
                                                          version of
                                                          qemu, spice
                                                          ecc your are
                                                          using, your
                                                          domU xl cfg
                                                          and backtrace
                                                          of the crash
                                                          (following the
                                                          howto I wrote
                                                          should be
                                                          simple)
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr"><br>
                                                          <br>
                                                          regards<br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          gregB<br>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-01

                                                          12:45
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <br>
                                                          <div>Il
                                                          01/01/2015
                                                          11:36, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>Actulally
                                                          I have, <br>
                                                          <br>
                                                          =C2=A0qemu-system-i38[13389]:

                                                          segfault at 0
                                                          ip
                                                          00007fd3d166d801
                                                          sp
                                                          00007ffffc8595d0
                                                          error 4 in
                                                          libspice-server.so.1.9.0[7fd3d1661000+11b000]<br>
                                                          <br>
                                                          </div>
                                                          BTW happy new
                                                          year<br>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2015-01-01

                                                          11:30
                                                          GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>Fabio, <br>
                                                          <br>
                                                          </div>
                                                          ok for all
                                                          concerning
                                                          rombios ...<br>
                                                          <br>
                                                          </div>
                                                          <div>My spicec
                                                          connection
                                                          keeps on dying
                                                          with <br>
                                                          </div>
                                                          <div>"Spice-Warning

                                                          **:
                                                          red_peer.cpp:128:connect_to_peer:
                                                          failed to
                                                          connect:
                                                          Connexion
                                                          refus=C3=A9e (111)"<br>
                                                          </div>
                                                          <div>Then I
                                                          can't access
                                                          VM and have to
                                                          destroy it.<br>
                                                          <br>
                                                          </div>
                                                          <div>I'm
                                                          connecting
                                                          with <br>
                                                          </div>
                                                          <div>spicec -h
                                                          0.0.0.0 -p
                                                          6000<br>
                                                          <br>
                                                          </div>
                                                          <div>Any idea=3F<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> spicec
                                                          is very old
                                                          and deprecated
                                                          client and was
                                                          already
                                                          removed in
                                                          spice git for
                                                          next version.<br>
                                                          there are
                                                          spicy and
                                                          virt-viewer,
                                                          the second is
                                                          better.<br>
                                                          from address
                                                          seems that you
                                                          use dom0 as
                                                          desktop, don't
                                                          seems good for
                                                          me^^''<br>
                                                          <br>
                                                          if you still
                                                          have the qemu
                                                          crash install
                                                          spice debug
                                                          package and
                                                          take a
                                                          backtrace with
                                                          gdb.<br>
                                                          <br>
                                                          For use gdb on
                                                          qemu as it
                                                          child process
                                                          is particular.<br>
                                                          <br>
                                                          <font
                                                          color=3D"#000000">Small

                                                          help with gdb
                                                          of qemu
                                                          launched by
                                                          xl:<br>
                                                          add the line
                                                          below in
                                                          domU's xl cfg:<br>
device_model_override=3D"/usr/lib/xen/bin/qemu-gdb"<br>
                                                          vi
                                                          /usr/lib/xen/bin/qemu-gdb
                                                          # create the
                                                          file, change
                                                          the qemu path
                                                          if needed<br>
                                                          #!/bin/sh<br>
                                                          exec gdbserver
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"http://0.0.0.0:1234" target=3D"_blank">0.0.0.0:1234</a>
                                                          /usr/lib/xen/bin/qemu-system-i386
                                                          "$@"</font><br>
                                                          <font
                                                          color=3D"#000000">#
                                                          after xl
                                                          create with
                                                          (qemu gdb), do
                                                          it fast after
                                                          xl create when
                                                          arrive on qemu
                                                          process launch
                                                          (before
                                                          timeout or xl
                                                          create will
                                                          fails)<br>
                                                          target remote
                                                          localhost:1234
                                                          # prepare this
                                                          command in
                                                          other ssh to
                                                          the xen dom0
                                                          and enter on
                                                          xl create when
                                                          arrive on qemu
                                                          launch<br>
                                                          c # press
                                                          immediatly<br>
                                                          bt full # when
                                                          qemu stops</font>
                                                          with crash
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote">
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          <br>
                                                          regards, <br>
                                                          <br>
                                                          </div>
                                                          <div>greg<br>
                                                          </div>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-31


                                                          10:03
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <div>Il
                                                          31/12/2014
                                                          02:26, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>Ok Fabio,
                                                          thanks to your
                                                          configure,
                                                          some bits of
                                                          hacking the
                                                          install part
                                                          and lots of
                                                          advises/support/encouragements
                                                          ;) from Mark
                                                          Pryor I ended
                                                          up<br>
                                                          </div>
                                                          =C2=A0installing
                                                          4.5RC4 with
                                                          QXL support on
                                                          Deb8 unstable.<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>So now
                                                          what do you
                                                          want me to
                                                          test fabio=3F<br>
                                                          </div>
                                                          <div>I have
                                                          win7 x64 / win
                                                          2k8R2 vms in
                                                          test mode
                                                          ready to
                                                          install
                                                          drvers.<br>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div>the
                                                          numerous
                                                          troubles I
                                                          went through
                                                          are related in
                                                          the IRCcopy
                                                          attached.<br>
                                                          </div>
                                                          <div>I
                                                          actually
                                                          couldn't build
                                                          rombios and
                                                          used seabios
                                                          provided by
                                                          the system
                                                          -like you-<br>
                                                          </div>
                                                          <div>I should
                                                          try to
                                                          compile/find
                                                          latest qxl
                                                          now.<br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span>
                                                          rombios is
                                                          used only by
                                                          qemu
                                                          traditional
                                                          that is very
                                                          old, without
                                                          spice support
                                                          and hvm domUs
                                                          have lower
                                                          performance
                                                          with it.<br>
                                                          qxl drivers in
                                                          latest spice
                                                          guest tools
                                                          are signed and
                                                          not require
                                                          windows
                                                          testsigning
                                                          mode, same for
                                                          james haper
                                                          xen gplpv.<br>
                                                          If you want
                                                          test new winpv
                                                          drivers
                                                          instead you
                                                          need it.<br>
                                                          <br>
                                                          For me qxl is
                                                          working good
                                                          on w7 domUs
                                                          except after
                                                          save/restore
                                                          when "freeze"
                                                          2-3 minutes on
                                                          screen
                                                          resolution
                                                          change and I
                                                          not found the
                                                          exact problem
                                                          for now.<br>
                                                          I also not
                                                          found how to
                                                          have qxl
                                                          working in
                                                          linux domUs,
                                                          on latest test
                                                          xorg crash on
                                                          start with qxl
                                                          driver
                                                          installed.<br>
                                                          Probably other
                                                          changes are
                                                          needed in
                                                          hvmloader
                                                          and/or xen
                                                          hypervisor
                                                          and/or qxl
                                                          driver.<br>
                                                          Any help
                                                          testing it is
                                                          appreciated.
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          </div>
                                                          <div>See you
                                                          in 2K15.<br>
                                                          <br>
                                                          </div>
                                                          <div>greg B<br>
                                                          </div>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-29



                                                          14:49
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <div>Il
                                                          29/12/2014
                                                          14:13, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>
                                                          <div>ok, I'm
                                                          trying to
                                                          patch the
                                                          files with
                                                          yours,<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          I need to do
                                                          it manually
                                                          right=3F <br>
                                                          <br>
                                                          git apply is
                                                          not working
                                                          here. <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> If the
                                                          patch need a
                                                          "refresh" the
                                                          conflict
                                                          should be
                                                          solved
                                                          manually.<br>
                                                          Taking the
                                                          patch updated
                                                          from here
                                                          probably it
                                                          can be applied
                                                          to latest
                                                          4.5-rc:<br>
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"https://github.com/Fantu/Xen/commits/rebase/m2r-staging"
                                                          target=3D"_blank">https://github.com/Fantu/Xen/commits/rebase/m2r-staging</a><span><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          </div>
                                                          regards<br>
                                                          <br>
                                                          </div>
                                                          greg<br>
                                                          </div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-29



                                                          13:46
                                                          GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">There


                                                          is an error in
                                                          pageqs
                                                          describing how
                                                          to compile
                                                          from sources
                                                          as in 4.5 <br>
                                                          <pre>cat .config
PYTHON_PREFIX_ARG=3D--install-layout=3Ddeb

</pre>
                                                          <pre>is in fact in .INSTALL
</pre>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> If
                                                          also you use
                                                          debian you can
                                                          use make
                                                          debball that
                                                          is better for
                                                          install/remove
                                                          easy and fast
                                                          test build.<br>
                                                          <br>
                                                          And for
                                                          example I use
                                                          this configure
                                                          options with
                                                          xen 4.5:<br>
                                                          ./configure
                                                          --prefix=3D/usr
                                                          --disable-blktap1


                                                          --disable-qemu-traditional


                                                          --disable-rombios


                                                          --with-system-seabios=3D/usr/share/seabios/bios-256k.bin


                                                          --with-extra-qemuu-configure-args=3D"--enable-spice




--enable-usb-redir"
--disable-blktap2<br>
                                                          I use wheezy
                                                          building
                                                          updated
                                                          packages from
                                                          sid: seabios
                                                          1.7.5-1, spice
                                                          0.12.5-1,
                                                          spice-protocol
                                                          0.12.7-1 and
                                                          usbredir
                                                          0.7-1.<br>
                                                          If you use
                                                          jessie instead
                                                          you have all
                                                          packages
                                                          updated.<br>
                                                          <br>
                                                          About python
                                                          I'm using this
                                                          workaround
                                                          (before
                                                          execute
                                                          configure)
                                                          even if
                                                          probably is
                                                          not the best:<br>
                                                          <span
                                                          title=3D"Config.mk">Config.mk</span><br>
                                                          -<span>PYTHON_PREFIX_ARG</span>
                                                          =3F=3D<span>
                                                          --prefix=3D"</span><span><span>$(</span><span>PREFIX</span><span>)</span></span><span>"</span><br>
                                                          +<span>PYTHON_PREFIX_ARG</span>
                                                          =3F=3D
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div
                                                          class=3D"gmail_extra">
                                                          <div
                                                          class=3D"gmail_quote">
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr"><br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-29



                                                          1:20 GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>well
                                                          figured out it
                                                          is because you
                                                          have to
                                                          "enforce"
                                                          locale:=C2=A0
                                                          export
                                                          LC_ALL=3Den_US.utf-8
                                                          if keyboard
                                                          mapping is
                                                          else<br>
                                                          </div>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-28




                                                          21:19
                                                          GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>Trying to
                                                          compile xen
                                                          4.5RC4 in
                                                          order to test
                                                          your patch I
                                                          end up with=C2=A0
                                                          these errors
                                                          compiling the
                                                          Seabios
                                                          directories,<br>
                                                          <br>
                                                          </div>
                                                          any idea=3F<br>
                                                          <br>
                                                          =C2=A0 Compiling to
                                                          assembler
                                                          out/src/asm-offsets.s<br>
                                                          =C2=A0 Generating
                                                          offset file
                                                          out/asm-offsets.h<br>
                                                          =C2=A0 Compiling
                                                          (16bit)
                                                          out/romlayout.o<br>
                                                          =C2=A0 Building ld
                                                          scripts<br>
                                                          Version:
                                                          rel-1.7.5-0-ge51488c-20141228_210340-E766<br>
                                                          Traceback
                                                          (most recent
                                                          call last):<br>
                                                          =C2=A0 File
                                                          "./scripts/layoutrom.py",
                                                          line 709, in
                                                          &lt;module&gt;<br>
                                                          =C2=A0=C2=A0=C2=A0 main()<br>
                                                          =C2=A0 File
                                                          "./scripts/layoutrom.py",
                                                          line 671, in
                                                          main<br>
                                                          =C2=A0=C2=A0=C2=A0 info16 =3D
                                                          parseObjDump(infile16,
                                                          '16')<br>
                                                          =C2=A0 File
                                                          "./scripts/layoutrom.py",
                                                          line 586, in
                                                          parseObjDump<br>
                                                          =C2=A0=C2=A0=C2=A0
                                                          relocsection =3D
sectionmap[sectionname]<br>
                                                          KeyError:
'.text.asm./home/goon/xen/tools/firmware/seabios-dir-remote/src/fw/smp.c.79'<br>
                                                          Makefile:155:
                                                          recipe for
                                                          target
                                                          'out/romlayout16.lds'
                                                          failed<br>
                                                          make[6]: ***
                                                          [out/romlayout16.lds]
                                                          Error 1<br>
                                                          make[6]:
                                                          Leaving
                                                          directory
                                                          '/home/goon/xen/tools/firmware/seabios-dir-remote'<br>
                                                          /home/goon/xen/tools/firmware/../../tools/Rules.mk:116:





                                                          recipe for
                                                          target
                                                          'subdir-all-seabios-dir'
                                                          failed<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-27





                                                          17:35
                                                          GMT+01:00
                                                          Goonie Windy <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:monsieur.goonie@gmail.com"
                                                          target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>
                                                          <div>Hello
                                                          Fabio,<br>
                                                          <br>
                                                          Sure thing I
                                                          will help
                                                          debug the win7
                                                          and the win8
                                                          versions.<br>
                                                          </div>
                                                          Where to
                                                          start=3F<br>
                                                          <br>
                                                          </div>
                                                          I'll try to
                                                          see if I can
                                                          patch with
                                                          patch from <a
moz-do-not-send=3D"true"
href=3D"https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe"
target=3D"_blank">https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe</a>
                                                          and if not
                                                          will post
                                                          result.<br>
                                                          <br>
                                                          <br>
                                                          best regards,<br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          greg Bahde<br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div
                                                          class=3D"gmail_extra"><br>
                                                          <div
                                                          class=3D"gmail_quote">2014-12-27





                                                          15:10
                                                          GMT+01:00
                                                          Fabio Fantoni
                                                          <span
                                                          dir=3D"ltr">&lt;<a
moz-do-not-send=3D"true" href=3D"mailto:fabio.fantoni@m2r.biz"
                                                          target=3D"_blank">fabio.fantoni@m2r.biz</a>&gt;</span>:<br>
                                                          <blockquote
                                                          class=3D"gmail_quote"
                                                          style=3D"margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor=3D"#FFFFFF"
                                                          text=3D"#000000">
                                                          <br>
                                                          <div>Il
                                                          27/12/2014
                                                          02:15, Goonie
                                                          Windy ha
                                                          scritto:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type=3D"cite">
                                                          <div dir=3D"ltr">
                                                          <div>
                                                          <div>
                                                          <div>I tried
                                                          to install Qxl
                                                          drivers under
                                                          win7/win
                                                          2k8/win8.1=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          all=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 x64
                                                          versions,
                                                          without any
                                                          luck.<br>
                                                          <br>
                                                          <br>
                                                          admin message
                                                          is as follow:<br>
                                                          Driver
                                                          Management
                                                          concluded the
                                                          process to
                                                          install driver
                                                          FileRepository\qxl.inf_amd64_






                                                          <div dir=3D"ltr">neutral_f0c429882d5c81ed\qxl.inf





                                                          for Device
                                                          Instance ID
                                                          PCI\VEN_1013&amp;DEV_00B8&amp;SUBSYS_11001AF4&amp;REV_00\3&amp;267A616A&amp;1&amp;28






                                                          with the
                                                          following
                                                          status:
                                                          0xe000022d.</div>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          </div>
                                                          Does <br>
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"http://lists.xen.org/archives/html/xen-devel/2014-05/msg03214.html"
target=3D"_blank">http://lists.xen.org/archives/html/xen-devel/2014-05/msg03214.html</a><br>
                                                          <br>
                                                          </div>
                                                          can it be
                                                          installed on
                                                          my xen stack=3F
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span> Yes
                                                          but probably
                                                          require a
                                                          small refresh,
                                                          I always
                                                          posted the
                                                          patch based on
                                                          updated
                                                          xen-unstable.
                                                          <br>
                                                          <br>
                                                          Here qxl patch
                                                          refreshed for
                                                          xen 4.5 if
                                                          needed:<br>
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe"
target=3D"_blank">https://github.com/Fantu/Xen/commit/fadecf8d6ee0e8c7e421fafba67aa11879e8b8fe</a><br>
                                                          <br>
                                                          Here the
                                                          latest spice
                                                          guest tools
                                                          for windows
                                                          with qxl
                                                          driver
                                                          included:<br>
                                                          <a
                                                          moz-do-not-send=3D"true"
href=3D"http://www.spice-space.org/download/binaries/spice-guest-tools/spice-guest-tools-0.74.exe"
target=3D"_blank">http://www.spice-space.org/download/binaries/spice-guest-tools/spice-guest-tools-0.74.exe</a><br>
                                                          <br>
                                                          Windows &gt;=3D8
                                                          and similar
                                                          require a new
                                                          qxl drivers,
                                                          there are a
                                                          beta build but
                                                          latest tried
                                                          some months
                                                          ago have
                                                          serious bug
                                                          and I not
                                                          found recent
                                                          build full
                                                          working on
                                                          windows 8.<br>
                                                          <br>
                                                          On xen windows
                                                          7 domUs qxl
                                                          works good
                                                          except a
                                                          problem after
                                                          save/restore
                                                          and on linux
                                                          domUs is not
                                                          working, for
                                                          now I not
                                                          found exactly
                                                          cause and
                                                          solution.<br>
                                                          On mailing
                                                          list up to 2
                                                          years ago you
                                                          can find many
                                                          my mails
                                                          about.<br>
                                                          Any help to
                                                          test it is
                                                          appreciated.<br>
                                                          <br>
                                                          Sorry for my
                                                          bad english.<br>
                                                          <br>
                                                          <blockquote
                                                          type=3D"cite"><span>
                                                          <div dir=3D"ltr">
                                                          <div><br>
                                                          Also, can=C2=A0 I
                                                          get invited at
                                                          xendevel irc =3F<br>
                                                          regards<br>
                                                          <br>
                                                          </div>
                                                          Greg <br>
                                                          </div>
                                                          <br>
                                                          <fieldset></fieldset>
                                                          <br>
                                                          </span>
                                                          <pre>_______________________________________________
Xen-devel mailing list
<a moz-do-not-send=3D"true" href=3D"mailto:Xen-devel@lists.xen.org" target=3D"_blank">Xen-devel@lists.xen.org</a>
<a moz-do-not-send=3D"true" href=3D"http://lists.xen.org/xen-devel" target=3D"_blank">http://lists.xen.org/xen-devel</a>
</pre>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                        </div>
                                                      </blockquote>
                                                    </div>
                                                    <br>
                                                  </div>
                                                </div>
                                              </div>
                                            </blockquote>
                                          </div>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                  </blockquote>
                                </div>
                                <br>
                              </div>
                            </blockquote>
                          </div>
                          <br>
                        </div>
                      </blockquote>
                    </div>
                    <br>
                  </div>
                </blockquote>
              </div>
              <br>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>

--------------040102060609020209000305--


--===============6551787272704672436==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--===============6551787272704672436==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jan 05 11:12:21 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 05 Jan 2015 11:12:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y85a9-0002TN-Tt; Mon, 05 Jan 2015 11:12:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <monsieur.goonie@gmail.com>) id 1Y85a7-0002Sv-Qy
	for win-pv-devel@lists.xenproject.org; Mon, 05 Jan 2015 11:12:20 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	CA/E6-25727-2917AA45; Mon, 05 Jan 2015 11:12:18 +0000
X-Env-Sender: monsieur.goonie@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1420456333!17237504!1
X-Originating-IP: [209.85.218.44]
X-SpamReason: No, hits=2.3 required=7.0 tests=BIZ_TLD,HTML_60_70,
	HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27630 invoked from network); 5 Jan 2015 11:12:15 -0000
Received: from mail-oi0-f44.google.com (HELO mail-oi0-f44.google.com)
	(209.85.218.44)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Jan 2015 11:12:15 -0000
Received: by mail-oi0-f44.google.com with SMTP id a141so13673190oig.3
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 05 Jan 2015 03:12:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=uf8GAxgiTP+KYrZZ35zRSgLShwCE/idNgSj2T+YgPFM=;
	b=YhDL6Tf7PRsPQACORxtqx3FWBdi2hfFWAV/Zttyr+oOSOLFB5U3EES+LDRM1WRpikb
	lBGyUsG5PLsHbN3vjg99EQtNsvpmcZoPIwUA2WdyQYUm1ZquDh2eSySaX/QbL5HYY5lX
	yhh5F2IpioG0j8w5JVz62HlpJN20t9OCUEIMwT5l0t+Q+VP5vkwOhjuwE7NcVAKZUXuz
	rKTdcAUPRTgPrq+VW4IP4bOHLyEnL3jF3+7HgpH3kwhTHj1rDt6qdxQIYHSVQwD6YqoL
	DjGQLMrDOMVno7naeRepjmn8QPRjWxCnjLdiLuvuLz1qfs/mQt4iD9ROjTKU49iSwBou
	pjqw==
MIME-Version: 1.0
X-Received: by 10.202.49.131 with SMTP id x125mr49775194oix.17.1420456333539; 
	Mon, 05 Jan 2015 03:12:13 -0800 (PST)
Received: by 10.182.26.72 with HTTP; Mon, 5 Jan 2015 03:12:13 -0800 (PST)
Received: by 10.182.26.72 with HTTP; Mon, 5 Jan 2015 03:12:13 -0800 (PST)
In-Reply-To: <54AA549F.8050507@m2r.biz>
References: <CAE5x5YU4qBTxp+36FioAROdTOPgrU79MN3s+BkmPTWq+qsVt6w@mail.gmail.com>
	<54A53352.5090603@m2r.biz>
	<CAE5x5YVwj5zpUiS92V_8BuinUrtZZhpd8BMbH=Mo_gCmD29S2Q@mail.gmail.com>
	<54A5505C.1070602@m2r.biz>
	<CAE5x5YXdw2n-xxwpmbS_cgeTb+GSiBQ2QbUmxF7j-5gX8a24Jg@mail.gmail.com>
	<CABMPFzg4jYoMoUM2k5wys3y=iyW712RiLKSixDofXgsKe+PwJw@mail.gmail.com>
	<CAE5x5YXhCUvsfKdUN1nNQ_4hPXjBMoeSTMGYu5ysw4wki-n0PQ@mail.gmail.com>
	<CAE5x5YVhL+AmvS53KgNkz8MgDYbH5At_DDt4+tCPzqnht2V-KQ@mail.gmail.com>
	<54A97FA5.90208@m2r.biz>
	<CAE5x5YXmTZAO0c4n1qXxa2+1T2xT3QPHf3Be2CrK2dxtjmpihA@mail.gmail.com>
	<CAE5x5YUjXY9bqY6mOSU2b0RgLaLaM4K0MpS-KOWCB2E+_QLnXA@mail.gmail.com>
	<CAE5x5YXuAPCKM5aP=63ZiH-ffmfki1ioMNsYEV36+SBLz0_t_A@mail.gmail.com>
	<CAE5x5YUXObr6g2juExrb4zzLDg+S=v+Rw1ZDqCy7G6TfhpZTAQ@mail.gmail.com>
	<CAE5x5YV_VDjEK6rxFcZX09WGcLT-i4OrtU8gJa6ZfYTZdjvJ0w@mail.gmail.com>
	<CAE5x5YU9RJo0SFWOAV-hrxmA0FfKz+fXSHqu7mC04e2j6hbvWw@mail.gmail.com>
	<CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
	<54AA549F.8050507@m2r.biz>
Date: Mon, 5 Jan 2015 12:12:13 +0100
Message-ID: <CAE5x5YUBCsyE30zUQ6jE1e1N7FKcQM=+VztVy3JzEFpG9Fzkiw@mail.gmail.com>
From: Goonie Windy <monsieur.goonie@gmail.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"Paul.Durrant@citrix.com >> Paul Durrant" <paul.durrant@citrix.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] [Xen-devel] [DEBUGGING Xen/Qxl/Debian Sid] qemu
 crash on xenbus pv driver install
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6231233026205843170=="
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

--===============6231233026205843170==
Content-Type: multipart/alternative; boundary=001a113cd9f02e00ef050be5c3f7

--001a113cd9f02e00ef050be5c3f7
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Well r=C3=A9installed from scratch, added winpv and spice drivers the borde=
r you
gave me and Th=C3=A9r=C3=A8se is NO more bugs related to winpv .  will test=
 reboot
and spice/qxl functionnalities when possible. Regards.  Greg b
Le 5 janv. 2015 10:08, "Fabio Fantoni" <fabio.fantoni@m2r.biz> a =C3=A9crit=
 :

>  Il 05/01/2015 00:24, Goonie Windy ha scritto:
>
> AND DMESG
> [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8 ip
> 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in libc-2.19.so
> [7f92a64d4000+19f000]
> [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state
> [ 3096.118716] device vif5.0-emu left promiscuous mode
> [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state
> [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state
> [ 3584.894741] device vif5.0 left promiscuous mode
> [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state
> [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
> [ 3681.878054] device vif6.0 entered promiscuous mode
> [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
> [ 3682.193528] device vif6.0-emu entered promiscuous mode
> [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding state
> [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding state
> [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state
> [ 3780.535444] device vif6.0-emu left promiscuous mode
> [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state
> [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state
> [ 3899.555577] device vif6.0 left promiscuous mode
> [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state
>
>
> 2015-01-05 0:21 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>
>>   GNU nano 2.2.6                                          Fichier :
>> qemu-dm-win7.log
>>
>>
>> (/usr/local/sbin/xl:9535): Spice-Warning **:
>> reds.c:1863:reds_handle_ticket: Invalid password
>> main_channel_link: add main channel client
>> main_channel_handle_parsed: net test: latency 0.318000 ms, bitrate
>> 26597402597 bps (25365.259740 Mbps)
>> inputs_connect: inputs channel client create
>> red_dispatcher_set_cursor_peer:
>> main_channel_handle_parsed: agent start
>> main_channel_handle_parsed: agent start
>> *** Error in `/usr/lib/xen/bin/qemu-system-i386': double free or
>> corruption (out): 0x00007f0e38dd26f0 ***
>>
>>
>> 2015-01-05 0:00 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>
>>> Should add this too:
>>> host                   : E766
>>> release                : 3.16.0-4-amd64
>>> version                : #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08)
>>> machine                : x86_64
>>> nr_cpus                : 4
>>> max_cpu_id             : 7
>>> nr_nodes               : 1
>>> cores_per_socket       : 2
>>> threads_per_core       : 2
>>> cpu_mhz                : 2594
>>> hw_caps                :
>>> bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:00000281
>>> virt_caps              : hvm hvm_directio
>>> total_memory           : 8055
>>> free_memory            : 2309
>>> sharing_freed_memory   : 0
>>> sharing_used_memory    : 0
>>> outstanding_claims     : 0
>>> free_cpus              : 0
>>> xen_major              : 4
>>> xen_minor              : 5
>>> xen_extra              : .0-rc
>>> xen_version            : 4.5.0-rc
>>> xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
>>> hvm-3.0-x86_32p hvm-3.0-x86_64
>>> xen_scheduler          : credit
>>> xen_pagesize           : 4096
>>> platform_params        : virt_start=3D0xffff800000000000
>>> xen_changeset          : Thu Dec 18 10:02:16 2014 +0000 git:36174af-dir=
ty
>>> xen_commandline        : placeholder
>>> cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>>> cc_compile_by          : root
>>> cc_compile_domain      :
>>> cc_compile_date        : Wed Dec 31 01:20:47 CET 2014
>>> xend_config_format     : 4
>>>
>>>
>>>
>>> 2015-01-04 23:39 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>
>>>> My qemu log after spice failure:
>>>> (/usr/local/sbin/xl:4254): Spice-Warning **:
>>>> reds.c:1863:reds_handle_ticket: Invalid password
>>>> main_channel_link: add main channel client
>>>> main_channel_handle_parsed: net test: latency 0.257000 ms, bitrate
>>>> 81920000000 bps (78125.000000 Mbps)
>>>> red_dispatcher_set_cursor_peer:
>>>> inputs_connect: inputs channel client create
>>>> main_channel_handle_parsed: agent start
>>>> main_channel_handle_parsed: agent start
>>>> qemu-system-i386: malloc.c:2372: sysmalloc: Assertion `(old_top =3D=3D
>>>> (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offse=
tof
>>>> (struct malloc_chunk, fd)))) && old_size =3D=3D 0) || ((unsigned long)
>>>> (old_size) >=3D (unsigned long)((((__builtin_offsetof (struct malloc_c=
hunk,
>>>> fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) -=
 1)))
>>>> && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) =3D=
=3D 0)'
>>>> failed.
>>>>
>>>>
>>>> 2015-01-04 23:10 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>
>>>>>  This one is bug from trying to install winpv  bus driver
>>>>>
>>>>
> If you followed all my advices your configurations should be ok and you
> found a new bug or inexpected case.
> I do not have the knowledge to solve it.
> Added to cc also win-pv-devel
> Can someone take a look to this problem please?
>
>
>>>>>
>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>> _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>> bytes=3Dbytes@entry=3D73729)
>>>>>     at malloc.c:3775
>>>>> 3775    malloc.c: Aucun fichier ou dossier de ce type.
>>>>> (gdb) bt full
>>>>> #0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>     bytes=3Dbytes@entry=3D73729) at malloc.c:3775
>>>>>         p =3D 0x555557303880
>>>>>         iters =3D <optimized out>
>>>>>         nb =3D 73744
>>>>>         idx =3D <optimized out>
>>>>>         bin =3D <optimized out>
>>>>>         victim =3D 0x555557303870
>>>>>         size =3D <optimized out>
>>>>>         victim_index =3D <optimized out>
>>>>>         remainder =3D 0x555557315880
>>>>>         remainder_size =3D <optimized out>
>>>>>         block =3D 4
>>>>>         bit =3D <optimized out>
>>>>>         map =3D 66981887
>>>>>         fwd =3D <optimized out>
>>>>>         bck =3D <optimized out>
>>>>>         errstr =3D 0x0
>>>>>         __func__ =3D "_int_malloc"
>>>>> #1  0x00007ffff3eb74a1 in _int_realloc (
>>>>>     av=3Dav@entry=3D0x7ffff41df620 <main_arena>, oldp=3Doldp@entry=3D=
0x55555689d270,
>>>>>
>>>>>     oldsize=3Doldsize@entry=3D36880, nb=3Dnb@entry=3D73744) at malloc=
.c:4286
>>>>>         newp =3D <optimized out>
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         newsize =3D <optimized out>
>>>>>         newmem =3D <optimized out>
>>>>>         next =3D 0x5555568a6280
>>>>>         remainder =3D <optimized out>
>>>>>         remainder_size =3D <optimized out>
>>>>>         bck =3D <optimized out>
>>>>>         fwd =3D <optimized out>
>>>>>         copysize =3D <optimized out>
>>>>>         ncopies =3D <optimized out>
>>>>>         s =3D <optimized out>
>>>>>         d =3D <optimized out>
>>>>>         errstr =3D 0x0
>>>>>         __func__ =3D "_int_realloc"
>>>>>         nextsize =3D <optimized out>
>>>>> #2  0x00007ffff3eb85f9 in __GI___libc_realloc (oldmem=3D0x55555689d28=
0,
>>>>>     bytes=3D73728) at malloc.c:3029
>>>>>         ar_ptr =3D 0x7ffff41df620 <main_arena>
>>>>>         nb =3D 73744
>>>>>         newp =3D <optimized out>
>>>>>         hook =3D <optimized out>
>>>>>         oldp =3D 0x55555689d270
>>>>>         oldsize =3D 36880
>>>>>         __func__ =3D "__libc_realloc"
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>> #3  0x0000555555819563 in realloc_and_trace (mem=3D0x55555689d280,
>>>>> n_bytes=3D73728)
>>>>>     at vl.c:2857
>>>>>         ptr =3D 0x7fffffffcf30
>>>>> #4  0x00007ffff708388e in g_realloc (mem=3D<optimized out>,
>>>>> n_bytes=3D73728)
>>>>>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162
>>>>>         newmem =3D <optimized out>
>>>>> #5  0x000055555582d3e2 in phys_map_node_reserve (map=3D0x5555563ccf98=
,
>>>>> nodes=3D18)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/exec.c:152
>>>>> No locals.
>>>>> #6  0x000055555582d701 in phys_page_set (d=3D0x5555563ccf90, index=3D=
160,
>>>>> nb=3D16,
>>>>>     leaf=3D5) at /home/goon/xen/tools/qemu-xen-dir/exec.c:211
>>>>> No locals.
>>>>> #7  0x000055555582f1ae in register_multipage (d=3D0x5555563ccf90,
>>>>>     section=3D0x7fffffffcfe0) at
>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:937
>>>>>         start_addr =3D 655360
>>>>>         section_index =3D 5
>>>>>         num_pages =3D 16
>>>>>         __PRETTY_FUNCTION__ =3D "register_multipage"
>>>>> #8  0x000055555582f4b4 in mem_add (listener=3D0x55555633b898,
>>>>>     section=3D0x7fffffffd1a0) at
>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:968
>>>>>         as =3D 0x55555633b860
>>>>>         d =3D 0x5555563ccf90
>>>>>         now =3D {mr =3D 0x55555636dd30, address_space =3D 0x55555633b=
860,
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =3D =
0},
>>>>>           offset_within_address_space =3D 655360, readonly =3D false}
>>>>>         remain =3D {mr =3D 0x55555636dd30, address_space =3D 0x555556=
33b860,
>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =3D =
0},
>>>>>           offset_within_address_space =3D 655360, readonly =3D false}
>>>>>         page_size =3D {lo =3D 4096, hi =3D 0}
>>>>> #9  0x0000555555892a01 in address_space_update_topology_pass (
>>>>>     as=3D0x55555633b860, old_view=3D0x555556495910,
>>>>> new_view=3D0x55555687f2c0,
>>>>>     adding=3Dtrue) at /home/goon/xen/tools/qemu-xen-dir/memory.c:736
>>>>>         _listener =3D 0x55555633b898
>>>>>         iold =3D 1
>>>>>         inew =3D 1
>>>>>         frold =3D 0x5555565fd828
>>>>>         frnew =3D 0x5555568b23e8
>>>>> #10 0x0000555555892fd7 in address_space_update_topology
>>>>> (as=3D0x55555633b860)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:765
>>>>>         old_view =3D 0x555556495910
>>>>>         new_view =3D 0x55555687f2c0
>>>>> #11 0x00005555558930fc in memory_region_transaction_commit ()
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:800
>>>>>         as =3D 0x55555633b860
>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_transaction_commit"
>>>>> #12 0x00005555558951ed in memory_region_del_subregion
>>>>> (mr=3D0x5555562855d0,
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>     subregion=3D0x555556349250)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:1487
>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_del_subregion"
>>>>> #13 0x000055555570fdf3 in pci_update_mappings (d=3D0x5555563489f0)
>>>>>     at hw/pci/pci.c:1113
>>>>>         r =3D 0x555556348af8
>>>>>         i =3D 0
>>>>>         new_addr =3D 18446744073709551615
>>>>> #14 0x0000555555710110 in pci_default_write_config (d=3D0x5555563489f=
0,
>>>>> addr=3D4,
>>>>>     val=3D0, l=3D2) at hw/pci/pci.c:1168
>>>>>         i =3D 2
>>>>>         was_irq_disabled =3D 0
>>>>>         __PRETTY_FUNCTION__ =3D "pci_default_write_config"
>>>>> #15 0x0000555555714125 in pci_host_config_write_common (
>>>>>     pci_dev=3D0x5555563489f0, addr=3D4, limit=3D256, val=3D1024, len=
=3D2)
>>>>>     at hw/pci/pci_host.c:57
>>>>>         __PRETTY_FUNCTION__ =3D "pci_host_config_write_common"
>>>>> #16 0x0000555555714229 in pci_data_write (s=3D0x5555562a8cf0, addr=3D
>>>>> 2147487748,
>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:84
>>>>>         pci_dev =3D 0x5555563489f0
>>>>>         config_addr =3D 4
>>>>> #17 0x0000555555714351 in pci_host_data_write (opaque=3D0x55555631147=
0,
>>>>> addr=3D0,
>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:137
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         s =3D 0x555556311470
>>>>> #18 0x0000555555891531 in memory_region_write_accessor
>>>>> (mr=3D0x555556313860,
>>>>>     addr=3D0, value=3D0x7fffffffd5e8, size=3D2, shift=3D0, mask=3D655=
35)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:441
>>>>>         tmp =3D 1024
>>>>> #19 0x0000555555891636 in access_with_adjusted_size (addr=3D0,
>>>>>     value=3D0x7fffffffd5e8, size=3D2, access_size_min=3D1,
>>>>> access_size_max=3D4,
>>>>>     access=3D0x5555558914b0 <memory_region_write_accessor>,
>>>>> mr=3D0x555556313860)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:478
>>>>>         access_mask =3D 65535
>>>>>         access_size =3D 2
>>>>>         i =3D 0
>>>>> #20 0x0000555555893772 in memory_region_dispatch_write
>>>>> (mr=3D0x555556313860,
>>>>>     addr=3D0, data=3D1024, size=3D2)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:985
>>>>> No locals.
>>>>> #21 0x0000555555896068 in io_mem_write (mr=3D0x555556313860, addr=3D0=
,
>>>>> val=3D1024,
>>>>>     size=3D2) at /home/goon/xen/tools/qemu-xen-dir/memory.c:1744
>>>>> No locals.
>>>>> #22 0x000055555583183c in address_space_rw (
>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>     len=3D2, is_write=3Dtrue) at
>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:2029
>>>>>         l =3D 2
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         ptr =3D 0x7fffffffd6f4 "\377\377\377\377"
>>>>>         val =3D 1024
>>>>>         addr1 =3D 0
>>>>>         mr =3D 0x555556313860
>>>>>         error =3D false
>>>>> #23 0x0000555555831b12 in address_space_write (
>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>     len=3D2) at /home/goon/xen/tools/qemu-xen-dir/exec.c:2091
>>>>> No locals.
>>>>> #24 0x000055555588f486 in cpu_outw (addr=3D3324, val=3D1024)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/ioport.c:77
>>>>>         buf =3D "\000\004"
>>>>> #25 0x000055555590f460 in do_outp (addr=3D3324, size=3D2, val=3D1024)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668
>>>>> No locals.
>>>>> #26 0x000055555590f66f in cpu_ioreq_pio (req=3D0x7ffff7ff3000)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729
>>>>>         i =3D 0
>>>>> #27 0x000055555590f910 in handle_ioreq (req=3D0x7ffff7ff3000)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781
>>>>> No locals.
>>>>> #28 0x000055555590fc0f in cpu_handle_ioreq (opaque=3D0x5555562abf10)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         state =3D 0x5555562abf10
>>>>>         req =3D 0x7ffff7ff3000
>>>>> #29 0x000055555577c385 in qemu_iohandler_poll (pollfds=3D0x5555562776=
00,
>>>>> ret=3D1)
>>>>>     at iohandler.c:143
>>>>>         revents =3D 1
>>>>>         pioh =3D 0x55555627ca90
>>>>>         ioh =3D 0x555556366320
>>>>> #30 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>> main-loop.c:485
>>>>>         ret =3D 1
>>>>>         timeout =3D 4294967295
>>>>>         timeout_ns =3D 16717983
>>>>> #31 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>         nonblocking =3D false
>>>>>         last_io =3D 1
>>>>> #32 0x000055555581d66b in main (argc=3D64, argv=3D0x7fffffffdc78,
>>>>>     envp=3D0x7fffffffde80) at vl.c:4535
>>>>>         i =3D 64
>>>>>         snapshot =3D 0
>>>>>         linux_boot =3D 0
>>>>>         icount_option =3D 0x0
>>>>>         initrd_filename =3D 0x0
>>>>>         kernel_filename =3D 0x0
>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         boot_order =3D 0x555556275340 "dc"
>>>>>         ds =3D 0x5555563564e0
>>>>>         cyls =3D 0
>>>>>         heads =3D 0
>>>>>         secs =3D 0
>>>>>         translation =3D 0
>>>>>         hda_opts =3D 0x0
>>>>>         opts =3D 0x555556275290
>>>>>         machine_opts =3D 0x555556276ef0
>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>         optind =3D 64
>>>>>         optarg =3D 0x7fffffffe61a
>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=
=3Dwriteback"
>>>>>         loadvm =3D 0x0
>>>>>         machine_class =3D 0x55555626e030
>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>         cpu_model =3D 0x0
>>>>>         vga_model =3D 0x0
>>>>>         qtest_chrdev =3D 0x0
>>>>>         qtest_log =3D 0x0
>>>>>         pid_file =3D 0x0
>>>>>         incoming =3D 0x0
>>>>>         show_vnc_port =3D 0
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         defconfig =3D true
>>>>>         userconfig =3D true
>>>>>         log_mask =3D 0x0
>>>>>         log_file =3D 0x0
>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>         trace_events =3D 0x0
>>>>>         trace_file =3D 0x0
>>>>>         __func__ =3D "main"
>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275340 "dc"=
,
>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664 =
"",
>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>
>>>>>
>>>>> 2015-01-04 22:29 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>
>>>>>>   Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>> This is free software: you are free to change and redistribute it.
>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>> copying"
>>>>>> and "show warranty" for details.
>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>> Type "show configuration" for configuration details.
>>>>>> For bug reporting instructions, please see:
>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>> For help, type "help".
>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>> (gdb) target remote localhost:1234
>>>>>> Remote debugging using localhost:1234
>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>> done.
>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>> (gdb) c
>>>>>> Continuing.
>>>>>>
>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>> (gdb) bt full
>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>         sif =3D <optimized out>
>>>>>>         total =3D <optimized out>
>>>>>>         n =3D <optimized out>
>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>> No locals.
>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c:=
798
>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out>=
)
>>>>>>     at reds.c:3795
>>>>>>         st_item =3D 0x5555562d8350
>>>>>>         item =3D 0x5555562d8350
>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>> ui/spice-core.c:909
>>>>>> No locals.
>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadvm=
=3D0)
>>>>>>     at hw/display/qxl.c:1172
>>>>>>         startstop =3D true
>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>     at hw/display/qxl.c:1180
>>>>>>         d =3D 0x55555637d7e0
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>     at hw/core/qdev.c:934
>>>>>>         klass =3D 0x555556270410
>>>>>>         __func__ =3D "device_reset"
>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>> opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:240
>>>>>> No locals.
>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:411
>>>>>>         bus =3D 0x0
>>>>>>         err =3D 0
>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:369
>>>>>>         kid =3D 0x55555633d4f0
>>>>>>         err =3D 0
>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:403
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>         err =3D 0
>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:369
>>>>>>         kid =3D 0x5555562a6a80
>>>>>>         err =3D 0
>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>     at hw/core/qdev.c:261
>>>>>> No locals.
>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b0=
)
>>>>>>     at hw/core/qdev.c:267
>>>>>>         bus =3D 0x5555562a60b0
>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>         re =3D 0x555556375890
>>>>>>         nre =3D 0x0
>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at vl.c:=
1885
>>>>>>         mc =3D 0x55555626e030
>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>         state =3D 0x5555562b0950
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         req =3D 0x7ffff7ff3000
>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>     at iohandler.c:143
>>>>>>         revents =3D 1
>>>>>>         pioh =3D 0x5555563218c0
>>>>>>         ioh =3D 0x555556362a80
>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>> main-loop.c:485
>>>>>>         ret =3D 1
>>>>>>         timeout =3D 4294967295
>>>>>>         timeout_ns =3D 17355567
>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>         nonblocking =3D false
>>>>>>         last_io =3D 1
>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>         i =3D 64
>>>>>>         snapshot =3D 0
>>>>>>         linux_boot =3D 0
>>>>>>         icount_option =3D 0x0
>>>>>>         initrd_filename =3D 0x0
>>>>>>         kernel_filename =3D 0x0
>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         ds =3D 0x5555563324a0
>>>>>>         cyls =3D 0
>>>>>>         heads =3D 0
>>>>>>         secs =3D 0
>>>>>>         translation =3D 0
>>>>>>         hda_opts =3D 0x0
>>>>>>         opts =3D 0x5555562752d0
>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>         optind =3D 66
>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=
=3Dwriteback"
>>>>>>         loadvm =3D 0x0
>>>>>>         machine_class =3D 0x55555626e030
>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>         cpu_model =3D 0x0
>>>>>>         vga_model =3D 0x0
>>>>>>         qtest_chrdev =3D 0x0
>>>>>>         qtest_log =3D 0x0
>>>>>>         pid_file =3D 0x0
>>>>>>         incoming =3D 0x0
>>>>>>         show_vnc_port =3D 0
>>>>>>         defconfig =3D true
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         userconfig =3D true
>>>>>>         log_mask =3D 0x0
>>>>>>         log_file =3D 0x0
>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>         trace_events =3D 0x0
>>>>>>         trace_file =3D 0x0
>>>>>>         __func__ =3D "main"
>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "dc=
",
>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664=
 "",
>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>  (gdb) bt full ecc
>>>>>> No symbol "ecc" in current context.
>>>>>>
>>>>>> (gdb) bt full
>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>         sif =3D <optimized out>
>>>>>>         total =3D <optimized out>
>>>>>>         n =3D <optimized out>
>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>> No locals.
>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c:=
798
>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out>=
)
>>>>>>     at reds.c:3795
>>>>>>         st_item =3D 0x5555562d8350
>>>>>>         item =3D 0x5555562d8350
>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>> ui/spice-core.c:909
>>>>>> No locals.
>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadvm=
=3D0)
>>>>>>     at hw/display/qxl.c:1172
>>>>>>         startstop =3D true
>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>     at hw/display/qxl.c:1180
>>>>>>         d =3D 0x55555637d7e0
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>     at hw/core/qdev.c:934
>>>>>>         klass =3D 0x555556270410
>>>>>>         __func__ =3D "device_reset"
>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>> opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:240
>>>>>> No locals.
>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:411
>>>>>>         bus =3D 0x0
>>>>>>         err =3D 0
>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:369
>>>>>>         kid =3D 0x55555633d4f0
>>>>>>         err =3D 0
>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:403
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>         err =3D 0
>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:369
>>>>>>         kid =3D 0x5555562a6a80
>>>>>>         err =3D 0
>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>     at hw/core/qdev.c:261
>>>>>> No locals.
>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b0=
)
>>>>>>     at hw/core/qdev.c:267
>>>>>>         bus =3D 0x5555562a60b0
>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>         re =3D 0x555556375890
>>>>>>         nre =3D 0x0
>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at vl.c:=
1885
>>>>>>         mc =3D 0x55555626e030
>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>         state =3D 0x5555562b0950
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         req =3D 0x7ffff7ff3000
>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>     at iohandler.c:143
>>>>>>         revents =3D 1
>>>>>>         pioh =3D 0x5555563218c0
>>>>>>         ioh =3D 0x555556362a80
>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>> main-loop.c:485
>>>>>>         ret =3D 1
>>>>>>         timeout =3D 4294967295
>>>>>>         timeout_ns =3D 17355567
>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>         nonblocking =3D false
>>>>>>         last_io =3D 1
>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>         i =3D 64
>>>>>>         snapshot =3D 0
>>>>>>         linux_boot =3D 0
>>>>>>         icount_option =3D 0x0
>>>>>>         initrd_filename =3D 0x0
>>>>>>         kernel_filename =3D 0x0
>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         ds =3D 0x5555563324a0
>>>>>>         cyls =3D 0
>>>>>>         heads =3D 0
>>>>>>         secs =3D 0
>>>>>>         translation =3D 0
>>>>>>         hda_opts =3D 0x0
>>>>>>         opts =3D 0x5555562752d0
>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>         optind =3D 66
>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=
=3Dwriteback"
>>>>>>         loadvm =3D 0x0
>>>>>>         machine_class =3D 0x55555626e030
>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>         cpu_model =3D 0x0
>>>>>>         vga_model =3D 0x0
>>>>>>         qtest_chrdev =3D 0x0
>>>>>>         qtest_log =3D 0x0
>>>>>>         pid_file =3D 0x0
>>>>>>         incoming =3D 0x0
>>>>>>         show_vnc_port =3D 0
>>>>>>         defconfig =3D true
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         userconfig =3D true
>>>>>>         log_mask =3D 0x0
>>>>>>         log_file =3D 0x0
>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>         trace_events =3D 0x0
>>>>>>         trace_file =3D 0x0
>>>>>>         __func__ =3D "main"
>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "dc=
",
>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664=
 "",
>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>
>>>>>>
>>>>>>   AND
>>>>>>
>>>>>>  attached files
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2015-01-04 22:24 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>>
>>>>>>> GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
>>>>>>> Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>> This is free software: you are free to change and redistribute it.
>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>> copying"
>>>>>>> and "show warranty" for details.
>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>> Type "show configuration" for configuration details.
>>>>>>> For bug reporting instructions, please see:
>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>> For help, type "help".
>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>> (gdb) target remote localhost:1234
>>>>>>> Remote debugging using localhost:1234
>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>> done.
>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>> (gdb) c
>>>>>>> Continuing.
>>>>>>>
>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>> (gdb) bt full
>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>         sif =3D <optimized out>
>>>>>>>         total =3D <optimized out>
>>>>>>>         n =3D <optimized out>
>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>> No locals.
>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c=
:798
>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out=
>)
>>>>>>>     at reds.c:3795
>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>         item =3D 0x5555562d8350
>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>> ui/spice-core.c:909
>>>>>>> No locals.
>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadv=
m=3D0)
>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>         startstop =3D true
>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>         d =3D 0x55555637d7e0
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>     at hw/core/qdev.c:934
>>>>>>>         klass =3D 0x555556270410
>>>>>>>         __func__ =3D "device_reset"
>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>> opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:240
>>>>>>> No locals.
>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:411
>>>>>>>         bus =3D 0x0
>>>>>>>         err =3D 0
>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>         err =3D 0
>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:403
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>         err =3D 0
>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>         err =3D 0
>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>     at hw/core/qdev.c:261
>>>>>>> No locals.
>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b=
0)
>>>>>>>     at hw/core/qdev.c:267
>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>         re =3D 0x555556375890
>>>>>>>         nre =3D 0x0
>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>> vl.c:1885
>>>>>>>         mc =3D 0x55555626e030
>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950=
)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>         state =3D 0x5555562b0950
>>>>>>> ---Type <return> to continue, or q
>>>>>>>
>>>>>> ...

--001a113cd9f02e00ef050be5c3f7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<p dir=3D"ltr">Well r=C3=A9installed from scratch, added winpv and spice dr=
ivers the border you gave me and Th=C3=A9r=C3=A8se is NO more bugs related =
to winpv .=C2=A0 will test reboot and spice/qxl functionnalities when possi=
ble. Regards.=C2=A0 Greg b</p>
<div class=3D"gmail_quote">Le 5 janv. 2015 10:08, &quot;Fabio Fantoni&quot;=
 &lt;<a href=3D"mailto:fabio.fantoni@m2r.biz">fabio.fantoni@m2r.biz</a>&gt;=
 a =C3=A9crit :<br type=3D"attribution"><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div>Il 05/01/2015 00:24, Goonie Windy ha
      scritto:<br>
    </div>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">AND DMESG<br>
        [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8
        ip 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in <a href=3D"http:=
//libc-2.19.so" target=3D"_blank">libc-2.19.so</a>[7f92a64d4000+19f000]<br>
        [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3096.118716] device vif5.0-emu left promiscuous mode<br>
        [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3584.894741] device vif5.0 left promiscuous mode<br>
        [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3681.878054] device vif6.0 entered promiscuous mode<br>
        [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3682.193528] device vif6.0-emu entered promiscuous mode<br>
        [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3780.535444] device vif6.0-emu left promiscuous mode<br>
        [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state<br>
        [ 3899.555577] device vif6.0 left promiscuous mode<br>
        [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state<br>
        <br>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">2015-01-05 0:21 GMT+01:00 Goonie Windy
          <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com=
" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div dir=3D"ltr">=C2=A0 GNU nano
              2.2.6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Fichier=C2=A0:
              qemu-dm-win7.log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
              <br>
              <br>
              (/usr/local/sbin/xl:9535): Spice-Warning **:
              reds.c:1863:reds_handle_ticket: Invalid password<br>
              main_channel_link: add main channel client<br>
              main_channel_handle_parsed: net test: latency 0.318000 ms,
              bitrate 26597402597 bps (25365.259740 Mbps)<br>
              inputs_connect: inputs channel client create<br>
              red_dispatcher_set_cursor_peer:<br>
              main_channel_handle_parsed: agent start<br>
              main_channel_handle_parsed: agent start<br>
              *** Error in `/usr/lib/xen/bin/qemu-system-i386&#39;: double
              free or corruption (out): 0x00007f0e38dd26f0 ***<br>
              <br>
            </div>
            <div class=3D"gmail_extra"><br>
              <div class=3D"gmail_quote">2015-01-05 0:00 GMT+01:00 Goonie
                Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goon=
ie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<b=
r>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div dir=3D"ltr">Should add this too:<br>
                    host=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : E766<br>
                    release=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 3.16.0-4-amd64<br>
                    version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : #1 SMP Debian 3.16.7-ckt2-1
                    (2014-12-08)<br>
                    machine=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : x86_64<br>
                    nr_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    max_cpu_id=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 7<br>
                    nr_nodes=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 1<br>
                    cores_per_socket=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    threads_per_core=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    cpu_mhz=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2594<br>
                    hw_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:0=
0000001:00000281<br>
                    virt_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : hvm hvm_directio<br>
                    total_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 8055<br>
                    free_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 2309<br>
                    sharing_freed_memory=C2=A0=C2=A0 : 0<br>
                    sharing_used_memory=C2=A0=C2=A0=C2=A0 : 0<br>
                    outstanding_claims=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    free_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    xen_major=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    xen_minor=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 5<br>
                    xen_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : .0-rc<br>
                    xen_version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 4.5.0-rc<br>
                    xen_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : xen-3.0-x86_64
                    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
                    hvm-3.0-x86_64 <br>
                    xen_scheduler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : credit<br>
                    xen_pagesize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 4096<br>
                    platform_params=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 :
                    virt_start=3D0xffff800000000000<br>
                    xen_changeset=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : Thu Dec 18 10:02:16 2014
                    +0000 git:36174af-dirty<br>
                    xen_commandline=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : placeholder<br>
                    cc_compiler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : gcc (Debian 4.9.2-10) 4.9.2<br>
                    cc_compile_by=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : root<br>
                    cc_compile_domain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : <br>
                    cc_compile_date=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : Wed Dec 31 01:20:47 CET
                    2014<br>
                    xend_config_format=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    <br>
                    <br>
                  </div>
                  <div class=3D"gmail_extra"><br>
                    <div class=3D"gmail_quote">2015-01-04 23:39 GMT+01:00
                      Goonie Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:=
monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&=
gt;</span>:<br>
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div dir=3D"ltr">My qemu log after spice failure:<b=
r>
                          (/usr/local/sbin/xl:4254): Spice-Warning **:
                          reds.c:1863:reds_handle_ticket: Invalid
                          password<br>
                          main_channel_link: add main channel client<br>
                          main_channel_handle_parsed: net test: latency
                          0.257000 ms, bitrate 81920000000 bps
                          (78125.000000 Mbps)<br>
                          red_dispatcher_set_cursor_peer: <br>
                          inputs_connect: inputs channel client create<br>
                          main_channel_handle_parsed: agent start<br>
                          main_channel_handle_parsed: agent start<br>
                          qemu-system-i386: malloc.c:2372: sysmalloc:
                          Assertion `(old_top =3D=3D (((mbinptr) (((char *)
                          &amp;((av)-&gt;bins[((1) - 1) * 2])) -
                          __builtin_offsetof (struct malloc_chunk,
                          fd)))) &amp;&amp; old_size =3D=3D 0) || ((unsigne=
d
                          long) (old_size) &gt;=3D (unsigned
                          long)((((__builtin_offsetof (struct
                          malloc_chunk, fd_nextsize))+((2
                          *(sizeof(size_t))) - 1)) &amp; ~((2
                          *(sizeof(size_t))) - 1))) &amp;&amp;
                          ((old_top)-&gt;size &amp; 0x1) &amp;&amp;
                          ((unsigned long) old_end &amp; pagemask) =3D=3D
                          0)&#39; failed.<br>
                          <br>
                        </div>
                        <div class=3D"gmail_extra"><br>
                          <div class=3D"gmail_quote">2015-01-04 23:10
                            GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.gooni=
e@gmail.com</a>&gt;</span>:<br>
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div>This one is bug from trying to
                                  install winpv=C2=A0 bus driver<br>
                                </div>
                              </div>
                            </blockquote>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
    If you followed all my advices your configurations should be ok and
    you found a new bug or inexpected case.<br>
    <span lang=3D"en"><span>I
        do not have</span> <span>the knowledge to</span> <span>solve it.</s=
pan></span><br>
    Added to cc also win-pv-devel<br>
    Can someone take a look to this problem please?<br>
    <br>
    <blockquote type=3D"cite">
      <div class=3D"gmail_extra">
        <div class=3D"gmail_quote">
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div class=3D"gmail_extra">
              <div class=3D"gmail_quote">
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div class=3D"gmail_extra">
                    <div class=3D"gmail_quote">
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div class=3D"gmail_extra">
                          <div class=3D"gmail_quote">
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div><br>
                                </div>
                                <div>
                                  <div><br>
                                    Program received signal SIGSEGV,
                                    Segmentation fault.<br>
                                    _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    bytes=3Dbytes@entry=3D73729)<br>
                                    =C2=A0=C2=A0=C2=A0 at malloc.c:3775<br>
                                    3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun =
fichier ou
                                    dossier de ce type.<br>
                                    (gdb) bt full<br>
                                    #0=C2=A0 _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=
=3D73729) at
                                    malloc.c:3775<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 p =3D 0x555557303880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iters =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 idx =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bin =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim =3D 0x555557303870<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 size =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim_index =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D 0x555557315880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 block =3D 4<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bit =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 map =3D 66981887<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_malloc&quot;<br>
                                    #1=C2=A0 0x00007ffff3eb74a1 in
                                    _int_realloc (<br>
                                    =C2=A0=C2=A0=C2=A0 av=3Dav@entry=3D0x7f=
fff41df620
                                    &lt;main_arena&gt;,
                                    oldp=3Doldp@entry=3D0x55555689d270, <br=
>
                                    =C2=A0=C2=A0=C2=A0 oldsize=3Doldsize@en=
try=3D36880,
                                    nb=3Dnb@entry=3D73744) at malloc.c:4286=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newsize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 next =3D 0x5555568a6280<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 copysize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ncopies =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_realloc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nextsize =3D &lt;optimized
                                    out&gt;<br>
                                    #2=C2=A0 0x00007ffff3eb85f9 in
                                    __GI___libc_realloc
                                    (oldmem=3D0x55555689d280, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3D73728) at ma=
lloc.c:3029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ar_ptr =3D 0x7ffff41df620
                                    &lt;main_arena&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hook =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldp =3D 0x55555689d270<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldsize =3D 36880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;__libc_realloc&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    #3=C2=A0 0x0000555555819563 in
                                    realloc_and_trace
                                    (mem=3D0x55555689d280, n_bytes=3D73728)=
<br>
                                    =C2=A0=C2=A0=C2=A0 at vl.c:2857<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffcf30<br>
                                    #4=C2=A0 0x00007ffff708388e in g_reallo=
c
                                    (mem=3D&lt;optimized out&gt;,
                                    n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /tmp/buildd/glib2.0-2.42.1/./glib/gmem.=
c:162<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    #5=C2=A0 0x000055555582d3e2 in
                                    phys_map_node_reserve
                                    (map=3D0x5555563ccf98, nodes=3D18)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:152<br>
                                    No locals.<br>
                                    #6=C2=A0 0x000055555582d701 in
                                    phys_page_set (d=3D0x5555563ccf90,
                                    index=3D160, nb=3D16, <br>
                                    =C2=A0=C2=A0=C2=A0 leaf=3D5) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:211<br>
                                    No locals.<br>
                                    #7=C2=A0 0x000055555582f1ae in
                                    register_multipage
                                    (d=3D0x5555563ccf90, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
cfe0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:937<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 start_addr =3D 655360<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 section_index =3D 5<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 num_pages =3D 16<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;register_multipage&quot;<br>
                                    #8=C2=A0 0x000055555582f4b4 in mem_add
                                    (listener=3D0x55555633b898, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
d1a0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:968<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D 0x5555563ccf90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 now =3D {mr =3D 0x55555636dd30,
                                    address_space =3D 0x55555633b860, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remain =3D {mr =3D
                                    0x55555636dd30, address_space =3D
                                    0x55555633b860, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 page_size =3D {lo =3D 4096, hi =3D
                                    0}<br>
                                    #9=C2=A0 0x0000555555892a01 in
                                    address_space_update_topology_pass (<br=
>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x55555633b860,
                                    old_view=3D0x555556495910,
                                    new_view=3D0x55555687f2c0, <br>
                                    =C2=A0=C2=A0=C2=A0 adding=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:736<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 _listener =3D 0x55555633b898<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iold =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 inew =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frold =3D 0x5555565fd828<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frnew =3D 0x5555568b23e8<br>
                                    #10 0x0000555555892fd7 in
                                    address_space_update_topology
                                    (as=3D0x55555633b860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:765<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 old_view =3D 0x555556495910<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_view =3D 0x55555687f2c0<br>
                                    #11 0x00005555558930fc in
                                    memory_region_transaction_commit ()<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:800<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_transaction_commit&=
quot;<br>
                                    #12 0x00005555558951ed in
                                    memory_region_del_subregion
                                    (mr=3D0x5555562855d0, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0 subregion=3D0x555556=
349250)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1487<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_del_subregion&quot;=
<br>
                                    #13 0x000055555570fdf3 in
                                    pci_update_mappings
                                    (d=3D0x5555563489f0)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci.c:1113=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 r =3D 0x555556348af8<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_addr =3D
                                    18446744073709551615<br>
                                    #14 0x0000555555710110 in
                                    pci_default_write_config
                                    (d=3D0x5555563489f0, addr=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D0, l=3D2) at h=
w/pci/pci.c:1168<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 was_irq_disabled =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_default_write_config&quot;<br=
>
                                    #15 0x0000555555714125 in
                                    pci_host_config_write_common (<br>
                                    =C2=A0=C2=A0=C2=A0 pci_dev=3D0x55555634=
89f0, addr=3D4,
                                    limit=3D256, val=3D1024, len=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci_host.c=
:57<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_host_config_write_common&quot=
;<br>
                                    #16 0x0000555555714229 in
                                    pci_data_write (s=3D0x5555562a8cf0,
                                    addr=3D<a href=3D"tel:2147487748" value=
=3D"+12147487748" target=3D"_blank">2147487748</a>, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:84<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pci_dev =3D 0x5555563489f0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 config_addr =3D 4<br>
                                    #17 0x0000555555714351 in
                                    pci_host_data_write
                                    (opaque=3D0x555556311470, addr=3D0, <br=
>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:137<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D 0x555556311470<br>
                                    #18 0x0000555555891531 in
                                    memory_region_write_accessor
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, value=3D0x=
7fffffffd5e8,
                                    size=3D2, shift=3D0, mask=3D65535)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:441<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 tmp =3D 1024<br>
                                    #19 0x0000555555891636 in
                                    access_with_adjusted_size (addr=3D0, <b=
r>
                                    =C2=A0=C2=A0=C2=A0 value=3D0x7fffffffd5=
e8, size=3D2,
                                    access_size_min=3D1,
                                    access_size_max=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 access=3D0x555555891=
4b0
                                    &lt;memory_region_write_accessor&gt;,
                                    mr=3D0x555556313860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:478<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_mask =3D 65535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_size =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #20 0x0000555555893772 in
                                    memory_region_dispatch_write
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, data=3D102=
4, size=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:985<br>
                                    No locals.<br>
                                    #21 0x0000555555896068 in
                                    io_mem_write (mr=3D0x555556313860,
                                    addr=3D0, val=3D1024, <br>
                                    =C2=A0=C2=A0=C2=A0 size=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1744<br>
                                    No locals.<br>
                                    #22 0x000055555583183c in
                                    address_space_rw (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2, is_write=3D=
true) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 l =3D 2<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffd6f4
                                    &quot;\377\377\377\377&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 val =3D 1024<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 addr1 =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mr =3D 0x555556313860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 error =3D false<br>
                                    #23 0x0000555555831b12 in
                                    address_space_write (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2091<br>
                                    No locals.<br>
                                    #24 0x000055555588f486 in cpu_outw
                                    (addr=3D3324, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/iopor=
t.c:77<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 buf =3D &quot;\000\004&quot;<br>
                                    #25 0x000055555590f460 in do_outp
                                    (addr=3D3324, size=3D2, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:668<br>
                                    No locals.<br>
                                    #26 0x000055555590f66f in
                                    cpu_ioreq_pio (req=3D0x7ffff7ff3000)<br=
>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:729<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #27 0x000055555590f910 in
                                    handle_ioreq (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:781<br>
                                    No locals.<br>
                                    #28 0x000055555590fc0f in
                                    cpu_handle_ioreq
                                    (opaque=3D0x5555562abf10)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:856<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 state =3D 0x5555562abf10<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 req =3D 0x7ffff7ff3000<br>
                                    #29 0x000055555577c385 in
                                    qemu_iohandler_poll
                                    (pollfds=3D0x555556277600, ret=3D1)<br>
                                    =C2=A0=C2=A0=C2=A0 at iohandler.c:143<b=
r>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 revents =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pioh =3D 0x55555627ca90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ioh =3D 0x555556366320<br>
                                    #30 0x000055555577d14b in
                                    main_loop_wait (nonblocking=3D0) at
                                    main-loop.c:485<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ret =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout =3D 4294967295<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout_ns =3D 16717983<br>
                                    #31 0x0000555555815fbd in main_loop
                                    () at vl.c:2056<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nonblocking =3D false<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 last_io =3D 1<br>
                                    #32 0x000055555581d66b in main
                                    (argc=3D64, argv=3D0x7fffffffdc78, <br>
                                    =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde8=
0) at
                                    vl.c:4535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 snapshot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 linux_boot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 icount_option =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 initrd_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D
                                    0x55555598c664 &quot;&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 boot_order =3D 0x555556275340
                                    &quot;dc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ds =3D 0x5555563564e0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cyls =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 heads =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 secs =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 translation =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hda_opts =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 opts =3D 0x555556275290<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_opts =3D
                                    0x555556276ef0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 olist =3D 0x555555d72700
                                    &lt;qemu_machine_opts&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optind =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optarg =3D 0x7fffffffe61a
                                    &quot;file=3D/dev/sda3,if=3Dide,index=
=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 loadvm =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_class =3D
                                    0x55555626e030<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine =3D 0x555555d78540
                                    &lt;xenfv_machine&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cpu_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 vga_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_chrdev =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_log =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pid_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 incoming =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 show_vnc_port =3D 0<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 defconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 userconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_mask =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mem_trace =3D {malloc =3D
                                    0x55555581950b
                                    &lt;malloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 realloc =3D 0x555555819540
                                    &lt;realloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 free =3D 0x555555819584
                                    &lt;free_and_trace&gt;, calloc =3D
                                    0x0, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 try_malloc =3D 0x0,
                                    try_realloc =3D 0x0}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_events =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;main&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 args =3D {machine =3D
                                    0x555555d78540
                                    &lt;xenfv_machine&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=3D"+120132659=
20" target=3D"_blank">2013265920</a>,
                                    boot_order =3D 0x555556275340 &quot;dc&=
quot;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D 0x0,
                                    kernel_cmdline =3D 0x55555598c664 &quot=
;&quot;,
                                    <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D 0x0,
                                    cpu_model =3D 0x0}<br>
                                    <br>
                                  </div>
                                </div>
                              </div>
                              <div class=3D"gmail_extra"><br>
                                <div class=3D"gmail_quote">2015-01-04
                                  22:29 GMT+01:00 Goonie Windy <span dir=3D=
"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">mo=
nsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                  <blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                    <div dir=3D"ltr">
                                      <div>
                                        <div>
                                          <div>
                                            <div>Copyright (C) 2014 Free
                                              Software Foundation, Inc.<br>
                                              License GPLv3+: GNU GPL
                                              version 3 or later &lt;<a hre=
f=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/lic=
enses/gpl.html</a>&gt;<br>
                                              This is free software: you
                                              are free to change and
                                              redistribute it.<br>
                                              There is NO WARRANTY, to
                                              the extent permitted by
                                              law.=C2=A0 Type &quot;show co=
pying&quot;<br>
                                              and &quot;show warranty&quot;=
 for
                                              details.<br>
                                              This GDB was configured as
                                              &quot;x86_64-linux-gnu&quot;.=
<br>
                                              Type &quot;show configuration=
&quot;
                                              for configuration details.<br=
>
                                              For bug reporting
                                              instructions, please see:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gdb/=
bugs/</a>&gt;.<br>
                                              Find the GDB manual and
                                              other documentation
                                              resources online at:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/soft=
ware/gdb/documentation/</a>&gt;.<br>
                                              For help, type &quot;help&quo=
t;.<br>
                                              Type &quot;apropos word&quot;=
 to
                                              search for commands
                                              related to &quot;word&quot;..=
.<br>
                                              Reading symbols from
                                              /usr/lib/xen/bin/qemu-system-=
i386...done.<br>
                                              (gdb) target remote
                                              localhost:1234<br>
                                              Remote debugging using
                                              localhost:1234<br>
                                              Reading symbols from
                                              /lib64/ld-linux-x86-64.so.2..=
.Reading
                                              symbols from
                                              /usr/lib/debug//lib/x86_64-li=
nux-gnu/ld-2.19.so...done.<br>
                                              done.<br>
                                              Loaded symbols for
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              0x00007ffff7ddd190 in
                                              _start () from
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              (gdb) c<br>
                                              Continuing.<br>
                                              <br>
                                              Program received signal
                                              SIGSEGV, Segmentation
                                              fault.<br>
                                              0x00007ffff50e5801 in
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              443=C2=A0=C2=A0=C2=A0 char_de=
vice.c:
                                              Aucun fichier ou dossier
                                              de ce type.<br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                            </div>
                                          </div>
                                          (gdb) bt full ecc<br>
                                          No symbol &quot;ecc&quot; in curr=
ent
                                          context.
                                          <div>
                                            <div><br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                              <br>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                        AND <br>
                                        <br>
                                      </div>
                                      attached files<br>
                                      <br>
                                      <br>
                                      <div><br>
                                        <div><br>
                                          <br>
                                          <br>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                    <div>
                                      <div>
                                        <div class=3D"gmail_extra"><br>
                                          <div class=3D"gmail_quote">2015-0=
1-04
                                            22:24 GMT+01:00 Goonie Windy
                                            <span dir=3D"ltr">&lt;<a href=
=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gma=
il.com</a>&gt;</span>:<br>
                                            <blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                              <div dir=3D"ltr">GNU gdb
                                                (Debian 7.7.1+dfsg-5)
                                                7.7.1<br>
                                                Copyright (C) 2014 Free
                                                Software Foundation,
                                                Inc.<br>
                                                License GPLv3+: GNU GPL
                                                version 3 or later &lt;<a h=
ref=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/l=
icenses/gpl.html</a>&gt;<br>
                                                This is free software:
                                                you are free to change
                                                and redistribute it.<br>
                                                There is NO WARRANTY, to
                                                the extent permitted by
                                                law.=C2=A0 Type &quot;show
                                                copying&quot;<br>
                                                and &quot;show warranty&quo=
t; for
                                                details.<br>
                                                This GDB was configured
                                                as &quot;x86_64-linux-gnu&q=
uot;.<br>
                                                Type &quot;show
                                                configuration&quot; for
                                                configuration details.<br>
                                                For bug reporting
                                                instructions, please
                                                see:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gd=
b/bugs/</a>&gt;.<br>
                                                Find the GDB manual and
                                                other documentation
                                                resources online at:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/so=
ftware/gdb/documentation/</a>&gt;.<br>
                                                For help, type &quot;help&q=
uot;.<br>
                                                Type &quot;apropos word&quo=
t; to
                                                search for commands
                                                related to &quot;word&quot;=
...<br>
                                                Reading symbols from
                                                /usr/lib/xen/bin/qemu-syste=
m-i386...done.<br>
                                                (gdb) target remote
                                                localhost:1234<span><br>
                                                  Remote debugging using
                                                  localhost:1234<br>
                                                </span><span>Reading
                                                  symbols from
                                                  /lib64/ld-linux-x86-64.so=
.2...Reading
                                                  symbols from
                                                  /usr/lib/debug//lib/x86_6=
4-linux-gnu/ld-2.19.so...done.<br>
                                                  done.<br>
                                                  Loaded symbols for
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  0x00007ffff7ddd190 in
                                                  _start () from
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  (gdb) c<br>
                                                  Continuing.<br>
                                                  <br>
                                                </span>Program received
                                                signal SIGSEGV,
                                                Segmentation fault.<br>
                                                0x00007ffff50e5801 in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                443=C2=A0=C2=A0=C2=A0 char_=
device.c:
                                                Aucun fichier ou dossier
                                                de ce type.<br>
                                                (gdb) bt full<br>
                                                #0=C2=A0 0x00007ffff50e5801
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D
                                                &lt;optimized out&gt;<br>
                                                #1=C2=A0 0x00007ffff50e6497
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0 dev=3D0x=
55555647c750)
                                                at char_device.c:436<br>
                                                No locals.<br>
                                                #2=C2=A0
                                                spice_char_device_start
                                                (dev=3D0x55555647c750) at
                                                char_device.c:798<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_char_device_sta=
rt&quot;<br>
                                                #3=C2=A0 0x00007ffff51299c6
                                                in spice_server_vm_start
                                                (s=3D&lt;optimized
                                                out&gt;)<br>
                                                =C2=A0=C2=A0=C2=A0 at reds.=
c:3795<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_server_vm_start=
&quot;<br>
                                                #4=C2=A0 0x00005555557f40c9
                                                in
                                                qemu_spice_display_start
                                                () at
                                                ui/spice-core.c:909<br>
                                                No locals.<br>
                                                #5=C2=A0 0x00005555556c4365
                                                in qxl_hard_reset
                                                (d=3D0x55555637d7e0,
                                                loadvm=3D0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1172<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                                #6=C2=A0 0x00005555556c43a3
                                                in qxl_reset_handler
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1180<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D
                                                0x55555637d7e0<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                #7=C2=A0 0x0000555555699658
                                                in device_reset
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:934<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                                0x555556270410<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;device_reset&quot;<br=
>
                                                #8=C2=A0 0x0000555555697a56
                                                in qdev_reset_one
                                                (dev=3D0x55555637d7e0,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:240<br>
                                                No locals.<br>
                                                #9=C2=A0 0x0000555555697f64
                                                in qdev_walk_children
                                                (dev=3D0x55555637d7e0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:411<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #10 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a8ee0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x55555633d4f0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #11 0x0000555555697f28
                                                in qdev_walk_children
                                                (dev=3D0x5555563131b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:403<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a8ee0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #12 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a60b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x5555562a6a80<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #13 0x0000555555697b32
                                                in qbus_reset_all
                                                (bus=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:261<br>
                                                No locals.<br>
                                                #14 0x0000555555697b54
                                                in qbus_reset_all_fn
                                                (opaque=3D0x5555562a60b0)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:267<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a60b0<br>
                                                #15 0x0000555555815b1f
                                                in qemu_devices_reset ()
                                                at vl.c:1872<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                                0x555556375890<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                                #16 0x0000555555815bbf
                                                in qemu_system_reset
                                                (report=3Dtrue) at
                                                vl.c:1885<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;qemu_system_reset&quo=
t;<br>
                                                #17 0x000055555590fcb9
                                                in cpu_handle_ioreq
                                                (opaque=3D0x5555562b0950)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                /home/goon/xen/tools/qemu-x=
en-dir/xen-hvm.c:881<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                                0x5555562b0950<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
       </div></blockquote></div></div></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div>...</blockquote></div>

--001a113cd9f02e00ef050be5c3f7--


--===============6231233026205843170==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--===============6231233026205843170==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jan 05 11:12:21 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 05 Jan 2015 11:12:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y85a9-0002TN-Tt; Mon, 05 Jan 2015 11:12:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <monsieur.goonie@gmail.com>) id 1Y85a7-0002Sv-Qy
	for win-pv-devel@lists.xenproject.org; Mon, 05 Jan 2015 11:12:20 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	CA/E6-25727-2917AA45; Mon, 05 Jan 2015 11:12:18 +0000
X-Env-Sender: monsieur.goonie@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1420456333!17237504!1
X-Originating-IP: [209.85.218.44]
X-SpamReason: No, hits=2.3 required=7.0 tests=BIZ_TLD,HTML_60_70,
	HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27630 invoked from network); 5 Jan 2015 11:12:15 -0000
Received: from mail-oi0-f44.google.com (HELO mail-oi0-f44.google.com)
	(209.85.218.44)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Jan 2015 11:12:15 -0000
Received: by mail-oi0-f44.google.com with SMTP id a141so13673190oig.3
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 05 Jan 2015 03:12:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=uf8GAxgiTP+KYrZZ35zRSgLShwCE/idNgSj2T+YgPFM=;
	b=YhDL6Tf7PRsPQACORxtqx3FWBdi2hfFWAV/Zttyr+oOSOLFB5U3EES+LDRM1WRpikb
	lBGyUsG5PLsHbN3vjg99EQtNsvpmcZoPIwUA2WdyQYUm1ZquDh2eSySaX/QbL5HYY5lX
	yhh5F2IpioG0j8w5JVz62HlpJN20t9OCUEIMwT5l0t+Q+VP5vkwOhjuwE7NcVAKZUXuz
	rKTdcAUPRTgPrq+VW4IP4bOHLyEnL3jF3+7HgpH3kwhTHj1rDt6qdxQIYHSVQwD6YqoL
	DjGQLMrDOMVno7naeRepjmn8QPRjWxCnjLdiLuvuLz1qfs/mQt4iD9ROjTKU49iSwBou
	pjqw==
MIME-Version: 1.0
X-Received: by 10.202.49.131 with SMTP id x125mr49775194oix.17.1420456333539; 
	Mon, 05 Jan 2015 03:12:13 -0800 (PST)
Received: by 10.182.26.72 with HTTP; Mon, 5 Jan 2015 03:12:13 -0800 (PST)
Received: by 10.182.26.72 with HTTP; Mon, 5 Jan 2015 03:12:13 -0800 (PST)
In-Reply-To: <54AA549F.8050507@m2r.biz>
References: <CAE5x5YU4qBTxp+36FioAROdTOPgrU79MN3s+BkmPTWq+qsVt6w@mail.gmail.com>
	<54A53352.5090603@m2r.biz>
	<CAE5x5YVwj5zpUiS92V_8BuinUrtZZhpd8BMbH=Mo_gCmD29S2Q@mail.gmail.com>
	<54A5505C.1070602@m2r.biz>
	<CAE5x5YXdw2n-xxwpmbS_cgeTb+GSiBQ2QbUmxF7j-5gX8a24Jg@mail.gmail.com>
	<CABMPFzg4jYoMoUM2k5wys3y=iyW712RiLKSixDofXgsKe+PwJw@mail.gmail.com>
	<CAE5x5YXhCUvsfKdUN1nNQ_4hPXjBMoeSTMGYu5ysw4wki-n0PQ@mail.gmail.com>
	<CAE5x5YVhL+AmvS53KgNkz8MgDYbH5At_DDt4+tCPzqnht2V-KQ@mail.gmail.com>
	<54A97FA5.90208@m2r.biz>
	<CAE5x5YXmTZAO0c4n1qXxa2+1T2xT3QPHf3Be2CrK2dxtjmpihA@mail.gmail.com>
	<CAE5x5YUjXY9bqY6mOSU2b0RgLaLaM4K0MpS-KOWCB2E+_QLnXA@mail.gmail.com>
	<CAE5x5YXuAPCKM5aP=63ZiH-ffmfki1ioMNsYEV36+SBLz0_t_A@mail.gmail.com>
	<CAE5x5YUXObr6g2juExrb4zzLDg+S=v+Rw1ZDqCy7G6TfhpZTAQ@mail.gmail.com>
	<CAE5x5YV_VDjEK6rxFcZX09WGcLT-i4OrtU8gJa6ZfYTZdjvJ0w@mail.gmail.com>
	<CAE5x5YU9RJo0SFWOAV-hrxmA0FfKz+fXSHqu7mC04e2j6hbvWw@mail.gmail.com>
	<CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
	<54AA549F.8050507@m2r.biz>
Date: Mon, 5 Jan 2015 12:12:13 +0100
Message-ID: <CAE5x5YUBCsyE30zUQ6jE1e1N7FKcQM=+VztVy3JzEFpG9Fzkiw@mail.gmail.com>
From: Goonie Windy <monsieur.goonie@gmail.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"Paul.Durrant@citrix.com >> Paul Durrant" <paul.durrant@citrix.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] [Xen-devel] [DEBUGGING Xen/Qxl/Debian Sid] qemu
 crash on xenbus pv driver install
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6231233026205843170=="
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

--===============6231233026205843170==
Content-Type: multipart/alternative; boundary=001a113cd9f02e00ef050be5c3f7

--001a113cd9f02e00ef050be5c3f7
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Well r=C3=A9installed from scratch, added winpv and spice drivers the borde=
r you
gave me and Th=C3=A9r=C3=A8se is NO more bugs related to winpv .  will test=
 reboot
and spice/qxl functionnalities when possible. Regards.  Greg b
Le 5 janv. 2015 10:08, "Fabio Fantoni" <fabio.fantoni@m2r.biz> a =C3=A9crit=
 :

>  Il 05/01/2015 00:24, Goonie Windy ha scritto:
>
> AND DMESG
> [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8 ip
> 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in libc-2.19.so
> [7f92a64d4000+19f000]
> [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state
> [ 3096.118716] device vif5.0-emu left promiscuous mode
> [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state
> [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state
> [ 3584.894741] device vif5.0 left promiscuous mode
> [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state
> [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
> [ 3681.878054] device vif6.0 entered promiscuous mode
> [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
> [ 3682.193528] device vif6.0-emu entered promiscuous mode
> [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding state
> [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding state
> [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state
> [ 3780.535444] device vif6.0-emu left promiscuous mode
> [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state
> [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state
> [ 3899.555577] device vif6.0 left promiscuous mode
> [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state
>
>
> 2015-01-05 0:21 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>
>>   GNU nano 2.2.6                                          Fichier :
>> qemu-dm-win7.log
>>
>>
>> (/usr/local/sbin/xl:9535): Spice-Warning **:
>> reds.c:1863:reds_handle_ticket: Invalid password
>> main_channel_link: add main channel client
>> main_channel_handle_parsed: net test: latency 0.318000 ms, bitrate
>> 26597402597 bps (25365.259740 Mbps)
>> inputs_connect: inputs channel client create
>> red_dispatcher_set_cursor_peer:
>> main_channel_handle_parsed: agent start
>> main_channel_handle_parsed: agent start
>> *** Error in `/usr/lib/xen/bin/qemu-system-i386': double free or
>> corruption (out): 0x00007f0e38dd26f0 ***
>>
>>
>> 2015-01-05 0:00 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>
>>> Should add this too:
>>> host                   : E766
>>> release                : 3.16.0-4-amd64
>>> version                : #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08)
>>> machine                : x86_64
>>> nr_cpus                : 4
>>> max_cpu_id             : 7
>>> nr_nodes               : 1
>>> cores_per_socket       : 2
>>> threads_per_core       : 2
>>> cpu_mhz                : 2594
>>> hw_caps                :
>>> bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:00000281
>>> virt_caps              : hvm hvm_directio
>>> total_memory           : 8055
>>> free_memory            : 2309
>>> sharing_freed_memory   : 0
>>> sharing_used_memory    : 0
>>> outstanding_claims     : 0
>>> free_cpus              : 0
>>> xen_major              : 4
>>> xen_minor              : 5
>>> xen_extra              : .0-rc
>>> xen_version            : 4.5.0-rc
>>> xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
>>> hvm-3.0-x86_32p hvm-3.0-x86_64
>>> xen_scheduler          : credit
>>> xen_pagesize           : 4096
>>> platform_params        : virt_start=3D0xffff800000000000
>>> xen_changeset          : Thu Dec 18 10:02:16 2014 +0000 git:36174af-dir=
ty
>>> xen_commandline        : placeholder
>>> cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>>> cc_compile_by          : root
>>> cc_compile_domain      :
>>> cc_compile_date        : Wed Dec 31 01:20:47 CET 2014
>>> xend_config_format     : 4
>>>
>>>
>>>
>>> 2015-01-04 23:39 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>
>>>> My qemu log after spice failure:
>>>> (/usr/local/sbin/xl:4254): Spice-Warning **:
>>>> reds.c:1863:reds_handle_ticket: Invalid password
>>>> main_channel_link: add main channel client
>>>> main_channel_handle_parsed: net test: latency 0.257000 ms, bitrate
>>>> 81920000000 bps (78125.000000 Mbps)
>>>> red_dispatcher_set_cursor_peer:
>>>> inputs_connect: inputs channel client create
>>>> main_channel_handle_parsed: agent start
>>>> main_channel_handle_parsed: agent start
>>>> qemu-system-i386: malloc.c:2372: sysmalloc: Assertion `(old_top =3D=3D
>>>> (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offse=
tof
>>>> (struct malloc_chunk, fd)))) && old_size =3D=3D 0) || ((unsigned long)
>>>> (old_size) >=3D (unsigned long)((((__builtin_offsetof (struct malloc_c=
hunk,
>>>> fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) -=
 1)))
>>>> && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) =3D=
=3D 0)'
>>>> failed.
>>>>
>>>>
>>>> 2015-01-04 23:10 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>
>>>>>  This one is bug from trying to install winpv  bus driver
>>>>>
>>>>
> If you followed all my advices your configurations should be ok and you
> found a new bug or inexpected case.
> I do not have the knowledge to solve it.
> Added to cc also win-pv-devel
> Can someone take a look to this problem please?
>
>
>>>>>
>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>> _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>> bytes=3Dbytes@entry=3D73729)
>>>>>     at malloc.c:3775
>>>>> 3775    malloc.c: Aucun fichier ou dossier de ce type.
>>>>> (gdb) bt full
>>>>> #0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>     bytes=3Dbytes@entry=3D73729) at malloc.c:3775
>>>>>         p =3D 0x555557303880
>>>>>         iters =3D <optimized out>
>>>>>         nb =3D 73744
>>>>>         idx =3D <optimized out>
>>>>>         bin =3D <optimized out>
>>>>>         victim =3D 0x555557303870
>>>>>         size =3D <optimized out>
>>>>>         victim_index =3D <optimized out>
>>>>>         remainder =3D 0x555557315880
>>>>>         remainder_size =3D <optimized out>
>>>>>         block =3D 4
>>>>>         bit =3D <optimized out>
>>>>>         map =3D 66981887
>>>>>         fwd =3D <optimized out>
>>>>>         bck =3D <optimized out>
>>>>>         errstr =3D 0x0
>>>>>         __func__ =3D "_int_malloc"
>>>>> #1  0x00007ffff3eb74a1 in _int_realloc (
>>>>>     av=3Dav@entry=3D0x7ffff41df620 <main_arena>, oldp=3Doldp@entry=3D=
0x55555689d270,
>>>>>
>>>>>     oldsize=3Doldsize@entry=3D36880, nb=3Dnb@entry=3D73744) at malloc=
.c:4286
>>>>>         newp =3D <optimized out>
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         newsize =3D <optimized out>
>>>>>         newmem =3D <optimized out>
>>>>>         next =3D 0x5555568a6280
>>>>>         remainder =3D <optimized out>
>>>>>         remainder_size =3D <optimized out>
>>>>>         bck =3D <optimized out>
>>>>>         fwd =3D <optimized out>
>>>>>         copysize =3D <optimized out>
>>>>>         ncopies =3D <optimized out>
>>>>>         s =3D <optimized out>
>>>>>         d =3D <optimized out>
>>>>>         errstr =3D 0x0
>>>>>         __func__ =3D "_int_realloc"
>>>>>         nextsize =3D <optimized out>
>>>>> #2  0x00007ffff3eb85f9 in __GI___libc_realloc (oldmem=3D0x55555689d28=
0,
>>>>>     bytes=3D73728) at malloc.c:3029
>>>>>         ar_ptr =3D 0x7ffff41df620 <main_arena>
>>>>>         nb =3D 73744
>>>>>         newp =3D <optimized out>
>>>>>         hook =3D <optimized out>
>>>>>         oldp =3D 0x55555689d270
>>>>>         oldsize =3D 36880
>>>>>         __func__ =3D "__libc_realloc"
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>> #3  0x0000555555819563 in realloc_and_trace (mem=3D0x55555689d280,
>>>>> n_bytes=3D73728)
>>>>>     at vl.c:2857
>>>>>         ptr =3D 0x7fffffffcf30
>>>>> #4  0x00007ffff708388e in g_realloc (mem=3D<optimized out>,
>>>>> n_bytes=3D73728)
>>>>>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162
>>>>>         newmem =3D <optimized out>
>>>>> #5  0x000055555582d3e2 in phys_map_node_reserve (map=3D0x5555563ccf98=
,
>>>>> nodes=3D18)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/exec.c:152
>>>>> No locals.
>>>>> #6  0x000055555582d701 in phys_page_set (d=3D0x5555563ccf90, index=3D=
160,
>>>>> nb=3D16,
>>>>>     leaf=3D5) at /home/goon/xen/tools/qemu-xen-dir/exec.c:211
>>>>> No locals.
>>>>> #7  0x000055555582f1ae in register_multipage (d=3D0x5555563ccf90,
>>>>>     section=3D0x7fffffffcfe0) at
>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:937
>>>>>         start_addr =3D 655360
>>>>>         section_index =3D 5
>>>>>         num_pages =3D 16
>>>>>         __PRETTY_FUNCTION__ =3D "register_multipage"
>>>>> #8  0x000055555582f4b4 in mem_add (listener=3D0x55555633b898,
>>>>>     section=3D0x7fffffffd1a0) at
>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:968
>>>>>         as =3D 0x55555633b860
>>>>>         d =3D 0x5555563ccf90
>>>>>         now =3D {mr =3D 0x55555636dd30, address_space =3D 0x55555633b=
860,
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =3D =
0},
>>>>>           offset_within_address_space =3D 655360, readonly =3D false}
>>>>>         remain =3D {mr =3D 0x55555636dd30, address_space =3D 0x555556=
33b860,
>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =3D =
0},
>>>>>           offset_within_address_space =3D 655360, readonly =3D false}
>>>>>         page_size =3D {lo =3D 4096, hi =3D 0}
>>>>> #9  0x0000555555892a01 in address_space_update_topology_pass (
>>>>>     as=3D0x55555633b860, old_view=3D0x555556495910,
>>>>> new_view=3D0x55555687f2c0,
>>>>>     adding=3Dtrue) at /home/goon/xen/tools/qemu-xen-dir/memory.c:736
>>>>>         _listener =3D 0x55555633b898
>>>>>         iold =3D 1
>>>>>         inew =3D 1
>>>>>         frold =3D 0x5555565fd828
>>>>>         frnew =3D 0x5555568b23e8
>>>>> #10 0x0000555555892fd7 in address_space_update_topology
>>>>> (as=3D0x55555633b860)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:765
>>>>>         old_view =3D 0x555556495910
>>>>>         new_view =3D 0x55555687f2c0
>>>>> #11 0x00005555558930fc in memory_region_transaction_commit ()
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:800
>>>>>         as =3D 0x55555633b860
>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_transaction_commit"
>>>>> #12 0x00005555558951ed in memory_region_del_subregion
>>>>> (mr=3D0x5555562855d0,
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>     subregion=3D0x555556349250)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:1487
>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_del_subregion"
>>>>> #13 0x000055555570fdf3 in pci_update_mappings (d=3D0x5555563489f0)
>>>>>     at hw/pci/pci.c:1113
>>>>>         r =3D 0x555556348af8
>>>>>         i =3D 0
>>>>>         new_addr =3D 18446744073709551615
>>>>> #14 0x0000555555710110 in pci_default_write_config (d=3D0x5555563489f=
0,
>>>>> addr=3D4,
>>>>>     val=3D0, l=3D2) at hw/pci/pci.c:1168
>>>>>         i =3D 2
>>>>>         was_irq_disabled =3D 0
>>>>>         __PRETTY_FUNCTION__ =3D "pci_default_write_config"
>>>>> #15 0x0000555555714125 in pci_host_config_write_common (
>>>>>     pci_dev=3D0x5555563489f0, addr=3D4, limit=3D256, val=3D1024, len=
=3D2)
>>>>>     at hw/pci/pci_host.c:57
>>>>>         __PRETTY_FUNCTION__ =3D "pci_host_config_write_common"
>>>>> #16 0x0000555555714229 in pci_data_write (s=3D0x5555562a8cf0, addr=3D
>>>>> 2147487748,
>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:84
>>>>>         pci_dev =3D 0x5555563489f0
>>>>>         config_addr =3D 4
>>>>> #17 0x0000555555714351 in pci_host_data_write (opaque=3D0x55555631147=
0,
>>>>> addr=3D0,
>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:137
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         s =3D 0x555556311470
>>>>> #18 0x0000555555891531 in memory_region_write_accessor
>>>>> (mr=3D0x555556313860,
>>>>>     addr=3D0, value=3D0x7fffffffd5e8, size=3D2, shift=3D0, mask=3D655=
35)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:441
>>>>>         tmp =3D 1024
>>>>> #19 0x0000555555891636 in access_with_adjusted_size (addr=3D0,
>>>>>     value=3D0x7fffffffd5e8, size=3D2, access_size_min=3D1,
>>>>> access_size_max=3D4,
>>>>>     access=3D0x5555558914b0 <memory_region_write_accessor>,
>>>>> mr=3D0x555556313860)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:478
>>>>>         access_mask =3D 65535
>>>>>         access_size =3D 2
>>>>>         i =3D 0
>>>>> #20 0x0000555555893772 in memory_region_dispatch_write
>>>>> (mr=3D0x555556313860,
>>>>>     addr=3D0, data=3D1024, size=3D2)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:985
>>>>> No locals.
>>>>> #21 0x0000555555896068 in io_mem_write (mr=3D0x555556313860, addr=3D0=
,
>>>>> val=3D1024,
>>>>>     size=3D2) at /home/goon/xen/tools/qemu-xen-dir/memory.c:1744
>>>>> No locals.
>>>>> #22 0x000055555583183c in address_space_rw (
>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>     len=3D2, is_write=3Dtrue) at
>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:2029
>>>>>         l =3D 2
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         ptr =3D 0x7fffffffd6f4 "\377\377\377\377"
>>>>>         val =3D 1024
>>>>>         addr1 =3D 0
>>>>>         mr =3D 0x555556313860
>>>>>         error =3D false
>>>>> #23 0x0000555555831b12 in address_space_write (
>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>     len=3D2) at /home/goon/xen/tools/qemu-xen-dir/exec.c:2091
>>>>> No locals.
>>>>> #24 0x000055555588f486 in cpu_outw (addr=3D3324, val=3D1024)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/ioport.c:77
>>>>>         buf =3D "\000\004"
>>>>> #25 0x000055555590f460 in do_outp (addr=3D3324, size=3D2, val=3D1024)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668
>>>>> No locals.
>>>>> #26 0x000055555590f66f in cpu_ioreq_pio (req=3D0x7ffff7ff3000)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729
>>>>>         i =3D 0
>>>>> #27 0x000055555590f910 in handle_ioreq (req=3D0x7ffff7ff3000)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781
>>>>> No locals.
>>>>> #28 0x000055555590fc0f in cpu_handle_ioreq (opaque=3D0x5555562abf10)
>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         state =3D 0x5555562abf10
>>>>>         req =3D 0x7ffff7ff3000
>>>>> #29 0x000055555577c385 in qemu_iohandler_poll (pollfds=3D0x5555562776=
00,
>>>>> ret=3D1)
>>>>>     at iohandler.c:143
>>>>>         revents =3D 1
>>>>>         pioh =3D 0x55555627ca90
>>>>>         ioh =3D 0x555556366320
>>>>> #30 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>> main-loop.c:485
>>>>>         ret =3D 1
>>>>>         timeout =3D 4294967295
>>>>>         timeout_ns =3D 16717983
>>>>> #31 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>         nonblocking =3D false
>>>>>         last_io =3D 1
>>>>> #32 0x000055555581d66b in main (argc=3D64, argv=3D0x7fffffffdc78,
>>>>>     envp=3D0x7fffffffde80) at vl.c:4535
>>>>>         i =3D 64
>>>>>         snapshot =3D 0
>>>>>         linux_boot =3D 0
>>>>>         icount_option =3D 0x0
>>>>>         initrd_filename =3D 0x0
>>>>>         kernel_filename =3D 0x0
>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         boot_order =3D 0x555556275340 "dc"
>>>>>         ds =3D 0x5555563564e0
>>>>>         cyls =3D 0
>>>>>         heads =3D 0
>>>>>         secs =3D 0
>>>>>         translation =3D 0
>>>>>         hda_opts =3D 0x0
>>>>>         opts =3D 0x555556275290
>>>>>         machine_opts =3D 0x555556276ef0
>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>         optind =3D 64
>>>>>         optarg =3D 0x7fffffffe61a
>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=
=3Dwriteback"
>>>>>         loadvm =3D 0x0
>>>>>         machine_class =3D 0x55555626e030
>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>         cpu_model =3D 0x0
>>>>>         vga_model =3D 0x0
>>>>>         qtest_chrdev =3D 0x0
>>>>>         qtest_log =3D 0x0
>>>>>         pid_file =3D 0x0
>>>>>         incoming =3D 0x0
>>>>>         show_vnc_port =3D 0
>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>         defconfig =3D true
>>>>>         userconfig =3D true
>>>>>         log_mask =3D 0x0
>>>>>         log_file =3D 0x0
>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>         trace_events =3D 0x0
>>>>>         trace_file =3D 0x0
>>>>>         __func__ =3D "main"
>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275340 "dc"=
,
>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664 =
"",
>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>
>>>>>
>>>>> 2015-01-04 22:29 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>
>>>>>>   Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>> This is free software: you are free to change and redistribute it.
>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>> copying"
>>>>>> and "show warranty" for details.
>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>> Type "show configuration" for configuration details.
>>>>>> For bug reporting instructions, please see:
>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>> For help, type "help".
>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>> (gdb) target remote localhost:1234
>>>>>> Remote debugging using localhost:1234
>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>> done.
>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>> (gdb) c
>>>>>> Continuing.
>>>>>>
>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>> (gdb) bt full
>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>         sif =3D <optimized out>
>>>>>>         total =3D <optimized out>
>>>>>>         n =3D <optimized out>
>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>> No locals.
>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c:=
798
>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out>=
)
>>>>>>     at reds.c:3795
>>>>>>         st_item =3D 0x5555562d8350
>>>>>>         item =3D 0x5555562d8350
>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>> ui/spice-core.c:909
>>>>>> No locals.
>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadvm=
=3D0)
>>>>>>     at hw/display/qxl.c:1172
>>>>>>         startstop =3D true
>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>     at hw/display/qxl.c:1180
>>>>>>         d =3D 0x55555637d7e0
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>     at hw/core/qdev.c:934
>>>>>>         klass =3D 0x555556270410
>>>>>>         __func__ =3D "device_reset"
>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>> opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:240
>>>>>> No locals.
>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:411
>>>>>>         bus =3D 0x0
>>>>>>         err =3D 0
>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:369
>>>>>>         kid =3D 0x55555633d4f0
>>>>>>         err =3D 0
>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:403
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>         err =3D 0
>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:369
>>>>>>         kid =3D 0x5555562a6a80
>>>>>>         err =3D 0
>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>     at hw/core/qdev.c:261
>>>>>> No locals.
>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b0=
)
>>>>>>     at hw/core/qdev.c:267
>>>>>>         bus =3D 0x5555562a60b0
>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>         re =3D 0x555556375890
>>>>>>         nre =3D 0x0
>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at vl.c:=
1885
>>>>>>         mc =3D 0x55555626e030
>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>         state =3D 0x5555562b0950
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         req =3D 0x7ffff7ff3000
>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>     at iohandler.c:143
>>>>>>         revents =3D 1
>>>>>>         pioh =3D 0x5555563218c0
>>>>>>         ioh =3D 0x555556362a80
>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>> main-loop.c:485
>>>>>>         ret =3D 1
>>>>>>         timeout =3D 4294967295
>>>>>>         timeout_ns =3D 17355567
>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>         nonblocking =3D false
>>>>>>         last_io =3D 1
>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>         i =3D 64
>>>>>>         snapshot =3D 0
>>>>>>         linux_boot =3D 0
>>>>>>         icount_option =3D 0x0
>>>>>>         initrd_filename =3D 0x0
>>>>>>         kernel_filename =3D 0x0
>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         ds =3D 0x5555563324a0
>>>>>>         cyls =3D 0
>>>>>>         heads =3D 0
>>>>>>         secs =3D 0
>>>>>>         translation =3D 0
>>>>>>         hda_opts =3D 0x0
>>>>>>         opts =3D 0x5555562752d0
>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>         optind =3D 66
>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=
=3Dwriteback"
>>>>>>         loadvm =3D 0x0
>>>>>>         machine_class =3D 0x55555626e030
>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>         cpu_model =3D 0x0
>>>>>>         vga_model =3D 0x0
>>>>>>         qtest_chrdev =3D 0x0
>>>>>>         qtest_log =3D 0x0
>>>>>>         pid_file =3D 0x0
>>>>>>         incoming =3D 0x0
>>>>>>         show_vnc_port =3D 0
>>>>>>         defconfig =3D true
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         userconfig =3D true
>>>>>>         log_mask =3D 0x0
>>>>>>         log_file =3D 0x0
>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>         trace_events =3D 0x0
>>>>>>         trace_file =3D 0x0
>>>>>>         __func__ =3D "main"
>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "dc=
",
>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664=
 "",
>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>  (gdb) bt full ecc
>>>>>> No symbol "ecc" in current context.
>>>>>>
>>>>>> (gdb) bt full
>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>         sif =3D <optimized out>
>>>>>>         total =3D <optimized out>
>>>>>>         n =3D <optimized out>
>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>> No locals.
>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c:=
798
>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out>=
)
>>>>>>     at reds.c:3795
>>>>>>         st_item =3D 0x5555562d8350
>>>>>>         item =3D 0x5555562d8350
>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>> ui/spice-core.c:909
>>>>>> No locals.
>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadvm=
=3D0)
>>>>>>     at hw/display/qxl.c:1172
>>>>>>         startstop =3D true
>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>     at hw/display/qxl.c:1180
>>>>>>         d =3D 0x55555637d7e0
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>     at hw/core/qdev.c:934
>>>>>>         klass =3D 0x555556270410
>>>>>>         __func__ =3D "device_reset"
>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>> opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:240
>>>>>> No locals.
>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:411
>>>>>>         bus =3D 0x0
>>>>>>         err =3D 0
>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:369
>>>>>>         kid =3D 0x55555633d4f0
>>>>>>         err =3D 0
>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:403
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>         err =3D 0
>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>> <qdev_reset_one>,
>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>     at hw/core/qdev.c:369
>>>>>>         kid =3D 0x5555562a6a80
>>>>>>         err =3D 0
>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>     at hw/core/qdev.c:261
>>>>>> No locals.
>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b0=
)
>>>>>>     at hw/core/qdev.c:267
>>>>>>         bus =3D 0x5555562a60b0
>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>         re =3D 0x555556375890
>>>>>>         nre =3D 0x0
>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at vl.c:=
1885
>>>>>>         mc =3D 0x55555626e030
>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>         state =3D 0x5555562b0950
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         req =3D 0x7ffff7ff3000
>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>     at iohandler.c:143
>>>>>>         revents =3D 1
>>>>>>         pioh =3D 0x5555563218c0
>>>>>>         ioh =3D 0x555556362a80
>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>> main-loop.c:485
>>>>>>         ret =3D 1
>>>>>>         timeout =3D 4294967295
>>>>>>         timeout_ns =3D 17355567
>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>         nonblocking =3D false
>>>>>>         last_io =3D 1
>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>         i =3D 64
>>>>>>         snapshot =3D 0
>>>>>>         linux_boot =3D 0
>>>>>>         icount_option =3D 0x0
>>>>>>         initrd_filename =3D 0x0
>>>>>>         kernel_filename =3D 0x0
>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         ds =3D 0x5555563324a0
>>>>>>         cyls =3D 0
>>>>>>         heads =3D 0
>>>>>>         secs =3D 0
>>>>>>         translation =3D 0
>>>>>>         hda_opts =3D 0x0
>>>>>>         opts =3D 0x5555562752d0
>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>         optind =3D 66
>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=
=3Dwriteback"
>>>>>>         loadvm =3D 0x0
>>>>>>         machine_class =3D 0x55555626e030
>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>         cpu_model =3D 0x0
>>>>>>         vga_model =3D 0x0
>>>>>>         qtest_chrdev =3D 0x0
>>>>>>         qtest_log =3D 0x0
>>>>>>         pid_file =3D 0x0
>>>>>>         incoming =3D 0x0
>>>>>>         show_vnc_port =3D 0
>>>>>>         defconfig =3D true
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         userconfig =3D true
>>>>>>         log_mask =3D 0x0
>>>>>>         log_file =3D 0x0
>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>         trace_events =3D 0x0
>>>>>>         trace_file =3D 0x0
>>>>>>         __func__ =3D "main"
>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "dc=
",
>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664=
 "",
>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>
>>>>>>
>>>>>>   AND
>>>>>>
>>>>>>  attached files
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2015-01-04 22:24 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>>
>>>>>>> GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
>>>>>>> Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>> This is free software: you are free to change and redistribute it.
>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>> copying"
>>>>>>> and "show warranty" for details.
>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>> Type "show configuration" for configuration details.
>>>>>>> For bug reporting instructions, please see:
>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>> For help, type "help".
>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>> (gdb) target remote localhost:1234
>>>>>>> Remote debugging using localhost:1234
>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>> done.
>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>> (gdb) c
>>>>>>> Continuing.
>>>>>>>
>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>> (gdb) bt full
>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>         sif =3D <optimized out>
>>>>>>>         total =3D <optimized out>
>>>>>>>         n =3D <optimized out>
>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>> No locals.
>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c=
:798
>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out=
>)
>>>>>>>     at reds.c:3795
>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>         item =3D 0x5555562d8350
>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>> ui/spice-core.c:909
>>>>>>> No locals.
>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadv=
m=3D0)
>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>         startstop =3D true
>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>         d =3D 0x55555637d7e0
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>     at hw/core/qdev.c:934
>>>>>>>         klass =3D 0x555556270410
>>>>>>>         __func__ =3D "device_reset"
>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>> opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:240
>>>>>>> No locals.
>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:411
>>>>>>>         bus =3D 0x0
>>>>>>>         err =3D 0
>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>         err =3D 0
>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:403
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>         err =3D 0
>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>         err =3D 0
>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>     at hw/core/qdev.c:261
>>>>>>> No locals.
>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b=
0)
>>>>>>>     at hw/core/qdev.c:267
>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>         re =3D 0x555556375890
>>>>>>>         nre =3D 0x0
>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>> vl.c:1885
>>>>>>>         mc =3D 0x55555626e030
>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950=
)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>         state =3D 0x5555562b0950
>>>>>>> ---Type <return> to continue, or q
>>>>>>>
>>>>>> ...

--001a113cd9f02e00ef050be5c3f7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<p dir=3D"ltr">Well r=C3=A9installed from scratch, added winpv and spice dr=
ivers the border you gave me and Th=C3=A9r=C3=A8se is NO more bugs related =
to winpv .=C2=A0 will test reboot and spice/qxl functionnalities when possi=
ble. Regards.=C2=A0 Greg b</p>
<div class=3D"gmail_quote">Le 5 janv. 2015 10:08, &quot;Fabio Fantoni&quot;=
 &lt;<a href=3D"mailto:fabio.fantoni@m2r.biz">fabio.fantoni@m2r.biz</a>&gt;=
 a =C3=A9crit :<br type=3D"attribution"><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div>Il 05/01/2015 00:24, Goonie Windy ha
      scritto:<br>
    </div>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">AND DMESG<br>
        [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8
        ip 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in <a href=3D"http:=
//libc-2.19.so" target=3D"_blank">libc-2.19.so</a>[7f92a64d4000+19f000]<br>
        [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3096.118716] device vif5.0-emu left promiscuous mode<br>
        [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3584.894741] device vif5.0 left promiscuous mode<br>
        [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3681.878054] device vif6.0 entered promiscuous mode<br>
        [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3682.193528] device vif6.0-emu entered promiscuous mode<br>
        [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3780.535444] device vif6.0-emu left promiscuous mode<br>
        [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state<br>
        [ 3899.555577] device vif6.0 left promiscuous mode<br>
        [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state<br>
        <br>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">2015-01-05 0:21 GMT+01:00 Goonie Windy
          <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com=
" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div dir=3D"ltr">=C2=A0 GNU nano
              2.2.6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Fichier=C2=A0:
              qemu-dm-win7.log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
              <br>
              <br>
              (/usr/local/sbin/xl:9535): Spice-Warning **:
              reds.c:1863:reds_handle_ticket: Invalid password<br>
              main_channel_link: add main channel client<br>
              main_channel_handle_parsed: net test: latency 0.318000 ms,
              bitrate 26597402597 bps (25365.259740 Mbps)<br>
              inputs_connect: inputs channel client create<br>
              red_dispatcher_set_cursor_peer:<br>
              main_channel_handle_parsed: agent start<br>
              main_channel_handle_parsed: agent start<br>
              *** Error in `/usr/lib/xen/bin/qemu-system-i386&#39;: double
              free or corruption (out): 0x00007f0e38dd26f0 ***<br>
              <br>
            </div>
            <div class=3D"gmail_extra"><br>
              <div class=3D"gmail_quote">2015-01-05 0:00 GMT+01:00 Goonie
                Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goon=
ie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<b=
r>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div dir=3D"ltr">Should add this too:<br>
                    host=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : E766<br>
                    release=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 3.16.0-4-amd64<br>
                    version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : #1 SMP Debian 3.16.7-ckt2-1
                    (2014-12-08)<br>
                    machine=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : x86_64<br>
                    nr_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    max_cpu_id=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 7<br>
                    nr_nodes=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 1<br>
                    cores_per_socket=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    threads_per_core=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    cpu_mhz=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2594<br>
                    hw_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:0=
0000001:00000281<br>
                    virt_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : hvm hvm_directio<br>
                    total_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 8055<br>
                    free_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 2309<br>
                    sharing_freed_memory=C2=A0=C2=A0 : 0<br>
                    sharing_used_memory=C2=A0=C2=A0=C2=A0 : 0<br>
                    outstanding_claims=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    free_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    xen_major=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    xen_minor=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 5<br>
                    xen_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : .0-rc<br>
                    xen_version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 4.5.0-rc<br>
                    xen_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : xen-3.0-x86_64
                    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
                    hvm-3.0-x86_64 <br>
                    xen_scheduler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : credit<br>
                    xen_pagesize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 4096<br>
                    platform_params=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 :
                    virt_start=3D0xffff800000000000<br>
                    xen_changeset=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : Thu Dec 18 10:02:16 2014
                    +0000 git:36174af-dirty<br>
                    xen_commandline=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : placeholder<br>
                    cc_compiler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : gcc (Debian 4.9.2-10) 4.9.2<br>
                    cc_compile_by=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : root<br>
                    cc_compile_domain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : <br>
                    cc_compile_date=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : Wed Dec 31 01:20:47 CET
                    2014<br>
                    xend_config_format=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    <br>
                    <br>
                  </div>
                  <div class=3D"gmail_extra"><br>
                    <div class=3D"gmail_quote">2015-01-04 23:39 GMT+01:00
                      Goonie Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:=
monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&=
gt;</span>:<br>
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div dir=3D"ltr">My qemu log after spice failure:<b=
r>
                          (/usr/local/sbin/xl:4254): Spice-Warning **:
                          reds.c:1863:reds_handle_ticket: Invalid
                          password<br>
                          main_channel_link: add main channel client<br>
                          main_channel_handle_parsed: net test: latency
                          0.257000 ms, bitrate 81920000000 bps
                          (78125.000000 Mbps)<br>
                          red_dispatcher_set_cursor_peer: <br>
                          inputs_connect: inputs channel client create<br>
                          main_channel_handle_parsed: agent start<br>
                          main_channel_handle_parsed: agent start<br>
                          qemu-system-i386: malloc.c:2372: sysmalloc:
                          Assertion `(old_top =3D=3D (((mbinptr) (((char *)
                          &amp;((av)-&gt;bins[((1) - 1) * 2])) -
                          __builtin_offsetof (struct malloc_chunk,
                          fd)))) &amp;&amp; old_size =3D=3D 0) || ((unsigne=
d
                          long) (old_size) &gt;=3D (unsigned
                          long)((((__builtin_offsetof (struct
                          malloc_chunk, fd_nextsize))+((2
                          *(sizeof(size_t))) - 1)) &amp; ~((2
                          *(sizeof(size_t))) - 1))) &amp;&amp;
                          ((old_top)-&gt;size &amp; 0x1) &amp;&amp;
                          ((unsigned long) old_end &amp; pagemask) =3D=3D
                          0)&#39; failed.<br>
                          <br>
                        </div>
                        <div class=3D"gmail_extra"><br>
                          <div class=3D"gmail_quote">2015-01-04 23:10
                            GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.gooni=
e@gmail.com</a>&gt;</span>:<br>
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div>This one is bug from trying to
                                  install winpv=C2=A0 bus driver<br>
                                </div>
                              </div>
                            </blockquote>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
    If you followed all my advices your configurations should be ok and
    you found a new bug or inexpected case.<br>
    <span lang=3D"en"><span>I
        do not have</span> <span>the knowledge to</span> <span>solve it.</s=
pan></span><br>
    Added to cc also win-pv-devel<br>
    Can someone take a look to this problem please?<br>
    <br>
    <blockquote type=3D"cite">
      <div class=3D"gmail_extra">
        <div class=3D"gmail_quote">
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div class=3D"gmail_extra">
              <div class=3D"gmail_quote">
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div class=3D"gmail_extra">
                    <div class=3D"gmail_quote">
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div class=3D"gmail_extra">
                          <div class=3D"gmail_quote">
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div><br>
                                </div>
                                <div>
                                  <div><br>
                                    Program received signal SIGSEGV,
                                    Segmentation fault.<br>
                                    _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    bytes=3Dbytes@entry=3D73729)<br>
                                    =C2=A0=C2=A0=C2=A0 at malloc.c:3775<br>
                                    3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun =
fichier ou
                                    dossier de ce type.<br>
                                    (gdb) bt full<br>
                                    #0=C2=A0 _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=
=3D73729) at
                                    malloc.c:3775<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 p =3D 0x555557303880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iters =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 idx =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bin =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim =3D 0x555557303870<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 size =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim_index =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D 0x555557315880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 block =3D 4<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bit =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 map =3D 66981887<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_malloc&quot;<br>
                                    #1=C2=A0 0x00007ffff3eb74a1 in
                                    _int_realloc (<br>
                                    =C2=A0=C2=A0=C2=A0 av=3Dav@entry=3D0x7f=
fff41df620
                                    &lt;main_arena&gt;,
                                    oldp=3Doldp@entry=3D0x55555689d270, <br=
>
                                    =C2=A0=C2=A0=C2=A0 oldsize=3Doldsize@en=
try=3D36880,
                                    nb=3Dnb@entry=3D73744) at malloc.c:4286=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newsize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 next =3D 0x5555568a6280<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 copysize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ncopies =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_realloc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nextsize =3D &lt;optimized
                                    out&gt;<br>
                                    #2=C2=A0 0x00007ffff3eb85f9 in
                                    __GI___libc_realloc
                                    (oldmem=3D0x55555689d280, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3D73728) at ma=
lloc.c:3029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ar_ptr =3D 0x7ffff41df620
                                    &lt;main_arena&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hook =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldp =3D 0x55555689d270<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldsize =3D 36880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;__libc_realloc&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    #3=C2=A0 0x0000555555819563 in
                                    realloc_and_trace
                                    (mem=3D0x55555689d280, n_bytes=3D73728)=
<br>
                                    =C2=A0=C2=A0=C2=A0 at vl.c:2857<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffcf30<br>
                                    #4=C2=A0 0x00007ffff708388e in g_reallo=
c
                                    (mem=3D&lt;optimized out&gt;,
                                    n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /tmp/buildd/glib2.0-2.42.1/./glib/gmem.=
c:162<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    #5=C2=A0 0x000055555582d3e2 in
                                    phys_map_node_reserve
                                    (map=3D0x5555563ccf98, nodes=3D18)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:152<br>
                                    No locals.<br>
                                    #6=C2=A0 0x000055555582d701 in
                                    phys_page_set (d=3D0x5555563ccf90,
                                    index=3D160, nb=3D16, <br>
                                    =C2=A0=C2=A0=C2=A0 leaf=3D5) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:211<br>
                                    No locals.<br>
                                    #7=C2=A0 0x000055555582f1ae in
                                    register_multipage
                                    (d=3D0x5555563ccf90, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
cfe0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:937<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 start_addr =3D 655360<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 section_index =3D 5<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 num_pages =3D 16<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;register_multipage&quot;<br>
                                    #8=C2=A0 0x000055555582f4b4 in mem_add
                                    (listener=3D0x55555633b898, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
d1a0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:968<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D 0x5555563ccf90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 now =3D {mr =3D 0x55555636dd30,
                                    address_space =3D 0x55555633b860, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remain =3D {mr =3D
                                    0x55555636dd30, address_space =3D
                                    0x55555633b860, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 page_size =3D {lo =3D 4096, hi =3D
                                    0}<br>
                                    #9=C2=A0 0x0000555555892a01 in
                                    address_space_update_topology_pass (<br=
>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x55555633b860,
                                    old_view=3D0x555556495910,
                                    new_view=3D0x55555687f2c0, <br>
                                    =C2=A0=C2=A0=C2=A0 adding=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:736<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 _listener =3D 0x55555633b898<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iold =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 inew =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frold =3D 0x5555565fd828<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frnew =3D 0x5555568b23e8<br>
                                    #10 0x0000555555892fd7 in
                                    address_space_update_topology
                                    (as=3D0x55555633b860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:765<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 old_view =3D 0x555556495910<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_view =3D 0x55555687f2c0<br>
                                    #11 0x00005555558930fc in
                                    memory_region_transaction_commit ()<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:800<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_transaction_commit&=
quot;<br>
                                    #12 0x00005555558951ed in
                                    memory_region_del_subregion
                                    (mr=3D0x5555562855d0, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0 subregion=3D0x555556=
349250)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1487<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_del_subregion&quot;=
<br>
                                    #13 0x000055555570fdf3 in
                                    pci_update_mappings
                                    (d=3D0x5555563489f0)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci.c:1113=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 r =3D 0x555556348af8<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_addr =3D
                                    18446744073709551615<br>
                                    #14 0x0000555555710110 in
                                    pci_default_write_config
                                    (d=3D0x5555563489f0, addr=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D0, l=3D2) at h=
w/pci/pci.c:1168<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 was_irq_disabled =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_default_write_config&quot;<br=
>
                                    #15 0x0000555555714125 in
                                    pci_host_config_write_common (<br>
                                    =C2=A0=C2=A0=C2=A0 pci_dev=3D0x55555634=
89f0, addr=3D4,
                                    limit=3D256, val=3D1024, len=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci_host.c=
:57<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_host_config_write_common&quot=
;<br>
                                    #16 0x0000555555714229 in
                                    pci_data_write (s=3D0x5555562a8cf0,
                                    addr=3D<a href=3D"tel:2147487748" value=
=3D"+12147487748" target=3D"_blank">2147487748</a>, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:84<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pci_dev =3D 0x5555563489f0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 config_addr =3D 4<br>
                                    #17 0x0000555555714351 in
                                    pci_host_data_write
                                    (opaque=3D0x555556311470, addr=3D0, <br=
>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:137<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D 0x555556311470<br>
                                    #18 0x0000555555891531 in
                                    memory_region_write_accessor
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, value=3D0x=
7fffffffd5e8,
                                    size=3D2, shift=3D0, mask=3D65535)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:441<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 tmp =3D 1024<br>
                                    #19 0x0000555555891636 in
                                    access_with_adjusted_size (addr=3D0, <b=
r>
                                    =C2=A0=C2=A0=C2=A0 value=3D0x7fffffffd5=
e8, size=3D2,
                                    access_size_min=3D1,
                                    access_size_max=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 access=3D0x555555891=
4b0
                                    &lt;memory_region_write_accessor&gt;,
                                    mr=3D0x555556313860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:478<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_mask =3D 65535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_size =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #20 0x0000555555893772 in
                                    memory_region_dispatch_write
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, data=3D102=
4, size=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:985<br>
                                    No locals.<br>
                                    #21 0x0000555555896068 in
                                    io_mem_write (mr=3D0x555556313860,
                                    addr=3D0, val=3D1024, <br>
                                    =C2=A0=C2=A0=C2=A0 size=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1744<br>
                                    No locals.<br>
                                    #22 0x000055555583183c in
                                    address_space_rw (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2, is_write=3D=
true) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 l =3D 2<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffd6f4
                                    &quot;\377\377\377\377&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 val =3D 1024<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 addr1 =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mr =3D 0x555556313860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 error =3D false<br>
                                    #23 0x0000555555831b12 in
                                    address_space_write (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2091<br>
                                    No locals.<br>
                                    #24 0x000055555588f486 in cpu_outw
                                    (addr=3D3324, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/iopor=
t.c:77<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 buf =3D &quot;\000\004&quot;<br>
                                    #25 0x000055555590f460 in do_outp
                                    (addr=3D3324, size=3D2, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:668<br>
                                    No locals.<br>
                                    #26 0x000055555590f66f in
                                    cpu_ioreq_pio (req=3D0x7ffff7ff3000)<br=
>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:729<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #27 0x000055555590f910 in
                                    handle_ioreq (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:781<br>
                                    No locals.<br>
                                    #28 0x000055555590fc0f in
                                    cpu_handle_ioreq
                                    (opaque=3D0x5555562abf10)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:856<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 state =3D 0x5555562abf10<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 req =3D 0x7ffff7ff3000<br>
                                    #29 0x000055555577c385 in
                                    qemu_iohandler_poll
                                    (pollfds=3D0x555556277600, ret=3D1)<br>
                                    =C2=A0=C2=A0=C2=A0 at iohandler.c:143<b=
r>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 revents =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pioh =3D 0x55555627ca90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ioh =3D 0x555556366320<br>
                                    #30 0x000055555577d14b in
                                    main_loop_wait (nonblocking=3D0) at
                                    main-loop.c:485<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ret =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout =3D 4294967295<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout_ns =3D 16717983<br>
                                    #31 0x0000555555815fbd in main_loop
                                    () at vl.c:2056<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nonblocking =3D false<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 last_io =3D 1<br>
                                    #32 0x000055555581d66b in main
                                    (argc=3D64, argv=3D0x7fffffffdc78, <br>
                                    =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde8=
0) at
                                    vl.c:4535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 snapshot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 linux_boot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 icount_option =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 initrd_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D
                                    0x55555598c664 &quot;&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 boot_order =3D 0x555556275340
                                    &quot;dc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ds =3D 0x5555563564e0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cyls =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 heads =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 secs =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 translation =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hda_opts =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 opts =3D 0x555556275290<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_opts =3D
                                    0x555556276ef0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 olist =3D 0x555555d72700
                                    &lt;qemu_machine_opts&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optind =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optarg =3D 0x7fffffffe61a
                                    &quot;file=3D/dev/sda3,if=3Dide,index=
=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 loadvm =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_class =3D
                                    0x55555626e030<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine =3D 0x555555d78540
                                    &lt;xenfv_machine&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cpu_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 vga_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_chrdev =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_log =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pid_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 incoming =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 show_vnc_port =3D 0<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 defconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 userconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_mask =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mem_trace =3D {malloc =3D
                                    0x55555581950b
                                    &lt;malloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 realloc =3D 0x555555819540
                                    &lt;realloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 free =3D 0x555555819584
                                    &lt;free_and_trace&gt;, calloc =3D
                                    0x0, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 try_malloc =3D 0x0,
                                    try_realloc =3D 0x0}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_events =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;main&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 args =3D {machine =3D
                                    0x555555d78540
                                    &lt;xenfv_machine&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=3D"+120132659=
20" target=3D"_blank">2013265920</a>,
                                    boot_order =3D 0x555556275340 &quot;dc&=
quot;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D 0x0,
                                    kernel_cmdline =3D 0x55555598c664 &quot=
;&quot;,
                                    <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D 0x0,
                                    cpu_model =3D 0x0}<br>
                                    <br>
                                  </div>
                                </div>
                              </div>
                              <div class=3D"gmail_extra"><br>
                                <div class=3D"gmail_quote">2015-01-04
                                  22:29 GMT+01:00 Goonie Windy <span dir=3D=
"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">mo=
nsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                  <blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                    <div dir=3D"ltr">
                                      <div>
                                        <div>
                                          <div>
                                            <div>Copyright (C) 2014 Free
                                              Software Foundation, Inc.<br>
                                              License GPLv3+: GNU GPL
                                              version 3 or later &lt;<a hre=
f=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/lic=
enses/gpl.html</a>&gt;<br>
                                              This is free software: you
                                              are free to change and
                                              redistribute it.<br>
                                              There is NO WARRANTY, to
                                              the extent permitted by
                                              law.=C2=A0 Type &quot;show co=
pying&quot;<br>
                                              and &quot;show warranty&quot;=
 for
                                              details.<br>
                                              This GDB was configured as
                                              &quot;x86_64-linux-gnu&quot;.=
<br>
                                              Type &quot;show configuration=
&quot;
                                              for configuration details.<br=
>
                                              For bug reporting
                                              instructions, please see:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gdb/=
bugs/</a>&gt;.<br>
                                              Find the GDB manual and
                                              other documentation
                                              resources online at:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/soft=
ware/gdb/documentation/</a>&gt;.<br>
                                              For help, type &quot;help&quo=
t;.<br>
                                              Type &quot;apropos word&quot;=
 to
                                              search for commands
                                              related to &quot;word&quot;..=
.<br>
                                              Reading symbols from
                                              /usr/lib/xen/bin/qemu-system-=
i386...done.<br>
                                              (gdb) target remote
                                              localhost:1234<br>
                                              Remote debugging using
                                              localhost:1234<br>
                                              Reading symbols from
                                              /lib64/ld-linux-x86-64.so.2..=
.Reading
                                              symbols from
                                              /usr/lib/debug//lib/x86_64-li=
nux-gnu/ld-2.19.so...done.<br>
                                              done.<br>
                                              Loaded symbols for
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              0x00007ffff7ddd190 in
                                              _start () from
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              (gdb) c<br>
                                              Continuing.<br>
                                              <br>
                                              Program received signal
                                              SIGSEGV, Segmentation
                                              fault.<br>
                                              0x00007ffff50e5801 in
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              443=C2=A0=C2=A0=C2=A0 char_de=
vice.c:
                                              Aucun fichier ou dossier
                                              de ce type.<br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                            </div>
                                          </div>
                                          (gdb) bt full ecc<br>
                                          No symbol &quot;ecc&quot; in curr=
ent
                                          context.
                                          <div>
                                            <div><br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                              <br>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                        AND <br>
                                        <br>
                                      </div>
                                      attached files<br>
                                      <br>
                                      <br>
                                      <div><br>
                                        <div><br>
                                          <br>
                                          <br>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                    <div>
                                      <div>
                                        <div class=3D"gmail_extra"><br>
                                          <div class=3D"gmail_quote">2015-0=
1-04
                                            22:24 GMT+01:00 Goonie Windy
                                            <span dir=3D"ltr">&lt;<a href=
=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gma=
il.com</a>&gt;</span>:<br>
                                            <blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                              <div dir=3D"ltr">GNU gdb
                                                (Debian 7.7.1+dfsg-5)
                                                7.7.1<br>
                                                Copyright (C) 2014 Free
                                                Software Foundation,
                                                Inc.<br>
                                                License GPLv3+: GNU GPL
                                                version 3 or later &lt;<a h=
ref=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/l=
icenses/gpl.html</a>&gt;<br>
                                                This is free software:
                                                you are free to change
                                                and redistribute it.<br>
                                                There is NO WARRANTY, to
                                                the extent permitted by
                                                law.=C2=A0 Type &quot;show
                                                copying&quot;<br>
                                                and &quot;show warranty&quo=
t; for
                                                details.<br>
                                                This GDB was configured
                                                as &quot;x86_64-linux-gnu&q=
uot;.<br>
                                                Type &quot;show
                                                configuration&quot; for
                                                configuration details.<br>
                                                For bug reporting
                                                instructions, please
                                                see:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gd=
b/bugs/</a>&gt;.<br>
                                                Find the GDB manual and
                                                other documentation
                                                resources online at:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/so=
ftware/gdb/documentation/</a>&gt;.<br>
                                                For help, type &quot;help&q=
uot;.<br>
                                                Type &quot;apropos word&quo=
t; to
                                                search for commands
                                                related to &quot;word&quot;=
...<br>
                                                Reading symbols from
                                                /usr/lib/xen/bin/qemu-syste=
m-i386...done.<br>
                                                (gdb) target remote
                                                localhost:1234<span><br>
                                                  Remote debugging using
                                                  localhost:1234<br>
                                                </span><span>Reading
                                                  symbols from
                                                  /lib64/ld-linux-x86-64.so=
.2...Reading
                                                  symbols from
                                                  /usr/lib/debug//lib/x86_6=
4-linux-gnu/ld-2.19.so...done.<br>
                                                  done.<br>
                                                  Loaded symbols for
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  0x00007ffff7ddd190 in
                                                  _start () from
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  (gdb) c<br>
                                                  Continuing.<br>
                                                  <br>
                                                </span>Program received
                                                signal SIGSEGV,
                                                Segmentation fault.<br>
                                                0x00007ffff50e5801 in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                443=C2=A0=C2=A0=C2=A0 char_=
device.c:
                                                Aucun fichier ou dossier
                                                de ce type.<br>
                                                (gdb) bt full<br>
                                                #0=C2=A0 0x00007ffff50e5801
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D
                                                &lt;optimized out&gt;<br>
                                                #1=C2=A0 0x00007ffff50e6497
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0 dev=3D0x=
55555647c750)
                                                at char_device.c:436<br>
                                                No locals.<br>
                                                #2=C2=A0
                                                spice_char_device_start
                                                (dev=3D0x55555647c750) at
                                                char_device.c:798<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_char_device_sta=
rt&quot;<br>
                                                #3=C2=A0 0x00007ffff51299c6
                                                in spice_server_vm_start
                                                (s=3D&lt;optimized
                                                out&gt;)<br>
                                                =C2=A0=C2=A0=C2=A0 at reds.=
c:3795<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_server_vm_start=
&quot;<br>
                                                #4=C2=A0 0x00005555557f40c9
                                                in
                                                qemu_spice_display_start
                                                () at
                                                ui/spice-core.c:909<br>
                                                No locals.<br>
                                                #5=C2=A0 0x00005555556c4365
                                                in qxl_hard_reset
                                                (d=3D0x55555637d7e0,
                                                loadvm=3D0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1172<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                                #6=C2=A0 0x00005555556c43a3
                                                in qxl_reset_handler
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1180<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D
                                                0x55555637d7e0<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                #7=C2=A0 0x0000555555699658
                                                in device_reset
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:934<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                                0x555556270410<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;device_reset&quot;<br=
>
                                                #8=C2=A0 0x0000555555697a56
                                                in qdev_reset_one
                                                (dev=3D0x55555637d7e0,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:240<br>
                                                No locals.<br>
                                                #9=C2=A0 0x0000555555697f64
                                                in qdev_walk_children
                                                (dev=3D0x55555637d7e0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:411<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #10 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a8ee0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x55555633d4f0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #11 0x0000555555697f28
                                                in qdev_walk_children
                                                (dev=3D0x5555563131b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:403<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a8ee0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #12 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a60b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x5555562a6a80<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #13 0x0000555555697b32
                                                in qbus_reset_all
                                                (bus=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:261<br>
                                                No locals.<br>
                                                #14 0x0000555555697b54
                                                in qbus_reset_all_fn
                                                (opaque=3D0x5555562a60b0)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:267<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a60b0<br>
                                                #15 0x0000555555815b1f
                                                in qemu_devices_reset ()
                                                at vl.c:1872<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                                0x555556375890<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                                #16 0x0000555555815bbf
                                                in qemu_system_reset
                                                (report=3Dtrue) at
                                                vl.c:1885<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;qemu_system_reset&quo=
t;<br>
                                                #17 0x000055555590fcb9
                                                in cpu_handle_ioreq
                                                (opaque=3D0x5555562b0950)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                /home/goon/xen/tools/qemu-x=
en-dir/xen-hvm.c:881<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                                0x5555562b0950<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
       </div></blockquote></div></div></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div>...</blockquote></div>

--001a113cd9f02e00ef050be5c3f7--


--===============6231233026205843170==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--===============6231233026205843170==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jan 05 13:39:17 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 05 Jan 2015 13:39:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y87sL-0000BZ-Ku; Mon, 05 Jan 2015 13:39:17 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <monsieur.goonie@gmail.com>) id 1Y87sJ-0000BH-FJ
	for win-pv-devel@lists.xenproject.org; Mon, 05 Jan 2015 13:39:16 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
	46/46-27785-2049AA45; Mon, 05 Jan 2015 13:39:14 +0000
X-Env-Sender: monsieur.goonie@gmail.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1420465149!13919940!1
X-Originating-IP: [209.85.218.42]
X-SpamReason: No, hits=2.3 required=7.0 tests=BIZ_TLD,HTML_60_70,
	HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22081 invoked from network); 5 Jan 2015 13:39:10 -0000
Received: from mail-oi0-f42.google.com (HELO mail-oi0-f42.google.com)
	(209.85.218.42)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Jan 2015 13:39:10 -0000
Received: by mail-oi0-f42.google.com with SMTP id v63so47693307oia.1
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 05 Jan 2015 05:39:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=CwcuIt6iC6LWvF00iVxPb2yJZ532xQZEz06gopZnUUE=;
	b=v9iapD0/QktOyYIdP3MAKznLkq1xvHRPdTf//Xv8BHRdR72zHhhqzr3yjR/4DPY0j+
	u544uuRTOUhXk7rgOQSt6ZeyatSE0chhsXh9vB1JWv6A2jlCETxft3d8yRJGyeM6fmeM
	M3erpgT0ptVYhhMPvRzXAKgfY0Dzemn/eEs1ZXbSyZApOQY/QocT3GVCEzHkCVa6K2D4
	g/CsZaCwxRkaGX/Q8Rnw+XN3mNhNitQPVxrD8jMnsXIjv+FkSaub7+awDzG1KE74ENpv
	zIWsBSkRn9oqNhtmFFvX5sx7y2Qg17Mo9Wfl8YE+i75rM+y2M0XeVCvkX+UZt0NX0i8o
	jR0A==
MIME-Version: 1.0
X-Received: by 10.182.50.225 with SMTP id f1mr53011029obo.45.1420465148935;
	Mon, 05 Jan 2015 05:39:08 -0800 (PST)
Received: by 10.182.26.72 with HTTP; Mon, 5 Jan 2015 05:39:08 -0800 (PST)
In-Reply-To: <CAE5x5YUBCsyE30zUQ6jE1e1N7FKcQM=+VztVy3JzEFpG9Fzkiw@mail.gmail.com>
References: <CAE5x5YU4qBTxp+36FioAROdTOPgrU79MN3s+BkmPTWq+qsVt6w@mail.gmail.com>
	<54A53352.5090603@m2r.biz>
	<CAE5x5YVwj5zpUiS92V_8BuinUrtZZhpd8BMbH=Mo_gCmD29S2Q@mail.gmail.com>
	<54A5505C.1070602@m2r.biz>
	<CAE5x5YXdw2n-xxwpmbS_cgeTb+GSiBQ2QbUmxF7j-5gX8a24Jg@mail.gmail.com>
	<CABMPFzg4jYoMoUM2k5wys3y=iyW712RiLKSixDofXgsKe+PwJw@mail.gmail.com>
	<CAE5x5YXhCUvsfKdUN1nNQ_4hPXjBMoeSTMGYu5ysw4wki-n0PQ@mail.gmail.com>
	<CAE5x5YVhL+AmvS53KgNkz8MgDYbH5At_DDt4+tCPzqnht2V-KQ@mail.gmail.com>
	<54A97FA5.90208@m2r.biz>
	<CAE5x5YXmTZAO0c4n1qXxa2+1T2xT3QPHf3Be2CrK2dxtjmpihA@mail.gmail.com>
	<CAE5x5YUjXY9bqY6mOSU2b0RgLaLaM4K0MpS-KOWCB2E+_QLnXA@mail.gmail.com>
	<CAE5x5YXuAPCKM5aP=63ZiH-ffmfki1ioMNsYEV36+SBLz0_t_A@mail.gmail.com>
	<CAE5x5YUXObr6g2juExrb4zzLDg+S=v+Rw1ZDqCy7G6TfhpZTAQ@mail.gmail.com>
	<CAE5x5YV_VDjEK6rxFcZX09WGcLT-i4OrtU8gJa6ZfYTZdjvJ0w@mail.gmail.com>
	<CAE5x5YU9RJo0SFWOAV-hrxmA0FfKz+fXSHqu7mC04e2j6hbvWw@mail.gmail.com>
	<CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
	<54AA549F.8050507@m2r.biz>
	<CAE5x5YUBCsyE30zUQ6jE1e1N7FKcQM=+VztVy3JzEFpG9Fzkiw@mail.gmail.com>
Date: Mon, 5 Jan 2015 14:39:08 +0100
Message-ID: <CAE5x5YVmgs1_XFiX=vXvqqBSxA3v8O_Y9cGO96CsGxXHAFwyGw@mail.gmail.com>
From: Goonie Windy <monsieur.goonie@gmail.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"Paul.Durrant@citrix.com >> Paul Durrant" <paul.durrant@citrix.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] [Xen-devel] [DEBUGGING Xen/Qxl/Debian Sid] qemu
 crash on xenbus pv driver install
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1329218083391350911=="
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

--===============1329218083391350911==
Content-Type: multipart/alternative; boundary=089e0160b5949e4461050be7d03a

--089e0160b5949e4461050be7d03a
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi again and sorry for monopolizing, so I tested a bit QXL/spice in my win
7 x64 domU on Xenserver 4.5 RC4 with Fantu patch.

I get errors when trying to move remote-viewer window: I get a connection
refused.

System is using deb8 unstables (sid) with only Xen compiled from sources.

Xen BT full is below, machine details, you should have them now.

Should I try to compile spice on my machine or something?


regards,

GregB:

(gdb) target remote localhost:1234
Remote debugging using localhost:1234
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from
/usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
(gdb) c
Continuing.

Program received signal SIGABRT, Aborted.
0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56    ../nptl/sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de
ce type.
(gdb) bt full
#0  0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
        resultvar =3D 0
        pid =3D 10818
        selftid =3D 10818
#1  0x00007ffff3e724e8 in __GI_abort () at abort.c:89
        save_stage =3D 2
        act =3D {__sigaction_handler =3D {sa_handler =3D 0xb8000000,
            sa_sigaction =3D 0xb8000000}, sa_mask =3D {__val =3D
{13258597306065747968,
              13258597306065747968, 3087007744, 3087007744, 0, 0,
              13258597302978740224, 13258597302978740224,
13258597302978740224, 0, 0,
              0, 0, 0, 0, 0}}, sa_flags =3D 0, sa_restorer =3D
0xb800000000000000}
        sigs =3D {__val =3D {32, 0 <repeats 15 times>}}
#2  0x00007ffff3eaf044 in __libc_message (do_abort=3Ddo_abort@entry=3D1,
    fmt=3Dfmt@entry=3D0x7ffff3fa1c60 "*** Error in `%s': %s: 0x%s ***\n")
    at ../sysdeps/posix/libc_fatal.c:175
        ap =3D {{gp_offset =3D 40, fp_offset =3D 0, overflow_arg_area =3D
0x7fffffffd300,
            reg_save_area =3D 0x7fffffffd290}}
        fd =3D 2
        on_2 =3D <optimized out>
        list =3D <optimized out>
        nlist =3D <optimized out>
        cp =3D <optimized out>
        written =3D <optimized out>
#3  0x00007ffff3eb481e in malloc_printerr (action=3D1,
    str=3D0x7ffff3fa1db0 "double free or corruption (out)", ptr=3D<optimize=
d
out>)
    at malloc.c:4996
        buf =3D "0000555556bb85e0"
        cp =3D <optimized out>
#4  0x00007ffff3eb5526 in _int_free (av=3D<optimized out>, p=3D<optimized o=
ut>,
    have_lock=3D0) at malloc.c:3840
        size =3D <optimized out>
        fb =3D <optimized out>
        nextchunk =3D <optimized out>
        nextsize =3D <optimized out>
        nextinuse =3D <optimized out>
        prevsize =3D <optimized out>
        bck =3D <optimized out>
        fwd =3D <optimized out>
        errstr =3D <optimized out>
        locked =3D <optimized out>
        __func__ =3D "_int_free"
#5  0x00007ffff4c7c7e5 in ?? () from
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#6  0x00007ffff4c7c759 in pixman_image_unref ()
   from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
No symbol table info available.
#7  0x00005555557ee88e in qemu_pixman_image_unref (image=3D0x555556335f00)
    at ui/qemu-pixman.c:80
No locals.
#8  0x000055555580c21f in vnc_dpy_switch (dcl=3D0x7fffe849e048,
surface=3D0x555556627c90)
    at ui/vnc.c:588
        vd =3D 0x7fffe849e010
        vs =3D 0xff0000ff00
#9  0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x555556312e90,
    surface=3D0x555556627c90) at ui/console.c:1404
        s =3D 0x55555633d710
        old_surface =3D 0x555556336160
        dcl =3D 0x7fffe849e048
#10 0x00005555556bfa0c in qxl_render_update_area_unlocked
(qxl=3D0x555556387f50)
    at hw/display/qxl-render.c:131
        vga =3D 0x555556388a40
        surface =3D 0x555556627c90
        i =3D 21845
#11 0x00005555556bfc84 in qxl_render_update_area_bh (opaque=3D0x555556387f5=
0)
    at hw/display/qxl-render.c:183
        qxl =3D 0x555556387f50
#12 0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556277840) at async.c:81
        bh =3D 0x555556313d40
        bhp =3D 0x7fffffffd570
        next =3D 0x555556313d10
        ret =3D 1
#13 0x00005555555e3a1a in aio_poll (ctx=3D0x555556277840, blocking=3Dfalse)
    at aio-posix.c:188
        node =3D 0x7ffff41f3a89 <write+57>
        ret =3D 0
        progress =3D false
#14 0x00005555555e4088 in aio_ctx_dispatch (source=3D0x555556277840,
callback=3D0x0,
    user_data=3D0x0) at async.c:211
        ctx =3D 0x555556277840
        __PRETTY_FUNCTION__ =3D "aio_ctx_dispatch"
#15 0x00007ffff707dc5d in g_main_dispatch (context=3D0x555556278b50)
    at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3111
        dispatch =3D 0x5555555e4035 <aio_ctx_dispatch>
        prev_source =3D 0x0
        was_in_call =3D 0
---Type <return> to continue, or q <return> to quit---
        user_data =3D 0x0
        callback =3D 0x0
        cb_funcs =3D <optimized out>
        cb_data =3D <optimized out>
        need_destroy =3D <optimized out>
        source =3D 0x555556277840
        current =3D 0x55555626ec40
        i =3D 0
#16 g_main_context_dispatch (context=3D0x555556278b50)
    at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3710
No locals.
#17 0x000055555577cf98 in glib_pollfds_poll () at main-loop.c:190
        context =3D 0x555556278b50
        pfds =3D 0x555556628928
#18 0x000055555577d075 in os_host_main_loop_wait (timeout=3D0) at
main-loop.c:235
        ret =3D 2
        spin_counter =3D 2
#19 0x000055555577d134 in main_loop_wait (nonblocking=3D0) at main-loop.c:4=
84
        ret =3D 21845
        timeout =3D 4294967295
        timeout_ns =3D 2937562
#20 0x0000555555815fbd in main_loop () at vl.c:2056
        nonblocking =3D false
        last_io =3D 0
#21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdb48,
envp=3D0x7fffffffdd60)
    at vl.c:4535
        i =3D 64
        snapshot =3D 0
        linux_boot =3D 0
        icount_option =3D 0x0
        initrd_filename =3D 0x0
        kernel_filename =3D 0x0
        kernel_cmdline =3D 0x55555598c664 ""
        boot_order =3D 0x555556275340 "dc"
        ds =3D 0x55555633d710
        cyls =3D 0
        heads =3D 0
        secs =3D 0
        translation =3D 0
        hda_opts =3D 0x0
        opts =3D 0x555556275290
        machine_opts =3D 0x555556276ef0
        olist =3D 0x555555d72700 <qemu_machine_opts>
---Type <return> to continue, or q <return> to quit---
        optind =3D 66
        optarg =3D 0x7fffffffe55e
"file=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,ind=
ex=3D2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632"
        loadvm =3D 0x0
        machine_class =3D 0x55555626e030
        machine =3D 0x555555d78540 <xenfv_machine>
        cpu_model =3D 0x0
        vga_model =3D 0x0
        qtest_chrdev =3D 0x0
        qtest_log =3D 0x0
        pid_file =3D 0x0
        incoming =3D 0x0
        show_vnc_port =3D 0
        defconfig =3D true
        userconfig =3D true
        log_mask =3D 0x0
        log_file =3D 0x0
        mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
          realloc =3D 0x555555819540 <realloc_and_trace>,
          free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0, try_mal=
loc
=3D 0x0,
          try_realloc =3D 0x0}
        trace_events =3D 0x0
        trace_file =3D 0x0
        __func__ =3D "main"
        args =3D {machine =3D 0x555555d78540 <xenfv_machine>, ram_size =3D
2013265920,
          boot_order =3D 0x555556275340 "dc", kernel_filename =3D 0x0,
          kernel_cmdline =3D 0x55555598c664 "", initrd_filename =3D 0x0,
cpu_model =3D 0x0}


2015-01-05 12:12 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:

> Well r=C3=A9installed from scratch, added winpv and spice drivers the bor=
der
> you gave me and Th=C3=A9r=C3=A8se is NO more bugs related to winpv .  wil=
l test
> reboot and spice/qxl functionnalities when possible. Regards.  Greg b
> Le 5 janv. 2015 10:08, "Fabio Fantoni" <fabio.fantoni@m2r.biz> a =C3=A9cr=
it :
>
>>  Il 05/01/2015 00:24, Goonie Windy ha scritto:
>>
>> AND DMESG
>> [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8 ip
>> 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in libc-2.19.so
>> [7f92a64d4000+19f000]
>> [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state
>> [ 3096.118716] device vif5.0-emu left promiscuous mode
>> [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state
>> [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state
>> [ 3584.894741] device vif5.0 left promiscuous mode
>> [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state
>> [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
>> [ 3681.878054] device vif6.0 entered promiscuous mode
>> [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
>> [ 3682.193528] device vif6.0-emu entered promiscuous mode
>> [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding state
>> [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding state
>> [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state
>> [ 3780.535444] device vif6.0-emu left promiscuous mode
>> [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state
>> [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state
>> [ 3899.555577] device vif6.0 left promiscuous mode
>> [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state
>>
>>
>> 2015-01-05 0:21 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>
>>>   GNU nano 2.2.6                                          Fichier :
>>> qemu-dm-win7.log
>>>
>>>
>>> (/usr/local/sbin/xl:9535): Spice-Warning **:
>>> reds.c:1863:reds_handle_ticket: Invalid password
>>> main_channel_link: add main channel client
>>> main_channel_handle_parsed: net test: latency 0.318000 ms, bitrate
>>> 26597402597 bps (25365.259740 Mbps)
>>> inputs_connect: inputs channel client create
>>> red_dispatcher_set_cursor_peer:
>>> main_channel_handle_parsed: agent start
>>> main_channel_handle_parsed: agent start
>>> *** Error in `/usr/lib/xen/bin/qemu-system-i386': double free or
>>> corruption (out): 0x00007f0e38dd26f0 ***
>>>
>>>
>>> 2015-01-05 0:00 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>
>>>> Should add this too:
>>>> host                   : E766
>>>> release                : 3.16.0-4-amd64
>>>> version                : #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08)
>>>> machine                : x86_64
>>>> nr_cpus                : 4
>>>> max_cpu_id             : 7
>>>> nr_nodes               : 1
>>>> cores_per_socket       : 2
>>>> threads_per_core       : 2
>>>> cpu_mhz                : 2594
>>>> hw_caps                :
>>>> bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:0000028=
1
>>>> virt_caps              : hvm hvm_directio
>>>> total_memory           : 8055
>>>> free_memory            : 2309
>>>> sharing_freed_memory   : 0
>>>> sharing_used_memory    : 0
>>>> outstanding_claims     : 0
>>>> free_cpus              : 0
>>>> xen_major              : 4
>>>> xen_minor              : 5
>>>> xen_extra              : .0-rc
>>>> xen_version            : 4.5.0-rc
>>>> xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
>>>> hvm-3.0-x86_32p hvm-3.0-x86_64
>>>> xen_scheduler          : credit
>>>> xen_pagesize           : 4096
>>>> platform_params        : virt_start=3D0xffff800000000000
>>>> xen_changeset          : Thu Dec 18 10:02:16 2014 +0000
>>>> git:36174af-dirty
>>>> xen_commandline        : placeholder
>>>> cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>>>> cc_compile_by          : root
>>>> cc_compile_domain      :
>>>> cc_compile_date        : Wed Dec 31 01:20:47 CET 2014
>>>> xend_config_format     : 4
>>>>
>>>>
>>>>
>>>> 2015-01-04 23:39 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>
>>>>> My qemu log after spice failure:
>>>>> (/usr/local/sbin/xl:4254): Spice-Warning **:
>>>>> reds.c:1863:reds_handle_ticket: Invalid password
>>>>> main_channel_link: add main channel client
>>>>> main_channel_handle_parsed: net test: latency 0.257000 ms, bitrate
>>>>> 81920000000 bps (78125.000000 Mbps)
>>>>> red_dispatcher_set_cursor_peer:
>>>>> inputs_connect: inputs channel client create
>>>>> main_channel_handle_parsed: agent start
>>>>> main_channel_handle_parsed: agent start
>>>>> qemu-system-i386: malloc.c:2372: sysmalloc: Assertion `(old_top =3D=
=3D
>>>>> (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offs=
etof
>>>>> (struct malloc_chunk, fd)))) && old_size =3D=3D 0) || ((unsigned long=
)
>>>>> (old_size) >=3D (unsigned long)((((__builtin_offsetof (struct malloc_=
chunk,
>>>>> fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) =
- 1)))
>>>>> && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) =
=3D=3D 0)'
>>>>> failed.
>>>>>
>>>>>
>>>>> 2015-01-04 23:10 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>
>>>>>>  This one is bug from trying to install winpv  bus driver
>>>>>>
>>>>>
>> If you followed all my advices your configurations should be ok and you
>> found a new bug or inexpected case.
>> I do not have the knowledge to solve it.
>> Added to cc also win-pv-devel
>> Can someone take a look to this problem please?
>>
>>
>>>>>>
>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>> _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>> bytes=3Dbytes@entry=3D73729)
>>>>>>     at malloc.c:3775
>>>>>> 3775    malloc.c: Aucun fichier ou dossier de ce type.
>>>>>> (gdb) bt full
>>>>>> #0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>>     bytes=3Dbytes@entry=3D73729) at malloc.c:3775
>>>>>>         p =3D 0x555557303880
>>>>>>         iters =3D <optimized out>
>>>>>>         nb =3D 73744
>>>>>>         idx =3D <optimized out>
>>>>>>         bin =3D <optimized out>
>>>>>>         victim =3D 0x555557303870
>>>>>>         size =3D <optimized out>
>>>>>>         victim_index =3D <optimized out>
>>>>>>         remainder =3D 0x555557315880
>>>>>>         remainder_size =3D <optimized out>
>>>>>>         block =3D 4
>>>>>>         bit =3D <optimized out>
>>>>>>         map =3D 66981887
>>>>>>         fwd =3D <optimized out>
>>>>>>         bck =3D <optimized out>
>>>>>>         errstr =3D 0x0
>>>>>>         __func__ =3D "_int_malloc"
>>>>>> #1  0x00007ffff3eb74a1 in _int_realloc (
>>>>>>     av=3Dav@entry=3D0x7ffff41df620 <main_arena>, oldp=3Doldp@entry=
=3D0x55555689d270,
>>>>>>
>>>>>>     oldsize=3Doldsize@entry=3D36880, nb=3Dnb@entry=3D73744) at mallo=
c.c:4286
>>>>>>         newp =3D <optimized out>
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         newsize =3D <optimized out>
>>>>>>         newmem =3D <optimized out>
>>>>>>         next =3D 0x5555568a6280
>>>>>>         remainder =3D <optimized out>
>>>>>>         remainder_size =3D <optimized out>
>>>>>>         bck =3D <optimized out>
>>>>>>         fwd =3D <optimized out>
>>>>>>         copysize =3D <optimized out>
>>>>>>         ncopies =3D <optimized out>
>>>>>>         s =3D <optimized out>
>>>>>>         d =3D <optimized out>
>>>>>>         errstr =3D 0x0
>>>>>>         __func__ =3D "_int_realloc"
>>>>>>         nextsize =3D <optimized out>
>>>>>> #2  0x00007ffff3eb85f9 in __GI___libc_realloc (oldmem=3D0x55555689d2=
80,
>>>>>>     bytes=3D73728) at malloc.c:3029
>>>>>>         ar_ptr =3D 0x7ffff41df620 <main_arena>
>>>>>>         nb =3D 73744
>>>>>>         newp =3D <optimized out>
>>>>>>         hook =3D <optimized out>
>>>>>>         oldp =3D 0x55555689d270
>>>>>>         oldsize =3D 36880
>>>>>>         __func__ =3D "__libc_realloc"
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>> #3  0x0000555555819563 in realloc_and_trace (mem=3D0x55555689d280,
>>>>>> n_bytes=3D73728)
>>>>>>     at vl.c:2857
>>>>>>         ptr =3D 0x7fffffffcf30
>>>>>> #4  0x00007ffff708388e in g_realloc (mem=3D<optimized out>,
>>>>>> n_bytes=3D73728)
>>>>>>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162
>>>>>>         newmem =3D <optimized out>
>>>>>> #5  0x000055555582d3e2 in phys_map_node_reserve (map=3D0x5555563ccf9=
8,
>>>>>> nodes=3D18)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/exec.c:152
>>>>>> No locals.
>>>>>> #6  0x000055555582d701 in phys_page_set (d=3D0x5555563ccf90, index=
=3D160,
>>>>>> nb=3D16,
>>>>>>     leaf=3D5) at /home/goon/xen/tools/qemu-xen-dir/exec.c:211
>>>>>> No locals.
>>>>>> #7  0x000055555582f1ae in register_multipage (d=3D0x5555563ccf90,
>>>>>>     section=3D0x7fffffffcfe0) at
>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:937
>>>>>>         start_addr =3D 655360
>>>>>>         section_index =3D 5
>>>>>>         num_pages =3D 16
>>>>>>         __PRETTY_FUNCTION__ =3D "register_multipage"
>>>>>> #8  0x000055555582f4b4 in mem_add (listener=3D0x55555633b898,
>>>>>>     section=3D0x7fffffffd1a0) at
>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:968
>>>>>>         as =3D 0x55555633b860
>>>>>>         d =3D 0x5555563ccf90
>>>>>>         now =3D {mr =3D 0x55555636dd30, address_space =3D 0x55555633=
b860,
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =3D=
 0},
>>>>>>           offset_within_address_space =3D 655360, readonly =3D false=
}
>>>>>>         remain =3D {mr =3D 0x55555636dd30, address_space =3D
>>>>>> 0x55555633b860,
>>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =3D=
 0},
>>>>>>           offset_within_address_space =3D 655360, readonly =3D false=
}
>>>>>>         page_size =3D {lo =3D 4096, hi =3D 0}
>>>>>> #9  0x0000555555892a01 in address_space_update_topology_pass (
>>>>>>     as=3D0x55555633b860, old_view=3D0x555556495910,
>>>>>> new_view=3D0x55555687f2c0,
>>>>>>     adding=3Dtrue) at /home/goon/xen/tools/qemu-xen-dir/memory.c:736
>>>>>>         _listener =3D 0x55555633b898
>>>>>>         iold =3D 1
>>>>>>         inew =3D 1
>>>>>>         frold =3D 0x5555565fd828
>>>>>>         frnew =3D 0x5555568b23e8
>>>>>> #10 0x0000555555892fd7 in address_space_update_topology
>>>>>> (as=3D0x55555633b860)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:765
>>>>>>         old_view =3D 0x555556495910
>>>>>>         new_view =3D 0x55555687f2c0
>>>>>> #11 0x00005555558930fc in memory_region_transaction_commit ()
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:800
>>>>>>         as =3D 0x55555633b860
>>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_transaction_commit"
>>>>>> #12 0x00005555558951ed in memory_region_del_subregion
>>>>>> (mr=3D0x5555562855d0,
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>     subregion=3D0x555556349250)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:1487
>>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_del_subregion"
>>>>>> #13 0x000055555570fdf3 in pci_update_mappings (d=3D0x5555563489f0)
>>>>>>     at hw/pci/pci.c:1113
>>>>>>         r =3D 0x555556348af8
>>>>>>         i =3D 0
>>>>>>         new_addr =3D 18446744073709551615
>>>>>> #14 0x0000555555710110 in pci_default_write_config (d=3D0x5555563489=
f0,
>>>>>> addr=3D4,
>>>>>>     val=3D0, l=3D2) at hw/pci/pci.c:1168
>>>>>>         i =3D 2
>>>>>>         was_irq_disabled =3D 0
>>>>>>         __PRETTY_FUNCTION__ =3D "pci_default_write_config"
>>>>>> #15 0x0000555555714125 in pci_host_config_write_common (
>>>>>>     pci_dev=3D0x5555563489f0, addr=3D4, limit=3D256, val=3D1024, len=
=3D2)
>>>>>>     at hw/pci/pci_host.c:57
>>>>>>         __PRETTY_FUNCTION__ =3D "pci_host_config_write_common"
>>>>>> #16 0x0000555555714229 in pci_data_write (s=3D0x5555562a8cf0, addr=
=3D
>>>>>> 2147487748,
>>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:84
>>>>>>         pci_dev =3D 0x5555563489f0
>>>>>>         config_addr =3D 4
>>>>>> #17 0x0000555555714351 in pci_host_data_write (opaque=3D0x5555563114=
70,
>>>>>> addr=3D0,
>>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:137
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         s =3D 0x555556311470
>>>>>> #18 0x0000555555891531 in memory_region_write_accessor
>>>>>> (mr=3D0x555556313860,
>>>>>>     addr=3D0, value=3D0x7fffffffd5e8, size=3D2, shift=3D0, mask=3D65=
535)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:441
>>>>>>         tmp =3D 1024
>>>>>> #19 0x0000555555891636 in access_with_adjusted_size (addr=3D0,
>>>>>>     value=3D0x7fffffffd5e8, size=3D2, access_size_min=3D1,
>>>>>> access_size_max=3D4,
>>>>>>     access=3D0x5555558914b0 <memory_region_write_accessor>,
>>>>>> mr=3D0x555556313860)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:478
>>>>>>         access_mask =3D 65535
>>>>>>         access_size =3D 2
>>>>>>         i =3D 0
>>>>>> #20 0x0000555555893772 in memory_region_dispatch_write
>>>>>> (mr=3D0x555556313860,
>>>>>>     addr=3D0, data=3D1024, size=3D2)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:985
>>>>>> No locals.
>>>>>> #21 0x0000555555896068 in io_mem_write (mr=3D0x555556313860, addr=3D=
0,
>>>>>> val=3D1024,
>>>>>>     size=3D2) at /home/goon/xen/tools/qemu-xen-dir/memory.c:1744
>>>>>> No locals.
>>>>>> #22 0x000055555583183c in address_space_rw (
>>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>>     len=3D2, is_write=3Dtrue) at
>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:2029
>>>>>>         l =3D 2
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         ptr =3D 0x7fffffffd6f4 "\377\377\377\377"
>>>>>>         val =3D 1024
>>>>>>         addr1 =3D 0
>>>>>>         mr =3D 0x555556313860
>>>>>>         error =3D false
>>>>>> #23 0x0000555555831b12 in address_space_write (
>>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>>     len=3D2) at /home/goon/xen/tools/qemu-xen-dir/exec.c:2091
>>>>>> No locals.
>>>>>> #24 0x000055555588f486 in cpu_outw (addr=3D3324, val=3D1024)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/ioport.c:77
>>>>>>         buf =3D "\000\004"
>>>>>> #25 0x000055555590f460 in do_outp (addr=3D3324, size=3D2, val=3D1024=
)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668
>>>>>> No locals.
>>>>>> #26 0x000055555590f66f in cpu_ioreq_pio (req=3D0x7ffff7ff3000)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729
>>>>>>         i =3D 0
>>>>>> #27 0x000055555590f910 in handle_ioreq (req=3D0x7ffff7ff3000)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781
>>>>>> No locals.
>>>>>> #28 0x000055555590fc0f in cpu_handle_ioreq (opaque=3D0x5555562abf10)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         state =3D 0x5555562abf10
>>>>>>         req =3D 0x7ffff7ff3000
>>>>>> #29 0x000055555577c385 in qemu_iohandler_poll
>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>     at iohandler.c:143
>>>>>>         revents =3D 1
>>>>>>         pioh =3D 0x55555627ca90
>>>>>>         ioh =3D 0x555556366320
>>>>>> #30 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>> main-loop.c:485
>>>>>>         ret =3D 1
>>>>>>         timeout =3D 4294967295
>>>>>>         timeout_ns =3D 16717983
>>>>>> #31 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>         nonblocking =3D false
>>>>>>         last_io =3D 1
>>>>>> #32 0x000055555581d66b in main (argc=3D64, argv=3D0x7fffffffdc78,
>>>>>>     envp=3D0x7fffffffde80) at vl.c:4535
>>>>>>         i =3D 64
>>>>>>         snapshot =3D 0
>>>>>>         linux_boot =3D 0
>>>>>>         icount_option =3D 0x0
>>>>>>         initrd_filename =3D 0x0
>>>>>>         kernel_filename =3D 0x0
>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         boot_order =3D 0x555556275340 "dc"
>>>>>>         ds =3D 0x5555563564e0
>>>>>>         cyls =3D 0
>>>>>>         heads =3D 0
>>>>>>         secs =3D 0
>>>>>>         translation =3D 0
>>>>>>         hda_opts =3D 0x0
>>>>>>         opts =3D 0x555556275290
>>>>>>         machine_opts =3D 0x555556276ef0
>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>         optind =3D 64
>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=
=3Dwriteback"
>>>>>>         loadvm =3D 0x0
>>>>>>         machine_class =3D 0x55555626e030
>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>         cpu_model =3D 0x0
>>>>>>         vga_model =3D 0x0
>>>>>>         qtest_chrdev =3D 0x0
>>>>>>         qtest_log =3D 0x0
>>>>>>         pid_file =3D 0x0
>>>>>>         incoming =3D 0x0
>>>>>>         show_vnc_port =3D 0
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         defconfig =3D true
>>>>>>         userconfig =3D true
>>>>>>         log_mask =3D 0x0
>>>>>>         log_file =3D 0x0
>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>         trace_events =3D 0x0
>>>>>>         trace_file =3D 0x0
>>>>>>         __func__ =3D "main"
>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275340 "dc=
",
>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664=
 "",
>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>
>>>>>>
>>>>>> 2015-01-04 22:29 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>>
>>>>>>>   Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>> This is free software: you are free to change and redistribute it.
>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>> copying"
>>>>>>> and "show warranty" for details.
>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>> Type "show configuration" for configuration details.
>>>>>>> For bug reporting instructions, please see:
>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>> For help, type "help".
>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>> (gdb) target remote localhost:1234
>>>>>>> Remote debugging using localhost:1234
>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>> done.
>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>> (gdb) c
>>>>>>> Continuing.
>>>>>>>
>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>> (gdb) bt full
>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>         sif =3D <optimized out>
>>>>>>>         total =3D <optimized out>
>>>>>>>         n =3D <optimized out>
>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>> No locals.
>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c=
:798
>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out=
>)
>>>>>>>     at reds.c:3795
>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>         item =3D 0x5555562d8350
>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>> ui/spice-core.c:909
>>>>>>> No locals.
>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadv=
m=3D0)
>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>         startstop =3D true
>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>         d =3D 0x55555637d7e0
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>     at hw/core/qdev.c:934
>>>>>>>         klass =3D 0x555556270410
>>>>>>>         __func__ =3D "device_reset"
>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>> opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:240
>>>>>>> No locals.
>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:411
>>>>>>>         bus =3D 0x0
>>>>>>>         err =3D 0
>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>         err =3D 0
>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:403
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>         err =3D 0
>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>         err =3D 0
>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>     at hw/core/qdev.c:261
>>>>>>> No locals.
>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b=
0)
>>>>>>>     at hw/core/qdev.c:267
>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>         re =3D 0x555556375890
>>>>>>>         nre =3D 0x0
>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>> vl.c:1885
>>>>>>>         mc =3D 0x55555626e030
>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950=
)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>         state =3D 0x5555562b0950
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>     at iohandler.c:143
>>>>>>>         revents =3D 1
>>>>>>>         pioh =3D 0x5555563218c0
>>>>>>>         ioh =3D 0x555556362a80
>>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>> main-loop.c:485
>>>>>>>         ret =3D 1
>>>>>>>         timeout =3D 4294967295
>>>>>>>         timeout_ns =3D 17355567
>>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>         nonblocking =3D false
>>>>>>>         last_io =3D 1
>>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>>         i =3D 64
>>>>>>>         snapshot =3D 0
>>>>>>>         linux_boot =3D 0
>>>>>>>         icount_option =3D 0x0
>>>>>>>         initrd_filename =3D 0x0
>>>>>>>         kernel_filename =3D 0x0
>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         ds =3D 0x5555563324a0
>>>>>>>         cyls =3D 0
>>>>>>>         heads =3D 0
>>>>>>>         secs =3D 0
>>>>>>>         translation =3D 0
>>>>>>>         hda_opts =3D 0x0
>>>>>>>         opts =3D 0x5555562752d0
>>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>         optind =3D 66
>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cach=
e=3Dwriteback"
>>>>>>>         loadvm =3D 0x0
>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>         cpu_model =3D 0x0
>>>>>>>         vga_model =3D 0x0
>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>         qtest_log =3D 0x0
>>>>>>>         pid_file =3D 0x0
>>>>>>>         incoming =3D 0x0
>>>>>>>         show_vnc_port =3D 0
>>>>>>>         defconfig =3D true
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         userconfig =3D true
>>>>>>>         log_mask =3D 0x0
>>>>>>>         log_file =3D 0x0
>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>=
,
>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>         trace_events =3D 0x0
>>>>>>>         trace_file =3D 0x0
>>>>>>>         __func__ =3D "main"
>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "d=
c",
>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c66=
4 "",
>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>  (gdb) bt full ecc
>>>>>>> No symbol "ecc" in current context.
>>>>>>>
>>>>>>> (gdb) bt full
>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>         sif =3D <optimized out>
>>>>>>>         total =3D <optimized out>
>>>>>>>         n =3D <optimized out>
>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>> No locals.
>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c=
:798
>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out=
>)
>>>>>>>     at reds.c:3795
>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>         item =3D 0x5555562d8350
>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>> ui/spice-core.c:909
>>>>>>> No locals.
>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadv=
m=3D0)
>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>         startstop =3D true
>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>         d =3D 0x55555637d7e0
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>     at hw/core/qdev.c:934
>>>>>>>         klass =3D 0x555556270410
>>>>>>>         __func__ =3D "device_reset"
>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>> opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:240
>>>>>>> No locals.
>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:411
>>>>>>>         bus =3D 0x0
>>>>>>>         err =3D 0
>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>         err =3D 0
>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:403
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>         err =3D 0
>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>         err =3D 0
>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>     at hw/core/qdev.c:261
>>>>>>> No locals.
>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b=
0)
>>>>>>>     at hw/core/qdev.c:267
>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>         re =3D 0x555556375890
>>>>>>>         nre =3D 0x0
>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>> vl.c:1885
>>>>>>>         mc =3D 0x55555626e030
>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950=
)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>         state =3D 0x5555562b0950
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>     at iohandler.c:143
>>>>>>>         revents =3D 1
>>>>>>>         pioh =3D 0x5555563218c0
>>>>>>>         ioh =3D 0x555556362a80
>>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>> main-loop.c:485
>>>>>>>         ret =3D 1
>>>>>>>         timeout =3D 4294967295
>>>>>>>         timeout_ns =3D 17355567
>>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>         nonblocking =3D false
>>>>>>>         last_io =3D 1
>>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>>         i =3D 64
>>>>>>>         snapshot =3D 0
>>>>>>>         linux_boot =3D 0
>>>>>>>         icount_option =3D 0x0
>>>>>>>         initrd_filename =3D 0x0
>>>>>>>         kernel_filename =3D 0x0
>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         ds =3D 0x5555563324a0
>>>>>>>         cyls =3D 0
>>>>>>>         heads =3D 0
>>>>>>>         secs =3D 0
>>>>>>>         translation =3D 0
>>>>>>>         hda_opts =3D 0x0
>>>>>>>         opts =3D 0x5555562752d0
>>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>         optind =3D 66
>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cach=
e=3Dwriteback"
>>>>>>>         loadvm =3D 0x0
>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>         cpu_model =3D 0x0
>>>>>>>         vga_model =3D 0x0
>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>         qtest_log =3D 0x0
>>>>>>>         pid_file =3D 0x0
>>>>>>>         incoming =3D 0x0
>>>>>>>         show_vnc_port =3D 0
>>>>>>>         defconfig =3D true
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         userconfig =3D true
>>>>>>>         log_mask =3D 0x0
>>>>>>>         log_file =3D 0x0
>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>=
,
>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>         trace_events =3D 0x0
>>>>>>>         trace_file =3D 0x0
>>>>>>>         __func__ =3D "main"
>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "d=
c",
>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c66=
4 "",
>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>
>>>>>>>
>>>>>>>   AND
>>>>>>>
>>>>>>>  attached files
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2015-01-04 22:24 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>=
:
>>>>>>>
>>>>>>>> GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
>>>>>>>> Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>>> This is free software: you are free to change and redistribute it.
>>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>>> copying"
>>>>>>>> and "show warranty" for details.
>>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>>> Type "show configuration" for configuration details.
>>>>>>>> For bug reporting instructions, please see:
>>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>>> For help, type "help".
>>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>>> (gdb) target remote localhost:1234
>>>>>>>> Remote debugging using localhost:1234
>>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>>> done.
>>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>>> (gdb) c
>>>>>>>> Continuing.
>>>>>>>>
>>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>>> (gdb) bt full
>>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>         sif =3D <optimized out>
>>>>>>>>         total =3D <optimized out>
>>>>>>>>         n =3D <optimized out>
>>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>>> No locals.
>>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at
>>>>>>>> char_device.c:798
>>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized ou=
t>)
>>>>>>>>     at reds.c:3795
>>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>>         item =3D 0x5555562d8350
>>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>>> ui/spice-core.c:909
>>>>>>>> No locals.
>>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0,
>>>>>>>> loadvm=3D0)
>>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>>         startstop =3D true
>>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>>         d =3D 0x55555637d7e0
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/core/qdev.c:934
>>>>>>>>         klass =3D 0x555556270410
>>>>>>>>         __func__ =3D "device_reset"
>>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>>> opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:240
>>>>>>>> No locals.
>>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:411
>>>>>>>>         bus =3D 0x0
>>>>>>>>         err =3D 0
>>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>>         err =3D 0
>>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:403
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>>         err =3D 0
>>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>>         err =3D 0
>>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>>     at hw/core/qdev.c:261
>>>>>>>> No locals.
>>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60=
b0)
>>>>>>>>     at hw/core/qdev.c:267
>>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>>         re =3D 0x555556375890
>>>>>>>>         nre =3D 0x0
>>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>>> vl.c:1885
>>>>>>>>         mc =3D 0x55555626e030
>>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b095=
0)
>>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>>         state =3D 0x5555562b0950
>>>>>>>> ---Type <return> to continue, or q
>>>>>>>>
>>>>>>> ...
>
>

--089e0160b5949e4461050be7d03a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div><div>Hi again and sorry for monopolizing, s=
o I tested a bit QXL/spice in my win 7 x64 domU on Xenserver 4.5 RC4 with F=
antu patch.<br><br></div>I get errors when trying to move remote-viewer win=
dow: I get a connection refused.<br></div><br>System is using deb8 unstable=
s (sid) with only Xen compiled from sources.<br><br>Xen BT full is below, m=
achine details, you should have them now.<br><br></div>Should I try to comp=
ile spice on my machine or something?<br><br><br>regards, <br><br></div>Gre=
gB:<br><div><div><br>(gdb) target remote localhost:1234<br>Remote debugging=
 using localhost:1234<br>Reading symbols from /lib64/ld-linux-x86-64.so.2..=
.Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...don=
e.<br>done.<br>Loaded symbols for /lib64/ld-linux-x86-64.so.2<br>0x00007fff=
f7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2<br>(gdb) c<br>Contin=
uing.<br><br>Program received signal SIGABRT, Aborted.<br>0x00007ffff3e7110=
7 in __GI_raise (sig=3Dsig@entry=3D6)<br>=C2=A0=C2=A0=C2=A0 at ../nptl/sysd=
eps/unix/sysv/linux/raise.c:56<br>56=C2=A0=C2=A0=C2=A0 ../nptl/sysdeps/unix=
/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.<br>(gdb) bt full<=
br>#0=C2=A0 0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)<br>=C2=
=A0=C2=A0=C2=A0 at ../nptl/sysdeps/unix/sysv/linux/raise.c:56<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 resultvar =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 pid =3D 10818<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 selftid =3D 10818<br>#1=C2=A0 0x00007ffff3e724e8 in __GI_abort () at=
 abort.c:89<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 save_stage =3D 2<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 act =3D {__sigaction_handler =
=3D {sa_handler =3D 0xb8000000, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 sa_sigaction =3D 0xb8000000}, sa_mask =3D {__va=
l =3D {13258597306065747968, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 13258597306065747968, 3087007744, 3087=
007744, 0, 0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 13258597302978740224, 13258597302978740224, 132585973=
02978740224, 0, 0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 0, 0, 0, 0, 0}}, sa_flags =3D 0, sa_restorer =
=3D 0xb800000000000000}<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sigs =
=3D {__val =3D {32, 0 &lt;repeats 15 times&gt;}}<br>#2=C2=A0 0x00007ffff3ea=
f044 in __libc_message (do_abort=3Ddo_abort@entry=3D1, <br>=C2=A0=C2=A0=C2=
=A0 fmt=3Dfmt@entry=3D0x7ffff3fa1c60 &quot;*** Error in `%s&#39;: %s: 0x%s =
***\n&quot;)<br>=C2=A0=C2=A0=C2=A0 at ../sysdeps/posix/libc_fatal.c:175<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ap =3D {{gp_offset =3D 40, fp_of=
fset =3D 0, overflow_arg_area =3D 0x7fffffffd300, <br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 reg_save_area =3D 0x7fffffffd=
290}}<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fd =3D 2<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 on_2 =3D &lt;optimized out&gt;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 list =3D &lt;optimized out&gt;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nlist =3D &lt;optimized out&gt;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cp =3D &lt;optimized out&gt;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 written =3D &lt;optimized out&gt=
;<br>#3=C2=A0 0x00007ffff3eb481e in malloc_printerr (action=3D1, <br>=C2=A0=
=C2=A0=C2=A0 str=3D0x7ffff3fa1db0 &quot;double free or corruption (out)&quo=
t;, ptr=3D&lt;optimized out&gt;)<br>=C2=A0=C2=A0=C2=A0 at malloc.c:4996<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 buf =3D &quot;0000555556bb85e0&q=
uot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cp =3D &lt;optimized out=
&gt;<br>#4=C2=A0 0x00007ffff3eb5526 in _int_free (av=3D&lt;optimized out&gt=
;, p=3D&lt;optimized out&gt;, <br>=C2=A0=C2=A0=C2=A0 have_lock=3D0) at mall=
oc.c:3840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size =3D &lt;optimi=
zed out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fb =3D &lt;optimi=
zed out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextchunk =3D &lt=
;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextsize =
=3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nex=
tinuse =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 prevsize =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 bck =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 fwd =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 errstr =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 locked =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &quot;_int_free&quot;<br>#5=C2=A0 =
0x00007ffff4c7c7e5 in ?? () from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0=
<br>---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---<br>N=
o symbol table info available.<br>#6=C2=A0 0x00007ffff4c7c759 in pixman_ima=
ge_unref ()<br>=C2=A0=C2=A0 from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0=
<br>No symbol table info available.<br>#7=C2=A0 0x00005555557ee88e in qemu_=
pixman_image_unref (image=3D0x555556335f00)<br>=C2=A0=C2=A0=C2=A0 at ui/qem=
u-pixman.c:80<br>No locals.<br>#8=C2=A0 0x000055555580c21f in vnc_dpy_switc=
h (dcl=3D0x7fffe849e048, surface=3D0x555556627c90)<br>=C2=A0=C2=A0=C2=A0 at=
 ui/vnc.c:588<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vd =3D 0x7fffe8=
49e010<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vs =3D 0xff0000ff00<br=
>#9=C2=A0 0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x555556312e=
90, <br>=C2=A0=C2=A0=C2=A0 surface=3D0x555556627c90) at ui/console.c:1404<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s =3D 0x55555633d710<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 old_surface =3D 0x555556336160<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dcl =3D 0x7fffe849e048<br>#10 0x000=
05555556bfa0c in qxl_render_update_area_unlocked (qxl=3D0x555556387f50)<br>=
=C2=A0=C2=A0=C2=A0 at hw/display/qxl-render.c:131<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 vga =3D 0x555556388a40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 surface =3D 0x555556627c90<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 21845<br>#11 0x00005555556bfc84 in qxl_render_update_=
area_bh (opaque=3D0x555556387f50)<br>=C2=A0=C2=A0=C2=A0 at hw/display/qxl-r=
ender.c:183<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qxl =3D 0x5555563=
87f50<br>#12 0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556277840) at as=
ync.c:81<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bh =3D 0x555556313d4=
0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bhp =3D 0x7fffffffd570<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 next =3D 0x555556313d10<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>#13 0x00005555555e3a1a=
 in aio_poll (ctx=3D0x555556277840, blocking=3Dfalse)<br>=C2=A0=C2=A0=C2=A0=
 at aio-posix.c:188<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 node =3D =
0x7ffff41f3a89 &lt;write+57&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ret =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 progress =3D fa=
lse<br>#14 0x00005555555e4088 in aio_ctx_dispatch (source=3D0x555556277840,=
 callback=3D0x0, <br>=C2=A0=C2=A0=C2=A0 user_data=3D0x0) at async.c:211<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ctx =3D 0x555556277840<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D &quot;aio_ctx_=
dispatch&quot;<br>#15 0x00007ffff707dc5d in g_main_dispatch (context=3D0x55=
5556278b50)<br>=C2=A0=C2=A0=C2=A0 at /tmp/buildd/glib2.0-2.42.1/./glib/gmai=
n.c:3111<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dispatch =3D 0x55555=
55e4035 &lt;aio_ctx_dispatch&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 prev_source =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 was_i=
n_call =3D 0<br>---Type &lt;return&gt; to continue, or q &lt;return&gt; to =
quit---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 user_data =3D 0x0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 callback =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_funcs =3D &lt;optimized out&gt;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_data =3D &lt;optimized out&gt;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 need_destroy =3D &lt;optimized o=
ut&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 source =3D 0x555556277=
840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 current =3D 0x55555626ec4=
0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br>#16 g_main_conte=
xt_dispatch (context=3D0x555556278b50)<br>=C2=A0=C2=A0=C2=A0 at /tmp/buildd=
/glib2.0-2.42.1/./glib/gmain.c:3710<br>No locals.<br>#17 0x000055555577cf98=
 in glib_pollfds_poll () at main-loop.c:190<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 context =3D 0x555556278b50<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pfds =3D 0x555556628928<br>#18 0x000055555577d075 in os_hos=
t_main_loop_wait (timeout=3D0) at main-loop.c:235<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 ret =3D 2<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 spin_counter =3D 2<br>#19 0x000055555577d134 in main_loop_wait (nonbloc=
king=3D0) at main-loop.c:484<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
ret =3D 21845<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D 429=
4967295<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D 293756=
2<br>#20 0x0000555555815fbd in main_loop () at vl.c:2056<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D false<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 last_io =3D 0<br>#21 0x000055555581d66b in main (argc=
=3D66, argv=3D0x7fffffffdb48, envp=3D0x7fffffffdd60)<br>=C2=A0=C2=A0=C2=A0 =
at vl.c:4535<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 initrd_filename =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 kernel_filename =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D 0x55555598c664 &quot;&quot;<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x555556275340 &quot;dc&quot;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D 0x55555633d710<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s=
ecs =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D 0x555556275290<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D 0x555556276ef0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D 0x555555d72700 &lt;qemu_machine=
_opts&gt;<br>---Type &lt;return&gt; to continue, or q &lt;return&gt; to qui=
t---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D 0x7fffffffe55e &quot;file=
=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,index=3D=
2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632&quot;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D 0x55555626e030<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D 0x555555d78540 &lt;xenfv_mach=
ine&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 incoming =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_=
vnc_port =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D =
true<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D true<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 mem_trace =3D {malloc =3D 0x55555581950b &lt;malloc_and_=
trace&gt;, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 reall=
oc =3D 0x555555819540 &lt;realloc_and_trace&gt;, <br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D 0x555555819584 &lt;free_and_trac=
e&gt;, calloc =3D 0x0, try_malloc =3D 0x0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_realloc =3D 0x0}<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 __func__ =3D &quot;main&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 args =3D {machine =3D 0x555555d78540 &lt;xenfv_machine&gt;, ram_s=
ize =3D 2013265920, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 boot_order =3D 0x555556275340 &quot;dc&quot;, kernel_filename =3D 0x0, =
<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =
=3D 0x55555598c664 &quot;&quot;, initrd_filename =3D 0x0, cpu_model =3D 0x0=
}<br><br></div></div></div><div class=3D"gmail_extra"><br><div class=3D"gma=
il_quote">2015-01-05 12:12 GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a =
href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie=
@gmail.com</a>&gt;</span>:<br><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir=3D"ltr"=
>Well r=C3=A9installed from scratch, added winpv and spice drivers the bord=
er you gave me and Th=C3=A9r=C3=A8se is NO more bugs related to winpv .=C2=
=A0 will test reboot and spice/qxl functionnalities when possible. Regards.=
=C2=A0 Greg b</p>
<div class=3D"gmail_quote">Le 5 janv. 2015 10:08, &quot;Fabio Fantoni&quot;=
 &lt;<a href=3D"mailto:fabio.fantoni@m2r.biz" target=3D"_blank">fabio.fanto=
ni@m2r.biz</a>&gt; a =C3=A9crit :<br type=3D"attribution"><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div>Il 05/01/2015 00:24, Goonie Windy ha
      scritto:<br>
    </div>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">AND DMESG<br>
        [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8
        ip 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in <a href=3D"http:=
//libc-2.19.so" target=3D"_blank">libc-2.19.so</a>[7f92a64d4000+19f000]<br>
        [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3096.118716] device vif5.0-emu left promiscuous mode<br>
        [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3584.894741] device vif5.0 left promiscuous mode<br>
        [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3681.878054] device vif6.0 entered promiscuous mode<br>
        [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3682.193528] device vif6.0-emu entered promiscuous mode<br>
        [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3780.535444] device vif6.0-emu left promiscuous mode<br>
        [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state<br>
        [ 3899.555577] device vif6.0 left promiscuous mode<br>
        [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state<br>
        <br>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">2015-01-05 0:21 GMT+01:00 Goonie Windy
          <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com=
" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div dir=3D"ltr">=C2=A0 GNU nano
              2.2.6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Fichier=C2=A0:
              qemu-dm-win7.log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
              <br>
              <br>
              (/usr/local/sbin/xl:9535): Spice-Warning **:
              reds.c:1863:reds_handle_ticket: Invalid password<br>
              main_channel_link: add main channel client<br>
              main_channel_handle_parsed: net test: latency 0.318000 ms,
              bitrate 26597402597 bps (25365.259740 Mbps)<br>
              inputs_connect: inputs channel client create<br>
              red_dispatcher_set_cursor_peer:<br>
              main_channel_handle_parsed: agent start<br>
              main_channel_handle_parsed: agent start<br>
              *** Error in `/usr/lib/xen/bin/qemu-system-i386&#39;: double
              free or corruption (out): 0x00007f0e38dd26f0 ***<br>
              <br>
            </div>
            <div class=3D"gmail_extra"><br>
              <div class=3D"gmail_quote">2015-01-05 0:00 GMT+01:00 Goonie
                Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goon=
ie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<b=
r>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div dir=3D"ltr">Should add this too:<br>
                    host=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : E766<br>
                    release=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 3.16.0-4-amd64<br>
                    version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : #1 SMP Debian 3.16.7-ckt2-1
                    (2014-12-08)<br>
                    machine=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : x86_64<br>
                    nr_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    max_cpu_id=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 7<br>
                    nr_nodes=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 1<br>
                    cores_per_socket=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    threads_per_core=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    cpu_mhz=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2594<br>
                    hw_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:0=
0000001:00000281<br>
                    virt_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : hvm hvm_directio<br>
                    total_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 8055<br>
                    free_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 2309<br>
                    sharing_freed_memory=C2=A0=C2=A0 : 0<br>
                    sharing_used_memory=C2=A0=C2=A0=C2=A0 : 0<br>
                    outstanding_claims=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    free_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    xen_major=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    xen_minor=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 5<br>
                    xen_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : .0-rc<br>
                    xen_version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 4.5.0-rc<br>
                    xen_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : xen-3.0-x86_64
                    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
                    hvm-3.0-x86_64 <br>
                    xen_scheduler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : credit<br>
                    xen_pagesize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 4096<br>
                    platform_params=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 :
                    virt_start=3D0xffff800000000000<br>
                    xen_changeset=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : Thu Dec 18 10:02:16 2014
                    +0000 git:36174af-dirty<br>
                    xen_commandline=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : placeholder<br>
                    cc_compiler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : gcc (Debian 4.9.2-10) 4.9.2<br>
                    cc_compile_by=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : root<br>
                    cc_compile_domain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : <br>
                    cc_compile_date=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : Wed Dec 31 01:20:47 CET
                    2014<br>
                    xend_config_format=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    <br>
                    <br>
                  </div>
                  <div class=3D"gmail_extra"><br>
                    <div class=3D"gmail_quote">2015-01-04 23:39 GMT+01:00
                      Goonie Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:=
monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&=
gt;</span>:<br>
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div dir=3D"ltr">My qemu log after spice failure:<b=
r>
                          (/usr/local/sbin/xl:4254): Spice-Warning **:
                          reds.c:1863:reds_handle_ticket: Invalid
                          password<br>
                          main_channel_link: add main channel client<br>
                          main_channel_handle_parsed: net test: latency
                          0.257000 ms, bitrate 81920000000 bps
                          (78125.000000 Mbps)<br>
                          red_dispatcher_set_cursor_peer: <br>
                          inputs_connect: inputs channel client create<br>
                          main_channel_handle_parsed: agent start<br>
                          main_channel_handle_parsed: agent start<br>
                          qemu-system-i386: malloc.c:2372: sysmalloc:
                          Assertion `(old_top =3D=3D (((mbinptr) (((char *)
                          &amp;((av)-&gt;bins[((1) - 1) * 2])) -
                          __builtin_offsetof (struct malloc_chunk,
                          fd)))) &amp;&amp; old_size =3D=3D 0) || ((unsigne=
d
                          long) (old_size) &gt;=3D (unsigned
                          long)((((__builtin_offsetof (struct
                          malloc_chunk, fd_nextsize))+((2
                          *(sizeof(size_t))) - 1)) &amp; ~((2
                          *(sizeof(size_t))) - 1))) &amp;&amp;
                          ((old_top)-&gt;size &amp; 0x1) &amp;&amp;
                          ((unsigned long) old_end &amp; pagemask) =3D=3D
                          0)&#39; failed.<br>
                          <br>
                        </div>
                        <div class=3D"gmail_extra"><br>
                          <div class=3D"gmail_quote">2015-01-04 23:10
                            GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.gooni=
e@gmail.com</a>&gt;</span>:<br>
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div>This one is bug from trying to
                                  install winpv=C2=A0 bus driver<br>
                                </div>
                              </div>
                            </blockquote>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
    If you followed all my advices your configurations should be ok and
    you found a new bug or inexpected case.<br>
    <span lang=3D"en"><span>I
        do not have</span> <span>the knowledge to</span> <span>solve it.</s=
pan></span><br>
    Added to cc also win-pv-devel<br>
    Can someone take a look to this problem please?<br>
    <br>
    <blockquote type=3D"cite">
      <div class=3D"gmail_extra">
        <div class=3D"gmail_quote">
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div class=3D"gmail_extra">
              <div class=3D"gmail_quote">
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div class=3D"gmail_extra">
                    <div class=3D"gmail_quote">
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div class=3D"gmail_extra">
                          <div class=3D"gmail_quote">
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div><br>
                                </div>
                                <div>
                                  <div><br>
                                    Program received signal SIGSEGV,
                                    Segmentation fault.<br>
                                    _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    bytes=3Dbytes@entry=3D73729)<br>
                                    =C2=A0=C2=A0=C2=A0 at malloc.c:3775<br>
                                    3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun =
fichier ou
                                    dossier de ce type.<br>
                                    (gdb) bt full<br>
                                    #0=C2=A0 _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=
=3D73729) at
                                    malloc.c:3775<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 p =3D 0x555557303880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iters =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 idx =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bin =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim =3D 0x555557303870<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 size =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim_index =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D 0x555557315880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 block =3D 4<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bit =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 map =3D 66981887<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_malloc&quot;<br>
                                    #1=C2=A0 0x00007ffff3eb74a1 in
                                    _int_realloc (<br>
                                    =C2=A0=C2=A0=C2=A0 av=3Dav@entry=3D0x7f=
fff41df620
                                    &lt;main_arena&gt;,
                                    oldp=3Doldp@entry=3D0x55555689d270, <br=
>
                                    =C2=A0=C2=A0=C2=A0 oldsize=3Doldsize@en=
try=3D36880,
                                    nb=3Dnb@entry=3D73744) at malloc.c:4286=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newsize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 next =3D 0x5555568a6280<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 copysize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ncopies =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_realloc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nextsize =3D &lt;optimized
                                    out&gt;<br>
                                    #2=C2=A0 0x00007ffff3eb85f9 in
                                    __GI___libc_realloc
                                    (oldmem=3D0x55555689d280, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3D73728) at ma=
lloc.c:3029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ar_ptr =3D 0x7ffff41df620
                                    &lt;main_arena&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hook =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldp =3D 0x55555689d270<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldsize =3D 36880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;__libc_realloc&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    #3=C2=A0 0x0000555555819563 in
                                    realloc_and_trace
                                    (mem=3D0x55555689d280, n_bytes=3D73728)=
<br>
                                    =C2=A0=C2=A0=C2=A0 at vl.c:2857<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffcf30<br>
                                    #4=C2=A0 0x00007ffff708388e in g_reallo=
c
                                    (mem=3D&lt;optimized out&gt;,
                                    n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /tmp/buildd/glib2.0-2.42.1/./glib/gmem.=
c:162<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    #5=C2=A0 0x000055555582d3e2 in
                                    phys_map_node_reserve
                                    (map=3D0x5555563ccf98, nodes=3D18)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:152<br>
                                    No locals.<br>
                                    #6=C2=A0 0x000055555582d701 in
                                    phys_page_set (d=3D0x5555563ccf90,
                                    index=3D160, nb=3D16, <br>
                                    =C2=A0=C2=A0=C2=A0 leaf=3D5) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:211<br>
                                    No locals.<br>
                                    #7=C2=A0 0x000055555582f1ae in
                                    register_multipage
                                    (d=3D0x5555563ccf90, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
cfe0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:937<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 start_addr =3D 655360<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 section_index =3D 5<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 num_pages =3D 16<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;register_multipage&quot;<br>
                                    #8=C2=A0 0x000055555582f4b4 in mem_add
                                    (listener=3D0x55555633b898, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
d1a0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:968<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D 0x5555563ccf90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 now =3D {mr =3D 0x55555636dd30,
                                    address_space =3D 0x55555633b860, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remain =3D {mr =3D
                                    0x55555636dd30, address_space =3D
                                    0x55555633b860, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 page_size =3D {lo =3D 4096, hi =3D
                                    0}<br>
                                    #9=C2=A0 0x0000555555892a01 in
                                    address_space_update_topology_pass (<br=
>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x55555633b860,
                                    old_view=3D0x555556495910,
                                    new_view=3D0x55555687f2c0, <br>
                                    =C2=A0=C2=A0=C2=A0 adding=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:736<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 _listener =3D 0x55555633b898<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iold =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 inew =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frold =3D 0x5555565fd828<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frnew =3D 0x5555568b23e8<br>
                                    #10 0x0000555555892fd7 in
                                    address_space_update_topology
                                    (as=3D0x55555633b860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:765<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 old_view =3D 0x555556495910<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_view =3D 0x55555687f2c0<br>
                                    #11 0x00005555558930fc in
                                    memory_region_transaction_commit ()<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:800<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_transaction_commit&=
quot;<br>
                                    #12 0x00005555558951ed in
                                    memory_region_del_subregion
                                    (mr=3D0x5555562855d0, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0 subregion=3D0x555556=
349250)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1487<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_del_subregion&quot;=
<br>
                                    #13 0x000055555570fdf3 in
                                    pci_update_mappings
                                    (d=3D0x5555563489f0)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci.c:1113=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 r =3D 0x555556348af8<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_addr =3D
                                    18446744073709551615<br>
                                    #14 0x0000555555710110 in
                                    pci_default_write_config
                                    (d=3D0x5555563489f0, addr=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D0, l=3D2) at h=
w/pci/pci.c:1168<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 was_irq_disabled =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_default_write_config&quot;<br=
>
                                    #15 0x0000555555714125 in
                                    pci_host_config_write_common (<br>
                                    =C2=A0=C2=A0=C2=A0 pci_dev=3D0x55555634=
89f0, addr=3D4,
                                    limit=3D256, val=3D1024, len=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci_host.c=
:57<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_host_config_write_common&quot=
;<br>
                                    #16 0x0000555555714229 in
                                    pci_data_write (s=3D0x5555562a8cf0,
                                    addr=3D<a href=3D"tel:2147487748" value=
=3D"+12147487748" target=3D"_blank">2147487748</a>, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:84<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pci_dev =3D 0x5555563489f0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 config_addr =3D 4<br>
                                    #17 0x0000555555714351 in
                                    pci_host_data_write
                                    (opaque=3D0x555556311470, addr=3D0, <br=
>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:137<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D 0x555556311470<br>
                                    #18 0x0000555555891531 in
                                    memory_region_write_accessor
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, value=3D0x=
7fffffffd5e8,
                                    size=3D2, shift=3D0, mask=3D65535)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:441<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 tmp =3D 1024<br>
                                    #19 0x0000555555891636 in
                                    access_with_adjusted_size (addr=3D0, <b=
r>
                                    =C2=A0=C2=A0=C2=A0 value=3D0x7fffffffd5=
e8, size=3D2,
                                    access_size_min=3D1,
                                    access_size_max=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 access=3D0x555555891=
4b0
                                    &lt;memory_region_write_accessor&gt;,
                                    mr=3D0x555556313860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:478<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_mask =3D 65535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_size =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #20 0x0000555555893772 in
                                    memory_region_dispatch_write
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, data=3D102=
4, size=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:985<br>
                                    No locals.<br>
                                    #21 0x0000555555896068 in
                                    io_mem_write (mr=3D0x555556313860,
                                    addr=3D0, val=3D1024, <br>
                                    =C2=A0=C2=A0=C2=A0 size=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1744<br>
                                    No locals.<br>
                                    #22 0x000055555583183c in
                                    address_space_rw (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2, is_write=3D=
true) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 l =3D 2<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffd6f4
                                    &quot;\377\377\377\377&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 val =3D 1024<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 addr1 =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mr =3D 0x555556313860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 error =3D false<br>
                                    #23 0x0000555555831b12 in
                                    address_space_write (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2091<br>
                                    No locals.<br>
                                    #24 0x000055555588f486 in cpu_outw
                                    (addr=3D3324, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/iopor=
t.c:77<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 buf =3D &quot;\000\004&quot;<br>
                                    #25 0x000055555590f460 in do_outp
                                    (addr=3D3324, size=3D2, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:668<br>
                                    No locals.<br>
                                    #26 0x000055555590f66f in
                                    cpu_ioreq_pio (req=3D0x7ffff7ff3000)<br=
>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:729<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #27 0x000055555590f910 in
                                    handle_ioreq (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:781<br>
                                    No locals.<br>
                                    #28 0x000055555590fc0f in
                                    cpu_handle_ioreq
                                    (opaque=3D0x5555562abf10)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:856<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 state =3D 0x5555562abf10<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 req =3D 0x7ffff7ff3000<br>
                                    #29 0x000055555577c385 in
                                    qemu_iohandler_poll
                                    (pollfds=3D0x555556277600, ret=3D1)<br>
                                    =C2=A0=C2=A0=C2=A0 at iohandler.c:143<b=
r>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 revents =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pioh =3D 0x55555627ca90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ioh =3D 0x555556366320<br>
                                    #30 0x000055555577d14b in
                                    main_loop_wait (nonblocking=3D0) at
                                    main-loop.c:485<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ret =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout =3D 4294967295<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout_ns =3D 16717983<br>
                                    #31 0x0000555555815fbd in main_loop
                                    () at vl.c:2056<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nonblocking =3D false<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 last_io =3D 1<br>
                                    #32 0x000055555581d66b in main
                                    (argc=3D64, argv=3D0x7fffffffdc78, <br>
                                    =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde8=
0) at
                                    vl.c:4535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 snapshot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 linux_boot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 icount_option =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 initrd_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D
                                    0x55555598c664 &quot;&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 boot_order =3D 0x555556275340
                                    &quot;dc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ds =3D 0x5555563564e0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cyls =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 heads =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 secs =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 translation =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hda_opts =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 opts =3D 0x555556275290<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_opts =3D
                                    0x555556276ef0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 olist =3D 0x555555d72700
                                    &lt;qemu_machine_opts&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optind =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optarg =3D 0x7fffffffe61a
                                    &quot;file=3D/dev/sda3,if=3Dide,index=
=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 loadvm =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_class =3D
                                    0x55555626e030<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine =3D 0x555555d78540
                                    &lt;xenfv_machine&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cpu_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 vga_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_chrdev =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_log =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pid_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 incoming =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 show_vnc_port =3D 0<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 defconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 userconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_mask =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mem_trace =3D {malloc =3D
                                    0x55555581950b
                                    &lt;malloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 realloc =3D 0x555555819540
                                    &lt;realloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 free =3D 0x555555819584
                                    &lt;free_and_trace&gt;, calloc =3D
                                    0x0, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 try_malloc =3D 0x0,
                                    try_realloc =3D 0x0}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_events =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;main&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 args =3D {machine =3D
                                    0x555555d78540
                                    &lt;xenfv_machine&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=3D"+120132659=
20" target=3D"_blank">2013265920</a>,
                                    boot_order =3D 0x555556275340 &quot;dc&=
quot;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D 0x0,
                                    kernel_cmdline =3D 0x55555598c664 &quot=
;&quot;,
                                    <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D 0x0,
                                    cpu_model =3D 0x0}<br>
                                    <br>
                                  </div>
                                </div>
                              </div>
                              <div class=3D"gmail_extra"><br>
                                <div class=3D"gmail_quote">2015-01-04
                                  22:29 GMT+01:00 Goonie Windy <span dir=3D=
"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">mo=
nsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                  <blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                    <div dir=3D"ltr">
                                      <div>
                                        <div>
                                          <div>
                                            <div>Copyright (C) 2014 Free
                                              Software Foundation, Inc.<br>
                                              License GPLv3+: GNU GPL
                                              version 3 or later &lt;<a hre=
f=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/lic=
enses/gpl.html</a>&gt;<br>
                                              This is free software: you
                                              are free to change and
                                              redistribute it.<br>
                                              There is NO WARRANTY, to
                                              the extent permitted by
                                              law.=C2=A0 Type &quot;show co=
pying&quot;<br>
                                              and &quot;show warranty&quot;=
 for
                                              details.<br>
                                              This GDB was configured as
                                              &quot;x86_64-linux-gnu&quot;.=
<br>
                                              Type &quot;show configuration=
&quot;
                                              for configuration details.<br=
>
                                              For bug reporting
                                              instructions, please see:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gdb/=
bugs/</a>&gt;.<br>
                                              Find the GDB manual and
                                              other documentation
                                              resources online at:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/soft=
ware/gdb/documentation/</a>&gt;.<br>
                                              For help, type &quot;help&quo=
t;.<br>
                                              Type &quot;apropos word&quot;=
 to
                                              search for commands
                                              related to &quot;word&quot;..=
.<br>
                                              Reading symbols from
                                              /usr/lib/xen/bin/qemu-system-=
i386...done.<br>
                                              (gdb) target remote
                                              localhost:1234<br>
                                              Remote debugging using
                                              localhost:1234<br>
                                              Reading symbols from
                                              /lib64/ld-linux-x86-64.so.2..=
.Reading
                                              symbols from
                                              /usr/lib/debug//lib/x86_64-li=
nux-gnu/ld-2.19.so...done.<br>
                                              done.<br>
                                              Loaded symbols for
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              0x00007ffff7ddd190 in
                                              _start () from
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              (gdb) c<br>
                                              Continuing.<br>
                                              <br>
                                              Program received signal
                                              SIGSEGV, Segmentation
                                              fault.<br>
                                              0x00007ffff50e5801 in
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              443=C2=A0=C2=A0=C2=A0 char_de=
vice.c:
                                              Aucun fichier ou dossier
                                              de ce type.<br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                            </div>
                                          </div>
                                          (gdb) bt full ecc<br>
                                          No symbol &quot;ecc&quot; in curr=
ent
                                          context.
                                          <div>
                                            <div><br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                              <br>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                        AND <br>
                                        <br>
                                      </div>
                                      attached files<br>
                                      <br>
                                      <br>
                                      <div><br>
                                        <div><br>
                                          <br>
                                          <br>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                    <div>
                                      <div>
                                        <div class=3D"gmail_extra"><br>
                                          <div class=3D"gmail_quote">2015-0=
1-04
                                            22:24 GMT+01:00 Goonie Windy
                                            <span dir=3D"ltr">&lt;<a href=
=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gma=
il.com</a>&gt;</span>:<br>
                                            <blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                              <div dir=3D"ltr">GNU gdb
                                                (Debian 7.7.1+dfsg-5)
                                                7.7.1<br>
                                                Copyright (C) 2014 Free
                                                Software Foundation,
                                                Inc.<br>
                                                License GPLv3+: GNU GPL
                                                version 3 or later &lt;<a h=
ref=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/l=
icenses/gpl.html</a>&gt;<br>
                                                This is free software:
                                                you are free to change
                                                and redistribute it.<br>
                                                There is NO WARRANTY, to
                                                the extent permitted by
                                                law.=C2=A0 Type &quot;show
                                                copying&quot;<br>
                                                and &quot;show warranty&quo=
t; for
                                                details.<br>
                                                This GDB was configured
                                                as &quot;x86_64-linux-gnu&q=
uot;.<br>
                                                Type &quot;show
                                                configuration&quot; for
                                                configuration details.<br>
                                                For bug reporting
                                                instructions, please
                                                see:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gd=
b/bugs/</a>&gt;.<br>
                                                Find the GDB manual and
                                                other documentation
                                                resources online at:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/so=
ftware/gdb/documentation/</a>&gt;.<br>
                                                For help, type &quot;help&q=
uot;.<br>
                                                Type &quot;apropos word&quo=
t; to
                                                search for commands
                                                related to &quot;word&quot;=
...<br>
                                                Reading symbols from
                                                /usr/lib/xen/bin/qemu-syste=
m-i386...done.<br>
                                                (gdb) target remote
                                                localhost:1234<span><br>
                                                  Remote debugging using
                                                  localhost:1234<br>
                                                </span><span>Reading
                                                  symbols from
                                                  /lib64/ld-linux-x86-64.so=
.2...Reading
                                                  symbols from
                                                  /usr/lib/debug//lib/x86_6=
4-linux-gnu/ld-2.19.so...done.<br>
                                                  done.<br>
                                                  Loaded symbols for
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  0x00007ffff7ddd190 in
                                                  _start () from
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  (gdb) c<br>
                                                  Continuing.<br>
                                                  <br>
                                                </span>Program received
                                                signal SIGSEGV,
                                                Segmentation fault.<br>
                                                0x00007ffff50e5801 in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                443=C2=A0=C2=A0=C2=A0 char_=
device.c:
                                                Aucun fichier ou dossier
                                                de ce type.<br>
                                                (gdb) bt full<br>
                                                #0=C2=A0 0x00007ffff50e5801
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D
                                                &lt;optimized out&gt;<br>
                                                #1=C2=A0 0x00007ffff50e6497
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0 dev=3D0x=
55555647c750)
                                                at char_device.c:436<br>
                                                No locals.<br>
                                                #2=C2=A0
                                                spice_char_device_start
                                                (dev=3D0x55555647c750) at
                                                char_device.c:798<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_char_device_sta=
rt&quot;<br>
                                                #3=C2=A0 0x00007ffff51299c6
                                                in spice_server_vm_start
                                                (s=3D&lt;optimized
                                                out&gt;)<br>
                                                =C2=A0=C2=A0=C2=A0 at reds.=
c:3795<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_server_vm_start=
&quot;<br>
                                                #4=C2=A0 0x00005555557f40c9
                                                in
                                                qemu_spice_display_start
                                                () at
                                                ui/spice-core.c:909<br>
                                                No locals.<br>
                                                #5=C2=A0 0x00005555556c4365
                                                in qxl_hard_reset
                                                (d=3D0x55555637d7e0,
                                                loadvm=3D0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1172<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                                #6=C2=A0 0x00005555556c43a3
                                                in qxl_reset_handler
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1180<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D
                                                0x55555637d7e0<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                #7=C2=A0 0x0000555555699658
                                                in device_reset
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:934<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                                0x555556270410<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;device_reset&quot;<br=
>
                                                #8=C2=A0 0x0000555555697a56
                                                in qdev_reset_one
                                                (dev=3D0x55555637d7e0,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:240<br>
                                                No locals.<br>
                                                #9=C2=A0 0x0000555555697f64
                                                in qdev_walk_children
                                                (dev=3D0x55555637d7e0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:411<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #10 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a8ee0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x55555633d4f0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #11 0x0000555555697f28
                                                in qdev_walk_children
                                                (dev=3D0x5555563131b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:403<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a8ee0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #12 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a60b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x5555562a6a80<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #13 0x0000555555697b32
                                                in qbus_reset_all
                                                (bus=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:261<br>
                                                No locals.<br>
                                                #14 0x0000555555697b54
                                                in qbus_reset_all_fn
                                                (opaque=3D0x5555562a60b0)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:267<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a60b0<br>
                                                #15 0x0000555555815b1f
                                                in qemu_devices_reset ()
                                                at vl.c:1872<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                                0x555556375890<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                                #16 0x0000555555815bbf
                                                in qemu_system_reset
                                                (report=3Dtrue) at
                                                vl.c:1885<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;qemu_system_reset&quo=
t;<br>
                                                #17 0x000055555590fcb9
                                                in cpu_handle_ioreq
                                                (opaque=3D0x5555562b0950)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                /home/goon/xen/tools/qemu-x=
en-dir/xen-hvm.c:881<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                                0x5555562b0950<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
       </div></blockquote></div></div></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div>...</blockquote></div>
</blockquote></div><br></div>

--089e0160b5949e4461050be7d03a--


--===============1329218083391350911==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--===============1329218083391350911==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jan 05 13:39:17 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 05 Jan 2015 13:39:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y87sL-0000BZ-Ku; Mon, 05 Jan 2015 13:39:17 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <monsieur.goonie@gmail.com>) id 1Y87sJ-0000BH-FJ
	for win-pv-devel@lists.xenproject.org; Mon, 05 Jan 2015 13:39:16 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
	46/46-27785-2049AA45; Mon, 05 Jan 2015 13:39:14 +0000
X-Env-Sender: monsieur.goonie@gmail.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1420465149!13919940!1
X-Originating-IP: [209.85.218.42]
X-SpamReason: No, hits=2.3 required=7.0 tests=BIZ_TLD,HTML_60_70,
	HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22081 invoked from network); 5 Jan 2015 13:39:10 -0000
Received: from mail-oi0-f42.google.com (HELO mail-oi0-f42.google.com)
	(209.85.218.42)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Jan 2015 13:39:10 -0000
Received: by mail-oi0-f42.google.com with SMTP id v63so47693307oia.1
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 05 Jan 2015 05:39:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=CwcuIt6iC6LWvF00iVxPb2yJZ532xQZEz06gopZnUUE=;
	b=v9iapD0/QktOyYIdP3MAKznLkq1xvHRPdTf//Xv8BHRdR72zHhhqzr3yjR/4DPY0j+
	u544uuRTOUhXk7rgOQSt6ZeyatSE0chhsXh9vB1JWv6A2jlCETxft3d8yRJGyeM6fmeM
	M3erpgT0ptVYhhMPvRzXAKgfY0Dzemn/eEs1ZXbSyZApOQY/QocT3GVCEzHkCVa6K2D4
	g/CsZaCwxRkaGX/Q8Rnw+XN3mNhNitQPVxrD8jMnsXIjv+FkSaub7+awDzG1KE74ENpv
	zIWsBSkRn9oqNhtmFFvX5sx7y2Qg17Mo9Wfl8YE+i75rM+y2M0XeVCvkX+UZt0NX0i8o
	jR0A==
MIME-Version: 1.0
X-Received: by 10.182.50.225 with SMTP id f1mr53011029obo.45.1420465148935;
	Mon, 05 Jan 2015 05:39:08 -0800 (PST)
Received: by 10.182.26.72 with HTTP; Mon, 5 Jan 2015 05:39:08 -0800 (PST)
In-Reply-To: <CAE5x5YUBCsyE30zUQ6jE1e1N7FKcQM=+VztVy3JzEFpG9Fzkiw@mail.gmail.com>
References: <CAE5x5YU4qBTxp+36FioAROdTOPgrU79MN3s+BkmPTWq+qsVt6w@mail.gmail.com>
	<54A53352.5090603@m2r.biz>
	<CAE5x5YVwj5zpUiS92V_8BuinUrtZZhpd8BMbH=Mo_gCmD29S2Q@mail.gmail.com>
	<54A5505C.1070602@m2r.biz>
	<CAE5x5YXdw2n-xxwpmbS_cgeTb+GSiBQ2QbUmxF7j-5gX8a24Jg@mail.gmail.com>
	<CABMPFzg4jYoMoUM2k5wys3y=iyW712RiLKSixDofXgsKe+PwJw@mail.gmail.com>
	<CAE5x5YXhCUvsfKdUN1nNQ_4hPXjBMoeSTMGYu5ysw4wki-n0PQ@mail.gmail.com>
	<CAE5x5YVhL+AmvS53KgNkz8MgDYbH5At_DDt4+tCPzqnht2V-KQ@mail.gmail.com>
	<54A97FA5.90208@m2r.biz>
	<CAE5x5YXmTZAO0c4n1qXxa2+1T2xT3QPHf3Be2CrK2dxtjmpihA@mail.gmail.com>
	<CAE5x5YUjXY9bqY6mOSU2b0RgLaLaM4K0MpS-KOWCB2E+_QLnXA@mail.gmail.com>
	<CAE5x5YXuAPCKM5aP=63ZiH-ffmfki1ioMNsYEV36+SBLz0_t_A@mail.gmail.com>
	<CAE5x5YUXObr6g2juExrb4zzLDg+S=v+Rw1ZDqCy7G6TfhpZTAQ@mail.gmail.com>
	<CAE5x5YV_VDjEK6rxFcZX09WGcLT-i4OrtU8gJa6ZfYTZdjvJ0w@mail.gmail.com>
	<CAE5x5YU9RJo0SFWOAV-hrxmA0FfKz+fXSHqu7mC04e2j6hbvWw@mail.gmail.com>
	<CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
	<54AA549F.8050507@m2r.biz>
	<CAE5x5YUBCsyE30zUQ6jE1e1N7FKcQM=+VztVy3JzEFpG9Fzkiw@mail.gmail.com>
Date: Mon, 5 Jan 2015 14:39:08 +0100
Message-ID: <CAE5x5YVmgs1_XFiX=vXvqqBSxA3v8O_Y9cGO96CsGxXHAFwyGw@mail.gmail.com>
From: Goonie Windy <monsieur.goonie@gmail.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"Paul.Durrant@citrix.com >> Paul Durrant" <paul.durrant@citrix.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] [Xen-devel] [DEBUGGING Xen/Qxl/Debian Sid] qemu
 crash on xenbus pv driver install
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1329218083391350911=="
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

--===============1329218083391350911==
Content-Type: multipart/alternative; boundary=089e0160b5949e4461050be7d03a

--089e0160b5949e4461050be7d03a
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi again and sorry for monopolizing, so I tested a bit QXL/spice in my win
7 x64 domU on Xenserver 4.5 RC4 with Fantu patch.

I get errors when trying to move remote-viewer window: I get a connection
refused.

System is using deb8 unstables (sid) with only Xen compiled from sources.

Xen BT full is below, machine details, you should have them now.

Should I try to compile spice on my machine or something?


regards,

GregB:

(gdb) target remote localhost:1234
Remote debugging using localhost:1234
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from
/usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
(gdb) c
Continuing.

Program received signal SIGABRT, Aborted.
0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56    ../nptl/sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de
ce type.
(gdb) bt full
#0  0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
        resultvar =3D 0
        pid =3D 10818
        selftid =3D 10818
#1  0x00007ffff3e724e8 in __GI_abort () at abort.c:89
        save_stage =3D 2
        act =3D {__sigaction_handler =3D {sa_handler =3D 0xb8000000,
            sa_sigaction =3D 0xb8000000}, sa_mask =3D {__val =3D
{13258597306065747968,
              13258597306065747968, 3087007744, 3087007744, 0, 0,
              13258597302978740224, 13258597302978740224,
13258597302978740224, 0, 0,
              0, 0, 0, 0, 0}}, sa_flags =3D 0, sa_restorer =3D
0xb800000000000000}
        sigs =3D {__val =3D {32, 0 <repeats 15 times>}}
#2  0x00007ffff3eaf044 in __libc_message (do_abort=3Ddo_abort@entry=3D1,
    fmt=3Dfmt@entry=3D0x7ffff3fa1c60 "*** Error in `%s': %s: 0x%s ***\n")
    at ../sysdeps/posix/libc_fatal.c:175
        ap =3D {{gp_offset =3D 40, fp_offset =3D 0, overflow_arg_area =3D
0x7fffffffd300,
            reg_save_area =3D 0x7fffffffd290}}
        fd =3D 2
        on_2 =3D <optimized out>
        list =3D <optimized out>
        nlist =3D <optimized out>
        cp =3D <optimized out>
        written =3D <optimized out>
#3  0x00007ffff3eb481e in malloc_printerr (action=3D1,
    str=3D0x7ffff3fa1db0 "double free or corruption (out)", ptr=3D<optimize=
d
out>)
    at malloc.c:4996
        buf =3D "0000555556bb85e0"
        cp =3D <optimized out>
#4  0x00007ffff3eb5526 in _int_free (av=3D<optimized out>, p=3D<optimized o=
ut>,
    have_lock=3D0) at malloc.c:3840
        size =3D <optimized out>
        fb =3D <optimized out>
        nextchunk =3D <optimized out>
        nextsize =3D <optimized out>
        nextinuse =3D <optimized out>
        prevsize =3D <optimized out>
        bck =3D <optimized out>
        fwd =3D <optimized out>
        errstr =3D <optimized out>
        locked =3D <optimized out>
        __func__ =3D "_int_free"
#5  0x00007ffff4c7c7e5 in ?? () from
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#6  0x00007ffff4c7c759 in pixman_image_unref ()
   from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
No symbol table info available.
#7  0x00005555557ee88e in qemu_pixman_image_unref (image=3D0x555556335f00)
    at ui/qemu-pixman.c:80
No locals.
#8  0x000055555580c21f in vnc_dpy_switch (dcl=3D0x7fffe849e048,
surface=3D0x555556627c90)
    at ui/vnc.c:588
        vd =3D 0x7fffe849e010
        vs =3D 0xff0000ff00
#9  0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x555556312e90,
    surface=3D0x555556627c90) at ui/console.c:1404
        s =3D 0x55555633d710
        old_surface =3D 0x555556336160
        dcl =3D 0x7fffe849e048
#10 0x00005555556bfa0c in qxl_render_update_area_unlocked
(qxl=3D0x555556387f50)
    at hw/display/qxl-render.c:131
        vga =3D 0x555556388a40
        surface =3D 0x555556627c90
        i =3D 21845
#11 0x00005555556bfc84 in qxl_render_update_area_bh (opaque=3D0x555556387f5=
0)
    at hw/display/qxl-render.c:183
        qxl =3D 0x555556387f50
#12 0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556277840) at async.c:81
        bh =3D 0x555556313d40
        bhp =3D 0x7fffffffd570
        next =3D 0x555556313d10
        ret =3D 1
#13 0x00005555555e3a1a in aio_poll (ctx=3D0x555556277840, blocking=3Dfalse)
    at aio-posix.c:188
        node =3D 0x7ffff41f3a89 <write+57>
        ret =3D 0
        progress =3D false
#14 0x00005555555e4088 in aio_ctx_dispatch (source=3D0x555556277840,
callback=3D0x0,
    user_data=3D0x0) at async.c:211
        ctx =3D 0x555556277840
        __PRETTY_FUNCTION__ =3D "aio_ctx_dispatch"
#15 0x00007ffff707dc5d in g_main_dispatch (context=3D0x555556278b50)
    at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3111
        dispatch =3D 0x5555555e4035 <aio_ctx_dispatch>
        prev_source =3D 0x0
        was_in_call =3D 0
---Type <return> to continue, or q <return> to quit---
        user_data =3D 0x0
        callback =3D 0x0
        cb_funcs =3D <optimized out>
        cb_data =3D <optimized out>
        need_destroy =3D <optimized out>
        source =3D 0x555556277840
        current =3D 0x55555626ec40
        i =3D 0
#16 g_main_context_dispatch (context=3D0x555556278b50)
    at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3710
No locals.
#17 0x000055555577cf98 in glib_pollfds_poll () at main-loop.c:190
        context =3D 0x555556278b50
        pfds =3D 0x555556628928
#18 0x000055555577d075 in os_host_main_loop_wait (timeout=3D0) at
main-loop.c:235
        ret =3D 2
        spin_counter =3D 2
#19 0x000055555577d134 in main_loop_wait (nonblocking=3D0) at main-loop.c:4=
84
        ret =3D 21845
        timeout =3D 4294967295
        timeout_ns =3D 2937562
#20 0x0000555555815fbd in main_loop () at vl.c:2056
        nonblocking =3D false
        last_io =3D 0
#21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdb48,
envp=3D0x7fffffffdd60)
    at vl.c:4535
        i =3D 64
        snapshot =3D 0
        linux_boot =3D 0
        icount_option =3D 0x0
        initrd_filename =3D 0x0
        kernel_filename =3D 0x0
        kernel_cmdline =3D 0x55555598c664 ""
        boot_order =3D 0x555556275340 "dc"
        ds =3D 0x55555633d710
        cyls =3D 0
        heads =3D 0
        secs =3D 0
        translation =3D 0
        hda_opts =3D 0x0
        opts =3D 0x555556275290
        machine_opts =3D 0x555556276ef0
        olist =3D 0x555555d72700 <qemu_machine_opts>
---Type <return> to continue, or q <return> to quit---
        optind =3D 66
        optarg =3D 0x7fffffffe55e
"file=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,ind=
ex=3D2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632"
        loadvm =3D 0x0
        machine_class =3D 0x55555626e030
        machine =3D 0x555555d78540 <xenfv_machine>
        cpu_model =3D 0x0
        vga_model =3D 0x0
        qtest_chrdev =3D 0x0
        qtest_log =3D 0x0
        pid_file =3D 0x0
        incoming =3D 0x0
        show_vnc_port =3D 0
        defconfig =3D true
        userconfig =3D true
        log_mask =3D 0x0
        log_file =3D 0x0
        mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
          realloc =3D 0x555555819540 <realloc_and_trace>,
          free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0, try_mal=
loc
=3D 0x0,
          try_realloc =3D 0x0}
        trace_events =3D 0x0
        trace_file =3D 0x0
        __func__ =3D "main"
        args =3D {machine =3D 0x555555d78540 <xenfv_machine>, ram_size =3D
2013265920,
          boot_order =3D 0x555556275340 "dc", kernel_filename =3D 0x0,
          kernel_cmdline =3D 0x55555598c664 "", initrd_filename =3D 0x0,
cpu_model =3D 0x0}


2015-01-05 12:12 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:

> Well r=C3=A9installed from scratch, added winpv and spice drivers the bor=
der
> you gave me and Th=C3=A9r=C3=A8se is NO more bugs related to winpv .  wil=
l test
> reboot and spice/qxl functionnalities when possible. Regards.  Greg b
> Le 5 janv. 2015 10:08, "Fabio Fantoni" <fabio.fantoni@m2r.biz> a =C3=A9cr=
it :
>
>>  Il 05/01/2015 00:24, Goonie Windy ha scritto:
>>
>> AND DMESG
>> [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8 ip
>> 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in libc-2.19.so
>> [7f92a64d4000+19f000]
>> [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state
>> [ 3096.118716] device vif5.0-emu left promiscuous mode
>> [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state
>> [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state
>> [ 3584.894741] device vif5.0 left promiscuous mode
>> [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state
>> [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
>> [ 3681.878054] device vif6.0 entered promiscuous mode
>> [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
>> [ 3682.193528] device vif6.0-emu entered promiscuous mode
>> [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding state
>> [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding state
>> [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state
>> [ 3780.535444] device vif6.0-emu left promiscuous mode
>> [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state
>> [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state
>> [ 3899.555577] device vif6.0 left promiscuous mode
>> [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state
>>
>>
>> 2015-01-05 0:21 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>
>>>   GNU nano 2.2.6                                          Fichier :
>>> qemu-dm-win7.log
>>>
>>>
>>> (/usr/local/sbin/xl:9535): Spice-Warning **:
>>> reds.c:1863:reds_handle_ticket: Invalid password
>>> main_channel_link: add main channel client
>>> main_channel_handle_parsed: net test: latency 0.318000 ms, bitrate
>>> 26597402597 bps (25365.259740 Mbps)
>>> inputs_connect: inputs channel client create
>>> red_dispatcher_set_cursor_peer:
>>> main_channel_handle_parsed: agent start
>>> main_channel_handle_parsed: agent start
>>> *** Error in `/usr/lib/xen/bin/qemu-system-i386': double free or
>>> corruption (out): 0x00007f0e38dd26f0 ***
>>>
>>>
>>> 2015-01-05 0:00 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>
>>>> Should add this too:
>>>> host                   : E766
>>>> release                : 3.16.0-4-amd64
>>>> version                : #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08)
>>>> machine                : x86_64
>>>> nr_cpus                : 4
>>>> max_cpu_id             : 7
>>>> nr_nodes               : 1
>>>> cores_per_socket       : 2
>>>> threads_per_core       : 2
>>>> cpu_mhz                : 2594
>>>> hw_caps                :
>>>> bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:0000028=
1
>>>> virt_caps              : hvm hvm_directio
>>>> total_memory           : 8055
>>>> free_memory            : 2309
>>>> sharing_freed_memory   : 0
>>>> sharing_used_memory    : 0
>>>> outstanding_claims     : 0
>>>> free_cpus              : 0
>>>> xen_major              : 4
>>>> xen_minor              : 5
>>>> xen_extra              : .0-rc
>>>> xen_version            : 4.5.0-rc
>>>> xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
>>>> hvm-3.0-x86_32p hvm-3.0-x86_64
>>>> xen_scheduler          : credit
>>>> xen_pagesize           : 4096
>>>> platform_params        : virt_start=3D0xffff800000000000
>>>> xen_changeset          : Thu Dec 18 10:02:16 2014 +0000
>>>> git:36174af-dirty
>>>> xen_commandline        : placeholder
>>>> cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>>>> cc_compile_by          : root
>>>> cc_compile_domain      :
>>>> cc_compile_date        : Wed Dec 31 01:20:47 CET 2014
>>>> xend_config_format     : 4
>>>>
>>>>
>>>>
>>>> 2015-01-04 23:39 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>
>>>>> My qemu log after spice failure:
>>>>> (/usr/local/sbin/xl:4254): Spice-Warning **:
>>>>> reds.c:1863:reds_handle_ticket: Invalid password
>>>>> main_channel_link: add main channel client
>>>>> main_channel_handle_parsed: net test: latency 0.257000 ms, bitrate
>>>>> 81920000000 bps (78125.000000 Mbps)
>>>>> red_dispatcher_set_cursor_peer:
>>>>> inputs_connect: inputs channel client create
>>>>> main_channel_handle_parsed: agent start
>>>>> main_channel_handle_parsed: agent start
>>>>> qemu-system-i386: malloc.c:2372: sysmalloc: Assertion `(old_top =3D=
=3D
>>>>> (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offs=
etof
>>>>> (struct malloc_chunk, fd)))) && old_size =3D=3D 0) || ((unsigned long=
)
>>>>> (old_size) >=3D (unsigned long)((((__builtin_offsetof (struct malloc_=
chunk,
>>>>> fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) =
- 1)))
>>>>> && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) =
=3D=3D 0)'
>>>>> failed.
>>>>>
>>>>>
>>>>> 2015-01-04 23:10 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>
>>>>>>  This one is bug from trying to install winpv  bus driver
>>>>>>
>>>>>
>> If you followed all my advices your configurations should be ok and you
>> found a new bug or inexpected case.
>> I do not have the knowledge to solve it.
>> Added to cc also win-pv-devel
>> Can someone take a look to this problem please?
>>
>>
>>>>>>
>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>> _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>> bytes=3Dbytes@entry=3D73729)
>>>>>>     at malloc.c:3775
>>>>>> 3775    malloc.c: Aucun fichier ou dossier de ce type.
>>>>>> (gdb) bt full
>>>>>> #0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>>     bytes=3Dbytes@entry=3D73729) at malloc.c:3775
>>>>>>         p =3D 0x555557303880
>>>>>>         iters =3D <optimized out>
>>>>>>         nb =3D 73744
>>>>>>         idx =3D <optimized out>
>>>>>>         bin =3D <optimized out>
>>>>>>         victim =3D 0x555557303870
>>>>>>         size =3D <optimized out>
>>>>>>         victim_index =3D <optimized out>
>>>>>>         remainder =3D 0x555557315880
>>>>>>         remainder_size =3D <optimized out>
>>>>>>         block =3D 4
>>>>>>         bit =3D <optimized out>
>>>>>>         map =3D 66981887
>>>>>>         fwd =3D <optimized out>
>>>>>>         bck =3D <optimized out>
>>>>>>         errstr =3D 0x0
>>>>>>         __func__ =3D "_int_malloc"
>>>>>> #1  0x00007ffff3eb74a1 in _int_realloc (
>>>>>>     av=3Dav@entry=3D0x7ffff41df620 <main_arena>, oldp=3Doldp@entry=
=3D0x55555689d270,
>>>>>>
>>>>>>     oldsize=3Doldsize@entry=3D36880, nb=3Dnb@entry=3D73744) at mallo=
c.c:4286
>>>>>>         newp =3D <optimized out>
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         newsize =3D <optimized out>
>>>>>>         newmem =3D <optimized out>
>>>>>>         next =3D 0x5555568a6280
>>>>>>         remainder =3D <optimized out>
>>>>>>         remainder_size =3D <optimized out>
>>>>>>         bck =3D <optimized out>
>>>>>>         fwd =3D <optimized out>
>>>>>>         copysize =3D <optimized out>
>>>>>>         ncopies =3D <optimized out>
>>>>>>         s =3D <optimized out>
>>>>>>         d =3D <optimized out>
>>>>>>         errstr =3D 0x0
>>>>>>         __func__ =3D "_int_realloc"
>>>>>>         nextsize =3D <optimized out>
>>>>>> #2  0x00007ffff3eb85f9 in __GI___libc_realloc (oldmem=3D0x55555689d2=
80,
>>>>>>     bytes=3D73728) at malloc.c:3029
>>>>>>         ar_ptr =3D 0x7ffff41df620 <main_arena>
>>>>>>         nb =3D 73744
>>>>>>         newp =3D <optimized out>
>>>>>>         hook =3D <optimized out>
>>>>>>         oldp =3D 0x55555689d270
>>>>>>         oldsize =3D 36880
>>>>>>         __func__ =3D "__libc_realloc"
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>> #3  0x0000555555819563 in realloc_and_trace (mem=3D0x55555689d280,
>>>>>> n_bytes=3D73728)
>>>>>>     at vl.c:2857
>>>>>>         ptr =3D 0x7fffffffcf30
>>>>>> #4  0x00007ffff708388e in g_realloc (mem=3D<optimized out>,
>>>>>> n_bytes=3D73728)
>>>>>>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162
>>>>>>         newmem =3D <optimized out>
>>>>>> #5  0x000055555582d3e2 in phys_map_node_reserve (map=3D0x5555563ccf9=
8,
>>>>>> nodes=3D18)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/exec.c:152
>>>>>> No locals.
>>>>>> #6  0x000055555582d701 in phys_page_set (d=3D0x5555563ccf90, index=
=3D160,
>>>>>> nb=3D16,
>>>>>>     leaf=3D5) at /home/goon/xen/tools/qemu-xen-dir/exec.c:211
>>>>>> No locals.
>>>>>> #7  0x000055555582f1ae in register_multipage (d=3D0x5555563ccf90,
>>>>>>     section=3D0x7fffffffcfe0) at
>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:937
>>>>>>         start_addr =3D 655360
>>>>>>         section_index =3D 5
>>>>>>         num_pages =3D 16
>>>>>>         __PRETTY_FUNCTION__ =3D "register_multipage"
>>>>>> #8  0x000055555582f4b4 in mem_add (listener=3D0x55555633b898,
>>>>>>     section=3D0x7fffffffd1a0) at
>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:968
>>>>>>         as =3D 0x55555633b860
>>>>>>         d =3D 0x5555563ccf90
>>>>>>         now =3D {mr =3D 0x55555636dd30, address_space =3D 0x55555633=
b860,
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =3D=
 0},
>>>>>>           offset_within_address_space =3D 655360, readonly =3D false=
}
>>>>>>         remain =3D {mr =3D 0x55555636dd30, address_space =3D
>>>>>> 0x55555633b860,
>>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =3D=
 0},
>>>>>>           offset_within_address_space =3D 655360, readonly =3D false=
}
>>>>>>         page_size =3D {lo =3D 4096, hi =3D 0}
>>>>>> #9  0x0000555555892a01 in address_space_update_topology_pass (
>>>>>>     as=3D0x55555633b860, old_view=3D0x555556495910,
>>>>>> new_view=3D0x55555687f2c0,
>>>>>>     adding=3Dtrue) at /home/goon/xen/tools/qemu-xen-dir/memory.c:736
>>>>>>         _listener =3D 0x55555633b898
>>>>>>         iold =3D 1
>>>>>>         inew =3D 1
>>>>>>         frold =3D 0x5555565fd828
>>>>>>         frnew =3D 0x5555568b23e8
>>>>>> #10 0x0000555555892fd7 in address_space_update_topology
>>>>>> (as=3D0x55555633b860)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:765
>>>>>>         old_view =3D 0x555556495910
>>>>>>         new_view =3D 0x55555687f2c0
>>>>>> #11 0x00005555558930fc in memory_region_transaction_commit ()
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:800
>>>>>>         as =3D 0x55555633b860
>>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_transaction_commit"
>>>>>> #12 0x00005555558951ed in memory_region_del_subregion
>>>>>> (mr=3D0x5555562855d0,
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>     subregion=3D0x555556349250)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:1487
>>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_del_subregion"
>>>>>> #13 0x000055555570fdf3 in pci_update_mappings (d=3D0x5555563489f0)
>>>>>>     at hw/pci/pci.c:1113
>>>>>>         r =3D 0x555556348af8
>>>>>>         i =3D 0
>>>>>>         new_addr =3D 18446744073709551615
>>>>>> #14 0x0000555555710110 in pci_default_write_config (d=3D0x5555563489=
f0,
>>>>>> addr=3D4,
>>>>>>     val=3D0, l=3D2) at hw/pci/pci.c:1168
>>>>>>         i =3D 2
>>>>>>         was_irq_disabled =3D 0
>>>>>>         __PRETTY_FUNCTION__ =3D "pci_default_write_config"
>>>>>> #15 0x0000555555714125 in pci_host_config_write_common (
>>>>>>     pci_dev=3D0x5555563489f0, addr=3D4, limit=3D256, val=3D1024, len=
=3D2)
>>>>>>     at hw/pci/pci_host.c:57
>>>>>>         __PRETTY_FUNCTION__ =3D "pci_host_config_write_common"
>>>>>> #16 0x0000555555714229 in pci_data_write (s=3D0x5555562a8cf0, addr=
=3D
>>>>>> 2147487748,
>>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:84
>>>>>>         pci_dev =3D 0x5555563489f0
>>>>>>         config_addr =3D 4
>>>>>> #17 0x0000555555714351 in pci_host_data_write (opaque=3D0x5555563114=
70,
>>>>>> addr=3D0,
>>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:137
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         s =3D 0x555556311470
>>>>>> #18 0x0000555555891531 in memory_region_write_accessor
>>>>>> (mr=3D0x555556313860,
>>>>>>     addr=3D0, value=3D0x7fffffffd5e8, size=3D2, shift=3D0, mask=3D65=
535)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:441
>>>>>>         tmp =3D 1024
>>>>>> #19 0x0000555555891636 in access_with_adjusted_size (addr=3D0,
>>>>>>     value=3D0x7fffffffd5e8, size=3D2, access_size_min=3D1,
>>>>>> access_size_max=3D4,
>>>>>>     access=3D0x5555558914b0 <memory_region_write_accessor>,
>>>>>> mr=3D0x555556313860)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:478
>>>>>>         access_mask =3D 65535
>>>>>>         access_size =3D 2
>>>>>>         i =3D 0
>>>>>> #20 0x0000555555893772 in memory_region_dispatch_write
>>>>>> (mr=3D0x555556313860,
>>>>>>     addr=3D0, data=3D1024, size=3D2)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:985
>>>>>> No locals.
>>>>>> #21 0x0000555555896068 in io_mem_write (mr=3D0x555556313860, addr=3D=
0,
>>>>>> val=3D1024,
>>>>>>     size=3D2) at /home/goon/xen/tools/qemu-xen-dir/memory.c:1744
>>>>>> No locals.
>>>>>> #22 0x000055555583183c in address_space_rw (
>>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>>     len=3D2, is_write=3Dtrue) at
>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:2029
>>>>>>         l =3D 2
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         ptr =3D 0x7fffffffd6f4 "\377\377\377\377"
>>>>>>         val =3D 1024
>>>>>>         addr1 =3D 0
>>>>>>         mr =3D 0x555556313860
>>>>>>         error =3D false
>>>>>> #23 0x0000555555831b12 in address_space_write (
>>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>>     len=3D2) at /home/goon/xen/tools/qemu-xen-dir/exec.c:2091
>>>>>> No locals.
>>>>>> #24 0x000055555588f486 in cpu_outw (addr=3D3324, val=3D1024)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/ioport.c:77
>>>>>>         buf =3D "\000\004"
>>>>>> #25 0x000055555590f460 in do_outp (addr=3D3324, size=3D2, val=3D1024=
)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668
>>>>>> No locals.
>>>>>> #26 0x000055555590f66f in cpu_ioreq_pio (req=3D0x7ffff7ff3000)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729
>>>>>>         i =3D 0
>>>>>> #27 0x000055555590f910 in handle_ioreq (req=3D0x7ffff7ff3000)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781
>>>>>> No locals.
>>>>>> #28 0x000055555590fc0f in cpu_handle_ioreq (opaque=3D0x5555562abf10)
>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         state =3D 0x5555562abf10
>>>>>>         req =3D 0x7ffff7ff3000
>>>>>> #29 0x000055555577c385 in qemu_iohandler_poll
>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>     at iohandler.c:143
>>>>>>         revents =3D 1
>>>>>>         pioh =3D 0x55555627ca90
>>>>>>         ioh =3D 0x555556366320
>>>>>> #30 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>> main-loop.c:485
>>>>>>         ret =3D 1
>>>>>>         timeout =3D 4294967295
>>>>>>         timeout_ns =3D 16717983
>>>>>> #31 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>         nonblocking =3D false
>>>>>>         last_io =3D 1
>>>>>> #32 0x000055555581d66b in main (argc=3D64, argv=3D0x7fffffffdc78,
>>>>>>     envp=3D0x7fffffffde80) at vl.c:4535
>>>>>>         i =3D 64
>>>>>>         snapshot =3D 0
>>>>>>         linux_boot =3D 0
>>>>>>         icount_option =3D 0x0
>>>>>>         initrd_filename =3D 0x0
>>>>>>         kernel_filename =3D 0x0
>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         boot_order =3D 0x555556275340 "dc"
>>>>>>         ds =3D 0x5555563564e0
>>>>>>         cyls =3D 0
>>>>>>         heads =3D 0
>>>>>>         secs =3D 0
>>>>>>         translation =3D 0
>>>>>>         hda_opts =3D 0x0
>>>>>>         opts =3D 0x555556275290
>>>>>>         machine_opts =3D 0x555556276ef0
>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>         optind =3D 64
>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cache=
=3Dwriteback"
>>>>>>         loadvm =3D 0x0
>>>>>>         machine_class =3D 0x55555626e030
>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>         cpu_model =3D 0x0
>>>>>>         vga_model =3D 0x0
>>>>>>         qtest_chrdev =3D 0x0
>>>>>>         qtest_log =3D 0x0
>>>>>>         pid_file =3D 0x0
>>>>>>         incoming =3D 0x0
>>>>>>         show_vnc_port =3D 0
>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>         defconfig =3D true
>>>>>>         userconfig =3D true
>>>>>>         log_mask =3D 0x0
>>>>>>         log_file =3D 0x0
>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>         trace_events =3D 0x0
>>>>>>         trace_file =3D 0x0
>>>>>>         __func__ =3D "main"
>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275340 "dc=
",
>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664=
 "",
>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>
>>>>>>
>>>>>> 2015-01-04 22:29 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>>
>>>>>>>   Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>> This is free software: you are free to change and redistribute it.
>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>> copying"
>>>>>>> and "show warranty" for details.
>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>> Type "show configuration" for configuration details.
>>>>>>> For bug reporting instructions, please see:
>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>> For help, type "help".
>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>> (gdb) target remote localhost:1234
>>>>>>> Remote debugging using localhost:1234
>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>> done.
>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>> (gdb) c
>>>>>>> Continuing.
>>>>>>>
>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>> (gdb) bt full
>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>         sif =3D <optimized out>
>>>>>>>         total =3D <optimized out>
>>>>>>>         n =3D <optimized out>
>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>> No locals.
>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c=
:798
>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out=
>)
>>>>>>>     at reds.c:3795
>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>         item =3D 0x5555562d8350
>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>> ui/spice-core.c:909
>>>>>>> No locals.
>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadv=
m=3D0)
>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>         startstop =3D true
>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>         d =3D 0x55555637d7e0
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>     at hw/core/qdev.c:934
>>>>>>>         klass =3D 0x555556270410
>>>>>>>         __func__ =3D "device_reset"
>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>> opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:240
>>>>>>> No locals.
>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:411
>>>>>>>         bus =3D 0x0
>>>>>>>         err =3D 0
>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>         err =3D 0
>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:403
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>         err =3D 0
>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>         err =3D 0
>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>     at hw/core/qdev.c:261
>>>>>>> No locals.
>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b=
0)
>>>>>>>     at hw/core/qdev.c:267
>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>         re =3D 0x555556375890
>>>>>>>         nre =3D 0x0
>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>> vl.c:1885
>>>>>>>         mc =3D 0x55555626e030
>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950=
)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>         state =3D 0x5555562b0950
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>     at iohandler.c:143
>>>>>>>         revents =3D 1
>>>>>>>         pioh =3D 0x5555563218c0
>>>>>>>         ioh =3D 0x555556362a80
>>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>> main-loop.c:485
>>>>>>>         ret =3D 1
>>>>>>>         timeout =3D 4294967295
>>>>>>>         timeout_ns =3D 17355567
>>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>         nonblocking =3D false
>>>>>>>         last_io =3D 1
>>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>>         i =3D 64
>>>>>>>         snapshot =3D 0
>>>>>>>         linux_boot =3D 0
>>>>>>>         icount_option =3D 0x0
>>>>>>>         initrd_filename =3D 0x0
>>>>>>>         kernel_filename =3D 0x0
>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         ds =3D 0x5555563324a0
>>>>>>>         cyls =3D 0
>>>>>>>         heads =3D 0
>>>>>>>         secs =3D 0
>>>>>>>         translation =3D 0
>>>>>>>         hda_opts =3D 0x0
>>>>>>>         opts =3D 0x5555562752d0
>>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>         optind =3D 66
>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cach=
e=3Dwriteback"
>>>>>>>         loadvm =3D 0x0
>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>         cpu_model =3D 0x0
>>>>>>>         vga_model =3D 0x0
>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>         qtest_log =3D 0x0
>>>>>>>         pid_file =3D 0x0
>>>>>>>         incoming =3D 0x0
>>>>>>>         show_vnc_port =3D 0
>>>>>>>         defconfig =3D true
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         userconfig =3D true
>>>>>>>         log_mask =3D 0x0
>>>>>>>         log_file =3D 0x0
>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>=
,
>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>         trace_events =3D 0x0
>>>>>>>         trace_file =3D 0x0
>>>>>>>         __func__ =3D "main"
>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "d=
c",
>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c66=
4 "",
>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>  (gdb) bt full ecc
>>>>>>> No symbol "ecc" in current context.
>>>>>>>
>>>>>>> (gdb) bt full
>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>         sif =3D <optimized out>
>>>>>>>         total =3D <optimized out>
>>>>>>>         n =3D <optimized out>
>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>> No locals.
>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at char_device.c=
:798
>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized out=
>)
>>>>>>>     at reds.c:3795
>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>         item =3D 0x5555562d8350
>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>> ui/spice-core.c:909
>>>>>>> No locals.
>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0, loadv=
m=3D0)
>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>         startstop =3D true
>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>         d =3D 0x55555637d7e0
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>     at hw/core/qdev.c:934
>>>>>>>         klass =3D 0x555556270410
>>>>>>>         __func__ =3D "device_reset"
>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>> opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:240
>>>>>>> No locals.
>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:411
>>>>>>>         bus =3D 0x0
>>>>>>>         err =3D 0
>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>         err =3D 0
>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:403
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>         err =3D 0
>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0,
>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>> <qdev_reset_one>,
>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>     at hw/core/qdev.c:369
>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>         err =3D 0
>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>     at hw/core/qdev.c:261
>>>>>>> No locals.
>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60b=
0)
>>>>>>>     at hw/core/qdev.c:267
>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>         re =3D 0x555556375890
>>>>>>>         nre =3D 0x0
>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>> vl.c:1885
>>>>>>>         mc =3D 0x55555626e030
>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b0950=
)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>         state =3D 0x5555562b0950
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>     at iohandler.c:143
>>>>>>>         revents =3D 1
>>>>>>>         pioh =3D 0x5555563218c0
>>>>>>>         ioh =3D 0x555556362a80
>>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>> main-loop.c:485
>>>>>>>         ret =3D 1
>>>>>>>         timeout =3D 4294967295
>>>>>>>         timeout_ns =3D 17355567
>>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>         nonblocking =3D false
>>>>>>>         last_io =3D 1
>>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>>         i =3D 64
>>>>>>>         snapshot =3D 0
>>>>>>>         linux_boot =3D 0
>>>>>>>         icount_option =3D 0x0
>>>>>>>         initrd_filename =3D 0x0
>>>>>>>         kernel_filename =3D 0x0
>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         ds =3D 0x5555563324a0
>>>>>>>         cyls =3D 0
>>>>>>>         heads =3D 0
>>>>>>>         secs =3D 0
>>>>>>>         translation =3D 0
>>>>>>>         hda_opts =3D 0x0
>>>>>>>         opts =3D 0x5555562752d0
>>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>         optind =3D 66
>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cach=
e=3Dwriteback"
>>>>>>>         loadvm =3D 0x0
>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>         cpu_model =3D 0x0
>>>>>>>         vga_model =3D 0x0
>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>         qtest_log =3D 0x0
>>>>>>>         pid_file =3D 0x0
>>>>>>>         incoming =3D 0x0
>>>>>>>         show_vnc_port =3D 0
>>>>>>>         defconfig =3D true
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         userconfig =3D true
>>>>>>>         log_mask =3D 0x0
>>>>>>>         log_file =3D 0x0
>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>=
,
>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>         trace_events =3D 0x0
>>>>>>>         trace_file =3D 0x0
>>>>>>>         __func__ =3D "main"
>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "d=
c",
>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c66=
4 "",
>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>
>>>>>>>
>>>>>>>   AND
>>>>>>>
>>>>>>>  attached files
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2015-01-04 22:24 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>=
:
>>>>>>>
>>>>>>>> GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
>>>>>>>> Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>>> This is free software: you are free to change and redistribute it.
>>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>>> copying"
>>>>>>>> and "show warranty" for details.
>>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>>> Type "show configuration" for configuration details.
>>>>>>>> For bug reporting instructions, please see:
>>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>>> For help, type "help".
>>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>>> (gdb) target remote localhost:1234
>>>>>>>> Remote debugging using localhost:1234
>>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>>> done.
>>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>>> (gdb) c
>>>>>>>> Continuing.
>>>>>>>>
>>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>>> (gdb) bt full
>>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>         sif =3D <optimized out>
>>>>>>>>         total =3D <optimized out>
>>>>>>>>         n =3D <optimized out>
>>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>>> No locals.
>>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at
>>>>>>>> char_device.c:798
>>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized ou=
t>)
>>>>>>>>     at reds.c:3795
>>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>>         item =3D 0x5555562d8350
>>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>>> ui/spice-core.c:909
>>>>>>>> No locals.
>>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0,
>>>>>>>> loadvm=3D0)
>>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>>         startstop =3D true
>>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>>         d =3D 0x55555637d7e0
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/core/qdev.c:934
>>>>>>>>         klass =3D 0x555556270410
>>>>>>>>         __func__ =3D "device_reset"
>>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>>> opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:240
>>>>>>>> No locals.
>>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:411
>>>>>>>>         bus =3D 0x0
>>>>>>>>         err =3D 0
>>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>>         err =3D 0
>>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:403
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>>         err =3D 0
>>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>>         err =3D 0
>>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>>     at hw/core/qdev.c:261
>>>>>>>> No locals.
>>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60=
b0)
>>>>>>>>     at hw/core/qdev.c:267
>>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>>         re =3D 0x555556375890
>>>>>>>>         nre =3D 0x0
>>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>>> vl.c:1885
>>>>>>>>         mc =3D 0x55555626e030
>>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b095=
0)
>>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>>         state =3D 0x5555562b0950
>>>>>>>> ---Type <return> to continue, or q
>>>>>>>>
>>>>>>> ...
>
>

--089e0160b5949e4461050be7d03a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div><div>Hi again and sorry for monopolizing, s=
o I tested a bit QXL/spice in my win 7 x64 domU on Xenserver 4.5 RC4 with F=
antu patch.<br><br></div>I get errors when trying to move remote-viewer win=
dow: I get a connection refused.<br></div><br>System is using deb8 unstable=
s (sid) with only Xen compiled from sources.<br><br>Xen BT full is below, m=
achine details, you should have them now.<br><br></div>Should I try to comp=
ile spice on my machine or something?<br><br><br>regards, <br><br></div>Gre=
gB:<br><div><div><br>(gdb) target remote localhost:1234<br>Remote debugging=
 using localhost:1234<br>Reading symbols from /lib64/ld-linux-x86-64.so.2..=
.Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...don=
e.<br>done.<br>Loaded symbols for /lib64/ld-linux-x86-64.so.2<br>0x00007fff=
f7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2<br>(gdb) c<br>Contin=
uing.<br><br>Program received signal SIGABRT, Aborted.<br>0x00007ffff3e7110=
7 in __GI_raise (sig=3Dsig@entry=3D6)<br>=C2=A0=C2=A0=C2=A0 at ../nptl/sysd=
eps/unix/sysv/linux/raise.c:56<br>56=C2=A0=C2=A0=C2=A0 ../nptl/sysdeps/unix=
/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.<br>(gdb) bt full<=
br>#0=C2=A0 0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)<br>=C2=
=A0=C2=A0=C2=A0 at ../nptl/sysdeps/unix/sysv/linux/raise.c:56<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 resultvar =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 pid =3D 10818<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 selftid =3D 10818<br>#1=C2=A0 0x00007ffff3e724e8 in __GI_abort () at=
 abort.c:89<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 save_stage =3D 2<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 act =3D {__sigaction_handler =
=3D {sa_handler =3D 0xb8000000, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 sa_sigaction =3D 0xb8000000}, sa_mask =3D {__va=
l =3D {13258597306065747968, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 13258597306065747968, 3087007744, 3087=
007744, 0, 0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 13258597302978740224, 13258597302978740224, 132585973=
02978740224, 0, 0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 0, 0, 0, 0, 0}}, sa_flags =3D 0, sa_restorer =
=3D 0xb800000000000000}<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sigs =
=3D {__val =3D {32, 0 &lt;repeats 15 times&gt;}}<br>#2=C2=A0 0x00007ffff3ea=
f044 in __libc_message (do_abort=3Ddo_abort@entry=3D1, <br>=C2=A0=C2=A0=C2=
=A0 fmt=3Dfmt@entry=3D0x7ffff3fa1c60 &quot;*** Error in `%s&#39;: %s: 0x%s =
***\n&quot;)<br>=C2=A0=C2=A0=C2=A0 at ../sysdeps/posix/libc_fatal.c:175<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ap =3D {{gp_offset =3D 40, fp_of=
fset =3D 0, overflow_arg_area =3D 0x7fffffffd300, <br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 reg_save_area =3D 0x7fffffffd=
290}}<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fd =3D 2<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 on_2 =3D &lt;optimized out&gt;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 list =3D &lt;optimized out&gt;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nlist =3D &lt;optimized out&gt;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cp =3D &lt;optimized out&gt;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 written =3D &lt;optimized out&gt=
;<br>#3=C2=A0 0x00007ffff3eb481e in malloc_printerr (action=3D1, <br>=C2=A0=
=C2=A0=C2=A0 str=3D0x7ffff3fa1db0 &quot;double free or corruption (out)&quo=
t;, ptr=3D&lt;optimized out&gt;)<br>=C2=A0=C2=A0=C2=A0 at malloc.c:4996<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 buf =3D &quot;0000555556bb85e0&q=
uot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cp =3D &lt;optimized out=
&gt;<br>#4=C2=A0 0x00007ffff3eb5526 in _int_free (av=3D&lt;optimized out&gt=
;, p=3D&lt;optimized out&gt;, <br>=C2=A0=C2=A0=C2=A0 have_lock=3D0) at mall=
oc.c:3840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size =3D &lt;optimi=
zed out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fb =3D &lt;optimi=
zed out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextchunk =3D &lt=
;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextsize =
=3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nex=
tinuse =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 prevsize =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 bck =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 fwd =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 errstr =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 locked =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &quot;_int_free&quot;<br>#5=C2=A0 =
0x00007ffff4c7c7e5 in ?? () from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0=
<br>---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---<br>N=
o symbol table info available.<br>#6=C2=A0 0x00007ffff4c7c759 in pixman_ima=
ge_unref ()<br>=C2=A0=C2=A0 from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0=
<br>No symbol table info available.<br>#7=C2=A0 0x00005555557ee88e in qemu_=
pixman_image_unref (image=3D0x555556335f00)<br>=C2=A0=C2=A0=C2=A0 at ui/qem=
u-pixman.c:80<br>No locals.<br>#8=C2=A0 0x000055555580c21f in vnc_dpy_switc=
h (dcl=3D0x7fffe849e048, surface=3D0x555556627c90)<br>=C2=A0=C2=A0=C2=A0 at=
 ui/vnc.c:588<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vd =3D 0x7fffe8=
49e010<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vs =3D 0xff0000ff00<br=
>#9=C2=A0 0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x555556312e=
90, <br>=C2=A0=C2=A0=C2=A0 surface=3D0x555556627c90) at ui/console.c:1404<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s =3D 0x55555633d710<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 old_surface =3D 0x555556336160<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dcl =3D 0x7fffe849e048<br>#10 0x000=
05555556bfa0c in qxl_render_update_area_unlocked (qxl=3D0x555556387f50)<br>=
=C2=A0=C2=A0=C2=A0 at hw/display/qxl-render.c:131<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 vga =3D 0x555556388a40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 surface =3D 0x555556627c90<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 21845<br>#11 0x00005555556bfc84 in qxl_render_update_=
area_bh (opaque=3D0x555556387f50)<br>=C2=A0=C2=A0=C2=A0 at hw/display/qxl-r=
ender.c:183<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qxl =3D 0x5555563=
87f50<br>#12 0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556277840) at as=
ync.c:81<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bh =3D 0x555556313d4=
0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bhp =3D 0x7fffffffd570<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 next =3D 0x555556313d10<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>#13 0x00005555555e3a1a=
 in aio_poll (ctx=3D0x555556277840, blocking=3Dfalse)<br>=C2=A0=C2=A0=C2=A0=
 at aio-posix.c:188<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 node =3D =
0x7ffff41f3a89 &lt;write+57&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ret =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 progress =3D fa=
lse<br>#14 0x00005555555e4088 in aio_ctx_dispatch (source=3D0x555556277840,=
 callback=3D0x0, <br>=C2=A0=C2=A0=C2=A0 user_data=3D0x0) at async.c:211<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ctx =3D 0x555556277840<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D &quot;aio_ctx_=
dispatch&quot;<br>#15 0x00007ffff707dc5d in g_main_dispatch (context=3D0x55=
5556278b50)<br>=C2=A0=C2=A0=C2=A0 at /tmp/buildd/glib2.0-2.42.1/./glib/gmai=
n.c:3111<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dispatch =3D 0x55555=
55e4035 &lt;aio_ctx_dispatch&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 prev_source =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 was_i=
n_call =3D 0<br>---Type &lt;return&gt; to continue, or q &lt;return&gt; to =
quit---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 user_data =3D 0x0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 callback =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_funcs =3D &lt;optimized out&gt;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_data =3D &lt;optimized out&gt;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 need_destroy =3D &lt;optimized o=
ut&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 source =3D 0x555556277=
840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 current =3D 0x55555626ec4=
0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br>#16 g_main_conte=
xt_dispatch (context=3D0x555556278b50)<br>=C2=A0=C2=A0=C2=A0 at /tmp/buildd=
/glib2.0-2.42.1/./glib/gmain.c:3710<br>No locals.<br>#17 0x000055555577cf98=
 in glib_pollfds_poll () at main-loop.c:190<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 context =3D 0x555556278b50<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pfds =3D 0x555556628928<br>#18 0x000055555577d075 in os_hos=
t_main_loop_wait (timeout=3D0) at main-loop.c:235<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 ret =3D 2<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 spin_counter =3D 2<br>#19 0x000055555577d134 in main_loop_wait (nonbloc=
king=3D0) at main-loop.c:484<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
ret =3D 21845<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D 429=
4967295<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_ns =3D 293756=
2<br>#20 0x0000555555815fbd in main_loop () at vl.c:2056<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D false<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 last_io =3D 0<br>#21 0x000055555581d66b in main (argc=
=3D66, argv=3D0x7fffffffdb48, envp=3D0x7fffffffdd60)<br>=C2=A0=C2=A0=C2=A0 =
at vl.c:4535<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 initrd_filename =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 kernel_filename =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D 0x55555598c664 &quot;&quot;<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x555556275340 &quot;dc&quot;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D 0x55555633d710<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s=
ecs =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 translation =3D 0<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D 0x555556275290<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D 0x555556276ef0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D 0x555555d72700 &lt;qemu_machine=
_opts&gt;<br>---Type &lt;return&gt; to continue, or q &lt;return&gt; to qui=
t---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D 0x7fffffffe55e &quot;file=
=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,index=3D=
2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632&quot;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D 0x55555626e030<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D 0x555555d78540 &lt;xenfv_mach=
ine&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 incoming =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 show_=
vnc_port =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig =3D =
true<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D true<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 mem_trace =3D {malloc =3D 0x55555581950b &lt;malloc_and_=
trace&gt;, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 reall=
oc =3D 0x555555819540 &lt;realloc_and_trace&gt;, <br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D 0x555555819584 &lt;free_and_trac=
e&gt;, calloc =3D 0x0, try_malloc =3D 0x0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_realloc =3D 0x0}<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 __func__ =3D &quot;main&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 args =3D {machine =3D 0x555555d78540 &lt;xenfv_machine&gt;, ram_s=
ize =3D 2013265920, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 boot_order =3D 0x555556275340 &quot;dc&quot;, kernel_filename =3D 0x0, =
<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =
=3D 0x55555598c664 &quot;&quot;, initrd_filename =3D 0x0, cpu_model =3D 0x0=
}<br><br></div></div></div><div class=3D"gmail_extra"><br><div class=3D"gma=
il_quote">2015-01-05 12:12 GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a =
href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie=
@gmail.com</a>&gt;</span>:<br><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir=3D"ltr"=
>Well r=C3=A9installed from scratch, added winpv and spice drivers the bord=
er you gave me and Th=C3=A9r=C3=A8se is NO more bugs related to winpv .=C2=
=A0 will test reboot and spice/qxl functionnalities when possible. Regards.=
=C2=A0 Greg b</p>
<div class=3D"gmail_quote">Le 5 janv. 2015 10:08, &quot;Fabio Fantoni&quot;=
 &lt;<a href=3D"mailto:fabio.fantoni@m2r.biz" target=3D"_blank">fabio.fanto=
ni@m2r.biz</a>&gt; a =C3=A9crit :<br type=3D"attribution"><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div>Il 05/01/2015 00:24, Goonie Windy ha
      scritto:<br>
    </div>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">AND DMESG<br>
        [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8
        ip 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in <a href=3D"http:=
//libc-2.19.so" target=3D"_blank">libc-2.19.so</a>[7f92a64d4000+19f000]<br>
        [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3096.118716] device vif5.0-emu left promiscuous mode<br>
        [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3584.894741] device vif5.0 left promiscuous mode<br>
        [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3681.878054] device vif6.0 entered promiscuous mode<br>
        [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3682.193528] device vif6.0-emu entered promiscuous mode<br>
        [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3780.535444] device vif6.0-emu left promiscuous mode<br>
        [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state<br>
        [ 3899.555577] device vif6.0 left promiscuous mode<br>
        [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state<br>
        <br>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">2015-01-05 0:21 GMT+01:00 Goonie Windy
          <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com=
" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div dir=3D"ltr">=C2=A0 GNU nano
              2.2.6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Fichier=C2=A0:
              qemu-dm-win7.log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
              <br>
              <br>
              (/usr/local/sbin/xl:9535): Spice-Warning **:
              reds.c:1863:reds_handle_ticket: Invalid password<br>
              main_channel_link: add main channel client<br>
              main_channel_handle_parsed: net test: latency 0.318000 ms,
              bitrate 26597402597 bps (25365.259740 Mbps)<br>
              inputs_connect: inputs channel client create<br>
              red_dispatcher_set_cursor_peer:<br>
              main_channel_handle_parsed: agent start<br>
              main_channel_handle_parsed: agent start<br>
              *** Error in `/usr/lib/xen/bin/qemu-system-i386&#39;: double
              free or corruption (out): 0x00007f0e38dd26f0 ***<br>
              <br>
            </div>
            <div class=3D"gmail_extra"><br>
              <div class=3D"gmail_quote">2015-01-05 0:00 GMT+01:00 Goonie
                Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goon=
ie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<b=
r>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div dir=3D"ltr">Should add this too:<br>
                    host=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : E766<br>
                    release=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 3.16.0-4-amd64<br>
                    version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : #1 SMP Debian 3.16.7-ckt2-1
                    (2014-12-08)<br>
                    machine=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : x86_64<br>
                    nr_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    max_cpu_id=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 7<br>
                    nr_nodes=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 1<br>
                    cores_per_socket=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    threads_per_core=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    cpu_mhz=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2594<br>
                    hw_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:0=
0000001:00000281<br>
                    virt_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : hvm hvm_directio<br>
                    total_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 8055<br>
                    free_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 2309<br>
                    sharing_freed_memory=C2=A0=C2=A0 : 0<br>
                    sharing_used_memory=C2=A0=C2=A0=C2=A0 : 0<br>
                    outstanding_claims=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    free_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    xen_major=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    xen_minor=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 5<br>
                    xen_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : .0-rc<br>
                    xen_version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 4.5.0-rc<br>
                    xen_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : xen-3.0-x86_64
                    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
                    hvm-3.0-x86_64 <br>
                    xen_scheduler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : credit<br>
                    xen_pagesize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 4096<br>
                    platform_params=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 :
                    virt_start=3D0xffff800000000000<br>
                    xen_changeset=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : Thu Dec 18 10:02:16 2014
                    +0000 git:36174af-dirty<br>
                    xen_commandline=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : placeholder<br>
                    cc_compiler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : gcc (Debian 4.9.2-10) 4.9.2<br>
                    cc_compile_by=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : root<br>
                    cc_compile_domain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : <br>
                    cc_compile_date=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : Wed Dec 31 01:20:47 CET
                    2014<br>
                    xend_config_format=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    <br>
                    <br>
                  </div>
                  <div class=3D"gmail_extra"><br>
                    <div class=3D"gmail_quote">2015-01-04 23:39 GMT+01:00
                      Goonie Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:=
monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&=
gt;</span>:<br>
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div dir=3D"ltr">My qemu log after spice failure:<b=
r>
                          (/usr/local/sbin/xl:4254): Spice-Warning **:
                          reds.c:1863:reds_handle_ticket: Invalid
                          password<br>
                          main_channel_link: add main channel client<br>
                          main_channel_handle_parsed: net test: latency
                          0.257000 ms, bitrate 81920000000 bps
                          (78125.000000 Mbps)<br>
                          red_dispatcher_set_cursor_peer: <br>
                          inputs_connect: inputs channel client create<br>
                          main_channel_handle_parsed: agent start<br>
                          main_channel_handle_parsed: agent start<br>
                          qemu-system-i386: malloc.c:2372: sysmalloc:
                          Assertion `(old_top =3D=3D (((mbinptr) (((char *)
                          &amp;((av)-&gt;bins[((1) - 1) * 2])) -
                          __builtin_offsetof (struct malloc_chunk,
                          fd)))) &amp;&amp; old_size =3D=3D 0) || ((unsigne=
d
                          long) (old_size) &gt;=3D (unsigned
                          long)((((__builtin_offsetof (struct
                          malloc_chunk, fd_nextsize))+((2
                          *(sizeof(size_t))) - 1)) &amp; ~((2
                          *(sizeof(size_t))) - 1))) &amp;&amp;
                          ((old_top)-&gt;size &amp; 0x1) &amp;&amp;
                          ((unsigned long) old_end &amp; pagemask) =3D=3D
                          0)&#39; failed.<br>
                          <br>
                        </div>
                        <div class=3D"gmail_extra"><br>
                          <div class=3D"gmail_quote">2015-01-04 23:10
                            GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.gooni=
e@gmail.com</a>&gt;</span>:<br>
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div>This one is bug from trying to
                                  install winpv=C2=A0 bus driver<br>
                                </div>
                              </div>
                            </blockquote>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
    If you followed all my advices your configurations should be ok and
    you found a new bug or inexpected case.<br>
    <span lang=3D"en"><span>I
        do not have</span> <span>the knowledge to</span> <span>solve it.</s=
pan></span><br>
    Added to cc also win-pv-devel<br>
    Can someone take a look to this problem please?<br>
    <br>
    <blockquote type=3D"cite">
      <div class=3D"gmail_extra">
        <div class=3D"gmail_quote">
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div class=3D"gmail_extra">
              <div class=3D"gmail_quote">
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div class=3D"gmail_extra">
                    <div class=3D"gmail_quote">
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div class=3D"gmail_extra">
                          <div class=3D"gmail_quote">
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div><br>
                                </div>
                                <div>
                                  <div><br>
                                    Program received signal SIGSEGV,
                                    Segmentation fault.<br>
                                    _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    bytes=3Dbytes@entry=3D73729)<br>
                                    =C2=A0=C2=A0=C2=A0 at malloc.c:3775<br>
                                    3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun =
fichier ou
                                    dossier de ce type.<br>
                                    (gdb) bt full<br>
                                    #0=C2=A0 _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=
=3D73729) at
                                    malloc.c:3775<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 p =3D 0x555557303880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iters =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 idx =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bin =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim =3D 0x555557303870<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 size =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim_index =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D 0x555557315880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 block =3D 4<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bit =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 map =3D 66981887<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_malloc&quot;<br>
                                    #1=C2=A0 0x00007ffff3eb74a1 in
                                    _int_realloc (<br>
                                    =C2=A0=C2=A0=C2=A0 av=3Dav@entry=3D0x7f=
fff41df620
                                    &lt;main_arena&gt;,
                                    oldp=3Doldp@entry=3D0x55555689d270, <br=
>
                                    =C2=A0=C2=A0=C2=A0 oldsize=3Doldsize@en=
try=3D36880,
                                    nb=3Dnb@entry=3D73744) at malloc.c:4286=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newsize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 next =3D 0x5555568a6280<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 copysize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ncopies =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_realloc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nextsize =3D &lt;optimized
                                    out&gt;<br>
                                    #2=C2=A0 0x00007ffff3eb85f9 in
                                    __GI___libc_realloc
                                    (oldmem=3D0x55555689d280, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3D73728) at ma=
lloc.c:3029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ar_ptr =3D 0x7ffff41df620
                                    &lt;main_arena&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hook =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldp =3D 0x55555689d270<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldsize =3D 36880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;__libc_realloc&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    #3=C2=A0 0x0000555555819563 in
                                    realloc_and_trace
                                    (mem=3D0x55555689d280, n_bytes=3D73728)=
<br>
                                    =C2=A0=C2=A0=C2=A0 at vl.c:2857<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffcf30<br>
                                    #4=C2=A0 0x00007ffff708388e in g_reallo=
c
                                    (mem=3D&lt;optimized out&gt;,
                                    n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /tmp/buildd/glib2.0-2.42.1/./glib/gmem.=
c:162<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    #5=C2=A0 0x000055555582d3e2 in
                                    phys_map_node_reserve
                                    (map=3D0x5555563ccf98, nodes=3D18)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:152<br>
                                    No locals.<br>
                                    #6=C2=A0 0x000055555582d701 in
                                    phys_page_set (d=3D0x5555563ccf90,
                                    index=3D160, nb=3D16, <br>
                                    =C2=A0=C2=A0=C2=A0 leaf=3D5) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:211<br>
                                    No locals.<br>
                                    #7=C2=A0 0x000055555582f1ae in
                                    register_multipage
                                    (d=3D0x5555563ccf90, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
cfe0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:937<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 start_addr =3D 655360<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 section_index =3D 5<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 num_pages =3D 16<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;register_multipage&quot;<br>
                                    #8=C2=A0 0x000055555582f4b4 in mem_add
                                    (listener=3D0x55555633b898, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
d1a0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:968<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D 0x5555563ccf90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 now =3D {mr =3D 0x55555636dd30,
                                    address_space =3D 0x55555633b860, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remain =3D {mr =3D
                                    0x55555636dd30, address_space =3D
                                    0x55555633b860, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 page_size =3D {lo =3D 4096, hi =3D
                                    0}<br>
                                    #9=C2=A0 0x0000555555892a01 in
                                    address_space_update_topology_pass (<br=
>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x55555633b860,
                                    old_view=3D0x555556495910,
                                    new_view=3D0x55555687f2c0, <br>
                                    =C2=A0=C2=A0=C2=A0 adding=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:736<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 _listener =3D 0x55555633b898<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iold =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 inew =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frold =3D 0x5555565fd828<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frnew =3D 0x5555568b23e8<br>
                                    #10 0x0000555555892fd7 in
                                    address_space_update_topology
                                    (as=3D0x55555633b860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:765<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 old_view =3D 0x555556495910<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_view =3D 0x55555687f2c0<br>
                                    #11 0x00005555558930fc in
                                    memory_region_transaction_commit ()<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:800<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_transaction_commit&=
quot;<br>
                                    #12 0x00005555558951ed in
                                    memory_region_del_subregion
                                    (mr=3D0x5555562855d0, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0 subregion=3D0x555556=
349250)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1487<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_del_subregion&quot;=
<br>
                                    #13 0x000055555570fdf3 in
                                    pci_update_mappings
                                    (d=3D0x5555563489f0)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci.c:1113=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 r =3D 0x555556348af8<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_addr =3D
                                    18446744073709551615<br>
                                    #14 0x0000555555710110 in
                                    pci_default_write_config
                                    (d=3D0x5555563489f0, addr=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D0, l=3D2) at h=
w/pci/pci.c:1168<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 was_irq_disabled =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_default_write_config&quot;<br=
>
                                    #15 0x0000555555714125 in
                                    pci_host_config_write_common (<br>
                                    =C2=A0=C2=A0=C2=A0 pci_dev=3D0x55555634=
89f0, addr=3D4,
                                    limit=3D256, val=3D1024, len=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci_host.c=
:57<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_host_config_write_common&quot=
;<br>
                                    #16 0x0000555555714229 in
                                    pci_data_write (s=3D0x5555562a8cf0,
                                    addr=3D<a href=3D"tel:2147487748" value=
=3D"+12147487748" target=3D"_blank">2147487748</a>, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:84<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pci_dev =3D 0x5555563489f0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 config_addr =3D 4<br>
                                    #17 0x0000555555714351 in
                                    pci_host_data_write
                                    (opaque=3D0x555556311470, addr=3D0, <br=
>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:137<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D 0x555556311470<br>
                                    #18 0x0000555555891531 in
                                    memory_region_write_accessor
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, value=3D0x=
7fffffffd5e8,
                                    size=3D2, shift=3D0, mask=3D65535)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:441<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 tmp =3D 1024<br>
                                    #19 0x0000555555891636 in
                                    access_with_adjusted_size (addr=3D0, <b=
r>
                                    =C2=A0=C2=A0=C2=A0 value=3D0x7fffffffd5=
e8, size=3D2,
                                    access_size_min=3D1,
                                    access_size_max=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 access=3D0x555555891=
4b0
                                    &lt;memory_region_write_accessor&gt;,
                                    mr=3D0x555556313860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:478<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_mask =3D 65535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_size =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #20 0x0000555555893772 in
                                    memory_region_dispatch_write
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, data=3D102=
4, size=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:985<br>
                                    No locals.<br>
                                    #21 0x0000555555896068 in
                                    io_mem_write (mr=3D0x555556313860,
                                    addr=3D0, val=3D1024, <br>
                                    =C2=A0=C2=A0=C2=A0 size=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1744<br>
                                    No locals.<br>
                                    #22 0x000055555583183c in
                                    address_space_rw (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2, is_write=3D=
true) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 l =3D 2<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffd6f4
                                    &quot;\377\377\377\377&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 val =3D 1024<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 addr1 =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mr =3D 0x555556313860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 error =3D false<br>
                                    #23 0x0000555555831b12 in
                                    address_space_write (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2091<br>
                                    No locals.<br>
                                    #24 0x000055555588f486 in cpu_outw
                                    (addr=3D3324, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/iopor=
t.c:77<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 buf =3D &quot;\000\004&quot;<br>
                                    #25 0x000055555590f460 in do_outp
                                    (addr=3D3324, size=3D2, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:668<br>
                                    No locals.<br>
                                    #26 0x000055555590f66f in
                                    cpu_ioreq_pio (req=3D0x7ffff7ff3000)<br=
>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:729<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #27 0x000055555590f910 in
                                    handle_ioreq (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:781<br>
                                    No locals.<br>
                                    #28 0x000055555590fc0f in
                                    cpu_handle_ioreq
                                    (opaque=3D0x5555562abf10)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:856<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 state =3D 0x5555562abf10<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 req =3D 0x7ffff7ff3000<br>
                                    #29 0x000055555577c385 in
                                    qemu_iohandler_poll
                                    (pollfds=3D0x555556277600, ret=3D1)<br>
                                    =C2=A0=C2=A0=C2=A0 at iohandler.c:143<b=
r>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 revents =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pioh =3D 0x55555627ca90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ioh =3D 0x555556366320<br>
                                    #30 0x000055555577d14b in
                                    main_loop_wait (nonblocking=3D0) at
                                    main-loop.c:485<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ret =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout =3D 4294967295<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout_ns =3D 16717983<br>
                                    #31 0x0000555555815fbd in main_loop
                                    () at vl.c:2056<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nonblocking =3D false<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 last_io =3D 1<br>
                                    #32 0x000055555581d66b in main
                                    (argc=3D64, argv=3D0x7fffffffdc78, <br>
                                    =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde8=
0) at
                                    vl.c:4535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 snapshot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 linux_boot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 icount_option =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 initrd_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D
                                    0x55555598c664 &quot;&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 boot_order =3D 0x555556275340
                                    &quot;dc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ds =3D 0x5555563564e0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cyls =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 heads =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 secs =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 translation =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hda_opts =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 opts =3D 0x555556275290<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_opts =3D
                                    0x555556276ef0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 olist =3D 0x555555d72700
                                    &lt;qemu_machine_opts&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optind =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optarg =3D 0x7fffffffe61a
                                    &quot;file=3D/dev/sda3,if=3Dide,index=
=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 loadvm =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_class =3D
                                    0x55555626e030<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine =3D 0x555555d78540
                                    &lt;xenfv_machine&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cpu_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 vga_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_chrdev =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_log =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pid_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 incoming =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 show_vnc_port =3D 0<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 defconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 userconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_mask =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mem_trace =3D {malloc =3D
                                    0x55555581950b
                                    &lt;malloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 realloc =3D 0x555555819540
                                    &lt;realloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 free =3D 0x555555819584
                                    &lt;free_and_trace&gt;, calloc =3D
                                    0x0, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 try_malloc =3D 0x0,
                                    try_realloc =3D 0x0}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_events =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;main&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 args =3D {machine =3D
                                    0x555555d78540
                                    &lt;xenfv_machine&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=3D"+120132659=
20" target=3D"_blank">2013265920</a>,
                                    boot_order =3D 0x555556275340 &quot;dc&=
quot;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D 0x0,
                                    kernel_cmdline =3D 0x55555598c664 &quot=
;&quot;,
                                    <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D 0x0,
                                    cpu_model =3D 0x0}<br>
                                    <br>
                                  </div>
                                </div>
                              </div>
                              <div class=3D"gmail_extra"><br>
                                <div class=3D"gmail_quote">2015-01-04
                                  22:29 GMT+01:00 Goonie Windy <span dir=3D=
"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">mo=
nsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                  <blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                    <div dir=3D"ltr">
                                      <div>
                                        <div>
                                          <div>
                                            <div>Copyright (C) 2014 Free
                                              Software Foundation, Inc.<br>
                                              License GPLv3+: GNU GPL
                                              version 3 or later &lt;<a hre=
f=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/lic=
enses/gpl.html</a>&gt;<br>
                                              This is free software: you
                                              are free to change and
                                              redistribute it.<br>
                                              There is NO WARRANTY, to
                                              the extent permitted by
                                              law.=C2=A0 Type &quot;show co=
pying&quot;<br>
                                              and &quot;show warranty&quot;=
 for
                                              details.<br>
                                              This GDB was configured as
                                              &quot;x86_64-linux-gnu&quot;.=
<br>
                                              Type &quot;show configuration=
&quot;
                                              for configuration details.<br=
>
                                              For bug reporting
                                              instructions, please see:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gdb/=
bugs/</a>&gt;.<br>
                                              Find the GDB manual and
                                              other documentation
                                              resources online at:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/soft=
ware/gdb/documentation/</a>&gt;.<br>
                                              For help, type &quot;help&quo=
t;.<br>
                                              Type &quot;apropos word&quot;=
 to
                                              search for commands
                                              related to &quot;word&quot;..=
.<br>
                                              Reading symbols from
                                              /usr/lib/xen/bin/qemu-system-=
i386...done.<br>
                                              (gdb) target remote
                                              localhost:1234<br>
                                              Remote debugging using
                                              localhost:1234<br>
                                              Reading symbols from
                                              /lib64/ld-linux-x86-64.so.2..=
.Reading
                                              symbols from
                                              /usr/lib/debug//lib/x86_64-li=
nux-gnu/ld-2.19.so...done.<br>
                                              done.<br>
                                              Loaded symbols for
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              0x00007ffff7ddd190 in
                                              _start () from
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              (gdb) c<br>
                                              Continuing.<br>
                                              <br>
                                              Program received signal
                                              SIGSEGV, Segmentation
                                              fault.<br>
                                              0x00007ffff50e5801 in
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              443=C2=A0=C2=A0=C2=A0 char_de=
vice.c:
                                              Aucun fichier ou dossier
                                              de ce type.<br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                            </div>
                                          </div>
                                          (gdb) bt full ecc<br>
                                          No symbol &quot;ecc&quot; in curr=
ent
                                          context.
                                          <div>
                                            <div><br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                              <br>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                        AND <br>
                                        <br>
                                      </div>
                                      attached files<br>
                                      <br>
                                      <br>
                                      <div><br>
                                        <div><br>
                                          <br>
                                          <br>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                    <div>
                                      <div>
                                        <div class=3D"gmail_extra"><br>
                                          <div class=3D"gmail_quote">2015-0=
1-04
                                            22:24 GMT+01:00 Goonie Windy
                                            <span dir=3D"ltr">&lt;<a href=
=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gma=
il.com</a>&gt;</span>:<br>
                                            <blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                              <div dir=3D"ltr">GNU gdb
                                                (Debian 7.7.1+dfsg-5)
                                                7.7.1<br>
                                                Copyright (C) 2014 Free
                                                Software Foundation,
                                                Inc.<br>
                                                License GPLv3+: GNU GPL
                                                version 3 or later &lt;<a h=
ref=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/l=
icenses/gpl.html</a>&gt;<br>
                                                This is free software:
                                                you are free to change
                                                and redistribute it.<br>
                                                There is NO WARRANTY, to
                                                the extent permitted by
                                                law.=C2=A0 Type &quot;show
                                                copying&quot;<br>
                                                and &quot;show warranty&quo=
t; for
                                                details.<br>
                                                This GDB was configured
                                                as &quot;x86_64-linux-gnu&q=
uot;.<br>
                                                Type &quot;show
                                                configuration&quot; for
                                                configuration details.<br>
                                                For bug reporting
                                                instructions, please
                                                see:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gd=
b/bugs/</a>&gt;.<br>
                                                Find the GDB manual and
                                                other documentation
                                                resources online at:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/so=
ftware/gdb/documentation/</a>&gt;.<br>
                                                For help, type &quot;help&q=
uot;.<br>
                                                Type &quot;apropos word&quo=
t; to
                                                search for commands
                                                related to &quot;word&quot;=
...<br>
                                                Reading symbols from
                                                /usr/lib/xen/bin/qemu-syste=
m-i386...done.<br>
                                                (gdb) target remote
                                                localhost:1234<span><br>
                                                  Remote debugging using
                                                  localhost:1234<br>
                                                </span><span>Reading
                                                  symbols from
                                                  /lib64/ld-linux-x86-64.so=
.2...Reading
                                                  symbols from
                                                  /usr/lib/debug//lib/x86_6=
4-linux-gnu/ld-2.19.so...done.<br>
                                                  done.<br>
                                                  Loaded symbols for
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  0x00007ffff7ddd190 in
                                                  _start () from
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  (gdb) c<br>
                                                  Continuing.<br>
                                                  <br>
                                                </span>Program received
                                                signal SIGSEGV,
                                                Segmentation fault.<br>
                                                0x00007ffff50e5801 in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                443=C2=A0=C2=A0=C2=A0 char_=
device.c:
                                                Aucun fichier ou dossier
                                                de ce type.<br>
                                                (gdb) bt full<br>
                                                #0=C2=A0 0x00007ffff50e5801
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D
                                                &lt;optimized out&gt;<br>
                                                #1=C2=A0 0x00007ffff50e6497
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0 dev=3D0x=
55555647c750)
                                                at char_device.c:436<br>
                                                No locals.<br>
                                                #2=C2=A0
                                                spice_char_device_start
                                                (dev=3D0x55555647c750) at
                                                char_device.c:798<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_char_device_sta=
rt&quot;<br>
                                                #3=C2=A0 0x00007ffff51299c6
                                                in spice_server_vm_start
                                                (s=3D&lt;optimized
                                                out&gt;)<br>
                                                =C2=A0=C2=A0=C2=A0 at reds.=
c:3795<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_server_vm_start=
&quot;<br>
                                                #4=C2=A0 0x00005555557f40c9
                                                in
                                                qemu_spice_display_start
                                                () at
                                                ui/spice-core.c:909<br>
                                                No locals.<br>
                                                #5=C2=A0 0x00005555556c4365
                                                in qxl_hard_reset
                                                (d=3D0x55555637d7e0,
                                                loadvm=3D0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1172<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                                #6=C2=A0 0x00005555556c43a3
                                                in qxl_reset_handler
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1180<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D
                                                0x55555637d7e0<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                #7=C2=A0 0x0000555555699658
                                                in device_reset
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:934<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                                0x555556270410<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;device_reset&quot;<br=
>
                                                #8=C2=A0 0x0000555555697a56
                                                in qdev_reset_one
                                                (dev=3D0x55555637d7e0,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:240<br>
                                                No locals.<br>
                                                #9=C2=A0 0x0000555555697f64
                                                in qdev_walk_children
                                                (dev=3D0x55555637d7e0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:411<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #10 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a8ee0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x55555633d4f0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #11 0x0000555555697f28
                                                in qdev_walk_children
                                                (dev=3D0x5555563131b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:403<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a8ee0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #12 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a60b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x5555562a6a80<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #13 0x0000555555697b32
                                                in qbus_reset_all
                                                (bus=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:261<br>
                                                No locals.<br>
                                                #14 0x0000555555697b54
                                                in qbus_reset_all_fn
                                                (opaque=3D0x5555562a60b0)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:267<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a60b0<br>
                                                #15 0x0000555555815b1f
                                                in qemu_devices_reset ()
                                                at vl.c:1872<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                                0x555556375890<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                                #16 0x0000555555815bbf
                                                in qemu_system_reset
                                                (report=3Dtrue) at
                                                vl.c:1885<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;qemu_system_reset&quo=
t;<br>
                                                #17 0x000055555590fcb9
                                                in cpu_handle_ioreq
                                                (opaque=3D0x5555562b0950)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                /home/goon/xen/tools/qemu-x=
en-dir/xen-hvm.c:881<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                                0x5555562b0950<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
       </div></blockquote></div></div></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div>...</blockquote></div>
</blockquote></div><br></div>

--089e0160b5949e4461050be7d03a--


--===============1329218083391350911==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--===============1329218083391350911==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jan 05 14:41:14 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 05 Jan 2015 14:41:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y88qI-0002b7-80; Mon, 05 Jan 2015 14:41:14 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <monsieur.goonie@gmail.com>) id 1Y88qG-0002al-E0
	for win-pv-devel@lists.xenproject.org; Mon, 05 Jan 2015 14:41:13 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	CB/0F-11608-782AAA45; Mon, 05 Jan 2015 14:41:11 +0000
X-Env-Sender: monsieur.goonie@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1420468865!14879160!1
X-Originating-IP: [209.85.214.178]
X-SpamReason: No, hits=2.1 required=7.0 tests=BIZ_TLD,HTML_50_60,
	HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2248 invoked from network); 5 Jan 2015 14:41:07 -0000
Received: from mail-ob0-f178.google.com (HELO mail-ob0-f178.google.com)
	(209.85.214.178)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Jan 2015 14:41:07 -0000
Received: by mail-ob0-f178.google.com with SMTP id gq1so61075360obb.9
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 05 Jan 2015 06:41:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=vXbHbuTMpo8hVGSAT7M6ul7jUuscDruRNSdoVD7iwfE=;
	b=amqw9VBCD5G0UNRJLbHxjtxx4ybPUa16eqWFh0s/Q/dHYwDziW4sqKXieUqH34Z00C
	nOQSUiTVICmlLtMDIRvVZ9V+rhuUouDnFfv8aDjOVrE49jUtrwXWbaa5s1uqOuZWGYB3
	aNONdUiQlCdo0fL7IoK5BwMAga/dgtnSo8tqi9r1ZlIMT2dt7L5GOMTisAtS/Nl7MtdS
	oPy57uq037Pghw9opc7yEO/GzfcrcBGv4820Yf7LPzNdWDlv0ScYrDk+RD4rwuUUvPgh
	alIazFrmelWujNtn4cDvOLOUX5f+tYz+Y6uVB477OVqay12c75div8IrfnjS7c+mlBfV
	4Fhg==
MIME-Version: 1.0
X-Received: by 10.202.53.139 with SMTP id c133mr26852578oia.109.1420468865579; 
	Mon, 05 Jan 2015 06:41:05 -0800 (PST)
Received: by 10.182.26.72 with HTTP; Mon, 5 Jan 2015 06:41:05 -0800 (PST)
In-Reply-To: <CAE5x5YVmgs1_XFiX=vXvqqBSxA3v8O_Y9cGO96CsGxXHAFwyGw@mail.gmail.com>
References: <CAE5x5YU4qBTxp+36FioAROdTOPgrU79MN3s+BkmPTWq+qsVt6w@mail.gmail.com>
	<54A53352.5090603@m2r.biz>
	<CAE5x5YVwj5zpUiS92V_8BuinUrtZZhpd8BMbH=Mo_gCmD29S2Q@mail.gmail.com>
	<54A5505C.1070602@m2r.biz>
	<CAE5x5YXdw2n-xxwpmbS_cgeTb+GSiBQ2QbUmxF7j-5gX8a24Jg@mail.gmail.com>
	<CABMPFzg4jYoMoUM2k5wys3y=iyW712RiLKSixDofXgsKe+PwJw@mail.gmail.com>
	<CAE5x5YXhCUvsfKdUN1nNQ_4hPXjBMoeSTMGYu5ysw4wki-n0PQ@mail.gmail.com>
	<CAE5x5YVhL+AmvS53KgNkz8MgDYbH5At_DDt4+tCPzqnht2V-KQ@mail.gmail.com>
	<54A97FA5.90208@m2r.biz>
	<CAE5x5YXmTZAO0c4n1qXxa2+1T2xT3QPHf3Be2CrK2dxtjmpihA@mail.gmail.com>
	<CAE5x5YUjXY9bqY6mOSU2b0RgLaLaM4K0MpS-KOWCB2E+_QLnXA@mail.gmail.com>
	<CAE5x5YXuAPCKM5aP=63ZiH-ffmfki1ioMNsYEV36+SBLz0_t_A@mail.gmail.com>
	<CAE5x5YUXObr6g2juExrb4zzLDg+S=v+Rw1ZDqCy7G6TfhpZTAQ@mail.gmail.com>
	<CAE5x5YV_VDjEK6rxFcZX09WGcLT-i4OrtU8gJa6ZfYTZdjvJ0w@mail.gmail.com>
	<CAE5x5YU9RJo0SFWOAV-hrxmA0FfKz+fXSHqu7mC04e2j6hbvWw@mail.gmail.com>
	<CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
	<54AA549F.8050507@m2r.biz>
	<CAE5x5YUBCsyE30zUQ6jE1e1N7FKcQM=+VztVy3JzEFpG9Fzkiw@mail.gmail.com>
	<CAE5x5YVmgs1_XFiX=vXvqqBSxA3v8O_Y9cGO96CsGxXHAFwyGw@mail.gmail.com>
Date: Mon, 5 Jan 2015 15:41:05 +0100
Message-ID: <CAE5x5YUFT1+j_7bS5W+=+YbUhwWADgB4G_=Bc3MBNX7c7fY2EQ@mail.gmail.com>
From: Goonie Windy <monsieur.goonie@gmail.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"Paul.Durrant@citrix.com >> Paul Durrant" <paul.durrant@citrix.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] [Xen-devel] [DEBUGGING Xen/Qxl/Debian Sid] qemu
 crash on xenbus pv driver install
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4841908951300534358=="
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

--===============4841908951300534358==
Content-Type: multipart/alternative; boundary=001a113cf3e025c38b050be8ae70

--001a113cf3e025c38b050be8ae70
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

another bt full,
same problem with remote-viewer, this time trying to move the window and it
sticked somewhere -you know those sticky functions that develop a window-
so that it fits one half or smtg...



gdb /usr/lib/xen/bin/qemu-system-i386
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.htm=
l
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
(gdb) target remote localhost:1234
c
Remote debugging using localhost:1234
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from
/usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
_int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
    bytes=3Dbytes@entry=3D5152000) at malloc.c:3775
3775    malloc.c: Aucun fichier ou dossier de ce type.
(gdb) bt full
#0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
    bytes=3Dbytes@entry=3D5152000) at malloc.c:3775
        p =3D 0x555556c87660
        iters =3D <optimized out>
        nb =3D 5152016
        idx =3D <optimized out>
        bin =3D <optimized out>
        victim =3D 0x555556c87650
        size =3D <optimized out>
        victim_index =3D <optimized out>
        remainder =3D 0x555557171360
        remainder_size =3D <optimized out>
        block =3D 4
        bit =3D <optimized out>
        map =3D 2067779454
        fwd =3D <optimized out>
        bck =3D <optimized out>
        errstr =3D 0x0
        __func__ =3D "_int_malloc"
#1  0x00007ffff3eb886c in __libc_calloc (n=3D<optimized out>,
    elem_size=3D<optimized out>) at malloc.c:3219
        av =3D 0x7ffff41df620 <main_arena>
        oldtop =3D 0x555556c87650
---Type <return> to continue, or q <return> to quit---
        p =3D <optimized out>
        bytes =3D 5152000
        sz =3D 5152000
        csz =3D <optimized out>
        oldtopsize =3D 8392736
        mem =3D <optimized out>
        clearsize =3D <optimized out>
        nclears =3D <optimized out>
        d =3D <optimized out>
        hook =3D <optimized out>
        __func__ =3D "__libc_calloc"
#2  0x00007ffff4c3dc5a in ?? () from
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0
No symbol table info available.
#3  0x00007ffff4c3dd0b in ?? () from
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0
No symbol table info available.
#4  0x000055555580c266 in vnc_dpy_switch (dcl=3D0x7fffe847d048,
    surface=3D0x5555565c29e0) at ui/vnc.c:590
        vd =3D 0x7fffe847d010
        vs =3D 0xff0000ff00
#5  0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x5555563380f0,
    surface=3D0x5555565c29e0) at ui/console.c:1404
        s =3D 0x55555633fe60
        old_surface =3D 0x5555563395d0
---Type <return> to continue, or q <return> to quit---
        dcl =3D 0x7fffe847d048
#6  0x00005555556bfa0c in qxl_render_update_area_unlocked
(qxl=3D0x555556378550)
    at hw/display/qxl-render.c:131
        vga =3D 0x555556379040
        surface =3D 0x5555565c29e0
        i =3D 21845
#7  0x00005555556bfc84 in qxl_render_update_area_bh (opaque=3D0x55555637855=
0)
    at hw/display/qxl-render.c:183
        qxl =3D 0x555556378550
#8  0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556277840) at async.c:81
        bh =3D 0x555556364510
        bhp =3D 0x7fffe86e4010
        next =3D 0x555556314170
        ret =3D 1
#9  0x00005555555e3a1a in aio_poll (ctx=3D0x555556277840, blocking=3Dfalse)
    at aio-posix.c:188
        node =3D 0x7ffff41f3a89 <write+57>
        ret =3D 0
        progress =3D false
#10 0x00005555555e4088 in aio_ctx_dispatch (source=3D0x555556277840,
    callback=3D0x0, user_data=3D0x0) at async.c:211
        ctx =3D 0x555556277840
        __PRETTY_FUNCTION__ =3D "aio_ctx_dispatch"
---Type <return> to continue, or q <return> to quit---
#11 0x00007ffff707dc5d in g_main_dispatch (context=3D0x555556278b50)
    at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3111
        dispatch =3D 0x5555555e4035 <aio_ctx_dispatch>
        prev_source =3D 0x0
        was_in_call =3D 0
        user_data =3D 0x0
        callback =3D 0x0
        cb_funcs =3D <optimized out>
        cb_data =3D <optimized out>
        need_destroy =3D <optimized out>
        source =3D 0x555556277840
        current =3D 0x55555626ec40
        i =3D 0
#12 g_main_context_dispatch (context=3D0x555556278b50)
    at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3710
No locals.
#13 0x000055555577cf98 in glib_pollfds_poll () at main-loop.c:190
        context =3D 0x555556278b50
        pfds =3D 0x5555563ded28
#14 0x000055555577d075 in os_host_main_loop_wait (timeout=3D0) at
main-loop.c:235
        ret =3D 2
        spin_counter =3D 1
#15 0x000055555577d134 in main_loop_wait (nonblocking=3D0) at main-loop.c:4=
84
---Type <return> to continue, or q <return> to quit---
        ret =3D 21845
        timeout =3D 4294967295
        timeout_ns =3D 13912579
#16 0x0000555555815fbd in main_loop () at vl.c:2056
        nonblocking =3D false
        last_io =3D 1
#17 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdbe8,
    envp=3D0x7fffffffde00) at vl.c:4535
        i =3D 64
        snapshot =3D 0
        linux_boot =3D 0
        icount_option =3D 0x0
        initrd_filename =3D 0x0
        kernel_filename =3D 0x0
        kernel_cmdline =3D 0x55555598c664 ""
        boot_order =3D 0x555556275340 "dc"
        ds =3D 0x55555633fe60
        cyls =3D 0
        heads =3D 0
        secs =3D 0
        translation =3D 0
        hda_opts =3D 0x0
        opts =3D 0x555556275290
---Type <return> to continue, or q <return> to quit---
        machine_opts =3D 0x555556276ef0
        olist =3D 0x555555d72700 <qemu_machine_opts>
        optind =3D 66
        optarg =3D 0x7fffffffe5e0
"file=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,ind=
ex=3D2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632"
        loadvm =3D 0x0
        machine_class =3D 0x55555626e030
        machine =3D 0x555555d78540 <xenfv_machine>
        cpu_model =3D 0x0
        vga_model =3D 0x0
        qtest_chrdev =3D 0x0
        qtest_log =3D 0x0
        pid_file =3D 0x0
        incoming =3D 0x0
        show_vnc_port =3D 0
        defconfig =3D true
        userconfig =3D true
        log_mask =3D 0x0
        log_file =3D 0x0
        mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
          realloc =3D 0x555555819540 <realloc_and_trace>,
          free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
          try_malloc =3D 0x0, try_realloc =3D 0x0}
---Type <return> to continue, or q <return> to quit---
        trace_events =3D 0x0
        trace_file =3D 0x0
        __func__ =3D "main"
        args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
          ram_size =3D 2013265920, boot_order =3D 0x555556275340 "dc",
          kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664 "",
          initrd_filename =3D 0x0, cpu_model =3D 0x0}
(gdb)


2015-01-05 14:39 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:

> Hi again and sorry for monopolizing, so I tested a bit QXL/spice in my wi=
n
> 7 x64 domU on Xenserver 4.5 RC4 with Fantu patch.
>
> I get errors when trying to move remote-viewer window: I get a connection
> refused.
>
> System is using deb8 unstables (sid) with only Xen compiled from sources.
>
> Xen BT full is below, machine details, you should have them now.
>
> Should I try to compile spice on my machine or something?
>
>
> regards,
>
> GregB:
>
> (gdb) target remote localhost:1234
> Remote debugging using localhost:1234
> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from
> /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
> done.
> Loaded symbols for /lib64/ld-linux-x86-64.so.2
> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
> (gdb) c
> Continuing.
>
> Program received signal SIGABRT, Aborted.
> 0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)
>     at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> 56    ../nptl/sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier d=
e
> ce type.
> (gdb) bt full
> #0  0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)
>     at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
>         resultvar =3D 0
>         pid =3D 10818
>         selftid =3D 10818
> #1  0x00007ffff3e724e8 in __GI_abort () at abort.c:89
>         save_stage =3D 2
>         act =3D {__sigaction_handler =3D {sa_handler =3D 0xb8000000,
>             sa_sigaction =3D 0xb8000000}, sa_mask =3D {__val =3D
> {13258597306065747968,
>               13258597306065747968, 3087007744, 3087007744, 0, 0,
>               13258597302978740224, 13258597302978740224,
> 13258597302978740224, 0, 0,
>               0, 0, 0, 0, 0}}, sa_flags =3D 0, sa_restorer =3D
> 0xb800000000000000}
>         sigs =3D {__val =3D {32, 0 <repeats 15 times>}}
> #2  0x00007ffff3eaf044 in __libc_message (do_abort=3Ddo_abort@entry=3D1,
>     fmt=3Dfmt@entry=3D0x7ffff3fa1c60 "*** Error in `%s': %s: 0x%s ***\n")
>     at ../sysdeps/posix/libc_fatal.c:175
>         ap =3D {{gp_offset =3D 40, fp_offset =3D 0, overflow_arg_area =3D
> 0x7fffffffd300,
>             reg_save_area =3D 0x7fffffffd290}}
>         fd =3D 2
>         on_2 =3D <optimized out>
>         list =3D <optimized out>
>         nlist =3D <optimized out>
>         cp =3D <optimized out>
>         written =3D <optimized out>
> #3  0x00007ffff3eb481e in malloc_printerr (action=3D1,
>     str=3D0x7ffff3fa1db0 "double free or corruption (out)", ptr=3D<optimi=
zed
> out>)
>     at malloc.c:4996
>         buf =3D "0000555556bb85e0"
>         cp =3D <optimized out>
> #4  0x00007ffff3eb5526 in _int_free (av=3D<optimized out>, p=3D<optimized
> out>,
>     have_lock=3D0) at malloc.c:3840
>         size =3D <optimized out>
>         fb =3D <optimized out>
>         nextchunk =3D <optimized out>
>         nextsize =3D <optimized out>
>         nextinuse =3D <optimized out>
>         prevsize =3D <optimized out>
>         bck =3D <optimized out>
>         fwd =3D <optimized out>
>         errstr =3D <optimized out>
>         locked =3D <optimized out>
>         __func__ =3D "_int_free"
> #5  0x00007ffff4c7c7e5 in ?? () from
> /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
> ---Type <return> to continue, or q <return> to quit---
> No symbol table info available.
> #6  0x00007ffff4c7c759 in pixman_image_unref ()
>    from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
> No symbol table info available.
> #7  0x00005555557ee88e in qemu_pixman_image_unref (image=3D0x555556335f00=
)
>     at ui/qemu-pixman.c:80
> No locals.
> #8  0x000055555580c21f in vnc_dpy_switch (dcl=3D0x7fffe849e048,
> surface=3D0x555556627c90)
>     at ui/vnc.c:588
>         vd =3D 0x7fffe849e010
>         vs =3D 0xff0000ff00
> #9  0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x555556312e90,
>     surface=3D0x555556627c90) at ui/console.c:1404
>         s =3D 0x55555633d710
>         old_surface =3D 0x555556336160
>         dcl =3D 0x7fffe849e048
> #10 0x00005555556bfa0c in qxl_render_update_area_unlocked
> (qxl=3D0x555556387f50)
>     at hw/display/qxl-render.c:131
>         vga =3D 0x555556388a40
>         surface =3D 0x555556627c90
>         i =3D 21845
> #11 0x00005555556bfc84 in qxl_render_update_area_bh (opaque=3D0x555556387=
f50)
>     at hw/display/qxl-render.c:183
>         qxl =3D 0x555556387f50
> #12 0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556277840) at async.c:8=
1
>         bh =3D 0x555556313d40
>         bhp =3D 0x7fffffffd570
>         next =3D 0x555556313d10
>         ret =3D 1
> #13 0x00005555555e3a1a in aio_poll (ctx=3D0x555556277840, blocking=3Dfals=
e)
>     at aio-posix.c:188
>         node =3D 0x7ffff41f3a89 <write+57>
>         ret =3D 0
>         progress =3D false
> #14 0x00005555555e4088 in aio_ctx_dispatch (source=3D0x555556277840,
> callback=3D0x0,
>     user_data=3D0x0) at async.c:211
>         ctx =3D 0x555556277840
>         __PRETTY_FUNCTION__ =3D "aio_ctx_dispatch"
> #15 0x00007ffff707dc5d in g_main_dispatch (context=3D0x555556278b50)
>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3111
>         dispatch =3D 0x5555555e4035 <aio_ctx_dispatch>
>         prev_source =3D 0x0
>         was_in_call =3D 0
> ---Type <return> to continue, or q <return> to quit---
>         user_data =3D 0x0
>         callback =3D 0x0
>         cb_funcs =3D <optimized out>
>         cb_data =3D <optimized out>
>         need_destroy =3D <optimized out>
>         source =3D 0x555556277840
>         current =3D 0x55555626ec40
>         i =3D 0
> #16 g_main_context_dispatch (context=3D0x555556278b50)
>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3710
> No locals.
> #17 0x000055555577cf98 in glib_pollfds_poll () at main-loop.c:190
>         context =3D 0x555556278b50
>         pfds =3D 0x555556628928
> #18 0x000055555577d075 in os_host_main_loop_wait (timeout=3D0) at
> main-loop.c:235
>         ret =3D 2
>         spin_counter =3D 2
> #19 0x000055555577d134 in main_loop_wait (nonblocking=3D0) at main-loop.c=
:484
>         ret =3D 21845
>         timeout =3D 4294967295
>         timeout_ns =3D 2937562
> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>         nonblocking =3D false
>         last_io =3D 0
> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdb48,
> envp=3D0x7fffffffdd60)
>     at vl.c:4535
>         i =3D 64
>         snapshot =3D 0
>         linux_boot =3D 0
>         icount_option =3D 0x0
>         initrd_filename =3D 0x0
>         kernel_filename =3D 0x0
>         kernel_cmdline =3D 0x55555598c664 ""
>         boot_order =3D 0x555556275340 "dc"
>         ds =3D 0x55555633d710
>         cyls =3D 0
>         heads =3D 0
>         secs =3D 0
>         translation =3D 0
>         hda_opts =3D 0x0
>         opts =3D 0x555556275290
>         machine_opts =3D 0x555556276ef0
>         olist =3D 0x555555d72700 <qemu_machine_opts>
> ---Type <return> to continue, or q <return> to quit---
>         optind =3D 66
>         optarg =3D 0x7fffffffe55e
> "file=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,i=
ndex=3D2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632"
>         loadvm =3D 0x0
>         machine_class =3D 0x55555626e030
>         machine =3D 0x555555d78540 <xenfv_machine>
>         cpu_model =3D 0x0
>         vga_model =3D 0x0
>         qtest_chrdev =3D 0x0
>         qtest_log =3D 0x0
>         pid_file =3D 0x0
>         incoming =3D 0x0
>         show_vnc_port =3D 0
>         defconfig =3D true
>         userconfig =3D true
>         log_mask =3D 0x0
>         log_file =3D 0x0
>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>           realloc =3D 0x555555819540 <realloc_and_trace>,
>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0, try_m=
alloc
> =3D 0x0,
>           try_realloc =3D 0x0}
>         trace_events =3D 0x0
>         trace_file =3D 0x0
>         __func__ =3D "main"
>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>, ram_size =
=3D
> 2013265920,
>           boot_order =3D 0x555556275340 "dc", kernel_filename =3D 0x0,
>           kernel_cmdline =3D 0x55555598c664 "", initrd_filename =3D 0x0,
> cpu_model =3D 0x0}
>
>
> 2015-01-05 12:12 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>
>> Well r=C3=A9installed from scratch, added winpv and spice drivers the bo=
rder
>> you gave me and Th=C3=A9r=C3=A8se is NO more bugs related to winpv .  wi=
ll test
>> reboot and spice/qxl functionnalities when possible. Regards.  Greg b
>> Le 5 janv. 2015 10:08, "Fabio Fantoni" <fabio.fantoni@m2r.biz> a =C3=A9c=
rit :
>>
>>>  Il 05/01/2015 00:24, Goonie Windy ha scritto:
>>>
>>> AND DMESG
>>> [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8 ip
>>> 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in libc-2.19.so
>>> [7f92a64d4000+19f000]
>>> [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state
>>> [ 3096.118716] device vif5.0-emu left promiscuous mode
>>> [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state
>>> [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state
>>> [ 3584.894741] device vif5.0 left promiscuous mode
>>> [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state
>>> [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
>>> [ 3681.878054] device vif6.0 entered promiscuous mode
>>> [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
>>> [ 3682.193528] device vif6.0-emu entered promiscuous mode
>>> [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding state
>>> [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding state
>>> [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state
>>> [ 3780.535444] device vif6.0-emu left promiscuous mode
>>> [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state
>>> [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state
>>> [ 3899.555577] device vif6.0 left promiscuous mode
>>> [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state
>>>
>>>
>>> 2015-01-05 0:21 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>
>>>>   GNU nano 2.2.6                                          Fichier :
>>>> qemu-dm-win7.log
>>>>
>>>>
>>>> (/usr/local/sbin/xl:9535): Spice-Warning **:
>>>> reds.c:1863:reds_handle_ticket: Invalid password
>>>> main_channel_link: add main channel client
>>>> main_channel_handle_parsed: net test: latency 0.318000 ms, bitrate
>>>> 26597402597 bps (25365.259740 Mbps)
>>>> inputs_connect: inputs channel client create
>>>> red_dispatcher_set_cursor_peer:
>>>> main_channel_handle_parsed: agent start
>>>> main_channel_handle_parsed: agent start
>>>> *** Error in `/usr/lib/xen/bin/qemu-system-i386': double free or
>>>> corruption (out): 0x00007f0e38dd26f0 ***
>>>>
>>>>
>>>> 2015-01-05 0:00 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>
>>>>> Should add this too:
>>>>> host                   : E766
>>>>> release                : 3.16.0-4-amd64
>>>>> version                : #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08)
>>>>> machine                : x86_64
>>>>> nr_cpus                : 4
>>>>> max_cpu_id             : 7
>>>>> nr_nodes               : 1
>>>>> cores_per_socket       : 2
>>>>> threads_per_core       : 2
>>>>> cpu_mhz                : 2594
>>>>> hw_caps                :
>>>>> bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:000002=
81
>>>>> virt_caps              : hvm hvm_directio
>>>>> total_memory           : 8055
>>>>> free_memory            : 2309
>>>>> sharing_freed_memory   : 0
>>>>> sharing_used_memory    : 0
>>>>> outstanding_claims     : 0
>>>>> free_cpus              : 0
>>>>> xen_major              : 4
>>>>> xen_minor              : 5
>>>>> xen_extra              : .0-rc
>>>>> xen_version            : 4.5.0-rc
>>>>> xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_3=
2
>>>>> hvm-3.0-x86_32p hvm-3.0-x86_64
>>>>> xen_scheduler          : credit
>>>>> xen_pagesize           : 4096
>>>>> platform_params        : virt_start=3D0xffff800000000000
>>>>> xen_changeset          : Thu Dec 18 10:02:16 2014 +0000
>>>>> git:36174af-dirty
>>>>> xen_commandline        : placeholder
>>>>> cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>>>>> cc_compile_by          : root
>>>>> cc_compile_domain      :
>>>>> cc_compile_date        : Wed Dec 31 01:20:47 CET 2014
>>>>> xend_config_format     : 4
>>>>>
>>>>>
>>>>>
>>>>> 2015-01-04 23:39 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>
>>>>>> My qemu log after spice failure:
>>>>>> (/usr/local/sbin/xl:4254): Spice-Warning **:
>>>>>> reds.c:1863:reds_handle_ticket: Invalid password
>>>>>> main_channel_link: add main channel client
>>>>>> main_channel_handle_parsed: net test: latency 0.257000 ms, bitrate
>>>>>> 81920000000 bps (78125.000000 Mbps)
>>>>>> red_dispatcher_set_cursor_peer:
>>>>>> inputs_connect: inputs channel client create
>>>>>> main_channel_handle_parsed: agent start
>>>>>> main_channel_handle_parsed: agent start
>>>>>> qemu-system-i386: malloc.c:2372: sysmalloc: Assertion `(old_top =3D=
=3D
>>>>>> (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_off=
setof
>>>>>> (struct malloc_chunk, fd)))) && old_size =3D=3D 0) || ((unsigned lon=
g)
>>>>>> (old_size) >=3D (unsigned long)((((__builtin_offsetof (struct malloc=
_chunk,
>>>>>> fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t)))=
 - 1)))
>>>>>> && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) =
=3D=3D 0)'
>>>>>> failed.
>>>>>>
>>>>>>
>>>>>> 2015-01-04 23:10 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>>
>>>>>>>  This one is bug from trying to install winpv  bus driver
>>>>>>>
>>>>>>
>>> If you followed all my advices your configurations should be ok and you
>>> found a new bug or inexpected case.
>>> I do not have the knowledge to solve it.
>>> Added to cc also win-pv-devel
>>> Can someone take a look to this problem please?
>>>
>>>
>>>>>>>
>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>> _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>>> bytes=3Dbytes@entry=3D73729)
>>>>>>>     at malloc.c:3775
>>>>>>> 3775    malloc.c: Aucun fichier ou dossier de ce type.
>>>>>>> (gdb) bt full
>>>>>>> #0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>>>     bytes=3Dbytes@entry=3D73729) at malloc.c:3775
>>>>>>>         p =3D 0x555557303880
>>>>>>>         iters =3D <optimized out>
>>>>>>>         nb =3D 73744
>>>>>>>         idx =3D <optimized out>
>>>>>>>         bin =3D <optimized out>
>>>>>>>         victim =3D 0x555557303870
>>>>>>>         size =3D <optimized out>
>>>>>>>         victim_index =3D <optimized out>
>>>>>>>         remainder =3D 0x555557315880
>>>>>>>         remainder_size =3D <optimized out>
>>>>>>>         block =3D 4
>>>>>>>         bit =3D <optimized out>
>>>>>>>         map =3D 66981887
>>>>>>>         fwd =3D <optimized out>
>>>>>>>         bck =3D <optimized out>
>>>>>>>         errstr =3D 0x0
>>>>>>>         __func__ =3D "_int_malloc"
>>>>>>> #1  0x00007ffff3eb74a1 in _int_realloc (
>>>>>>>     av=3Dav@entry=3D0x7ffff41df620 <main_arena>, oldp=3Doldp@entry=
=3D0x55555689d270,
>>>>>>>
>>>>>>>     oldsize=3Doldsize@entry=3D36880, nb=3Dnb@entry=3D73744) at mall=
oc.c:4286
>>>>>>>         newp =3D <optimized out>
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         newsize =3D <optimized out>
>>>>>>>         newmem =3D <optimized out>
>>>>>>>         next =3D 0x5555568a6280
>>>>>>>         remainder =3D <optimized out>
>>>>>>>         remainder_size =3D <optimized out>
>>>>>>>         bck =3D <optimized out>
>>>>>>>         fwd =3D <optimized out>
>>>>>>>         copysize =3D <optimized out>
>>>>>>>         ncopies =3D <optimized out>
>>>>>>>         s =3D <optimized out>
>>>>>>>         d =3D <optimized out>
>>>>>>>         errstr =3D 0x0
>>>>>>>         __func__ =3D "_int_realloc"
>>>>>>>         nextsize =3D <optimized out>
>>>>>>> #2  0x00007ffff3eb85f9 in __GI___libc_realloc
>>>>>>> (oldmem=3D0x55555689d280,
>>>>>>>     bytes=3D73728) at malloc.c:3029
>>>>>>>         ar_ptr =3D 0x7ffff41df620 <main_arena>
>>>>>>>         nb =3D 73744
>>>>>>>         newp =3D <optimized out>
>>>>>>>         hook =3D <optimized out>
>>>>>>>         oldp =3D 0x55555689d270
>>>>>>>         oldsize =3D 36880
>>>>>>>         __func__ =3D "__libc_realloc"
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>> #3  0x0000555555819563 in realloc_and_trace (mem=3D0x55555689d280,
>>>>>>> n_bytes=3D73728)
>>>>>>>     at vl.c:2857
>>>>>>>         ptr =3D 0x7fffffffcf30
>>>>>>> #4  0x00007ffff708388e in g_realloc (mem=3D<optimized out>,
>>>>>>> n_bytes=3D73728)
>>>>>>>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162
>>>>>>>         newmem =3D <optimized out>
>>>>>>> #5  0x000055555582d3e2 in phys_map_node_reserve (map=3D0x5555563ccf=
98,
>>>>>>> nodes=3D18)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/exec.c:152
>>>>>>> No locals.
>>>>>>> #6  0x000055555582d701 in phys_page_set (d=3D0x5555563ccf90,
>>>>>>> index=3D160, nb=3D16,
>>>>>>>     leaf=3D5) at /home/goon/xen/tools/qemu-xen-dir/exec.c:211
>>>>>>> No locals.
>>>>>>> #7  0x000055555582f1ae in register_multipage (d=3D0x5555563ccf90,
>>>>>>>     section=3D0x7fffffffcfe0) at
>>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:937
>>>>>>>         start_addr =3D 655360
>>>>>>>         section_index =3D 5
>>>>>>>         num_pages =3D 16
>>>>>>>         __PRETTY_FUNCTION__ =3D "register_multipage"
>>>>>>> #8  0x000055555582f4b4 in mem_add (listener=3D0x55555633b898,
>>>>>>>     section=3D0x7fffffffd1a0) at
>>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:968
>>>>>>>         as =3D 0x55555633b860
>>>>>>>         d =3D 0x5555563ccf90
>>>>>>>         now =3D {mr =3D 0x55555636dd30, address_space =3D 0x5555563=
3b860,
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =
=3D 0},
>>>>>>>           offset_within_address_space =3D 655360, readonly =3D fals=
e}
>>>>>>>         remain =3D {mr =3D 0x55555636dd30, address_space =3D
>>>>>>> 0x55555633b860,
>>>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =
=3D 0},
>>>>>>>           offset_within_address_space =3D 655360, readonly =3D fals=
e}
>>>>>>>         page_size =3D {lo =3D 4096, hi =3D 0}
>>>>>>> #9  0x0000555555892a01 in address_space_update_topology_pass (
>>>>>>>     as=3D0x55555633b860, old_view=3D0x555556495910,
>>>>>>> new_view=3D0x55555687f2c0,
>>>>>>>     adding=3Dtrue) at /home/goon/xen/tools/qemu-xen-dir/memory.c:73=
6
>>>>>>>         _listener =3D 0x55555633b898
>>>>>>>         iold =3D 1
>>>>>>>         inew =3D 1
>>>>>>>         frold =3D 0x5555565fd828
>>>>>>>         frnew =3D 0x5555568b23e8
>>>>>>> #10 0x0000555555892fd7 in address_space_update_topology
>>>>>>> (as=3D0x55555633b860)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:765
>>>>>>>         old_view =3D 0x555556495910
>>>>>>>         new_view =3D 0x55555687f2c0
>>>>>>> #11 0x00005555558930fc in memory_region_transaction_commit ()
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:800
>>>>>>>         as =3D 0x55555633b860
>>>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_transaction_commit"
>>>>>>> #12 0x00005555558951ed in memory_region_del_subregion
>>>>>>> (mr=3D0x5555562855d0,
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>     subregion=3D0x555556349250)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:1487
>>>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_del_subregion"
>>>>>>> #13 0x000055555570fdf3 in pci_update_mappings (d=3D0x5555563489f0)
>>>>>>>     at hw/pci/pci.c:1113
>>>>>>>         r =3D 0x555556348af8
>>>>>>>         i =3D 0
>>>>>>>         new_addr =3D 18446744073709551615
>>>>>>> #14 0x0000555555710110 in pci_default_write_config
>>>>>>> (d=3D0x5555563489f0, addr=3D4,
>>>>>>>     val=3D0, l=3D2) at hw/pci/pci.c:1168
>>>>>>>         i =3D 2
>>>>>>>         was_irq_disabled =3D 0
>>>>>>>         __PRETTY_FUNCTION__ =3D "pci_default_write_config"
>>>>>>> #15 0x0000555555714125 in pci_host_config_write_common (
>>>>>>>     pci_dev=3D0x5555563489f0, addr=3D4, limit=3D256, val=3D1024, le=
n=3D2)
>>>>>>>     at hw/pci/pci_host.c:57
>>>>>>>         __PRETTY_FUNCTION__ =3D "pci_host_config_write_common"
>>>>>>> #16 0x0000555555714229 in pci_data_write (s=3D0x5555562a8cf0, addr=
=3D
>>>>>>> 2147487748,
>>>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:84
>>>>>>>         pci_dev =3D 0x5555563489f0
>>>>>>>         config_addr =3D 4
>>>>>>> #17 0x0000555555714351 in pci_host_data_write
>>>>>>> (opaque=3D0x555556311470, addr=3D0,
>>>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:137
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         s =3D 0x555556311470
>>>>>>> #18 0x0000555555891531 in memory_region_write_accessor
>>>>>>> (mr=3D0x555556313860,
>>>>>>>     addr=3D0, value=3D0x7fffffffd5e8, size=3D2, shift=3D0, mask=3D6=
5535)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:441
>>>>>>>         tmp =3D 1024
>>>>>>> #19 0x0000555555891636 in access_with_adjusted_size (addr=3D0,
>>>>>>>     value=3D0x7fffffffd5e8, size=3D2, access_size_min=3D1,
>>>>>>> access_size_max=3D4,
>>>>>>>     access=3D0x5555558914b0 <memory_region_write_accessor>,
>>>>>>> mr=3D0x555556313860)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:478
>>>>>>>         access_mask =3D 65535
>>>>>>>         access_size =3D 2
>>>>>>>         i =3D 0
>>>>>>> #20 0x0000555555893772 in memory_region_dispatch_write
>>>>>>> (mr=3D0x555556313860,
>>>>>>>     addr=3D0, data=3D1024, size=3D2)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:985
>>>>>>> No locals.
>>>>>>> #21 0x0000555555896068 in io_mem_write (mr=3D0x555556313860, addr=
=3D0,
>>>>>>> val=3D1024,
>>>>>>>     size=3D2) at /home/goon/xen/tools/qemu-xen-dir/memory.c:1744
>>>>>>> No locals.
>>>>>>> #22 0x000055555583183c in address_space_rw (
>>>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>>>     len=3D2, is_write=3Dtrue) at
>>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:2029
>>>>>>>         l =3D 2
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         ptr =3D 0x7fffffffd6f4 "\377\377\377\377"
>>>>>>>         val =3D 1024
>>>>>>>         addr1 =3D 0
>>>>>>>         mr =3D 0x555556313860
>>>>>>>         error =3D false
>>>>>>> #23 0x0000555555831b12 in address_space_write (
>>>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>>>     len=3D2) at /home/goon/xen/tools/qemu-xen-dir/exec.c:2091
>>>>>>> No locals.
>>>>>>> #24 0x000055555588f486 in cpu_outw (addr=3D3324, val=3D1024)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/ioport.c:77
>>>>>>>         buf =3D "\000\004"
>>>>>>> #25 0x000055555590f460 in do_outp (addr=3D3324, size=3D2, val=3D102=
4)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668
>>>>>>> No locals.
>>>>>>> #26 0x000055555590f66f in cpu_ioreq_pio (req=3D0x7ffff7ff3000)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729
>>>>>>>         i =3D 0
>>>>>>> #27 0x000055555590f910 in handle_ioreq (req=3D0x7ffff7ff3000)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781
>>>>>>> No locals.
>>>>>>> #28 0x000055555590fc0f in cpu_handle_ioreq (opaque=3D0x5555562abf10=
)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         state =3D 0x5555562abf10
>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>> #29 0x000055555577c385 in qemu_iohandler_poll
>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>     at iohandler.c:143
>>>>>>>         revents =3D 1
>>>>>>>         pioh =3D 0x55555627ca90
>>>>>>>         ioh =3D 0x555556366320
>>>>>>> #30 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>> main-loop.c:485
>>>>>>>         ret =3D 1
>>>>>>>         timeout =3D 4294967295
>>>>>>>         timeout_ns =3D 16717983
>>>>>>> #31 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>         nonblocking =3D false
>>>>>>>         last_io =3D 1
>>>>>>> #32 0x000055555581d66b in main (argc=3D64, argv=3D0x7fffffffdc78,
>>>>>>>     envp=3D0x7fffffffde80) at vl.c:4535
>>>>>>>         i =3D 64
>>>>>>>         snapshot =3D 0
>>>>>>>         linux_boot =3D 0
>>>>>>>         icount_option =3D 0x0
>>>>>>>         initrd_filename =3D 0x0
>>>>>>>         kernel_filename =3D 0x0
>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         boot_order =3D 0x555556275340 "dc"
>>>>>>>         ds =3D 0x5555563564e0
>>>>>>>         cyls =3D 0
>>>>>>>         heads =3D 0
>>>>>>>         secs =3D 0
>>>>>>>         translation =3D 0
>>>>>>>         hda_opts =3D 0x0
>>>>>>>         opts =3D 0x555556275290
>>>>>>>         machine_opts =3D 0x555556276ef0
>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>         optind =3D 64
>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cach=
e=3Dwriteback"
>>>>>>>         loadvm =3D 0x0
>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>         cpu_model =3D 0x0
>>>>>>>         vga_model =3D 0x0
>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>         qtest_log =3D 0x0
>>>>>>>         pid_file =3D 0x0
>>>>>>>         incoming =3D 0x0
>>>>>>>         show_vnc_port =3D 0
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         defconfig =3D true
>>>>>>>         userconfig =3D true
>>>>>>>         log_mask =3D 0x0
>>>>>>>         log_file =3D 0x0
>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>=
,
>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>         trace_events =3D 0x0
>>>>>>>         trace_file =3D 0x0
>>>>>>>         __func__ =3D "main"
>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275340 "d=
c",
>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c66=
4 "",
>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>
>>>>>>>
>>>>>>> 2015-01-04 22:29 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>=
:
>>>>>>>
>>>>>>>>   Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>>> This is free software: you are free to change and redistribute it.
>>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>>> copying"
>>>>>>>> and "show warranty" for details.
>>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>>> Type "show configuration" for configuration details.
>>>>>>>> For bug reporting instructions, please see:
>>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>>> For help, type "help".
>>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>>> (gdb) target remote localhost:1234
>>>>>>>> Remote debugging using localhost:1234
>>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>>> done.
>>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>>> (gdb) c
>>>>>>>> Continuing.
>>>>>>>>
>>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>>> (gdb) bt full
>>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>         sif =3D <optimized out>
>>>>>>>>         total =3D <optimized out>
>>>>>>>>         n =3D <optimized out>
>>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>>> No locals.
>>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at
>>>>>>>> char_device.c:798
>>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized ou=
t>)
>>>>>>>>     at reds.c:3795
>>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>>         item =3D 0x5555562d8350
>>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>>> ui/spice-core.c:909
>>>>>>>> No locals.
>>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0,
>>>>>>>> loadvm=3D0)
>>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>>         startstop =3D true
>>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>>         d =3D 0x55555637d7e0
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/core/qdev.c:934
>>>>>>>>         klass =3D 0x555556270410
>>>>>>>>         __func__ =3D "device_reset"
>>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>>> opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:240
>>>>>>>> No locals.
>>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:411
>>>>>>>>         bus =3D 0x0
>>>>>>>>         err =3D 0
>>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>>         err =3D 0
>>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:403
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>>         err =3D 0
>>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>>         err =3D 0
>>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>>     at hw/core/qdev.c:261
>>>>>>>> No locals.
>>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60=
b0)
>>>>>>>>     at hw/core/qdev.c:267
>>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>>         re =3D 0x555556375890
>>>>>>>>         nre =3D 0x0
>>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>>> vl.c:1885
>>>>>>>>         mc =3D 0x55555626e030
>>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b095=
0)
>>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>>         state =3D 0x5555562b0950
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>>     at iohandler.c:143
>>>>>>>>         revents =3D 1
>>>>>>>>         pioh =3D 0x5555563218c0
>>>>>>>>         ioh =3D 0x555556362a80
>>>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>>> main-loop.c:485
>>>>>>>>         ret =3D 1
>>>>>>>>         timeout =3D 4294967295
>>>>>>>>         timeout_ns =3D 17355567
>>>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>>         nonblocking =3D false
>>>>>>>>         last_io =3D 1
>>>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>>>         i =3D 64
>>>>>>>>         snapshot =3D 0
>>>>>>>>         linux_boot =3D 0
>>>>>>>>         icount_option =3D 0x0
>>>>>>>>         initrd_filename =3D 0x0
>>>>>>>>         kernel_filename =3D 0x0
>>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         ds =3D 0x5555563324a0
>>>>>>>>         cyls =3D 0
>>>>>>>>         heads =3D 0
>>>>>>>>         secs =3D 0
>>>>>>>>         translation =3D 0
>>>>>>>>         hda_opts =3D 0x0
>>>>>>>>         opts =3D 0x5555562752d0
>>>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>>         optind =3D 66
>>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cac=
he=3Dwriteback"
>>>>>>>>         loadvm =3D 0x0
>>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>>         cpu_model =3D 0x0
>>>>>>>>         vga_model =3D 0x0
>>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>>         qtest_log =3D 0x0
>>>>>>>>         pid_file =3D 0x0
>>>>>>>>         incoming =3D 0x0
>>>>>>>>         show_vnc_port =3D 0
>>>>>>>>         defconfig =3D true
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         userconfig =3D true
>>>>>>>>         log_mask =3D 0x0
>>>>>>>>         log_file =3D 0x0
>>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace=
>,
>>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0=
,
>>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>>         trace_events =3D 0x0
>>>>>>>>         trace_file =3D 0x0
>>>>>>>>         __func__ =3D "main"
>>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "=
dc",
>>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c6=
64
>>>>>>>> "",
>>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>>  (gdb) bt full ecc
>>>>>>>> No symbol "ecc" in current context.
>>>>>>>>
>>>>>>>> (gdb) bt full
>>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>         sif =3D <optimized out>
>>>>>>>>         total =3D <optimized out>
>>>>>>>>         n =3D <optimized out>
>>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>>> No locals.
>>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at
>>>>>>>> char_device.c:798
>>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized ou=
t>)
>>>>>>>>     at reds.c:3795
>>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>>         item =3D 0x5555562d8350
>>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>>> ui/spice-core.c:909
>>>>>>>> No locals.
>>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0,
>>>>>>>> loadvm=3D0)
>>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>>         startstop =3D true
>>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>>         d =3D 0x55555637d7e0
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/core/qdev.c:934
>>>>>>>>         klass =3D 0x555556270410
>>>>>>>>         __func__ =3D "device_reset"
>>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>>> opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:240
>>>>>>>> No locals.
>>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:411
>>>>>>>>         bus =3D 0x0
>>>>>>>>         err =3D 0
>>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>>         err =3D 0
>>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:403
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>>         err =3D 0
>>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>>         err =3D 0
>>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>>     at hw/core/qdev.c:261
>>>>>>>> No locals.
>>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60=
b0)
>>>>>>>>     at hw/core/qdev.c:267
>>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>>         re =3D 0x555556375890
>>>>>>>>         nre =3D 0x0
>>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>>> vl.c:1885
>>>>>>>>         mc =3D 0x55555626e030
>>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b095=
0)
>>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>>         state =3D 0x5555562b0950
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>>     at iohandler.c:143
>>>>>>>>         revents =3D 1
>>>>>>>>         pioh =3D 0x5555563218c0
>>>>>>>>         ioh =3D 0x555556362a80
>>>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>>> main-loop.c:485
>>>>>>>>         ret =3D 1
>>>>>>>>         timeout =3D 4294967295
>>>>>>>>         timeout_ns =3D 17355567
>>>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>>         nonblocking =3D false
>>>>>>>>         last_io =3D 1
>>>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>>>         i =3D 64
>>>>>>>>         snapshot =3D 0
>>>>>>>>         linux_boot =3D 0
>>>>>>>>         icount_option =3D 0x0
>>>>>>>>         initrd_filename =3D 0x0
>>>>>>>>         kernel_filename =3D 0x0
>>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         ds =3D 0x5555563324a0
>>>>>>>>         cyls =3D 0
>>>>>>>>         heads =3D 0
>>>>>>>>         secs =3D 0
>>>>>>>>         translation =3D 0
>>>>>>>>         hda_opts =3D 0x0
>>>>>>>>         opts =3D 0x5555562752d0
>>>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>>         optind =3D 66
>>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cac=
he=3Dwriteback"
>>>>>>>>         loadvm =3D 0x0
>>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>>         cpu_model =3D 0x0
>>>>>>>>         vga_model =3D 0x0
>>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>>         qtest_log =3D 0x0
>>>>>>>>         pid_file =3D 0x0
>>>>>>>>         incoming =3D 0x0
>>>>>>>>         show_vnc_port =3D 0
>>>>>>>>         defconfig =3D true
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         userconfig =3D true
>>>>>>>>         log_mask =3D 0x0
>>>>>>>>         log_file =3D 0x0
>>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace=
>,
>>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0=
,
>>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>>         trace_events =3D 0x0
>>>>>>>>         trace_file =3D 0x0
>>>>>>>>         __func__ =3D "main"
>>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "=
dc",
>>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c6=
64
>>>>>>>> "",
>>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>>
>>>>>>>>
>>>>>>>>   AND
>>>>>>>>
>>>>>>>>  attached files
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2015-01-04 22:24 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com=
>
>>>>>>>> :
>>>>>>>>
>>>>>>>>> GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
>>>>>>>>> Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>>>> This is free software: you are free to change and redistribute it=
.
>>>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>>>> copying"
>>>>>>>>> and "show warranty" for details.
>>>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>>>> Type "show configuration" for configuration details.
>>>>>>>>> For bug reporting instructions, please see:
>>>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>>>> For help, type "help".
>>>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>>>> (gdb) target remote localhost:1234
>>>>>>>>> Remote debugging using localhost:1234
>>>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbol=
s
>>>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>>>> done.
>>>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>>>> (gdb) c
>>>>>>>>> Continuing.
>>>>>>>>>
>>>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>>>> (gdb) bt full
>>>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>>         sif =3D <optimized out>
>>>>>>>>>         total =3D <optimized out>
>>>>>>>>>         n =3D <optimized out>
>>>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>>>> No locals.
>>>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at
>>>>>>>>> char_device.c:798
>>>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized o=
ut>)
>>>>>>>>>     at reds.c:3795
>>>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>>>         item =3D 0x5555562d8350
>>>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>>>> ui/spice-core.c:909
>>>>>>>>> No locals.
>>>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0,
>>>>>>>>> loadvm=3D0)
>>>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>>>         startstop =3D true
>>>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0=
)
>>>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>>>         d =3D 0x55555637d7e0
>>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>>>     at hw/core/qdev.c:934
>>>>>>>>>         klass =3D 0x555556270410
>>>>>>>>>         __func__ =3D "device_reset"
>>>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>>>> opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:240
>>>>>>>>> No locals.
>>>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e=
0,
>>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>>> <qdev_reset_one>,
>>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:411
>>>>>>>>>         bus =3D 0x0
>>>>>>>>>         err =3D 0
>>>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee=
0,
>>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>>> <qdev_reset_one>,
>>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>>>         err =3D 0
>>>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b=
0,
>>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>>> <qdev_reset_one>,
>>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:403
>>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>>>         err =3D 0
>>>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b=
0,
>>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>>> <qdev_reset_one>,
>>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>>>         err =3D 0
>>>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>>>     at hw/core/qdev.c:261
>>>>>>>>> No locals.
>>>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a6=
0b0)
>>>>>>>>>     at hw/core/qdev.c:267
>>>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>>>         re =3D 0x555556375890
>>>>>>>>>         nre =3D 0x0
>>>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>>>> vl.c:1885
>>>>>>>>>         mc =3D 0x55555626e030
>>>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b09=
50)
>>>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>>>         state =3D 0x5555562b0950
>>>>>>>>> ---Type <return> to continue, or q
>>>>>>>>>
>>>>>>>> ...
>>
>>
>

--001a113cf3e025c38b050be8ae70
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>another bt full,<br></div>same problem with remote-vi=
ewer, this time trying to move the window and it sticked somewhere -you kno=
w those sticky functions that develop a window- so that it fits one half or=
 smtg...=C2=A0 <br><br><br><br>gdb /usr/lib/xen/bin/qemu-system-i386<br>GNU=
 gdb (Debian 7.7.1+dfsg-5) 7.7.1<br>Copyright (C) 2014 Free Software Founda=
tion, Inc.<br>License GPLv3+: GNU GPL version 3 or later &lt;<a href=3D"htt=
p://gnu.org/licenses/gpl.html">http://gnu.org/licenses/gpl.html</a>&gt;<br>=
This is free software: you are free to change and redistribute it.<br>There=
 is NO WARRANTY, to the extent permitted by law.=C2=A0 Type &quot;show copy=
ing&quot;<br>and &quot;show warranty&quot; for details.<br>This GDB was con=
figured as &quot;x86_64-linux-gnu&quot;.<br>Type &quot;show configuration&q=
uot; for configuration details.<br>For bug reporting instructions, please s=
ee:<br>&lt;<a href=3D"http://www.gnu.org/software/gdb/bugs/">http://www.gnu=
.org/software/gdb/bugs/</a>&gt;.<br>Find the GDB manual and other documenta=
tion resources online at:<br>&lt;<a href=3D"http://www.gnu.org/software/gdb=
/documentation/">http://www.gnu.org/software/gdb/documentation/</a>&gt;.<br=
>For help, type &quot;help&quot;.<br>Type &quot;apropos word&quot; to searc=
h for commands related to &quot;word&quot;...<br>Reading symbols from /usr/=
lib/xen/bin/qemu-system-i386...done.<br>(gdb) target remote localhost:1234<=
br>c<br>Remote debugging using localhost:1234<br>Reading symbols from /lib6=
4/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-li=
nux-gnu/ld-2.19.so...done.<br>done.<br>Loaded symbols for /lib64/ld-linux-x=
86-64.so.2<br>0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.s=
o.2<br>(gdb) c<br>Continuing.<br><br>Program received signal SIGSEGV, Segme=
ntation fault.<br>_int_malloc (av=3Dav@entry=3D0x7ffff41df620 &lt;main_aren=
a&gt;, <br>=C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=3D5152000) at malloc.c:37=
75<br>3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun fichier ou dossier de ce type.=
<br>(gdb) bt full<br>#0=C2=A0 _int_malloc (av=3Dav@entry=3D0x7ffff41df620 &=
lt;main_arena&gt;, <br>=C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=3D5152000) at=
 malloc.c:3775<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 p =3D 0x555556=
c87660<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 iters =3D &lt;optimize=
d out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nb =3D 5152016<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 idx =3D &lt;optimized out&gt;<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bin =3D &lt;optimized out&gt;<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 victim =3D 0x555556c87650<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size =3D &lt;optimized out&gt;<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 victim_index =3D &lt;optimized=
 out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder =3D 0x5555=
57171360<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder_size =3D &=
lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 block =
=3D 4<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bit =3D &lt;optimized o=
ut&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 map =3D 2067779454<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fwd =3D &lt;optimized out&gt;<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bck =3D &lt;optimized out&gt;<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 errstr =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &quot;_int_malloc&quot;<br>#1=
=C2=A0 0x00007ffff3eb886c in __libc_calloc (n=3D&lt;optimized out&gt;, <br>=
=C2=A0=C2=A0=C2=A0 elem_size=3D&lt;optimized out&gt;) at malloc.c:3219<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 av =3D 0x7ffff41df620 &lt;main_a=
rena&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 oldtop =3D 0x555556c=
87650<br>---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---=
<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 p =3D &lt;optimized out&gt;<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bytes =3D 5152000<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sz =3D 5152000<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 csz =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 oldtopsize =3D 8392736<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 mem =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 clearsize =3D &lt;optimized out&gt;<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nclears =3D &lt;optimized out&gt;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D &lt;optimized out&gt;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hook =3D &lt;optimized out&gt;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &quot;__libc_calloc=
&quot;<br>#2=C2=A0 0x00007ffff4c3dc5a in ?? () from /usr/lib/x86_64-linux-g=
nu/libpixman-1.so.0<br>No symbol table info available.<br>#3=C2=A0 0x00007f=
fff4c3dd0b in ?? () from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0<br>No s=
ymbol table info available.<br>#4=C2=A0 0x000055555580c266 in vnc_dpy_switc=
h (dcl=3D0x7fffe847d048, <br>=C2=A0=C2=A0=C2=A0 surface=3D0x5555565c29e0) a=
t ui/vnc.c:590<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vd =3D 0x7fffe=
847d010<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vs =3D 0xff0000ff00<b=
r>#5=C2=A0 0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x555556338=
0f0, <br>=C2=A0=C2=A0=C2=A0 surface=3D0x5555565c29e0) at ui/console.c:1404<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s =3D 0x55555633fe60<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 old_surface =3D 0x5555563395d0<br>-=
--Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dcl =3D 0x7fffe847d048<br>#6=C2=A0 0x0=
0005555556bfa0c in qxl_render_update_area_unlocked (qxl=3D0x555556378550)<b=
r>=C2=A0=C2=A0=C2=A0 at hw/display/qxl-render.c:131<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 vga =3D 0x555556379040<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 surface =3D 0x5555565c29e0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 i =3D 21845<br>#7=C2=A0 0x00005555556bfc84 in qxl_render=
_update_area_bh (opaque=3D0x555556378550)<br>=C2=A0=C2=A0=C2=A0 at hw/displ=
ay/qxl-render.c:183<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qxl =3D 0=
x555556378550<br>#8=C2=A0 0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556=
277840) at async.c:81<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bh =3D =
0x555556364510<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bhp =3D 0x7fff=
e86e4010<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 next =3D 0x555556314=
170<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>#9=C2=A0 0x0=
0005555555e3a1a in aio_poll (ctx=3D0x555556277840, blocking=3Dfalse)<br>=C2=
=A0=C2=A0=C2=A0 at aio-posix.c:188<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 node =3D 0x7ffff41f3a89 &lt;write+57&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 ret =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
progress =3D false<br>#10 0x00005555555e4088 in aio_ctx_dispatch (source=3D=
0x555556277840, <br>=C2=A0=C2=A0=C2=A0 callback=3D0x0, user_data=3D0x0) at =
async.c:211<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ctx =3D 0x5555562=
77840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D=
 &quot;aio_ctx_dispatch&quot;<br>---Type &lt;return&gt; to continue, or q &=
lt;return&gt; to quit---<br>#11 0x00007ffff707dc5d in g_main_dispatch (cont=
ext=3D0x555556278b50)<br>=C2=A0=C2=A0=C2=A0 at /tmp/buildd/glib2.0-2.42.1/.=
/glib/gmain.c:3111<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dispatch =
=3D 0x5555555e4035 &lt;aio_ctx_dispatch&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 prev_source =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 was_in_call =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 user=
_data =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 callback =3D 0x=
0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_funcs =3D &lt;optimized =
out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_data =3D &lt;optim=
ized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 need_destroy =3D=
 &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 source=
 =3D 0x555556277840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 current =
=3D 0x55555626ec40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br=
>#12 g_main_context_dispatch (context=3D0x555556278b50)<br>=C2=A0=C2=A0=C2=
=A0 at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3710<br>No locals.<br>#13 =
0x000055555577cf98 in glib_pollfds_poll () at main-loop.c:190<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 context =3D 0x555556278b50<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pfds =3D 0x5555563ded28<br>#14 0x00005555=
5577d075 in os_host_main_loop_wait (timeout=3D0) at main-loop.c:235<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 2<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 spin_counter =3D 1<br>#15 0x000055555577d134 in main_=
loop_wait (nonblocking=3D0) at main-loop.c:484<br>---Type &lt;return&gt; to=
 continue, or q &lt;return&gt; to quit---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 ret =3D 21845<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ti=
meout =3D 4294967295<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_=
ns =3D 13912579<br>#16 0x0000555555815fbd in main_loop () at vl.c:2056<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D false<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>#17 0x000055555581d66=
b in main (argc=3D66, argv=3D0x7fffffffdbe8, <br>=C2=A0=C2=A0=C2=A0 envp=3D=
0x7fffffffde00) at vl.c:4535<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
i =3D 64<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D 0x0<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D 0x55555598c664 &quot;&quot;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x555556275340 &quot;dc=
&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D 0x55555633fe60<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 secs =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trans=
lation =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0=
<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D 0x555556275290<br>-=
--Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D 0x555556276ef0<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D 0x555555d72700 &lt;qemu_m=
achine_opts&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66=
<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D 0x7fffffffe5e0 &q=
uot;file=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,=
index=3D2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632&quot;<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D 0x55555626e030<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D 0x555555d78540 &lt;xenf=
v_machine&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0=
x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 incoming =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 show_vnc_port =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfi=
g =3D true<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D tru=
e<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D {malloc =3D 0x55555581950b &lt;mallo=
c_and_trace&gt;, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 realloc =3D 0x555555819540 &lt;realloc_and_trace&gt;, <br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D 0x555555819584 &lt;free_an=
d_trace&gt;, calloc =3D 0x0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 try_malloc =3D 0x0, try_realloc =3D 0x0}<br>---Type &lt;return=
&gt; to continue, or q &lt;return&gt; to quit---<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 __func__ =3D &quot;main&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 args =3D {machine =3D 0x555555d78540 &lt;xenfv_machine&gt;, <br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D 2013265=
920, boot_order =3D 0x555556275340 &quot;dc&quot;, <br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0, kernel_cmdlin=
e =3D 0x55555598c664 &quot;&quot;, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0, cpu_model =3D 0x0}<br>(gdb) <br=
><br></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">2015-0=
1-05 14:39 GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:m=
onsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&g=
t;</span>:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div><di=
v><div>Hi again and sorry for monopolizing, so I tested a bit QXL/spice in =
my win 7 x64 domU on Xenserver 4.5 RC4 with Fantu patch.<br><br></div>I get=
 errors when trying to move remote-viewer window: I get a connection refuse=
d.<br></div><br>System is using deb8 unstables (sid) with only Xen compiled=
 from sources.<br><br>Xen BT full is below, machine details, you should hav=
e them now.<br><br></div>Should I try to compile spice on my machine or som=
ething?<br><br><br>regards, <br><br></div>GregB:<br><div><div><br>(gdb) tar=
get remote localhost:1234<br>Remote debugging using localhost:1234<br>Readi=
ng symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib=
/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.<br>done.<br>Loaded symbols =
for /lib64/ld-linux-x86-64.so.2<br>0x00007ffff7ddd190 in _start () from /li=
b64/ld-linux-x86-64.so.2<br>(gdb) c<br>Continuing.<br><br>Program received =
signal SIGABRT, Aborted.<br>0x00007ffff3e71107 in __GI_raise (sig=3Dsig@ent=
ry=3D6)<br>=C2=A0=C2=A0=C2=A0 at ../nptl/sysdeps/unix/sysv/linux/raise.c:56=
<br>56=C2=A0=C2=A0=C2=A0 ../nptl/sysdeps/unix/sysv/linux/raise.c: Aucun fic=
hier ou dossier de ce type.<br>(gdb) bt full<br>#0=C2=A0 0x00007ffff3e71107=
 in __GI_raise (sig=3Dsig@entry=3D6)<br>=C2=A0=C2=A0=C2=A0 at ../nptl/sysde=
ps/unix/sysv/linux/raise.c:56<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 resultvar =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid =3D 1081=
8<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 selftid =3D 10818<br>#1=C2=
=A0 0x00007ffff3e724e8 in __GI_abort () at abort.c:89<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 save_stage =3D 2<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 act =3D {__sigaction_handler =3D {sa_handler =3D 0xb8000000, <=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sa_si=
gaction =3D 0xb8000000}, sa_mask =3D {__val =3D {13258597306065747968, <br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 13258597306065747968, <a href=3D"tel:3087007744" value=3D"+13087007744"=
 target=3D"_blank">3087007744</a>, <a href=3D"tel:3087007744" value=3D"+130=
87007744" target=3D"_blank">3087007744</a>, 0, 0, <br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 13258597302978740=
224, 13258597302978740224, 13258597302978740224, 0, 0, <br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 0, 0, 0, 0,=
 0}}, sa_flags =3D 0, sa_restorer =3D 0xb800000000000000}<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sigs =3D {__val =3D {32, 0 &lt;repeats 15 ti=
mes&gt;}}<br>#2=C2=A0 0x00007ffff3eaf044 in __libc_message (do_abort=3Ddo_a=
bort@entry=3D1, <br>=C2=A0=C2=A0=C2=A0 fmt=3Dfmt@entry=3D0x7ffff3fa1c60 &qu=
ot;*** Error in `%s&#39;: %s: 0x%s ***\n&quot;)<br>=C2=A0=C2=A0=C2=A0 at ..=
/sysdeps/posix/libc_fatal.c:175<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ap =3D {{gp_offset =3D 40, fp_offset =3D 0, overflow_arg_area =3D 0x7ff=
fffffd300, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 reg_save_area =3D 0x7fffffffd290}}<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 fd =3D 2<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 on_2 =
=3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 lis=
t =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n=
list =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cp =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 written =3D &lt;optimized out&gt;<br>#3=C2=A0 0x00007ffff3eb481e in mal=
loc_printerr (action=3D1, <br>=C2=A0=C2=A0=C2=A0 str=3D0x7ffff3fa1db0 &quot=
;double free or corruption (out)&quot;, ptr=3D&lt;optimized out&gt;)<br>=C2=
=A0=C2=A0=C2=A0 at malloc.c:4996<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 buf =3D &quot;0000555556bb85e0&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 cp =3D &lt;optimized out&gt;<br>#4=C2=A0 0x00007ffff3eb5526 in=
 _int_free (av=3D&lt;optimized out&gt;, p=3D&lt;optimized out&gt;, <br>=C2=
=A0=C2=A0=C2=A0 have_lock=3D0) at malloc.c:3840<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 size =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 fb =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 nextchunk =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextsize =3D &lt;optimized out&gt;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextinuse =3D &lt;optimized out&gt;<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 prevsize =3D &lt;optimized out&=
gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bck =3D &lt;optimized out=
&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fwd =3D &lt;optimized ou=
t&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 errstr =3D &lt;optimize=
d out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 locked =3D &lt;opti=
mized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &q=
uot;_int_free&quot;<br>#5=C2=A0 0x00007ffff4c7c7e5 in ?? () from /usr/lib/x=
86_64-linux-gnu/libpixman-1.so.0<br>---Type &lt;return&gt; to continue, or =
q &lt;return&gt; to quit---<br>No symbol table info available.<br>#6=C2=A0 =
0x00007ffff4c7c759 in pixman_image_unref ()<br>=C2=A0=C2=A0 from /usr/lib/x=
86_64-linux-gnu/libpixman-1.so.0<br>No symbol table info available.<br>#7=
=C2=A0 0x00005555557ee88e in qemu_pixman_image_unref (image=3D0x555556335f0=
0)<br>=C2=A0=C2=A0=C2=A0 at ui/qemu-pixman.c:80<br>No locals.<br>#8=C2=A0 0=
x000055555580c21f in vnc_dpy_switch (dcl=3D0x7fffe849e048, surface=3D0x5555=
56627c90)<br>=C2=A0=C2=A0=C2=A0 at ui/vnc.c:588<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 vd =3D 0x7fffe849e010<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 vs =3D 0xff0000ff00<br>#9=C2=A0 0x00005555557e905b in dpy_gfx_=
replace_surface (con=3D0x555556312e90, <br>=C2=A0=C2=A0=C2=A0 surface=3D0x5=
55556627c90) at ui/console.c:1404<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 s =3D 0x55555633d710<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 o=
ld_surface =3D 0x555556336160<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 dcl =3D 0x7fffe849e048<br>#10 0x00005555556bfa0c in qxl_render_update_area=
_unlocked (qxl=3D0x555556387f50)<br>=C2=A0=C2=A0=C2=A0 at hw/display/qxl-re=
nder.c:131<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga =3D 0x55555638=
8a40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 surface =3D 0x555556627c=
90<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 21845<br>#11 0x00005=
555556bfc84 in qxl_render_update_area_bh (opaque=3D0x555556387f50)<br>=C2=
=A0=C2=A0=C2=A0 at hw/display/qxl-render.c:183<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 qxl =3D 0x555556387f50<br>#12 0x00005555555e3d68 in aio_=
bh_poll (ctx=3D0x555556277840) at async.c:81<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bh =3D 0x555556313d40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 bhp =3D 0x7fffffffd570<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 next =3D 0x555556313d10<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 r=
et =3D 1<br>#13 0x00005555555e3a1a in aio_poll (ctx=3D0x555556277840, block=
ing=3Dfalse)<br>=C2=A0=C2=A0=C2=A0 at aio-posix.c:188<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 node =3D 0x7ffff41f3a89 &lt;write+57&gt;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 progress =3D false<br>#14 0x00005555555e4088 in aio_ctx_=
dispatch (source=3D0x555556277840, callback=3D0x0, <br>=C2=A0=C2=A0=C2=A0 u=
ser_data=3D0x0) at async.c:211<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ctx =3D 0x555556277840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __=
PRETTY_FUNCTION__ =3D &quot;aio_ctx_dispatch&quot;<br>#15 0x00007ffff707dc5=
d in g_main_dispatch (context=3D0x555556278b50)<br>=C2=A0=C2=A0=C2=A0 at /t=
mp/buildd/glib2.0-2.42.1/./glib/gmain.c:3111<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 dispatch =3D 0x5555555e4035 &lt;aio_ctx_dispatch&gt;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 prev_source =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 was_in_call =3D 0<br>---Type &lt;return&gt; =
to continue, or q &lt;return&gt; to quit---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 user_data =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 callback =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_fu=
ncs =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 cb_data =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 need_destroy =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 source =3D 0x555556277840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 current =3D 0x55555626ec40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 0<br>#16 g_main_context_dispatch (context=3D0x5555562=
78b50)<br>=C2=A0=C2=A0=C2=A0 at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3=
710<br>No locals.<br>#17 0x000055555577cf98 in glib_pollfds_poll () at main=
-loop.c:190<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 context =3D 0x555=
556278b50<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pfds =3D 0x55555662=
8928<br>#18 0x000055555577d075 in os_host_main_loop_wait (timeout=3D0) at m=
ain-loop.c:235<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 2<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 spin_counter =3D 2<br>#19 0x0000=
55555577d134 in main_loop_wait (nonblocking=3D0) at main-loop.c:484<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 21845<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D 4294967295<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 timeout_ns =3D 2937562<br>#20 0x0000555555815fbd in main=
_loop () at vl.c:2056<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonbloc=
king =3D false<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 0<=
br>#21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdb48, envp=
=3D0x7fffffffdd60)<br>=C2=A0=C2=A0=C2=A0 at vl.c:4535<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 snapshot =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_b=
oot =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D 0=
x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D 0x55555598c664 &=
quot;&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x=
555556275340 &quot;dc&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d=
s =3D 0x55555633d710<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D=
 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 hda_opts =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =
=3D 0x555556275290<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_op=
ts =3D 0x555556276ef0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =
=3D 0x555555d72700 &lt;qemu_machine_opts&gt;<br>---Type &lt;return&gt; to c=
ontinue, or q &lt;return&gt; to quit---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 optind =3D 66<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 op=
targ =3D 0x7fffffffe55e &quot;file=3D/home/goon/Documents/Win7Ult-SP1-x64-e=
n-US-Sep2013.iso,if=3Dide,index=3D2,media=3Dcdrom,format=3Draw,cache=3Dwrit=
eback,id=3Dide-5632&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loa=
dvm =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D=
 0x55555626e030<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D 0=
x555555d78540 &lt;xenfv_machine&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 cpu_model =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_=
model =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =
=3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 defconfig =3D true<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
userconfig =3D true<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =
=3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D {malloc =3D 0x5555=
5581950b &lt;malloc_and_trace&gt;, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 realloc =3D 0x555555819540 &lt;realloc_and_trace&gt;, <b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D 0x5555558=
19584 &lt;free_and_trace&gt;, calloc =3D 0x0, try_malloc =3D 0x0, <br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_realloc =3D 0x0}<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine =3D 0x555555d78540 &lt;xen=
fv_machine&gt;, ram_size =3D <a href=3D"tel:2013265920" value=3D"+120132659=
20" target=3D"_blank">2013265920</a>, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x555556275340 &quot;dc&quot;, kernel_=
filename =3D 0x0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D 0x55555598c664 &quot;&quot;, initrd_filename =3D 0x0=
, cpu_model =3D 0x0}<br><br></div></div></div><div class=3D"gmail_extra"><b=
r><div class=3D"gmail_quote">2015-01-05 12:12 GMT+01:00 Goonie Windy <span =
dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_bla=
nk">monsieur.goonie@gmail.com</a>&gt;</span>:<br><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex"><p dir=3D"ltr">Well r=C3=A9installed from scratch, added winpv and spi=
ce drivers the border you gave me and Th=C3=A9r=C3=A8se is NO more bugs rel=
ated to winpv .=C2=A0 will test reboot and spice/qxl functionnalities when =
possible. Regards.=C2=A0 Greg b</p>
<div class=3D"gmail_quote">Le 5 janv. 2015 10:08, &quot;Fabio Fantoni&quot;=
 &lt;<a href=3D"mailto:fabio.fantoni@m2r.biz" target=3D"_blank">fabio.fanto=
ni@m2r.biz</a>&gt; a =C3=A9crit :<br type=3D"attribution"><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div>Il 05/01/2015 00:24, Goonie Windy ha
      scritto:<br>
    </div>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">AND DMESG<br>
        [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8
        ip 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in <a href=3D"http:=
//libc-2.19.so" target=3D"_blank">libc-2.19.so</a>[7f92a64d4000+19f000]<br>
        [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3096.118716] device vif5.0-emu left promiscuous mode<br>
        [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3584.894741] device vif5.0 left promiscuous mode<br>
        [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3681.878054] device vif6.0 entered promiscuous mode<br>
        [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3682.193528] device vif6.0-emu entered promiscuous mode<br>
        [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3780.535444] device vif6.0-emu left promiscuous mode<br>
        [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state<br>
        [ 3899.555577] device vif6.0 left promiscuous mode<br>
        [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state<br>
        <br>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">2015-01-05 0:21 GMT+01:00 Goonie Windy
          <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com=
" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div dir=3D"ltr">=C2=A0 GNU nano
              2.2.6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Fichier=C2=A0:
              qemu-dm-win7.log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
              <br>
              <br>
              (/usr/local/sbin/xl:9535): Spice-Warning **:
              reds.c:1863:reds_handle_ticket: Invalid password<br>
              main_channel_link: add main channel client<br>
              main_channel_handle_parsed: net test: latency 0.318000 ms,
              bitrate 26597402597 bps (25365.259740 Mbps)<br>
              inputs_connect: inputs channel client create<br>
              red_dispatcher_set_cursor_peer:<br>
              main_channel_handle_parsed: agent start<br>
              main_channel_handle_parsed: agent start<br>
              *** Error in `/usr/lib/xen/bin/qemu-system-i386&#39;: double
              free or corruption (out): 0x00007f0e38dd26f0 ***<br>
              <br>
            </div>
            <div class=3D"gmail_extra"><br>
              <div class=3D"gmail_quote">2015-01-05 0:00 GMT+01:00 Goonie
                Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goon=
ie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<b=
r>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div dir=3D"ltr">Should add this too:<br>
                    host=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : E766<br>
                    release=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 3.16.0-4-amd64<br>
                    version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : #1 SMP Debian 3.16.7-ckt2-1
                    (2014-12-08)<br>
                    machine=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : x86_64<br>
                    nr_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    max_cpu_id=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 7<br>
                    nr_nodes=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 1<br>
                    cores_per_socket=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    threads_per_core=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    cpu_mhz=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2594<br>
                    hw_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:0=
0000001:00000281<br>
                    virt_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : hvm hvm_directio<br>
                    total_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 8055<br>
                    free_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 2309<br>
                    sharing_freed_memory=C2=A0=C2=A0 : 0<br>
                    sharing_used_memory=C2=A0=C2=A0=C2=A0 : 0<br>
                    outstanding_claims=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    free_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    xen_major=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    xen_minor=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 5<br>
                    xen_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : .0-rc<br>
                    xen_version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 4.5.0-rc<br>
                    xen_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : xen-3.0-x86_64
                    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
                    hvm-3.0-x86_64 <br>
                    xen_scheduler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : credit<br>
                    xen_pagesize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 4096<br>
                    platform_params=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 :
                    virt_start=3D0xffff800000000000<br>
                    xen_changeset=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : Thu Dec 18 10:02:16 2014
                    +0000 git:36174af-dirty<br>
                    xen_commandline=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : placeholder<br>
                    cc_compiler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : gcc (Debian 4.9.2-10) 4.9.2<br>
                    cc_compile_by=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : root<br>
                    cc_compile_domain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : <br>
                    cc_compile_date=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : Wed Dec 31 01:20:47 CET
                    2014<br>
                    xend_config_format=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    <br>
                    <br>
                  </div>
                  <div class=3D"gmail_extra"><br>
                    <div class=3D"gmail_quote">2015-01-04 23:39 GMT+01:00
                      Goonie Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:=
monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&=
gt;</span>:<br>
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div dir=3D"ltr">My qemu log after spice failure:<b=
r>
                          (/usr/local/sbin/xl:4254): Spice-Warning **:
                          reds.c:1863:reds_handle_ticket: Invalid
                          password<br>
                          main_channel_link: add main channel client<br>
                          main_channel_handle_parsed: net test: latency
                          0.257000 ms, bitrate 81920000000 bps
                          (78125.000000 Mbps)<br>
                          red_dispatcher_set_cursor_peer: <br>
                          inputs_connect: inputs channel client create<br>
                          main_channel_handle_parsed: agent start<br>
                          main_channel_handle_parsed: agent start<br>
                          qemu-system-i386: malloc.c:2372: sysmalloc:
                          Assertion `(old_top =3D=3D (((mbinptr) (((char *)
                          &amp;((av)-&gt;bins[((1) - 1) * 2])) -
                          __builtin_offsetof (struct malloc_chunk,
                          fd)))) &amp;&amp; old_size =3D=3D 0) || ((unsigne=
d
                          long) (old_size) &gt;=3D (unsigned
                          long)((((__builtin_offsetof (struct
                          malloc_chunk, fd_nextsize))+((2
                          *(sizeof(size_t))) - 1)) &amp; ~((2
                          *(sizeof(size_t))) - 1))) &amp;&amp;
                          ((old_top)-&gt;size &amp; 0x1) &amp;&amp;
                          ((unsigned long) old_end &amp; pagemask) =3D=3D
                          0)&#39; failed.<br>
                          <br>
                        </div>
                        <div class=3D"gmail_extra"><br>
                          <div class=3D"gmail_quote">2015-01-04 23:10
                            GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.gooni=
e@gmail.com</a>&gt;</span>:<br>
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div>This one is bug from trying to
                                  install winpv=C2=A0 bus driver<br>
                                </div>
                              </div>
                            </blockquote>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
    If you followed all my advices your configurations should be ok and
    you found a new bug or inexpected case.<br>
    <span lang=3D"en"><span>I
        do not have</span> <span>the knowledge to</span> <span>solve it.</s=
pan></span><br>
    Added to cc also win-pv-devel<br>
    Can someone take a look to this problem please?<br>
    <br>
    <blockquote type=3D"cite">
      <div class=3D"gmail_extra">
        <div class=3D"gmail_quote">
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div class=3D"gmail_extra">
              <div class=3D"gmail_quote">
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div class=3D"gmail_extra">
                    <div class=3D"gmail_quote">
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div class=3D"gmail_extra">
                          <div class=3D"gmail_quote">
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div><br>
                                </div>
                                <div>
                                  <div><br>
                                    Program received signal SIGSEGV,
                                    Segmentation fault.<br>
                                    _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    bytes=3Dbytes@entry=3D73729)<br>
                                    =C2=A0=C2=A0=C2=A0 at malloc.c:3775<br>
                                    3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun =
fichier ou
                                    dossier de ce type.<br>
                                    (gdb) bt full<br>
                                    #0=C2=A0 _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=
=3D73729) at
                                    malloc.c:3775<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 p =3D 0x555557303880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iters =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 idx =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bin =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim =3D 0x555557303870<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 size =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim_index =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D 0x555557315880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 block =3D 4<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bit =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 map =3D 66981887<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_malloc&quot;<br>
                                    #1=C2=A0 0x00007ffff3eb74a1 in
                                    _int_realloc (<br>
                                    =C2=A0=C2=A0=C2=A0 av=3Dav@entry=3D0x7f=
fff41df620
                                    &lt;main_arena&gt;,
                                    oldp=3Doldp@entry=3D0x55555689d270, <br=
>
                                    =C2=A0=C2=A0=C2=A0 oldsize=3Doldsize@en=
try=3D36880,
                                    nb=3Dnb@entry=3D73744) at malloc.c:4286=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newsize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 next =3D 0x5555568a6280<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 copysize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ncopies =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_realloc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nextsize =3D &lt;optimized
                                    out&gt;<br>
                                    #2=C2=A0 0x00007ffff3eb85f9 in
                                    __GI___libc_realloc
                                    (oldmem=3D0x55555689d280, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3D73728) at ma=
lloc.c:3029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ar_ptr =3D 0x7ffff41df620
                                    &lt;main_arena&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hook =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldp =3D 0x55555689d270<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldsize =3D 36880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;__libc_realloc&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    #3=C2=A0 0x0000555555819563 in
                                    realloc_and_trace
                                    (mem=3D0x55555689d280, n_bytes=3D73728)=
<br>
                                    =C2=A0=C2=A0=C2=A0 at vl.c:2857<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffcf30<br>
                                    #4=C2=A0 0x00007ffff708388e in g_reallo=
c
                                    (mem=3D&lt;optimized out&gt;,
                                    n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /tmp/buildd/glib2.0-2.42.1/./glib/gmem.=
c:162<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    #5=C2=A0 0x000055555582d3e2 in
                                    phys_map_node_reserve
                                    (map=3D0x5555563ccf98, nodes=3D18)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:152<br>
                                    No locals.<br>
                                    #6=C2=A0 0x000055555582d701 in
                                    phys_page_set (d=3D0x5555563ccf90,
                                    index=3D160, nb=3D16, <br>
                                    =C2=A0=C2=A0=C2=A0 leaf=3D5) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:211<br>
                                    No locals.<br>
                                    #7=C2=A0 0x000055555582f1ae in
                                    register_multipage
                                    (d=3D0x5555563ccf90, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
cfe0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:937<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 start_addr =3D 655360<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 section_index =3D 5<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 num_pages =3D 16<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;register_multipage&quot;<br>
                                    #8=C2=A0 0x000055555582f4b4 in mem_add
                                    (listener=3D0x55555633b898, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
d1a0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:968<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D 0x5555563ccf90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 now =3D {mr =3D 0x55555636dd30,
                                    address_space =3D 0x55555633b860, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remain =3D {mr =3D
                                    0x55555636dd30, address_space =3D
                                    0x55555633b860, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 page_size =3D {lo =3D 4096, hi =3D
                                    0}<br>
                                    #9=C2=A0 0x0000555555892a01 in
                                    address_space_update_topology_pass (<br=
>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x55555633b860,
                                    old_view=3D0x555556495910,
                                    new_view=3D0x55555687f2c0, <br>
                                    =C2=A0=C2=A0=C2=A0 adding=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:736<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 _listener =3D 0x55555633b898<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iold =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 inew =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frold =3D 0x5555565fd828<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frnew =3D 0x5555568b23e8<br>
                                    #10 0x0000555555892fd7 in
                                    address_space_update_topology
                                    (as=3D0x55555633b860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:765<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 old_view =3D 0x555556495910<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_view =3D 0x55555687f2c0<br>
                                    #11 0x00005555558930fc in
                                    memory_region_transaction_commit ()<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:800<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_transaction_commit&=
quot;<br>
                                    #12 0x00005555558951ed in
                                    memory_region_del_subregion
                                    (mr=3D0x5555562855d0, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0 subregion=3D0x555556=
349250)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1487<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_del_subregion&quot;=
<br>
                                    #13 0x000055555570fdf3 in
                                    pci_update_mappings
                                    (d=3D0x5555563489f0)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci.c:1113=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 r =3D 0x555556348af8<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_addr =3D
                                    18446744073709551615<br>
                                    #14 0x0000555555710110 in
                                    pci_default_write_config
                                    (d=3D0x5555563489f0, addr=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D0, l=3D2) at h=
w/pci/pci.c:1168<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 was_irq_disabled =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_default_write_config&quot;<br=
>
                                    #15 0x0000555555714125 in
                                    pci_host_config_write_common (<br>
                                    =C2=A0=C2=A0=C2=A0 pci_dev=3D0x55555634=
89f0, addr=3D4,
                                    limit=3D256, val=3D1024, len=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci_host.c=
:57<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_host_config_write_common&quot=
;<br>
                                    #16 0x0000555555714229 in
                                    pci_data_write (s=3D0x5555562a8cf0,
                                    addr=3D<a href=3D"tel:2147487748" value=
=3D"+12147487748" target=3D"_blank">2147487748</a>, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:84<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pci_dev =3D 0x5555563489f0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 config_addr =3D 4<br>
                                    #17 0x0000555555714351 in
                                    pci_host_data_write
                                    (opaque=3D0x555556311470, addr=3D0, <br=
>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:137<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D 0x555556311470<br>
                                    #18 0x0000555555891531 in
                                    memory_region_write_accessor
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, value=3D0x=
7fffffffd5e8,
                                    size=3D2, shift=3D0, mask=3D65535)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:441<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 tmp =3D 1024<br>
                                    #19 0x0000555555891636 in
                                    access_with_adjusted_size (addr=3D0, <b=
r>
                                    =C2=A0=C2=A0=C2=A0 value=3D0x7fffffffd5=
e8, size=3D2,
                                    access_size_min=3D1,
                                    access_size_max=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 access=3D0x555555891=
4b0
                                    &lt;memory_region_write_accessor&gt;,
                                    mr=3D0x555556313860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:478<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_mask =3D 65535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_size =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #20 0x0000555555893772 in
                                    memory_region_dispatch_write
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, data=3D102=
4, size=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:985<br>
                                    No locals.<br>
                                    #21 0x0000555555896068 in
                                    io_mem_write (mr=3D0x555556313860,
                                    addr=3D0, val=3D1024, <br>
                                    =C2=A0=C2=A0=C2=A0 size=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1744<br>
                                    No locals.<br>
                                    #22 0x000055555583183c in
                                    address_space_rw (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2, is_write=3D=
true) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 l =3D 2<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffd6f4
                                    &quot;\377\377\377\377&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 val =3D 1024<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 addr1 =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mr =3D 0x555556313860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 error =3D false<br>
                                    #23 0x0000555555831b12 in
                                    address_space_write (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2091<br>
                                    No locals.<br>
                                    #24 0x000055555588f486 in cpu_outw
                                    (addr=3D3324, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/iopor=
t.c:77<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 buf =3D &quot;\000\004&quot;<br>
                                    #25 0x000055555590f460 in do_outp
                                    (addr=3D3324, size=3D2, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:668<br>
                                    No locals.<br>
                                    #26 0x000055555590f66f in
                                    cpu_ioreq_pio (req=3D0x7ffff7ff3000)<br=
>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:729<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #27 0x000055555590f910 in
                                    handle_ioreq (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:781<br>
                                    No locals.<br>
                                    #28 0x000055555590fc0f in
                                    cpu_handle_ioreq
                                    (opaque=3D0x5555562abf10)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:856<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 state =3D 0x5555562abf10<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 req =3D 0x7ffff7ff3000<br>
                                    #29 0x000055555577c385 in
                                    qemu_iohandler_poll
                                    (pollfds=3D0x555556277600, ret=3D1)<br>
                                    =C2=A0=C2=A0=C2=A0 at iohandler.c:143<b=
r>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 revents =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pioh =3D 0x55555627ca90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ioh =3D 0x555556366320<br>
                                    #30 0x000055555577d14b in
                                    main_loop_wait (nonblocking=3D0) at
                                    main-loop.c:485<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ret =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout =3D 4294967295<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout_ns =3D 16717983<br>
                                    #31 0x0000555555815fbd in main_loop
                                    () at vl.c:2056<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nonblocking =3D false<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 last_io =3D 1<br>
                                    #32 0x000055555581d66b in main
                                    (argc=3D64, argv=3D0x7fffffffdc78, <br>
                                    =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde8=
0) at
                                    vl.c:4535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 snapshot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 linux_boot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 icount_option =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 initrd_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D
                                    0x55555598c664 &quot;&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 boot_order =3D 0x555556275340
                                    &quot;dc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ds =3D 0x5555563564e0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cyls =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 heads =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 secs =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 translation =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hda_opts =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 opts =3D 0x555556275290<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_opts =3D
                                    0x555556276ef0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 olist =3D 0x555555d72700
                                    &lt;qemu_machine_opts&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optind =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optarg =3D 0x7fffffffe61a
                                    &quot;file=3D/dev/sda3,if=3Dide,index=
=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 loadvm =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_class =3D
                                    0x55555626e030<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine =3D 0x555555d78540
                                    &lt;xenfv_machine&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cpu_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 vga_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_chrdev =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_log =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pid_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 incoming =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 show_vnc_port =3D 0<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 defconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 userconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_mask =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mem_trace =3D {malloc =3D
                                    0x55555581950b
                                    &lt;malloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 realloc =3D 0x555555819540
                                    &lt;realloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 free =3D 0x555555819584
                                    &lt;free_and_trace&gt;, calloc =3D
                                    0x0, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 try_malloc =3D 0x0,
                                    try_realloc =3D 0x0}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_events =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;main&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 args =3D {machine =3D
                                    0x555555d78540
                                    &lt;xenfv_machine&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=3D"+120132659=
20" target=3D"_blank">2013265920</a>,
                                    boot_order =3D 0x555556275340 &quot;dc&=
quot;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D 0x0,
                                    kernel_cmdline =3D 0x55555598c664 &quot=
;&quot;,
                                    <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D 0x0,
                                    cpu_model =3D 0x0}<br>
                                    <br>
                                  </div>
                                </div>
                              </div>
                              <div class=3D"gmail_extra"><br>
                                <div class=3D"gmail_quote">2015-01-04
                                  22:29 GMT+01:00 Goonie Windy <span dir=3D=
"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">mo=
nsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                  <blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                    <div dir=3D"ltr">
                                      <div>
                                        <div>
                                          <div>
                                            <div>Copyright (C) 2014 Free
                                              Software Foundation, Inc.<br>
                                              License GPLv3+: GNU GPL
                                              version 3 or later &lt;<a hre=
f=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/lic=
enses/gpl.html</a>&gt;<br>
                                              This is free software: you
                                              are free to change and
                                              redistribute it.<br>
                                              There is NO WARRANTY, to
                                              the extent permitted by
                                              law.=C2=A0 Type &quot;show co=
pying&quot;<br>
                                              and &quot;show warranty&quot;=
 for
                                              details.<br>
                                              This GDB was configured as
                                              &quot;x86_64-linux-gnu&quot;.=
<br>
                                              Type &quot;show configuration=
&quot;
                                              for configuration details.<br=
>
                                              For bug reporting
                                              instructions, please see:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gdb/=
bugs/</a>&gt;.<br>
                                              Find the GDB manual and
                                              other documentation
                                              resources online at:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/soft=
ware/gdb/documentation/</a>&gt;.<br>
                                              For help, type &quot;help&quo=
t;.<br>
                                              Type &quot;apropos word&quot;=
 to
                                              search for commands
                                              related to &quot;word&quot;..=
.<br>
                                              Reading symbols from
                                              /usr/lib/xen/bin/qemu-system-=
i386...done.<br>
                                              (gdb) target remote
                                              localhost:1234<br>
                                              Remote debugging using
                                              localhost:1234<br>
                                              Reading symbols from
                                              /lib64/ld-linux-x86-64.so.2..=
.Reading
                                              symbols from
                                              /usr/lib/debug//lib/x86_64-li=
nux-gnu/ld-2.19.so...done.<br>
                                              done.<br>
                                              Loaded symbols for
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              0x00007ffff7ddd190 in
                                              _start () from
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              (gdb) c<br>
                                              Continuing.<br>
                                              <br>
                                              Program received signal
                                              SIGSEGV, Segmentation
                                              fault.<br>
                                              0x00007ffff50e5801 in
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              443=C2=A0=C2=A0=C2=A0 char_de=
vice.c:
                                              Aucun fichier ou dossier
                                              de ce type.<br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                            </div>
                                          </div>
                                          (gdb) bt full ecc<br>
                                          No symbol &quot;ecc&quot; in curr=
ent
                                          context.
                                          <div>
                                            <div><br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                              <br>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                        AND <br>
                                        <br>
                                      </div>
                                      attached files<br>
                                      <br>
                                      <br>
                                      <div><br>
                                        <div><br>
                                          <br>
                                          <br>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                    <div>
                                      <div>
                                        <div class=3D"gmail_extra"><br>
                                          <div class=3D"gmail_quote">2015-0=
1-04
                                            22:24 GMT+01:00 Goonie Windy
                                            <span dir=3D"ltr">&lt;<a href=
=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gma=
il.com</a>&gt;</span>:<br>
                                            <blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                              <div dir=3D"ltr">GNU gdb
                                                (Debian 7.7.1+dfsg-5)
                                                7.7.1<br>
                                                Copyright (C) 2014 Free
                                                Software Foundation,
                                                Inc.<br>
                                                License GPLv3+: GNU GPL
                                                version 3 or later &lt;<a h=
ref=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/l=
icenses/gpl.html</a>&gt;<br>
                                                This is free software:
                                                you are free to change
                                                and redistribute it.<br>
                                                There is NO WARRANTY, to
                                                the extent permitted by
                                                law.=C2=A0 Type &quot;show
                                                copying&quot;<br>
                                                and &quot;show warranty&quo=
t; for
                                                details.<br>
                                                This GDB was configured
                                                as &quot;x86_64-linux-gnu&q=
uot;.<br>
                                                Type &quot;show
                                                configuration&quot; for
                                                configuration details.<br>
                                                For bug reporting
                                                instructions, please
                                                see:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gd=
b/bugs/</a>&gt;.<br>
                                                Find the GDB manual and
                                                other documentation
                                                resources online at:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/so=
ftware/gdb/documentation/</a>&gt;.<br>
                                                For help, type &quot;help&q=
uot;.<br>
                                                Type &quot;apropos word&quo=
t; to
                                                search for commands
                                                related to &quot;word&quot;=
...<br>
                                                Reading symbols from
                                                /usr/lib/xen/bin/qemu-syste=
m-i386...done.<br>
                                                (gdb) target remote
                                                localhost:1234<span><br>
                                                  Remote debugging using
                                                  localhost:1234<br>
                                                </span><span>Reading
                                                  symbols from
                                                  /lib64/ld-linux-x86-64.so=
.2...Reading
                                                  symbols from
                                                  /usr/lib/debug//lib/x86_6=
4-linux-gnu/ld-2.19.so...done.<br>
                                                  done.<br>
                                                  Loaded symbols for
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  0x00007ffff7ddd190 in
                                                  _start () from
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  (gdb) c<br>
                                                  Continuing.<br>
                                                  <br>
                                                </span>Program received
                                                signal SIGSEGV,
                                                Segmentation fault.<br>
                                                0x00007ffff50e5801 in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                443=C2=A0=C2=A0=C2=A0 char_=
device.c:
                                                Aucun fichier ou dossier
                                                de ce type.<br>
                                                (gdb) bt full<br>
                                                #0=C2=A0 0x00007ffff50e5801
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D
                                                &lt;optimized out&gt;<br>
                                                #1=C2=A0 0x00007ffff50e6497
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0 dev=3D0x=
55555647c750)
                                                at char_device.c:436<br>
                                                No locals.<br>
                                                #2=C2=A0
                                                spice_char_device_start
                                                (dev=3D0x55555647c750) at
                                                char_device.c:798<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_char_device_sta=
rt&quot;<br>
                                                #3=C2=A0 0x00007ffff51299c6
                                                in spice_server_vm_start
                                                (s=3D&lt;optimized
                                                out&gt;)<br>
                                                =C2=A0=C2=A0=C2=A0 at reds.=
c:3795<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_server_vm_start=
&quot;<br>
                                                #4=C2=A0 0x00005555557f40c9
                                                in
                                                qemu_spice_display_start
                                                () at
                                                ui/spice-core.c:909<br>
                                                No locals.<br>
                                                #5=C2=A0 0x00005555556c4365
                                                in qxl_hard_reset
                                                (d=3D0x55555637d7e0,
                                                loadvm=3D0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1172<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                                #6=C2=A0 0x00005555556c43a3
                                                in qxl_reset_handler
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1180<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D
                                                0x55555637d7e0<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                #7=C2=A0 0x0000555555699658
                                                in device_reset
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:934<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                                0x555556270410<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;device_reset&quot;<br=
>
                                                #8=C2=A0 0x0000555555697a56
                                                in qdev_reset_one
                                                (dev=3D0x55555637d7e0,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:240<br>
                                                No locals.<br>
                                                #9=C2=A0 0x0000555555697f64
                                                in qdev_walk_children
                                                (dev=3D0x55555637d7e0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:411<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #10 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a8ee0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x55555633d4f0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #11 0x0000555555697f28
                                                in qdev_walk_children
                                                (dev=3D0x5555563131b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:403<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a8ee0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #12 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a60b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x5555562a6a80<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #13 0x0000555555697b32
                                                in qbus_reset_all
                                                (bus=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:261<br>
                                                No locals.<br>
                                                #14 0x0000555555697b54
                                                in qbus_reset_all_fn
                                                (opaque=3D0x5555562a60b0)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:267<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a60b0<br>
                                                #15 0x0000555555815b1f
                                                in qemu_devices_reset ()
                                                at vl.c:1872<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                                0x555556375890<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                                #16 0x0000555555815bbf
                                                in qemu_system_reset
                                                (report=3Dtrue) at
                                                vl.c:1885<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;qemu_system_reset&quo=
t;<br>
                                                #17 0x000055555590fcb9
                                                in cpu_handle_ioreq
                                                (opaque=3D0x5555562b0950)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                /home/goon/xen/tools/qemu-x=
en-dir/xen-hvm.c:881<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                                0x5555562b0950<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
       </div></blockquote></div></div></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div>...</blockquote></div>
</blockquote></div><br></div>
</blockquote></div><br></div>

--001a113cf3e025c38b050be8ae70--


--===============4841908951300534358==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--===============4841908951300534358==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jan 05 14:41:14 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 05 Jan 2015 14:41:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y88qI-0002b7-80; Mon, 05 Jan 2015 14:41:14 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <monsieur.goonie@gmail.com>) id 1Y88qG-0002al-E0
	for win-pv-devel@lists.xenproject.org; Mon, 05 Jan 2015 14:41:13 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	CB/0F-11608-782AAA45; Mon, 05 Jan 2015 14:41:11 +0000
X-Env-Sender: monsieur.goonie@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1420468865!14879160!1
X-Originating-IP: [209.85.214.178]
X-SpamReason: No, hits=2.1 required=7.0 tests=BIZ_TLD,HTML_50_60,
	HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2248 invoked from network); 5 Jan 2015 14:41:07 -0000
Received: from mail-ob0-f178.google.com (HELO mail-ob0-f178.google.com)
	(209.85.214.178)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Jan 2015 14:41:07 -0000
Received: by mail-ob0-f178.google.com with SMTP id gq1so61075360obb.9
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 05 Jan 2015 06:41:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=vXbHbuTMpo8hVGSAT7M6ul7jUuscDruRNSdoVD7iwfE=;
	b=amqw9VBCD5G0UNRJLbHxjtxx4ybPUa16eqWFh0s/Q/dHYwDziW4sqKXieUqH34Z00C
	nOQSUiTVICmlLtMDIRvVZ9V+rhuUouDnFfv8aDjOVrE49jUtrwXWbaa5s1uqOuZWGYB3
	aNONdUiQlCdo0fL7IoK5BwMAga/dgtnSo8tqi9r1ZlIMT2dt7L5GOMTisAtS/Nl7MtdS
	oPy57uq037Pghw9opc7yEO/GzfcrcBGv4820Yf7LPzNdWDlv0ScYrDk+RD4rwuUUvPgh
	alIazFrmelWujNtn4cDvOLOUX5f+tYz+Y6uVB477OVqay12c75div8IrfnjS7c+mlBfV
	4Fhg==
MIME-Version: 1.0
X-Received: by 10.202.53.139 with SMTP id c133mr26852578oia.109.1420468865579; 
	Mon, 05 Jan 2015 06:41:05 -0800 (PST)
Received: by 10.182.26.72 with HTTP; Mon, 5 Jan 2015 06:41:05 -0800 (PST)
In-Reply-To: <CAE5x5YVmgs1_XFiX=vXvqqBSxA3v8O_Y9cGO96CsGxXHAFwyGw@mail.gmail.com>
References: <CAE5x5YU4qBTxp+36FioAROdTOPgrU79MN3s+BkmPTWq+qsVt6w@mail.gmail.com>
	<54A53352.5090603@m2r.biz>
	<CAE5x5YVwj5zpUiS92V_8BuinUrtZZhpd8BMbH=Mo_gCmD29S2Q@mail.gmail.com>
	<54A5505C.1070602@m2r.biz>
	<CAE5x5YXdw2n-xxwpmbS_cgeTb+GSiBQ2QbUmxF7j-5gX8a24Jg@mail.gmail.com>
	<CABMPFzg4jYoMoUM2k5wys3y=iyW712RiLKSixDofXgsKe+PwJw@mail.gmail.com>
	<CAE5x5YXhCUvsfKdUN1nNQ_4hPXjBMoeSTMGYu5ysw4wki-n0PQ@mail.gmail.com>
	<CAE5x5YVhL+AmvS53KgNkz8MgDYbH5At_DDt4+tCPzqnht2V-KQ@mail.gmail.com>
	<54A97FA5.90208@m2r.biz>
	<CAE5x5YXmTZAO0c4n1qXxa2+1T2xT3QPHf3Be2CrK2dxtjmpihA@mail.gmail.com>
	<CAE5x5YUjXY9bqY6mOSU2b0RgLaLaM4K0MpS-KOWCB2E+_QLnXA@mail.gmail.com>
	<CAE5x5YXuAPCKM5aP=63ZiH-ffmfki1ioMNsYEV36+SBLz0_t_A@mail.gmail.com>
	<CAE5x5YUXObr6g2juExrb4zzLDg+S=v+Rw1ZDqCy7G6TfhpZTAQ@mail.gmail.com>
	<CAE5x5YV_VDjEK6rxFcZX09WGcLT-i4OrtU8gJa6ZfYTZdjvJ0w@mail.gmail.com>
	<CAE5x5YU9RJo0SFWOAV-hrxmA0FfKz+fXSHqu7mC04e2j6hbvWw@mail.gmail.com>
	<CAE5x5YUS4fn3QC-6DZ0dbw9qkDQYJPdmdfLZfGMepOZNKAv+JA@mail.gmail.com>
	<54AA549F.8050507@m2r.biz>
	<CAE5x5YUBCsyE30zUQ6jE1e1N7FKcQM=+VztVy3JzEFpG9Fzkiw@mail.gmail.com>
	<CAE5x5YVmgs1_XFiX=vXvqqBSxA3v8O_Y9cGO96CsGxXHAFwyGw@mail.gmail.com>
Date: Mon, 5 Jan 2015 15:41:05 +0100
Message-ID: <CAE5x5YUFT1+j_7bS5W+=+YbUhwWADgB4G_=Bc3MBNX7c7fY2EQ@mail.gmail.com>
From: Goonie Windy <monsieur.goonie@gmail.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"Paul.Durrant@citrix.com >> Paul Durrant" <paul.durrant@citrix.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] [Xen-devel] [DEBUGGING Xen/Qxl/Debian Sid] qemu
 crash on xenbus pv driver install
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4841908951300534358=="
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

--===============4841908951300534358==
Content-Type: multipart/alternative; boundary=001a113cf3e025c38b050be8ae70

--001a113cf3e025c38b050be8ae70
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

another bt full,
same problem with remote-viewer, this time trying to move the window and it
sticked somewhere -you know those sticky functions that develop a window-
so that it fits one half or smtg...



gdb /usr/lib/xen/bin/qemu-system-i386
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.htm=
l
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
(gdb) target remote localhost:1234
c
Remote debugging using localhost:1234
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from
/usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
_int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
    bytes=3Dbytes@entry=3D5152000) at malloc.c:3775
3775    malloc.c: Aucun fichier ou dossier de ce type.
(gdb) bt full
#0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
    bytes=3Dbytes@entry=3D5152000) at malloc.c:3775
        p =3D 0x555556c87660
        iters =3D <optimized out>
        nb =3D 5152016
        idx =3D <optimized out>
        bin =3D <optimized out>
        victim =3D 0x555556c87650
        size =3D <optimized out>
        victim_index =3D <optimized out>
        remainder =3D 0x555557171360
        remainder_size =3D <optimized out>
        block =3D 4
        bit =3D <optimized out>
        map =3D 2067779454
        fwd =3D <optimized out>
        bck =3D <optimized out>
        errstr =3D 0x0
        __func__ =3D "_int_malloc"
#1  0x00007ffff3eb886c in __libc_calloc (n=3D<optimized out>,
    elem_size=3D<optimized out>) at malloc.c:3219
        av =3D 0x7ffff41df620 <main_arena>
        oldtop =3D 0x555556c87650
---Type <return> to continue, or q <return> to quit---
        p =3D <optimized out>
        bytes =3D 5152000
        sz =3D 5152000
        csz =3D <optimized out>
        oldtopsize =3D 8392736
        mem =3D <optimized out>
        clearsize =3D <optimized out>
        nclears =3D <optimized out>
        d =3D <optimized out>
        hook =3D <optimized out>
        __func__ =3D "__libc_calloc"
#2  0x00007ffff4c3dc5a in ?? () from
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0
No symbol table info available.
#3  0x00007ffff4c3dd0b in ?? () from
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0
No symbol table info available.
#4  0x000055555580c266 in vnc_dpy_switch (dcl=3D0x7fffe847d048,
    surface=3D0x5555565c29e0) at ui/vnc.c:590
        vd =3D 0x7fffe847d010
        vs =3D 0xff0000ff00
#5  0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x5555563380f0,
    surface=3D0x5555565c29e0) at ui/console.c:1404
        s =3D 0x55555633fe60
        old_surface =3D 0x5555563395d0
---Type <return> to continue, or q <return> to quit---
        dcl =3D 0x7fffe847d048
#6  0x00005555556bfa0c in qxl_render_update_area_unlocked
(qxl=3D0x555556378550)
    at hw/display/qxl-render.c:131
        vga =3D 0x555556379040
        surface =3D 0x5555565c29e0
        i =3D 21845
#7  0x00005555556bfc84 in qxl_render_update_area_bh (opaque=3D0x55555637855=
0)
    at hw/display/qxl-render.c:183
        qxl =3D 0x555556378550
#8  0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556277840) at async.c:81
        bh =3D 0x555556364510
        bhp =3D 0x7fffe86e4010
        next =3D 0x555556314170
        ret =3D 1
#9  0x00005555555e3a1a in aio_poll (ctx=3D0x555556277840, blocking=3Dfalse)
    at aio-posix.c:188
        node =3D 0x7ffff41f3a89 <write+57>
        ret =3D 0
        progress =3D false
#10 0x00005555555e4088 in aio_ctx_dispatch (source=3D0x555556277840,
    callback=3D0x0, user_data=3D0x0) at async.c:211
        ctx =3D 0x555556277840
        __PRETTY_FUNCTION__ =3D "aio_ctx_dispatch"
---Type <return> to continue, or q <return> to quit---
#11 0x00007ffff707dc5d in g_main_dispatch (context=3D0x555556278b50)
    at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3111
        dispatch =3D 0x5555555e4035 <aio_ctx_dispatch>
        prev_source =3D 0x0
        was_in_call =3D 0
        user_data =3D 0x0
        callback =3D 0x0
        cb_funcs =3D <optimized out>
        cb_data =3D <optimized out>
        need_destroy =3D <optimized out>
        source =3D 0x555556277840
        current =3D 0x55555626ec40
        i =3D 0
#12 g_main_context_dispatch (context=3D0x555556278b50)
    at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3710
No locals.
#13 0x000055555577cf98 in glib_pollfds_poll () at main-loop.c:190
        context =3D 0x555556278b50
        pfds =3D 0x5555563ded28
#14 0x000055555577d075 in os_host_main_loop_wait (timeout=3D0) at
main-loop.c:235
        ret =3D 2
        spin_counter =3D 1
#15 0x000055555577d134 in main_loop_wait (nonblocking=3D0) at main-loop.c:4=
84
---Type <return> to continue, or q <return> to quit---
        ret =3D 21845
        timeout =3D 4294967295
        timeout_ns =3D 13912579
#16 0x0000555555815fbd in main_loop () at vl.c:2056
        nonblocking =3D false
        last_io =3D 1
#17 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdbe8,
    envp=3D0x7fffffffde00) at vl.c:4535
        i =3D 64
        snapshot =3D 0
        linux_boot =3D 0
        icount_option =3D 0x0
        initrd_filename =3D 0x0
        kernel_filename =3D 0x0
        kernel_cmdline =3D 0x55555598c664 ""
        boot_order =3D 0x555556275340 "dc"
        ds =3D 0x55555633fe60
        cyls =3D 0
        heads =3D 0
        secs =3D 0
        translation =3D 0
        hda_opts =3D 0x0
        opts =3D 0x555556275290
---Type <return> to continue, or q <return> to quit---
        machine_opts =3D 0x555556276ef0
        olist =3D 0x555555d72700 <qemu_machine_opts>
        optind =3D 66
        optarg =3D 0x7fffffffe5e0
"file=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,ind=
ex=3D2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632"
        loadvm =3D 0x0
        machine_class =3D 0x55555626e030
        machine =3D 0x555555d78540 <xenfv_machine>
        cpu_model =3D 0x0
        vga_model =3D 0x0
        qtest_chrdev =3D 0x0
        qtest_log =3D 0x0
        pid_file =3D 0x0
        incoming =3D 0x0
        show_vnc_port =3D 0
        defconfig =3D true
        userconfig =3D true
        log_mask =3D 0x0
        log_file =3D 0x0
        mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
          realloc =3D 0x555555819540 <realloc_and_trace>,
          free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
          try_malloc =3D 0x0, try_realloc =3D 0x0}
---Type <return> to continue, or q <return> to quit---
        trace_events =3D 0x0
        trace_file =3D 0x0
        __func__ =3D "main"
        args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
          ram_size =3D 2013265920, boot_order =3D 0x555556275340 "dc",
          kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c664 "",
          initrd_filename =3D 0x0, cpu_model =3D 0x0}
(gdb)


2015-01-05 14:39 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:

> Hi again and sorry for monopolizing, so I tested a bit QXL/spice in my wi=
n
> 7 x64 domU on Xenserver 4.5 RC4 with Fantu patch.
>
> I get errors when trying to move remote-viewer window: I get a connection
> refused.
>
> System is using deb8 unstables (sid) with only Xen compiled from sources.
>
> Xen BT full is below, machine details, you should have them now.
>
> Should I try to compile spice on my machine or something?
>
>
> regards,
>
> GregB:
>
> (gdb) target remote localhost:1234
> Remote debugging using localhost:1234
> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from
> /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
> done.
> Loaded symbols for /lib64/ld-linux-x86-64.so.2
> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
> (gdb) c
> Continuing.
>
> Program received signal SIGABRT, Aborted.
> 0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)
>     at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> 56    ../nptl/sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier d=
e
> ce type.
> (gdb) bt full
> #0  0x00007ffff3e71107 in __GI_raise (sig=3Dsig@entry=3D6)
>     at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
>         resultvar =3D 0
>         pid =3D 10818
>         selftid =3D 10818
> #1  0x00007ffff3e724e8 in __GI_abort () at abort.c:89
>         save_stage =3D 2
>         act =3D {__sigaction_handler =3D {sa_handler =3D 0xb8000000,
>             sa_sigaction =3D 0xb8000000}, sa_mask =3D {__val =3D
> {13258597306065747968,
>               13258597306065747968, 3087007744, 3087007744, 0, 0,
>               13258597302978740224, 13258597302978740224,
> 13258597302978740224, 0, 0,
>               0, 0, 0, 0, 0}}, sa_flags =3D 0, sa_restorer =3D
> 0xb800000000000000}
>         sigs =3D {__val =3D {32, 0 <repeats 15 times>}}
> #2  0x00007ffff3eaf044 in __libc_message (do_abort=3Ddo_abort@entry=3D1,
>     fmt=3Dfmt@entry=3D0x7ffff3fa1c60 "*** Error in `%s': %s: 0x%s ***\n")
>     at ../sysdeps/posix/libc_fatal.c:175
>         ap =3D {{gp_offset =3D 40, fp_offset =3D 0, overflow_arg_area =3D
> 0x7fffffffd300,
>             reg_save_area =3D 0x7fffffffd290}}
>         fd =3D 2
>         on_2 =3D <optimized out>
>         list =3D <optimized out>
>         nlist =3D <optimized out>
>         cp =3D <optimized out>
>         written =3D <optimized out>
> #3  0x00007ffff3eb481e in malloc_printerr (action=3D1,
>     str=3D0x7ffff3fa1db0 "double free or corruption (out)", ptr=3D<optimi=
zed
> out>)
>     at malloc.c:4996
>         buf =3D "0000555556bb85e0"
>         cp =3D <optimized out>
> #4  0x00007ffff3eb5526 in _int_free (av=3D<optimized out>, p=3D<optimized
> out>,
>     have_lock=3D0) at malloc.c:3840
>         size =3D <optimized out>
>         fb =3D <optimized out>
>         nextchunk =3D <optimized out>
>         nextsize =3D <optimized out>
>         nextinuse =3D <optimized out>
>         prevsize =3D <optimized out>
>         bck =3D <optimized out>
>         fwd =3D <optimized out>
>         errstr =3D <optimized out>
>         locked =3D <optimized out>
>         __func__ =3D "_int_free"
> #5  0x00007ffff4c7c7e5 in ?? () from
> /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
> ---Type <return> to continue, or q <return> to quit---
> No symbol table info available.
> #6  0x00007ffff4c7c759 in pixman_image_unref ()
>    from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
> No symbol table info available.
> #7  0x00005555557ee88e in qemu_pixman_image_unref (image=3D0x555556335f00=
)
>     at ui/qemu-pixman.c:80
> No locals.
> #8  0x000055555580c21f in vnc_dpy_switch (dcl=3D0x7fffe849e048,
> surface=3D0x555556627c90)
>     at ui/vnc.c:588
>         vd =3D 0x7fffe849e010
>         vs =3D 0xff0000ff00
> #9  0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x555556312e90,
>     surface=3D0x555556627c90) at ui/console.c:1404
>         s =3D 0x55555633d710
>         old_surface =3D 0x555556336160
>         dcl =3D 0x7fffe849e048
> #10 0x00005555556bfa0c in qxl_render_update_area_unlocked
> (qxl=3D0x555556387f50)
>     at hw/display/qxl-render.c:131
>         vga =3D 0x555556388a40
>         surface =3D 0x555556627c90
>         i =3D 21845
> #11 0x00005555556bfc84 in qxl_render_update_area_bh (opaque=3D0x555556387=
f50)
>     at hw/display/qxl-render.c:183
>         qxl =3D 0x555556387f50
> #12 0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556277840) at async.c:8=
1
>         bh =3D 0x555556313d40
>         bhp =3D 0x7fffffffd570
>         next =3D 0x555556313d10
>         ret =3D 1
> #13 0x00005555555e3a1a in aio_poll (ctx=3D0x555556277840, blocking=3Dfals=
e)
>     at aio-posix.c:188
>         node =3D 0x7ffff41f3a89 <write+57>
>         ret =3D 0
>         progress =3D false
> #14 0x00005555555e4088 in aio_ctx_dispatch (source=3D0x555556277840,
> callback=3D0x0,
>     user_data=3D0x0) at async.c:211
>         ctx =3D 0x555556277840
>         __PRETTY_FUNCTION__ =3D "aio_ctx_dispatch"
> #15 0x00007ffff707dc5d in g_main_dispatch (context=3D0x555556278b50)
>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3111
>         dispatch =3D 0x5555555e4035 <aio_ctx_dispatch>
>         prev_source =3D 0x0
>         was_in_call =3D 0
> ---Type <return> to continue, or q <return> to quit---
>         user_data =3D 0x0
>         callback =3D 0x0
>         cb_funcs =3D <optimized out>
>         cb_data =3D <optimized out>
>         need_destroy =3D <optimized out>
>         source =3D 0x555556277840
>         current =3D 0x55555626ec40
>         i =3D 0
> #16 g_main_context_dispatch (context=3D0x555556278b50)
>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3710
> No locals.
> #17 0x000055555577cf98 in glib_pollfds_poll () at main-loop.c:190
>         context =3D 0x555556278b50
>         pfds =3D 0x555556628928
> #18 0x000055555577d075 in os_host_main_loop_wait (timeout=3D0) at
> main-loop.c:235
>         ret =3D 2
>         spin_counter =3D 2
> #19 0x000055555577d134 in main_loop_wait (nonblocking=3D0) at main-loop.c=
:484
>         ret =3D 21845
>         timeout =3D 4294967295
>         timeout_ns =3D 2937562
> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>         nonblocking =3D false
>         last_io =3D 0
> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdb48,
> envp=3D0x7fffffffdd60)
>     at vl.c:4535
>         i =3D 64
>         snapshot =3D 0
>         linux_boot =3D 0
>         icount_option =3D 0x0
>         initrd_filename =3D 0x0
>         kernel_filename =3D 0x0
>         kernel_cmdline =3D 0x55555598c664 ""
>         boot_order =3D 0x555556275340 "dc"
>         ds =3D 0x55555633d710
>         cyls =3D 0
>         heads =3D 0
>         secs =3D 0
>         translation =3D 0
>         hda_opts =3D 0x0
>         opts =3D 0x555556275290
>         machine_opts =3D 0x555556276ef0
>         olist =3D 0x555555d72700 <qemu_machine_opts>
> ---Type <return> to continue, or q <return> to quit---
>         optind =3D 66
>         optarg =3D 0x7fffffffe55e
> "file=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,i=
ndex=3D2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632"
>         loadvm =3D 0x0
>         machine_class =3D 0x55555626e030
>         machine =3D 0x555555d78540 <xenfv_machine>
>         cpu_model =3D 0x0
>         vga_model =3D 0x0
>         qtest_chrdev =3D 0x0
>         qtest_log =3D 0x0
>         pid_file =3D 0x0
>         incoming =3D 0x0
>         show_vnc_port =3D 0
>         defconfig =3D true
>         userconfig =3D true
>         log_mask =3D 0x0
>         log_file =3D 0x0
>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>,
>           realloc =3D 0x555555819540 <realloc_and_trace>,
>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0, try_m=
alloc
> =3D 0x0,
>           try_realloc =3D 0x0}
>         trace_events =3D 0x0
>         trace_file =3D 0x0
>         __func__ =3D "main"
>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>, ram_size =
=3D
> 2013265920,
>           boot_order =3D 0x555556275340 "dc", kernel_filename =3D 0x0,
>           kernel_cmdline =3D 0x55555598c664 "", initrd_filename =3D 0x0,
> cpu_model =3D 0x0}
>
>
> 2015-01-05 12:12 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>
>> Well r=C3=A9installed from scratch, added winpv and spice drivers the bo=
rder
>> you gave me and Th=C3=A9r=C3=A8se is NO more bugs related to winpv .  wi=
ll test
>> reboot and spice/qxl functionnalities when possible. Regards.  Greg b
>> Le 5 janv. 2015 10:08, "Fabio Fantoni" <fabio.fantoni@m2r.biz> a =C3=A9c=
rit :
>>
>>>  Il 05/01/2015 00:24, Goonie Windy ha scritto:
>>>
>>> AND DMESG
>>> [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8 ip
>>> 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in libc-2.19.so
>>> [7f92a64d4000+19f000]
>>> [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state
>>> [ 3096.118716] device vif5.0-emu left promiscuous mode
>>> [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state
>>> [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state
>>> [ 3584.894741] device vif5.0 left promiscuous mode
>>> [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state
>>> [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
>>> [ 3681.878054] device vif6.0 entered promiscuous mode
>>> [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not ready
>>> [ 3682.193528] device vif6.0-emu entered promiscuous mode
>>> [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding state
>>> [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding state
>>> [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state
>>> [ 3780.535444] device vif6.0-emu left promiscuous mode
>>> [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state
>>> [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state
>>> [ 3899.555577] device vif6.0 left promiscuous mode
>>> [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state
>>>
>>>
>>> 2015-01-05 0:21 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>
>>>>   GNU nano 2.2.6                                          Fichier :
>>>> qemu-dm-win7.log
>>>>
>>>>
>>>> (/usr/local/sbin/xl:9535): Spice-Warning **:
>>>> reds.c:1863:reds_handle_ticket: Invalid password
>>>> main_channel_link: add main channel client
>>>> main_channel_handle_parsed: net test: latency 0.318000 ms, bitrate
>>>> 26597402597 bps (25365.259740 Mbps)
>>>> inputs_connect: inputs channel client create
>>>> red_dispatcher_set_cursor_peer:
>>>> main_channel_handle_parsed: agent start
>>>> main_channel_handle_parsed: agent start
>>>> *** Error in `/usr/lib/xen/bin/qemu-system-i386': double free or
>>>> corruption (out): 0x00007f0e38dd26f0 ***
>>>>
>>>>
>>>> 2015-01-05 0:00 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>
>>>>> Should add this too:
>>>>> host                   : E766
>>>>> release                : 3.16.0-4-amd64
>>>>> version                : #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08)
>>>>> machine                : x86_64
>>>>> nr_cpus                : 4
>>>>> max_cpu_id             : 7
>>>>> nr_nodes               : 1
>>>>> cores_per_socket       : 2
>>>>> threads_per_core       : 2
>>>>> cpu_mhz                : 2594
>>>>> hw_caps                :
>>>>> bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:00000001:000002=
81
>>>>> virt_caps              : hvm hvm_directio
>>>>> total_memory           : 8055
>>>>> free_memory            : 2309
>>>>> sharing_freed_memory   : 0
>>>>> sharing_used_memory    : 0
>>>>> outstanding_claims     : 0
>>>>> free_cpus              : 0
>>>>> xen_major              : 4
>>>>> xen_minor              : 5
>>>>> xen_extra              : .0-rc
>>>>> xen_version            : 4.5.0-rc
>>>>> xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_3=
2
>>>>> hvm-3.0-x86_32p hvm-3.0-x86_64
>>>>> xen_scheduler          : credit
>>>>> xen_pagesize           : 4096
>>>>> platform_params        : virt_start=3D0xffff800000000000
>>>>> xen_changeset          : Thu Dec 18 10:02:16 2014 +0000
>>>>> git:36174af-dirty
>>>>> xen_commandline        : placeholder
>>>>> cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>>>>> cc_compile_by          : root
>>>>> cc_compile_domain      :
>>>>> cc_compile_date        : Wed Dec 31 01:20:47 CET 2014
>>>>> xend_config_format     : 4
>>>>>
>>>>>
>>>>>
>>>>> 2015-01-04 23:39 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>
>>>>>> My qemu log after spice failure:
>>>>>> (/usr/local/sbin/xl:4254): Spice-Warning **:
>>>>>> reds.c:1863:reds_handle_ticket: Invalid password
>>>>>> main_channel_link: add main channel client
>>>>>> main_channel_handle_parsed: net test: latency 0.257000 ms, bitrate
>>>>>> 81920000000 bps (78125.000000 Mbps)
>>>>>> red_dispatcher_set_cursor_peer:
>>>>>> inputs_connect: inputs channel client create
>>>>>> main_channel_handle_parsed: agent start
>>>>>> main_channel_handle_parsed: agent start
>>>>>> qemu-system-i386: malloc.c:2372: sysmalloc: Assertion `(old_top =3D=
=3D
>>>>>> (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_off=
setof
>>>>>> (struct malloc_chunk, fd)))) && old_size =3D=3D 0) || ((unsigned lon=
g)
>>>>>> (old_size) >=3D (unsigned long)((((__builtin_offsetof (struct malloc=
_chunk,
>>>>>> fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t)))=
 - 1)))
>>>>>> && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) =
=3D=3D 0)'
>>>>>> failed.
>>>>>>
>>>>>>
>>>>>> 2015-01-04 23:10 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>:
>>>>>>
>>>>>>>  This one is bug from trying to install winpv  bus driver
>>>>>>>
>>>>>>
>>> If you followed all my advices your configurations should be ok and you
>>> found a new bug or inexpected case.
>>> I do not have the knowledge to solve it.
>>> Added to cc also win-pv-devel
>>> Can someone take a look to this problem please?
>>>
>>>
>>>>>>>
>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>> _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>>> bytes=3Dbytes@entry=3D73729)
>>>>>>>     at malloc.c:3775
>>>>>>> 3775    malloc.c: Aucun fichier ou dossier de ce type.
>>>>>>> (gdb) bt full
>>>>>>> #0  _int_malloc (av=3Dav@entry=3D0x7ffff41df620 <main_arena>,
>>>>>>>     bytes=3Dbytes@entry=3D73729) at malloc.c:3775
>>>>>>>         p =3D 0x555557303880
>>>>>>>         iters =3D <optimized out>
>>>>>>>         nb =3D 73744
>>>>>>>         idx =3D <optimized out>
>>>>>>>         bin =3D <optimized out>
>>>>>>>         victim =3D 0x555557303870
>>>>>>>         size =3D <optimized out>
>>>>>>>         victim_index =3D <optimized out>
>>>>>>>         remainder =3D 0x555557315880
>>>>>>>         remainder_size =3D <optimized out>
>>>>>>>         block =3D 4
>>>>>>>         bit =3D <optimized out>
>>>>>>>         map =3D 66981887
>>>>>>>         fwd =3D <optimized out>
>>>>>>>         bck =3D <optimized out>
>>>>>>>         errstr =3D 0x0
>>>>>>>         __func__ =3D "_int_malloc"
>>>>>>> #1  0x00007ffff3eb74a1 in _int_realloc (
>>>>>>>     av=3Dav@entry=3D0x7ffff41df620 <main_arena>, oldp=3Doldp@entry=
=3D0x55555689d270,
>>>>>>>
>>>>>>>     oldsize=3Doldsize@entry=3D36880, nb=3Dnb@entry=3D73744) at mall=
oc.c:4286
>>>>>>>         newp =3D <optimized out>
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         newsize =3D <optimized out>
>>>>>>>         newmem =3D <optimized out>
>>>>>>>         next =3D 0x5555568a6280
>>>>>>>         remainder =3D <optimized out>
>>>>>>>         remainder_size =3D <optimized out>
>>>>>>>         bck =3D <optimized out>
>>>>>>>         fwd =3D <optimized out>
>>>>>>>         copysize =3D <optimized out>
>>>>>>>         ncopies =3D <optimized out>
>>>>>>>         s =3D <optimized out>
>>>>>>>         d =3D <optimized out>
>>>>>>>         errstr =3D 0x0
>>>>>>>         __func__ =3D "_int_realloc"
>>>>>>>         nextsize =3D <optimized out>
>>>>>>> #2  0x00007ffff3eb85f9 in __GI___libc_realloc
>>>>>>> (oldmem=3D0x55555689d280,
>>>>>>>     bytes=3D73728) at malloc.c:3029
>>>>>>>         ar_ptr =3D 0x7ffff41df620 <main_arena>
>>>>>>>         nb =3D 73744
>>>>>>>         newp =3D <optimized out>
>>>>>>>         hook =3D <optimized out>
>>>>>>>         oldp =3D 0x55555689d270
>>>>>>>         oldsize =3D 36880
>>>>>>>         __func__ =3D "__libc_realloc"
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>> #3  0x0000555555819563 in realloc_and_trace (mem=3D0x55555689d280,
>>>>>>> n_bytes=3D73728)
>>>>>>>     at vl.c:2857
>>>>>>>         ptr =3D 0x7fffffffcf30
>>>>>>> #4  0x00007ffff708388e in g_realloc (mem=3D<optimized out>,
>>>>>>> n_bytes=3D73728)
>>>>>>>     at /tmp/buildd/glib2.0-2.42.1/./glib/gmem.c:162
>>>>>>>         newmem =3D <optimized out>
>>>>>>> #5  0x000055555582d3e2 in phys_map_node_reserve (map=3D0x5555563ccf=
98,
>>>>>>> nodes=3D18)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/exec.c:152
>>>>>>> No locals.
>>>>>>> #6  0x000055555582d701 in phys_page_set (d=3D0x5555563ccf90,
>>>>>>> index=3D160, nb=3D16,
>>>>>>>     leaf=3D5) at /home/goon/xen/tools/qemu-xen-dir/exec.c:211
>>>>>>> No locals.
>>>>>>> #7  0x000055555582f1ae in register_multipage (d=3D0x5555563ccf90,
>>>>>>>     section=3D0x7fffffffcfe0) at
>>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:937
>>>>>>>         start_addr =3D 655360
>>>>>>>         section_index =3D 5
>>>>>>>         num_pages =3D 16
>>>>>>>         __PRETTY_FUNCTION__ =3D "register_multipage"
>>>>>>> #8  0x000055555582f4b4 in mem_add (listener=3D0x55555633b898,
>>>>>>>     section=3D0x7fffffffd1a0) at
>>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:968
>>>>>>>         as =3D 0x55555633b860
>>>>>>>         d =3D 0x5555563ccf90
>>>>>>>         now =3D {mr =3D 0x55555636dd30, address_space =3D 0x5555563=
3b860,
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =
=3D 0},
>>>>>>>           offset_within_address_space =3D 655360, readonly =3D fals=
e}
>>>>>>>         remain =3D {mr =3D 0x55555636dd30, address_space =3D
>>>>>>> 0x55555633b860,
>>>>>>>           offset_within_region =3D 0, size =3D {lo =3D 65536, hi =
=3D 0},
>>>>>>>           offset_within_address_space =3D 655360, readonly =3D fals=
e}
>>>>>>>         page_size =3D {lo =3D 4096, hi =3D 0}
>>>>>>> #9  0x0000555555892a01 in address_space_update_topology_pass (
>>>>>>>     as=3D0x55555633b860, old_view=3D0x555556495910,
>>>>>>> new_view=3D0x55555687f2c0,
>>>>>>>     adding=3Dtrue) at /home/goon/xen/tools/qemu-xen-dir/memory.c:73=
6
>>>>>>>         _listener =3D 0x55555633b898
>>>>>>>         iold =3D 1
>>>>>>>         inew =3D 1
>>>>>>>         frold =3D 0x5555565fd828
>>>>>>>         frnew =3D 0x5555568b23e8
>>>>>>> #10 0x0000555555892fd7 in address_space_update_topology
>>>>>>> (as=3D0x55555633b860)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:765
>>>>>>>         old_view =3D 0x555556495910
>>>>>>>         new_view =3D 0x55555687f2c0
>>>>>>> #11 0x00005555558930fc in memory_region_transaction_commit ()
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:800
>>>>>>>         as =3D 0x55555633b860
>>>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_transaction_commit"
>>>>>>> #12 0x00005555558951ed in memory_region_del_subregion
>>>>>>> (mr=3D0x5555562855d0,
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>     subregion=3D0x555556349250)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:1487
>>>>>>>         __PRETTY_FUNCTION__ =3D "memory_region_del_subregion"
>>>>>>> #13 0x000055555570fdf3 in pci_update_mappings (d=3D0x5555563489f0)
>>>>>>>     at hw/pci/pci.c:1113
>>>>>>>         r =3D 0x555556348af8
>>>>>>>         i =3D 0
>>>>>>>         new_addr =3D 18446744073709551615
>>>>>>> #14 0x0000555555710110 in pci_default_write_config
>>>>>>> (d=3D0x5555563489f0, addr=3D4,
>>>>>>>     val=3D0, l=3D2) at hw/pci/pci.c:1168
>>>>>>>         i =3D 2
>>>>>>>         was_irq_disabled =3D 0
>>>>>>>         __PRETTY_FUNCTION__ =3D "pci_default_write_config"
>>>>>>> #15 0x0000555555714125 in pci_host_config_write_common (
>>>>>>>     pci_dev=3D0x5555563489f0, addr=3D4, limit=3D256, val=3D1024, le=
n=3D2)
>>>>>>>     at hw/pci/pci_host.c:57
>>>>>>>         __PRETTY_FUNCTION__ =3D "pci_host_config_write_common"
>>>>>>> #16 0x0000555555714229 in pci_data_write (s=3D0x5555562a8cf0, addr=
=3D
>>>>>>> 2147487748,
>>>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:84
>>>>>>>         pci_dev =3D 0x5555563489f0
>>>>>>>         config_addr =3D 4
>>>>>>> #17 0x0000555555714351 in pci_host_data_write
>>>>>>> (opaque=3D0x555556311470, addr=3D0,
>>>>>>>     val=3D1024, len=3D2) at hw/pci/pci_host.c:137
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         s =3D 0x555556311470
>>>>>>> #18 0x0000555555891531 in memory_region_write_accessor
>>>>>>> (mr=3D0x555556313860,
>>>>>>>     addr=3D0, value=3D0x7fffffffd5e8, size=3D2, shift=3D0, mask=3D6=
5535)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:441
>>>>>>>         tmp =3D 1024
>>>>>>> #19 0x0000555555891636 in access_with_adjusted_size (addr=3D0,
>>>>>>>     value=3D0x7fffffffd5e8, size=3D2, access_size_min=3D1,
>>>>>>> access_size_max=3D4,
>>>>>>>     access=3D0x5555558914b0 <memory_region_write_accessor>,
>>>>>>> mr=3D0x555556313860)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:478
>>>>>>>         access_mask =3D 65535
>>>>>>>         access_size =3D 2
>>>>>>>         i =3D 0
>>>>>>> #20 0x0000555555893772 in memory_region_dispatch_write
>>>>>>> (mr=3D0x555556313860,
>>>>>>>     addr=3D0, data=3D1024, size=3D2)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/memory.c:985
>>>>>>> No locals.
>>>>>>> #21 0x0000555555896068 in io_mem_write (mr=3D0x555556313860, addr=
=3D0,
>>>>>>> val=3D1024,
>>>>>>>     size=3D2) at /home/goon/xen/tools/qemu-xen-dir/memory.c:1744
>>>>>>> No locals.
>>>>>>> #22 0x000055555583183c in address_space_rw (
>>>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>>>     len=3D2, is_write=3Dtrue) at
>>>>>>> /home/goon/xen/tools/qemu-xen-dir/exec.c:2029
>>>>>>>         l =3D 2
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         ptr =3D 0x7fffffffd6f4 "\377\377\377\377"
>>>>>>>         val =3D 1024
>>>>>>>         addr1 =3D 0
>>>>>>>         mr =3D 0x555556313860
>>>>>>>         error =3D false
>>>>>>> #23 0x0000555555831b12 in address_space_write (
>>>>>>>     as=3D0x5555561c2140 <address_space_io>, addr=3D3324,
>>>>>>> buf=3D0x7fffffffd6f0 "",
>>>>>>>     len=3D2) at /home/goon/xen/tools/qemu-xen-dir/exec.c:2091
>>>>>>> No locals.
>>>>>>> #24 0x000055555588f486 in cpu_outw (addr=3D3324, val=3D1024)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/ioport.c:77
>>>>>>>         buf =3D "\000\004"
>>>>>>> #25 0x000055555590f460 in do_outp (addr=3D3324, size=3D2, val=3D102=
4)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:668
>>>>>>> No locals.
>>>>>>> #26 0x000055555590f66f in cpu_ioreq_pio (req=3D0x7ffff7ff3000)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:729
>>>>>>>         i =3D 0
>>>>>>> #27 0x000055555590f910 in handle_ioreq (req=3D0x7ffff7ff3000)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:781
>>>>>>> No locals.
>>>>>>> #28 0x000055555590fc0f in cpu_handle_ioreq (opaque=3D0x5555562abf10=
)
>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:856
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         state =3D 0x5555562abf10
>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>> #29 0x000055555577c385 in qemu_iohandler_poll
>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>     at iohandler.c:143
>>>>>>>         revents =3D 1
>>>>>>>         pioh =3D 0x55555627ca90
>>>>>>>         ioh =3D 0x555556366320
>>>>>>> #30 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>> main-loop.c:485
>>>>>>>         ret =3D 1
>>>>>>>         timeout =3D 4294967295
>>>>>>>         timeout_ns =3D 16717983
>>>>>>> #31 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>         nonblocking =3D false
>>>>>>>         last_io =3D 1
>>>>>>> #32 0x000055555581d66b in main (argc=3D64, argv=3D0x7fffffffdc78,
>>>>>>>     envp=3D0x7fffffffde80) at vl.c:4535
>>>>>>>         i =3D 64
>>>>>>>         snapshot =3D 0
>>>>>>>         linux_boot =3D 0
>>>>>>>         icount_option =3D 0x0
>>>>>>>         initrd_filename =3D 0x0
>>>>>>>         kernel_filename =3D 0x0
>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         boot_order =3D 0x555556275340 "dc"
>>>>>>>         ds =3D 0x5555563564e0
>>>>>>>         cyls =3D 0
>>>>>>>         heads =3D 0
>>>>>>>         secs =3D 0
>>>>>>>         translation =3D 0
>>>>>>>         hda_opts =3D 0x0
>>>>>>>         opts =3D 0x555556275290
>>>>>>>         machine_opts =3D 0x555556276ef0
>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>         optind =3D 64
>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cach=
e=3Dwriteback"
>>>>>>>         loadvm =3D 0x0
>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>         cpu_model =3D 0x0
>>>>>>>         vga_model =3D 0x0
>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>         qtest_log =3D 0x0
>>>>>>>         pid_file =3D 0x0
>>>>>>>         incoming =3D 0x0
>>>>>>>         show_vnc_port =3D 0
>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>         defconfig =3D true
>>>>>>>         userconfig =3D true
>>>>>>>         log_mask =3D 0x0
>>>>>>>         log_file =3D 0x0
>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace>=
,
>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0,
>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>         trace_events =3D 0x0
>>>>>>>         trace_file =3D 0x0
>>>>>>>         __func__ =3D "main"
>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275340 "d=
c",
>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c66=
4 "",
>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>
>>>>>>>
>>>>>>> 2015-01-04 22:29 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com>=
:
>>>>>>>
>>>>>>>>   Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>>> This is free software: you are free to change and redistribute it.
>>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>>> copying"
>>>>>>>> and "show warranty" for details.
>>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>>> Type "show configuration" for configuration details.
>>>>>>>> For bug reporting instructions, please see:
>>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>>> For help, type "help".
>>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>>> (gdb) target remote localhost:1234
>>>>>>>> Remote debugging using localhost:1234
>>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
>>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>>> done.
>>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>>> (gdb) c
>>>>>>>> Continuing.
>>>>>>>>
>>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>>> (gdb) bt full
>>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>         sif =3D <optimized out>
>>>>>>>>         total =3D <optimized out>
>>>>>>>>         n =3D <optimized out>
>>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>>> No locals.
>>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at
>>>>>>>> char_device.c:798
>>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized ou=
t>)
>>>>>>>>     at reds.c:3795
>>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>>         item =3D 0x5555562d8350
>>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>>> ui/spice-core.c:909
>>>>>>>> No locals.
>>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0,
>>>>>>>> loadvm=3D0)
>>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>>         startstop =3D true
>>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>>         d =3D 0x55555637d7e0
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/core/qdev.c:934
>>>>>>>>         klass =3D 0x555556270410
>>>>>>>>         __func__ =3D "device_reset"
>>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>>> opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:240
>>>>>>>> No locals.
>>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:411
>>>>>>>>         bus =3D 0x0
>>>>>>>>         err =3D 0
>>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>>         err =3D 0
>>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:403
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>>         err =3D 0
>>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>>         err =3D 0
>>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>>     at hw/core/qdev.c:261
>>>>>>>> No locals.
>>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60=
b0)
>>>>>>>>     at hw/core/qdev.c:267
>>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>>         re =3D 0x555556375890
>>>>>>>>         nre =3D 0x0
>>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>>> vl.c:1885
>>>>>>>>         mc =3D 0x55555626e030
>>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b095=
0)
>>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>>         state =3D 0x5555562b0950
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>>     at iohandler.c:143
>>>>>>>>         revents =3D 1
>>>>>>>>         pioh =3D 0x5555563218c0
>>>>>>>>         ioh =3D 0x555556362a80
>>>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>>> main-loop.c:485
>>>>>>>>         ret =3D 1
>>>>>>>>         timeout =3D 4294967295
>>>>>>>>         timeout_ns =3D 17355567
>>>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>>         nonblocking =3D false
>>>>>>>>         last_io =3D 1
>>>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>>>         i =3D 64
>>>>>>>>         snapshot =3D 0
>>>>>>>>         linux_boot =3D 0
>>>>>>>>         icount_option =3D 0x0
>>>>>>>>         initrd_filename =3D 0x0
>>>>>>>>         kernel_filename =3D 0x0
>>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         ds =3D 0x5555563324a0
>>>>>>>>         cyls =3D 0
>>>>>>>>         heads =3D 0
>>>>>>>>         secs =3D 0
>>>>>>>>         translation =3D 0
>>>>>>>>         hda_opts =3D 0x0
>>>>>>>>         opts =3D 0x5555562752d0
>>>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>>         optind =3D 66
>>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cac=
he=3Dwriteback"
>>>>>>>>         loadvm =3D 0x0
>>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>>         cpu_model =3D 0x0
>>>>>>>>         vga_model =3D 0x0
>>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>>         qtest_log =3D 0x0
>>>>>>>>         pid_file =3D 0x0
>>>>>>>>         incoming =3D 0x0
>>>>>>>>         show_vnc_port =3D 0
>>>>>>>>         defconfig =3D true
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         userconfig =3D true
>>>>>>>>         log_mask =3D 0x0
>>>>>>>>         log_file =3D 0x0
>>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace=
>,
>>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0=
,
>>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>>         trace_events =3D 0x0
>>>>>>>>         trace_file =3D 0x0
>>>>>>>>         __func__ =3D "main"
>>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "=
dc",
>>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c6=
64
>>>>>>>> "",
>>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>>  (gdb) bt full ecc
>>>>>>>> No symbol "ecc" in current context.
>>>>>>>>
>>>>>>>> (gdb) bt full
>>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>         sif =3D <optimized out>
>>>>>>>>         total =3D <optimized out>
>>>>>>>>         n =3D <optimized out>
>>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>>> No locals.
>>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at
>>>>>>>> char_device.c:798
>>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized ou=
t>)
>>>>>>>>     at reds.c:3795
>>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>>         item =3D 0x5555562d8350
>>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>>> ui/spice-core.c:909
>>>>>>>> No locals.
>>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0,
>>>>>>>> loadvm=3D0)
>>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>>         startstop =3D true
>>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>>         d =3D 0x55555637d7e0
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>>     at hw/core/qdev.c:934
>>>>>>>>         klass =3D 0x555556270410
>>>>>>>>         __func__ =3D "device_reset"
>>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>>> opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:240
>>>>>>>> No locals.
>>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:411
>>>>>>>>         bus =3D 0x0
>>>>>>>>         err =3D 0
>>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>>         err =3D 0
>>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:403
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>>         err =3D 0
>>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b0=
,
>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>> <qdev_reset_one>,
>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>>         err =3D 0
>>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>>     at hw/core/qdev.c:261
>>>>>>>> No locals.
>>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a60=
b0)
>>>>>>>>     at hw/core/qdev.c:267
>>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>>         re =3D 0x555556375890
>>>>>>>>         nre =3D 0x0
>>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>>> vl.c:1885
>>>>>>>>         mc =3D 0x55555626e030
>>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b095=
0)
>>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>>         state =3D 0x5555562b0950
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         req =3D 0x7ffff7ff3000
>>>>>>>> #18 0x000055555577c385 in qemu_iohandler_poll
>>>>>>>> (pollfds=3D0x555556277600, ret=3D1)
>>>>>>>>     at iohandler.c:143
>>>>>>>>         revents =3D 1
>>>>>>>>         pioh =3D 0x5555563218c0
>>>>>>>>         ioh =3D 0x555556362a80
>>>>>>>> #19 0x000055555577d14b in main_loop_wait (nonblocking=3D0) at
>>>>>>>> main-loop.c:485
>>>>>>>>         ret =3D 1
>>>>>>>>         timeout =3D 4294967295
>>>>>>>>         timeout_ns =3D 17355567
>>>>>>>> #20 0x0000555555815fbd in main_loop () at vl.c:2056
>>>>>>>>         nonblocking =3D false
>>>>>>>>         last_io =3D 1
>>>>>>>> #21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdc58,
>>>>>>>>     envp=3D0x7fffffffde70) at vl.c:4535
>>>>>>>>         i =3D 64
>>>>>>>>         snapshot =3D 0
>>>>>>>>         linux_boot =3D 0
>>>>>>>>         icount_option =3D 0x0
>>>>>>>>         initrd_filename =3D 0x0
>>>>>>>>         kernel_filename =3D 0x0
>>>>>>>>         kernel_cmdline =3D 0x55555598c664 ""
>>>>>>>>         boot_order =3D 0x555556275380 "dc"
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         ds =3D 0x5555563324a0
>>>>>>>>         cyls =3D 0
>>>>>>>>         heads =3D 0
>>>>>>>>         secs =3D 0
>>>>>>>>         translation =3D 0
>>>>>>>>         hda_opts =3D 0x0
>>>>>>>>         opts =3D 0x5555562752d0
>>>>>>>>         machine_opts =3D 0x555556276f30
>>>>>>>>         olist =3D 0x555555d72700 <qemu_machine_opts>
>>>>>>>>         optind =3D 66
>>>>>>>>         optarg =3D 0x7fffffffe61a
>>>>>>>> "file=3D/dev/sda3,if=3Dide,index=3D0,media=3Ddisk,format=3Draw,cac=
he=3Dwriteback"
>>>>>>>>         loadvm =3D 0x0
>>>>>>>>         machine_class =3D 0x55555626e030
>>>>>>>>         machine =3D 0x555555d78540 <xenfv_machine>
>>>>>>>>         cpu_model =3D 0x0
>>>>>>>>         vga_model =3D 0x0
>>>>>>>>         qtest_chrdev =3D 0x0
>>>>>>>>         qtest_log =3D 0x0
>>>>>>>>         pid_file =3D 0x0
>>>>>>>>         incoming =3D 0x0
>>>>>>>>         show_vnc_port =3D 0
>>>>>>>>         defconfig =3D true
>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>         userconfig =3D true
>>>>>>>>         log_mask =3D 0x0
>>>>>>>>         log_file =3D 0x0
>>>>>>>>         mem_trace =3D {malloc =3D 0x55555581950b <malloc_and_trace=
>,
>>>>>>>>           realloc =3D 0x555555819540 <realloc_and_trace>,
>>>>>>>>           free =3D 0x555555819584 <free_and_trace>, calloc =3D 0x0=
,
>>>>>>>>           try_malloc =3D 0x0, try_realloc =3D 0x0}
>>>>>>>>         trace_events =3D 0x0
>>>>>>>>         trace_file =3D 0x0
>>>>>>>>         __func__ =3D "main"
>>>>>>>>         args =3D {machine =3D 0x555555d78540 <xenfv_machine>,
>>>>>>>>           ram_size =3D 2013265920, boot_order =3D 0x555556275380 "=
dc",
>>>>>>>>           kernel_filename =3D 0x0, kernel_cmdline =3D 0x55555598c6=
64
>>>>>>>> "",
>>>>>>>>           initrd_filename =3D 0x0, cpu_model =3D 0x0}
>>>>>>>>
>>>>>>>>
>>>>>>>>   AND
>>>>>>>>
>>>>>>>>  attached files
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2015-01-04 22:24 GMT+01:00 Goonie Windy <monsieur.goonie@gmail.com=
>
>>>>>>>> :
>>>>>>>>
>>>>>>>>> GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
>>>>>>>>> Copyright (C) 2014 Free Software Foundation, Inc.
>>>>>>>>> License GPLv3+: GNU GPL version 3 or later <
>>>>>>>>> http://gnu.org/licenses/gpl.html>
>>>>>>>>> This is free software: you are free to change and redistribute it=
.
>>>>>>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>>>>>>>> copying"
>>>>>>>>> and "show warranty" for details.
>>>>>>>>> This GDB was configured as "x86_64-linux-gnu".
>>>>>>>>> Type "show configuration" for configuration details.
>>>>>>>>> For bug reporting instructions, please see:
>>>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>>>> Find the GDB manual and other documentation resources online at:
>>>>>>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>>>>>>> For help, type "help".
>>>>>>>>> Type "apropos word" to search for commands related to "word"...
>>>>>>>>> Reading symbols from /usr/lib/xen/bin/qemu-system-i386...done.
>>>>>>>>> (gdb) target remote localhost:1234
>>>>>>>>> Remote debugging using localhost:1234
>>>>>>>>> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbol=
s
>>>>>>>>> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
>>>>>>>>> done.
>>>>>>>>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>>>>>>>>> 0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.so.2
>>>>>>>>> (gdb) c
>>>>>>>>> Continuing.
>>>>>>>>>
>>>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>>>> 0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>> 443    char_device.c: Aucun fichier ou dossier de ce type.
>>>>>>>>> (gdb) bt full
>>>>>>>>> #0  0x00007ffff50e5801 in spice_char_device_write_to_device (
>>>>>>>>>     dev=3Ddev@entry=3D0x55555647c750) at char_device.c:443
>>>>>>>>>         sif =3D <optimized out>
>>>>>>>>>         total =3D <optimized out>
>>>>>>>>>         n =3D <optimized out>
>>>>>>>>> #1  0x00007ffff50e6497 in spice_char_device_write_to_device (
>>>>>>>>>     dev=3D0x55555647c750) at char_device.c:436
>>>>>>>>> No locals.
>>>>>>>>> #2  spice_char_device_start (dev=3D0x55555647c750) at
>>>>>>>>> char_device.c:798
>>>>>>>>>         __FUNCTION__ =3D "spice_char_device_start"
>>>>>>>>> #3  0x00007ffff51299c6 in spice_server_vm_start (s=3D<optimized o=
ut>)
>>>>>>>>>     at reds.c:3795
>>>>>>>>>         st_item =3D 0x5555562d8350
>>>>>>>>>         item =3D 0x5555562d8350
>>>>>>>>>         __FUNCTION__ =3D "spice_server_vm_start"
>>>>>>>>> #4  0x00005555557f40c9 in qemu_spice_display_start () at
>>>>>>>>> ui/spice-core.c:909
>>>>>>>>> No locals.
>>>>>>>>> #5  0x00005555556c4365 in qxl_hard_reset (d=3D0x55555637d7e0,
>>>>>>>>> loadvm=3D0)
>>>>>>>>>     at hw/display/qxl.c:1172
>>>>>>>>>         startstop =3D true
>>>>>>>>> #6  0x00005555556c43a3 in qxl_reset_handler (dev=3D0x55555637d7e0=
)
>>>>>>>>>     at hw/display/qxl.c:1180
>>>>>>>>>         d =3D 0x55555637d7e0
>>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>> #7  0x0000555555699658 in device_reset (dev=3D0x55555637d7e0)
>>>>>>>>>     at hw/core/qdev.c:934
>>>>>>>>>         klass =3D 0x555556270410
>>>>>>>>>         __func__ =3D "device_reset"
>>>>>>>>> #8  0x0000555555697a56 in qdev_reset_one (dev=3D0x55555637d7e0,
>>>>>>>>> opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:240
>>>>>>>>> No locals.
>>>>>>>>> #9  0x0000555555697f64 in qdev_walk_children (dev=3D0x55555637d7e=
0,
>>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>>> <qdev_reset_one>,
>>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:411
>>>>>>>>>         bus =3D 0x0
>>>>>>>>>         err =3D 0
>>>>>>>>> #10 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a8ee=
0,
>>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>>> <qdev_reset_one>,
>>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>>         kid =3D 0x55555633d4f0
>>>>>>>>>         err =3D 0
>>>>>>>>> #11 0x0000555555697f28 in qdev_walk_children (dev=3D0x5555563131b=
0,
>>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>>> <qdev_reset_one>,
>>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:403
>>>>>>>>> ---Type <return> to continue, or q <return> to quit---
>>>>>>>>>         bus =3D 0x5555562a8ee0
>>>>>>>>>         err =3D 0
>>>>>>>>> #12 0x0000555555697e57 in qbus_walk_children (bus=3D0x5555562a60b=
0,
>>>>>>>>>     pre_devfn=3D0x0, pre_busfn=3D0x0, post_devfn=3D0x555555697a3a
>>>>>>>>> <qdev_reset_one>,
>>>>>>>>>     post_busfn=3D0x555555697a5d <qbus_reset_one>, opaque=3D0x0)
>>>>>>>>>     at hw/core/qdev.c:369
>>>>>>>>>         kid =3D 0x5555562a6a80
>>>>>>>>>         err =3D 0
>>>>>>>>> #13 0x0000555555697b32 in qbus_reset_all (bus=3D0x5555562a60b0)
>>>>>>>>>     at hw/core/qdev.c:261
>>>>>>>>> No locals.
>>>>>>>>> #14 0x0000555555697b54 in qbus_reset_all_fn (opaque=3D0x5555562a6=
0b0)
>>>>>>>>>     at hw/core/qdev.c:267
>>>>>>>>>         bus =3D 0x5555562a60b0
>>>>>>>>> #15 0x0000555555815b1f in qemu_devices_reset () at vl.c:1872
>>>>>>>>>         re =3D 0x555556375890
>>>>>>>>>         nre =3D 0x0
>>>>>>>>> #16 0x0000555555815bbf in qemu_system_reset (report=3Dtrue) at
>>>>>>>>> vl.c:1885
>>>>>>>>>         mc =3D 0x55555626e030
>>>>>>>>>         __func__ =3D "qemu_system_reset"
>>>>>>>>> #17 0x000055555590fcb9 in cpu_handle_ioreq (opaque=3D0x5555562b09=
50)
>>>>>>>>>     at /home/goon/xen/tools/qemu-xen-dir/xen-hvm.c:881
>>>>>>>>>         state =3D 0x5555562b0950
>>>>>>>>> ---Type <return> to continue, or q
>>>>>>>>>
>>>>>>>> ...
>>
>>
>

--001a113cf3e025c38b050be8ae70
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>another bt full,<br></div>same problem with remote-vi=
ewer, this time trying to move the window and it sticked somewhere -you kno=
w those sticky functions that develop a window- so that it fits one half or=
 smtg...=C2=A0 <br><br><br><br>gdb /usr/lib/xen/bin/qemu-system-i386<br>GNU=
 gdb (Debian 7.7.1+dfsg-5) 7.7.1<br>Copyright (C) 2014 Free Software Founda=
tion, Inc.<br>License GPLv3+: GNU GPL version 3 or later &lt;<a href=3D"htt=
p://gnu.org/licenses/gpl.html">http://gnu.org/licenses/gpl.html</a>&gt;<br>=
This is free software: you are free to change and redistribute it.<br>There=
 is NO WARRANTY, to the extent permitted by law.=C2=A0 Type &quot;show copy=
ing&quot;<br>and &quot;show warranty&quot; for details.<br>This GDB was con=
figured as &quot;x86_64-linux-gnu&quot;.<br>Type &quot;show configuration&q=
uot; for configuration details.<br>For bug reporting instructions, please s=
ee:<br>&lt;<a href=3D"http://www.gnu.org/software/gdb/bugs/">http://www.gnu=
.org/software/gdb/bugs/</a>&gt;.<br>Find the GDB manual and other documenta=
tion resources online at:<br>&lt;<a href=3D"http://www.gnu.org/software/gdb=
/documentation/">http://www.gnu.org/software/gdb/documentation/</a>&gt;.<br=
>For help, type &quot;help&quot;.<br>Type &quot;apropos word&quot; to searc=
h for commands related to &quot;word&quot;...<br>Reading symbols from /usr/=
lib/xen/bin/qemu-system-i386...done.<br>(gdb) target remote localhost:1234<=
br>c<br>Remote debugging using localhost:1234<br>Reading symbols from /lib6=
4/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-li=
nux-gnu/ld-2.19.so...done.<br>done.<br>Loaded symbols for /lib64/ld-linux-x=
86-64.so.2<br>0x00007ffff7ddd190 in _start () from /lib64/ld-linux-x86-64.s=
o.2<br>(gdb) c<br>Continuing.<br><br>Program received signal SIGSEGV, Segme=
ntation fault.<br>_int_malloc (av=3Dav@entry=3D0x7ffff41df620 &lt;main_aren=
a&gt;, <br>=C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=3D5152000) at malloc.c:37=
75<br>3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun fichier ou dossier de ce type.=
<br>(gdb) bt full<br>#0=C2=A0 _int_malloc (av=3Dav@entry=3D0x7ffff41df620 &=
lt;main_arena&gt;, <br>=C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=3D5152000) at=
 malloc.c:3775<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 p =3D 0x555556=
c87660<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 iters =3D &lt;optimize=
d out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nb =3D 5152016<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 idx =3D &lt;optimized out&gt;<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bin =3D &lt;optimized out&gt;<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 victim =3D 0x555556c87650<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size =3D &lt;optimized out&gt;<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 victim_index =3D &lt;optimized=
 out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder =3D 0x5555=
57171360<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 remainder_size =3D &=
lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 block =
=3D 4<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bit =3D &lt;optimized o=
ut&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 map =3D 2067779454<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fwd =3D &lt;optimized out&gt;<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bck =3D &lt;optimized out&gt;<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 errstr =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &quot;_int_malloc&quot;<br>#1=
=C2=A0 0x00007ffff3eb886c in __libc_calloc (n=3D&lt;optimized out&gt;, <br>=
=C2=A0=C2=A0=C2=A0 elem_size=3D&lt;optimized out&gt;) at malloc.c:3219<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 av =3D 0x7ffff41df620 &lt;main_a=
rena&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 oldtop =3D 0x555556c=
87650<br>---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---=
<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 p =3D &lt;optimized out&gt;<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bytes =3D 5152000<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sz =3D 5152000<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 csz =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 oldtopsize =3D 8392736<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 mem =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 clearsize =3D &lt;optimized out&gt;<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nclears =3D &lt;optimized out&gt;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d =3D &lt;optimized out&gt;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hook =3D &lt;optimized out&gt;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &quot;__libc_calloc=
&quot;<br>#2=C2=A0 0x00007ffff4c3dc5a in ?? () from /usr/lib/x86_64-linux-g=
nu/libpixman-1.so.0<br>No symbol table info available.<br>#3=C2=A0 0x00007f=
fff4c3dd0b in ?? () from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0<br>No s=
ymbol table info available.<br>#4=C2=A0 0x000055555580c266 in vnc_dpy_switc=
h (dcl=3D0x7fffe847d048, <br>=C2=A0=C2=A0=C2=A0 surface=3D0x5555565c29e0) a=
t ui/vnc.c:590<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vd =3D 0x7fffe=
847d010<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vs =3D 0xff0000ff00<b=
r>#5=C2=A0 0x00005555557e905b in dpy_gfx_replace_surface (con=3D0x555556338=
0f0, <br>=C2=A0=C2=A0=C2=A0 surface=3D0x5555565c29e0) at ui/console.c:1404<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s =3D 0x55555633fe60<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 old_surface =3D 0x5555563395d0<br>-=
--Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dcl =3D 0x7fffe847d048<br>#6=C2=A0 0x0=
0005555556bfa0c in qxl_render_update_area_unlocked (qxl=3D0x555556378550)<b=
r>=C2=A0=C2=A0=C2=A0 at hw/display/qxl-render.c:131<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 vga =3D 0x555556379040<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 surface =3D 0x5555565c29e0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 i =3D 21845<br>#7=C2=A0 0x00005555556bfc84 in qxl_render=
_update_area_bh (opaque=3D0x555556378550)<br>=C2=A0=C2=A0=C2=A0 at hw/displ=
ay/qxl-render.c:183<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qxl =3D 0=
x555556378550<br>#8=C2=A0 0x00005555555e3d68 in aio_bh_poll (ctx=3D0x555556=
277840) at async.c:81<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bh =3D =
0x555556364510<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bhp =3D 0x7fff=
e86e4010<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 next =3D 0x555556314=
170<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 1<br>#9=C2=A0 0x0=
0005555555e3a1a in aio_poll (ctx=3D0x555556277840, blocking=3Dfalse)<br>=C2=
=A0=C2=A0=C2=A0 at aio-posix.c:188<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 node =3D 0x7ffff41f3a89 &lt;write+57&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 ret =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
progress =3D false<br>#10 0x00005555555e4088 in aio_ctx_dispatch (source=3D=
0x555556277840, <br>=C2=A0=C2=A0=C2=A0 callback=3D0x0, user_data=3D0x0) at =
async.c:211<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ctx =3D 0x5555562=
77840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __PRETTY_FUNCTION__ =3D=
 &quot;aio_ctx_dispatch&quot;<br>---Type &lt;return&gt; to continue, or q &=
lt;return&gt; to quit---<br>#11 0x00007ffff707dc5d in g_main_dispatch (cont=
ext=3D0x555556278b50)<br>=C2=A0=C2=A0=C2=A0 at /tmp/buildd/glib2.0-2.42.1/.=
/glib/gmain.c:3111<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dispatch =
=3D 0x5555555e4035 &lt;aio_ctx_dispatch&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 prev_source =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 was_in_call =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 user=
_data =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 callback =3D 0x=
0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_funcs =3D &lt;optimized =
out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_data =3D &lt;optim=
ized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 need_destroy =3D=
 &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 source=
 =3D 0x555556277840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 current =
=3D 0x55555626ec40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 0<br=
>#12 g_main_context_dispatch (context=3D0x555556278b50)<br>=C2=A0=C2=A0=C2=
=A0 at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3710<br>No locals.<br>#13 =
0x000055555577cf98 in glib_pollfds_poll () at main-loop.c:190<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 context =3D 0x555556278b50<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pfds =3D 0x5555563ded28<br>#14 0x00005555=
5577d075 in os_host_main_loop_wait (timeout=3D0) at main-loop.c:235<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 2<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 spin_counter =3D 1<br>#15 0x000055555577d134 in main_=
loop_wait (nonblocking=3D0) at main-loop.c:484<br>---Type &lt;return&gt; to=
 continue, or q &lt;return&gt; to quit---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 ret =3D 21845<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ti=
meout =3D 4294967295<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 timeout_=
ns =3D 13912579<br>#16 0x0000555555815fbd in main_loop () at vl.c:2056<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonblocking =3D false<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 1<br>#17 0x000055555581d66=
b in main (argc=3D66, argv=3D0x7fffffffdbe8, <br>=C2=A0=C2=A0=C2=A0 envp=3D=
0x7fffffffde00) at vl.c:4535<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
i =3D 64<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snapshot =3D 0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_boot =3D 0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D 0x0<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D 0x55555598c664 &quot;&quot;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x555556275340 &quot;dc=
&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ds =3D 0x55555633fe60<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D 0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 secs =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trans=
lation =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hda_opts =3D 0x0=
<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =3D 0x555556275290<br>-=
--Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_opts =3D 0x555556276ef0<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =3D 0x555555d72700 &lt;qemu_m=
achine_opts&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optind =3D 66=
<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optarg =3D 0x7fffffffe5e0 &q=
uot;file=3D/home/goon/Documents/Win7Ult-SP1-x64-en-US-Sep2013.iso,if=3Dide,=
index=3D2,media=3Dcdrom,format=3Draw,cache=3Dwriteback,id=3Dide-5632&quot;<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D 0x55555626e030<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D 0x555555d78540 &lt;xenf=
v_machine&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_model =3D 0=
x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 incoming =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 show_vnc_port =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfi=
g =3D true<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 userconfig =3D tru=
e<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D {malloc =3D 0x55555581950b &lt;mallo=
c_and_trace&gt;, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 realloc =3D 0x555555819540 &lt;realloc_and_trace&gt;, <br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D 0x555555819584 &lt;free_an=
d_trace&gt;, calloc =3D 0x0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 try_malloc =3D 0x0, try_realloc =3D 0x0}<br>---Type &lt;return=
&gt; to continue, or q &lt;return&gt; to quit---<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 __func__ =3D &quot;main&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 args =3D {machine =3D 0x555555d78540 &lt;xenfv_machine&gt;, <br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D 2013265=
920, boot_order =3D 0x555556275340 &quot;dc&quot;, <br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0, kernel_cmdlin=
e =3D 0x55555598c664 &quot;&quot;, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0, cpu_model =3D 0x0}<br>(gdb) <br=
><br></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">2015-0=
1-05 14:39 GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:m=
onsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&g=
t;</span>:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div><di=
v><div>Hi again and sorry for monopolizing, so I tested a bit QXL/spice in =
my win 7 x64 domU on Xenserver 4.5 RC4 with Fantu patch.<br><br></div>I get=
 errors when trying to move remote-viewer window: I get a connection refuse=
d.<br></div><br>System is using deb8 unstables (sid) with only Xen compiled=
 from sources.<br><br>Xen BT full is below, machine details, you should hav=
e them now.<br><br></div>Should I try to compile spice on my machine or som=
ething?<br><br><br>regards, <br><br></div>GregB:<br><div><div><br>(gdb) tar=
get remote localhost:1234<br>Remote debugging using localhost:1234<br>Readi=
ng symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib=
/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.<br>done.<br>Loaded symbols =
for /lib64/ld-linux-x86-64.so.2<br>0x00007ffff7ddd190 in _start () from /li=
b64/ld-linux-x86-64.so.2<br>(gdb) c<br>Continuing.<br><br>Program received =
signal SIGABRT, Aborted.<br>0x00007ffff3e71107 in __GI_raise (sig=3Dsig@ent=
ry=3D6)<br>=C2=A0=C2=A0=C2=A0 at ../nptl/sysdeps/unix/sysv/linux/raise.c:56=
<br>56=C2=A0=C2=A0=C2=A0 ../nptl/sysdeps/unix/sysv/linux/raise.c: Aucun fic=
hier ou dossier de ce type.<br>(gdb) bt full<br>#0=C2=A0 0x00007ffff3e71107=
 in __GI_raise (sig=3Dsig@entry=3D6)<br>=C2=A0=C2=A0=C2=A0 at ../nptl/sysde=
ps/unix/sysv/linux/raise.c:56<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 resultvar =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid =3D 1081=
8<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 selftid =3D 10818<br>#1=C2=
=A0 0x00007ffff3e724e8 in __GI_abort () at abort.c:89<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 save_stage =3D 2<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 act =3D {__sigaction_handler =3D {sa_handler =3D 0xb8000000, <=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sa_si=
gaction =3D 0xb8000000}, sa_mask =3D {__val =3D {13258597306065747968, <br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 13258597306065747968, <a href=3D"tel:3087007744" value=3D"+13087007744"=
 target=3D"_blank">3087007744</a>, <a href=3D"tel:3087007744" value=3D"+130=
87007744" target=3D"_blank">3087007744</a>, 0, 0, <br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 13258597302978740=
224, 13258597302978740224, 13258597302978740224, 0, 0, <br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 0, 0, 0, 0,=
 0}}, sa_flags =3D 0, sa_restorer =3D 0xb800000000000000}<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sigs =3D {__val =3D {32, 0 &lt;repeats 15 ti=
mes&gt;}}<br>#2=C2=A0 0x00007ffff3eaf044 in __libc_message (do_abort=3Ddo_a=
bort@entry=3D1, <br>=C2=A0=C2=A0=C2=A0 fmt=3Dfmt@entry=3D0x7ffff3fa1c60 &qu=
ot;*** Error in `%s&#39;: %s: 0x%s ***\n&quot;)<br>=C2=A0=C2=A0=C2=A0 at ..=
/sysdeps/posix/libc_fatal.c:175<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ap =3D {{gp_offset =3D 40, fp_offset =3D 0, overflow_arg_area =3D 0x7ff=
fffffd300, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 reg_save_area =3D 0x7fffffffd290}}<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 fd =3D 2<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 on_2 =
=3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 lis=
t =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n=
list =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cp =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 written =3D &lt;optimized out&gt;<br>#3=C2=A0 0x00007ffff3eb481e in mal=
loc_printerr (action=3D1, <br>=C2=A0=C2=A0=C2=A0 str=3D0x7ffff3fa1db0 &quot=
;double free or corruption (out)&quot;, ptr=3D&lt;optimized out&gt;)<br>=C2=
=A0=C2=A0=C2=A0 at malloc.c:4996<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 buf =3D &quot;0000555556bb85e0&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 cp =3D &lt;optimized out&gt;<br>#4=C2=A0 0x00007ffff3eb5526 in=
 _int_free (av=3D&lt;optimized out&gt;, p=3D&lt;optimized out&gt;, <br>=C2=
=A0=C2=A0=C2=A0 have_lock=3D0) at malloc.c:3840<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 size =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 fb =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 nextchunk =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextsize =3D &lt;optimized out&gt;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nextinuse =3D &lt;optimized out&gt;<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 prevsize =3D &lt;optimized out&=
gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bck =3D &lt;optimized out=
&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fwd =3D &lt;optimized ou=
t&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 errstr =3D &lt;optimize=
d out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 locked =3D &lt;opti=
mized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &q=
uot;_int_free&quot;<br>#5=C2=A0 0x00007ffff4c7c7e5 in ?? () from /usr/lib/x=
86_64-linux-gnu/libpixman-1.so.0<br>---Type &lt;return&gt; to continue, or =
q &lt;return&gt; to quit---<br>No symbol table info available.<br>#6=C2=A0 =
0x00007ffff4c7c759 in pixman_image_unref ()<br>=C2=A0=C2=A0 from /usr/lib/x=
86_64-linux-gnu/libpixman-1.so.0<br>No symbol table info available.<br>#7=
=C2=A0 0x00005555557ee88e in qemu_pixman_image_unref (image=3D0x555556335f0=
0)<br>=C2=A0=C2=A0=C2=A0 at ui/qemu-pixman.c:80<br>No locals.<br>#8=C2=A0 0=
x000055555580c21f in vnc_dpy_switch (dcl=3D0x7fffe849e048, surface=3D0x5555=
56627c90)<br>=C2=A0=C2=A0=C2=A0 at ui/vnc.c:588<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 vd =3D 0x7fffe849e010<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 vs =3D 0xff0000ff00<br>#9=C2=A0 0x00005555557e905b in dpy_gfx_=
replace_surface (con=3D0x555556312e90, <br>=C2=A0=C2=A0=C2=A0 surface=3D0x5=
55556627c90) at ui/console.c:1404<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 s =3D 0x55555633d710<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 o=
ld_surface =3D 0x555556336160<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 dcl =3D 0x7fffe849e048<br>#10 0x00005555556bfa0c in qxl_render_update_area=
_unlocked (qxl=3D0x555556387f50)<br>=C2=A0=C2=A0=C2=A0 at hw/display/qxl-re=
nder.c:131<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga =3D 0x55555638=
8a40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 surface =3D 0x555556627c=
90<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 21845<br>#11 0x00005=
555556bfc84 in qxl_render_update_area_bh (opaque=3D0x555556387f50)<br>=C2=
=A0=C2=A0=C2=A0 at hw/display/qxl-render.c:183<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 qxl =3D 0x555556387f50<br>#12 0x00005555555e3d68 in aio_=
bh_poll (ctx=3D0x555556277840) at async.c:81<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bh =3D 0x555556313d40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 bhp =3D 0x7fffffffd570<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 next =3D 0x555556313d10<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 r=
et =3D 1<br>#13 0x00005555555e3a1a in aio_poll (ctx=3D0x555556277840, block=
ing=3Dfalse)<br>=C2=A0=C2=A0=C2=A0 at aio-posix.c:188<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 node =3D 0x7ffff41f3a89 &lt;write+57&gt;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 progress =3D false<br>#14 0x00005555555e4088 in aio_ctx_=
dispatch (source=3D0x555556277840, callback=3D0x0, <br>=C2=A0=C2=A0=C2=A0 u=
ser_data=3D0x0) at async.c:211<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ctx =3D 0x555556277840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __=
PRETTY_FUNCTION__ =3D &quot;aio_ctx_dispatch&quot;<br>#15 0x00007ffff707dc5=
d in g_main_dispatch (context=3D0x555556278b50)<br>=C2=A0=C2=A0=C2=A0 at /t=
mp/buildd/glib2.0-2.42.1/./glib/gmain.c:3111<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 dispatch =3D 0x5555555e4035 &lt;aio_ctx_dispatch&gt;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 prev_source =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 was_in_call =3D 0<br>---Type &lt;return&gt; =
to continue, or q &lt;return&gt; to quit---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 user_data =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 callback =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cb_fu=
ncs =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 cb_data =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 need_destroy =3D &lt;optimized out&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 source =3D 0x555556277840<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 current =3D 0x55555626ec40<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 0<br>#16 g_main_context_dispatch (context=3D0x5555562=
78b50)<br>=C2=A0=C2=A0=C2=A0 at /tmp/buildd/glib2.0-2.42.1/./glib/gmain.c:3=
710<br>No locals.<br>#17 0x000055555577cf98 in glib_pollfds_poll () at main=
-loop.c:190<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 context =3D 0x555=
556278b50<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pfds =3D 0x55555662=
8928<br>#18 0x000055555577d075 in os_host_main_loop_wait (timeout=3D0) at m=
ain-loop.c:235<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 2<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 spin_counter =3D 2<br>#19 0x0000=
55555577d134 in main_loop_wait (nonblocking=3D0) at main-loop.c:484<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret =3D 21845<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 timeout =3D 4294967295<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 timeout_ns =3D 2937562<br>#20 0x0000555555815fbd in main=
_loop () at vl.c:2056<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nonbloc=
king =3D false<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 last_io =3D 0<=
br>#21 0x000055555581d66b in main (argc=3D66, argv=3D0x7fffffffdb48, envp=
=3D0x7fffffffdd60)<br>=C2=A0=C2=A0=C2=A0 at vl.c:4535<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 i =3D 64<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 snapshot =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 linux_b=
oot =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 icount_option =3D 0=
x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename =3D 0x0<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename =3D 0x0<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_cmdline =3D 0x55555598c664 &=
quot;&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x=
555556275340 &quot;dc&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d=
s =3D 0x55555633d710<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cyls =3D=
 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 heads =3D 0<br>=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 secs =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 hda_opts =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 opts =
=3D 0x555556275290<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_op=
ts =3D 0x555556276ef0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 olist =
=3D 0x555555d72700 &lt;qemu_machine_opts&gt;<br>---Type &lt;return&gt; to c=
ontinue, or q &lt;return&gt; to quit---<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 optind =3D 66<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 op=
targ =3D 0x7fffffffe55e &quot;file=3D/home/goon/Documents/Win7Ult-SP1-x64-e=
n-US-Sep2013.iso,if=3Dide,index=3D2,media=3Dcdrom,format=3Draw,cache=3Dwrit=
eback,id=3Dide-5632&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 loa=
dvm =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine_class =3D=
 0x55555626e030<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 machine =3D 0=
x555555d78540 &lt;xenfv_machine&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 cpu_model =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vga_=
model =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_chrdev =
=3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 incoming =3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 defconfig =3D true<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
userconfig =3D true<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_mask =
=3D 0x0<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 log_file =3D 0x0<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mem_trace =3D {malloc =3D 0x5555=
5581950b &lt;malloc_and_trace&gt;, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 realloc =3D 0x555555819540 &lt;realloc_and_trace&gt;, <b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D 0x5555558=
19584 &lt;free_and_trace&gt;, calloc =3D 0x0, try_malloc =3D 0x0, <br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_realloc =3D 0x0}<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 args =3D {machine =3D 0x555555d78540 &lt;xen=
fv_machine&gt;, ram_size =3D <a href=3D"tel:2013265920" value=3D"+120132659=
20" target=3D"_blank">2013265920</a>, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 boot_order =3D 0x555556275340 &quot;dc&quot;, kernel_=
filename =3D 0x0, <br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D 0x55555598c664 &quot;&quot;, initrd_filename =3D 0x0=
, cpu_model =3D 0x0}<br><br></div></div></div><div class=3D"gmail_extra"><b=
r><div class=3D"gmail_quote">2015-01-05 12:12 GMT+01:00 Goonie Windy <span =
dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_bla=
nk">monsieur.goonie@gmail.com</a>&gt;</span>:<br><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex"><p dir=3D"ltr">Well r=C3=A9installed from scratch, added winpv and spi=
ce drivers the border you gave me and Th=C3=A9r=C3=A8se is NO more bugs rel=
ated to winpv .=C2=A0 will test reboot and spice/qxl functionnalities when =
possible. Regards.=C2=A0 Greg b</p>
<div class=3D"gmail_quote">Le 5 janv. 2015 10:08, &quot;Fabio Fantoni&quot;=
 &lt;<a href=3D"mailto:fabio.fantoni@m2r.biz" target=3D"_blank">fabio.fanto=
ni@m2r.biz</a>&gt; a =C3=A9crit :<br type=3D"attribution"><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div>Il 05/01/2015 00:24, Goonie Windy ha
      scritto:<br>
    </div>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">AND DMESG<br>
        [ 3095.738985] qemu-system-i38[8089]: segfault at 7f92ae37cbf8
        ip 00007f92a654e4ff sp 00007fffc2d6ec80 error 6 in <a href=3D"http:=
//libc-2.19.so" target=3D"_blank">libc-2.19.so</a>[7f92a64d4000+19f000]<br>
        [ 3096.117859] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3096.118716] device vif5.0-emu left promiscuous mode<br>
        [ 3096.118738] xenbr0: port 3(vif5.0-emu) entered disabled state<br=
>
        [ 3584.894397] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3584.894741] device vif5.0 left promiscuous mode<br>
        [ 3584.894753] xenbr0: port 2(vif5.0) entered disabled state<br>
        [ 3681.764862] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3681.878054] device vif6.0 entered promiscuous mode<br>
        [ 3681.886956] IPv6: ADDRCONF(NETDEV_UP): vif6.0: link is not
        ready<br>
        [ 3682.193528] device vif6.0-emu entered promiscuous mode<br>
        [ 3682.199185] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3682.199229] xenbr0: port 3(vif6.0-emu) entered forwarding
        state<br>
        [ 3780.533596] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3780.535444] device vif6.0-emu left promiscuous mode<br>
        [ 3780.535465] xenbr0: port 3(vif6.0-emu) entered disabled state<br=
>
        [ 3899.555157] xenbr0: port 2(vif6.0) entered disabled state<br>
        [ 3899.555577] device vif6.0 left promiscuous mode<br>
        [ 3899.555607] xenbr0: port 2(vif6.0) entered disabled state<br>
        <br>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">2015-01-05 0:21 GMT+01:00 Goonie Windy
          <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com=
" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div dir=3D"ltr">=C2=A0 GNU nano
              2.2.6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Fichier=C2=A0:
              qemu-dm-win7.log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
              <br>
              <br>
              (/usr/local/sbin/xl:9535): Spice-Warning **:
              reds.c:1863:reds_handle_ticket: Invalid password<br>
              main_channel_link: add main channel client<br>
              main_channel_handle_parsed: net test: latency 0.318000 ms,
              bitrate 26597402597 bps (25365.259740 Mbps)<br>
              inputs_connect: inputs channel client create<br>
              red_dispatcher_set_cursor_peer:<br>
              main_channel_handle_parsed: agent start<br>
              main_channel_handle_parsed: agent start<br>
              *** Error in `/usr/lib/xen/bin/qemu-system-i386&#39;: double
              free or corruption (out): 0x00007f0e38dd26f0 ***<br>
              <br>
            </div>
            <div class=3D"gmail_extra"><br>
              <div class=3D"gmail_quote">2015-01-05 0:00 GMT+01:00 Goonie
                Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:monsieur.goon=
ie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&gt;</span>:<b=
r>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div dir=3D"ltr">Should add this too:<br>
                    host=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : E766<br>
                    release=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 3.16.0-4-amd64<br>
                    version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : #1 SMP Debian 3.16.7-ckt2-1
                    (2014-12-08)<br>
                    machine=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : x86_64<br>
                    nr_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    max_cpu_id=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 7<br>
                    nr_nodes=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 1<br>
                    cores_per_socket=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    threads_per_core=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : =
2<br>
                    cpu_mhz=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 2594<br>
                    hw_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
                    bfebfbff:28100800:00000000:00007f00:77bae3ff:00000000:0=
0000001:00000281<br>
                    virt_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : hvm hvm_directio<br>
                    total_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 8055<br>
                    free_memory=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 2309<br>
                    sharing_freed_memory=C2=A0=C2=A0 : 0<br>
                    sharing_used_memory=C2=A0=C2=A0=C2=A0 : 0<br>
                    outstanding_claims=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    free_cpus=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0<br>
                    xen_major=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    xen_minor=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 5<br>
                    xen_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : .0-rc<br>
                    xen_version=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : 4.5.0-rc<br>
                    xen_caps=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : xen-3.0-x86_64
                    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
                    hvm-3.0-x86_64 <br>
                    xen_scheduler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : credit<br>
                    xen_pagesize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 : 4096<br>
                    platform_params=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 :
                    virt_start=3D0xffff800000000000<br>
                    xen_changeset=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : Thu Dec 18 10:02:16 2014
                    +0000 git:36174af-dirty<br>
                    xen_commandline=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : placeholder<br>
                    cc_compiler=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 : gcc (Debian 4.9.2-10) 4.9.2<br>
                    cc_compile_by=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 : root<br>
                    cc_compile_domain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : <br>
                    cc_compile_date=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 : Wed Dec 31 01:20:47 CET
                    2014<br>
                    xend_config_format=C2=A0=C2=A0=C2=A0=C2=A0 : 4<br>
                    <br>
                    <br>
                  </div>
                  <div class=3D"gmail_extra"><br>
                    <div class=3D"gmail_quote">2015-01-04 23:39 GMT+01:00
                      Goonie Windy <span dir=3D"ltr">&lt;<a href=3D"mailto:=
monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gmail.com</a>&=
gt;</span>:<br>
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div dir=3D"ltr">My qemu log after spice failure:<b=
r>
                          (/usr/local/sbin/xl:4254): Spice-Warning **:
                          reds.c:1863:reds_handle_ticket: Invalid
                          password<br>
                          main_channel_link: add main channel client<br>
                          main_channel_handle_parsed: net test: latency
                          0.257000 ms, bitrate 81920000000 bps
                          (78125.000000 Mbps)<br>
                          red_dispatcher_set_cursor_peer: <br>
                          inputs_connect: inputs channel client create<br>
                          main_channel_handle_parsed: agent start<br>
                          main_channel_handle_parsed: agent start<br>
                          qemu-system-i386: malloc.c:2372: sysmalloc:
                          Assertion `(old_top =3D=3D (((mbinptr) (((char *)
                          &amp;((av)-&gt;bins[((1) - 1) * 2])) -
                          __builtin_offsetof (struct malloc_chunk,
                          fd)))) &amp;&amp; old_size =3D=3D 0) || ((unsigne=
d
                          long) (old_size) &gt;=3D (unsigned
                          long)((((__builtin_offsetof (struct
                          malloc_chunk, fd_nextsize))+((2
                          *(sizeof(size_t))) - 1)) &amp; ~((2
                          *(sizeof(size_t))) - 1))) &amp;&amp;
                          ((old_top)-&gt;size &amp; 0x1) &amp;&amp;
                          ((unsigned long) old_end &amp; pagemask) =3D=3D
                          0)&#39; failed.<br>
                          <br>
                        </div>
                        <div class=3D"gmail_extra"><br>
                          <div class=3D"gmail_quote">2015-01-04 23:10
                            GMT+01:00 Goonie Windy <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.gooni=
e@gmail.com</a>&gt;</span>:<br>
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div>This one is bug from trying to
                                  install winpv=C2=A0 bus driver<br>
                                </div>
                              </div>
                            </blockquote>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
    If you followed all my advices your configurations should be ok and
    you found a new bug or inexpected case.<br>
    <span lang=3D"en"><span>I
        do not have</span> <span>the knowledge to</span> <span>solve it.</s=
pan></span><br>
    Added to cc also win-pv-devel<br>
    Can someone take a look to this problem please?<br>
    <br>
    <blockquote type=3D"cite">
      <div class=3D"gmail_extra">
        <div class=3D"gmail_quote">
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
            <div class=3D"gmail_extra">
              <div class=3D"gmail_quote">
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <div class=3D"gmail_extra">
                    <div class=3D"gmail_quote">
                      <blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div class=3D"gmail_extra">
                          <div class=3D"gmail_quote">
                            <blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div dir=3D"ltr">
                                <div><br>
                                </div>
                                <div>
                                  <div><br>
                                    Program received signal SIGSEGV,
                                    Segmentation fault.<br>
                                    _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;,
                                    bytes=3Dbytes@entry=3D73729)<br>
                                    =C2=A0=C2=A0=C2=A0 at malloc.c:3775<br>
                                    3775=C2=A0=C2=A0=C2=A0 malloc.c: Aucun =
fichier ou
                                    dossier de ce type.<br>
                                    (gdb) bt full<br>
                                    #0=C2=A0 _int_malloc
                                    (av=3Dav@entry=3D0x7ffff41df620
                                    &lt;main_arena&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3Dbytes@entry=
=3D73729) at
                                    malloc.c:3775<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 p =3D 0x555557303880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iters =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 idx =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bin =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim =3D 0x555557303870<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 size =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 victim_index =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D 0x555557315880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 block =3D 4<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bit =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 map =3D 66981887<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_malloc&quot;<br>
                                    #1=C2=A0 0x00007ffff3eb74a1 in
                                    _int_realloc (<br>
                                    =C2=A0=C2=A0=C2=A0 av=3Dav@entry=3D0x7f=
fff41df620
                                    &lt;main_arena&gt;,
                                    oldp=3Doldp@entry=3D0x55555689d270, <br=
>
                                    =C2=A0=C2=A0=C2=A0 oldsize=3Doldsize@en=
try=3D36880,
                                    nb=3Dnb@entry=3D73744) at malloc.c:4286=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newsize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 next =3D 0x5555568a6280<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remainder_size =3D
                                    &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 bck =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 fwd =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 copysize =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ncopies =3D &lt;optimized
                                    out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 errstr =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;_int_realloc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nextsize =3D &lt;optimized
                                    out&gt;<br>
                                    #2=C2=A0 0x00007ffff3eb85f9 in
                                    __GI___libc_realloc
                                    (oldmem=3D0x55555689d280, <br>
                                    =C2=A0=C2=A0=C2=A0 bytes=3D73728) at ma=
lloc.c:3029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ar_ptr =3D 0x7ffff41df620
                                    &lt;main_arena&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nb =3D 73744<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newp =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hook =3D &lt;optimized out&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldp =3D 0x55555689d270<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 oldsize =3D 36880<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;__libc_realloc&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    #3=C2=A0 0x0000555555819563 in
                                    realloc_and_trace
                                    (mem=3D0x55555689d280, n_bytes=3D73728)=
<br>
                                    =C2=A0=C2=A0=C2=A0 at vl.c:2857<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffcf30<br>
                                    #4=C2=A0 0x00007ffff708388e in g_reallo=
c
                                    (mem=3D&lt;optimized out&gt;,
                                    n_bytes=3D73728)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /tmp/buildd/glib2.0-2.42.1/./glib/gmem.=
c:162<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 newmem =3D &lt;optimized
                                    out&gt;<br>
                                    #5=C2=A0 0x000055555582d3e2 in
                                    phys_map_node_reserve
                                    (map=3D0x5555563ccf98, nodes=3D18)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:152<br>
                                    No locals.<br>
                                    #6=C2=A0 0x000055555582d701 in
                                    phys_page_set (d=3D0x5555563ccf90,
                                    index=3D160, nb=3D16, <br>
                                    =C2=A0=C2=A0=C2=A0 leaf=3D5) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:211<br>
                                    No locals.<br>
                                    #7=C2=A0 0x000055555582f1ae in
                                    register_multipage
                                    (d=3D0x5555563ccf90, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
cfe0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:937<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 start_addr =3D 655360<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 section_index =3D 5<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 num_pages =3D 16<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;register_multipage&quot;<br>
                                    #8=C2=A0 0x000055555582f4b4 in mem_add
                                    (listener=3D0x55555633b898, <br>
                                    =C2=A0=C2=A0=C2=A0 section=3D0x7fffffff=
d1a0) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:968<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 d =3D 0x5555563ccf90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 now =3D {mr =3D 0x55555636dd30,
                                    address_space =3D 0x55555633b860, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 remain =3D {mr =3D
                                    0x55555636dd30, address_space =3D
                                    0x55555633b860, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 offset_within_region =3D 0,
                                    size =3D {lo =3D 65536, hi =3D 0}, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0
                                    offset_within_address_space =3D
                                    655360, readonly =3D false}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 page_size =3D {lo =3D 4096, hi =3D
                                    0}<br>
                                    #9=C2=A0 0x0000555555892a01 in
                                    address_space_update_topology_pass (<br=
>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x55555633b860,
                                    old_view=3D0x555556495910,
                                    new_view=3D0x55555687f2c0, <br>
                                    =C2=A0=C2=A0=C2=A0 adding=3Dtrue) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:736<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 _listener =3D 0x55555633b898<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 iold =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 inew =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frold =3D 0x5555565fd828<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 frnew =3D 0x5555568b23e8<br>
                                    #10 0x0000555555892fd7 in
                                    address_space_update_topology
                                    (as=3D0x55555633b860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:765<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 old_view =3D 0x555556495910<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_view =3D 0x55555687f2c0<br>
                                    #11 0x00005555558930fc in
                                    memory_region_transaction_commit ()<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:800<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 as =3D 0x55555633b860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_transaction_commit&=
quot;<br>
                                    #12 0x00005555558951ed in
                                    memory_region_del_subregion
                                    (mr=3D0x5555562855d0, <br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0 subregion=3D0x555556=
349250)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1487<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;memory_region_del_subregion&quot;=
<br>
                                    #13 0x000055555570fdf3 in
                                    pci_update_mappings
                                    (d=3D0x5555563489f0)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci.c:1113=
<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 r =3D 0x555556348af8<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 new_addr =3D
                                    18446744073709551615<br>
                                    #14 0x0000555555710110 in
                                    pci_default_write_config
                                    (d=3D0x5555563489f0, addr=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D0, l=3D2) at h=
w/pci/pci.c:1168<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 was_irq_disabled =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_default_write_config&quot;<br=
>
                                    #15 0x0000555555714125 in
                                    pci_host_config_write_common (<br>
                                    =C2=A0=C2=A0=C2=A0 pci_dev=3D0x55555634=
89f0, addr=3D4,
                                    limit=3D256, val=3D1024, len=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at hw/pci/pci_host.c=
:57<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __PRETTY_FUNCTION__ =3D
                                    &quot;pci_host_config_write_common&quot=
;<br>
                                    #16 0x0000555555714229 in
                                    pci_data_write (s=3D0x5555562a8cf0,
                                    addr=3D<a href=3D"tel:2147487748" value=
=3D"+12147487748" target=3D"_blank">2147487748</a>, <br>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:84<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pci_dev =3D 0x5555563489f0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 config_addr =3D 4<br>
                                    #17 0x0000555555714351 in
                                    pci_host_data_write
                                    (opaque=3D0x555556311470, addr=3D0, <br=
>
                                    =C2=A0=C2=A0=C2=A0 val=3D1024, len=3D2)=
 at
                                    hw/pci/pci_host.c:137<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 s =3D 0x555556311470<br>
                                    #18 0x0000555555891531 in
                                    memory_region_write_accessor
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, value=3D0x=
7fffffffd5e8,
                                    size=3D2, shift=3D0, mask=3D65535)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:441<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 tmp =3D 1024<br>
                                    #19 0x0000555555891636 in
                                    access_with_adjusted_size (addr=3D0, <b=
r>
                                    =C2=A0=C2=A0=C2=A0 value=3D0x7fffffffd5=
e8, size=3D2,
                                    access_size_min=3D1,
                                    access_size_max=3D4, <br>
                                    =C2=A0=C2=A0=C2=A0 access=3D0x555555891=
4b0
                                    &lt;memory_region_write_accessor&gt;,
                                    mr=3D0x555556313860)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:478<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_mask =3D 65535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 access_size =3D 2<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #20 0x0000555555893772 in
                                    memory_region_dispatch_write
                                    (mr=3D0x555556313860, <br>
                                    =C2=A0=C2=A0=C2=A0 addr=3D0, data=3D102=
4, size=3D2)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:985<br>
                                    No locals.<br>
                                    #21 0x0000555555896068 in
                                    io_mem_write (mr=3D0x555556313860,
                                    addr=3D0, val=3D1024, <br>
                                    =C2=A0=C2=A0=C2=A0 size=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/memor=
y.c:1744<br>
                                    No locals.<br>
                                    #22 0x000055555583183c in
                                    address_space_rw (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2, is_write=3D=
true) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2029<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 l =3D 2<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ptr =3D 0x7fffffffd6f4
                                    &quot;\377\377\377\377&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 val =3D 1024<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 addr1 =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mr =3D 0x555556313860<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 error =3D false<br>
                                    #23 0x0000555555831b12 in
                                    address_space_write (<br>
                                    =C2=A0=C2=A0=C2=A0 as=3D0x5555561c2140
                                    &lt;address_space_io&gt;, addr=3D3324,
                                    buf=3D0x7fffffffd6f0 &quot;&quot;, <br>
                                    =C2=A0=C2=A0=C2=A0 len=3D2) at
                                    /home/goon/xen/tools/qemu-xen-dir/exec.=
c:2091<br>
                                    No locals.<br>
                                    #24 0x000055555588f486 in cpu_outw
                                    (addr=3D3324, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/iopor=
t.c:77<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 buf =3D &quot;\000\004&quot;<br>
                                    #25 0x000055555590f460 in do_outp
                                    (addr=3D3324, size=3D2, val=3D1024)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:668<br>
                                    No locals.<br>
                                    #26 0x000055555590f66f in
                                    cpu_ioreq_pio (req=3D0x7ffff7ff3000)<br=
>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:729<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 0<br>
                                    #27 0x000055555590f910 in
                                    handle_ioreq (req=3D0x7ffff7ff3000)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:781<br>
                                    No locals.<br>
                                    #28 0x000055555590fc0f in
                                    cpu_handle_ioreq
                                    (opaque=3D0x5555562abf10)<br>
                                    =C2=A0=C2=A0=C2=A0 at
                                    /home/goon/xen/tools/qemu-xen-dir/xen-h=
vm.c:856<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 state =3D 0x5555562abf10<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 req =3D 0x7ffff7ff3000<br>
                                    #29 0x000055555577c385 in
                                    qemu_iohandler_poll
                                    (pollfds=3D0x555556277600, ret=3D1)<br>
                                    =C2=A0=C2=A0=C2=A0 at iohandler.c:143<b=
r>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 revents =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pioh =3D 0x55555627ca90<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ioh =3D 0x555556366320<br>
                                    #30 0x000055555577d14b in
                                    main_loop_wait (nonblocking=3D0) at
                                    main-loop.c:485<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ret =3D 1<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout =3D 4294967295<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 timeout_ns =3D 16717983<br>
                                    #31 0x0000555555815fbd in main_loop
                                    () at vl.c:2056<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 nonblocking =3D false<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 last_io =3D 1<br>
                                    #32 0x000055555581d66b in main
                                    (argc=3D64, argv=3D0x7fffffffdc78, <br>
                                    =C2=A0=C2=A0=C2=A0 envp=3D0x7fffffffde8=
0) at
                                    vl.c:4535<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 i =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 snapshot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 linux_boot =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 icount_option =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 initrd_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_filename =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 kernel_cmdline =3D
                                    0x55555598c664 &quot;&quot;<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 boot_order =3D 0x555556275340
                                    &quot;dc&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 ds =3D 0x5555563564e0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cyls =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 heads =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 secs =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 translation =3D 0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 hda_opts =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 opts =3D 0x555556275290<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_opts =3D
                                    0x555556276ef0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 olist =3D 0x555555d72700
                                    &lt;qemu_machine_opts&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optind =3D 64<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 optarg =3D 0x7fffffffe61a
                                    &quot;file=3D/dev/sda3,if=3Dide,index=
=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 loadvm =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine_class =3D
                                    0x55555626e030<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 machine =3D 0x555555d78540
                                    &lt;xenfv_machine&gt;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 cpu_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 vga_model =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_chrdev =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 qtest_log =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pid_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 incoming =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 show_vnc_port =3D 0<br>
                                    ---Type &lt;return&gt; to continue,
                                    or q &lt;return&gt; to quit---<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 defconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 userconfig =3D true<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_mask =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 log_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mem_trace =3D {malloc =3D
                                    0x55555581950b
                                    &lt;malloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 realloc =3D 0x555555819540
                                    &lt;realloc_and_trace&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 free =3D 0x555555819584
                                    &lt;free_and_trace&gt;, calloc =3D
                                    0x0, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 try_malloc =3D 0x0,
                                    try_realloc =3D 0x0}<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_events =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 trace_file =3D 0x0<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 __func__ =3D &quot;main&quot;<br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 args =3D {machine =3D
                                    0x555555d78540
                                    &lt;xenfv_machine&gt;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=3D"+120132659=
20" target=3D"_blank">2013265920</a>,
                                    boot_order =3D 0x555556275340 &quot;dc&=
quot;, <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D 0x0,
                                    kernel_cmdline =3D 0x55555598c664 &quot=
;&quot;,
                                    <br>
                                    =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D 0x0,
                                    cpu_model =3D 0x0}<br>
                                    <br>
                                  </div>
                                </div>
                              </div>
                              <div class=3D"gmail_extra"><br>
                                <div class=3D"gmail_quote">2015-01-04
                                  22:29 GMT+01:00 Goonie Windy <span dir=3D=
"ltr">&lt;<a href=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">mo=
nsieur.goonie@gmail.com</a>&gt;</span>:<br>
                                  <blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                    <div dir=3D"ltr">
                                      <div>
                                        <div>
                                          <div>
                                            <div>Copyright (C) 2014 Free
                                              Software Foundation, Inc.<br>
                                              License GPLv3+: GNU GPL
                                              version 3 or later &lt;<a hre=
f=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/lic=
enses/gpl.html</a>&gt;<br>
                                              This is free software: you
                                              are free to change and
                                              redistribute it.<br>
                                              There is NO WARRANTY, to
                                              the extent permitted by
                                              law.=C2=A0 Type &quot;show co=
pying&quot;<br>
                                              and &quot;show warranty&quot;=
 for
                                              details.<br>
                                              This GDB was configured as
                                              &quot;x86_64-linux-gnu&quot;.=
<br>
                                              Type &quot;show configuration=
&quot;
                                              for configuration details.<br=
>
                                              For bug reporting
                                              instructions, please see:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gdb/=
bugs/</a>&gt;.<br>
                                              Find the GDB manual and
                                              other documentation
                                              resources online at:<br>
                                              &lt;<a href=3D"http://www.gnu=
.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/soft=
ware/gdb/documentation/</a>&gt;.<br>
                                              For help, type &quot;help&quo=
t;.<br>
                                              Type &quot;apropos word&quot;=
 to
                                              search for commands
                                              related to &quot;word&quot;..=
.<br>
                                              Reading symbols from
                                              /usr/lib/xen/bin/qemu-system-=
i386...done.<br>
                                              (gdb) target remote
                                              localhost:1234<br>
                                              Remote debugging using
                                              localhost:1234<br>
                                              Reading symbols from
                                              /lib64/ld-linux-x86-64.so.2..=
.Reading
                                              symbols from
                                              /usr/lib/debug//lib/x86_64-li=
nux-gnu/ld-2.19.so...done.<br>
                                              done.<br>
                                              Loaded symbols for
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              0x00007ffff7ddd190 in
                                              _start () from
                                              /lib64/ld-linux-x86-64.so.2<b=
r>
                                              (gdb) c<br>
                                              Continuing.<br>
                                              <br>
                                              Program received signal
                                              SIGSEGV, Segmentation
                                              fault.<br>
                                              0x00007ffff50e5801 in
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              443=C2=A0=C2=A0=C2=A0 char_de=
vice.c:
                                              Aucun fichier ou dossier
                                              de ce type.<br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                            </div>
                                          </div>
                                          (gdb) bt full ecc<br>
                                          No symbol &quot;ecc&quot; in curr=
ent
                                          context.
                                          <div>
                                            <div><br>
                                              (gdb) bt full<br>
                                              #0=C2=A0 0x00007ffff50e5801 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0
                                              dev=3Ddev@entry=3D0x55555647c=
750)
                                              at char_device.c:443<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                              &lt;optimized out&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D &lt;optimized
                                              out&gt;<br>
                                              #1=C2=A0 0x00007ffff50e6497 i=
n
                                              spice_char_device_write_to_de=
vice
                                              (<br>
                                              =C2=A0=C2=A0=C2=A0 dev=3D0x55=
555647c750) at
                                              char_device.c:436<br>
                                              No locals.<br>
                                              #2=C2=A0
                                              spice_char_device_start
                                              (dev=3D0x55555647c750) at
                                              char_device.c:798<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_char_device_start=
&quot;<br>
                                              #3=C2=A0 0x00007ffff51299c6 i=
n
                                              spice_server_vm_start
                                              (s=3D&lt;optimized out&gt;)<b=
r>
                                              =C2=A0=C2=A0=C2=A0 at reds.c:=
3795<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                              0x5555562d8350<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                              &quot;spice_server_vm_start&q=
uot;<br>
                                              #4=C2=A0 0x00005555557f40c9 i=
n
                                              qemu_spice_display_start
                                              () at ui/spice-core.c:909<br>
                                              No locals.<br>
                                              #5=C2=A0 0x00005555556c4365 i=
n
                                              qxl_hard_reset
                                              (d=3D0x55555637d7e0,
                                              loadvm=3D0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1172<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                              #6=C2=A0 0x00005555556c43a3 i=
n
                                              qxl_reset_handler
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              hw/display/qxl.c:1180<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D 0x55555637d7e0<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              #7=C2=A0 0x0000555555699658 i=
n
                                              device_reset
                                              (dev=3D0x55555637d7e0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:934<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                              0x555556270410<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;device_reset&quot;<br>
                                              #8=C2=A0 0x0000555555697a56 i=
n
                                              qdev_reset_one
                                              (dev=3D0x55555637d7e0,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:240<br>
                                              No locals.<br>
                                              #9=C2=A0 0x0000555555697f64 i=
n
                                              qdev_walk_children
                                              (dev=3D0x55555637d7e0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:411<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #10 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a8ee0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x55555633d4f0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #11 0x0000555555697f28 in
                                              qdev_walk_children
                                              (dev=3D0x5555563131b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:403<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a8ee0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #12 0x0000555555697e57 in
                                              qbus_walk_children
                                              (bus=3D0x5555562a60b0, <br>
                                              =C2=A0=C2=A0=C2=A0 pre_devfn=
=3D0x0,
                                              pre_busfn=3D0x0,
                                              post_devfn=3D0x555555697a3a
                                              &lt;qdev_reset_one&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0
                                              post_busfn=3D0x555555697a5d
                                              &lt;qbus_reset_one&gt;,
                                              opaque=3D0x0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:369<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                              0x5555562a6a80<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                              #13 0x0000555555697b32 in
                                              qbus_reset_all
                                              (bus=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:261<br>
                                              No locals.<br>
                                              #14 0x0000555555697b54 in
                                              qbus_reset_all_fn
                                              (opaque=3D0x5555562a60b0)<br>
                                              =C2=A0=C2=A0=C2=A0 at hw/core=
/qdev.c:267<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                              0x5555562a60b0<br>
                                              #15 0x0000555555815b1f in
                                              qemu_devices_reset () at
                                              vl.c:1872<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                              0x555556375890<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                              #16 0x0000555555815bbf in
                                              qemu_system_reset
                                              (report=3Dtrue) at vl.c:1885<=
br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                              &quot;qemu_system_reset&quot;=
<br>
                                              #17 0x000055555590fcb9 in
                                              cpu_handle_ioreq
                                              (opaque=3D0x5555562b0950)<br>
                                              =C2=A0=C2=A0=C2=A0 at
                                              /home/goon/xen/tools/qemu-xen=
-dir/xen-hvm.c:881<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                              0x5555562b0950<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 req =3D
                                              0x7ffff7ff3000<br>
                                              #18 0x000055555577c385 in
                                              qemu_iohandler_poll
                                              (pollfds=3D0x555556277600,
                                              ret=3D1)<br>
                                              =C2=A0=C2=A0=C2=A0 at iohandl=
er.c:143<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 revents =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pioh =3D
                                              0x5555563218c0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ioh =3D
                                              0x555556362a80<br>
                                              #19 0x000055555577d14b in
                                              main_loop_wait
                                              (nonblocking=3D0) at
                                              main-loop.c:485<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ret =3D 1<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout =3D
                                              4294967295<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 timeout_ns =3D
                                              17355567<br>
                                              #20 0x0000555555815fbd in
                                              main_loop () at vl.c:2056<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nonblocking =3D
                                              false<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 last_io =3D 1<br>
                                              #21 0x000055555581d66b in
                                              main (argc=3D66,
                                              argv=3D0x7fffffffdc58, <br>
                                              =C2=A0=C2=A0=C2=A0 envp=3D0x7=
fffffffde70)
                                              at vl.c:4535<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 i =3D 64<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 snapshot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 linux_boot =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 icount_option =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 initrd_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_filename =3D
                                              0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;<b=
r>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ds =3D
                                              0x5555563324a0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cyls =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 heads =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 secs =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 translation =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 hda_opts =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 opts =3D
                                              0x5555562752d0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_opts =3D
                                              0x555556276f30<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 olist =3D
                                              0x555555d72700
                                              &lt;qemu_machine_opts&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optind =3D 66<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 optarg =3D
                                              0x7fffffffe61a
                                              &quot;file=3D/dev/sda3,if=3Di=
de,index=3D0,media=3Ddisk,format=3Draw,cache=3Dwriteback&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 loadvm =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine_class =3D
                                              0x55555626e030<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 cpu_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 vga_model =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_chrdev =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 qtest_log =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 pid_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 incoming =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 show_vnc_port =3D 0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 defconfig =3D true<br>
                                              ---Type &lt;return&gt; to
                                              continue, or q
                                              &lt;return&gt; to quit---<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 userconfig =3D true<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_mask =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 log_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mem_trace =3D
                                              {malloc =3D 0x55555581950b
                                              &lt;malloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 realloc =3D
                                              0x555555819540
                                              &lt;realloc_and_trace&gt;,
                                              <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 free =3D
                                              0x555555819584
                                              &lt;free_and_trace&gt;,
                                              calloc =3D 0x0, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 try_malloc =3D
                                              0x0, try_realloc =3D 0x0}<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_events =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 trace_file =3D 0x0<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D &quot;main&quot;<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 args =3D {machine =3D
                                              0x555555d78540
                                              &lt;xenfv_machine&gt;, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size =3D <a href=3D"tel:2013265920" value=
=3D"+12013265920" target=3D"_blank">2013265920</a>,
                                              boot_order =3D
                                              0x555556275380 &quot;dc&quot;=
, <br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 kernel_filename
                                              =3D 0x0, kernel_cmdline =3D
                                              0x55555598c664 &quot;&quot;, =
<br>
                                              =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 initrd_filename
                                              =3D 0x0, cpu_model =3D 0x0}<b=
r>
                                              <br>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                        AND <br>
                                        <br>
                                      </div>
                                      attached files<br>
                                      <br>
                                      <br>
                                      <div><br>
                                        <div><br>
                                          <br>
                                          <br>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                    <div>
                                      <div>
                                        <div class=3D"gmail_extra"><br>
                                          <div class=3D"gmail_quote">2015-0=
1-04
                                            22:24 GMT+01:00 Goonie Windy
                                            <span dir=3D"ltr">&lt;<a href=
=3D"mailto:monsieur.goonie@gmail.com" target=3D"_blank">monsieur.goonie@gma=
il.com</a>&gt;</span>:<br>
                                            <blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                              <div dir=3D"ltr">GNU gdb
                                                (Debian 7.7.1+dfsg-5)
                                                7.7.1<br>
                                                Copyright (C) 2014 Free
                                                Software Foundation,
                                                Inc.<br>
                                                License GPLv3+: GNU GPL
                                                version 3 or later &lt;<a h=
ref=3D"http://gnu.org/licenses/gpl.html" target=3D"_blank">http://gnu.org/l=
icenses/gpl.html</a>&gt;<br>
                                                This is free software:
                                                you are free to change
                                                and redistribute it.<br>
                                                There is NO WARRANTY, to
                                                the extent permitted by
                                                law.=C2=A0 Type &quot;show
                                                copying&quot;<br>
                                                and &quot;show warranty&quo=
t; for
                                                details.<br>
                                                This GDB was configured
                                                as &quot;x86_64-linux-gnu&q=
uot;.<br>
                                                Type &quot;show
                                                configuration&quot; for
                                                configuration details.<br>
                                                For bug reporting
                                                instructions, please
                                                see:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/bugs/" target=3D"_blank">http://www.gnu.org/software/gd=
b/bugs/</a>&gt;.<br>
                                                Find the GDB manual and
                                                other documentation
                                                resources online at:<br>
                                                &lt;<a href=3D"http://www.g=
nu.org/software/gdb/documentation/" target=3D"_blank">http://www.gnu.org/so=
ftware/gdb/documentation/</a>&gt;.<br>
                                                For help, type &quot;help&q=
uot;.<br>
                                                Type &quot;apropos word&quo=
t; to
                                                search for commands
                                                related to &quot;word&quot;=
...<br>
                                                Reading symbols from
                                                /usr/lib/xen/bin/qemu-syste=
m-i386...done.<br>
                                                (gdb) target remote
                                                localhost:1234<span><br>
                                                  Remote debugging using
                                                  localhost:1234<br>
                                                </span><span>Reading
                                                  symbols from
                                                  /lib64/ld-linux-x86-64.so=
.2...Reading
                                                  symbols from
                                                  /usr/lib/debug//lib/x86_6=
4-linux-gnu/ld-2.19.so...done.<br>
                                                  done.<br>
                                                  Loaded symbols for
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  0x00007ffff7ddd190 in
                                                  _start () from
                                                  /lib64/ld-linux-x86-64.so=
.2<br>
                                                  (gdb) c<br>
                                                  Continuing.<br>
                                                  <br>
                                                </span>Program received
                                                signal SIGSEGV,
                                                Segmentation fault.<br>
                                                0x00007ffff50e5801 in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                443=C2=A0=C2=A0=C2=A0 char_=
device.c:
                                                Aucun fichier ou dossier
                                                de ce type.<br>
                                                (gdb) bt full<br>
                                                #0=C2=A0 0x00007ffff50e5801
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0
                                                dev=3Ddev@entry=3D0x5555564=
7c750)
                                                at char_device.c:443<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 sif =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 total =3D
                                                &lt;optimized out&gt;<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 n =3D
                                                &lt;optimized out&gt;<br>
                                                #1=C2=A0 0x00007ffff50e6497
                                                in
                                                spice_char_device_write_to_=
device
                                                (<br>
                                                =C2=A0=C2=A0=C2=A0 dev=3D0x=
55555647c750)
                                                at char_device.c:436<br>
                                                No locals.<br>
                                                #2=C2=A0
                                                spice_char_device_start
                                                (dev=3D0x55555647c750) at
                                                char_device.c:798<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_char_device_sta=
rt&quot;<br>
                                                #3=C2=A0 0x00007ffff51299c6
                                                in spice_server_vm_start
                                                (s=3D&lt;optimized
                                                out&gt;)<br>
                                                =C2=A0=C2=A0=C2=A0 at reds.=
c:3795<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 st_item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 item =3D
                                                0x5555562d8350<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __FUNCTION__ =3D
                                                &quot;spice_server_vm_start=
&quot;<br>
                                                #4=C2=A0 0x00005555557f40c9
                                                in
                                                qemu_spice_display_start
                                                () at
                                                ui/spice-core.c:909<br>
                                                No locals.<br>
                                                #5=C2=A0 0x00005555556c4365
                                                in qxl_hard_reset
                                                (d=3D0x55555637d7e0,
                                                loadvm=3D0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1172<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 startstop =3D true<br>
                                                #6=C2=A0 0x00005555556c43a3
                                                in qxl_reset_handler
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/display/qxl.c:1180<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 d =3D
                                                0x55555637d7e0<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                #7=C2=A0 0x0000555555699658
                                                in device_reset
                                                (dev=3D0x55555637d7e0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:934<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 klass =3D
                                                0x555556270410<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;device_reset&quot;<br=
>
                                                #8=C2=A0 0x0000555555697a56
                                                in qdev_reset_one
                                                (dev=3D0x55555637d7e0,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:240<br>
                                                No locals.<br>
                                                #9=C2=A0 0x0000555555697f64
                                                in qdev_walk_children
                                                (dev=3D0x55555637d7e0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:411<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D 0x0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #10 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a8ee0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x55555633d4f0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #11 0x0000555555697f28
                                                in qdev_walk_children
                                                (dev=3D0x5555563131b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:403<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
                                                &lt;return&gt; to
                                                quit---<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a8ee0<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #12 0x0000555555697e57
                                                in qbus_walk_children
                                                (bus=3D0x5555562a60b0, <br>
                                                =C2=A0=C2=A0=C2=A0 pre_devf=
n=3D0x0,
                                                pre_busfn=3D0x0,
                                                post_devfn=3D0x555555697a3a
                                                &lt;qdev_reset_one&gt;,
                                                <br>
                                                =C2=A0=C2=A0=C2=A0
                                                post_busfn=3D0x555555697a5d
                                                &lt;qbus_reset_one&gt;,
                                                opaque=3D0x0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:369<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 kid =3D
                                                0x5555562a6a80<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 err =3D 0<br>
                                                #13 0x0000555555697b32
                                                in qbus_reset_all
                                                (bus=3D0x5555562a60b0)<br>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:261<br>
                                                No locals.<br>
                                                #14 0x0000555555697b54
                                                in qbus_reset_all_fn
                                                (opaque=3D0x5555562a60b0)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                hw/core/qdev.c:267<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 bus =3D
                                                0x5555562a60b0<br>
                                                #15 0x0000555555815b1f
                                                in qemu_devices_reset ()
                                                at vl.c:1872<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 re =3D
                                                0x555556375890<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 nre =3D 0x0<br>
                                                #16 0x0000555555815bbf
                                                in qemu_system_reset
                                                (report=3Dtrue) at
                                                vl.c:1885<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 mc =3D
                                                0x55555626e030<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 __func__ =3D
                                                &quot;qemu_system_reset&quo=
t;<br>
                                                #17 0x000055555590fcb9
                                                in cpu_handle_ioreq
                                                (opaque=3D0x5555562b0950)<b=
r>
                                                =C2=A0=C2=A0=C2=A0 at
                                                /home/goon/xen/tools/qemu-x=
en-dir/xen-hvm.c:881<br>
                                                =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 state =3D
                                                0x5555562b0950<br>
                                                ---Type &lt;return&gt;
                                                to continue, or q
       </div></blockquote></div></div></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div></div></blockquote></div></div>=
</blockquote></div></div></blockquote></div>...</blockquote></div>
</blockquote></div><br></div>
</blockquote></div><br></div>

--001a113cf3e025c38b050be8ae70--


--===============4841908951300534358==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--===============4841908951300534358==--


From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 10:01:23 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 10:01:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8Qx1-0003Z8-77; Tue, 06 Jan 2015 10:01:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hanjiunit@gmail.com>) id 1Y6KzW-0001Hp-Qo
	for win-pv-devel@lists.xenproject.org; Wed, 31 Dec 2014 15:15:18 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	20/9A-02696-60314A45; Wed, 31 Dec 2014 15:15:18 +0000
X-Env-Sender: hanjiunit@gmail.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1420038917!17977649!1
X-Originating-IP: [74.125.82.170]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 520 invoked from network); 31 Dec 2014 15:15:17 -0000
Received: from mail-we0-f170.google.com (HELO mail-we0-f170.google.com)
	(74.125.82.170)
	by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 15:15:17 -0000
Received: by mail-we0-f170.google.com with SMTP id w61so2515830wes.15
	for <win-pv-devel@lists.xenproject.org>;
	Wed, 31 Dec 2014 07:15:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=k/d8TsNWyp2pSE6cN55rQTC7v3WXNxpwNCrgPv2HGus=;
	b=a0yWOb4FIe9Xf9uCUn2SvaV+EGltP7R/YxhxppGcHRFheANcWi4vVTPr62xgWkZ1tm
	gj8KG1mjEGjAlA7N+9Zsks0xIRRkLCsMOKkP0Ije0AHdKEhJCESiFIrImsroDUrUNoUm
	5ERDtaMNYoWtEhzu5LKAJPzEoDcFjcEifEMZoUC66R4uD1GYIu/AxB1aUhAcTZagcBgV
	nb1Aq8R3RKuiHLSehrTZokKVzG4F++anjySbOlICwR7jzwpppaIuIqzW2bkZ4QURsClq
	UV+rKuDWgvsWgdBZBOtYG/ZqcrHOv7VRvlKjIBpaU0C6lo07POBIyLswJ9eKPw3Nv2r9
	nelQ==
MIME-Version: 1.0
X-Received: by 10.180.80.163 with SMTP id s3mr113712635wix.59.1420038917216;
	Wed, 31 Dec 2014 07:15:17 -0800 (PST)
Received: by 10.216.114.8 with HTTP; Wed, 31 Dec 2014 07:15:17 -0800 (PST)
Date: Wed, 31 Dec 2014 10:15:17 -0500
Message-ID: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
From: hanji unit <hanjiunit@gmail.com>
To: win-pv-devel@lists.xenproject.org, xen-devel@lists.xen.org
X-Mailman-Approved-At: Tue, 06 Jan 2015 10:01:22 +0000
Subject: [win-pv-devel] XenBus_AddWatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Hello, I am calling XenBus_AddWatch API from a DomU guest in the
win-pvdrivers xenpci driver, and noticed that I am not able to watch
xenstore entries that are outside of the DomU's xenstore tree. For
example, the following call in
XenPci_EvtDeviceD0EntryPostInterruptsEnabled fails with response="EIO"
even if the xenstore permissions for Container and Container/DomU in
xenstore are both "b0":

response = XenBus_AddWatch(xpdd, XN_BASE_GLOBAL, "Container/DomU",
MyCallback, xpdd);

However, the following call works and it watches a xenstore entry
relative to DomUs xenstore tree:

response = XenBus_AddWatch(xpdd, XBT_NIL, "DomU", MyCallback, xpdd);

Writing to an entry outside the DomUs tree is allowed if permissions are b0:

result = XnWriteString(xpdd, XN_BASE_GLOBAL, "Container/DomU", buffer);

It seems like DomUs should be allowed to watch xenstore entries
outside their trees. Is this a bug or is it by design?

Thanks.

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 10:01:23 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 10:01:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8Qx1-0003ZC-7z; Tue, 06 Jan 2015 10:01:23 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hanjiunit@gmail.com>) id 1Y73rx-0005n1-RK
	for win-pv-devel@lists.xenproject.org; Fri, 02 Jan 2015 15:10:29 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	C9/8A-25276-5E4B6A45; Fri, 02 Jan 2015 15:10:29 +0000
X-Env-Sender: hanjiunit@gmail.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1420211428!18929815!1
X-Originating-IP: [74.125.82.170]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28740 invoked from network); 2 Jan 2015 15:10:28 -0000
Received: from mail-we0-f170.google.com (HELO mail-we0-f170.google.com)
	(74.125.82.170)
	by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	2 Jan 2015 15:10:28 -0000
Received: by mail-we0-f170.google.com with SMTP id w61so4620914wes.29
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 02 Jan 2015 07:10:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:content-type; bh=k/d8TsNWyp2pSE6cN55rQTC7v3WXNxpwNCrgPv2HGus=;
	b=EuqM7BINNCGOiIOjfUz8t/ap2e3WwpqAXSgwIolcsP1+oK3P4ZyBIyB3CXdEIH5/Jd
	IqkmGPnPM6xi8SLlJW3sM2Hfh0CmL6HtUWGWM408tgf2N0s92OkyilhUKkDt5Fzd4cJO
	f9uA8wJU8ApqBUeAXmMIGHpAUOBCFTJalqQviBevdgJN1JdPUWp/OyzLkFxt6G0F80YF
	iTvsbezyiHr7Qb34sNgpYfZ5kK4PAnq9kMze2xvOl6eLkMUth1vG3toYqiXui9Zo8Qf2
	cugDqOwrQrW+sf5ecdjlIT2xWAuYf/Ql93B+PEEKeLN2Tz8Z6Tr7m1hwhxGS+bNKOJY4
	1fQQ==
MIME-Version: 1.0
X-Received: by 10.180.73.206 with SMTP id n14mr135952042wiv.60.1420211428148; 
	Fri, 02 Jan 2015 07:10:28 -0800 (PST)
Received: by 10.216.114.8 with HTTP; Fri, 2 Jan 2015 07:10:28 -0800 (PST)
In-Reply-To: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
References: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
Date: Fri, 2 Jan 2015 10:10:28 -0500
Message-ID: <CA+J4q6c+KmAggPpJM8QAGOL6gTM5AM5AHH=J71OOLNQo1e1cew@mail.gmail.com>
From: hanji unit <hanjiunit@gmail.com>
To: win-pv-devel@lists.xenproject.org, xen-devel@lists.xen.org
X-Mailman-Approved-At: Tue, 06 Jan 2015 10:01:22 +0000
Subject: [win-pv-devel] Fwd: XenBus_AddWatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Hello, I am calling XenBus_AddWatch API from a DomU guest in the
win-pvdrivers xenpci driver, and noticed that I am not able to watch
xenstore entries that are outside of the DomU's xenstore tree. For
example, the following call in
XenPci_EvtDeviceD0EntryPostInterruptsEnabled fails with response="EIO"
even if the xenstore permissions for Container and Container/DomU in
xenstore are both "b0":

response = XenBus_AddWatch(xpdd, XN_BASE_GLOBAL, "Container/DomU",
MyCallback, xpdd);

However, the following call works and it watches a xenstore entry
relative to DomUs xenstore tree:

response = XenBus_AddWatch(xpdd, XBT_NIL, "DomU", MyCallback, xpdd);

Writing to an entry outside the DomUs tree is allowed if permissions are b0:

result = XnWriteString(xpdd, XN_BASE_GLOBAL, "Container/DomU", buffer);

It seems like DomUs should be allowed to watch xenstore entries
outside their trees. Is this a bug or is it by design?

Thanks.

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 10:01:23 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 10:01:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8Qx1-0003ZC-7z; Tue, 06 Jan 2015 10:01:23 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hanjiunit@gmail.com>) id 1Y73rx-0005n1-RK
	for win-pv-devel@lists.xenproject.org; Fri, 02 Jan 2015 15:10:29 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	C9/8A-25276-5E4B6A45; Fri, 02 Jan 2015 15:10:29 +0000
X-Env-Sender: hanjiunit@gmail.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1420211428!18929815!1
X-Originating-IP: [74.125.82.170]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28740 invoked from network); 2 Jan 2015 15:10:28 -0000
Received: from mail-we0-f170.google.com (HELO mail-we0-f170.google.com)
	(74.125.82.170)
	by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	2 Jan 2015 15:10:28 -0000
Received: by mail-we0-f170.google.com with SMTP id w61so4620914wes.29
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 02 Jan 2015 07:10:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:content-type; bh=k/d8TsNWyp2pSE6cN55rQTC7v3WXNxpwNCrgPv2HGus=;
	b=EuqM7BINNCGOiIOjfUz8t/ap2e3WwpqAXSgwIolcsP1+oK3P4ZyBIyB3CXdEIH5/Jd
	IqkmGPnPM6xi8SLlJW3sM2Hfh0CmL6HtUWGWM408tgf2N0s92OkyilhUKkDt5Fzd4cJO
	f9uA8wJU8ApqBUeAXmMIGHpAUOBCFTJalqQviBevdgJN1JdPUWp/OyzLkFxt6G0F80YF
	iTvsbezyiHr7Qb34sNgpYfZ5kK4PAnq9kMze2xvOl6eLkMUth1vG3toYqiXui9Zo8Qf2
	cugDqOwrQrW+sf5ecdjlIT2xWAuYf/Ql93B+PEEKeLN2Tz8Z6Tr7m1hwhxGS+bNKOJY4
	1fQQ==
MIME-Version: 1.0
X-Received: by 10.180.73.206 with SMTP id n14mr135952042wiv.60.1420211428148; 
	Fri, 02 Jan 2015 07:10:28 -0800 (PST)
Received: by 10.216.114.8 with HTTP; Fri, 2 Jan 2015 07:10:28 -0800 (PST)
In-Reply-To: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
References: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
Date: Fri, 2 Jan 2015 10:10:28 -0500
Message-ID: <CA+J4q6c+KmAggPpJM8QAGOL6gTM5AM5AHH=J71OOLNQo1e1cew@mail.gmail.com>
From: hanji unit <hanjiunit@gmail.com>
To: win-pv-devel@lists.xenproject.org, xen-devel@lists.xen.org
X-Mailman-Approved-At: Tue, 06 Jan 2015 10:01:22 +0000
Subject: [win-pv-devel] Fwd: XenBus_AddWatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Hello, I am calling XenBus_AddWatch API from a DomU guest in the
win-pvdrivers xenpci driver, and noticed that I am not able to watch
xenstore entries that are outside of the DomU's xenstore tree. For
example, the following call in
XenPci_EvtDeviceD0EntryPostInterruptsEnabled fails with response="EIO"
even if the xenstore permissions for Container and Container/DomU in
xenstore are both "b0":

response = XenBus_AddWatch(xpdd, XN_BASE_GLOBAL, "Container/DomU",
MyCallback, xpdd);

However, the following call works and it watches a xenstore entry
relative to DomUs xenstore tree:

response = XenBus_AddWatch(xpdd, XBT_NIL, "DomU", MyCallback, xpdd);

Writing to an entry outside the DomUs tree is allowed if permissions are b0:

result = XnWriteString(xpdd, XN_BASE_GLOBAL, "Container/DomU", buffer);

It seems like DomUs should be allowed to watch xenstore entries
outside their trees. Is this a bug or is it by design?

Thanks.

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 10:01:23 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 10:01:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8Qx1-0003Z8-77; Tue, 06 Jan 2015 10:01:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hanjiunit@gmail.com>) id 1Y6KzW-0001Hp-Qo
	for win-pv-devel@lists.xenproject.org; Wed, 31 Dec 2014 15:15:18 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	20/9A-02696-60314A45; Wed, 31 Dec 2014 15:15:18 +0000
X-Env-Sender: hanjiunit@gmail.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1420038917!17977649!1
X-Originating-IP: [74.125.82.170]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 520 invoked from network); 31 Dec 2014 15:15:17 -0000
Received: from mail-we0-f170.google.com (HELO mail-we0-f170.google.com)
	(74.125.82.170)
	by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 15:15:17 -0000
Received: by mail-we0-f170.google.com with SMTP id w61so2515830wes.15
	for <win-pv-devel@lists.xenproject.org>;
	Wed, 31 Dec 2014 07:15:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=k/d8TsNWyp2pSE6cN55rQTC7v3WXNxpwNCrgPv2HGus=;
	b=a0yWOb4FIe9Xf9uCUn2SvaV+EGltP7R/YxhxppGcHRFheANcWi4vVTPr62xgWkZ1tm
	gj8KG1mjEGjAlA7N+9Zsks0xIRRkLCsMOKkP0Ije0AHdKEhJCESiFIrImsroDUrUNoUm
	5ERDtaMNYoWtEhzu5LKAJPzEoDcFjcEifEMZoUC66R4uD1GYIu/AxB1aUhAcTZagcBgV
	nb1Aq8R3RKuiHLSehrTZokKVzG4F++anjySbOlICwR7jzwpppaIuIqzW2bkZ4QURsClq
	UV+rKuDWgvsWgdBZBOtYG/ZqcrHOv7VRvlKjIBpaU0C6lo07POBIyLswJ9eKPw3Nv2r9
	nelQ==
MIME-Version: 1.0
X-Received: by 10.180.80.163 with SMTP id s3mr113712635wix.59.1420038917216;
	Wed, 31 Dec 2014 07:15:17 -0800 (PST)
Received: by 10.216.114.8 with HTTP; Wed, 31 Dec 2014 07:15:17 -0800 (PST)
Date: Wed, 31 Dec 2014 10:15:17 -0500
Message-ID: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
From: hanji unit <hanjiunit@gmail.com>
To: win-pv-devel@lists.xenproject.org, xen-devel@lists.xen.org
X-Mailman-Approved-At: Tue, 06 Jan 2015 10:01:22 +0000
Subject: [win-pv-devel] XenBus_AddWatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Hello, I am calling XenBus_AddWatch API from a DomU guest in the
win-pvdrivers xenpci driver, and noticed that I am not able to watch
xenstore entries that are outside of the DomU's xenstore tree. For
example, the following call in
XenPci_EvtDeviceD0EntryPostInterruptsEnabled fails with response="EIO"
even if the xenstore permissions for Container and Container/DomU in
xenstore are both "b0":

response = XenBus_AddWatch(xpdd, XN_BASE_GLOBAL, "Container/DomU",
MyCallback, xpdd);

However, the following call works and it watches a xenstore entry
relative to DomUs xenstore tree:

response = XenBus_AddWatch(xpdd, XBT_NIL, "DomU", MyCallback, xpdd);

Writing to an entry outside the DomUs tree is allowed if permissions are b0:

result = XnWriteString(xpdd, XN_BASE_GLOBAL, "Container/DomU", buffer);

It seems like DomUs should be allowed to watch xenstore entries
outside their trees. Is this a bug or is it by design?

Thanks.

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 10:34:37 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 10:34:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8RTB-0005GM-5e; Tue, 06 Jan 2015 10:34:37 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y8RT8-0005G6-Vx
	for win-pv-devel@lists.xenproject.org; Tue, 06 Jan 2015 10:34:35 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	9C/E2-26652-A3ABBA45; Tue, 06 Jan 2015 10:34:34 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1420540473!12506438!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23208 invoked from network); 6 Jan 2015 10:34:33 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Jan 2015 10:34:33 -0000
X-IronPort-AV: E=Sophos;i="5.07,707,1413244800"; d="scan'208";a="28377758"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: hanji unit <hanjiunit@gmail.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>, "xen-devel@lists.xen.org"
	<xen-devel@lists.xen.org>
Thread-Topic: [win-pv-devel] XenBus_AddWatch
Thread-Index: AQHQKZfNl237INrvDEK4xNEQJy/jDZyy5FwQ
Date: Tue, 6 Jan 2015 10:34:33 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257AF4EF@AMSPEX01CL01.citrite.net>
References: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
In-Reply-To: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] XenBus_AddWatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of hanji unit
> Sent: 31 December 2014 15:15
> To: win-pv-devel@lists.xenproject.org; xen-devel@lists.xen.org
> Subject: [win-pv-devel] XenBus_AddWatch
> 
> Hello, I am calling XenBus_AddWatch API from a DomU guest in the
> win-pvdrivers xenpci driver, and noticed that I am not able to watch
> xenstore entries that are outside of the DomU's xenstore tree. For
> example, the following call in
> XenPci_EvtDeviceD0EntryPostInterruptsEnabled fails with response="EIO"
> even if the xenstore permissions for Container and Container/DomU in
> xenstore are both "b0":
> 
> response = XenBus_AddWatch(xpdd, XN_BASE_GLOBAL,
> "Container/DomU",
> MyCallback, xpdd);
> 
> However, the following call works and it watches a xenstore entry
> relative to DomUs xenstore tree:
> 
> response = XenBus_AddWatch(xpdd, XBT_NIL, "DomU", MyCallback, xpdd);
> 
> Writing to an entry outside the DomUs tree is allowed if permissions are b0:
> 
> result = XnWriteString(xpdd, XN_BASE_GLOBAL, "Container/DomU", buffer);
> 
> It seems like DomUs should be allowed to watch xenstore entries
> outside their trees. Is this a bug or is it by design?

Hi,

  The API you're referring to is part of James Harper's GPLPV drivers I believe, which I'm no expert on. I would imagine the API simply passes error codes back from xenstored though so you should probably check xenstored-access.log, although EIO does sound like an odd code to get back.

  Paul

> 
> Thanks.
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 10:34:37 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 10:34:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8RTB-0005GM-5e; Tue, 06 Jan 2015 10:34:37 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y8RT8-0005G6-Vx
	for win-pv-devel@lists.xenproject.org; Tue, 06 Jan 2015 10:34:35 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	9C/E2-26652-A3ABBA45; Tue, 06 Jan 2015 10:34:34 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1420540473!12506438!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23208 invoked from network); 6 Jan 2015 10:34:33 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Jan 2015 10:34:33 -0000
X-IronPort-AV: E=Sophos;i="5.07,707,1413244800"; d="scan'208";a="28377758"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: hanji unit <hanjiunit@gmail.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>, "xen-devel@lists.xen.org"
	<xen-devel@lists.xen.org>
Thread-Topic: [win-pv-devel] XenBus_AddWatch
Thread-Index: AQHQKZfNl237INrvDEK4xNEQJy/jDZyy5FwQ
Date: Tue, 6 Jan 2015 10:34:33 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257AF4EF@AMSPEX01CL01.citrite.net>
References: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
In-Reply-To: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] XenBus_AddWatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of hanji unit
> Sent: 31 December 2014 15:15
> To: win-pv-devel@lists.xenproject.org; xen-devel@lists.xen.org
> Subject: [win-pv-devel] XenBus_AddWatch
> 
> Hello, I am calling XenBus_AddWatch API from a DomU guest in the
> win-pvdrivers xenpci driver, and noticed that I am not able to watch
> xenstore entries that are outside of the DomU's xenstore tree. For
> example, the following call in
> XenPci_EvtDeviceD0EntryPostInterruptsEnabled fails with response="EIO"
> even if the xenstore permissions for Container and Container/DomU in
> xenstore are both "b0":
> 
> response = XenBus_AddWatch(xpdd, XN_BASE_GLOBAL,
> "Container/DomU",
> MyCallback, xpdd);
> 
> However, the following call works and it watches a xenstore entry
> relative to DomUs xenstore tree:
> 
> response = XenBus_AddWatch(xpdd, XBT_NIL, "DomU", MyCallback, xpdd);
> 
> Writing to an entry outside the DomUs tree is allowed if permissions are b0:
> 
> result = XnWriteString(xpdd, XN_BASE_GLOBAL, "Container/DomU", buffer);
> 
> It seems like DomUs should be allowed to watch xenstore entries
> outside their trees. Is this a bug or is it by design?

Hi,

  The API you're referring to is part of James Harper's GPLPV drivers I believe, which I'm no expert on. I would imagine the API simply passes error codes back from xenstored though so you should probably check xenstored-access.log, although EIO does sound like an odd code to get back.

  Paul

> 
> Thanks.
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 16:38:30 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 16:38:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8X9J-00048F-U8; Tue, 06 Jan 2015 16:38:29 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y8X9J-00048A-DV
	for win-pv-devel@lists.xenproject.org; Tue, 06 Jan 2015 16:38:29 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	77/DA-02697-48F0CA45; Tue, 06 Jan 2015 16:38:28 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1420562308!11115096!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9941 invoked from network); 6 Jan 2015 16:38:28 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Jan 2015 16:38:28 -0000
X-IronPort-AV: E=Sophos;i="5.07,708,1413244800"; d="scan'208";a="28393230"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 0/6] Use VIF v2 interface
Thread-Index: AQHQGub+iX4sZjwSn0OCJY527rBAD5yzaJYw
Date: Tue, 6 Jan 2015 16:38:27 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257B25D7@AMSPEX01CL01.citrite.net>
References: <1418921673-6008-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1418921673-6008-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 0/6] Use VIF v2 interface
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 18 December 2014 16:54
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH 0/6] Use VIF v2 interface
> 
> Indirectly adds support for multi-queues by updating to VIF interface v2
> Calculates a hash value for XenVif to determine queue (if supported)
> 
> Owen Smith (6):
>   Dos2Unix line endings
>   Move interface registration to coinstaller
>   Refactor for more maintainability.
>   Query for cache interface
>   Switch to VIF interface V2
>   Calculate simple hash of IP/Ports
> 
>  include/cache_interface.h    |  233 +++
>  include/vif_interface.h      |   94 +-
>  src/coinst/coinst.c          |  155 ++
>  src/xennet.inf               |    6 +-
>  src/xennet/adapter.c         | 3549 ++++++++++++++++++------------------------
>  src/xennet/adapter.h         |  150 +-
>  src/xennet/common.h          |   36 -
>  src/xennet/driver.c          |  533 +++++++
>  src/xennet/main.c            |  361 -----
>  src/xennet/miniport.c        |   78 +-
>  src/xennet/project.h         |   66 -
>  src/xennet/receiver.c        |  328 ++--
>  src/xennet/receiver.h        |   58 +-
>  src/xennet/registry.c        | 1200 --------------
>  src/xennet/registry.h        |  168 --
>  src/xennet/std.h             |   45 -
>  src/xennet/transmitter.c     |  695 ++++++---
>  src/xennet/transmitter.h     |   51 +-
>  vs2012/xennet/xennet.vcxproj |    4 +-
>  vs2013/xennet/xennet.vcxproj |  250 ++-
>  20 files changed, 3490 insertions(+), 4570 deletions(-)
>  create mode 100644 include/cache_interface.h
>  delete mode 100644 src/xennet/common.h
>  create mode 100644 src/xennet/driver.c
>  delete mode 100644 src/xennet/main.c
>  delete mode 100644 src/xennet/project.h
>  delete mode 100644 src/xennet/registry.c
>  delete mode 100644 src/xennet/registry.h
>  delete mode 100644 src/xennet/std.h
> 

Series applied (with some modifications). Thanks!

  Paul

> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 16:38:30 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 16:38:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8X9J-00048F-U8; Tue, 06 Jan 2015 16:38:29 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y8X9J-00048A-DV
	for win-pv-devel@lists.xenproject.org; Tue, 06 Jan 2015 16:38:29 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	77/DA-02697-48F0CA45; Tue, 06 Jan 2015 16:38:28 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1420562308!11115096!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9941 invoked from network); 6 Jan 2015 16:38:28 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Jan 2015 16:38:28 -0000
X-IronPort-AV: E=Sophos;i="5.07,708,1413244800"; d="scan'208";a="28393230"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 0/6] Use VIF v2 interface
Thread-Index: AQHQGub+iX4sZjwSn0OCJY527rBAD5yzaJYw
Date: Tue, 6 Jan 2015 16:38:27 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257B25D7@AMSPEX01CL01.citrite.net>
References: <1418921673-6008-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1418921673-6008-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 0/6] Use VIF v2 interface
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 18 December 2014 16:54
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH 0/6] Use VIF v2 interface
> 
> Indirectly adds support for multi-queues by updating to VIF interface v2
> Calculates a hash value for XenVif to determine queue (if supported)
> 
> Owen Smith (6):
>   Dos2Unix line endings
>   Move interface registration to coinstaller
>   Refactor for more maintainability.
>   Query for cache interface
>   Switch to VIF interface V2
>   Calculate simple hash of IP/Ports
> 
>  include/cache_interface.h    |  233 +++
>  include/vif_interface.h      |   94 +-
>  src/coinst/coinst.c          |  155 ++
>  src/xennet.inf               |    6 +-
>  src/xennet/adapter.c         | 3549 ++++++++++++++++++------------------------
>  src/xennet/adapter.h         |  150 +-
>  src/xennet/common.h          |   36 -
>  src/xennet/driver.c          |  533 +++++++
>  src/xennet/main.c            |  361 -----
>  src/xennet/miniport.c        |   78 +-
>  src/xennet/project.h         |   66 -
>  src/xennet/receiver.c        |  328 ++--
>  src/xennet/receiver.h        |   58 +-
>  src/xennet/registry.c        | 1200 --------------
>  src/xennet/registry.h        |  168 --
>  src/xennet/std.h             |   45 -
>  src/xennet/transmitter.c     |  695 ++++++---
>  src/xennet/transmitter.h     |   51 +-
>  vs2012/xennet/xennet.vcxproj |    4 +-
>  vs2013/xennet/xennet.vcxproj |  250 ++-
>  20 files changed, 3490 insertions(+), 4570 deletions(-)
>  create mode 100644 include/cache_interface.h
>  delete mode 100644 src/xennet/common.h
>  create mode 100644 src/xennet/driver.c
>  delete mode 100644 src/xennet/main.c
>  delete mode 100644 src/xennet/project.h
>  delete mode 100644 src/xennet/registry.c
>  delete mode 100644 src/xennet/registry.h
>  delete mode 100644 src/xennet/std.h
> 

Series applied (with some modifications). Thanks!

  Paul

> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 16:39:08 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 16:39:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8X9w-000492-0I; Tue, 06 Jan 2015 16:39:08 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y8X9u-00048t-Qo
	for win-pv-devel@lists.xenproject.org; Tue, 06 Jan 2015 16:39:06 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	76/B5-25276-AAF0CA45; Tue, 06 Jan 2015 16:39:06 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1420562345!19600208!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10131 invoked from network); 6 Jan 2015 16:39:05 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Jan 2015 16:39:05 -0000
X-IronPort-AV: E=Sophos;i="5.07,708,1413244800"; d="scan'208";a="28393244"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 0/7] Add multi-ring support
Thread-Index: AQHQGs7u1LgulLN+MkSeZ0hOrpFybJyzaPvg
Date: Tue, 6 Jan 2015 16:39:04 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257B25EB@AMSPEX01CL01.citrite.net>
References: <1418912904-8756-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1418912904-8756-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 0/7] Add multi-ring support
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 18 December 2014 14:28
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH 0/7] Add multi-ring support
> 
> Adds support for multiple rings, with traffic split based on
> a supplied hash value.
> Backend exposes "multi-queue-max-queues" to indicate the maximum
> number
> of queues supported (default 1, i.e. single-queue).
> Frontend will write "multi-queue-num-queues" to request multi-queues,
> this value must be less than or equal to the smaller of what the backend
> supports and the number of vCPUs exposed to the guest. The guest may
> limit
> this value with the registry setting "MultiQueueMaxQueues" under the
> XenVif
> service parameters key.
> 
> Patches:
> 1: Dont pass through query interface IRPs, as each interface exposed
>    needs to be explicitly declared and accounted for in the revision.
> 2&3: Switch to an array-of-pointers instead of a LIST_ENTRY for rings.
>    Rings are limited to 1 per vCPU for performance so the maximum
>    array size is known (MAXIMUM_PROCESSORS)
> 4: Remove the notifier object, its an abstraction too far. Make receiver
>    own the shared event channel (if used) or the receiver/transmitter own
>    their own event channels
> 5: Update the interface header for VIF v2. Also updates the transmitter
>    code to use the (now-downlevel) VIF v1 structures.
> 6: Add the new functionality from VIF v2. Adds translation layer for VIF v1
>    so that all internal operations are using VIF v2 structures.
> 7: Add multi-queue functionality and distribute packets to queues based on
>    supplied hash values.
> 
> Owen Smith (7):
>   Make interface exposure explicit
>   Move to transmitter ring pointer array
>   Move to receiver ring pointer array
>   Remove notifier object
>   Update to VIF Interface v2
>   Implement VIF Interface v2
>   Implement multiple queues
> 
>  include/vif_interface.h      |   94 +++-
>  src/xenvif/driver.c          |   42 ++
>  src/xenvif/driver.h          |    5 +
>  src/xenvif/frontend.c        |  185 +++++--
>  src/xenvif/frontend.h        |   18 +-
>  src/xenvif/notifier.c        |  684 -----------------------
>  src/xenvif/notifier.h        |   99 ----
>  src/xenvif/pdo.c             |   24 +-
>  src/xenvif/receiver.c        |  595 +++++++++++++++-----
>  src/xenvif/receiver.h        |   18 +-
>  src/xenvif/transmitter.c     | 1238 +++++++++++++++++++++++++++++++---
> --------
>  src/xenvif/transmitter.h     |   26 +-
>  src/xenvif/vif.c             |  146 ++++-
>  src/xenvif/vif.h             |   17 +-
>  vs2012/xenvif/xenvif.vcxproj |    1 -
>  vs2013/xenvif/xenvif.vcxproj |    1 -
>  16 files changed, 1857 insertions(+), 1336 deletions(-)
>  delete mode 100644 src/xenvif/notifier.c
>  delete mode 100644 src/xenvif/notifier.h
> 

Series applied (with some modifications). Thanks!

  Paul

> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 06 16:39:08 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 06 Jan 2015 16:39:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y8X9w-000492-0I; Tue, 06 Jan 2015 16:39:08 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y8X9u-00048t-Qo
	for win-pv-devel@lists.xenproject.org; Tue, 06 Jan 2015 16:39:06 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	76/B5-25276-AAF0CA45; Tue, 06 Jan 2015 16:39:06 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1420562345!19600208!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10131 invoked from network); 6 Jan 2015 16:39:05 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Jan 2015 16:39:05 -0000
X-IronPort-AV: E=Sophos;i="5.07,708,1413244800"; d="scan'208";a="28393244"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 0/7] Add multi-ring support
Thread-Index: AQHQGs7u1LgulLN+MkSeZ0hOrpFybJyzaPvg
Date: Tue, 6 Jan 2015 16:39:04 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257B25EB@AMSPEX01CL01.citrite.net>
References: <1418912904-8756-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1418912904-8756-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 0/7] Add multi-ring support
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 18 December 2014 14:28
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH 0/7] Add multi-ring support
> 
> Adds support for multiple rings, with traffic split based on
> a supplied hash value.
> Backend exposes "multi-queue-max-queues" to indicate the maximum
> number
> of queues supported (default 1, i.e. single-queue).
> Frontend will write "multi-queue-num-queues" to request multi-queues,
> this value must be less than or equal to the smaller of what the backend
> supports and the number of vCPUs exposed to the guest. The guest may
> limit
> this value with the registry setting "MultiQueueMaxQueues" under the
> XenVif
> service parameters key.
> 
> Patches:
> 1: Dont pass through query interface IRPs, as each interface exposed
>    needs to be explicitly declared and accounted for in the revision.
> 2&3: Switch to an array-of-pointers instead of a LIST_ENTRY for rings.
>    Rings are limited to 1 per vCPU for performance so the maximum
>    array size is known (MAXIMUM_PROCESSORS)
> 4: Remove the notifier object, its an abstraction too far. Make receiver
>    own the shared event channel (if used) or the receiver/transmitter own
>    their own event channels
> 5: Update the interface header for VIF v2. Also updates the transmitter
>    code to use the (now-downlevel) VIF v1 structures.
> 6: Add the new functionality from VIF v2. Adds translation layer for VIF v1
>    so that all internal operations are using VIF v2 structures.
> 7: Add multi-queue functionality and distribute packets to queues based on
>    supplied hash values.
> 
> Owen Smith (7):
>   Make interface exposure explicit
>   Move to transmitter ring pointer array
>   Move to receiver ring pointer array
>   Remove notifier object
>   Update to VIF Interface v2
>   Implement VIF Interface v2
>   Implement multiple queues
> 
>  include/vif_interface.h      |   94 +++-
>  src/xenvif/driver.c          |   42 ++
>  src/xenvif/driver.h          |    5 +
>  src/xenvif/frontend.c        |  185 +++++--
>  src/xenvif/frontend.h        |   18 +-
>  src/xenvif/notifier.c        |  684 -----------------------
>  src/xenvif/notifier.h        |   99 ----
>  src/xenvif/pdo.c             |   24 +-
>  src/xenvif/receiver.c        |  595 +++++++++++++++-----
>  src/xenvif/receiver.h        |   18 +-
>  src/xenvif/transmitter.c     | 1238 +++++++++++++++++++++++++++++++---
> --------
>  src/xenvif/transmitter.h     |   26 +-
>  src/xenvif/vif.c             |  146 ++++-
>  src/xenvif/vif.h             |   17 +-
>  vs2012/xenvif/xenvif.vcxproj |    1 -
>  vs2013/xenvif/xenvif.vcxproj |    1 -
>  16 files changed, 1857 insertions(+), 1336 deletions(-)
>  delete mode 100644 src/xenvif/notifier.c
>  delete mode 100644 src/xenvif/notifier.h
> 

Series applied (with some modifications). Thanks!

  Paul

> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 01:22:55 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 01:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y91oN-0006oh-1G; Thu, 08 Jan 2015 01:22:55 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christian.refvik@onlive.com>)
	id 1Y91oK-0006oZ-Uo; Thu, 08 Jan 2015 01:22:53 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	DB/FF-22819-CEBDDA45; Thu, 08 Jan 2015 01:22:52 +0000
X-Env-Sender: christian.refvik@onlive.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1420680170!13448870!1
X-Originating-IP: [74.85.144.12]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29534 invoked from network); 8 Jan 2015 01:22:51 -0000
Received: from mx01.onlive.com (HELO mx01.onlive.com) (74.85.144.12)
	by server-15.tower-206.messagelabs.com with SMTP;
	8 Jan 2015 01:22:51 -0000
X-IronPort-AV: E=Sophos;i="5.07,718,1413270000"; 
   d="scan'208";a="4745439"
Received: from unknown (HELO CAS02.onlive.corp) ([74.85.144.1])
	by mx01.onlive.com with ESMTP; 07 Jan 2015 17:22:34 -0800
Received: from MAILBOX02.onlive.corp ([fe80::d46a:1f25:4cee:4678]) by
	CAS02.onlive.corp ([fe80::c0c:ea60:8aa8:29d5%11]) with mapi id
	14.01.0355.002; Wed, 7 Jan 2015 17:22:34 -0800
From: Christian Refvik <christian.refvik@onlive.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Mapping Data between Dom0 and DomU
Thread-Index: AdAq4UTyNIWz0GXOTAqto30JO29UIQ==
Date: Thu, 8 Jan 2015 01:22:34 +0000
Message-ID: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.16.72.185]
MIME-Version: 1.0
Subject: [win-pv-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Hello,

My name is Christian and I am new to Xen development, and I've been struggling a bit.  I'm trying to develop a device driver so that a Windows 2012 Server VM  has a way to send about 10MB of data to a CentOS VM.  There is no real device on the backend, I just need a way to constantly send a large buffer between DomU and Dom0 using a zero copy solution.

I wrote a Linux device driver (simple char device) in Dom0 which allocates the memory and reserves the pages.  However, I'm not sure how to offer these pages to the Windows VM.  I also have a Windows device driver that I've installed in the Windows VM, but again I'm not sure how to connect the two drivers.

I've been browsing the QEMU source code, the Windows PV source code, the Xen source code, and the "Definitive Guide to the Xen Hypervisor" for answers.  Unfortunately, I am a bit lost.  I'm hoping someone with some experience with shared data communication between Dom0 and DomU can point me at some source files to study in order to figure out how to implement what I'm trying to do.  A tutorial, sample code, and/or general direction would be great.

Thanks for your help,
Christian


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 01:22:55 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 01:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y91oN-0006oh-1G; Thu, 08 Jan 2015 01:22:55 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christian.refvik@onlive.com>)
	id 1Y91oK-0006oZ-Uo; Thu, 08 Jan 2015 01:22:53 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	DB/FF-22819-CEBDDA45; Thu, 08 Jan 2015 01:22:52 +0000
X-Env-Sender: christian.refvik@onlive.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1420680170!13448870!1
X-Originating-IP: [74.85.144.12]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29534 invoked from network); 8 Jan 2015 01:22:51 -0000
Received: from mx01.onlive.com (HELO mx01.onlive.com) (74.85.144.12)
	by server-15.tower-206.messagelabs.com with SMTP;
	8 Jan 2015 01:22:51 -0000
X-IronPort-AV: E=Sophos;i="5.07,718,1413270000"; 
   d="scan'208";a="4745439"
Received: from unknown (HELO CAS02.onlive.corp) ([74.85.144.1])
	by mx01.onlive.com with ESMTP; 07 Jan 2015 17:22:34 -0800
Received: from MAILBOX02.onlive.corp ([fe80::d46a:1f25:4cee:4678]) by
	CAS02.onlive.corp ([fe80::c0c:ea60:8aa8:29d5%11]) with mapi id
	14.01.0355.002; Wed, 7 Jan 2015 17:22:34 -0800
From: Christian Refvik <christian.refvik@onlive.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Mapping Data between Dom0 and DomU
Thread-Index: AdAq4UTyNIWz0GXOTAqto30JO29UIQ==
Date: Thu, 8 Jan 2015 01:22:34 +0000
Message-ID: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.16.72.185]
MIME-Version: 1.0
Subject: [win-pv-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Hello,

My name is Christian and I am new to Xen development, and I've been struggling a bit.  I'm trying to develop a device driver so that a Windows 2012 Server VM  has a way to send about 10MB of data to a CentOS VM.  There is no real device on the backend, I just need a way to constantly send a large buffer between DomU and Dom0 using a zero copy solution.

I wrote a Linux device driver (simple char device) in Dom0 which allocates the memory and reserves the pages.  However, I'm not sure how to offer these pages to the Windows VM.  I also have a Windows device driver that I've installed in the Windows VM, but again I'm not sure how to connect the two drivers.

I've been browsing the QEMU source code, the Windows PV source code, the Xen source code, and the "Definitive Guide to the Xen Hypervisor" for answers.  Unfortunately, I am a bit lost.  I'm hoping someone with some experience with shared data communication between Dom0 and DomU can point me at some source files to study in order to figure out how to implement what I'm trying to do.  A tutorial, sample code, and/or general direction would be great.

Thanks for your help,
Christian


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 09:58:19 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 09:58:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y99r9-0006nG-BI; Thu, 08 Jan 2015 09:58:19 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hanjiunit@gmail.com>) id 1Y8ykN-0000ds-9i
	for win-pv-devel@lists.xenproject.org; Wed, 07 Jan 2015 22:06:35 +0000
Received: from [85.158.139.211] by server-14.bemta-5.messagelabs.com id
	A6/13-19763-AEDADA45; Wed, 07 Jan 2015 22:06:34 +0000
X-Env-Sender: hanjiunit@gmail.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1420668393!11382477!1
X-Originating-IP: [74.125.82.49]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21594 invoked from network); 7 Jan 2015 22:06:33 -0000
Received: from mail-wg0-f49.google.com (HELO mail-wg0-f49.google.com)
	(74.125.82.49)
	by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	7 Jan 2015 22:06:33 -0000
Received: by mail-wg0-f49.google.com with SMTP id n12so1991553wgh.22
	for <win-pv-devel@lists.xenproject.org>;
	Wed, 07 Jan 2015 14:06:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=UTkIF9tXgD3yzM2lktDF1ZCHlmNupPNMiqKSybrblhg=;
	b=IzjSfXO5Jb2s+6sXdm+W18Vlky6CqpBZjgB/KXA9c8rMVGIH0pl6cNsTxzGLYIQq2h
	M+33CsTSkNA5GYFFyrrGwso45/2whm4WnurMrauSnqd5QuWK5HHziEAVi8aMuJ0MBiEl
	wRdHTB6HmDyti2skaLPi7LnStK1s4TTW5ae9jBjz5dNeQ6yczT8l6fveSUEMGI12kHKt
	v7cIMd4RRuvvN0l0aVIEaul546lKHUhXwTJPeUj0KsvJGxj1cGZ4DayoCC9dMOL1q+rq
	OOBRKgLmnnenblICjWiP+NeCOvxRdxKFsNa4f0kz8EhYHV88yHa0xBuqnOaOBvaLWMpV
	Tatg==
MIME-Version: 1.0
X-Received: by 10.180.21.225 with SMTP id y1mr51659589wie.42.1420668393528;
	Wed, 07 Jan 2015 14:06:33 -0800 (PST)
Received: by 10.216.114.8 with HTTP; Wed, 7 Jan 2015 14:06:33 -0800 (PST)
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257AF4EF@AMSPEX01CL01.citrite.net>
References: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257AF4EF@AMSPEX01CL01.citrite.net>
Date: Wed, 7 Jan 2015 17:06:33 -0500
Message-ID: <CA+J4q6e_OrYFrthHJE9R-K4Zx8Yw2RLKt6+W1GzieTqhu9+ETQ@mail.gmail.com>
From: hanji unit <hanjiunit@gmail.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
X-Mailman-Approved-At: Thu, 08 Jan 2015 09:58:18 +0000
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] XenBus_AddWatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Yea, I debugged through Harper's code and it seems like the error
response is coming from XenStore on Dom0. Ive been looking at it, and
OXenStored is running on Dom0. Of all the languages possible, they
decided to write xenstore in OCaml. I am not very good at OCaml and
dont know anyone that is, so I could work with someone to help them
fix this bug if there is interest.

I cannot watch a xenstore node, even when the DomU that I'm watching
from owns the node and allows full access to everyone else that wants
to access the node. Permissions are "bU" where U is the DomID of the
DomU doing the watching.

Is there any requirement for consistency of programming languages and
use of common languages across the different subprojects in Xen?

On Tue, Jan 6, 2015 at 5:34 AM, Paul Durrant <Paul.Durrant@citrix.com> wrote:
>> -----Original Message-----
>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>> bounces@lists.xenproject.org] On Behalf Of hanji unit
>> Sent: 31 December 2014 15:15
>> To: win-pv-devel@lists.xenproject.org; xen-devel@lists.xen.org
>> Subject: [win-pv-devel] XenBus_AddWatch
>>
>> Hello, I am calling XenBus_AddWatch API from a DomU guest in the
>> win-pvdrivers xenpci driver, and noticed that I am not able to watch
>> xenstore entries that are outside of the DomU's xenstore tree. For
>> example, the following call in
>> XenPci_EvtDeviceD0EntryPostInterruptsEnabled fails with response="EIO"
>> even if the xenstore permissions for Container and Container/DomU in
>> xenstore are both "b0":
>>
>> response = XenBus_AddWatch(xpdd, XN_BASE_GLOBAL,
>> "Container/DomU",
>> MyCallback, xpdd);
>>
>> However, the following call works and it watches a xenstore entry
>> relative to DomUs xenstore tree:
>>
>> response = XenBus_AddWatch(xpdd, XBT_NIL, "DomU", MyCallback, xpdd);
>>
>> Writing to an entry outside the DomUs tree is allowed if permissions are b0:
>>
>> result = XnWriteString(xpdd, XN_BASE_GLOBAL, "Container/DomU", buffer);
>>
>> It seems like DomUs should be allowed to watch xenstore entries
>> outside their trees. Is this a bug or is it by design?
>
> Hi,
>
>   The API you're referring to is part of James Harper's GPLPV drivers I believe, which I'm no expert on. I would imagine the API simply passes error codes back from xenstored though so you should probably check xenstored-access.log, although EIO does sound like an odd code to get back.
>
>   Paul
>
>>
>> Thanks.
>>
>> _______________________________________________
>> win-pv-devel mailing list
>> win-pv-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 09:58:19 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 09:58:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y99r9-0006nO-DD; Thu, 08 Jan 2015 09:58:19 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Ian.Campbell@citrix.com>)
	id 1Y98wG-0003oG-8D; Thu, 08 Jan 2015 08:59:32 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	DA/BD-28296-3F64EA45; Thu, 08 Jan 2015 08:59:31 +0000
X-Env-Sender: Ian.Campbell@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1420707568!18084385!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4392 invoked from network); 8 Jan 2015 08:59:30 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Jan 2015 08:59:30 -0000
X-IronPort-AV: E=Sophos;i="5.07,721,1413244800"; d="scan'208";a="213152969"
Message-ID: <1420707552.11796.60.camel@citrix.com>
From: Ian Campbell <Ian.Campbell@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Date: Thu, 8 Jan 2015 08:59:12 +0000
In-Reply-To: <54ADE500.4080003@citrix.com>
References: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
	<54ADE500.4080003@citrix.com>
Organization: Citrix Systems, Inc.
X-Mailer: Evolution 3.12.9-1 
MIME-Version: 1.0
X-DLP: MIA1
X-Mailman-Approved-At: Thu, 08 Jan 2015 09:58:18 +0000
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	Christian Refvik <christian.refvik@onlive.com>
Subject: Re: [win-pv-devel] [Xen-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

On Thu, 2015-01-08 at 02:01 +0000, Andrew Cooper wrote:
> A relevant bit of code to look at would be tools/libvchan/ , which as
> far as I am aware does pretty much what you describe (but without the
> windows support).

Adding a libvchan front and/or backend driver to the Windows PV drivers
would be a very useful contribution to the project IMHO.

Ian.


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 09:58:19 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 09:58:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y99r9-0006nK-CG; Thu, 08 Jan 2015 09:58:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc96@hermes.cam.ac.uk>)
	id 1Y92Q0-0000HK-9H; Thu, 08 Jan 2015 02:01:48 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
	30/82-03145-B05EDA45; Thu, 08 Jan 2015 02:01:47 +0000
X-Env-Sender: amc96@hermes.cam.ac.uk
X-Msg-Ref: server-3.tower-27.messagelabs.com!1420682506!14456895!1
X-Originating-IP: [131.111.8.150]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MCA9PiAxNDk0MDU=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8478 invoked from network); 8 Jan 2015 02:01:47 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 8 Jan 2015 02:01:47 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from client-86-23-18-109.brhm.adsl.virginm.net ([86.23.18.109]:62392
	helo=[192.168.1.193])
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587)
	with esmtpsa (PLAIN:amc96) (TLSv1.2:DHE-RSA-AES128-SHA:128)
	id 1Y92Ps-0007RA-q9 (Exim 4.82_3-c0e5623)
	(return-path <amc96@hermes.cam.ac.uk>); Thu, 08 Jan 2015 02:01:45 +0000
Message-ID: <54ADE500.4080003@citrix.com>
Date: Thu, 08 Jan 2015 02:01:36 +0000
From: Andrew Cooper <andrew.cooper3@citrix.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Christian Refvik <christian.refvik@onlive.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
In-Reply-To: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
X-Mailman-Approved-At: Thu, 08 Jan 2015 09:58:18 +0000
Subject: Re: [win-pv-devel] [Xen-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

On 08/01/2015 01:22, Christian Refvik wrote:
> Hello,
>
> My name is Christian and I am new to Xen development, and I've been struggling a bit.  I'm trying to develop a device driver so that a Windows 2012 Server VM  has a way to send about 10MB of data to a CentOS VM.  There is no real device on the backend, I just need a way to constantly send a large buffer between DomU and Dom0 using a zero copy solution.
>
> I wrote a Linux device driver (simple char device) in Dom0 which allocates the memory and reserves the pages.  However, I'm not sure how to offer these pages to the Windows VM.  I also have a Windows device driver that I've installed in the Windows VM, but again I'm not sure how to connect the two drivers.
>
> I've been browsing the QEMU source code, the Windows PV source code, the Xen source code, and the "Definitive Guide to the Xen Hypervisor" for answers.  Unfortunately, I am a bit lost.  I'm hoping someone with some experience with shared data communication between Dom0 and DomU can point me at some source files to study in order to figure out how to implement what I'm trying to do.  A tutorial, sample code, and/or general direction would be great.
>
> Thanks for your help,
> Christian

You will want to use grants, and in particular grant mappings, which is
the Xen interface for creating shared memory between VMs.

The basic premise is that domain A nominates some of its pages to be
grantable.  Domain A gives the grant references to domain B (usually
negotiated via xenstore), which allows domain B to make a mapping of
domain A's nominated pages.

A relevant bit of code to look at would be tools/libvchan/ , which as
far as I am aware does pretty much what you describe (but without the
windows support).

~Andrew

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 09:58:19 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 09:58:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y99r9-0006nK-CG; Thu, 08 Jan 2015 09:58:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc96@hermes.cam.ac.uk>)
	id 1Y92Q0-0000HK-9H; Thu, 08 Jan 2015 02:01:48 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
	30/82-03145-B05EDA45; Thu, 08 Jan 2015 02:01:47 +0000
X-Env-Sender: amc96@hermes.cam.ac.uk
X-Msg-Ref: server-3.tower-27.messagelabs.com!1420682506!14456895!1
X-Originating-IP: [131.111.8.150]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MCA9PiAxNDk0MDU=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8478 invoked from network); 8 Jan 2015 02:01:47 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 8 Jan 2015 02:01:47 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from client-86-23-18-109.brhm.adsl.virginm.net ([86.23.18.109]:62392
	helo=[192.168.1.193])
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587)
	with esmtpsa (PLAIN:amc96) (TLSv1.2:DHE-RSA-AES128-SHA:128)
	id 1Y92Ps-0007RA-q9 (Exim 4.82_3-c0e5623)
	(return-path <amc96@hermes.cam.ac.uk>); Thu, 08 Jan 2015 02:01:45 +0000
Message-ID: <54ADE500.4080003@citrix.com>
Date: Thu, 08 Jan 2015 02:01:36 +0000
From: Andrew Cooper <andrew.cooper3@citrix.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Christian Refvik <christian.refvik@onlive.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
In-Reply-To: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
X-Mailman-Approved-At: Thu, 08 Jan 2015 09:58:18 +0000
Subject: Re: [win-pv-devel] [Xen-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

On 08/01/2015 01:22, Christian Refvik wrote:
> Hello,
>
> My name is Christian and I am new to Xen development, and I've been struggling a bit.  I'm trying to develop a device driver so that a Windows 2012 Server VM  has a way to send about 10MB of data to a CentOS VM.  There is no real device on the backend, I just need a way to constantly send a large buffer between DomU and Dom0 using a zero copy solution.
>
> I wrote a Linux device driver (simple char device) in Dom0 which allocates the memory and reserves the pages.  However, I'm not sure how to offer these pages to the Windows VM.  I also have a Windows device driver that I've installed in the Windows VM, but again I'm not sure how to connect the two drivers.
>
> I've been browsing the QEMU source code, the Windows PV source code, the Xen source code, and the "Definitive Guide to the Xen Hypervisor" for answers.  Unfortunately, I am a bit lost.  I'm hoping someone with some experience with shared data communication between Dom0 and DomU can point me at some source files to study in order to figure out how to implement what I'm trying to do.  A tutorial, sample code, and/or general direction would be great.
>
> Thanks for your help,
> Christian

You will want to use grants, and in particular grant mappings, which is
the Xen interface for creating shared memory between VMs.

The basic premise is that domain A nominates some of its pages to be
grantable.  Domain A gives the grant references to domain B (usually
negotiated via xenstore), which allows domain B to make a mapping of
domain A's nominated pages.

A relevant bit of code to look at would be tools/libvchan/ , which as
far as I am aware does pretty much what you describe (but without the
windows support).

~Andrew

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 09:58:19 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 09:58:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y99r9-0006nO-DD; Thu, 08 Jan 2015 09:58:19 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Ian.Campbell@citrix.com>)
	id 1Y98wG-0003oG-8D; Thu, 08 Jan 2015 08:59:32 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	DA/BD-28296-3F64EA45; Thu, 08 Jan 2015 08:59:31 +0000
X-Env-Sender: Ian.Campbell@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1420707568!18084385!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4392 invoked from network); 8 Jan 2015 08:59:30 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Jan 2015 08:59:30 -0000
X-IronPort-AV: E=Sophos;i="5.07,721,1413244800"; d="scan'208";a="213152969"
Message-ID: <1420707552.11796.60.camel@citrix.com>
From: Ian Campbell <Ian.Campbell@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Date: Thu, 8 Jan 2015 08:59:12 +0000
In-Reply-To: <54ADE500.4080003@citrix.com>
References: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
	<54ADE500.4080003@citrix.com>
Organization: Citrix Systems, Inc.
X-Mailer: Evolution 3.12.9-1 
MIME-Version: 1.0
X-DLP: MIA1
X-Mailman-Approved-At: Thu, 08 Jan 2015 09:58:18 +0000
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	Christian Refvik <christian.refvik@onlive.com>
Subject: Re: [win-pv-devel] [Xen-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

On Thu, 2015-01-08 at 02:01 +0000, Andrew Cooper wrote:
> A relevant bit of code to look at would be tools/libvchan/ , which as
> far as I am aware does pretty much what you describe (but without the
> windows support).

Adding a libvchan front and/or backend driver to the Windows PV drivers
would be a very useful contribution to the project IMHO.

Ian.


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 09:58:19 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 09:58:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y99r9-0006nG-BI; Thu, 08 Jan 2015 09:58:19 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hanjiunit@gmail.com>) id 1Y8ykN-0000ds-9i
	for win-pv-devel@lists.xenproject.org; Wed, 07 Jan 2015 22:06:35 +0000
Received: from [85.158.139.211] by server-14.bemta-5.messagelabs.com id
	A6/13-19763-AEDADA45; Wed, 07 Jan 2015 22:06:34 +0000
X-Env-Sender: hanjiunit@gmail.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1420668393!11382477!1
X-Originating-IP: [74.125.82.49]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21594 invoked from network); 7 Jan 2015 22:06:33 -0000
Received: from mail-wg0-f49.google.com (HELO mail-wg0-f49.google.com)
	(74.125.82.49)
	by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	7 Jan 2015 22:06:33 -0000
Received: by mail-wg0-f49.google.com with SMTP id n12so1991553wgh.22
	for <win-pv-devel@lists.xenproject.org>;
	Wed, 07 Jan 2015 14:06:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=UTkIF9tXgD3yzM2lktDF1ZCHlmNupPNMiqKSybrblhg=;
	b=IzjSfXO5Jb2s+6sXdm+W18Vlky6CqpBZjgB/KXA9c8rMVGIH0pl6cNsTxzGLYIQq2h
	M+33CsTSkNA5GYFFyrrGwso45/2whm4WnurMrauSnqd5QuWK5HHziEAVi8aMuJ0MBiEl
	wRdHTB6HmDyti2skaLPi7LnStK1s4TTW5ae9jBjz5dNeQ6yczT8l6fveSUEMGI12kHKt
	v7cIMd4RRuvvN0l0aVIEaul546lKHUhXwTJPeUj0KsvJGxj1cGZ4DayoCC9dMOL1q+rq
	OOBRKgLmnnenblICjWiP+NeCOvxRdxKFsNa4f0kz8EhYHV88yHa0xBuqnOaOBvaLWMpV
	Tatg==
MIME-Version: 1.0
X-Received: by 10.180.21.225 with SMTP id y1mr51659589wie.42.1420668393528;
	Wed, 07 Jan 2015 14:06:33 -0800 (PST)
Received: by 10.216.114.8 with HTTP; Wed, 7 Jan 2015 14:06:33 -0800 (PST)
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257AF4EF@AMSPEX01CL01.citrite.net>
References: <CA+J4q6damheMoEXQq4YmvPY8cidMADwhrrVbcb+MkQ9OKsaucA@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257AF4EF@AMSPEX01CL01.citrite.net>
Date: Wed, 7 Jan 2015 17:06:33 -0500
Message-ID: <CA+J4q6e_OrYFrthHJE9R-K4Zx8Yw2RLKt6+W1GzieTqhu9+ETQ@mail.gmail.com>
From: hanji unit <hanjiunit@gmail.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
X-Mailman-Approved-At: Thu, 08 Jan 2015 09:58:18 +0000
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [win-pv-devel] XenBus_AddWatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Yea, I debugged through Harper's code and it seems like the error
response is coming from XenStore on Dom0. Ive been looking at it, and
OXenStored is running on Dom0. Of all the languages possible, they
decided to write xenstore in OCaml. I am not very good at OCaml and
dont know anyone that is, so I could work with someone to help them
fix this bug if there is interest.

I cannot watch a xenstore node, even when the DomU that I'm watching
from owns the node and allows full access to everyone else that wants
to access the node. Permissions are "bU" where U is the DomID of the
DomU doing the watching.

Is there any requirement for consistency of programming languages and
use of common languages across the different subprojects in Xen?

On Tue, Jan 6, 2015 at 5:34 AM, Paul Durrant <Paul.Durrant@citrix.com> wrote:
>> -----Original Message-----
>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>> bounces@lists.xenproject.org] On Behalf Of hanji unit
>> Sent: 31 December 2014 15:15
>> To: win-pv-devel@lists.xenproject.org; xen-devel@lists.xen.org
>> Subject: [win-pv-devel] XenBus_AddWatch
>>
>> Hello, I am calling XenBus_AddWatch API from a DomU guest in the
>> win-pvdrivers xenpci driver, and noticed that I am not able to watch
>> xenstore entries that are outside of the DomU's xenstore tree. For
>> example, the following call in
>> XenPci_EvtDeviceD0EntryPostInterruptsEnabled fails with response="EIO"
>> even if the xenstore permissions for Container and Container/DomU in
>> xenstore are both "b0":
>>
>> response = XenBus_AddWatch(xpdd, XN_BASE_GLOBAL,
>> "Container/DomU",
>> MyCallback, xpdd);
>>
>> However, the following call works and it watches a xenstore entry
>> relative to DomUs xenstore tree:
>>
>> response = XenBus_AddWatch(xpdd, XBT_NIL, "DomU", MyCallback, xpdd);
>>
>> Writing to an entry outside the DomUs tree is allowed if permissions are b0:
>>
>> result = XnWriteString(xpdd, XN_BASE_GLOBAL, "Container/DomU", buffer);
>>
>> It seems like DomUs should be allowed to watch xenstore entries
>> outside their trees. Is this a bug or is it by design?
>
> Hi,
>
>   The API you're referring to is part of James Harper's GPLPV drivers I believe, which I'm no expert on. I would imagine the API simply passes error codes back from xenstored though so you should probably check xenstored-access.log, although EIO does sound like an odd code to get back.
>
>   Paul
>
>>
>> Thanks.
>>
>> _______________________________________________
>> win-pv-devel mailing list
>> win-pv-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 10:20:36 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 10:20:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9ACi-0007vM-PH; Thu, 08 Jan 2015 10:20:36 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>)
	id 1Y9ACi-0007vE-8k; Thu, 08 Jan 2015 10:20:36 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	F5/FD-11608-3F95EA45; Thu, 08 Jan 2015 10:20:35 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-31.messagelabs.com!1420712434!18039797!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1819 invoked from network); 8 Jan 2015 10:20:34 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Jan 2015 10:20:34 -0000
X-IronPort-AV: E=Sophos;i="5.07,721,1413244800"; d="scan'208";a="28451386"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Christian Refvik <christian.refvik@onlive.com>
Thread-Topic: [Xen-devel] Mapping Data between Dom0 and DomU
Thread-Index: AdAq4UTyNIWz0GXOTAqto30JO29UIf//+sMAgAB0rQD//94VUA==
Date: Thu, 8 Jan 2015 10:20:33 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257B4EDC@AMSPEX01CL01.citrite.net>
References: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
	<54ADE500.4080003@citrix.com> <1420707552.11796.60.camel@citrix.com>
In-Reply-To: <1420707552.11796.60.camel@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Andrew Cooper <Andrew.Cooper3@citrix.com>
Subject: Re: [win-pv-devel] [Xen-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: xen-devel-bounces@lists.xen.org [mailto:xen-devel-
> bounces@lists.xen.org] On Behalf Of Ian Campbell
> Sent: 08 January 2015 08:59
> To: Andrew Cooper
> Cc: xen-devel@lists.xenproject.org; win-pv-devel@lists.xenproject.org;
> Christian Refvik
> Subject: Re: [Xen-devel] Mapping Data between Dom0 and DomU
> 
> On Thu, 2015-01-08 at 02:01 +0000, Andrew Cooper wrote:
> > A relevant bit of code to look at would be tools/libvchan/ , which as
> > far as I am aware does pretty much what you describe (but without the
> > windows support).
> 
> Adding a libvchan front and/or backend driver to the Windows PV drivers
> would be a very useful contribution to the project IMHO.
> 

A big +1 from me. If you need any assistance then please join the win-pv-devel mailing list and we can give you some pointers. There are already Windows kernel PV interfaces for many Xen features.

  Cheers,

    Paul

> Ian.
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 10:20:36 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 10:20:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9ACi-0007vM-PH; Thu, 08 Jan 2015 10:20:36 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>)
	id 1Y9ACi-0007vE-8k; Thu, 08 Jan 2015 10:20:36 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	F5/FD-11608-3F95EA45; Thu, 08 Jan 2015 10:20:35 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-31.messagelabs.com!1420712434!18039797!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1819 invoked from network); 8 Jan 2015 10:20:34 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Jan 2015 10:20:34 -0000
X-IronPort-AV: E=Sophos;i="5.07,721,1413244800"; d="scan'208";a="28451386"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Christian Refvik <christian.refvik@onlive.com>
Thread-Topic: [Xen-devel] Mapping Data between Dom0 and DomU
Thread-Index: AdAq4UTyNIWz0GXOTAqto30JO29UIf//+sMAgAB0rQD//94VUA==
Date: Thu, 8 Jan 2015 10:20:33 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257B4EDC@AMSPEX01CL01.citrite.net>
References: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
	<54ADE500.4080003@citrix.com> <1420707552.11796.60.camel@citrix.com>
In-Reply-To: <1420707552.11796.60.camel@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Andrew Cooper <Andrew.Cooper3@citrix.com>
Subject: Re: [win-pv-devel] [Xen-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: xen-devel-bounces@lists.xen.org [mailto:xen-devel-
> bounces@lists.xen.org] On Behalf Of Ian Campbell
> Sent: 08 January 2015 08:59
> To: Andrew Cooper
> Cc: xen-devel@lists.xenproject.org; win-pv-devel@lists.xenproject.org;
> Christian Refvik
> Subject: Re: [Xen-devel] Mapping Data between Dom0 and DomU
> 
> On Thu, 2015-01-08 at 02:01 +0000, Andrew Cooper wrote:
> > A relevant bit of code to look at would be tools/libvchan/ , which as
> > far as I am aware does pretty much what you describe (but without the
> > windows support).
> 
> Adding a libvchan front and/or backend driver to the Windows PV drivers
> would be a very useful contribution to the project IMHO.
> 

A big +1 from me. If you need any assistance then please join the win-pv-devel mailing list and we can give you some pointers. There are already Windows kernel PV interfaces for many Xen features.

  Cheers,

    Paul

> Ian.
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 15:24:44 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 15:24:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9Ex2-0008Dc-7u; Thu, 08 Jan 2015 15:24:44 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y9Ex1-0008DF-26
	for win-pv-devel@lists.xenproject.org; Thu, 08 Jan 2015 15:24:43 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	54/BB-27623-A31AEA45; Thu, 08 Jan 2015 15:24:42 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1420730679!18220664!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25307 invoked from network); 8 Jan 2015 15:24:41 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Jan 2015 15:24:41 -0000
X-IronPort-AV: E=Sophos;i="5.07,723,1413244800"; d="scan'208";a="213378413"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.78) with Microsoft SMTP Server id 14.3.210.2;
	Thu, 8 Jan 2015 10:23:58 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1Y9EwI-0003ct-BB;
	Thu, 08 Jan 2015 15:23:58 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Thu, 8 Jan 2015 15:24:21 +0000
Message-ID: <1420730661-4932-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Handle storage query ioctls properly
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Both the ioctls we care about are METHOD_BUFFERED so ASSERT that and then
use the associated IRP SystemBuffer, remembering to verify input and output
sizes.
Also we should only return (or expect returned) data in the case of a full
query, as opposed to an existence query.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xendisk/pdo.c | 64 +++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 46 insertions(+), 18 deletions(-)

diff --git a/src/xendisk/pdo.c b/src/xendisk/pdo.c
index 47559ba..fe11e18 100644
--- a/src/xendisk/pdo.c
+++ b/src/xendisk/pdo.c
@@ -380,7 +380,10 @@ __PdoQueryProperty(
     if (!NT_SUCCESS(Irp->IoStatus.Status))
         goto done;
 
-    Descriptor = Irp->UserBuffer;
+    if (Irp->IoStatus.Information != (ULONG_PTR)sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR))
+        goto done;
+
+    Descriptor = Irp->AssociatedIrp.SystemBuffer;
     Pdo->SectorSize = Descriptor->BytesPerLogicalSector;
     Verbose("%p : %u bytes per sector\n", Pdo->Dx->DeviceObject, Pdo->SectorSize);
 
@@ -392,37 +395,58 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryProperty(
-    IN  PXENDISK_PDO    Pdo,
-    IN  PIRP            Irp
+    IN  PXENDISK_PDO        Pdo,
+    IN  PIRP                Irp
     )
 {
+    PIO_STACK_LOCATION      StackLocation;
     PSTORAGE_PROPERTY_QUERY Query;
-    PDEVICE_TRIM_DESCRIPTOR Trim;
     NTSTATUS                status;
 
+    StackLocation = IoGetCurrentIrpStackLocation(Irp);
+
+    if (StackLocation->Parameters.DeviceIoControl.InputBufferLength <
+        sizeof (STORAGE_PROPERTY_QUERY))
+        return PdoCompleteIrp(Pdo, Irp, STATUS_INFO_LENGTH_MISMATCH);
+
     Query = Irp->AssociatedIrp.SystemBuffer;
 
     switch (Query->PropertyId) {
     case StorageAccessAlignmentProperty:
-        IoCopyCurrentIrpStackLocationToNext(Irp);
-        IoSetCompletionRoutine(Irp,
-                                __PdoQueryProperty,
-                                Pdo,
-                                TRUE,
-                                TRUE,
-                                TRUE);
-
-        status = IoCallDriver(Pdo->LowerDeviceObject, Irp);
+        if (Query->QueryType == PropertyStandardQuery) {
+            IoCopyCurrentIrpStackLocationToNext(Irp);
+            IoSetCompletionRoutine(Irp,
+                                   __PdoQueryProperty,
+                                   Pdo,
+                                   TRUE,
+                                   TRUE,
+                                   TRUE);
+
+            status = IoCallDriver(Pdo->LowerDeviceObject, Irp);
+        } else {
+            status = PdoForwardIrpAndForget(Pdo, Irp);
+        }
         break;
 
     case StorageDeviceTrimProperty:
-        Trim = Irp->AssociatedIrp.SystemBuffer;
+        if (Query->QueryType == PropertyStandardQuery) {
+            PDEVICE_TRIM_DESCRIPTOR Trim;
 
-        Trim->Version = 0;
-        Trim->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
-        Trim->TrimEnabled = TRUE;
+            if (StackLocation->Parameters.DeviceIoControl.OutputBufferLength <
+                sizeof (DEVICE_TRIM_DESCRIPTOR))
+                return PdoCompleteIrp(Pdo, Irp, STATUS_BUFFER_OVERFLOW);
+
+            Trim = Irp->AssociatedIrp.SystemBuffer;
+
+            Trim->Version = 0;
+            Trim->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
+            Trim->TrimEnabled = TRUE;
+
+            Irp->IoStatus.Information = (ULONG_PTR)sizeof(DEVICE_TRIM_DESCRIPTOR);
+        } else {
+            Irp->IoStatus.Information = 0;
+        }
 
-        Irp->IoStatus.Information = (ULONG_PTR)sizeof(DEVICE_TRIM_DESCRIPTOR);
         status = PdoCompleteIrp(Pdo, Irp, STATUS_SUCCESS);
         break;
 
@@ -646,6 +670,7 @@ PdoDispatchControl(
 {
     PIO_STACK_LOCATION  StackLocation;
     ULONG               ControlCode;
+    ULONG               Method;
     NTSTATUS            status;
 
     status = IoAcquireRemoveLock(&Pdo->Dx->RemoveLock, Irp);
@@ -654,13 +679,16 @@ PdoDispatchControl(
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     ControlCode = StackLocation->Parameters.DeviceIoControl.IoControlCode;
+    Method = METHOD_FROM_CTL_CODE(ControlCode);
 
     switch (ControlCode) {
     case IOCTL_STORAGE_QUERY_PROPERTY:
+        ASSERT(Method == METHOD_BUFFERED);
         status = PdoQueryProperty(Pdo, Irp);
         break;
 
     case IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES:
+        ASSERT(Method == METHOD_BUFFERED);
         status = PdoManageDataSetAttributes(Pdo, Irp);
         break;
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 15:24:44 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 15:24:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9Ex2-0008Dc-7u; Thu, 08 Jan 2015 15:24:44 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y9Ex1-0008DF-26
	for win-pv-devel@lists.xenproject.org; Thu, 08 Jan 2015 15:24:43 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	54/BB-27623-A31AEA45; Thu, 08 Jan 2015 15:24:42 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1420730679!18220664!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25307 invoked from network); 8 Jan 2015 15:24:41 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Jan 2015 15:24:41 -0000
X-IronPort-AV: E=Sophos;i="5.07,723,1413244800"; d="scan'208";a="213378413"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.78) with Microsoft SMTP Server id 14.3.210.2;
	Thu, 8 Jan 2015 10:23:58 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1Y9EwI-0003ct-BB;
	Thu, 08 Jan 2015 15:23:58 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Thu, 8 Jan 2015 15:24:21 +0000
Message-ID: <1420730661-4932-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Handle storage query ioctls properly
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Both the ioctls we care about are METHOD_BUFFERED so ASSERT that and then
use the associated IRP SystemBuffer, remembering to verify input and output
sizes.
Also we should only return (or expect returned) data in the case of a full
query, as opposed to an existence query.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xendisk/pdo.c | 64 +++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 46 insertions(+), 18 deletions(-)

diff --git a/src/xendisk/pdo.c b/src/xendisk/pdo.c
index 47559ba..fe11e18 100644
--- a/src/xendisk/pdo.c
+++ b/src/xendisk/pdo.c
@@ -380,7 +380,10 @@ __PdoQueryProperty(
     if (!NT_SUCCESS(Irp->IoStatus.Status))
         goto done;
 
-    Descriptor = Irp->UserBuffer;
+    if (Irp->IoStatus.Information != (ULONG_PTR)sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR))
+        goto done;
+
+    Descriptor = Irp->AssociatedIrp.SystemBuffer;
     Pdo->SectorSize = Descriptor->BytesPerLogicalSector;
     Verbose("%p : %u bytes per sector\n", Pdo->Dx->DeviceObject, Pdo->SectorSize);
 
@@ -392,37 +395,58 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryProperty(
-    IN  PXENDISK_PDO    Pdo,
-    IN  PIRP            Irp
+    IN  PXENDISK_PDO        Pdo,
+    IN  PIRP                Irp
     )
 {
+    PIO_STACK_LOCATION      StackLocation;
     PSTORAGE_PROPERTY_QUERY Query;
-    PDEVICE_TRIM_DESCRIPTOR Trim;
     NTSTATUS                status;
 
+    StackLocation = IoGetCurrentIrpStackLocation(Irp);
+
+    if (StackLocation->Parameters.DeviceIoControl.InputBufferLength <
+        sizeof (STORAGE_PROPERTY_QUERY))
+        return PdoCompleteIrp(Pdo, Irp, STATUS_INFO_LENGTH_MISMATCH);
+
     Query = Irp->AssociatedIrp.SystemBuffer;
 
     switch (Query->PropertyId) {
     case StorageAccessAlignmentProperty:
-        IoCopyCurrentIrpStackLocationToNext(Irp);
-        IoSetCompletionRoutine(Irp,
-                                __PdoQueryProperty,
-                                Pdo,
-                                TRUE,
-                                TRUE,
-                                TRUE);
-
-        status = IoCallDriver(Pdo->LowerDeviceObject, Irp);
+        if (Query->QueryType == PropertyStandardQuery) {
+            IoCopyCurrentIrpStackLocationToNext(Irp);
+            IoSetCompletionRoutine(Irp,
+                                   __PdoQueryProperty,
+                                   Pdo,
+                                   TRUE,
+                                   TRUE,
+                                   TRUE);
+
+            status = IoCallDriver(Pdo->LowerDeviceObject, Irp);
+        } else {
+            status = PdoForwardIrpAndForget(Pdo, Irp);
+        }
         break;
 
     case StorageDeviceTrimProperty:
-        Trim = Irp->AssociatedIrp.SystemBuffer;
+        if (Query->QueryType == PropertyStandardQuery) {
+            PDEVICE_TRIM_DESCRIPTOR Trim;
 
-        Trim->Version = 0;
-        Trim->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
-        Trim->TrimEnabled = TRUE;
+            if (StackLocation->Parameters.DeviceIoControl.OutputBufferLength <
+                sizeof (DEVICE_TRIM_DESCRIPTOR))
+                return PdoCompleteIrp(Pdo, Irp, STATUS_BUFFER_OVERFLOW);
+
+            Trim = Irp->AssociatedIrp.SystemBuffer;
+
+            Trim->Version = 0;
+            Trim->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
+            Trim->TrimEnabled = TRUE;
+
+            Irp->IoStatus.Information = (ULONG_PTR)sizeof(DEVICE_TRIM_DESCRIPTOR);
+        } else {
+            Irp->IoStatus.Information = 0;
+        }
 
-        Irp->IoStatus.Information = (ULONG_PTR)sizeof(DEVICE_TRIM_DESCRIPTOR);
         status = PdoCompleteIrp(Pdo, Irp, STATUS_SUCCESS);
         break;
 
@@ -646,6 +670,7 @@ PdoDispatchControl(
 {
     PIO_STACK_LOCATION  StackLocation;
     ULONG               ControlCode;
+    ULONG               Method;
     NTSTATUS            status;
 
     status = IoAcquireRemoveLock(&Pdo->Dx->RemoveLock, Irp);
@@ -654,13 +679,16 @@ PdoDispatchControl(
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     ControlCode = StackLocation->Parameters.DeviceIoControl.IoControlCode;
+    Method = METHOD_FROM_CTL_CODE(ControlCode);
 
     switch (ControlCode) {
     case IOCTL_STORAGE_QUERY_PROPERTY:
+        ASSERT(Method == METHOD_BUFFERED);
         status = PdoQueryProperty(Pdo, Irp);
         break;
 
     case IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES:
+        ASSERT(Method == METHOD_BUFFERED);
         status = PdoManageDataSetAttributes(Pdo, Irp);
         break;
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 19:26:14 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 19:26:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9Iik-0000mx-9s; Thu, 08 Jan 2015 19:26:14 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christian.refvik@onlive.com>)
	id 1Y9Iij-0000mp-FR; Thu, 08 Jan 2015 19:26:13 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	96/AD-22777-4D9DEA45; Thu, 08 Jan 2015 19:26:12 +0000
X-Env-Sender: christian.refvik@onlive.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1420745171!16997406!1
X-Originating-IP: [74.85.144.12]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25243 invoked from network); 8 Jan 2015 19:26:11 -0000
Received: from mx01.onlive.com (HELO mx01.onlive.com) (74.85.144.12)
	by server-2.tower-206.messagelabs.com with SMTP;
	8 Jan 2015 19:26:11 -0000
X-IronPort-AV: E=Sophos;i="5.07,724,1413270000"; 
   d="scan'208";a="4747957"
Received: from unknown (HELO cas01.onlive.corp) ([74.85.144.1])
	by mx01.onlive.com with ESMTP; 08 Jan 2015 11:26:10 -0800
Received: from MAILBOX02.onlive.corp ([fe80::d46a:1f25:4cee:4678]) by
	cas01.onlive.corp ([fe80::6ca0:ba08:9e39:f6ca%11]) with mapi id
	14.01.0355.002; Thu, 8 Jan 2015 11:26:10 -0800
From: Christian Refvik <christian.refvik@onlive.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Thread-Topic: [Xen-devel] Mapping Data between Dom0 and DomU
Thread-Index: AdAq4UTyNIWz0GXOTAqto30JO29UIQASNGQAAA6VogAAAtdTgAAB0HFg
Date: Thu, 8 Jan 2015 19:26:09 +0000
Message-ID: <B4DC7AAB07005D4DA887F0BE517884F2A245E1@mailbox02.onlive.corp>
References: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
	<54ADE500.4080003@citrix.com> <1420707552.11796.60.camel@citrix.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257B4EDC@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257B4EDC@AMSPEX01CL01.citrite.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.16.72.185]
MIME-Version: 1.0
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Andrew Cooper <Andrew.Cooper3@citrix.com>
Subject: Re: [win-pv-devel] [Xen-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Andrew, Ian, and Paul - thanks so much for the help.  I need to study the code and I'll try to get a channel going between two Linux VMs.  Latency and performance are critical (~500 MB/s), so I'll probably have more questions about best practices for large data buffers.  However, once I have a working solution for Linux, I'll work with Paul (and the Windows PV developers) to use the current Windows PV interfaces to generate a solution between Windows Server 2012 and Linux.

Thanks for the help,
Christian

-----Original Message-----
From: Paul Durrant [mailto:Paul.Durrant@citrix.com] 
Sent: Thursday, January 8, 2015 2:21 AM
To: Christian Refvik
Cc: xen-devel@lists.xenproject.org; win-pv-devel@lists.xenproject.org; Andrew Cooper; Ian Campbell
Subject: RE: [Xen-devel] Mapping Data between Dom0 and DomU

> -----Original Message-----
> From: xen-devel-bounces@lists.xen.org [mailto:xen-devel- 
> bounces@lists.xen.org] On Behalf Of Ian Campbell
> Sent: 08 January 2015 08:59
> To: Andrew Cooper
> Cc: xen-devel@lists.xenproject.org; win-pv-devel@lists.xenproject.org;
> Christian Refvik
> Subject: Re: [Xen-devel] Mapping Data between Dom0 and DomU
> 
> On Thu, 2015-01-08 at 02:01 +0000, Andrew Cooper wrote:
> > A relevant bit of code to look at would be tools/libvchan/ , which 
> > as far as I am aware does pretty much what you describe (but without 
> > the windows support).
> 
> Adding a libvchan front and/or backend driver to the Windows PV 
> drivers would be a very useful contribution to the project IMHO.
> 

A big +1 from me. If you need any assistance then please join the win-pv-devel mailing list and we can give you some pointers. There are already Windows kernel PV interfaces for many Xen features.

  Cheers,

    Paul

> Ian.
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 08 19:26:14 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 08 Jan 2015 19:26:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9Iik-0000mx-9s; Thu, 08 Jan 2015 19:26:14 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christian.refvik@onlive.com>)
	id 1Y9Iij-0000mp-FR; Thu, 08 Jan 2015 19:26:13 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	96/AD-22777-4D9DEA45; Thu, 08 Jan 2015 19:26:12 +0000
X-Env-Sender: christian.refvik@onlive.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1420745171!16997406!1
X-Originating-IP: [74.85.144.12]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25243 invoked from network); 8 Jan 2015 19:26:11 -0000
Received: from mx01.onlive.com (HELO mx01.onlive.com) (74.85.144.12)
	by server-2.tower-206.messagelabs.com with SMTP;
	8 Jan 2015 19:26:11 -0000
X-IronPort-AV: E=Sophos;i="5.07,724,1413270000"; 
   d="scan'208";a="4747957"
Received: from unknown (HELO cas01.onlive.corp) ([74.85.144.1])
	by mx01.onlive.com with ESMTP; 08 Jan 2015 11:26:10 -0800
Received: from MAILBOX02.onlive.corp ([fe80::d46a:1f25:4cee:4678]) by
	cas01.onlive.corp ([fe80::6ca0:ba08:9e39:f6ca%11]) with mapi id
	14.01.0355.002; Thu, 8 Jan 2015 11:26:10 -0800
From: Christian Refvik <christian.refvik@onlive.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Thread-Topic: [Xen-devel] Mapping Data between Dom0 and DomU
Thread-Index: AdAq4UTyNIWz0GXOTAqto30JO29UIQASNGQAAA6VogAAAtdTgAAB0HFg
Date: Thu, 8 Jan 2015 19:26:09 +0000
Message-ID: <B4DC7AAB07005D4DA887F0BE517884F2A245E1@mailbox02.onlive.corp>
References: <B4DC7AAB07005D4DA887F0BE517884F2A23DD4@mailbox02.onlive.corp>
	<54ADE500.4080003@citrix.com> <1420707552.11796.60.camel@citrix.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257B4EDC@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257B4EDC@AMSPEX01CL01.citrite.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.16.72.185]
MIME-Version: 1.0
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Andrew Cooper <Andrew.Cooper3@citrix.com>
Subject: Re: [win-pv-devel] [Xen-devel] Mapping Data between Dom0 and DomU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Andrew, Ian, and Paul - thanks so much for the help.  I need to study the code and I'll try to get a channel going between two Linux VMs.  Latency and performance are critical (~500 MB/s), so I'll probably have more questions about best practices for large data buffers.  However, once I have a working solution for Linux, I'll work with Paul (and the Windows PV developers) to use the current Windows PV interfaces to generate a solution between Windows Server 2012 and Linux.

Thanks for the help,
Christian

-----Original Message-----
From: Paul Durrant [mailto:Paul.Durrant@citrix.com] 
Sent: Thursday, January 8, 2015 2:21 AM
To: Christian Refvik
Cc: xen-devel@lists.xenproject.org; win-pv-devel@lists.xenproject.org; Andrew Cooper; Ian Campbell
Subject: RE: [Xen-devel] Mapping Data between Dom0 and DomU

> -----Original Message-----
> From: xen-devel-bounces@lists.xen.org [mailto:xen-devel- 
> bounces@lists.xen.org] On Behalf Of Ian Campbell
> Sent: 08 January 2015 08:59
> To: Andrew Cooper
> Cc: xen-devel@lists.xenproject.org; win-pv-devel@lists.xenproject.org;
> Christian Refvik
> Subject: Re: [Xen-devel] Mapping Data between Dom0 and DomU
> 
> On Thu, 2015-01-08 at 02:01 +0000, Andrew Cooper wrote:
> > A relevant bit of code to look at would be tools/libvchan/ , which 
> > as far as I am aware does pretty much what you describe (but without 
> > the windows support).
> 
> Adding a libvchan front and/or backend driver to the Windows PV 
> drivers would be a very useful contribution to the project IMHO.
> 

A big +1 from me. If you need any assistance then please join the win-pv-devel mailing list and we can give you some pointers. There are already Windows kernel PV interfaces for many Xen features.

  Cheers,

    Paul

> Ian.
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 09 16:08:12 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 09 Jan 2015 16:08:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9c6e-0008N3-Dq; Fri, 09 Jan 2015 16:08:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y9c6c-0008Mm-P3
	for win-pv-devel@lists.xenproject.org; Fri, 09 Jan 2015 16:08:11 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	52/05-11608-AECFFA45; Fri, 09 Jan 2015 16:08:10 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-9.tower-31.messagelabs.com!1420819685!14751594!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30529 invoked from network); 9 Jan 2015 16:08:08 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-9.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Jan 2015 16:08:08 -0000
X-IronPort-AV: E=Sophos;i="5.07,731,1413244800"; d="scan'208";a="214089452"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.80) with Microsoft SMTP Server id 14.3.210.2;
	Fri, 9 Jan 2015 11:06:27 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1Y9c4x-0008Oy-AR;
	Fri, 09 Jan 2015 16:06:27 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 9 Jan 2015 16:06:51 +0000
Message-ID: <1420819611-6156-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Reflect interface versions in PDO description
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

For convenience add a string containing the latest versions of all the
interfaces exported by the driver into the PDO description. This can be
seen in Device Manager as the 'Bus reported device description' detail.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/pdo.c | 166 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 133 insertions(+), 33 deletions(-)

diff --git a/src/xenbus/pdo.c b/src/xenbus/pdo.c
index aa9e5bc..1e912e0 100644
--- a/src/xenbus/pdo.c
+++ b/src/xenbus/pdo.c
@@ -68,6 +68,7 @@ struct _XENBUS_PDO {
     BOOLEAN                     Removable;
 
     PULONG                      Revision;
+    PWCHAR                      *Description;
     ULONG                       Count;
 
     BUS_INTERFACE_STANDARD      BusInterface;
@@ -296,37 +297,125 @@ __PdoIsRemovable(
     return Pdo->Removable;
 }
 
+#define MAXTEXTLEN  1024
+
+static FORCEINLINE PXENBUS_FDO
+__PdoGetFdo(
+    IN  PXENBUS_PDO Pdo
+    )
+{
+    return Pdo->Fdo;
+}
+
+PXENBUS_FDO
+PdoGetFdo(
+    IN  PXENBUS_PDO Pdo
+    )
+{
+    return __PdoGetFdo(Pdo);
+}
+
 static NTSTATUS
 PdoAddRevision(
     IN  PXENBUS_PDO Pdo,
-    IN  ULONG       Number
-    )
-{
-    PULONG          Revision;
+    IN  ULONG       Revision,
+    IN  ULONG       Suspend,
+    IN  ULONG       SharedInfo,
+    IN  ULONG       Evtchn,
+    IN  ULONG       Debug,
+    IN  ULONG       Store,
+    IN  ULONG       RangeSet,
+    IN  ULONG       Cache,
+    IN  ULONG       Gnttab,
+    IN  ULONG       Emulated,
+    IN  ULONG       Unplug
+    )
+{
+    PVOID           Buffer;
     ULONG           Count;
     NTSTATUS        status;
 
-    Trace("%d\n", Number);
-
     Count = Pdo->Count + 1;
-    Revision = __PdoAllocate(sizeof (ULONG) * Count);
+
+    Buffer = __PdoAllocate(sizeof (ULONG) * Count);
 
     status = STATUS_NO_MEMORY;
-    if (Revision == NULL)
+    if (Buffer == NULL)
         goto fail1;
 
     if (Pdo->Revision != NULL) {
-        RtlCopyMemory(Revision,
+        RtlCopyMemory(Buffer,
                       Pdo->Revision,
                       sizeof (ULONG) * Pdo->Count);
         __PdoFree(Pdo->Revision);
     }
 
-    Revision[Pdo->Count++] = Number;
-    Pdo->Revision = Revision;
+    Pdo->Revision = Buffer;
+    Pdo->Revision[Pdo->Count] = Revision;
+
+    Buffer = __PdoAllocate(sizeof (PCHAR) * Count);
+
+    status = STATUS_NO_MEMORY;
+    if (Buffer == NULL)
+        goto fail2;
+
+    if (Pdo->Description != NULL) {
+        RtlCopyMemory(Buffer,
+                      Pdo->Description,
+                      sizeof (ULONG) * Pdo->Count);
+        __PdoFree(Pdo->Description);
+    }
+
+    Pdo->Description = Buffer;
+
+    Buffer = __PdoAllocate(MAXTEXTLEN * Count);
+
+    status = STATUS_NO_MEMORY;
+    if (Buffer == NULL)
+        goto fail3;
+
+    status = RtlStringCbPrintfW(Buffer,
+                                MAXTEXTLEN,
+                                L"%hs: "
+                                L"SUSPEND v%u "
+                                L"SHARED_INFO v%u "
+                                L"EVTCHN v%u "
+                                L"DEBUG v%u "
+                                L"STORE v%u "
+                                L"RANGE_SET v%u "
+                                L"CACHE v%u "
+                                L"GNTTAB v%u "
+                                L"EMULATED v%u "
+                                L"UNPLUG v%u",
+                                FdoGetName(__PdoGetFdo(Pdo)),
+                                Suspend,
+                                SharedInfo,
+                                Evtchn,
+                                Debug,
+                                Store,
+                                RangeSet,
+                                Cache,
+                                Gnttab,
+                                Emulated,
+                                Unplug);
+    ASSERT(NT_SUCCESS(status));
+
+    Pdo->Description[Pdo->Count] = Buffer;
+
+    Trace("%08x -> %ws\n",
+          Pdo->Revision[Pdo->Count],
+          Pdo->Description[Pdo->Count]);
+
+    Pdo->Count++;
 
     return STATUS_SUCCESS;
 
+fail3:
+    Error("fail3\n");
+
+fail2:
+    Error("fail2\n");
+
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -391,7 +480,17 @@ PdoSetRevisions(
                                                 Gnttab >= XENBUS_GNTTAB_INTERFACE_VERSION_MIN &&
                                                 Emulated >= XENFILT_EMULATED_INTERFACE_VERSION_MIN &&
                                                 Unplug >= XENFILT_UNPLUG_INTERFACE_VERSION_MIN) {
-                                                status = PdoAddRevision(Pdo, Revision);
+                                                status = PdoAddRevision(Pdo, Revision,
+                                                                        Suspend,
+                                                                        SharedInfo,
+                                                                        Evtchn,
+                                                                        Debug,
+                                                                        Store,
+                                                                        RangeSet,
+                                                                        Cache,
+                                                                        Gnttab,
+                                                                        Emulated,
+                                                                        Unplug);
                                                 if (!NT_SUCCESS(status))
                                                     goto fail1;
                                             }   
@@ -412,6 +511,13 @@ PdoSetRevisions(
 fail1:
     Error("fail1 (%08x)\n", status);
 
+    if (Pdo->Description != NULL) {
+        while (--Revision > 0)
+            __PdoFree(Pdo->Description[Revision]);
+        __PdoFree(Pdo->Description);
+        Pdo->Description = NULL;
+    }
+
     if (Pdo->Revision != NULL) {
         __PdoFree(Pdo->Revision);
         Pdo->Revision = NULL;
@@ -440,22 +546,6 @@ PdoGetDeviceObject(
     return __PdoGetDeviceObject(Pdo);
 }
 
-static FORCEINLINE PXENBUS_FDO
-__PdoGetFdo(
-    IN  PXENBUS_PDO Pdo
-    )
-{
-    return Pdo->Fdo;
-}
-
-PXENBUS_FDO
-PdoGetFdo(
-    IN  PXENBUS_PDO Pdo
-    )
-{
-    return __PdoGetFdo(Pdo);
-}
-
 static FORCEINLINE PCHAR
 __PdoGetVendorName(
     IN  PXENBUS_PDO Pdo
@@ -1284,8 +1374,6 @@ fail1:
     return status;
 }
 
-#define MAXTEXTLEN  128
-
 static NTSTATUS
 PdoQueryDeviceText(
     IN  PXENBUS_PDO     Pdo,
@@ -1326,11 +1414,12 @@ PdoQueryDeviceText(
 
     switch (StackLocation->Parameters.QueryDeviceText.DeviceTextType) {
     case DeviceTextDescription: {
+        ULONG   Index = Pdo->Count - 1;
+
         status = RtlStringCbPrintfW(Buffer,
                                     MAXTEXTLEN,
-                                    L"%hs %hs",
-                                    FdoGetName(__PdoGetFdo(Pdo)),
-                                    __PdoGetName(Pdo));
+                                    L"%s",
+                                    Pdo->Description[Index]);
         ASSERT(NT_SUCCESS(status));
 
         Buffer += wcslen(Buffer);
@@ -2171,6 +2260,11 @@ PdoCreate(
 fail6:
     Error("fail6\n");
 
+    for (Index = 0; Index < Pdo->Count; Index++)
+        __PdoFree(Pdo->Description[Index]);
+    __PdoFree(Pdo->Description);
+    Pdo->Description = NULL;
+
     __PdoFree(Pdo->Revision);
     Pdo->Revision = NULL;
     Pdo->Count = 0;
@@ -2219,6 +2313,7 @@ PdoDestroy(
     PXENBUS_DX      Dx = Pdo->Dx;
     PDEVICE_OBJECT  PhysicalDeviceObject = Dx->DeviceObject;
     PXENBUS_FDO     Fdo = __PdoGetFdo(Pdo);
+    ULONG           Index;
 
     ASSERT3U(__PdoGetDevicePnpState(Pdo), ==, Deleted);
 
@@ -2240,6 +2335,11 @@ PdoDestroy(
 
     BusTeardown(&Pdo->BusInterface);
 
+    for (Index = 0; Index < Pdo->Count; Index++)
+        __PdoFree(Pdo->Description[Index]);
+    __PdoFree(Pdo->Description);
+    Pdo->Description = NULL;
+
     __PdoFree(Pdo->Revision);
     Pdo->Revision = NULL;
     Pdo->Count = 0;
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 09 16:08:12 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 09 Jan 2015 16:08:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9c6e-0008N3-Dq; Fri, 09 Jan 2015 16:08:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y9c6c-0008Mm-P3
	for win-pv-devel@lists.xenproject.org; Fri, 09 Jan 2015 16:08:11 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	52/05-11608-AECFFA45; Fri, 09 Jan 2015 16:08:10 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-9.tower-31.messagelabs.com!1420819685!14751594!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30529 invoked from network); 9 Jan 2015 16:08:08 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-9.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Jan 2015 16:08:08 -0000
X-IronPort-AV: E=Sophos;i="5.07,731,1413244800"; d="scan'208";a="214089452"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.80) with Microsoft SMTP Server id 14.3.210.2;
	Fri, 9 Jan 2015 11:06:27 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1Y9c4x-0008Oy-AR;
	Fri, 09 Jan 2015 16:06:27 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 9 Jan 2015 16:06:51 +0000
Message-ID: <1420819611-6156-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Reflect interface versions in PDO description
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

For convenience add a string containing the latest versions of all the
interfaces exported by the driver into the PDO description. This can be
seen in Device Manager as the 'Bus reported device description' detail.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/pdo.c | 166 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 133 insertions(+), 33 deletions(-)

diff --git a/src/xenbus/pdo.c b/src/xenbus/pdo.c
index aa9e5bc..1e912e0 100644
--- a/src/xenbus/pdo.c
+++ b/src/xenbus/pdo.c
@@ -68,6 +68,7 @@ struct _XENBUS_PDO {
     BOOLEAN                     Removable;
 
     PULONG                      Revision;
+    PWCHAR                      *Description;
     ULONG                       Count;
 
     BUS_INTERFACE_STANDARD      BusInterface;
@@ -296,37 +297,125 @@ __PdoIsRemovable(
     return Pdo->Removable;
 }
 
+#define MAXTEXTLEN  1024
+
+static FORCEINLINE PXENBUS_FDO
+__PdoGetFdo(
+    IN  PXENBUS_PDO Pdo
+    )
+{
+    return Pdo->Fdo;
+}
+
+PXENBUS_FDO
+PdoGetFdo(
+    IN  PXENBUS_PDO Pdo
+    )
+{
+    return __PdoGetFdo(Pdo);
+}
+
 static NTSTATUS
 PdoAddRevision(
     IN  PXENBUS_PDO Pdo,
-    IN  ULONG       Number
-    )
-{
-    PULONG          Revision;
+    IN  ULONG       Revision,
+    IN  ULONG       Suspend,
+    IN  ULONG       SharedInfo,
+    IN  ULONG       Evtchn,
+    IN  ULONG       Debug,
+    IN  ULONG       Store,
+    IN  ULONG       RangeSet,
+    IN  ULONG       Cache,
+    IN  ULONG       Gnttab,
+    IN  ULONG       Emulated,
+    IN  ULONG       Unplug
+    )
+{
+    PVOID           Buffer;
     ULONG           Count;
     NTSTATUS        status;
 
-    Trace("%d\n", Number);
-
     Count = Pdo->Count + 1;
-    Revision = __PdoAllocate(sizeof (ULONG) * Count);
+
+    Buffer = __PdoAllocate(sizeof (ULONG) * Count);
 
     status = STATUS_NO_MEMORY;
-    if (Revision == NULL)
+    if (Buffer == NULL)
         goto fail1;
 
     if (Pdo->Revision != NULL) {
-        RtlCopyMemory(Revision,
+        RtlCopyMemory(Buffer,
                       Pdo->Revision,
                       sizeof (ULONG) * Pdo->Count);
         __PdoFree(Pdo->Revision);
     }
 
-    Revision[Pdo->Count++] = Number;
-    Pdo->Revision = Revision;
+    Pdo->Revision = Buffer;
+    Pdo->Revision[Pdo->Count] = Revision;
+
+    Buffer = __PdoAllocate(sizeof (PCHAR) * Count);
+
+    status = STATUS_NO_MEMORY;
+    if (Buffer == NULL)
+        goto fail2;
+
+    if (Pdo->Description != NULL) {
+        RtlCopyMemory(Buffer,
+                      Pdo->Description,
+                      sizeof (ULONG) * Pdo->Count);
+        __PdoFree(Pdo->Description);
+    }
+
+    Pdo->Description = Buffer;
+
+    Buffer = __PdoAllocate(MAXTEXTLEN * Count);
+
+    status = STATUS_NO_MEMORY;
+    if (Buffer == NULL)
+        goto fail3;
+
+    status = RtlStringCbPrintfW(Buffer,
+                                MAXTEXTLEN,
+                                L"%hs: "
+                                L"SUSPEND v%u "
+                                L"SHARED_INFO v%u "
+                                L"EVTCHN v%u "
+                                L"DEBUG v%u "
+                                L"STORE v%u "
+                                L"RANGE_SET v%u "
+                                L"CACHE v%u "
+                                L"GNTTAB v%u "
+                                L"EMULATED v%u "
+                                L"UNPLUG v%u",
+                                FdoGetName(__PdoGetFdo(Pdo)),
+                                Suspend,
+                                SharedInfo,
+                                Evtchn,
+                                Debug,
+                                Store,
+                                RangeSet,
+                                Cache,
+                                Gnttab,
+                                Emulated,
+                                Unplug);
+    ASSERT(NT_SUCCESS(status));
+
+    Pdo->Description[Pdo->Count] = Buffer;
+
+    Trace("%08x -> %ws\n",
+          Pdo->Revision[Pdo->Count],
+          Pdo->Description[Pdo->Count]);
+
+    Pdo->Count++;
 
     return STATUS_SUCCESS;
 
+fail3:
+    Error("fail3\n");
+
+fail2:
+    Error("fail2\n");
+
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -391,7 +480,17 @@ PdoSetRevisions(
                                                 Gnttab >= XENBUS_GNTTAB_INTERFACE_VERSION_MIN &&
                                                 Emulated >= XENFILT_EMULATED_INTERFACE_VERSION_MIN &&
                                                 Unplug >= XENFILT_UNPLUG_INTERFACE_VERSION_MIN) {
-                                                status = PdoAddRevision(Pdo, Revision);
+                                                status = PdoAddRevision(Pdo, Revision,
+                                                                        Suspend,
+                                                                        SharedInfo,
+                                                                        Evtchn,
+                                                                        Debug,
+                                                                        Store,
+                                                                        RangeSet,
+                                                                        Cache,
+                                                                        Gnttab,
+                                                                        Emulated,
+                                                                        Unplug);
                                                 if (!NT_SUCCESS(status))
                                                     goto fail1;
                                             }   
@@ -412,6 +511,13 @@ PdoSetRevisions(
 fail1:
     Error("fail1 (%08x)\n", status);
 
+    if (Pdo->Description != NULL) {
+        while (--Revision > 0)
+            __PdoFree(Pdo->Description[Revision]);
+        __PdoFree(Pdo->Description);
+        Pdo->Description = NULL;
+    }
+
     if (Pdo->Revision != NULL) {
         __PdoFree(Pdo->Revision);
         Pdo->Revision = NULL;
@@ -440,22 +546,6 @@ PdoGetDeviceObject(
     return __PdoGetDeviceObject(Pdo);
 }
 
-static FORCEINLINE PXENBUS_FDO
-__PdoGetFdo(
-    IN  PXENBUS_PDO Pdo
-    )
-{
-    return Pdo->Fdo;
-}
-
-PXENBUS_FDO
-PdoGetFdo(
-    IN  PXENBUS_PDO Pdo
-    )
-{
-    return __PdoGetFdo(Pdo);
-}
-
 static FORCEINLINE PCHAR
 __PdoGetVendorName(
     IN  PXENBUS_PDO Pdo
@@ -1284,8 +1374,6 @@ fail1:
     return status;
 }
 
-#define MAXTEXTLEN  128
-
 static NTSTATUS
 PdoQueryDeviceText(
     IN  PXENBUS_PDO     Pdo,
@@ -1326,11 +1414,12 @@ PdoQueryDeviceText(
 
     switch (StackLocation->Parameters.QueryDeviceText.DeviceTextType) {
     case DeviceTextDescription: {
+        ULONG   Index = Pdo->Count - 1;
+
         status = RtlStringCbPrintfW(Buffer,
                                     MAXTEXTLEN,
-                                    L"%hs %hs",
-                                    FdoGetName(__PdoGetFdo(Pdo)),
-                                    __PdoGetName(Pdo));
+                                    L"%s",
+                                    Pdo->Description[Index]);
         ASSERT(NT_SUCCESS(status));
 
         Buffer += wcslen(Buffer);
@@ -2171,6 +2260,11 @@ PdoCreate(
 fail6:
     Error("fail6\n");
 
+    for (Index = 0; Index < Pdo->Count; Index++)
+        __PdoFree(Pdo->Description[Index]);
+    __PdoFree(Pdo->Description);
+    Pdo->Description = NULL;
+
     __PdoFree(Pdo->Revision);
     Pdo->Revision = NULL;
     Pdo->Count = 0;
@@ -2219,6 +2313,7 @@ PdoDestroy(
     PXENBUS_DX      Dx = Pdo->Dx;
     PDEVICE_OBJECT  PhysicalDeviceObject = Dx->DeviceObject;
     PXENBUS_FDO     Fdo = __PdoGetFdo(Pdo);
+    ULONG           Index;
 
     ASSERT3U(__PdoGetDevicePnpState(Pdo), ==, Deleted);
 
@@ -2240,6 +2335,11 @@ PdoDestroy(
 
     BusTeardown(&Pdo->BusInterface);
 
+    for (Index = 0; Index < Pdo->Count; Index++)
+        __PdoFree(Pdo->Description[Index]);
+    __PdoFree(Pdo->Description);
+    Pdo->Description = NULL;
+
     __PdoFree(Pdo->Revision);
     Pdo->Revision = NULL;
     Pdo->Count = 0;
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 09 16:11:50 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 09 Jan 2015 16:11:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9cAA-0000JO-AM; Fri, 09 Jan 2015 16:11:50 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y9cA8-0000Iq-BS
	for win-pv-devel@lists.xenproject.org; Fri, 09 Jan 2015 16:11:48 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	5D/47-02954-3CDFFA45; Fri, 09 Jan 2015 16:11:47 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1420819905!14967709!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4426 invoked from network); 9 Jan 2015 16:11:46 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Jan 2015 16:11:46 -0000
X-IronPort-AV: E=Sophos;i="5.07,731,1413244800"; d="scan'208";a="213416588"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.80) with Microsoft SMTP Server id 14.3.210.2;
	Fri, 9 Jan 2015 11:08:11 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1Y9c6d-0008RH-DB;
	Fri, 09 Jan 2015 16:08:11 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 9 Jan 2015 16:08:36 +0000
Message-ID: <1420819716-8132-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
Content-Length: 18367
X-DLP: MIA1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Move interface subscription code into
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

SW50ZXJmYWNlIHN1YnNjcmlwdGlvbiBpcyBiZXR0ZXIgaGFuZGxlZCBhdCBwYWNrYWdlIGluc3Rh
bGxhdGlvbiB0aW1lIGFuZAp0aGVyZWZvcmUgdGhlIGNvLWluc3RhbGxlciBpcyB0aGUgcmlnaHQg
cGxhY2UgZm9yIGl0IHRvIGxpdmUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu
ZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9jb2luc3QvY29pbnN0LmMgICAgICAgICAgICAg
ICAgICAgICAgICB8IDE3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3hlbmJ1
cy9mZG8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDg3ICsrLS0tLS0tLS0tLS0tLQog
dnMyMDEyL3hlbmJ1c19jb2luc3QveGVuYnVzX2NvaW5zdC52Y3hwcm9qIHwgICAyICstCiB2czIw
MTMveGVuYnVzX2NvaW5zdC94ZW5idXNfY29pbnN0LnZjeHByb2ogfCAgIDQgKy0KIDQgZmlsZXMg
Y2hhbmdlZCwgMTg0IGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L3NyYy9jb2luc3QvY29pbnN0LmMgYi9zcmMvY29pbnN0L2NvaW5zdC5jCmluZGV4IDU5NzI2ZjUu
LmJjMzMxODIgMTAwNjQ0Ci0tLSBhL3NyYy9jb2luc3QvY29pbnN0LmMKKysrIGIvc3JjL2NvaW5z
dC9jb2luc3QuYwpAQCAtMTkwMSw2ICsxOTAxLDE3NiBAQCBmYWlsMToKICAgICByZXR1cm4gRkFM
U0U7CiB9CiAKK3N0YXRpYyBIS0VZCitPcGVuSW50ZXJmYWNlc0tleSgKKyAgICBJTiAgUFRDSEFS
ICBQcm92aWRlck5hbWUKKyAgICApCit7CisgICAgSFJFU1VMVCAgICAgUmVzdWx0OworICAgIFRD
SEFSICAgICAgIEtleU5hbWVbTUFYX1BBVEhdOworICAgIEhLRVkgICAgICAgIEtleTsKKyAgICBI
UkVTVUxUICAgICBFcnJvcjsKKworICAgIFJlc3VsdCA9IFN0cmluZ0NiUHJpbnRmKEtleU5hbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1BBVEgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiVzXFwlc1xcSW50ZXJmYWNlcyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU0VSVklDRVNfS0VZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3ZpZGVy
TmFtZSk7CisgICAgaWYgKCFTVUNDRUVERUQoUmVzdWx0KSkgeworICAgICAgICBTZXRMYXN0RXJy
b3IoRVJST1JfQlVGRkVSX09WRVJGTE9XKTsKKyAgICAgICAgZ290byBmYWlsMTsKKyAgICB9CisK
KyAgICBFcnJvciA9IFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgS2V5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIEtFWV9BTExfQUNDRVNTLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICZLZXkpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAg
IFNldExhc3RFcnJvcihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisgICAg
cmV0dXJuIEtleTsKKworZmFpbDI6CisgICAgTG9nKCJmYWlsMiIpOworCitmYWlsMToKKyAgICBF
cnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1lc3NhZ2U7
CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAgICAgICBMb2co
ImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2UpOworICAg
IH0KKworICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgQk9PTEVBTgorU3Vic2NyaWJlSW50
ZXJmYWNlKAorICAgIElOICBQVENIQVIgIFByb3ZpZGVyTmFtZSwKKyAgICBJTiAgUFRDSEFSICBT
dWJzY3JpYmVyTmFtZSwKKyAgICBJTiAgUFRDSEFSICBJbnRlcmZhY2VOYW1lLAorICAgIElOICBE
V09SRCAgIEludGVyZmFjZVZlcnNpb24KKyAgICApCit7CisgICAgSEtFWSAgICAgICAgS2V5Owor
ICAgIEhLRVkgICAgICAgIEludGVyZmFjZXNLZXk7CisgICAgSFJFU1VMVCAgICAgRXJyb3I7CisK
KyAgICBJbnRlcmZhY2VzS2V5ID0gT3BlbkludGVyZmFjZXNLZXkoUHJvdmlkZXJOYW1lKTsKKyAg
ICBpZiAoSW50ZXJmYWNlc0tleSA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAg
RXJyb3IgPSBSZWdDcmVhdGVLZXlFeChJbnRlcmZhY2VzS2V5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU3Vic2NyaWJlck5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJFR19PUFRJT05fTk9OX1ZPTEFUSUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
S0VZX0FMTF9BQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJktleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIFNldExhc3RF
cnJvcihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisgICAgRXJyb3IgPSBS
ZWdTZXRWYWx1ZUV4KEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlTmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgUkVHX0RXT1JELAorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgQllURSAqKSZJ
bnRlcmZhY2VWZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoRFdPUkQp
KTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgeworICAgICAgICBTZXRMYXN0RXJy
b3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwzOworICAgIH0KKworICAgIExvZygiJXM6ICVz
XyVzX0lOVEVSRkFDRV9WRVJTSU9OICV1IiwKKyAgICAgICAgU3Vic2NyaWJlck5hbWUsCisgICAg
ICAgIFByb3ZpZGVyTmFtZSwKKyAgICAgICAgSW50ZXJmYWNlTmFtZSwKKyAgICAgICAgSW50ZXJm
YWNlVmVyc2lvbik7CisKKyAgICBSZWdDbG9zZUtleShLZXkpOworICAgIFJlZ0Nsb3NlS2V5KElu
dGVyZmFjZXNLZXkpOworCisgICAgcmV0dXJuIFRSVUU7CisKK2ZhaWwzOgorICAgIFJlZ0Nsb3Nl
S2V5KEtleSk7CisKK2ZhaWwyOgorICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCitm
YWlsMToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENI
QVIgIE1lc3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwor
ICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1l
c3NhZ2UpOworICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKworI2RlZmluZSBTVUJTQ1JJ
QkVfSU5URVJGQUNFKF9Qcm92aWRlck5hbWUsIF9TdWJzY3JpYmVyTmFtZSwgX0ludGVyZmFjZU5h
bWUpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAoVk9JRCkgU3Vic2NyaWJlSW50ZXJmYWNlKCNfUHJv
dmlkZXJOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfU3Vic2NyaWJlck5hbWUs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfSW50ZXJmYWNlTmFtZSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9Qcm92aWRlck5hbWUgIyMgXyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBf
SU5URVJGQUNFX1ZFUlNJT05fTUFYKTsgXAorICAgIH0gd2hpbGUgKEZBTFNFKTsKKworc3RhdGlj
IEJPT0xFQU4KK1Vuc3Vic2NyaWJlSW50ZXJmYWNlcygKKyAgICBJTiAgUFRDSEFSICBQcm92aWRl
ck5hbWUsCisgICAgSU4gIFBUQ0hBUiAgU3Vic2NyaWJlck5hbWUKKyAgICApCit7CisgICAgSEtF
WSAgICAgICAgSW50ZXJmYWNlc0tleTsKKyAgICBIUkVTVUxUICAgICBFcnJvcjsKKworICAgIExv
ZygiJXM6ICVzIiwgU3Vic2NyaWJlck5hbWUsIFByb3ZpZGVyTmFtZSk7CisKKyAgICBJbnRlcmZh
Y2VzS2V5ID0gT3BlbkludGVyZmFjZXNLZXkoUHJvdmlkZXJOYW1lKTsKKyAgICBpZiAoSW50ZXJm
YWNlc0tleSA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDE7CisgICAgfQorCisgICAgRXJy
b3IgPSBSZWdEZWxldGVUcmVlKEludGVyZmFjZXNLZXksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIFN1YnNjcmliZXJOYW1lKTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgewor
ICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwyOworICAgIH0K
KworICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCisgICAgcmV0dXJuIFRSVUU7CisK
K2ZhaWwyOgorICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCitmYWlsMToKKyAgICBF
cnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1lc3NhZ2U7
CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAgICAgICBMb2co
ImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2UpOworICAg
IH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKwogc3RhdGljIEhSRVNVTFQKIERpZkluc3RhbGxQ
cmVQcm9jZXNzKAogICAgIElOICBIREVWSU5GTyAgICAgICAgICAgICAgICAgICAgRGV2aWNlSW5m
b1NldCwKQEAgLTIwMzEsNiArMjIwMSw4IEBAIERpZkluc3RhbGxQb3N0UHJvY2VzcygKICAgICB9
CiAKICAgICBpZiAoQWN0aXZlKSB7CisgICAgICAgIFNVQlNDUklCRV9JTlRFUkZBQ0UoWEVORklM
VCwgWEVOQlVTLCBVTlBMVUcpOworCiAgICAgICAgIChWT0lEKSBJbnN0YWxsRmlsdGVyKCZHVUlE
X0RFVkNMQVNTX1NZU1RFTSwgIlhFTkZJTFQiKTsKICAgICAgICAgKFZPSUQpIEluc3RhbGxGaWx0
ZXIoJkdVSURfREVWQ0xBU1NfSERDLCAiWEVORklMVCIpOwogICAgIH0KQEAgLTIxNjcsNiArMjMz
OSw4IEBAIERpZlJlbW92ZVByZVByb2Nlc3MoCiAKICAgICAgICAgKFZPSUQpIFJlbW92ZUZpbHRl
cigmR1VJRF9ERVZDTEFTU19IREMsICJYRU5GSUxUIik7CiAgICAgICAgIChWT0lEKSBSZW1vdmVG
aWx0ZXIoJkdVSURfREVWQ0xBU1NfU1lTVEVNLCAiWEVORklMVCIpOworCisgICAgICAgIFVuc3Vi
c2NyaWJlSW50ZXJmYWNlcygiWEVORklMVCIsICJYRU5CVVMiKTsKICAgICB9CiAKICAgICBmcmVl
KERldmljZUlEKTsKZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMvZmRvLmMgYi9zcmMveGVuYnVzL2Zk
by5jCmluZGV4IGNjMGM3NzUuLjFhMTIyYzAgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5idXMvZmRvLmMK
KysrIGIvc3JjL3hlbmJ1cy9mZG8uYwpAQCAtNDM0MSwxMyArNDM0MSw5IEBAIEZkb1JlbGVhc2VM
b3dlckJ1c0ludGVyZmFjZSgKICAgICBSdGxaZXJvTWVtb3J5KEJ1c0ludGVyZmFjZSwgc2l6ZW9m
IChCVVNfSU5URVJGQUNFX1NUQU5EQVJEKSk7CiB9CiAKLSNkZWZpbmUgU0VSVklDRVNfS0VZICAg
ICAgICBMIlxcUmVnaXN0cnlcXE1hY2hpbmVcXFNZU1RFTVxcQ3VycmVudENvbnRyb2xTZXRcXFNl
cnZpY2VzIgotCiBzdGF0aWMgTlRTVEFUVVMKIEZkb1F1ZXJ5SW50ZXJmYWNlKAogICAgIElOICBQ
WEVOQlVTX0ZETyAgICAgRmRvLAotICAgIElOICBjb25zdCBXQ0hBUiAgICAgKlByb3ZpZGVyTmFt
ZSwKLSAgICBJTiAgY29uc3QgQ0hBUiAgICAgICpJbnRlcmZhY2VOYW1lLAogICAgIElOICBjb25z
dCBHVUlEICAgICAgKkd1aWQsCiAgICAgSU4gIFVMT05HICAgICAgICAgICBWZXJzaW9uLAogICAg
IE9VVCBQSU5URVJGQUNFICAgICAgSW50ZXJmYWNlLApAQCAtNDM1NSw5ICs0MzUxLDYgQEAgRmRv
UXVlcnlJbnRlcmZhY2UoCiAgICAgSU4gIEJPT0xFQU4gICAgICAgICBPcHRpb25hbAogICAgICkK
IHsKLSAgICBVTklDT0RFX1NUUklORyAgICAgIFVuaWNvZGU7Ci0gICAgSEFORExFICAgICAgICAg
ICAgICBJbnRlcmZhY2VzS2V5OwotICAgIEhBTkRMRSAgICAgICAgICAgICAgU3Vic2NyaWJlcktl
eTsKICAgICBLRVZFTlQgICAgICAgICAgICAgIEV2ZW50OwogICAgIElPX1NUQVRVU19CTE9DSyAg
ICAgU3RhdHVzQmxvY2s7CiAgICAgUElSUCAgICAgICAgICAgICAgICBJcnA7CkBAIC00MzY2LDM4
ICs0MzU5LDYgQEAgRmRvUXVlcnlJbnRlcmZhY2UoCiAKICAgICBBU1NFUlQzVShLZUdldEN1cnJl
bnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVMKTsKIAotICAgIFVuaWNvZGUuTWF4aW11bUxlbmd0
aCA9IChVU0hPUlQpKCh3Y3NsZW4oU0VSVklDRVNfS0VZKSArCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3Y3NsZW4oUHJvdmlkZXJOYW1lKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y3Ns
ZW4oTCJJbnRlcmZhY2VzIikgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxKSAqIHNpemVvZiAoV0NIQVIpKTsKLQotICAgIFVuaWNvZGUuQnVmZmVyID0gX19GZG9BbGxv
Y2F0ZShVbmljb2RlLk1heGltdW1MZW5ndGgpOwotCi0gICAgc3RhdHVzID0gU1RBVFVTX05PX01F
TU9SWTsKLSAgICBpZiAoVW5pY29kZS5CdWZmZXIgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWls
MTsKLQotICAgIHN0YXR1cyA9IFJ0bFN0cmluZ0NiUHJpbnRmVyhVbmljb2RlLkJ1ZmZlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZS5NYXhpbXVtTGVuZ3RoLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFU19LRVkgTCJcXCV3c1xcSW50ZXJm
YWNlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3ZpZGVyTmFtZSk7Ci0g
ICAgQVNTRVJUKE5UX1NVQ0NFU1Moc3RhdHVzKSk7Ci0KLSAgICBVbmljb2RlLkxlbmd0aCA9IChV
U0hPUlQpKHdjc2xlbihVbmljb2RlLkJ1ZmZlcikgKiBzaXplb2YgKFdDSEFSKSk7Ci0KLSAgICBz
dGF0dXMgPSBSZWdpc3RyeU9wZW5LZXkoTlVMTCwgJlVuaWNvZGUsIEtFWV9SRUFELCAmSW50ZXJm
YWNlc0tleSk7Ci0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFp
bDI7Ci0KLSAgICBzdGF0dXMgPSBSZWdpc3RyeUNyZWF0ZVN1YktleShJbnRlcmZhY2VzS2V5LCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWEVOQlVTIiwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUkVHX09QVElPTl9OT05fVk9MQVRJTEUsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTdWJzY3JpYmVyS2V5KTsKLSAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMzsKLSAgICAgICAgICAgICAgICAg
ICAKICAgICBLZUluaXRpYWxpemVFdmVudCgmRXZlbnQsIE5vdGlmaWNhdGlvbkV2ZW50LCBGQUxT
RSk7CiAgICAgUnRsWmVyb01lbW9yeSgmU3RhdHVzQmxvY2ssIHNpemVvZihJT19TVEFUVVNfQkxP
Q0spKTsKIApAQCAtNDQxMSw3ICs0MzcyLDcgQEAgRmRvUXVlcnlJbnRlcmZhY2UoCiAKICAgICBz
dGF0dXMgPSBTVEFUVVNfVU5TVUNDRVNTRlVMOwogICAgIGlmIChJcnAgPT0gTlVMTCkKLSAgICAg
ICAgZ290byBmYWlsNDsKKyAgICAgICAgZ290byBmYWlsMTsKIAogICAgIFN0YWNrTG9jYXRpb24g
PSBJb0dldE5leHRJcnBTdGFja0xvY2F0aW9uKElycCk7CiAgICAgU3RhY2tMb2NhdGlvbi0+TWlu
b3JGdW5jdGlvbiA9IElSUF9NTl9RVUVSWV9JTlRFUkZBQ0U7CkBAIC00NDM3LDQ1ICs0Mzk4LDE1
IEBAIEZkb1F1ZXJ5SW50ZXJmYWNlKAogICAgICAgICBpZiAoc3RhdHVzID09IFNUQVRVU19OT1Rf
U1VQUE9SVEVEICYmIE9wdGlvbmFsKQogICAgICAgICAgICAgZ290byBkb25lOwogCi0gICAgICAg
IGdvdG8gZmFpbDU7CisgICAgICAgIGdvdG8gZmFpbDI7CiAgICAgfQogCi0gICAgc3RhdHVzID0g
UmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKFN1YnNjcmliZXJLZXksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChQQ0hBUilJbnRlcmZhY2VOYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uKTsKLSAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNjsKLQogZG9uZToKLSAgICBSZWdpc3RyeUNsb3Nl
S2V5KFN1YnNjcmliZXJLZXkpOwotCi0gICAgUmVnaXN0cnlDbG9zZUtleShJbnRlcmZhY2VzS2V5
KTsKLQotICAgIF9fRmRvRnJlZShVbmljb2RlLkJ1ZmZlcik7Ci0KICAgICByZXR1cm4gU1RBVFVT
X1NVQ0NFU1M7CiAKLWZhaWw2OgotICAgIEVycm9yKCJmYWlsNlxuIik7Ci0KLWZhaWw1OgotICAg
IEVycm9yKCJmYWlsNVxuIik7Ci0KLWZhaWw0OgotICAgIEVycm9yKCJmYWlsNFxuIik7Ci0KLSAg
ICBSZWdpc3RyeUNsb3NlS2V5KFN1YnNjcmliZXJLZXkpOwotCi1mYWlsMzoKLSAgICBFcnJvcigi
ZmFpbDNcbiIpOwotCi0gICAgUmVnaXN0cnlDbG9zZUtleShJbnRlcmZhY2VzS2V5KTsKLQogZmFp
bDI6CiAgICAgRXJyb3IoImZhaWwyXG4iKTsKIAotICAgIF9fRmRvRnJlZShVbmljb2RlLkJ1ZmZl
cik7Ci0KIGZhaWwxOgogICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CiAKQEAg
LTQ0ODYsMTggKzQ0MTcsMTUgQEAgZmFpbDE6CiAgICAgX0ZkbywgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgIF9Qcm92aWRlck5hbWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfSW50ZXJmYWNlTmFt
ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgX1ZlcnNpb24sICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIF9J
bnRlcmZhY2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfU2l6ZSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICAgX09wdGlvbmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIEZkb1F1ZXJ5SW50ZXJm
YWNlKChfRmRvKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIEwgIyMgI19Qcm92aWRlck5h
bWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
ICAgICAgICAgICAgICAgICAjX0ludGVyZmFjZU5hbWUsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgJkdVSURf
ICMjIF9Qcm92aWRlck5hbWUgIyMgXyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBfSU5URVJGQUNFLCAg
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgIChfVmVyc2lvbiksICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAg
ICAgICAoX0ludGVyZmFjZSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgKF9TaXplKSwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIChfT3B0aW9uYWwpKQorICAgICAgICAgICAgICAgICAgICAgICZHVUlE
XyAjIyBfUHJvdmlkZXJOYW1lICMjIF8gIyMgX0ludGVyZmFjZU5hbWUgIyMgX0lOVEVSRkFDRSwg
ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICBfUHJvdmlkZXJOYW1lICMjIF8gIyMgX0ludGVy
ZmFjZU5hbWUgIyMgX0lOVEVSRkFDRV9WRVJTSU9OX01BWCwgICBcCisgICAgICAgICAgICAgICAg
ICAgICAgKF9JbnRlcmZhY2UpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgIChfU2l6ZSksICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAoX09wdGlvbmFsKSkKIAogVk9JRAogRmRvR2V0VW5wbHVnSW50ZXJm
YWNlKApAQCAtNDY5NSw3ICs0NjIzLDYgQEAgRmRvQ3JlYXRlKAogICAgIHN0YXR1cyA9IEZET19R
VUVSWV9JTlRFUkZBQ0UoRmRvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVO
RklMVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOUExVRywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkZJTFRfVU5QTFVHX0lOVEVSRkFDRV9WRVJTSU9O
X01BWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQSU5URVJGQUNFKSZGZG8t
PlVucGx1Z0ludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv
ZiAoRmRvLT5VbnBsdWdJbnRlcmZhY2UpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVFJVRSk7CmRpZmYgLS1naXQgYS92czIwMTIveGVuYnVzX2NvaW5zdC94ZW5idXNfY29pbnN0
LnZjeHByb2ogYi92czIwMTIveGVuYnVzX2NvaW5zdC94ZW5idXNfY29pbnN0LnZjeHByb2oKaW5k
ZXggOTc2NTRhZC4uZTJjZmViOSAxMDA2NDQKLS0tIGEvdnMyMDEyL3hlbmJ1c19jb2luc3QveGVu
YnVzX2NvaW5zdC52Y3hwcm9qCisrKyBiL3ZzMjAxMi94ZW5idXNfY29pbnN0L3hlbmJ1c19jb2lu
c3QudmN4cHJvagpAQCAtMzQsNyArMzQsNyBAQAogCQkJPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+JChTb2x1dGlvbkRpcikuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CiAJCQk8UHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOQlVTX0NPSU5TVCI7JShQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgogCQkJPFdhcm5pbmdMZXZlbD5FbmFibGVB
bGxXYXJuaW5nczwvV2FybmluZ0xldmVsPgotCQkJPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3
MTE7NDU0ODs0ODIwOzQ2Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNX
YXJuaW5ncyk8L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgorCQkJPERpc2FibGVTcGVjaWZpY1dh
cm5pbmdzPjQxMjc7NDcxMTs0NTQ4OzQ4MjA7NDY2ODs0MjU1OzYwMDE7NjA1NDsyODE5NjslKERp
c2FibGVTcGVjaWZpY1dhcm5pbmdzKTwvRGlzYWJsZVNwZWNpZmljV2FybmluZ3M+CiAJCQk8TXVs
dGlQcm9jZXNzb3JDb21waWxhdGlvbj50cnVlPC9NdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPgog
CQkJPEVuYWJsZVBSRWZhc3Q+dHJ1ZTwvRW5hYmxlUFJFZmFzdD4KIAkJCTxSdW50aW1lTGlicmFy
eSBDb25kaXRpb249IickKFVzZURlYnVnTGlicmFyaWVzKSc9PSd0cnVlJyI+TXVsdGlUaHJlYWRl
ZERlYnVnPC9SdW50aW1lTGlicmFyeT4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5idXNfY29pbnN0
L3hlbmJ1c19jb2luc3QudmN4cHJvaiBiL3ZzMjAxMy94ZW5idXNfY29pbnN0L3hlbmJ1c19jb2lu
c3QudmN4cHJvagppbmRleCA0YWIyYzIwLi40OGVkMDViIDEwMDY0NAotLS0gYS92czIwMTMveGVu
YnVzX2NvaW5zdC94ZW5idXNfY29pbnN0LnZjeHByb2oKKysrIGIvdnMyMDEzL3hlbmJ1c19jb2lu
c3QveGVuYnVzX2NvaW5zdC52Y3hwcm9qCkBAIC0xLDQgKzEsNCBAQAot77u/PD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+CiA8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0i
MTIuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVp
bGQvMjAwMyI+CiAgIDxJbXBvcnQgUHJvamVjdD0iLi5cY29uZmlncy5wcm9wcyIgLz4KICAgPFBy
b3BlcnR5R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KQEAgLTYzLDcgKzYzLDcgQEAKICAg
ICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoU29sdXRpb25EaXIpLi5caW5jbHVk
ZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgogICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTkJV
U19DT0lOU1QiOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz4KICAgICAgIDxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5pbmdMZXZl
bD4KLSAgICAgIDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40NzExOzQ1NDg7NDgyMDs0NjY4OzQy
NTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9EaXNhYmxlU3Bl
Y2lmaWNXYXJuaW5ncz4KKyAgICAgIDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40MTI3OzQ3MTE7
NDU0ODs0ODIwOzQ2Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJu
aW5ncyk8L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgogICAgICAgPE11bHRpUHJvY2Vzc29yQ29t
cGlsYXRpb24+dHJ1ZTwvTXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj4KICAgICAgIDxFbmFibGVQ
UkVmYXN0PnRydWU8L0VuYWJsZVBSRWZhc3Q+CiAgICAgICA8UnVudGltZUxpYnJhcnkgQ29uZGl0
aW9uPSInJChVc2VEZWJ1Z0xpYnJhcmllcyknPT0ndHJ1ZSciPk11bHRpVGhyZWFkZWREZWJ1Zzwv
UnVudGltZUxpYnJhcnk+Ci0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 09 16:11:50 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 09 Jan 2015 16:11:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9cAA-0000JO-AM; Fri, 09 Jan 2015 16:11:50 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1Y9cA8-0000Iq-BS
	for win-pv-devel@lists.xenproject.org; Fri, 09 Jan 2015 16:11:48 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	5D/47-02954-3CDFFA45; Fri, 09 Jan 2015 16:11:47 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1420819905!14967709!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4426 invoked from network); 9 Jan 2015 16:11:46 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Jan 2015 16:11:46 -0000
X-IronPort-AV: E=Sophos;i="5.07,731,1413244800"; d="scan'208";a="213416588"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.80) with Microsoft SMTP Server id 14.3.210.2;
	Fri, 9 Jan 2015 11:08:11 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1Y9c6d-0008RH-DB;
	Fri, 09 Jan 2015 16:08:11 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 9 Jan 2015 16:08:36 +0000
Message-ID: <1420819716-8132-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
Content-Length: 18367
X-DLP: MIA1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Move interface subscription code into
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

SW50ZXJmYWNlIHN1YnNjcmlwdGlvbiBpcyBiZXR0ZXIgaGFuZGxlZCBhdCBwYWNrYWdlIGluc3Rh
bGxhdGlvbiB0aW1lIGFuZAp0aGVyZWZvcmUgdGhlIGNvLWluc3RhbGxlciBpcyB0aGUgcmlnaHQg
cGxhY2UgZm9yIGl0IHRvIGxpdmUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu
ZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9jb2luc3QvY29pbnN0LmMgICAgICAgICAgICAg
ICAgICAgICAgICB8IDE3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3hlbmJ1
cy9mZG8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDg3ICsrLS0tLS0tLS0tLS0tLQog
dnMyMDEyL3hlbmJ1c19jb2luc3QveGVuYnVzX2NvaW5zdC52Y3hwcm9qIHwgICAyICstCiB2czIw
MTMveGVuYnVzX2NvaW5zdC94ZW5idXNfY29pbnN0LnZjeHByb2ogfCAgIDQgKy0KIDQgZmlsZXMg
Y2hhbmdlZCwgMTg0IGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L3NyYy9jb2luc3QvY29pbnN0LmMgYi9zcmMvY29pbnN0L2NvaW5zdC5jCmluZGV4IDU5NzI2ZjUu
LmJjMzMxODIgMTAwNjQ0Ci0tLSBhL3NyYy9jb2luc3QvY29pbnN0LmMKKysrIGIvc3JjL2NvaW5z
dC9jb2luc3QuYwpAQCAtMTkwMSw2ICsxOTAxLDE3NiBAQCBmYWlsMToKICAgICByZXR1cm4gRkFM
U0U7CiB9CiAKK3N0YXRpYyBIS0VZCitPcGVuSW50ZXJmYWNlc0tleSgKKyAgICBJTiAgUFRDSEFS
ICBQcm92aWRlck5hbWUKKyAgICApCit7CisgICAgSFJFU1VMVCAgICAgUmVzdWx0OworICAgIFRD
SEFSICAgICAgIEtleU5hbWVbTUFYX1BBVEhdOworICAgIEhLRVkgICAgICAgIEtleTsKKyAgICBI
UkVTVUxUICAgICBFcnJvcjsKKworICAgIFJlc3VsdCA9IFN0cmluZ0NiUHJpbnRmKEtleU5hbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1BBVEgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiVzXFwlc1xcSW50ZXJmYWNlcyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU0VSVklDRVNfS0VZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3ZpZGVy
TmFtZSk7CisgICAgaWYgKCFTVUNDRUVERUQoUmVzdWx0KSkgeworICAgICAgICBTZXRMYXN0RXJy
b3IoRVJST1JfQlVGRkVSX09WRVJGTE9XKTsKKyAgICAgICAgZ290byBmYWlsMTsKKyAgICB9CisK
KyAgICBFcnJvciA9IFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgS2V5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIEtFWV9BTExfQUNDRVNTLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICZLZXkpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAg
IFNldExhc3RFcnJvcihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisgICAg
cmV0dXJuIEtleTsKKworZmFpbDI6CisgICAgTG9nKCJmYWlsMiIpOworCitmYWlsMToKKyAgICBF
cnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1lc3NhZ2U7
CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAgICAgICBMb2co
ImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2UpOworICAg
IH0KKworICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgQk9PTEVBTgorU3Vic2NyaWJlSW50
ZXJmYWNlKAorICAgIElOICBQVENIQVIgIFByb3ZpZGVyTmFtZSwKKyAgICBJTiAgUFRDSEFSICBT
dWJzY3JpYmVyTmFtZSwKKyAgICBJTiAgUFRDSEFSICBJbnRlcmZhY2VOYW1lLAorICAgIElOICBE
V09SRCAgIEludGVyZmFjZVZlcnNpb24KKyAgICApCit7CisgICAgSEtFWSAgICAgICAgS2V5Owor
ICAgIEhLRVkgICAgICAgIEludGVyZmFjZXNLZXk7CisgICAgSFJFU1VMVCAgICAgRXJyb3I7CisK
KyAgICBJbnRlcmZhY2VzS2V5ID0gT3BlbkludGVyZmFjZXNLZXkoUHJvdmlkZXJOYW1lKTsKKyAg
ICBpZiAoSW50ZXJmYWNlc0tleSA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAg
RXJyb3IgPSBSZWdDcmVhdGVLZXlFeChJbnRlcmZhY2VzS2V5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU3Vic2NyaWJlck5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJFR19PUFRJT05fTk9OX1ZPTEFUSUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
S0VZX0FMTF9BQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJktleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIFNldExhc3RF
cnJvcihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisgICAgRXJyb3IgPSBS
ZWdTZXRWYWx1ZUV4KEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlTmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgUkVHX0RXT1JELAorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgQllURSAqKSZJ
bnRlcmZhY2VWZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoRFdPUkQp
KTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgeworICAgICAgICBTZXRMYXN0RXJy
b3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwzOworICAgIH0KKworICAgIExvZygiJXM6ICVz
XyVzX0lOVEVSRkFDRV9WRVJTSU9OICV1IiwKKyAgICAgICAgU3Vic2NyaWJlck5hbWUsCisgICAg
ICAgIFByb3ZpZGVyTmFtZSwKKyAgICAgICAgSW50ZXJmYWNlTmFtZSwKKyAgICAgICAgSW50ZXJm
YWNlVmVyc2lvbik7CisKKyAgICBSZWdDbG9zZUtleShLZXkpOworICAgIFJlZ0Nsb3NlS2V5KElu
dGVyZmFjZXNLZXkpOworCisgICAgcmV0dXJuIFRSVUU7CisKK2ZhaWwzOgorICAgIFJlZ0Nsb3Nl
S2V5KEtleSk7CisKK2ZhaWwyOgorICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCitm
YWlsMToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENI
QVIgIE1lc3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwor
ICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1l
c3NhZ2UpOworICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKworI2RlZmluZSBTVUJTQ1JJ
QkVfSU5URVJGQUNFKF9Qcm92aWRlck5hbWUsIF9TdWJzY3JpYmVyTmFtZSwgX0ludGVyZmFjZU5h
bWUpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAoVk9JRCkgU3Vic2NyaWJlSW50ZXJmYWNlKCNfUHJv
dmlkZXJOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfU3Vic2NyaWJlck5hbWUs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfSW50ZXJmYWNlTmFtZSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9Qcm92aWRlck5hbWUgIyMgXyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBf
SU5URVJGQUNFX1ZFUlNJT05fTUFYKTsgXAorICAgIH0gd2hpbGUgKEZBTFNFKTsKKworc3RhdGlj
IEJPT0xFQU4KK1Vuc3Vic2NyaWJlSW50ZXJmYWNlcygKKyAgICBJTiAgUFRDSEFSICBQcm92aWRl
ck5hbWUsCisgICAgSU4gIFBUQ0hBUiAgU3Vic2NyaWJlck5hbWUKKyAgICApCit7CisgICAgSEtF
WSAgICAgICAgSW50ZXJmYWNlc0tleTsKKyAgICBIUkVTVUxUICAgICBFcnJvcjsKKworICAgIExv
ZygiJXM6ICVzIiwgU3Vic2NyaWJlck5hbWUsIFByb3ZpZGVyTmFtZSk7CisKKyAgICBJbnRlcmZh
Y2VzS2V5ID0gT3BlbkludGVyZmFjZXNLZXkoUHJvdmlkZXJOYW1lKTsKKyAgICBpZiAoSW50ZXJm
YWNlc0tleSA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDE7CisgICAgfQorCisgICAgRXJy
b3IgPSBSZWdEZWxldGVUcmVlKEludGVyZmFjZXNLZXksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIFN1YnNjcmliZXJOYW1lKTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgewor
ICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwyOworICAgIH0K
KworICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCisgICAgcmV0dXJuIFRSVUU7CisK
K2ZhaWwyOgorICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCitmYWlsMToKKyAgICBF
cnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1lc3NhZ2U7
CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAgICAgICBMb2co
ImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2UpOworICAg
IH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKwogc3RhdGljIEhSRVNVTFQKIERpZkluc3RhbGxQ
cmVQcm9jZXNzKAogICAgIElOICBIREVWSU5GTyAgICAgICAgICAgICAgICAgICAgRGV2aWNlSW5m
b1NldCwKQEAgLTIwMzEsNiArMjIwMSw4IEBAIERpZkluc3RhbGxQb3N0UHJvY2VzcygKICAgICB9
CiAKICAgICBpZiAoQWN0aXZlKSB7CisgICAgICAgIFNVQlNDUklCRV9JTlRFUkZBQ0UoWEVORklM
VCwgWEVOQlVTLCBVTlBMVUcpOworCiAgICAgICAgIChWT0lEKSBJbnN0YWxsRmlsdGVyKCZHVUlE
X0RFVkNMQVNTX1NZU1RFTSwgIlhFTkZJTFQiKTsKICAgICAgICAgKFZPSUQpIEluc3RhbGxGaWx0
ZXIoJkdVSURfREVWQ0xBU1NfSERDLCAiWEVORklMVCIpOwogICAgIH0KQEAgLTIxNjcsNiArMjMz
OSw4IEBAIERpZlJlbW92ZVByZVByb2Nlc3MoCiAKICAgICAgICAgKFZPSUQpIFJlbW92ZUZpbHRl
cigmR1VJRF9ERVZDTEFTU19IREMsICJYRU5GSUxUIik7CiAgICAgICAgIChWT0lEKSBSZW1vdmVG
aWx0ZXIoJkdVSURfREVWQ0xBU1NfU1lTVEVNLCAiWEVORklMVCIpOworCisgICAgICAgIFVuc3Vi
c2NyaWJlSW50ZXJmYWNlcygiWEVORklMVCIsICJYRU5CVVMiKTsKICAgICB9CiAKICAgICBmcmVl
KERldmljZUlEKTsKZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMvZmRvLmMgYi9zcmMveGVuYnVzL2Zk
by5jCmluZGV4IGNjMGM3NzUuLjFhMTIyYzAgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5idXMvZmRvLmMK
KysrIGIvc3JjL3hlbmJ1cy9mZG8uYwpAQCAtNDM0MSwxMyArNDM0MSw5IEBAIEZkb1JlbGVhc2VM
b3dlckJ1c0ludGVyZmFjZSgKICAgICBSdGxaZXJvTWVtb3J5KEJ1c0ludGVyZmFjZSwgc2l6ZW9m
IChCVVNfSU5URVJGQUNFX1NUQU5EQVJEKSk7CiB9CiAKLSNkZWZpbmUgU0VSVklDRVNfS0VZICAg
ICAgICBMIlxcUmVnaXN0cnlcXE1hY2hpbmVcXFNZU1RFTVxcQ3VycmVudENvbnRyb2xTZXRcXFNl
cnZpY2VzIgotCiBzdGF0aWMgTlRTVEFUVVMKIEZkb1F1ZXJ5SW50ZXJmYWNlKAogICAgIElOICBQ
WEVOQlVTX0ZETyAgICAgRmRvLAotICAgIElOICBjb25zdCBXQ0hBUiAgICAgKlByb3ZpZGVyTmFt
ZSwKLSAgICBJTiAgY29uc3QgQ0hBUiAgICAgICpJbnRlcmZhY2VOYW1lLAogICAgIElOICBjb25z
dCBHVUlEICAgICAgKkd1aWQsCiAgICAgSU4gIFVMT05HICAgICAgICAgICBWZXJzaW9uLAogICAg
IE9VVCBQSU5URVJGQUNFICAgICAgSW50ZXJmYWNlLApAQCAtNDM1NSw5ICs0MzUxLDYgQEAgRmRv
UXVlcnlJbnRlcmZhY2UoCiAgICAgSU4gIEJPT0xFQU4gICAgICAgICBPcHRpb25hbAogICAgICkK
IHsKLSAgICBVTklDT0RFX1NUUklORyAgICAgIFVuaWNvZGU7Ci0gICAgSEFORExFICAgICAgICAg
ICAgICBJbnRlcmZhY2VzS2V5OwotICAgIEhBTkRMRSAgICAgICAgICAgICAgU3Vic2NyaWJlcktl
eTsKICAgICBLRVZFTlQgICAgICAgICAgICAgIEV2ZW50OwogICAgIElPX1NUQVRVU19CTE9DSyAg
ICAgU3RhdHVzQmxvY2s7CiAgICAgUElSUCAgICAgICAgICAgICAgICBJcnA7CkBAIC00MzY2LDM4
ICs0MzU5LDYgQEAgRmRvUXVlcnlJbnRlcmZhY2UoCiAKICAgICBBU1NFUlQzVShLZUdldEN1cnJl
bnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVMKTsKIAotICAgIFVuaWNvZGUuTWF4aW11bUxlbmd0
aCA9IChVU0hPUlQpKCh3Y3NsZW4oU0VSVklDRVNfS0VZKSArCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3Y3NsZW4oUHJvdmlkZXJOYW1lKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y3Ns
ZW4oTCJJbnRlcmZhY2VzIikgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxKSAqIHNpemVvZiAoV0NIQVIpKTsKLQotICAgIFVuaWNvZGUuQnVmZmVyID0gX19GZG9BbGxv
Y2F0ZShVbmljb2RlLk1heGltdW1MZW5ndGgpOwotCi0gICAgc3RhdHVzID0gU1RBVFVTX05PX01F
TU9SWTsKLSAgICBpZiAoVW5pY29kZS5CdWZmZXIgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWls
MTsKLQotICAgIHN0YXR1cyA9IFJ0bFN0cmluZ0NiUHJpbnRmVyhVbmljb2RlLkJ1ZmZlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZS5NYXhpbXVtTGVuZ3RoLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFU19LRVkgTCJcXCV3c1xcSW50ZXJm
YWNlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3ZpZGVyTmFtZSk7Ci0g
ICAgQVNTRVJUKE5UX1NVQ0NFU1Moc3RhdHVzKSk7Ci0KLSAgICBVbmljb2RlLkxlbmd0aCA9IChV
U0hPUlQpKHdjc2xlbihVbmljb2RlLkJ1ZmZlcikgKiBzaXplb2YgKFdDSEFSKSk7Ci0KLSAgICBz
dGF0dXMgPSBSZWdpc3RyeU9wZW5LZXkoTlVMTCwgJlVuaWNvZGUsIEtFWV9SRUFELCAmSW50ZXJm
YWNlc0tleSk7Ci0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFp
bDI7Ci0KLSAgICBzdGF0dXMgPSBSZWdpc3RyeUNyZWF0ZVN1YktleShJbnRlcmZhY2VzS2V5LCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWEVOQlVTIiwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUkVHX09QVElPTl9OT05fVk9MQVRJTEUsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTdWJzY3JpYmVyS2V5KTsKLSAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMzsKLSAgICAgICAgICAgICAgICAg
ICAKICAgICBLZUluaXRpYWxpemVFdmVudCgmRXZlbnQsIE5vdGlmaWNhdGlvbkV2ZW50LCBGQUxT
RSk7CiAgICAgUnRsWmVyb01lbW9yeSgmU3RhdHVzQmxvY2ssIHNpemVvZihJT19TVEFUVVNfQkxP
Q0spKTsKIApAQCAtNDQxMSw3ICs0MzcyLDcgQEAgRmRvUXVlcnlJbnRlcmZhY2UoCiAKICAgICBz
dGF0dXMgPSBTVEFUVVNfVU5TVUNDRVNTRlVMOwogICAgIGlmIChJcnAgPT0gTlVMTCkKLSAgICAg
ICAgZ290byBmYWlsNDsKKyAgICAgICAgZ290byBmYWlsMTsKIAogICAgIFN0YWNrTG9jYXRpb24g
PSBJb0dldE5leHRJcnBTdGFja0xvY2F0aW9uKElycCk7CiAgICAgU3RhY2tMb2NhdGlvbi0+TWlu
b3JGdW5jdGlvbiA9IElSUF9NTl9RVUVSWV9JTlRFUkZBQ0U7CkBAIC00NDM3LDQ1ICs0Mzk4LDE1
IEBAIEZkb1F1ZXJ5SW50ZXJmYWNlKAogICAgICAgICBpZiAoc3RhdHVzID09IFNUQVRVU19OT1Rf
U1VQUE9SVEVEICYmIE9wdGlvbmFsKQogICAgICAgICAgICAgZ290byBkb25lOwogCi0gICAgICAg
IGdvdG8gZmFpbDU7CisgICAgICAgIGdvdG8gZmFpbDI7CiAgICAgfQogCi0gICAgc3RhdHVzID0g
UmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKFN1YnNjcmliZXJLZXksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChQQ0hBUilJbnRlcmZhY2VOYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uKTsKLSAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNjsKLQogZG9uZToKLSAgICBSZWdpc3RyeUNsb3Nl
S2V5KFN1YnNjcmliZXJLZXkpOwotCi0gICAgUmVnaXN0cnlDbG9zZUtleShJbnRlcmZhY2VzS2V5
KTsKLQotICAgIF9fRmRvRnJlZShVbmljb2RlLkJ1ZmZlcik7Ci0KICAgICByZXR1cm4gU1RBVFVT
X1NVQ0NFU1M7CiAKLWZhaWw2OgotICAgIEVycm9yKCJmYWlsNlxuIik7Ci0KLWZhaWw1OgotICAg
IEVycm9yKCJmYWlsNVxuIik7Ci0KLWZhaWw0OgotICAgIEVycm9yKCJmYWlsNFxuIik7Ci0KLSAg
ICBSZWdpc3RyeUNsb3NlS2V5KFN1YnNjcmliZXJLZXkpOwotCi1mYWlsMzoKLSAgICBFcnJvcigi
ZmFpbDNcbiIpOwotCi0gICAgUmVnaXN0cnlDbG9zZUtleShJbnRlcmZhY2VzS2V5KTsKLQogZmFp
bDI6CiAgICAgRXJyb3IoImZhaWwyXG4iKTsKIAotICAgIF9fRmRvRnJlZShVbmljb2RlLkJ1ZmZl
cik7Ci0KIGZhaWwxOgogICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CiAKQEAg
LTQ0ODYsMTggKzQ0MTcsMTUgQEAgZmFpbDE6CiAgICAgX0ZkbywgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgIF9Qcm92aWRlck5hbWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfSW50ZXJmYWNlTmFt
ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgX1ZlcnNpb24sICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIF9J
bnRlcmZhY2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfU2l6ZSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICAgX09wdGlvbmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIEZkb1F1ZXJ5SW50ZXJm
YWNlKChfRmRvKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIEwgIyMgI19Qcm92aWRlck5h
bWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
ICAgICAgICAgICAgICAgICAjX0ludGVyZmFjZU5hbWUsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgJkdVSURf
ICMjIF9Qcm92aWRlck5hbWUgIyMgXyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBfSU5URVJGQUNFLCAg
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgIChfVmVyc2lvbiksICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAg
ICAgICAoX0ludGVyZmFjZSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgKF9TaXplKSwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIChfT3B0aW9uYWwpKQorICAgICAgICAgICAgICAgICAgICAgICZHVUlE
XyAjIyBfUHJvdmlkZXJOYW1lICMjIF8gIyMgX0ludGVyZmFjZU5hbWUgIyMgX0lOVEVSRkFDRSwg
ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICBfUHJvdmlkZXJOYW1lICMjIF8gIyMgX0ludGVy
ZmFjZU5hbWUgIyMgX0lOVEVSRkFDRV9WRVJTSU9OX01BWCwgICBcCisgICAgICAgICAgICAgICAg
ICAgICAgKF9JbnRlcmZhY2UpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgIChfU2l6ZSksICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAoX09wdGlvbmFsKSkKIAogVk9JRAogRmRvR2V0VW5wbHVnSW50ZXJm
YWNlKApAQCAtNDY5NSw3ICs0NjIzLDYgQEAgRmRvQ3JlYXRlKAogICAgIHN0YXR1cyA9IEZET19R
VUVSWV9JTlRFUkZBQ0UoRmRvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVO
RklMVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOUExVRywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkZJTFRfVU5QTFVHX0lOVEVSRkFDRV9WRVJTSU9O
X01BWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQSU5URVJGQUNFKSZGZG8t
PlVucGx1Z0ludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv
ZiAoRmRvLT5VbnBsdWdJbnRlcmZhY2UpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVFJVRSk7CmRpZmYgLS1naXQgYS92czIwMTIveGVuYnVzX2NvaW5zdC94ZW5idXNfY29pbnN0
LnZjeHByb2ogYi92czIwMTIveGVuYnVzX2NvaW5zdC94ZW5idXNfY29pbnN0LnZjeHByb2oKaW5k
ZXggOTc2NTRhZC4uZTJjZmViOSAxMDA2NDQKLS0tIGEvdnMyMDEyL3hlbmJ1c19jb2luc3QveGVu
YnVzX2NvaW5zdC52Y3hwcm9qCisrKyBiL3ZzMjAxMi94ZW5idXNfY29pbnN0L3hlbmJ1c19jb2lu
c3QudmN4cHJvagpAQCAtMzQsNyArMzQsNyBAQAogCQkJPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+JChTb2x1dGlvbkRpcikuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CiAJCQk8UHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOQlVTX0NPSU5TVCI7JShQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgogCQkJPFdhcm5pbmdMZXZlbD5FbmFibGVB
bGxXYXJuaW5nczwvV2FybmluZ0xldmVsPgotCQkJPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3
MTE7NDU0ODs0ODIwOzQ2Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNX
YXJuaW5ncyk8L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgorCQkJPERpc2FibGVTcGVjaWZpY1dh
cm5pbmdzPjQxMjc7NDcxMTs0NTQ4OzQ4MjA7NDY2ODs0MjU1OzYwMDE7NjA1NDsyODE5NjslKERp
c2FibGVTcGVjaWZpY1dhcm5pbmdzKTwvRGlzYWJsZVNwZWNpZmljV2FybmluZ3M+CiAJCQk8TXVs
dGlQcm9jZXNzb3JDb21waWxhdGlvbj50cnVlPC9NdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPgog
CQkJPEVuYWJsZVBSRWZhc3Q+dHJ1ZTwvRW5hYmxlUFJFZmFzdD4KIAkJCTxSdW50aW1lTGlicmFy
eSBDb25kaXRpb249IickKFVzZURlYnVnTGlicmFyaWVzKSc9PSd0cnVlJyI+TXVsdGlUaHJlYWRl
ZERlYnVnPC9SdW50aW1lTGlicmFyeT4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5idXNfY29pbnN0
L3hlbmJ1c19jb2luc3QudmN4cHJvaiBiL3ZzMjAxMy94ZW5idXNfY29pbnN0L3hlbmJ1c19jb2lu
c3QudmN4cHJvagppbmRleCA0YWIyYzIwLi40OGVkMDViIDEwMDY0NAotLS0gYS92czIwMTMveGVu
YnVzX2NvaW5zdC94ZW5idXNfY29pbnN0LnZjeHByb2oKKysrIGIvdnMyMDEzL3hlbmJ1c19jb2lu
c3QveGVuYnVzX2NvaW5zdC52Y3hwcm9qCkBAIC0xLDQgKzEsNCBAQAot77u/PD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+CiA8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0i
MTIuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVp
bGQvMjAwMyI+CiAgIDxJbXBvcnQgUHJvamVjdD0iLi5cY29uZmlncy5wcm9wcyIgLz4KICAgPFBy
b3BlcnR5R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KQEAgLTYzLDcgKzYzLDcgQEAKICAg
ICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoU29sdXRpb25EaXIpLi5caW5jbHVk
ZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgogICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTkJV
U19DT0lOU1QiOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz4KICAgICAgIDxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5pbmdMZXZl
bD4KLSAgICAgIDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40NzExOzQ1NDg7NDgyMDs0NjY4OzQy
NTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9EaXNhYmxlU3Bl
Y2lmaWNXYXJuaW5ncz4KKyAgICAgIDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40MTI3OzQ3MTE7
NDU0ODs0ODIwOzQ2Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJu
aW5ncyk8L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgogICAgICAgPE11bHRpUHJvY2Vzc29yQ29t
cGlsYXRpb24+dHJ1ZTwvTXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj4KICAgICAgIDxFbmFibGVQ
UkVmYXN0PnRydWU8L0VuYWJsZVBSRWZhc3Q+CiAgICAgICA8UnVudGltZUxpYnJhcnkgQ29uZGl0
aW9uPSInJChVc2VEZWJ1Z0xpYnJhcmllcyknPT0ndHJ1ZSciPk11bHRpVGhyZWFkZWREZWJ1Zzwv
UnVudGltZUxpYnJhcnk+Ci0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 09 16:35:54 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 09 Jan 2015 16:35:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9cXR-0001qk-UQ; Fri, 09 Jan 2015 16:35:53 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <owen.smith@citrix.com>) id 1Y9cXR-0001qd-6Q
	for win-pv-devel@lists.xenproject.org; Fri, 09 Jan 2015 16:35:53 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	5B/30-25727-86300B45; Fri, 09 Jan 2015 16:35:52 +0000
X-Env-Sender: owen.smith@citrix.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1420821351!18496611!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG,
	UPPERCASE_25_50,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16276 invoked from network); 9 Jan 2015 16:35:51 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Jan 2015 16:35:51 -0000
X-IronPort-AV: E=Sophos;i="5.07,731,1413244800"; d="scan'208";a="28516803"
From: Owen Smith <owen.smith@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Handle storage query ioctls properly
Thread-Index: AQHQK1dgO4JilIquPkWc9JqM0LJ70py3/dWg
Date: Fri, 9 Jan 2015 16:35:49 +0000
Message-ID: <6624BC057AF4E240B6D036F5CC505B1204251160@AMSPEX01CL02.citrite.net>
References: <1420730661-4932-1-git-send-email-paul.durrant@citrix.com>
In-Reply-To: <1420730661-4932-1-git-send-email-paul.durrant@citrix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Paul Durrant <Paul.Durrant@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Handle storage query ioctls properly
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Looks good

Acked-by: Owen Smith <owen.smith@citrix.com>

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Paul Durrant
> Sent: 08 January 2015 15:24
> To: win-pv-devel@lists.xenproject.org
> Cc: Paul Durrant
> Subject: [win-pv-devel] [PATCH] Handle storage query ioctls properly
> 
> Both the ioctls we care about are METHOD_BUFFERED so ASSERT that and
> then use the associated IRP SystemBuffer, remembering to verify input and
> output sizes.
> Also we should only return (or expect returned) data in the case of a full
> query, as opposed to an existence query.
> 
> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
> ---
>  src/xendisk/pdo.c | 64 +++++++++++++++++++++++++++++++++++++++---
> -------------
>  1 file changed, 46 insertions(+), 18 deletions(-)
> 
> diff --git a/src/xendisk/pdo.c b/src/xendisk/pdo.c index 47559ba..fe11e18
> 100644
> --- a/src/xendisk/pdo.c
> +++ b/src/xendisk/pdo.c
> @@ -380,7 +380,10 @@ __PdoQueryProperty(
>      if (!NT_SUCCESS(Irp->IoStatus.Status))
>          goto done;
> 
> -    Descriptor = Irp->UserBuffer;
> +    if (Irp->IoStatus.Information !=
> (ULONG_PTR)sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR))
> +        goto done;
> +
> +    Descriptor = Irp->AssociatedIrp.SystemBuffer;
>      Pdo->SectorSize = Descriptor->BytesPerLogicalSector;
>      Verbose("%p : %u bytes per sector\n", Pdo->Dx->DeviceObject, Pdo-
> >SectorSize);
> 
> @@ -392,37 +395,58 @@ done:
> 
>  static DECLSPEC_NOINLINE NTSTATUS
>  PdoQueryProperty(
> -    IN  PXENDISK_PDO    Pdo,
> -    IN  PIRP            Irp
> +    IN  PXENDISK_PDO        Pdo,
> +    IN  PIRP                Irp
>      )
>  {
> +    PIO_STACK_LOCATION      StackLocation;
>      PSTORAGE_PROPERTY_QUERY Query;
> -    PDEVICE_TRIM_DESCRIPTOR Trim;
>      NTSTATUS                status;
> 
> +    StackLocation = IoGetCurrentIrpStackLocation(Irp);
> +
> +    if (StackLocation->Parameters.DeviceIoControl.InputBufferLength <
> +        sizeof (STORAGE_PROPERTY_QUERY))
> +        return PdoCompleteIrp(Pdo, Irp, STATUS_INFO_LENGTH_MISMATCH);
> +
>      Query = Irp->AssociatedIrp.SystemBuffer;
> 
>      switch (Query->PropertyId) {
>      case StorageAccessAlignmentProperty:
> -        IoCopyCurrentIrpStackLocationToNext(Irp);
> -        IoSetCompletionRoutine(Irp,
> -                                __PdoQueryProperty,
> -                                Pdo,
> -                                TRUE,
> -                                TRUE,
> -                                TRUE);
> -
> -        status = IoCallDriver(Pdo->LowerDeviceObject, Irp);
> +        if (Query->QueryType == PropertyStandardQuery) {
> +            IoCopyCurrentIrpStackLocationToNext(Irp);
> +            IoSetCompletionRoutine(Irp,
> +                                   __PdoQueryProperty,
> +                                   Pdo,
> +                                   TRUE,
> +                                   TRUE,
> +                                   TRUE);
> +
> +            status = IoCallDriver(Pdo->LowerDeviceObject, Irp);
> +        } else {
> +            status = PdoForwardIrpAndForget(Pdo, Irp);
> +        }
>          break;
> 
>      case StorageDeviceTrimProperty:
> -        Trim = Irp->AssociatedIrp.SystemBuffer;
> +        if (Query->QueryType == PropertyStandardQuery) {
> +            PDEVICE_TRIM_DESCRIPTOR Trim;
> 
> -        Trim->Version = 0;
> -        Trim->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
> -        Trim->TrimEnabled = TRUE;
> +            if (StackLocation->Parameters.DeviceIoControl.OutputBufferLength <
> +                sizeof (DEVICE_TRIM_DESCRIPTOR))
> +                return PdoCompleteIrp(Pdo, Irp,
> + STATUS_BUFFER_OVERFLOW);
> +
> +            Trim = Irp->AssociatedIrp.SystemBuffer;
> +
> +            Trim->Version = 0;
> +            Trim->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
> +            Trim->TrimEnabled = TRUE;
> +
> +            Irp->IoStatus.Information =
> (ULONG_PTR)sizeof(DEVICE_TRIM_DESCRIPTOR);
> +        } else {
> +            Irp->IoStatus.Information = 0;
> +        }
> 
> -        Irp->IoStatus.Information =
> (ULONG_PTR)sizeof(DEVICE_TRIM_DESCRIPTOR);
>          status = PdoCompleteIrp(Pdo, Irp, STATUS_SUCCESS);
>          break;
> 
> @@ -646,6 +670,7 @@ PdoDispatchControl(
>  {
>      PIO_STACK_LOCATION  StackLocation;
>      ULONG               ControlCode;
> +    ULONG               Method;
>      NTSTATUS            status;
> 
>      status = IoAcquireRemoveLock(&Pdo->Dx->RemoveLock, Irp); @@ -
> 654,13 +679,16 @@ PdoDispatchControl(
> 
>      StackLocation = IoGetCurrentIrpStackLocation(Irp);
>      ControlCode = StackLocation-
> >Parameters.DeviceIoControl.IoControlCode;
> +    Method = METHOD_FROM_CTL_CODE(ControlCode);
> 
>      switch (ControlCode) {
>      case IOCTL_STORAGE_QUERY_PROPERTY:
> +        ASSERT(Method == METHOD_BUFFERED);
>          status = PdoQueryProperty(Pdo, Irp);
>          break;
> 
>      case IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES:
> +        ASSERT(Method == METHOD_BUFFERED);
>          status = PdoManageDataSetAttributes(Pdo, Irp);
>          break;
> 
> --
> 2.1.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 09 16:35:54 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 09 Jan 2015 16:35:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1Y9cXR-0001qk-UQ; Fri, 09 Jan 2015 16:35:53 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <owen.smith@citrix.com>) id 1Y9cXR-0001qd-6Q
	for win-pv-devel@lists.xenproject.org; Fri, 09 Jan 2015 16:35:53 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	5B/30-25727-86300B45; Fri, 09 Jan 2015 16:35:52 +0000
X-Env-Sender: owen.smith@citrix.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1420821351!18496611!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG,
	UPPERCASE_25_50,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16276 invoked from network); 9 Jan 2015 16:35:51 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Jan 2015 16:35:51 -0000
X-IronPort-AV: E=Sophos;i="5.07,731,1413244800"; d="scan'208";a="28516803"
From: Owen Smith <owen.smith@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Handle storage query ioctls properly
Thread-Index: AQHQK1dgO4JilIquPkWc9JqM0LJ70py3/dWg
Date: Fri, 9 Jan 2015 16:35:49 +0000
Message-ID: <6624BC057AF4E240B6D036F5CC505B1204251160@AMSPEX01CL02.citrite.net>
References: <1420730661-4932-1-git-send-email-paul.durrant@citrix.com>
In-Reply-To: <1420730661-4932-1-git-send-email-paul.durrant@citrix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Paul Durrant <Paul.Durrant@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Handle storage query ioctls properly
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Looks good

Acked-by: Owen Smith <owen.smith@citrix.com>

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Paul Durrant
> Sent: 08 January 2015 15:24
> To: win-pv-devel@lists.xenproject.org
> Cc: Paul Durrant
> Subject: [win-pv-devel] [PATCH] Handle storage query ioctls properly
> 
> Both the ioctls we care about are METHOD_BUFFERED so ASSERT that and
> then use the associated IRP SystemBuffer, remembering to verify input and
> output sizes.
> Also we should only return (or expect returned) data in the case of a full
> query, as opposed to an existence query.
> 
> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
> ---
>  src/xendisk/pdo.c | 64 +++++++++++++++++++++++++++++++++++++++---
> -------------
>  1 file changed, 46 insertions(+), 18 deletions(-)
> 
> diff --git a/src/xendisk/pdo.c b/src/xendisk/pdo.c index 47559ba..fe11e18
> 100644
> --- a/src/xendisk/pdo.c
> +++ b/src/xendisk/pdo.c
> @@ -380,7 +380,10 @@ __PdoQueryProperty(
>      if (!NT_SUCCESS(Irp->IoStatus.Status))
>          goto done;
> 
> -    Descriptor = Irp->UserBuffer;
> +    if (Irp->IoStatus.Information !=
> (ULONG_PTR)sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR))
> +        goto done;
> +
> +    Descriptor = Irp->AssociatedIrp.SystemBuffer;
>      Pdo->SectorSize = Descriptor->BytesPerLogicalSector;
>      Verbose("%p : %u bytes per sector\n", Pdo->Dx->DeviceObject, Pdo-
> >SectorSize);
> 
> @@ -392,37 +395,58 @@ done:
> 
>  static DECLSPEC_NOINLINE NTSTATUS
>  PdoQueryProperty(
> -    IN  PXENDISK_PDO    Pdo,
> -    IN  PIRP            Irp
> +    IN  PXENDISK_PDO        Pdo,
> +    IN  PIRP                Irp
>      )
>  {
> +    PIO_STACK_LOCATION      StackLocation;
>      PSTORAGE_PROPERTY_QUERY Query;
> -    PDEVICE_TRIM_DESCRIPTOR Trim;
>      NTSTATUS                status;
> 
> +    StackLocation = IoGetCurrentIrpStackLocation(Irp);
> +
> +    if (StackLocation->Parameters.DeviceIoControl.InputBufferLength <
> +        sizeof (STORAGE_PROPERTY_QUERY))
> +        return PdoCompleteIrp(Pdo, Irp, STATUS_INFO_LENGTH_MISMATCH);
> +
>      Query = Irp->AssociatedIrp.SystemBuffer;
> 
>      switch (Query->PropertyId) {
>      case StorageAccessAlignmentProperty:
> -        IoCopyCurrentIrpStackLocationToNext(Irp);
> -        IoSetCompletionRoutine(Irp,
> -                                __PdoQueryProperty,
> -                                Pdo,
> -                                TRUE,
> -                                TRUE,
> -                                TRUE);
> -
> -        status = IoCallDriver(Pdo->LowerDeviceObject, Irp);
> +        if (Query->QueryType == PropertyStandardQuery) {
> +            IoCopyCurrentIrpStackLocationToNext(Irp);
> +            IoSetCompletionRoutine(Irp,
> +                                   __PdoQueryProperty,
> +                                   Pdo,
> +                                   TRUE,
> +                                   TRUE,
> +                                   TRUE);
> +
> +            status = IoCallDriver(Pdo->LowerDeviceObject, Irp);
> +        } else {
> +            status = PdoForwardIrpAndForget(Pdo, Irp);
> +        }
>          break;
> 
>      case StorageDeviceTrimProperty:
> -        Trim = Irp->AssociatedIrp.SystemBuffer;
> +        if (Query->QueryType == PropertyStandardQuery) {
> +            PDEVICE_TRIM_DESCRIPTOR Trim;
> 
> -        Trim->Version = 0;
> -        Trim->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
> -        Trim->TrimEnabled = TRUE;
> +            if (StackLocation->Parameters.DeviceIoControl.OutputBufferLength <
> +                sizeof (DEVICE_TRIM_DESCRIPTOR))
> +                return PdoCompleteIrp(Pdo, Irp,
> + STATUS_BUFFER_OVERFLOW);
> +
> +            Trim = Irp->AssociatedIrp.SystemBuffer;
> +
> +            Trim->Version = 0;
> +            Trim->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
> +            Trim->TrimEnabled = TRUE;
> +
> +            Irp->IoStatus.Information =
> (ULONG_PTR)sizeof(DEVICE_TRIM_DESCRIPTOR);
> +        } else {
> +            Irp->IoStatus.Information = 0;
> +        }
> 
> -        Irp->IoStatus.Information =
> (ULONG_PTR)sizeof(DEVICE_TRIM_DESCRIPTOR);
>          status = PdoCompleteIrp(Pdo, Irp, STATUS_SUCCESS);
>          break;
> 
> @@ -646,6 +670,7 @@ PdoDispatchControl(
>  {
>      PIO_STACK_LOCATION  StackLocation;
>      ULONG               ControlCode;
> +    ULONG               Method;
>      NTSTATUS            status;
> 
>      status = IoAcquireRemoveLock(&Pdo->Dx->RemoveLock, Irp); @@ -
> 654,13 +679,16 @@ PdoDispatchControl(
> 
>      StackLocation = IoGetCurrentIrpStackLocation(Irp);
>      ControlCode = StackLocation-
> >Parameters.DeviceIoControl.IoControlCode;
> +    Method = METHOD_FROM_CTL_CODE(ControlCode);
> 
>      switch (ControlCode) {
>      case IOCTL_STORAGE_QUERY_PROPERTY:
> +        ASSERT(Method == METHOD_BUFFERED);
>          status = PdoQueryProperty(Pdo, Irp);
>          break;
> 
>      case IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES:
> +        ASSERT(Method == METHOD_BUFFERED);
>          status = PdoManageDataSetAttributes(Pdo, Irp);
>          break;
> 
> --
> 2.1.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 10:02:29 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 10:02:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YAyIv-000130-Of; Tue, 13 Jan 2015 10:02:29 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YAyIt-00012t-Ea
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 10:02:27 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	95/57-25714-23DE4B45; Tue, 13 Jan 2015 10:02:26 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1421143343!17726247!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29630 invoked from network); 13 Jan 2015 10:02:25 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 10:02:25 -0000
X-IronPort-AV: E=Sophos;i="5.07,748,1413244800"; d="scan'208";a="215969257"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.78) with Microsoft SMTP Server id 14.3.210.2;
	Tue, 13 Jan 2015 05:02:22 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1YAyIo-0003se-34;
	Tue, 13 Jan 2015 10:02:22 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 13 Jan 2015 10:02:12 +0000
Message-ID: <1421143332-10336-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Move interface subscription code into
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Interface subscription is better handled at package installation time and
therefore the co-installer is the right place for it to live.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/coinst/coinst.c                        | 187 +++++++++++++++++++++++++++++
 src/xenvif/fdo.c                           |  99 ++-------------
 vs2012/xenvif_coinst/xenvif_coinst.vcxproj |   2 +-
 vs2013/xenvif_coinst/xenvif_coinst.vcxproj |   2 +-
 4 files changed, 199 insertions(+), 91 deletions(-)

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
index 0f6fc9f..bc3c214 100644
--- a/src/coinst/coinst.c
+++ b/src/coinst/coinst.c
@@ -35,6 +35,13 @@
 #include <stdlib.h>
 #include <strsafe.h>
 
+#include <debug_interface.h>
+#include <suspend_interface.h>
+#include <evtchn_interface.h>
+#include <store_interface.h>
+#include <range_set_interface.h>
+#include <cache_interface.h>
+#include <gnttab_interface.h>
 #include <vif_interface.h>
 
 #include <version.h>
@@ -742,6 +749,176 @@ fail1:
     return FALSE;
 }
 
+static HKEY
+OpenInterfacesKey(
+    IN  PTCHAR  ProviderName
+    )
+{
+    HRESULT     Result;
+    TCHAR       KeyName[MAX_PATH];
+    HKEY        Key;
+    HRESULT     Error;
+
+    Result = StringCbPrintf(KeyName,
+                            MAX_PATH,
+                            "%s\\%s\\Interfaces",
+                            SERVICES_KEY,
+                            ProviderName);
+    if (!SUCCEEDED(Result)) {
+        SetLastError(ERROR_BUFFER_OVERFLOW);
+        goto fail1;
+    }
+
+    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                         KeyName,
+                         0,
+                         KEY_ALL_ACCESS,
+                         &Key);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    return Key;
+
+fail2:
+    Log("fail2");
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = __GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return NULL;
+}
+
+static BOOLEAN
+SubscribeInterface(
+    IN  PTCHAR  ProviderName,
+    IN  PTCHAR  SubscriberName,
+    IN  PTCHAR  InterfaceName,
+    IN  DWORD   InterfaceVersion
+    )
+{
+    HKEY        Key;
+    HKEY        InterfacesKey;
+    HRESULT     Error;
+
+    InterfacesKey = OpenInterfacesKey(ProviderName);
+    if (InterfacesKey == NULL)
+        goto fail1;
+
+    Error = RegCreateKeyEx(InterfacesKey,
+                           SubscriberName,
+                           0,
+                           NULL,
+                           REG_OPTION_NON_VOLATILE,
+                           KEY_ALL_ACCESS,
+                           NULL,
+                           &Key,
+                           NULL);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    Error = RegSetValueEx(Key,
+                          InterfaceName,
+                          0,
+                          REG_DWORD,
+                          (const BYTE *)&InterfaceVersion,
+                          sizeof(DWORD));
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail3;
+    }
+
+    Log("%s: %s_%s_INTERFACE_VERSION %u",
+        SubscriberName,
+        ProviderName,
+        InterfaceName,
+        InterfaceVersion);
+
+    RegCloseKey(Key);
+    RegCloseKey(InterfacesKey);
+
+    return TRUE;
+
+fail3:
+    RegCloseKey(Key);
+
+fail2:
+    RegCloseKey(InterfacesKey);
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = __GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return FALSE;
+}
+
+#define SUBSCRIBE_INTERFACE(_ProviderName, _SubscriberName, _InterfaceName)                        \
+    do {                                                                                           \
+        (VOID) SubscribeInterface(#_ProviderName,                                                  \
+                                  #_SubscriberName,                                                \
+                                  #_InterfaceName,                                                 \
+                                  _ProviderName ## _ ## _InterfaceName ## _INTERFACE_VERSION_MAX); \
+    } while (FALSE);
+
+static BOOLEAN
+UnsubscribeInterfaces(
+    IN  PTCHAR  ProviderName,
+    IN  PTCHAR  SubscriberName
+    )
+{
+    HKEY        InterfacesKey;
+    HRESULT     Error;
+
+    Log("%s: %s", SubscriberName, ProviderName);
+
+    InterfacesKey = OpenInterfacesKey(ProviderName);
+    if (InterfacesKey == NULL) {
+        goto fail1;
+    }
+
+    Error = RegDeleteTree(InterfacesKey,
+                          SubscriberName);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    RegCloseKey(InterfacesKey);
+
+    return TRUE;
+
+fail2:
+    RegCloseKey(InterfacesKey);
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = __GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return FALSE;
+}
+
 static FORCEINLINE HRESULT
 __DifInstallPreProcess(
     IN  HDEVINFO                    DeviceInfoSet,
@@ -793,6 +970,14 @@ __DifInstallPostProcess(
 
     Log("====>");
 
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, DEBUG);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, SUSPEND);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, EVTCHN);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, STORE);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, RANGE_SET);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, CACHE);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, GNTTAB);
+
     (VOID) InstallUnplugService("NICS", "XENVIF");
 
     Log("<====");
@@ -871,6 +1056,8 @@ __DifRemovePreProcess(
 
     (VOID) RemoveUnplugService("NICS", "XENVIF");
 
+    UnsubscribeInterfaces("XENBUS", "XENVIF");
+
     Log("<====");
 
     return NO_ERROR; 
diff --git a/src/xenvif/fdo.c b/src/xenvif/fdo.c
index d57b10d..2f2e6bd 100644
--- a/src/xenvif/fdo.c
+++ b/src/xenvif/fdo.c
@@ -2606,13 +2606,9 @@ __FdoReleaseLowerBusInterface(
     RtlZeroMemory(BusInterface, sizeof (BUS_INTERFACE_STANDARD));
 }
 
-#define SERVICES_KEY        L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Services"
-
-static FORCEINLINE NTSTATUS
-__FdoQueryInterface(
+static NTSTATUS
+FdoQueryInterface(
     IN  PXENVIF_FDO     Fdo,
-    IN  const WCHAR     *ProviderName,
-    IN  const CHAR      *InterfaceName,
     IN  const GUID      *Guid,
     IN  ULONG           Version,
     OUT PINTERFACE      Interface,
@@ -2620,9 +2616,6 @@ __FdoQueryInterface(
     IN  BOOLEAN         Optional
     )
 {
-    UNICODE_STRING      Unicode;
-    HANDLE              InterfacesKey;
-    HANDLE              SubscriberKey;
     KEVENT              Event;
     IO_STATUS_BLOCK     StatusBlock;
     PIRP                Irp;
@@ -2631,38 +2624,6 @@ __FdoQueryInterface(
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
-    Unicode.MaximumLength = (USHORT)((wcslen(SERVICES_KEY) +
-                                      1 +
-                                      wcslen(ProviderName) +
-                                      1 +
-                                      wcslen(L"Interfaces") +
-                                      1) * sizeof (WCHAR));
-
-    Unicode.Buffer = __FdoAllocate(Unicode.MaximumLength);
-
-    status = STATUS_NO_MEMORY;
-    if (Unicode.Buffer == NULL)
-        goto fail1;
-
-    status = RtlStringCbPrintfW(Unicode.Buffer,
-                                Unicode.MaximumLength,
-                                SERVICES_KEY L"\\%ws\\Interfaces",
-                                ProviderName);
-    ASSERT(NT_SUCCESS(status));
-
-    Unicode.Length = (USHORT)(wcslen(Unicode.Buffer) * sizeof (WCHAR));
-
-    status = RegistryOpenKey(NULL, &Unicode, KEY_READ, &InterfacesKey);
-    if (!NT_SUCCESS(status))
-        goto fail2;
-
-    status = RegistryCreateSubKey(InterfacesKey, 
-                                  "XENVIF", 
-                                  REG_OPTION_NON_VOLATILE, 
-                                  &SubscriberKey);
-    if (!NT_SUCCESS(status))
-        goto fail3;
-                   
     KeInitializeEvent(&Event, NotificationEvent, FALSE);
     RtlZeroMemory(&StatusBlock, sizeof(IO_STATUS_BLOCK));
 
@@ -2676,7 +2637,7 @@ __FdoQueryInterface(
 
     status = STATUS_UNSUCCESSFUL;
     if (Irp == NULL)
-        goto fail4;
+        goto fail1;
 
     StackLocation = IoGetNextIrpStackLocation(Irp);
     StackLocation->MinorFunction = IRP_MN_QUERY_INTERFACE;
@@ -2702,45 +2663,15 @@ __FdoQueryInterface(
         if (status == STATUS_NOT_SUPPORTED && Optional)
             goto done;
 
-        goto fail5;
+        goto fail2;
     }
 
-    status = RegistryUpdateDwordValue(SubscriberKey,
-                                      (PCHAR)InterfaceName,
-                                      Version);
-    if (!NT_SUCCESS(status))
-        goto fail6;
-
 done:
-    RegistryCloseKey(SubscriberKey);
-
-    RegistryCloseKey(InterfacesKey);
-
-    __FdoFree(Unicode.Buffer);
-
     return STATUS_SUCCESS;
 
-fail6:
-    Error("fail6\n");
-
-fail5:
-    Error("fail5\n");
-
-fail4:
-    Error("fail4\n");
-
-    RegistryCloseKey(SubscriberKey);
-
-fail3:
-    Error("fail3\n");
-
-    RegistryCloseKey(InterfacesKey);
-
 fail2:
     Error("fail2\n");
 
-    __FdoFree(Unicode.Buffer);
-
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -2751,18 +2682,15 @@ fail1:
     _Fdo,                                                                               \
     _ProviderName,                                                                      \
     _InterfaceName,                                                                     \
-    _Version,                                                                           \
     _Interface,                                                                         \
     _Size,                                                                              \
     _Optional)                                                                          \
-    __FdoQueryInterface((_Fdo),                                                         \
-                        L ## #_ProviderName,                                            \
-                        #_InterfaceName,                                                \
-                        &GUID_ ## _ProviderName ## _ ## _InterfaceName ## _INTERFACE,   \
-                        (_Version),                                                     \
-                        (_Interface),                                                   \
-                        (_Size),                                                        \
-                        (_Optional))
+    FdoQueryInterface((_Fdo),                                                           \
+                      &GUID_ ## _ProviderName ## _ ## _InterfaceName ## _INTERFACE,     \
+                      _ProviderName ## _ ## _InterfaceName ## _INTERFACE_VERSION_MAX,   \
+                      (_Interface),                                                     \
+                      (_Size),                                                          \
+                      (_Optional))
 
 #define DEFINE_FDO_GET_INTERFACE(_Interface, _Type)                     \
 VOID                                                                    \
@@ -2854,7 +2782,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  DEBUG,
-                                 XENBUS_DEBUG_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->DebugInterface,
                                  sizeof (Fdo->DebugInterface),
                                  FALSE);
@@ -2864,7 +2791,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  SUSPEND,
-                                 XENBUS_SUSPEND_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->SuspendInterface,
                                  sizeof (Fdo->SuspendInterface),
                                  FALSE);
@@ -2874,7 +2800,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  EVTCHN,
-                                 XENBUS_EVTCHN_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->EvtchnInterface,
                                  sizeof (Fdo->EvtchnInterface),
                                  FALSE);
@@ -2884,7 +2809,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  STORE,
-                                 XENBUS_STORE_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->StoreInterface,
                                  sizeof (Fdo->StoreInterface),
                                  FALSE);
@@ -2894,7 +2818,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  RANGE_SET,
-                                 XENBUS_RANGE_SET_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->RangeSetInterface,
                                  sizeof (Fdo->RangeSetInterface),
                                  FALSE);
@@ -2904,7 +2827,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  CACHE,
-                                 XENBUS_CACHE_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->CacheInterface,
                                  sizeof (Fdo->CacheInterface),
                                  FALSE);
@@ -2914,7 +2836,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  GNTTAB,
-                                 XENBUS_GNTTAB_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->GnttabInterface,
                                  sizeof (Fdo->GnttabInterface),
                                  FALSE);
diff --git a/vs2012/xenvif_coinst/xenvif_coinst.vcxproj b/vs2012/xenvif_coinst/xenvif_coinst.vcxproj
index c95a12f..1eb1ea3 100644
--- a/vs2012/xenvif_coinst/xenvif_coinst.vcxproj
+++ b/vs2012/xenvif_coinst/xenvif_coinst.vcxproj
@@ -36,7 +36,7 @@
 		<ClCompile>
 			<PreprocessorDefinitions>__MODULE__="XENVIF_COINST";%(PreprocessorDefinitions)</PreprocessorDefinitions>
 			<WarningLevel>EnableAllWarnings</WarningLevel>
-			<DisableSpecificWarnings>4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+			<DisableSpecificWarnings>4127;4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
 			<MultiProcessorCompilation>true</MultiProcessorCompilation>
 			<EnablePREfast>true</EnablePREfast>
 			<RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
diff --git a/vs2013/xenvif_coinst/xenvif_coinst.vcxproj b/vs2013/xenvif_coinst/xenvif_coinst.vcxproj
index bfc1b4d..5624389 100644
--- a/vs2013/xenvif_coinst/xenvif_coinst.vcxproj
+++ b/vs2013/xenvif_coinst/xenvif_coinst.vcxproj
@@ -68,7 +68,7 @@
     <ClCompile>
       <PreprocessorDefinitions>__MODULE__="XENVIF_COINST";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <WarningLevel>EnableAllWarnings</WarningLevel>
-      <DisableSpecificWarnings>4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings>4127;4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <EnablePREfast>true</EnablePREfast>
       <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 10:02:29 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 10:02:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YAyIv-000130-Of; Tue, 13 Jan 2015 10:02:29 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YAyIt-00012t-Ea
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 10:02:27 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	95/57-25714-23DE4B45; Tue, 13 Jan 2015 10:02:26 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1421143343!17726247!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29630 invoked from network); 13 Jan 2015 10:02:25 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 10:02:25 -0000
X-IronPort-AV: E=Sophos;i="5.07,748,1413244800"; d="scan'208";a="215969257"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.78) with Microsoft SMTP Server id 14.3.210.2;
	Tue, 13 Jan 2015 05:02:22 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1YAyIo-0003se-34;
	Tue, 13 Jan 2015 10:02:22 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 13 Jan 2015 10:02:12 +0000
Message-ID: <1421143332-10336-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Move interface subscription code into
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Interface subscription is better handled at package installation time and
therefore the co-installer is the right place for it to live.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/coinst/coinst.c                        | 187 +++++++++++++++++++++++++++++
 src/xenvif/fdo.c                           |  99 ++-------------
 vs2012/xenvif_coinst/xenvif_coinst.vcxproj |   2 +-
 vs2013/xenvif_coinst/xenvif_coinst.vcxproj |   2 +-
 4 files changed, 199 insertions(+), 91 deletions(-)

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
index 0f6fc9f..bc3c214 100644
--- a/src/coinst/coinst.c
+++ b/src/coinst/coinst.c
@@ -35,6 +35,13 @@
 #include <stdlib.h>
 #include <strsafe.h>
 
+#include <debug_interface.h>
+#include <suspend_interface.h>
+#include <evtchn_interface.h>
+#include <store_interface.h>
+#include <range_set_interface.h>
+#include <cache_interface.h>
+#include <gnttab_interface.h>
 #include <vif_interface.h>
 
 #include <version.h>
@@ -742,6 +749,176 @@ fail1:
     return FALSE;
 }
 
+static HKEY
+OpenInterfacesKey(
+    IN  PTCHAR  ProviderName
+    )
+{
+    HRESULT     Result;
+    TCHAR       KeyName[MAX_PATH];
+    HKEY        Key;
+    HRESULT     Error;
+
+    Result = StringCbPrintf(KeyName,
+                            MAX_PATH,
+                            "%s\\%s\\Interfaces",
+                            SERVICES_KEY,
+                            ProviderName);
+    if (!SUCCEEDED(Result)) {
+        SetLastError(ERROR_BUFFER_OVERFLOW);
+        goto fail1;
+    }
+
+    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                         KeyName,
+                         0,
+                         KEY_ALL_ACCESS,
+                         &Key);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    return Key;
+
+fail2:
+    Log("fail2");
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = __GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return NULL;
+}
+
+static BOOLEAN
+SubscribeInterface(
+    IN  PTCHAR  ProviderName,
+    IN  PTCHAR  SubscriberName,
+    IN  PTCHAR  InterfaceName,
+    IN  DWORD   InterfaceVersion
+    )
+{
+    HKEY        Key;
+    HKEY        InterfacesKey;
+    HRESULT     Error;
+
+    InterfacesKey = OpenInterfacesKey(ProviderName);
+    if (InterfacesKey == NULL)
+        goto fail1;
+
+    Error = RegCreateKeyEx(InterfacesKey,
+                           SubscriberName,
+                           0,
+                           NULL,
+                           REG_OPTION_NON_VOLATILE,
+                           KEY_ALL_ACCESS,
+                           NULL,
+                           &Key,
+                           NULL);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    Error = RegSetValueEx(Key,
+                          InterfaceName,
+                          0,
+                          REG_DWORD,
+                          (const BYTE *)&InterfaceVersion,
+                          sizeof(DWORD));
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail3;
+    }
+
+    Log("%s: %s_%s_INTERFACE_VERSION %u",
+        SubscriberName,
+        ProviderName,
+        InterfaceName,
+        InterfaceVersion);
+
+    RegCloseKey(Key);
+    RegCloseKey(InterfacesKey);
+
+    return TRUE;
+
+fail3:
+    RegCloseKey(Key);
+
+fail2:
+    RegCloseKey(InterfacesKey);
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = __GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return FALSE;
+}
+
+#define SUBSCRIBE_INTERFACE(_ProviderName, _SubscriberName, _InterfaceName)                        \
+    do {                                                                                           \
+        (VOID) SubscribeInterface(#_ProviderName,                                                  \
+                                  #_SubscriberName,                                                \
+                                  #_InterfaceName,                                                 \
+                                  _ProviderName ## _ ## _InterfaceName ## _INTERFACE_VERSION_MAX); \
+    } while (FALSE);
+
+static BOOLEAN
+UnsubscribeInterfaces(
+    IN  PTCHAR  ProviderName,
+    IN  PTCHAR  SubscriberName
+    )
+{
+    HKEY        InterfacesKey;
+    HRESULT     Error;
+
+    Log("%s: %s", SubscriberName, ProviderName);
+
+    InterfacesKey = OpenInterfacesKey(ProviderName);
+    if (InterfacesKey == NULL) {
+        goto fail1;
+    }
+
+    Error = RegDeleteTree(InterfacesKey,
+                          SubscriberName);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    RegCloseKey(InterfacesKey);
+
+    return TRUE;
+
+fail2:
+    RegCloseKey(InterfacesKey);
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = __GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return FALSE;
+}
+
 static FORCEINLINE HRESULT
 __DifInstallPreProcess(
     IN  HDEVINFO                    DeviceInfoSet,
@@ -793,6 +970,14 @@ __DifInstallPostProcess(
 
     Log("====>");
 
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, DEBUG);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, SUSPEND);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, EVTCHN);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, STORE);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, RANGE_SET);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, CACHE);
+    SUBSCRIBE_INTERFACE(XENBUS, XENVIF, GNTTAB);
+
     (VOID) InstallUnplugService("NICS", "XENVIF");
 
     Log("<====");
@@ -871,6 +1056,8 @@ __DifRemovePreProcess(
 
     (VOID) RemoveUnplugService("NICS", "XENVIF");
 
+    UnsubscribeInterfaces("XENBUS", "XENVIF");
+
     Log("<====");
 
     return NO_ERROR; 
diff --git a/src/xenvif/fdo.c b/src/xenvif/fdo.c
index d57b10d..2f2e6bd 100644
--- a/src/xenvif/fdo.c
+++ b/src/xenvif/fdo.c
@@ -2606,13 +2606,9 @@ __FdoReleaseLowerBusInterface(
     RtlZeroMemory(BusInterface, sizeof (BUS_INTERFACE_STANDARD));
 }
 
-#define SERVICES_KEY        L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Services"
-
-static FORCEINLINE NTSTATUS
-__FdoQueryInterface(
+static NTSTATUS
+FdoQueryInterface(
     IN  PXENVIF_FDO     Fdo,
-    IN  const WCHAR     *ProviderName,
-    IN  const CHAR      *InterfaceName,
     IN  const GUID      *Guid,
     IN  ULONG           Version,
     OUT PINTERFACE      Interface,
@@ -2620,9 +2616,6 @@ __FdoQueryInterface(
     IN  BOOLEAN         Optional
     )
 {
-    UNICODE_STRING      Unicode;
-    HANDLE              InterfacesKey;
-    HANDLE              SubscriberKey;
     KEVENT              Event;
     IO_STATUS_BLOCK     StatusBlock;
     PIRP                Irp;
@@ -2631,38 +2624,6 @@ __FdoQueryInterface(
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
-    Unicode.MaximumLength = (USHORT)((wcslen(SERVICES_KEY) +
-                                      1 +
-                                      wcslen(ProviderName) +
-                                      1 +
-                                      wcslen(L"Interfaces") +
-                                      1) * sizeof (WCHAR));
-
-    Unicode.Buffer = __FdoAllocate(Unicode.MaximumLength);
-
-    status = STATUS_NO_MEMORY;
-    if (Unicode.Buffer == NULL)
-        goto fail1;
-
-    status = RtlStringCbPrintfW(Unicode.Buffer,
-                                Unicode.MaximumLength,
-                                SERVICES_KEY L"\\%ws\\Interfaces",
-                                ProviderName);
-    ASSERT(NT_SUCCESS(status));
-
-    Unicode.Length = (USHORT)(wcslen(Unicode.Buffer) * sizeof (WCHAR));
-
-    status = RegistryOpenKey(NULL, &Unicode, KEY_READ, &InterfacesKey);
-    if (!NT_SUCCESS(status))
-        goto fail2;
-
-    status = RegistryCreateSubKey(InterfacesKey, 
-                                  "XENVIF", 
-                                  REG_OPTION_NON_VOLATILE, 
-                                  &SubscriberKey);
-    if (!NT_SUCCESS(status))
-        goto fail3;
-                   
     KeInitializeEvent(&Event, NotificationEvent, FALSE);
     RtlZeroMemory(&StatusBlock, sizeof(IO_STATUS_BLOCK));
 
@@ -2676,7 +2637,7 @@ __FdoQueryInterface(
 
     status = STATUS_UNSUCCESSFUL;
     if (Irp == NULL)
-        goto fail4;
+        goto fail1;
 
     StackLocation = IoGetNextIrpStackLocation(Irp);
     StackLocation->MinorFunction = IRP_MN_QUERY_INTERFACE;
@@ -2702,45 +2663,15 @@ __FdoQueryInterface(
         if (status == STATUS_NOT_SUPPORTED && Optional)
             goto done;
 
-        goto fail5;
+        goto fail2;
     }
 
-    status = RegistryUpdateDwordValue(SubscriberKey,
-                                      (PCHAR)InterfaceName,
-                                      Version);
-    if (!NT_SUCCESS(status))
-        goto fail6;
-
 done:
-    RegistryCloseKey(SubscriberKey);
-
-    RegistryCloseKey(InterfacesKey);
-
-    __FdoFree(Unicode.Buffer);
-
     return STATUS_SUCCESS;
 
-fail6:
-    Error("fail6\n");
-
-fail5:
-    Error("fail5\n");
-
-fail4:
-    Error("fail4\n");
-
-    RegistryCloseKey(SubscriberKey);
-
-fail3:
-    Error("fail3\n");
-
-    RegistryCloseKey(InterfacesKey);
-
 fail2:
     Error("fail2\n");
 
-    __FdoFree(Unicode.Buffer);
-
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -2751,18 +2682,15 @@ fail1:
     _Fdo,                                                                               \
     _ProviderName,                                                                      \
     _InterfaceName,                                                                     \
-    _Version,                                                                           \
     _Interface,                                                                         \
     _Size,                                                                              \
     _Optional)                                                                          \
-    __FdoQueryInterface((_Fdo),                                                         \
-                        L ## #_ProviderName,                                            \
-                        #_InterfaceName,                                                \
-                        &GUID_ ## _ProviderName ## _ ## _InterfaceName ## _INTERFACE,   \
-                        (_Version),                                                     \
-                        (_Interface),                                                   \
-                        (_Size),                                                        \
-                        (_Optional))
+    FdoQueryInterface((_Fdo),                                                           \
+                      &GUID_ ## _ProviderName ## _ ## _InterfaceName ## _INTERFACE,     \
+                      _ProviderName ## _ ## _InterfaceName ## _INTERFACE_VERSION_MAX,   \
+                      (_Interface),                                                     \
+                      (_Size),                                                          \
+                      (_Optional))
 
 #define DEFINE_FDO_GET_INTERFACE(_Interface, _Type)                     \
 VOID                                                                    \
@@ -2854,7 +2782,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  DEBUG,
-                                 XENBUS_DEBUG_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->DebugInterface,
                                  sizeof (Fdo->DebugInterface),
                                  FALSE);
@@ -2864,7 +2791,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  SUSPEND,
-                                 XENBUS_SUSPEND_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->SuspendInterface,
                                  sizeof (Fdo->SuspendInterface),
                                  FALSE);
@@ -2874,7 +2800,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  EVTCHN,
-                                 XENBUS_EVTCHN_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->EvtchnInterface,
                                  sizeof (Fdo->EvtchnInterface),
                                  FALSE);
@@ -2884,7 +2809,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  STORE,
-                                 XENBUS_STORE_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->StoreInterface,
                                  sizeof (Fdo->StoreInterface),
                                  FALSE);
@@ -2894,7 +2818,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  RANGE_SET,
-                                 XENBUS_RANGE_SET_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->RangeSetInterface,
                                  sizeof (Fdo->RangeSetInterface),
                                  FALSE);
@@ -2904,7 +2827,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  CACHE,
-                                 XENBUS_CACHE_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->CacheInterface,
                                  sizeof (Fdo->CacheInterface),
                                  FALSE);
@@ -2914,7 +2836,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  GNTTAB,
-                                 XENBUS_GNTTAB_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->GnttabInterface,
                                  sizeof (Fdo->GnttabInterface),
                                  FALSE);
diff --git a/vs2012/xenvif_coinst/xenvif_coinst.vcxproj b/vs2012/xenvif_coinst/xenvif_coinst.vcxproj
index c95a12f..1eb1ea3 100644
--- a/vs2012/xenvif_coinst/xenvif_coinst.vcxproj
+++ b/vs2012/xenvif_coinst/xenvif_coinst.vcxproj
@@ -36,7 +36,7 @@
 		<ClCompile>
 			<PreprocessorDefinitions>__MODULE__="XENVIF_COINST";%(PreprocessorDefinitions)</PreprocessorDefinitions>
 			<WarningLevel>EnableAllWarnings</WarningLevel>
-			<DisableSpecificWarnings>4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+			<DisableSpecificWarnings>4127;4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
 			<MultiProcessorCompilation>true</MultiProcessorCompilation>
 			<EnablePREfast>true</EnablePREfast>
 			<RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
diff --git a/vs2013/xenvif_coinst/xenvif_coinst.vcxproj b/vs2013/xenvif_coinst/xenvif_coinst.vcxproj
index bfc1b4d..5624389 100644
--- a/vs2013/xenvif_coinst/xenvif_coinst.vcxproj
+++ b/vs2013/xenvif_coinst/xenvif_coinst.vcxproj
@@ -68,7 +68,7 @@
     <ClCompile>
       <PreprocessorDefinitions>__MODULE__="XENVIF_COINST";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <WarningLevel>EnableAllWarnings</WarningLevel>
-      <DisableSpecificWarnings>4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings>4127;4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <EnablePREfast>true</EnablePREfast>
       <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 10:02:56 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 10:02:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YAyJM-00013u-Qg; Tue, 13 Jan 2015 10:02:56 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YAyJM-00013n-Eu
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 10:02:56 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	FE/F3-26652-F4DE4B45; Tue, 13 Jan 2015 10:02:55 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1421143372!12301870!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24135 invoked from network); 13 Jan 2015 10:02:53 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 10:02:53 -0000
X-IronPort-AV: E=Sophos;i="5.07,748,1413244800"; d="scan'208";a="215969403"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.78) with Microsoft SMTP Server id 14.3.210.2;
	Tue, 13 Jan 2015 05:02:51 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1YAyJH-0003sm-AP;
	Tue, 13 Jan 2015 10:02:51 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 13 Jan 2015 10:02:42 +0000
Message-ID: <1421143362-11248-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Reflect interface versions in PDO description
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

For convenience add a string containing the latest versions of all the
interfaces exported by the driver into the PDO description. This can be
seen in Device Manager as the 'Bus reported device description' detail.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenvif/pdo.c | 150 ++++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 109 insertions(+), 41 deletions(-)

diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
index 90c08e9..ef5413c 100644
--- a/src/xenvif/pdo.c
+++ b/src/xenvif/pdo.c
@@ -75,6 +75,7 @@ struct _XENVIF_PDO {
     UNICODE_STRING              ContainerID;
 
     PULONG                      Revision;
+    PWCHAR                      *Description;
     ULONG                       Count;
 
     NET_LUID                    Luid;
@@ -507,43 +508,107 @@ fail1:
     return status;
 }
 
-static FORCEINLINE NTSTATUS
-__PdoAddRevision(
+#define MAXTEXTLEN  1024
+
+static FORCEINLINE PXENVIF_FDO
+__PdoGetFdo(
+    IN  PXENVIF_PDO Pdo
+    )
+{
+    return Pdo->Fdo;
+}
+
+PXENVIF_FDO
+PdoGetFdo(
+    IN  PXENVIF_PDO Pdo
+    )
+{
+    return __PdoGetFdo(Pdo);
+}
+
+static NTSTATUS
+PdoAddRevision(
     IN  PXENVIF_PDO Pdo,
-    IN  ULONG       Number
+    IN  ULONG       Revision,
+    IN  ULONG       Vif
     )
 {
-    PULONG          Revision;
+    PVOID           Buffer;
     ULONG           Count;
     NTSTATUS        status;
 
-    Trace("%d\n", Number);
-
     Count = Pdo->Count + 1;
-    Revision = __PdoAllocate(sizeof (ULONG) * Count);
+
+    Buffer = __PdoAllocate(sizeof (ULONG) * Count);
 
     status = STATUS_NO_MEMORY;
-    if (Revision == NULL)
+    if (Buffer == NULL)
         goto fail1;
 
     if (Pdo->Revision != NULL) {
-        RtlCopyMemory(Revision, Pdo->Revision, sizeof (ULONG) * Count);
+        RtlCopyMemory(Buffer,
+                      Pdo->Revision,
+                      sizeof (ULONG) * Pdo->Count);
         __PdoFree(Pdo->Revision);
     }
 
-    Revision[Pdo->Count++] = Number;
-    Pdo->Revision = Revision;
+    Pdo->Revision = Buffer;
+    Pdo->Revision[Pdo->Count] = Revision;
+
+    Buffer = __PdoAllocate(sizeof (PCHAR) * Count);
+
+    status = STATUS_NO_MEMORY;
+    if (Buffer == NULL)
+        goto fail2;
+
+    if (Pdo->Description != NULL) {
+        RtlCopyMemory(Buffer,
+                      Pdo->Description,
+                      sizeof (ULONG) * Pdo->Count);
+        __PdoFree(Pdo->Description);
+    }
+
+    Pdo->Description = Buffer;
+
+    Buffer = __PdoAllocate(MAXTEXTLEN * Count);
+
+    status = STATUS_NO_MEMORY;
+    if (Buffer == NULL)
+        goto fail3;
+
+    status = RtlStringCbPrintfW(Buffer,
+                                MAXTEXTLEN,
+                                L"%hs %hs: "
+                                L"VIF v%u",
+                                FdoGetName(__PdoGetFdo(Pdo)),
+                                __PdoGetName(Pdo),
+                                Vif);
+    ASSERT(NT_SUCCESS(status));
+
+    Pdo->Description[Pdo->Count] = Buffer;
+
+    Trace("%08x -> %ws\n",
+          Pdo->Revision[Pdo->Count],
+          Pdo->Description[Pdo->Count]);
+
+    Pdo->Count++;
 
     return STATUS_SUCCESS;
 
+fail3:
+    Error("fail3\n");
+
+fail2:
+    Error("fail2\n");
+
 fail1:
     Error("fail1 (%08x)\n", status);
 
     return status;
 }
 
-static FORCEINLINE NTSTATUS
-__PdoSetRevisions(
+static NTSTATUS
+PdoSetRevisions(
     IN  PXENVIF_PDO Pdo
     )
 {
@@ -554,7 +619,8 @@ __PdoSetRevisions(
     Revision = 0;
 
     // Enumerate all possible combinations of exported interface versions since v1
-    // and add a PDO revsion for each combination that's currently supported.
+    // and add a PDO revsion for each combination that's currently supported. Note that
+    // the exported interfaces include any interface queries we pass through.
     // We must enumerate from v1 to ensure that revision numbers don't change
     // even when a particular combination of interface versions becomes
     // unsupported. (See README.md for API versioning policy).
@@ -567,7 +633,8 @@ __PdoSetRevisions(
 
             if (Vif >= XENVIF_VIF_INTERFACE_VERSION_MIN &&
                 Cache >= XENBUS_CACHE_INTERFACE_VERSION_MIN) {
-                status = __PdoAddRevision(Pdo, Revision);
+                status = PdoAddRevision(Pdo, Revision,
+                                        Vif);
                 if (!NT_SUCCESS(status))
                     goto fail1;
             }
@@ -580,6 +647,13 @@ __PdoSetRevisions(
 fail1:
     Error("fail1 (%08x)\n", status);
 
+    if (Pdo->Description != NULL) {
+        while (--Revision > 0)
+            __PdoFree(Pdo->Description[Revision]);
+        __PdoFree(Pdo->Description);
+        Pdo->Description = NULL;
+    }
+
     if (Pdo->Revision != NULL) {
         __PdoFree(Pdo->Revision);
         Pdo->Revision = NULL;
@@ -608,22 +682,6 @@ PdoGetDeviceObject(
     return __PdoGetDeviceObject(Pdo);
 }
 
-static FORCEINLINE PXENVIF_FDO
-__PdoGetFdo(
-    IN  PXENVIF_PDO Pdo
-    )
-{
-    return Pdo->Fdo;
-}
-
-PXENVIF_FDO
-PdoGetFdo(
-    IN  PXENVIF_PDO Pdo
-    )
-{
-    return __PdoGetFdo(Pdo);
-}
-
 static FORCEINLINE PCHAR
 __PdoGetVendorName(
     IN  PXENVIF_PDO Pdo
@@ -1458,8 +1516,8 @@ done:
     return status;
 }
 
-static FORCEINLINE NTSTATUS
-__PdoDelegateIrp(
+static NTSTATUS
+PdoDelegateIrp(
     IN  PXENVIF_PDO Pdo,
     IN  PIRP        Irp
     )
@@ -1548,7 +1606,7 @@ struct _INTERFACE_ENTRY {
 struct _INTERFACE_ENTRY PdoInterfaceTable[] = {
     { &GUID_BUS_INTERFACE_STANDARD, "BUS_INTERFACE", PdoQueryBusInterface },
     { &GUID_XENVIF_VIF_INTERFACE, "VIF_INTERFACE", PdoQueryVifInterface },
-    { &GUID_XENBUS_CACHE_INTERFACE, "CACHE_INTERFACE", __PdoDelegateIrp },
+    { &GUID_XENBUS_CACHE_INTERFACE, "CACHE_INTERFACE", PdoDelegateIrp },
     { NULL, NULL, NULL }
 };
 
@@ -1659,8 +1717,6 @@ done:
     return status;
 }
 
-#define MAXTEXTLEN  128
-
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryDeviceText(
     IN  PXENVIF_PDO     Pdo,
@@ -1703,11 +1759,12 @@ PdoQueryDeviceText(
 
     switch (StackLocation->Parameters.QueryDeviceText.DeviceTextType) {
     case DeviceTextDescription: {
+        ULONG   Index = Pdo->Count - 1;
+
         status = RtlStringCbPrintfW(Buffer,
                                     MAXTEXTLEN,
-                                    L"%hs %hs",
-                                    FdoGetName(Pdo->Fdo),
-                                    __PdoGetName(Pdo));
+                                    L"%s",
+                                    Pdo->Description[Index]);
         ASSERT(NT_SUCCESS(status));
 
         Buffer += wcslen(Buffer);
@@ -1988,7 +2045,7 @@ PdoDeviceUsageNotification(
 {
     NTSTATUS        status;
 
-    status = __PdoDelegateIrp(Pdo, Irp);
+    status = PdoDelegateIrp(Pdo, Irp);
 
     Irp->IoStatus.Status = status;
     IoCompleteRequest(Irp, IO_NO_INCREMENT);
@@ -2547,7 +2604,7 @@ PdoCreate(
     if (!NT_SUCCESS(status))
         goto fail6;
 
-    status = __PdoSetRevisions(Pdo);
+    status = PdoSetRevisions(Pdo);
     if (!NT_SUCCESS(status))
         goto fail7;
 
@@ -2595,6 +2652,11 @@ fail9:
 fail8:
     Error("fail8\n");
 
+    for (Index = 0; Index < Pdo->Count; Index++)
+        __PdoFree(Pdo->Description[Index]);
+    __PdoFree(Pdo->Description);
+    Pdo->Description = NULL;
+
     __PdoFree(Pdo->Revision);
     Pdo->Revision = NULL;
     Pdo->Count = 0;
@@ -2652,6 +2714,7 @@ PdoDestroy(
     PXENVIF_DX      Dx = Pdo->Dx;
     PDEVICE_OBJECT  PhysicalDeviceObject = Dx->DeviceObject;
     PXENVIF_FDO     Fdo = __PdoGetFdo(Pdo);
+    ULONG           Index;
 
     ASSERT3U(__PdoGetDevicePnpState(Pdo), ==, Deleted);
 
@@ -2680,6 +2743,11 @@ PdoDestroy(
 
     BusTeardown(&Pdo->BusInterface);
 
+    for (Index = 0; Index < Pdo->Count; Index++)
+        __PdoFree(Pdo->Description[Index]);
+    __PdoFree(Pdo->Description);
+    Pdo->Description = NULL;
+
     __PdoFree(Pdo->Revision);
     Pdo->Revision = NULL;
     Pdo->Count = 0;
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 10:02:56 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 10:02:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YAyJM-00013u-Qg; Tue, 13 Jan 2015 10:02:56 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YAyJM-00013n-Eu
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 10:02:56 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	FE/F3-26652-F4DE4B45; Tue, 13 Jan 2015 10:02:55 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1421143372!12301870!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24135 invoked from network); 13 Jan 2015 10:02:53 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 10:02:53 -0000
X-IronPort-AV: E=Sophos;i="5.07,748,1413244800"; d="scan'208";a="215969403"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.78) with Microsoft SMTP Server id 14.3.210.2;
	Tue, 13 Jan 2015 05:02:51 -0500
Received: from fountains.uk.xensource.com ([10.80.2.29]
	helo=localhost.localdomain)	by ukmail1.uk.xensource.com with esmtp
	(Exim
	4.69)	(envelope-from <paul.durrant@citrix.com>)	id 1YAyJH-0003sm-AP;
	Tue, 13 Jan 2015 10:02:51 +0000
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 13 Jan 2015 10:02:42 +0000
Message-ID: <1421143362-11248-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Reflect interface versions in PDO description
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

For convenience add a string containing the latest versions of all the
interfaces exported by the driver into the PDO description. This can be
seen in Device Manager as the 'Bus reported device description' detail.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenvif/pdo.c | 150 ++++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 109 insertions(+), 41 deletions(-)

diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
index 90c08e9..ef5413c 100644
--- a/src/xenvif/pdo.c
+++ b/src/xenvif/pdo.c
@@ -75,6 +75,7 @@ struct _XENVIF_PDO {
     UNICODE_STRING              ContainerID;
 
     PULONG                      Revision;
+    PWCHAR                      *Description;
     ULONG                       Count;
 
     NET_LUID                    Luid;
@@ -507,43 +508,107 @@ fail1:
     return status;
 }
 
-static FORCEINLINE NTSTATUS
-__PdoAddRevision(
+#define MAXTEXTLEN  1024
+
+static FORCEINLINE PXENVIF_FDO
+__PdoGetFdo(
+    IN  PXENVIF_PDO Pdo
+    )
+{
+    return Pdo->Fdo;
+}
+
+PXENVIF_FDO
+PdoGetFdo(
+    IN  PXENVIF_PDO Pdo
+    )
+{
+    return __PdoGetFdo(Pdo);
+}
+
+static NTSTATUS
+PdoAddRevision(
     IN  PXENVIF_PDO Pdo,
-    IN  ULONG       Number
+    IN  ULONG       Revision,
+    IN  ULONG       Vif
     )
 {
-    PULONG          Revision;
+    PVOID           Buffer;
     ULONG           Count;
     NTSTATUS        status;
 
-    Trace("%d\n", Number);
-
     Count = Pdo->Count + 1;
-    Revision = __PdoAllocate(sizeof (ULONG) * Count);
+
+    Buffer = __PdoAllocate(sizeof (ULONG) * Count);
 
     status = STATUS_NO_MEMORY;
-    if (Revision == NULL)
+    if (Buffer == NULL)
         goto fail1;
 
     if (Pdo->Revision != NULL) {
-        RtlCopyMemory(Revision, Pdo->Revision, sizeof (ULONG) * Count);
+        RtlCopyMemory(Buffer,
+                      Pdo->Revision,
+                      sizeof (ULONG) * Pdo->Count);
         __PdoFree(Pdo->Revision);
     }
 
-    Revision[Pdo->Count++] = Number;
-    Pdo->Revision = Revision;
+    Pdo->Revision = Buffer;
+    Pdo->Revision[Pdo->Count] = Revision;
+
+    Buffer = __PdoAllocate(sizeof (PCHAR) * Count);
+
+    status = STATUS_NO_MEMORY;
+    if (Buffer == NULL)
+        goto fail2;
+
+    if (Pdo->Description != NULL) {
+        RtlCopyMemory(Buffer,
+                      Pdo->Description,
+                      sizeof (ULONG) * Pdo->Count);
+        __PdoFree(Pdo->Description);
+    }
+
+    Pdo->Description = Buffer;
+
+    Buffer = __PdoAllocate(MAXTEXTLEN * Count);
+
+    status = STATUS_NO_MEMORY;
+    if (Buffer == NULL)
+        goto fail3;
+
+    status = RtlStringCbPrintfW(Buffer,
+                                MAXTEXTLEN,
+                                L"%hs %hs: "
+                                L"VIF v%u",
+                                FdoGetName(__PdoGetFdo(Pdo)),
+                                __PdoGetName(Pdo),
+                                Vif);
+    ASSERT(NT_SUCCESS(status));
+
+    Pdo->Description[Pdo->Count] = Buffer;
+
+    Trace("%08x -> %ws\n",
+          Pdo->Revision[Pdo->Count],
+          Pdo->Description[Pdo->Count]);
+
+    Pdo->Count++;
 
     return STATUS_SUCCESS;
 
+fail3:
+    Error("fail3\n");
+
+fail2:
+    Error("fail2\n");
+
 fail1:
     Error("fail1 (%08x)\n", status);
 
     return status;
 }
 
-static FORCEINLINE NTSTATUS
-__PdoSetRevisions(
+static NTSTATUS
+PdoSetRevisions(
     IN  PXENVIF_PDO Pdo
     )
 {
@@ -554,7 +619,8 @@ __PdoSetRevisions(
     Revision = 0;
 
     // Enumerate all possible combinations of exported interface versions since v1
-    // and add a PDO revsion for each combination that's currently supported.
+    // and add a PDO revsion for each combination that's currently supported. Note that
+    // the exported interfaces include any interface queries we pass through.
     // We must enumerate from v1 to ensure that revision numbers don't change
     // even when a particular combination of interface versions becomes
     // unsupported. (See README.md for API versioning policy).
@@ -567,7 +633,8 @@ __PdoSetRevisions(
 
             if (Vif >= XENVIF_VIF_INTERFACE_VERSION_MIN &&
                 Cache >= XENBUS_CACHE_INTERFACE_VERSION_MIN) {
-                status = __PdoAddRevision(Pdo, Revision);
+                status = PdoAddRevision(Pdo, Revision,
+                                        Vif);
                 if (!NT_SUCCESS(status))
                     goto fail1;
             }
@@ -580,6 +647,13 @@ __PdoSetRevisions(
 fail1:
     Error("fail1 (%08x)\n", status);
 
+    if (Pdo->Description != NULL) {
+        while (--Revision > 0)
+            __PdoFree(Pdo->Description[Revision]);
+        __PdoFree(Pdo->Description);
+        Pdo->Description = NULL;
+    }
+
     if (Pdo->Revision != NULL) {
         __PdoFree(Pdo->Revision);
         Pdo->Revision = NULL;
@@ -608,22 +682,6 @@ PdoGetDeviceObject(
     return __PdoGetDeviceObject(Pdo);
 }
 
-static FORCEINLINE PXENVIF_FDO
-__PdoGetFdo(
-    IN  PXENVIF_PDO Pdo
-    )
-{
-    return Pdo->Fdo;
-}
-
-PXENVIF_FDO
-PdoGetFdo(
-    IN  PXENVIF_PDO Pdo
-    )
-{
-    return __PdoGetFdo(Pdo);
-}
-
 static FORCEINLINE PCHAR
 __PdoGetVendorName(
     IN  PXENVIF_PDO Pdo
@@ -1458,8 +1516,8 @@ done:
     return status;
 }
 
-static FORCEINLINE NTSTATUS
-__PdoDelegateIrp(
+static NTSTATUS
+PdoDelegateIrp(
     IN  PXENVIF_PDO Pdo,
     IN  PIRP        Irp
     )
@@ -1548,7 +1606,7 @@ struct _INTERFACE_ENTRY {
 struct _INTERFACE_ENTRY PdoInterfaceTable[] = {
     { &GUID_BUS_INTERFACE_STANDARD, "BUS_INTERFACE", PdoQueryBusInterface },
     { &GUID_XENVIF_VIF_INTERFACE, "VIF_INTERFACE", PdoQueryVifInterface },
-    { &GUID_XENBUS_CACHE_INTERFACE, "CACHE_INTERFACE", __PdoDelegateIrp },
+    { &GUID_XENBUS_CACHE_INTERFACE, "CACHE_INTERFACE", PdoDelegateIrp },
     { NULL, NULL, NULL }
 };
 
@@ -1659,8 +1717,6 @@ done:
     return status;
 }
 
-#define MAXTEXTLEN  128
-
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryDeviceText(
     IN  PXENVIF_PDO     Pdo,
@@ -1703,11 +1759,12 @@ PdoQueryDeviceText(
 
     switch (StackLocation->Parameters.QueryDeviceText.DeviceTextType) {
     case DeviceTextDescription: {
+        ULONG   Index = Pdo->Count - 1;
+
         status = RtlStringCbPrintfW(Buffer,
                                     MAXTEXTLEN,
-                                    L"%hs %hs",
-                                    FdoGetName(Pdo->Fdo),
-                                    __PdoGetName(Pdo));
+                                    L"%s",
+                                    Pdo->Description[Index]);
         ASSERT(NT_SUCCESS(status));
 
         Buffer += wcslen(Buffer);
@@ -1988,7 +2045,7 @@ PdoDeviceUsageNotification(
 {
     NTSTATUS        status;
 
-    status = __PdoDelegateIrp(Pdo, Irp);
+    status = PdoDelegateIrp(Pdo, Irp);
 
     Irp->IoStatus.Status = status;
     IoCompleteRequest(Irp, IO_NO_INCREMENT);
@@ -2547,7 +2604,7 @@ PdoCreate(
     if (!NT_SUCCESS(status))
         goto fail6;
 
-    status = __PdoSetRevisions(Pdo);
+    status = PdoSetRevisions(Pdo);
     if (!NT_SUCCESS(status))
         goto fail7;
 
@@ -2595,6 +2652,11 @@ fail9:
 fail8:
     Error("fail8\n");
 
+    for (Index = 0; Index < Pdo->Count; Index++)
+        __PdoFree(Pdo->Description[Index]);
+    __PdoFree(Pdo->Description);
+    Pdo->Description = NULL;
+
     __PdoFree(Pdo->Revision);
     Pdo->Revision = NULL;
     Pdo->Count = 0;
@@ -2652,6 +2714,7 @@ PdoDestroy(
     PXENVIF_DX      Dx = Pdo->Dx;
     PDEVICE_OBJECT  PhysicalDeviceObject = Dx->DeviceObject;
     PXENVIF_FDO     Fdo = __PdoGetFdo(Pdo);
+    ULONG           Index;
 
     ASSERT3U(__PdoGetDevicePnpState(Pdo), ==, Deleted);
 
@@ -2680,6 +2743,11 @@ PdoDestroy(
 
     BusTeardown(&Pdo->BusInterface);
 
+    for (Index = 0; Index < Pdo->Count; Index++)
+        __PdoFree(Pdo->Description[Index]);
+    __PdoFree(Pdo->Description);
+    Pdo->Description = NULL;
+
     __PdoFree(Pdo->Revision);
     Pdo->Revision = NULL;
     Pdo->Count = 0;
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 17:20:06 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 17:20:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YB58Q-0000xj-OT; Tue, 13 Jan 2015 17:20:06 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YB504-0007er-Pa
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 17:11:29 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	2E/2B-09842-0C155B45; Tue, 13 Jan 2015 17:11:28 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-21.messagelabs.com!1421169085!21200374!1
X-Originating-IP: [74.125.82.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21613 invoked from network); 13 Jan 2015 17:11:25 -0000
Received: from mail-wg0-f52.google.com (HELO mail-wg0-f52.google.com)
	(74.125.82.52)
	by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 17:11:25 -0000
Received: by mail-wg0-f52.google.com with SMTP id x12so4181706wgg.11
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 13 Jan 2015 09:11:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=kqwoEAYSPnPZjDqIT+LvkFxTFCEOS1VZO9bczoQAm0s=;
	b=HVZJOcnPXnPySPXWDL88td3GjQp0jqE4KKHCKv3n+kE8BT4OQFZrxC0ETDpnRfufO/
	h7fVWVzCP7AXmLGAWZHfJhVDh/WiKRvvCcygumbuOJS0EXA0HYVpX/rwF2Fg8fwGjIOF
	Uy0ENYzsAyt8uwU2i6qZ6nNlbKCNDWEV+PT0iM+LwzmTQgOeROe90iR3c7VB6VV1Cecu
	LhL+CqBgRVfSrBd4/2mUuZrV3Q/Tgg98h6mFZHVdKwoJVyJvPJyqEen/6Lp8Glckff51
	5HiKgvdzZ4JBez2DYLRl3WaGcCLzuB1Ks+pEhML+zYSp8nKtF2tZoEFOZAkTn7y1sGFt
	stcw==
X-Received: by 10.180.208.112 with SMTP id md16mr489258wic.37.1421169085190;
	Tue, 13 Jan 2015 09:11:25 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id w3sm26488719wjf.3.2015.01.13.09.11.23
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 13 Jan 2015 09:11:24 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 13 Jan 2015 17:11:08 +0000
Message-Id: <1421169069-8380-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
References: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
X-Mailman-Approved-At: Tue, 13 Jan 2015 17:20:05 +0000
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Add a co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The co-installer does not do anything as yet. Functionality will be added in
a subsequent patch.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/coinst/coinst.c                                | 493 +++++++++++++++++++++
 src/coinst/xeniface_coinst.def                     |  37 ++
 src/xeniface.inf                                   |  16 +
 vs2012/package/package.vcxproj                     |   3 +
 vs2012/xeniface.sln                                | 173 +++++---
 vs2012/xeniface/xeniface.vcxproj                   |   6 +-
 vs2012/xeniface_coinst/xeniface_coinst.vcxproj     |  85 ++++
 .../xeniface_coinst/xeniface_coinst.vcxproj.user   |   8 +
 vs2013/package/package.vcxproj                     |   3 +
 vs2013/xeniface.sln                                |  56 ++-
 vs2013/xeniface/xeniface.vcxproj                   |   6 +-
 vs2013/xeniface_coinst/xeniface_coinst.vcxproj     | 113 +++++
 .../xeniface_coinst/xeniface_coinst.vcxproj.user   |   8 +
 13 files changed, 937 insertions(+), 70 deletions(-)
 create mode 100644 src/coinst/coinst.c
 create mode 100644 src/coinst/xeniface_coinst.def
 create mode 100644 vs2012/xeniface_coinst/xeniface_coinst.vcxproj
 create mode 100644 vs2012/xeniface_coinst/xeniface_coinst.vcxproj.user
 create mode 100644 vs2013/xeniface_coinst/xeniface_coinst.vcxproj
 create mode 100644 vs2013/xeniface_coinst/xeniface_coinst.vcxproj.user

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
new file mode 100644
index 0000000..cd3d1e0
--- /dev/null
+++ b/src/coinst/coinst.c
@@ -0,0 +1,493 @@
+/* Copyright (c) Citrix Systems Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms,
+ * with or without modification, are permitted provided
+ * that the following conditions are met:
+ *
+ * *   Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the
+ *     following disclaimer.
+ * *   Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the
+ *     following disclaimer in the documentation and/or other
+ *     materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#define INITGUID
+
+#include <windows.h>
+#include <setupapi.h>
+#include <devguid.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <strsafe.h>
+#include <malloc.h>
+#include <assert.h>
+
+#include <suspend_interface.h>
+#include <shared_info_interface.h>
+#include <store_interface.h>
+
+#include <version.h>
+
+__user_code;
+
+#define MAXIMUM_BUFFER_SIZE 1024
+
+#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
+
+#define SERVICE_KEY(_Driver)    \
+        SERVICES_KEY ## "\\" ## #_Driver
+
+#define PARAMETERS_KEY(_Driver) \
+        SERVICE_KEY(_Driver) ## "\\Parameters"
+
+#define CONTROL_KEY "SYSTEM\\CurrentControlSet\\Control"
+
+#define CLASS_KEY   \
+        CONTROL_KEY ## "\\Class"
+
+#define ENUM_KEY    "SYSTEM\\CurrentControlSet\\Enum"
+
+static VOID
+#pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds /analyze:stacksize'1024'
+__Log(
+    IN  const CHAR  *Format,
+    IN  ...
+    )
+{
+    TCHAR               Buffer[MAXIMUM_BUFFER_SIZE];
+    va_list             Arguments;
+    size_t              Length;
+    SP_LOG_TOKEN        LogToken;
+    DWORD               Category;
+    DWORD               Flags;
+    HRESULT             Result;
+
+    va_start(Arguments, Format);
+    Result = StringCchVPrintf(Buffer, MAXIMUM_BUFFER_SIZE, Format, Arguments);
+    va_end(Arguments);
+
+    if (Result != S_OK && Result != STRSAFE_E_INSUFFICIENT_BUFFER)
+        return;
+
+    Result = StringCchLength(Buffer, MAXIMUM_BUFFER_SIZE, &Length);
+    if (Result != S_OK)
+        return;
+
+    LogToken = SetupGetThreadLogToken();
+    Category = TXTLOG_VENDOR;
+    Flags = TXTLOG_DETAILS;
+
+    SetupWriteTextLog(LogToken, Category, Flags, Buffer);
+    Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2);
+
+    __analysis_assume(Length < MAXIMUM_BUFFER_SIZE);
+    __analysis_assume(Length >= 2);
+    Buffer[Length] = '\0';
+    Buffer[Length - 1] = '\n';
+    Buffer[Length - 2] = '\r';
+
+    OutputDebugString(Buffer);
+}
+
+#define Log(_Format, ...) \
+        __Log(__MODULE__ "|" __FUNCTION__ ": " _Format, __VA_ARGS__)
+
+static PTCHAR
+GetErrorMessage(
+    IN  DWORD   Error
+    )
+{
+    PTCHAR      Message;
+    ULONG       Index;
+
+    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+                  FORMAT_MESSAGE_FROM_SYSTEM |
+                  FORMAT_MESSAGE_IGNORE_INSERTS,
+                  NULL,
+                  Error,
+                  MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+                  (LPTSTR)&Message,
+                  0,
+                  NULL);
+
+    for (Index = 0; Message[Index] != '\0'; Index++) {
+        if (Message[Index] == '\r' || Message[Index] == '\n') {
+            Message[Index] = '\0';
+            break;
+        }
+    }
+
+    return Message;
+}
+
+static const CHAR *
+FunctionName(
+    IN  DI_FUNCTION Function
+    )
+{
+#define _NAME(_Function)        \
+        case DIF_ ## _Function: \
+            return #_Function;
+
+    switch (Function) {
+    _NAME(INSTALLDEVICE);
+    _NAME(REMOVE);
+    _NAME(SELECTDEVICE);
+    _NAME(ASSIGNRESOURCES);
+    _NAME(PROPERTIES);
+    _NAME(FIRSTTIMESETUP);
+    _NAME(FOUNDDEVICE);
+    _NAME(SELECTCLASSDRIVERS);
+    _NAME(VALIDATECLASSDRIVERS);
+    _NAME(INSTALLCLASSDRIVERS);
+    _NAME(CALCDISKSPACE);
+    _NAME(DESTROYPRIVATEDATA);
+    _NAME(VALIDATEDRIVER);
+    _NAME(MOVEDEVICE);
+    _NAME(DETECT);
+    _NAME(INSTALLWIZARD);
+    _NAME(DESTROYWIZARDDATA);
+    _NAME(PROPERTYCHANGE);
+    _NAME(ENABLECLASS);
+    _NAME(DETECTVERIFY);
+    _NAME(INSTALLDEVICEFILES);
+    _NAME(ALLOW_INSTALL);
+    _NAME(SELECTBESTCOMPATDRV);
+    _NAME(REGISTERDEVICE);
+    _NAME(NEWDEVICEWIZARD_PRESELECT);
+    _NAME(NEWDEVICEWIZARD_SELECT);
+    _NAME(NEWDEVICEWIZARD_PREANALYZE);
+    _NAME(NEWDEVICEWIZARD_POSTANALYZE);
+    _NAME(NEWDEVICEWIZARD_FINISHINSTALL);
+    _NAME(INSTALLINTERFACES);
+    _NAME(DETECTCANCEL);
+    _NAME(REGISTER_COINSTALLERS);
+    _NAME(ADDPROPERTYPAGE_ADVANCED);
+    _NAME(ADDPROPERTYPAGE_BASIC);
+    _NAME(TROUBLESHOOTER);
+    _NAME(POWERMESSAGEWAKE);
+    default:
+        break;
+    }
+
+    return "UNKNOWN";
+
+#undef  _NAME
+}
+
+static HRESULT
+DifInstallPreProcess(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    UNREFERENCED_PARAMETER(DeviceInfoSet);
+    UNREFERENCED_PARAMETER(DeviceInfoData);
+    UNREFERENCED_PARAMETER(Context);
+
+    Log("<===>");
+
+    return NO_ERROR;
+}
+
+static HRESULT
+DifInstallPostProcess(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    UNREFERENCED_PARAMETER(DeviceInfoSet);
+    UNREFERENCED_PARAMETER(DeviceInfoData);
+    UNREFERENCED_PARAMETER(Context);
+
+    Log("<===>");
+
+    return NO_ERROR;
+}
+
+static HRESULT
+DifInstall(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
+    HRESULT                         Error;
+
+    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
+
+    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
+                                       DeviceInfoData,
+                                       &DeviceInstallParams))
+        goto fail1;
+
+    Log("Flags = %08x", DeviceInstallParams.Flags);
+
+    if (!Context->PostProcessing) {
+        Error = DifInstallPreProcess(DeviceInfoSet, DeviceInfoData, Context);
+
+        if (Error == NO_ERROR)
+            Error = ERROR_DI_POSTPROCESSING_REQUIRED;
+    } else {
+        Error = Context->InstallResult;
+
+        if (Error == NO_ERROR) {
+            (VOID) DifInstallPostProcess(DeviceInfoSet, DeviceInfoData, Context);
+        } else {
+            PTCHAR  Message;
+
+            Message = GetErrorMessage(Error);
+            Log("NOT RUNNING (DifInstallPreProcess Error: %s)", Message);
+            LocalFree(Message);
+        }
+
+        Error = NO_ERROR;
+    }
+
+    return Error;
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return Error;
+}
+
+static HRESULT
+DifRemovePreProcess(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    UNREFERENCED_PARAMETER(DeviceInfoSet);
+    UNREFERENCED_PARAMETER(DeviceInfoData);
+    UNREFERENCED_PARAMETER(Context);
+
+    Log("<===>");
+
+    return NO_ERROR;
+}
+
+static HRESULT
+DifRemovePostProcess(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    UNREFERENCED_PARAMETER(DeviceInfoSet);
+    UNREFERENCED_PARAMETER(DeviceInfoData);
+    UNREFERENCED_PARAMETER(Context);
+
+    Log("<===>");
+
+    return NO_ERROR;
+}
+
+static HRESULT
+DifRemove(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
+    HRESULT                         Error;
+
+    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
+
+    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
+                                       DeviceInfoData,
+                                       &DeviceInstallParams))
+        goto fail1;
+
+    Log("Flags = %08x", DeviceInstallParams.Flags);
+
+    if (!Context->PostProcessing) {
+        Error = DifRemovePreProcess(DeviceInfoSet, DeviceInfoData, Context);
+
+        if (Error == NO_ERROR)
+            Error = ERROR_DI_POSTPROCESSING_REQUIRED;
+    } else {
+        Error = Context->InstallResult;
+
+        if (Error == NO_ERROR) {
+            (VOID) DifRemovePostProcess(DeviceInfoSet, DeviceInfoData, Context);
+        } else {
+            PTCHAR  Message;
+
+            Message = GetErrorMessage(Error);
+            Log("NOT RUNNING (DifRemovePreProcess Error: %s)", Message);
+            LocalFree(Message);
+        }
+
+        Error = NO_ERROR;
+    }
+
+    return Error;
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return Error;
+}
+
+DWORD CALLBACK
+Entry(
+    IN  DI_FUNCTION                 Function,
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    HRESULT                         Error;
+
+    Log("%s (%s) ===>",
+        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
+        DAY_STR "/" MONTH_STR "/" YEAR_STR);
+
+    if (!Context->PostProcessing) {
+        Log("%s PreProcessing",
+            FunctionName(Function));
+    } else {
+        Log("%s PostProcessing (%08x)",
+            FunctionName(Function),
+            Context->InstallResult);
+    }
+
+    switch (Function) {
+    case DIF_INSTALLDEVICE: {
+        SP_DRVINFO_DATA         DriverInfoData;
+        BOOLEAN                 DriverInfoAvailable;
+
+        DriverInfoData.cbSize = sizeof (DriverInfoData);
+        DriverInfoAvailable = SetupDiGetSelectedDriver(DeviceInfoSet,
+                                                       DeviceInfoData,
+                                                       &DriverInfoData) ?
+                              TRUE :
+                              FALSE;
+
+        // If there is no driver information then the NULL driver is being
+        // installed. Treat this as we would a DIF_REMOVE.
+        Error = (DriverInfoAvailable) ?
+                DifInstall(DeviceInfoSet, DeviceInfoData, Context) :
+                DifRemove(DeviceInfoSet, DeviceInfoData, Context);
+        break;
+    }
+    case DIF_REMOVE:
+        Error = DifRemove(DeviceInfoSet, DeviceInfoData, Context);
+        break;
+    default:
+        if (!Context->PostProcessing) {
+            Error = NO_ERROR;
+        } else {
+            Error = Context->InstallResult;
+        }
+
+        break;
+    }
+
+    Log("%s (%s) <===",
+        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
+        DAY_STR "/" MONTH_STR "/" YEAR_STR);
+
+    return (DWORD)Error;
+}
+
+DWORD CALLBACK
+Version(
+    IN  HWND        Window,
+    IN  HINSTANCE   Module,
+    IN  PTCHAR      Buffer,
+    IN  INT         Reserved
+    )
+{
+    UNREFERENCED_PARAMETER(Window);
+    UNREFERENCED_PARAMETER(Module);
+    UNREFERENCED_PARAMETER(Buffer);
+    UNREFERENCED_PARAMETER(Reserved);
+
+    Log("%s (%s)",
+        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
+        DAY_STR "/" MONTH_STR "/" YEAR_STR);
+
+    return NO_ERROR;
+}
+
+static const CHAR *
+ReasonName(
+    IN  DWORD       Reason
+    )
+{
+#define _NAME(_Reason)          \
+        case DLL_ ## _Reason:   \
+            return #_Reason;
+
+    switch (Reason) {
+    _NAME(PROCESS_ATTACH);
+    _NAME(PROCESS_DETACH);
+    _NAME(THREAD_ATTACH);
+    _NAME(THREAD_DETACH);
+    default:
+        break;
+    }
+
+    return "UNKNOWN";
+
+#undef  _NAME
+}
+
+BOOL WINAPI
+DllMain(
+    IN  HINSTANCE   Module,
+    IN  DWORD       Reason,
+    IN  PVOID       Reserved
+    )
+{
+    UNREFERENCED_PARAMETER(Module);
+    UNREFERENCED_PARAMETER(Reserved);
+
+    Log("%s (%s): %s",
+        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
+        DAY_STR "/" MONTH_STR "/" YEAR_STR,
+        ReasonName(Reason));
+
+    return TRUE;
+}
diff --git a/src/coinst/xeniface_coinst.def b/src/coinst/xeniface_coinst.def
new file mode 100644
index 0000000..69fee2e
--- /dev/null
+++ b/src/coinst/xeniface_coinst.def
@@ -0,0 +1,37 @@
+; Copyright (c) Citrix Systems Inc.
+; All rights reserved.
+;
+; Redistribution and use in source and binary forms,
+; with or without modification, are permitted provided
+; that the following conditions are met:
+;
+; *   Redistributions of source code must retain the above
+;     copyright notice, this list of conditions and the
+;     following disclaimer.
+; *   Redistributions in binary form must reproduce the above
+;     copyright notice, this list of conditions and the
+;     following disclaimer in the documentation and/or other
+;     materials provided with the distribution.
+;
+; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+; SUCH DAMAGE.
+
+LIBRARY  XENBUS_COINST
+
+EXPORTS
+   Entry
+   Version
+
+   DllMain PRIVATE
diff --git a/src/xeniface.inf b/src/xeniface.inf
index a5969b9..44a54fc 100644
--- a/src/xeniface.inf
+++ b/src/xeniface.inf
@@ -38,6 +38,7 @@ CatalogFile=xeniface.cat
 
 [DestinationDirs]
 DefaultDestDir = 12
+Coinst.NT.Copy = 11
 ServiceDestDir.NT.Copy = 11
 
 [Manufacturer]
@@ -57,6 +58,9 @@ CopyFiles=XenIface_Device.NT.Copy, ServiceDestDir.NT.Copy
 [XenIFace_Device.NT.Copy]
 xeniface.sys
 
+[CoInst.NT.Copy]
+xeniface_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xeniface_coinst.dll
+
 [ServiceDestDir.NT.Copy]
 liteagent.exe
 
@@ -71,6 +75,17 @@ StartType      = 3               ; SERVICE_DEMAND_START
 ErrorControl   = 1               ; SERVICE_ERROR_NORMAL
 ServiceBinary  = %12%\xeniface.sys
 LoadOrderGroup = Extended Base
+AddReg = Xeniface_Parameters
+
+[Xeniface_Parameters]
+HKR,"Parameters",,0x00000010
+
+[Xeniface_Device.NT$ARCH$.Coinstallers]
+CopyFiles=CoInst.NT.Copy
+AddReg=CoInst_AddReg
+
+[CoInst_AddReg]
+HKR,,CoInstallers32,0x00010000,"xeniface_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,Entry"
 
 [xenlite_Service_Inst]
 DisplayName    = %xenlite.SVCDESC%
@@ -85,6 +100,7 @@ ServiceBinary  = %11%\liteagent.exe
 [SourceDisksFiles]
 xeniface.sys  = 1,,
 liteagent.exe = 1,,
+xeniface_coinst.dll=1,,
 
 [Strings]
 SPSVCINST_ASSOCSERVICE= 0x00000002
diff --git a/vs2012/package/package.vcxproj b/vs2012/package/package.vcxproj
index 94f273a..4b59968 100644
--- a/vs2012/package/package.vcxproj
+++ b/vs2012/package/package.vcxproj
@@ -44,6 +44,9 @@
                 <ProjectReference Include="..\xeniface\xeniface.vcxproj">
                         <Project>{22166290-65D8-49D2-BB88-33201797C7D8}</Project>
                 </ProjectReference>
+                <ProjectReference Include="..\xeniface_coinst\xeniface_coinst.vcxproj">
+                        <Project>{85c731ad-2ea2-4049-a542-d2d38ede938c}</Project>
+                </ProjectReference>
         </ItemGroup>
 	<ItemGroup>
 		<FilesToPackage Include="$(KIT)\Redist\DIFx\dpinst\EngMui\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
diff --git a/vs2012/xeniface.sln b/vs2012/xeniface.sln
index 1913a5b..cb6becf 100644
--- a/vs2012/xeniface.sln
+++ b/vs2012/xeniface.sln
@@ -1,12 +1,14 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface_coinst", "xeniface_coinst\xeniface_coinst.vcxproj", "{85C731AD-2EA2-4049-A542-D2D38EDE938C}"
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface", "xeniface\xeniface.vcxproj", "{22166290-65D8-49D2-BB88-33201797C7D8}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LiteAgent", "liteagent\LiteAgent.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{9B071A35-897C-477A-AEB7-95F77618A21D}"
 	ProjectSection(ProjectDependencies) = postProject
-	        {22166290-65D8-49D2-BB88-33201797C7D8} = {22166290-65D8-49D2-BB88-33201797C7D8}
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C} = {85C731AD-2EA2-4049-A542-D2D38EDE938C}
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
 	EndProjectSection
 EndProject
@@ -30,11 +32,60 @@ Global
 		Windows Vista Release|x64 = Windows Vista Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.Build.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.ActiveCfg = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.Build.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.Deploy.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.ActiveCfg = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.Build.0 = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.Deploy.0 = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.Build.0 = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.Build.0 = Windows 8 Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.ActiveCfg = Windows 8 Debug|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.Build.0 = Windows 8 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.ActiveCfg = Windows8 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.Build.0 = Windows8 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.Deploy.0 = Windows8 Debug|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Release|Win32.ActiveCfg = Windows 8 Release|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Release|Win32.Build.0 = Windows 8 Release|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Release|Win32.Deploy.0 = Windows 8 Release|Win32
@@ -52,18 +103,18 @@ Global
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows Developer Preview Debug|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.Build.0 = Windows Developer Preview Debug|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows Developer Preview Debug|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.ActiveCfg = Windows Developer Preview Debug|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.Build.0 = Windows Developer Preview Debug|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.Deploy.0 = Windows Developer Preview Debug|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.ActiveCfg = Windows Developer Preview Release|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.Build.0 = Windows Developer Preview Release|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.Deploy.0 = Windows Developer Preview Release|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.ActiveCfg = Windows Developer Preview Release|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.Build.0 = Windows Developer Preview Release|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.Deploy.0 = Windows Developer Preview Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.Build.0 = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.ActiveCfg = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.Build.0 = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.Deploy.0 = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.Build.0 = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.ActiveCfg = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.Build.0 = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.Deploy.0 = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
@@ -76,52 +127,6 @@ Global
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.Build.0 = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|x64.ActiveCfg = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|x64.Build.0 = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.ActiveCfg = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.Build.0 = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.Deploy.0 = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|x64.ActiveCfg = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|x64.Build.0 = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows Developer Preview Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.Build.0 = Windows Developer Preview Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows Developer Preview Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.ActiveCfg = Windows Developer Preview Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.Build.0 = Windows Developer Preview Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.Deploy.0 = Windows Developer Preview Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.ActiveCfg = Windows Developer Preview Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.Build.0 = Windows Developer Preview Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.Deploy.0 = Windows Developer Preview Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.ActiveCfg = Windows Developer Preview Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.Build.0 = Windows Developer Preview Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.Deploy.0 = Windows Developer Preview Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.ActiveCfg = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.Build.0 = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.Deploy.0 = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.ActiveCfg = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.Build.0 = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.Deploy.0 = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Debug|Win32.ActiveCfg = Debug|Win32
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Debug|Win32.Build.0 = Debug|Win32
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Debug|Win32.Deploy.0 = Debug|Win32
@@ -158,6 +163,52 @@ Global
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows Vista Release|x64.ActiveCfg = Release|x64
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows Vista Release|x64.Build.0 = Release|x64
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows Vista Release|x64.Deploy.0 = Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.Build.0 = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|x64.ActiveCfg = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|x64.Build.0 = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.Build.0 = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|x64.ActiveCfg = Windows Vista Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|x64.Build.0 = Windows Vista Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.ActiveCfg = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.Build.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.Deploy.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.Build.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.ActiveCfg = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.Build.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.Deploy.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.ActiveCfg = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.Build.0 = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.Deploy.0 = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.Build.0 = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/vs2012/xeniface/xeniface.vcxproj b/vs2012/xeniface/xeniface.vcxproj
index b0e8ef5..4220f31 100644
--- a/vs2012/xeniface/xeniface.vcxproj
+++ b/vs2012/xeniface/xeniface.vcxproj
@@ -35,13 +35,11 @@
         <CustomBuildStep>
             <Command>echo "Build Inf"
                 powershell -Command "(Get-Content ..\..\src\xeniface.inf) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' | Set-Content ..\..\vs2012\xeniface.inf"
-                echo "Build version header"
-                powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\include\version.h"
                 echo "Modify mof"
                 powershell -Command "(Get-Content ..\..\src\xeniface.mof)  -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\src\xeniface\wmi.mof"
             </Command>
-            <Outputs>..\..\vs2012\xeniface.inf;..\..\include\version.h;..\..\src\xeniface\wmi.mof</Outputs>
-            <Inputs>..\..\src\xeniface.inf;..\..\include\version.hx;..\..\src\xeniface.mof</Inputs>
+            <Outputs>..\..\vs2012\xeniface.inf;..\..\src\xeniface\wmi.mof</Outputs>
+            <Inputs>..\..\src\xeniface.inf;..\..\src\xeniface.mof</Inputs>
         </CustomBuildStep>
         
 		<ClCompile>
diff --git a/vs2012/xeniface_coinst/xeniface_coinst.vcxproj b/vs2012/xeniface_coinst/xeniface_coinst.vcxproj
new file mode 100644
index 0000000..7e2f29d
--- /dev/null
+++ b/vs2012/xeniface_coinst/xeniface_coinst.vcxproj
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<Import Project="..\configs.props" />
+
+	<PropertyGroup Label="PropertySheets">
+	    <DriverType>WDM</DriverType>
+		<PlatformToolset>WindowsApplicationForDrivers8.0</PlatformToolset>
+		<ConfigurationType>DynamicLibrary</ConfigurationType>
+		<DriverType>WDM</DriverType>
+	</PropertyGroup>
+	<PropertyGroup Label="Globals">
+		<Configuration>Windows Vista Debug</Configuration>
+		<Platform Condition="'$(Platform)' == ''">Win32</Platform>
+		<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+	</PropertyGroup>
+
+	<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+
+	<PropertyGroup Label="Globals">
+		<ProjectGuid>{85c731ad-2ea2-4049-a542-d2d38ede938c}</ProjectGuid>
+	</PropertyGroup>
+
+	<Import Project="..\targets.props" />
+	<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+
+	<PropertyGroup>
+		<IncludePath>$(IncludePath)</IncludePath>
+		<RunCodeAnalysis>true</RunCodeAnalysis>
+		<EnableInf2cat>false</EnableInf2cat>
+        <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets>
+		<IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+		<OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+	</PropertyGroup>
+
+	<ItemDefinitionGroup>
+	  <CustomBuildStep>
+            <Command>echo "Build version header"
+	    powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\include\version.h"
+	    </Command>
+            <Outputs>..\..\include\version.h</Outputs>
+            <Inputs>..\..\include\version.hx</Inputs>
+        </CustomBuildStep>
+
+		<ClCompile>
+			<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+			<PreprocessorDefinitions>__MODULE__="XENIFACE_COINST";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+			<WarningLevel>EnableAllWarnings</WarningLevel>
+			<DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+			<MultiProcessorCompilation>true</MultiProcessorCompilation>
+			<EnablePREfast>true</EnablePREfast>
+			<RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+			<RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+		</ClCompile>
+		<Link>
+			<ModuleDefinitionFile>../../src/coinst/xeniface_coinst.def</ModuleDefinitionFile>
+			<AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+		</Link>
+		<ResourceCompile>
+			<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+		</ResourceCompile>
+	</ItemDefinitionGroup>
+	<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+		<ClCompile>
+			<PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+		</ClCompile>
+	</ItemDefinitionGroup>
+	<ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+		<ClCompile>
+			<PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+		</ClCompile>
+	</ItemDefinitionGroup>
+
+	<ItemGroup>
+		<FilesToPackage Include="$(TargetPath)" />
+		<FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+		<FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+	</ItemGroup>
+	<ItemGroup>
+		<ClCompile Include="..\..\src\coinst\coinst.c" />
+	</ItemGroup>
+	<ItemGroup>
+		<None Include="..\..\src\coinst\xeniface_coinst.def" />
+	</ItemGroup>
+	<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
\ No newline at end of file
diff --git a/vs2012/xeniface_coinst/xeniface_coinst.vcxproj.user b/vs2012/xeniface_coinst/xeniface_coinst.vcxproj.user
new file mode 100644
index 0000000..6a435fd
--- /dev/null
+++ b/vs2012/xeniface_coinst/xeniface_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2013/package/package.vcxproj b/vs2013/package/package.vcxproj
index 5b3d5b3..c83e31b 100644
--- a/vs2013/package/package.vcxproj
+++ b/vs2013/package/package.vcxproj
@@ -74,6 +74,9 @@
     <ProjectReference Include="..\xeniface\xeniface.vcxproj">
       <Project>{22166290-65D8-49D2-BB88-33201797C7D8}</Project>
     </ProjectReference>
+    <ProjectReference Include="..\xeniface_coinst\xeniface_coinst.vcxproj">
+      <Project>{85c731ad-2ea2-4049-a542-d2d38ede938c}</Project>
+    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <FilesToPackage Include="$(KIT)\Redist\DIFx\dpinst\EngMui\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
diff --git a/vs2013/xeniface.sln b/vs2013/xeniface.sln
index 5d210d6..413b86a 100644
--- a/vs2013/xeniface.sln
+++ b/vs2013/xeniface.sln
@@ -1,13 +1,19 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Express 2013 for Windows Desktop
-VisualStudioVersion = 12.0.21005.1
+VisualStudioVersion = 12.0.30723.0
 MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface_coinst", "xeniface_coinst\xeniface_coinst.vcxproj", "{85C731AD-2EA2-4049-A542-D2D38EDE938C}"
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface", "xeniface\xeniface.vcxproj", "{22166290-65D8-49D2-BB88-33201797C7D8}"
+	ProjectSection(ProjectDependencies) = postProject
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C} = {85C731AD-2EA2-4049-A542-D2D38EDE938C}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LiteAgent", "liteagent\LiteAgent.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{9B071A35-897C-477A-AEB7-95F77618A21D}"
 	ProjectSection(ProjectDependencies) = postProject
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C} = {85C731AD-2EA2-4049-A542-D2D38EDE938C}
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
 	EndProjectSection
 EndProject
@@ -31,6 +37,54 @@ Global
 		Windows Vista Release|x64 = Windows Vista Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.Build.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.Build.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.ActiveCfg = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.Build.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.Deploy.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.Build.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.ActiveCfg = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.Build.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.Deploy.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.ActiveCfg = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.Build.0 = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.Deploy.0 = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.Build.0 = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.Build.0 = Windows 8 Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
diff --git a/vs2013/xeniface/xeniface.vcxproj b/vs2013/xeniface/xeniface.vcxproj
index 843e85e..65743d4 100644
--- a/vs2013/xeniface/xeniface.vcxproj
+++ b/vs2013/xeniface/xeniface.vcxproj
@@ -64,13 +64,11 @@
       <CustomBuildStep>
             <Command>echo "Build Inf"
                  powershell -Command "(Get-Content ..\..\src\xeniface.inf) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' | Set-Content ..\..\vs2013\xeniface.inf"
-                echo "Build version header"
-                powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\include\version.h"
                 echo "Modify mof"
                 powershell -Command "(Get-Content ..\..\src\xeniface.mof)  -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\src\xeniface\wmi.mof"
             </Command>
-            <Outputs>..\..\vs2013\xeniface.inf;..\..\include\version.h;..\..\src\xeniface\wmi.mof</Outputs>
-            <Inputs>..\..\src\xeniface.inf;..\..\include\version.hx;..\..\src\xeniface.mof</Inputs>
+            <Outputs>..\..\vs2013\xeniface.inf;..\..\src\xeniface\wmi.mof</Outputs>
+            <Inputs>..\..\src\xeniface.inf;..\..\src\xeniface.mof</Inputs>
         </CustomBuildStep>
     <ClCompile>
       <PreprocessorDefinitions>__MODULE__="XENIFACE";POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
diff --git a/vs2013/xeniface_coinst/xeniface_coinst.vcxproj b/vs2013/xeniface_coinst/xeniface_coinst.vcxproj
new file mode 100644
index 0000000..b577dc8
--- /dev/null
+++ b/vs2013/xeniface_coinst/xeniface_coinst.vcxproj
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <DriverType>WDM</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Label="Globals">
+    <Configuration>Windows Vista Debug</Configuration>
+    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows Vista Debug|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows Vista Debug|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows Vista Release|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows Vista Release|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Release|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Release|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Debug|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Debug|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{85c731ad-2ea2-4049-a542-d2d38ede938c}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+    <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <CustomBuildStep>
+      <Command>echo "Build version header"
+      powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\include\version.h"
+      </Command>
+      <Outputs>..\..\include\version.h</Outputs>
+      <Inputs>..\..\include\version.hx</Inputs>
+    </CustomBuildStep>
+
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>__MODULE__="XENIFACE_COINST";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xeniface_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xeniface_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
\ No newline at end of file
diff --git a/vs2013/xeniface_coinst/xeniface_coinst.vcxproj.user b/vs2013/xeniface_coinst/xeniface_coinst.vcxproj.user
new file mode 100644
index 0000000..6a435fd
--- /dev/null
+++ b/vs2013/xeniface_coinst/xeniface_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 17:20:06 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 17:20:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YB58Q-0000xj-OT; Tue, 13 Jan 2015 17:20:06 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YB504-0007er-Pa
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 17:11:29 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	2E/2B-09842-0C155B45; Tue, 13 Jan 2015 17:11:28 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-21.messagelabs.com!1421169085!21200374!1
X-Originating-IP: [74.125.82.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21613 invoked from network); 13 Jan 2015 17:11:25 -0000
Received: from mail-wg0-f52.google.com (HELO mail-wg0-f52.google.com)
	(74.125.82.52)
	by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 17:11:25 -0000
Received: by mail-wg0-f52.google.com with SMTP id x12so4181706wgg.11
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 13 Jan 2015 09:11:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=kqwoEAYSPnPZjDqIT+LvkFxTFCEOS1VZO9bczoQAm0s=;
	b=HVZJOcnPXnPySPXWDL88td3GjQp0jqE4KKHCKv3n+kE8BT4OQFZrxC0ETDpnRfufO/
	h7fVWVzCP7AXmLGAWZHfJhVDh/WiKRvvCcygumbuOJS0EXA0HYVpX/rwF2Fg8fwGjIOF
	Uy0ENYzsAyt8uwU2i6qZ6nNlbKCNDWEV+PT0iM+LwzmTQgOeROe90iR3c7VB6VV1Cecu
	LhL+CqBgRVfSrBd4/2mUuZrV3Q/Tgg98h6mFZHVdKwoJVyJvPJyqEen/6Lp8Glckff51
	5HiKgvdzZ4JBez2DYLRl3WaGcCLzuB1Ks+pEhML+zYSp8nKtF2tZoEFOZAkTn7y1sGFt
	stcw==
X-Received: by 10.180.208.112 with SMTP id md16mr489258wic.37.1421169085190;
	Tue, 13 Jan 2015 09:11:25 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id w3sm26488719wjf.3.2015.01.13.09.11.23
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 13 Jan 2015 09:11:24 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 13 Jan 2015 17:11:08 +0000
Message-Id: <1421169069-8380-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
References: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
X-Mailman-Approved-At: Tue, 13 Jan 2015 17:20:05 +0000
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Add a co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The co-installer does not do anything as yet. Functionality will be added in
a subsequent patch.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/coinst/coinst.c                                | 493 +++++++++++++++++++++
 src/coinst/xeniface_coinst.def                     |  37 ++
 src/xeniface.inf                                   |  16 +
 vs2012/package/package.vcxproj                     |   3 +
 vs2012/xeniface.sln                                | 173 +++++---
 vs2012/xeniface/xeniface.vcxproj                   |   6 +-
 vs2012/xeniface_coinst/xeniface_coinst.vcxproj     |  85 ++++
 .../xeniface_coinst/xeniface_coinst.vcxproj.user   |   8 +
 vs2013/package/package.vcxproj                     |   3 +
 vs2013/xeniface.sln                                |  56 ++-
 vs2013/xeniface/xeniface.vcxproj                   |   6 +-
 vs2013/xeniface_coinst/xeniface_coinst.vcxproj     | 113 +++++
 .../xeniface_coinst/xeniface_coinst.vcxproj.user   |   8 +
 13 files changed, 937 insertions(+), 70 deletions(-)
 create mode 100644 src/coinst/coinst.c
 create mode 100644 src/coinst/xeniface_coinst.def
 create mode 100644 vs2012/xeniface_coinst/xeniface_coinst.vcxproj
 create mode 100644 vs2012/xeniface_coinst/xeniface_coinst.vcxproj.user
 create mode 100644 vs2013/xeniface_coinst/xeniface_coinst.vcxproj
 create mode 100644 vs2013/xeniface_coinst/xeniface_coinst.vcxproj.user

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
new file mode 100644
index 0000000..cd3d1e0
--- /dev/null
+++ b/src/coinst/coinst.c
@@ -0,0 +1,493 @@
+/* Copyright (c) Citrix Systems Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms,
+ * with or without modification, are permitted provided
+ * that the following conditions are met:
+ *
+ * *   Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the
+ *     following disclaimer.
+ * *   Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the
+ *     following disclaimer in the documentation and/or other
+ *     materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#define INITGUID
+
+#include <windows.h>
+#include <setupapi.h>
+#include <devguid.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <strsafe.h>
+#include <malloc.h>
+#include <assert.h>
+
+#include <suspend_interface.h>
+#include <shared_info_interface.h>
+#include <store_interface.h>
+
+#include <version.h>
+
+__user_code;
+
+#define MAXIMUM_BUFFER_SIZE 1024
+
+#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
+
+#define SERVICE_KEY(_Driver)    \
+        SERVICES_KEY ## "\\" ## #_Driver
+
+#define PARAMETERS_KEY(_Driver) \
+        SERVICE_KEY(_Driver) ## "\\Parameters"
+
+#define CONTROL_KEY "SYSTEM\\CurrentControlSet\\Control"
+
+#define CLASS_KEY   \
+        CONTROL_KEY ## "\\Class"
+
+#define ENUM_KEY    "SYSTEM\\CurrentControlSet\\Enum"
+
+static VOID
+#pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds /analyze:stacksize'1024'
+__Log(
+    IN  const CHAR  *Format,
+    IN  ...
+    )
+{
+    TCHAR               Buffer[MAXIMUM_BUFFER_SIZE];
+    va_list             Arguments;
+    size_t              Length;
+    SP_LOG_TOKEN        LogToken;
+    DWORD               Category;
+    DWORD               Flags;
+    HRESULT             Result;
+
+    va_start(Arguments, Format);
+    Result = StringCchVPrintf(Buffer, MAXIMUM_BUFFER_SIZE, Format, Arguments);
+    va_end(Arguments);
+
+    if (Result != S_OK && Result != STRSAFE_E_INSUFFICIENT_BUFFER)
+        return;
+
+    Result = StringCchLength(Buffer, MAXIMUM_BUFFER_SIZE, &Length);
+    if (Result != S_OK)
+        return;
+
+    LogToken = SetupGetThreadLogToken();
+    Category = TXTLOG_VENDOR;
+    Flags = TXTLOG_DETAILS;
+
+    SetupWriteTextLog(LogToken, Category, Flags, Buffer);
+    Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2);
+
+    __analysis_assume(Length < MAXIMUM_BUFFER_SIZE);
+    __analysis_assume(Length >= 2);
+    Buffer[Length] = '\0';
+    Buffer[Length - 1] = '\n';
+    Buffer[Length - 2] = '\r';
+
+    OutputDebugString(Buffer);
+}
+
+#define Log(_Format, ...) \
+        __Log(__MODULE__ "|" __FUNCTION__ ": " _Format, __VA_ARGS__)
+
+static PTCHAR
+GetErrorMessage(
+    IN  DWORD   Error
+    )
+{
+    PTCHAR      Message;
+    ULONG       Index;
+
+    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+                  FORMAT_MESSAGE_FROM_SYSTEM |
+                  FORMAT_MESSAGE_IGNORE_INSERTS,
+                  NULL,
+                  Error,
+                  MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+                  (LPTSTR)&Message,
+                  0,
+                  NULL);
+
+    for (Index = 0; Message[Index] != '\0'; Index++) {
+        if (Message[Index] == '\r' || Message[Index] == '\n') {
+            Message[Index] = '\0';
+            break;
+        }
+    }
+
+    return Message;
+}
+
+static const CHAR *
+FunctionName(
+    IN  DI_FUNCTION Function
+    )
+{
+#define _NAME(_Function)        \
+        case DIF_ ## _Function: \
+            return #_Function;
+
+    switch (Function) {
+    _NAME(INSTALLDEVICE);
+    _NAME(REMOVE);
+    _NAME(SELECTDEVICE);
+    _NAME(ASSIGNRESOURCES);
+    _NAME(PROPERTIES);
+    _NAME(FIRSTTIMESETUP);
+    _NAME(FOUNDDEVICE);
+    _NAME(SELECTCLASSDRIVERS);
+    _NAME(VALIDATECLASSDRIVERS);
+    _NAME(INSTALLCLASSDRIVERS);
+    _NAME(CALCDISKSPACE);
+    _NAME(DESTROYPRIVATEDATA);
+    _NAME(VALIDATEDRIVER);
+    _NAME(MOVEDEVICE);
+    _NAME(DETECT);
+    _NAME(INSTALLWIZARD);
+    _NAME(DESTROYWIZARDDATA);
+    _NAME(PROPERTYCHANGE);
+    _NAME(ENABLECLASS);
+    _NAME(DETECTVERIFY);
+    _NAME(INSTALLDEVICEFILES);
+    _NAME(ALLOW_INSTALL);
+    _NAME(SELECTBESTCOMPATDRV);
+    _NAME(REGISTERDEVICE);
+    _NAME(NEWDEVICEWIZARD_PRESELECT);
+    _NAME(NEWDEVICEWIZARD_SELECT);
+    _NAME(NEWDEVICEWIZARD_PREANALYZE);
+    _NAME(NEWDEVICEWIZARD_POSTANALYZE);
+    _NAME(NEWDEVICEWIZARD_FINISHINSTALL);
+    _NAME(INSTALLINTERFACES);
+    _NAME(DETECTCANCEL);
+    _NAME(REGISTER_COINSTALLERS);
+    _NAME(ADDPROPERTYPAGE_ADVANCED);
+    _NAME(ADDPROPERTYPAGE_BASIC);
+    _NAME(TROUBLESHOOTER);
+    _NAME(POWERMESSAGEWAKE);
+    default:
+        break;
+    }
+
+    return "UNKNOWN";
+
+#undef  _NAME
+}
+
+static HRESULT
+DifInstallPreProcess(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    UNREFERENCED_PARAMETER(DeviceInfoSet);
+    UNREFERENCED_PARAMETER(DeviceInfoData);
+    UNREFERENCED_PARAMETER(Context);
+
+    Log("<===>");
+
+    return NO_ERROR;
+}
+
+static HRESULT
+DifInstallPostProcess(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    UNREFERENCED_PARAMETER(DeviceInfoSet);
+    UNREFERENCED_PARAMETER(DeviceInfoData);
+    UNREFERENCED_PARAMETER(Context);
+
+    Log("<===>");
+
+    return NO_ERROR;
+}
+
+static HRESULT
+DifInstall(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
+    HRESULT                         Error;
+
+    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
+
+    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
+                                       DeviceInfoData,
+                                       &DeviceInstallParams))
+        goto fail1;
+
+    Log("Flags = %08x", DeviceInstallParams.Flags);
+
+    if (!Context->PostProcessing) {
+        Error = DifInstallPreProcess(DeviceInfoSet, DeviceInfoData, Context);
+
+        if (Error == NO_ERROR)
+            Error = ERROR_DI_POSTPROCESSING_REQUIRED;
+    } else {
+        Error = Context->InstallResult;
+
+        if (Error == NO_ERROR) {
+            (VOID) DifInstallPostProcess(DeviceInfoSet, DeviceInfoData, Context);
+        } else {
+            PTCHAR  Message;
+
+            Message = GetErrorMessage(Error);
+            Log("NOT RUNNING (DifInstallPreProcess Error: %s)", Message);
+            LocalFree(Message);
+        }
+
+        Error = NO_ERROR;
+    }
+
+    return Error;
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return Error;
+}
+
+static HRESULT
+DifRemovePreProcess(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    UNREFERENCED_PARAMETER(DeviceInfoSet);
+    UNREFERENCED_PARAMETER(DeviceInfoData);
+    UNREFERENCED_PARAMETER(Context);
+
+    Log("<===>");
+
+    return NO_ERROR;
+}
+
+static HRESULT
+DifRemovePostProcess(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    UNREFERENCED_PARAMETER(DeviceInfoSet);
+    UNREFERENCED_PARAMETER(DeviceInfoData);
+    UNREFERENCED_PARAMETER(Context);
+
+    Log("<===>");
+
+    return NO_ERROR;
+}
+
+static HRESULT
+DifRemove(
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
+    HRESULT                         Error;
+
+    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
+
+    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
+                                       DeviceInfoData,
+                                       &DeviceInstallParams))
+        goto fail1;
+
+    Log("Flags = %08x", DeviceInstallParams.Flags);
+
+    if (!Context->PostProcessing) {
+        Error = DifRemovePreProcess(DeviceInfoSet, DeviceInfoData, Context);
+
+        if (Error == NO_ERROR)
+            Error = ERROR_DI_POSTPROCESSING_REQUIRED;
+    } else {
+        Error = Context->InstallResult;
+
+        if (Error == NO_ERROR) {
+            (VOID) DifRemovePostProcess(DeviceInfoSet, DeviceInfoData, Context);
+        } else {
+            PTCHAR  Message;
+
+            Message = GetErrorMessage(Error);
+            Log("NOT RUNNING (DifRemovePreProcess Error: %s)", Message);
+            LocalFree(Message);
+        }
+
+        Error = NO_ERROR;
+    }
+
+    return Error;
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return Error;
+}
+
+DWORD CALLBACK
+Entry(
+    IN  DI_FUNCTION                 Function,
+    IN  HDEVINFO                    DeviceInfoSet,
+    IN  PSP_DEVINFO_DATA            DeviceInfoData,
+    IN  PCOINSTALLER_CONTEXT_DATA   Context
+    )
+{
+    HRESULT                         Error;
+
+    Log("%s (%s) ===>",
+        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
+        DAY_STR "/" MONTH_STR "/" YEAR_STR);
+
+    if (!Context->PostProcessing) {
+        Log("%s PreProcessing",
+            FunctionName(Function));
+    } else {
+        Log("%s PostProcessing (%08x)",
+            FunctionName(Function),
+            Context->InstallResult);
+    }
+
+    switch (Function) {
+    case DIF_INSTALLDEVICE: {
+        SP_DRVINFO_DATA         DriverInfoData;
+        BOOLEAN                 DriverInfoAvailable;
+
+        DriverInfoData.cbSize = sizeof (DriverInfoData);
+        DriverInfoAvailable = SetupDiGetSelectedDriver(DeviceInfoSet,
+                                                       DeviceInfoData,
+                                                       &DriverInfoData) ?
+                              TRUE :
+                              FALSE;
+
+        // If there is no driver information then the NULL driver is being
+        // installed. Treat this as we would a DIF_REMOVE.
+        Error = (DriverInfoAvailable) ?
+                DifInstall(DeviceInfoSet, DeviceInfoData, Context) :
+                DifRemove(DeviceInfoSet, DeviceInfoData, Context);
+        break;
+    }
+    case DIF_REMOVE:
+        Error = DifRemove(DeviceInfoSet, DeviceInfoData, Context);
+        break;
+    default:
+        if (!Context->PostProcessing) {
+            Error = NO_ERROR;
+        } else {
+            Error = Context->InstallResult;
+        }
+
+        break;
+    }
+
+    Log("%s (%s) <===",
+        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
+        DAY_STR "/" MONTH_STR "/" YEAR_STR);
+
+    return (DWORD)Error;
+}
+
+DWORD CALLBACK
+Version(
+    IN  HWND        Window,
+    IN  HINSTANCE   Module,
+    IN  PTCHAR      Buffer,
+    IN  INT         Reserved
+    )
+{
+    UNREFERENCED_PARAMETER(Window);
+    UNREFERENCED_PARAMETER(Module);
+    UNREFERENCED_PARAMETER(Buffer);
+    UNREFERENCED_PARAMETER(Reserved);
+
+    Log("%s (%s)",
+        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
+        DAY_STR "/" MONTH_STR "/" YEAR_STR);
+
+    return NO_ERROR;
+}
+
+static const CHAR *
+ReasonName(
+    IN  DWORD       Reason
+    )
+{
+#define _NAME(_Reason)          \
+        case DLL_ ## _Reason:   \
+            return #_Reason;
+
+    switch (Reason) {
+    _NAME(PROCESS_ATTACH);
+    _NAME(PROCESS_DETACH);
+    _NAME(THREAD_ATTACH);
+    _NAME(THREAD_DETACH);
+    default:
+        break;
+    }
+
+    return "UNKNOWN";
+
+#undef  _NAME
+}
+
+BOOL WINAPI
+DllMain(
+    IN  HINSTANCE   Module,
+    IN  DWORD       Reason,
+    IN  PVOID       Reserved
+    )
+{
+    UNREFERENCED_PARAMETER(Module);
+    UNREFERENCED_PARAMETER(Reserved);
+
+    Log("%s (%s): %s",
+        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
+        DAY_STR "/" MONTH_STR "/" YEAR_STR,
+        ReasonName(Reason));
+
+    return TRUE;
+}
diff --git a/src/coinst/xeniface_coinst.def b/src/coinst/xeniface_coinst.def
new file mode 100644
index 0000000..69fee2e
--- /dev/null
+++ b/src/coinst/xeniface_coinst.def
@@ -0,0 +1,37 @@
+; Copyright (c) Citrix Systems Inc.
+; All rights reserved.
+;
+; Redistribution and use in source and binary forms,
+; with or without modification, are permitted provided
+; that the following conditions are met:
+;
+; *   Redistributions of source code must retain the above
+;     copyright notice, this list of conditions and the
+;     following disclaimer.
+; *   Redistributions in binary form must reproduce the above
+;     copyright notice, this list of conditions and the
+;     following disclaimer in the documentation and/or other
+;     materials provided with the distribution.
+;
+; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+; SUCH DAMAGE.
+
+LIBRARY  XENBUS_COINST
+
+EXPORTS
+   Entry
+   Version
+
+   DllMain PRIVATE
diff --git a/src/xeniface.inf b/src/xeniface.inf
index a5969b9..44a54fc 100644
--- a/src/xeniface.inf
+++ b/src/xeniface.inf
@@ -38,6 +38,7 @@ CatalogFile=xeniface.cat
 
 [DestinationDirs]
 DefaultDestDir = 12
+Coinst.NT.Copy = 11
 ServiceDestDir.NT.Copy = 11
 
 [Manufacturer]
@@ -57,6 +58,9 @@ CopyFiles=XenIface_Device.NT.Copy, ServiceDestDir.NT.Copy
 [XenIFace_Device.NT.Copy]
 xeniface.sys
 
+[CoInst.NT.Copy]
+xeniface_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xeniface_coinst.dll
+
 [ServiceDestDir.NT.Copy]
 liteagent.exe
 
@@ -71,6 +75,17 @@ StartType      = 3               ; SERVICE_DEMAND_START
 ErrorControl   = 1               ; SERVICE_ERROR_NORMAL
 ServiceBinary  = %12%\xeniface.sys
 LoadOrderGroup = Extended Base
+AddReg = Xeniface_Parameters
+
+[Xeniface_Parameters]
+HKR,"Parameters",,0x00000010
+
+[Xeniface_Device.NT$ARCH$.Coinstallers]
+CopyFiles=CoInst.NT.Copy
+AddReg=CoInst_AddReg
+
+[CoInst_AddReg]
+HKR,,CoInstallers32,0x00010000,"xeniface_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,Entry"
 
 [xenlite_Service_Inst]
 DisplayName    = %xenlite.SVCDESC%
@@ -85,6 +100,7 @@ ServiceBinary  = %11%\liteagent.exe
 [SourceDisksFiles]
 xeniface.sys  = 1,,
 liteagent.exe = 1,,
+xeniface_coinst.dll=1,,
 
 [Strings]
 SPSVCINST_ASSOCSERVICE= 0x00000002
diff --git a/vs2012/package/package.vcxproj b/vs2012/package/package.vcxproj
index 94f273a..4b59968 100644
--- a/vs2012/package/package.vcxproj
+++ b/vs2012/package/package.vcxproj
@@ -44,6 +44,9 @@
                 <ProjectReference Include="..\xeniface\xeniface.vcxproj">
                         <Project>{22166290-65D8-49D2-BB88-33201797C7D8}</Project>
                 </ProjectReference>
+                <ProjectReference Include="..\xeniface_coinst\xeniface_coinst.vcxproj">
+                        <Project>{85c731ad-2ea2-4049-a542-d2d38ede938c}</Project>
+                </ProjectReference>
         </ItemGroup>
 	<ItemGroup>
 		<FilesToPackage Include="$(KIT)\Redist\DIFx\dpinst\EngMui\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
diff --git a/vs2012/xeniface.sln b/vs2012/xeniface.sln
index 1913a5b..cb6becf 100644
--- a/vs2012/xeniface.sln
+++ b/vs2012/xeniface.sln
@@ -1,12 +1,14 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface_coinst", "xeniface_coinst\xeniface_coinst.vcxproj", "{85C731AD-2EA2-4049-A542-D2D38EDE938C}"
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface", "xeniface\xeniface.vcxproj", "{22166290-65D8-49D2-BB88-33201797C7D8}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LiteAgent", "liteagent\LiteAgent.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{9B071A35-897C-477A-AEB7-95F77618A21D}"
 	ProjectSection(ProjectDependencies) = postProject
-	        {22166290-65D8-49D2-BB88-33201797C7D8} = {22166290-65D8-49D2-BB88-33201797C7D8}
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C} = {85C731AD-2EA2-4049-A542-D2D38EDE938C}
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
 	EndProjectSection
 EndProject
@@ -30,11 +32,60 @@ Global
 		Windows Vista Release|x64 = Windows Vista Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.Build.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.ActiveCfg = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.Build.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.Deploy.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.ActiveCfg = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.Build.0 = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.Deploy.0 = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.Build.0 = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.Build.0 = Windows 8 Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.ActiveCfg = Windows 8 Debug|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.Build.0 = Windows 8 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.ActiveCfg = Windows8 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.Build.0 = Windows8 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|x64.Deploy.0 = Windows8 Debug|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Release|Win32.ActiveCfg = Windows 8 Release|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Release|Win32.Build.0 = Windows 8 Release|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Release|Win32.Deploy.0 = Windows 8 Release|Win32
@@ -52,18 +103,18 @@ Global
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows Developer Preview Debug|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.Build.0 = Windows Developer Preview Debug|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows Developer Preview Debug|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.ActiveCfg = Windows Developer Preview Debug|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.Build.0 = Windows Developer Preview Debug|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.Deploy.0 = Windows Developer Preview Debug|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.ActiveCfg = Windows Developer Preview Release|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.Build.0 = Windows Developer Preview Release|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.Deploy.0 = Windows Developer Preview Release|Win32
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.ActiveCfg = Windows Developer Preview Release|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.Build.0 = Windows Developer Preview Release|x64
-		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.Deploy.0 = Windows Developer Preview Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.Build.0 = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.ActiveCfg = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.Build.0 = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Debug|x64.Deploy.0 = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.Build.0 = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.ActiveCfg = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.Build.0 = Windows Vista Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Developer Preview Release|x64.Deploy.0 = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
@@ -76,52 +127,6 @@ Global
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.Build.0 = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|x64.ActiveCfg = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|x64.Build.0 = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.ActiveCfg = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.Build.0 = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.Deploy.0 = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|x64.ActiveCfg = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|x64.Build.0 = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows Developer Preview Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.Build.0 = Windows Developer Preview Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows Developer Preview Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.ActiveCfg = Windows Developer Preview Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.Build.0 = Windows Developer Preview Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.Deploy.0 = Windows Developer Preview Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.ActiveCfg = Windows Developer Preview Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.Build.0 = Windows Developer Preview Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.Deploy.0 = Windows Developer Preview Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.ActiveCfg = Windows Developer Preview Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.Build.0 = Windows Developer Preview Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.Deploy.0 = Windows Developer Preview Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.ActiveCfg = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.Build.0 = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.Deploy.0 = Windows Vista Debug|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.ActiveCfg = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.Build.0 = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.Deploy.0 = Windows Vista Release|Win32
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
-		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Debug|Win32.ActiveCfg = Debug|Win32
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Debug|Win32.Build.0 = Debug|Win32
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Debug|Win32.Deploy.0 = Debug|Win32
@@ -158,6 +163,52 @@ Global
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows Vista Release|x64.ActiveCfg = Release|x64
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows Vista Release|x64.Build.0 = Release|x64
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows Vista Release|x64.Deploy.0 = Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.Build.0 = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|x64.ActiveCfg = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Debug|x64.Build.0 = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.Build.0 = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|x64.ActiveCfg = Windows Vista Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Release|x64.Build.0 = Windows Vista Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.ActiveCfg = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.Build.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Debug|x64.Deploy.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.Build.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.ActiveCfg = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.Build.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Developer Preview Release|x64.Deploy.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.ActiveCfg = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.Build.0 = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Debug|x64.Deploy.0 = Windows Vista Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.Build.0 = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/vs2012/xeniface/xeniface.vcxproj b/vs2012/xeniface/xeniface.vcxproj
index b0e8ef5..4220f31 100644
--- a/vs2012/xeniface/xeniface.vcxproj
+++ b/vs2012/xeniface/xeniface.vcxproj
@@ -35,13 +35,11 @@
         <CustomBuildStep>
             <Command>echo "Build Inf"
                 powershell -Command "(Get-Content ..\..\src\xeniface.inf) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' | Set-Content ..\..\vs2012\xeniface.inf"
-                echo "Build version header"
-                powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\include\version.h"
                 echo "Modify mof"
                 powershell -Command "(Get-Content ..\..\src\xeniface.mof)  -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\src\xeniface\wmi.mof"
             </Command>
-            <Outputs>..\..\vs2012\xeniface.inf;..\..\include\version.h;..\..\src\xeniface\wmi.mof</Outputs>
-            <Inputs>..\..\src\xeniface.inf;..\..\include\version.hx;..\..\src\xeniface.mof</Inputs>
+            <Outputs>..\..\vs2012\xeniface.inf;..\..\src\xeniface\wmi.mof</Outputs>
+            <Inputs>..\..\src\xeniface.inf;..\..\src\xeniface.mof</Inputs>
         </CustomBuildStep>
         
 		<ClCompile>
diff --git a/vs2012/xeniface_coinst/xeniface_coinst.vcxproj b/vs2012/xeniface_coinst/xeniface_coinst.vcxproj
new file mode 100644
index 0000000..7e2f29d
--- /dev/null
+++ b/vs2012/xeniface_coinst/xeniface_coinst.vcxproj
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<Import Project="..\configs.props" />
+
+	<PropertyGroup Label="PropertySheets">
+	    <DriverType>WDM</DriverType>
+		<PlatformToolset>WindowsApplicationForDrivers8.0</PlatformToolset>
+		<ConfigurationType>DynamicLibrary</ConfigurationType>
+		<DriverType>WDM</DriverType>
+	</PropertyGroup>
+	<PropertyGroup Label="Globals">
+		<Configuration>Windows Vista Debug</Configuration>
+		<Platform Condition="'$(Platform)' == ''">Win32</Platform>
+		<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+	</PropertyGroup>
+
+	<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+
+	<PropertyGroup Label="Globals">
+		<ProjectGuid>{85c731ad-2ea2-4049-a542-d2d38ede938c}</ProjectGuid>
+	</PropertyGroup>
+
+	<Import Project="..\targets.props" />
+	<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+
+	<PropertyGroup>
+		<IncludePath>$(IncludePath)</IncludePath>
+		<RunCodeAnalysis>true</RunCodeAnalysis>
+		<EnableInf2cat>false</EnableInf2cat>
+        <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets>
+		<IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+		<OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+	</PropertyGroup>
+
+	<ItemDefinitionGroup>
+	  <CustomBuildStep>
+            <Command>echo "Build version header"
+	    powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\include\version.h"
+	    </Command>
+            <Outputs>..\..\include\version.h</Outputs>
+            <Inputs>..\..\include\version.hx</Inputs>
+        </CustomBuildStep>
+
+		<ClCompile>
+			<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+			<PreprocessorDefinitions>__MODULE__="XENIFACE_COINST";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+			<WarningLevel>EnableAllWarnings</WarningLevel>
+			<DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+			<MultiProcessorCompilation>true</MultiProcessorCompilation>
+			<EnablePREfast>true</EnablePREfast>
+			<RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+			<RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+		</ClCompile>
+		<Link>
+			<ModuleDefinitionFile>../../src/coinst/xeniface_coinst.def</ModuleDefinitionFile>
+			<AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+		</Link>
+		<ResourceCompile>
+			<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+		</ResourceCompile>
+	</ItemDefinitionGroup>
+	<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+		<ClCompile>
+			<PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+		</ClCompile>
+	</ItemDefinitionGroup>
+	<ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+		<ClCompile>
+			<PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+		</ClCompile>
+	</ItemDefinitionGroup>
+
+	<ItemGroup>
+		<FilesToPackage Include="$(TargetPath)" />
+		<FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+		<FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+	</ItemGroup>
+	<ItemGroup>
+		<ClCompile Include="..\..\src\coinst\coinst.c" />
+	</ItemGroup>
+	<ItemGroup>
+		<None Include="..\..\src\coinst\xeniface_coinst.def" />
+	</ItemGroup>
+	<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
\ No newline at end of file
diff --git a/vs2012/xeniface_coinst/xeniface_coinst.vcxproj.user b/vs2012/xeniface_coinst/xeniface_coinst.vcxproj.user
new file mode 100644
index 0000000..6a435fd
--- /dev/null
+++ b/vs2012/xeniface_coinst/xeniface_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2013/package/package.vcxproj b/vs2013/package/package.vcxproj
index 5b3d5b3..c83e31b 100644
--- a/vs2013/package/package.vcxproj
+++ b/vs2013/package/package.vcxproj
@@ -74,6 +74,9 @@
     <ProjectReference Include="..\xeniface\xeniface.vcxproj">
       <Project>{22166290-65D8-49D2-BB88-33201797C7D8}</Project>
     </ProjectReference>
+    <ProjectReference Include="..\xeniface_coinst\xeniface_coinst.vcxproj">
+      <Project>{85c731ad-2ea2-4049-a542-d2d38ede938c}</Project>
+    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <FilesToPackage Include="$(KIT)\Redist\DIFx\dpinst\EngMui\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
diff --git a/vs2013/xeniface.sln b/vs2013/xeniface.sln
index 5d210d6..413b86a 100644
--- a/vs2013/xeniface.sln
+++ b/vs2013/xeniface.sln
@@ -1,13 +1,19 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Express 2013 for Windows Desktop
-VisualStudioVersion = 12.0.21005.1
+VisualStudioVersion = 12.0.30723.0
 MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface_coinst", "xeniface_coinst\xeniface_coinst.vcxproj", "{85C731AD-2EA2-4049-A542-D2D38EDE938C}"
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface", "xeniface\xeniface.vcxproj", "{22166290-65D8-49D2-BB88-33201797C7D8}"
+	ProjectSection(ProjectDependencies) = postProject
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C} = {85C731AD-2EA2-4049-A542-D2D38EDE938C}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LiteAgent", "liteagent\LiteAgent.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{9B071A35-897C-477A-AEB7-95F77618A21D}"
 	ProjectSection(ProjectDependencies) = postProject
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C} = {85C731AD-2EA2-4049-A542-D2D38EDE938C}
 		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
 	EndProjectSection
 EndProject
@@ -31,6 +37,54 @@ Global
 		Windows Vista Release|x64 = Windows Vista Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.Build.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.Build.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.ActiveCfg = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.Build.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Release|x64.Deploy.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 7 Release|x64.Deploy.0 = Windows 7 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.Build.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.ActiveCfg = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.Build.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Developer Preview Release|x64.Deploy.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.ActiveCfg = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.Build.0 = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|Win32.Deploy.0 = Windows Vista Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.ActiveCfg = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.Build.0 = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Debug|x64.Deploy.0 = Windows Vista Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.ActiveCfg = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.Build.0 = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|Win32.Deploy.0 = Windows Vista Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.ActiveCfg = Windows Vista Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.Build.0 = Windows Vista Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows Vista Release|x64.Deploy.0 = Windows Vista Release|x64
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.Build.0 = Windows 8 Debug|Win32
 		{22166290-65D8-49D2-BB88-33201797C7D8}.Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
diff --git a/vs2013/xeniface/xeniface.vcxproj b/vs2013/xeniface/xeniface.vcxproj
index 843e85e..65743d4 100644
--- a/vs2013/xeniface/xeniface.vcxproj
+++ b/vs2013/xeniface/xeniface.vcxproj
@@ -64,13 +64,11 @@
       <CustomBuildStep>
             <Command>echo "Build Inf"
                  powershell -Command "(Get-Content ..\..\src\xeniface.inf) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' | Set-Content ..\..\vs2013\xeniface.inf"
-                echo "Build version header"
-                powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\include\version.h"
                 echo "Modify mof"
                 powershell -Command "(Get-Content ..\..\src\xeniface.mof)  -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\src\xeniface\wmi.mof"
             </Command>
-            <Outputs>..\..\vs2013\xeniface.inf;..\..\include\version.h;..\..\src\xeniface\wmi.mof</Outputs>
-            <Inputs>..\..\src\xeniface.inf;..\..\include\version.hx;..\..\src\xeniface.mof</Inputs>
+            <Outputs>..\..\vs2013\xeniface.inf;..\..\src\xeniface\wmi.mof</Outputs>
+            <Inputs>..\..\src\xeniface.inf;..\..\src\xeniface.mof</Inputs>
         </CustomBuildStep>
     <ClCompile>
       <PreprocessorDefinitions>__MODULE__="XENIFACE";POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
diff --git a/vs2013/xeniface_coinst/xeniface_coinst.vcxproj b/vs2013/xeniface_coinst/xeniface_coinst.vcxproj
new file mode 100644
index 0000000..b577dc8
--- /dev/null
+++ b/vs2013/xeniface_coinst/xeniface_coinst.vcxproj
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <DriverType>WDM</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Label="Globals">
+    <Configuration>Windows Vista Debug</Configuration>
+    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows Vista Debug|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows Vista Debug|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows Vista Release|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows Vista Release|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Release|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Release|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Debug|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Debug|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+    <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{85c731ad-2ea2-4049-a542-d2d38ede938c}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+    <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <CustomBuildStep>
+      <Command>echo "Build version header"
+      powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) -replace '@OBJECT_PREFIX@','$(OBJECT_PREFIX)' | Set-Content ..\..\include\version.h"
+      </Command>
+      <Outputs>..\..\include\version.h</Outputs>
+      <Inputs>..\..\include\version.hx</Inputs>
+    </CustomBuildStep>
+
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>__MODULE__="XENIFACE_COINST";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xeniface_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xeniface_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
\ No newline at end of file
diff --git a/vs2013/xeniface_coinst/xeniface_coinst.vcxproj.user b/vs2013/xeniface_coinst/xeniface_coinst.vcxproj.user
new file mode 100644
index 0000000..6a435fd
--- /dev/null
+++ b/vs2013/xeniface_coinst/xeniface_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 17:20:06 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 17:20:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YB58Q-0000xf-NM; Tue, 13 Jan 2015 17:20:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YB503-0007el-VG
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 17:11:28 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	54/65-22819-FB155B45; Tue, 13 Jan 2015 17:11:27 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1421169086!17848227!1
X-Originating-IP: [209.85.212.180]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20866 invoked from network); 13 Jan 2015 17:11:26 -0000
Received: from mail-wi0-f180.google.com (HELO mail-wi0-f180.google.com)
	(209.85.212.180)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 17:11:26 -0000
Received: by mail-wi0-f180.google.com with SMTP id n3so5421899wiv.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 13 Jan 2015 09:11:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=St+zw+W2xmnKNK2DSnxAbNCuht/T2AjCt3kbMENDpVA=;
	b=VWJa4fePEHV0W/pkzXzVmrU3P3jDt5DmHMG7+JTucqHkfeqEv886u+13ygjuZk4w9B
	tIbHtXtLgOzbDFXULw+s0mL+o+UuQ43l+0eFQ9Wyv7nJV/OQjGR8+9/v59BLusQDqVys
	lJVwtoE3qMLgwqtvZIvjlIBx0V6dfsnOwSqEoxcRLM6klvclTrFUwxpG1zsHwnimOYZ6
	qwrB9itcVMCnNYJjr6SY4dai4vGKwf+dS55JUX93zKijg9Qs+3fU5VQS85pkj2nEJhst
	cNRf48XkI2AvJbnAkQ4xGAZAUqNGf+lZJ0ORfBiXhJtg09733QdEkXizxnQtinyu9IQx
	ekXQ==
X-Received: by 10.194.61.18 with SMTP id l18mr3469805wjr.42.1421169086282;
	Tue, 13 Jan 2015 09:11:26 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id w3sm26488719wjf.3.2015.01.13.09.11.25
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 13 Jan 2015 09:11:25 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 13 Jan 2015 17:11:09 +0000
Message-Id: <1421169069-8380-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
References: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
X-Mailman-Approved-At: Tue, 13 Jan 2015 17:20:05 +0000
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Move interface subscription code into
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Interface subscription is better handled at package installation time and
therefore the co-installer is the right place for it to live.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/coinst/coinst.c | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/xeniface/fdo.c  |  95 +++------------------------
 2 files changed, 192 insertions(+), 87 deletions(-)

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
index cd3d1e0..dd1aad1 100644
--- a/src/coinst/coinst.c
+++ b/src/coinst/coinst.c
@@ -193,6 +193,176 @@ FunctionName(
 #undef  _NAME
 }
 
+static HKEY
+OpenInterfacesKey(
+    IN  PTCHAR  ProviderName
+    )
+{
+    HRESULT     Result;
+    TCHAR       KeyName[MAX_PATH];
+    HKEY        Key;
+    HRESULT     Error;
+
+    Result = StringCbPrintf(KeyName,
+                            MAX_PATH,
+                            "%s\\%s\\Interfaces",
+                            SERVICES_KEY,
+                            ProviderName);
+    if (!SUCCEEDED(Result)) {
+        SetLastError(ERROR_BUFFER_OVERFLOW);
+        goto fail1;
+    }
+
+    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                         KeyName,
+                         0,
+                         KEY_ALL_ACCESS,
+                         &Key);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    return Key;
+
+fail2:
+    Log("fail2");
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return NULL;
+}
+
+static BOOLEAN
+SubscribeInterface(
+    IN  PTCHAR  ProviderName,
+    IN  PTCHAR  SubscriberName,
+    IN  PTCHAR  InterfaceName,
+    IN  DWORD   InterfaceVersion
+    )
+{
+    HKEY        Key;
+    HKEY        InterfacesKey;
+    HRESULT     Error;
+
+    InterfacesKey = OpenInterfacesKey(ProviderName);
+    if (InterfacesKey == NULL)
+        goto fail1;
+
+    Error = RegCreateKeyEx(InterfacesKey,
+                           SubscriberName,
+                           0,
+                           NULL,
+                           REG_OPTION_NON_VOLATILE,
+                           KEY_ALL_ACCESS,
+                           NULL,
+                           &Key,
+                           NULL);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    Error = RegSetValueEx(Key,
+                          InterfaceName,
+                          0,
+                          REG_DWORD,
+                          (const BYTE *)&InterfaceVersion,
+                          sizeof(DWORD));
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail3;
+    }
+
+    Log("%s: %s_%s_INTERFACE_VERSION %u",
+        SubscriberName,
+        ProviderName,
+        InterfaceName,
+        InterfaceVersion);
+
+    RegCloseKey(Key);
+    RegCloseKey(InterfacesKey);
+
+    return TRUE;
+
+fail3:
+    RegCloseKey(Key);
+
+fail2:
+    RegCloseKey(InterfacesKey);
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return FALSE;
+}
+
+#define SUBSCRIBE_INTERFACE(_ProviderName, _SubscriberName, _InterfaceName)                        \
+    do {                                                                                           \
+        (VOID) SubscribeInterface(#_ProviderName,                                                  \
+                                  #_SubscriberName,                                                \
+                                  #_InterfaceName,                                                 \
+                                  _ProviderName ## _ ## _InterfaceName ## _INTERFACE_VERSION_MAX); \
+    } while (FALSE);
+
+static BOOLEAN
+UnsubscribeInterfaces(
+    IN  PTCHAR  ProviderName,
+    IN  PTCHAR  SubscriberName
+    )
+{
+    HKEY        InterfacesKey;
+    HRESULT     Error;
+
+    Log("%s: %s", SubscriberName, ProviderName);
+
+    InterfacesKey = OpenInterfacesKey(ProviderName);
+    if (InterfacesKey == NULL) {
+        goto fail1;
+    }
+
+    Error = RegDeleteTree(InterfacesKey,
+                          SubscriberName);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    RegCloseKey(InterfacesKey);
+
+    return TRUE;
+
+fail2:
+    RegCloseKey(InterfacesKey);
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return FALSE;
+}
+
 static HRESULT
 DifInstallPreProcess(
     IN  HDEVINFO                    DeviceInfoSet,
@@ -220,7 +390,13 @@ DifInstallPostProcess(
     UNREFERENCED_PARAMETER(DeviceInfoData);
     UNREFERENCED_PARAMETER(Context);
 
-    Log("<===>");
+    Log("====>");
+
+    SUBSCRIBE_INTERFACE(XENBUS, XENIFACE, SUSPEND);
+    SUBSCRIBE_INTERFACE(XENBUS, XENIFACE, SHARED_INFO);
+    SUBSCRIBE_INTERFACE(XENBUS, XENIFACE, STORE);
+
+    Log("<====");
 
     return NO_ERROR;
 }
@@ -292,7 +468,11 @@ DifRemovePreProcess(
     UNREFERENCED_PARAMETER(DeviceInfoData);
     UNREFERENCED_PARAMETER(Context);
 
-    Log("<===>");
+    Log("====>");
+
+    UnsubscribeInterfaces("XENBUS", "XENIFACE");
+
+    Log("<====");
 
     return NO_ERROR;
 }
diff --git a/src/xeniface/fdo.c b/src/xeniface/fdo.c
index 20fe167..321bfb3 100644
--- a/src/xeniface/fdo.c
+++ b/src/xeniface/fdo.c
@@ -2109,13 +2109,9 @@ FdoDispatch(
     return status;
 }
 
-#define SERVICES_KEY        L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Services"
-
-static FORCEINLINE NTSTATUS
-__FdoQueryInterface(
+static NTSTATUS
+FdoQueryInterface(
     IN  PXENIFACE_FDO   Fdo,
-    IN  const WCHAR     *ProviderName,
-    IN  const CHAR      *InterfaceName,
     IN  const GUID      *Guid,
     IN  ULONG           Version,
     OUT PINTERFACE      Interface,
@@ -2123,9 +2119,6 @@ __FdoQueryInterface(
     IN  BOOLEAN         Optional
     )
 {
-    UNICODE_STRING      Unicode;
-    HANDLE              InterfacesKey;
-    HANDLE              SubscriberKey;
     KEVENT              Event;
     IO_STATUS_BLOCK     StatusBlock;
     PIRP                Irp;
@@ -2134,38 +2127,6 @@ __FdoQueryInterface(
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
-    Unicode.MaximumLength = (USHORT)((wcslen(SERVICES_KEY) +
-                                      1 +
-                                      wcslen(ProviderName) +
-                                      1 +
-                                      wcslen(L"Interfaces") +
-                                      1) * sizeof (WCHAR));
-
-    Unicode.Buffer = __FdoAllocate(Unicode.MaximumLength);
-
-    status = STATUS_NO_MEMORY;
-    if (Unicode.Buffer == NULL)
-        goto fail1;
-
-    status = RtlStringCbPrintfW(Unicode.Buffer,
-                                Unicode.MaximumLength,
-                                SERVICES_KEY L"\\%ws\\Interfaces",
-                                ProviderName);
-    ASSERT(NT_SUCCESS(status));
-
-    Unicode.Length = (USHORT)(wcslen(Unicode.Buffer) * sizeof (WCHAR));
-
-    status = RegistryOpenKey(NULL, &Unicode, KEY_READ, &InterfacesKey);
-    if (!NT_SUCCESS(status))
-        goto fail2;
-
-    status = RegistryCreateSubKey(InterfacesKey, 
-                                  "XENIFACE", 
-                                  REG_OPTION_NON_VOLATILE, 
-                                  &SubscriberKey);
-    if (!NT_SUCCESS(status))
-        goto fail3;
-                   
     KeInitializeEvent(&Event, NotificationEvent, FALSE);
     RtlZeroMemory(&StatusBlock, sizeof(IO_STATUS_BLOCK));
 
@@ -2179,7 +2140,7 @@ __FdoQueryInterface(
 
     status = STATUS_UNSUCCESSFUL;
     if (Irp == NULL)
-        goto fail4;
+        goto fail1;
 
     StackLocation = IoGetNextIrpStackLocation(Irp);
     StackLocation->MinorFunction = IRP_MN_QUERY_INTERFACE;
@@ -2205,45 +2166,15 @@ __FdoQueryInterface(
         if (status == STATUS_NOT_SUPPORTED && Optional)
             goto done;
 
-        goto fail5;
+        goto fail2;
     }
 
-    status = RegistryUpdateDwordValue(SubscriberKey,
-                                      (PCHAR)InterfaceName,
-                                      Version);
-    if (!NT_SUCCESS(status))
-        goto fail6;
-
 done:
-    RegistryCloseKey(SubscriberKey);
-
-    RegistryCloseKey(InterfacesKey);
-
-    __FdoFree(Unicode.Buffer);
-
     return STATUS_SUCCESS;
 
-fail6:
-    Error("fail6\n");
-
-fail5:
-    Error("fail5\n");
-
-fail4:
-    Error("fail4\n");
-
-    RegistryCloseKey(SubscriberKey);
-
-fail3:
-    Error("fail3\n");
-
-    RegistryCloseKey(InterfacesKey);
-
 fail2:
     Error("fail2\n");
 
-    __FdoFree(Unicode.Buffer);
-
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -2254,18 +2185,15 @@ fail1:
     _Fdo,                                                                               \
     _ProviderName,                                                                      \
     _InterfaceName,                                                                     \
-    _Version,                                                                           \
     _Interface,                                                                         \
     _Size,                                                                              \
     _Optional)                                                                          \
-    __FdoQueryInterface((_Fdo),                                                         \
-                        L ## #_ProviderName,                                            \
-                        #_InterfaceName,                                                \
-                        &GUID_ ## _ProviderName ## _ ## _InterfaceName ## _INTERFACE,   \
-                        (_Version),                                                     \
-                        (_Interface),                                                   \
-                        (_Size),                                                        \
-                        (_Optional))
+    FdoQueryInterface((_Fdo),                                                           \
+                      &GUID_ ## _ProviderName ## _ ## _InterfaceName ## _INTERFACE,     \
+                      _ProviderName ## _ ## _InterfaceName ## _INTERFACE_VERSION_MAX,   \
+                      (_Interface),                                                     \
+                      (_Size),                                                          \
+                      (_Optional))
 
 NTSTATUS
 FdoCreate(
@@ -2344,7 +2272,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  SUSPEND,
-                                 XENBUS_SUSPEND_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->SuspendInterface,
                                  sizeof (Fdo->SuspendInterface),
                                  FALSE);
@@ -2354,7 +2281,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  SHARED_INFO,
-                                 XENBUS_SHARED_INFO_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->SharedInfoInterface,
                                  sizeof (Fdo->SharedInfoInterface),
                                  FALSE);
@@ -2364,7 +2290,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  STORE,
-                                 XENBUS_STORE_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->StoreInterface,
                                  sizeof (Fdo->StoreInterface),
                                  FALSE);
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 17:20:06 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 17:20:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YB58Q-0000xn-Q9; Tue, 13 Jan 2015 17:20:06 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YB504-0007eq-NC
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 17:11:29 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	F3/DD-15461-0C155B45; Tue, 13 Jan 2015 17:11:28 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1421169084!13897005!1
X-Originating-IP: [74.125.82.182]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10818 invoked from network); 13 Jan 2015 17:11:24 -0000
Received: from mail-we0-f182.google.com (HELO mail-we0-f182.google.com)
	(74.125.82.182)
	by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 17:11:24 -0000
Received: by mail-we0-f182.google.com with SMTP id w62so4098992wes.13
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 13 Jan 2015 09:11:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:mime-version:content-type
	:content-transfer-encoding;
	bh=jquNT2PPelSux8jUmqsdDNuThiqaYdZC5zpPC0gqQys=;
	b=n7v4TL1YNuyzVOxVOcrkIsU58e/n3+V+Q5ck7zhx+haETuk3eCMCS/N9H+UJb2hh+S
	oTnCpSaKBiJS89NI6XINgzqru3PtwDI27CFC9uhNA/trvh8z7RmAIKxKpodtQ+uavhjV
	J9p58efAB0VhziS+npKwJdJ2Rm75DUL4y/6KJPA9UODbul+dwXXd33cdb/u/H8IDujt6
	bTPkzvpaQEyL9dmPOsI7WT4TGYeBafYPhZg09i7ESIvhfU32f9FDQMAQpJO30KovnBx6
	yVbGB533Or2mosqlKbBTUuzvZ1pSaVq7oFTnw/vXr1cOFvyuJi1Dt5kXs8VJm0jWzv6o
	xXOw==
X-Received: by 10.194.19.131 with SMTP id f3mr39755637wje.46.1421169083931;
	Tue, 13 Jan 2015 09:11:23 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id w3sm26488719wjf.3.2015.01.13.09.11.22
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 13 Jan 2015 09:11:23 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 13 Jan 2015 17:11:07 +0000
Message-Id: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
Content-Length:126240
X-Mailman-Approved-At: Tue, 13 Jan 2015 17:20:05 +0000
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Fix line endings
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIgfCAgIDIgKy0KIHZzMjAx
Mi9wYWNrYWdlL3BhY2thZ2UudmN4cHJvai51c2VyICAgICB8ICAxNiArLQogdnMyMDEzL2xpdGVh
Z2VudC9MaXRlQWdlbnQudmN4cHJvaiAgICAgIHwgNTAyICsrKysrKysrKysrKysrKystLS0tLS0t
LS0tLS0tLS0tCiB2czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIgfCAgIDIg
Ky0KIHZzMjAxMy9wYWNrYWdlL3BhY2thZ2UudmN4cHJvaiAgICAgICAgICB8IDE2OCArKysrKy0t
LS0tLQogdnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qLnVzZXIgICAgIHwgIDE2ICstCiB2
czIwMTMveGVuaWZhY2Uuc2xuICAgICAgICAgICAgICAgICAgICAgfCAzMjQgKysrKysrKysrKy0t
LS0tLS0tLS0tCiB2czIwMTMveGVuaWZhY2UveGVuaWZhY2UudmN4cHJvaiAgICAgICAgfCAzMjgg
KysrKysrKysrKy0tLS0tLS0tLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDY3OSBpbnNlcnRpb25zKCsp
LCA2NzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdl
bnQudmN4cHJvai51c2VyIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2Vy
CmluZGV4IGEzNzVhZTMuLjUwZjNjYmUgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi9saXRlYWdlbnQvTGl0
ZUFnZW50LnZjeHByb2oudXNlcgorKysgYi92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qLnVzZXIKQEAgLTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
PSJ1dGYtOCI/PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDxQcm9q
ZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNv
bS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KICAgPFByb3BlcnR5R3JvdXAgLz4KIDwvUHJvamVj
dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS92czIwMTIvcGFja2Fn
ZS9wYWNrYWdlLnZjeHByb2oudXNlciBiL3ZzMjAxMi9wYWNrYWdlL3BhY2thZ2UudmN4cHJvai51
c2VyCmluZGV4IDljZDlhZTcuLjZhNDM1ZmQgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi9wYWNrYWdlL3Bh
Y2thZ2UudmN4cHJvai51c2VyCisrKyBiL3ZzMjAxMi9wYWNrYWdlL3BhY2thZ2UudmN4cHJvai51
c2VyCkBAIC0xLDggKzEsOCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPFByb3BlcnR5R3JvdXA+Ci0g
ICAgPFNpZ25Nb2RlPlRlc3RTaWduPC9TaWduTW9kZT4KLSAgICA8VGVzdENlcnRpZmljYXRlPi4u
XC4uXHNyY1x4ZW5pZmFjZS5wZng8L1Rlc3RDZXJ0aWZpY2F0ZT4KLSAgICA8VGltZVN0YW1wU2Vy
dmVyPmh0dHA6Ly90aW1lc3RhbXAudmVyaXNpZ24uY29tL3NjcmlwdHMvdGltc3RhbXAuZGxsPC9U
aW1lU3RhbXBTZXJ2ZXI+Ci0gIDwvUHJvcGVydHlHcm91cD4KLTwvUHJvamVjdD4KKzw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQu
MCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQv
MjAwMyI+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxTaWduTW9kZT5UZXN0U2lnbjwvU2lnbk1v
ZGU+CisgICAgPFRlc3RDZXJ0aWZpY2F0ZT4uLlwuLlxzcmNceGVuaWZhY2UucGZ4PC9UZXN0Q2Vy
dGlmaWNhdGU+CisgICAgPFRpbWVTdGFtcFNlcnZlcj5odHRwOi8vdGltZXN0YW1wLnZlcmlzaWdu
LmNvbS9zY3JpcHRzL3RpbXN0YW1wLmRsbDwvVGltZVN0YW1wU2VydmVyPgorICA8L1Byb3BlcnR5
R3JvdXA+Cis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2Vu
dC52Y3hwcm9qIGIvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCBmYzI3
MDk3Li41MGRiZTQzIDEwMDY0NAotLS0gYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qCisrKyBiL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTEsMjU2ICsx
LDI1NiBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9q
ZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRw
Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRl
bUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmln
dXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1
ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAg
PC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVk
ZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9u
PgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJh
dGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+
Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBs
YXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29u
ZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwv
UGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+ezJFNjFE
MkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3
b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgICA8Um9vdE5hbWVzcGFjZT5TdHViQWdlbnQ8L1Jv
b3ROYW1lc3BhY2U+Ci0gICAgPFByb2plY3ROYW1lPkxpdGVBZ2VudDwvUHJvamVjdE5hbWU+Ci0g
IDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1p
Y3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJD
b25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZp
Z3VyYXRpb25UeXBlPgotICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJh
cmllcz4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4
LjE8L1BsYXRmb3JtVG9vbHNldD4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFj
dGVyU2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZp
Z3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJh
dGlvblR5cGU+Ci0gICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVz
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwv
UGxhdGZvcm1Ub29sc2V0PgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJT
ZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZp
Z3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJh
dGlvblR5cGU+Ci0gICAgPFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VEZWJ1Z0xpYnJhcmll
cz4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8
L1BsYXRmb3JtVG9vbHNldD4KLSAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1do
b2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0i
Q29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGli
cmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVy
czguMTwvUGxhdGZvcm1Ub29sc2V0PgotICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1
ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRl
PC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIk
KFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBM
YWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3Jv
dXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJS
b290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0i
ZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJv
cHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgot
ICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVj
dD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBD
b25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBv
cnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAg
PEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQu
Q3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3Jt
IiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNo
ZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGly
KVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBw
RGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJl
bD0iVXNlck1hY3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxMaW5rSW5jcmVtZW50
YWw+dHJ1ZTwvTGlua0luY3JlbWVudGFsPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFBs
YXRmb3JtKVwkKENvbmZpZ3VyYXRpb25OYW1lKVw8L091dERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3Vw
PgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxMaW5rSW5jcmVtZW50YWw+dHJ1ZTwvTGlua0luY3Jl
bWVudGFsPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxM
aW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8T3V0RGlyPiQoU29s
dXRpb25EaXIpJChQbGF0Zm9ybSlcJChDb25maWd1cmF0aW9uTmFtZSlcPC9PdXREaXI+Ci0gIDwv
UHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxMaW5rSW5jcmVtZW50YWw+
ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cD4KLSAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5j
bHVkZVBhdGg+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgot
ICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4K
LSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9f
V0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRp
b25zPgotICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7
JChTREtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRl
ZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgLz4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgLz4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgICA8TGluaz4KLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgotICAgICAg
PEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+
Ci0gICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFs
RGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KLSAgICA8L0xpbms+Ci0gICAg
PEN1c3RvbUJ1aWxkU3RlcD4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxu
cz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4K
KyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVj
dENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRp
b24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3Jt
PgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9u
IEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmln
dXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENv
bmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8
V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAg
ICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlv
bj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAg
ICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9y
bT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdy
b3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlk
PnsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9PC9Qcm9qZWN0R3VpZD4KKyAg
ICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+CisgICAgPFJvb3ROYW1lc3BhY2U+U3R1YkFn
ZW50PC9Sb290TmFtZXNwYWNlPgorICAgIDxQcm9qZWN0TmFtZT5MaXRlQWdlbnQ8L1Byb2plY3RO
YW1lPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQ
YXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBM
YWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9u
PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVi
dWdMaWJyYXJpZXM+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JE
cml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8
L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVs
PSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0Nv
bmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xp
YnJhcmllcz4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZl
cnM4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVs
PSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0Nv
bmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdM
aWJyYXJpZXM+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2
ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50
cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5
dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIg
TGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlv
bjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VE
ZWJ1Z0xpYnJhcmllcz4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZv
ckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0
aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJv
amVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0
R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPElt
cG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxJbXBvcnQgUHJvamVjdD0i
JChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25k
aXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRH
cm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0
IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5w
cm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Cisg
IDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQ
bGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9z
b2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJM
b2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3Jv
dXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8TGlua0lu
Y3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KKyAgICA8T3V0RGlyPiQoU29sdXRpb25E
aXIpJChQbGF0Zm9ybSlcJChDb25maWd1cmF0aW9uTmFtZSlcPC9PdXREaXI+CisgIDwvUHJvcGVy
dHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xp
bmtJbmNyZW1lbnRhbD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4K
KyAgICA8TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+CisgICAgPE91dERp
cj4kKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm0pXCQoQ29uZmlndXJhdGlvbk5hbWUpXDwvT3V0RGly
PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8TGlua0luY3Jl
bWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFBy
b3BlcnR5R3JvdXA+CisgICAgPEluY2x1ZGVQYXRoPi4uXC4uXGluY2x1ZGU7JChJbmNsdWRlUGF0
aCk8L0luY2x1ZGVQYXRoPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5n
PC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5n
TGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+CisgICAg
ICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VD
VVJFX05PX1dBUk5JTkdTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4KKyAgICAgIDxTRExDaGVjaz50cnVlPC9TRExDaGVjaz4KKyAgICAgIDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilcbGl0
ZWFnZW50OyQoU0RLX0lOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRp
VGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJG
aWxlIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIC8+CisgICAgPC9DbENv
bXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4K
KyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9y
bWF0aW9uPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRk
aXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5r
PgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CiAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdl
dFBhdGgpICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAotICAg
ICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYiAkKFNvbHV0aW9uRGly
KVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+Ci0gICAgPC9DdXN0b21C
dWlsZFN0ZXA+Ci0gICAgPEN1c3RvbUJ1aWxkU3RlcD4KLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcg
b3V0cHV0IGZpbGVzPC9NZXNzYWdlPgotICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIp
XC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRz
KTwvT3V0cHV0cz4KLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRh
cmdldE5hbWUpLnBkYjwvSW5wdXRzPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICA8L0l0ZW1E
ZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPE9wdGltaXph
dGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RM
Q2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNfUEFUSCk7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVM
aWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSAvPgotICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyT3V0cHV0RmlsZSAvPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAg
ICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0lu
Zm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxBZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9B
ZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgotICAgIDwvTGluaz4KLSAgICA8Q3VzdG9tQnVpbGRTdGVw
PgorICAgICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYiAkKFNvbHV0
aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+CisgICAgPC9D
dXN0b21CdWlsZFN0ZXA+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxNZXNzYWdlPkNv
cHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPgorICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShP
dXRwdXRzKTwvT3V0cHV0cz4KKyAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERp
cikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8
L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPENsQ29t
cGlsZT4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFk
ZXI+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAgPE9w
dGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPFByZXByb2Nlc3NvckRl
ZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzsl
KFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAg
ICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNf
UEFUSCk7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1
bnRpbWVMaWJyYXJ5PgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSAvPgorICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSAvPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5r
PgorICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+CisgICAgICA8R2VuZXJhdGVE
ZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxB
ZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNp
ZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgICA8Q3VzdG9tQnVp
bGRTdGVwPgogICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKSAkKFNvbHV0aW9u
RGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwKLSAgICAgICAgICAgIHhjb3B5IC95
ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQ
bGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICAgIDxD
dXN0b21CdWlsZFN0ZXA+Ci0gICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVz
c2FnZT4KLSAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZv
cm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBs
YXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+Ci0gICAg
ICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lu
cHV0cz4KLSAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgot
ICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFdhcm5p
bmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5O
b3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVk
PC9PcHRpbWl6YXRpb24+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rp
b25MZXZlbExpbmtpbmc+Ci0gICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNp
Y0Z1bmN0aW9ucz4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7
X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFNETENoZWNrPnRydWU8L1NETENo
ZWNrPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsk
KFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JChTREtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QnJv
d3NlSW5mb3JtYXRpb24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+Ci0gICAgICA8UHJlcHJvY2Vz
c1RvRmlsZT5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5N
dWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGlu
az4KLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgotICAgICAgPEdlbmVyYXRl
RGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8
RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgICAgPE9w
dGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8QWRkaXRp
b25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwv
QWRkaXRpb25hbERlcGVuZGVuY2llcz4KLSAgICA8L0xpbms+Ci0gICAgPEN1c3RvbUJ1aWxkU3Rl
cD4KLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPgorICAgICAg
ICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYiAkKFNvbHV0aW9uRGlyKVwu
Llx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+CisgICAgPC9DdXN0b21CdWls
ZFN0ZXA+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0
cHV0IGZpbGVzPC9NZXNzYWdlPgorICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVu
aWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwv
T3V0cHV0cz4KKyAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdl
dE5hbWUpLnBkYjwvSW5wdXRzPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8L0l0ZW1EZWZp
bml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+
CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxPcHRpbWl6
YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2lu
Zz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+
dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25z
PldJTjMyO05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUztfV0lORE9XUzslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U0RMQ2hl
Y2s+dHJ1ZTwvU0RMQ2hlY2s+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNfUEFUSCk7JShB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4KKyAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KKyAg
ICAgIDxQcmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9QcmVwcm9jZXNzVG9GaWxlPgorICAgICAgPFJ1
bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21w
aWxlPgorICAgIDxMaW5rPgorICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+Cisg
ICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj4KKyAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRp
bmc+CisgICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4K
KyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxE
ZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgICA8
Q3VzdG9tQnVpbGRTdGVwPgorICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01l
c3NhZ2U+CiAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpICQoU29sdXRpb25E
aXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAotICAgICAgICAgIHhjb3B5IC95ICQo
VGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0
Zm9ybVRhcmdldClcPC9Db21tYW5kPgotICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIp
XC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRz
KTwvT3V0cHV0cz4KLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRh
cmdldE5hbWUpLnBkYjwvSW5wdXRzPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICA8L0l0ZW1E
ZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8T3B0aW1p
emF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtp
bmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+Ci0gICAgICA8SW50cmluc2ljRnVuY3Rpb25z
PnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X1dJTkRPV1M7JShQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFNETENo
ZWNrPnRydWU8L1NETENoZWNrPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+
Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JChTREtfSU5DX1BBVEgpOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgICA8QnJvd3NlSW5mb3JtYXRpb24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+Ci0g
ICAgICA8UHJlcHJvY2Vzc1RvRmlsZT5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4KLSAgICAgIDxS
dW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICA8L0NsQ29t
cGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgot
ICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3Jt
YXRpb24+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xk
aW5nPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+
Ci0gICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFs
RGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KLSAgICA8L0xpbms+Ci0gICAg
PEN1c3RvbUJ1aWxkU3RlcD4KLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9N
ZXNzYWdlPgorICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIgJChT
b2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgorICAg
ICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkk
KFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJn
ZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwvT3V0cHV0cz4KKyAgICAgIDxJbnB1dHM+
JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPgorICAg
IDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVm
aW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZl
bDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJl
Y29tcGlsZWRIZWFkZXI+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRp
b24+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtp
bmc+CisgICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4K
KyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVf
Tk9fV0FSTklOR1M7X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nl
c3NvckRlZmluaXRpb25zPgorICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGly
KVxsaXRlYWdlbnQ7JChTREtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8QnJvd3NlSW5mb3JtYXRp
b24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+CisgICAgICA8UHJlcHJvY2Vzc1RvRmlsZT5mYWxz
ZTwvUHJlcHJvY2Vzc1RvRmlsZT4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVk
PC9SdW50aW1lTGlicmFyeT4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxT
dWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8RW5hYmxlQ09NREFU
Rm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgorICAgICAgPE9wdGltaXplUmVmZXJl
bmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVu
Y2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERl
cGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxN
ZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPgogICAgICAgPENvbW1hbmQ+eGNv
cHkgL3kgJChUYXJnZXRQYXRoKSAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3Jt
VGFyZ2V0KVwKLSAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiICQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KLSAg
ICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQp
JChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFy
Z2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+Ci0gICAgICA8SW5wdXRz
PiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KLSAg
ICA8L0N1c3RvbUJ1aWxkU3RlcD4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdy
b3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XGVy
cm9ycy5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21w
aWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBp
bGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
Li5cc3JjXHdpbjMyc3R1YmFnZW50XHN0ZGFmeC5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFdtaUFjY2Vzc29y
LmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMy
c3R1YmFnZW50XFhTQWNjZXNzb3IuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3Jl
YXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuY3BwIj4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRI
ZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlcHJvY2Vzc1Rv
RmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRl
bUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XHdpbjMyc3R1YmFnZW50XHN0ZGFmeC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Li5cc3JjXHdpbjMyc3R1YmFnZW50XFdtaUFjY2Vzc29yLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nvci5oIiAvPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFhTZXJ2aWNlLmgiIC8+
Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDdXN0b21CdWlsZCBJbmNsdWRl
PSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcbWVzc2FnZXMubWMiPgotICAgICAgPEZpbGVUeXBl
PkRvY3VtZW50PC9GaWxlVHlwZT4KLSAgICAgIDxDb21tYW5kIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5tYyAlKEZ1bGxQYXRoKTwvQ29t
bWFuZD4KLSAgICAgIDxDb21tYW5kIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8T3V0
cHV0cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4KLSAgICAgIDxPdXRw
dXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4KLSAgICAgIDxDb21tYW5k
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPm1jICUoRnVsbFBh
dGgpPC9Db21tYW5kPgotICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFt
ZSkuaDwvT3V0cHV0cz4KLSAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1l
KS5oPC9PdXRwdXRzPgotICAgIDwvQ3VzdG9tQnVpbGQ+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRl
bUdyb3VwPgotICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1
YmFnZW50XHczMnhhZ2VudC5yYyIgLz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0g
ICAgPEltYWdlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFx4ZW4uaWNvIiAvPgot
ICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jv
c29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJn
ZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KKyAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcilM
aXRlQWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQp
XDwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQo
UGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFj
ZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+
CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5w
ZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAgPC9JdGVtRGVmaW5pdGlvbkdy
b3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdp
bjMyc3R1YmFnZW50XGVycm9ycy5jcHAiPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5v
dFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90
VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHN0ZGFmeC5jcHAiPgorICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAg
IDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFn
ZW50XFdtaUFjY2Vzc29yLmNwcCI+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkNyZWF0ZTwv
UHJlY29tcGlsZWRIZWFkZXI+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5DcmVhdGU8L1ByZWNv
bXBpbGVkSGVhZGVyPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVj
b21waWxlZEhlYWRlcj4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNv
bXBpbGVkSGVhZGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFhTQWNjZXNzb3IuY3BwIj4KKyAgICAgIDxQcmVjb21w
aWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxQcmVjb21waWxl
ZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAgICA8UHJlY29tcGlsZWRIZWFk
ZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuY3Bw
Ij4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4K
KyAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAg
ICA8UHJlcHJvY2Vzc1RvRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+CisgICAgPC9DbENv
bXBpbGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHN0ZGFmeC5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFdtaUFjY2Vzc29yLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nv
ci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50
XFhTZXJ2aWNlLmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDdXN0
b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcbWVzc2FnZXMubWMiPgor
ICAgICAgPEZpbGVUeXBlPkRvY3VtZW50PC9GaWxlVHlwZT4KKyAgICAgIDxDb21tYW5kIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5tYyAl
KEZ1bGxQYXRoKTwvQ29tbWFuZD4KKyAgICAgIDxDb21tYW5kIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+bWMgJShGdWxsUGF0aCk8L0NvbW1h
bmQ+CisgICAgICA8T3V0cHV0cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0
cz4KKyAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4K
KyAgICAgIDxDb21tYW5kIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgorICAgICAgPENvbW1h
bmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgorICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JShGaWxlbmFt
ZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4KKyAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4lKEZpbGVuYW1l
KS5yYzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPgorICAgIDwvQ3VzdG9tQnVpbGQ+CisgIDwvSXRl
bUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5c
Li5cc3JjXHdpbjMyc3R1YmFnZW50XHczMnhhZ2VudC5yYyIgLz4KKyAgPC9JdGVtR3JvdXA+Cisg
IDxJdGVtR3JvdXA+CisgICAgPEltYWdlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2Vu
dFx4ZW4uaWNvIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFy
Z2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVs
PSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KIDwvUHJvamVjdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVB
Z2VudC52Y3hwcm9qLnVzZXIgYi92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVz
ZXIKaW5kZXggYTM3NWFlMy4uNTBmM2NiZSAxMDA2NDQKLS0tIGEvdnMyMDEzL2xpdGVhZ2VudC9M
aXRlQWdlbnQudmN4cHJvai51c2VyCisrKyBiL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZj
eHByb2oudXNlcgpAQCAtMSw0ICsxLDQgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9InV0Zi04Ij8+Cis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgogPFBy
b2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQu
Y29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgogICA8UHJvcGVydHlHcm91cCAvPgogPC9Qcm9q
ZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3ZzMjAxMy9wYWNr
YWdlL3BhY2thZ2UudmN4cHJvaiBiL3ZzMjAxMy9wYWNrYWdlL3BhY2thZ2UudmN4cHJvagppbmRl
eCBmMjE5NTI3Li41YjNkNWIzIDEwMDY0NAotLS0gYS92czIwMTMvcGFja2FnZS9wYWNrYWdlLnZj
eHByb2oKKysrIGIvdnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qCkBAIC0xLDg1ICsxLDg1
IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3Qg
RGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9z
Y2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJbXBvcnQg
UHJvamVjdD0iLi5cY29uZmlncy5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+VXRpbGl0eTwvQ29uZmlndXJh
dGlvblR5cGU+Ci0gICAgPERyaXZlclR5cGU+UGFja2FnZTwvRHJpdmVyVHlwZT4KLSAgICA8RGlz
YWJsZUZhc3RVcFRvRGF0ZUNoZWNrPnRydWU8L0Rpc2FibGVGYXN0VXBUb0RhdGVDaGVjaz4KLSAg
PC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAg
PENvbmZpZ3VyYXRpb24+V2luZG93cyBWaXN0YSBEZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICA8
UGxhdGZvcm0gQ29uZGl0aW9uPSInJChQbGF0Zm9ybSknID09ICcnIj5XaW4zMjwvUGxhdGZvcm0+
Ci0gICAgPERlYnVnZ2VyRmxhdm9yPkRiZ2VuZ0tlcm5lbERlYnVnZ2VyPC9EZWJ1Z2dlckZsYXZv
cj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0
aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBMYWJl
bD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdXaW5kb3dzIDggUmVsZWFzZXxXaW4zMiciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2lu
ZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8
V2luMzInIj4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZl
cnM4LjE8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzInIj4KLSAgICA8UGxhdGZv
cm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNl
dD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJh
dGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dz
IDcgUmVsZWFzZXxXaW4zMiciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0
aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgNyBEZWJ1Z3xXaW4zMiciPgotICAgIDxQ
bGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1U
b29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25m
aWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dp
bmRvd3MgOCBEZWJ1Z3xXaW4zMiciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxp
Y2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+
Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNlfHg2NCciPgotICAg
IDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJD
b25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1dpbmRvd3MgVmlzdGEgRGVidWd8eDY0JyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dz
QXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2
NCciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczgu
MTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1dpbmRvd3MgNyBSZWxlYXNlfHg2NCciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1By
b3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgNyBEZWJ1Z3x4
NjQnIj4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4
LjE8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdXaW5kb3dzIDggRGVidWd8eDY0JyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5X
aW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJv
cGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9q
ZWN0R3VpZD57OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfTwvUHJvamVjdEd1
aWQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIuLlx0YXJnZXRzLnBy
b3BzIiAvPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPEVuYWJsZUluZjJjYXQ+dHJ1ZTwv
RW5hYmxlSW5mMmNhdD4KLSAgICA8SW5mMkNhdFdpbmRvd3NWZXJzaW9uTGlzdCBDb25kaXRpb249
IickKFBsYXRmb3JtKSc9PSd4NjQnIj5WaXN0YV94NjQ7N194NjQ7U2VydmVyMjAwOF94NjQ7U2Vy
dmVyMjAwOFIyX3g2NDtTZXJ2ZXI4X3g2NDwvSW5mMkNhdFdpbmRvd3NWZXJzaW9uTGlzdD4KLSAg
ICA8SW5mMkNhdFdpbmRvd3NWZXJzaW9uTGlzdCBDb25kaXRpb249IickKFBsYXRmb3JtKSc9PSdX
aW4zMiciPlZpc3RhX3g4Njs3X3g4NjtTZXJ2ZXIyMDA4X3g4Njs4X3g4NjwvSW5mMkNhdFdpbmRv
d3NWZXJzaW9uTGlzdD4KLSAgICA8RGVidWdnZXJGbGF2b3I+RGJnZW5nS2VybmVsRGVidWdnZXI8
L0RlYnVnZ2VyRmxhdm9yPgotICAgIDxFbmFibGVEZXBsb3ltZW50PkZhbHNlPC9FbmFibGVEZXBs
b3ltZW50PgotICAgIDxJbXBvcnRUb1N0b3JlPkZhbHNlPC9JbXBvcnRUb1N0b3JlPgotICAgIDxJ
bnN0YWxsTW9kZT5Ob25lPC9JbnN0YWxsTW9kZT4KLSAgICA8U2NyaXB0RGV2aWNlUXVlcnk+JVBh
dGhUb0luZiU8L1NjcmlwdERldmljZVF1ZXJ5PgotICAgIDxFbmFibGVWZXJpZmllcj5GYWxzZTwv
RW5hYmxlVmVyaWZpZXI+Ci0gICAgPEFsbERyaXZlcnM+RmFsc2U8L0FsbERyaXZlcnM+Ci0gICAg
PFZlcmlmeVByb2plY3RPdXRwdXQ+VHJ1ZTwvVmVyaWZ5UHJvamVjdE91dHB1dD4KLSAgICA8VmVy
aWZ5RmxhZ3M+MTMzNTYzPC9WZXJpZnlGbGFncz4KLSAgICA8SW50RGlyPi4uXCQoUHJvamVjdE5h
bWUpXCQoQ29uZmlndXJhdGlvbk5hbWUpXCQoUGxhdGZvcm0pXDwvSW50RGlyPgotICAgIDxPdXRE
aXI+Li5cJChDb25maWd1cmF0aW9uTmFtZSlcJChQbGF0Zm9ybSlcPC9PdXREaXI+Ci0gICAgPFBh
Y2thZ2VEaXI+Li5cLi5ceGVuaWZhY2VcJChEREtQbGF0Zm9ybSk8L1BhY2thZ2VEaXI+Ci0gIDwv
UHJvcGVydHlHcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNs
dWRlPSIuLlx4ZW5pZmFjZVx4ZW5pZmFjZS52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnsyMjE2
NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVj
dFJlZmVyZW5jZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbGVzVG9Q
YWNrYWdlIEluY2x1ZGU9IiQoS0lUKVxSZWRpc3RcRElGeFxkcGluc3RcRW5nTXVpXHg4NlxkcGlu
c3QuZXhlIiBDb25kaXRpb249IickKFBsYXRmb3JtKSc9PSdXaW4zMiciIC8+Ci0gICAgPEZpbGVz
VG9QYWNrYWdlIEluY2x1ZGU9IiQoS0lUKVxSZWRpc3RcRElGeFxkcGluc3RcRW5nTXVpXHg2NFxk
cGluc3QuZXhlIiBDb25kaXRpb249IickKFBsYXRmb3JtKSc9PSd4NjQnIiAvPgotICA8L0l0ZW1H
cm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAu
dGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KLSAg
PC9JbXBvcnRHcm91cD4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8
UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0i
aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAg
PEltcG9ydCBQcm9qZWN0PSIuLlxjb25maWdzLnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBM
YWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5VdGlsaXR5PC9D
b25maWd1cmF0aW9uVHlwZT4KKyAgICA8RHJpdmVyVHlwZT5QYWNrYWdlPC9Ecml2ZXJUeXBlPgor
ICAgIDxEaXNhYmxlRmFzdFVwVG9EYXRlQ2hlY2s+dHJ1ZTwvRGlzYWJsZUZhc3RVcFRvRGF0ZUNo
ZWNrPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxz
Ij4KKyAgICA8Q29uZmlndXJhdGlvbj5XaW5kb3dzIFZpc3RhIERlYnVnPC9Db25maWd1cmF0aW9u
PgorICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IickKFBsYXRmb3JtKScgPT0gJyciPldpbjMyPC9Q
bGF0Zm9ybT4KKyAgICA8RGVidWdnZXJGbGF2b3I+RGJnZW5nS2VybmVsRGVidWdnZXI8L0RlYnVn
Z2VyRmxhdm9yPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rh
cmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdy
b3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNlfFdpbjMyJyI+CisgICAgPFBsYXRmb3JtVG9v
bHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Cisg
IDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24i
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0
YSBEZWJ1Z3xXaW4zMiciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9u
Rm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQ
cm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMiciPgorICAg
IDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZv
cm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJD
b25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1dpbmRvd3MgNyBSZWxlYXNlfFdpbjMyJyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dz
QXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlH
cm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IERlYnVnfFdpbjMyJyI+
CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9Q
bGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFi
ZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nV2luZG93cyA4IERlYnVnfFdpbjMyJyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5k
b3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVy
dHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IFJlbGVhc2V8eDY0
JyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4x
PC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAg
TGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQnIj4KKyAgICA8UGxhdGZvcm1Ub29sc2V0
PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Q
cm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJl
bGVhc2V8eDY0JyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JE
cml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3Bl
cnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IFJlbGVhc2V8eDY0JyI+CisgICAgPFBsYXRmb3Jt
VG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+
CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRp
b24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3
IERlYnVnfHg2NCciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9y
RHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9w
ZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBEZWJ1Z3x4NjQnIj4KKyAgICA8UGxhdGZvcm1U
b29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4K
KyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Cisg
ICAgPFByb2plY3RHdWlkPns5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9PC9Q
cm9qZWN0R3VpZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9Ii4uXHRh
cmdldHMucHJvcHMiIC8+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNy
b3NvZnQuQ3BwLnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8RW5hYmxlSW5mMmNh
dD50cnVlPC9FbmFibGVJbmYyY2F0PgorICAgIDxJbmYyQ2F0V2luZG93c1ZlcnNpb25MaXN0IENv
bmRpdGlvbj0iJyQoUGxhdGZvcm0pJz09J3g2NCciPlZpc3RhX3g2NDs3X3g2NDtTZXJ2ZXIyMDA4
X3g2NDtTZXJ2ZXIyMDA4UjJfeDY0O1NlcnZlcjhfeDY0PC9JbmYyQ2F0V2luZG93c1ZlcnNpb25M
aXN0PgorICAgIDxJbmYyQ2F0V2luZG93c1ZlcnNpb25MaXN0IENvbmRpdGlvbj0iJyQoUGxhdGZv
cm0pJz09J1dpbjMyJyI+VmlzdGFfeDg2OzdfeDg2O1NlcnZlcjIwMDhfeDg2OzhfeDg2PC9JbmYy
Q2F0V2luZG93c1ZlcnNpb25MaXN0PgorICAgIDxEZWJ1Z2dlckZsYXZvcj5EYmdlbmdLZXJuZWxE
ZWJ1Z2dlcjwvRGVidWdnZXJGbGF2b3I+CisgICAgPEVuYWJsZURlcGxveW1lbnQ+RmFsc2U8L0Vu
YWJsZURlcGxveW1lbnQ+CisgICAgPEltcG9ydFRvU3RvcmU+RmFsc2U8L0ltcG9ydFRvU3RvcmU+
CisgICAgPEluc3RhbGxNb2RlPk5vbmU8L0luc3RhbGxNb2RlPgorICAgIDxTY3JpcHREZXZpY2VR
dWVyeT4lUGF0aFRvSW5mJTwvU2NyaXB0RGV2aWNlUXVlcnk+CisgICAgPEVuYWJsZVZlcmlmaWVy
PkZhbHNlPC9FbmFibGVWZXJpZmllcj4KKyAgICA8QWxsRHJpdmVycz5GYWxzZTwvQWxsRHJpdmVy
cz4KKyAgICA8VmVyaWZ5UHJvamVjdE91dHB1dD5UcnVlPC9WZXJpZnlQcm9qZWN0T3V0cHV0Pgor
ICAgIDxWZXJpZnlGbGFncz4xMzM1NjM8L1ZlcmlmeUZsYWdzPgorICAgIDxJbnREaXI+Li5cJChQ
cm9qZWN0TmFtZSlcJChDb25maWd1cmF0aW9uTmFtZSlcJChQbGF0Zm9ybSlcPC9JbnREaXI+Cisg
ICAgPE91dERpcj4uLlwkKENvbmZpZ3VyYXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L091dERpcj4K
KyAgICA8UGFja2FnZURpcj4uLlwuLlx4ZW5pZmFjZVwkKERES1BsYXRmb3JtKTwvUGFja2FnZURp
cj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxQcm9qZWN0UmVmZXJl
bmNlIEluY2x1ZGU9Ii4uXHhlbmlmYWNlXHhlbmlmYWNlLnZjeHByb2oiPgorICAgICAgPFByb2pl
Y3Q+ezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH08L1Byb2plY3Q+CisgICAg
PC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8
RmlsZXNUb1BhY2thZ2UgSW5jbHVkZT0iJChLSVQpXFJlZGlzdFxESUZ4XGRwaW5zdFxFbmdNdWlc
eDg2XGRwaW5zdC5leGUiIENvbmRpdGlvbj0iJyQoUGxhdGZvcm0pJz09J1dpbjMyJyIgLz4KKyAg
ICA8RmlsZXNUb1BhY2thZ2UgSW5jbHVkZT0iJChLSVQpXFJlZGlzdFxESUZ4XGRwaW5zdFxFbmdN
dWlceDY0XGRwaW5zdC5leGUiIENvbmRpdGlvbj0iJyQoUGxhdGZvcm0pJz09J3g2NCciIC8+Cisg
IDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9z
b2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdl
dHMiPgorICA8L0ltcG9ydEdyb3VwPgogPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL3ZzMjAxMy9wYWNrYWdlL3BhY2thZ2UudmN4cHJvai51c2VyIGIv
dnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qLnVzZXIKaW5kZXggOWNkOWFlNy4uNmE0MzVm
ZCAxMDA2NDQKLS0tIGEvdnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qLnVzZXIKKysrIGIv
dnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qLnVzZXIKQEAgLTEsOCArMSw4IEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgVG9vbHNWZXJzaW9u
PSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1
aWxkLzIwMDMiPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8U2lnbk1vZGU+VGVzdFNpZ248L1Np
Z25Nb2RlPgotICAgIDxUZXN0Q2VydGlmaWNhdGU+Li5cLi5cc3JjXHhlbmlmYWNlLnBmeDwvVGVz
dENlcnRpZmljYXRlPgotICAgIDxUaW1lU3RhbXBTZXJ2ZXI+aHR0cDovL3RpbWVzdGFtcC52ZXJp
c2lnbi5jb20vc2NyaXB0cy90aW1zdGFtcC5kbGw8L1RpbWVTdGFtcFNlcnZlcj4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotPC9Qcm9qZWN0PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRm
LTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMu
bWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3JvdXA+
CisgICAgPFNpZ25Nb2RlPlRlc3RTaWduPC9TaWduTW9kZT4KKyAgICA8VGVzdENlcnRpZmljYXRl
Pi4uXC4uXHNyY1x4ZW5pZmFjZS5wZng8L1Rlc3RDZXJ0aWZpY2F0ZT4KKyAgICA8VGltZVN0YW1w
U2VydmVyPmh0dHA6Ly90aW1lc3RhbXAudmVyaXNpZ24uY29tL3NjcmlwdHMvdGltc3RhbXAuZGxs
PC9UaW1lU3RhbXBTZXJ2ZXI+CisgIDwvUHJvcGVydHlHcm91cD4KKzwvUHJvamVjdD4KZGlmZiAt
LWdpdCBhL3ZzMjAxMy94ZW5pZmFjZS5zbG4gYi92czIwMTMveGVuaWZhY2Uuc2xuCmluZGV4IGEw
ZjIwYWQuLjVkMjEwZDYgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy94ZW5pZmFjZS5zbG4KKysrIGIvdnMy
MDEzL3hlbmlmYWNlLnNsbgpAQCAtMSwxNjIgKzEsMTYyIEBACi1NaWNyb3NvZnQgVmlzdWFsIFN0
dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMi4wMAotIyBWaXN1YWwgU3R1ZGlv
IEV4cHJlc3MgMjAxMyBmb3IgV2luZG93cyBEZXNrdG9wCi1WaXN1YWxTdHVkaW9WZXJzaW9uID0g
MTIuMC4yMTAwNS4xCi1NaW5pbXVtVmlzdWFsU3R1ZGlvVmVyc2lvbiA9IDEwLjAuNDAyMTkuMQot
UHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5p
ZmFjZSIsICJ4ZW5pZmFjZVx4ZW5pZmFjZS52Y3hwcm9qIiwgInsyMjE2NjI5MC02NUQ4LTQ5RDIt
QkI4OC0zMzIwMTc5N0M3RDh9IgotRW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEt
MTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJMaXRlQWdlbnQiLCAibGl0ZWFnZW50XExpdGVB
Z2VudC52Y3hwcm9qIiwgInsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9Igot
RW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0
Mn0iKSA9ICJwYWNrYWdlIiwgInBhY2thZ2VccGFja2FnZS52Y3hwcm9qIiwgIns5QjA3MUEzNS04
OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9IgotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBl
bmRlbmNpZXMpID0gcG9zdFByb2plY3QKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFG
RDdCQkQzQn0gPSB7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfQotCUVuZFBy
b2plY3RTZWN0aW9uCi1FbmRQcm9qZWN0Ci1HbG9iYWwKLQlHbG9iYWxTZWN0aW9uKFNvbHV0aW9u
Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbgotCQlEZWJ1Z3xXaW4zMiA9IERl
YnVnfFdpbjMyCi0JCURlYnVnfHg2NCA9IERlYnVnfHg2NAotCQlSZWxlYXNlfFdpbjMyID0gUmVs
ZWFzZXxXaW4zMgotCQlSZWxlYXNlfHg2NCA9IFJlbGVhc2V8eDY0Ci0JCVdpbmRvd3MgNyBEZWJ1
Z3xXaW4zMiA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgotCQlXaW5kb3dzIDcgRGVidWd8eDY0ID0g
V2luZG93cyA3IERlYnVnfHg2NAotCQlXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMiA9IFdpbmRvd3Mg
NyBSZWxlYXNlfFdpbjMyCi0JCVdpbmRvd3MgNyBSZWxlYXNlfHg2NCA9IFdpbmRvd3MgNyBSZWxl
YXNlfHg2NAotCQlXaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMyID0gV2luZG93
cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMgotCQlXaW5kb3dzIERldmVsb3BlciBQcmV2
aWV3IERlYnVnfHg2NCA9IFdpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgRGVidWd8eDY0Ci0JCVdp
bmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXxXaW4zMiA9IFdpbmRvd3MgRGV2ZWxvcGVy
IFByZXZpZXcgUmVsZWFzZXxXaW4zMgotCQlXaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVh
c2V8eDY0ID0gV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2NAotCQlXaW5kb3dz
IFZpc3RhIERlYnVnfFdpbjMyID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQlXaW5kb3dz
IFZpc3RhIERlYnVnfHg2NCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0Ci0JCVdpbmRvd3MgVmlz
dGEgUmVsZWFzZXxXaW4zMiA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgotCQlXaW5kb3dz
IFZpc3RhIFJlbGVhc2V8eDY0ID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCUVuZEdsb2Jh
bFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1zKSA9
IHBvc3RTb2x1dGlvbgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5E
ZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVidWd8V2luMzIKLQkJezIyMTY2Mjkw
LTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRv
d3MgOCBEZWJ1Z3xXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4
fS5EZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgotCQl7MjIxNjYy
OTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2lu
ZG93cyA4IERlYnVnfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4
fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKLQkJezIyMTY2MjkwLTY1
RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5k
b3dzIDggUmVsZWFzZXxXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdD
N0Q4fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgotCQl7
MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5SZWxlYXNlfFdpbjMyLkRlcGxv
eS4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4
LTMzMjAxNzk3QzdEOH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IFJlbGVhc2V8
eDY0Ci0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LlJlbGVhc2V8eDY0
LkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXx4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1C
Qjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRv
d3MgNyBEZWJ1Z3xXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4
fS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgot
CQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIDcgRGVidWd8
V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKLQkJezIyMTY2MjkwLTY1RDgt
NDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERlYnVnfHg2NC5BY3RpdmVDZmcgPSBX
aW5kb3dzIDcgRGVidWd8eDY0Ci0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3
RDh9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJ
ezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERlYnVnfHg2
NC5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1C
Qjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2lu
ZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3
QzdEOH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxlYXNl
fFdpbjMyCi0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3Mg
NyBSZWxlYXNlfFdpbjMyLkRlcGxveS4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezIy
MTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IFJlbGVhc2V8eDY0
LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQy
LUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRv
d3MgNyBSZWxlYXNlfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4
fS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQK
LQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBEZXZlbG9w
ZXIgUHJldmlldyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8
V2luMzIKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBE
ZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxl
YXNlfFdpbjMyCi0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRv
d3MgRGV2ZWxvcGVyIFByZXZpZXcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEg
UmVsZWFzZXx4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEg
UmVsZWFzZXx4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXxXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdD
N0Q4fS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdp
bmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMy
MDE3OTdDN0Q4fS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8eDY0LkFjdGl2ZUNm
ZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4
LTMzMjAxNzk3QzdEOH0uV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2NC5CdWls
ZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJC
ODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdp
bmRvd3MgVmlzdGEgRGVidWd8V2luMzIKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAx
Nzk3QzdEOH0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0
YSBEZWJ1Z3xXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5X
aW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xX
aW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZp
c3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7MjIx
NjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2
NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlE
Mi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuRGVwbG95LjAgPSBX
aW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3
OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBW
aXN0YSBSZWxlYXNlfFdpbjMyCi0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3
RDh9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBS
ZWxlYXNlfFdpbjMyCi0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9Lldp
bmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFz
ZXxXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dz
IFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQK
LQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBS
ZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7MjIxNjYy
OTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0
LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7MkU2MUQyQ0MtODY1RS00
NDJDLThDODMtQjhEQUZEN0JCRDNCfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4z
MgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5EZWJ1Z3xXaW4zMi5C
dWlsZC4wID0gRGVidWd8V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdC
QkQzQn0uRGVidWd8V2luMzIuRGVwbG95LjAgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8V2lu
MzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uUmVsZWFzZXxXaW4z
Mi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1C
OERBRkQ3QkJEM0J9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezJF
NjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uUmVsZWFzZXxXaW4zMi5EZXBsb3ku
MCA9IFJlbGVhc2V8V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQz
Qn0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQWN0aXZlQ2Zn
ID0gRGVidWd8V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0u
V2luZG93cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8V2luMzIuRGVwbG95
LjAgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNC
fS5XaW5kb3dzIDcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8eDY0LkJ1aWxkLjAg
PSBEZWJ1Z3x4NjQKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2lu
ZG93cyA3IERlYnVnfHg2NC5EZXBsb3kuMCA9IERlYnVnfHg2NAotCQl7MkU2MUQyQ0MtODY1RS00
NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcg
PSBSZWxlYXNlfFdpbjMyCi0JCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9
LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMy
LkRlcGxveS4wID0gUmVsZWFzZXxXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhE
QUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQK
LQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA3IFJlbGVh
c2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMt
QjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBSZWxlYXNlfHg2
NAotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIERldmVs
b3BlciBQcmV2aWV3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZp
ZXcgRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0JCXsyRTYxRDJDQy04NjVFLTQ0
MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgRGVidWd8V2lu
MzIuRGVwbG95LjAgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhE
QUZEN0JCRDNCfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfHg2NC5BY3RpdmVDZmcg
PSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5X
aW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFz
ZXxXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dz
IERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIK
LQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9w
ZXIgUHJldmlldyBSZWxlYXNlfFdpbjMyLkRlcGxveS4wID0gUmVsZWFzZXxXaW4zMgotCQl7MkU2
MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIERldmVsb3BlciBQcmV2
aWV3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezJFNjFEMkNDLTg2
NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5BY3Rp
dmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JC
RDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7
MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIERlYnVn
fFdpbjMyLkRlcGxveS4wID0gRGVidWd8V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04Qzgz
LUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8
eDY0Ci0JCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlz
dGEgRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04
QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuRGVwbG95LjAgPSBEZWJ1
Z3x4NjQKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBW
aXN0YSBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezJFNjFEMkND
LTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERB
RkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFJlbGVhc2V8
V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBW
aXN0YSBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxk
LjAgPSBSZWxlYXNlfHg2NAotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNC
fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkRlcGxveS4wID0gUmVsZWFzZXx4NjQKLQkJezlC
MDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uRGVidWd8V2luMzIuQWN0aXZlQ2Zn
ID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjct
OTVGNzc2MThBMjFEfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xX
aW4zMgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5EZWJ1Z3xXaW4z
Mi5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKLQkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlz
dGEgRGVidWd8eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LkRl
YnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKLQkJezlCMDcxQTM1LTg5
N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5k
b3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKLQkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3
NjE4QTIxRH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdp
bjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LlJlbGVhc2V8V2lu
MzIuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKLQkJezlCMDcxQTM1LTg5
N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93
cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThB
MjFEfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3
N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2lu
ZG93cyA3IERlYnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEy
MUR9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4z
MgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgRGVi
dWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4wID0gV2lu
ZG93cyA3IERlYnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFE
fS5XaW5kb3dzIDcgRGVidWd8eDY0LkRlcGxveS4wID0gV2luZG93cyA3IERlYnVnfHg2NAotCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgUmVsZWFzZXxX
aW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgotCQl7OUIwNzFBMzUtODk3
Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1
Rjc3NjE4QTIxRH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDcg
UmVsZWFzZXxXaW4zMgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5X
aW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IFJlbGVhc2V8eDY0Ci0J
CXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgNyBSZWxlYXNl
fHg2NC5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3
N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFdp
bmRvd3MgNyBSZWxlYXNlfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThB
MjFEfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdp
bmRvd3MgOCBEZWJ1Z3xXaW4zMgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThB
MjFEfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5k
b3dzIDggRGVidWd8V2luMzIKLQkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIx
RH0uV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93
cyA4IERlYnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5X
aW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERl
YnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dz
IERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERl
YnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRv
d3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERl
YnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRv
d3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERl
YnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dz
IERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8
eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlz
dGEgRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIERlYnVn
fFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04
OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuRGVw
bG95LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0Et
QUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdp
bmRvd3MgVmlzdGEgRGVidWd8eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYx
OEEyMUR9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dz
IFZpc3RhIERlYnVnfHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0Ci0JCXs5
QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgUmVsZWFz
ZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKLQkJezlCMDcx
QTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdp
bjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKLQkJezlCMDcxQTM1LTg5
N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkRl
cGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3
N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQWN0aXZlQ2Zn
ID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjct
OTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dz
IFZpc3RhIFJlbGVhc2V8eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEy
MUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIFJl
bGVhc2V8eDY0Ci0JRW5kR2xvYmFsU2VjdGlvbgotCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9w
ZXJ0aWVzKSA9IHByZVNvbHV0aW9uCi0JCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQotCUVuZEds
b2JhbFNlY3Rpb24KLUVuZEdsb2JhbAorTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24g
RmlsZSwgRm9ybWF0IFZlcnNpb24gMTIuMDAKKyMgVmlzdWFsIFN0dWRpbyBFeHByZXNzIDIwMTMg
Zm9yIFdpbmRvd3MgRGVza3RvcAorVmlzdWFsU3R1ZGlvVmVyc2lvbiA9IDEyLjAuMjEwMDUuMQor
TWluaW11bVZpc3VhbFN0dWRpb1ZlcnNpb24gPSAxMC4wLjQwMjE5LjEKK1Byb2plY3QoIns4QkM5
Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuaWZhY2UiLCAieGVuaWZh
Y2VceGVuaWZhY2UudmN4cHJvaiIsICJ7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdD
N0Q4fSIKK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEw
QzkxQkM5NDJ9IikgPSAiTGl0ZUFnZW50IiwgImxpdGVhZ2VudFxMaXRlQWdlbnQudmN4cHJvaiIs
ICJ7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfSIKK0VuZFByb2plY3QKK1By
b2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicGFja2Fn
ZSIsICJwYWNrYWdlXHBhY2thZ2UudmN4cHJvaiIsICJ7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjct
OTVGNzc2MThBMjFEfSIKKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBv
c3RQcm9qZWN0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9ID0gezJF
NjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0KKwlFbmRQcm9qZWN0U2VjdGlvbgor
RW5kUHJvamVjdAorR2xvYmFsCisJR2xvYmFsU2VjdGlvbihTb2x1dGlvbkNvbmZpZ3VyYXRpb25Q
bGF0Zm9ybXMpID0gcHJlU29sdXRpb24KKwkJRGVidWd8V2luMzIgPSBEZWJ1Z3xXaW4zMgorCQlE
ZWJ1Z3x4NjQgPSBEZWJ1Z3x4NjQKKwkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzIKKwkJ
UmVsZWFzZXx4NjQgPSBSZWxlYXNlfHg2NAorCQlXaW5kb3dzIDcgRGVidWd8V2luMzIgPSBXaW5k
b3dzIDcgRGVidWd8V2luMzIKKwkJV2luZG93cyA3IERlYnVnfHg2NCA9IFdpbmRvd3MgNyBEZWJ1
Z3x4NjQKKwkJV2luZG93cyA3IFJlbGVhc2V8V2luMzIgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4z
MgorCQlXaW5kb3dzIDcgUmVsZWFzZXx4NjQgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQKKwkJV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMiA9IFdpbmRvd3MgRGV2ZWxvcGVyIFBy
ZXZpZXcgRGVidWd8V2luMzIKKwkJV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3x4NjQg
PSBXaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfHg2NAorCQlXaW5kb3dzIERldmVsb3Bl
ciBQcmV2aWV3IFJlbGVhc2V8V2luMzIgPSBXaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVh
c2V8V2luMzIKKwkJV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2NCA9IFdpbmRv
d3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXx4NjQKKwkJV2luZG93cyBWaXN0YSBEZWJ1Z3xX
aW4zMiA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJV2luZG93cyBWaXN0YSBEZWJ1Z3x4
NjQgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQlXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2lu
MzIgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJV2luZG93cyBWaXN0YSBSZWxlYXNl
fHg2NCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwlFbmRHbG9iYWxTZWN0aW9uCisJR2xv
YmFsU2VjdGlvbihQcm9qZWN0Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwb3N0U29sdXRpb24K
KwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8V2luMzIuQWN0
aXZlQ2ZnID0gV2luZG93cyA4IERlYnVnfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4
OC0zMzIwMTc5N0M3RDh9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8V2lu
MzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8V2luMzIu
RGVwbG95LjAgPSBXaW5kb3dzIDggRGVidWd8V2luMzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1C
Qjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3x4
NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8eDY0LkJ1
aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0z
MzIwMTc5N0M3RDh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IFJlbGVhc2V8
V2luMzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uUmVsZWFzZXxX
aW4zMi5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKKwkJezIyMTY2MjkwLTY1RDgt
NDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3Mg
OCBSZWxlYXNlfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9
LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAorCQl7MjIxNjYy
OTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gV2lu
ZG93cyA4IFJlbGVhc2V8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3
RDh9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8V2lu
MzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERl
YnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezIyMTY2MjkwLTY1
RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERlYnVnfFdpbjMyLkRlcGxveS4w
ID0gV2luZG93cyA3IERlYnVnfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIw
MTc5N0M3RDh9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVn
fHg2NAorCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIDcg
RGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8eDY0CisJCXsyMjE2NjI5MC02NUQ4
LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuRGVwbG95LjAgPSBX
aW5kb3dzIDcgRGVidWd8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3
RDh9LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNl
fFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3Mg
NyBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7MjIx
NjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4z
Mi5EZXBsb3kuMCA9IFdpbmRvd3MgNyBSZWxlYXNlfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5
RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBX
aW5kb3dzIDcgUmVsZWFzZXx4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3
QzdEOH0uV2luZG93cyA3IFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4
NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IFJl
bGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0CisJCXsyMjE2NjI5MC02
NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgRGVi
dWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXsyMjE2
NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZp
ZXcgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7
MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIERldmVsb3BlciBQ
cmV2aWV3IERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CisJ
CXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgRGV2ZWxvcGVy
IFByZXZpZXcgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CisJ
CXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgRGV2ZWxvcGVy
IFByZXZpZXcgUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8
V2luMzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBE
ZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJl
bGVhc2V8V2luMzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZp
c3RhIFJlbGVhc2V8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9
LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXx4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdE
OH0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRv
d3MgVmlzdGEgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIK
KwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBE
ZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezIyMTY2
MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQu
QWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlE
Mi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdp
bmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5
N0M3RDh9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBE
ZWJ1Z3x4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93
cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxX
aW4zMgorCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZp
c3RhIFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgor
CQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIFJl
bGVhc2V8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezIy
MTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBSZWxlYXNl
fHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CisJCXsyMjE2NjI5MC02
NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQnVp
bGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1C
Qjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFdp
bmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFG
RDdCQkQzQn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJezJFNjFEMkND
LTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVn
fFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LkRlYnVnfFdp
bjMyLkRlcGxveS4wID0gRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4
REFGRDdCQkQzQn0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXsyRTYxRDJD
Qy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0g
UmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5S
ZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0
MkMtOEM4My1COERBRkQ3QkJEM0J9LlJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBSZWxlYXNlfFdp
bjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LlJlbGVhc2V8eDY0
LkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4
REFGRDdCQkQzQn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMy
CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBEZWJ1
Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04Qzgz
LUI4REFGRDdCQkQzQn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkRlcGxveS4wID0gRGVidWd8V2lu
MzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA3IERl
YnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04Qzgz
LUI4REFGRDdCQkQzQn0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0CisJ
CXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBEZWJ1Z3x4
NjQuRGVwbG95LjAgPSBEZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFG
RDdCQkQzQn0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4z
MgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVs
ZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJD
LThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFJl
bGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2lu
ZG93cyA3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04
NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5CdWlsZC4w
ID0gUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0u
V2luZG93cyA3IFJlbGVhc2V8eDY0LkRlcGxveS4wID0gUmVsZWFzZXx4NjQKKwkJezJFNjFEMkND
LTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBE
ZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJD
LThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMy
LkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMyLkRlcGxveS4wID0g
RGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIK
KwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9w
ZXIgUHJldmlldyBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezJF
NjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9wZXIgUHJl
dmlldyBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04
NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVs
ZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQy
Qy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2
NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1C
OERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8
V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBW
aXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUt
NDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5EZXBsb3ku
MCA9IERlYnVnfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9
LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAorCQl7MkU2MUQy
Q0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5C
dWlsZC4wID0gRGVidWd8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJE
M0J9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkRlcGxveS4wID0gRGVidWd8eDY0CisJCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxX
aW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4
My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVs
ZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5k
b3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4
NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4
REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4
NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0
YSBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFJlbGVhc2V8eDY0CisJCXs5QjA3MUEzNS04OTdDLTQ3
N0EtQUVCNy05NUY3NzYxOEEyMUR9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlz
dGEgRGVidWd8V2luMzIKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0u
RGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezlCMDcx
QTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uRGVidWd8V2luMzIuRGVwbG95LjAgPSBX
aW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3
NzYxOEEyMUR9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAor
CQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5EZWJ1Z3x4NjQuQnVpbGQu
MCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05
NUY3NzYxOEEyMUR9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxl
YXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LlJlbGVh
c2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7OUIwNzFB
MzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5SZWxlYXNlfFdpbjMyLkRlcGxveS4wID0g
V2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05
NUY3NzYxOEEyMUR9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFz
ZXx4NjQKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uUmVsZWFzZXx4
NjQuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9
IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2
MThBMjFEfS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xX
aW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcg
RGVidWd8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezlCMDcxQTM1
LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IERlYnVnfHg2NC5BY3RpdmVD
ZmcgPSBXaW5kb3dzIDcgRGVidWd8eDY0CisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3
NzYxOEEyMUR9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4
NjQKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IERl
YnVnfHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKKwkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2Zn
ID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1
Rjc3NjE4QTIxRH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBS
ZWxlYXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9Lldp
bmRvd3MgNyBSZWxlYXNlfFdpbjMyLkRlcGxveS4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIK
KwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IFJlbGVh
c2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAorCQl7OUIwNzFBMzUtODk3
Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQnVpbGQuMCA9
IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2
MThBMjFEfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBXaW5kb3dzIDcgUmVsZWFz
ZXx4NjQKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBE
ZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVidWd8
V2luMzIKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBE
ZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfFdp
bjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgRGV2
ZWxvcGVyIFByZXZpZXcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQK
KwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBEZXZlbG9w
ZXIgUHJldmlldyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKKwkJezlC
MDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBEZXZlbG9wZXIgUHJl
dmlldyBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIERldmVsb3BlciBQ
cmV2aWV3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIERldmVsb3BlciBQ
cmV2aWV3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKKwkJezlC
MDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBEZXZlbG9wZXIgUHJl
dmlldyBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7OUIwNzFB
MzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMy
LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjct
OTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2luZG93
cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThB
MjFEfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfHg2NAorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dz
IFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKKwkJezlC
MDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4
NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQl7OUIwNzFBMzUtODk3Qy00
NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0aXZl
Q2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0Et
QUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0g
V2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05
NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRv
d3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2
MThBMjFEfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlz
dGEgUmVsZWFzZXx4NjQKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0u
V2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNl
fHg2NAorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIFZp
c3RhIFJlbGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAorCUVu
ZEdsb2JhbFNlY3Rpb24KKwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uUHJvcGVydGllcykgPSBwcmVT
b2x1dGlvbgorCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UKKwlFbmRHbG9iYWxTZWN0aW9uCitF
bmRHbG9iYWwKZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qIGIv
dnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKaW5kZXggODJhMWRjNC4uODQzZTg1ZSAx
MDA2NDQKLS0tIGEvdnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKKysrIGIvdnMyMDEz
L3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKQEAgLTEsMTY0ICsxLDE2NCBAQAot77u/PD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRz
PSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3Nv
ZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SW1wb3J0IFByb2plY3Q9Ii4uXGNv
bmZpZ3MucHJvcHMiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+
Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkRyaXZlcjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAg
PERyaXZlclR5cGU+V0RNPC9Ecml2ZXJUeXBlPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8Q29uZmlndXJhdGlvbj5XaW5kb3dzIFZp
c3RhIERlYnVnPC9Db25maWd1cmF0aW9uPgotICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IickKFBs
YXRmb3JtKScgPT0gJyciPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8RGVidWdnZXJGbGF2b3I+RGJn
ZW5nS2VybmVsRGVidWdnZXI8L0RlYnVnZ2VyRmxhdm9yPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQu
cHJvcHMiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNlfFdp
bjMyJyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwv
UGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExh
YmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8V2luMzInIj4KLSAgICA8UGxhdGZvcm1Ub29sc2V0
PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVy
dHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBSZWxlYXNl
fFdpbjMyJyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjgu
MTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1dpbmRvd3MgNyBSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNl
dD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgNyBEZWJ1Z3xXaW4z
MiciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8L1Bs
YXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJl
bD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdXaW5kb3dzIDggRGVidWd8V2luMzInIj4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRv
d3NLZXJuZWxNb2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91
cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IFJlbGVhc2V8eDY0JyI+Ci0g
ICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1U
b29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25m
aWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dp
bmRvd3MgVmlzdGEgRGVidWd8eDY0JyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2Vy
bmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQnIj4KLSAg
ICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRv
b2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZp
Z3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2lu
ZG93cyA3IFJlbGVhc2V8eDY0JyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVs
TW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgNyBEZWJ1Z3x4NjQnIj4KLSAgICA8UGxhdGZv
cm1Ub29sc2V0PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0g
IDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24i
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERl
YnVnfHg2NCciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4
LjE8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPnsyMjE2NjI5MC02NUQ4LTQ5RDIt
QkI4OC0zMzIwMTc5N0M3RDh9PC9Qcm9qZWN0R3VpZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
SW1wb3J0IFByb2plY3Q9Ii4uXHRhcmdldHMucHJvcHMiIC8+Ci0gIDxJbXBvcnQgUHJvamVjdD0i
JChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91
cD4KLSAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVk
ZVBhdGg+Ci0gICAgPFJ1bkNvZGVBbmFseXNpcz50cnVlPC9SdW5Db2RlQW5hbHlzaXM+Ci0gICAg
PEVuYWJsZUluZjJjYXQ+ZmFsc2U8L0VuYWJsZUluZjJjYXQ+Ci0gICAgPEN1c3RvbUJ1aWxkQmVm
b3JlVGFyZ2V0cz5DbENvbXBpbGU7TW9mQ29tcDtTdGFtcEluZjwvQ3VzdG9tQnVpbGRCZWZvcmVU
YXJnZXRzPgotICAgIDxJbnREaXI+Li5cJChQcm9qZWN0TmFtZSlcJChDb25maWd1cmF0aW9uTmFt
ZSlcJChQbGF0Zm9ybSlcPC9JbnREaXI+Ci0gICAgPE91dERpcj4uLlwkKENvbmZpZ3VyYXRpb25O
YW1lKVwkKFBsYXRmb3JtKVw8L091dERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRlbURl
ZmluaXRpb25Hcm91cD4KLSAgICAgIDxDdXN0b21CdWlsZFN0ZXA+Ci0gICAgICAgICAgICA8Q29t
bWFuZD5lY2hvICJCdWlsZCBJbmYiCi0gICAgICAgICAgICAgICAgIHBvd2Vyc2hlbGwgLUNvbW1h
bmQgIihHZXQtQ29udGVudCAuLlwuLlxzcmNceGVuaWZhY2UuaW5mKSAtcmVwbGFjZSAnQE1BSk9S
X1ZFUlNJT05AJywgJyQoTUFKT1JfVkVSU0lPTiknIC1yZXBsYWNlICdATUlOT1JfVkVSU0lPTkAn
LCAnJChNSU5PUl9WRVJTSU9OKScgLXJlcGxhY2UgJ0BNSUNST19WRVJTSU9OQCcsJyQoTUlDUk9f
VkVSU0lPTiknIC1yZXBsYWNlICdAQlVJTERfTlVNQkVSQCcsJyQoQlVJTERfTlVNQkVSKScgLXJl
cGxhY2UgJ0BDT01QQU5ZX05BTUVAJywnJChDT01QQU5ZX05BTUUpJyAtcmVwbGFjZSAnQFBST0RV
Q1RfTkFNRUAnLCckKFBST0RVQ1RfTkFNRSknIHwgU2V0LUNvbnRlbnQgLi5cLi5cdnMyMDEzXHhl
bmlmYWNlLmluZiIKLSAgICAgICAgICAgICAgICBlY2hvICJCdWlsZCB2ZXJzaW9uIGhlYWRlciIK
LSAgICAgICAgICAgICAgICBwb3dlcnNoZWxsIC1Db21tYW5kICIoR2V0LUNvbnRlbnQgLi5cLi5c
aW5jbHVkZVx2ZXJzaW9uLmh4KSAtcmVwbGFjZSAnQE1BSk9SX1ZFUlNJT05AJywgJyQoTUFKT1Jf
VkVSU0lPTiknIC1yZXBsYWNlICdATUlOT1JfVkVSU0lPTkAnLCAnJChNSU5PUl9WRVJTSU9OKScg
LXJlcGxhY2UgJ0BNSUNST19WRVJTSU9OQCcsJyQoTUlDUk9fVkVSU0lPTiknIC1yZXBsYWNlICdA
QlVJTERfTlVNQkVSQCcsJyQoQlVJTERfTlVNQkVSKScgLXJlcGxhY2UgJ0BDT01QQU5ZX05BTUVA
JywnJChDT01QQU5ZX05BTUUpJyAtcmVwbGFjZSAnQFBST0RVQ1RfTkFNRUAnLCckKFBST0RVQ1Rf
TkFNRSknIC1yZXBsYWNlICdAREFZQCcsJTI0KEdldC1EYXRlIC1mb3JtYXQgJTI1JTI1ZCkgLXJl
cGxhY2UgJ0BNT05USEAnLCUyNChHZXQtRGF0ZSAtZm9ybWF0ICUyNSUyNU0pIC1yZXBsYWNlICdA
WUVBUkAnLCUyNChHZXQtRGF0ZSAtZm9ybWF0IHl5eXkpIC1yZXBsYWNlICdAT0JKRUNUX1BSRUZJ
WEAnLCckKE9CSkVDVF9QUkVGSVgpJyB8IFNldC1Db250ZW50IC4uXC4uXGluY2x1ZGVcdmVyc2lv
bi5oIgotICAgICAgICAgICAgICAgIGVjaG8gIk1vZGlmeSBtb2YiCi0gICAgICAgICAgICAgICAg
cG93ZXJzaGVsbCAtQ29tbWFuZCAiKEdldC1Db250ZW50IC4uXC4uXHNyY1x4ZW5pZmFjZS5tb2Yp
ICAtcmVwbGFjZSAnQE9CSkVDVF9QUkVGSVhAJywnJChPQkpFQ1RfUFJFRklYKScgfCBTZXQtQ29u
dGVudCAuLlwuLlxzcmNceGVuaWZhY2Vcd21pLm1vZiIKLSAgICAgICAgICAgIDwvQ29tbWFuZD4K
LSAgICAgICAgICAgIDxPdXRwdXRzPi4uXC4uXHZzMjAxM1x4ZW5pZmFjZS5pbmY7Li5cLi5caW5j
bHVkZVx2ZXJzaW9uLmg7Li5cLi5cc3JjXHhlbmlmYWNlXHdtaS5tb2Y8L091dHB1dHM+Ci0gICAg
ICAgICAgICA8SW5wdXRzPi4uXC4uXHNyY1x4ZW5pZmFjZS5pbmY7Li5cLi5caW5jbHVkZVx2ZXJz
aW9uLmh4Oy4uXC4uXHNyY1x4ZW5pZmFjZS5tb2Y8L0lucHV0cz4KLSAgICAgICAgPC9DdXN0b21C
dWlsZFN0ZXA+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz5fX01PRFVMRV9fPSJYRU5JRkFDRSI7UE9PTF9OWF9PUFRJTj0xOyUoUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+
RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEaXNhYmxlU3BlY2lmaWNX
YXJuaW5ncz40NzExOzQ1NDg7NDgyMDs0NjY4OzQyNTU7NjAwMTs2MDU0OyUoRGlzYWJsZVNwZWNp
ZmljV2FybmluZ3MpPC9EaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KLSAgICAgIDxNdWx0aVByb2Nl
c3NvckNvbXBpbGF0aW9uPnRydWU8L011bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+Ci0gICAgICA8
RW5hYmxlUFJFZmFzdD50cnVlPC9FbmFibGVQUkVmYXN0PgotICAgIDwvQ2xDb21waWxlPgotICAg
IDxMaW5rPgotICAgICAgPEltYWdlSGFzU2FmZUV4Y2VwdGlvbkhhbmRsZXJzPmZhbHNlPC9JbWFn
ZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz4KLSAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PiQoRERLX0xJQl9QQVRIKVxudHN0cnNhZmUubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz5mYWxz
ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICA8L0xpbms+Ci0gICAgPEluZj4KLSAgICAgIDxT
cGVjaWZ5QXJjaGl0ZWN0dXJlPnRydWU8L1NwZWNpZnlBcmNoaXRlY3R1cmU+Ci0gICAgICA8U3Bl
Y2lmeURyaXZlclZlckRpcmVjdGl2ZVZlcnNpb24+dHJ1ZTwvU3BlY2lmeURyaXZlclZlckRpcmVj
dGl2ZVZlcnNpb24+Ci0gICAgICA8VGltZVN0YW1wPiQoTUFKT1JfVkVSU0lPTikuJChNSU5PUl9W
RVJTSU9OKS4kKE1JQ1JPX1ZFUlNJT04pLiQoQlVJTERfTlVNQkVSKTwvVGltZVN0YW1wPgotICAg
ICAgPEVuYWJsZVZlcmJvc2U+dHJ1ZTwvRW5hYmxlVmVyYm9zZT4KLSAgICA8L0luZj4KLSAgPC9J
dGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249Iick
KFBsYXRmb3JtKSc9PSdXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+X19pMzg2X187JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXBy
b2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNlfFdp
bjMyJyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDggUmVsZWFzZXxXaW4zMici
IC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMiciIC8+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMiciIC8+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXJGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyJyIgLz4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzInIiAvPgotICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1dpbmRvd3MgNyBSZWxlYXNlfFdpbjMyJyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91
dHB1dEZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5k
b3dzIDcgUmVsZWFzZXxXaW4zMiciIC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IERlYnVn
fFdpbjMyJyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgRGVidWd8V2luMzIn
IiAvPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBEZWJ1Z3xXaW4zMiciIC8+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERlYnVnfFdpbjMyJyIgLz4KLSAgICA8L0NsQ29tcGls
ZT4KLSAgICA8SW5mPgotICAgICAgPEFyY2hpdGVjdHVyZT54ODY8L0FyY2hpdGVjdHVyZT4KLSAg
ICA8L0luZj4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91
cCBDb25kaXRpb249IickKFBsYXRmb3JtKSc9PSd4NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAg
ICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9feDg2XzY0X187JShQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRv
d3MgOCBSZWxlYXNlfHg2NCciIC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxl
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IFJl
bGVhc2V8eDY0JyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIERlYnVnfHg2NCci
IC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQnIiAvPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQnIiAvPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQnIiAvPgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1dpbmRvd3MgNyBSZWxlYXNlfHg2NCciIC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJP
dXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2lu
ZG93cyA3IFJlbGVhc2V8eDY0JyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgRGVidWd8
eDY0JyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgRGVidWd8eDY0JyIgLz4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDggRGVidWd8eDY0JyIgLz4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdXaW5kb3dzIDggRGVidWd8eDY0JyIgLz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8
SW5mPgotICAgICAgPEFyY2hpdGVjdHVyZT5hbWQ2NDwvQXJjaGl0ZWN0dXJlPgotICAgIDwvSW5m
PgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbGVzVG9Q
YWNrYWdlIEluY2x1ZGU9IiQoVGFyZ2V0UGF0aCkiIC8+Ci0gICAgPEZpbGVzVG9QYWNrYWdlIElu
Y2x1ZGU9IiQoT3V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiIiAvPgotICAgIDxGaWxlc1RvUGFja2Fn
ZSBJbmNsdWRlPSJAKEluZi0+JyUoQ29weU91dHB1dCknKSIgQ29uZGl0aW9uPSInQChJbmYpJyE9
JyciIC8+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi4vLi4vc3JjL3hlbmlmYWNlL2lvY3Rscy5jIiAvPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi4vLi4vc3JjL3hlbmlmYWNlL3dtaS5jIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi4vLi4vc3JjL3hlbmlmYWNlL2RyaXZlci5jIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi4vLi4vc3JjL3hlbmlmYWNlL2Zkby5jIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li4vLi4vc3JjL3hlbmlmYWNlL3JlZ2lzdHJ5LmMiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLi8uLi9zcmNceGVuaWZhY2UvdGhyZWFkLmMiIC8+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRl
bUdyb3VwPgotICAgIDxNb2Zjb21wIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS93bWkubW9m
Ij4KLSAgICAgIDxDcmVhdGVCaW5hcnlNb2ZGaWxlPiQoSW50RGlyKS93bWkuYm1mPC9DcmVhdGVC
aW5hcnlNb2ZGaWxlPgotICAgIDwvTW9mY29tcD4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3Jv
dXA+Ci0gICAgPFdtaW1vZmNrIEluY2x1ZGU9IiQoSW50RGlyKVx3bWkuYm1mIj4KLSAgICAgIDxI
ZWFkZXJPdXRwdXRGaWxlPi4uXC4uXHNyY1x4ZW5pZmFjZVx3bWlfZ2VuZXJhdGVkLmg8L0hlYWRl
ck91dHB1dEZpbGU+Ci0gICAgPC9XbWltb2Zjaz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3Jv
dXA+Ci0gICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuaWZhY2VceGVu
aWZhY2UucmMiIC8+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxJbmYgSW5j
bHVkZT0iLi5ceGVuaWZhY2UuaW5mIiAvPgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9q
ZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KLTwvUHJvamVj
dD4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZh
dWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVt
YXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEltcG9ydCBQcm9q
ZWN0PSIuLlxjb25maWdzLnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iUHJvcGVy
dHlTaGVldHMiPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5Ecml2ZXI8L0NvbmZpZ3VyYXRpb25U
eXBlPgorICAgIDxEcml2ZXJUeXBlPldETTwvRHJpdmVyVHlwZT4KKyAgPC9Qcm9wZXJ0eUdyb3Vw
PgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPENvbmZpZ3VyYXRpb24+
V2luZG93cyBWaXN0YSBEZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICA8UGxhdGZvcm0gQ29uZGl0
aW9uPSInJChQbGF0Zm9ybSknID09ICcnIj5XaW4zMjwvUGxhdGZvcm0+CisgICAgPERlYnVnZ2Vy
Rmxhdm9yPkRiZ2VuZ0tlcm5lbERlYnVnZ2VyPC9EZWJ1Z2dlckZsYXZvcj4KKyAgPC9Qcm9wZXJ0
eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlv
biIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDgg
UmVsZWFzZXxXaW4zMiciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVE
cml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVy
dHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyJyI+CisgICAgPFBsYXRm
b3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0Pgor
ICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9u
IiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlz
dGEgUmVsZWFzZXxXaW4zMiciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1v
ZGVEcml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJv
cGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMiciPgorICAgIDxQbGF0
Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4K
KyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlv
biIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcg
RGVidWd8V2luMzInIj4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NLZXJuZWxNb2RlRHJp
dmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERlYnVnfFdpbjMyJyI+CisgICAgPFBsYXRmb3JtVG9v
bHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1By
b3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNl
fHg2NCciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8
L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBM
YWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdXaW5kb3dzIFZpc3RhIERlYnVnfHg2NCciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0
eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8
eDY0JyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwv
UGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExh
YmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1dpbmRvd3MgNyBSZWxlYXNlfHg2NCciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2lu
ZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdy
b3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgRGVidWd8eDY0JyI+Cisg
ICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1U
b29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25m
aWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dp
bmRvd3MgOCBEZWJ1Z3x4NjQnIj4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NLZXJuZWxN
b2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFBy
b3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57MjIxNjYyOTAt
NjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fTwvUHJvamVjdEd1aWQ+CisgIDwvUHJvcGVydHlH
cm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIuLlx0YXJnZXRzLnByb3BzIiAvPgorICA8SW1wb3J0
IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPFBy
b3BlcnR5R3JvdXA+CisgICAgPEluY2x1ZGVQYXRoPi4uXC4uXGluY2x1ZGU7JChJbmNsdWRlUGF0
aCk8L0luY2x1ZGVQYXRoPgorICAgIDxSdW5Db2RlQW5hbHlzaXM+dHJ1ZTwvUnVuQ29kZUFuYWx5
c2lzPgorICAgIDxFbmFibGVJbmYyY2F0PmZhbHNlPC9FbmFibGVJbmYyY2F0PgorICAgIDxDdXN0
b21CdWlsZEJlZm9yZVRhcmdldHM+Q2xDb21waWxlO01vZkNvbXA7U3RhbXBJbmY8L0N1c3RvbUJ1
aWxkQmVmb3JlVGFyZ2V0cz4KKyAgICA8SW50RGlyPi4uXCQoUHJvamVjdE5hbWUpXCQoQ29uZmln
dXJhdGlvbk5hbWUpXCQoUGxhdGZvcm0pXDwvSW50RGlyPgorICAgIDxPdXREaXI+Li5cJChDb25m
aWd1cmF0aW9uTmFtZSlcJChQbGF0Zm9ybSlcPC9PdXREaXI+CisgIDwvUHJvcGVydHlHcm91cD4K
KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CisgICAgICA8Q3VzdG9tQnVpbGRTdGVwPgorICAgICAg
ICAgICAgPENvbW1hbmQ+ZWNobyAiQnVpbGQgSW5mIgorICAgICAgICAgICAgICAgICBwb3dlcnNo
ZWxsIC1Db21tYW5kICIoR2V0LUNvbnRlbnQgLi5cLi5cc3JjXHhlbmlmYWNlLmluZikgLXJlcGxh
Y2UgJ0BNQUpPUl9WRVJTSU9OQCcsICckKE1BSk9SX1ZFUlNJT04pJyAtcmVwbGFjZSAnQE1JTk9S
X1ZFUlNJT05AJywgJyQoTUlOT1JfVkVSU0lPTiknIC1yZXBsYWNlICdATUlDUk9fVkVSU0lPTkAn
LCckKE1JQ1JPX1ZFUlNJT04pJyAtcmVwbGFjZSAnQEJVSUxEX05VTUJFUkAnLCckKEJVSUxEX05V
TUJFUiknIC1yZXBsYWNlICdAQ09NUEFOWV9OQU1FQCcsJyQoQ09NUEFOWV9OQU1FKScgLXJlcGxh
Y2UgJ0BQUk9EVUNUX05BTUVAJywnJChQUk9EVUNUX05BTUUpJyB8IFNldC1Db250ZW50IC4uXC4u
XHZzMjAxM1x4ZW5pZmFjZS5pbmYiCisgICAgICAgICAgICAgICAgZWNobyAiQnVpbGQgdmVyc2lv
biBoZWFkZXIiCisgICAgICAgICAgICAgICAgcG93ZXJzaGVsbCAtQ29tbWFuZCAiKEdldC1Db250
ZW50IC4uXC4uXGluY2x1ZGVcdmVyc2lvbi5oeCkgLXJlcGxhY2UgJ0BNQUpPUl9WRVJTSU9OQCcs
ICckKE1BSk9SX1ZFUlNJT04pJyAtcmVwbGFjZSAnQE1JTk9SX1ZFUlNJT05AJywgJyQoTUlOT1Jf
VkVSU0lPTiknIC1yZXBsYWNlICdATUlDUk9fVkVSU0lPTkAnLCckKE1JQ1JPX1ZFUlNJT04pJyAt
cmVwbGFjZSAnQEJVSUxEX05VTUJFUkAnLCckKEJVSUxEX05VTUJFUiknIC1yZXBsYWNlICdAQ09N
UEFOWV9OQU1FQCcsJyQoQ09NUEFOWV9OQU1FKScgLXJlcGxhY2UgJ0BQUk9EVUNUX05BTUVAJywn
JChQUk9EVUNUX05BTUUpJyAtcmVwbGFjZSAnQERBWUAnLCUyNChHZXQtRGF0ZSAtZm9ybWF0ICUy
NSUyNWQpIC1yZXBsYWNlICdATU9OVEhAJywlMjQoR2V0LURhdGUgLWZvcm1hdCAlMjUlMjVNKSAt
cmVwbGFjZSAnQFlFQVJAJywlMjQoR2V0LURhdGUgLWZvcm1hdCB5eXl5KSAtcmVwbGFjZSAnQE9C
SkVDVF9QUkVGSVhAJywnJChPQkpFQ1RfUFJFRklYKScgfCBTZXQtQ29udGVudCAuLlwuLlxpbmNs
dWRlXHZlcnNpb24uaCIKKyAgICAgICAgICAgICAgICBlY2hvICJNb2RpZnkgbW9mIgorICAgICAg
ICAgICAgICAgIHBvd2Vyc2hlbGwgLUNvbW1hbmQgIihHZXQtQ29udGVudCAuLlwuLlxzcmNceGVu
aWZhY2UubW9mKSAgLXJlcGxhY2UgJ0BPQkpFQ1RfUFJFRklYQCcsJyQoT0JKRUNUX1BSRUZJWCkn
IHwgU2V0LUNvbnRlbnQgLi5cLi5cc3JjXHhlbmlmYWNlXHdtaS5tb2YiCisgICAgICAgICAgICA8
L0NvbW1hbmQ+CisgICAgICAgICAgICA8T3V0cHV0cz4uLlwuLlx2czIwMTNceGVuaWZhY2UuaW5m
Oy4uXC4uXGluY2x1ZGVcdmVyc2lvbi5oOy4uXC4uXHNyY1x4ZW5pZmFjZVx3bWkubW9mPC9PdXRw
dXRzPgorICAgICAgICAgICAgPElucHV0cz4uLlwuLlxzcmNceGVuaWZhY2UuaW5mOy4uXC4uXGlu
Y2x1ZGVcdmVyc2lvbi5oeDsuLlwuLlxzcmNceGVuaWZhY2UubW9mPC9JbnB1dHM+CisgICAgICAg
IDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOSUZBQ0UiO1BPT0xfTlhfT1BUSU49MTslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8V2Fy
bmluZ0xldmVsPkVuYWJsZUFsbFdhcm5pbmdzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8RGlzYWJs
ZVNwZWNpZmljV2FybmluZ3M+NDcxMTs0NTQ4OzQ4MjA7NDY2ODs0MjU1OzYwMDE7NjA1NDslKERp
c2FibGVTcGVjaWZpY1dhcm5pbmdzKTwvRGlzYWJsZVNwZWNpZmljV2FybmluZ3M+CisgICAgICA8
TXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj50cnVlPC9NdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9u
PgorICAgICAgPEVuYWJsZVBSRWZhc3Q+dHJ1ZTwvRW5hYmxlUFJFZmFzdD4KKyAgICA8L0NsQ29t
cGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxJbWFnZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz5m
YWxzZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxlcnM+CisgICAgICA8QWRkaXRpb25hbERl
cGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbnRzdHJzYWZlLmxpYjslKEFkZGl0aW9uYWxEZXBl
bmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEVuYWJsZUNPTURBVEZv
bGRpbmc+ZmFsc2U8L0VuYWJsZUNPTURBVEZvbGRpbmc+CisgICAgPC9MaW5rPgorICAgIDxJbmY+
CisgICAgICA8U3BlY2lmeUFyY2hpdGVjdHVyZT50cnVlPC9TcGVjaWZ5QXJjaGl0ZWN0dXJlPgor
ICAgICAgPFNwZWNpZnlEcml2ZXJWZXJEaXJlY3RpdmVWZXJzaW9uPnRydWU8L1NwZWNpZnlEcml2
ZXJWZXJEaXJlY3RpdmVWZXJzaW9uPgorICAgICAgPFRpbWVTdGFtcD4kKE1BSk9SX1ZFUlNJT04p
LiQoTUlOT1JfVkVSU0lPTikuJChNSUNST19WRVJTSU9OKS4kKEJVSUxEX05VTUJFUik8L1RpbWVT
dGFtcD4KKyAgICAgIDxFbmFibGVWZXJib3NlPnRydWU8L0VuYWJsZVZlcmJvc2U+CisgICAgPC9J
bmY+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29u
ZGl0aW9uPSInJChQbGF0Zm9ybSknPT0nV2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAg
PFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9faTM4Nl9fOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlckZp
bGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDgg
UmVsZWFzZXxXaW4zMiciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IFJlbGVh
c2V8V2luMzInIiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIn
IiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8V2luMzInIiAv
PgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMiciIC8+CisgICAg
ICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICAg
IDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMiciIC8+CisgICAgICA8UHJlY29tcGls
ZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nV2luZG93cyA3IFJlbGVhc2V8V2luMzInIiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRv
d3MgNyBEZWJ1Z3xXaW4zMiciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxl
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IERl
YnVnfFdpbjMyJyIgLz4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDggRGVidWd8V2luMzInIiAv
PgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBEZWJ1Z3xXaW4zMiciIC8+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPEluZj4KKyAgICAgIDxBcmNoaXRlY3R1cmU+eDg2PC9BcmNoaXRl
Y3R1cmU+CisgICAgPC9JbmY+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZp
bml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChQbGF0Zm9ybSknPT0neDY0JyI+CisgICAgPENsQ29t
cGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fX3g4Nl82NF9fOyUoUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxQcmVj
b21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdXaW5kb3dzIDggUmVsZWFzZXx4NjQnIiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
T3V0cHV0RmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dp
bmRvd3MgOCBSZWxlYXNlfHg2NCciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBE
ZWJ1Z3x4NjQnIiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8
eDY0JyIgLz4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0JyIgLz4K
KyAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0JyIgLz4KKyAg
ICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgUmVsZWFzZXx4NjQnIiAvPgorICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1dpbmRvd3MgNyBSZWxlYXNlfHg2NCciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFk
ZXJGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93
cyA3IERlYnVnfHg2NCciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IERlYnVn
fHg2NCciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERlYnVnfHg2NCciIC8+CisgICAg
ICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERlYnVnfHg2NCciIC8+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPEluZj4KKyAgICAgIDxBcmNoaXRlY3R1cmU+YW1kNjQ8L0FyY2hpdGVjdHVyZT4K
KyAgICA8L0luZj4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAg
IDxGaWxlc1RvUGFja2FnZSBJbmNsdWRlPSIkKFRhcmdldFBhdGgpIiAvPgorICAgIDxGaWxlc1Rv
UGFja2FnZSBJbmNsdWRlPSIkKE91dERpcikkKFRhcmdldE5hbWUpLnBkYiIgLz4KKyAgICA8Rmls
ZXNUb1BhY2thZ2UgSW5jbHVkZT0iQChJbmYtPiclKENvcHlPdXRwdXQpJykiIENvbmRpdGlvbj0i
J0AoSW5mKSchPScnIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS9pb2N0bHMuYyIgLz4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS93bWkuYyIgLz4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS9kcml2ZXIuYyIgLz4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS9mZG8uYyIgLz4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS9yZWdpc3RyeS5jIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi4vLi4vc3JjXHhlbmlmYWNlL3RocmVhZC5jIiAvPgorICA8L0l0ZW1Hcm91
cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8TW9mY29tcCBJbmNsdWRlPSIuLi8uLi9zcmMveGVuaWZh
Y2Uvd21pLm1vZiI+CisgICAgICA8Q3JlYXRlQmluYXJ5TW9mRmlsZT4kKEludERpcikvd21pLmJt
ZjwvQ3JlYXRlQmluYXJ5TW9mRmlsZT4KKyAgICA8L01vZmNvbXA+CisgIDwvSXRlbUdyb3VwPgor
ICA8SXRlbUdyb3VwPgorICAgIDxXbWltb2ZjayBJbmNsdWRlPSIkKEludERpcilcd21pLmJtZiI+
CisgICAgICA8SGVhZGVyT3V0cHV0RmlsZT4uLlwuLlxzcmNceGVuaWZhY2Vcd21pX2dlbmVyYXRl
ZC5oPC9IZWFkZXJPdXRwdXRGaWxlPgorICAgIDwvV21pbW9mY2s+CisgIDwvSXRlbUdyb3VwPgor
ICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhl
bmlmYWNlXHhlbmlmYWNlLnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAg
ICA8SW5mIEluY2x1ZGU9Ii4uXHhlbmlmYWNlLmluZiIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+
Cis8L1Byb2plY3Q+Ci0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 17:20:06 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 17:20:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YB58Q-0000xn-Q9; Tue, 13 Jan 2015 17:20:06 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YB504-0007eq-NC
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 17:11:29 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	F3/DD-15461-0C155B45; Tue, 13 Jan 2015 17:11:28 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1421169084!13897005!1
X-Originating-IP: [74.125.82.182]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10818 invoked from network); 13 Jan 2015 17:11:24 -0000
Received: from mail-we0-f182.google.com (HELO mail-we0-f182.google.com)
	(74.125.82.182)
	by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 17:11:24 -0000
Received: by mail-we0-f182.google.com with SMTP id w62so4098992wes.13
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 13 Jan 2015 09:11:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:mime-version:content-type
	:content-transfer-encoding;
	bh=jquNT2PPelSux8jUmqsdDNuThiqaYdZC5zpPC0gqQys=;
	b=n7v4TL1YNuyzVOxVOcrkIsU58e/n3+V+Q5ck7zhx+haETuk3eCMCS/N9H+UJb2hh+S
	oTnCpSaKBiJS89NI6XINgzqru3PtwDI27CFC9uhNA/trvh8z7RmAIKxKpodtQ+uavhjV
	J9p58efAB0VhziS+npKwJdJ2Rm75DUL4y/6KJPA9UODbul+dwXXd33cdb/u/H8IDujt6
	bTPkzvpaQEyL9dmPOsI7WT4TGYeBafYPhZg09i7ESIvhfU32f9FDQMAQpJO30KovnBx6
	yVbGB533Or2mosqlKbBTUuzvZ1pSaVq7oFTnw/vXr1cOFvyuJi1Dt5kXs8VJm0jWzv6o
	xXOw==
X-Received: by 10.194.19.131 with SMTP id f3mr39755637wje.46.1421169083931;
	Tue, 13 Jan 2015 09:11:23 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id w3sm26488719wjf.3.2015.01.13.09.11.22
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 13 Jan 2015 09:11:23 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 13 Jan 2015 17:11:07 +0000
Message-Id: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
Content-Length:126240
X-Mailman-Approved-At: Tue, 13 Jan 2015 17:20:05 +0000
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Fix line endings
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIgfCAgIDIgKy0KIHZzMjAx
Mi9wYWNrYWdlL3BhY2thZ2UudmN4cHJvai51c2VyICAgICB8ICAxNiArLQogdnMyMDEzL2xpdGVh
Z2VudC9MaXRlQWdlbnQudmN4cHJvaiAgICAgIHwgNTAyICsrKysrKysrKysrKysrKystLS0tLS0t
LS0tLS0tLS0tCiB2czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIgfCAgIDIg
Ky0KIHZzMjAxMy9wYWNrYWdlL3BhY2thZ2UudmN4cHJvaiAgICAgICAgICB8IDE2OCArKysrKy0t
LS0tLQogdnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qLnVzZXIgICAgIHwgIDE2ICstCiB2
czIwMTMveGVuaWZhY2Uuc2xuICAgICAgICAgICAgICAgICAgICAgfCAzMjQgKysrKysrKysrKy0t
LS0tLS0tLS0tCiB2czIwMTMveGVuaWZhY2UveGVuaWZhY2UudmN4cHJvaiAgICAgICAgfCAzMjgg
KysrKysrKysrKy0tLS0tLS0tLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDY3OSBpbnNlcnRpb25zKCsp
LCA2NzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdl
bnQudmN4cHJvai51c2VyIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2Vy
CmluZGV4IGEzNzVhZTMuLjUwZjNjYmUgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi9saXRlYWdlbnQvTGl0
ZUFnZW50LnZjeHByb2oudXNlcgorKysgYi92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qLnVzZXIKQEAgLTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
PSJ1dGYtOCI/PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDxQcm9q
ZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNv
bS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KICAgPFByb3BlcnR5R3JvdXAgLz4KIDwvUHJvamVj
dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS92czIwMTIvcGFja2Fn
ZS9wYWNrYWdlLnZjeHByb2oudXNlciBiL3ZzMjAxMi9wYWNrYWdlL3BhY2thZ2UudmN4cHJvai51
c2VyCmluZGV4IDljZDlhZTcuLjZhNDM1ZmQgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi9wYWNrYWdlL3Bh
Y2thZ2UudmN4cHJvai51c2VyCisrKyBiL3ZzMjAxMi9wYWNrYWdlL3BhY2thZ2UudmN4cHJvai51
c2VyCkBAIC0xLDggKzEsOCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPFByb3BlcnR5R3JvdXA+Ci0g
ICAgPFNpZ25Nb2RlPlRlc3RTaWduPC9TaWduTW9kZT4KLSAgICA8VGVzdENlcnRpZmljYXRlPi4u
XC4uXHNyY1x4ZW5pZmFjZS5wZng8L1Rlc3RDZXJ0aWZpY2F0ZT4KLSAgICA8VGltZVN0YW1wU2Vy
dmVyPmh0dHA6Ly90aW1lc3RhbXAudmVyaXNpZ24uY29tL3NjcmlwdHMvdGltc3RhbXAuZGxsPC9U
aW1lU3RhbXBTZXJ2ZXI+Ci0gIDwvUHJvcGVydHlHcm91cD4KLTwvUHJvamVjdD4KKzw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQu
MCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQv
MjAwMyI+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxTaWduTW9kZT5UZXN0U2lnbjwvU2lnbk1v
ZGU+CisgICAgPFRlc3RDZXJ0aWZpY2F0ZT4uLlwuLlxzcmNceGVuaWZhY2UucGZ4PC9UZXN0Q2Vy
dGlmaWNhdGU+CisgICAgPFRpbWVTdGFtcFNlcnZlcj5odHRwOi8vdGltZXN0YW1wLnZlcmlzaWdu
LmNvbS9zY3JpcHRzL3RpbXN0YW1wLmRsbDwvVGltZVN0YW1wU2VydmVyPgorICA8L1Byb3BlcnR5
R3JvdXA+Cis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2Vu
dC52Y3hwcm9qIGIvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCBmYzI3
MDk3Li41MGRiZTQzIDEwMDY0NAotLS0gYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qCisrKyBiL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTEsMjU2ICsx
LDI1NiBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9q
ZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRw
Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRl
bUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmln
dXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1
ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAg
PC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVk
ZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9u
PgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJh
dGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+
Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBs
YXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29u
ZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwv
UGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+ezJFNjFE
MkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3
b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgICA8Um9vdE5hbWVzcGFjZT5TdHViQWdlbnQ8L1Jv
b3ROYW1lc3BhY2U+Ci0gICAgPFByb2plY3ROYW1lPkxpdGVBZ2VudDwvUHJvamVjdE5hbWU+Ci0g
IDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1p
Y3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJD
b25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZp
Z3VyYXRpb25UeXBlPgotICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJh
cmllcz4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4
LjE8L1BsYXRmb3JtVG9vbHNldD4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFj
dGVyU2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZp
Z3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJh
dGlvblR5cGU+Ci0gICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVz
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwv
UGxhdGZvcm1Ub29sc2V0PgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJT
ZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZp
Z3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJh
dGlvblR5cGU+Ci0gICAgPFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VEZWJ1Z0xpYnJhcmll
cz4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8
L1BsYXRmb3JtVG9vbHNldD4KLSAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1do
b2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0i
Q29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGli
cmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVy
czguMTwvUGxhdGZvcm1Ub29sc2V0PgotICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1
ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRl
PC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIk
KFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBM
YWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3Jv
dXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJS
b290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0i
ZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJv
cHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgot
ICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVj
dD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBD
b25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBv
cnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAg
PEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQu
Q3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3Jt
IiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNo
ZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGly
KVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBw
RGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJl
bD0iVXNlck1hY3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxMaW5rSW5jcmVtZW50
YWw+dHJ1ZTwvTGlua0luY3JlbWVudGFsPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFBs
YXRmb3JtKVwkKENvbmZpZ3VyYXRpb25OYW1lKVw8L091dERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3Vw
PgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxMaW5rSW5jcmVtZW50YWw+dHJ1ZTwvTGlua0luY3Jl
bWVudGFsPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxM
aW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8T3V0RGlyPiQoU29s
dXRpb25EaXIpJChQbGF0Zm9ybSlcJChDb25maWd1cmF0aW9uTmFtZSlcPC9PdXREaXI+Ci0gIDwv
UHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxMaW5rSW5jcmVtZW50YWw+
ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cD4KLSAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5j
bHVkZVBhdGg+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgot
ICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4K
LSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9f
V0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRp
b25zPgotICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7
JChTREtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRl
ZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgLz4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgLz4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgICA8TGluaz4KLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgotICAgICAg
PEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+
Ci0gICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFs
RGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KLSAgICA8L0xpbms+Ci0gICAg
PEN1c3RvbUJ1aWxkU3RlcD4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxu
cz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4K
KyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVj
dENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRp
b24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3Jt
PgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9u
IEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmln
dXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENv
bmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8
V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAg
ICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlv
bj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAg
ICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9y
bT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdy
b3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlk
PnsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9PC9Qcm9qZWN0R3VpZD4KKyAg
ICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+CisgICAgPFJvb3ROYW1lc3BhY2U+U3R1YkFn
ZW50PC9Sb290TmFtZXNwYWNlPgorICAgIDxQcm9qZWN0TmFtZT5MaXRlQWdlbnQ8L1Byb2plY3RO
YW1lPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQ
YXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBM
YWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9u
PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVi
dWdMaWJyYXJpZXM+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JE
cml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8
L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVs
PSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0Nv
bmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xp
YnJhcmllcz4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZl
cnM4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVs
PSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0Nv
bmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdM
aWJyYXJpZXM+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2
ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50
cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5
dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIg
TGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlv
bjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VE
ZWJ1Z0xpYnJhcmllcz4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZv
ckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0
aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJv
amVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0
R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPElt
cG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxJbXBvcnQgUHJvamVjdD0i
JChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25k
aXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRH
cm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0
IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5w
cm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Cisg
IDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQ
bGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9z
b2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJM
b2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3Jv
dXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8TGlua0lu
Y3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KKyAgICA8T3V0RGlyPiQoU29sdXRpb25E
aXIpJChQbGF0Zm9ybSlcJChDb25maWd1cmF0aW9uTmFtZSlcPC9PdXREaXI+CisgIDwvUHJvcGVy
dHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xp
bmtJbmNyZW1lbnRhbD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4K
KyAgICA8TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+CisgICAgPE91dERp
cj4kKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm0pXCQoQ29uZmlndXJhdGlvbk5hbWUpXDwvT3V0RGly
PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8TGlua0luY3Jl
bWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFBy
b3BlcnR5R3JvdXA+CisgICAgPEluY2x1ZGVQYXRoPi4uXC4uXGluY2x1ZGU7JChJbmNsdWRlUGF0
aCk8L0luY2x1ZGVQYXRoPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5n
PC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5n
TGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+CisgICAg
ICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VD
VVJFX05PX1dBUk5JTkdTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4KKyAgICAgIDxTRExDaGVjaz50cnVlPC9TRExDaGVjaz4KKyAgICAgIDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilcbGl0
ZWFnZW50OyQoU0RLX0lOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRp
VGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJG
aWxlIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIC8+CisgICAgPC9DbENv
bXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4K
KyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9y
bWF0aW9uPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRk
aXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5r
PgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CiAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdl
dFBhdGgpICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAotICAg
ICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYiAkKFNvbHV0aW9uRGly
KVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+Ci0gICAgPC9DdXN0b21C
dWlsZFN0ZXA+Ci0gICAgPEN1c3RvbUJ1aWxkU3RlcD4KLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcg
b3V0cHV0IGZpbGVzPC9NZXNzYWdlPgotICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIp
XC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRz
KTwvT3V0cHV0cz4KLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRh
cmdldE5hbWUpLnBkYjwvSW5wdXRzPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICA8L0l0ZW1E
ZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPE9wdGltaXph
dGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RM
Q2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNfUEFUSCk7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVM
aWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSAvPgotICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyT3V0cHV0RmlsZSAvPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAg
ICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0lu
Zm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxBZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9B
ZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgotICAgIDwvTGluaz4KLSAgICA8Q3VzdG9tQnVpbGRTdGVw
PgorICAgICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYiAkKFNvbHV0
aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+CisgICAgPC9D
dXN0b21CdWlsZFN0ZXA+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxNZXNzYWdlPkNv
cHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPgorICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShP
dXRwdXRzKTwvT3V0cHV0cz4KKyAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERp
cikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8
L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPENsQ29t
cGlsZT4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFk
ZXI+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAgPE9w
dGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPFByZXByb2Nlc3NvckRl
ZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzsl
KFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAg
ICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNf
UEFUSCk7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1
bnRpbWVMaWJyYXJ5PgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSAvPgorICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSAvPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5r
PgorICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+CisgICAgICA8R2VuZXJhdGVE
ZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxB
ZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNp
ZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgICA8Q3VzdG9tQnVp
bGRTdGVwPgogICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKSAkKFNvbHV0aW9u
RGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwKLSAgICAgICAgICAgIHhjb3B5IC95
ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQ
bGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICAgIDxD
dXN0b21CdWlsZFN0ZXA+Ci0gICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVz
c2FnZT4KLSAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZv
cm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBs
YXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+Ci0gICAg
ICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lu
cHV0cz4KLSAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgot
ICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFdhcm5p
bmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5O
b3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVk
PC9PcHRpbWl6YXRpb24+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rp
b25MZXZlbExpbmtpbmc+Ci0gICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNp
Y0Z1bmN0aW9ucz4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7
X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFNETENoZWNrPnRydWU8L1NETENo
ZWNrPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsk
KFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JChTREtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QnJv
d3NlSW5mb3JtYXRpb24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+Ci0gICAgICA8UHJlcHJvY2Vz
c1RvRmlsZT5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5N
dWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGlu
az4KLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgotICAgICAgPEdlbmVyYXRl
RGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8
RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgICAgPE9w
dGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8QWRkaXRp
b25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwv
QWRkaXRpb25hbERlcGVuZGVuY2llcz4KLSAgICA8L0xpbms+Ci0gICAgPEN1c3RvbUJ1aWxkU3Rl
cD4KLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPgorICAgICAg
ICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYiAkKFNvbHV0aW9uRGlyKVwu
Llx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+CisgICAgPC9DdXN0b21CdWls
ZFN0ZXA+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0
cHV0IGZpbGVzPC9NZXNzYWdlPgorICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVu
aWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwv
T3V0cHV0cz4KKyAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdl
dE5hbWUpLnBkYjwvSW5wdXRzPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8L0l0ZW1EZWZp
bml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+
CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxPcHRpbWl6
YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2lu
Zz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+
dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25z
PldJTjMyO05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUztfV0lORE9XUzslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U0RMQ2hl
Y2s+dHJ1ZTwvU0RMQ2hlY2s+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNfUEFUSCk7JShB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4KKyAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KKyAg
ICAgIDxQcmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9QcmVwcm9jZXNzVG9GaWxlPgorICAgICAgPFJ1
bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21w
aWxlPgorICAgIDxMaW5rPgorICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+Cisg
ICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj4KKyAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRp
bmc+CisgICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4K
KyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxE
ZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgICA8
Q3VzdG9tQnVpbGRTdGVwPgorICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01l
c3NhZ2U+CiAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpICQoU29sdXRpb25E
aXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAotICAgICAgICAgIHhjb3B5IC95ICQo
VGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0
Zm9ybVRhcmdldClcPC9Db21tYW5kPgotICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIp
XC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRz
KTwvT3V0cHV0cz4KLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRh
cmdldE5hbWUpLnBkYjwvSW5wdXRzPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICA8L0l0ZW1E
ZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8T3B0aW1p
emF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtp
bmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+Ci0gICAgICA8SW50cmluc2ljRnVuY3Rpb25z
PnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X1dJTkRPV1M7JShQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFNETENo
ZWNrPnRydWU8L1NETENoZWNrPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+
Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JChTREtfSU5DX1BBVEgpOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgICA8QnJvd3NlSW5mb3JtYXRpb24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+Ci0g
ICAgICA8UHJlcHJvY2Vzc1RvRmlsZT5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4KLSAgICAgIDxS
dW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICA8L0NsQ29t
cGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgot
ICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3Jt
YXRpb24+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xk
aW5nPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+
Ci0gICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFs
RGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KLSAgICA8L0xpbms+Ci0gICAg
PEN1c3RvbUJ1aWxkU3RlcD4KLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9N
ZXNzYWdlPgorICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIgJChT
b2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgorICAg
ICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkk
KFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJn
ZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwvT3V0cHV0cz4KKyAgICAgIDxJbnB1dHM+
JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPgorICAg
IDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVm
aW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZl
bDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJl
Y29tcGlsZWRIZWFkZXI+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRp
b24+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtp
bmc+CisgICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4K
KyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVf
Tk9fV0FSTklOR1M7X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nl
c3NvckRlZmluaXRpb25zPgorICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGly
KVxsaXRlYWdlbnQ7JChTREtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8QnJvd3NlSW5mb3JtYXRp
b24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+CisgICAgICA8UHJlcHJvY2Vzc1RvRmlsZT5mYWxz
ZTwvUHJlcHJvY2Vzc1RvRmlsZT4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVk
PC9SdW50aW1lTGlicmFyeT4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxT
dWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8RW5hYmxlQ09NREFU
Rm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgorICAgICAgPE9wdGltaXplUmVmZXJl
bmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVu
Y2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERl
cGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxN
ZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPgogICAgICAgPENvbW1hbmQ+eGNv
cHkgL3kgJChUYXJnZXRQYXRoKSAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3Jt
VGFyZ2V0KVwKLSAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiICQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KLSAg
ICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQp
JChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFy
Z2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+Ci0gICAgICA8SW5wdXRz
PiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KLSAg
ICA8L0N1c3RvbUJ1aWxkU3RlcD4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdy
b3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XGVy
cm9ycy5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21w
aWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBp
bGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
Li5cc3JjXHdpbjMyc3R1YmFnZW50XHN0ZGFmeC5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFdtaUFjY2Vzc29y
LmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMy
c3R1YmFnZW50XFhTQWNjZXNzb3IuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3Jl
YXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuY3BwIj4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRI
ZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlcHJvY2Vzc1Rv
RmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRl
bUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XHdpbjMyc3R1YmFnZW50XHN0ZGFmeC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Li5cc3JjXHdpbjMyc3R1YmFnZW50XFdtaUFjY2Vzc29yLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nvci5oIiAvPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFhTZXJ2aWNlLmgiIC8+
Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDdXN0b21CdWlsZCBJbmNsdWRl
PSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcbWVzc2FnZXMubWMiPgotICAgICAgPEZpbGVUeXBl
PkRvY3VtZW50PC9GaWxlVHlwZT4KLSAgICAgIDxDb21tYW5kIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5tYyAlKEZ1bGxQYXRoKTwvQ29t
bWFuZD4KLSAgICAgIDxDb21tYW5kIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8T3V0
cHV0cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4KLSAgICAgIDxPdXRw
dXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4KLSAgICAgIDxDb21tYW5k
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPm1jICUoRnVsbFBh
dGgpPC9Db21tYW5kPgotICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFt
ZSkuaDwvT3V0cHV0cz4KLSAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1l
KS5oPC9PdXRwdXRzPgotICAgIDwvQ3VzdG9tQnVpbGQ+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRl
bUdyb3VwPgotICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1
YmFnZW50XHczMnhhZ2VudC5yYyIgLz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0g
ICAgPEltYWdlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFx4ZW4uaWNvIiAvPgot
ICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jv
c29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJn
ZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KKyAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcilM
aXRlQWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQp
XDwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQo
UGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFj
ZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+
CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5w
ZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAgPC9JdGVtRGVmaW5pdGlvbkdy
b3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdp
bjMyc3R1YmFnZW50XGVycm9ycy5jcHAiPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5v
dFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90
VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHN0ZGFmeC5jcHAiPgorICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAg
IDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFn
ZW50XFdtaUFjY2Vzc29yLmNwcCI+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkNyZWF0ZTwv
UHJlY29tcGlsZWRIZWFkZXI+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5DcmVhdGU8L1ByZWNv
bXBpbGVkSGVhZGVyPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVj
b21waWxlZEhlYWRlcj4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNv
bXBpbGVkSGVhZGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFhTQWNjZXNzb3IuY3BwIj4KKyAgICAgIDxQcmVjb21w
aWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxQcmVjb21waWxl
ZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAgICA8UHJlY29tcGlsZWRIZWFk
ZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuY3Bw
Ij4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4K
KyAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAg
ICA8UHJlcHJvY2Vzc1RvRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+CisgICAgPC9DbENv
bXBpbGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHN0ZGFmeC5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFdtaUFjY2Vzc29yLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nv
ci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50
XFhTZXJ2aWNlLmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDdXN0
b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcbWVzc2FnZXMubWMiPgor
ICAgICAgPEZpbGVUeXBlPkRvY3VtZW50PC9GaWxlVHlwZT4KKyAgICAgIDxDb21tYW5kIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5tYyAl
KEZ1bGxQYXRoKTwvQ29tbWFuZD4KKyAgICAgIDxDb21tYW5kIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+bWMgJShGdWxsUGF0aCk8L0NvbW1h
bmQ+CisgICAgICA8T3V0cHV0cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0
cz4KKyAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4K
KyAgICAgIDxDb21tYW5kIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgorICAgICAgPENvbW1h
bmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgorICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JShGaWxlbmFt
ZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4KKyAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4lKEZpbGVuYW1l
KS5yYzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPgorICAgIDwvQ3VzdG9tQnVpbGQ+CisgIDwvSXRl
bUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5c
Li5cc3JjXHdpbjMyc3R1YmFnZW50XHczMnhhZ2VudC5yYyIgLz4KKyAgPC9JdGVtR3JvdXA+Cisg
IDxJdGVtR3JvdXA+CisgICAgPEltYWdlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2Vu
dFx4ZW4uaWNvIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFy
Z2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVs
PSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KIDwvUHJvamVjdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVB
Z2VudC52Y3hwcm9qLnVzZXIgYi92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVz
ZXIKaW5kZXggYTM3NWFlMy4uNTBmM2NiZSAxMDA2NDQKLS0tIGEvdnMyMDEzL2xpdGVhZ2VudC9M
aXRlQWdlbnQudmN4cHJvai51c2VyCisrKyBiL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZj
eHByb2oudXNlcgpAQCAtMSw0ICsxLDQgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9InV0Zi04Ij8+Cis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgogPFBy
b2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQu
Y29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgogICA8UHJvcGVydHlHcm91cCAvPgogPC9Qcm9q
ZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3ZzMjAxMy9wYWNr
YWdlL3BhY2thZ2UudmN4cHJvaiBiL3ZzMjAxMy9wYWNrYWdlL3BhY2thZ2UudmN4cHJvagppbmRl
eCBmMjE5NTI3Li41YjNkNWIzIDEwMDY0NAotLS0gYS92czIwMTMvcGFja2FnZS9wYWNrYWdlLnZj
eHByb2oKKysrIGIvdnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qCkBAIC0xLDg1ICsxLDg1
IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3Qg
RGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9z
Y2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJbXBvcnQg
UHJvamVjdD0iLi5cY29uZmlncy5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+VXRpbGl0eTwvQ29uZmlndXJh
dGlvblR5cGU+Ci0gICAgPERyaXZlclR5cGU+UGFja2FnZTwvRHJpdmVyVHlwZT4KLSAgICA8RGlz
YWJsZUZhc3RVcFRvRGF0ZUNoZWNrPnRydWU8L0Rpc2FibGVGYXN0VXBUb0RhdGVDaGVjaz4KLSAg
PC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAg
PENvbmZpZ3VyYXRpb24+V2luZG93cyBWaXN0YSBEZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICA8
UGxhdGZvcm0gQ29uZGl0aW9uPSInJChQbGF0Zm9ybSknID09ICcnIj5XaW4zMjwvUGxhdGZvcm0+
Ci0gICAgPERlYnVnZ2VyRmxhdm9yPkRiZ2VuZ0tlcm5lbERlYnVnZ2VyPC9EZWJ1Z2dlckZsYXZv
cj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0
aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBMYWJl
bD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdXaW5kb3dzIDggUmVsZWFzZXxXaW4zMiciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2lu
ZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8
V2luMzInIj4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZl
cnM4LjE8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzInIj4KLSAgICA8UGxhdGZv
cm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNl
dD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJh
dGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dz
IDcgUmVsZWFzZXxXaW4zMiciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0
aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgNyBEZWJ1Z3xXaW4zMiciPgotICAgIDxQ
bGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1U
b29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25m
aWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dp
bmRvd3MgOCBEZWJ1Z3xXaW4zMiciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxp
Y2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+
Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNlfHg2NCciPgotICAg
IDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJD
b25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1dpbmRvd3MgVmlzdGEgRGVidWd8eDY0JyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dz
QXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2
NCciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczgu
MTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1dpbmRvd3MgNyBSZWxlYXNlfHg2NCciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1By
b3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgNyBEZWJ1Z3x4
NjQnIj4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4
LjE8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdXaW5kb3dzIDggRGVidWd8eDY0JyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5X
aW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJv
cGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9q
ZWN0R3VpZD57OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfTwvUHJvamVjdEd1
aWQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIuLlx0YXJnZXRzLnBy
b3BzIiAvPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPEVuYWJsZUluZjJjYXQ+dHJ1ZTwv
RW5hYmxlSW5mMmNhdD4KLSAgICA8SW5mMkNhdFdpbmRvd3NWZXJzaW9uTGlzdCBDb25kaXRpb249
IickKFBsYXRmb3JtKSc9PSd4NjQnIj5WaXN0YV94NjQ7N194NjQ7U2VydmVyMjAwOF94NjQ7U2Vy
dmVyMjAwOFIyX3g2NDtTZXJ2ZXI4X3g2NDwvSW5mMkNhdFdpbmRvd3NWZXJzaW9uTGlzdD4KLSAg
ICA8SW5mMkNhdFdpbmRvd3NWZXJzaW9uTGlzdCBDb25kaXRpb249IickKFBsYXRmb3JtKSc9PSdX
aW4zMiciPlZpc3RhX3g4Njs3X3g4NjtTZXJ2ZXIyMDA4X3g4Njs4X3g4NjwvSW5mMkNhdFdpbmRv
d3NWZXJzaW9uTGlzdD4KLSAgICA8RGVidWdnZXJGbGF2b3I+RGJnZW5nS2VybmVsRGVidWdnZXI8
L0RlYnVnZ2VyRmxhdm9yPgotICAgIDxFbmFibGVEZXBsb3ltZW50PkZhbHNlPC9FbmFibGVEZXBs
b3ltZW50PgotICAgIDxJbXBvcnRUb1N0b3JlPkZhbHNlPC9JbXBvcnRUb1N0b3JlPgotICAgIDxJ
bnN0YWxsTW9kZT5Ob25lPC9JbnN0YWxsTW9kZT4KLSAgICA8U2NyaXB0RGV2aWNlUXVlcnk+JVBh
dGhUb0luZiU8L1NjcmlwdERldmljZVF1ZXJ5PgotICAgIDxFbmFibGVWZXJpZmllcj5GYWxzZTwv
RW5hYmxlVmVyaWZpZXI+Ci0gICAgPEFsbERyaXZlcnM+RmFsc2U8L0FsbERyaXZlcnM+Ci0gICAg
PFZlcmlmeVByb2plY3RPdXRwdXQ+VHJ1ZTwvVmVyaWZ5UHJvamVjdE91dHB1dD4KLSAgICA8VmVy
aWZ5RmxhZ3M+MTMzNTYzPC9WZXJpZnlGbGFncz4KLSAgICA8SW50RGlyPi4uXCQoUHJvamVjdE5h
bWUpXCQoQ29uZmlndXJhdGlvbk5hbWUpXCQoUGxhdGZvcm0pXDwvSW50RGlyPgotICAgIDxPdXRE
aXI+Li5cJChDb25maWd1cmF0aW9uTmFtZSlcJChQbGF0Zm9ybSlcPC9PdXREaXI+Ci0gICAgPFBh
Y2thZ2VEaXI+Li5cLi5ceGVuaWZhY2VcJChEREtQbGF0Zm9ybSk8L1BhY2thZ2VEaXI+Ci0gIDwv
UHJvcGVydHlHcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNs
dWRlPSIuLlx4ZW5pZmFjZVx4ZW5pZmFjZS52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnsyMjE2
NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVj
dFJlZmVyZW5jZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbGVzVG9Q
YWNrYWdlIEluY2x1ZGU9IiQoS0lUKVxSZWRpc3RcRElGeFxkcGluc3RcRW5nTXVpXHg4NlxkcGlu
c3QuZXhlIiBDb25kaXRpb249IickKFBsYXRmb3JtKSc9PSdXaW4zMiciIC8+Ci0gICAgPEZpbGVz
VG9QYWNrYWdlIEluY2x1ZGU9IiQoS0lUKVxSZWRpc3RcRElGeFxkcGluc3RcRW5nTXVpXHg2NFxk
cGluc3QuZXhlIiBDb25kaXRpb249IickKFBsYXRmb3JtKSc9PSd4NjQnIiAvPgotICA8L0l0ZW1H
cm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAu
dGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KLSAg
PC9JbXBvcnRHcm91cD4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8
UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0i
aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAg
PEltcG9ydCBQcm9qZWN0PSIuLlxjb25maWdzLnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBM
YWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5VdGlsaXR5PC9D
b25maWd1cmF0aW9uVHlwZT4KKyAgICA8RHJpdmVyVHlwZT5QYWNrYWdlPC9Ecml2ZXJUeXBlPgor
ICAgIDxEaXNhYmxlRmFzdFVwVG9EYXRlQ2hlY2s+dHJ1ZTwvRGlzYWJsZUZhc3RVcFRvRGF0ZUNo
ZWNrPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxz
Ij4KKyAgICA8Q29uZmlndXJhdGlvbj5XaW5kb3dzIFZpc3RhIERlYnVnPC9Db25maWd1cmF0aW9u
PgorICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IickKFBsYXRmb3JtKScgPT0gJyciPldpbjMyPC9Q
bGF0Zm9ybT4KKyAgICA8RGVidWdnZXJGbGF2b3I+RGJnZW5nS2VybmVsRGVidWdnZXI8L0RlYnVn
Z2VyRmxhdm9yPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rh
cmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdy
b3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNlfFdpbjMyJyI+CisgICAgPFBsYXRmb3JtVG9v
bHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Cisg
IDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24i
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0
YSBEZWJ1Z3xXaW4zMiciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9u
Rm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQ
cm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMiciPgorICAg
IDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZv
cm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJD
b25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1dpbmRvd3MgNyBSZWxlYXNlfFdpbjMyJyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dz
QXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlH
cm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IERlYnVnfFdpbjMyJyI+
CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9Q
bGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFi
ZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nV2luZG93cyA4IERlYnVnfFdpbjMyJyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5k
b3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVy
dHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IFJlbGVhc2V8eDY0
JyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4x
PC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAg
TGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQnIj4KKyAgICA8UGxhdGZvcm1Ub29sc2V0
PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Q
cm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJl
bGVhc2V8eDY0JyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JE
cml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3Bl
cnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IFJlbGVhc2V8eDY0JyI+CisgICAgPFBsYXRmb3Jt
VG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+
CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRp
b24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3
IERlYnVnfHg2NCciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9y
RHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9w
ZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBEZWJ1Z3x4NjQnIj4KKyAgICA8UGxhdGZvcm1U
b29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4K
KyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Cisg
ICAgPFByb2plY3RHdWlkPns5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9PC9Q
cm9qZWN0R3VpZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9Ii4uXHRh
cmdldHMucHJvcHMiIC8+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNy
b3NvZnQuQ3BwLnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8RW5hYmxlSW5mMmNh
dD50cnVlPC9FbmFibGVJbmYyY2F0PgorICAgIDxJbmYyQ2F0V2luZG93c1ZlcnNpb25MaXN0IENv
bmRpdGlvbj0iJyQoUGxhdGZvcm0pJz09J3g2NCciPlZpc3RhX3g2NDs3X3g2NDtTZXJ2ZXIyMDA4
X3g2NDtTZXJ2ZXIyMDA4UjJfeDY0O1NlcnZlcjhfeDY0PC9JbmYyQ2F0V2luZG93c1ZlcnNpb25M
aXN0PgorICAgIDxJbmYyQ2F0V2luZG93c1ZlcnNpb25MaXN0IENvbmRpdGlvbj0iJyQoUGxhdGZv
cm0pJz09J1dpbjMyJyI+VmlzdGFfeDg2OzdfeDg2O1NlcnZlcjIwMDhfeDg2OzhfeDg2PC9JbmYy
Q2F0V2luZG93c1ZlcnNpb25MaXN0PgorICAgIDxEZWJ1Z2dlckZsYXZvcj5EYmdlbmdLZXJuZWxE
ZWJ1Z2dlcjwvRGVidWdnZXJGbGF2b3I+CisgICAgPEVuYWJsZURlcGxveW1lbnQ+RmFsc2U8L0Vu
YWJsZURlcGxveW1lbnQ+CisgICAgPEltcG9ydFRvU3RvcmU+RmFsc2U8L0ltcG9ydFRvU3RvcmU+
CisgICAgPEluc3RhbGxNb2RlPk5vbmU8L0luc3RhbGxNb2RlPgorICAgIDxTY3JpcHREZXZpY2VR
dWVyeT4lUGF0aFRvSW5mJTwvU2NyaXB0RGV2aWNlUXVlcnk+CisgICAgPEVuYWJsZVZlcmlmaWVy
PkZhbHNlPC9FbmFibGVWZXJpZmllcj4KKyAgICA8QWxsRHJpdmVycz5GYWxzZTwvQWxsRHJpdmVy
cz4KKyAgICA8VmVyaWZ5UHJvamVjdE91dHB1dD5UcnVlPC9WZXJpZnlQcm9qZWN0T3V0cHV0Pgor
ICAgIDxWZXJpZnlGbGFncz4xMzM1NjM8L1ZlcmlmeUZsYWdzPgorICAgIDxJbnREaXI+Li5cJChQ
cm9qZWN0TmFtZSlcJChDb25maWd1cmF0aW9uTmFtZSlcJChQbGF0Zm9ybSlcPC9JbnREaXI+Cisg
ICAgPE91dERpcj4uLlwkKENvbmZpZ3VyYXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L091dERpcj4K
KyAgICA8UGFja2FnZURpcj4uLlwuLlx4ZW5pZmFjZVwkKERES1BsYXRmb3JtKTwvUGFja2FnZURp
cj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxQcm9qZWN0UmVmZXJl
bmNlIEluY2x1ZGU9Ii4uXHhlbmlmYWNlXHhlbmlmYWNlLnZjeHByb2oiPgorICAgICAgPFByb2pl
Y3Q+ezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH08L1Byb2plY3Q+CisgICAg
PC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8
RmlsZXNUb1BhY2thZ2UgSW5jbHVkZT0iJChLSVQpXFJlZGlzdFxESUZ4XGRwaW5zdFxFbmdNdWlc
eDg2XGRwaW5zdC5leGUiIENvbmRpdGlvbj0iJyQoUGxhdGZvcm0pJz09J1dpbjMyJyIgLz4KKyAg
ICA8RmlsZXNUb1BhY2thZ2UgSW5jbHVkZT0iJChLSVQpXFJlZGlzdFxESUZ4XGRwaW5zdFxFbmdN
dWlceDY0XGRwaW5zdC5leGUiIENvbmRpdGlvbj0iJyQoUGxhdGZvcm0pJz09J3g2NCciIC8+Cisg
IDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9z
b2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdl
dHMiPgorICA8L0ltcG9ydEdyb3VwPgogPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL3ZzMjAxMy9wYWNrYWdlL3BhY2thZ2UudmN4cHJvai51c2VyIGIv
dnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qLnVzZXIKaW5kZXggOWNkOWFlNy4uNmE0MzVm
ZCAxMDA2NDQKLS0tIGEvdnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qLnVzZXIKKysrIGIv
dnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qLnVzZXIKQEAgLTEsOCArMSw4IEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgVG9vbHNWZXJzaW9u
PSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1
aWxkLzIwMDMiPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8U2lnbk1vZGU+VGVzdFNpZ248L1Np
Z25Nb2RlPgotICAgIDxUZXN0Q2VydGlmaWNhdGU+Li5cLi5cc3JjXHhlbmlmYWNlLnBmeDwvVGVz
dENlcnRpZmljYXRlPgotICAgIDxUaW1lU3RhbXBTZXJ2ZXI+aHR0cDovL3RpbWVzdGFtcC52ZXJp
c2lnbi5jb20vc2NyaXB0cy90aW1zdGFtcC5kbGw8L1RpbWVTdGFtcFNlcnZlcj4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotPC9Qcm9qZWN0PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRm
LTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMu
bWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3JvdXA+
CisgICAgPFNpZ25Nb2RlPlRlc3RTaWduPC9TaWduTW9kZT4KKyAgICA8VGVzdENlcnRpZmljYXRl
Pi4uXC4uXHNyY1x4ZW5pZmFjZS5wZng8L1Rlc3RDZXJ0aWZpY2F0ZT4KKyAgICA8VGltZVN0YW1w
U2VydmVyPmh0dHA6Ly90aW1lc3RhbXAudmVyaXNpZ24uY29tL3NjcmlwdHMvdGltc3RhbXAuZGxs
PC9UaW1lU3RhbXBTZXJ2ZXI+CisgIDwvUHJvcGVydHlHcm91cD4KKzwvUHJvamVjdD4KZGlmZiAt
LWdpdCBhL3ZzMjAxMy94ZW5pZmFjZS5zbG4gYi92czIwMTMveGVuaWZhY2Uuc2xuCmluZGV4IGEw
ZjIwYWQuLjVkMjEwZDYgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy94ZW5pZmFjZS5zbG4KKysrIGIvdnMy
MDEzL3hlbmlmYWNlLnNsbgpAQCAtMSwxNjIgKzEsMTYyIEBACi1NaWNyb3NvZnQgVmlzdWFsIFN0
dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMi4wMAotIyBWaXN1YWwgU3R1ZGlv
IEV4cHJlc3MgMjAxMyBmb3IgV2luZG93cyBEZXNrdG9wCi1WaXN1YWxTdHVkaW9WZXJzaW9uID0g
MTIuMC4yMTAwNS4xCi1NaW5pbXVtVmlzdWFsU3R1ZGlvVmVyc2lvbiA9IDEwLjAuNDAyMTkuMQot
UHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5p
ZmFjZSIsICJ4ZW5pZmFjZVx4ZW5pZmFjZS52Y3hwcm9qIiwgInsyMjE2NjI5MC02NUQ4LTQ5RDIt
QkI4OC0zMzIwMTc5N0M3RDh9IgotRW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEt
MTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJMaXRlQWdlbnQiLCAibGl0ZWFnZW50XExpdGVB
Z2VudC52Y3hwcm9qIiwgInsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9Igot
RW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0
Mn0iKSA9ICJwYWNrYWdlIiwgInBhY2thZ2VccGFja2FnZS52Y3hwcm9qIiwgIns5QjA3MUEzNS04
OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9IgotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBl
bmRlbmNpZXMpID0gcG9zdFByb2plY3QKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFG
RDdCQkQzQn0gPSB7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfQotCUVuZFBy
b2plY3RTZWN0aW9uCi1FbmRQcm9qZWN0Ci1HbG9iYWwKLQlHbG9iYWxTZWN0aW9uKFNvbHV0aW9u
Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbgotCQlEZWJ1Z3xXaW4zMiA9IERl
YnVnfFdpbjMyCi0JCURlYnVnfHg2NCA9IERlYnVnfHg2NAotCQlSZWxlYXNlfFdpbjMyID0gUmVs
ZWFzZXxXaW4zMgotCQlSZWxlYXNlfHg2NCA9IFJlbGVhc2V8eDY0Ci0JCVdpbmRvd3MgNyBEZWJ1
Z3xXaW4zMiA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgotCQlXaW5kb3dzIDcgRGVidWd8eDY0ID0g
V2luZG93cyA3IERlYnVnfHg2NAotCQlXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMiA9IFdpbmRvd3Mg
NyBSZWxlYXNlfFdpbjMyCi0JCVdpbmRvd3MgNyBSZWxlYXNlfHg2NCA9IFdpbmRvd3MgNyBSZWxl
YXNlfHg2NAotCQlXaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMyID0gV2luZG93
cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMgotCQlXaW5kb3dzIERldmVsb3BlciBQcmV2
aWV3IERlYnVnfHg2NCA9IFdpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgRGVidWd8eDY0Ci0JCVdp
bmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXxXaW4zMiA9IFdpbmRvd3MgRGV2ZWxvcGVy
IFByZXZpZXcgUmVsZWFzZXxXaW4zMgotCQlXaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVh
c2V8eDY0ID0gV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2NAotCQlXaW5kb3dz
IFZpc3RhIERlYnVnfFdpbjMyID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQlXaW5kb3dz
IFZpc3RhIERlYnVnfHg2NCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0Ci0JCVdpbmRvd3MgVmlz
dGEgUmVsZWFzZXxXaW4zMiA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgotCQlXaW5kb3dz
IFZpc3RhIFJlbGVhc2V8eDY0ID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCUVuZEdsb2Jh
bFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1zKSA9
IHBvc3RTb2x1dGlvbgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5E
ZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVidWd8V2luMzIKLQkJezIyMTY2Mjkw
LTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRv
d3MgOCBEZWJ1Z3xXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4
fS5EZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgotCQl7MjIxNjYy
OTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2lu
ZG93cyA4IERlYnVnfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4
fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKLQkJezIyMTY2MjkwLTY1
RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5k
b3dzIDggUmVsZWFzZXxXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdD
N0Q4fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgotCQl7
MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5SZWxlYXNlfFdpbjMyLkRlcGxv
eS4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4
LTMzMjAxNzk3QzdEOH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IFJlbGVhc2V8
eDY0Ci0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LlJlbGVhc2V8eDY0
LkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXx4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1C
Qjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRv
d3MgNyBEZWJ1Z3xXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4
fS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgot
CQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIDcgRGVidWd8
V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKLQkJezIyMTY2MjkwLTY1RDgt
NDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERlYnVnfHg2NC5BY3RpdmVDZmcgPSBX
aW5kb3dzIDcgRGVidWd8eDY0Ci0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3
RDh9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJ
ezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERlYnVnfHg2
NC5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1C
Qjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2lu
ZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3
QzdEOH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxlYXNl
fFdpbjMyCi0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3Mg
NyBSZWxlYXNlfFdpbjMyLkRlcGxveS4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezIy
MTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IFJlbGVhc2V8eDY0
LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQy
LUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRv
d3MgNyBSZWxlYXNlfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4
fS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQK
LQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBEZXZlbG9w
ZXIgUHJldmlldyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8
V2luMzIKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBE
ZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxl
YXNlfFdpbjMyCi0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRv
d3MgRGV2ZWxvcGVyIFByZXZpZXcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEg
UmVsZWFzZXx4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEg
UmVsZWFzZXx4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXxXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdD
N0Q4fS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdp
bmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMy
MDE3OTdDN0Q4fS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8eDY0LkFjdGl2ZUNm
ZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4
LTMzMjAxNzk3QzdEOH0uV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2NC5CdWls
ZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJC
ODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdp
bmRvd3MgVmlzdGEgRGVidWd8V2luMzIKLQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAx
Nzk3QzdEOH0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0
YSBEZWJ1Z3xXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5X
aW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xX
aW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZp
c3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7MjIx
NjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2
NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKLQkJezIyMTY2MjkwLTY1RDgtNDlE
Mi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuRGVwbG95LjAgPSBX
aW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3
OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBW
aXN0YSBSZWxlYXNlfFdpbjMyCi0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3
RDh9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBS
ZWxlYXNlfFdpbjMyCi0JCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9Lldp
bmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFz
ZXxXaW4zMgotCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dz
IFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQK
LQkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBS
ZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7MjIxNjYy
OTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0
LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7MkU2MUQyQ0MtODY1RS00
NDJDLThDODMtQjhEQUZEN0JCRDNCfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4z
MgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5EZWJ1Z3xXaW4zMi5C
dWlsZC4wID0gRGVidWd8V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdC
QkQzQn0uRGVidWd8V2luMzIuRGVwbG95LjAgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8V2lu
MzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uUmVsZWFzZXxXaW4z
Mi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1C
OERBRkQ3QkJEM0J9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezJF
NjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uUmVsZWFzZXxXaW4zMi5EZXBsb3ku
MCA9IFJlbGVhc2V8V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQz
Qn0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQWN0aXZlQ2Zn
ID0gRGVidWd8V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0u
V2luZG93cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8V2luMzIuRGVwbG95
LjAgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNC
fS5XaW5kb3dzIDcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8eDY0LkJ1aWxkLjAg
PSBEZWJ1Z3x4NjQKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2lu
ZG93cyA3IERlYnVnfHg2NC5EZXBsb3kuMCA9IERlYnVnfHg2NAotCQl7MkU2MUQyQ0MtODY1RS00
NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcg
PSBSZWxlYXNlfFdpbjMyCi0JCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9
LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMy
LkRlcGxveS4wID0gUmVsZWFzZXxXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhE
QUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQK
LQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA3IFJlbGVh
c2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMt
QjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBSZWxlYXNlfHg2
NAotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIERldmVs
b3BlciBQcmV2aWV3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZp
ZXcgRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0JCXsyRTYxRDJDQy04NjVFLTQ0
MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgRGVidWd8V2lu
MzIuRGVwbG95LjAgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhE
QUZEN0JCRDNCfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfHg2NC5BY3RpdmVDZmcg
PSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5X
aW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFz
ZXxXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dz
IERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIK
LQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9w
ZXIgUHJldmlldyBSZWxlYXNlfFdpbjMyLkRlcGxveS4wID0gUmVsZWFzZXxXaW4zMgotCQl7MkU2
MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIERldmVsb3BlciBQcmV2
aWV3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezJFNjFEMkNDLTg2
NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5BY3Rp
dmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JC
RDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7
MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIERlYnVn
fFdpbjMyLkRlcGxveS4wID0gRGVidWd8V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04Qzgz
LUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8
eDY0Ci0JCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlz
dGEgRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04
QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuRGVwbG95LjAgPSBEZWJ1
Z3x4NjQKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBW
aXN0YSBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezJFNjFEMkND
LTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERB
RkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFJlbGVhc2V8
V2luMzIKLQkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBW
aXN0YSBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxk
LjAgPSBSZWxlYXNlfHg2NAotCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNC
fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkRlcGxveS4wID0gUmVsZWFzZXx4NjQKLQkJezlC
MDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uRGVidWd8V2luMzIuQWN0aXZlQ2Zn
ID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjct
OTVGNzc2MThBMjFEfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xX
aW4zMgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5EZWJ1Z3xXaW4z
Mi5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKLQkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlz
dGEgRGVidWd8eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LkRl
YnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKLQkJezlCMDcxQTM1LTg5
N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5k
b3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKLQkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3
NjE4QTIxRH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdp
bjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LlJlbGVhc2V8V2lu
MzIuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKLQkJezlCMDcxQTM1LTg5
N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93
cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThB
MjFEfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3
N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2lu
ZG93cyA3IERlYnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEy
MUR9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4z
MgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgRGVi
dWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4wID0gV2lu
ZG93cyA3IERlYnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFE
fS5XaW5kb3dzIDcgRGVidWd8eDY0LkRlcGxveS4wID0gV2luZG93cyA3IERlYnVnfHg2NAotCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgUmVsZWFzZXxX
aW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgotCQl7OUIwNzFBMzUtODk3
Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1
Rjc3NjE4QTIxRH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDcg
UmVsZWFzZXxXaW4zMgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5X
aW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IFJlbGVhc2V8eDY0Ci0J
CXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgNyBSZWxlYXNl
fHg2NC5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3
N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFdp
bmRvd3MgNyBSZWxlYXNlfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThB
MjFEfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdp
bmRvd3MgOCBEZWJ1Z3xXaW4zMgotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThB
MjFEfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5k
b3dzIDggRGVidWd8V2luMzIKLQkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIx
RH0uV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93
cyA4IERlYnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5X
aW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERl
YnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dz
IERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERl
YnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRv
d3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERl
YnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRv
d3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERl
YnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dz
IERldmVsb3BlciBQcmV2aWV3IFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8
eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlz
dGEgRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIERlYnVn
fFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04
OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuRGVw
bG95LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3N0Et
QUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdp
bmRvd3MgVmlzdGEgRGVidWd8eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYx
OEEyMUR9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dz
IFZpc3RhIERlYnVnfHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0Ci0JCXs5
QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgUmVsZWFz
ZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKLQkJezlCMDcx
QTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdp
bjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKLQkJezlCMDcxQTM1LTg5
N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkRl
cGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs5QjA3MUEzNS04OTdDLTQ3
N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQWN0aXZlQ2Zn
ID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjct
OTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dz
IFZpc3RhIFJlbGVhc2V8eDY0Ci0JCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEy
MUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIFJl
bGVhc2V8eDY0Ci0JRW5kR2xvYmFsU2VjdGlvbgotCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9w
ZXJ0aWVzKSA9IHByZVNvbHV0aW9uCi0JCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQotCUVuZEds
b2JhbFNlY3Rpb24KLUVuZEdsb2JhbAorTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24g
RmlsZSwgRm9ybWF0IFZlcnNpb24gMTIuMDAKKyMgVmlzdWFsIFN0dWRpbyBFeHByZXNzIDIwMTMg
Zm9yIFdpbmRvd3MgRGVza3RvcAorVmlzdWFsU3R1ZGlvVmVyc2lvbiA9IDEyLjAuMjEwMDUuMQor
TWluaW11bVZpc3VhbFN0dWRpb1ZlcnNpb24gPSAxMC4wLjQwMjE5LjEKK1Byb2plY3QoIns4QkM5
Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuaWZhY2UiLCAieGVuaWZh
Y2VceGVuaWZhY2UudmN4cHJvaiIsICJ7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdD
N0Q4fSIKK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEw
QzkxQkM5NDJ9IikgPSAiTGl0ZUFnZW50IiwgImxpdGVhZ2VudFxMaXRlQWdlbnQudmN4cHJvaiIs
ICJ7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfSIKK0VuZFByb2plY3QKK1By
b2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicGFja2Fn
ZSIsICJwYWNrYWdlXHBhY2thZ2UudmN4cHJvaiIsICJ7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjct
OTVGNzc2MThBMjFEfSIKKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBv
c3RQcm9qZWN0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9ID0gezJF
NjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0KKwlFbmRQcm9qZWN0U2VjdGlvbgor
RW5kUHJvamVjdAorR2xvYmFsCisJR2xvYmFsU2VjdGlvbihTb2x1dGlvbkNvbmZpZ3VyYXRpb25Q
bGF0Zm9ybXMpID0gcHJlU29sdXRpb24KKwkJRGVidWd8V2luMzIgPSBEZWJ1Z3xXaW4zMgorCQlE
ZWJ1Z3x4NjQgPSBEZWJ1Z3x4NjQKKwkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzIKKwkJ
UmVsZWFzZXx4NjQgPSBSZWxlYXNlfHg2NAorCQlXaW5kb3dzIDcgRGVidWd8V2luMzIgPSBXaW5k
b3dzIDcgRGVidWd8V2luMzIKKwkJV2luZG93cyA3IERlYnVnfHg2NCA9IFdpbmRvd3MgNyBEZWJ1
Z3x4NjQKKwkJV2luZG93cyA3IFJlbGVhc2V8V2luMzIgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4z
MgorCQlXaW5kb3dzIDcgUmVsZWFzZXx4NjQgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQKKwkJV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMiA9IFdpbmRvd3MgRGV2ZWxvcGVyIFBy
ZXZpZXcgRGVidWd8V2luMzIKKwkJV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3x4NjQg
PSBXaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfHg2NAorCQlXaW5kb3dzIERldmVsb3Bl
ciBQcmV2aWV3IFJlbGVhc2V8V2luMzIgPSBXaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IFJlbGVh
c2V8V2luMzIKKwkJV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2NCA9IFdpbmRv
d3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXx4NjQKKwkJV2luZG93cyBWaXN0YSBEZWJ1Z3xX
aW4zMiA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJV2luZG93cyBWaXN0YSBEZWJ1Z3x4
NjQgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQlXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2lu
MzIgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJV2luZG93cyBWaXN0YSBSZWxlYXNl
fHg2NCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwlFbmRHbG9iYWxTZWN0aW9uCisJR2xv
YmFsU2VjdGlvbihQcm9qZWN0Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwb3N0U29sdXRpb24K
KwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8V2luMzIuQWN0
aXZlQ2ZnID0gV2luZG93cyA4IERlYnVnfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4
OC0zMzIwMTc5N0M3RDh9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8V2lu
MzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8V2luMzIu
RGVwbG95LjAgPSBXaW5kb3dzIDggRGVidWd8V2luMzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1C
Qjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3x4
NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uRGVidWd8eDY0LkJ1
aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0z
MzIwMTc5N0M3RDh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IFJlbGVhc2V8
V2luMzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uUmVsZWFzZXxX
aW4zMi5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKKwkJezIyMTY2MjkwLTY1RDgt
NDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3Mg
OCBSZWxlYXNlfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9
LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAorCQl7MjIxNjYy
OTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gV2lu
ZG93cyA4IFJlbGVhc2V8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3
RDh9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8V2lu
MzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERl
YnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezIyMTY2MjkwLTY1
RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IERlYnVnfFdpbjMyLkRlcGxveS4w
ID0gV2luZG93cyA3IERlYnVnfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIw
MTc5N0M3RDh9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVn
fHg2NAorCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIDcg
RGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8eDY0CisJCXsyMjE2NjI5MC02NUQ4
LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuRGVwbG95LjAgPSBX
aW5kb3dzIDcgRGVidWd8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3
RDh9LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNl
fFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3Mg
NyBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7MjIx
NjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4z
Mi5EZXBsb3kuMCA9IFdpbmRvd3MgNyBSZWxlYXNlfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5
RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBX
aW5kb3dzIDcgUmVsZWFzZXx4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3
QzdEOH0uV2luZG93cyA3IFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4
NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyA3IFJl
bGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0CisJCXsyMjE2NjI5MC02
NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgRGVi
dWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXsyMjE2
NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZp
ZXcgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7
MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIERldmVsb3BlciBQ
cmV2aWV3IERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CisJ
CXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgRGV2ZWxvcGVy
IFByZXZpZXcgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CisJ
CXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgRGV2ZWxvcGVy
IFByZXZpZXcgUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8
V2luMzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBE
ZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJl
bGVhc2V8V2luMzIKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZp
c3RhIFJlbGVhc2V8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9
LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXx4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdE
OH0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfFdpbjMyCisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRv
d3MgVmlzdGEgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIK
KwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBE
ZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezIyMTY2
MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQu
QWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlE
Mi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdp
bmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5
N0M3RDh9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBE
ZWJ1Z3x4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93
cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxX
aW4zMgorCQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZp
c3RhIFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgor
CQl7MjIxNjYyOTAtNjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fS5XaW5kb3dzIFZpc3RhIFJl
bGVhc2V8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezIy
MTY2MjkwLTY1RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBSZWxlYXNl
fHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CisJCXsyMjE2NjI5MC02
NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQnVp
bGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwkJezIyMTY2MjkwLTY1RDgtNDlEMi1C
Qjg4LTMzMjAxNzk3QzdEOH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFdp
bmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFG
RDdCQkQzQn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJezJFNjFEMkND
LTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVn
fFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LkRlYnVnfFdp
bjMyLkRlcGxveS4wID0gRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4
REFGRDdCQkQzQn0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXsyRTYxRDJD
Qy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0g
UmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5S
ZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0
MkMtOEM4My1COERBRkQ3QkJEM0J9LlJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBSZWxlYXNlfFdp
bjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LlJlbGVhc2V8eDY0
LkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4
REFGRDdCQkQzQn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMy
CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBEZWJ1
Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04Qzgz
LUI4REFGRDdCQkQzQn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkRlcGxveS4wID0gRGVidWd8V2lu
MzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA3IERl
YnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04Qzgz
LUI4REFGRDdCQkQzQn0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0CisJ
CXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBEZWJ1Z3x4
NjQuRGVwbG95LjAgPSBEZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFG
RDdCQkQzQn0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4z
MgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVs
ZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJD
LThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFJl
bGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2lu
ZG93cyA3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04
NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5CdWlsZC4w
ID0gUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0u
V2luZG93cyA3IFJlbGVhc2V8eDY0LkRlcGxveS4wID0gUmVsZWFzZXx4NjQKKwkJezJFNjFEMkND
LTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBE
ZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJD
LThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMy
LkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIERldmVsb3BlciBQcmV2aWV3IERlYnVnfFdpbjMyLkRlcGxveS4wID0g
RGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2lu
ZG93cyBEZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIK
KwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9w
ZXIgUHJldmlldyBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezJF
NjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9wZXIgUHJl
dmlldyBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04
NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgRGV2ZWxvcGVyIFByZXZpZXcgUmVs
ZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQy
Qy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBEZXZlbG9wZXIgUHJldmlldyBSZWxlYXNlfHg2
NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1C
OERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8
V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBW
aXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUt
NDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5EZXBsb3ku
MCA9IERlYnVnfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9
LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAorCQl7MkU2MUQy
Q0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5C
dWlsZC4wID0gRGVidWd8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJE
M0J9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkRlcGxveS4wID0gRGVidWd8eDY0CisJCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxX
aW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4
My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVs
ZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5k
b3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBSZWxlYXNlfFdpbjMyCisJCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4
NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4
REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4
NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0
YSBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFJlbGVhc2V8eDY0CisJCXs5QjA3MUEzNS04OTdDLTQ3
N0EtQUVCNy05NUY3NzYxOEEyMUR9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlz
dGEgRGVidWd8V2luMzIKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0u
RGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezlCMDcx
QTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uRGVidWd8V2luMzIuRGVwbG95LjAgPSBX
aW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3
NzYxOEEyMUR9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAor
CQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5EZWJ1Z3x4NjQuQnVpbGQu
MCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05
NUY3NzYxOEEyMUR9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxl
YXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LlJlbGVh
c2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7OUIwNzFB
MzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5SZWxlYXNlfFdpbjMyLkRlcGxveS4wID0g
V2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05
NUY3NzYxOEEyMUR9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFz
ZXx4NjQKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uUmVsZWFzZXx4
NjQuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9
IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2
MThBMjFEfS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xX
aW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcg
RGVidWd8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezlCMDcxQTM1
LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IERlYnVnfHg2NC5BY3RpdmVD
ZmcgPSBXaW5kb3dzIDcgRGVidWd8eDY0CisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3
NzYxOEEyMUR9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4
NjQKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IERl
YnVnfHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKKwkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2Zn
ID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1
Rjc3NjE4QTIxRH0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBS
ZWxlYXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9Lldp
bmRvd3MgNyBSZWxlYXNlfFdpbjMyLkRlcGxveS4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIK
KwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyA3IFJlbGVh
c2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAorCQl7OUIwNzFBMzUtODk3
Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQnVpbGQuMCA9
IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2
MThBMjFEfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBXaW5kb3dzIDcgUmVsZWFz
ZXx4NjQKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBE
ZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVidWd8
V2luMzIKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBE
ZXZlbG9wZXIgUHJldmlldyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfFdp
bjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgRGV2
ZWxvcGVyIFByZXZpZXcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQK
KwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBEZXZlbG9w
ZXIgUHJldmlldyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKKwkJezlC
MDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBEZXZlbG9wZXIgUHJl
dmlldyBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIERldmVsb3BlciBQ
cmV2aWV3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7
OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIERldmVsb3BlciBQ
cmV2aWV3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKKwkJezlC
MDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBEZXZlbG9wZXIgUHJl
dmlldyBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7OUIwNzFB
MzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMy
LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjct
OTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2luZG93
cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThB
MjFEfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfHg2NAorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dz
IFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKKwkJezlC
MDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4
NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQl7OUIwNzFBMzUtODk3Qy00
NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0aXZl
Q2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0Et
QUVCNy05NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0g
V2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXs5QjA3MUEzNS04OTdDLTQ3N0EtQUVCNy05
NUY3NzYxOEEyMUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRv
d3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2
MThBMjFEfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlz
dGEgUmVsZWFzZXx4NjQKKwkJezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0u
V2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNl
fHg2NAorCQl7OUIwNzFBMzUtODk3Qy00NzdBLUFFQjctOTVGNzc2MThBMjFEfS5XaW5kb3dzIFZp
c3RhIFJlbGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAorCUVu
ZEdsb2JhbFNlY3Rpb24KKwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uUHJvcGVydGllcykgPSBwcmVT
b2x1dGlvbgorCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UKKwlFbmRHbG9iYWxTZWN0aW9uCitF
bmRHbG9iYWwKZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qIGIv
dnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKaW5kZXggODJhMWRjNC4uODQzZTg1ZSAx
MDA2NDQKLS0tIGEvdnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKKysrIGIvdnMyMDEz
L3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKQEAgLTEsMTY0ICsxLDE2NCBAQAot77u/PD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRz
PSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3Nv
ZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SW1wb3J0IFByb2plY3Q9Ii4uXGNv
bmZpZ3MucHJvcHMiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+
Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkRyaXZlcjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAg
PERyaXZlclR5cGU+V0RNPC9Ecml2ZXJUeXBlPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8Q29uZmlndXJhdGlvbj5XaW5kb3dzIFZp
c3RhIERlYnVnPC9Db25maWd1cmF0aW9uPgotICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IickKFBs
YXRmb3JtKScgPT0gJyciPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8RGVidWdnZXJGbGF2b3I+RGJn
ZW5nS2VybmVsRGVidWdnZXI8L0RlYnVnZ2VyRmxhdm9yPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQu
cHJvcHMiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNlfFdp
bjMyJyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwv
UGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExh
YmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8V2luMzInIj4KLSAgICA8UGxhdGZvcm1Ub29sc2V0
PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVy
dHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBSZWxlYXNl
fFdpbjMyJyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjgu
MTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1dpbmRvd3MgNyBSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNl
dD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgNyBEZWJ1Z3xXaW4z
MiciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8L1Bs
YXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJl
bD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdXaW5kb3dzIDggRGVidWd8V2luMzInIj4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRv
d3NLZXJuZWxNb2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91
cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IFJlbGVhc2V8eDY0JyI+Ci0g
ICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1U
b29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25m
aWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dp
bmRvd3MgVmlzdGEgRGVidWd8eDY0JyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2Vy
bmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQnIj4KLSAg
ICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRv
b2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZp
Z3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2lu
ZG93cyA3IFJlbGVhc2V8eDY0JyI+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVs
TW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgNyBEZWJ1Z3x4NjQnIj4KLSAgICA8UGxhdGZv
cm1Ub29sc2V0PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0g
IDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24i
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERl
YnVnfHg2NCciPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4
LjE8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPnsyMjE2NjI5MC02NUQ4LTQ5RDIt
QkI4OC0zMzIwMTc5N0M3RDh9PC9Qcm9qZWN0R3VpZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
SW1wb3J0IFByb2plY3Q9Ii4uXHRhcmdldHMucHJvcHMiIC8+Ci0gIDxJbXBvcnQgUHJvamVjdD0i
JChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91
cD4KLSAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVk
ZVBhdGg+Ci0gICAgPFJ1bkNvZGVBbmFseXNpcz50cnVlPC9SdW5Db2RlQW5hbHlzaXM+Ci0gICAg
PEVuYWJsZUluZjJjYXQ+ZmFsc2U8L0VuYWJsZUluZjJjYXQ+Ci0gICAgPEN1c3RvbUJ1aWxkQmVm
b3JlVGFyZ2V0cz5DbENvbXBpbGU7TW9mQ29tcDtTdGFtcEluZjwvQ3VzdG9tQnVpbGRCZWZvcmVU
YXJnZXRzPgotICAgIDxJbnREaXI+Li5cJChQcm9qZWN0TmFtZSlcJChDb25maWd1cmF0aW9uTmFt
ZSlcJChQbGF0Zm9ybSlcPC9JbnREaXI+Ci0gICAgPE91dERpcj4uLlwkKENvbmZpZ3VyYXRpb25O
YW1lKVwkKFBsYXRmb3JtKVw8L091dERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRlbURl
ZmluaXRpb25Hcm91cD4KLSAgICAgIDxDdXN0b21CdWlsZFN0ZXA+Ci0gICAgICAgICAgICA8Q29t
bWFuZD5lY2hvICJCdWlsZCBJbmYiCi0gICAgICAgICAgICAgICAgIHBvd2Vyc2hlbGwgLUNvbW1h
bmQgIihHZXQtQ29udGVudCAuLlwuLlxzcmNceGVuaWZhY2UuaW5mKSAtcmVwbGFjZSAnQE1BSk9S
X1ZFUlNJT05AJywgJyQoTUFKT1JfVkVSU0lPTiknIC1yZXBsYWNlICdATUlOT1JfVkVSU0lPTkAn
LCAnJChNSU5PUl9WRVJTSU9OKScgLXJlcGxhY2UgJ0BNSUNST19WRVJTSU9OQCcsJyQoTUlDUk9f
VkVSU0lPTiknIC1yZXBsYWNlICdAQlVJTERfTlVNQkVSQCcsJyQoQlVJTERfTlVNQkVSKScgLXJl
cGxhY2UgJ0BDT01QQU5ZX05BTUVAJywnJChDT01QQU5ZX05BTUUpJyAtcmVwbGFjZSAnQFBST0RV
Q1RfTkFNRUAnLCckKFBST0RVQ1RfTkFNRSknIHwgU2V0LUNvbnRlbnQgLi5cLi5cdnMyMDEzXHhl
bmlmYWNlLmluZiIKLSAgICAgICAgICAgICAgICBlY2hvICJCdWlsZCB2ZXJzaW9uIGhlYWRlciIK
LSAgICAgICAgICAgICAgICBwb3dlcnNoZWxsIC1Db21tYW5kICIoR2V0LUNvbnRlbnQgLi5cLi5c
aW5jbHVkZVx2ZXJzaW9uLmh4KSAtcmVwbGFjZSAnQE1BSk9SX1ZFUlNJT05AJywgJyQoTUFKT1Jf
VkVSU0lPTiknIC1yZXBsYWNlICdATUlOT1JfVkVSU0lPTkAnLCAnJChNSU5PUl9WRVJTSU9OKScg
LXJlcGxhY2UgJ0BNSUNST19WRVJTSU9OQCcsJyQoTUlDUk9fVkVSU0lPTiknIC1yZXBsYWNlICdA
QlVJTERfTlVNQkVSQCcsJyQoQlVJTERfTlVNQkVSKScgLXJlcGxhY2UgJ0BDT01QQU5ZX05BTUVA
JywnJChDT01QQU5ZX05BTUUpJyAtcmVwbGFjZSAnQFBST0RVQ1RfTkFNRUAnLCckKFBST0RVQ1Rf
TkFNRSknIC1yZXBsYWNlICdAREFZQCcsJTI0KEdldC1EYXRlIC1mb3JtYXQgJTI1JTI1ZCkgLXJl
cGxhY2UgJ0BNT05USEAnLCUyNChHZXQtRGF0ZSAtZm9ybWF0ICUyNSUyNU0pIC1yZXBsYWNlICdA
WUVBUkAnLCUyNChHZXQtRGF0ZSAtZm9ybWF0IHl5eXkpIC1yZXBsYWNlICdAT0JKRUNUX1BSRUZJ
WEAnLCckKE9CSkVDVF9QUkVGSVgpJyB8IFNldC1Db250ZW50IC4uXC4uXGluY2x1ZGVcdmVyc2lv
bi5oIgotICAgICAgICAgICAgICAgIGVjaG8gIk1vZGlmeSBtb2YiCi0gICAgICAgICAgICAgICAg
cG93ZXJzaGVsbCAtQ29tbWFuZCAiKEdldC1Db250ZW50IC4uXC4uXHNyY1x4ZW5pZmFjZS5tb2Yp
ICAtcmVwbGFjZSAnQE9CSkVDVF9QUkVGSVhAJywnJChPQkpFQ1RfUFJFRklYKScgfCBTZXQtQ29u
dGVudCAuLlwuLlxzcmNceGVuaWZhY2Vcd21pLm1vZiIKLSAgICAgICAgICAgIDwvQ29tbWFuZD4K
LSAgICAgICAgICAgIDxPdXRwdXRzPi4uXC4uXHZzMjAxM1x4ZW5pZmFjZS5pbmY7Li5cLi5caW5j
bHVkZVx2ZXJzaW9uLmg7Li5cLi5cc3JjXHhlbmlmYWNlXHdtaS5tb2Y8L091dHB1dHM+Ci0gICAg
ICAgICAgICA8SW5wdXRzPi4uXC4uXHNyY1x4ZW5pZmFjZS5pbmY7Li5cLi5caW5jbHVkZVx2ZXJz
aW9uLmh4Oy4uXC4uXHNyY1x4ZW5pZmFjZS5tb2Y8L0lucHV0cz4KLSAgICAgICAgPC9DdXN0b21C
dWlsZFN0ZXA+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz5fX01PRFVMRV9fPSJYRU5JRkFDRSI7UE9PTF9OWF9PUFRJTj0xOyUoUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+
RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEaXNhYmxlU3BlY2lmaWNX
YXJuaW5ncz40NzExOzQ1NDg7NDgyMDs0NjY4OzQyNTU7NjAwMTs2MDU0OyUoRGlzYWJsZVNwZWNp
ZmljV2FybmluZ3MpPC9EaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KLSAgICAgIDxNdWx0aVByb2Nl
c3NvckNvbXBpbGF0aW9uPnRydWU8L011bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+Ci0gICAgICA8
RW5hYmxlUFJFZmFzdD50cnVlPC9FbmFibGVQUkVmYXN0PgotICAgIDwvQ2xDb21waWxlPgotICAg
IDxMaW5rPgotICAgICAgPEltYWdlSGFzU2FmZUV4Y2VwdGlvbkhhbmRsZXJzPmZhbHNlPC9JbWFn
ZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz4KLSAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PiQoRERLX0xJQl9QQVRIKVxudHN0cnNhZmUubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz5mYWxz
ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICA8L0xpbms+Ci0gICAgPEluZj4KLSAgICAgIDxT
cGVjaWZ5QXJjaGl0ZWN0dXJlPnRydWU8L1NwZWNpZnlBcmNoaXRlY3R1cmU+Ci0gICAgICA8U3Bl
Y2lmeURyaXZlclZlckRpcmVjdGl2ZVZlcnNpb24+dHJ1ZTwvU3BlY2lmeURyaXZlclZlckRpcmVj
dGl2ZVZlcnNpb24+Ci0gICAgICA8VGltZVN0YW1wPiQoTUFKT1JfVkVSU0lPTikuJChNSU5PUl9W
RVJTSU9OKS4kKE1JQ1JPX1ZFUlNJT04pLiQoQlVJTERfTlVNQkVSKTwvVGltZVN0YW1wPgotICAg
ICAgPEVuYWJsZVZlcmJvc2U+dHJ1ZTwvRW5hYmxlVmVyYm9zZT4KLSAgICA8L0luZj4KLSAgPC9J
dGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249Iick
KFBsYXRmb3JtKSc9PSdXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+X19pMzg2X187JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXBy
b2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNlfFdp
bjMyJyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDggUmVsZWFzZXxXaW4zMici
IC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMiciIC8+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMiciIC8+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXJGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyJyIgLz4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzInIiAvPgotICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1dpbmRvd3MgNyBSZWxlYXNlfFdpbjMyJyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91
dHB1dEZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5k
b3dzIDcgUmVsZWFzZXxXaW4zMiciIC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IERlYnVn
fFdpbjMyJyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgRGVidWd8V2luMzIn
IiAvPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBEZWJ1Z3xXaW4zMiciIC8+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERlYnVnfFdpbjMyJyIgLz4KLSAgICA8L0NsQ29tcGls
ZT4KLSAgICA8SW5mPgotICAgICAgPEFyY2hpdGVjdHVyZT54ODY8L0FyY2hpdGVjdHVyZT4KLSAg
ICA8L0luZj4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91
cCBDb25kaXRpb249IickKFBsYXRmb3JtKSc9PSd4NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAg
ICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9feDg2XzY0X187JShQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRv
d3MgOCBSZWxlYXNlfHg2NCciIC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxl
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IFJl
bGVhc2V8eDY0JyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIERlYnVnfHg2NCci
IC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQnIiAvPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQnIiAvPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQnIiAvPgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1dpbmRvd3MgNyBSZWxlYXNlfHg2NCciIC8+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJP
dXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2lu
ZG93cyA3IFJlbGVhc2V8eDY0JyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgRGVidWd8
eDY0JyIgLz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgRGVidWd8eDY0JyIgLz4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDggRGVidWd8eDY0JyIgLz4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdXaW5kb3dzIDggRGVidWd8eDY0JyIgLz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8
SW5mPgotICAgICAgPEFyY2hpdGVjdHVyZT5hbWQ2NDwvQXJjaGl0ZWN0dXJlPgotICAgIDwvSW5m
PgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbGVzVG9Q
YWNrYWdlIEluY2x1ZGU9IiQoVGFyZ2V0UGF0aCkiIC8+Ci0gICAgPEZpbGVzVG9QYWNrYWdlIElu
Y2x1ZGU9IiQoT3V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiIiAvPgotICAgIDxGaWxlc1RvUGFja2Fn
ZSBJbmNsdWRlPSJAKEluZi0+JyUoQ29weU91dHB1dCknKSIgQ29uZGl0aW9uPSInQChJbmYpJyE9
JyciIC8+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi4vLi4vc3JjL3hlbmlmYWNlL2lvY3Rscy5jIiAvPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi4vLi4vc3JjL3hlbmlmYWNlL3dtaS5jIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi4vLi4vc3JjL3hlbmlmYWNlL2RyaXZlci5jIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi4vLi4vc3JjL3hlbmlmYWNlL2Zkby5jIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li4vLi4vc3JjL3hlbmlmYWNlL3JlZ2lzdHJ5LmMiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLi8uLi9zcmNceGVuaWZhY2UvdGhyZWFkLmMiIC8+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRl
bUdyb3VwPgotICAgIDxNb2Zjb21wIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS93bWkubW9m
Ij4KLSAgICAgIDxDcmVhdGVCaW5hcnlNb2ZGaWxlPiQoSW50RGlyKS93bWkuYm1mPC9DcmVhdGVC
aW5hcnlNb2ZGaWxlPgotICAgIDwvTW9mY29tcD4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3Jv
dXA+Ci0gICAgPFdtaW1vZmNrIEluY2x1ZGU9IiQoSW50RGlyKVx3bWkuYm1mIj4KLSAgICAgIDxI
ZWFkZXJPdXRwdXRGaWxlPi4uXC4uXHNyY1x4ZW5pZmFjZVx3bWlfZ2VuZXJhdGVkLmg8L0hlYWRl
ck91dHB1dEZpbGU+Ci0gICAgPC9XbWltb2Zjaz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3Jv
dXA+Ci0gICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuaWZhY2VceGVu
aWZhY2UucmMiIC8+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxJbmYgSW5j
bHVkZT0iLi5ceGVuaWZhY2UuaW5mIiAvPgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9q
ZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KLTwvUHJvamVj
dD4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZh
dWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVt
YXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEltcG9ydCBQcm9q
ZWN0PSIuLlxjb25maWdzLnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iUHJvcGVy
dHlTaGVldHMiPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5Ecml2ZXI8L0NvbmZpZ3VyYXRpb25U
eXBlPgorICAgIDxEcml2ZXJUeXBlPldETTwvRHJpdmVyVHlwZT4KKyAgPC9Qcm9wZXJ0eUdyb3Vw
PgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPENvbmZpZ3VyYXRpb24+
V2luZG93cyBWaXN0YSBEZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICA8UGxhdGZvcm0gQ29uZGl0
aW9uPSInJChQbGF0Zm9ybSknID09ICcnIj5XaW4zMjwvUGxhdGZvcm0+CisgICAgPERlYnVnZ2Vy
Rmxhdm9yPkRiZ2VuZ0tlcm5lbERlYnVnZ2VyPC9EZWJ1Z2dlckZsYXZvcj4KKyAgPC9Qcm9wZXJ0
eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlv
biIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDgg
UmVsZWFzZXxXaW4zMiciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVE
cml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVy
dHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyJyI+CisgICAgPFBsYXRm
b3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0Pgor
ICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9u
IiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlz
dGEgUmVsZWFzZXxXaW4zMiciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1v
ZGVEcml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJv
cGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMiciPgorICAgIDxQbGF0
Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4K
KyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlv
biIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcg
RGVidWd8V2luMzInIj4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NLZXJuZWxNb2RlRHJp
dmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9IkNvbmZpZ3VyYXRpb24iIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERlYnVnfFdpbjMyJyI+CisgICAgPFBsYXRmb3JtVG9v
bHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1By
b3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25maWd1cmF0aW9uIiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBSZWxlYXNl
fHg2NCciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8
L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBM
YWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdXaW5kb3dzIFZpc3RhIERlYnVnfHg2NCciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
V2luZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0
eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8
eDY0JyI+CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwv
UGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExh
YmVsPSJDb25maWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1dpbmRvd3MgNyBSZWxlYXNlfHg2NCciPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2lu
ZG93c0tlcm5lbE1vZGVEcml2ZXI4LjE8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdy
b3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iQ29uZmlndXJhdGlvbiIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgRGVidWd8eDY0JyI+Cisg
ICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjguMTwvUGxhdGZvcm1U
b29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJDb25m
aWd1cmF0aW9uIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dp
bmRvd3MgOCBEZWJ1Z3x4NjQnIj4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NLZXJuZWxN
b2RlRHJpdmVyOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFBy
b3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57MjIxNjYyOTAt
NjVEOC00OUQyLUJCODgtMzMyMDE3OTdDN0Q4fTwvUHJvamVjdEd1aWQ+CisgIDwvUHJvcGVydHlH
cm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIuLlx0YXJnZXRzLnByb3BzIiAvPgorICA8SW1wb3J0
IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPFBy
b3BlcnR5R3JvdXA+CisgICAgPEluY2x1ZGVQYXRoPi4uXC4uXGluY2x1ZGU7JChJbmNsdWRlUGF0
aCk8L0luY2x1ZGVQYXRoPgorICAgIDxSdW5Db2RlQW5hbHlzaXM+dHJ1ZTwvUnVuQ29kZUFuYWx5
c2lzPgorICAgIDxFbmFibGVJbmYyY2F0PmZhbHNlPC9FbmFibGVJbmYyY2F0PgorICAgIDxDdXN0
b21CdWlsZEJlZm9yZVRhcmdldHM+Q2xDb21waWxlO01vZkNvbXA7U3RhbXBJbmY8L0N1c3RvbUJ1
aWxkQmVmb3JlVGFyZ2V0cz4KKyAgICA8SW50RGlyPi4uXCQoUHJvamVjdE5hbWUpXCQoQ29uZmln
dXJhdGlvbk5hbWUpXCQoUGxhdGZvcm0pXDwvSW50RGlyPgorICAgIDxPdXREaXI+Li5cJChDb25m
aWd1cmF0aW9uTmFtZSlcJChQbGF0Zm9ybSlcPC9PdXREaXI+CisgIDwvUHJvcGVydHlHcm91cD4K
KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CisgICAgICA8Q3VzdG9tQnVpbGRTdGVwPgorICAgICAg
ICAgICAgPENvbW1hbmQ+ZWNobyAiQnVpbGQgSW5mIgorICAgICAgICAgICAgICAgICBwb3dlcnNo
ZWxsIC1Db21tYW5kICIoR2V0LUNvbnRlbnQgLi5cLi5cc3JjXHhlbmlmYWNlLmluZikgLXJlcGxh
Y2UgJ0BNQUpPUl9WRVJTSU9OQCcsICckKE1BSk9SX1ZFUlNJT04pJyAtcmVwbGFjZSAnQE1JTk9S
X1ZFUlNJT05AJywgJyQoTUlOT1JfVkVSU0lPTiknIC1yZXBsYWNlICdATUlDUk9fVkVSU0lPTkAn
LCckKE1JQ1JPX1ZFUlNJT04pJyAtcmVwbGFjZSAnQEJVSUxEX05VTUJFUkAnLCckKEJVSUxEX05V
TUJFUiknIC1yZXBsYWNlICdAQ09NUEFOWV9OQU1FQCcsJyQoQ09NUEFOWV9OQU1FKScgLXJlcGxh
Y2UgJ0BQUk9EVUNUX05BTUVAJywnJChQUk9EVUNUX05BTUUpJyB8IFNldC1Db250ZW50IC4uXC4u
XHZzMjAxM1x4ZW5pZmFjZS5pbmYiCisgICAgICAgICAgICAgICAgZWNobyAiQnVpbGQgdmVyc2lv
biBoZWFkZXIiCisgICAgICAgICAgICAgICAgcG93ZXJzaGVsbCAtQ29tbWFuZCAiKEdldC1Db250
ZW50IC4uXC4uXGluY2x1ZGVcdmVyc2lvbi5oeCkgLXJlcGxhY2UgJ0BNQUpPUl9WRVJTSU9OQCcs
ICckKE1BSk9SX1ZFUlNJT04pJyAtcmVwbGFjZSAnQE1JTk9SX1ZFUlNJT05AJywgJyQoTUlOT1Jf
VkVSU0lPTiknIC1yZXBsYWNlICdATUlDUk9fVkVSU0lPTkAnLCckKE1JQ1JPX1ZFUlNJT04pJyAt
cmVwbGFjZSAnQEJVSUxEX05VTUJFUkAnLCckKEJVSUxEX05VTUJFUiknIC1yZXBsYWNlICdAQ09N
UEFOWV9OQU1FQCcsJyQoQ09NUEFOWV9OQU1FKScgLXJlcGxhY2UgJ0BQUk9EVUNUX05BTUVAJywn
JChQUk9EVUNUX05BTUUpJyAtcmVwbGFjZSAnQERBWUAnLCUyNChHZXQtRGF0ZSAtZm9ybWF0ICUy
NSUyNWQpIC1yZXBsYWNlICdATU9OVEhAJywlMjQoR2V0LURhdGUgLWZvcm1hdCAlMjUlMjVNKSAt
cmVwbGFjZSAnQFlFQVJAJywlMjQoR2V0LURhdGUgLWZvcm1hdCB5eXl5KSAtcmVwbGFjZSAnQE9C
SkVDVF9QUkVGSVhAJywnJChPQkpFQ1RfUFJFRklYKScgfCBTZXQtQ29udGVudCAuLlwuLlxpbmNs
dWRlXHZlcnNpb24uaCIKKyAgICAgICAgICAgICAgICBlY2hvICJNb2RpZnkgbW9mIgorICAgICAg
ICAgICAgICAgIHBvd2Vyc2hlbGwgLUNvbW1hbmQgIihHZXQtQ29udGVudCAuLlwuLlxzcmNceGVu
aWZhY2UubW9mKSAgLXJlcGxhY2UgJ0BPQkpFQ1RfUFJFRklYQCcsJyQoT0JKRUNUX1BSRUZJWCkn
IHwgU2V0LUNvbnRlbnQgLi5cLi5cc3JjXHhlbmlmYWNlXHdtaS5tb2YiCisgICAgICAgICAgICA8
L0NvbW1hbmQ+CisgICAgICAgICAgICA8T3V0cHV0cz4uLlwuLlx2czIwMTNceGVuaWZhY2UuaW5m
Oy4uXC4uXGluY2x1ZGVcdmVyc2lvbi5oOy4uXC4uXHNyY1x4ZW5pZmFjZVx3bWkubW9mPC9PdXRw
dXRzPgorICAgICAgICAgICAgPElucHV0cz4uLlwuLlxzcmNceGVuaWZhY2UuaW5mOy4uXC4uXGlu
Y2x1ZGVcdmVyc2lvbi5oeDsuLlwuLlxzcmNceGVuaWZhY2UubW9mPC9JbnB1dHM+CisgICAgICAg
IDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOSUZBQ0UiO1BPT0xfTlhfT1BUSU49MTslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8V2Fy
bmluZ0xldmVsPkVuYWJsZUFsbFdhcm5pbmdzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8RGlzYWJs
ZVNwZWNpZmljV2FybmluZ3M+NDcxMTs0NTQ4OzQ4MjA7NDY2ODs0MjU1OzYwMDE7NjA1NDslKERp
c2FibGVTcGVjaWZpY1dhcm5pbmdzKTwvRGlzYWJsZVNwZWNpZmljV2FybmluZ3M+CisgICAgICA8
TXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj50cnVlPC9NdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9u
PgorICAgICAgPEVuYWJsZVBSRWZhc3Q+dHJ1ZTwvRW5hYmxlUFJFZmFzdD4KKyAgICA8L0NsQ29t
cGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxJbWFnZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz5m
YWxzZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxlcnM+CisgICAgICA8QWRkaXRpb25hbERl
cGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbnRzdHJzYWZlLmxpYjslKEFkZGl0aW9uYWxEZXBl
bmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEVuYWJsZUNPTURBVEZv
bGRpbmc+ZmFsc2U8L0VuYWJsZUNPTURBVEZvbGRpbmc+CisgICAgPC9MaW5rPgorICAgIDxJbmY+
CisgICAgICA8U3BlY2lmeUFyY2hpdGVjdHVyZT50cnVlPC9TcGVjaWZ5QXJjaGl0ZWN0dXJlPgor
ICAgICAgPFNwZWNpZnlEcml2ZXJWZXJEaXJlY3RpdmVWZXJzaW9uPnRydWU8L1NwZWNpZnlEcml2
ZXJWZXJEaXJlY3RpdmVWZXJzaW9uPgorICAgICAgPFRpbWVTdGFtcD4kKE1BSk9SX1ZFUlNJT04p
LiQoTUlOT1JfVkVSU0lPTikuJChNSUNST19WRVJTSU9OKS4kKEJVSUxEX05VTUJFUik8L1RpbWVT
dGFtcD4KKyAgICAgIDxFbmFibGVWZXJib3NlPnRydWU8L0VuYWJsZVZlcmJvc2U+CisgICAgPC9J
bmY+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29u
ZGl0aW9uPSInJChQbGF0Zm9ybSknPT0nV2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAg
PFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9faTM4Nl9fOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlckZp
bGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDgg
UmVsZWFzZXxXaW4zMiciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IFJlbGVh
c2V8V2luMzInIiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIn
IiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8V2luMzInIiAv
PgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMiciIC8+CisgICAg
ICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICAg
IDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMiciIC8+CisgICAgICA8UHJlY29tcGls
ZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nV2luZG93cyA3IFJlbGVhc2V8V2luMzInIiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyRmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRv
d3MgNyBEZWJ1Z3xXaW4zMiciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxl
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IERl
YnVnfFdpbjMyJyIgLz4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIDggRGVidWd8V2luMzInIiAv
PgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgOCBEZWJ1Z3xXaW4zMiciIC8+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPEluZj4KKyAgICAgIDxBcmNoaXRlY3R1cmU+eDg2PC9BcmNoaXRl
Y3R1cmU+CisgICAgPC9JbmY+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZp
bml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChQbGF0Zm9ybSknPT0neDY0JyI+CisgICAgPENsQ29t
cGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fX3g4Nl82NF9fOyUoUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxQcmVj
b21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdXaW5kb3dzIDggUmVsZWFzZXx4NjQnIiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
T3V0cHV0RmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dp
bmRvd3MgOCBSZWxlYXNlfHg2NCciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyBWaXN0YSBE
ZWJ1Z3x4NjQnIiAvPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1dpbmRvd3MgVmlzdGEgRGVidWd8
eDY0JyIgLz4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0JyIgLz4K
KyAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0JyIgLz4KKyAg
ICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdXaW5kb3dzIDcgUmVsZWFzZXx4NjQnIiAvPgorICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyT3V0cHV0RmlsZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1dpbmRvd3MgNyBSZWxlYXNlfHg2NCciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFk
ZXJGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93
cyA3IERlYnVnfHg2NCciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA3IERlYnVn
fHg2NCciIC8+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERlYnVnfHg2NCciIC8+CisgICAg
ICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nV2luZG93cyA4IERlYnVnfHg2NCciIC8+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPEluZj4KKyAgICAgIDxBcmNoaXRlY3R1cmU+YW1kNjQ8L0FyY2hpdGVjdHVyZT4K
KyAgICA8L0luZj4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAg
IDxGaWxlc1RvUGFja2FnZSBJbmNsdWRlPSIkKFRhcmdldFBhdGgpIiAvPgorICAgIDxGaWxlc1Rv
UGFja2FnZSBJbmNsdWRlPSIkKE91dERpcikkKFRhcmdldE5hbWUpLnBkYiIgLz4KKyAgICA8Rmls
ZXNUb1BhY2thZ2UgSW5jbHVkZT0iQChJbmYtPiclKENvcHlPdXRwdXQpJykiIENvbmRpdGlvbj0i
J0AoSW5mKSchPScnIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS9pb2N0bHMuYyIgLz4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS93bWkuYyIgLz4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS9kcml2ZXIuYyIgLz4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS9mZG8uYyIgLz4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW5pZmFjZS9yZWdpc3RyeS5jIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi4vLi4vc3JjXHhlbmlmYWNlL3RocmVhZC5jIiAvPgorICA8L0l0ZW1Hcm91
cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8TW9mY29tcCBJbmNsdWRlPSIuLi8uLi9zcmMveGVuaWZh
Y2Uvd21pLm1vZiI+CisgICAgICA8Q3JlYXRlQmluYXJ5TW9mRmlsZT4kKEludERpcikvd21pLmJt
ZjwvQ3JlYXRlQmluYXJ5TW9mRmlsZT4KKyAgICA8L01vZmNvbXA+CisgIDwvSXRlbUdyb3VwPgor
ICA8SXRlbUdyb3VwPgorICAgIDxXbWltb2ZjayBJbmNsdWRlPSIkKEludERpcilcd21pLmJtZiI+
CisgICAgICA8SGVhZGVyT3V0cHV0RmlsZT4uLlwuLlxzcmNceGVuaWZhY2Vcd21pX2dlbmVyYXRl
ZC5oPC9IZWFkZXJPdXRwdXRGaWxlPgorICAgIDwvV21pbW9mY2s+CisgIDwvSXRlbUdyb3VwPgor
ICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhl
bmlmYWNlXHhlbmlmYWNlLnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAg
ICA8SW5mIEluY2x1ZGU9Ii4uXHhlbmlmYWNlLmluZiIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+
Cis8L1Byb2plY3Q+Ci0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 17:20:06 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 17:20:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YB58Q-0000xf-NM; Tue, 13 Jan 2015 17:20:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YB503-0007el-VG
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 17:11:28 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	54/65-22819-FB155B45; Tue, 13 Jan 2015 17:11:27 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1421169086!17848227!1
X-Originating-IP: [209.85.212.180]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20866 invoked from network); 13 Jan 2015 17:11:26 -0000
Received: from mail-wi0-f180.google.com (HELO mail-wi0-f180.google.com)
	(209.85.212.180)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 17:11:26 -0000
Received: by mail-wi0-f180.google.com with SMTP id n3so5421899wiv.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 13 Jan 2015 09:11:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=St+zw+W2xmnKNK2DSnxAbNCuht/T2AjCt3kbMENDpVA=;
	b=VWJa4fePEHV0W/pkzXzVmrU3P3jDt5DmHMG7+JTucqHkfeqEv886u+13ygjuZk4w9B
	tIbHtXtLgOzbDFXULw+s0mL+o+UuQ43l+0eFQ9Wyv7nJV/OQjGR8+9/v59BLusQDqVys
	lJVwtoE3qMLgwqtvZIvjlIBx0V6dfsnOwSqEoxcRLM6klvclTrFUwxpG1zsHwnimOYZ6
	qwrB9itcVMCnNYJjr6SY4dai4vGKwf+dS55JUX93zKijg9Qs+3fU5VQS85pkj2nEJhst
	cNRf48XkI2AvJbnAkQ4xGAZAUqNGf+lZJ0ORfBiXhJtg09733QdEkXizxnQtinyu9IQx
	ekXQ==
X-Received: by 10.194.61.18 with SMTP id l18mr3469805wjr.42.1421169086282;
	Tue, 13 Jan 2015 09:11:26 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id w3sm26488719wjf.3.2015.01.13.09.11.25
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 13 Jan 2015 09:11:25 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 13 Jan 2015 17:11:09 +0000
Message-Id: <1421169069-8380-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
References: <1421169069-8380-1-git-send-email-paul.durrant@citrix.com>
X-Mailman-Approved-At: Tue, 13 Jan 2015 17:20:05 +0000
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Move interface subscription code into
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Interface subscription is better handled at package installation time and
therefore the co-installer is the right place for it to live.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/coinst/coinst.c | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/xeniface/fdo.c  |  95 +++------------------------
 2 files changed, 192 insertions(+), 87 deletions(-)

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
index cd3d1e0..dd1aad1 100644
--- a/src/coinst/coinst.c
+++ b/src/coinst/coinst.c
@@ -193,6 +193,176 @@ FunctionName(
 #undef  _NAME
 }
 
+static HKEY
+OpenInterfacesKey(
+    IN  PTCHAR  ProviderName
+    )
+{
+    HRESULT     Result;
+    TCHAR       KeyName[MAX_PATH];
+    HKEY        Key;
+    HRESULT     Error;
+
+    Result = StringCbPrintf(KeyName,
+                            MAX_PATH,
+                            "%s\\%s\\Interfaces",
+                            SERVICES_KEY,
+                            ProviderName);
+    if (!SUCCEEDED(Result)) {
+        SetLastError(ERROR_BUFFER_OVERFLOW);
+        goto fail1;
+    }
+
+    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                         KeyName,
+                         0,
+                         KEY_ALL_ACCESS,
+                         &Key);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    return Key;
+
+fail2:
+    Log("fail2");
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return NULL;
+}
+
+static BOOLEAN
+SubscribeInterface(
+    IN  PTCHAR  ProviderName,
+    IN  PTCHAR  SubscriberName,
+    IN  PTCHAR  InterfaceName,
+    IN  DWORD   InterfaceVersion
+    )
+{
+    HKEY        Key;
+    HKEY        InterfacesKey;
+    HRESULT     Error;
+
+    InterfacesKey = OpenInterfacesKey(ProviderName);
+    if (InterfacesKey == NULL)
+        goto fail1;
+
+    Error = RegCreateKeyEx(InterfacesKey,
+                           SubscriberName,
+                           0,
+                           NULL,
+                           REG_OPTION_NON_VOLATILE,
+                           KEY_ALL_ACCESS,
+                           NULL,
+                           &Key,
+                           NULL);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    Error = RegSetValueEx(Key,
+                          InterfaceName,
+                          0,
+                          REG_DWORD,
+                          (const BYTE *)&InterfaceVersion,
+                          sizeof(DWORD));
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail3;
+    }
+
+    Log("%s: %s_%s_INTERFACE_VERSION %u",
+        SubscriberName,
+        ProviderName,
+        InterfaceName,
+        InterfaceVersion);
+
+    RegCloseKey(Key);
+    RegCloseKey(InterfacesKey);
+
+    return TRUE;
+
+fail3:
+    RegCloseKey(Key);
+
+fail2:
+    RegCloseKey(InterfacesKey);
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return FALSE;
+}
+
+#define SUBSCRIBE_INTERFACE(_ProviderName, _SubscriberName, _InterfaceName)                        \
+    do {                                                                                           \
+        (VOID) SubscribeInterface(#_ProviderName,                                                  \
+                                  #_SubscriberName,                                                \
+                                  #_InterfaceName,                                                 \
+                                  _ProviderName ## _ ## _InterfaceName ## _INTERFACE_VERSION_MAX); \
+    } while (FALSE);
+
+static BOOLEAN
+UnsubscribeInterfaces(
+    IN  PTCHAR  ProviderName,
+    IN  PTCHAR  SubscriberName
+    )
+{
+    HKEY        InterfacesKey;
+    HRESULT     Error;
+
+    Log("%s: %s", SubscriberName, ProviderName);
+
+    InterfacesKey = OpenInterfacesKey(ProviderName);
+    if (InterfacesKey == NULL) {
+        goto fail1;
+    }
+
+    Error = RegDeleteTree(InterfacesKey,
+                          SubscriberName);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    RegCloseKey(InterfacesKey);
+
+    return TRUE;
+
+fail2:
+    RegCloseKey(InterfacesKey);
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return FALSE;
+}
+
 static HRESULT
 DifInstallPreProcess(
     IN  HDEVINFO                    DeviceInfoSet,
@@ -220,7 +390,13 @@ DifInstallPostProcess(
     UNREFERENCED_PARAMETER(DeviceInfoData);
     UNREFERENCED_PARAMETER(Context);
 
-    Log("<===>");
+    Log("====>");
+
+    SUBSCRIBE_INTERFACE(XENBUS, XENIFACE, SUSPEND);
+    SUBSCRIBE_INTERFACE(XENBUS, XENIFACE, SHARED_INFO);
+    SUBSCRIBE_INTERFACE(XENBUS, XENIFACE, STORE);
+
+    Log("<====");
 
     return NO_ERROR;
 }
@@ -292,7 +468,11 @@ DifRemovePreProcess(
     UNREFERENCED_PARAMETER(DeviceInfoData);
     UNREFERENCED_PARAMETER(Context);
 
-    Log("<===>");
+    Log("====>");
+
+    UnsubscribeInterfaces("XENBUS", "XENIFACE");
+
+    Log("<====");
 
     return NO_ERROR;
 }
diff --git a/src/xeniface/fdo.c b/src/xeniface/fdo.c
index 20fe167..321bfb3 100644
--- a/src/xeniface/fdo.c
+++ b/src/xeniface/fdo.c
@@ -2109,13 +2109,9 @@ FdoDispatch(
     return status;
 }
 
-#define SERVICES_KEY        L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Services"
-
-static FORCEINLINE NTSTATUS
-__FdoQueryInterface(
+static NTSTATUS
+FdoQueryInterface(
     IN  PXENIFACE_FDO   Fdo,
-    IN  const WCHAR     *ProviderName,
-    IN  const CHAR      *InterfaceName,
     IN  const GUID      *Guid,
     IN  ULONG           Version,
     OUT PINTERFACE      Interface,
@@ -2123,9 +2119,6 @@ __FdoQueryInterface(
     IN  BOOLEAN         Optional
     )
 {
-    UNICODE_STRING      Unicode;
-    HANDLE              InterfacesKey;
-    HANDLE              SubscriberKey;
     KEVENT              Event;
     IO_STATUS_BLOCK     StatusBlock;
     PIRP                Irp;
@@ -2134,38 +2127,6 @@ __FdoQueryInterface(
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
-    Unicode.MaximumLength = (USHORT)((wcslen(SERVICES_KEY) +
-                                      1 +
-                                      wcslen(ProviderName) +
-                                      1 +
-                                      wcslen(L"Interfaces") +
-                                      1) * sizeof (WCHAR));
-
-    Unicode.Buffer = __FdoAllocate(Unicode.MaximumLength);
-
-    status = STATUS_NO_MEMORY;
-    if (Unicode.Buffer == NULL)
-        goto fail1;
-
-    status = RtlStringCbPrintfW(Unicode.Buffer,
-                                Unicode.MaximumLength,
-                                SERVICES_KEY L"\\%ws\\Interfaces",
-                                ProviderName);
-    ASSERT(NT_SUCCESS(status));
-
-    Unicode.Length = (USHORT)(wcslen(Unicode.Buffer) * sizeof (WCHAR));
-
-    status = RegistryOpenKey(NULL, &Unicode, KEY_READ, &InterfacesKey);
-    if (!NT_SUCCESS(status))
-        goto fail2;
-
-    status = RegistryCreateSubKey(InterfacesKey, 
-                                  "XENIFACE", 
-                                  REG_OPTION_NON_VOLATILE, 
-                                  &SubscriberKey);
-    if (!NT_SUCCESS(status))
-        goto fail3;
-                   
     KeInitializeEvent(&Event, NotificationEvent, FALSE);
     RtlZeroMemory(&StatusBlock, sizeof(IO_STATUS_BLOCK));
 
@@ -2179,7 +2140,7 @@ __FdoQueryInterface(
 
     status = STATUS_UNSUCCESSFUL;
     if (Irp == NULL)
-        goto fail4;
+        goto fail1;
 
     StackLocation = IoGetNextIrpStackLocation(Irp);
     StackLocation->MinorFunction = IRP_MN_QUERY_INTERFACE;
@@ -2205,45 +2166,15 @@ __FdoQueryInterface(
         if (status == STATUS_NOT_SUPPORTED && Optional)
             goto done;
 
-        goto fail5;
+        goto fail2;
     }
 
-    status = RegistryUpdateDwordValue(SubscriberKey,
-                                      (PCHAR)InterfaceName,
-                                      Version);
-    if (!NT_SUCCESS(status))
-        goto fail6;
-
 done:
-    RegistryCloseKey(SubscriberKey);
-
-    RegistryCloseKey(InterfacesKey);
-
-    __FdoFree(Unicode.Buffer);
-
     return STATUS_SUCCESS;
 
-fail6:
-    Error("fail6\n");
-
-fail5:
-    Error("fail5\n");
-
-fail4:
-    Error("fail4\n");
-
-    RegistryCloseKey(SubscriberKey);
-
-fail3:
-    Error("fail3\n");
-
-    RegistryCloseKey(InterfacesKey);
-
 fail2:
     Error("fail2\n");
 
-    __FdoFree(Unicode.Buffer);
-
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -2254,18 +2185,15 @@ fail1:
     _Fdo,                                                                               \
     _ProviderName,                                                                      \
     _InterfaceName,                                                                     \
-    _Version,                                                                           \
     _Interface,                                                                         \
     _Size,                                                                              \
     _Optional)                                                                          \
-    __FdoQueryInterface((_Fdo),                                                         \
-                        L ## #_ProviderName,                                            \
-                        #_InterfaceName,                                                \
-                        &GUID_ ## _ProviderName ## _ ## _InterfaceName ## _INTERFACE,   \
-                        (_Version),                                                     \
-                        (_Interface),                                                   \
-                        (_Size),                                                        \
-                        (_Optional))
+    FdoQueryInterface((_Fdo),                                                           \
+                      &GUID_ ## _ProviderName ## _ ## _InterfaceName ## _INTERFACE,     \
+                      _ProviderName ## _ ## _InterfaceName ## _INTERFACE_VERSION_MAX,   \
+                      (_Interface),                                                     \
+                      (_Size),                                                          \
+                      (_Optional))
 
 NTSTATUS
 FdoCreate(
@@ -2344,7 +2272,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  SUSPEND,
-                                 XENBUS_SUSPEND_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->SuspendInterface,
                                  sizeof (Fdo->SuspendInterface),
                                  FALSE);
@@ -2354,7 +2281,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  SHARED_INFO,
-                                 XENBUS_SHARED_INFO_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->SharedInfoInterface,
                                  sizeof (Fdo->SharedInfoInterface),
                                  FALSE);
@@ -2364,7 +2290,6 @@ FdoCreate(
     status = FDO_QUERY_INTERFACE(Fdo,
                                  XENBUS,
                                  STORE,
-                                 XENBUS_STORE_INTERFACE_VERSION_MAX,
                                  (PINTERFACE)&Fdo->StoreInterface,
                                  sizeof (Fdo->StoreInterface),
                                  FALSE);
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 17:54:33 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 17:54:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YB5fl-00053B-Fq; Tue, 13 Jan 2015 17:54:33 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YB5fk-000536-56
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 17:54:32 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	B9/8F-20609-7DB55B45; Tue, 13 Jan 2015 17:54:31 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1421171669!20365425!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14892 invoked from network); 13 Jan 2015 17:54:30 -0000
Received: from mail-wg0-f42.google.com (HELO mail-wg0-f42.google.com)
	(74.125.82.42)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 17:54:30 -0000
Received: by mail-wg0-f42.google.com with SMTP id k14so4458814wgh.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 13 Jan 2015 09:54:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:mime-version:content-type
	:content-transfer-encoding;
	bh=/QyEXexsvE3IjoZCIBfbojkqdM7eNhNb64bsbGQIq3Q=;
	b=jOdnrkqX/MOYZX9uU2EpkH+CV1mT75wKpbWUpa/aMG7pWH3YA5LTQu5WVbfrcPaT2C
	8p4OBvhgSu109fupmTfQczWg+RQUadsi2OGgLNwPI+4+Wi8OYwcB8J7UVkIICL90HODU
	dd9fM6V8C4txdd7IHBTqTJqCBYnAYa7SQhHWH+X0AUz8Bt4HkRbWTT8HKYrh2xic6u7+
	Np6fh8QAnWAdfI4XsIaQ65ycL3/G5UDFaU7uTGL1EKiXenZpkrmjg3e2GwLujSpwWj49
	Mt6GKOyR1bT7xC/S5EPVgPV1sSsGTFLaxHBqZL8Z4meQWBxQmHMfyOWJiz5lCUksmSWi
	Ggyw==
X-Received: by 10.194.24.195 with SMTP id w3mr43238822wjf.135.1421171669674;
	Tue, 13 Jan 2015 09:54:29 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	la10sm26610595wjc.36.2015.01.13.09.54.28
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 13 Jan 2015 09:54:28 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 13 Jan 2015 17:54:18 +0000
Message-Id: <1421171658-6420-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
Content-Length: 24689
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Move interface subscription code into
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

SW50ZXJmYWNlIHN1YnNjcmlwdGlvbiBpcyBiZXR0ZXIgaGFuZGxlZCBhdCBwYWNrYWdlIGluc3Rh
bGxhdGlvbiB0aW1lIGFuZAp0aGVyZWZvcmUgdGhlIGNvLWluc3RhbGxlciBpcyB0aGUgcmlnaHQg
cGxhY2UgZm9yIGl0IHRvIGxpdmUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu
ZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9jb2luc3QvY29pbnN0LmMgICAgICAgICAgICAg
ICAgIHwgMTkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3hlbnZi
ZC9mZG8uYyAgICAgICAgICAgICAgICAgICAgfCAxNDUgKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiB2czIwMTIvY29pbnN0L3hlbnZiZF9jb2luc3QudmN4cHJvaiB8ICAgMiArLQogdnMyMDEz
L2NvaW5zdC94ZW52YmRfY29pbnN0LnZjeHByb2ogfCAgIDQgKy0KIDQgZmlsZXMgY2hhbmdlZCwg
MjI0IGluc2VydGlvbnMoKyksIDExNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvY29p
bnN0L2NvaW5zdC5jIGIvc3JjL2NvaW5zdC9jb2luc3QuYwppbmRleCBiYjAwNDY4Li43MjMzYjli
IDEwMDY0NAotLS0gYS9zcmMvY29pbnN0L2NvaW5zdC5jCisrKyBiL3NyYy9jb2luc3QvY29pbnN0
LmMKQEAgLTM1LDYgKzM1LDEzIEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3Ry
c2FmZS5oPgogCisjaW5jbHVkZSA8ZGVidWdfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8c3VzcGVu
ZF9pbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxldnRjaG5faW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8
c3RvcmVfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8Z250dGFiX2ludGVyZmFjZS5oPgorI2luY2x1
ZGUgPGVtdWxhdGVkX2ludGVyZmFjZS5oPgorCiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogCiBfX3Vz
ZXJfY29kZTsKQEAgLTY0Niw2ICs2NTMsMTc2IEBAIGZhaWwxOgogICAgIHJldHVybiBGQUxTRTsK
IH0KIAorc3RhdGljIEhLRVkKK09wZW5JbnRlcmZhY2VzS2V5KAorICAgIElOICBQVENIQVIgIFBy
b3ZpZGVyTmFtZQorICAgICkKK3sKKyAgICBIUkVTVUxUICAgICBSZXN1bHQ7CisgICAgVENIQVIg
ICAgICAgS2V5TmFtZVtNQVhfUEFUSF07CisgICAgSEtFWSAgICAgICAgS2V5OworICAgIEhSRVNV
TFQgICAgIEVycm9yOworCisgICAgUmVzdWx0ID0gU3RyaW5nQ2JQcmludGYoS2V5TmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNQVhfUEFUSCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiJXNcXCVzXFxJbnRlcmZhY2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTRVJWSUNFU19LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdmlkZXJOYW1l
KTsKKyAgICBpZiAoIVNVQ0NFRURFRChSZXN1bHQpKSB7CisgICAgICAgIFNldExhc3RFcnJvcihF
UlJPUl9CVUZGRVJfT1ZFUkZMT1cpOworICAgICAgICBnb3RvIGZhaWwxOworICAgIH0KKworICAg
IEVycm9yID0gUmVnT3BlbktleUV4KEhLRVlfTE9DQUxfTUFDSElORSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBLZXlOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgS0VZX0FMTF9BQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgJktleSk7CisgICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKKyAgICAgICAgU2V0
TGFzdEVycm9yKEVycm9yKTsKKyAgICAgICAgZ290byBmYWlsMjsKKyAgICB9CisKKyAgICByZXR1
cm4gS2V5OworCitmYWlsMjoKKyAgICBMb2coImZhaWwyIik7CisKK2ZhaWwxOgorICAgIEVycm9y
ID0gR2V0TGFzdEVycm9yKCk7CisKKyAgICB7CisgICAgICAgIFBUQ0hBUiAgTWVzc2FnZTsKKyAg
ICAgICAgTWVzc2FnZSA9IF9fR2V0RXJyb3JNZXNzYWdlKEVycm9yKTsKKyAgICAgICAgTG9nKCJm
YWlsMSAoJXMpIiwgTWVzc2FnZSk7CisgICAgICAgIExvY2FsRnJlZShNZXNzYWdlKTsKKyAgICB9
CisKKyAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIEJPT0xFQU4KK1N1YnNjcmliZUludGVy
ZmFjZSgKKyAgICBJTiAgUFRDSEFSICBQcm92aWRlck5hbWUsCisgICAgSU4gIFBUQ0hBUiAgU3Vi
c2NyaWJlck5hbWUsCisgICAgSU4gIFBUQ0hBUiAgSW50ZXJmYWNlTmFtZSwKKyAgICBJTiAgRFdP
UkQgICBJbnRlcmZhY2VWZXJzaW9uCisgICAgKQoreworICAgIEhLRVkgICAgICAgIEtleTsKKyAg
ICBIS0VZICAgICAgICBJbnRlcmZhY2VzS2V5OworICAgIEhSRVNVTFQgICAgIEVycm9yOworCisg
ICAgSW50ZXJmYWNlc0tleSA9IE9wZW5JbnRlcmZhY2VzS2V5KFByb3ZpZGVyTmFtZSk7CisgICAg
aWYgKEludGVyZmFjZXNLZXkgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIEVy
cm9yID0gUmVnQ3JlYXRlS2V5RXgoSW50ZXJmYWNlc0tleSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFN1YnNjcmliZXJOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSRUdfT1BUSU9OX05PTl9WT0xBVElMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEtF
WV9BTExfQUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM
KTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgeworICAgICAgICBTZXRMYXN0RXJy
b3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwyOworICAgIH0KKworICAgIEVycm9yID0gUmVn
U2V0VmFsdWVFeChLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZU5hbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IFJFR19EV09SRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IEJZVEUgKikmSW50
ZXJmYWNlVmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKERXT1JEKSk7
CisgICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKKyAgICAgICAgU2V0TGFzdEVycm9y
KEVycm9yKTsKKyAgICAgICAgZ290byBmYWlsMzsKKyAgICB9CisKKyAgICBMb2coIiVzOiAlc18l
c19JTlRFUkZBQ0VfVkVSU0lPTiAldSIsCisgICAgICAgIFN1YnNjcmliZXJOYW1lLAorICAgICAg
ICBQcm92aWRlck5hbWUsCisgICAgICAgIEludGVyZmFjZU5hbWUsCisgICAgICAgIEludGVyZmFj
ZVZlcnNpb24pOworCisgICAgUmVnQ2xvc2VLZXkoS2V5KTsKKyAgICBSZWdDbG9zZUtleShJbnRl
cmZhY2VzS2V5KTsKKworICAgIHJldHVybiBUUlVFOworCitmYWlsMzoKKyAgICBSZWdDbG9zZUtl
eShLZXkpOworCitmYWlsMjoKKyAgICBSZWdDbG9zZUtleShJbnRlcmZhY2VzS2V5KTsKKworZmFp
bDE6CisgICAgRXJyb3IgPSBHZXRMYXN0RXJyb3IoKTsKKworICAgIHsKKyAgICAgICAgUFRDSEFS
ICBNZXNzYWdlOworICAgICAgICBNZXNzYWdlID0gX19HZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwor
ICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1l
c3NhZ2UpOworICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKworI2RlZmluZSBTVUJTQ1JJ
QkVfSU5URVJGQUNFKF9Qcm92aWRlck5hbWUsIF9TdWJzY3JpYmVyTmFtZSwgX0ludGVyZmFjZU5h
bWUpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAoVk9JRCkgU3Vic2NyaWJlSW50ZXJmYWNlKCNfUHJv
dmlkZXJOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfU3Vic2NyaWJlck5hbWUs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfSW50ZXJmYWNlTmFtZSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9Qcm92aWRlck5hbWUgIyMgXyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBf
SU5URVJGQUNFX1ZFUlNJT05fTUFYKTsgXAorICAgIH0gd2hpbGUgKEZBTFNFKTsKKworc3RhdGlj
IEJPT0xFQU4KK1Vuc3Vic2NyaWJlSW50ZXJmYWNlcygKKyAgICBJTiAgUFRDSEFSICBQcm92aWRl
ck5hbWUsCisgICAgSU4gIFBUQ0hBUiAgU3Vic2NyaWJlck5hbWUKKyAgICApCit7CisgICAgSEtF
WSAgICAgICAgSW50ZXJmYWNlc0tleTsKKyAgICBIUkVTVUxUICAgICBFcnJvcjsKKworICAgIExv
ZygiJXM6ICVzIiwgU3Vic2NyaWJlck5hbWUsIFByb3ZpZGVyTmFtZSk7CisKKyAgICBJbnRlcmZh
Y2VzS2V5ID0gT3BlbkludGVyZmFjZXNLZXkoUHJvdmlkZXJOYW1lKTsKKyAgICBpZiAoSW50ZXJm
YWNlc0tleSA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDE7CisgICAgfQorCisgICAgRXJy
b3IgPSBSZWdEZWxldGVUcmVlKEludGVyZmFjZXNLZXksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIFN1YnNjcmliZXJOYW1lKTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgewor
ICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwyOworICAgIH0K
KworICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCisgICAgcmV0dXJuIFRSVUU7CisK
K2ZhaWwyOgorICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCitmYWlsMToKKyAgICBF
cnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1lc3NhZ2U7
CisgICAgICAgIE1lc3NhZ2UgPSBfX0dldEVycm9yTWVzc2FnZShFcnJvcik7CisgICAgICAgIExv
ZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOworICAgICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7Cisg
ICAgfQorCisgICAgcmV0dXJuIEZBTFNFOworfQorCiBzdGF0aWMgRk9SQ0VJTkxJTkUgSFJFU1VM
VAogX19EaWZJbnN0YWxsUHJlUHJvY2VzcygKICAgICBJTiAgSERFVklORk8gICAgICAgICAgICAg
ICAgICAgIERldmljZUluZm9TZXQsCkBAIC02NzUsOSArODUyLDE5IEBAIF9fRGlmSW5zdGFsbFBv
c3RQcm9jZXNzKAogCiAgICAgTG9nKCI9PT09PiIpOwogCisgICAgU1VCU0NSSUJFX0lOVEVSRkFD
RShYRU5CVVMsIFhFTlZCRCwgU1RPUkUpOworICAgIFNVQlNDUklCRV9JTlRFUkZBQ0UoWEVOQlVT
LCBYRU5WQkQsIEVWVENITik7CisgICAgU1VCU0NSSUJFX0lOVEVSRkFDRShYRU5CVVMsIFhFTlZC
RCwgR05UVEFCKTsKKyAgICBTVUJTQ1JJQkVfSU5URVJGQUNFKFhFTkJVUywgWEVOVkJELCBTVVNQ
RU5EKTsKKyAgICBTVUJTQ1JJQkVfSU5URVJGQUNFKFhFTkJVUywgWEVOVkJELCBERUJVRyk7CisK
KyAgICBTVUJTQ1JJQkVfSU5URVJGQUNFKFhFTkZJTFQsIFhFTlZCRCwgRU1VTEFURUQpOworCiAg
ICAgKFZPSUQpIE92ZXJyaWRlR3JvdXBQb2xpY3lPcHRpb25zKCk7CiAgICAgKFZPSUQpIEluY3Jl
YXNlRGlza1RpbWVPdXQoKTsKKwogICAgIChWT0lEKSBJbnN0YWxsVW5wbHVnU2VydmljZSgiRElT
S1MiLCAiWEVOVkJEIik7CisKICAgICAoVk9JRCkgUmVxdWVzdFJlYm9vdChEZXZpY2VJbmZvU2V0
LCBEZXZpY2VJbmZvRGF0YSk7CiAKICAgICBMb2coIjw9PT09Iik7CkBAIC03NTYsNiArOTQzLDkg
QEAgX19EaWZSZW1vdmVQcmVQcm9jZXNzKAogCiAgICAgKFZPSUQpIFJlbW92ZVVucGx1Z1NlcnZp
Y2UoIkRJU0tTIiwgIlhFTlZCRCIpOwogCisgICAgVW5zdWJzY3JpYmVJbnRlcmZhY2VzKCJYRU5G
SUxUIiwgIlhFTlZCRCIpOworICAgIFVuc3Vic2NyaWJlSW50ZXJmYWNlcygiWEVOQlVTIiwgIlhF
TlZCRCIpOworCiAgICAgcmV0dXJuIE5PX0VSUk9SOyAKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3hl
bnZiZC9mZG8uYyBiL3NyYy94ZW52YmQvZmRvLmMKaW5kZXggMmVlOTFiOC4uNjhiZjk1YyAxMDA2
NDQKLS0tIGEvc3JjL3hlbnZiZC9mZG8uYworKysgYi9zcmMveGVudmJkL2Zkby5jCkBAIC0yNjEs
NzMgKzI2MSwyOSBAQCBGZG9VbmxpbmtQZG8oCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBR
dWVyeUludGVyZmFjZQogCi0jZGVmaW5lIFNFUlZJQ0VTX0tFWSAgICAgICAgTCJcXFJlZ2lzdHJ5
XFxNYWNoaW5lXFxTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0XFxTZXJ2aWNlcyIKLQotX19jaGVj
a1JldHVybgotX19kcnZfbWF4SVJRTChQQVNTSVZFX0xFVkVMKQotc3RhdGljIEZPUkNFSU5MSU5F
IE5UU1RBVFVTCi1fX1F1ZXJ5SW50ZXJmYWNlKAotICAgIF9faW4gICAgUERFVklDRV9PQkpFQ1Qg
IERldmljZU9iamVjdCwKLSAgICBfX2luICAgIGNvbnN0IFdDSEFSICAgICAqUHJvdmlkZXJOYW1l
LAotICAgIF9faW4gICAgY29uc3QgQ0hBUiAgICAgICpJbnRlcmZhY2VOYW1lLAotICAgIF9faW4g
ICAgY29uc3QgR1VJRCAgICAgICpHdWlkLAotICAgIF9faW4gICAgVUxPTkcgICAgICAgICAgIFZl
cnNpb24sCi0gICAgX19pbm91dCBQSU5URVJGQUNFICAgICAgSW50ZXJmYWNlLAotICAgIF9faW4g
ICAgVUxPTkcgICAgICAgICAgIFNpemUsCi0gICAgX19pbiAgICBCT09MRUFOICAgICAgICAgT3B0
aW9uYWwKK3N0YXRpYyBOVFNUQVRVUworRmRvUXVlcnlJbnRlcmZhY2UoCisgICAgSU4gIFBYRU5W
QkRfRkRPICAgICBGZG8sCisgICAgSU4gIGNvbnN0IEdVSUQgICAgICAqR3VpZCwKKyAgICBJTiAg
VUxPTkcgICAgICAgICAgIFZlcnNpb24sCisgICAgT1VUIFBJTlRFUkZBQ0UgICAgICBJbnRlcmZh
Y2UsCisgICAgSU4gIFVMT05HICAgICAgICAgICBTaXplLAorICAgIElOICBCT09MRUFOICAgICAg
ICAgT3B0aW9uYWwKICAgICApCiB7Ci0gICAgVU5JQ09ERV9TVFJJTkcgICAgICAgICAgVW5pY29k
ZTsKLSAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBJbnRlcmZhY2VzS2V5OwotICAgIEhBTkRM
RSAgICAgICAgICAgICAgICAgIFN1YnNjcmliZXJLZXk7Ci0gICAgS0VWRU5UICAgICAgICAgICAg
ICAgICAgRXZlbnQ7Ci0gICAgSU9fU1RBVFVTX0JMT0NLICAgICAgICAgU3RhdHVzQmxvY2s7Ci0g
ICAgUElSUCAgICAgICAgICAgICAgICAgICAgSXJwOwotICAgIFBJT19TVEFDS19MT0NBVElPTiAg
ICAgIFN0YWNrTG9jYXRpb247Ci0gICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOwor
ICAgIEtFVkVOVCAgICAgICAgICAgICAgRXZlbnQ7CisgICAgSU9fU1RBVFVTX0JMT0NLICAgICBT
dGF0dXNCbG9jazsKKyAgICBQSVJQICAgICAgICAgICAgICAgIElycDsKKyAgICBQSU9fU1RBQ0tf
TE9DQVRJT04gIFN0YWNrTG9jYXRpb247CisgICAgTlRTVEFUVVMgICAgICAgICAgICBzdGF0dXM7
CiAKICAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVMKTsK
IAotICAgIFVuaWNvZGUuTWF4aW11bUxlbmd0aCA9IChVU0hPUlQpKCh3Y3NsZW4oU0VSVklDRVNf
S0VZKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y3NsZW4oUHJvdmlkZXJOYW1lKSArCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3Y3NsZW4oTCJJbnRlcmZhY2VzIikgKwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKSAqIHNpemVvZiAoV0NIQVIpKTsKLQotICAg
IFVuaWNvZGUuQnVmZmVyID0gX19BbGxvY2F0ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElP
Tl9fLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
X19MSU5FX18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVbmljb2RlLk1heGltdW1MZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGRE9fU0lHTkFUVVJFKTsKLQotICAgIHN0YXR1cyA9IFNU
QVRVU19OT19NRU1PUlk7Ci0gICAgaWYgKFVuaWNvZGUuQnVmZmVyID09IE5VTEwpCi0gICAgICAg
IGdvdG8gZmFpbDE7Ci0KLSAgICBzdGF0dXMgPSBSdGxTdHJpbmdDYlByaW50ZlcoVW5pY29kZS5C
dWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGUuTWF4aW11bUxl
bmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRVNfS0VZIEwiXFwl
d3NcXEludGVyZmFjZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm92aWRl
ck5hbWUpOwotICAgIEFTU0VSVChOVF9TVUNDRVNTKHN0YXR1cykpOwotCi0gICAgVW5pY29kZS5M
ZW5ndGggPSAoVVNIT1JUKSh3Y3NsZW4oVW5pY29kZS5CdWZmZXIpICogc2l6ZW9mIChXQ0hBUikp
OwotCi0gICAgc3RhdHVzID0gUmVnaXN0cnlPcGVuS2V5KE5VTEwsICZVbmljb2RlLCBLRVlfUkVB
RCwgJkludGVyZmFjZXNLZXkpOwotICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAg
ICBnb3RvIGZhaWwyOwotCi0gICAgc3RhdHVzID0gUmVnaXN0cnlDcmVhdGVTdWJLZXkoSW50ZXJm
YWNlc0tleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlhFTlZCRCIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX09QVElPTl9OT05fVk9MQVRJTEUs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTdWJzY3JpYmVyS2V5KTsKLSAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMzsKLSAgICAgICAg
ICAgICAgICAgICAKICAgICBLZUluaXRpYWxpemVFdmVudCgmRXZlbnQsIE5vdGlmaWNhdGlvbkV2
ZW50LCBGQUxTRSk7CiAgICAgUnRsWmVyb01lbW9yeSgmU3RhdHVzQmxvY2ssIHNpemVvZihJT19T
VEFUVVNfQkxPQ0spKTsKIAogICAgIElycCA9IElvQnVpbGRTeW5jaHJvbm91c0ZzZFJlcXVlc3Qo
SVJQX01KX1BOUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmlj
ZU9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZkby0+TG93
ZXJEZXZpY2VPYmplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCkBAIC0zMzYsNyArMjkyLDcgQEAg
X19RdWVyeUludGVyZmFjZSgKIAogICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CiAg
ICAgaWYgKElycCA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWw0OworICAgICAgICBnb3RvIGZh
aWwxOwogCiAgICAgU3RhY2tMb2NhdGlvbiA9IElvR2V0TmV4dElycFN0YWNrTG9jYXRpb24oSXJw
KTsKICAgICBTdGFja0xvY2F0aW9uLT5NaW5vckZ1bmN0aW9uID0gSVJQX01OX1FVRVJZX0lOVEVS
RkFDRTsKQEAgLTM0OCw3ICszMDQsNyBAQCBfX1F1ZXJ5SW50ZXJmYWNlKAogICAgIAogICAgIEly
cC0+SW9TdGF0dXMuU3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7CiAKLSAgICBzdGF0dXMg
PSBJb0NhbGxEcml2ZXIoRGV2aWNlT2JqZWN0LCBJcnApOworICAgIHN0YXR1cyA9IElvQ2FsbERy
aXZlcihGZG8tPkxvd2VyRGV2aWNlT2JqZWN0LCBJcnApOwogICAgIGlmIChzdGF0dXMgPT0gU1RB
VFVTX1BFTkRJTkcpIHsKICAgICAgICAgKFZPSUQpIEtlV2FpdEZvclNpbmdsZU9iamVjdCgmRXZl
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhlY3V0aXZlLApAQCAt
MzYyLDY3ICszMTgsMzQgQEAgX19RdWVyeUludGVyZmFjZSgKICAgICAgICAgaWYgKHN0YXR1cyA9
PSBTVEFUVVNfTk9UX1NVUFBPUlRFRCAmJiBPcHRpb25hbCkKICAgICAgICAgICAgIGdvdG8gZG9u
ZTsKIAotICAgICAgICBnb3RvIGZhaWw1OworICAgICAgICBnb3RvIGZhaWwyOwogICAgIH0KIAot
ICAgIHN0YXR1cyA9IFJlZ2lzdHJ5VXBkYXRlRHdvcmRWYWx1ZShTdWJzY3JpYmVyS2V5LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUENIQVIpSW50ZXJmYWNlTmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbik7Ci0gICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDY7Ci0KIGRvbmU6Ci0gICAg
UmVnaXN0cnlDbG9zZUtleShTdWJzY3JpYmVyS2V5KTsKLQotICAgIFJlZ2lzdHJ5Q2xvc2VLZXko
SW50ZXJmYWNlc0tleSk7Ci0KLSAgICBfX0ZyZWVQb29sV2l0aFRhZyhVbmljb2RlLkJ1ZmZlciwg
RkRPX1NJR05BVFVSRSk7Ci0KICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWw2Ogot
ICAgIEVycm9yKCJmYWlsNlxuIik7Ci0KLWZhaWw1OgotICAgIEVycm9yKCJmYWlsNVxuIik7Ci0K
LWZhaWw0OgotICAgIEVycm9yKCJmYWlsNFxuIik7Ci0KLSAgICBSZWdpc3RyeUNsb3NlS2V5KFN1
YnNjcmliZXJLZXkpOwotCi1mYWlsMzoKLSAgICBFcnJvcigiZmFpbDNcbiIpOwotCi0gICAgUmVn
aXN0cnlDbG9zZUtleShJbnRlcmZhY2VzS2V5KTsKLQogZmFpbDI6CiAgICAgRXJyb3IoImZhaWwy
XG4iKTsKIAotICAgIF9fRnJlZVBvb2xXaXRoVGFnKFVuaWNvZGUuQnVmZmVyLCBGRE9fU0lHTkFU
VVJFKTsKLQogZmFpbDE6CiAgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKIAog
ICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLSNkZWZpbmUgUVVFUllfSU5URVJGQUNFKCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgX0RldmljZU9iamVjdCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBRVUVSWV9JTlRFUkZB
Q0UoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIF9GZG8sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfUHJvdmlkZXJO
YW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCiAgICAgX0ludGVyZmFjZU5hbWUsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IF9WZXJzaW9uLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfSW50ZXJmYWNlLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgX1NpemUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIF9PcHRpb25hbCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBfX1F1ZXJ5SW50ZXJmYWNlKChfRGV2aWNlT2JqZWN0KSwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgICAgICAgICAgICAgICBMICMjICNfUHJvdmlkZXJOYW1lLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgI19JbnRl
cmZhY2VOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICZHVUlEXyAjIyBfUHJvdmlkZXJOYW1lICMjIF8g
IyMgX0ludGVyZmFjZU5hbWUgIyMgX0lOVEVSRkFDRSwgICAgICBcCi0gICAgICAgICAgICAgICAg
ICAgICAoX1ZlcnNpb24pLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgKF9JbnRlcmZhY2UpLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg
ICAgICAgICAgICAgICAgIChfU2l6ZSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAoX09wdGlv
bmFsKSkKKyAgICBGZG9RdWVyeUludGVyZmFjZSgoX0ZkbyksICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg
ICAgICAgJkdVSURfICMjIF9Qcm92aWRlck5hbWUgIyMgXyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBf
SU5URVJGQUNFLCAgICAgXAorICAgICAgICAgICAgICAgICAgICAgIF9Qcm92aWRlck5hbWUgIyMg
XyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBfSU5URVJGQUNFX1ZFUlNJT05fTUFYLCAgIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAoX0ludGVyZmFjZSksICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgKF9TaXpl
KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgICAgICAgICAgIChfT3B0aW9uYWwpKQogCiAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CiAvLyBEZWJ1ZwpAQCAtOTIxLDEwICs4NDQsOSBAQCBfX0Zkb1F1ZXJ5SW50ZXJm
YWNlcygKICAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVM
KTsKIAogICAgIC8vIEdldCBTVE9SRSBJbnRlcmZhY2UKLSAgICBTdGF0dXMgPSBRVUVSWV9JTlRF
UkZBQ0UoRmRvLT5Mb3dlckRldmljZU9iamVjdCwKKyAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZB
Q0UoRmRvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5CVVMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNUT1JFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBY
RU5CVVNfU1RPUkVfSU5URVJGQUNFX1ZFUlNJT05fTUFYLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoUElOVEVSRkFDRSkmRmRvLT5TdG9yZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZW9mIChGZG8tPlN0b3JlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RkFMU0UpOwpAQCAtOTMyLDEwICs4NTQsOSBAQCBfX0Zkb1F1ZXJ5SW50ZXJmYWNlcygKICAgICAg
ICAgZ290byBmYWlsMTsKIAogICAgIC8vIEdldCBFVlRDSE4gSW50ZXJmYWNlCi0gICAgU3RhdHVz
ID0gUVVFUllfSU5URVJGQUNFKEZkby0+TG93ZXJEZXZpY2VPYmplY3QsCisgICAgU3RhdHVzID0g
UVVFUllfSU5URVJGQUNFKEZkbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVT
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlRDSE4sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFhFTkJVU19FVlRDSE5fSU5URVJGQUNFX1ZFUlNJT05fTUFYLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoUElOVEVSRkFDRSkmRmRvLT5FdnRjaG4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoRmRvLT5FdnRjaG4pLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGQUxTRSk7CkBAIC05NDMsMTAgKzg2NCw5IEBAIF9fRmRvUXVlcnlJ
bnRlcmZhY2VzKAogICAgICAgICBnb3RvIGZhaWwyOwogCiAgICAgLy8gR2V0IEdOVFRBQiBJbnRl
cmZhY2UKLSAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZBQ0UoRmRvLT5Mb3dlckRldmljZU9iamVj
dCwKKyAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZBQ0UoRmRvLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBYRU5CVVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdOVFRBQiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfVkVS
U0lPTl9NQVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQSU5URVJGQUNFKSZGZG8t
PkdudHRhYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChGZG8tPkdudHRh
YiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFKTsKQEAgLTk1NCwxMCArODc0
LDkgQEAgX19GZG9RdWVyeUludGVyZmFjZXMoCiAgICAgICAgIGdvdG8gZmFpbDM7CiAKICAgICAv
LyBHZXQgU1VTUEVORCBJbnRlcmZhY2UKLSAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZBQ0UoRmRv
LT5Mb3dlckRldmljZU9iamVjdCwKKyAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZBQ0UoRmRvLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5CVVMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNVU1BFTkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkJVU19T
VVNQRU5EX0lOVEVSRkFDRV9WRVJTSU9OX01BWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFBJTlRFUkZBQ0UpJkZkby0+U3VzcGVuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZW9mIChGZG8tPlN1c3BlbmQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG
QUxTRSk7CkBAIC05NjUsMTAgKzg4NCw5IEBAIF9fRmRvUXVlcnlJbnRlcmZhY2VzKAogICAgICAg
ICBnb3RvIGZhaWw0OwogCiAgICAgLy8gR2V0IERFQlVHIEludGVyZmFjZQotICAgIFN0YXR1cyA9
IFFVRVJZX0lOVEVSRkFDRShGZG8tPkxvd2VyRGV2aWNlT2JqZWN0LAorICAgIFN0YXR1cyA9IFFV
RVJZX0lOVEVSRkFDRShGZG8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkJVUywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVCVUcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFhFTkJVU19ERUJVR19JTlRFUkZBQ0VfVkVSU0lPTl9NQVgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChQSU5URVJGQUNFKSZGZG8tPkRlYnVnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplb2YgKEZkby0+RGVidWcpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGQUxTRSk7CkBAIC05NzYsMTAgKzg5NCw5IEBAIF9fRmRvUXVlcnlJbnRlcmZh
Y2VzKAogICAgICAgICBnb3RvIGZhaWw1OwogCiAgICAgLy8gR2V0IEVNVUxBVEVEIEludGVyZmFj
ZSAob3B0aW9uYWwpCi0gICAgU3RhdHVzID0gUVVFUllfSU5URVJGQUNFKEZkby0+TG93ZXJEZXZp
Y2VPYmplY3QsCisgICAgU3RhdHVzID0gUVVFUllfSU5URVJGQUNFKEZkbywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWEVORklMVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RU1VTEFURUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkZJTFRfRU1VTEFURURf
SU5URVJGQUNFX1ZFUlNJT05fTUFYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUElO
VEVSRkFDRSkmRmRvLT5FbXVsYXRlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZW9mIChGZG8tPkVtdWxhdGVkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSk7
CmRpZmYgLS1naXQgYS92czIwMTIvY29pbnN0L3hlbnZiZF9jb2luc3QudmN4cHJvaiBiL3ZzMjAx
Mi9jb2luc3QveGVudmJkX2NvaW5zdC52Y3hwcm9qCmluZGV4IDg2NWJhZjQuLmY4M2VkZmMgMTAw
NjQ0Ci0tLSBhL3ZzMjAxMi9jb2luc3QveGVudmJkX2NvaW5zdC52Y3hwcm9qCisrKyBiL3ZzMjAx
Mi9jb2luc3QveGVudmJkX2NvaW5zdC52Y3hwcm9qCkBAIC0zNiw3ICszNiw3IEBACiAJCTxDbENv
bXBpbGU+CiAJCQk8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOVkJEX0NP
SU5TVCI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgogCQkJPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwvV2FybmluZ0xldmVsPgotCQkJ
PERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ1NDg7NDcxMTs0ODIwOzQ2Njg7NDI1NTs2MDAxOzYw
NTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rpc2FibGVTcGVjaWZpY1dhcm5p
bmdzPgorCQkJPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQxMjc7NDU0ODs0NzExOzQ4MjA7NDY2
ODs0MjU1OzYwMDE7NjA1NDsyODE5NjslKERpc2FibGVTcGVjaWZpY1dhcm5pbmdzKTwvRGlzYWJs
ZVNwZWNpZmljV2FybmluZ3M+CiAJCQk8TXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj50cnVlPC9N
dWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPgogCQkJPEVuYWJsZVBSRWZhc3Q+dHJ1ZTwvRW5hYmxl
UFJFZmFzdD4KIAkJCTxSdW50aW1lTGlicmFyeSBDb25kaXRpb249IickKFVzZURlYnVnTGlicmFy
aWVzKSc9PSd0cnVlJyI+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KZGlmZiAt
LWdpdCBhL3ZzMjAxMy9jb2luc3QveGVudmJkX2NvaW5zdC52Y3hwcm9qIGIvdnMyMDEzL2NvaW5z
dC94ZW52YmRfY29pbnN0LnZjeHByb2oKaW5kZXggODE3ZjRlZS4uN2NiYWJiYiAxMDA2NDQKLS0t
IGEvdnMyMDEzL2NvaW5zdC94ZW52YmRfY29pbnN0LnZjeHByb2oKKysrIGIvdnMyMDEzL2NvaW5z
dC94ZW52YmRfY29pbnN0LnZjeHByb2oKQEAgLTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KIDxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0
LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxk
LzIwMDMiPgogICA8SW1wb3J0IFByb2plY3Q9Ii4uXGNvbmZpZ3MucHJvcHMiIC8+CiAgIDxQcm9w
ZXJ0eUdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CkBAIC02NSw3ICs2NSw3IEBACiAgICAg
PENsQ29tcGlsZT4KICAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fX01PRFVMRV9fPSJY
RU5WQkRfQ09JTlNUIjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+CiAgICAgICA8V2FybmluZ0xldmVsPkVuYWJsZUFsbFdhcm5pbmdzPC9XYXJuaW5n
TGV2ZWw+Ci0gICAgICA8RGlzYWJsZVNwZWNpZmljV2FybmluZ3M+NDU0ODs0NzExOzQ4MjA7NDY2
ODs0MjU1OzYwMDE7NjA1NDsyODE5NjslKERpc2FibGVTcGVjaWZpY1dhcm5pbmdzKTwvRGlzYWJs
ZVNwZWNpZmljV2FybmluZ3M+CisgICAgICA8RGlzYWJsZVNwZWNpZmljV2FybmluZ3M+NDEyNzs0
NTQ4OzQ3MTE7NDgyMDs0NjY4OzQyNTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYWJsZVNwZWNpZmlj
V2FybmluZ3MpPC9EaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KICAgICAgIDxNdWx0aVByb2Nlc3Nv
ckNvbXBpbGF0aW9uPnRydWU8L011bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+CiAgICAgICA8RW5h
YmxlUFJFZmFzdD50cnVlPC9FbmFibGVQUkVmYXN0PgogICAgICAgPFJ1bnRpbWVMaWJyYXJ5IENv
bmRpdGlvbj0iJyQoVXNlRGVidWdMaWJyYXJpZXMpJz09J3RydWUnIj5NdWx0aVRocmVhZGVkRGVi
dWc8L1J1bnRpbWVMaWJyYXJ5PgotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 13 17:54:33 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Jan 2015 17:54:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YB5fl-00053B-Fq; Tue, 13 Jan 2015 17:54:33 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YB5fk-000536-56
	for win-pv-devel@lists.xenproject.org; Tue, 13 Jan 2015 17:54:32 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	B9/8F-20609-7DB55B45; Tue, 13 Jan 2015 17:54:31 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1421171669!20365425!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14892 invoked from network); 13 Jan 2015 17:54:30 -0000
Received: from mail-wg0-f42.google.com (HELO mail-wg0-f42.google.com)
	(74.125.82.42)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Jan 2015 17:54:30 -0000
Received: by mail-wg0-f42.google.com with SMTP id k14so4458814wgh.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 13 Jan 2015 09:54:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:mime-version:content-type
	:content-transfer-encoding;
	bh=/QyEXexsvE3IjoZCIBfbojkqdM7eNhNb64bsbGQIq3Q=;
	b=jOdnrkqX/MOYZX9uU2EpkH+CV1mT75wKpbWUpa/aMG7pWH3YA5LTQu5WVbfrcPaT2C
	8p4OBvhgSu109fupmTfQczWg+RQUadsi2OGgLNwPI+4+Wi8OYwcB8J7UVkIICL90HODU
	dd9fM6V8C4txdd7IHBTqTJqCBYnAYa7SQhHWH+X0AUz8Bt4HkRbWTT8HKYrh2xic6u7+
	Np6fh8QAnWAdfI4XsIaQ65ycL3/G5UDFaU7uTGL1EKiXenZpkrmjg3e2GwLujSpwWj49
	Mt6GKOyR1bT7xC/S5EPVgPV1sSsGTFLaxHBqZL8Z4meQWBxQmHMfyOWJiz5lCUksmSWi
	Ggyw==
X-Received: by 10.194.24.195 with SMTP id w3mr43238822wjf.135.1421171669674;
	Tue, 13 Jan 2015 09:54:29 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	la10sm26610595wjc.36.2015.01.13.09.54.28
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 13 Jan 2015 09:54:28 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 13 Jan 2015 17:54:18 +0000
Message-Id: <1421171658-6420-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
MIME-Version: 1.0
Content-Length: 24689
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Move interface subscription code into
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

SW50ZXJmYWNlIHN1YnNjcmlwdGlvbiBpcyBiZXR0ZXIgaGFuZGxlZCBhdCBwYWNrYWdlIGluc3Rh
bGxhdGlvbiB0aW1lIGFuZAp0aGVyZWZvcmUgdGhlIGNvLWluc3RhbGxlciBpcyB0aGUgcmlnaHQg
cGxhY2UgZm9yIGl0IHRvIGxpdmUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu
ZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9jb2luc3QvY29pbnN0LmMgICAgICAgICAgICAg
ICAgIHwgMTkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3hlbnZi
ZC9mZG8uYyAgICAgICAgICAgICAgICAgICAgfCAxNDUgKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiB2czIwMTIvY29pbnN0L3hlbnZiZF9jb2luc3QudmN4cHJvaiB8ICAgMiArLQogdnMyMDEz
L2NvaW5zdC94ZW52YmRfY29pbnN0LnZjeHByb2ogfCAgIDQgKy0KIDQgZmlsZXMgY2hhbmdlZCwg
MjI0IGluc2VydGlvbnMoKyksIDExNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvY29p
bnN0L2NvaW5zdC5jIGIvc3JjL2NvaW5zdC9jb2luc3QuYwppbmRleCBiYjAwNDY4Li43MjMzYjli
IDEwMDY0NAotLS0gYS9zcmMvY29pbnN0L2NvaW5zdC5jCisrKyBiL3NyYy9jb2luc3QvY29pbnN0
LmMKQEAgLTM1LDYgKzM1LDEzIEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3Ry
c2FmZS5oPgogCisjaW5jbHVkZSA8ZGVidWdfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8c3VzcGVu
ZF9pbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxldnRjaG5faW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8
c3RvcmVfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8Z250dGFiX2ludGVyZmFjZS5oPgorI2luY2x1
ZGUgPGVtdWxhdGVkX2ludGVyZmFjZS5oPgorCiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogCiBfX3Vz
ZXJfY29kZTsKQEAgLTY0Niw2ICs2NTMsMTc2IEBAIGZhaWwxOgogICAgIHJldHVybiBGQUxTRTsK
IH0KIAorc3RhdGljIEhLRVkKK09wZW5JbnRlcmZhY2VzS2V5KAorICAgIElOICBQVENIQVIgIFBy
b3ZpZGVyTmFtZQorICAgICkKK3sKKyAgICBIUkVTVUxUICAgICBSZXN1bHQ7CisgICAgVENIQVIg
ICAgICAgS2V5TmFtZVtNQVhfUEFUSF07CisgICAgSEtFWSAgICAgICAgS2V5OworICAgIEhSRVNV
TFQgICAgIEVycm9yOworCisgICAgUmVzdWx0ID0gU3RyaW5nQ2JQcmludGYoS2V5TmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNQVhfUEFUSCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiJXNcXCVzXFxJbnRlcmZhY2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTRVJWSUNFU19LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdmlkZXJOYW1l
KTsKKyAgICBpZiAoIVNVQ0NFRURFRChSZXN1bHQpKSB7CisgICAgICAgIFNldExhc3RFcnJvcihF
UlJPUl9CVUZGRVJfT1ZFUkZMT1cpOworICAgICAgICBnb3RvIGZhaWwxOworICAgIH0KKworICAg
IEVycm9yID0gUmVnT3BlbktleUV4KEhLRVlfTE9DQUxfTUFDSElORSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBLZXlOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgS0VZX0FMTF9BQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgJktleSk7CisgICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKKyAgICAgICAgU2V0
TGFzdEVycm9yKEVycm9yKTsKKyAgICAgICAgZ290byBmYWlsMjsKKyAgICB9CisKKyAgICByZXR1
cm4gS2V5OworCitmYWlsMjoKKyAgICBMb2coImZhaWwyIik7CisKK2ZhaWwxOgorICAgIEVycm9y
ID0gR2V0TGFzdEVycm9yKCk7CisKKyAgICB7CisgICAgICAgIFBUQ0hBUiAgTWVzc2FnZTsKKyAg
ICAgICAgTWVzc2FnZSA9IF9fR2V0RXJyb3JNZXNzYWdlKEVycm9yKTsKKyAgICAgICAgTG9nKCJm
YWlsMSAoJXMpIiwgTWVzc2FnZSk7CisgICAgICAgIExvY2FsRnJlZShNZXNzYWdlKTsKKyAgICB9
CisKKyAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIEJPT0xFQU4KK1N1YnNjcmliZUludGVy
ZmFjZSgKKyAgICBJTiAgUFRDSEFSICBQcm92aWRlck5hbWUsCisgICAgSU4gIFBUQ0hBUiAgU3Vi
c2NyaWJlck5hbWUsCisgICAgSU4gIFBUQ0hBUiAgSW50ZXJmYWNlTmFtZSwKKyAgICBJTiAgRFdP
UkQgICBJbnRlcmZhY2VWZXJzaW9uCisgICAgKQoreworICAgIEhLRVkgICAgICAgIEtleTsKKyAg
ICBIS0VZICAgICAgICBJbnRlcmZhY2VzS2V5OworICAgIEhSRVNVTFQgICAgIEVycm9yOworCisg
ICAgSW50ZXJmYWNlc0tleSA9IE9wZW5JbnRlcmZhY2VzS2V5KFByb3ZpZGVyTmFtZSk7CisgICAg
aWYgKEludGVyZmFjZXNLZXkgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIEVy
cm9yID0gUmVnQ3JlYXRlS2V5RXgoSW50ZXJmYWNlc0tleSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFN1YnNjcmliZXJOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSRUdfT1BUSU9OX05PTl9WT0xBVElMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEtF
WV9BTExfQUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM
KTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgeworICAgICAgICBTZXRMYXN0RXJy
b3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwyOworICAgIH0KKworICAgIEVycm9yID0gUmVn
U2V0VmFsdWVFeChLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZU5hbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IFJFR19EV09SRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IEJZVEUgKikmSW50
ZXJmYWNlVmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKERXT1JEKSk7
CisgICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKKyAgICAgICAgU2V0TGFzdEVycm9y
KEVycm9yKTsKKyAgICAgICAgZ290byBmYWlsMzsKKyAgICB9CisKKyAgICBMb2coIiVzOiAlc18l
c19JTlRFUkZBQ0VfVkVSU0lPTiAldSIsCisgICAgICAgIFN1YnNjcmliZXJOYW1lLAorICAgICAg
ICBQcm92aWRlck5hbWUsCisgICAgICAgIEludGVyZmFjZU5hbWUsCisgICAgICAgIEludGVyZmFj
ZVZlcnNpb24pOworCisgICAgUmVnQ2xvc2VLZXkoS2V5KTsKKyAgICBSZWdDbG9zZUtleShJbnRl
cmZhY2VzS2V5KTsKKworICAgIHJldHVybiBUUlVFOworCitmYWlsMzoKKyAgICBSZWdDbG9zZUtl
eShLZXkpOworCitmYWlsMjoKKyAgICBSZWdDbG9zZUtleShJbnRlcmZhY2VzS2V5KTsKKworZmFp
bDE6CisgICAgRXJyb3IgPSBHZXRMYXN0RXJyb3IoKTsKKworICAgIHsKKyAgICAgICAgUFRDSEFS
ICBNZXNzYWdlOworICAgICAgICBNZXNzYWdlID0gX19HZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwor
ICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1l
c3NhZ2UpOworICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKworI2RlZmluZSBTVUJTQ1JJ
QkVfSU5URVJGQUNFKF9Qcm92aWRlck5hbWUsIF9TdWJzY3JpYmVyTmFtZSwgX0ludGVyZmFjZU5h
bWUpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAoVk9JRCkgU3Vic2NyaWJlSW50ZXJmYWNlKCNfUHJv
dmlkZXJOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfU3Vic2NyaWJlck5hbWUs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICNfSW50ZXJmYWNlTmFtZSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9Qcm92aWRlck5hbWUgIyMgXyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBf
SU5URVJGQUNFX1ZFUlNJT05fTUFYKTsgXAorICAgIH0gd2hpbGUgKEZBTFNFKTsKKworc3RhdGlj
IEJPT0xFQU4KK1Vuc3Vic2NyaWJlSW50ZXJmYWNlcygKKyAgICBJTiAgUFRDSEFSICBQcm92aWRl
ck5hbWUsCisgICAgSU4gIFBUQ0hBUiAgU3Vic2NyaWJlck5hbWUKKyAgICApCit7CisgICAgSEtF
WSAgICAgICAgSW50ZXJmYWNlc0tleTsKKyAgICBIUkVTVUxUICAgICBFcnJvcjsKKworICAgIExv
ZygiJXM6ICVzIiwgU3Vic2NyaWJlck5hbWUsIFByb3ZpZGVyTmFtZSk7CisKKyAgICBJbnRlcmZh
Y2VzS2V5ID0gT3BlbkludGVyZmFjZXNLZXkoUHJvdmlkZXJOYW1lKTsKKyAgICBpZiAoSW50ZXJm
YWNlc0tleSA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDE7CisgICAgfQorCisgICAgRXJy
b3IgPSBSZWdEZWxldGVUcmVlKEludGVyZmFjZXNLZXksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIFN1YnNjcmliZXJOYW1lKTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgewor
ICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwyOworICAgIH0K
KworICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCisgICAgcmV0dXJuIFRSVUU7CisK
K2ZhaWwyOgorICAgIFJlZ0Nsb3NlS2V5KEludGVyZmFjZXNLZXkpOworCitmYWlsMToKKyAgICBF
cnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1lc3NhZ2U7
CisgICAgICAgIE1lc3NhZ2UgPSBfX0dldEVycm9yTWVzc2FnZShFcnJvcik7CisgICAgICAgIExv
ZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOworICAgICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7Cisg
ICAgfQorCisgICAgcmV0dXJuIEZBTFNFOworfQorCiBzdGF0aWMgRk9SQ0VJTkxJTkUgSFJFU1VM
VAogX19EaWZJbnN0YWxsUHJlUHJvY2VzcygKICAgICBJTiAgSERFVklORk8gICAgICAgICAgICAg
ICAgICAgIERldmljZUluZm9TZXQsCkBAIC02NzUsOSArODUyLDE5IEBAIF9fRGlmSW5zdGFsbFBv
c3RQcm9jZXNzKAogCiAgICAgTG9nKCI9PT09PiIpOwogCisgICAgU1VCU0NSSUJFX0lOVEVSRkFD
RShYRU5CVVMsIFhFTlZCRCwgU1RPUkUpOworICAgIFNVQlNDUklCRV9JTlRFUkZBQ0UoWEVOQlVT
LCBYRU5WQkQsIEVWVENITik7CisgICAgU1VCU0NSSUJFX0lOVEVSRkFDRShYRU5CVVMsIFhFTlZC
RCwgR05UVEFCKTsKKyAgICBTVUJTQ1JJQkVfSU5URVJGQUNFKFhFTkJVUywgWEVOVkJELCBTVVNQ
RU5EKTsKKyAgICBTVUJTQ1JJQkVfSU5URVJGQUNFKFhFTkJVUywgWEVOVkJELCBERUJVRyk7CisK
KyAgICBTVUJTQ1JJQkVfSU5URVJGQUNFKFhFTkZJTFQsIFhFTlZCRCwgRU1VTEFURUQpOworCiAg
ICAgKFZPSUQpIE92ZXJyaWRlR3JvdXBQb2xpY3lPcHRpb25zKCk7CiAgICAgKFZPSUQpIEluY3Jl
YXNlRGlza1RpbWVPdXQoKTsKKwogICAgIChWT0lEKSBJbnN0YWxsVW5wbHVnU2VydmljZSgiRElT
S1MiLCAiWEVOVkJEIik7CisKICAgICAoVk9JRCkgUmVxdWVzdFJlYm9vdChEZXZpY2VJbmZvU2V0
LCBEZXZpY2VJbmZvRGF0YSk7CiAKICAgICBMb2coIjw9PT09Iik7CkBAIC03NTYsNiArOTQzLDkg
QEAgX19EaWZSZW1vdmVQcmVQcm9jZXNzKAogCiAgICAgKFZPSUQpIFJlbW92ZVVucGx1Z1NlcnZp
Y2UoIkRJU0tTIiwgIlhFTlZCRCIpOwogCisgICAgVW5zdWJzY3JpYmVJbnRlcmZhY2VzKCJYRU5G
SUxUIiwgIlhFTlZCRCIpOworICAgIFVuc3Vic2NyaWJlSW50ZXJmYWNlcygiWEVOQlVTIiwgIlhF
TlZCRCIpOworCiAgICAgcmV0dXJuIE5PX0VSUk9SOyAKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3hl
bnZiZC9mZG8uYyBiL3NyYy94ZW52YmQvZmRvLmMKaW5kZXggMmVlOTFiOC4uNjhiZjk1YyAxMDA2
NDQKLS0tIGEvc3JjL3hlbnZiZC9mZG8uYworKysgYi9zcmMveGVudmJkL2Zkby5jCkBAIC0yNjEs
NzMgKzI2MSwyOSBAQCBGZG9VbmxpbmtQZG8oCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBR
dWVyeUludGVyZmFjZQogCi0jZGVmaW5lIFNFUlZJQ0VTX0tFWSAgICAgICAgTCJcXFJlZ2lzdHJ5
XFxNYWNoaW5lXFxTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0XFxTZXJ2aWNlcyIKLQotX19jaGVj
a1JldHVybgotX19kcnZfbWF4SVJRTChQQVNTSVZFX0xFVkVMKQotc3RhdGljIEZPUkNFSU5MSU5F
IE5UU1RBVFVTCi1fX1F1ZXJ5SW50ZXJmYWNlKAotICAgIF9faW4gICAgUERFVklDRV9PQkpFQ1Qg
IERldmljZU9iamVjdCwKLSAgICBfX2luICAgIGNvbnN0IFdDSEFSICAgICAqUHJvdmlkZXJOYW1l
LAotICAgIF9faW4gICAgY29uc3QgQ0hBUiAgICAgICpJbnRlcmZhY2VOYW1lLAotICAgIF9faW4g
ICAgY29uc3QgR1VJRCAgICAgICpHdWlkLAotICAgIF9faW4gICAgVUxPTkcgICAgICAgICAgIFZl
cnNpb24sCi0gICAgX19pbm91dCBQSU5URVJGQUNFICAgICAgSW50ZXJmYWNlLAotICAgIF9faW4g
ICAgVUxPTkcgICAgICAgICAgIFNpemUsCi0gICAgX19pbiAgICBCT09MRUFOICAgICAgICAgT3B0
aW9uYWwKK3N0YXRpYyBOVFNUQVRVUworRmRvUXVlcnlJbnRlcmZhY2UoCisgICAgSU4gIFBYRU5W
QkRfRkRPICAgICBGZG8sCisgICAgSU4gIGNvbnN0IEdVSUQgICAgICAqR3VpZCwKKyAgICBJTiAg
VUxPTkcgICAgICAgICAgIFZlcnNpb24sCisgICAgT1VUIFBJTlRFUkZBQ0UgICAgICBJbnRlcmZh
Y2UsCisgICAgSU4gIFVMT05HICAgICAgICAgICBTaXplLAorICAgIElOICBCT09MRUFOICAgICAg
ICAgT3B0aW9uYWwKICAgICApCiB7Ci0gICAgVU5JQ09ERV9TVFJJTkcgICAgICAgICAgVW5pY29k
ZTsKLSAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBJbnRlcmZhY2VzS2V5OwotICAgIEhBTkRM
RSAgICAgICAgICAgICAgICAgIFN1YnNjcmliZXJLZXk7Ci0gICAgS0VWRU5UICAgICAgICAgICAg
ICAgICAgRXZlbnQ7Ci0gICAgSU9fU1RBVFVTX0JMT0NLICAgICAgICAgU3RhdHVzQmxvY2s7Ci0g
ICAgUElSUCAgICAgICAgICAgICAgICAgICAgSXJwOwotICAgIFBJT19TVEFDS19MT0NBVElPTiAg
ICAgIFN0YWNrTG9jYXRpb247Ci0gICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOwor
ICAgIEtFVkVOVCAgICAgICAgICAgICAgRXZlbnQ7CisgICAgSU9fU1RBVFVTX0JMT0NLICAgICBT
dGF0dXNCbG9jazsKKyAgICBQSVJQICAgICAgICAgICAgICAgIElycDsKKyAgICBQSU9fU1RBQ0tf
TE9DQVRJT04gIFN0YWNrTG9jYXRpb247CisgICAgTlRTVEFUVVMgICAgICAgICAgICBzdGF0dXM7
CiAKICAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVMKTsK
IAotICAgIFVuaWNvZGUuTWF4aW11bUxlbmd0aCA9IChVU0hPUlQpKCh3Y3NsZW4oU0VSVklDRVNf
S0VZKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y3NsZW4oUHJvdmlkZXJOYW1lKSArCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3Y3NsZW4oTCJJbnRlcmZhY2VzIikgKwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKSAqIHNpemVvZiAoV0NIQVIpKTsKLQotICAg
IFVuaWNvZGUuQnVmZmVyID0gX19BbGxvY2F0ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElP
Tl9fLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
X19MSU5FX18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVbmljb2RlLk1heGltdW1MZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGRE9fU0lHTkFUVVJFKTsKLQotICAgIHN0YXR1cyA9IFNU
QVRVU19OT19NRU1PUlk7Ci0gICAgaWYgKFVuaWNvZGUuQnVmZmVyID09IE5VTEwpCi0gICAgICAg
IGdvdG8gZmFpbDE7Ci0KLSAgICBzdGF0dXMgPSBSdGxTdHJpbmdDYlByaW50ZlcoVW5pY29kZS5C
dWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGUuTWF4aW11bUxl
bmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRVNfS0VZIEwiXFwl
d3NcXEludGVyZmFjZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm92aWRl
ck5hbWUpOwotICAgIEFTU0VSVChOVF9TVUNDRVNTKHN0YXR1cykpOwotCi0gICAgVW5pY29kZS5M
ZW5ndGggPSAoVVNIT1JUKSh3Y3NsZW4oVW5pY29kZS5CdWZmZXIpICogc2l6ZW9mIChXQ0hBUikp
OwotCi0gICAgc3RhdHVzID0gUmVnaXN0cnlPcGVuS2V5KE5VTEwsICZVbmljb2RlLCBLRVlfUkVB
RCwgJkludGVyZmFjZXNLZXkpOwotICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAg
ICBnb3RvIGZhaWwyOwotCi0gICAgc3RhdHVzID0gUmVnaXN0cnlDcmVhdGVTdWJLZXkoSW50ZXJm
YWNlc0tleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlhFTlZCRCIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX09QVElPTl9OT05fVk9MQVRJTEUs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTdWJzY3JpYmVyS2V5KTsKLSAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMzsKLSAgICAgICAg
ICAgICAgICAgICAKICAgICBLZUluaXRpYWxpemVFdmVudCgmRXZlbnQsIE5vdGlmaWNhdGlvbkV2
ZW50LCBGQUxTRSk7CiAgICAgUnRsWmVyb01lbW9yeSgmU3RhdHVzQmxvY2ssIHNpemVvZihJT19T
VEFUVVNfQkxPQ0spKTsKIAogICAgIElycCA9IElvQnVpbGRTeW5jaHJvbm91c0ZzZFJlcXVlc3Qo
SVJQX01KX1BOUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmlj
ZU9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZkby0+TG93
ZXJEZXZpY2VPYmplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCkBAIC0zMzYsNyArMjkyLDcgQEAg
X19RdWVyeUludGVyZmFjZSgKIAogICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CiAg
ICAgaWYgKElycCA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWw0OworICAgICAgICBnb3RvIGZh
aWwxOwogCiAgICAgU3RhY2tMb2NhdGlvbiA9IElvR2V0TmV4dElycFN0YWNrTG9jYXRpb24oSXJw
KTsKICAgICBTdGFja0xvY2F0aW9uLT5NaW5vckZ1bmN0aW9uID0gSVJQX01OX1FVRVJZX0lOVEVS
RkFDRTsKQEAgLTM0OCw3ICszMDQsNyBAQCBfX1F1ZXJ5SW50ZXJmYWNlKAogICAgIAogICAgIEly
cC0+SW9TdGF0dXMuU3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7CiAKLSAgICBzdGF0dXMg
PSBJb0NhbGxEcml2ZXIoRGV2aWNlT2JqZWN0LCBJcnApOworICAgIHN0YXR1cyA9IElvQ2FsbERy
aXZlcihGZG8tPkxvd2VyRGV2aWNlT2JqZWN0LCBJcnApOwogICAgIGlmIChzdGF0dXMgPT0gU1RB
VFVTX1BFTkRJTkcpIHsKICAgICAgICAgKFZPSUQpIEtlV2FpdEZvclNpbmdsZU9iamVjdCgmRXZl
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhlY3V0aXZlLApAQCAt
MzYyLDY3ICszMTgsMzQgQEAgX19RdWVyeUludGVyZmFjZSgKICAgICAgICAgaWYgKHN0YXR1cyA9
PSBTVEFUVVNfTk9UX1NVUFBPUlRFRCAmJiBPcHRpb25hbCkKICAgICAgICAgICAgIGdvdG8gZG9u
ZTsKIAotICAgICAgICBnb3RvIGZhaWw1OworICAgICAgICBnb3RvIGZhaWwyOwogICAgIH0KIAot
ICAgIHN0YXR1cyA9IFJlZ2lzdHJ5VXBkYXRlRHdvcmRWYWx1ZShTdWJzY3JpYmVyS2V5LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUENIQVIpSW50ZXJmYWNlTmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbik7Ci0gICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDY7Ci0KIGRvbmU6Ci0gICAg
UmVnaXN0cnlDbG9zZUtleShTdWJzY3JpYmVyS2V5KTsKLQotICAgIFJlZ2lzdHJ5Q2xvc2VLZXko
SW50ZXJmYWNlc0tleSk7Ci0KLSAgICBfX0ZyZWVQb29sV2l0aFRhZyhVbmljb2RlLkJ1ZmZlciwg
RkRPX1NJR05BVFVSRSk7Ci0KICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWw2Ogot
ICAgIEVycm9yKCJmYWlsNlxuIik7Ci0KLWZhaWw1OgotICAgIEVycm9yKCJmYWlsNVxuIik7Ci0K
LWZhaWw0OgotICAgIEVycm9yKCJmYWlsNFxuIik7Ci0KLSAgICBSZWdpc3RyeUNsb3NlS2V5KFN1
YnNjcmliZXJLZXkpOwotCi1mYWlsMzoKLSAgICBFcnJvcigiZmFpbDNcbiIpOwotCi0gICAgUmVn
aXN0cnlDbG9zZUtleShJbnRlcmZhY2VzS2V5KTsKLQogZmFpbDI6CiAgICAgRXJyb3IoImZhaWwy
XG4iKTsKIAotICAgIF9fRnJlZVBvb2xXaXRoVGFnKFVuaWNvZGUuQnVmZmVyLCBGRE9fU0lHTkFU
VVJFKTsKLQogZmFpbDE6CiAgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKIAog
ICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLSNkZWZpbmUgUVVFUllfSU5URVJGQUNFKCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgX0RldmljZU9iamVjdCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBRVUVSWV9JTlRFUkZB
Q0UoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIF9GZG8sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfUHJvdmlkZXJO
YW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCiAgICAgX0ludGVyZmFjZU5hbWUsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IF9WZXJzaW9uLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfSW50ZXJmYWNlLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgX1NpemUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIF9PcHRpb25hbCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBfX1F1ZXJ5SW50ZXJmYWNlKChfRGV2aWNlT2JqZWN0KSwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgICAgICAgICAgICAgICBMICMjICNfUHJvdmlkZXJOYW1lLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgI19JbnRl
cmZhY2VOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICZHVUlEXyAjIyBfUHJvdmlkZXJOYW1lICMjIF8g
IyMgX0ludGVyZmFjZU5hbWUgIyMgX0lOVEVSRkFDRSwgICAgICBcCi0gICAgICAgICAgICAgICAg
ICAgICAoX1ZlcnNpb24pLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgKF9JbnRlcmZhY2UpLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg
ICAgICAgICAgICAgICAgIChfU2l6ZSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAoX09wdGlv
bmFsKSkKKyAgICBGZG9RdWVyeUludGVyZmFjZSgoX0ZkbyksICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg
ICAgICAgJkdVSURfICMjIF9Qcm92aWRlck5hbWUgIyMgXyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBf
SU5URVJGQUNFLCAgICAgXAorICAgICAgICAgICAgICAgICAgICAgIF9Qcm92aWRlck5hbWUgIyMg
XyAjIyBfSW50ZXJmYWNlTmFtZSAjIyBfSU5URVJGQUNFX1ZFUlNJT05fTUFYLCAgIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAoX0ludGVyZmFjZSksICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgKF9TaXpl
KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgICAgICAgICAgIChfT3B0aW9uYWwpKQogCiAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CiAvLyBEZWJ1ZwpAQCAtOTIxLDEwICs4NDQsOSBAQCBfX0Zkb1F1ZXJ5SW50ZXJm
YWNlcygKICAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVM
KTsKIAogICAgIC8vIEdldCBTVE9SRSBJbnRlcmZhY2UKLSAgICBTdGF0dXMgPSBRVUVSWV9JTlRF
UkZBQ0UoRmRvLT5Mb3dlckRldmljZU9iamVjdCwKKyAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZB
Q0UoRmRvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5CVVMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNUT1JFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBY
RU5CVVNfU1RPUkVfSU5URVJGQUNFX1ZFUlNJT05fTUFYLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoUElOVEVSRkFDRSkmRmRvLT5TdG9yZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZW9mIChGZG8tPlN0b3JlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RkFMU0UpOwpAQCAtOTMyLDEwICs4NTQsOSBAQCBfX0Zkb1F1ZXJ5SW50ZXJmYWNlcygKICAgICAg
ICAgZ290byBmYWlsMTsKIAogICAgIC8vIEdldCBFVlRDSE4gSW50ZXJmYWNlCi0gICAgU3RhdHVz
ID0gUVVFUllfSU5URVJGQUNFKEZkby0+TG93ZXJEZXZpY2VPYmplY3QsCisgICAgU3RhdHVzID0g
UVVFUllfSU5URVJGQUNFKEZkbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVT
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlRDSE4sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFhFTkJVU19FVlRDSE5fSU5URVJGQUNFX1ZFUlNJT05fTUFYLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoUElOVEVSRkFDRSkmRmRvLT5FdnRjaG4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoRmRvLT5FdnRjaG4pLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGQUxTRSk7CkBAIC05NDMsMTAgKzg2NCw5IEBAIF9fRmRvUXVlcnlJ
bnRlcmZhY2VzKAogICAgICAgICBnb3RvIGZhaWwyOwogCiAgICAgLy8gR2V0IEdOVFRBQiBJbnRl
cmZhY2UKLSAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZBQ0UoRmRvLT5Mb3dlckRldmljZU9iamVj
dCwKKyAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZBQ0UoRmRvLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBYRU5CVVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdOVFRBQiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfVkVS
U0lPTl9NQVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQSU5URVJGQUNFKSZGZG8t
PkdudHRhYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChGZG8tPkdudHRh
YiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFKTsKQEAgLTk1NCwxMCArODc0
LDkgQEAgX19GZG9RdWVyeUludGVyZmFjZXMoCiAgICAgICAgIGdvdG8gZmFpbDM7CiAKICAgICAv
LyBHZXQgU1VTUEVORCBJbnRlcmZhY2UKLSAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZBQ0UoRmRv
LT5Mb3dlckRldmljZU9iamVjdCwKKyAgICBTdGF0dXMgPSBRVUVSWV9JTlRFUkZBQ0UoRmRvLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5CVVMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNVU1BFTkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkJVU19T
VVNQRU5EX0lOVEVSRkFDRV9WRVJTSU9OX01BWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFBJTlRFUkZBQ0UpJkZkby0+U3VzcGVuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZW9mIChGZG8tPlN1c3BlbmQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG
QUxTRSk7CkBAIC05NjUsMTAgKzg4NCw5IEBAIF9fRmRvUXVlcnlJbnRlcmZhY2VzKAogICAgICAg
ICBnb3RvIGZhaWw0OwogCiAgICAgLy8gR2V0IERFQlVHIEludGVyZmFjZQotICAgIFN0YXR1cyA9
IFFVRVJZX0lOVEVSRkFDRShGZG8tPkxvd2VyRGV2aWNlT2JqZWN0LAorICAgIFN0YXR1cyA9IFFV
RVJZX0lOVEVSRkFDRShGZG8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkJVUywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVCVUcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFhFTkJVU19ERUJVR19JTlRFUkZBQ0VfVkVSU0lPTl9NQVgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChQSU5URVJGQUNFKSZGZG8tPkRlYnVnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplb2YgKEZkby0+RGVidWcpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGQUxTRSk7CkBAIC05NzYsMTAgKzg5NCw5IEBAIF9fRmRvUXVlcnlJbnRlcmZh
Y2VzKAogICAgICAgICBnb3RvIGZhaWw1OwogCiAgICAgLy8gR2V0IEVNVUxBVEVEIEludGVyZmFj
ZSAob3B0aW9uYWwpCi0gICAgU3RhdHVzID0gUVVFUllfSU5URVJGQUNFKEZkby0+TG93ZXJEZXZp
Y2VPYmplY3QsCisgICAgU3RhdHVzID0gUVVFUllfSU5URVJGQUNFKEZkbywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWEVORklMVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RU1VTEFURUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkZJTFRfRU1VTEFURURf
SU5URVJGQUNFX1ZFUlNJT05fTUFYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUElO
VEVSRkFDRSkmRmRvLT5FbXVsYXRlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZW9mIChGZG8tPkVtdWxhdGVkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSk7
CmRpZmYgLS1naXQgYS92czIwMTIvY29pbnN0L3hlbnZiZF9jb2luc3QudmN4cHJvaiBiL3ZzMjAx
Mi9jb2luc3QveGVudmJkX2NvaW5zdC52Y3hwcm9qCmluZGV4IDg2NWJhZjQuLmY4M2VkZmMgMTAw
NjQ0Ci0tLSBhL3ZzMjAxMi9jb2luc3QveGVudmJkX2NvaW5zdC52Y3hwcm9qCisrKyBiL3ZzMjAx
Mi9jb2luc3QveGVudmJkX2NvaW5zdC52Y3hwcm9qCkBAIC0zNiw3ICszNiw3IEBACiAJCTxDbENv
bXBpbGU+CiAJCQk8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOVkJEX0NP
SU5TVCI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgogCQkJPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwvV2FybmluZ0xldmVsPgotCQkJ
PERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ1NDg7NDcxMTs0ODIwOzQ2Njg7NDI1NTs2MDAxOzYw
NTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rpc2FibGVTcGVjaWZpY1dhcm5p
bmdzPgorCQkJPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQxMjc7NDU0ODs0NzExOzQ4MjA7NDY2
ODs0MjU1OzYwMDE7NjA1NDsyODE5NjslKERpc2FibGVTcGVjaWZpY1dhcm5pbmdzKTwvRGlzYWJs
ZVNwZWNpZmljV2FybmluZ3M+CiAJCQk8TXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj50cnVlPC9N
dWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPgogCQkJPEVuYWJsZVBSRWZhc3Q+dHJ1ZTwvRW5hYmxl
UFJFZmFzdD4KIAkJCTxSdW50aW1lTGlicmFyeSBDb25kaXRpb249IickKFVzZURlYnVnTGlicmFy
aWVzKSc9PSd0cnVlJyI+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KZGlmZiAt
LWdpdCBhL3ZzMjAxMy9jb2luc3QveGVudmJkX2NvaW5zdC52Y3hwcm9qIGIvdnMyMDEzL2NvaW5z
dC94ZW52YmRfY29pbnN0LnZjeHByb2oKaW5kZXggODE3ZjRlZS4uN2NiYWJiYiAxMDA2NDQKLS0t
IGEvdnMyMDEzL2NvaW5zdC94ZW52YmRfY29pbnN0LnZjeHByb2oKKysrIGIvdnMyMDEzL2NvaW5z
dC94ZW52YmRfY29pbnN0LnZjeHByb2oKQEAgLTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KIDxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0
LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxk
LzIwMDMiPgogICA8SW1wb3J0IFByb2plY3Q9Ii4uXGNvbmZpZ3MucHJvcHMiIC8+CiAgIDxQcm9w
ZXJ0eUdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CkBAIC02NSw3ICs2NSw3IEBACiAgICAg
PENsQ29tcGlsZT4KICAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fX01PRFVMRV9fPSJY
RU5WQkRfQ09JTlNUIjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+CiAgICAgICA8V2FybmluZ0xldmVsPkVuYWJsZUFsbFdhcm5pbmdzPC9XYXJuaW5n
TGV2ZWw+Ci0gICAgICA8RGlzYWJsZVNwZWNpZmljV2FybmluZ3M+NDU0ODs0NzExOzQ4MjA7NDY2
ODs0MjU1OzYwMDE7NjA1NDsyODE5NjslKERpc2FibGVTcGVjaWZpY1dhcm5pbmdzKTwvRGlzYWJs
ZVNwZWNpZmljV2FybmluZ3M+CisgICAgICA8RGlzYWJsZVNwZWNpZmljV2FybmluZ3M+NDEyNzs0
NTQ4OzQ3MTE7NDgyMDs0NjY4OzQyNTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYWJsZVNwZWNpZmlj
V2FybmluZ3MpPC9EaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KICAgICAgIDxNdWx0aVByb2Nlc3Nv
ckNvbXBpbGF0aW9uPnRydWU8L011bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+CiAgICAgICA8RW5h
YmxlUFJFZmFzdD50cnVlPC9FbmFibGVQUkVmYXN0PgogICAgICAgPFJ1bnRpbWVMaWJyYXJ5IENv
bmRpdGlvbj0iJyQoVXNlRGVidWdMaWJyYXJpZXMpJz09J3RydWUnIj5NdWx0aVRocmVhZGVkRGVi
dWc8L1J1bnRpbWVMaWJyYXJ5PgotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 14 09:52:52 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 14 Jan 2015 09:52:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YBKdA-0001WS-7N; Wed, 14 Jan 2015 09:52:52 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YBKd9-0001WM-KA
	for win-pv-devel@lists.xenproject.org; Wed, 14 Jan 2015 09:52:51 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	7D/14-25276-37C36B45; Wed, 14 Jan 2015 09:52:51 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-21.messagelabs.com!1421229170!13295320!1
X-Originating-IP: [209.85.212.177]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5282 invoked from network); 14 Jan 2015 09:52:50 -0000
Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com)
	(209.85.212.177)
	by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Jan 2015 09:52:50 -0000
Received: by mail-wi0-f177.google.com with SMTP id l15so9583747wiw.4
	for <win-pv-devel@lists.xenproject.org>;
	Wed, 14 Jan 2015 01:52:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=Bx20MhEbEhiYgaHUnseJy+BnWoAQEd6comKUj2nVagk=;
	b=Fkwl4yMdemW0n0VhgDi7UXs/iHFaL5askQUulM3zOlm0StUdotN7dLP9P/oHbTjCW2
	UBHaIeyCpKy9jE0aFoBj3IyeGU6rm9kNWjHmDPcsyH2gf0aDX/Z08Ie3sxkF8dGQEkcV
	5c2Lfn3ieaDClNZLmXfX2BlP38ZYxLeI+pPMEk3SuKwI56j44SzWS9eyj+YrsGlow4kB
	PmFGvSfLO1zZdZi7CL9QIjesCuWTy8e6n4hNQMNPFMNVGE514g6jQukIHqSMAkrFcEp1
	7ej3RrWpx6lJ/LIS8pXga4mnAwiMnfTrf7ckCgMeUNE2AJODwzFRA8Ejc7NhyPv5ms4Z
	22gA==
X-Received: by 10.180.97.106 with SMTP id dz10mr7233410wib.6.1421229170241;
	Wed, 14 Jan 2015 01:52:50 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	bs2sm29312320wjc.43.2015.01.14.01.52.49
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 14 Jan 2015 01:52:49 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed, 14 Jan 2015 09:52:40 +0000
Message-Id: <1421229160-10672-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Reserve some grant entries for the crash
	kernel
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The xencrsh driver (which is loaded into the crash kernel) needs some grant
entries to write out the dump file. It is important that these entries are
guaranteed to be unused by any backend other than the one the xencrsh uses
so reserve them in the normal grant table.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/gnttab.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xenbus/gnttab.c b/src/xenbus/gnttab.c
index 8a88986..8b73f27 100644
--- a/src/xenbus/gnttab.c
+++ b/src/xenbus/gnttab.c
@@ -45,8 +45,8 @@
 #define XENBUS_GNTTAB_ENTRY_PER_FRAME      (PAGE_SIZE / sizeof (grant_entry_v1_t))
 
 // Xen requires that we avoid the first 8 entries of the table and
-// we also reserve 1 entry for the crash kernel
-#define XENBUS_GNTTAB_RESERVED_ENTRY_COUNT 9
+// we also reserve some more room for the crash kernel
+#define XENBUS_GNTTAB_RESERVED_ENTRY_COUNT 32
 
 #define XENBUS_GNTTAB_ENTRY_MAGIC 'DTNG'
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 14 09:52:52 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 14 Jan 2015 09:52:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YBKdA-0001WS-7N; Wed, 14 Jan 2015 09:52:52 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YBKd9-0001WM-KA
	for win-pv-devel@lists.xenproject.org; Wed, 14 Jan 2015 09:52:51 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	7D/14-25276-37C36B45; Wed, 14 Jan 2015 09:52:51 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-21.messagelabs.com!1421229170!13295320!1
X-Originating-IP: [209.85.212.177]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5282 invoked from network); 14 Jan 2015 09:52:50 -0000
Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com)
	(209.85.212.177)
	by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Jan 2015 09:52:50 -0000
Received: by mail-wi0-f177.google.com with SMTP id l15so9583747wiw.4
	for <win-pv-devel@lists.xenproject.org>;
	Wed, 14 Jan 2015 01:52:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=Bx20MhEbEhiYgaHUnseJy+BnWoAQEd6comKUj2nVagk=;
	b=Fkwl4yMdemW0n0VhgDi7UXs/iHFaL5askQUulM3zOlm0StUdotN7dLP9P/oHbTjCW2
	UBHaIeyCpKy9jE0aFoBj3IyeGU6rm9kNWjHmDPcsyH2gf0aDX/Z08Ie3sxkF8dGQEkcV
	5c2Lfn3ieaDClNZLmXfX2BlP38ZYxLeI+pPMEk3SuKwI56j44SzWS9eyj+YrsGlow4kB
	PmFGvSfLO1zZdZi7CL9QIjesCuWTy8e6n4hNQMNPFMNVGE514g6jQukIHqSMAkrFcEp1
	7ej3RrWpx6lJ/LIS8pXga4mnAwiMnfTrf7ckCgMeUNE2AJODwzFRA8Ejc7NhyPv5ms4Z
	22gA==
X-Received: by 10.180.97.106 with SMTP id dz10mr7233410wib.6.1421229170241;
	Wed, 14 Jan 2015 01:52:50 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	bs2sm29312320wjc.43.2015.01.14.01.52.49
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 14 Jan 2015 01:52:49 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed, 14 Jan 2015 09:52:40 +0000
Message-Id: <1421229160-10672-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Reserve some grant entries for the crash
	kernel
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The xencrsh driver (which is loaded into the crash kernel) needs some grant
entries to write out the dump file. It is important that these entries are
guaranteed to be unused by any backend other than the one the xencrsh uses
so reserve them in the normal grant table.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/gnttab.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xenbus/gnttab.c b/src/xenbus/gnttab.c
index 8a88986..8b73f27 100644
--- a/src/xenbus/gnttab.c
+++ b/src/xenbus/gnttab.c
@@ -45,8 +45,8 @@
 #define XENBUS_GNTTAB_ENTRY_PER_FRAME      (PAGE_SIZE / sizeof (grant_entry_v1_t))
 
 // Xen requires that we avoid the first 8 entries of the table and
-// we also reserve 1 entry for the crash kernel
-#define XENBUS_GNTTAB_RESERVED_ENTRY_COUNT 9
+// we also reserve some more room for the crash kernel
+#define XENBUS_GNTTAB_RESERVED_ENTRY_COUNT 32
 
 #define XENBUS_GNTTAB_ENTRY_MAGIC 'DTNG'
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Mon Jan 19 15:30:52 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 19 Jan 2015 15:30:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDEI0-0005co-Lf; Mon, 19 Jan 2015 15:30:52 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YDEHz-0005cE-3Z
	for win-pv-devel@lists.xenproject.org; Mon, 19 Jan 2015 15:30:51 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	F6/42-02697-A232DB45; Mon, 19 Jan 2015 15:30:50 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-10.tower-206.messagelabs.com!1421681446!13585794!1
X-Originating-IP: [74.125.82.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8815 invoked from network); 19 Jan 2015 15:30:46 -0000
Received: from mail-wg0-f52.google.com (HELO mail-wg0-f52.google.com)
	(74.125.82.52)
	by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	19 Jan 2015 15:30:46 -0000
Received: by mail-wg0-f52.google.com with SMTP id l2so10362836wgh.11
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 19 Jan 2015 07:30:45 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:cc:subject:content-type;
	bh=2JqnqVwXMk0eHgxxWW1vTORS7UcAFVX1OBozDRvxUqo=;
	b=EIM/3ekEE+aHijJnP3TKbkBwRFLlC0f1KyxE0VQpNFEdRtH4sxFJesP+y4GBYNfKcX
	ZsSnj7hA9Z6GN+LUsGNGHETtSN9JPvQmQS05tF2Wi/6uZdWzrp082RJegr58RdmoZCzu
	/W+8aKSCzzCvtd6x8ro595TMnmGuuHuN8AvIIGWMg5UE5QrEz8R2cqBdwLdV2Gw2J5Mu
	IWiVSRG4GOhIuk4t9nvCpv8deWv0quPnGM+fMdOyYPe3ezW8sxxH1PI/Sl2ZhfjiTK1J
	la3X7o2/oVMSwzGDBEcn9KGflYr8SoiMaEOSDzkghLIdJey8dT+FoRBt2AdMxULKfzjZ
	Ol5g==
X-Gm-Message-State: ALoCoQmpbsMk+joMW5O+bxTvhZEh90JU/1E57G1jf7baNR5TCdocIAOct9skhyYCgrkdRNxB0Gtl
X-Received: by 10.181.13.105 with SMTP id ex9mr35754029wid.69.1421681445068;
	Mon, 19 Jan 2015 07:30:45 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id i3sm14593804wie.23.2015.01.19.07.30.42
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 19 Jan 2015 07:30:44 -0800 (PST)
Message-ID: <54BD2320.10307@m2r.biz>
Date: Mon, 19 Jan 2015 16:30:40 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: win-pv-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary="------------080600070407090202070502"
Cc: paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------080600070407090202070502
Content-Type: text/plain; charset=iso-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hi, I installed winpv driver build of 15 january on Windows server 2012 
R2 standard 64 bit and have problem after save/restore.
xl save/restore didn't show any errors, trying to connected with rdp I 
was unable and with spice I saw screen with data and time (time update 
after restore) but doing ctrl+alt+canc it changed something in screen 
only after 5-10 minutes and still without showing login field.

Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official 
backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from 
xen build.
DomU xl cfg:
> name='w2012r2-01'
> builder="hvm"
> memory=8192
> vcpus=4
> acpi_s3=0
> acpi_s4=0
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:18:2a:f2,script=vif-openvswitch']
> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> disk=['/mnt/vm/disks/w2012r2-01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> boot='dc'
> device_model_version="qemu-xen"
> viridian=1
> vnc=0
> keymap="it"
> on_crash="destroy"
> vga="stdvga"
> spice=1
> spicehost='0.0.0.0'
> spiceport=6000
> spicepasswd="test"
> spicevdagent=1
> spice_clipboard_sharing=0
> spiceusbredirection=4
> soundhw="hda"
> localtime=1

I added in attachments qemu logs (before and after save/restore) with 
xen trace enabled.

If you need more informations tests tell me and I'll post them.

I have also another small question:
is ms_vm_genid needed for this case? for what I understand is only for 
active directory controller and this it isn't.

Thanks for any reply and sorry for my bad english.



--------------080600070407090202070502
Content-Type: text/plain; charset=windows-1252;
 name="qemu-dm-w2012r2-01.log.1"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="qemu-dm-w2012r2-01.log.1"

(/usr/sbin/xl:20760): SpiceWorker-Warning **: red_worker.c:11192:dev_destroy_primary_surface: double destroy of primary surface
(/usr/sbin/xl:20760): SpiceWorker-Warning **: red_worker.c:9464:red_create_surface: condition `surface->context.canvas' reached
(/usr/sbin/xl:20760): Spice-Warning **: reds.c:1863:reds_handle_ticket: Invalid password
main_channel_link: add main channel client
main_channel_handle_parsed: net test: latency 152.079000 ms, bitrate 1162452 bps (1.108601 Mbps) LOW BANDWIDTH
inputs_connect: inputs channel client create
red_dispatcher_set_cursor_peer: 
xen_platform_log xen platform: XEN|DllInitialize: XEN 8.0.0 (25) (14.01.2015)
xen_platform_log xen platform: XEN|AcpiFindRsdp: 0x00000000000F0D70
xen_platform_log xen platform: XEN|SystemGetStartOptions:  TESTSIGNING  NOEXECUTE=OPTOUT
xen_platform_log xen platform: XEN|SystemGetVersionInformation: KERNEL: 6.3 (BUILD 9600) PLATFORM WIN32_NT (x64)
xen_platform_log xen platform: XEN|SystemGetVersionInformation: SUITES:
xen_platform_log xen platform: XEN|SystemGetVersionInformation: - TERMINAL
xen_platform_log xen platform: XEN|SystemGetVersionInformation: - SINGLEUSERTS
xen_platform_log xen platform: XEN|SystemGetVersionInformation: TYPE: SERVER
xen_platform_log xen platform: XEN|SystemGetMemoryInformation: RANGE[0] 00000000.00001000 - 00000000.0009efff
xen_platform_log xen platform: XEN|SystemGetMemoryInformation: RANGE[1] 00000000.00100000 - 00000000.00101fff
xen_platform_log xen platform: XEN|SystemGetMemoryInformation: RANGE[2] 00000000.00103000 - 00000000.efffefff
xen_platform_log xen platform: XEN|SystemGetMemoryInformation: RANGE[3] 00000001.00000000 - 00000002.0effffff
xen_platform_log xen platform: XEN|AcpiGetXsdt: 0x00000000FC009FB0
xen_platform_log xen platform: XEN|SystemCpuInformation: ====> (0)
xen_platform_log xen platform: XEN|SystemCpuInformation: Manufacturer: GenuineIntel
xen_platform_log xen platform: XEN|SystemCpuInformation: APIC ID: 00
xen_platform_log xen platform: XEN|SystemCpuInformation: PROCESSOR ID: 00
xen_platform_log xen platform: XEN|SystemCpuInformation: <==== (0)
xen_platform_log xen platform: XEN|SystemCpuInformation: ====> (1)
xen_platform_log xen platform: XEN|SystemCpuInformation: Manufacturer: GenuineIntel
xen_platform_log xen platform: XEN|SystemCpuInformation: APIC ID: 02
xen_platform_log xen platform: XEN|SystemCpuInformation: PROCESSOR ID: 01
xen_platform_log xen platform: XEN|SystemCpuInformation: <==== (1)
xen_platform_log xen platform: XEN|SystemCpuInformation: ====> (3)
xen_platform_log xen platform: XEN|SystemCpuInformation: Manufacturer: GenuineIntel
xen_platform_log xen platform: XEN|SystemCpuInformation: APIC ID: 06
xen_platform_log xen platform: XEN|SystemCpuInformation: PROCESSOR ID: 03
xen_platform_log xen platform: XEN|SystemCpuInformation: <==== (3)
xen_platform_log xen platform: XEN|SystemCpuInformation: ====> (2)
xen_platform_log xen platform: XEN|SystemCpuInformation: Manufacturer: GenuineIntel
xen_platform_log xen platform: XEN|SystemCpuInformation: APIC ID: 04
xen_platform_log xen platform: XEN|SystemCpuInformation: PROCESSOR ID: 02
xen_platform_log xen platform: XEN|SystemCpuInformation: <==== (2)
xen_platform_log xen platform: XEN: HYPERCALL PAGE 0 @ 00000002.08781000
xen_platform_log xen platform: XEN: 4.4.2-pre
xen_platform_log xen platform: XENFILT|DriverEntry: XENFILT 8.0.0 (25) (14.01.2015)
xen_platform_log xen platform: XENFILT|DriverSetActiveDeviceInstance: PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01/10
xen_platform_log xen platform: XENFILT|UnplugCheckForPVDisks: PRESENT
xen_platform_log xen platform: XENFILT|UnplugCheckForPVNics: PRESENT
xen_platform_log xen platform: UNPLUG: PRE-AMBLE (DRIVERS NOT BLACKLISTED)
xen_platform_log xen platform: UNPLUG: DISKS
xen_platform_log xen platform: UNPLUG: NICS
xen_platform_log xen platform: XENFILT|FdoCreate: FFFFE001BF85F8F0 (ACPI\PNP0A03\0)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF9DB040 (PCI\VEN_8086&DEV_1237&SUBSYS_11001AF4&REV_02\00)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF9DCAD0 (PCI\VEN_8086&DEV_7000&SUBSYS_11001AF4&REV_00\08)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF99D040 (PCI\VEN_8086&DEV_7010&SUBSYS_11001AF4&REV_00\09)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF98DAD0 (PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01\10)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF9BF040 (PCI\VEN_8086&DEV_2668&SUBSYS_11001AF4&REV_01\18)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF99FAD0 (PCI\VEN_1AF4&DEV_1003&SUBSYS_00031AF4&REV_00\20)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF99C040 (PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\28)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF99BAD0 (PCI\VEN_8086&DEV_2934&SUBSYS_11001AF4&REV_03\E8)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF999040 (PCI\VEN_8086&DEV_2935&SUBSYS_11001AF4&REV_03\E9)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF998AD0 (PCI\VEN_8086&DEV_2936&SUBSYS_11001AF4&REV_03\EA)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF995040 (PCI\VEN_8086&DEV_293A&SUBSYS_11001AF4&REV_03\EF)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF994A40 (ACPI\PNP0103\0)
xen_platform_log xen platform: XENBUS|DriverEntry: XENBUS 8.0.0 (25) (14.01.2015)
xen_platform_log xen platform: XENFILT|PdoQueryInterface: PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01\10: UNPLUG_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|FdoCreate: FFFFE001BF9BC910 (XS0001 XENBUS) [ACTIVE]
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF52C9C8: Shared LevelSensitive CPU 0 VECTOR a1
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF9B9E98: DeviceExclusive Latched CPU 0 VECTOR b1
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF9B9A88: DeviceExclusive Latched CPU 1 VECTOR b1
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF9B9678: DeviceExclusive Latched CPU 2 VECTOR b1
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF9B80C8: DeviceExclusive Latched CPU 3 VECTOR b1
xen_platform_log xen platform: XENBUS|FdoScan: ====>
xen_platform_log xen platform: XENBUS|FdoCreateIoSpace: 00000000.f0000000 - 00000000.f0ffffff
xen_platform_log xen platform: XENBUS|FdoBalloon: ====>
xen_platform_log xen platform: XENBUS|FdoSuspend: ====>
xen_platform_log xen platform: SHARED_INFO: MAP XENMAPSPACE_shared_info @ 00000000.f0000000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[0] @ 00000000.00bfc000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[1] @ 00000000.008fd000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[2] @ 00000000.008fe000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[3] @ 00000000.008ff000
xen_platform_log xen platform: XENBUS|EvtchnAbiAcquire: FIFO
xen_platform_log xen platform: STORE: PAGE @ 00000000.feffc000
xen_platform_log xen platform: STORE: EVTCHN 6
xen_platform_log xen platform: EVTCHN_FIFO: EVENTARRAY[0] @ 00000001.00000000
xen_platform_log xen platform: XENBUS|EvtchnFifoExpand: added ports [00000000 - 000003ff]
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6330 (VBD 00000001)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6330 (VBD 00000002)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6330 (VBD 00000003)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6330 (VBD 00000004)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6710 (VIF 00000001)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6710 (VIF 00000002)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6710 (VIF 00000003)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6710 (VIF 00000004)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B4540 (IFACE 00000001)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B4540 (IFACE 00000002)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B4540 (IFACE 00000003)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B4540 (IFACE 00000004)
xen_platform_log xen platform: XENFILT|FdoCreate: FFFFE001BF9E7040 (PCIIDE\IDEChannel\0)
xen_platform_log xen platform: XENFILT|FdoCreate: FFFFE001BF9E4AD0 (PCIIDE\IDEChannel\1)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF9D2AD0 (IDE\CdRomQEMU_QEMU_DVD-ROM_______________________1.6.____\0.1.0)
xen_platform_log xen platform: XENVBD|DriverEntry:8.0.0.8 (14/1/2015)
xen_platform_log xen platform: XENVBD|__DriverParseParameterKey:DriverParameters: 
xen_platform_log xen platform: XENDISK|DriverEntry:XENDISK 8.0.0 (8) (14.01.2015)
xen_platform_log xen platform: XENDISK|FdoCreate:FFFFE001BFA24C90
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Version = 0
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Master = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: ScatterGather = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DemandMode = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: AutoInitialize = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma32BitAddresses = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: IgnoreCount = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma64BitAddresses = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: BusNumber = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaChannel = ffffffff
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: InterfaceType = Internal
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaWidth = 8Bits
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaSpeed = Compatible
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: MaximumLength = 000b0000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaPort = ffffffff
xen_platform_log xen platform: XENBUS|DmaGetAdapter: no interception
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: STORE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: EVTCHN_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: GNTTAB_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: SUSPEND_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: DEBUG_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: EMULATED_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENFILT|PdoQueryInterface: PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01\10: EMULATED_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVBD|__FdoSetDevicePowerState:POWER D3 to D0
xen_platform_log xen platform: XENVBD|__FdoD3ToD0:D3->D0
xen_platform_log xen platform: XENVBD|__FdoIsPdoUnplugged:Target[0] : (vbd/768) Emulated NOT_PRESENT
xen_platform_log xen platform: XENVBD|PdoCreate:Target[0] : Creating (PV)
xen_platform_log xen platform: XENVBD|PdoSetDevicePowerState:Target[0] : POWER D3 to D0
xen_platform_log xen platform: XENVBD|PdoD3ToD0:Target[0] : D3->D0 (PV)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : INITIALIZED ----> ENABLED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : NOT_DUMP NOT_HIBER NOT_PAGE
xen_platform_log xen platform: XENVBD|PdoReadInquiryData:Target[0] : Failed to get Page80 data
xen_platform_log xen platform: XENVBD|PdoReadInquiryData:Target[0] : Failed to get Page83 data
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/20/768)
xen_platform_log xen platform: XENVBD|FrontendReadFeatures:Target[0] : Features: PERSISTENT 
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[0] @ 00000000.f0001000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000020 - 000001ff]
xen_platform_log xen platform: XENVBD|__ReadDiskInfo:Target[0] : 409600000 sectors of 512 bytes (512)
xen_platform_log xen platform: XENVBD|__ReadDiskInfo:Target[0] : 195 GB (00000000) 
xen_platform_log xen platform: XENVBD|FrontendReadDiskInfo:Target[0] : Features: FLUSH 
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XENVBD|PdoCreate:Target[0] : Created (PV)
xen_platform_log xen platform: XENVBD|FdoLogTargets:ScanThread ===>
xen_platform_log xen platform: XENVBD|FdoLogTargets:ScanThread : Target[0] = 0xFFFFE001BFA2AA70 (present)
xen_platform_log xen platform: XENVBD|FdoLogTargets:ScanThread <===
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENVBD|__HandlePage83:Target[0] : INQUIRY Using Fake Page83 Data
xen_platform_log xen platform: XENVBD|__HandlePage80:Target[0] : INQUIRY Using Fake Page80 Data
xen_platform_log xen platform: XENDISK|PdoCreate:FFFFE001BF520600
xen_platform_log xen platform: XENVBD|PdoSetDeviceObject:Target[0] : Setting DeviceObject = 0xFFFFE001BF51F060
xen_platform_log xen platform: XENVBD|FdoMapDeviceObjectToPdo:0xFFFFE001BF51F060 --> Target 0 (000000)
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 13:QUERY_ID -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 08:QUERY_INTERFACE -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 15:QUERY_BUS_INFORMATION -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 19:UNKNOWN -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 18:UNKNOWN -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 0d:FILTER_RESOURCE_REQUIREMENTS -> c00000bb
xen_platform_log xen platform: XENVBD|PdoSetDevicePnpState:Target[0] : PNP Present to Started
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 08:QUERY_INTERFACE -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 07:QUERY_DEVICE_RELATIONS -> c00000bb
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER NOT_PAGE
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENVIF|DriverEntry: XENVIF 8.0.0 (10) (14.01.2015)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: DEBUG_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: SUSPEND_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: EVTCHN_INTERFACE (VERSION 2)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: STORE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: RANGE_SET_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: GNTTAB_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVIF|FdoCreate: FFFFE001BFDF2D50 (XS0001 XENVIF)
xen_platform_log xen platform: XENIFACE|DriverEntry: 8.0.0.10 (14/1/2015)
xen_platform_log xen platform: XENIFACE|ThreadCreate: Create thread FFFFF8004BC90E78 FFFFE001BFDF1090
xen_platform_log xen platform: XENIFACE|ThreadCreate: Create thread FFFFF8004BC8FDC0 FFFFE001BFDF10A0
xen_platform_log xen platform: XENBUS|PdoQueryInterface: IFACE: SUSPEND_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: IFACE: SHARED_INFO_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: IFACE: STORE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENIFACE|FdoInitialiseXSRegistryEntries: no such xenstore key
xen_platform_log xen platform: XENIFACE|FdoInitialiseXSRegistryEntries: Failed to initialise registry (c0000022)
xen_platform_log xen platform: XENIFACE|ThreadCreate: Create thread FFFFF8004BC90954 FFFFE001BFDF12B0
xen_platform_log xen platform: XENIFACE|FdoCreate: FFFFE001BFDEFD50 (IFACE)
xen_platform_log xen platform: XENVIF|__PdoSetPermanentAddress: 0 00:16:3E:24:B7:D7
xen_platform_log xen platform: XENVIF|__PdoSetContainerID: 0 {8c3749fc-7602-5b90-84f7-ffd4c1be03b8}
xen_platform_log xen platform: XENVIF|PdoCreate: FFFFE001BFF18060 (0 00000001)
xen_platform_log xen platform: XENVIF|PdoCreate: FFFFE001BFF18060 (0 00000002)
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:NotifyUnicastIpAddressChange (0136) @ FFFFF8004A84046C
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:GetUnicastIpAddressTable (0050) @ FFFFF8004A83724C
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:FreeMibTable (0028) @ FFFFF8004A81E4A0
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:CancelMibChangeNotify2 (0000) @ FFFFF8004A850DC0
xen_platform_log xen platform: XENVIF|__PdoSetPermanentAddress: 1 00:16:3E:18:2A:F2
xen_platform_log xen platform: XENVIF|__PdoSetContainerID: 1 {f49f5b7c-ac68-5a19-9205-d0b6c1e5b2ce}
xen_platform_log xen platform: XENVIF|PdoCreate: FFFFE001BFF18560 (1 00000001)
xen_platform_log xen platform: XENVIF|PdoCreate: FFFFE001BFF18560 (1 00000002)
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:NotifyUnicastIpAddressChange (0136) @ FFFFF8004A84046C
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:GetUnicastIpAddressTable (0050) @ FFFFF8004A83724C
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:FreeMibTable (0028) @ FFFFF8004A81E4A0
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:CancelMibChangeNotify2 (0000) @ FFFFF8004A850DC0
xen_platform_log xen platform: XENNET|DriverEntry: XENNET 8.0.0 (9) (06.01.2015)
xen_platform_log xen platform: XENIFACE|WmiInit: DRV: XenIface WMI Initialisation
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:GetIfTable2 (0040) @ FFFFF8004A83C478
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:FreeMibTable (0028) @ FFFFF8004A81E4A0
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 0: VIF_INTERFACE (VERSION 2)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 0: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 0: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Version = 2
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Master = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: ScatterGather = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DemandMode = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: AutoInitialize = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma32BitAddresses = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: IgnoreCount = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma64BitAddresses = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: BusNumber = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaChannel = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: InterfaceType = Internal
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaWidth = 8Bits
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaSpeed = Compatible
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: MaximumLength = 00020000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaPort = 00000000
xen_platform_log xen platform: XENBUS|DmaGetAdapter: no interception
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[1] @ 00000000.f0002000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000200 - 000003ff]
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[2] @ 00000000.f0003000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000400 - 000005ff]
xen_platform_log xen platform: XENNET|AdapterMediaStateChange: LINK: UP: SPEED=1000000000 DUPLEX=FULL
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:GetIfTable2 (0040) @ FFFFF8004A83C478
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:FreeMibTable (0028) @ FFFFF8004A81E4A0
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 1: VIF_INTERFACE (VERSION 2)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 1: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 1: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Version = 2
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Master = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: ScatterGather = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DemandMode = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: AutoInitialize = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma32BitAddresses = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: IgnoreCount = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma64BitAddresses = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: BusNumber = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaChannel = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: InterfaceType = Internal
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaWidth = 8Bits
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaSpeed = Compatible
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: MaximumLength = 00020000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaPort = 00000000
xen_platform_log xen platform: XENBUS|DmaGetAdapter: no interception
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[3] @ 00000000.f0004000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000600 - 000007ff]
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[4] @ 00000000.f0005000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000800 - 000009ff]
xen_platform_log xen platform: XENNET|AdapterMediaStateChange: LINK: UP: SPEED=1000000000 DUPLEX=FULL
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : NOT_DUMP NOT_HIBER NOT_PAGE
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[5] @ 00000000.f0006000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000a00 - 00000bff]
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : NOT_DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Guest agent lite main loop starting
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Set time to XenTime
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: hosttimeIsUTC: Open Registry Key
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Time is now  2015.1.19 15:28:58.299
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Set time to 2015.1.19 15:28:58.318
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: About to add feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Establish watch control/shutdown
xen_platform_log xen platform: XENIFACE|StartWatch: Start Watch FFFFE001C22FF830
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: About to advertise features
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:MethodExec Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SessionStart Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SetVValue Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SetVPath Failed 
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Failed to advertise shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: About to kick xapi 
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent woke up for 3
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Fire 00000015BBB1F060
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fire feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Check if we need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: No need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fired feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 256 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009CF45000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 256 req_event = 1 rsp_prod = 8 rsp_event = 1
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 256 RequestsPushed = 256 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 1
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: 0xFFFFE001BFF86010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: FRONT: req_prod_pvt = 40 rsp_cons = 8 nr_ents = 256 sring = FFFFD0009CF4B000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: SHARED: req_prod = 40 req_event = 41 rsp_prod = 40 rsp_event = 9
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: RequestsPosted = 40 RequestsPushed = 40 ResponsesProcessed = 8
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsGranted = 16 PacketsCopied = 4 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsQueued = 20 PacketsPrepared = 20 PacketsUnprepared = 0 PacketsSent = 20 PacketsCompleted = 4
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: 0xFFFFE001BFF86010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: FRONT: req_prod_pvt = 44 rsp_cons = 40 nr_ents = 256 sring = FFFFD0009CF4B000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: SHARED: req_prod = 44 req_event = 45 rsp_prod = 44 rsp_event = 41
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: RequestsPosted = 44 RequestsPushed = 44 ResponsesProcessed = 40
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsGranted = 18 PacketsCopied = 4 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsQueued = 22 PacketsPrepared = 22 PacketsUnprepared = 0 PacketsSent = 22 PacketsCompleted = 20
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
red_channel_client_disconnect: rcc=0x7f64d6e61500 (channel=0x7f64d6c562d0 type=1 id=0)
main_channel_client_on_disconnect: rcc=0x7f64d6e61500
red_client_destroy: destroy client 0x7f64d6e50520 with #channels=10
red_dispatcher_disconnect_cursor_peer: 
red_channel_client_disconnect: rcc=0x7f64d6edc380 (channel=0x7f64d6d84100 type=4 id=0)
red_channel_client_disconnect: rcc=0x7f64d6f0a4f0 (channel=0x7f64d6c61e20 type=3 id=0)
red_channel_client_disconnect_dummy: rcc=0x7f64d6e99a10 (channel=0x7f64d6d14760 type=5 id=0)
snd_channel_put: SndChannel=0x7f64d7021f00 freed
red_channel_client_disconnect: rcc=0x7f64d6dfa8a0 (channel=0x7f64d6d0e9a0 type=9 id=0)
red_channel_client_disconnect_dummy: rcc=0x7f64d6d4e5c0 (channel=0x7f64d6d0faa0 type=6 id=0)
snd_channel_put: SndChannel=0x7f64d6fe5ac0 freed
red_channel_client_disconnect: rcc=0x7f64d6dd3800 (channel=0x7f64d6d27810 type=9 id=1)
red_channel_client_disconnect: rcc=0x7f64d6e2f760 (channel=0x7f64d6d17050 type=9 id=2)
red_channel_client_disconnect: rcc=0x7f64d6e04000 (channel=0x7f64d6d17c50 type=9 id=3)
red_dispatcher_disconnect_display_peer: 
red_channel_client_disconnect: rcc=0x7f64d6f2d630 (channel=0x7f64d6d83b50 type=2 id=0)
(/usr/sbin/xl:20760): Spice-Warning **: reds.c:1863:reds_handle_ticket: Invalid password
main_channel_link: add main channel client
main_channel_handle_parsed: net test: latency 90.645000 ms, bitrate 1754171 bps (1.672908 Mbps) LOW BANDWIDTH
inputs_connect: inputs channel client create
red_dispatcher_set_cursor_peer: 
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: 0xFFFFE001BFF86010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: FRONT: req_prod_pvt = 52 rsp_cons = 44 nr_ents = 256 sring = FFFFD0009CF4B000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: SHARED: req_prod = 52 req_event = 53 rsp_prod = 52 rsp_event = 45
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: RequestsPosted = 52 RequestsPushed = 52 ResponsesProcessed = 44
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsGranted = 22 PacketsCopied = 4 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsQueued = 26 PacketsPrepared = 26 PacketsUnprepared = 0 PacketsSent = 26 PacketsCompleted = 22
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
red_channel_client_disconnect: rcc=0x7f64d6e41df0 (channel=0x7f64d6c562d0 type=1 id=0)
main_channel_client_on_disconnect: rcc=0x7f64d6e41df0
red_client_destroy: destroy client 0x7f64d6e027a0 with #channels=10
red_channel_client_disconnect_dummy: rcc=0x7f64d6dd9aa0 (channel=0x7f64d6d0faa0 type=6 id=0)
snd_channel_put: SndChannel=0x7f64d6ea3c00 freed
red_dispatcher_disconnect_cursor_peer: 
red_channel_client_disconnect: rcc=0x7f64bc05e240 (channel=0x7f64d6d84100 type=4 id=0)
red_channel_client_disconnect: rcc=0x7f64d6e996e0 (channel=0x7f64d6c61e20 type=3 id=0)
red_channel_client_disconnect_dummy: rcc=0x7f64d6eeb7d0 (channel=0x7f64d6d14760 type=5 id=0)
snd_channel_put: SndChannel=0x7f64d6e04000 freed
red_channel_client_disconnect: rcc=0x7f64d6e90030 (channel=0x7f64d6d0e9a0 type=9 id=0)
red_channel_client_disconnect: rcc=0x7f64d6ee3450 (channel=0x7f64d6d27810 type=9 id=1)
red_channel_client_disconnect: rcc=0x7f64d6dd3800 (channel=0x7f64d6d17050 type=9 id=2)
red_channel_client_disconnect: rcc=0x7f64d6f0a230 (channel=0x7f64d6d17c50 type=9 id=3)
red_dispatcher_disconnect_display_peer: 
red_channel_client_disconnect: rcc=0x7f64bc18d9c0 (channel=0x7f64d6d83b50 type=2 id=0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 264 rsp_cons = 8 nr_ents = 256 sring = FFFFD0009CF45000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 264 req_event = 1 rsp_prod = 13 rsp_event = 9
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 264 RequestsPushed = 264 ResponsesProcessed = 8
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 1
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 269 rsp_cons = 13 nr_ents = 256 sring = FFFFD0009CF45000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 269 req_event = 1 rsp_prod = 14 rsp_event = 14
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 269 RequestsPushed = 269 ResponsesProcessed = 13
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 1
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 270 rsp_cons = 14 nr_ents = 256 sring = FFFFD0009CF45000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 270 req_event = 1 rsp_prod = 15 rsp_event = 15
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 270 RequestsPushed = 270 ResponsesProcessed = 14
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 1
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: SUSPEND: ====>
xen_platform_log xen platform: SUSPEND: SCHEDOP_shutdown:SHUTDOWN_suspend ====>
qemu: terminating on signal 1 from pid 21878

--------------080600070407090202070502
Content-Type: text/plain; charset=windows-1252;
 name="qemu-dm-w2012r2-01.log"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="qemu-dm-w2012r2-01.log"

xen_ram_alloc: do not alloc 20f000000 bytes of ram at 0 when runstate is INMIGRATE
xen_ram_alloc: do not alloc 1000000 bytes of ram at 20f000000 when runstate is INMIGRATE
xen_ram_alloc: do not alloc 10000 bytes of ram at 210000000 when runstate is INMIGRATE
xen_ram_alloc: do not alloc 40000 bytes of ram at 210010000 when runstate is INMIGRATE
xen_ram_alloc: do not alloc 40000 bytes of ram at 210050000 when runstate is INMIGRATE
(/usr/sbin/xl:22481): SpiceWorker-Warning **: red_worker.c:11192:dev_destroy_primary_surface: double destroy of primary surface
(/usr/sbin/xl:22481): SpiceWorker-Warning **: red_worker.c:9464:red_create_surface: condition `surface->context.canvas' reached
xen_platform_log xen platform: SUSPEND: SCHEDOP_shutdown:SHUTDOWN_suspend <==== (00000000)
xen_platform_log xen platform: XEN: HYPERCALL PAGE 0 @ 00000002.08781000
xen_platform_log xen platform: SHARED_INFO: MAP XENMAPSPACE_shared_info @ 00000000.f0000000
xen_platform_log xen platform: STORE: PAGE @ 00000000.feffc000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[0] @ 00000000.f0001000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[1] @ 00000000.f0002000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[2] @ 00000000.f0003000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[3] @ 00000000.f0004000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[4] @ 00000000.f0005000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[5] @ 00000000.f0006000
xen_platform_log xen platform: EVTCHN_FIFO: RESET
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[0] @ 00000001.13f78000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[1] @ 00000001.13c7a000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[2] @ 00000001.1867c000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[3] @ 00000001.1857e000
xen_platform_log xen platform: XENBUS|EvtchnAbiAcquire: FIFO
xen_platform_log xen platform: STORE: EVTCHN 6
xen_platform_log xen platform: EVTCHN_FIFO: EVENTARRAY[0] @ 00000001.02f80000
xen_platform_log xen platform: XENBUS|EvtchnFifoExpand: added ports [00000000 - 000003ff]
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVBD|FdoSuspendLateCallback:8.0.0.8 (14/1/2015)
xen_platform_log xen platform: XENVBD|FrontendSuspendLateCallback:Target[0] : ===> from ENABLED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XENVBD|PdoPostResume:Target[0] : 0 Fresh SRBs
xen_platform_log xen platform: XENVBD|PdoPostResume:Target[0] : NOT_MISSING ((null))
xen_platform_log xen platform: XENVBD|FrontendSuspendLateCallback:Target[0] : <=== restored ENABLED
xen_platform_log xen platform: XENIFACE|FireSuspendEvent: Ready to unsuspend Event
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:a144:f221:ae00:b065
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 94.84.48.35
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:a144:f221:ae00:b065
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 94.84.48.35
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:a144:f221:ae00:b065
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 94.84.48.35
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:e85d:bc87:d602:682d
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 192.168.46.1
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:e85d:bc87:d602:682d
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 192.168.46.1
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:e85d:bc87:d602:682d
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 192.168.46.1
xen_platform_log xen platform: SUSPEND: <====
xen_platform_log xen platform: XENNET|AdapterMediaStateChange: LINK: UP: SPEED=1000000000 DUPLEX=FULL
xen_platform_log xen platform: XENIFACE|FdoRegistryThreadHandler: WriteRegistry
xen_platform_log xen platform: XENIFACE|FdoInitialiseXSRegistryEntries: no such xenstore key
xen_platform_log xen platform: XENIFACE|FdoInitialiseXSRegistryEntries: Failed to initialise registry (c0000022)
xen_platform_log xen platform: XENIFACE|WatchCallbackThread: SessionSuspendResumeUnwatch FFFFE001C22FF830
xen_platform_log xen platform: XENNET|AdapterMediaStateChange: LINK: UP: SPEED=1000000000 DUPLEX=FULL
xen_platform_log xen platform: XENIFACE|StartWatch: Start Watch FFFFE001C22FF830
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent woke up for 3
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Fire 00000015BBB1F060
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fire feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Check if we need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: No need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fired feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent woke up for 2
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Suspend event
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Set time to XenTime
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: hosttimeIsUTC: Open Registry Key
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Time is now  2015.1.19 15:34:56.592
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Set time to 2015.1.19 15:37:44.73
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:MethodExec Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SessionStart Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SetVValue Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SetVPath Failed 
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Failed to advertise shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Handled suspend event
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent woke up for 3
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Fire 00000015BBB1F060
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fire feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Check if we need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: No need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fired feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
(/usr/sbin/xl:22481): Spice-Warning **: reds.c:1863:reds_handle_ticket: Invalid password
main_channel_link: add main channel client
main_channel_handle_parsed: net test: latency 84.264000 ms, bitrate 1918215 bps (1.829352 Mbps) LOW BANDWIDTH
inputs_connect: inputs channel client create
red_dispatcher_set_cursor_peer: 
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 256 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6AD000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 256 req_event = 1 rsp_prod = 15 rsp_event = 1
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 256 RequestsPushed = 256 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 2
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 257 rsp_cons = 1 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 257 req_event = 1 rsp_prod = 15 rsp_event = 2
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 257 RequestsPushed = 257 ResponsesProcessed = 1
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 256 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 256 req_event = 1 rsp_prod = 5 rsp_event = 1
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 256 RequestsPushed = 256 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 271 rsp_cons = 15 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 271 req_event = 1 rsp_prod = 17 rsp_event = 16
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 271 RequestsPushed = 271 ResponsesProcessed = 15
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: 0xFFFFE001BFF33010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: FRONT: req_prod_pvt = 3 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6AA000
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: SHARED: req_prod = 3 req_event = 4 rsp_prod = 3 rsp_event = 1
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: RequestsPosted = 3 RequestsPushed = 3 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: PacketsGranted = 75 PacketsCopied = 0 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: PacketsQueued = 75 PacketsPrepared = 75 PacketsUnprepared = 0 PacketsSent = 75 PacketsCompleted = 74
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 271 rsp_cons = 15 nr_ents = 256 sring = FFFFD0009E6AD000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 271 req_event = 1 rsp_prod = 17 rsp_event = 16
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 271 RequestsPushed = 271 ResponsesProcessed = 15
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 2
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: 0xFFFFE001BFF93010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: FRONT: req_prod_pvt = 3 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6B4000
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: SHARED: req_prod = 3 req_event = 4 rsp_prod = 3 rsp_event = 1
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: RequestsPosted = 3 RequestsPushed = 3 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: PacketsGranted = 17 PacketsCopied = 7 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: PacketsQueued = 24 PacketsPrepared = 24 PacketsUnprepared = 0 PacketsSent = 24 PacketsCompleted = 23
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 273 rsp_cons = 17 nr_ents = 256 sring = FFFFD0009E6AD000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 273 req_event = 1 rsp_prod = 18 rsp_event = 18
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 273 RequestsPushed = 273 ResponsesProcessed = 17
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 2
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 273 rsp_cons = 17 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 273 req_event = 1 rsp_prod = 18 rsp_event = 18
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 273 RequestsPushed = 273 ResponsesProcessed = 17
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 261 rsp_cons = 5 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 261 req_event = 1 rsp_prod = 9 rsp_event = 6
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 261 RequestsPushed = 261 ResponsesProcessed = 5
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 265 rsp_cons = 9 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 265 req_event = 1 rsp_prod = 13 rsp_event = 10
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 265 RequestsPushed = 265 ResponsesProcessed = 9
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: 0xFFFFE001BFF8F010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: FRONT: req_prod_pvt = 16 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6B3000
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: SHARED: req_prod = 16 req_event = 17 rsp_prod = 16 rsp_event = 1
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: RequestsPosted = 16 RequestsPushed = 16 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: PacketsGranted = 49 PacketsCopied = 0 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: PacketsQueued = 49 PacketsPrepared = 49 PacketsUnprepared = 0 PacketsSent = 49 PacketsCompleted = 41
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: 0xFFFFE001BFF3C010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: FRONT: req_prod_pvt = 16 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6AC000
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: SHARED: req_prod = 16 req_event = 17 rsp_prod = 16 rsp_event = 1
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: RequestsPosted = 16 RequestsPushed = 16 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: PacketsGranted = 91 PacketsCopied = 0 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: PacketsQueued = 91 PacketsPrepared = 91 PacketsUnprepared = 0 PacketsSent = 91 PacketsCompleted = 83
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: 0xFFFFE001BFF2E010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: FRONT: req_prod_pvt = 12 rsp_cons = 6 nr_ents = 256 sring = FFFFD0009E6A9000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: SHARED: req_prod = 12 req_event = 13 rsp_prod = 12 rsp_event = 7
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: RequestsPosted = 12 RequestsPushed = 12 ResponsesProcessed = 6
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsGranted = 34 PacketsCopied = 11 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsQueued = 45 PacketsPrepared = 45 PacketsUnprepared = 0 PacketsSent = 45 PacketsCompleted = 42
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 269 rsp_cons = 13 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 269 req_event = 1 rsp_prod = 16 rsp_event = 14
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 269 RequestsPushed = 269 ResponsesProcessed = 13
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 272 rsp_cons = 16 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 272 req_event = 1 rsp_prod = 20 rsp_event = 17
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 272 RequestsPushed = 272 ResponsesProcessed = 16
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 274 rsp_cons = 18 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 274 req_event = 1 rsp_prod = 22 rsp_event = 19
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 274 RequestsPushed = 274 ResponsesProcessed = 18
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF7B020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 256 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6AE000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 256 req_event = 1 rsp_prod = 1 rsp_event = 1
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 256 RequestsPushed = 256 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 4
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 278 rsp_cons = 22 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 278 req_event = 1 rsp_prod = 24 rsp_event = 23
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 278 RequestsPushed = 278 ResponsesProcessed = 22
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : Waiting for 2 Submitted requests
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : 0/2 Submitted requests left (1 iterrations)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSING ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : Waiting for 7 Submitted requests
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : 0/7 Submitted requests left (2 iterrations)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSING ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 280 rsp_cons = 24 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 280 req_event = 1 rsp_prod = 25 rsp_event = 25
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 280 RequestsPushed = 280 ResponsesProcessed = 24
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 276 rsp_cons = 20 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 276 req_event = 1 rsp_prod = 26 rsp_event = 21
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 276 RequestsPushed = 276 ResponsesProcessed = 20
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF7B020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 257 rsp_cons = 1 nr_ents = 256 sring = FFFFD0009E6AE000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 257 req_event = 1 rsp_prod = 3 rsp_event = 2
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 257 RequestsPushed = 257 ResponsesProcessed = 1
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 4
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 282 rsp_cons = 26 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 282 req_event = 1 rsp_prod = 32 rsp_event = 27
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 282 RequestsPushed = 282 ResponsesProcessed = 26
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 288 rsp_cons = 32 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 288 req_event = 1 rsp_prod = 35 rsp_event = 33
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 288 RequestsPushed = 288 ResponsesProcessed = 32
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 291 rsp_cons = 35 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 291 req_event = 1 rsp_prod = 41 rsp_event = 36
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 291 RequestsPushed = 291 ResponsesProcessed = 35
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : Waiting for 1 Submitted requests
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : 0/1 Submitted requests left (1 iterrations)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSING ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : Waiting for 0 Submitted requests
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : 0/0 Submitted requests left (0 iterrations)
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21FE250 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|NotifierDpc:Target[0] : Paused, 0 outstanding
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21FD5E0 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21FB250 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21F35E0 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21F3650 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSING ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|__WaitState:Target[0] : 0 Waited for 15613 ms
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 274 rsp_cons = 18 nr_ents = 256 sring = FFFFD0009E6AD000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 274 req_event = 1 rsp_prod = 19 rsp_event = 19
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 274 RequestsPushed = 274 ResponsesProcessed = 18
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 2
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 281 rsp_cons = 25 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 281 req_event = 1 rsp_prod = 26 rsp_event = 26
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 281 RequestsPushed = 281 ResponsesProcessed = 25
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)

--------------080600070407090202070502
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--------------080600070407090202070502--


From win-pv-devel-bounces@lists.xenproject.org Mon Jan 19 15:30:52 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 19 Jan 2015 15:30:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDEI0-0005co-Lf; Mon, 19 Jan 2015 15:30:52 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YDEHz-0005cE-3Z
	for win-pv-devel@lists.xenproject.org; Mon, 19 Jan 2015 15:30:51 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	F6/42-02697-A232DB45; Mon, 19 Jan 2015 15:30:50 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-10.tower-206.messagelabs.com!1421681446!13585794!1
X-Originating-IP: [74.125.82.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8815 invoked from network); 19 Jan 2015 15:30:46 -0000
Received: from mail-wg0-f52.google.com (HELO mail-wg0-f52.google.com)
	(74.125.82.52)
	by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	19 Jan 2015 15:30:46 -0000
Received: by mail-wg0-f52.google.com with SMTP id l2so10362836wgh.11
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 19 Jan 2015 07:30:45 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:cc:subject:content-type;
	bh=2JqnqVwXMk0eHgxxWW1vTORS7UcAFVX1OBozDRvxUqo=;
	b=EIM/3ekEE+aHijJnP3TKbkBwRFLlC0f1KyxE0VQpNFEdRtH4sxFJesP+y4GBYNfKcX
	ZsSnj7hA9Z6GN+LUsGNGHETtSN9JPvQmQS05tF2Wi/6uZdWzrp082RJegr58RdmoZCzu
	/W+8aKSCzzCvtd6x8ro595TMnmGuuHuN8AvIIGWMg5UE5QrEz8R2cqBdwLdV2Gw2J5Mu
	IWiVSRG4GOhIuk4t9nvCpv8deWv0quPnGM+fMdOyYPe3ezW8sxxH1PI/Sl2ZhfjiTK1J
	la3X7o2/oVMSwzGDBEcn9KGflYr8SoiMaEOSDzkghLIdJey8dT+FoRBt2AdMxULKfzjZ
	Ol5g==
X-Gm-Message-State: ALoCoQmpbsMk+joMW5O+bxTvhZEh90JU/1E57G1jf7baNR5TCdocIAOct9skhyYCgrkdRNxB0Gtl
X-Received: by 10.181.13.105 with SMTP id ex9mr35754029wid.69.1421681445068;
	Mon, 19 Jan 2015 07:30:45 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id i3sm14593804wie.23.2015.01.19.07.30.42
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 19 Jan 2015 07:30:44 -0800 (PST)
Message-ID: <54BD2320.10307@m2r.biz>
Date: Mon, 19 Jan 2015 16:30:40 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: win-pv-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary="------------080600070407090202070502"
Cc: paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------080600070407090202070502
Content-Type: text/plain; charset=iso-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hi, I installed winpv driver build of 15 january on Windows server 2012 
R2 standard 64 bit and have problem after save/restore.
xl save/restore didn't show any errors, trying to connected with rdp I 
was unable and with spice I saw screen with data and time (time update 
after restore) but doing ctrl+alt+canc it changed something in screen 
only after 5-10 minutes and still without showing login field.

Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official 
backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from 
xen build.
DomU xl cfg:
> name='w2012r2-01'
> builder="hvm"
> memory=8192
> vcpus=4
> acpi_s3=0
> acpi_s4=0
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:18:2a:f2,script=vif-openvswitch']
> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> disk=['/mnt/vm/disks/w2012r2-01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> boot='dc'
> device_model_version="qemu-xen"
> viridian=1
> vnc=0
> keymap="it"
> on_crash="destroy"
> vga="stdvga"
> spice=1
> spicehost='0.0.0.0'
> spiceport=6000
> spicepasswd="test"
> spicevdagent=1
> spice_clipboard_sharing=0
> spiceusbredirection=4
> soundhw="hda"
> localtime=1

I added in attachments qemu logs (before and after save/restore) with 
xen trace enabled.

If you need more informations tests tell me and I'll post them.

I have also another small question:
is ms_vm_genid needed for this case? for what I understand is only for 
active directory controller and this it isn't.

Thanks for any reply and sorry for my bad english.



--------------080600070407090202070502
Content-Type: text/plain; charset=windows-1252;
 name="qemu-dm-w2012r2-01.log.1"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="qemu-dm-w2012r2-01.log.1"

(/usr/sbin/xl:20760): SpiceWorker-Warning **: red_worker.c:11192:dev_destroy_primary_surface: double destroy of primary surface
(/usr/sbin/xl:20760): SpiceWorker-Warning **: red_worker.c:9464:red_create_surface: condition `surface->context.canvas' reached
(/usr/sbin/xl:20760): Spice-Warning **: reds.c:1863:reds_handle_ticket: Invalid password
main_channel_link: add main channel client
main_channel_handle_parsed: net test: latency 152.079000 ms, bitrate 1162452 bps (1.108601 Mbps) LOW BANDWIDTH
inputs_connect: inputs channel client create
red_dispatcher_set_cursor_peer: 
xen_platform_log xen platform: XEN|DllInitialize: XEN 8.0.0 (25) (14.01.2015)
xen_platform_log xen platform: XEN|AcpiFindRsdp: 0x00000000000F0D70
xen_platform_log xen platform: XEN|SystemGetStartOptions:  TESTSIGNING  NOEXECUTE=OPTOUT
xen_platform_log xen platform: XEN|SystemGetVersionInformation: KERNEL: 6.3 (BUILD 9600) PLATFORM WIN32_NT (x64)
xen_platform_log xen platform: XEN|SystemGetVersionInformation: SUITES:
xen_platform_log xen platform: XEN|SystemGetVersionInformation: - TERMINAL
xen_platform_log xen platform: XEN|SystemGetVersionInformation: - SINGLEUSERTS
xen_platform_log xen platform: XEN|SystemGetVersionInformation: TYPE: SERVER
xen_platform_log xen platform: XEN|SystemGetMemoryInformation: RANGE[0] 00000000.00001000 - 00000000.0009efff
xen_platform_log xen platform: XEN|SystemGetMemoryInformation: RANGE[1] 00000000.00100000 - 00000000.00101fff
xen_platform_log xen platform: XEN|SystemGetMemoryInformation: RANGE[2] 00000000.00103000 - 00000000.efffefff
xen_platform_log xen platform: XEN|SystemGetMemoryInformation: RANGE[3] 00000001.00000000 - 00000002.0effffff
xen_platform_log xen platform: XEN|AcpiGetXsdt: 0x00000000FC009FB0
xen_platform_log xen platform: XEN|SystemCpuInformation: ====> (0)
xen_platform_log xen platform: XEN|SystemCpuInformation: Manufacturer: GenuineIntel
xen_platform_log xen platform: XEN|SystemCpuInformation: APIC ID: 00
xen_platform_log xen platform: XEN|SystemCpuInformation: PROCESSOR ID: 00
xen_platform_log xen platform: XEN|SystemCpuInformation: <==== (0)
xen_platform_log xen platform: XEN|SystemCpuInformation: ====> (1)
xen_platform_log xen platform: XEN|SystemCpuInformation: Manufacturer: GenuineIntel
xen_platform_log xen platform: XEN|SystemCpuInformation: APIC ID: 02
xen_platform_log xen platform: XEN|SystemCpuInformation: PROCESSOR ID: 01
xen_platform_log xen platform: XEN|SystemCpuInformation: <==== (1)
xen_platform_log xen platform: XEN|SystemCpuInformation: ====> (3)
xen_platform_log xen platform: XEN|SystemCpuInformation: Manufacturer: GenuineIntel
xen_platform_log xen platform: XEN|SystemCpuInformation: APIC ID: 06
xen_platform_log xen platform: XEN|SystemCpuInformation: PROCESSOR ID: 03
xen_platform_log xen platform: XEN|SystemCpuInformation: <==== (3)
xen_platform_log xen platform: XEN|SystemCpuInformation: ====> (2)
xen_platform_log xen platform: XEN|SystemCpuInformation: Manufacturer: GenuineIntel
xen_platform_log xen platform: XEN|SystemCpuInformation: APIC ID: 04
xen_platform_log xen platform: XEN|SystemCpuInformation: PROCESSOR ID: 02
xen_platform_log xen platform: XEN|SystemCpuInformation: <==== (2)
xen_platform_log xen platform: XEN: HYPERCALL PAGE 0 @ 00000002.08781000
xen_platform_log xen platform: XEN: 4.4.2-pre
xen_platform_log xen platform: XENFILT|DriverEntry: XENFILT 8.0.0 (25) (14.01.2015)
xen_platform_log xen platform: XENFILT|DriverSetActiveDeviceInstance: PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01/10
xen_platform_log xen platform: XENFILT|UnplugCheckForPVDisks: PRESENT
xen_platform_log xen platform: XENFILT|UnplugCheckForPVNics: PRESENT
xen_platform_log xen platform: UNPLUG: PRE-AMBLE (DRIVERS NOT BLACKLISTED)
xen_platform_log xen platform: UNPLUG: DISKS
xen_platform_log xen platform: UNPLUG: NICS
xen_platform_log xen platform: XENFILT|FdoCreate: FFFFE001BF85F8F0 (ACPI\PNP0A03\0)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF9DB040 (PCI\VEN_8086&DEV_1237&SUBSYS_11001AF4&REV_02\00)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF9DCAD0 (PCI\VEN_8086&DEV_7000&SUBSYS_11001AF4&REV_00\08)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF99D040 (PCI\VEN_8086&DEV_7010&SUBSYS_11001AF4&REV_00\09)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF98DAD0 (PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01\10)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF9BF040 (PCI\VEN_8086&DEV_2668&SUBSYS_11001AF4&REV_01\18)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF99FAD0 (PCI\VEN_1AF4&DEV_1003&SUBSYS_00031AF4&REV_00\20)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF99C040 (PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\28)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF99BAD0 (PCI\VEN_8086&DEV_2934&SUBSYS_11001AF4&REV_03\E8)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF999040 (PCI\VEN_8086&DEV_2935&SUBSYS_11001AF4&REV_03\E9)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF998AD0 (PCI\VEN_8086&DEV_2936&SUBSYS_11001AF4&REV_03\EA)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF995040 (PCI\VEN_8086&DEV_293A&SUBSYS_11001AF4&REV_03\EF)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF994A40 (ACPI\PNP0103\0)
xen_platform_log xen platform: XENBUS|DriverEntry: XENBUS 8.0.0 (25) (14.01.2015)
xen_platform_log xen platform: XENFILT|PdoQueryInterface: PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01\10: UNPLUG_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|FdoCreate: FFFFE001BF9BC910 (XS0001 XENBUS) [ACTIVE]
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF52C9C8: Shared LevelSensitive CPU 0 VECTOR a1
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF9B9E98: DeviceExclusive Latched CPU 0 VECTOR b1
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF9B9A88: DeviceExclusive Latched CPU 1 VECTOR b1
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF9B9678: DeviceExclusive Latched CPU 2 VECTOR b1
xen_platform_log xen platform: XENBUS|FdoConnectInterrupt: FFFFE001BF9B80C8: DeviceExclusive Latched CPU 3 VECTOR b1
xen_platform_log xen platform: XENBUS|FdoScan: ====>
xen_platform_log xen platform: XENBUS|FdoCreateIoSpace: 00000000.f0000000 - 00000000.f0ffffff
xen_platform_log xen platform: XENBUS|FdoBalloon: ====>
xen_platform_log xen platform: XENBUS|FdoSuspend: ====>
xen_platform_log xen platform: SHARED_INFO: MAP XENMAPSPACE_shared_info @ 00000000.f0000000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[0] @ 00000000.00bfc000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[1] @ 00000000.008fd000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[2] @ 00000000.008fe000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[3] @ 00000000.008ff000
xen_platform_log xen platform: XENBUS|EvtchnAbiAcquire: FIFO
xen_platform_log xen platform: STORE: PAGE @ 00000000.feffc000
xen_platform_log xen platform: STORE: EVTCHN 6
xen_platform_log xen platform: EVTCHN_FIFO: EVENTARRAY[0] @ 00000001.00000000
xen_platform_log xen platform: XENBUS|EvtchnFifoExpand: added ports [00000000 - 000003ff]
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6330 (VBD 00000001)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6330 (VBD 00000002)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6330 (VBD 00000003)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6330 (VBD 00000004)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6710 (VIF 00000001)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6710 (VIF 00000002)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6710 (VIF 00000003)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B6710 (VIF 00000004)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B4540 (IFACE 00000001)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B4540 (IFACE 00000002)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B4540 (IFACE 00000003)
xen_platform_log xen platform: XENBUS|PdoCreate: FFFFE001BF9B4540 (IFACE 00000004)
xen_platform_log xen platform: XENFILT|FdoCreate: FFFFE001BF9E7040 (PCIIDE\IDEChannel\0)
xen_platform_log xen platform: XENFILT|FdoCreate: FFFFE001BF9E4AD0 (PCIIDE\IDEChannel\1)
xen_platform_log xen platform: XENFILT|PdoCreate: FFFFE001BF9D2AD0 (IDE\CdRomQEMU_QEMU_DVD-ROM_______________________1.6.____\0.1.0)
xen_platform_log xen platform: XENVBD|DriverEntry:8.0.0.8 (14/1/2015)
xen_platform_log xen platform: XENVBD|__DriverParseParameterKey:DriverParameters: 
xen_platform_log xen platform: XENDISK|DriverEntry:XENDISK 8.0.0 (8) (14.01.2015)
xen_platform_log xen platform: XENDISK|FdoCreate:FFFFE001BFA24C90
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVBD|DispatchPnp:DeviceObject 0xFFFFE001BFA25050 is not FDO (0x0000000000000000) or a PDO
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Version = 0
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Master = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: ScatterGather = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DemandMode = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: AutoInitialize = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma32BitAddresses = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: IgnoreCount = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma64BitAddresses = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: BusNumber = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaChannel = ffffffff
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: InterfaceType = Internal
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaWidth = 8Bits
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaSpeed = Compatible
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: MaximumLength = 000b0000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaPort = ffffffff
xen_platform_log xen platform: XENBUS|DmaGetAdapter: no interception
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: STORE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: EVTCHN_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: GNTTAB_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: SUSPEND_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: DEBUG_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VBD: EMULATED_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENFILT|PdoQueryInterface: PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01\10: EMULATED_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVBD|__FdoSetDevicePowerState:POWER D3 to D0
xen_platform_log xen platform: XENVBD|__FdoD3ToD0:D3->D0
xen_platform_log xen platform: XENVBD|__FdoIsPdoUnplugged:Target[0] : (vbd/768) Emulated NOT_PRESENT
xen_platform_log xen platform: XENVBD|PdoCreate:Target[0] : Creating (PV)
xen_platform_log xen platform: XENVBD|PdoSetDevicePowerState:Target[0] : POWER D3 to D0
xen_platform_log xen platform: XENVBD|PdoD3ToD0:Target[0] : D3->D0 (PV)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : INITIALIZED ----> ENABLED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : NOT_DUMP NOT_HIBER NOT_PAGE
xen_platform_log xen platform: XENVBD|PdoReadInquiryData:Target[0] : Failed to get Page80 data
xen_platform_log xen platform: XENVBD|PdoReadInquiryData:Target[0] : Failed to get Page83 data
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/20/768)
xen_platform_log xen platform: XENVBD|FrontendReadFeatures:Target[0] : Features: PERSISTENT 
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[0] @ 00000000.f0001000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000020 - 000001ff]
xen_platform_log xen platform: XENVBD|__ReadDiskInfo:Target[0] : 409600000 sectors of 512 bytes (512)
xen_platform_log xen platform: XENVBD|__ReadDiskInfo:Target[0] : 195 GB (00000000) 
xen_platform_log xen platform: XENVBD|FrontendReadDiskInfo:Target[0] : Features: FLUSH 
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XENVBD|PdoCreate:Target[0] : Created (PV)
xen_platform_log xen platform: XENVBD|FdoLogTargets:ScanThread ===>
xen_platform_log xen platform: XENVBD|FdoLogTargets:ScanThread : Target[0] = 0xFFFFE001BFA2AA70 (present)
xen_platform_log xen platform: XENVBD|FdoLogTargets:ScanThread <===
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENVBD|__HandlePage83:Target[0] : INQUIRY Using Fake Page83 Data
xen_platform_log xen platform: XENVBD|__HandlePage80:Target[0] : INQUIRY Using Fake Page80 Data
xen_platform_log xen platform: XENDISK|PdoCreate:FFFFE001BF520600
xen_platform_log xen platform: XENVBD|PdoSetDeviceObject:Target[0] : Setting DeviceObject = 0xFFFFE001BF51F060
xen_platform_log xen platform: XENVBD|FdoMapDeviceObjectToPdo:0xFFFFE001BF51F060 --> Target 0 (000000)
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 13:QUERY_ID -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 08:QUERY_INTERFACE -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 15:QUERY_BUS_INFORMATION -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 19:UNKNOWN -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 18:UNKNOWN -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 0d:FILTER_RESOURCE_REQUIREMENTS -> c00000bb
xen_platform_log xen platform: XENVBD|PdoSetDevicePnpState:Target[0] : PNP Present to Started
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 08:QUERY_INTERFACE -> c00000bb
xen_platform_log xen platform: XENVBD|PdoDispatchPnp:Target[0] : 07:QUERY_DEVICE_RELATIONS -> c00000bb
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER NOT_PAGE
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENVIF|DriverEntry: XENVIF 8.0.0 (10) (14.01.2015)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: DEBUG_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: SUSPEND_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: EVTCHN_INTERFACE (VERSION 2)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: STORE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: RANGE_SET_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: GNTTAB_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVIF|FdoCreate: FFFFE001BFDF2D50 (XS0001 XENVIF)
xen_platform_log xen platform: XENIFACE|DriverEntry: 8.0.0.10 (14/1/2015)
xen_platform_log xen platform: XENIFACE|ThreadCreate: Create thread FFFFF8004BC90E78 FFFFE001BFDF1090
xen_platform_log xen platform: XENIFACE|ThreadCreate: Create thread FFFFF8004BC8FDC0 FFFFE001BFDF10A0
xen_platform_log xen platform: XENBUS|PdoQueryInterface: IFACE: SUSPEND_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: IFACE: SHARED_INFO_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: IFACE: STORE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENIFACE|FdoInitialiseXSRegistryEntries: no such xenstore key
xen_platform_log xen platform: XENIFACE|FdoInitialiseXSRegistryEntries: Failed to initialise registry (c0000022)
xen_platform_log xen platform: XENIFACE|ThreadCreate: Create thread FFFFF8004BC90954 FFFFE001BFDF12B0
xen_platform_log xen platform: XENIFACE|FdoCreate: FFFFE001BFDEFD50 (IFACE)
xen_platform_log xen platform: XENVIF|__PdoSetPermanentAddress: 0 00:16:3E:24:B7:D7
xen_platform_log xen platform: XENVIF|__PdoSetContainerID: 0 {8c3749fc-7602-5b90-84f7-ffd4c1be03b8}
xen_platform_log xen platform: XENVIF|PdoCreate: FFFFE001BFF18060 (0 00000001)
xen_platform_log xen platform: XENVIF|PdoCreate: FFFFE001BFF18060 (0 00000002)
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:NotifyUnicastIpAddressChange (0136) @ FFFFF8004A84046C
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:GetUnicastIpAddressTable (0050) @ FFFFF8004A83724C
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:FreeMibTable (0028) @ FFFFF8004A81E4A0
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:CancelMibChangeNotify2 (0000) @ FFFFF8004A850DC0
xen_platform_log xen platform: XENVIF|__PdoSetPermanentAddress: 1 00:16:3E:18:2A:F2
xen_platform_log xen platform: XENVIF|__PdoSetContainerID: 1 {f49f5b7c-ac68-5a19-9205-d0b6c1e5b2ce}
xen_platform_log xen platform: XENVIF|PdoCreate: FFFFE001BFF18560 (1 00000001)
xen_platform_log xen platform: XENVIF|PdoCreate: FFFFE001BFF18560 (1 00000002)
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:NotifyUnicastIpAddressChange (0136) @ FFFFF8004A84046C
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:GetUnicastIpAddressTable (0050) @ FFFFF8004A83724C
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:FreeMibTable (0028) @ FFFFF8004A81E4A0
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:CancelMibChangeNotify2 (0000) @ FFFFF8004A850DC0
xen_platform_log xen platform: XENNET|DriverEntry: XENNET 8.0.0 (9) (06.01.2015)
xen_platform_log xen platform: XENIFACE|WmiInit: DRV: XenIface WMI Initialisation
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:GetIfTable2 (0040) @ FFFFF8004A83C478
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:FreeMibTable (0028) @ FFFFF8004A81E4A0
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 0: VIF_INTERFACE (VERSION 2)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 0: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 0: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Version = 2
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Master = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: ScatterGather = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DemandMode = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: AutoInitialize = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma32BitAddresses = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: IgnoreCount = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma64BitAddresses = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: BusNumber = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaChannel = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: InterfaceType = Internal
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaWidth = 8Bits
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaSpeed = Compatible
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: MaximumLength = 00020000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaPort = 00000000
xen_platform_log xen platform: XENBUS|DmaGetAdapter: no interception
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[1] @ 00000000.f0002000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000200 - 000003ff]
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[2] @ 00000000.f0003000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000400 - 000005ff]
xen_platform_log xen platform: XENNET|AdapterMediaStateChange: LINK: UP: SPEED=1000000000 DUPLEX=FULL
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:GetIfTable2 (0040) @ FFFFF8004A83C478
xen_platform_log xen platform: XENVIF|LinkGetRoutineAddress: netio.sys:FreeMibTable (0028) @ FFFFF8004A81E4A0
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 1: VIF_INTERFACE (VERSION 2)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 1: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|PdoQueryInterface: VIF: CACHE_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENVIF|PdoQueryInterface: 1: BUS_INTERFACE (VERSION 1)
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Version = 2
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Master = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: ScatterGather = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DemandMode = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: AutoInitialize = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma32BitAddresses = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: IgnoreCount = FALSE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: Dma64BitAddresses = TRUE
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: BusNumber = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaChannel = 00000000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: InterfaceType = Internal
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaWidth = 8Bits
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaSpeed = Compatible
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: MaximumLength = 00020000
xen_platform_log xen platform: XENBUS|DmaDumpDeviceDescription: DmaPort = 00000000
xen_platform_log xen platform: XENBUS|DmaGetAdapter: no interception
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[3] @ 00000000.f0004000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000600 - 000007ff]
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[4] @ 00000000.f0005000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000800 - 000009ff]
xen_platform_log xen platform: XENNET|AdapterMediaStateChange: LINK: UP: SPEED=1000000000 DUPLEX=FULL
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : NOT_DUMP NOT_HIBER NOT_PAGE
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENBUS|RangeSetPop: fail1 (c000009a)
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[5] @ 00000000.f0006000
xen_platform_log xen platform: XENBUS|GnttabExpand: added references [00000a00 - 00000bff]
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : NOT_DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENBUS|FdoQueryPnpDeviceState: XS0001 XENBUS: not disableable
xen_platform_log xen platform: XENVBD|FdoDispatchPnp:14:QUERY_PNP_DEVICE_STATE -> c00000bb
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Guest agent lite main loop starting
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Set time to XenTime
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: hosttimeIsUTC: Open Registry Key
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Time is now  2015.1.19 15:28:58.299
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Set time to 2015.1.19 15:28:58.318
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: About to add feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Establish watch control/shutdown
xen_platform_log xen platform: XENIFACE|StartWatch: Start Watch FFFFE001C22FF830
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: About to advertise features
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:MethodExec Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SessionStart Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SetVValue Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SetVPath Failed 
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Failed to advertise shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: About to kick xapi 
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent woke up for 3
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Fire 00000015BBB1F060
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fire feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Check if we need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: No need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fired feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 256 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009CF45000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 256 req_event = 1 rsp_prod = 8 rsp_event = 1
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 256 RequestsPushed = 256 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 1
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: 0xFFFFE001BFF86010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: FRONT: req_prod_pvt = 40 rsp_cons = 8 nr_ents = 256 sring = FFFFD0009CF4B000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: SHARED: req_prod = 40 req_event = 41 rsp_prod = 40 rsp_event = 9
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: RequestsPosted = 40 RequestsPushed = 40 ResponsesProcessed = 8
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsGranted = 16 PacketsCopied = 4 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsQueued = 20 PacketsPrepared = 20 PacketsUnprepared = 0 PacketsSent = 20 PacketsCompleted = 4
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: 0xFFFFE001BFF86010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: FRONT: req_prod_pvt = 44 rsp_cons = 40 nr_ents = 256 sring = FFFFD0009CF4B000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: SHARED: req_prod = 44 req_event = 45 rsp_prod = 44 rsp_event = 41
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: RequestsPosted = 44 RequestsPushed = 44 ResponsesProcessed = 40
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsGranted = 18 PacketsCopied = 4 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsQueued = 22 PacketsPrepared = 22 PacketsUnprepared = 0 PacketsSent = 22 PacketsCompleted = 20
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
red_channel_client_disconnect: rcc=0x7f64d6e61500 (channel=0x7f64d6c562d0 type=1 id=0)
main_channel_client_on_disconnect: rcc=0x7f64d6e61500
red_client_destroy: destroy client 0x7f64d6e50520 with #channels=10
red_dispatcher_disconnect_cursor_peer: 
red_channel_client_disconnect: rcc=0x7f64d6edc380 (channel=0x7f64d6d84100 type=4 id=0)
red_channel_client_disconnect: rcc=0x7f64d6f0a4f0 (channel=0x7f64d6c61e20 type=3 id=0)
red_channel_client_disconnect_dummy: rcc=0x7f64d6e99a10 (channel=0x7f64d6d14760 type=5 id=0)
snd_channel_put: SndChannel=0x7f64d7021f00 freed
red_channel_client_disconnect: rcc=0x7f64d6dfa8a0 (channel=0x7f64d6d0e9a0 type=9 id=0)
red_channel_client_disconnect_dummy: rcc=0x7f64d6d4e5c0 (channel=0x7f64d6d0faa0 type=6 id=0)
snd_channel_put: SndChannel=0x7f64d6fe5ac0 freed
red_channel_client_disconnect: rcc=0x7f64d6dd3800 (channel=0x7f64d6d27810 type=9 id=1)
red_channel_client_disconnect: rcc=0x7f64d6e2f760 (channel=0x7f64d6d17050 type=9 id=2)
red_channel_client_disconnect: rcc=0x7f64d6e04000 (channel=0x7f64d6d17c50 type=9 id=3)
red_dispatcher_disconnect_display_peer: 
red_channel_client_disconnect: rcc=0x7f64d6f2d630 (channel=0x7f64d6d83b50 type=2 id=0)
(/usr/sbin/xl:20760): Spice-Warning **: reds.c:1863:reds_handle_ticket: Invalid password
main_channel_link: add main channel client
main_channel_handle_parsed: net test: latency 90.645000 ms, bitrate 1754171 bps (1.672908 Mbps) LOW BANDWIDTH
inputs_connect: inputs channel client create
red_dispatcher_set_cursor_peer: 
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: 0xFFFFE001BFF86010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: FRONT: req_prod_pvt = 52 rsp_cons = 44 nr_ents = 256 sring = FFFFD0009CF4B000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: SHARED: req_prod = 52 req_event = 53 rsp_prod = 52 rsp_event = 45
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: RequestsPosted = 52 RequestsPushed = 52 ResponsesProcessed = 44
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsGranted = 22 PacketsCopied = 4 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsQueued = 26 PacketsPrepared = 26 PacketsUnprepared = 0 PacketsSent = 26 PacketsCompleted = 22
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
red_channel_client_disconnect: rcc=0x7f64d6e41df0 (channel=0x7f64d6c562d0 type=1 id=0)
main_channel_client_on_disconnect: rcc=0x7f64d6e41df0
red_client_destroy: destroy client 0x7f64d6e027a0 with #channels=10
red_channel_client_disconnect_dummy: rcc=0x7f64d6dd9aa0 (channel=0x7f64d6d0faa0 type=6 id=0)
snd_channel_put: SndChannel=0x7f64d6ea3c00 freed
red_dispatcher_disconnect_cursor_peer: 
red_channel_client_disconnect: rcc=0x7f64bc05e240 (channel=0x7f64d6d84100 type=4 id=0)
red_channel_client_disconnect: rcc=0x7f64d6e996e0 (channel=0x7f64d6c61e20 type=3 id=0)
red_channel_client_disconnect_dummy: rcc=0x7f64d6eeb7d0 (channel=0x7f64d6d14760 type=5 id=0)
snd_channel_put: SndChannel=0x7f64d6e04000 freed
red_channel_client_disconnect: rcc=0x7f64d6e90030 (channel=0x7f64d6d0e9a0 type=9 id=0)
red_channel_client_disconnect: rcc=0x7f64d6ee3450 (channel=0x7f64d6d27810 type=9 id=1)
red_channel_client_disconnect: rcc=0x7f64d6dd3800 (channel=0x7f64d6d17050 type=9 id=2)
red_channel_client_disconnect: rcc=0x7f64d6f0a230 (channel=0x7f64d6d17c50 type=9 id=3)
red_dispatcher_disconnect_display_peer: 
red_channel_client_disconnect: rcc=0x7f64bc18d9c0 (channel=0x7f64d6d83b50 type=2 id=0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 264 rsp_cons = 8 nr_ents = 256 sring = FFFFD0009CF45000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 264 req_event = 1 rsp_prod = 13 rsp_event = 9
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 264 RequestsPushed = 264 ResponsesProcessed = 8
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 1
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 269 rsp_cons = 13 nr_ents = 256 sring = FFFFD0009CF45000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 269 req_event = 1 rsp_prod = 14 rsp_event = 14
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 269 RequestsPushed = 269 ResponsesProcessed = 13
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 1
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 270 rsp_cons = 14 nr_ents = 256 sring = FFFFD0009CF45000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 270 req_event = 1 rsp_prod = 15 rsp_event = 15
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 270 RequestsPushed = 270 ResponsesProcessed = 14
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 1
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: SUSPEND: ====>
xen_platform_log xen platform: SUSPEND: SCHEDOP_shutdown:SHUTDOWN_suspend ====>
qemu: terminating on signal 1 from pid 21878

--------------080600070407090202070502
Content-Type: text/plain; charset=windows-1252;
 name="qemu-dm-w2012r2-01.log"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="qemu-dm-w2012r2-01.log"

xen_ram_alloc: do not alloc 20f000000 bytes of ram at 0 when runstate is INMIGRATE
xen_ram_alloc: do not alloc 1000000 bytes of ram at 20f000000 when runstate is INMIGRATE
xen_ram_alloc: do not alloc 10000 bytes of ram at 210000000 when runstate is INMIGRATE
xen_ram_alloc: do not alloc 40000 bytes of ram at 210010000 when runstate is INMIGRATE
xen_ram_alloc: do not alloc 40000 bytes of ram at 210050000 when runstate is INMIGRATE
(/usr/sbin/xl:22481): SpiceWorker-Warning **: red_worker.c:11192:dev_destroy_primary_surface: double destroy of primary surface
(/usr/sbin/xl:22481): SpiceWorker-Warning **: red_worker.c:9464:red_create_surface: condition `surface->context.canvas' reached
xen_platform_log xen platform: SUSPEND: SCHEDOP_shutdown:SHUTDOWN_suspend <==== (00000000)
xen_platform_log xen platform: XEN: HYPERCALL PAGE 0 @ 00000002.08781000
xen_platform_log xen platform: SHARED_INFO: MAP XENMAPSPACE_shared_info @ 00000000.f0000000
xen_platform_log xen platform: STORE: PAGE @ 00000000.feffc000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[0] @ 00000000.f0001000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[1] @ 00000000.f0002000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[2] @ 00000000.f0003000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[3] @ 00000000.f0004000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[4] @ 00000000.f0005000
xen_platform_log xen platform: GNTTAB: MAP XENMAPSPACE_grant_table[5] @ 00000000.f0006000
xen_platform_log xen platform: EVTCHN_FIFO: RESET
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[0] @ 00000001.13f78000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[1] @ 00000001.13c7a000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[2] @ 00000001.1867c000
xen_platform_log xen platform: EVTCHN_FIFO: CONTROLBLOCK[3] @ 00000001.1857e000
xen_platform_log xen platform: XENBUS|EvtchnAbiAcquire: FIFO
xen_platform_log xen platform: STORE: EVTCHN 6
xen_platform_log xen platform: EVTCHN_FIFO: EVENTARRAY[0] @ 00000001.02f80000
xen_platform_log xen platform: XENBUS|EvtchnFifoExpand: added ports [00000000 - 000003ff]
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVBD|FdoSuspendLateCallback:8.0.0.8 (14/1/2015)
xen_platform_log xen platform: XENVBD|FrontendSuspendLateCallback:Target[0] : ===> from ENABLED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XENVBD|PdoPostResume:Target[0] : 0 Fresh SRBs
xen_platform_log xen platform: XENVBD|PdoPostResume:Target[0] : NOT_MISSING ((null))
xen_platform_log xen platform: XENVBD|FrontendSuspendLateCallback:Target[0] : <=== restored ENABLED
xen_platform_log xen platform: XENIFACE|FireSuspendEvent: Ready to unsuspend Event
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:a144:f221:ae00:b065
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 94.84.48.35
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:a144:f221:ae00:b065
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 94.84.48.35
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:a144:f221:ae00:b065
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 94.84.48.35
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENBUS|EvtchnBind: fail2
xen_platform_log xen platform: XENBUS|EvtchnBind: fail1 (c00000bb)
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:e85d:bc87:d602:682d
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 192.168.46.1
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:e85d:bc87:d602:682d
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 192.168.46.1
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareNeighbourAdvertisement: fe80:0000:0000:0000:e85d:bc87:d602:682d
xen_platform_log xen platform: XENVIF|__TransmitterRingPrepareArp: 192.168.46.1
xen_platform_log xen platform: SUSPEND: <====
xen_platform_log xen platform: XENNET|AdapterMediaStateChange: LINK: UP: SPEED=1000000000 DUPLEX=FULL
xen_platform_log xen platform: XENIFACE|FdoRegistryThreadHandler: WriteRegistry
xen_platform_log xen platform: XENIFACE|FdoInitialiseXSRegistryEntries: no such xenstore key
xen_platform_log xen platform: XENIFACE|FdoInitialiseXSRegistryEntries: Failed to initialise registry (c0000022)
xen_platform_log xen platform: XENIFACE|WatchCallbackThread: SessionSuspendResumeUnwatch FFFFE001C22FF830
xen_platform_log xen platform: XENNET|AdapterMediaStateChange: LINK: UP: SPEED=1000000000 DUPLEX=FULL
xen_platform_log xen platform: XENIFACE|StartWatch: Start Watch FFFFE001C22FF830
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent woke up for 3
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Fire 00000015BBB1F060
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fire feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Check if we need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: No need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fired feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent woke up for 2
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Suspend event
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Set time to XenTime
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: hosttimeIsUTC: Open Registry Key
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Time is now  2015.1.19 15:34:56.592
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Set time to 2015.1.19 15:37:44.73
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:MethodExec Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SessionStart Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SetVValue Failed
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: WmiSessionSetEntry:SetVPath Failed 
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Failed to advertise shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Handled suspend event
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent woke up for 3
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Fire 00000015BBB1F060
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fire feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: Check if we need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: No need to shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: fired feature shutdown
xen_platform_log xen platform: XENIFACE|SessionExecuteLog: USER: win agent going to sleep
(/usr/sbin/xl:22481): Spice-Warning **: reds.c:1863:reds_handle_ticket: Invalid password
main_channel_link: add main channel client
main_channel_handle_parsed: net test: latency 84.264000 ms, bitrate 1918215 bps (1.829352 Mbps) LOW BANDWIDTH
inputs_connect: inputs channel client create
red_dispatcher_set_cursor_peer: 
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 256 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6AD000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 256 req_event = 1 rsp_prod = 15 rsp_event = 1
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 256 RequestsPushed = 256 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 2
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 257 rsp_cons = 1 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 257 req_event = 1 rsp_prod = 15 rsp_event = 2
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 257 RequestsPushed = 257 ResponsesProcessed = 1
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 256 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 256 req_event = 1 rsp_prod = 5 rsp_event = 1
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 256 RequestsPushed = 256 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 271 rsp_cons = 15 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 271 req_event = 1 rsp_prod = 17 rsp_event = 16
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 271 RequestsPushed = 271 ResponsesProcessed = 15
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: 0xFFFFE001BFF33010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: FRONT: req_prod_pvt = 3 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6AA000
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: SHARED: req_prod = 3 req_event = 4 rsp_prod = 3 rsp_event = 1
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: RequestsPosted = 3 RequestsPushed = 3 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: PacketsGranted = 75 PacketsCopied = 0 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[1]: PacketsQueued = 75 PacketsPrepared = 75 PacketsUnprepared = 0 PacketsSent = 75 PacketsCompleted = 74
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 271 rsp_cons = 15 nr_ents = 256 sring = FFFFD0009E6AD000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 271 req_event = 1 rsp_prod = 17 rsp_event = 16
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 271 RequestsPushed = 271 ResponsesProcessed = 15
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 2
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: 0xFFFFE001BFF93010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: FRONT: req_prod_pvt = 3 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6B4000
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: SHARED: req_prod = 3 req_event = 4 rsp_prod = 3 rsp_event = 1
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: RequestsPosted = 3 RequestsPushed = 3 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: PacketsGranted = 17 PacketsCopied = 7 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: PacketsQueued = 24 PacketsPrepared = 24 PacketsUnprepared = 0 PacketsSent = 24 PacketsCompleted = 23
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 273 rsp_cons = 17 nr_ents = 256 sring = FFFFD0009E6AD000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 273 req_event = 1 rsp_prod = 18 rsp_event = 18
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 273 RequestsPushed = 273 ResponsesProcessed = 17
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 2
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 273 rsp_cons = 17 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 273 req_event = 1 rsp_prod = 18 rsp_event = 18
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 273 RequestsPushed = 273 ResponsesProcessed = 17
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 261 rsp_cons = 5 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 261 req_event = 1 rsp_prod = 9 rsp_event = 6
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 261 RequestsPushed = 261 ResponsesProcessed = 5
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 265 rsp_cons = 9 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 265 req_event = 1 rsp_prod = 13 rsp_event = 10
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 265 RequestsPushed = 265 ResponsesProcessed = 9
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: 0xFFFFE001BFF8F010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: FRONT: req_prod_pvt = 16 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6B3000
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: SHARED: req_prod = 16 req_event = 17 rsp_prod = 16 rsp_event = 1
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: RequestsPosted = 16 RequestsPushed = 16 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: PacketsGranted = 49 PacketsCopied = 0 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[2]: PacketsQueued = 49 PacketsPrepared = 49 PacketsUnprepared = 0 PacketsSent = 49 PacketsCompleted = 41
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: 0xFFFFE001BFF3C010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: FRONT: req_prod_pvt = 16 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6AC000
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: SHARED: req_prod = 16 req_event = 17 rsp_prod = 16 rsp_event = 1
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: RequestsPosted = 16 RequestsPushed = 16 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: PacketsGranted = 91 PacketsCopied = 0 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[3]: PacketsQueued = 91 PacketsPrepared = 91 PacketsUnprepared = 0 PacketsSent = 91 PacketsCompleted = 83
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: 0xFFFFE001BFF2E010 [ENABLED]
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: FRONT: req_prod_pvt = 12 rsp_cons = 6 nr_ents = 256 sring = FFFFD0009E6A9000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: SHARED: req_prod = 12 req_event = 13 rsp_prod = 12 rsp_event = 7
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: RequestsPosted = 12 RequestsPushed = 12 ResponsesProcessed = 6
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: State:
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Packet = 0000000000000000
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: - Count = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsGranted = 34 PacketsCopied = 11 PacketsFaked = 0
xen_platform_log xen platform: XENVIF|TRANSMITTER[0]: PacketsQueued = 45 PacketsPrepared = 45 PacketsUnprepared = 0 PacketsSent = 45 PacketsCompleted = 42
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000017178)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 269 rsp_cons = 13 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 269 req_event = 1 rsp_prod = 16 rsp_event = 14
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 269 RequestsPushed = 269 ResponsesProcessed = 13
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 272 rsp_cons = 16 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 272 req_event = 1 rsp_prod = 20 rsp_event = 17
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 272 RequestsPushed = 272 ResponsesProcessed = 16
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 274 rsp_cons = 18 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 274 req_event = 1 rsp_prod = 22 rsp_event = 19
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 274 RequestsPushed = 274 ResponsesProcessed = 18
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF7B020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 256 rsp_cons = 0 nr_ents = 256 sring = FFFFD0009E6AE000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 256 req_event = 1 rsp_prod = 1 rsp_event = 1
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 256 RequestsPushed = 256 ResponsesProcessed = 0
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 4
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 278 rsp_cons = 22 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 278 req_event = 1 rsp_prod = 24 rsp_event = 23
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 278 RequestsPushed = 278 ResponsesProcessed = 22
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : Waiting for 2 Submitted requests
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : 0/2 Submitted requests left (1 iterrations)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSING ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : Waiting for 7 Submitted requests
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : 0/7 Submitted requests left (2 iterrations)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSING ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 280 rsp_cons = 24 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 280 req_event = 1 rsp_prod = 25 rsp_event = 25
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 280 RequestsPushed = 280 ResponsesProcessed = 24
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 276 rsp_cons = 20 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 276 req_event = 1 rsp_prod = 26 rsp_event = 21
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 276 RequestsPushed = 276 ResponsesProcessed = 20
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF7B020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 257 rsp_cons = 1 nr_ents = 256 sring = FFFFD0009E6AE000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 257 req_event = 1 rsp_prod = 3 rsp_event = 2
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 257 RequestsPushed = 257 ResponsesProcessed = 1
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 4
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 282 rsp_cons = 26 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 282 req_event = 1 rsp_prod = 32 rsp_event = 27
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 282 RequestsPushed = 282 ResponsesProcessed = 26
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 288 rsp_cons = 32 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 288 req_event = 1 rsp_prod = 35 rsp_event = 33
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 288 RequestsPushed = 288 ResponsesProcessed = 32
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[1]: 0xFFFFE001BFF24020 [1] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[1]: FRONT: req_prod_pvt = 291 rsp_cons = 35 nr_ents = 256 sring = FFFFD0009E6A6000
xen_platform_log xen platform: XENVIF|RECEIVER[1]: SHARED: req_prod = 291 req_event = 1 rsp_prod = 41 rsp_event = 36
xen_platform_log xen platform: XENVIF|RECEIVER[1]: RequestsPosted = 291 RequestsPushed = 291 ResponsesProcessed = 35
xen_platform_log xen platform: XENVIF|RECEIVER[1]: [RX]: Events = 0 Dpcs = 71
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : Waiting for 1 Submitted requests
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : 0/1 Submitted requests left (1 iterrations)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSING ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : Waiting for 0 Submitted requests
xen_platform_log xen platform: XENVBD|__PdoPauseDataPath:Target[0] : 0/0 Submitted requests left (0 iterrations)
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21FE250 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|NotifierDpc:Target[0] : Paused, 0 outstanding
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21FD5E0 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21FB250 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21F35E0 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|PdoAbortAllSrbs:Target[0] : FreshSrb 0xFFFFE001C21F3650 -> SCSI_ABORTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSING
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSING ----> CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CLOSED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED
xen_platform_log xen platform: XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE
xen_platform_log xen platform: XENVBD|__WaitState:Target[0] : 0 Waited for 15613 ms
xen_platform_log xen platform: XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000}
xen_platform_log xen platform: XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/qdisk/21/768)
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state PREPARED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state CONNECTED
xen_platform_log xen platform: XENVBD|__FrontendSetState:Target[0] : in state ENABLED
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF78710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 274 rsp_cons = 18 nr_ents = 256 sring = FFFFD0009E6AD000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 274 req_event = 1 rsp_prod = 19 rsp_event = 19
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 274 RequestsPushed = 274 ResponsesProcessed = 18
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 2
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XEN|DEBUG: ====> (xenvif.sys + 0000000000010CB0)
xen_platform_log xen platform: XENVIF|RECEIVER[0]: 0xFFFFE001BFF20710 [0] [ENABLED][RUNNING]
xen_platform_log xen platform: XENVIF|RECEIVER[0]: FRONT: req_prod_pvt = 281 rsp_cons = 25 nr_ents = 256 sring = FFFFD0009E6A5000
xen_platform_log xen platform: XENVIF|RECEIVER[0]: SHARED: req_prod = 281 req_event = 1 rsp_prod = 26 rsp_event = 26
xen_platform_log xen platform: XENVIF|RECEIVER[0]: RequestsPosted = 281 RequestsPushed = 281 ResponsesProcessed = 25
xen_platform_log xen platform: XENVIF|RECEIVER[0]: [RX]: Events = 0 Dpcs = 16
xen_platform_log xen platform: XEN|DEBUG: <==== (xenvif.sys + 0000000000010CB0)

--------------080600070407090202070502
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--------------080600070407090202070502--


From win-pv-devel-bounces@lists.xenproject.org Mon Jan 19 16:22:28 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 19 Jan 2015 16:22:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDF5w-0005L3-Ef; Mon, 19 Jan 2015 16:22:28 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <owen.smith@citrix.com>) id 1YDF5v-0005Js-Vj
	for win-pv-devel@lists.xenproject.org; Mon, 19 Jan 2015 16:22:28 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	35/96-09842-34F2DB45; Mon, 19 Jan 2015 16:22:27 +0000
X-Env-Sender: owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1421684543!22480311!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5796 invoked from network); 19 Jan 2015 16:22:26 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	19 Jan 2015 16:22:26 -0000
X-IronPort-AV: E=Sophos;i="5.09,427,1418083200"; d="scan'208";a="219328486"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 19 Jan 2015 16:22:11 +0000
Message-ID: <1421684531-11836-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH] [WHQL] NDIS6.0 1c_64bitOIDs /
	1c_IOCTLCoverage
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Some QUERY OIDs should return truncated results when 4 byte buffers are
passed for 8 byte values. Avoid corner cases where the OID would succeed,
but not copy data due to wrong buffer sizes.

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xennet/adapter.c | 176 +++++++++++++++++++++++++++++++++------------------
 1 file changed, 114 insertions(+), 62 deletions(-)

diff --git a/src/xennet/adapter.c b/src/xennet/adapter.c
index 37b9c37..b094519 100644
--- a/src/xennet/adapter.c
+++ b/src/xennet/adapter.c
@@ -554,11 +554,16 @@ invalid_parameter:
 static NDIS_STATUS
 AdapterQueryGeneralStatistics(
     IN  PXENNET_ADAPTER     Adapter,
-    IN  PNDIS_STATISTICS_INFO   Info
+    IN  PNDIS_STATISTICS_INFO   Info,
+    IN  ULONG               BufferLength,
+    IN OUT PULONG           BytesWritten
     )
 {
     ULONGLONG   Value;
 
+    if (BufferLength < sizeof(NDIS_STATISTICS_INFO))
+        goto fail1;
+
     RtlZeroMemory(Info, sizeof(NDIS_STATISTICS_INFO));
     Info->Header.Revision = NDIS_OBJECT_REVISION_1;
     Info->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
@@ -716,7 +721,12 @@ AdapterQueryGeneralStatistics(
     Info->SupportedStatistics |= NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS;
     Info->ifOutDiscards = 0;
 
+    *BytesWritten = sizeof(NDIS_STATISTICS_INFO);
     return NDIS_STATUS_SUCCESS;
+
+fail1:
+    *BytesWritten = 0;
+    return NDIS_STATUS_BUFFER_TOO_SHORT;
 }
 
 static NDIS_STATUS
@@ -724,7 +734,8 @@ AdapterQueryMulticastList(
     IN  PXENNET_ADAPTER     Adapter,
     IN  PVOID               Buffer,
     IN  ULONG               BufferLength,
-    IN OUT PULONG           BytesNeeded
+    IN OUT PULONG           BytesNeeded,
+    IN OUT PULONG           BytesWritten
     )
 {
     ULONG       Count;
@@ -749,10 +760,12 @@ AdapterQueryMulticastList(
     if (!NT_SUCCESS(status))
         goto fail2;
 
+    *BytesWritten = Count * ETHERNET_ADDRESS_LENGTH;
     return NDIS_STATUS_SUCCESS;
 
 fail2:
 fail1:
+    *BytesWritten = 0;
     return ndisStatus;
 }
 
@@ -775,7 +788,7 @@ AdapterSetMulticastAddresses(
     return NDIS_STATUS_SUCCESS;
 }
 
-static NDIS_STATUS
+static FORCEINLINE VOID
 AdapterGetXmitOk(
     IN  PXENNET_ADAPTER     Adapter,
     OUT PULONGLONG          Buffer
@@ -803,11 +816,9 @@ AdapterGetXmitOk(
                 &Value);
 
     *Buffer += (ULONG)Value;
-
-    return NDIS_STATUS_SUCCESS;
 }
 
-static NDIS_STATUS
+static FORCEINLINE VOID
 AdapterGetRcvOk(
     IN  PXENNET_ADAPTER     Adapter,
     OUT PULONGLONG          Buffer
@@ -835,8 +846,6 @@ AdapterGetRcvOk(
                 &Value);
 
     *Buffer += (ULONG)Value;
-
-    return NDIS_STATUS_SUCCESS;
 }
 
 static NDIS_STATUS
@@ -892,11 +901,16 @@ AdapterGetRcvError(
 static FORCEINLINE NDIS_STATUS
 AdapterInterruptModeration(
     IN  PXENNET_ADAPTER     Adapter,
-    IN  PNDIS_INTERRUPT_MODERATION_PARAMETERS   Params
+    IN  PNDIS_INTERRUPT_MODERATION_PARAMETERS   Params,
+    IN  ULONG               BufferLength,
+    IN OUT PULONG           BytesWritten
     )
 {
     UNREFERENCED_PARAMETER(Adapter);
 
+    if (BufferLength < sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS))
+        goto fail1;
+
     Params->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
     Params->Header.Revision = NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1;
     Params->Header.Size = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
@@ -904,7 +918,12 @@ AdapterInterruptModeration(
     Params->Flags = 0;
     Params->InterruptModeration = NdisInterruptModerationNotSupported;
 
+    *BytesWritten = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
     return NDIS_STATUS_SUCCESS;
+
+fail1:
+    *BytesWritten = 0;
+    return NDIS_STATUS_BUFFER_TOO_SHORT;
 }
 
 NDIS_HANDLE
@@ -1163,6 +1182,28 @@ __SetUlong(
     }
 }
 
+static FORCEINLINE NDIS_STATUS
+__SetUlong64(
+    IN  PVOID               Buffer,
+    IN  ULONG               BufferLength,
+    IN  ULONGLONG           Source,
+    IN OUT PULONG           SourceLength
+    )
+{
+    if (BufferLength >= sizeof(ULONGLONG)) {
+        *(PULONGLONG)Buffer = Source;
+        *SourceLength = sizeof(ULONGLONG);
+        return NDIS_STATUS_SUCCESS;
+    } else if (BufferLength == sizeof(ULONG)) {
+        *(PULONG)Buffer = (ULONG)Source;
+        *SourceLength = sizeof(ULONG);
+        return NDIS_STATUS_BUFFER_TOO_SHORT;
+    } else {
+        *SourceLength = 0;
+        return NDIS_STATUS_BUFFER_TOO_SHORT;
+    }
+}
+
 NDIS_STATUS
 AdapterQueryInformation(
     IN  PXENNET_ADAPTER     Adapter,
@@ -1175,6 +1216,7 @@ AdapterQueryInformation(
     ULONG           BytesWritten;
     ULONG           Value32;
     ULONGLONG       Value64;
+    ETHERNET_ADDRESS    EthernetAddress;
     NDIS_STATUS     ndisStatus;
 
     Buffer = Request->DATA.QUERY_INFORMATION.InformationBuffer;
@@ -1193,6 +1235,7 @@ AdapterQueryInformation(
 
     case OID_PNP_QUERY_POWER:
         BytesNeeded = sizeof(NDIS_DEVICE_POWER_STATE);
+        BytesWritten = 0;
         // do nothing
         break;
 
@@ -1271,41 +1314,47 @@ AdapterQueryInformation(
 
     case OID_GEN_STATISTICS:
         BytesNeeded = BytesWritten = sizeof(NDIS_STATISTICS_INFO);
-        if (BufferLength >= BytesNeeded)
-            ndisStatus = AdapterQueryGeneralStatistics(Adapter,
-                                                       (PNDIS_STATISTICS_INFO)Buffer);
+        ndisStatus = AdapterQueryGeneralStatistics(Adapter,
+                                                   (PNDIS_STATISTICS_INFO)Buffer,
+                                                   BufferLength,
+                                                   &BytesWritten);
         break;
 
     case OID_802_3_MULTICAST_LIST:
         ndisStatus = AdapterQueryMulticastList(Adapter,
                                                Buffer,
                                                BufferLength,
-                                               &BytesNeeded);
-        BytesWritten = BytesNeeded;
+                                               &BytesNeeded,
+                                               &BytesWritten);
         break;
 
     case OID_802_3_PERMANENT_ADDRESS:
+        XENVIF_VIF(MacQueryPermanentAddress,
+                    &Adapter->VifInterface,
+                    &EthernetAddress);
         BytesNeeded = BytesWritten = sizeof(ETHERNET_ADDRESS);
-        if (BufferLength >= BytesNeeded) {
-            XENVIF_VIF(MacQueryPermanentAddress,
-                       &Adapter->VifInterface,
-                       (PETHERNET_ADDRESS)Buffer);
-        }
+        ndisStatus = __CopyBuffer(Buffer,
+                                  BufferLength,
+                                  &EthernetAddress,
+                                  &BytesWritten);
         break;
 
     case OID_802_3_CURRENT_ADDRESS:
+        XENVIF_VIF(MacQueryCurrentAddress,
+                    &Adapter->VifInterface,
+                    &EthernetAddress);
         BytesNeeded = BytesWritten = sizeof(ETHERNET_ADDRESS);
-        if (BufferLength >= BytesNeeded) {
-            XENVIF_VIF(MacQueryCurrentAddress,
-                       &Adapter->VifInterface,
-                       (PETHERNET_ADDRESS)Buffer);
-        }
+        ndisStatus = __CopyBuffer(Buffer,
+                                  BufferLength,
+                                  &EthernetAddress,
+                                  &BytesWritten);
         break;
 
     case OID_GEN_MAXIMUM_FRAME_SIZE:
         ndisStatus = __SetUlong(Buffer,
                                 BufferLength,
-                                Adapter->MaximumFrameSize - sizeof(ETHERNET_TAGGED_HEADER),
+                                Adapter->MaximumFrameSize -
+                                    sizeof(ETHERNET_TAGGED_HEADER),
                                 &BytesWritten);
         break;
 
@@ -1345,13 +1394,15 @@ AdapterQueryInformation(
         break;
 
     case OID_GEN_MEDIA_CONNECT_STATUS:
-        if (BufferLength >= sizeof(ULONG)) {
-            XENVIF_VIF(MacQueryState,
-                       &Adapter->VifInterface,
-                       (PNET_IF_MEDIA_CONNECT_STATE)Buffer,
-                       NULL,
-                       NULL);
-        }
+        XENVIF_VIF(MacQueryState,
+                    &Adapter->VifInterface,
+                    (PNET_IF_MEDIA_CONNECT_STATE)&Value32,
+                    NULL,
+                    NULL);
+        ndisStatus = __SetUlong(Buffer,
+                                BufferLength,
+                                Value32,
+                                &BytesWritten);
         break;
 
     case OID_GEN_MAXIMUM_SEND_PACKETS:
@@ -1362,40 +1413,43 @@ AdapterQueryInformation(
         break;
 
     case OID_GEN_CURRENT_PACKET_FILTER:
-        if (BufferLength >= sizeof(ULONG)) {
-            AdapterGetPacketFilter(Adapter,
-                                   (PULONG)Buffer);
-        }
+        AdapterGetPacketFilter(Adapter, &Value32);
+        ndisStatus = __SetUlong(Buffer,
+                                BufferLength,
+                                Value32,
+                                &BytesWritten);
         break;
 
     case OID_GEN_XMIT_OK:
-        BytesNeeded = BytesWritten = sizeof(ULONGLONG);
-        if (BufferLength >= BytesNeeded) {
-            ndisStatus = AdapterGetXmitOk(Adapter,
-                                          (PULONGLONG)Buffer);
-        }
+        AdapterGetXmitOk(Adapter, &Value64);
+        ndisStatus = __SetUlong64(Buffer,
+                                  BufferLength,
+                                  Value64,
+                                  &BytesWritten);
         break;
 
     case OID_GEN_RCV_OK:
-        BytesNeeded = BytesWritten = sizeof(ULONGLONG);
-        if (BufferLength >= BytesNeeded) {
-            ndisStatus = AdapterGetRcvOk(Adapter,
-                                          (PULONGLONG)Buffer);
-        }
+        AdapterGetRcvOk(Adapter, &Value64);
+        ndisStatus = __SetUlong64(Buffer,
+                                  BufferLength,
+                                  Value64,
+                                  &BytesWritten);
         break;
 
     case OID_GEN_XMIT_ERROR:
-        if (BufferLength >= BytesNeeded) {
-            ndisStatus = AdapterGetXmitError(Adapter,
-                                             (PULONG)Buffer);
-        }
+        AdapterGetXmitError(Adapter, &Value32);
+        ndisStatus = __SetUlong(Buffer,
+                                BufferLength,
+                                Value32,
+                                &BytesWritten);
         break;
 
     case OID_GEN_RCV_ERROR:
-        if (BufferLength >= BytesNeeded) {
-            ndisStatus = AdapterGetRcvError(Adapter,
-                                            (PULONG)Buffer);
-        }
+        AdapterGetRcvError(Adapter, &Value32);
+        ndisStatus = __SetUlong(Buffer,
+                                BufferLength,
+                                Value32,
+                                &BytesWritten);
         break;
 
     case OID_GEN_RCV_NO_BUFFER:
@@ -1550,11 +1604,11 @@ AdapterQueryInformation(
         break;
 
     case OID_GEN_INTERRUPT_MODERATION:
-        BytesNeeded = BytesWritten = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
-        if (BufferLength >= BytesWritten) {
-            ndisStatus = AdapterInterruptModeration(Adapter,
-                                                    (PNDIS_INTERRUPT_MODERATION_PARAMETERS)Buffer);
-        }
+        BytesNeeded = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
+        ndisStatus = AdapterInterruptModeration(Adapter,
+                                                (PNDIS_INTERRUPT_MODERATION_PARAMETERS)Buffer,
+                                                BufferLength,
+                                                &BytesWritten);
         break;
 
     case OID_IP4_OFFLOAD_STATS:
@@ -1576,9 +1630,7 @@ AdapterQueryInformation(
         break;
     }
 
-    if (ndisStatus == NDIS_STATUS_SUCCESS)
-        Request->DATA.QUERY_INFORMATION.BytesWritten = BytesWritten;
-
+    Request->DATA.QUERY_INFORMATION.BytesWritten = BytesWritten;
     Request->DATA.QUERY_INFORMATION.BytesNeeded = BytesNeeded;
 
     return ndisStatus;
-- 
1.9.4.msysgit.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Mon Jan 19 16:22:28 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 19 Jan 2015 16:22:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDF5w-0005L3-Ef; Mon, 19 Jan 2015 16:22:28 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <owen.smith@citrix.com>) id 1YDF5v-0005Js-Vj
	for win-pv-devel@lists.xenproject.org; Mon, 19 Jan 2015 16:22:28 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	35/96-09842-34F2DB45; Mon, 19 Jan 2015 16:22:27 +0000
X-Env-Sender: owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1421684543!22480311!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5796 invoked from network); 19 Jan 2015 16:22:26 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	19 Jan 2015 16:22:26 -0000
X-IronPort-AV: E=Sophos;i="5.09,427,1418083200"; d="scan'208";a="219328486"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 19 Jan 2015 16:22:11 +0000
Message-ID: <1421684531-11836-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH] [WHQL] NDIS6.0 1c_64bitOIDs /
	1c_IOCTLCoverage
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Some QUERY OIDs should return truncated results when 4 byte buffers are
passed for 8 byte values. Avoid corner cases where the OID would succeed,
but not copy data due to wrong buffer sizes.

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xennet/adapter.c | 176 +++++++++++++++++++++++++++++++++------------------
 1 file changed, 114 insertions(+), 62 deletions(-)

diff --git a/src/xennet/adapter.c b/src/xennet/adapter.c
index 37b9c37..b094519 100644
--- a/src/xennet/adapter.c
+++ b/src/xennet/adapter.c
@@ -554,11 +554,16 @@ invalid_parameter:
 static NDIS_STATUS
 AdapterQueryGeneralStatistics(
     IN  PXENNET_ADAPTER     Adapter,
-    IN  PNDIS_STATISTICS_INFO   Info
+    IN  PNDIS_STATISTICS_INFO   Info,
+    IN  ULONG               BufferLength,
+    IN OUT PULONG           BytesWritten
     )
 {
     ULONGLONG   Value;
 
+    if (BufferLength < sizeof(NDIS_STATISTICS_INFO))
+        goto fail1;
+
     RtlZeroMemory(Info, sizeof(NDIS_STATISTICS_INFO));
     Info->Header.Revision = NDIS_OBJECT_REVISION_1;
     Info->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
@@ -716,7 +721,12 @@ AdapterQueryGeneralStatistics(
     Info->SupportedStatistics |= NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS;
     Info->ifOutDiscards = 0;
 
+    *BytesWritten = sizeof(NDIS_STATISTICS_INFO);
     return NDIS_STATUS_SUCCESS;
+
+fail1:
+    *BytesWritten = 0;
+    return NDIS_STATUS_BUFFER_TOO_SHORT;
 }
 
 static NDIS_STATUS
@@ -724,7 +734,8 @@ AdapterQueryMulticastList(
     IN  PXENNET_ADAPTER     Adapter,
     IN  PVOID               Buffer,
     IN  ULONG               BufferLength,
-    IN OUT PULONG           BytesNeeded
+    IN OUT PULONG           BytesNeeded,
+    IN OUT PULONG           BytesWritten
     )
 {
     ULONG       Count;
@@ -749,10 +760,12 @@ AdapterQueryMulticastList(
     if (!NT_SUCCESS(status))
         goto fail2;
 
+    *BytesWritten = Count * ETHERNET_ADDRESS_LENGTH;
     return NDIS_STATUS_SUCCESS;
 
 fail2:
 fail1:
+    *BytesWritten = 0;
     return ndisStatus;
 }
 
@@ -775,7 +788,7 @@ AdapterSetMulticastAddresses(
     return NDIS_STATUS_SUCCESS;
 }
 
-static NDIS_STATUS
+static FORCEINLINE VOID
 AdapterGetXmitOk(
     IN  PXENNET_ADAPTER     Adapter,
     OUT PULONGLONG          Buffer
@@ -803,11 +816,9 @@ AdapterGetXmitOk(
                 &Value);
 
     *Buffer += (ULONG)Value;
-
-    return NDIS_STATUS_SUCCESS;
 }
 
-static NDIS_STATUS
+static FORCEINLINE VOID
 AdapterGetRcvOk(
     IN  PXENNET_ADAPTER     Adapter,
     OUT PULONGLONG          Buffer
@@ -835,8 +846,6 @@ AdapterGetRcvOk(
                 &Value);
 
     *Buffer += (ULONG)Value;
-
-    return NDIS_STATUS_SUCCESS;
 }
 
 static NDIS_STATUS
@@ -892,11 +901,16 @@ AdapterGetRcvError(
 static FORCEINLINE NDIS_STATUS
 AdapterInterruptModeration(
     IN  PXENNET_ADAPTER     Adapter,
-    IN  PNDIS_INTERRUPT_MODERATION_PARAMETERS   Params
+    IN  PNDIS_INTERRUPT_MODERATION_PARAMETERS   Params,
+    IN  ULONG               BufferLength,
+    IN OUT PULONG           BytesWritten
     )
 {
     UNREFERENCED_PARAMETER(Adapter);
 
+    if (BufferLength < sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS))
+        goto fail1;
+
     Params->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
     Params->Header.Revision = NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1;
     Params->Header.Size = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
@@ -904,7 +918,12 @@ AdapterInterruptModeration(
     Params->Flags = 0;
     Params->InterruptModeration = NdisInterruptModerationNotSupported;
 
+    *BytesWritten = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
     return NDIS_STATUS_SUCCESS;
+
+fail1:
+    *BytesWritten = 0;
+    return NDIS_STATUS_BUFFER_TOO_SHORT;
 }
 
 NDIS_HANDLE
@@ -1163,6 +1182,28 @@ __SetUlong(
     }
 }
 
+static FORCEINLINE NDIS_STATUS
+__SetUlong64(
+    IN  PVOID               Buffer,
+    IN  ULONG               BufferLength,
+    IN  ULONGLONG           Source,
+    IN OUT PULONG           SourceLength
+    )
+{
+    if (BufferLength >= sizeof(ULONGLONG)) {
+        *(PULONGLONG)Buffer = Source;
+        *SourceLength = sizeof(ULONGLONG);
+        return NDIS_STATUS_SUCCESS;
+    } else if (BufferLength == sizeof(ULONG)) {
+        *(PULONG)Buffer = (ULONG)Source;
+        *SourceLength = sizeof(ULONG);
+        return NDIS_STATUS_BUFFER_TOO_SHORT;
+    } else {
+        *SourceLength = 0;
+        return NDIS_STATUS_BUFFER_TOO_SHORT;
+    }
+}
+
 NDIS_STATUS
 AdapterQueryInformation(
     IN  PXENNET_ADAPTER     Adapter,
@@ -1175,6 +1216,7 @@ AdapterQueryInformation(
     ULONG           BytesWritten;
     ULONG           Value32;
     ULONGLONG       Value64;
+    ETHERNET_ADDRESS    EthernetAddress;
     NDIS_STATUS     ndisStatus;
 
     Buffer = Request->DATA.QUERY_INFORMATION.InformationBuffer;
@@ -1193,6 +1235,7 @@ AdapterQueryInformation(
 
     case OID_PNP_QUERY_POWER:
         BytesNeeded = sizeof(NDIS_DEVICE_POWER_STATE);
+        BytesWritten = 0;
         // do nothing
         break;
 
@@ -1271,41 +1314,47 @@ AdapterQueryInformation(
 
     case OID_GEN_STATISTICS:
         BytesNeeded = BytesWritten = sizeof(NDIS_STATISTICS_INFO);
-        if (BufferLength >= BytesNeeded)
-            ndisStatus = AdapterQueryGeneralStatistics(Adapter,
-                                                       (PNDIS_STATISTICS_INFO)Buffer);
+        ndisStatus = AdapterQueryGeneralStatistics(Adapter,
+                                                   (PNDIS_STATISTICS_INFO)Buffer,
+                                                   BufferLength,
+                                                   &BytesWritten);
         break;
 
     case OID_802_3_MULTICAST_LIST:
         ndisStatus = AdapterQueryMulticastList(Adapter,
                                                Buffer,
                                                BufferLength,
-                                               &BytesNeeded);
-        BytesWritten = BytesNeeded;
+                                               &BytesNeeded,
+                                               &BytesWritten);
         break;
 
     case OID_802_3_PERMANENT_ADDRESS:
+        XENVIF_VIF(MacQueryPermanentAddress,
+                    &Adapter->VifInterface,
+                    &EthernetAddress);
         BytesNeeded = BytesWritten = sizeof(ETHERNET_ADDRESS);
-        if (BufferLength >= BytesNeeded) {
-            XENVIF_VIF(MacQueryPermanentAddress,
-                       &Adapter->VifInterface,
-                       (PETHERNET_ADDRESS)Buffer);
-        }
+        ndisStatus = __CopyBuffer(Buffer,
+                                  BufferLength,
+                                  &EthernetAddress,
+                                  &BytesWritten);
         break;
 
     case OID_802_3_CURRENT_ADDRESS:
+        XENVIF_VIF(MacQueryCurrentAddress,
+                    &Adapter->VifInterface,
+                    &EthernetAddress);
         BytesNeeded = BytesWritten = sizeof(ETHERNET_ADDRESS);
-        if (BufferLength >= BytesNeeded) {
-            XENVIF_VIF(MacQueryCurrentAddress,
-                       &Adapter->VifInterface,
-                       (PETHERNET_ADDRESS)Buffer);
-        }
+        ndisStatus = __CopyBuffer(Buffer,
+                                  BufferLength,
+                                  &EthernetAddress,
+                                  &BytesWritten);
         break;
 
     case OID_GEN_MAXIMUM_FRAME_SIZE:
         ndisStatus = __SetUlong(Buffer,
                                 BufferLength,
-                                Adapter->MaximumFrameSize - sizeof(ETHERNET_TAGGED_HEADER),
+                                Adapter->MaximumFrameSize -
+                                    sizeof(ETHERNET_TAGGED_HEADER),
                                 &BytesWritten);
         break;
 
@@ -1345,13 +1394,15 @@ AdapterQueryInformation(
         break;
 
     case OID_GEN_MEDIA_CONNECT_STATUS:
-        if (BufferLength >= sizeof(ULONG)) {
-            XENVIF_VIF(MacQueryState,
-                       &Adapter->VifInterface,
-                       (PNET_IF_MEDIA_CONNECT_STATE)Buffer,
-                       NULL,
-                       NULL);
-        }
+        XENVIF_VIF(MacQueryState,
+                    &Adapter->VifInterface,
+                    (PNET_IF_MEDIA_CONNECT_STATE)&Value32,
+                    NULL,
+                    NULL);
+        ndisStatus = __SetUlong(Buffer,
+                                BufferLength,
+                                Value32,
+                                &BytesWritten);
         break;
 
     case OID_GEN_MAXIMUM_SEND_PACKETS:
@@ -1362,40 +1413,43 @@ AdapterQueryInformation(
         break;
 
     case OID_GEN_CURRENT_PACKET_FILTER:
-        if (BufferLength >= sizeof(ULONG)) {
-            AdapterGetPacketFilter(Adapter,
-                                   (PULONG)Buffer);
-        }
+        AdapterGetPacketFilter(Adapter, &Value32);
+        ndisStatus = __SetUlong(Buffer,
+                                BufferLength,
+                                Value32,
+                                &BytesWritten);
         break;
 
     case OID_GEN_XMIT_OK:
-        BytesNeeded = BytesWritten = sizeof(ULONGLONG);
-        if (BufferLength >= BytesNeeded) {
-            ndisStatus = AdapterGetXmitOk(Adapter,
-                                          (PULONGLONG)Buffer);
-        }
+        AdapterGetXmitOk(Adapter, &Value64);
+        ndisStatus = __SetUlong64(Buffer,
+                                  BufferLength,
+                                  Value64,
+                                  &BytesWritten);
         break;
 
     case OID_GEN_RCV_OK:
-        BytesNeeded = BytesWritten = sizeof(ULONGLONG);
-        if (BufferLength >= BytesNeeded) {
-            ndisStatus = AdapterGetRcvOk(Adapter,
-                                          (PULONGLONG)Buffer);
-        }
+        AdapterGetRcvOk(Adapter, &Value64);
+        ndisStatus = __SetUlong64(Buffer,
+                                  BufferLength,
+                                  Value64,
+                                  &BytesWritten);
         break;
 
     case OID_GEN_XMIT_ERROR:
-        if (BufferLength >= BytesNeeded) {
-            ndisStatus = AdapterGetXmitError(Adapter,
-                                             (PULONG)Buffer);
-        }
+        AdapterGetXmitError(Adapter, &Value32);
+        ndisStatus = __SetUlong(Buffer,
+                                BufferLength,
+                                Value32,
+                                &BytesWritten);
         break;
 
     case OID_GEN_RCV_ERROR:
-        if (BufferLength >= BytesNeeded) {
-            ndisStatus = AdapterGetRcvError(Adapter,
-                                            (PULONG)Buffer);
-        }
+        AdapterGetRcvError(Adapter, &Value32);
+        ndisStatus = __SetUlong(Buffer,
+                                BufferLength,
+                                Value32,
+                                &BytesWritten);
         break;
 
     case OID_GEN_RCV_NO_BUFFER:
@@ -1550,11 +1604,11 @@ AdapterQueryInformation(
         break;
 
     case OID_GEN_INTERRUPT_MODERATION:
-        BytesNeeded = BytesWritten = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
-        if (BufferLength >= BytesWritten) {
-            ndisStatus = AdapterInterruptModeration(Adapter,
-                                                    (PNDIS_INTERRUPT_MODERATION_PARAMETERS)Buffer);
-        }
+        BytesNeeded = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
+        ndisStatus = AdapterInterruptModeration(Adapter,
+                                                (PNDIS_INTERRUPT_MODERATION_PARAMETERS)Buffer,
+                                                BufferLength,
+                                                &BytesWritten);
         break;
 
     case OID_IP4_OFFLOAD_STATS:
@@ -1576,9 +1630,7 @@ AdapterQueryInformation(
         break;
     }
 
-    if (ndisStatus == NDIS_STATUS_SUCCESS)
-        Request->DATA.QUERY_INFORMATION.BytesWritten = BytesWritten;
-
+    Request->DATA.QUERY_INFORMATION.BytesWritten = BytesWritten;
     Request->DATA.QUERY_INFORMATION.BytesNeeded = BytesNeeded;
 
     return ndisStatus;
-- 
1.9.4.msysgit.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Mon Jan 19 16:24:27 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 19 Jan 2015 16:24:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDF7r-0006D9-KG; Mon, 19 Jan 2015 16:24:27 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <owen.smith@citrix.com>) id 1YDF7q-0006D2-K6
	for win-pv-devel@lists.xenproject.org; Mon, 19 Jan 2015 16:24:26 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	B0/18-05632-9BF2DB45; Mon, 19 Jan 2015 16:24:25 +0000
X-Env-Sender: owen.smith@citrix.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1421684662!20697806!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8134 invoked from network); 19 Jan 2015 16:24:25 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	19 Jan 2015 16:24:25 -0000
X-IronPort-AV: E=Sophos;i="5.09,427,1418083200"; d="scan'208";a="218534954"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 19 Jan 2015 16:23:39 +0000
Message-ID: <1421684619-7480-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH] Use correct location when multi-queues are
	not used.
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

When the backend does not support multi-queues, or the frontend has
explicitly disallowed multi-queues, the frontend needs to write
event-channel and ring-references to the non-queued (old) locations,
not under device/vif/<id>/queue-<index>

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xenvif/frontend.c    | 3 ---
 src/xenvif/receiver.c    | 9 +++++++--
 src/xenvif/transmitter.c | 9 +++++++--
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index d2643fc..12b6287 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -237,9 +237,6 @@ FrontendFormatPath(
     PCHAR                   Path;
     NTSTATUS                status;
 
-    if (__FrontendGetQueueCount(Frontend) == 1)
-        return __FrontendGetPath(Frontend);
-
     Length = (ULONG)(strlen(__FrontendGetPath(Frontend)) +
                      strlen("/queue-00") +
                      1) * sizeof (CHAR);
diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
index 8856bca..a53a03f 100644
--- a/src/xenvif/receiver.c
+++ b/src/xenvif/receiver.c
@@ -2291,15 +2291,20 @@ __ReceiverRingStoreWrite(
     PXENVIF_RECEIVER                Receiver;
     PXENVIF_FRONTEND                Frontend;
     ULONG                           Port;
+    PCHAR                           Path;
     NTSTATUS                        status;
 
     Receiver = Ring->Receiver;
     Frontend = Receiver->Frontend;
 
+    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
+                    FrontendGetPath(Frontend) :
+                    Ring->Path;
+
     status = XENBUS_STORE(Printf,
                           &Receiver->StoreInterface,
                           Transaction,
-                          Ring->Path,
+                          Path,
                           "rx-ring-ref",
                           "%u",
                           GranterGetReference(FrontendGetGranter(Frontend),
@@ -2315,7 +2320,7 @@ __ReceiverRingStoreWrite(
     status = XENBUS_STORE(Printf,
                           &Receiver->StoreInterface,
                           Transaction,
-                          Ring->Path,
+                          Path,
                           Receiver->Split ? "event-channel-rx" : "event-channel",
                           "%u",
                           Port);
diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
index 24fd6a5..aa55f1c 100644
--- a/src/xenvif/transmitter.c
+++ b/src/xenvif/transmitter.c
@@ -3127,15 +3127,20 @@ __TransmitterRingStoreWrite(
     PXENVIF_TRANSMITTER             Transmitter;
     PXENVIF_FRONTEND                Frontend;
     ULONG                           Port;
+    PCHAR                           Path;
     NTSTATUS                        status;
 
     Transmitter = Ring->Transmitter;
     Frontend = Transmitter->Frontend;
 
+    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
+                    FrontendGetPath(Frontend) :
+                    Ring->Path;
+
     status = XENBUS_STORE(Printf,
                           &Transmitter->StoreInterface,
                           Transaction,
-                          Ring->Path,
+                          Path,
                           "tx-ring-ref",
                           "%u",
                           GranterGetReference(FrontendGetGranter(Frontend),
@@ -3154,7 +3159,7 @@ __TransmitterRingStoreWrite(
     status = XENBUS_STORE(Printf,
                           &Transmitter->StoreInterface,
                           Transaction,
-                          Ring->Path,
+                          Path,
                           "event-channel-tx",
                           "%u",
                           Port);
-- 
1.9.4.msysgit.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Mon Jan 19 16:24:27 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 19 Jan 2015 16:24:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDF7r-0006D9-KG; Mon, 19 Jan 2015 16:24:27 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <owen.smith@citrix.com>) id 1YDF7q-0006D2-K6
	for win-pv-devel@lists.xenproject.org; Mon, 19 Jan 2015 16:24:26 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	B0/18-05632-9BF2DB45; Mon, 19 Jan 2015 16:24:25 +0000
X-Env-Sender: owen.smith@citrix.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1421684662!20697806!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8134 invoked from network); 19 Jan 2015 16:24:25 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	19 Jan 2015 16:24:25 -0000
X-IronPort-AV: E=Sophos;i="5.09,427,1418083200"; d="scan'208";a="218534954"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 19 Jan 2015 16:23:39 +0000
Message-ID: <1421684619-7480-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH] Use correct location when multi-queues are
	not used.
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

When the backend does not support multi-queues, or the frontend has
explicitly disallowed multi-queues, the frontend needs to write
event-channel and ring-references to the non-queued (old) locations,
not under device/vif/<id>/queue-<index>

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xenvif/frontend.c    | 3 ---
 src/xenvif/receiver.c    | 9 +++++++--
 src/xenvif/transmitter.c | 9 +++++++--
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index d2643fc..12b6287 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -237,9 +237,6 @@ FrontendFormatPath(
     PCHAR                   Path;
     NTSTATUS                status;
 
-    if (__FrontendGetQueueCount(Frontend) == 1)
-        return __FrontendGetPath(Frontend);
-
     Length = (ULONG)(strlen(__FrontendGetPath(Frontend)) +
                      strlen("/queue-00") +
                      1) * sizeof (CHAR);
diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
index 8856bca..a53a03f 100644
--- a/src/xenvif/receiver.c
+++ b/src/xenvif/receiver.c
@@ -2291,15 +2291,20 @@ __ReceiverRingStoreWrite(
     PXENVIF_RECEIVER                Receiver;
     PXENVIF_FRONTEND                Frontend;
     ULONG                           Port;
+    PCHAR                           Path;
     NTSTATUS                        status;
 
     Receiver = Ring->Receiver;
     Frontend = Receiver->Frontend;
 
+    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
+                    FrontendGetPath(Frontend) :
+                    Ring->Path;
+
     status = XENBUS_STORE(Printf,
                           &Receiver->StoreInterface,
                           Transaction,
-                          Ring->Path,
+                          Path,
                           "rx-ring-ref",
                           "%u",
                           GranterGetReference(FrontendGetGranter(Frontend),
@@ -2315,7 +2320,7 @@ __ReceiverRingStoreWrite(
     status = XENBUS_STORE(Printf,
                           &Receiver->StoreInterface,
                           Transaction,
-                          Ring->Path,
+                          Path,
                           Receiver->Split ? "event-channel-rx" : "event-channel",
                           "%u",
                           Port);
diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
index 24fd6a5..aa55f1c 100644
--- a/src/xenvif/transmitter.c
+++ b/src/xenvif/transmitter.c
@@ -3127,15 +3127,20 @@ __TransmitterRingStoreWrite(
     PXENVIF_TRANSMITTER             Transmitter;
     PXENVIF_FRONTEND                Frontend;
     ULONG                           Port;
+    PCHAR                           Path;
     NTSTATUS                        status;
 
     Transmitter = Ring->Transmitter;
     Frontend = Transmitter->Frontend;
 
+    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
+                    FrontendGetPath(Frontend) :
+                    Ring->Path;
+
     status = XENBUS_STORE(Printf,
                           &Transmitter->StoreInterface,
                           Transaction,
-                          Ring->Path,
+                          Path,
                           "tx-ring-ref",
                           "%u",
                           GranterGetReference(FrontendGetGranter(Frontend),
@@ -3154,7 +3159,7 @@ __TransmitterRingStoreWrite(
     status = XENBUS_STORE(Printf,
                           &Transmitter->StoreInterface,
                           Transaction,
-                          Ring->Path,
+                          Path,
                           "event-channel-tx",
                           "%u",
                           Port);
-- 
1.9.4.msysgit.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 20 13:56:12 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 20 Jan 2015 13:56:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDZHw-0000GE-Ta; Tue, 20 Jan 2015 13:56:12 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <owen.smith@citrix.com>) id 1YDZHv-0000G2-Jf
	for win-pv-devel@lists.xenproject.org; Tue, 20 Jan 2015 13:56:11 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	47/38-09842-A7E5EB45; Tue, 20 Jan 2015 13:56:10 +0000
X-Env-Sender: owen.smith@citrix.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1421762169!15399065!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18303 invoked from network); 20 Jan 2015 13:56:10 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
	by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Jan 2015 13:56:10 -0000
X-IronPort-AV: E=Sophos;i="5.09,434,1418083200"; d="scan'208";a="218983415"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 20 Jan 2015 13:54:01 +0000
Message-ID: <1421762041-8148-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH] [CA-156847] Ignore invalid devices
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

When a floppy drive is attached, the device id string cannot be parsed
into a valid xvd, sd? or hd? format. Report the error instead of asserting
and return the invalid value to ignore the device in question.

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xenvbd/fdo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenvbd/fdo.c b/src/xenvbd/fdo.c
index 2ee91b8..09ae9f9 100644
--- a/src/xenvbd/fdo.c
+++ b/src/xenvbd/fdo.c
@@ -524,8 +524,8 @@ __ParseVbd(
         case 89:    return ((DeviceId & 0xC0) >> 6) + 14;   /* hdo..p */
         default:    break;
         }
-        ASSERT3U(DeviceId, ==, ~0);
     }
+    Error("Invalid DeviceId %s (%08x)\n", DeviceIdStr, DeviceId);
     return 0xFFFFFFFF; // OBVIOUS ERROR VALUE
 }
 static FORCEINLINE XENVBD_DEVICE_TYPE
-- 
1.9.4.msysgit.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 20 13:56:12 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 20 Jan 2015 13:56:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDZHw-0000GE-Ta; Tue, 20 Jan 2015 13:56:12 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <owen.smith@citrix.com>) id 1YDZHv-0000G2-Jf
	for win-pv-devel@lists.xenproject.org; Tue, 20 Jan 2015 13:56:11 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	47/38-09842-A7E5EB45; Tue, 20 Jan 2015 13:56:10 +0000
X-Env-Sender: owen.smith@citrix.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1421762169!15399065!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18303 invoked from network); 20 Jan 2015 13:56:10 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
	by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Jan 2015 13:56:10 -0000
X-IronPort-AV: E=Sophos;i="5.09,434,1418083200"; d="scan'208";a="218983415"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 20 Jan 2015 13:54:01 +0000
Message-ID: <1421762041-8148-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH] [CA-156847] Ignore invalid devices
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

When a floppy drive is attached, the device id string cannot be parsed
into a valid xvd, sd? or hd? format. Report the error instead of asserting
and return the invalid value to ignore the device in question.

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xenvbd/fdo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenvbd/fdo.c b/src/xenvbd/fdo.c
index 2ee91b8..09ae9f9 100644
--- a/src/xenvbd/fdo.c
+++ b/src/xenvbd/fdo.c
@@ -524,8 +524,8 @@ __ParseVbd(
         case 89:    return ((DeviceId & 0xC0) >> 6) + 14;   /* hdo..p */
         default:    break;
         }
-        ASSERT3U(DeviceId, ==, ~0);
     }
+    Error("Invalid DeviceId %s (%08x)\n", DeviceIdStr, DeviceId);
     return 0xFFFFFFFF; // OBVIOUS ERROR VALUE
 }
 static FORCEINLINE XENVBD_DEVICE_TYPE
-- 
1.9.4.msysgit.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 20 14:13:38 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 20 Jan 2015 14:13:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDZYo-00027G-DJ; Tue, 20 Jan 2015 14:13:38 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YDZYm-000271-Ie
	for win-pv-devel@lists.xenproject.org; Tue, 20 Jan 2015 14:13:37 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	F3/E7-23865-F826EB45; Tue, 20 Jan 2015 14:13:35 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-31.messagelabs.com!1421763212!20940298!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5539 invoked from network); 20 Jan 2015 14:13:32 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Jan 2015 14:13:32 -0000
X-IronPort-AV: E=Sophos;i="5.09,434,1418083200"; d="scan'208";a="28780120"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] [CA-156847] Ignore invalid devices
Thread-Index: AQHQNLlggVr7gwSw5kOlH6uMRlj75ZzJDPpw
Date: Tue, 20 Jan 2015 14:13:31 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257CFE1A@AMSPEX01CL01.citrite.net>
References: <1421762041-8148-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1421762041-8148-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] [CA-156847] Ignore invalid devices
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 20 January 2015 13:54
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH] [CA-156847] Ignore invalid devices
> 
> When a floppy drive is attached, the device id string cannot be parsed
> into a valid xvd, sd? or hd? format. Report the error instead of asserting
> and return the invalid value to ignore the device in question.
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

> ---
>  src/xenvbd/fdo.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/xenvbd/fdo.c b/src/xenvbd/fdo.c
> index 2ee91b8..09ae9f9 100644
> --- a/src/xenvbd/fdo.c
> +++ b/src/xenvbd/fdo.c
> @@ -524,8 +524,8 @@ __ParseVbd(
>          case 89:    return ((DeviceId & 0xC0) >> 6) + 14;   /* hdo..p */
>          default:    break;
>          }
> -        ASSERT3U(DeviceId, ==, ~0);
>      }
> +    Error("Invalid DeviceId %s (%08x)\n", DeviceIdStr, DeviceId);
>      return 0xFFFFFFFF; // OBVIOUS ERROR VALUE
>  }
>  static FORCEINLINE XENVBD_DEVICE_TYPE
> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 20 14:13:38 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 20 Jan 2015 14:13:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDZYo-00027G-DJ; Tue, 20 Jan 2015 14:13:38 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YDZYm-000271-Ie
	for win-pv-devel@lists.xenproject.org; Tue, 20 Jan 2015 14:13:37 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	F3/E7-23865-F826EB45; Tue, 20 Jan 2015 14:13:35 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-31.messagelabs.com!1421763212!20940298!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5539 invoked from network); 20 Jan 2015 14:13:32 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Jan 2015 14:13:32 -0000
X-IronPort-AV: E=Sophos;i="5.09,434,1418083200"; d="scan'208";a="28780120"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] [CA-156847] Ignore invalid devices
Thread-Index: AQHQNLlggVr7gwSw5kOlH6uMRlj75ZzJDPpw
Date: Tue, 20 Jan 2015 14:13:31 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257CFE1A@AMSPEX01CL01.citrite.net>
References: <1421762041-8148-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1421762041-8148-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] [CA-156847] Ignore invalid devices
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 20 January 2015 13:54
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH] [CA-156847] Ignore invalid devices
> 
> When a floppy drive is attached, the device id string cannot be parsed
> into a valid xvd, sd? or hd? format. Report the error instead of asserting
> and return the invalid value to ignore the device in question.
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

> ---
>  src/xenvbd/fdo.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/xenvbd/fdo.c b/src/xenvbd/fdo.c
> index 2ee91b8..09ae9f9 100644
> --- a/src/xenvbd/fdo.c
> +++ b/src/xenvbd/fdo.c
> @@ -524,8 +524,8 @@ __ParseVbd(
>          case 89:    return ((DeviceId & 0xC0) >> 6) + 14;   /* hdo..p */
>          default:    break;
>          }
> -        ASSERT3U(DeviceId, ==, ~0);
>      }
> +    Error("Invalid DeviceId %s (%08x)\n", DeviceIdStr, DeviceId);
>      return 0xFFFFFFFF; // OBVIOUS ERROR VALUE
>  }
>  static FORCEINLINE XENVBD_DEVICE_TYPE
> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 20 14:29:24 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 20 Jan 2015 14:29:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDZo3-0003Yz-Vs; Tue, 20 Jan 2015 14:29:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ben.chalmers@citrix.com>) id 1YDZo2-0003YQ-Ra
	for win-pv-devel@lists.xenproject.org; Tue, 20 Jan 2015 14:29:22 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	B5/EA-02953-2466EB45; Tue, 20 Jan 2015 14:29:22 +0000
X-Env-Sender: ben.chalmers@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1421764160!17076366!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32231 invoked from network); 20 Jan 2015 14:29:21 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Jan 2015 14:29:21 -0000
X-IronPort-AV: E=Sophos;i="5.09,434,1418083200"; d="scan'208";a="219807354"
From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 20 Jan 2015 14:27:19 +0000
Message-ID: <1421764039-27500-1-git-send-email-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 1.9.5.msysgit.0
MIME-Version: 1.0
X-DLP: MIA2
Cc: Ben Chalmers <Ben.Chalmers@citrix.com>
Subject: [win-pv-devel] [PATCH] Protect BackendPath from race using StateLock
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The BackendPath can change as part of PDO state transitions, leading
to a race with the frontend thread.  Since the frontend state lock is
locked through state transitions, taking the lock is sufficient to
avoid the race

Signed-off-by: Ben Chalmers <Ben.Chalmers@citrix.com>
---
 src/xenvbd/frontend.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/xenvbd/frontend.c b/src/xenvbd/frontend.c
index 25b268d..f01b142 100644
--- a/src/xenvbd/frontend.c
+++ b/src/xenvbd/frontend.c
@@ -1579,12 +1579,15 @@ FrontendBackendPathChanged(
     __in  PXENVBD_FRONTEND        Frontend
     )
 {
+    KIRQL       Irql;
+    KeAcquireSpinLock(&Frontend->StateLock, &Irql);
     // Only attempt this if Active, Active is set/cleared on D3->D0/D0->D3
     if (Frontend->Active) {
         // Note: Nothing may have changed with this target, this could be caused by another target changing
         __ReadDiskInfo(Frontend);
         __CheckBackendForEject(Frontend);
     }
+    KeReleaseSpinLock(&Frontend->StateLock, Irql);
 }
 
 __checkReturn
-- 
1.9.5.msysgit.0


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 20 14:29:24 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 20 Jan 2015 14:29:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDZo3-0003Yz-Vs; Tue, 20 Jan 2015 14:29:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ben.chalmers@citrix.com>) id 1YDZo2-0003YQ-Ra
	for win-pv-devel@lists.xenproject.org; Tue, 20 Jan 2015 14:29:22 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	B5/EA-02953-2466EB45; Tue, 20 Jan 2015 14:29:22 +0000
X-Env-Sender: ben.chalmers@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1421764160!17076366!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32231 invoked from network); 20 Jan 2015 14:29:21 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Jan 2015 14:29:21 -0000
X-IronPort-AV: E=Sophos;i="5.09,434,1418083200"; d="scan'208";a="219807354"
From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 20 Jan 2015 14:27:19 +0000
Message-ID: <1421764039-27500-1-git-send-email-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 1.9.5.msysgit.0
MIME-Version: 1.0
X-DLP: MIA2
Cc: Ben Chalmers <Ben.Chalmers@citrix.com>
Subject: [win-pv-devel] [PATCH] Protect BackendPath from race using StateLock
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The BackendPath can change as part of PDO state transitions, leading
to a race with the frontend thread.  Since the frontend state lock is
locked through state transitions, taking the lock is sufficient to
avoid the race

Signed-off-by: Ben Chalmers <Ben.Chalmers@citrix.com>
---
 src/xenvbd/frontend.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/xenvbd/frontend.c b/src/xenvbd/frontend.c
index 25b268d..f01b142 100644
--- a/src/xenvbd/frontend.c
+++ b/src/xenvbd/frontend.c
@@ -1579,12 +1579,15 @@ FrontendBackendPathChanged(
     __in  PXENVBD_FRONTEND        Frontend
     )
 {
+    KIRQL       Irql;
+    KeAcquireSpinLock(&Frontend->StateLock, &Irql);
     // Only attempt this if Active, Active is set/cleared on D3->D0/D0->D3
     if (Frontend->Active) {
         // Note: Nothing may have changed with this target, this could be caused by another target changing
         __ReadDiskInfo(Frontend);
         __CheckBackendForEject(Frontend);
     }
+    KeReleaseSpinLock(&Frontend->StateLock, Irql);
 }
 
 __checkReturn
-- 
1.9.5.msysgit.0


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 20 14:32:54 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 20 Jan 2015 14:32:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDZrS-0004Yt-B6; Tue, 20 Jan 2015 14:32:54 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YDZrQ-0004XO-Vu
	for win-pv-devel@lists.xenproject.org; Tue, 20 Jan 2015 14:32:53 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	14/F5-26858-4176EB45; Tue, 20 Jan 2015 14:32:52 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1421764371!21009047!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13233 invoked from network); 20 Jan 2015 14:32:51 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Jan 2015 14:32:51 -0000
X-IronPort-AV: E=Sophos;i="5.09,434,1418083200"; d="scan'208";a="28780775"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.chalmers@citrix.com>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Protect BackendPath from race using
	StateLock
Thread-Index: AQHQNL3fVZRSnteofkmuwb1ZyEn6lJzJElPw
Date: Tue, 20 Jan 2015 14:32:49 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257CFEBB@AMSPEX01CL01.citrite.net>
References: <1421764039-27500-1-git-send-email-Ben.Chalmers@citrix.com>
In-Reply-To: <1421764039-27500-1-git-send-email-Ben.Chalmers@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Ben Chalmers <ben.chalmers@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Protect BackendPath from race using
 StateLock
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Ben Chalmers
> Sent: 20 January 2015 14:27
> To: win-pv-devel@lists.xenproject.org
> Cc: Ben Chalmers
> Subject: [win-pv-devel] [PATCH] Protect BackendPath from race using
> StateLock
> 
> The BackendPath can change as part of PDO state transitions, leading
> to a race with the frontend thread.  Since the frontend state lock is
> locked through state transitions, taking the lock is sufficient to
> avoid the race
> 
> Signed-off-by: Ben Chalmers <Ben.Chalmers@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

> ---
>  src/xenvbd/frontend.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/xenvbd/frontend.c b/src/xenvbd/frontend.c
> index 25b268d..f01b142 100644
> --- a/src/xenvbd/frontend.c
> +++ b/src/xenvbd/frontend.c
> @@ -1579,12 +1579,15 @@ FrontendBackendPathChanged(
>      __in  PXENVBD_FRONTEND        Frontend
>      )
>  {
> +    KIRQL       Irql;
> +    KeAcquireSpinLock(&Frontend->StateLock, &Irql);
>      // Only attempt this if Active, Active is set/cleared on D3->D0/D0->D3
>      if (Frontend->Active) {
>          // Note: Nothing may have changed with this target, this could be
> caused by another target changing
>          __ReadDiskInfo(Frontend);
>          __CheckBackendForEject(Frontend);
>      }
> +    KeReleaseSpinLock(&Frontend->StateLock, Irql);
>  }
> 
>  __checkReturn
> --
> 1.9.5.msysgit.0
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 20 14:32:54 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 20 Jan 2015 14:32:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YDZrS-0004Yt-B6; Tue, 20 Jan 2015 14:32:54 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YDZrQ-0004XO-Vu
	for win-pv-devel@lists.xenproject.org; Tue, 20 Jan 2015 14:32:53 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	14/F5-26858-4176EB45; Tue, 20 Jan 2015 14:32:52 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1421764371!21009047!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13233 invoked from network); 20 Jan 2015 14:32:51 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Jan 2015 14:32:51 -0000
X-IronPort-AV: E=Sophos;i="5.09,434,1418083200"; d="scan'208";a="28780775"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.chalmers@citrix.com>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Protect BackendPath from race using
	StateLock
Thread-Index: AQHQNL3fVZRSnteofkmuwb1ZyEn6lJzJElPw
Date: Tue, 20 Jan 2015 14:32:49 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257CFEBB@AMSPEX01CL01.citrite.net>
References: <1421764039-27500-1-git-send-email-Ben.Chalmers@citrix.com>
In-Reply-To: <1421764039-27500-1-git-send-email-Ben.Chalmers@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Ben Chalmers <ben.chalmers@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Protect BackendPath from race using
 StateLock
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Ben Chalmers
> Sent: 20 January 2015 14:27
> To: win-pv-devel@lists.xenproject.org
> Cc: Ben Chalmers
> Subject: [win-pv-devel] [PATCH] Protect BackendPath from race using
> StateLock
> 
> The BackendPath can change as part of PDO state transitions, leading
> to a race with the frontend thread.  Since the frontend state lock is
> locked through state transitions, taking the lock is sufficient to
> avoid the race
> 
> Signed-off-by: Ben Chalmers <Ben.Chalmers@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

> ---
>  src/xenvbd/frontend.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/xenvbd/frontend.c b/src/xenvbd/frontend.c
> index 25b268d..f01b142 100644
> --- a/src/xenvbd/frontend.c
> +++ b/src/xenvbd/frontend.c
> @@ -1579,12 +1579,15 @@ FrontendBackendPathChanged(
>      __in  PXENVBD_FRONTEND        Frontend
>      )
>  {
> +    KIRQL       Irql;
> +    KeAcquireSpinLock(&Frontend->StateLock, &Irql);
>      // Only attempt this if Active, Active is set/cleared on D3->D0/D0->D3
>      if (Frontend->Active) {
>          // Note: Nothing may have changed with this target, this could be
> caused by another target changing
>          __ReadDiskInfo(Frontend);
>          __CheckBackendForEject(Frontend);
>      }
> +    KeReleaseSpinLock(&Frontend->StateLock, Irql);
>  }
> 
>  __checkReturn
> --
> 1.9.5.msysgit.0
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 22 10:09:40 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 22 Jan 2015 10:09:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEEho-0004ti-AC; Thu, 22 Jan 2015 10:09:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YEEhm-0004td-QS
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 10:09:39 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	72/30-10078-16CC0C45; Thu, 22 Jan 2015 10:09:37 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-14.tower-21.messagelabs.com!1421921376!23202764!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16435 invoked from network); 22 Jan 2015 10:09:36 -0000
Received: from mail-wg0-f43.google.com (HELO mail-wg0-f43.google.com)
	(74.125.82.43)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 10:09:36 -0000
Received: by mail-wg0-f43.google.com with SMTP id y19so779980wgg.2
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 22 Jan 2015 02:09:35 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:cc:subject:references:in-reply-to:content-type;
	bh=QHoMiuxQDUqavfoleGLAVw9uFPWileBZ+vTWUSt+dC8=;
	b=OW/f/U2BDLBIiF6L2Rk6tq92W+AFaHSwbUqoIXOI/SPFpbzRy4L4sdcaKWgJcsB7KF
	1eVjdpD9gqnuZC6zI7zp/LtbYn6Nhchl/fKDI3tsEuDHXlJC+sm6GwCoMvH8G4x2qCnW
	qdL82Bz3bZWnxflHPyubePTTOxab4LP0YSu5kljrncTmmFgjMfX0ku8ZS0W3W3Z6+13l
	/NFgfNudQQku/ZJmRZ0lNyDqhun+UayySARHe+zMaA6MZu0yH1LJIP8XwV8l16pXIkHK
	SiUK1UHXxKNJZgMrwSfXR6WwhzFIPVroWf19AsgW1fr55tYWpuqZDKLHwZZI17CBAdKW
	HVUA==
X-Gm-Message-State: ALoCoQkOTfcyaOiB29bkOPY8p5HRSkf/ec5f3FuAQu09A9r9UgSQKY+PzL42+mby7Q5x5NJG+bpP
X-Received: by 10.180.72.199 with SMTP id f7mr3604176wiv.58.1421921375781;
	Thu, 22 Jan 2015 02:09:35 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id 18sm3249999wjr.46.2015.01.22.02.09.26
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 22 Jan 2015 02:09:34 -0800 (PST)
Message-ID: <54C0CC5F.8050106@m2r.biz>
Date: Thu, 22 Jan 2015 11:09:35 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: win-pv-devel@lists.xenproject.org
References: <54BD2320.10307@m2r.biz>
In-Reply-To: <54BD2320.10307@m2r.biz>
Content-Type: multipart/mixed; boundary="------------000504070002000802030603"
Cc: paul Durrant <paul.durrant@citrix.com>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------000504070002000802030603
Content-Type: text/plain; charset=iso-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> Hi, I installed winpv driver build of 15 january on Windows server 
> 2012 R2 standard 64 bit and have problem after save/restore.
> xl save/restore didn't show any errors, trying to connected with rdp I 
> was unable and with spice I saw screen with data and time (time update 
> after restore) but doing ctrl+alt+canc it changed something in screen 
> only after 5-10 minutes and still without showing login field.
>
> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official 
> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from 
> xen build.
> DomU xl cfg:
>> name='w2012r2-01'
>> builder="hvm"
>> memory=8192
>> vcpus=4
>> acpi_s3=0
>> acpi_s4=0
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:18:2a:f2,script=vif-openvswitch'] 
>>
>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>> disk=['/mnt/vm/disks/w2012r2-01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom'] 
>>
>> boot='dc'
>> device_model_version="qemu-xen"
>> viridian=1
>> vnc=0
>> keymap="it"
>> on_crash="destroy"
>> vga="stdvga"
>> spice=1
>> spicehost='0.0.0.0'
>> spiceport=6000
>> spicepasswd="test"
>> spicevdagent=1
>> spice_clipboard_sharing=0
>> spiceusbredirection=4
>> soundhw="hda"
>> localtime=1
>
> I added in attachments qemu logs (before and after save/restore) with 
> xen trace enabled.
>
> If you need more informations tests tell me and I'll post them.
>
> I have also another small question:
> is ms_vm_genid needed for this case? for what I understand is only for 
> active directory controller and this it isn't.
>
> Thanks for any reply and sorry for my bad english.
>
>

I also tried to uninstall the pv drivers from control panel but windows 
crash, minidump in attachments.

--------------000504070002000802030603
Content-Type: application/octet-stream;
 name="012215-6218-01.dmp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="012215-6218-01.dmp"

UEFHRURVNjQPAAAAgCUAAACgGgAAAAAA6ACe1gD4//9QYpXWAPj//wDAk9YA+P//ZIYAAAQA
AAB+AAAQUEFHRQUAAMD/////xdRjlwH4//9YFROyAdD//2ANE7IB0P//UEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0UwNZLWAPj//1BBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFAAAAAADA//8AAAAAAPj//1AAUgAA4P//
kDzdMADg//9WAF8AMAAwADAAMAAwADAAHwAQAIAfAAAQACsAKwBTACsAGAACAgEARlJPTgAA
AAD4bDczAOD//yBsNzMA4P//QPE3MwDg//8g0DozAOD//xDQOjMA4P//cJw3MwDg//8AAAAA
AAAAAKoAAAAAAAAA8Is3MwAAAACQFxOyAdD//2CgNzMA4P//8K03MwDg//8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABNBwAAAAAAAACAmLEB0P//AAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAA
UJ3dMADg///F1GOXAfj//wAkcQvGk3rizS+YvFXpt14JAAAAAAAAAIAfAAAA+P//iFFo1gD4
//8AAAAAAdD//wAAAAAAAAAAAAAAAAHQ//8BAAAAAdD//1QQE7IB0P//AQAAAAHQ//9UEBOy
AdD//wAAAAAB0P//AAAAAAAAAABcEBOyAdD//2AQE7IB0P//UBATsgHQ//9wEBOyAdD//wQA
AAAAAAAAABZ91gD4//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAVxo/K1eWJqdv0ziilCJLHPTAKdmlmPVsnYnJpZGdlPWNwaV9zMz0wCmFjcGlfczQPDw8P
Dw8PDw8PDw8PDw8PgAEIDQ8GBQ4CDAsKCQMHBIAHCw8GCgQBCQgFAgwODQMAI+L6FdQYNu/Z
Lg3BzPc7AD5Qy4/hm7FE9SoUbnrfpQAp4QpAiOtpSiOCq8hjocIAJHELxpN64s0vmLxV6bde
XBATsgHQ//+IUWjWAPj//wEAAAAAAAAAywWj1gD4//8gAAAAAAAAAJARE7IB0P//mBATsgHQ
//8BAAAAAAAAAAEAAAAA4P//MJQIFgDA///kEBOyAdD//4j9e9YA+P//MgAAAAAAAACH5G7W
APj//wAAAAAAAAAAkDzdMADg//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD7
///oBAAAMPv//9AEAAAZAAAAAAAAAH2LrNYA+P//JgAAAAAAAACaNmHWAPj//wAXE7IB0P//
QCCPMADg//8fABAA9wQAAHgLddYAAAAAkBUTsgHQ//8nAAAAAOD//6AQE7IB0P//t0AdvjvO
//+AAZa1AdD//4AxmrUB0P//AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAwAAgAEAAAAAAAAAAAAAAKDZfNYA+P//AAAAAFBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0UEAAAA
UEFHRVA+BAAAAAAAisyF0yk20AFQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRaL1+XgAAAAA/wwAAFBB
R0UDAAAAEAEAAAAAAABQAEdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0UAAAAAAAAEAPz/AwBIAwAA
AA8AAIAgAADQIAAAmCIAABiAAADwhgAAaI4AAHAIAAA4mgAAxQAAAAgJAQDIQgAAAAAAAP//
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAGAQUe4QoAAAAAAAAAAAAAAAAAAAAAAACIN5q1AdD//4g3mrUB0P//AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAAIQAgDyktYA+P//BAAAAAAAAAAAAgAA
4P///0AAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCK
ndYA+P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICLndYA+P//
AAAAAAAAAABAi53WAPj//wAAAAAAAAAAAIyd1gD4//8AAAAAAAAAAECMndYA+P//AAAAAAAA
AADAi53WAPj//wAAAAAAAAAAgIyd1gD4//8AAAAAAAAAAMCMndYA+P//AAAAAAAAAAAAjZ3W
APj//wAAAAAAAAAAQI2d1gD4//8AAAAAAAAAAICNndYA+P//AAAAAAAAAAAAi53WAPj//wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+dMADg//+AZZbWAPj//4AenTAA4P//
AGaW1gD4//8AHp0wAOD//4BmltYA+P//gB+dMADg//8AZZbWAPj//xB9jzAA4P//wIqW1gD4
//8w/pYwAOD//0CLltYA+P//gF+eMADg///AXZbWAPj//4AdnTAA4P//AGeW1gD4//8w7pYw
AOD//8C5ltYA+P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAIAAFAKktYA+P//YBiS1gD4//9ABpuxAdD//+BFmrUB0P//BgAAAAUAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACf+QEAFAgAAFqBAABHTQEAGUMAADAJAAAAAAAAAAAAAAAAAAAAAAAA
uBYGANAhAQAAAAAAAAAAAJsFAAAAAAAAAAAAADcLAAAAAAAABQcAAMQAAAD3LQAAhBCfAQAA
AAAz0lAAAAAAAI/TBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAP///3/MvAEA
KwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfmrUB0P//
AAAAAAAAAAAAAAAAIgYAAAAAAAAAAAAAAAAAAAAAAAAoX5q1AdD//wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAALDvm7UB0P//BAAAAAAAAAADAAAAIgYAAAEAAAAAAAAAPh4AAL0yAAAtbAAA
CDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIYZq1AdD//4hhmrUB0P//
7EoAYP////8AAAAAAAAAAKhhmrUB0P//qGGatQHQ//8aGQWc/////wAAAAAAAAAAyGGatQHQ
///IYZq1AdD//+fYCID/////AAAAAAAAAADoYZq1AdD//+hhmrUB0P//QoynZ/////8AAAAA
AAAAAAhimrUB0P//CGKatQHQ//9FShBg/////wAAAAAAAAAAKGKatQHQ//8oYpq1AdD///+O
F1z/////AAAAAAAAAABIYpq1AdD//0himrUB0P//gQobeP////8AAAAAAAAAAGhimrUB0P//
aGKatQHQ//8CRB14/////wAAAAAAAAAAiGKatQHQ//+IYpq1AdD//68RIGD/////AAAAAAAA
AACoYpq1AdD//6himrUB0P//SlcnXP////8AAAAAAAAAAMhimrUB0P//yGKatQHQ//+a4Cp4
/////wAAAAAAAAAA6GKatQHQ///oYpq1AdD//6sN82v/////AAAAAAAAAAAIY5q1AdD//whj
mrUB0P//ghMwYP////8AAAAAAAAAAChjmrUB0P//KGOatQHQ///kqehz/////wAAAAAAAAAA
SGOatQHQ//9IY5q1AdD//6xvOFz/////AAAAAAAAAABoY5q1AdD//2hjmrUB0P//FbI8kP//
//8AAAAAAAAAAIhjmrUB0P//iGOatQHQ//8ZZkBU/////wAAAAAAAAAAqGOatQHQ//+oY5q1
AdD//xMgR1z/////AAAAAAAAAADIY5q1AdD//8hjmrUB0P//sX9KYP////8AAAAAAAAAAOhj
mrUB0P//6GOatQHQ//9yexRs/////wAAAAAAAAAACGSatQHQ//8IZJq1AdD//7MaUFT/////
AAAAAAAAAAAoZJq1AdD//yhkmrUB0P//a9xVdP////8AAAAAAAAAAEhkmrUB0P//SGSatQHQ
//9F91t0/////wAAAAAAAAAAaGSatQHQ//9oZJq1AdD//6unX2D/////AAAAAAAAAACIZJq1
AdD//4hkmrUB0P//RdliUP////8AAAAAAAAAAKhkmrUB0P//qGSatQHQ//+ciP1j/////wAA
AAAAAAAAyGSatQHQ///IZJq1AdD//94xHGT/////AAAAAAAAAADoZJq1AdD//+hkmrUB0P//
PaZvYP////8AAAAAAAAAAAhlmrUB0P//CGWatQHQ//+TUwtY/////wAAAAAAAAAAKGWatQHQ
//8oZZq1AdD//9ord3j/////AAAAAAAAAABIZZq1AdD//0hlmrUB0P//COR5cP////8AAAAA
AAAAAGhlmrUB0P//aGWatQHQ///qEn14/////wAAAAAAAAAAiGWatQHQ//+IZZq1AdD//756
g3D/////AAAAAAAAAACoZZq1AdD//6hlmrUB0P//e7OGXP////8AAAAAAAAAAMhlmrUB0P//
yGWatQHQ//9vBIhw/////wAAAAAAAAAA6GWatQHQ///oZZq1AdD//yLMjXj/////AAAAAAAA
AAAIZpq1AdD//whmmrUB0P//6NCRdP////8AAAAAAAAAAChmmrUB0P//KGaatQHQ///Wa5ac
/////wAAAAAAAAAAoLEbNADg//+gsRs0AOD///0ImZABAAAAAAAAAAAAAABoZpq1AdD//2hm
mrUB0P//qSucZP////8AAAAAAAAAAIhmmrUB0P//iGaatQHQ///TyTpo/////wAAAAAAAAAA
qGaatQHQ//+oZpq1AdD//1h+plz/////AAAAAAAAAADIZpq1AdD//8hmmrUB0P//dcOoZP//
//8AAAAAAAAAAOhmmrUB0P//6GaatQHQ///OSayg/////wAAAAAAAAAACGeatQHQ//8IZ5q1
AdD//yXxsnj/////AAAAAAAAAAAoZ5q1AdD//yhnmrUB0P//lpK3cP////8AAAAAAAAAAEhn
mrUB0P//SGeatQHQ//83o7l4/////wAAAAAAAAAAaGeatQHQ//9oZ5q1AdD//85Yv2T/////
AAAAAAAAAACIZ5q1AdD//4hnmrUB0P//vvzCoP////8AAAAAAAAAAKhnmrUB0P//qGeatQHQ
//80h8eg/////wAAAAAAAAAAoHncMwDg//+gYT8zAOD//0yiyaAAAAAAAAAAAAAAAADoZ5q1
AdD//+hnmrUB0P//MhrOoP////8AAAAAAAAAAAhomrUB0P//CGiatQHQ//8uctN4/////wAA
AAAAAAAAoFl2MwDg//+gWXYzAOD//xQH1aAAAAAAAAAAAAAAAABIaJq1AdD//0homrUB0P//
92vbSP////8AAAAAAAAAAGhomrUB0P//aGiatQHQ///UxN94/////wAAAAAAAAAAsPb8MwDg
//+w9vwzAOD//1xR5PcAAAAAAAAAAAAAAABgwZkzAOD//2DBmTMA4P//kM7koAAAAAAAAAAA
AAAAAMhomrUB0P//yGiatQHQ///K+K5M/////wAAAAAAAAAA6GiatQHQ///oaJq1AdD//z5t
7XD/////AAAAAAAAAAAIaZq1AdD//whpmrUB0P//fiHwdP////8AAAAAAAAAAChpmrUB0P//
KGmatQHQ///nk/cg/////wAAAAAAAAAASGmatQHQ//9IaZq1AdD//3sEk2T/////AAAAAAAA
AABoaZq1AdD//2hpmrUB0P//v5z+TP////8AAAAAAAAAAIhpmrUB0P//iGmatQHQ///64QBN
/////wAAAAAAAAAAqGmatQHQ//+oaZq1AdD///yoBHn/////AAAAAAAAAADIaZq1AdD//8hp
mrUB0P//FeXlaP////8AAAAAAAAAAOhpmrUB0P//6GmatQHQ//83sw51/////wAAAAAAAAAA
CGqatQHQ//8Iapq1AdD//6XbEHX/////AAAAAAAAAAAoapq1AdD//yhqmrUB0P//lMEVmf//
//8AAAAAAAAAAEhqmrUB0P//SGqatQHQ//+Zcxtx/////wAAAAAAAAAAaGqatQHQ//9oapq1
AdD//37kH3n/////AAAAAAAAAACIapq1AdD//4hqmrUB0P//lAwief////8AAAAAAAAAAKhq
mrUB0P//qGqatQHQ///0biR5/////wAAAAAAAAAA4GjlMADg///gaOUwAOD//wAYKHkAAAAA
AAAAAAAAAADoapq1AdD//+hqmrUB0P///cMuUf////8AAAAAAAAAAAhrmrUB0P//CGuatQHQ
//96MTKN/////wAAAAAAAAAAKGuatQHQ//8oa5q1AdD//4VtNV3/////AAAAAAAAAABIa5q1
AdD//0hrmrUB0P//k4g7Wf////8AAAAAAAAAAGhrmrUB0P//aGuatQHQ///KsD1Z/////wAA
AAAAAAAAiGuatQHQ//+Ia5q1AdD//1C2QXn/////AAAAAAAAAACg0RsxAOD//6DRGzEA4P//
4kBGeQAAAAAAAAAAAAAAAMhrmrUB0P//yGuatQHQ//93pUpN/////wAAAAAAAAAA6GuatQHQ
///oa5q1AdD//9f9TU3/////AAAAAAAAAAAIbJq1AdD//whsmrUB0P//tflRcf////8AAAAA
AAAAAChsmrUB0P//KGyatQHQ//9FTFd1/////wAAAAAAAAAASGyatQHQ//9IbJq1AdD//xUw
Wm3/////AAAAAAAAAABobJq1AdD//2hsmrUB0P//UIFdZf////8AAAAAAAAAAIhsmrUB0P//
iGyatQHQ//+u6WNV/////wAAAAAAAAAAqGyatQHQ//+obJq1AdD//zJiZGX/////AAAAAAAA
AADIbJq1AdD//8hsmrUB0P//FoJpnf////8AAAAAAAAAAOhsmrUB0P//6GyatQHQ//+Z7Wxl
/////wAAAAAAAAAACG2atQHQ//8IbZq1AdD//1SpcnH/////AAAAAAAAAAAobZq1AdD//yht
mrUB0P//wPx0Xf////8AAAAAAAAAAEhtmrUB0P//SG2atQHQ//8eCE9h/////wAAAAAAAAAA
aG2atQHQ//9obZq1AdD//wW2fJH/////AAAAAAAAAACIbZq1AdD//4htmrUB0P//nLSDVf//
//8AAAAAAAAAAKhtmrUB0P//qG2atQHQ///i8oeR/////wAAAAAAAAAAyG2atQHQ///IbZq1
AdD//8NxinX/////AAAAAAAAAADobZq1AdD//+htmrUB0P//SuaPTf////8AAAAAAAAAAAhu
mrUB0P//CG6atQHQ//81kZJp/////wAAAAAAAAAAKG6atQHQ//8obpq1AdD//8Hplp3/////
AAAAAAAAAABIbpq1AdD//0humrUB0P//+ZqZgf////8AAAAAAAAAAGhumrUB0P//aG6atQHQ
//8DNp95/////wAAAAAAAAAAiG6atQHQ//+Ibpq1AdD//z1Ro1X/////AAAAAAAAAACobpq1
AdD//6humrUB0P//n46kXf////8AAAAAAAAAAMhumrUB0P//yG6atQHQ//8q73FZ/////wAA
AAAAAAAA6G6atQHQ///obpq1AdD///a+gmX/////AAAAAAAAAACw2P0zAOD//7DY/TMA4P//
7xm3mAAAAAAAAAAAAAAAAChvmrUB0P//KG+atQHQ//9ij7Rd/////wAAAAAAAAAASG+atQHQ
//9Ib5q1AdD//34guVH/////AAAAAAAAAABob5q1AdD//2hvmrUB0P//5JG8cf////8AAAAA
AAAAAIhvmrUB0P//iG+atQHQ//97DMNV/////wAAAAAAAAAAqG+atQHQ//+ob5q1AdD//wlW
xF3/////AAAAAAAAAACgcdYzAOD//6Bx1jMA4P//TBDLgQAAAAAAAAAAAAAAAOhvmrUB0P//
6G+atQHQ//+IJc5p/////wAAAAAAAAAACHCatQHQ//8IcJq1AdD//1Sw0mn/////AAAAAAAA
AAAocJq1AdD//yhwmrUB0P//Ox/Xbf////8AAAAAAAAAAEhwmrUB0P//SHCatQHQ//+sgthN
/////wAAAAAAAAAAaHCatQHQ//9ocJq1AdD//7AO3jn/////AAAAAAAAAACIcJq1AdD//4hw
mrUB0P//Vk/gaf////8AAAAAAAAAAKhwmrUB0P//qHCatQHQ//9qIOdt/////wAAAAAAAAAA
yHCatQHQ///IcJq1AdD//+d76pH/////AAAAAAAAAADocJq1AdD//+hwmrUB0P//i13scf//
//8AAAAAAAAAAAhxmrUB0P//CHGatQHQ//9/2fJV/////wAAAAAAAAAAKHGatQHQ//8ocZq1
AdD//5Tn9m3/////AAAAAAAAAABIcZq1AdD//0hxmrUB0P//QvX5Uf////8AAAAAAAAAAGhx
mrUB0P//aHGatQHQ///DHfxR/////wAAAAAAAAAAiHGatQHQ//+IcZq1AdD//zTpA17/////
AAAAAAAAAACg0dgzAOD//6AphDMA4P//D9AGlgAAAAAAAAAAAAAAAMhxmrUB0P//yHGatQHQ
//9iWwuW/////wAAAAAAAAAAoGQeMQDg//8g2dczAOD///6CDZYAAAAAAAAAAAAAAAAIcpq1
AdD//whymrUB0P//UOoTXv////8AAAAAAAAAAGAndjMA4P//4Je8MwDg//9nmRaWAAAAAAAA
AAAAAAAASHKatQHQ//9Icpq1AdD//4P7GJb/////AAAAAAAAAABocpq1AdD//2hymrUB0P//
4bscnv////8AAAAAAAAAAIhymrUB0P//iHKatQHQ//+MECKW/////wAAAAAAAAAAqHKatQHQ
//+ocpq1AdD//6XfJHb/////AAAAAAAAAADIcpq1AdD//8hymrUB0P//83Apbv////8AAAAA
AAAAAOhymrUB0P//6HKatQHQ//9UDSxS/////wAAAAAAAAAAYKeJMwDg//9gp4kzAOD//2Tv
Ma4BAAAAAAAAAAAAAAAoc5q1AdD//yhzmrUB0P//gfk0dv////8AAAAAAAAAAEhzmrUB0P//
SHOatQHQ//+6mTlu/////wAAAAAAAAAAaHOatQHQ//9oc5q1AdD//5kXPm7/////AAAAAAAA
AACIc5q1AdD//4hzmrUB0P//4hZCfv////8AAAAAAAAAAKhzmrUB0P//qHOatQHQ//+IV0aW
/////wAAAAAAAAAAyHOatQHQ///Ic5q1AdD//+N1SVL/////AAAAAAAAAADoc5q1AdD//+hz
mrUB0P//wI1Onv////8AAAAAAAAAAGBRdzMA4P//YFF3MwDg///k71CeAAAAAAAAAAAAAAAA
KHSatQHQ//8odJq1AdD//4P7VnL/////AAAAAAAAAABIdJq1AdD//0h0mrUB0P//oaFbUv//
//8AAAAAAAAAAGh0mrUB0P//aHSatQHQ//9BnV5W/////wAAAAAAAAAAiHSatQHQ//+IdJq1
AdD//+YmYHb/////AAAAAAAAAACodJq1AdD//6h0mrUB0P//Rddkev////8AAAAAAAAAAMh0
mrUB0P//yHSatQHQ//+ELWl2/////wAAAAAAAAAA6HSatQHQ///odJq1AdD//7lrbnb/////
AAAAAAAAAAAIdZq1AdD//wh1mrUB0P//CvRydv////8AAAAAAAAAACh1mrUB0P//KHWatQHQ
//8Sfnd2/////wAAAAAAAAAASHWatQHQ//9IdZq1AdD//6GjeXb/////AAAAAAAAAABodZq1
AdD//2h1mrUB0P//9K59Wv////8AAAAAAAAAAIh1mrUB0P//iHWatQHQ//9tKIBi/////wAA
AAAAAAAA4JXtMwDg///gle0zAOD//4ubhoIIAAAAAAAAAAAAAADIdZq1AdD//8h1mrUB0P//
jU6LWv////8AAAAAAAAAAOh1mrUB0P//6HWatQHQ///03Y52/////wAAAAAAAAAACHaatQHQ
//8Idpq1AdD//1jWkl7/////AAAAAAAAAADwm10zAOD///CbXTMA4P//cENIegAAAAAAAAAA
AAAAAEh2mrUB0P//SHaatQHQ//9/W5l2/////wAAAAAAAAAAaHaatQHQ//9odpq1AdD//4jb
n1r/////AAAAAAAAAACIdpq1AdD//4h2mrUB0P//BEGgnv////8AAAAAAAAAAKh2mrUB0P//
qHaatQHQ//8G0aR2/////wAAAAAAAAAAyHaatQHQ///Idpq1AdD//4B1q3b/////AAAAAAAA
AADodpq1AdD//+h2mrUB0P//waGvWv////8AAAAAAAAAAAh3mrUB0P//CHeatQHQ//8PA7Bu
/////wAAAAAAAAAAoOSMMwDg//+g5IwzAOD//1jft5YAAAAAAAAAAAAAAABId5q1AdD//0h3
mrUB0P//pH64dv////8AAAAAAAAAAGh3mrUB0P//aHeatQHQ//9KP792/////wAAAAAAAAAA
iHeatQHQ//+Id5q1AdD//4Muwm7/////AAAAAAAAAACod5q1AdD//6h3mrUB0P//qebEUv//
//8AAAAAAAAAAMh3mrUB0P//yHeatQHQ///z1Mp6/////wAAAAAAAAAAoHGdMwDg//+gcZ0z
AOD//2Rcz4IAAAAAAAAAAAAAAAAIeJq1AdD//wh4mrUB0P//51XRdv////8AAAAAAAAAACh4
mrUB0P//KHiatQHQ//8PA7Bu/////wAAAAAAAAAASHiatQHQ//9IeJq1AdD//6KY24r/////
AAAAAAAAAABoeJq1AdD//2h4mrUB0P//mRm5bv////8AAAAAAAAAAIh4mrUB0P//iHiatQHQ
//85KXpm/////wAAAAAAAAAAqHiatQHQ//+oeJq1AdD//82X5HL/////AAAAAAAAAADIeJq1
AdD//8h4mrUB0P//4knrVv////8AAAAAAAAAAOh4mrUB0P//6HiatQHQ//+iqe9W/////wAA
AAAAAAAACHmatQHQ//8IeZq1AdD//2Vp8XL/////AAAAAAAAAAAoeZq1AdD//yh5mrUB0P//
e8v1dv////8AAAAAAAAAAKBJKDMA4P//oEnvMwDg//+ZPfh6AAAAAAAAAAAAAAAAoMH3MwDg
//+gwfczAOD//6Fy/poAAAAAAAAAAAAAAACIeZq1AdD//4h5mrUB0P//TxoBd/////8AAAAA
AAAAAKh5mrUB0P//qHmatQHQ//9Qeclu/////wAAAAAAAAAAYJH3MwDg//9gkfczAOD//7Ye
CZsAAAAAAAAAAAAAAACgsdEzAOD//6Cx0TMA4P//u48MewAAAAAAAAAAAAAAAAh6mrUB0P//
CHqatQHQ///I9hFf/////wAAAAAAAAAAKHqatQHQ//8oepq1AdD//wcAFnf/////AAAAAAAA
AADQGB4xAOD//9AYHjEA4P//ix0ZGwEAAAAAAAAAAAAAAGh6mrUB0P//aHqatQHQ//+qNRxr
/////wAAAAAAAAAAoHHwMwDg//+gcfAzAOD//9EbIJ8AAAAAAAAAAAAAAACoepq1AdD//6h6
mrUB0P//GGXYWv////8AAAAAAAAAAMh6mrUB0P//yHqatQHQ//8hkCqf/////wAAAAAAAAAA
6HqatQHQ///oepq1AdD//6czLjP/////AAAAAAAAAAAIe5q1AdD//wh7mrUB0P//jKQzn///
//8AAAAAAAAAACh7mrUB0P//KHuatQHQ///NBjaf/////wAAAAAAAAAASHuatQHQ//9Ie5q1
AdD///v5O2v/////AAAAAAAAAABoe5q1AdD//2h7mrUB0P//d8zUYv////8AAAAAAAAAAIh7
mrUB0P//iHuatQHQ//8tOkF3/////wAAAAAAAAAAqHuatQHQ//+oe5q1AdD//5ijRVf/////
AAAAAAAAAADIe5q1AdD//8h7mrUB0P//tSpLd/////8AAAAAAAAAAOh7mrUB0P//6HuatQHQ
//9KtU93/////wAAAAAAAAAACHyatQHQ//8IfJq1AdD//zGOUV//////AAAAAAAAAAAofJq1
AdD//yh8mrUB0P//fOZWW/////8AAAAAAAAAAKBxlDMA4P//oHGUMwDg//8y8VpvAQAAAAAA
AAAAAAAAaHyatQHQ//9ofJq1AdD///2LX1P/////AAAAAAAAAACIfJq1AdD//4h8mrUB0P//
i5BhX/////8AAAAAAAAAAKh8mrUB0P//qHyatQHQ//8BS2ZT/////wAAAAAAAAAAyHyatQHQ
///IfJq1AdD//6gdap//////AAAAAAAAAADofJq1AdD//+h8mrUB0P//Ej9ue/////8AAAAA
AAAAAAh9mrUB0P//CH2atQHQ//8EMnOf/////wAAAAAAAAAAKH2atQHQ//8ofZq1AdD//2tv
d1v/////AAAAAAAAAABIfZq1AdD//0h9mrUB0P//8x4SZ/////8AAAAAAAAAAGh9mrUB0P//
aH2atQHQ//+CHH13/////wAAAAAAAAAAoFEbNADg//+gURs0AOD//52RgnsAAAAAAAAAAAAA
AACofZq1AdD//6h9mrUB0P//4XeHd/////8AAAAAAAAAAMh9mrUB0P//yH2atQHQ//+K7Yh3
/////wAAAAAAAAAA6H2atQHQ///ofZq1AdD//9cBjHf/////AAAAAAAAAAAIfpq1AdD//wh+
mrUB0P//tyKRX/////8AAAAAAAAAACh+mrUB0P//KH6atQHQ//+bE5V3/////wAAAAAAAAAA
SH6atQHQ//9Ifpq1AdD//yTDm1v/////AAAAAAAAAABofpq1AdD//2h+mrUB0P//luudW///
//8AAAAAAAAAAIh+mrUB0P//iH6atQHQ///F66Bf/////wAAAAAAAAAAqH6atQHQ//+ofpq1
AdD//yS/pHv/////AAAAAAAAAADIfpq1AdD//8h+mrUB0P//jT1fZ/////8AAAAAAAAAAOh+
mrUB0P//6H6atQHQ///STKyH/////wAAAAAAAAAACH+atQHQ//8If5q1AdD//33tsF//////
AAAAAAAAAACghpgzAOD//6CGmDMA4P//+9i20wAAAAAAAAAAAAAAAEh/mrUB0P//SH+atQHQ
//+wZ7tz/////wAAAAAAAAAAaH+atQHQ//9of5q1AdD//0s1vFP/////AAAAAAAAAACgIT8z
AOD//6AhPzMA4P//BKbCnwAAAAAAAAAAAAAAAKh/mrUB0P//qH+atQHQ//9oBcd3/////wAA
AAAAAAAAyH+atQHQ///If5q1AdD//5+Py3f/////AAAAAAAAAADof5q1AdD//+h/mrUB0P//
mvLNd/////8AAAAAAAAAAAiAmrUB0P//CICatQHQ//9YJNCf/////wAAAAAAAAAAKICatQHQ
//8ogJq1AdD//19T1FP/////AAAAAAAAAABIgJq1AdD//0iAmrUB0P//pOPad/////8AAAAA
AAAAAGiAmrUB0P//aICatQHQ//+8GNx3/////wAAAAAAAAAAiICatQHQ//+IgJq1AdD//8B9
4F//////AAAAAAAAAACogJq1AdD//6iAmrUB0P//gaPnd/////8AAAAAAAAAAMiAmrUB0P//
yICatQHQ///4Yeh3/////wAAAAAAAAAA6ICatQHQ///ogJq1AdD//z5V7W//////AAAAAAAA
AAAIgZq1AdD//wiBmrUB0P//jIjzd/////8AAAAAAAAAACiBmrUB0P//KIGatQHQ//8i5vR7
/////wAAAAAAAAAAYJE/MwDg//9gkT8zAOD//48P+X8AAAAAAAAAAAAAAABogZq1AdD//2iB
mrUB0P//fsL/f/////8HAQYAAAAAAMBZqzAA4P//wFmrMADg//8AAAAAAAAAABMCggIAAAAA
AAAAAAAAAAAEAAAAAAAAAHxjdtYA+P//AAAAAAAAAADgym6zAdD//6DKbrMB0P//AAAAAAAA
AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFjhWTMA4P//WNnJMwDg//8AAAAA
AAAAAAAAAADj/wIAAQAAAAAAAAAAAAAAAAAAABMBggIAAAAAAAAAAAAAAAAAAAAAAAAAAFSD
edYA+P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gIKatQHQ//+Agpq1AdD//5CCmrUB0P//kIKatQHQ//+ggpq1AdD//6CCmrUB0P//sIKatQHQ
//+wgpq1AdD//8CCmrUB0P//wIKatQHQ///Qgpq1AdD//9CCmrUB0P//4IKatQHQ///ggpq1
AdD///CCmrUB0P//8IKatQHQ//8Ag5q1AdD//wCDmrUB0P//EIOatQHQ//8Qg5q1AdD//yCD
mrUB0P//IIOatQHQ//8wg5q1AdD//zCDmrUB0P//QIOatQHQ//9Ag5q1AdD//1CDmrUB0P//
UIOatQHQ//9gg5q1AdD//2CDmrUB0P//cIOatQHQ//9wg5q1AdD//4CDmrUB0P//gIOatQHQ
//+Qg5q1AdD//5CDmrUB0P//oIOatQHQ//+gg5q1AdD//7CDmrUB0P//sIOatQHQ///Ag5q1
AdD//8CDmrUB0P//0IOatQHQ///Qg5q1AdD//+CDmrUB0P//4IOatQHQ///wg5q1AdD///CD
mrUB0P//AISatQHQ//8AhJq1AdD//xCEmrUB0P//EISatQHQ//8ghJq1AdD//yCEmrUB0P//
MISatQHQ//8whJq1AdD//0CEmrUB0P//QISatQHQ//9QhJq1AdD//1CEmrUB0P//YISatQHQ
//9ghJq1AdD//3CEmrUB0P//cISatQHQ///ZvAEAfzIAABwAAAAAAAAADAAAAAIAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAQgAAAFOh6+apAAAAAAAAAAAAAAABkKwAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAbwIAAAAAAAAAAAAAfwAAAAAAAADRgS+WJgAAAAAAAAAAAAAA
AAAAAAAAAADiIQAACQcAAAAAAACgAwAAAAAAAAAAAAALAAAAbgAAAEsCAAAEAQAAFBEAAAAA
AAAAAAAApwcAAAAAAAAAAAAAKwIAAAAAAAANAAAAAAAAAAAAAADeCwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAEIAlMwDg//8ogyUzAOD//4cAAAAAAAAAmLWPdAAAAAAAAAAAAAAAAAAA
AAAAAAAAPCg8KAEAAAAAAAAAAAAAAAAAAAAAAAAA057r5qkAAACJLNFEAwAAAAAAAAAAAAAA
AAAAAAAAAABWVf14AAAAAAoAAAAAAAAAiBD+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADoAwAAAAAAAAAAAAB2AAAAAgAAAAAAAAABAAAAPi0AAEAbudYA+P//AQAAAAAAAAABAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMDggIAAAAAAAAAAAAAAAAAAAAAAAAAACSg
edYA+P//gDGatQHQ//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACvjm8BAAAAAK+ObwEAAAAAr45vAQAAAACvjm8BAAAAAOgDAAAAAAAA6AMAAAAA
AABpGgAAAAAAADZpckomAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAGQAAABkAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAAAAAAAZAAAAAAAAAAAAAAAZAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAABCEAAAIAAAAIAAAABBEAAAIAAAAEAAAACCEAAAAAEAAAAAAADEEAA
AACAAAAAAAAAAAAAAAAAAAAAAAAEAAAAXAAAAG4AAAAsAJyxAdD//yA0kDAA4P//EMCxMADg
//8AAA0AAAAAAAAAAAAAAAAABAABAAAAAAAAgJqxAdD//wBgmrEB0P//APCbtQHQ//8AAAAA
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
///AtXAZAMD//wAAAAAAAAAAAAAAAAAAAAAYOKLWAPj//4DxmrEB0P//APKS1gD4//8AAAAA
AAAAAADzktYA+P//gBHdMADg//9Auxo0AOD//wDzktYA+P//jJNx1gD4//8YOKLWAPj//xDg
WhkAwP//QLsaNADg//9AEN0wAOD//wAAAIXAdRJMi8cPt9ZIi8sAHyoACAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAEAQ3TAA4P//APKS1gD4//9IiVwkCEiJbCQQSIl0JBhXlKbzii7T
//8BAAAASYv5QQCRcdYA+P//APOS1gD4//8AAAAAAAAAAAAAAAAAAAAAQCCPMADg//9w7HfW
APj//0iLy/+TwAAAQBDdMADg//+AAAAAAAAAAEAQ3TAA4P//SIlcJAhXSIPsIA+32kiL+fAF
E7IB0P//8AUTsgHQ//9AUpuxAdD//0AgjzAA4P//AAAAAAAAAADGP33WAPj//4DxmrEB0P//
QBDdMADg//+AGKswAOD//7P//8xAU0iD7CBIi9lIi0kAAAAAAAAAAAAgE7IB0P//AMASsgHQ
//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAIAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAeNGW1gD4//940ZbWAPj//0tEQkdgAwAAANBn1gD4//+QRX3WAPj//wAAAAAAAAAA
AAAAAAAAAQCgEH3WAPj//wAAAAAAAAAAUGKV1gD4//8AwJPWAPj//+gBntYA+P//0FGT1gD4
//+AIp7WAPj//3wAntYA+P//ZACe1gD4//+g2ZXWAPj//0DVldYA+P//UCqW1gD4//9w2JPW
APj//3jYk9YA+P//AAAAAAAAAAAAAAAAAAAAAMCQndYA+P//6ACe1gD4//8AAAAAAAAAAAAA
AAAAAAAAAAye1gD4//8YP5TWAPj//wgDntYA+P//4ACe1gD4//9oAJ7WAPj//5gCntYA+P//
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAZ7WAPj//2A6lNYA+P//ABAAAAAA
AAAgBZ7WAPj//5A5lNYA+P//iDmU1gD4///YaZXWAPj//0hildYA+P//EGqV1gD4///AOpTW
APj//wAAAAAAAAAAwIad1gD4//+Ag53WAPj//0CHndYA+P//AISd1gD4//8wspLWAPj//8CA
ndYA+P//QIGd1gD4//8oWJPWAPj//0CXltYA+P//EACe1gD4//84AZ7WAPj//wAAntYA+P//
wOGW1gD4///A8ZbWAPj//4jdktYA+P//sOGW1gD4//8AAAAAAAAAADD1Z9YA+P//AAAAAAAA
AABADZ7WAPj//zgCntYA+P//TGKV1gD4//+stZPWAPj//xQBntYA+P//sLWT1gD4///gZZXW
APj//6g7lNYA+P//mDmU1gD4//+gOZTWAPj//whZltYA+P//8ACe1gD4//8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABgC8ABYACgAuACEAQAAAADYBugD0AMoAIBd6i0IAPQF
8AVYWSABJAB4BwAAAAAAAIDdktYA+P//eN2S1gD4///43ZXWAPj//wBfGAAgAIABAAAAAAAA
AAAAAEAAEAAYAAAAMwArAAAAAABAACMAUwBsFpbWAPj//4AWltYA+P//AAAAAAAAAAAgOZTW
APj//yQ5lNYA+P//SApp1gD4//+AWQAAAAAAADAAAAA4AAAACAIAAFgGAAAYAOwt0C2YWVAA
oAKDAgAACAkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA0GfWAPj//wAAAAAAAAAAAEB5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPzHIAAAAAABg3UFQAAAAAUAkBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0GDWAPj//wAA
AAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAvyAYAAAAAAOiti1MAAAAAkAkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYJXVAPj//wAAAAAAAAAAAJAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIaAAAAAAAALv4
FVIAAAAA0AkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMM2VAfj//wAAAAAAAAAAANAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyGwgAAAAAADiltlMAAAAAOAoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANWVAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAK0wAAAAAAAKj4FVIAAAAAmAoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4NWVAfj//wAAAAAAAAAAABAGAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu/gUAAAAAAGRR
KVMAAAAA6AoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA8NuVAfj//wAAAAAAAAAAACACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZcgIAAAAAAHX4FVIAAAAAOAsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEN6VAfj//wAA
AAAAAAAAAFABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAFTwEAAAAAAD9rNFIAAAAAgAsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYN+VAfj//wAAAAAAAAAAAKAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClQwEAAAAAAKr4
FVIAAAAAyAsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAMCVAfj//wAAAAAAAAAAAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB54ggAAAAAALB2glQAAAAACAwBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYOyVAfj//wAA
AAAAAAAAANAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAK6QUAAAAAAGr4FVIAAAAAYAwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPKVAfj//wAAAAAAAAAAAPAMAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhrA0AAAAAAFD4
FVIAAAAAuAwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAOCVAfj//wAAAAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAJABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABrZQEAAAAAAGhCtlQAAAAAaBEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgFKWAfj//wAAAAAAAAAAAAABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtXAEAAAAAAG1C
tlQAAAAAwBEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgFOWAfj//wAAAAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJugEAAAAAAPfJNFQAAAAAEBIBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFWWAfj//wAA
AAAAAAAAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABphwEAAAAAABLpNFQAAAAAaBIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwFaWAfj//wAAAAAAAAAAAJAGAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMLAcAAAAAACdV
UFQAAAAAyBIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAUF2WAfj//wAAAAAAAAAAAFABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlgAEAAAAAAIn4FVIAAAAAIBMBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCWAfj//wAA
AAAAAAAAAPAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD4dQYAAAAAAKf4FVIAAAAAeBMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8CWWAfj//wAAAAAAAAAAAIAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtowAAAAAAAJP4
FVIAAAAA0BMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAcCaWAfj//wAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmwgAAAAAAAH34FVIAAAAAKBQBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYCeWAfj//wAA
AAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAmdgAAAAAAAJP4FVIAAAAAgBQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8CeWAfj//wAAAAAAAAAAAJAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABT+AAAAAAAAJP4
FVIAAAAA2BQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgCiWAfj//wAAAAAAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6cwIAAAAAAHKdbk4AAAAAMBUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBOWAfj//wAA
AAAAAAAAAGAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACTdAUAAAAAAP/JNFQAAAAAiBUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWAfj//wAAAAAAAAAAAJAIAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ggAAAAAAEYQ
EFEAAAAA4BUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA0GGWAfj//wAAAAAAAAAAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACp5zMAAAAAAGvUYlEAAAAAOBYBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0JaWAfj//wAA
AAAAAAAAAOADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABEnQQAAAAAADZ7OFQAAAAAkBYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJqWAfj//wAAAAAAAAAAANABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvqwIAAAAAAJD4
FVIAAAAA6BYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgJyWAfj//wAAAAAAAAAAANABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADqFgIAAAAAAO1UUFQAAAAAQBcBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUJ6WAfj//wAA
AAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABG7wEAAAAAAEBVUFQAAAAAmBcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCWAfj//wAAAAAAAAAAAFABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs+AAAAAAAAF5V
UFQAAAAA8BcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACuWAfj//wAAAAAAAAAAALABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNwIAAAAAAFg/M1QAAAAASBgBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKKWAfj//wAA
AAAAAAAAAOARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAwZwYAAAAAAPBMo00AAAAAoBgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgLSWAfj//wAAAAAAAAAAAOABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdnAIAAAAAAEle
21EAAAAA+BgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAYLaWAfj//wAAAAAAAAAAAOAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQCwYAAAAAACuCI1QAAAAAUBkBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLyWAfj//wAA
AAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACD4wAAAAAAALf4FVIAAAAAqBkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BiWAfj//wAAAAAAAAAAAFADAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOfwMAAAAAAHr4
FVIAAAAAABoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4LyWAfj//wAAAAAAAAAAANABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwHgIAAAAAALf4FVIAAAAAWBoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsL6WAfj//wAA
AAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACoBQEAAAAAAEzyT1IAAAAAsBoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMByWAfj//wAAAAAAAAAAALACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYRQMAAAAAAGCb
bk4AAAAACBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAKCWAfj//wAAAAAAAAAAANABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALrAEAAAAAAAqBVFEAAAAAYBsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsCyWAfj//wAA
AAAAAAAAAKABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAC5lAEAAAAAAKGBVFEAAAAAuBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMiVAfj//wAAAAAAAAAAAHABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJAIAAAAAAACx
Q1EAAAAAEBwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA8MmVAfj//wAAAAAAAAAAANABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJhgIAAAAAAPM9Z1EAAAAAaBwBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMuVAfj//wAA
AAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABG9wEAAAAAADqxQ1EAAAAAwBwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoF6WAfj//wAAAAAAAAAAADABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTqgEAAAAAAI3u
SVEAAAAAGB0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAcMKWAfj//wAAAAAAAAAAAOAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5YAUAAAAAAEyQ/VAAAAAAcB0BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUMeWAfj//wAA
AAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADsrgEAAAAAAM3w7lEAAAAAyB0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYMiWAfj//wAAAAAAAAAAAPAOAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABx0AgAAAAAAH8S
rVEAAAAAIB4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAwOWWAfj//wAAAAAAAAAAAPANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJZAoAAAAAADGl+VEAAAAAeB4BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsPOWAfj//wAA
AAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABN9QEAAAAAAC5D21EAAAAA0B4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcPWWAfj//wAAAAAAAAAAAKAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADhcgAAAAAAAOxA
21EAAAAAKB8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAEPaWAfj//wAAAAAAAAAAAHAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/hQQAAAAAAOijx1AAAAAAgB8BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgPyWAfj//wAA
AAAAAAAAAMACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAh2QIAAAAAAJ9JAFEAAAAA2B8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCWAfj//wAAAAAAAAAAAOAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsQAEAAAAAAMSG
2kgAAAAAMCABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4OCWAfj//wAAAAAAAAAAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwHgIAAAAAAPTx40gAAAAAiCABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYOKWAfj//wAA
AAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAtEwEAAAAAACsDtFAAAAAA4CABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEACXAfj//wAAAAAAAAAAADAXAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgzxcAAAAAANQF
rVEAAAAAOCEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoCuXAfj//wAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/cxQAAAAAAFgvslEAAAAAkCEBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEuXAfj//wAA
AAAAAAAAAIAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADcCAgAAAAAACPTUFEAAAAA6CEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECXAfj//wAAAAAAAAAAACALAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH8goAAAAAANyG
t1EAAAAAQCIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACCXAfj//wAAAAAAAAAAACALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH5AoAAAAAALKGt1EAAAAAmCIBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiXAfj//wAA
AAAAAAAAACAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACCHSMAAAAAANZfU1EAAAAA8CIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4K+XAfj//wAAAAAAAAAAACAjAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACeAyMAAAAAAOn6
YVEAAAAAUCMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAANOXAfj//wAAAAAAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUtgIAAAAAAAFCtlQAAAAAqCMBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgNWXAfj//wAA
AAAAAAAAAKADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAClkQMAAAAAAPNBtlQAAAAAACQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAINmXAfj//wAAAAAAAAAAAAABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/WQEAAAAAAPpB
tlQAAAAAWCQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgOCXAfj//wAAAAAAAAAAADAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/lgwAAAAAAHh54FEAAAAAsCQBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsACYAfj//wAA
AAAAAAAAADABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABVUgEAAAAAAPYUUlEAAAAACCUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AGYAfj//wAAAAAAAAAAAMAFAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QUAAAAAAAzw
+1MAAAAAYCUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgCuYAfj//wAAAAAAAAAAAKAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7yh8AAAAAAGt7OFQAAAAAsCUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEuYAfj//wAA
AAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACjWgIAAAAAAEhVUFQAAAAACCYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4EyYAfj//wAAAAAAAAAAAHACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvLgMAAAAAALPx
0FMAAAAAYCYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAUE+YAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+FAEAAAAAADV3iVMAAAAAsCYBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFCYAfj//wAA
AAAAAAAAAKAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACGCwcAAAAAANnx0FMAAAAACCcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsFaYAfj//wAAAAAAAAAAAIABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJLgIAAAAAAOJ2
iVMAAAAAYCcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMFiYAfj//wAAAAAAAAAAAPAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1kAcAAAAAAAF3iVMAAAAAuCcBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCYAfj//wAA
AAAAAAAAACADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAccAMAAAAAAIdzM1QAAAAAECgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICOYAfj//wAAAAAAAAAAAIAHAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOXgcAAAAAAKLo
NFQAAAAAaCgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoCqYAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABooAEAAAAAAP73FVIAAAAAwCgBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAeYAfj//wAA
AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABzEwEAAAAAAOrPFVIAAAAAECkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF+YAfj//wAAAAAAAAAAALAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6xgAAAAAAAOnP
FVIAAAAAaCkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoAiYAfj//wAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9mAMAAAAAAAZVUFQAAAAAwCkBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGyYAfj//wAA
AAAAAAAAAMAmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACFXyYAAAAAAEJVUFQAAAAAGCoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJOYAfj//wAAAAAAAAAAAMAGAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqggcAAAAAAPNU
UFQAAAAAcCoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA8KyYAfj//wAAAAAAAAAAAHAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjfQcAAAAAAHvLi1EAAAAAyCoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYMeYAfj//wAA
AAAAAAAAAFACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABMcwIAAAAAAOFUUFQAAAAAICsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsMmYAfj//wAAAAAAAAAAAPAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADICwEAAAAAAPlU
UFQAAAAAeCsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoMqYAfj//wAAAAAAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFMAEAAAAAAHf4FVIAAAAA0CsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMuYAfj//wAA
AAAAAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADPmAIAAAAAAHr4FVIAAAAAKCwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0M2YAfj//wAAAAAAAAAAADABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjLQEAAAAAAHr4
FVIAAAAAgCwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAM+YAfj//wAAAAAAAAAAAJAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiRQcAAAAAAHnLi1EAAAAA2CwBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkNaYAfj//wAA
AAAAAAAAAFABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAB5cwEAAAAAAFXLi1EAAAAAMC0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4NeYAfj//wAAAAAAAAAAADABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC+AAAAAAAAGbL
i1EAAAAAiC0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAENmYAfj//wAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC48wAAAAAAAGPLi1EAAAAA4C0BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwNmYAfj//wAA
AAAAAAAAADABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAOsgEAAAAAAHj4FVIAAAAAOC4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8NqYAfj//wAAAAAAAAAAACABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcpQEAAAAAAHr4
FVIAAAAAkC4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAKCYAfj//wAAAAAAAAAAAPAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXagUAAAAAAJgVolMAAAAA6C4BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8KSYAfj//wAA
AAAAAAAAAFAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACB0gUAAAAAAIhzM1QAAAAAQC8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQKqYAfj//wAAAAAAAAAAAGACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPQQMAAAAAAPNU
AlQAAAAAmC8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAENyYAfj//wAAAAAAAAAAAGABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMWgEAAAAAABb4FVIAAAAA8C8BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcN2YAfj//wAA
AAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACusAEAAAAAAJqUCFMAAAAASDABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4JmYAfj//wAAAAAAAAAAANABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABldgIAAAAAAOrP
FVIAAAAAoDABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAsJuYAfj//wAAAAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtBgIAAAAAAKz4FVIAAAAA8DABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJ2YAfj//wAA
AAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD0/gEAAAAAAIP4FVIAAAAAQDEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCYAfj//wAAAAAAAAAAAKAIAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQaAkAAAAAALEq
EFEAAAAAmDEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoGiYAfj//wAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUigMAAAAAAEQqEFEAAAAA8DEBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAuYAfj//wAA
AAAAAAAAAFABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAB8XwEAAAAAAJP4FVIAAAAASDIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBOYAfj//wAAAAAAAAAAAOACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZJwMAAAAAAOvP
FVIAAAAAoDIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoGuYAfj//wAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACo6gAAAAAAAKj4FVIAAAAA8DIBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4J6YAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAT7AAAAAAAAIqUCFMAAAAAUDMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAOZAfj//wAAAAAAAAAAAAAYAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhFBgAAAAAABVV
UFQAAAAAqDMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMBuZAfj//wAAAAAAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvNAEAAAAAAK+UCFMAAAAAADQBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8BWYAfj//wAA
AAAAAAAAADAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAo8gYAAAAAAAZVUFQAAAAAWDQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUByZAfj//wAAAAAAAAAAACABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbgEAAAAAAHP4
FVIAAAAAuDQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAcB2ZAfj//wAAAAAAAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcYwEAAAAAAKn4FVIAAAAACDUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsB6ZAfj//wAA
AAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABV7wAAAAAAAKj4FVIAAAAAWDUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAfj//wAAAAAAAAAAAAACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQBgIAAAAAAML3
FVIAAAAAqDUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAKZAfj//wAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA0gAAAAAAAFX4FVIAAAAA+DUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAINqXAfj//wAA
AAAAAAAAAMAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACVGgUAAAAAAN33FVIAAAAAUDYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCXAfj//wAAAAAAAAAAACAJAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADecAkAAAAAAOX0
h1MAAAAAoDYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAIByYAfj//wAAAAAAAAAAAKACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs5gIAAAAAAMpUUFQAAAAA+DYBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwB6YAfj//wAA
AAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACT5QAAAAAAADtVUFQAAAAAUDcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIuXAfj//wAAAAAAAAAAAAAHAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACnvwYAAAAAAHL7
r1IAAAAAqDcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAIKmXAfj//wAAAAAAAAAAAJABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzUgEAAAAAAMJUUFQAAAAAADgBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsKqXAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADdRwEAAAAAAOtUUFQAAAAAWDgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkKuXAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqFwEAAAAAAC74
FVIAAAAAuDgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAUKyXAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZgwEAAAAAAH34FVIAAAAAEDkBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK2XAfj//wAA
AAAAAAAAAGACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAARmgIAAAAAAGo+GFMAAAAAYDkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJKXAfj//wAAAAAAAAAAAHABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxEQIAAAAAAAg8
ilQAAAAAuDkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4N6XAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADx8QAAAAAAAEVVUFQAAAAAEDoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJOXAfj//wAA
AAAAAAAAANADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACtsAMAAAAAAJv3FVIAAAAAaDoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYJeXAfj//wAAAAAAAAAAANABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqWgIAAAAAAN5U
UFQAAAAAwDoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMJmXAfj//wAAAAAAAAAAAPABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpugEAAAAAAMVUUFQAAAAAGDsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJuXAfj//wAA
AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABSlwAAAAAAAEj4FVIAAAAAeDsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJyXAfj//wAAAAAAAAAAALAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQngAAAAAAADL4
FVIAAAAA0DsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAwJyXAfj//wAAAAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC+wAAAAAAAFP4FVIAAAAAKDwBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0J2XAfj//wAA
AAAAAAAAAPABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEcAIAAAAAAC1eM1QAAAAAgDwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCXAfj//wAAAAAAAAAAAAABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCygAAAAAAACde
M1QAAAAA2DwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAGGXAfj//wAAAAAAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3QQEAAAAAAC5eM1QAAAAAMD0BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGKXAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADbwwAAAAAAAKL4FVIAAAAAgD0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGOXAfj//wAAAAAAAAAAAJACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzzAIAAAAAALRB
tlQAAAAA2D0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAQBeXAfj//wAAAAAAAAAAAJABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVqgEAAAAAAOPx0FMAAAAAMD4BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGaXAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADSnAAAAAAAAPF2iVMAAAAAiD4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0BiXAfj//wAAAAAAAAAAAOABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClbgIAAAAAAOvP
FVIAAAAA4D4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAsBqXAfj//wAAAAAAAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwOAIAAAAAAJf3FVIAAAAAOD8BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwByXAfj//wAA
AAAAAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADrpAIAAAAAAJf3FVIAAAAAkD8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+XAfj//wAAAAAAAAAAALAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk5wAAAAAAALn3
FVIAAAAA+D8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAEOOWAfj//wAAAAAAAAAAALABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkzQEAAAAAAMX3FVIAAAAAUEABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AKZAfj//wAA
AAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAASSwAAAAAAAE1VUFQAAAAAqEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUNeWAfj//wAAAAAAAAAAAOAEAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADqGQUAAAAAABOl
tlMAAAAA+EABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAwOSWAfj//wAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAgEAAAAAAEz4FVIAAAAAUEEBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMNyWAfj//wAA
AAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAA38wEAAAAAAB5VUFQAAAAAqEEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgCOZAfj//wAAAAAAAAAAAGAGAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACnsAYAAAAAACv4
FVIAAAAAAEIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4CmZAfj//wAAAAAAAAAAAHAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACedAQAAAAAAAtVUFQAAAAAWEIBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUC6ZAfj//wAA
AAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAyowEAAAAAAEpVUFQAAAAAqEIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDCZAfj//wAAAAAAAAAAAFMAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVuAAAAAAAAHP4
FVIAAAAAAEMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMDGZAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzQQEAAAAAAKL4FVIAAAAAaEMBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8DGZAfj//wAA
AAAAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAUtgIAAAAAAAFCtlQAAAAAyEMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcDSZAfj//wAAAAAAAAAAAKADAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClkQMAAAAAAPNB
tlQAAAAAKEQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABkAYPn//wAAAAAAAAAAAIBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcEQBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDiZAfj//wAA
AAAAAAAAAH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAABigAAAAAAAKr4FVIAAAAAyEQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkDiZAfj//wAAAAAAAAAAAOAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtXgEAAAAAAMX3
FVIAAAAAIEUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAsGsAYPn//wAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaEUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYIQAYPn//wAA
AAAAAAAAAKADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqEUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcDmZAfj//wAAAAAAAAAAAEACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4AwIAAAAAAKGU
CFMAAAAAAEYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAsDuZAfj//wAAAAAAAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXCgEAAAAAALL3FVIAAAAAWEYBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8DyZAfj//wAA
AAAAAAAAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACs5AEAAAAAAML3FVIAAAAAsEYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCZAfj//wAAAAAAAAAAAAACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNpAEAAAAAAD74
FVIAAAAACEcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACKZAfj//wAAAAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOgEAAAAAAMtUUFQAAAAAYEcBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8MSZAfj//wAA
AAAAAAAAANAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAcgQYAAAAAAHjoNFQAAAAAuEcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMuZAfj//wAAAAAAAAAAAIADAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcqwMAAAAAADBE
JlQAAAAAEEgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAQM+ZAfj//wAAAAAAAAAAAKAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfgw8AAAAAAPK35lIAAAAAYEgBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCZAfj//wAA
AAAAAAAAALAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABqrgQAAAAAAKg9GFMAAAAAuEgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0OqZAfj//wAAAAAAAAAAAJAKAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWrwoAAAAAAIGT
CFMAAAAAEEkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAYPWZAfj//wAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABACwEAAAAAAC4FCEUAAAAAaEkBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPaZAfj//wAA
AAAAAAAAADAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAZ5gMAAAAAAJ0NrVMAAAAAwEkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQPqZAfj//wAAAAAAAAAAACABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5gAEAAAAAAL89
GFMAAAAAGEoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAOCZAfj//wAAAAAAAAAAANAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOWAsAAAAAAMroNFQAAAAAaEoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGyaAfj//wAA
AAAAAAAAAOAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAC69wYAAAAAAF/x0FMAAAAAuEoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMHiaAfj//wAAAAAAAAAAALAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWGgEAAAAAAD1V
UFQAAAAAIEsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4HiaAfj//wAAAAAAAAAAAEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9HgMAAAAAAM73FVIAAAAAeEsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIHyaAfj//wAA
AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACyJAEAAAAAAKH4FVIAAAAAIQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMA
eQBzAHQAZQBtADMAMgBcAG4AdABvAHMAawByAG4AbAAuAGUAeABlAAAAHAAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGgAYQBsAC4AZABsAGwAAAAAABsA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABrAGQALgBkAGwA
bAAAAAAAAAAuAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
bQBjAHUAcABkAGEAdABlAF8ARwBlAG4AdQBpAG4AZQBJAG4AdABlAGwALgBkAGwAbAAAAAAA
AAAAACoAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAdwBlAHIAawBlAHIAbgBlAGwALgBzAHkAcwAAAAAAAAAAACUAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
QwBMAEYAUwAuAFMAWQBTAAAAIwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB0AG0ALgBzAHkAcwAAAAAAAAAeAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwAUABTAEgARQBEAC4AZABsAGwA
AAAAAAAAAAAgAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
QgBPAE8AVABWAEkARAAuAGQAbABsAAAAAAAbAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
cwB5AHMAdABlAG0AMwAyAFwAQwBJAC4AZABsAGwAAAAAAAAAJgAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABtAHMAcgBwAGMA
LgBzAHkAcwAAAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAVwBkAGYAMAAxADAAMAAwAC4AcwB5AHMAAAAnAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAFcARABGAEwARABSAC4AUwBZAFMAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAEQAcgBpAHYAZQByAHMAXABhAGMAcABpAGUAeAAuAHMA
eQBzAAAAAAAAACwAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABEAHIAaQB2AGUAcgBzAFwAVwBwAHAAUgBlAGMAbwByAGQAZQByAC4AcwB5AHMAAAAAACUA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwAQQBDAFAASQAuAHMAeQBzAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABXAE0ASQBMAEkAQgAuAFMAWQBTAAAA
AAAAACQAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABEAHIA
aQB2AGUAcgBzAFwAYwBuAGcALgBzAHkAcwAAAAAAJQAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXABOAEQASQBTAC4AUwBZAFMA
AAAmAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwARABSAEkA
VgBFAFIAUwBcAE4ARQBUAEkATwAuAFMAWQBTAAAAAAAAAAAAKQAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABtAHMAaQBzAGEA
ZAByAHYALgBzAHkAcwAAACQAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcABjAGkALgBzAHkAcwAAAAAAJwAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABpAHMA
YQBwAG4AcAAuAHMAeQBzAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkA
cwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAdgBkAHIAdgByAG8AbwB0AC4AcwB5AHMA
AAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwARABSAEkA
VgBFAFIAUwBcAHgAZQBuAGIAdQBzAC4AcwB5AHMAAAAAAAAAJAAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXAB4AGUAbgAuAHMA
eQBzAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
RABSAEkAVgBFAFIAUwBcAHgAZQBuAGYAaQBsAHQALgBzAHkAcwAAAAAAJAAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABwAGQA
YwAuAHMAeQBzAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAHAAYQByAHQAbQBnAHIALgBzAHkAcwAAAAAAKgAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABzAHAAYQBjAGUAcABvAHIAdAAuAHMAeQBzAAAAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB2AG8AbABtAGcA
cgAuAHMAeQBzAAAAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAdgBvAGwAbQBnAHIAeAAuAHMAeQBzAAAAAAAnAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAHAAYwBpAGkAZABlAC4AcwB5AHMAAAAAAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABQAEMASQBJAEQARQBYAC4A
UwBZAFMAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAaQBuAHQAZQBsAGkAZABlAC4AcwB5AHMAAAAnAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHYA
aQBhAGkAZABlAC4AcwB5AHMAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABuAHYAcgBhAGkAZAAuAHMAeQBzAAAA
AAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAQwBMAEEAUwBTAFAATgBQAC4AUwBZAFMAAAAnAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGIAeAB2AGIA
ZABhAC4AcwB5AHMAAAAAAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABlAHYAYgBkAGEALgBzAHkAcwAAAAAAAAAAACYA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwAcwBkAGIAdQBzAC4AcwB5AHMAAAAAAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8A
bwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHAAYwBtAGMAaQBhAC4A
cwB5AHMAAAAAAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMA
MgBcAGQAcgBpAHYAZQByAHMAXAB2AG0AYgB1AHMALgBzAHkAcwAAAAAAAAAAACgAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
dgBtAGIAawBtAGMAbAAuAHMAeQBzAAAAAAAmAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
UwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHcAaQBuAGgAdgAuAHMAeQBzAAAA
AAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABtAG8AdQBuAHQAbQBnAHIALgBzAHkAcwAAACgAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAaQBhAFMA
dABvAHIAVgAuAHMAeQBzAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGEAcgBjAHMAYQBzAC4AcwB5AHMAAAAAAAAA
KQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYA
ZQByAHMAXABzAHQAbwByAHAAbwByAHQALgBzAHkAcwAAACYAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAYQB0AGEAcABpAC4A
cwB5AHMAAAAAAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAGEAdABhAHAAbwByAHQALgBTAFkAUwAAAAAAKQAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABzAHQAbwByAGEAaABjAGkALgBzAHkAcwAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcwB0AG8AcgBuAHYAbQBlAC4A
cwB5AHMAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
ZAByAGkAdgBlAHIAcwBcAG4AdgBzAHQAbwByAC4AcwB5AHMAAAAAAAAAKAAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABsAHMA
aQBfAHMAYQBzAC4AcwB5AHMAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkA
cwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAbABzAGkAXwBzAGEAcwAyAC4AcwB5AHMA
AAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkA
dgBlAHIAcwBcAGwAcwBpAF8AcwBhAHMAMwAuAHMAeQBzAAAAJgAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAAzAHcAYQByAGUA
LgBzAHkAcwAAAAAAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAbABzAGkAXwBzAHMAcwAuAHMAeQBzAAAAAAAnAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAG0AdgB1AG0AaQBzAC4AcwB5AHMAAAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB2AHMAdAB4AHIAYQBpAGQA
LgBzAHkAcwAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAbQBlAGcAYQBzAGEAcwAuAHMAeQBzAAAAAAAnAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAG0A
ZQBnAGEAcwByAC4AcwB5AHMAAAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABpAGEAUwB0AG8AcgBBAFYALgBzAHkA
cwAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAYQBtAGQAcwBhAHQAYQAuAHMAeQBzAAAAAAAoAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGEAbQBkAHgA
YQB0AGEALgBzAHkAcwAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABhAG0AZABzAGIAcwAuAHMAeQBzAAAAAAAAACgA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwAdgBzAG0AcgBhAGkAZAAuAHMAeQBzAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8A
bwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAFMAaQBTAFIAYQBpAGQA
MgAuAHMAeQBzAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMA
MgBcAGQAcgBpAHYAZQByAHMAXABzAGkAcwByAGEAaQBkADQALgBzAHkAcwAAACkAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
cwB0AGUAeABzAHQAbwByAC4AcwB5AHMAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
UwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHEAbAAyADMAMAAwAGkALgBzAHkA
cwAAAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABxAGwAZgBjAG8AZQBpAC4AcwB5AHMAAAAAACkAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcQBsADQA
MAB4AHgAMgBpAC4AcwB5AHMAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGUAbAB4AHMAdABvAHIALgBzAHkAcwAAAAAA
KAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYA
ZQByAHMAXABlAGwAeABmAGMAbwBlAC4AcwB5AHMAAAAAACYAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAYgBmAGEAZABpAC4A
cwB5AHMAAAAAAAAAAAAqAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAGIAZgBhAGQAZgBjAG8AZQBpAC4AcwB5AHMAAAAAAAAA
AAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwARABSAEkA
VgBFAFIAUwBcAHgAZQBuAHYAYgBkAC4AcwB5AHMAAAAAAAAAKAAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXAB4AGUAbgBjAHIA
cwBoAC4AcwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUA
bQAzADIAXABEAFIASQBWAEUAUgBTAFwAeABlAG4AZABpAHMAawAuAHMAeQBzAAAAAAAoAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAEEARABQADgAMABYAFgALgBTAFkAUwAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABIAHAAUwBBAE0ARAAuAHMA
eQBzAAAAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAZgBsAHQAbQBnAHIALgBzAHkAcwAAAAAAAAAlAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwARAByAGkAdgBlAHIAcwBcAE4A
dABmAHMALgBzAHkAcwAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABEAHIAaQB2AGUAcgBzAFwAawBzAGUAYwBkAGQALgBzAHkAcwAAAAAAAAAoAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAHUAcwBiAGMAYwBnAHAALgBzAHkAcwAAAAAAJQAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABVAFMAQgBEAC4AUwBZAFMA
AAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkA
dgBlAHIAcwBcAHUAcwBiAGgAdQBiAC4AcwB5AHMAAAAAAAAAKAAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB1AHMAYgBlAGgA
YwBpAC4AcwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAVQBTAEIAUABPAFIAVAAuAFMAWQBTAAAAAAApAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAHUAYwB4ADAAMQAwADAAMAAuAHMAeQBzAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABVAHMAYgBIAHUAYgAzAC4A
cwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAcwB0AG8AcgB2AHMAYwAuAHMAeQBzAAAAAAAkAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHAA
YwB3AC4AcwB5AHMAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABEAHIAaQB2AGUAcgBzAFwARgBzAF8AUgBlAGMALgBzAHkAcwAAAAAAAAAoAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwARAByAGkAdgBlAHIA
cwBcAGsAcwBlAGMAcABrAGcALgBzAHkAcwAAAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB0AGMAcABpAHAALgBzAHkA
cwAAAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAZgB3AHAAawBjAGwAbgB0AC4AcwB5AHMAAAApAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAG0A
bAB4ADQAXwBiAHUAcwAuAHMAeQBzAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMA
eQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXAB3AGYAcABsAHcAZgBzAC4AcwB5AHMA
AAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAdgBtAHMAdABvAHIAZgBsAC4AcwB5AHMAAAAnAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGEAZwBwADQA
NAAwAC4AcwB5AHMAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABuAHYAXwBhAGcAcAAuAHMAeQBzAAAAAAAAACkA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwAdQBsAGkAYQBnAHAAawB4AC4AcwB5AHMAAAAmAAAAXABTAHkAcwB0AGUAbQBSAG8A
bwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGkAYgBiAHUAcwAuAHMA
eQBzAAAAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMA
MgBcAGQAcgBpAHYAZQByAHMAXABuAGQAZgBsAHQAcgAuAHMAeQBzAAAAAAAAACkAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
dwBpAG4AdgBlAHIAYgBzAC4AcwB5AHMAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
UwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHcAaQBuAG0AYQBkAC4AcwB5AHMA
AAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABnAGEAZwBwADMAMABrAHgALgBzAHkAcwAAACcAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAdQBhAGcA
cAAzADUALgBzAHkAcwAAAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHYAbwBsAHMAbgBhAHAALgBzAHkAcwAAAAAA
KAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYA
ZQByAHMAXABVAFMAQgBYAEgAQwBJAC4AUwBZAFMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAVQBTAEIAUwBUAE8A
UgAuAFMAWQBTAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAHUAYQBzAHAAcwB0AG8AcgAuAHMAeQBzAAAAJwAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABzAGQAcwB0AG8AcgAuAHMAeQBzAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcwBiAHAAMgBwAG8AcgB0AC4A
cwB5AHMAAAAkAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
RAByAGkAdgBlAHIAcwBcAG0AdQBwAC4AcwB5AHMAAAAAACUAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAZABpAHMAawAuAHMA
eQBzAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABiAHgAbwBpAHMALgBzAHkAcwAAAAAAAAAAACcAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAYgB4AGYA
YwBvAGUALgBzAHkAcwAAAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwARAByAGkAdgBlAHIAcwBcAGMAcgBhAHMAaABkAG0AcAAuAHMAeQBzAAAA
JgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYA
ZQByAHMAXABjAGQAcgBvAG0ALgBzAHkAcwAAAAAAAAAAACUAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABEAHIAaQB2AGUAcgBzAFwATgB1AGwAbAAuAFMA
WQBTAAAALAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABCAGEAcwBpAGMAUgBlAG4AZABlAHIALgBzAHkAcwAAAAAAKAAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABkAHgAZwBrAHIAbgBsAC4AcwB5AHMAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAdwBhAHQAYwBoAGQAbwBnAC4A
cwB5AHMAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
ZAByAGkAdgBlAHIAcwBcAGQAeABnAG0AbQBzADEALgBzAHkAcwAAAAAALQAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABCAGEA
cwBpAGMARABpAHMAcABsAGEAeQAuAHMAeQBzAAAAJQAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAEQAcgBpAHYAZQByAHMAXABOAHAAZgBzAC4AUwBZAFMA
AAAlAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwARAByAGkA
dgBlAHIAcwBcAE0AcwBmAHMALgBTAFkAUwAAACQAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAdABkAHgALgBzAHkAcwAAAAAA
JAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYA
RQBSAFMAXABUAEQASQAuAFMAWQBTAAAAAAAmAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
UwB5AHMAdABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAG4AZQB0AGIAdAAuAHMAeQBzAAAA
AAAAAAAAJAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABhAGYAZAAuAHMAeQBzAAAAAAAmAAAAXABTAHkAcwB0AGUAbQBSAG8A
bwB0AFwAcwB5AHMAdABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAHAAYQBjAGUAcgAuAHMA
eQBzAAAAAAAAAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMA
MgBcAEQAUgBJAFYARQBSAFMAXABuAGUAdABiAGkAbwBzAC4AcwB5AHMAAAAAACYAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwA
cgBkAGIAcwBzAC4AcwB5AHMAAAAAAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
cwB5AHMAdABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAHcAYQBuAGEAcgBwAC4AcwB5AHMA
AAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABuAHMAaQBwAHIAbwB4AHkALgBzAHkAcwAAACoAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAbgBwAHMA
dgBjAHQAcgBpAGcALgBzAHkAcwAAAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAbQBzAHMAbQBiAGkAbwBzAC4A
cwB5AHMAAAAlAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
RAByAGkAdgBlAHIAcwBcAGQAZgBzAGMALgBzAHkAcwAAACgAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAYQBoAGMAYQBjAGgA
ZQAuAHMAeQBzAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0A
MwAyAFwARABSAEkAVgBFAFIAUwBcAG4AZABpAHMAdABhAHAAaQAuAHMAeQBzAAAAKAAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABuAGQAaQBzAHcAYQBuAC4AcwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAcgBhAHMAcwBzAHQAcAAuAHMA
eQBzAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
RABSAEkAVgBFAFIAUwBcAEEAZwBpAGwAZQBWAHAAbgAuAHMAeQBzAAAALQAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABDAG8A
bQBwAG8AcwBpAHQAZQBCAHUAcwAuAHMAeQBzAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXABrAGQAbgBpAGMALgBzAHkA
cwAAAAAAAAAAACYAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAdQBtAGIAdQBzAC4AcwB5AHMAAAAAAAAAAAApAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGkA
OAAwADQAMgBwAHIAdAAuAHMAeQBzAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABtAG8AdQBjAGwAYQBzAHMALgBzAHkA
cwAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAawBiAGQAYwBsAGEAcwBzAC4AcwB5AHMAAAAkAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGYAZABjAC4A
cwB5AHMAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIA
XABEAFIASQBWAEUAUgBTAFwAeABlAG4AdgBpAGYALgBzAHkAcwAAAAAAAAApAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAEgA
RABBAHUAZABCAHUAcwAuAHMAeQBzAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB1AHMAYgB1AGgAYwBpAC4AcwB5AHMA
AAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAaQBuAHQAZQBsAHAAcABtAC4AcwB5AHMAAAAoAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHIAYQBzAHAA
cAB0AHAALgBzAHkAcwAAAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAByAGEAcwBsADIAdABwAC4AcwB5AHMAAAAAAC8A
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwATgBkAGkAcwBWAGkAcgB0AHUAYQBsAEIAdQBzAC4AcwB5AHMAAAAAAAAAKQAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XAByAGEAcwBwAHAAcABvAGUALgBzAHkAcwAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcwB3AGUAbgB1AG0ALgBzAHkA
cwAAAAAAAAAjAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
ZAByAGkAdgBlAHIAcwBcAGsAcwAuAHMAeQBzAAAAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcgBkAHAAYgB1AHMA
LgBzAHkAcwAAAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwARAByAGkAdgBlAHIAcwBcAE4ARABQAHIAbwB4AHkALgBTAFkAUwAAAAAAKAAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABIAGQAQQB1AGQAaQBvAC4AcwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABzAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcABvAHIAdABjAGwAcwAuAHMA
eQBzAAAAAAAlAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
ZAByAGkAdgBlAHIAcwBcAGQAcgBtAGsALgBzAHkAcwAAACgAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAawBzAHQAaAB1AG4A
awAuAHMAeQBzAAAAAAAuAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwARAByAGkAdgBlAHIAcwBcAGQAdQBtAHAAXwBkAGkAcwBrAGQAdQBtAHAALgBzAHkA
cwAAAAAAAAAAACwAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABEAHIAaQB2AGUAcgBzAFwAZAB1AG0AcABfAHgAZQBuAHYAYgBkAC4AcwB5AHMAAAAAAC0A
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABEAHIAaQB2AGUA
cgBzAFwAZAB1AG0AcABfAHgAZQBuAGMAcgBzAGgALgBzAHkAcwAAAB8AAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXAB3AGkAbgAzADIAawAuAHMAeQBzAAAA
AAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwASABJAEQAUABBAFIAUwBFAC4AUwBZAFMAAAAoAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAG0AbwBuAGkA
dABvAHIALgBzAHkAcwAAAAAAHgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAFQAUwBEAEQARAAuAGQAbABsAAAAAAAAAAAAHAAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGMAZABkAC4AZABsAGwAAAAAACYAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
bAB1AGEAZgB2AC4AcwB5AHMAAAAAAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
cwB5AHMAdABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAGwAbAB0AGQAaQBvAC4AcwB5AHMA
AAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQA
UgBJAFYARQBSAFMAXAByAHMAcABuAGQAcgAuAHMAeQBzAAAAAAAAACcAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAYgBvAHcA
cwBlAHIALgBzAHkAcwAAAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAG0AcABzAGQAcgB2AC4AcwB5AHMAAAAAAAAA
JwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYA
RQBSAFMAXABtAHIAeABzAG0AYgAuAHMAeQBzAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAbQByAHgAcwBtAGIA
MgAwAC4AcwB5AHMAAAAlAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAEgAVABUAFAALgBzAHkAcwAAACkAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAbQByAHgA
cwBtAGIAMQAwAC4AcwB5AHMAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHAAZQBhAHUAdABoAC4AcwB5AHMAAAAAAAAA
JwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAEQAcgBpAHYA
ZQByAHMAXABzAGUAYwBkAHIAdgAuAFMAWQBTAAAAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAcwByAHYAbgBlAHQA
LgBzAHkAcwAAAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAHQAYwBwAGkAcAByAGUAZwAuAHMAeQBzAAAAJQAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMA
XABzAHIAdgAyAC4AcwB5AHMAAAAkAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAHMAcgB2AC4AcwB5AHMAAAAAADEAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
cgBkAHAAdgBpAGQAZQBvAG0AaQBuAGkAcABvAHIAdAAuAHMAeQBzAAAAJgAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAByAGQA
cABkAHIALgBzAHkAcwAAAAAAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkA
cwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAYwBvAG4AZAByAHYALgBzAHkAcwAAAAAA
AADgZZXWAPj//wBOAQCcAAAAIDmU1gD4//+cTgEABAAAACQ5lNYA+P//oE4BAAQAAAAw9WfW
APj//6ROAQAAAQAAANBjlwH4//+kTwEAABAAAAAQE7IB0P//pF8BAAAQAAAAABOyAdD//6Rv
AQAAEAAAbBaW1gD4//+kfwEABAAAAIAWltYA+P//qH8BAGABAADgzZPWAPj//wiBAQAQAAAA
MACe1gD4//8YgQEABAAAAGwDntYA+P//HIEBAAQAAAAQLZPWAPj//yCBAQBgAAAAAPD/f/v2
//+AgQEACAAAAPj/v3379v//iIEBAAgAAAD43759+/b//5CBAQAIAAAA6LHLAPz2//+YgQEA
CAAAANhlAH779v//oIEBAAgAAAAwAL99+/b//6iBAQAIAAAAgN++ffv2//+wgQEACAAAAIgJ
2QDo9v//uIEBAAgAAACAbAB0+/b//8CBAQAIAAAAMAC6ffv2///IgQEACAAAAADdvn379v//
0IEBAAgAAACACdkA6Pb//9iBAQAIAAAAoDUAfvv2///ggQEACAAAABgAv3379v//6IEBAAgA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGANE7IB0P//fgAAAAAAAAAFAADA
/////xA9j9YA+P//eAUTsgHQ//9AHROyAdD//wAAAAAAAAAAAAAAAAAAAADF1GOXAfj//1gV
E7IB0P//WBUTsgHQ//8oBhOyAdD//0AdE7IB0P//WBUTsgHQ///gBhOyAdD//wDQZ9YA+P//
oNl81gD4//9/AgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAHwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAUBATsgHQ//9wEBOyAdD//wBAeQDA8wMAAAAAAAAAAAAAUJnWAPj//wDQZ9YA+P//
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcaPytXl
ianb9M4opQiSxz0wCnZpZj1bJ2JyaWRnZT1jcGlfczM9MAphY3BpX3M0Dw8PDw8PDw8PDw8P
Dw8PD4ABCA0PBgUOAgwLCgkDBwSABwsPBgoEAQkIBQIMDg0DACPi+hXUGDbv2S4Nwcz3OwA+
UMuP4ZuxRPUqFG5636UAKeEKQIjraUojgqvIY6HCACRxC8aTeuLNL5i8Vem3XgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGDcdxgAwP//QAIAAAAAAABg3HcYAMD//wEA
AAAAAAAAIA+eMADg//8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0GfWAPj//+AGE7IB0P//WBUTsgHQ
//9AHROyAdD//wAAAAAAAAAAAAAAAAAAAABAHROyAdD//6TafNYA+P//ED2P1gD4//+4BxOy
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
k9YA+P//MACe1gD4//80AJ7WAPj//2wDntYA+P//cAOe1gD4//8QLZPWAPj//3Atk9YA+P//
APD/f/v2//8I8P9/+/b///j/v3379v//AADAffv2///43759+/b//wDgvn379v//6LHLAPz2
///wscsA/Pb//9hlAH779v//4GUAfvv2//8wAL99+/b//zgAv3379v//gN++ffv2//+I3759
+/b//4gJ2QDo9v//kAnZAOj2//+AbAB0+/b//4hsAHT79v//MAC6ffv2//84ALp9+/b//wDd
vn379v//CN2+ffv2//+ACdkA6Pb//4gJ2QDo9v//oDUAfvv2//+oNQB++/b//xgAv3379v//
IAC/ffv2//8AAKB9+/b//wgAoH379v//ANC+ffv2//8I0L59+/b//5g1AH779v//oDUAfvv2
//8gYZXWAPj//0hhldYA+P//4M2T1gD4///gzZPWAPj//xsAAABwAAAAAAAAAAIAAAACCAAA
AAAAABCeDxYAwP//0PwOFgDA//+AOiYWAMD//4A6JhYAwP//AAAAAAAAAAAYrH3WAPj//1ia
htYA+P//ABoPFgDA///QFg8WAMD//wDgvJYB+P//AAAAAAAAAABj0IIAAAAAAGPAggAAAAAA
IZBWBQIAAABjOEEAAAAAAGNIhQAAAAAAY0CAAAAAAABjWZcAAAAAgGNomwgCAAAAY0hEAAAA
AABjKEMAAAAAAGNpBwAAAACA4wkACAIAAABjUIAAAAAAAAAAAAAAAAAAZ4jRBAAA4AbjCSAI
AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP49GaEAAAAAAQAAAAAAAAAAADECRGV2afgP
AACoAQAAAL0BFgDA//8QABAAAAAAAHBfcxYAwP//AAAAACQBAAAFAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAaAAISAAAAAAEAAAAAAAAAAAAAAAAAAAADAFACAAAAAODaLTMA4P//sLEtMwDg
//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEAAAgAEAAAAAAAAAAAAAsKE3MwDg//8iAAAA
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAoAAAAAAAIoTczAOD//wihNzMA4P//
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
AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAEAgjzAA4P//DwAAAAAAAAAAAAAIAAAAAA8A
AAAAAAAAAAAAAQEAAADYpjczAOD//5ioNzMA4P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgBYJAAAAABApjczAOD//wAAAAAAAAAAAAAAAAAA
AADQtWrWAPj//9C1atYA+P//1LVq1gD4//9ApjczAOD//wAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAABgABAAAAKKk3MwDg//8oqTczAOD//ziDNzMA4P//+JY3MwDg//9IqTczAOD//0ip
NzMA4P//YKk3MwDg///AqTczAOD//wAAAAAAAAAAAAAAAAAAAABApjczAOD/fwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAgqjczAOD//wAAAAAAAAAAAAAAAAAAAABApjczAOD/fwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAqjczAOD//wAA
AAAAAAAAAAAAAAAAAABApjczAOD/fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgqjczAOD//wAAAAAAAAAAAAAAAAAA
AABApjczAOD/fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABAqzczAOD//wAAAAAAAAAAAAAAAAAAAABApjczAOD/fwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABApjczAOD/fwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
biZwXCk20AEYrDczAOD//xisNzMA4P//AAAAAAAAAAAAAAAAAAAAAIBCZJcB+P//AAAAAAAA
AAAAAAAAAAAAAFCsNzMA4P//UKw3MwDg//8EAAAAAAAAABQCAAAAAAAABQAIAAAAAAB4rDcz
AOD//3isNzMA4P//AQAAAAAAAAAAAAAAAAAAAJisNzMA4P//mKw3MwDg//8AAAAAAAAAAAAA
AAAAAAAAgEJklwH4//8AAAAAAAAAAMiGNzMA4P//iJo3MwDg//8AAAAAAAAAAAAAAAAAAAAA
BwAAAAAAAAAAAAAAAlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4rTczAOD//zitNzMA4P//SK03MwDg//9IrTcz
AOD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAH8AIwJQRE8AAAAAAAAAAAAAAgAAAAAAAFBETwAAAAAAsKE3MwDg
//9A5jczAOD//wAAAAAAAAAAAFs4MwDg//8AAAAAAAAAACCgLTMA4P//AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABMAE4AAAAAALAJchYAwP//sJw3MwDg//9wnDczAOD//wIA
AAAAAAAAAAAAAAAAAAAAFj4kt9cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABQRE8AAAAAAAAAAAAAAAAAAAArAlBYYgAAAAAAAAAAAOiz
NzMA4P//6LM3MwDg//8BAAAAAAAAAMCzNzMA4P//AAAAAAEAAAAAAAAAAAAAAAQAAAAAAAAA
wPE3MwDg//8AAAAAAAAAAKCQNzMA4P//UJI3MwDg//8BAAAAAQAAAFDINzMA4P//UMg3MwDg
//+gkjczAOD//wAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAKgBAACoAQAAqAEAAAAAAAAAAAAA
AAAAAAAAAABsPRtOHgAAACQBAAADAAAAAQAAAAEAAAAIAAAAgJaYAAIBAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAQAAAAEAAAAAAAAA
zAYAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAGw9G05Nk99DkwHanMnopAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABSAEEAUwAgAFAAUABQAG8ARQAgAEwAaQBuAGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAABMAAAATAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAUMg3MwDg//8AAAAAAAAAACsABgBOU0lyXeD/kmtV1I8wXjczAOD//4B8eTMA4P//
AAAAAAAAAABQpEKWAfj//3ClNzMA4P//AAAAAAAAAAABAAYAAAAAAPiSNzMA4P//+JI3MwDg
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
AABgAAAAAAAAAENNNDcAAAAAAAAAAAAAAAAAAAAAAAAAAIMAAACDAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABDTTEwAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAACA6AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRjSFQAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABDTTUwAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAAAFAL
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNlICAAAAAA
AAAAAAAAAAAAAAAAAAAAAMsEAADLBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAE5EcGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABOdGZvAAAAAAAAAAAAAAAAAAAAAAAAAAB6AAAApQAAAEDV////////V1NLcwEAAAAAAAAA
AAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdmcG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABGeEwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
RmlzYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5EdmIAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABORGNvFwAAABIAAAAAAAAAgA0AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAS1JDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5E
bW8HAAAAAQAAAAAAAABAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAABBZmR0AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAgAAAED/////////T2JTYwAAAAAAAAAAAAAAAAAAAAAAAAAAqQQAAIsE
AAAwHgAAAAAAAFdtaUkAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAABVbFBQ
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVWxDQwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAERjZGQDAAAACgAAAAAAAADQ/f///////wAAAAAAAAAA
AAAAAAAAAABScXJ2AAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAAAAAAAAAAAASXB3aQEA
AAAJAAAAAAAAAID+////////AAAAAAAAAAAAAAAAAAAAAFVsS0MAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABJUHNpBQAAAA8AAAAAAAAAQPz///////8AAAAAAAAAAAAA
AAAAAAAATkRkYgAAAAAQAAAAAAAAACDy////////AAAAAAAAAAAAAAAAAAAAAE5EZmIHAAAA
BQAAAAAAAABABwAAAAAAAAAAAAAAAAAAAAAAAAAAAABVbENQAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAVWxBUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAE50VG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUREl5AgAAAAIA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAE50RlUAAAAAAAAAAAAAAAAAAAAAAAAAADQFAACsBAAAgHUAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZvU2IAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFdHdTBAAAAAIAAAAAAAAAYAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEVW
VEMBAAAAEAAAAAAAAABw+f///////wAAAAAAAAAAAAAAAAAAAABDbmdihAAAAHcAAAAAAAAA
gAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVJGVAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAACIA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUeHRz
AQAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFduZiAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAcAAAA
4EsAAAAAAABQbnBaAAAAAAAAAAAAAAAAAAAAAAAAAADNAAAAzwAAAID/////////AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFR4ZnMAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAsP7///////9TZUZTAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAATmJ0WBQAAAAHAAAAAAAAAJAEAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAE5CU3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGbG1DAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVHhscwAAAAAAAAAAAAAAAAAAAAAAAAAA
AQAAAAAAAAAwAAAAAAAAAFR4aXMAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAUAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWxlRAoAAAALAAAA
AAAAALD9////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Tk1SbQEAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAASXJiTAEAAAAAAAAAAAAAAJAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENN
aHAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAA4AAAAAAAAABQbnBNAAAAAAAAAAAAAAAA
AAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVG1UeAQAAAADAAAAAAAAAGAD
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZPQ1gMAAAACwAAAAAAAAAwAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAATHVhZgAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAIAAAAwFQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAATVNlZwAAAAAAAAAAAAAAAAAAAAAAAAAA2gAAADMAAAAgXwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMECUERPAO3iFZFrVdSPWABTADAAMAAwADEAIABYAEUA
TgBCAFUAUwAgAFYAQgBEADoAIABTAFUAUwBQAEUATgBEACAAdgAxACAAUwBIAEEAUgBFAEQA
XwBJAE4ARgBPACAAdgAyACAARQBWAFQAQwBIAE4AIAB2ADEAIABEAEUAQgBVAEcAIAB2ADEA
IABTAFQATwBSAEUAIAB2ADEAIABSAEEATgBHAEUAXwBTAEUAVAAgAHYAMQAgAEMAQQBDAEgA
RQAgAHYAMQAgAEcATgBUAFQAQQBCACAAdgAxACAARQBNAFUATABBAFQARQBEACAAdgAxACAA
VQBOAFAATABVAEcAIAB2ADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQAEAklvICAAAAAAAAAAAFwARAByAGkA
dgBlAHIAXABzAHQAbwByAGEAaABjAGkAAAAAAAAAAABhAHMAaQD//wQABQJUSFJFAAAAAAAA
AABMnU+WAfj///DL3TAA4P//AAAGAAAAAADAad0wAOD//8Bp3TAA4P//AAAAAAIAAACAaN0w
AOD//wAAAAAAAAAABQAFAlRIUkUAAAAAAAAAAGCPT5YB+P//UOjdMADg//8AAAYAAAAAAIBx
3TAA4P//gHHdMADg//8AAAAAAgAAAEBw3TAA4P//AAAAAAAAAAAFADECRGV2aQAAAAAAAAAA
AL0BFgDA//8QABAAAAAAAAD6FBYAwP//AAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAaAAISAAAAAAEAAAAAAAAAAAAAAAAAAAADAFACAAAAAGCZ3zAA4P//UM3dMADg//+wsS0z
AOD//wAAAAAAAAAAAAAAAAAAAABAEAAAgAEAAAAAAAAAAAAAoJ7dMADg//8iAAAAAQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAoAAAAAAD4nd0wAOD///id3TAA4P//AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA6HhYAwP//AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAABAAAAAACgn90wAOD//wAAAAAAAAAAAAAAAAAAAABQnd0wAOD//1BETwAHAAAA
BAAAAAEAAAABAAAAVklGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
iD/dMADg//+Iz90wAOD//1Do3TAA4P//DQAAAAAAAABQnd0wAOD//xAAAAAAAAAAAAAAAAAA
AAAIAAAAAAAAACB53TAA4P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVFJHRER1bXBCbG9iEAAAAIAlAPAgAAAAQFp1ZUbx
6kOMkTa4Vyj9NQAAAAAAAAAAAAAAACAAAAD9Mwonpj0NRrqJPBuuIeOb2A8AAAAAAAAAAAAA
CwAAAAAAAABYAAAAEgAAAJgCAAATAAAAmAoAABQAAADYDwAAFQAAANgPAAAXAAAA2A8AABgA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgCAAAAAAAAgPCdMADg//9hgxCZ
Afj//wAAAAAAAAAAUPZHGADA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAQAAAAAAAIDw
nTAA4P//YYMQmQH4//8AAAAAAAAAAHDYRxgAwP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2QEAAAAAAACA8J0wAOD//2GDEJkB+P//AAAAAAAAAACg1kcYAMD//wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAMcBAAAAAAAAgPCdMADg//9hgxCZAfj//wAAAAAAAAAAoB1HGADA//8AAAAA
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
0cz/HwAAIA4uMwDg//8HBAAAABAAkDMA4P//AAAATFI8ADkAAAAACg8AxAy12VLF4a8/kHxN
+WZ8w9jv0cz/HwAAIA4uMwDg//8HBAAAAACF3TMA4P//AAAATFI8ADoAAAA8Cg8AxAy12VLF
4a8/kHxN+WZ8w9jv0cz/HwAAIA4uMwDg//8HBAAAAACF3TMA4P//AAAATFI8ADsAAAB4Cg8A
xAy12VLF4a8/kHxN+WZ8w9jv0cz/HwAAIA4uMwDg//8HBAAAAOB02jMA4P//AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAB1EgtpCccFLuEQIB8Wktn/cDwAA
AAAAAAQAAABEU1RQYAAAANwPAAAAAAAAc3RvcnBvcnQuc3lzAAAAAAEAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
/wEAAAARFQARABAAAEAAQADwHwkAAQAHAABESU1NIDAAABMPABMAAAAA/79/AAAQAQAAFBMA
FAAAAAD/v38AABEAEwEAAAAAIAsAIAAAAAAAAAAAAH8EAH8AAAAAAAAAAAAgAAAAicN6bBND
3EefNKiACg+1bDgCAAAAAAAAAAAAAAoAAAB+AE0ASAB6AAAABAAAAAQAAABkCgAALAAAAEMA
bwBtAHAAbwBuAGUAbgB0ACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAAAAwAAABAAAAAAAAAA
AAAAAAAAAAAAAAAAJgAAAEMAbwBuAGYAaQBnAHUAcgBhAHQAaQBvAG4AIABEAGEAdABhAAAA
CQAAABAAAAD//////////wAAAAAAAAAAFgAAAEkAZABlAG4AdABpAGYAaQBlAHIAAAABAAAA
SgAAAEkAbgB0AGUAbAA2ADQAIABGAGEAbQBpAGwAeQAgADYAIABNAG8AZABlAGwAIAAzADAA
IABTAHQAZQBwAHAAaQBuAGcAIAA1AAAAKAAAAFAAcgBvAGMAZQBzAHMAbwByAE4AYQBtAGUA
UwB0AHIAaQBuAGcAAAABAAAAYAAAAEkAbgB0AGUAbAAoAFIAKQAgAFgAZQBvAG4AKABSACkA
IABDAFAAVQAgACAAIAAgACAAIAAgACAAIAAgACAAWAAzADQANQAwACAAIABAACAAMgAuADYA
NwBHAEgAegAAABwAAABVAHAAZABhAHQAZQAgAFMAdABhAHQAdQBzAAAABAAAAAQAAAAHAAAA
IgAAAFYAZQBuAGQAbwByAEkAZABlAG4AdABpAGYAaQBlAHIAAAABAAAAGgAAAEcAZQBuAHUA
aQBuAGUASQBuAHQAZQBsAAAADAAAAE0AUwBSADgAQgAAAAsAAAAIAAAAAAAAAAcAAAAgAAAA
b8A90I7YxUS6KvrgNRctGZgDAAAAAAAAAAAAAAAAAAAAAAAACwAAAEdlbnVudGVsaW5lSQsA
AABHZW51bnRlbGluZUkAAAAAAQAAAOUGAQAACCAEASK4gf/7ixflBgEAAAggBAEiuIH/+4sX
AAAAAAIAAAABWgNV5LLwAAAAAAAsIcoJAVoDVeSy8AAAAAAALCHKCQAAAAAEAAAAAAAABAAA
AAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAKAAAAAAAAB0QAAAAAAAAAAAAAAAAAAAdEAAAAAAAAAAAAAAAAAAAA
CwAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAQAAABcAAAAAAAAAAAAEAAAA
AAAAAAAAAAAAAAAABAAAAAAAAAAAAAEAAACLAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAHAAAA
AAAAAAAAAAABAAAAgAAAwAENAAAAAAAAAAAAAAAAAAABDQAAAAAAAAAAAAAAAAAAAAAAAAAA
AIAIAACAAAAAAAAAAAAAAAAACAAAgAAAAAAAAAAAAAAAAAAAAAABAACAAAAAAAAAAAABAAAA
AAgQKAAAAAAAAAAAAQAAAAAIECgAAAAAAgAAgEludGVsKFIpIFhlb24oUilJbnRlbChSKSBY
ZW9uKFIpAAAAAAMAAIAgQ1BVICAgICAgICAgICBYIENQVSAgICAgICAgICAgWAAAAAAEAACA
MzQ1MCAgQCAyLjY3R0h6ADM0NTAgIEAgMi42N0dIegAAAAAABQAAgAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAIAAAAAAAAAAAEBgAAEAAAAAAAAAAAAAAABAYAAB
AAAAAAAAAAAHAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAgCQw
AAAAAAAAAAAAAAAAAAAkMAAAAAAAAAAAAAAAAAAAIAAAANJAO+igsEJIq+pxyeNGPdFAAAAA
AAAAAAAAAABGQUNQ9AAAAAR+WGVuAAAAQVBJQ2AEAAACrlhlbgAAAFdBRVQoAAAAAVZYZW4A
AABIUEVUOAAAAAHSWGVuAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
--------------000504070002000802030603
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--------------000504070002000802030603--


From win-pv-devel-bounces@lists.xenproject.org Thu Jan 22 10:09:40 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 22 Jan 2015 10:09:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEEho-0004ti-AC; Thu, 22 Jan 2015 10:09:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YEEhm-0004td-QS
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 10:09:39 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	72/30-10078-16CC0C45; Thu, 22 Jan 2015 10:09:37 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-14.tower-21.messagelabs.com!1421921376!23202764!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16435 invoked from network); 22 Jan 2015 10:09:36 -0000
Received: from mail-wg0-f43.google.com (HELO mail-wg0-f43.google.com)
	(74.125.82.43)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 10:09:36 -0000
Received: by mail-wg0-f43.google.com with SMTP id y19so779980wgg.2
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 22 Jan 2015 02:09:35 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:cc:subject:references:in-reply-to:content-type;
	bh=QHoMiuxQDUqavfoleGLAVw9uFPWileBZ+vTWUSt+dC8=;
	b=OW/f/U2BDLBIiF6L2Rk6tq92W+AFaHSwbUqoIXOI/SPFpbzRy4L4sdcaKWgJcsB7KF
	1eVjdpD9gqnuZC6zI7zp/LtbYn6Nhchl/fKDI3tsEuDHXlJC+sm6GwCoMvH8G4x2qCnW
	qdL82Bz3bZWnxflHPyubePTTOxab4LP0YSu5kljrncTmmFgjMfX0ku8ZS0W3W3Z6+13l
	/NFgfNudQQku/ZJmRZ0lNyDqhun+UayySARHe+zMaA6MZu0yH1LJIP8XwV8l16pXIkHK
	SiUK1UHXxKNJZgMrwSfXR6WwhzFIPVroWf19AsgW1fr55tYWpuqZDKLHwZZI17CBAdKW
	HVUA==
X-Gm-Message-State: ALoCoQkOTfcyaOiB29bkOPY8p5HRSkf/ec5f3FuAQu09A9r9UgSQKY+PzL42+mby7Q5x5NJG+bpP
X-Received: by 10.180.72.199 with SMTP id f7mr3604176wiv.58.1421921375781;
	Thu, 22 Jan 2015 02:09:35 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id 18sm3249999wjr.46.2015.01.22.02.09.26
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 22 Jan 2015 02:09:34 -0800 (PST)
Message-ID: <54C0CC5F.8050106@m2r.biz>
Date: Thu, 22 Jan 2015 11:09:35 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: win-pv-devel@lists.xenproject.org
References: <54BD2320.10307@m2r.biz>
In-Reply-To: <54BD2320.10307@m2r.biz>
Content-Type: multipart/mixed; boundary="------------000504070002000802030603"
Cc: paul Durrant <paul.durrant@citrix.com>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------000504070002000802030603
Content-Type: text/plain; charset=iso-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> Hi, I installed winpv driver build of 15 january on Windows server 
> 2012 R2 standard 64 bit and have problem after save/restore.
> xl save/restore didn't show any errors, trying to connected with rdp I 
> was unable and with spice I saw screen with data and time (time update 
> after restore) but doing ctrl+alt+canc it changed something in screen 
> only after 5-10 minutes and still without showing login field.
>
> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official 
> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from 
> xen build.
> DomU xl cfg:
>> name='w2012r2-01'
>> builder="hvm"
>> memory=8192
>> vcpus=4
>> acpi_s3=0
>> acpi_s4=0
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:18:2a:f2,script=vif-openvswitch'] 
>>
>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>> disk=['/mnt/vm/disks/w2012r2-01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom'] 
>>
>> boot='dc'
>> device_model_version="qemu-xen"
>> viridian=1
>> vnc=0
>> keymap="it"
>> on_crash="destroy"
>> vga="stdvga"
>> spice=1
>> spicehost='0.0.0.0'
>> spiceport=6000
>> spicepasswd="test"
>> spicevdagent=1
>> spice_clipboard_sharing=0
>> spiceusbredirection=4
>> soundhw="hda"
>> localtime=1
>
> I added in attachments qemu logs (before and after save/restore) with 
> xen trace enabled.
>
> If you need more informations tests tell me and I'll post them.
>
> I have also another small question:
> is ms_vm_genid needed for this case? for what I understand is only for 
> active directory controller and this it isn't.
>
> Thanks for any reply and sorry for my bad english.
>
>

I also tried to uninstall the pv drivers from control panel but windows 
crash, minidump in attachments.

--------------000504070002000802030603
Content-Type: application/octet-stream;
 name="012215-6218-01.dmp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="012215-6218-01.dmp"

UEFHRURVNjQPAAAAgCUAAACgGgAAAAAA6ACe1gD4//9QYpXWAPj//wDAk9YA+P//ZIYAAAQA
AAB+AAAQUEFHRQUAAMD/////xdRjlwH4//9YFROyAdD//2ANE7IB0P//UEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0UwNZLWAPj//1BBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFAAAAAADA//8AAAAAAPj//1AAUgAA4P//
kDzdMADg//9WAF8AMAAwADAAMAAwADAAHwAQAIAfAAAQACsAKwBTACsAGAACAgEARlJPTgAA
AAD4bDczAOD//yBsNzMA4P//QPE3MwDg//8g0DozAOD//xDQOjMA4P//cJw3MwDg//8AAAAA
AAAAAKoAAAAAAAAA8Is3MwAAAACQFxOyAdD//2CgNzMA4P//8K03MwDg//8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABNBwAAAAAAAACAmLEB0P//AAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAA
UJ3dMADg///F1GOXAfj//wAkcQvGk3rizS+YvFXpt14JAAAAAAAAAIAfAAAA+P//iFFo1gD4
//8AAAAAAdD//wAAAAAAAAAAAAAAAAHQ//8BAAAAAdD//1QQE7IB0P//AQAAAAHQ//9UEBOy
AdD//wAAAAAB0P//AAAAAAAAAABcEBOyAdD//2AQE7IB0P//UBATsgHQ//9wEBOyAdD//wQA
AAAAAAAAABZ91gD4//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAVxo/K1eWJqdv0ziilCJLHPTAKdmlmPVsnYnJpZGdlPWNwaV9zMz0wCmFjcGlfczQPDw8P
Dw8PDw8PDw8PDw8PgAEIDQ8GBQ4CDAsKCQMHBIAHCw8GCgQBCQgFAgwODQMAI+L6FdQYNu/Z
Lg3BzPc7AD5Qy4/hm7FE9SoUbnrfpQAp4QpAiOtpSiOCq8hjocIAJHELxpN64s0vmLxV6bde
XBATsgHQ//+IUWjWAPj//wEAAAAAAAAAywWj1gD4//8gAAAAAAAAAJARE7IB0P//mBATsgHQ
//8BAAAAAAAAAAEAAAAA4P//MJQIFgDA///kEBOyAdD//4j9e9YA+P//MgAAAAAAAACH5G7W
APj//wAAAAAAAAAAkDzdMADg//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD7
///oBAAAMPv//9AEAAAZAAAAAAAAAH2LrNYA+P//JgAAAAAAAACaNmHWAPj//wAXE7IB0P//
QCCPMADg//8fABAA9wQAAHgLddYAAAAAkBUTsgHQ//8nAAAAAOD//6AQE7IB0P//t0AdvjvO
//+AAZa1AdD//4AxmrUB0P//AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAwAAgAEAAAAAAAAAAAAAAKDZfNYA+P//AAAAAFBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0UEAAAA
UEFHRVA+BAAAAAAAisyF0yk20AFQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRaL1+XgAAAAA/wwAAFBB
R0UDAAAAEAEAAAAAAABQAEdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdF
UEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBB
R0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0VQQUdFUEFHRVBBR0UAAAAAAAAEAPz/AwBIAwAA
AA8AAIAgAADQIAAAmCIAABiAAADwhgAAaI4AAHAIAAA4mgAAxQAAAAgJAQDIQgAAAAAAAP//
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAGAQUe4QoAAAAAAAAAAAAAAAAAAAAAAACIN5q1AdD//4g3mrUB0P//AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAAIQAgDyktYA+P//BAAAAAAAAAAAAgAA
4P///0AAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCK
ndYA+P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICLndYA+P//
AAAAAAAAAABAi53WAPj//wAAAAAAAAAAAIyd1gD4//8AAAAAAAAAAECMndYA+P//AAAAAAAA
AADAi53WAPj//wAAAAAAAAAAgIyd1gD4//8AAAAAAAAAAMCMndYA+P//AAAAAAAAAAAAjZ3W
APj//wAAAAAAAAAAQI2d1gD4//8AAAAAAAAAAICNndYA+P//AAAAAAAAAAAAi53WAPj//wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+dMADg//+AZZbWAPj//4AenTAA4P//
AGaW1gD4//8AHp0wAOD//4BmltYA+P//gB+dMADg//8AZZbWAPj//xB9jzAA4P//wIqW1gD4
//8w/pYwAOD//0CLltYA+P//gF+eMADg///AXZbWAPj//4AdnTAA4P//AGeW1gD4//8w7pYw
AOD//8C5ltYA+P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAIAAFAKktYA+P//YBiS1gD4//9ABpuxAdD//+BFmrUB0P//BgAAAAUAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACf+QEAFAgAAFqBAABHTQEAGUMAADAJAAAAAAAAAAAAAAAAAAAAAAAA
uBYGANAhAQAAAAAAAAAAAJsFAAAAAAAAAAAAADcLAAAAAAAABQcAAMQAAAD3LQAAhBCfAQAA
AAAz0lAAAAAAAI/TBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAP///3/MvAEA
KwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfmrUB0P//
AAAAAAAAAAAAAAAAIgYAAAAAAAAAAAAAAAAAAAAAAAAoX5q1AdD//wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAALDvm7UB0P//BAAAAAAAAAADAAAAIgYAAAEAAAAAAAAAPh4AAL0yAAAtbAAA
CDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIYZq1AdD//4hhmrUB0P//
7EoAYP////8AAAAAAAAAAKhhmrUB0P//qGGatQHQ//8aGQWc/////wAAAAAAAAAAyGGatQHQ
///IYZq1AdD//+fYCID/////AAAAAAAAAADoYZq1AdD//+hhmrUB0P//QoynZ/////8AAAAA
AAAAAAhimrUB0P//CGKatQHQ//9FShBg/////wAAAAAAAAAAKGKatQHQ//8oYpq1AdD///+O
F1z/////AAAAAAAAAABIYpq1AdD//0himrUB0P//gQobeP////8AAAAAAAAAAGhimrUB0P//
aGKatQHQ//8CRB14/////wAAAAAAAAAAiGKatQHQ//+IYpq1AdD//68RIGD/////AAAAAAAA
AACoYpq1AdD//6himrUB0P//SlcnXP////8AAAAAAAAAAMhimrUB0P//yGKatQHQ//+a4Cp4
/////wAAAAAAAAAA6GKatQHQ///oYpq1AdD//6sN82v/////AAAAAAAAAAAIY5q1AdD//whj
mrUB0P//ghMwYP////8AAAAAAAAAAChjmrUB0P//KGOatQHQ///kqehz/////wAAAAAAAAAA
SGOatQHQ//9IY5q1AdD//6xvOFz/////AAAAAAAAAABoY5q1AdD//2hjmrUB0P//FbI8kP//
//8AAAAAAAAAAIhjmrUB0P//iGOatQHQ//8ZZkBU/////wAAAAAAAAAAqGOatQHQ//+oY5q1
AdD//xMgR1z/////AAAAAAAAAADIY5q1AdD//8hjmrUB0P//sX9KYP////8AAAAAAAAAAOhj
mrUB0P//6GOatQHQ//9yexRs/////wAAAAAAAAAACGSatQHQ//8IZJq1AdD//7MaUFT/////
AAAAAAAAAAAoZJq1AdD//yhkmrUB0P//a9xVdP////8AAAAAAAAAAEhkmrUB0P//SGSatQHQ
//9F91t0/////wAAAAAAAAAAaGSatQHQ//9oZJq1AdD//6unX2D/////AAAAAAAAAACIZJq1
AdD//4hkmrUB0P//RdliUP////8AAAAAAAAAAKhkmrUB0P//qGSatQHQ//+ciP1j/////wAA
AAAAAAAAyGSatQHQ///IZJq1AdD//94xHGT/////AAAAAAAAAADoZJq1AdD//+hkmrUB0P//
PaZvYP////8AAAAAAAAAAAhlmrUB0P//CGWatQHQ//+TUwtY/////wAAAAAAAAAAKGWatQHQ
//8oZZq1AdD//9ord3j/////AAAAAAAAAABIZZq1AdD//0hlmrUB0P//COR5cP////8AAAAA
AAAAAGhlmrUB0P//aGWatQHQ///qEn14/////wAAAAAAAAAAiGWatQHQ//+IZZq1AdD//756
g3D/////AAAAAAAAAACoZZq1AdD//6hlmrUB0P//e7OGXP////8AAAAAAAAAAMhlmrUB0P//
yGWatQHQ//9vBIhw/////wAAAAAAAAAA6GWatQHQ///oZZq1AdD//yLMjXj/////AAAAAAAA
AAAIZpq1AdD//whmmrUB0P//6NCRdP////8AAAAAAAAAAChmmrUB0P//KGaatQHQ///Wa5ac
/////wAAAAAAAAAAoLEbNADg//+gsRs0AOD///0ImZABAAAAAAAAAAAAAABoZpq1AdD//2hm
mrUB0P//qSucZP////8AAAAAAAAAAIhmmrUB0P//iGaatQHQ///TyTpo/////wAAAAAAAAAA
qGaatQHQ//+oZpq1AdD//1h+plz/////AAAAAAAAAADIZpq1AdD//8hmmrUB0P//dcOoZP//
//8AAAAAAAAAAOhmmrUB0P//6GaatQHQ///OSayg/////wAAAAAAAAAACGeatQHQ//8IZ5q1
AdD//yXxsnj/////AAAAAAAAAAAoZ5q1AdD//yhnmrUB0P//lpK3cP////8AAAAAAAAAAEhn
mrUB0P//SGeatQHQ//83o7l4/////wAAAAAAAAAAaGeatQHQ//9oZ5q1AdD//85Yv2T/////
AAAAAAAAAACIZ5q1AdD//4hnmrUB0P//vvzCoP////8AAAAAAAAAAKhnmrUB0P//qGeatQHQ
//80h8eg/////wAAAAAAAAAAoHncMwDg//+gYT8zAOD//0yiyaAAAAAAAAAAAAAAAADoZ5q1
AdD//+hnmrUB0P//MhrOoP////8AAAAAAAAAAAhomrUB0P//CGiatQHQ//8uctN4/////wAA
AAAAAAAAoFl2MwDg//+gWXYzAOD//xQH1aAAAAAAAAAAAAAAAABIaJq1AdD//0homrUB0P//
92vbSP////8AAAAAAAAAAGhomrUB0P//aGiatQHQ///UxN94/////wAAAAAAAAAAsPb8MwDg
//+w9vwzAOD//1xR5PcAAAAAAAAAAAAAAABgwZkzAOD//2DBmTMA4P//kM7koAAAAAAAAAAA
AAAAAMhomrUB0P//yGiatQHQ///K+K5M/////wAAAAAAAAAA6GiatQHQ///oaJq1AdD//z5t
7XD/////AAAAAAAAAAAIaZq1AdD//whpmrUB0P//fiHwdP////8AAAAAAAAAAChpmrUB0P//
KGmatQHQ///nk/cg/////wAAAAAAAAAASGmatQHQ//9IaZq1AdD//3sEk2T/////AAAAAAAA
AABoaZq1AdD//2hpmrUB0P//v5z+TP////8AAAAAAAAAAIhpmrUB0P//iGmatQHQ///64QBN
/////wAAAAAAAAAAqGmatQHQ//+oaZq1AdD///yoBHn/////AAAAAAAAAADIaZq1AdD//8hp
mrUB0P//FeXlaP////8AAAAAAAAAAOhpmrUB0P//6GmatQHQ//83sw51/////wAAAAAAAAAA
CGqatQHQ//8Iapq1AdD//6XbEHX/////AAAAAAAAAAAoapq1AdD//yhqmrUB0P//lMEVmf//
//8AAAAAAAAAAEhqmrUB0P//SGqatQHQ//+Zcxtx/////wAAAAAAAAAAaGqatQHQ//9oapq1
AdD//37kH3n/////AAAAAAAAAACIapq1AdD//4hqmrUB0P//lAwief////8AAAAAAAAAAKhq
mrUB0P//qGqatQHQ///0biR5/////wAAAAAAAAAA4GjlMADg///gaOUwAOD//wAYKHkAAAAA
AAAAAAAAAADoapq1AdD//+hqmrUB0P///cMuUf////8AAAAAAAAAAAhrmrUB0P//CGuatQHQ
//96MTKN/////wAAAAAAAAAAKGuatQHQ//8oa5q1AdD//4VtNV3/////AAAAAAAAAABIa5q1
AdD//0hrmrUB0P//k4g7Wf////8AAAAAAAAAAGhrmrUB0P//aGuatQHQ///KsD1Z/////wAA
AAAAAAAAiGuatQHQ//+Ia5q1AdD//1C2QXn/////AAAAAAAAAACg0RsxAOD//6DRGzEA4P//
4kBGeQAAAAAAAAAAAAAAAMhrmrUB0P//yGuatQHQ//93pUpN/////wAAAAAAAAAA6GuatQHQ
///oa5q1AdD//9f9TU3/////AAAAAAAAAAAIbJq1AdD//whsmrUB0P//tflRcf////8AAAAA
AAAAAChsmrUB0P//KGyatQHQ//9FTFd1/////wAAAAAAAAAASGyatQHQ//9IbJq1AdD//xUw
Wm3/////AAAAAAAAAABobJq1AdD//2hsmrUB0P//UIFdZf////8AAAAAAAAAAIhsmrUB0P//
iGyatQHQ//+u6WNV/////wAAAAAAAAAAqGyatQHQ//+obJq1AdD//zJiZGX/////AAAAAAAA
AADIbJq1AdD//8hsmrUB0P//FoJpnf////8AAAAAAAAAAOhsmrUB0P//6GyatQHQ//+Z7Wxl
/////wAAAAAAAAAACG2atQHQ//8IbZq1AdD//1SpcnH/////AAAAAAAAAAAobZq1AdD//yht
mrUB0P//wPx0Xf////8AAAAAAAAAAEhtmrUB0P//SG2atQHQ//8eCE9h/////wAAAAAAAAAA
aG2atQHQ//9obZq1AdD//wW2fJH/////AAAAAAAAAACIbZq1AdD//4htmrUB0P//nLSDVf//
//8AAAAAAAAAAKhtmrUB0P//qG2atQHQ///i8oeR/////wAAAAAAAAAAyG2atQHQ///IbZq1
AdD//8NxinX/////AAAAAAAAAADobZq1AdD//+htmrUB0P//SuaPTf////8AAAAAAAAAAAhu
mrUB0P//CG6atQHQ//81kZJp/////wAAAAAAAAAAKG6atQHQ//8obpq1AdD//8Hplp3/////
AAAAAAAAAABIbpq1AdD//0humrUB0P//+ZqZgf////8AAAAAAAAAAGhumrUB0P//aG6atQHQ
//8DNp95/////wAAAAAAAAAAiG6atQHQ//+Ibpq1AdD//z1Ro1X/////AAAAAAAAAACobpq1
AdD//6humrUB0P//n46kXf////8AAAAAAAAAAMhumrUB0P//yG6atQHQ//8q73FZ/////wAA
AAAAAAAA6G6atQHQ///obpq1AdD///a+gmX/////AAAAAAAAAACw2P0zAOD//7DY/TMA4P//
7xm3mAAAAAAAAAAAAAAAAChvmrUB0P//KG+atQHQ//9ij7Rd/////wAAAAAAAAAASG+atQHQ
//9Ib5q1AdD//34guVH/////AAAAAAAAAABob5q1AdD//2hvmrUB0P//5JG8cf////8AAAAA
AAAAAIhvmrUB0P//iG+atQHQ//97DMNV/////wAAAAAAAAAAqG+atQHQ//+ob5q1AdD//wlW
xF3/////AAAAAAAAAACgcdYzAOD//6Bx1jMA4P//TBDLgQAAAAAAAAAAAAAAAOhvmrUB0P//
6G+atQHQ//+IJc5p/////wAAAAAAAAAACHCatQHQ//8IcJq1AdD//1Sw0mn/////AAAAAAAA
AAAocJq1AdD//yhwmrUB0P//Ox/Xbf////8AAAAAAAAAAEhwmrUB0P//SHCatQHQ//+sgthN
/////wAAAAAAAAAAaHCatQHQ//9ocJq1AdD//7AO3jn/////AAAAAAAAAACIcJq1AdD//4hw
mrUB0P//Vk/gaf////8AAAAAAAAAAKhwmrUB0P//qHCatQHQ//9qIOdt/////wAAAAAAAAAA
yHCatQHQ///IcJq1AdD//+d76pH/////AAAAAAAAAADocJq1AdD//+hwmrUB0P//i13scf//
//8AAAAAAAAAAAhxmrUB0P//CHGatQHQ//9/2fJV/////wAAAAAAAAAAKHGatQHQ//8ocZq1
AdD//5Tn9m3/////AAAAAAAAAABIcZq1AdD//0hxmrUB0P//QvX5Uf////8AAAAAAAAAAGhx
mrUB0P//aHGatQHQ///DHfxR/////wAAAAAAAAAAiHGatQHQ//+IcZq1AdD//zTpA17/////
AAAAAAAAAACg0dgzAOD//6AphDMA4P//D9AGlgAAAAAAAAAAAAAAAMhxmrUB0P//yHGatQHQ
//9iWwuW/////wAAAAAAAAAAoGQeMQDg//8g2dczAOD///6CDZYAAAAAAAAAAAAAAAAIcpq1
AdD//whymrUB0P//UOoTXv////8AAAAAAAAAAGAndjMA4P//4Je8MwDg//9nmRaWAAAAAAAA
AAAAAAAASHKatQHQ//9Icpq1AdD//4P7GJb/////AAAAAAAAAABocpq1AdD//2hymrUB0P//
4bscnv////8AAAAAAAAAAIhymrUB0P//iHKatQHQ//+MECKW/////wAAAAAAAAAAqHKatQHQ
//+ocpq1AdD//6XfJHb/////AAAAAAAAAADIcpq1AdD//8hymrUB0P//83Apbv////8AAAAA
AAAAAOhymrUB0P//6HKatQHQ//9UDSxS/////wAAAAAAAAAAYKeJMwDg//9gp4kzAOD//2Tv
Ma4BAAAAAAAAAAAAAAAoc5q1AdD//yhzmrUB0P//gfk0dv////8AAAAAAAAAAEhzmrUB0P//
SHOatQHQ//+6mTlu/////wAAAAAAAAAAaHOatQHQ//9oc5q1AdD//5kXPm7/////AAAAAAAA
AACIc5q1AdD//4hzmrUB0P//4hZCfv////8AAAAAAAAAAKhzmrUB0P//qHOatQHQ//+IV0aW
/////wAAAAAAAAAAyHOatQHQ///Ic5q1AdD//+N1SVL/////AAAAAAAAAADoc5q1AdD//+hz
mrUB0P//wI1Onv////8AAAAAAAAAAGBRdzMA4P//YFF3MwDg///k71CeAAAAAAAAAAAAAAAA
KHSatQHQ//8odJq1AdD//4P7VnL/////AAAAAAAAAABIdJq1AdD//0h0mrUB0P//oaFbUv//
//8AAAAAAAAAAGh0mrUB0P//aHSatQHQ//9BnV5W/////wAAAAAAAAAAiHSatQHQ//+IdJq1
AdD//+YmYHb/////AAAAAAAAAACodJq1AdD//6h0mrUB0P//Rddkev////8AAAAAAAAAAMh0
mrUB0P//yHSatQHQ//+ELWl2/////wAAAAAAAAAA6HSatQHQ///odJq1AdD//7lrbnb/////
AAAAAAAAAAAIdZq1AdD//wh1mrUB0P//CvRydv////8AAAAAAAAAACh1mrUB0P//KHWatQHQ
//8Sfnd2/////wAAAAAAAAAASHWatQHQ//9IdZq1AdD//6GjeXb/////AAAAAAAAAABodZq1
AdD//2h1mrUB0P//9K59Wv////8AAAAAAAAAAIh1mrUB0P//iHWatQHQ//9tKIBi/////wAA
AAAAAAAA4JXtMwDg///gle0zAOD//4ubhoIIAAAAAAAAAAAAAADIdZq1AdD//8h1mrUB0P//
jU6LWv////8AAAAAAAAAAOh1mrUB0P//6HWatQHQ///03Y52/////wAAAAAAAAAACHaatQHQ
//8Idpq1AdD//1jWkl7/////AAAAAAAAAADwm10zAOD///CbXTMA4P//cENIegAAAAAAAAAA
AAAAAEh2mrUB0P//SHaatQHQ//9/W5l2/////wAAAAAAAAAAaHaatQHQ//9odpq1AdD//4jb
n1r/////AAAAAAAAAACIdpq1AdD//4h2mrUB0P//BEGgnv////8AAAAAAAAAAKh2mrUB0P//
qHaatQHQ//8G0aR2/////wAAAAAAAAAAyHaatQHQ///Idpq1AdD//4B1q3b/////AAAAAAAA
AADodpq1AdD//+h2mrUB0P//waGvWv////8AAAAAAAAAAAh3mrUB0P//CHeatQHQ//8PA7Bu
/////wAAAAAAAAAAoOSMMwDg//+g5IwzAOD//1jft5YAAAAAAAAAAAAAAABId5q1AdD//0h3
mrUB0P//pH64dv////8AAAAAAAAAAGh3mrUB0P//aHeatQHQ//9KP792/////wAAAAAAAAAA
iHeatQHQ//+Id5q1AdD//4Muwm7/////AAAAAAAAAACod5q1AdD//6h3mrUB0P//qebEUv//
//8AAAAAAAAAAMh3mrUB0P//yHeatQHQ///z1Mp6/////wAAAAAAAAAAoHGdMwDg//+gcZ0z
AOD//2Rcz4IAAAAAAAAAAAAAAAAIeJq1AdD//wh4mrUB0P//51XRdv////8AAAAAAAAAACh4
mrUB0P//KHiatQHQ//8PA7Bu/////wAAAAAAAAAASHiatQHQ//9IeJq1AdD//6KY24r/////
AAAAAAAAAABoeJq1AdD//2h4mrUB0P//mRm5bv////8AAAAAAAAAAIh4mrUB0P//iHiatQHQ
//85KXpm/////wAAAAAAAAAAqHiatQHQ//+oeJq1AdD//82X5HL/////AAAAAAAAAADIeJq1
AdD//8h4mrUB0P//4knrVv////8AAAAAAAAAAOh4mrUB0P//6HiatQHQ//+iqe9W/////wAA
AAAAAAAACHmatQHQ//8IeZq1AdD//2Vp8XL/////AAAAAAAAAAAoeZq1AdD//yh5mrUB0P//
e8v1dv////8AAAAAAAAAAKBJKDMA4P//oEnvMwDg//+ZPfh6AAAAAAAAAAAAAAAAoMH3MwDg
//+gwfczAOD//6Fy/poAAAAAAAAAAAAAAACIeZq1AdD//4h5mrUB0P//TxoBd/////8AAAAA
AAAAAKh5mrUB0P//qHmatQHQ//9Qeclu/////wAAAAAAAAAAYJH3MwDg//9gkfczAOD//7Ye
CZsAAAAAAAAAAAAAAACgsdEzAOD//6Cx0TMA4P//u48MewAAAAAAAAAAAAAAAAh6mrUB0P//
CHqatQHQ///I9hFf/////wAAAAAAAAAAKHqatQHQ//8oepq1AdD//wcAFnf/////AAAAAAAA
AADQGB4xAOD//9AYHjEA4P//ix0ZGwEAAAAAAAAAAAAAAGh6mrUB0P//aHqatQHQ//+qNRxr
/////wAAAAAAAAAAoHHwMwDg//+gcfAzAOD//9EbIJ8AAAAAAAAAAAAAAACoepq1AdD//6h6
mrUB0P//GGXYWv////8AAAAAAAAAAMh6mrUB0P//yHqatQHQ//8hkCqf/////wAAAAAAAAAA
6HqatQHQ///oepq1AdD//6czLjP/////AAAAAAAAAAAIe5q1AdD//wh7mrUB0P//jKQzn///
//8AAAAAAAAAACh7mrUB0P//KHuatQHQ///NBjaf/////wAAAAAAAAAASHuatQHQ//9Ie5q1
AdD///v5O2v/////AAAAAAAAAABoe5q1AdD//2h7mrUB0P//d8zUYv////8AAAAAAAAAAIh7
mrUB0P//iHuatQHQ//8tOkF3/////wAAAAAAAAAAqHuatQHQ//+oe5q1AdD//5ijRVf/////
AAAAAAAAAADIe5q1AdD//8h7mrUB0P//tSpLd/////8AAAAAAAAAAOh7mrUB0P//6HuatQHQ
//9KtU93/////wAAAAAAAAAACHyatQHQ//8IfJq1AdD//zGOUV//////AAAAAAAAAAAofJq1
AdD//yh8mrUB0P//fOZWW/////8AAAAAAAAAAKBxlDMA4P//oHGUMwDg//8y8VpvAQAAAAAA
AAAAAAAAaHyatQHQ//9ofJq1AdD///2LX1P/////AAAAAAAAAACIfJq1AdD//4h8mrUB0P//
i5BhX/////8AAAAAAAAAAKh8mrUB0P//qHyatQHQ//8BS2ZT/////wAAAAAAAAAAyHyatQHQ
///IfJq1AdD//6gdap//////AAAAAAAAAADofJq1AdD//+h8mrUB0P//Ej9ue/////8AAAAA
AAAAAAh9mrUB0P//CH2atQHQ//8EMnOf/////wAAAAAAAAAAKH2atQHQ//8ofZq1AdD//2tv
d1v/////AAAAAAAAAABIfZq1AdD//0h9mrUB0P//8x4SZ/////8AAAAAAAAAAGh9mrUB0P//
aH2atQHQ//+CHH13/////wAAAAAAAAAAoFEbNADg//+gURs0AOD//52RgnsAAAAAAAAAAAAA
AACofZq1AdD//6h9mrUB0P//4XeHd/////8AAAAAAAAAAMh9mrUB0P//yH2atQHQ//+K7Yh3
/////wAAAAAAAAAA6H2atQHQ///ofZq1AdD//9cBjHf/////AAAAAAAAAAAIfpq1AdD//wh+
mrUB0P//tyKRX/////8AAAAAAAAAACh+mrUB0P//KH6atQHQ//+bE5V3/////wAAAAAAAAAA
SH6atQHQ//9Ifpq1AdD//yTDm1v/////AAAAAAAAAABofpq1AdD//2h+mrUB0P//luudW///
//8AAAAAAAAAAIh+mrUB0P//iH6atQHQ///F66Bf/////wAAAAAAAAAAqH6atQHQ//+ofpq1
AdD//yS/pHv/////AAAAAAAAAADIfpq1AdD//8h+mrUB0P//jT1fZ/////8AAAAAAAAAAOh+
mrUB0P//6H6atQHQ///STKyH/////wAAAAAAAAAACH+atQHQ//8If5q1AdD//33tsF//////
AAAAAAAAAACghpgzAOD//6CGmDMA4P//+9i20wAAAAAAAAAAAAAAAEh/mrUB0P//SH+atQHQ
//+wZ7tz/////wAAAAAAAAAAaH+atQHQ//9of5q1AdD//0s1vFP/////AAAAAAAAAACgIT8z
AOD//6AhPzMA4P//BKbCnwAAAAAAAAAAAAAAAKh/mrUB0P//qH+atQHQ//9oBcd3/////wAA
AAAAAAAAyH+atQHQ///If5q1AdD//5+Py3f/////AAAAAAAAAADof5q1AdD//+h/mrUB0P//
mvLNd/////8AAAAAAAAAAAiAmrUB0P//CICatQHQ//9YJNCf/////wAAAAAAAAAAKICatQHQ
//8ogJq1AdD//19T1FP/////AAAAAAAAAABIgJq1AdD//0iAmrUB0P//pOPad/////8AAAAA
AAAAAGiAmrUB0P//aICatQHQ//+8GNx3/////wAAAAAAAAAAiICatQHQ//+IgJq1AdD//8B9
4F//////AAAAAAAAAACogJq1AdD//6iAmrUB0P//gaPnd/////8AAAAAAAAAAMiAmrUB0P//
yICatQHQ///4Yeh3/////wAAAAAAAAAA6ICatQHQ///ogJq1AdD//z5V7W//////AAAAAAAA
AAAIgZq1AdD//wiBmrUB0P//jIjzd/////8AAAAAAAAAACiBmrUB0P//KIGatQHQ//8i5vR7
/////wAAAAAAAAAAYJE/MwDg//9gkT8zAOD//48P+X8AAAAAAAAAAAAAAABogZq1AdD//2iB
mrUB0P//fsL/f/////8HAQYAAAAAAMBZqzAA4P//wFmrMADg//8AAAAAAAAAABMCggIAAAAA
AAAAAAAAAAAEAAAAAAAAAHxjdtYA+P//AAAAAAAAAADgym6zAdD//6DKbrMB0P//AAAAAAAA
AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFjhWTMA4P//WNnJMwDg//8AAAAA
AAAAAAAAAADj/wIAAQAAAAAAAAAAAAAAAAAAABMBggIAAAAAAAAAAAAAAAAAAAAAAAAAAFSD
edYA+P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gIKatQHQ//+Agpq1AdD//5CCmrUB0P//kIKatQHQ//+ggpq1AdD//6CCmrUB0P//sIKatQHQ
//+wgpq1AdD//8CCmrUB0P//wIKatQHQ///Qgpq1AdD//9CCmrUB0P//4IKatQHQ///ggpq1
AdD///CCmrUB0P//8IKatQHQ//8Ag5q1AdD//wCDmrUB0P//EIOatQHQ//8Qg5q1AdD//yCD
mrUB0P//IIOatQHQ//8wg5q1AdD//zCDmrUB0P//QIOatQHQ//9Ag5q1AdD//1CDmrUB0P//
UIOatQHQ//9gg5q1AdD//2CDmrUB0P//cIOatQHQ//9wg5q1AdD//4CDmrUB0P//gIOatQHQ
//+Qg5q1AdD//5CDmrUB0P//oIOatQHQ//+gg5q1AdD//7CDmrUB0P//sIOatQHQ///Ag5q1
AdD//8CDmrUB0P//0IOatQHQ///Qg5q1AdD//+CDmrUB0P//4IOatQHQ///wg5q1AdD///CD
mrUB0P//AISatQHQ//8AhJq1AdD//xCEmrUB0P//EISatQHQ//8ghJq1AdD//yCEmrUB0P//
MISatQHQ//8whJq1AdD//0CEmrUB0P//QISatQHQ//9QhJq1AdD//1CEmrUB0P//YISatQHQ
//9ghJq1AdD//3CEmrUB0P//cISatQHQ///ZvAEAfzIAABwAAAAAAAAADAAAAAIAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAQgAAAFOh6+apAAAAAAAAAAAAAAABkKwAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAbwIAAAAAAAAAAAAAfwAAAAAAAADRgS+WJgAAAAAAAAAAAAAA
AAAAAAAAAADiIQAACQcAAAAAAACgAwAAAAAAAAAAAAALAAAAbgAAAEsCAAAEAQAAFBEAAAAA
AAAAAAAApwcAAAAAAAAAAAAAKwIAAAAAAAANAAAAAAAAAAAAAADeCwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAEIAlMwDg//8ogyUzAOD//4cAAAAAAAAAmLWPdAAAAAAAAAAAAAAAAAAA
AAAAAAAAPCg8KAEAAAAAAAAAAAAAAAAAAAAAAAAA057r5qkAAACJLNFEAwAAAAAAAAAAAAAA
AAAAAAAAAABWVf14AAAAAAoAAAAAAAAAiBD+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADoAwAAAAAAAAAAAAB2AAAAAgAAAAAAAAABAAAAPi0AAEAbudYA+P//AQAAAAAAAAABAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMDggIAAAAAAAAAAAAAAAAAAAAAAAAAACSg
edYA+P//gDGatQHQ//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACvjm8BAAAAAK+ObwEAAAAAr45vAQAAAACvjm8BAAAAAOgDAAAAAAAA6AMAAAAA
AABpGgAAAAAAADZpckomAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAGQAAABkAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAAAAAAAZAAAAAAAAAAAAAAAZAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAABCEAAAIAAAAIAAAABBEAAAIAAAAEAAAACCEAAAAAEAAAAAAADEEAA
AACAAAAAAAAAAAAAAAAAAAAAAAAEAAAAXAAAAG4AAAAsAJyxAdD//yA0kDAA4P//EMCxMADg
//8AAA0AAAAAAAAAAAAAAAAABAABAAAAAAAAgJqxAdD//wBgmrEB0P//APCbtQHQ//8AAAAA
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
///AtXAZAMD//wAAAAAAAAAAAAAAAAAAAAAYOKLWAPj//4DxmrEB0P//APKS1gD4//8AAAAA
AAAAAADzktYA+P//gBHdMADg//9Auxo0AOD//wDzktYA+P//jJNx1gD4//8YOKLWAPj//xDg
WhkAwP//QLsaNADg//9AEN0wAOD//wAAAIXAdRJMi8cPt9ZIi8sAHyoACAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAEAQ3TAA4P//APKS1gD4//9IiVwkCEiJbCQQSIl0JBhXlKbzii7T
//8BAAAASYv5QQCRcdYA+P//APOS1gD4//8AAAAAAAAAAAAAAAAAAAAAQCCPMADg//9w7HfW
APj//0iLy/+TwAAAQBDdMADg//+AAAAAAAAAAEAQ3TAA4P//SIlcJAhXSIPsIA+32kiL+fAF
E7IB0P//8AUTsgHQ//9AUpuxAdD//0AgjzAA4P//AAAAAAAAAADGP33WAPj//4DxmrEB0P//
QBDdMADg//+AGKswAOD//7P//8xAU0iD7CBIi9lIi0kAAAAAAAAAAAAgE7IB0P//AMASsgHQ
//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAIAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAeNGW1gD4//940ZbWAPj//0tEQkdgAwAAANBn1gD4//+QRX3WAPj//wAAAAAAAAAA
AAAAAAAAAQCgEH3WAPj//wAAAAAAAAAAUGKV1gD4//8AwJPWAPj//+gBntYA+P//0FGT1gD4
//+AIp7WAPj//3wAntYA+P//ZACe1gD4//+g2ZXWAPj//0DVldYA+P//UCqW1gD4//9w2JPW
APj//3jYk9YA+P//AAAAAAAAAAAAAAAAAAAAAMCQndYA+P//6ACe1gD4//8AAAAAAAAAAAAA
AAAAAAAAAAye1gD4//8YP5TWAPj//wgDntYA+P//4ACe1gD4//9oAJ7WAPj//5gCntYA+P//
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAZ7WAPj//2A6lNYA+P//ABAAAAAA
AAAgBZ7WAPj//5A5lNYA+P//iDmU1gD4///YaZXWAPj//0hildYA+P//EGqV1gD4///AOpTW
APj//wAAAAAAAAAAwIad1gD4//+Ag53WAPj//0CHndYA+P//AISd1gD4//8wspLWAPj//8CA
ndYA+P//QIGd1gD4//8oWJPWAPj//0CXltYA+P//EACe1gD4//84AZ7WAPj//wAAntYA+P//
wOGW1gD4///A8ZbWAPj//4jdktYA+P//sOGW1gD4//8AAAAAAAAAADD1Z9YA+P//AAAAAAAA
AABADZ7WAPj//zgCntYA+P//TGKV1gD4//+stZPWAPj//xQBntYA+P//sLWT1gD4///gZZXW
APj//6g7lNYA+P//mDmU1gD4//+gOZTWAPj//whZltYA+P//8ACe1gD4//8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABgC8ABYACgAuACEAQAAAADYBugD0AMoAIBd6i0IAPQF
8AVYWSABJAB4BwAAAAAAAIDdktYA+P//eN2S1gD4///43ZXWAPj//wBfGAAgAIABAAAAAAAA
AAAAAEAAEAAYAAAAMwArAAAAAABAACMAUwBsFpbWAPj//4AWltYA+P//AAAAAAAAAAAgOZTW
APj//yQ5lNYA+P//SApp1gD4//+AWQAAAAAAADAAAAA4AAAACAIAAFgGAAAYAOwt0C2YWVAA
oAKDAgAACAkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA0GfWAPj//wAAAAAAAAAAAEB5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPzHIAAAAAABg3UFQAAAAAUAkBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0GDWAPj//wAA
AAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAvyAYAAAAAAOiti1MAAAAAkAkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYJXVAPj//wAAAAAAAAAAAJAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIaAAAAAAAALv4
FVIAAAAA0AkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMM2VAfj//wAAAAAAAAAAANAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyGwgAAAAAADiltlMAAAAAOAoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANWVAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAK0wAAAAAAAKj4FVIAAAAAmAoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4NWVAfj//wAAAAAAAAAAABAGAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu/gUAAAAAAGRR
KVMAAAAA6AoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA8NuVAfj//wAAAAAAAAAAACACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZcgIAAAAAAHX4FVIAAAAAOAsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEN6VAfj//wAA
AAAAAAAAAFABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAFTwEAAAAAAD9rNFIAAAAAgAsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYN+VAfj//wAAAAAAAAAAAKAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClQwEAAAAAAKr4
FVIAAAAAyAsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAMCVAfj//wAAAAAAAAAAAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB54ggAAAAAALB2glQAAAAACAwBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYOyVAfj//wAA
AAAAAAAAANAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAK6QUAAAAAAGr4FVIAAAAAYAwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPKVAfj//wAAAAAAAAAAAPAMAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhrA0AAAAAAFD4
FVIAAAAAuAwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAOCVAfj//wAAAAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAJABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABrZQEAAAAAAGhCtlQAAAAAaBEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgFKWAfj//wAAAAAAAAAAAAABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtXAEAAAAAAG1C
tlQAAAAAwBEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgFOWAfj//wAAAAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJugEAAAAAAPfJNFQAAAAAEBIBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFWWAfj//wAA
AAAAAAAAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABphwEAAAAAABLpNFQAAAAAaBIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwFaWAfj//wAAAAAAAAAAAJAGAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMLAcAAAAAACdV
UFQAAAAAyBIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAUF2WAfj//wAAAAAAAAAAAFABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlgAEAAAAAAIn4FVIAAAAAIBMBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCWAfj//wAA
AAAAAAAAAPAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD4dQYAAAAAAKf4FVIAAAAAeBMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8CWWAfj//wAAAAAAAAAAAIAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtowAAAAAAAJP4
FVIAAAAA0BMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAcCaWAfj//wAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmwgAAAAAAAH34FVIAAAAAKBQBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYCeWAfj//wAA
AAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAmdgAAAAAAAJP4FVIAAAAAgBQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8CeWAfj//wAAAAAAAAAAAJAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABT+AAAAAAAAJP4
FVIAAAAA2BQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgCiWAfj//wAAAAAAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6cwIAAAAAAHKdbk4AAAAAMBUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBOWAfj//wAA
AAAAAAAAAGAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACTdAUAAAAAAP/JNFQAAAAAiBUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
FVIAAAAAABoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4LyWAfj//wAAAAAAAAAAANABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwHgIAAAAAALf4FVIAAAAAWBoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsL6WAfj//wAA
AAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACoBQEAAAAAAEzyT1IAAAAAsBoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMByWAfj//wAAAAAAAAAAALACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYRQMAAAAAAGCb
bk4AAAAACBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAKCWAfj//wAAAAAAAAAAANABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALrAEAAAAAAAqBVFEAAAAAYBsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsCyWAfj//wAA
AAAAAAAAAKABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAC5lAEAAAAAAKGBVFEAAAAAuBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMiVAfj//wAAAAAAAAAAAHABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJAIAAAAAAACx
Q1EAAAAAEBwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA8MmVAfj//wAAAAAAAAAAANABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJhgIAAAAAAPM9Z1EAAAAAaBwBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMuVAfj//wAA
AAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABG9wEAAAAAADqxQ1EAAAAAwBwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoF6WAfj//wAAAAAAAAAAADABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTqgEAAAAAAI3u
SVEAAAAAGB0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAcMKWAfj//wAAAAAAAAAAAOAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5YAUAAAAAAEyQ/VAAAAAAcB0BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUMeWAfj//wAA
AAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADsrgEAAAAAAM3w7lEAAAAAyB0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYMiWAfj//wAAAAAAAAAAAPAOAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABx0AgAAAAAAH8S
rVEAAAAAIB4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAwOWWAfj//wAAAAAAAAAAAPANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJZAoAAAAAADGl+VEAAAAAeB4BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsPOWAfj//wAA
AAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABN9QEAAAAAAC5D21EAAAAA0B4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcPWWAfj//wAAAAAAAAAAAKAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADhcgAAAAAAAOxA
21EAAAAAKB8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAEPaWAfj//wAAAAAAAAAAAHAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/hQQAAAAAAOijx1AAAAAAgB8BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgPyWAfj//wAA
AAAAAAAAAMACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAh2QIAAAAAAJ9JAFEAAAAA2B8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCWAfj//wAAAAAAAAAAAOAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsQAEAAAAAAMSG
2kgAAAAAMCABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4OCWAfj//wAAAAAAAAAAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwHgIAAAAAAPTx40gAAAAAiCABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYOKWAfj//wAA
AAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAtEwEAAAAAACsDtFAAAAAA4CABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEACXAfj//wAAAAAAAAAAADAXAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgzxcAAAAAANQF
rVEAAAAAOCEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoCuXAfj//wAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/cxQAAAAAAFgvslEAAAAAkCEBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEuXAfj//wAA
AAAAAAAAAIAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADcCAgAAAAAACPTUFEAAAAA6CEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECXAfj//wAAAAAAAAAAACALAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH8goAAAAAANyG
t1EAAAAAQCIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACCXAfj//wAAAAAAAAAAACALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH5AoAAAAAALKGt1EAAAAAmCIBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiXAfj//wAA
AAAAAAAAACAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACCHSMAAAAAANZfU1EAAAAA8CIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4K+XAfj//wAAAAAAAAAAACAjAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACeAyMAAAAAAOn6
YVEAAAAAUCMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAANOXAfj//wAAAAAAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUtgIAAAAAAAFCtlQAAAAAqCMBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgNWXAfj//wAA
AAAAAAAAAKADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAClkQMAAAAAAPNBtlQAAAAAACQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAINmXAfj//wAAAAAAAAAAAAABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/WQEAAAAAAPpB
tlQAAAAAWCQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgOCXAfj//wAAAAAAAAAAADAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/lgwAAAAAAHh54FEAAAAAsCQBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsACYAfj//wAA
AAAAAAAAADABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABVUgEAAAAAAPYUUlEAAAAACCUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AGYAfj//wAAAAAAAAAAAMAFAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QUAAAAAAAzw
+1MAAAAAYCUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgCuYAfj//wAAAAAAAAAAAKAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7yh8AAAAAAGt7OFQAAAAAsCUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEuYAfj//wAA
AAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACjWgIAAAAAAEhVUFQAAAAACCYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4EyYAfj//wAAAAAAAAAAAHACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvLgMAAAAAALPx
0FMAAAAAYCYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAUE+YAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+FAEAAAAAADV3iVMAAAAAsCYBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFCYAfj//wAA
AAAAAAAAAKAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACGCwcAAAAAANnx0FMAAAAACCcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsFaYAfj//wAAAAAAAAAAAIABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJLgIAAAAAAOJ2
iVMAAAAAYCcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMFiYAfj//wAAAAAAAAAAAPAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1kAcAAAAAAAF3iVMAAAAAuCcBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCYAfj//wAA
AAAAAAAAACADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAccAMAAAAAAIdzM1QAAAAAECgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICOYAfj//wAAAAAAAAAAAIAHAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOXgcAAAAAAKLo
NFQAAAAAaCgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoCqYAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABooAEAAAAAAP73FVIAAAAAwCgBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAeYAfj//wAA
AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABzEwEAAAAAAOrPFVIAAAAAECkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF+YAfj//wAAAAAAAAAAALAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6xgAAAAAAAOnP
FVIAAAAAaCkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoAiYAfj//wAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9mAMAAAAAAAZVUFQAAAAAwCkBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGyYAfj//wAA
AAAAAAAAAMAmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACFXyYAAAAAAEJVUFQAAAAAGCoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJOYAfj//wAAAAAAAAAAAMAGAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqggcAAAAAAPNU
UFQAAAAAcCoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA8KyYAfj//wAAAAAAAAAAAHAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjfQcAAAAAAHvLi1EAAAAAyCoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYMeYAfj//wAA
AAAAAAAAAFACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABMcwIAAAAAAOFUUFQAAAAAICsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsMmYAfj//wAAAAAAAAAAAPAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADICwEAAAAAAPlU
UFQAAAAAeCsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoMqYAfj//wAAAAAAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFMAEAAAAAAHf4FVIAAAAA0CsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMuYAfj//wAA
AAAAAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADPmAIAAAAAAHr4FVIAAAAAKCwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0M2YAfj//wAAAAAAAAAAADABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjLQEAAAAAAHr4
FVIAAAAAgCwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAM+YAfj//wAAAAAAAAAAAJAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiRQcAAAAAAHnLi1EAAAAA2CwBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkNaYAfj//wAA
AAAAAAAAAFABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAB5cwEAAAAAAFXLi1EAAAAAMC0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4NeYAfj//wAAAAAAAAAAADABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC+AAAAAAAAGbL
i1EAAAAAiC0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAENmYAfj//wAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC48wAAAAAAAGPLi1EAAAAA4C0BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwNmYAfj//wAA
AAAAAAAAADABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAOsgEAAAAAAHj4FVIAAAAAOC4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8NqYAfj//wAAAAAAAAAAACABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcpQEAAAAAAHr4
FVIAAAAAkC4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAKCYAfj//wAAAAAAAAAAAPAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXagUAAAAAAJgVolMAAAAA6C4BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8KSYAfj//wAA
AAAAAAAAAFAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACB0gUAAAAAAIhzM1QAAAAAQC8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQKqYAfj//wAAAAAAAAAAAGACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPQQMAAAAAAPNU
AlQAAAAAmC8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAENyYAfj//wAAAAAAAAAAAGABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMWgEAAAAAABb4FVIAAAAA8C8BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcN2YAfj//wAA
AAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACusAEAAAAAAJqUCFMAAAAASDABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4JmYAfj//wAAAAAAAAAAANABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABldgIAAAAAAOrP
FVIAAAAAoDABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAsJuYAfj//wAAAAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtBgIAAAAAAKz4FVIAAAAA8DABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJ2YAfj//wAA
AAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD0/gEAAAAAAIP4FVIAAAAAQDEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCYAfj//wAAAAAAAAAAAKAIAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQaAkAAAAAALEq
EFEAAAAAmDEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoGiYAfj//wAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUigMAAAAAAEQqEFEAAAAA8DEBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAuYAfj//wAA
AAAAAAAAAFABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAB8XwEAAAAAAJP4FVIAAAAASDIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBOYAfj//wAAAAAAAAAAAOACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZJwMAAAAAAOvP
FVIAAAAAoDIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAoGuYAfj//wAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACo6gAAAAAAAKj4FVIAAAAA8DIBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4J6YAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAT7AAAAAAAAIqUCFMAAAAAUDMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAOZAfj//wAAAAAAAAAAAAAYAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhFBgAAAAAABVV
UFQAAAAAqDMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMBuZAfj//wAAAAAAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvNAEAAAAAAK+UCFMAAAAAADQBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8BWYAfj//wAA
AAAAAAAAADAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAo8gYAAAAAAAZVUFQAAAAAWDQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUByZAfj//wAAAAAAAAAAACABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbgEAAAAAAHP4
FVIAAAAAuDQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAcB2ZAfj//wAAAAAAAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcYwEAAAAAAKn4FVIAAAAACDUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsB6ZAfj//wAA
AAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABV7wAAAAAAAKj4FVIAAAAAWDUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAfj//wAAAAAAAAAAAAACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQBgIAAAAAAML3
FVIAAAAAqDUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAKZAfj//wAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA0gAAAAAAAFX4FVIAAAAA+DUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAINqXAfj//wAA
AAAAAAAAAMAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACVGgUAAAAAAN33FVIAAAAAUDYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCXAfj//wAAAAAAAAAAACAJAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADecAkAAAAAAOX0
h1MAAAAAoDYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAIByYAfj//wAAAAAAAAAAAKACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs5gIAAAAAAMpUUFQAAAAA+DYBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwB6YAfj//wAA
AAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACT5QAAAAAAADtVUFQAAAAAUDcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIuXAfj//wAAAAAAAAAAAAAHAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACnvwYAAAAAAHL7
r1IAAAAAqDcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAIKmXAfj//wAAAAAAAAAAAJABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzUgEAAAAAAMJUUFQAAAAAADgBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsKqXAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADdRwEAAAAAAOtUUFQAAAAAWDgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkKuXAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqFwEAAAAAAC74
FVIAAAAAuDgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAUKyXAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZgwEAAAAAAH34FVIAAAAAEDkBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK2XAfj//wAA
AAAAAAAAAGACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAARmgIAAAAAAGo+GFMAAAAAYDkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJKXAfj//wAAAAAAAAAAAHABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxEQIAAAAAAAg8
ilQAAAAAuDkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4N6XAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADx8QAAAAAAAEVVUFQAAAAAEDoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJOXAfj//wAA
AAAAAAAAANADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACtsAMAAAAAAJv3FVIAAAAAaDoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYJeXAfj//wAAAAAAAAAAANABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqWgIAAAAAAN5U
UFQAAAAAwDoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMJmXAfj//wAAAAAAAAAAAPABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpugEAAAAAAMVUUFQAAAAAGDsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJuXAfj//wAA
AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABSlwAAAAAAAEj4FVIAAAAAeDsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJyXAfj//wAAAAAAAAAAALAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQngAAAAAAADL4
FVIAAAAA0DsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAwJyXAfj//wAAAAAAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC+wAAAAAAAFP4FVIAAAAAKDwBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0J2XAfj//wAA
AAAAAAAAAPABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEcAIAAAAAAC1eM1QAAAAAgDwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCXAfj//wAAAAAAAAAAAAABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCygAAAAAAACde
M1QAAAAA2DwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAGGXAfj//wAAAAAAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3QQEAAAAAAC5eM1QAAAAAMD0BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGKXAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADbwwAAAAAAAKL4FVIAAAAAgD0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGOXAfj//wAAAAAAAAAAAJACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzzAIAAAAAALRB
tlQAAAAA2D0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAQBeXAfj//wAAAAAAAAAAAJABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVqgEAAAAAAOPx0FMAAAAAMD4BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGaXAfj//wAA
AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADSnAAAAAAAAPF2iVMAAAAAiD4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0BiXAfj//wAAAAAAAAAAAOABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClbgIAAAAAAOvP
FVIAAAAA4D4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAsBqXAfj//wAAAAAAAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwOAIAAAAAAJf3FVIAAAAAOD8BAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwByXAfj//wAA
AAAAAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADrpAIAAAAAAJf3FVIAAAAAkD8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+XAfj//wAAAAAAAAAAALAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk5wAAAAAAALn3
FVIAAAAA+D8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAEOOWAfj//wAAAAAAAAAAALABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkzQEAAAAAAMX3FVIAAAAAUEABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AKZAfj//wAA
AAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAASSwAAAAAAAE1VUFQAAAAAqEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUNeWAfj//wAAAAAAAAAAAOAEAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADqGQUAAAAAABOl
tlMAAAAA+EABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAwOSWAfj//wAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAgEAAAAAAEz4FVIAAAAAUEEBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMNyWAfj//wAA
AAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAA38wEAAAAAAB5VUFQAAAAAqEEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgCOZAfj//wAAAAAAAAAAAGAGAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACnsAYAAAAAACv4
FVIAAAAAAEIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4CmZAfj//wAAAAAAAAAAAHAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACedAQAAAAAAAtVUFQAAAAAWEIBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUC6ZAfj//wAA
AAAAAAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAyowEAAAAAAEpVUFQAAAAAqEIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDCZAfj//wAAAAAAAAAAAFMAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADVuAAAAAAAAHP4
FVIAAAAAAEMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMDGZAfj//wAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzQQEAAAAAAKL4FVIAAAAAaEMBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8DGZAfj//wAA
AAAAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAUtgIAAAAAAAFCtlQAAAAAyEMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcDSZAfj//wAAAAAAAAAAAKADAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClkQMAAAAAAPNB
tlQAAAAAKEQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABkAYPn//wAAAAAAAAAAAIBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcEQBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDiZAfj//wAA
AAAAAAAAAH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAABigAAAAAAAKr4FVIAAAAAyEQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkDiZAfj//wAAAAAAAAAAAOAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtXgEAAAAAAMX3
FVIAAAAAIEUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAsGsAYPn//wAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaEUBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYIQAYPn//wAA
AAAAAAAAAKADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqEUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcDmZAfj//wAAAAAAAAAAAEACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4AwIAAAAAAKGU
CFMAAAAAAEYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAsDuZAfj//wAAAAAAAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXCgEAAAAAALL3FVIAAAAAWEYBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8DyZAfj//wAA
AAAAAAAAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACs5AEAAAAAAML3FVIAAAAAsEYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCZAfj//wAAAAAAAAAAAAACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNpAEAAAAAAD74
FVIAAAAACEcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACKZAfj//wAAAAAAAAAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOgEAAAAAAMtUUFQAAAAAYEcBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8MSZAfj//wAA
AAAAAAAAANAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAcgQYAAAAAAHjoNFQAAAAAuEcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMuZAfj//wAAAAAAAAAAAIADAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcqwMAAAAAADBE
JlQAAAAAEEgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAQM+ZAfj//wAAAAAAAAAAAKAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfgw8AAAAAAPK35lIAAAAAYEgBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCZAfj//wAA
AAAAAAAAALAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABqrgQAAAAAAKg9GFMAAAAAuEgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0OqZAfj//wAAAAAAAAAAAJAKAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWrwoAAAAAAIGT
CFMAAAAAEEkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAYPWZAfj//wAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABACwEAAAAAAC4FCEUAAAAAaEkBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPaZAfj//wAA
AAAAAAAAADAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAZ5gMAAAAAAJ0NrVMAAAAAwEkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQPqZAfj//wAAAAAAAAAAACABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5gAEAAAAAAL89
GFMAAAAAGEoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAOCZAfj//wAAAAAAAAAAANAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOWAsAAAAAAMroNFQAAAAAaEoBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGyaAfj//wAA
AAAAAAAAAOAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAC69wYAAAAAAF/x0FMAAAAAuEoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMHiaAfj//wAAAAAAAAAAALAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWGgEAAAAAAD1V
UFQAAAAAIEsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA4HiaAfj//wAAAAAAAAAAAEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9HgMAAAAAAM73FVIAAAAAeEsBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIHyaAfj//wAA
AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACyJAEAAAAAAKH4FVIAAAAAIQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMA
eQBzAHQAZQBtADMAMgBcAG4AdABvAHMAawByAG4AbAAuAGUAeABlAAAAHAAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGgAYQBsAC4AZABsAGwAAAAAABsA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABrAGQALgBkAGwA
bAAAAAAAAAAuAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
bQBjAHUAcABkAGEAdABlAF8ARwBlAG4AdQBpAG4AZQBJAG4AdABlAGwALgBkAGwAbAAAAAAA
AAAAACoAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAdwBlAHIAawBlAHIAbgBlAGwALgBzAHkAcwAAAAAAAAAAACUAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
QwBMAEYAUwAuAFMAWQBTAAAAIwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB0AG0ALgBzAHkAcwAAAAAAAAAeAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwAUABTAEgARQBEAC4AZABsAGwA
AAAAAAAAAAAgAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
QgBPAE8AVABWAEkARAAuAGQAbABsAAAAAAAbAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
cwB5AHMAdABlAG0AMwAyAFwAQwBJAC4AZABsAGwAAAAAAAAAJgAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABtAHMAcgBwAGMA
LgBzAHkAcwAAAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAVwBkAGYAMAAxADAAMAAwAC4AcwB5AHMAAAAnAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAFcARABGAEwARABSAC4AUwBZAFMAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAEQAcgBpAHYAZQByAHMAXABhAGMAcABpAGUAeAAuAHMA
eQBzAAAAAAAAACwAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABEAHIAaQB2AGUAcgBzAFwAVwBwAHAAUgBlAGMAbwByAGQAZQByAC4AcwB5AHMAAAAAACUA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwAQQBDAFAASQAuAHMAeQBzAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABXAE0ASQBMAEkAQgAuAFMAWQBTAAAA
AAAAACQAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABEAHIA
aQB2AGUAcgBzAFwAYwBuAGcALgBzAHkAcwAAAAAAJQAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXABOAEQASQBTAC4AUwBZAFMA
AAAmAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwARABSAEkA
VgBFAFIAUwBcAE4ARQBUAEkATwAuAFMAWQBTAAAAAAAAAAAAKQAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABtAHMAaQBzAGEA
ZAByAHYALgBzAHkAcwAAACQAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcABjAGkALgBzAHkAcwAAAAAAJwAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABpAHMA
YQBwAG4AcAAuAHMAeQBzAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkA
cwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAdgBkAHIAdgByAG8AbwB0AC4AcwB5AHMA
AAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwARABSAEkA
VgBFAFIAUwBcAHgAZQBuAGIAdQBzAC4AcwB5AHMAAAAAAAAAJAAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXAB4AGUAbgAuAHMA
eQBzAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
RABSAEkAVgBFAFIAUwBcAHgAZQBuAGYAaQBsAHQALgBzAHkAcwAAAAAAJAAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABwAGQA
YwAuAHMAeQBzAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAHAAYQByAHQAbQBnAHIALgBzAHkAcwAAAAAAKgAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABzAHAAYQBjAGUAcABvAHIAdAAuAHMAeQBzAAAAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB2AG8AbABtAGcA
cgAuAHMAeQBzAAAAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAdgBvAGwAbQBnAHIAeAAuAHMAeQBzAAAAAAAnAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAHAAYwBpAGkAZABlAC4AcwB5AHMAAAAAAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABQAEMASQBJAEQARQBYAC4A
UwBZAFMAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAaQBuAHQAZQBsAGkAZABlAC4AcwB5AHMAAAAnAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHYA
aQBhAGkAZABlAC4AcwB5AHMAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABuAHYAcgBhAGkAZAAuAHMAeQBzAAAA
AAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAQwBMAEEAUwBTAFAATgBQAC4AUwBZAFMAAAAnAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGIAeAB2AGIA
ZABhAC4AcwB5AHMAAAAAAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABlAHYAYgBkAGEALgBzAHkAcwAAAAAAAAAAACYA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwAcwBkAGIAdQBzAC4AcwB5AHMAAAAAAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8A
bwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHAAYwBtAGMAaQBhAC4A
cwB5AHMAAAAAAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMA
MgBcAGQAcgBpAHYAZQByAHMAXAB2AG0AYgB1AHMALgBzAHkAcwAAAAAAAAAAACgAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
dgBtAGIAawBtAGMAbAAuAHMAeQBzAAAAAAAmAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
UwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHcAaQBuAGgAdgAuAHMAeQBzAAAA
AAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABtAG8AdQBuAHQAbQBnAHIALgBzAHkAcwAAACgAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAaQBhAFMA
dABvAHIAVgAuAHMAeQBzAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGEAcgBjAHMAYQBzAC4AcwB5AHMAAAAAAAAA
KQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYA
ZQByAHMAXABzAHQAbwByAHAAbwByAHQALgBzAHkAcwAAACYAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAYQB0AGEAcABpAC4A
cwB5AHMAAAAAAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAGEAdABhAHAAbwByAHQALgBTAFkAUwAAAAAAKQAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABzAHQAbwByAGEAaABjAGkALgBzAHkAcwAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcwB0AG8AcgBuAHYAbQBlAC4A
cwB5AHMAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
ZAByAGkAdgBlAHIAcwBcAG4AdgBzAHQAbwByAC4AcwB5AHMAAAAAAAAAKAAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABsAHMA
aQBfAHMAYQBzAC4AcwB5AHMAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkA
cwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAbABzAGkAXwBzAGEAcwAyAC4AcwB5AHMA
AAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkA
dgBlAHIAcwBcAGwAcwBpAF8AcwBhAHMAMwAuAHMAeQBzAAAAJgAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAAzAHcAYQByAGUA
LgBzAHkAcwAAAAAAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAbABzAGkAXwBzAHMAcwAuAHMAeQBzAAAAAAAnAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAG0AdgB1AG0AaQBzAC4AcwB5AHMAAAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB2AHMAdAB4AHIAYQBpAGQA
LgBzAHkAcwAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAbQBlAGcAYQBzAGEAcwAuAHMAeQBzAAAAAAAnAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAG0A
ZQBnAGEAcwByAC4AcwB5AHMAAAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABpAGEAUwB0AG8AcgBBAFYALgBzAHkA
cwAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAYQBtAGQAcwBhAHQAYQAuAHMAeQBzAAAAAAAoAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGEAbQBkAHgA
YQB0AGEALgBzAHkAcwAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABhAG0AZABzAGIAcwAuAHMAeQBzAAAAAAAAACgA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwAdgBzAG0AcgBhAGkAZAAuAHMAeQBzAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8A
bwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAFMAaQBTAFIAYQBpAGQA
MgAuAHMAeQBzAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMA
MgBcAGQAcgBpAHYAZQByAHMAXABzAGkAcwByAGEAaQBkADQALgBzAHkAcwAAACkAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
cwB0AGUAeABzAHQAbwByAC4AcwB5AHMAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
UwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHEAbAAyADMAMAAwAGkALgBzAHkA
cwAAAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABxAGwAZgBjAG8AZQBpAC4AcwB5AHMAAAAAACkAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcQBsADQA
MAB4AHgAMgBpAC4AcwB5AHMAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGUAbAB4AHMAdABvAHIALgBzAHkAcwAAAAAA
KAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYA
ZQByAHMAXABlAGwAeABmAGMAbwBlAC4AcwB5AHMAAAAAACYAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAYgBmAGEAZABpAC4A
cwB5AHMAAAAAAAAAAAAqAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAGIAZgBhAGQAZgBjAG8AZQBpAC4AcwB5AHMAAAAAAAAA
AAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwARABSAEkA
VgBFAFIAUwBcAHgAZQBuAHYAYgBkAC4AcwB5AHMAAAAAAAAAKAAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXAB4AGUAbgBjAHIA
cwBoAC4AcwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUA
bQAzADIAXABEAFIASQBWAEUAUgBTAFwAeABlAG4AZABpAHMAawAuAHMAeQBzAAAAAAAoAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAEEARABQADgAMABYAFgALgBTAFkAUwAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABIAHAAUwBBAE0ARAAuAHMA
eQBzAAAAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAZgBsAHQAbQBnAHIALgBzAHkAcwAAAAAAAAAlAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwARAByAGkAdgBlAHIAcwBcAE4A
dABmAHMALgBzAHkAcwAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABEAHIAaQB2AGUAcgBzAFwAawBzAGUAYwBkAGQALgBzAHkAcwAAAAAAAAAoAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAHUAcwBiAGMAYwBnAHAALgBzAHkAcwAAAAAAJQAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABVAFMAQgBEAC4AUwBZAFMA
AAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkA
dgBlAHIAcwBcAHUAcwBiAGgAdQBiAC4AcwB5AHMAAAAAAAAAKAAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB1AHMAYgBlAGgA
YwBpAC4AcwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABkAHIAaQB2AGUAcgBzAFwAVQBTAEIAUABPAFIAVAAuAFMAWQBTAAAAAAApAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIA
cwBcAHUAYwB4ADAAMQAwADAAMAAuAHMAeQBzAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABVAHMAYgBIAHUAYgAzAC4A
cwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAcwB0AG8AcgB2AHMAYwAuAHMAeQBzAAAAAAAkAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHAA
YwB3AC4AcwB5AHMAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUA
bQAzADIAXABEAHIAaQB2AGUAcgBzAFwARgBzAF8AUgBlAGMALgBzAHkAcwAAAAAAAAAoAAAA
XABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwARAByAGkAdgBlAHIA
cwBcAGsAcwBlAGMAcABrAGcALgBzAHkAcwAAAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB0AGMAcABpAHAALgBzAHkA
cwAAAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAZgB3AHAAawBjAGwAbgB0AC4AcwB5AHMAAAApAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAG0A
bAB4ADQAXwBiAHUAcwAuAHMAeQBzAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMA
eQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXAB3AGYAcABsAHcAZgBzAC4AcwB5AHMA
AAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAdgBtAHMAdABvAHIAZgBsAC4AcwB5AHMAAAAnAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGEAZwBwADQA
NAAwAC4AcwB5AHMAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABuAHYAXwBhAGcAcAAuAHMAeQBzAAAAAAAAACkA
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwAdQBsAGkAYQBnAHAAawB4AC4AcwB5AHMAAAAmAAAAXABTAHkAcwB0AGUAbQBSAG8A
bwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGkAYgBiAHUAcwAuAHMA
eQBzAAAAAAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMA
MgBcAGQAcgBpAHYAZQByAHMAXABuAGQAZgBsAHQAcgAuAHMAeQBzAAAAAAAAACkAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
dwBpAG4AdgBlAHIAYgBzAC4AcwB5AHMAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
UwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHcAaQBuAG0AYQBkAC4AcwB5AHMA
AAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABnAGEAZwBwADMAMABrAHgALgBzAHkAcwAAACcAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAdQBhAGcA
cAAzADUALgBzAHkAcwAAAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHYAbwBsAHMAbgBhAHAALgBzAHkAcwAAAAAA
KAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYA
ZQByAHMAXABVAFMAQgBYAEgAQwBJAC4AUwBZAFMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAVQBTAEIAUwBUAE8A
UgAuAFMAWQBTAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAHUAYQBzAHAAcwB0AG8AcgAuAHMAeQBzAAAAJwAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABzAGQAcwB0AG8AcgAuAHMAeQBzAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcwBiAHAAMgBwAG8AcgB0AC4A
cwB5AHMAAAAkAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
RAByAGkAdgBlAHIAcwBcAG0AdQBwAC4AcwB5AHMAAAAAACUAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAZABpAHMAawAuAHMA
eQBzAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABiAHgAbwBpAHMALgBzAHkAcwAAAAAAAAAAACcAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAYgB4AGYA
YwBvAGUALgBzAHkAcwAAAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwARAByAGkAdgBlAHIAcwBcAGMAcgBhAHMAaABkAG0AcAAuAHMAeQBzAAAA
JgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYA
ZQByAHMAXABjAGQAcgBvAG0ALgBzAHkAcwAAAAAAAAAAACUAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABEAHIAaQB2AGUAcgBzAFwATgB1AGwAbAAuAFMA
WQBTAAAALAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABCAGEAcwBpAGMAUgBlAG4AZABlAHIALgBzAHkAcwAAAAAAKAAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABkAHgAZwBrAHIAbgBsAC4AcwB5AHMAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAdwBhAHQAYwBoAGQAbwBnAC4A
cwB5AHMAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
ZAByAGkAdgBlAHIAcwBcAGQAeABnAG0AbQBzADEALgBzAHkAcwAAAAAALQAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABCAGEA
cwBpAGMARABpAHMAcABsAGEAeQAuAHMAeQBzAAAAJQAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAFMAeQBzAHQAZQBtADMAMgBcAEQAcgBpAHYAZQByAHMAXABOAHAAZgBzAC4AUwBZAFMA
AAAlAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwARAByAGkA
dgBlAHIAcwBcAE0AcwBmAHMALgBTAFkAUwAAACQAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAdABkAHgALgBzAHkAcwAAAAAA
JAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYA
RQBSAFMAXABUAEQASQAuAFMAWQBTAAAAAAAmAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
UwB5AHMAdABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAG4AZQB0AGIAdAAuAHMAeQBzAAAA
AAAAAAAAJAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABhAGYAZAAuAHMAeQBzAAAAAAAmAAAAXABTAHkAcwB0AGUAbQBSAG8A
bwB0AFwAcwB5AHMAdABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAHAAYQBjAGUAcgAuAHMA
eQBzAAAAAAAAAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMA
MgBcAEQAUgBJAFYARQBSAFMAXABuAGUAdABiAGkAbwBzAC4AcwB5AHMAAAAAACYAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwA
cgBkAGIAcwBzAC4AcwB5AHMAAAAAAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
cwB5AHMAdABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAHcAYQBuAGEAcgBwAC4AcwB5AHMA
AAAAAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGQA
cgBpAHYAZQByAHMAXABuAHMAaQBwAHIAbwB4AHkALgBzAHkAcwAAACoAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAbgBwAHMA
dgBjAHQAcgBpAGcALgBzAHkAcwAAAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAbQBzAHMAbQBiAGkAbwBzAC4A
cwB5AHMAAAAlAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
RAByAGkAdgBlAHIAcwBcAGQAZgBzAGMALgBzAHkAcwAAACgAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAYQBoAGMAYQBjAGgA
ZQAuAHMAeQBzAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0A
MwAyAFwARABSAEkAVgBFAFIAUwBcAG4AZABpAHMAdABhAHAAaQAuAHMAeQBzAAAAKAAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABuAGQAaQBzAHcAYQBuAC4AcwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAcgBhAHMAcwBzAHQAcAAuAHMA
eQBzAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
RABSAEkAVgBFAFIAUwBcAEEAZwBpAGwAZQBWAHAAbgAuAHMAeQBzAAAALQAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABDAG8A
bQBwAG8AcwBpAHQAZQBCAHUAcwAuAHMAeQBzAAAAJgAAAFwAUwB5AHMAdABlAG0AUgBvAG8A
dABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMAXABrAGQAbgBpAGMALgBzAHkA
cwAAAAAAAAAAACYAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABkAHIAaQB2AGUAcgBzAFwAdQBtAGIAdQBzAC4AcwB5AHMAAAAAAAAAAAApAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGkA
OAAwADQAMgBwAHIAdAAuAHMAeQBzAAAAKQAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXABtAG8AdQBjAGwAYQBzAHMALgBzAHkA
cwAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAawBiAGQAYwBsAGEAcwBzAC4AcwB5AHMAAAAkAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGYAZABjAC4A
cwB5AHMAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIA
XABEAFIASQBWAEUAUgBTAFwAeABlAG4AdgBpAGYALgBzAHkAcwAAAAAAAAApAAAAXABTAHkA
cwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAEgA
RABBAHUAZABCAHUAcwAuAHMAeQBzAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMA
eQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAB1AHMAYgB1AGgAYwBpAC4AcwB5AHMA
AAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwAaQBuAHQAZQBsAHAAcABtAC4AcwB5AHMAAAAoAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHIAYQBzAHAA
cAB0AHAALgBzAHkAcwAAAAAAKAAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAByAGEAcwBsADIAdABwAC4AcwB5AHMAAAAAAC8A
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUA
cgBzAFwATgBkAGkAcwBWAGkAcgB0AHUAYQBsAEIAdQBzAC4AcwB5AHMAAAAAAAAAKQAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XAByAGEAcwBwAHAAcABvAGUALgBzAHkAcwAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcwB3AGUAbgB1AG0ALgBzAHkA
cwAAAAAAAAAjAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwA
ZAByAGkAdgBlAHIAcwBcAGsAcwAuAHMAeQBzAAAAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcgBkAHAAYgB1AHMA
LgBzAHkAcwAAAAAAAAAoAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwARAByAGkAdgBlAHIAcwBcAE4ARABQAHIAbwB4AHkALgBTAFkAUwAAAAAAKAAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMA
XABIAGQAQQB1AGQAaQBvAC4AcwB5AHMAAAAAACgAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQA
XABzAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAcABvAHIAdABjAGwAcwAuAHMA
eQBzAAAAAAAlAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0AMwAyAFwA
ZAByAGkAdgBlAHIAcwBcAGQAcgBtAGsALgBzAHkAcwAAACgAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAawBzAHQAaAB1AG4A
awAuAHMAeQBzAAAAAAAuAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwARAByAGkAdgBlAHIAcwBcAGQAdQBtAHAAXwBkAGkAcwBrAGQAdQBtAHAALgBzAHkA
cwAAAAAAAAAAACwAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIA
XABEAHIAaQB2AGUAcgBzAFwAZAB1AG0AcABfAHgAZQBuAHYAYgBkAC4AcwB5AHMAAAAAAC0A
AABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABEAHIAaQB2AGUA
cgBzAFwAZAB1AG0AcABfAHgAZQBuAGMAcgBzAGgALgBzAHkAcwAAAB8AAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXAB3AGkAbgAzADIAawAuAHMAeQBzAAAA
AAAAACkAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIA
aQB2AGUAcgBzAFwASABJAEQAUABBAFIAUwBFAC4AUwBZAFMAAAAoAAAAXABTAHkAcwB0AGUA
bQBSAG8AbwB0AFwAUwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAG0AbwBuAGkA
dABvAHIALgBzAHkAcwAAAAAAHgAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQA
ZQBtADMAMgBcAFQAUwBEAEQARAAuAGQAbABsAAAAAAAAAAAAHAAAAFwAUwB5AHMAdABlAG0A
UgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGMAZABkAC4AZABsAGwAAAAAACYAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
bAB1AGEAZgB2AC4AcwB5AHMAAAAAAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwA
cwB5AHMAdABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAGwAbAB0AGQAaQBvAC4AcwB5AHMA
AAAAAAAAJwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQA
UgBJAFYARQBSAFMAXAByAHMAcABuAGQAcgAuAHMAeQBzAAAAAAAAACcAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAYgBvAHcA
cwBlAHIALgBzAHkAcwAAAAAAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAG0AcABzAGQAcgB2AC4AcwB5AHMAAAAAAAAA
JwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAHMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYA
RQBSAFMAXABtAHIAeABzAG0AYgAuAHMAeQBzAAAAAAAAACkAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAbQByAHgAcwBtAGIA
MgAwAC4AcwB5AHMAAAAlAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAEgAVABUAFAALgBzAHkAcwAAACkAAABcAFMAeQBzAHQA
ZQBtAFIAbwBvAHQAXABzAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAbQByAHgA
cwBtAGIAMQAwAC4AcwB5AHMAAAAnAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAcwB5AHMA
dABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAHAAZQBhAHUAdABoAC4AcwB5AHMAAAAAAAAA
JwAAAFwAUwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAEQAcgBpAHYA
ZQByAHMAXABzAGUAYwBkAHIAdgAuAFMAWQBTAAAAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIA
bwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABEAFIASQBWAEUAUgBTAFwAcwByAHYAbgBlAHQA
LgBzAHkAcwAAAAAAAAApAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMAdABlAG0A
MwAyAFwAZAByAGkAdgBlAHIAcwBcAHQAYwBwAGkAcAByAGUAZwAuAHMAeQBzAAAAJQAAAFwA
UwB5AHMAdABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAEQAUgBJAFYARQBSAFMA
XABzAHIAdgAyAC4AcwB5AHMAAAAkAAAAXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAUwB5AHMA
dABlAG0AMwAyAFwARABSAEkAVgBFAFIAUwBcAHMAcgB2AC4AcwB5AHMAAAAAADEAAABcAFMA
eQBzAHQAZQBtAFIAbwBvAHQAXABTAHkAcwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwA
cgBkAHAAdgBpAGQAZQBvAG0AaQBuAGkAcABvAHIAdAAuAHMAeQBzAAAAJgAAAFwAUwB5AHMA
dABlAG0AUgBvAG8AdABcAFMAeQBzAHQAZQBtADMAMgBcAGQAcgBpAHYAZQByAHMAXAByAGQA
cABkAHIALgBzAHkAcwAAAAAAAAAAACcAAABcAFMAeQBzAHQAZQBtAFIAbwBvAHQAXABTAHkA
cwB0AGUAbQAzADIAXABkAHIAaQB2AGUAcgBzAFwAYwBvAG4AZAByAHYALgBzAHkAcwAAAAAA
AADgZZXWAPj//wBOAQCcAAAAIDmU1gD4//+cTgEABAAAACQ5lNYA+P//oE4BAAQAAAAw9WfW
APj//6ROAQAAAQAAANBjlwH4//+kTwEAABAAAAAQE7IB0P//pF8BAAAQAAAAABOyAdD//6Rv
AQAAEAAAbBaW1gD4//+kfwEABAAAAIAWltYA+P//qH8BAGABAADgzZPWAPj//wiBAQAQAAAA
MACe1gD4//8YgQEABAAAAGwDntYA+P//HIEBAAQAAAAQLZPWAPj//yCBAQBgAAAAAPD/f/v2
//+AgQEACAAAAPj/v3379v//iIEBAAgAAAD43759+/b//5CBAQAIAAAA6LHLAPz2//+YgQEA
CAAAANhlAH779v//oIEBAAgAAAAwAL99+/b//6iBAQAIAAAAgN++ffv2//+wgQEACAAAAIgJ
2QDo9v//uIEBAAgAAACAbAB0+/b//8CBAQAIAAAAMAC6ffv2///IgQEACAAAAADdvn379v//
0IEBAAgAAACACdkA6Pb//9iBAQAIAAAAoDUAfvv2///ggQEACAAAABgAv3379v//6IEBAAgA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGANE7IB0P//fgAAAAAAAAAFAADA
/////xA9j9YA+P//eAUTsgHQ//9AHROyAdD//wAAAAAAAAAAAAAAAAAAAADF1GOXAfj//1gV
E7IB0P//WBUTsgHQ//8oBhOyAdD//0AdE7IB0P//WBUTsgHQ///gBhOyAdD//wDQZ9YA+P//
oNl81gD4//9/AgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAHwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAUBATsgHQ//9wEBOyAdD//wBAeQDA8wMAAAAAAAAAAAAAUJnWAPj//wDQZ9YA+P//
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcaPytXl
ianb9M4opQiSxz0wCnZpZj1bJ2JyaWRnZT1jcGlfczM9MAphY3BpX3M0Dw8PDw8PDw8PDw8P
Dw8PD4ABCA0PBgUOAgwLCgkDBwSABwsPBgoEAQkIBQIMDg0DACPi+hXUGDbv2S4Nwcz3OwA+
UMuP4ZuxRPUqFG5636UAKeEKQIjraUojgqvIY6HCACRxC8aTeuLNL5i8Vem3XgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGDcdxgAwP//QAIAAAAAAABg3HcYAMD//wEA
AAAAAAAAIA+eMADg//8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0GfWAPj//+AGE7IB0P//WBUTsgHQ
//9AHROyAdD//wAAAAAAAAAAAAAAAAAAAABAHROyAdD//6TafNYA+P//ED2P1gD4//+4BxOy
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
k9YA+P//MACe1gD4//80AJ7WAPj//2wDntYA+P//cAOe1gD4//8QLZPWAPj//3Atk9YA+P//
APD/f/v2//8I8P9/+/b///j/v3379v//AADAffv2///43759+/b//wDgvn379v//6LHLAPz2
///wscsA/Pb//9hlAH779v//4GUAfvv2//8wAL99+/b//zgAv3379v//gN++ffv2//+I3759
+/b//4gJ2QDo9v//kAnZAOj2//+AbAB0+/b//4hsAHT79v//MAC6ffv2//84ALp9+/b//wDd
vn379v//CN2+ffv2//+ACdkA6Pb//4gJ2QDo9v//oDUAfvv2//+oNQB++/b//xgAv3379v//
IAC/ffv2//8AAKB9+/b//wgAoH379v//ANC+ffv2//8I0L59+/b//5g1AH779v//oDUAfvv2
//8gYZXWAPj//0hhldYA+P//4M2T1gD4///gzZPWAPj//xsAAABwAAAAAAAAAAIAAAACCAAA
AAAAABCeDxYAwP//0PwOFgDA//+AOiYWAMD//4A6JhYAwP//AAAAAAAAAAAYrH3WAPj//1ia
htYA+P//ABoPFgDA///QFg8WAMD//wDgvJYB+P//AAAAAAAAAABj0IIAAAAAAGPAggAAAAAA
IZBWBQIAAABjOEEAAAAAAGNIhQAAAAAAY0CAAAAAAABjWZcAAAAAgGNomwgCAAAAY0hEAAAA
AABjKEMAAAAAAGNpBwAAAACA4wkACAIAAABjUIAAAAAAAAAAAAAAAAAAZ4jRBAAA4AbjCSAI
AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP49GaEAAAAAAQAAAAAAAAAAADECRGV2afgP
AACoAQAAAL0BFgDA//8QABAAAAAAAHBfcxYAwP//AAAAACQBAAAFAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAaAAISAAAAAAEAAAAAAAAAAAAAAAAAAAADAFACAAAAAODaLTMA4P//sLEtMwDg
//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEAAAgAEAAAAAAAAAAAAAsKE3MwDg//8iAAAA
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAoAAAAAAAIoTczAOD//wihNzMA4P//
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
AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAEAgjzAA4P//DwAAAAAAAAAAAAAIAAAAAA8A
AAAAAAAAAAAAAQEAAADYpjczAOD//5ioNzMA4P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgBYJAAAAABApjczAOD//wAAAAAAAAAAAAAAAAAA
AADQtWrWAPj//9C1atYA+P//1LVq1gD4//9ApjczAOD//wAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAABgABAAAAKKk3MwDg//8oqTczAOD//ziDNzMA4P//+JY3MwDg//9IqTczAOD//0ip
NzMA4P//YKk3MwDg///AqTczAOD//wAAAAAAAAAAAAAAAAAAAABApjczAOD/fwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAgqjczAOD//wAAAAAAAAAAAAAAAAAAAABApjczAOD/fwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAqjczAOD//wAA
AAAAAAAAAAAAAAAAAABApjczAOD/fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgqjczAOD//wAAAAAAAAAAAAAAAAAA
AABApjczAOD/fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABAqzczAOD//wAAAAAAAAAAAAAAAAAAAABApjczAOD/fwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABApjczAOD/fwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAABAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
biZwXCk20AEYrDczAOD//xisNzMA4P//AAAAAAAAAAAAAAAAAAAAAIBCZJcB+P//AAAAAAAA
AAAAAAAAAAAAAFCsNzMA4P//UKw3MwDg//8EAAAAAAAAABQCAAAAAAAABQAIAAAAAAB4rDcz
AOD//3isNzMA4P//AQAAAAAAAAAAAAAAAAAAAJisNzMA4P//mKw3MwDg//8AAAAAAAAAAAAA
AAAAAAAAgEJklwH4//8AAAAAAAAAAMiGNzMA4P//iJo3MwDg//8AAAAAAAAAAAAAAAAAAAAA
BwAAAAAAAAAAAAAAAlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4rTczAOD//zitNzMA4P//SK03MwDg//9IrTcz
AOD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAH8AIwJQRE8AAAAAAAAAAAAAAgAAAAAAAFBETwAAAAAAsKE3MwDg
//9A5jczAOD//wAAAAAAAAAAAFs4MwDg//8AAAAAAAAAACCgLTMA4P//AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABMAE4AAAAAALAJchYAwP//sJw3MwDg//9wnDczAOD//wIA
AAAAAAAAAAAAAAAAAAAAFj4kt9cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABQRE8AAAAAAAAAAAAAAAAAAAArAlBYYgAAAAAAAAAAAOiz
NzMA4P//6LM3MwDg//8BAAAAAAAAAMCzNzMA4P//AAAAAAEAAAAAAAAAAAAAAAQAAAAAAAAA
wPE3MwDg//8AAAAAAAAAAKCQNzMA4P//UJI3MwDg//8BAAAAAQAAAFDINzMA4P//UMg3MwDg
//+gkjczAOD//wAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAKgBAACoAQAAqAEAAAAAAAAAAAAA
AAAAAAAAAABsPRtOHgAAACQBAAADAAAAAQAAAAEAAAAIAAAAgJaYAAIBAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAQAAAAEAAAAAAAAA
zAYAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAGw9G05Nk99DkwHanMnopAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABSAEEAUwAgAFAAUABQAG8ARQAgAEwAaQBuAGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAABMAAAATAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAUMg3MwDg//8AAAAAAAAAACsABgBOU0lyXeD/kmtV1I8wXjczAOD//4B8eTMA4P//
AAAAAAAAAABQpEKWAfj//3ClNzMA4P//AAAAAAAAAAABAAYAAAAAAPiSNzMA4P//+JI3MwDg
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
AABgAAAAAAAAAENNNDcAAAAAAAAAAAAAAAAAAAAAAAAAAIMAAACDAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABDTTEwAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAACA6AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRjSFQAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABDTTUwAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAAAFAL
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNlICAAAAAA
AAAAAAAAAAAAAAAAAAAAAMsEAADLBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAE5EcGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABOdGZvAAAAAAAAAAAAAAAAAAAAAAAAAAB6AAAApQAAAEDV////////V1NLcwEAAAAAAAAA
AAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdmcG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABGeEwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
RmlzYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5EdmIAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABORGNvFwAAABIAAAAAAAAAgA0AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAS1JDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5E
bW8HAAAAAQAAAAAAAABAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAABBZmR0AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAgAAAED/////////T2JTYwAAAAAAAAAAAAAAAAAAAAAAAAAAqQQAAIsE
AAAwHgAAAAAAAFdtaUkAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAABVbFBQ
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVWxDQwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAERjZGQDAAAACgAAAAAAAADQ/f///////wAAAAAAAAAA
AAAAAAAAAABScXJ2AAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAAAAAAAAAAAASXB3aQEA
AAAJAAAAAAAAAID+////////AAAAAAAAAAAAAAAAAAAAAFVsS0MAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABJUHNpBQAAAA8AAAAAAAAAQPz///////8AAAAAAAAAAAAA
AAAAAAAATkRkYgAAAAAQAAAAAAAAACDy////////AAAAAAAAAAAAAAAAAAAAAE5EZmIHAAAA
BQAAAAAAAABABwAAAAAAAAAAAAAAAAAAAAAAAAAAAABVbENQAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAVWxBUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAE50VG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUREl5AgAAAAIA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAE50RlUAAAAAAAAAAAAAAAAAAAAAAAAAADQFAACsBAAAgHUAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZvU2IAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFdHdTBAAAAAIAAAAAAAAAYAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEVW
VEMBAAAAEAAAAAAAAABw+f///////wAAAAAAAAAAAAAAAAAAAABDbmdihAAAAHcAAAAAAAAA
gAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVJGVAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAACIA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUeHRz
AQAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFduZiAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAcAAAA
4EsAAAAAAABQbnBaAAAAAAAAAAAAAAAAAAAAAAAAAADNAAAAzwAAAID/////////AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFR4ZnMAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAsP7///////9TZUZTAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAATmJ0WBQAAAAHAAAAAAAAAJAEAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAE5CU3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGbG1DAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVHhscwAAAAAAAAAAAAAAAAAAAAAAAAAA
AQAAAAAAAAAwAAAAAAAAAFR4aXMAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAUAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWxlRAoAAAALAAAA
AAAAALD9////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Tk1SbQEAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAASXJiTAEAAAAAAAAAAAAAAJAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENN
aHAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAA4AAAAAAAAABQbnBNAAAAAAAAAAAAAAAA
AAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVG1UeAQAAAADAAAAAAAAAGAD
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZPQ1gMAAAACwAAAAAAAAAwAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAATHVhZgAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAIAAAAwFQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAATVNlZwAAAAAAAAAAAAAAAAAAAAAAAAAA2gAAADMAAAAgXwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMECUERPAO3iFZFrVdSPWABTADAAMAAwADEAIABYAEUA
TgBCAFUAUwAgAFYAQgBEADoAIABTAFUAUwBQAEUATgBEACAAdgAxACAAUwBIAEEAUgBFAEQA
XwBJAE4ARgBPACAAdgAyACAARQBWAFQAQwBIAE4AIAB2ADEAIABEAEUAQgBVAEcAIAB2ADEA
IABTAFQATwBSAEUAIAB2ADEAIABSAEEATgBHAEUAXwBTAEUAVAAgAHYAMQAgAEMAQQBDAEgA
RQAgAHYAMQAgAEcATgBUAFQAQQBCACAAdgAxACAARQBNAFUATABBAFQARQBEACAAdgAxACAA
VQBOAFAATABVAEcAIAB2ADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQAEAklvICAAAAAAAAAAAFwARAByAGkA
dgBlAHIAXABzAHQAbwByAGEAaABjAGkAAAAAAAAAAABhAHMAaQD//wQABQJUSFJFAAAAAAAA
AABMnU+WAfj///DL3TAA4P//AAAGAAAAAADAad0wAOD//8Bp3TAA4P//AAAAAAIAAACAaN0w
AOD//wAAAAAAAAAABQAFAlRIUkUAAAAAAAAAAGCPT5YB+P//UOjdMADg//8AAAYAAAAAAIBx
3TAA4P//gHHdMADg//8AAAAAAgAAAEBw3TAA4P//AAAAAAAAAAAFADECRGV2aQAAAAAAAAAA
AL0BFgDA//8QABAAAAAAAAD6FBYAwP//AAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAaAAISAAAAAAEAAAAAAAAAAAAAAAAAAAADAFACAAAAAGCZ3zAA4P//UM3dMADg//+wsS0z
AOD//wAAAAAAAAAAAAAAAAAAAABAEAAAgAEAAAAAAAAAAAAAoJ7dMADg//8iAAAAAQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAoAAAAAAD4nd0wAOD///id3TAA4P//AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA6HhYAwP//AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAABAAAAAACgn90wAOD//wAAAAAAAAAAAAAAAAAAAABQnd0wAOD//1BETwAHAAAA
BAAAAAEAAAABAAAAVklGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
iD/dMADg//+Iz90wAOD//1Do3TAA4P//DQAAAAAAAABQnd0wAOD//xAAAAAAAAAAAAAAAAAA
AAAIAAAAAAAAACB53TAA4P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVFJHRER1bXBCbG9iEAAAAIAlAPAgAAAAQFp1ZUbx
6kOMkTa4Vyj9NQAAAAAAAAAAAAAAACAAAAD9Mwonpj0NRrqJPBuuIeOb2A8AAAAAAAAAAAAA
CwAAAAAAAABYAAAAEgAAAJgCAAATAAAAmAoAABQAAADYDwAAFQAAANgPAAAXAAAA2A8AABgA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgCAAAAAAAAgPCdMADg//9hgxCZ
Afj//wAAAAAAAAAAUPZHGADA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAQAAAAAAAIDw
nTAA4P//YYMQmQH4//8AAAAAAAAAAHDYRxgAwP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2QEAAAAAAACA8J0wAOD//2GDEJkB+P//AAAAAAAAAACg1kcYAMD//wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAMcBAAAAAAAAgPCdMADg//9hgxCZAfj//wAAAAAAAAAAoB1HGADA//8AAAAA
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
0cz/HwAAIA4uMwDg//8HBAAAABAAkDMA4P//AAAATFI8ADkAAAAACg8AxAy12VLF4a8/kHxN
+WZ8w9jv0cz/HwAAIA4uMwDg//8HBAAAAACF3TMA4P//AAAATFI8ADoAAAA8Cg8AxAy12VLF
4a8/kHxN+WZ8w9jv0cz/HwAAIA4uMwDg//8HBAAAAACF3TMA4P//AAAATFI8ADsAAAB4Cg8A
xAy12VLF4a8/kHxN+WZ8w9jv0cz/HwAAIA4uMwDg//8HBAAAAOB02jMA4P//AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAB1EgtpCccFLuEQIB8Wktn/cDwAA
AAAAAAQAAABEU1RQYAAAANwPAAAAAAAAc3RvcnBvcnQuc3lzAAAAAAEAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
/wEAAAARFQARABAAAEAAQADwHwkAAQAHAABESU1NIDAAABMPABMAAAAA/79/AAAQAQAAFBMA
FAAAAAD/v38AABEAEwEAAAAAIAsAIAAAAAAAAAAAAH8EAH8AAAAAAAAAAAAgAAAAicN6bBND
3EefNKiACg+1bDgCAAAAAAAAAAAAAAoAAAB+AE0ASAB6AAAABAAAAAQAAABkCgAALAAAAEMA
bwBtAHAAbwBuAGUAbgB0ACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAAAAwAAABAAAAAAAAAA
AAAAAAAAAAAAAAAAJgAAAEMAbwBuAGYAaQBnAHUAcgBhAHQAaQBvAG4AIABEAGEAdABhAAAA
CQAAABAAAAD//////////wAAAAAAAAAAFgAAAEkAZABlAG4AdABpAGYAaQBlAHIAAAABAAAA
SgAAAEkAbgB0AGUAbAA2ADQAIABGAGEAbQBpAGwAeQAgADYAIABNAG8AZABlAGwAIAAzADAA
IABTAHQAZQBwAHAAaQBuAGcAIAA1AAAAKAAAAFAAcgBvAGMAZQBzAHMAbwByAE4AYQBtAGUA
UwB0AHIAaQBuAGcAAAABAAAAYAAAAEkAbgB0AGUAbAAoAFIAKQAgAFgAZQBvAG4AKABSACkA
IABDAFAAVQAgACAAIAAgACAAIAAgACAAIAAgACAAWAAzADQANQAwACAAIABAACAAMgAuADYA
NwBHAEgAegAAABwAAABVAHAAZABhAHQAZQAgAFMAdABhAHQAdQBzAAAABAAAAAQAAAAHAAAA
IgAAAFYAZQBuAGQAbwByAEkAZABlAG4AdABpAGYAaQBlAHIAAAABAAAAGgAAAEcAZQBuAHUA
aQBuAGUASQBuAHQAZQBsAAAADAAAAE0AUwBSADgAQgAAAAsAAAAIAAAAAAAAAAcAAAAgAAAA
b8A90I7YxUS6KvrgNRctGZgDAAAAAAAAAAAAAAAAAAAAAAAACwAAAEdlbnVudGVsaW5lSQsA
AABHZW51bnRlbGluZUkAAAAAAQAAAOUGAQAACCAEASK4gf/7ixflBgEAAAggBAEiuIH/+4sX
AAAAAAIAAAABWgNV5LLwAAAAAAAsIcoJAVoDVeSy8AAAAAAALCHKCQAAAAAEAAAAAAAABAAA
AAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAKAAAAAAAAB0QAAAAAAAAAAAAAAAAAAAdEAAAAAAAAAAAAAAAAAAAA
CwAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAQAAABcAAAAAAAAAAAAEAAAA
AAAAAAAAAAAAAAAABAAAAAAAAAAAAAEAAACLAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAHAAAA
AAAAAAAAAAABAAAAgAAAwAENAAAAAAAAAAAAAAAAAAABDQAAAAAAAAAAAAAAAAAAAAAAAAAA
AIAIAACAAAAAAAAAAAAAAAAACAAAgAAAAAAAAAAAAAAAAAAAAAABAACAAAAAAAAAAAABAAAA
AAgQKAAAAAAAAAAAAQAAAAAIECgAAAAAAgAAgEludGVsKFIpIFhlb24oUilJbnRlbChSKSBY
ZW9uKFIpAAAAAAMAAIAgQ1BVICAgICAgICAgICBYIENQVSAgICAgICAgICAgWAAAAAAEAACA
MzQ1MCAgQCAyLjY3R0h6ADM0NTAgIEAgMi42N0dIegAAAAAABQAAgAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAIAAAAAAAAAAAEBgAAEAAAAAAAAAAAAAAABAYAAB
AAAAAAAAAAAHAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAgCQw
AAAAAAAAAAAAAAAAAAAkMAAAAAAAAAAAAAAAAAAAIAAAANJAO+igsEJIq+pxyeNGPdFAAAAA
AAAAAAAAAABGQUNQ9AAAAAR+WGVuAAAAQVBJQ2AEAAACrlhlbgAAAFdBRVQoAAAAAVZYZW4A
AABIUEVUOAAAAAHSWGVuAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
--------------000504070002000802030603
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--------------000504070002000802030603--


From win-pv-devel-bounces@lists.xenproject.org Thu Jan 22 13:09:19 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 22 Jan 2015 13:09:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEHVf-0001IV-9v; Thu, 22 Jan 2015 13:09:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YEHVe-0001IN-5L
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 13:09:18 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
	11/99-06207-D76F0C45; Thu, 22 Jan 2015 13:09:17 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1421932156!22252191!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=SUBJECT_RANDOMQ,
	UPPERCASE_25_50,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4365 invoked from network); 22 Jan 2015 13:09:16 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 13:09:16 -0000
X-IronPort-AV: E=Sophos;i="5.09,448,1418083200"; d="scan'208";a="29118655"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] [WHQL] NDIS6.0 1c_64bitOIDs /
	1c_IOCTLCoverage
Thread-Index: AQHQNAQrWLQUzDNqIEOOB9ogco3FBZzMIRNw
Date: Thu, 22 Jan 2015 13:09:15 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D3C7A@AMSPEX01CL01.citrite.net>
References: <1421684531-11836-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1421684531-11836-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] [WHQL] NDIS6.0 1c_64bitOIDs
	/	1c_IOCTLCoverage
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 19 January 2015 16:22
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH] [WHQL] NDIS6.0 1c_64bitOIDs /
> 1c_IOCTLCoverage
> 
> Some QUERY OIDs should return truncated results when 4 byte buffers are
> passed for 8 byte values. Avoid corner cases where the OID would succeed,
> but not copy data due to wrong buffer sizes.
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

> ---
>  src/xennet/adapter.c | 176 +++++++++++++++++++++++++++++++++-------
> -----------
>  1 file changed, 114 insertions(+), 62 deletions(-)
> 
> diff --git a/src/xennet/adapter.c b/src/xennet/adapter.c
> index 37b9c37..b094519 100644
> --- a/src/xennet/adapter.c
> +++ b/src/xennet/adapter.c
> @@ -554,11 +554,16 @@ invalid_parameter:
>  static NDIS_STATUS
>  AdapterQueryGeneralStatistics(
>      IN  PXENNET_ADAPTER     Adapter,
> -    IN  PNDIS_STATISTICS_INFO   Info
> +    IN  PNDIS_STATISTICS_INFO   Info,
> +    IN  ULONG               BufferLength,
> +    IN OUT PULONG           BytesWritten
>      )
>  {
>      ULONGLONG   Value;
> 
> +    if (BufferLength < sizeof(NDIS_STATISTICS_INFO))
> +        goto fail1;
> +
>      RtlZeroMemory(Info, sizeof(NDIS_STATISTICS_INFO));
>      Info->Header.Revision = NDIS_OBJECT_REVISION_1;
>      Info->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
> @@ -716,7 +721,12 @@ AdapterQueryGeneralStatistics(
>      Info->SupportedStatistics |=
> NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS;
>      Info->ifOutDiscards = 0;
> 
> +    *BytesWritten = sizeof(NDIS_STATISTICS_INFO);
>      return NDIS_STATUS_SUCCESS;
> +
> +fail1:
> +    *BytesWritten = 0;
> +    return NDIS_STATUS_BUFFER_TOO_SHORT;
>  }
> 
>  static NDIS_STATUS
> @@ -724,7 +734,8 @@ AdapterQueryMulticastList(
>      IN  PXENNET_ADAPTER     Adapter,
>      IN  PVOID               Buffer,
>      IN  ULONG               BufferLength,
> -    IN OUT PULONG           BytesNeeded
> +    IN OUT PULONG           BytesNeeded,
> +    IN OUT PULONG           BytesWritten
>      )
>  {
>      ULONG       Count;
> @@ -749,10 +760,12 @@ AdapterQueryMulticastList(
>      if (!NT_SUCCESS(status))
>          goto fail2;
> 
> +    *BytesWritten = Count * ETHERNET_ADDRESS_LENGTH;
>      return NDIS_STATUS_SUCCESS;
> 
>  fail2:
>  fail1:
> +    *BytesWritten = 0;
>      return ndisStatus;
>  }
> 
> @@ -775,7 +788,7 @@ AdapterSetMulticastAddresses(
>      return NDIS_STATUS_SUCCESS;
>  }
> 
> -static NDIS_STATUS
> +static FORCEINLINE VOID
>  AdapterGetXmitOk(
>      IN  PXENNET_ADAPTER     Adapter,
>      OUT PULONGLONG          Buffer
> @@ -803,11 +816,9 @@ AdapterGetXmitOk(
>                  &Value);
> 
>      *Buffer += (ULONG)Value;
> -
> -    return NDIS_STATUS_SUCCESS;
>  }
> 
> -static NDIS_STATUS
> +static FORCEINLINE VOID
>  AdapterGetRcvOk(
>      IN  PXENNET_ADAPTER     Adapter,
>      OUT PULONGLONG          Buffer
> @@ -835,8 +846,6 @@ AdapterGetRcvOk(
>                  &Value);
> 
>      *Buffer += (ULONG)Value;
> -
> -    return NDIS_STATUS_SUCCESS;
>  }
> 
>  static NDIS_STATUS
> @@ -892,11 +901,16 @@ AdapterGetRcvError(
>  static FORCEINLINE NDIS_STATUS
>  AdapterInterruptModeration(
>      IN  PXENNET_ADAPTER     Adapter,
> -    IN  PNDIS_INTERRUPT_MODERATION_PARAMETERS   Params
> +    IN  PNDIS_INTERRUPT_MODERATION_PARAMETERS   Params,
> +    IN  ULONG               BufferLength,
> +    IN OUT PULONG           BytesWritten
>      )
>  {
>      UNREFERENCED_PARAMETER(Adapter);
> 
> +    if (BufferLength <
> sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS))
> +        goto fail1;
> +
>      Params->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
>      Params->Header.Revision =
> NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1;
>      Params->Header.Size =
> sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
> @@ -904,7 +918,12 @@ AdapterInterruptModeration(
>      Params->Flags = 0;
>      Params->InterruptModeration = NdisInterruptModerationNotSupported;
> 
> +    *BytesWritten = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
>      return NDIS_STATUS_SUCCESS;
> +
> +fail1:
> +    *BytesWritten = 0;
> +    return NDIS_STATUS_BUFFER_TOO_SHORT;
>  }
> 
>  NDIS_HANDLE
> @@ -1163,6 +1182,28 @@ __SetUlong(
>      }
>  }
> 
> +static FORCEINLINE NDIS_STATUS
> +__SetUlong64(
> +    IN  PVOID               Buffer,
> +    IN  ULONG               BufferLength,
> +    IN  ULONGLONG           Source,
> +    IN OUT PULONG           SourceLength
> +    )
> +{
> +    if (BufferLength >= sizeof(ULONGLONG)) {
> +        *(PULONGLONG)Buffer = Source;
> +        *SourceLength = sizeof(ULONGLONG);
> +        return NDIS_STATUS_SUCCESS;
> +    } else if (BufferLength == sizeof(ULONG)) {
> +        *(PULONG)Buffer = (ULONG)Source;
> +        *SourceLength = sizeof(ULONG);
> +        return NDIS_STATUS_BUFFER_TOO_SHORT;
> +    } else {
> +        *SourceLength = 0;
> +        return NDIS_STATUS_BUFFER_TOO_SHORT;
> +    }
> +}
> +
>  NDIS_STATUS
>  AdapterQueryInformation(
>      IN  PXENNET_ADAPTER     Adapter,
> @@ -1175,6 +1216,7 @@ AdapterQueryInformation(
>      ULONG           BytesWritten;
>      ULONG           Value32;
>      ULONGLONG       Value64;
> +    ETHERNET_ADDRESS    EthernetAddress;
>      NDIS_STATUS     ndisStatus;
> 
>      Buffer = Request->DATA.QUERY_INFORMATION.InformationBuffer;
> @@ -1193,6 +1235,7 @@ AdapterQueryInformation(
> 
>      case OID_PNP_QUERY_POWER:
>          BytesNeeded = sizeof(NDIS_DEVICE_POWER_STATE);
> +        BytesWritten = 0;
>          // do nothing
>          break;
> 
> @@ -1271,41 +1314,47 @@ AdapterQueryInformation(
> 
>      case OID_GEN_STATISTICS:
>          BytesNeeded = BytesWritten = sizeof(NDIS_STATISTICS_INFO);
> -        if (BufferLength >= BytesNeeded)
> -            ndisStatus = AdapterQueryGeneralStatistics(Adapter,
> -                                                       (PNDIS_STATISTICS_INFO)Buffer);
> +        ndisStatus = AdapterQueryGeneralStatistics(Adapter,
> +                                                   (PNDIS_STATISTICS_INFO)Buffer,
> +                                                   BufferLength,
> +                                                   &BytesWritten);
>          break;
> 
>      case OID_802_3_MULTICAST_LIST:
>          ndisStatus = AdapterQueryMulticastList(Adapter,
>                                                 Buffer,
>                                                 BufferLength,
> -                                               &BytesNeeded);
> -        BytesWritten = BytesNeeded;
> +                                               &BytesNeeded,
> +                                               &BytesWritten);
>          break;
> 
>      case OID_802_3_PERMANENT_ADDRESS:
> +        XENVIF_VIF(MacQueryPermanentAddress,
> +                    &Adapter->VifInterface,
> +                    &EthernetAddress);
>          BytesNeeded = BytesWritten = sizeof(ETHERNET_ADDRESS);
> -        if (BufferLength >= BytesNeeded) {
> -            XENVIF_VIF(MacQueryPermanentAddress,
> -                       &Adapter->VifInterface,
> -                       (PETHERNET_ADDRESS)Buffer);
> -        }
> +        ndisStatus = __CopyBuffer(Buffer,
> +                                  BufferLength,
> +                                  &EthernetAddress,
> +                                  &BytesWritten);
>          break;
> 
>      case OID_802_3_CURRENT_ADDRESS:
> +        XENVIF_VIF(MacQueryCurrentAddress,
> +                    &Adapter->VifInterface,
> +                    &EthernetAddress);
>          BytesNeeded = BytesWritten = sizeof(ETHERNET_ADDRESS);
> -        if (BufferLength >= BytesNeeded) {
> -            XENVIF_VIF(MacQueryCurrentAddress,
> -                       &Adapter->VifInterface,
> -                       (PETHERNET_ADDRESS)Buffer);
> -        }
> +        ndisStatus = __CopyBuffer(Buffer,
> +                                  BufferLength,
> +                                  &EthernetAddress,
> +                                  &BytesWritten);
>          break;
> 
>      case OID_GEN_MAXIMUM_FRAME_SIZE:
>          ndisStatus = __SetUlong(Buffer,
>                                  BufferLength,
> -                                Adapter->MaximumFrameSize -
> sizeof(ETHERNET_TAGGED_HEADER),
> +                                Adapter->MaximumFrameSize -
> +                                    sizeof(ETHERNET_TAGGED_HEADER),
>                                  &BytesWritten);
>          break;
> 
> @@ -1345,13 +1394,15 @@ AdapterQueryInformation(
>          break;
> 
>      case OID_GEN_MEDIA_CONNECT_STATUS:
> -        if (BufferLength >= sizeof(ULONG)) {
> -            XENVIF_VIF(MacQueryState,
> -                       &Adapter->VifInterface,
> -                       (PNET_IF_MEDIA_CONNECT_STATE)Buffer,
> -                       NULL,
> -                       NULL);
> -        }
> +        XENVIF_VIF(MacQueryState,
> +                    &Adapter->VifInterface,
> +                    (PNET_IF_MEDIA_CONNECT_STATE)&Value32,
> +                    NULL,
> +                    NULL);
> +        ndisStatus = __SetUlong(Buffer,
> +                                BufferLength,
> +                                Value32,
> +                                &BytesWritten);
>          break;
> 
>      case OID_GEN_MAXIMUM_SEND_PACKETS:
> @@ -1362,40 +1413,43 @@ AdapterQueryInformation(
>          break;
> 
>      case OID_GEN_CURRENT_PACKET_FILTER:
> -        if (BufferLength >= sizeof(ULONG)) {
> -            AdapterGetPacketFilter(Adapter,
> -                                   (PULONG)Buffer);
> -        }
> +        AdapterGetPacketFilter(Adapter, &Value32);
> +        ndisStatus = __SetUlong(Buffer,
> +                                BufferLength,
> +                                Value32,
> +                                &BytesWritten);
>          break;
> 
>      case OID_GEN_XMIT_OK:
> -        BytesNeeded = BytesWritten = sizeof(ULONGLONG);
> -        if (BufferLength >= BytesNeeded) {
> -            ndisStatus = AdapterGetXmitOk(Adapter,
> -                                          (PULONGLONG)Buffer);
> -        }
> +        AdapterGetXmitOk(Adapter, &Value64);
> +        ndisStatus = __SetUlong64(Buffer,
> +                                  BufferLength,
> +                                  Value64,
> +                                  &BytesWritten);
>          break;
> 
>      case OID_GEN_RCV_OK:
> -        BytesNeeded = BytesWritten = sizeof(ULONGLONG);
> -        if (BufferLength >= BytesNeeded) {
> -            ndisStatus = AdapterGetRcvOk(Adapter,
> -                                          (PULONGLONG)Buffer);
> -        }
> +        AdapterGetRcvOk(Adapter, &Value64);
> +        ndisStatus = __SetUlong64(Buffer,
> +                                  BufferLength,
> +                                  Value64,
> +                                  &BytesWritten);
>          break;
> 
>      case OID_GEN_XMIT_ERROR:
> -        if (BufferLength >= BytesNeeded) {
> -            ndisStatus = AdapterGetXmitError(Adapter,
> -                                             (PULONG)Buffer);
> -        }
> +        AdapterGetXmitError(Adapter, &Value32);
> +        ndisStatus = __SetUlong(Buffer,
> +                                BufferLength,
> +                                Value32,
> +                                &BytesWritten);
>          break;
> 
>      case OID_GEN_RCV_ERROR:
> -        if (BufferLength >= BytesNeeded) {
> -            ndisStatus = AdapterGetRcvError(Adapter,
> -                                            (PULONG)Buffer);
> -        }
> +        AdapterGetRcvError(Adapter, &Value32);
> +        ndisStatus = __SetUlong(Buffer,
> +                                BufferLength,
> +                                Value32,
> +                                &BytesWritten);
>          break;
> 
>      case OID_GEN_RCV_NO_BUFFER:
> @@ -1550,11 +1604,11 @@ AdapterQueryInformation(
>          break;
> 
>      case OID_GEN_INTERRUPT_MODERATION:
> -        BytesNeeded = BytesWritten =
> sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
> -        if (BufferLength >= BytesWritten) {
> -            ndisStatus = AdapterInterruptModeration(Adapter,
> -
> (PNDIS_INTERRUPT_MODERATION_PARAMETERS)Buffer);
> -        }
> +        BytesNeeded =
> sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
> +        ndisStatus = AdapterInterruptModeration(Adapter,
> +
> (PNDIS_INTERRUPT_MODERATION_PARAMETERS)Buffer,
> +                                                BufferLength,
> +                                                &BytesWritten);
>          break;
> 
>      case OID_IP4_OFFLOAD_STATS:
> @@ -1576,9 +1630,7 @@ AdapterQueryInformation(
>          break;
>      }
> 
> -    if (ndisStatus == NDIS_STATUS_SUCCESS)
> -        Request->DATA.QUERY_INFORMATION.BytesWritten = BytesWritten;
> -
> +    Request->DATA.QUERY_INFORMATION.BytesWritten = BytesWritten;
>      Request->DATA.QUERY_INFORMATION.BytesNeeded = BytesNeeded;
> 
>      return ndisStatus;
> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 22 13:09:19 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 22 Jan 2015 13:09:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEHVf-0001IV-9v; Thu, 22 Jan 2015 13:09:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YEHVe-0001IN-5L
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 13:09:18 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
	11/99-06207-D76F0C45; Thu, 22 Jan 2015 13:09:17 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1421932156!22252191!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=SUBJECT_RANDOMQ,
	UPPERCASE_25_50,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4365 invoked from network); 22 Jan 2015 13:09:16 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 13:09:16 -0000
X-IronPort-AV: E=Sophos;i="5.09,448,1418083200"; d="scan'208";a="29118655"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] [WHQL] NDIS6.0 1c_64bitOIDs /
	1c_IOCTLCoverage
Thread-Index: AQHQNAQrWLQUzDNqIEOOB9ogco3FBZzMIRNw
Date: Thu, 22 Jan 2015 13:09:15 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D3C7A@AMSPEX01CL01.citrite.net>
References: <1421684531-11836-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1421684531-11836-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] [WHQL] NDIS6.0 1c_64bitOIDs
	/	1c_IOCTLCoverage
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 19 January 2015 16:22
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH] [WHQL] NDIS6.0 1c_64bitOIDs /
> 1c_IOCTLCoverage
> 
> Some QUERY OIDs should return truncated results when 4 byte buffers are
> passed for 8 byte values. Avoid corner cases where the OID would succeed,
> but not copy data due to wrong buffer sizes.
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

> ---
>  src/xennet/adapter.c | 176 +++++++++++++++++++++++++++++++++-------
> -----------
>  1 file changed, 114 insertions(+), 62 deletions(-)
> 
> diff --git a/src/xennet/adapter.c b/src/xennet/adapter.c
> index 37b9c37..b094519 100644
> --- a/src/xennet/adapter.c
> +++ b/src/xennet/adapter.c
> @@ -554,11 +554,16 @@ invalid_parameter:
>  static NDIS_STATUS
>  AdapterQueryGeneralStatistics(
>      IN  PXENNET_ADAPTER     Adapter,
> -    IN  PNDIS_STATISTICS_INFO   Info
> +    IN  PNDIS_STATISTICS_INFO   Info,
> +    IN  ULONG               BufferLength,
> +    IN OUT PULONG           BytesWritten
>      )
>  {
>      ULONGLONG   Value;
> 
> +    if (BufferLength < sizeof(NDIS_STATISTICS_INFO))
> +        goto fail1;
> +
>      RtlZeroMemory(Info, sizeof(NDIS_STATISTICS_INFO));
>      Info->Header.Revision = NDIS_OBJECT_REVISION_1;
>      Info->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
> @@ -716,7 +721,12 @@ AdapterQueryGeneralStatistics(
>      Info->SupportedStatistics |=
> NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS;
>      Info->ifOutDiscards = 0;
> 
> +    *BytesWritten = sizeof(NDIS_STATISTICS_INFO);
>      return NDIS_STATUS_SUCCESS;
> +
> +fail1:
> +    *BytesWritten = 0;
> +    return NDIS_STATUS_BUFFER_TOO_SHORT;
>  }
> 
>  static NDIS_STATUS
> @@ -724,7 +734,8 @@ AdapterQueryMulticastList(
>      IN  PXENNET_ADAPTER     Adapter,
>      IN  PVOID               Buffer,
>      IN  ULONG               BufferLength,
> -    IN OUT PULONG           BytesNeeded
> +    IN OUT PULONG           BytesNeeded,
> +    IN OUT PULONG           BytesWritten
>      )
>  {
>      ULONG       Count;
> @@ -749,10 +760,12 @@ AdapterQueryMulticastList(
>      if (!NT_SUCCESS(status))
>          goto fail2;
> 
> +    *BytesWritten = Count * ETHERNET_ADDRESS_LENGTH;
>      return NDIS_STATUS_SUCCESS;
> 
>  fail2:
>  fail1:
> +    *BytesWritten = 0;
>      return ndisStatus;
>  }
> 
> @@ -775,7 +788,7 @@ AdapterSetMulticastAddresses(
>      return NDIS_STATUS_SUCCESS;
>  }
> 
> -static NDIS_STATUS
> +static FORCEINLINE VOID
>  AdapterGetXmitOk(
>      IN  PXENNET_ADAPTER     Adapter,
>      OUT PULONGLONG          Buffer
> @@ -803,11 +816,9 @@ AdapterGetXmitOk(
>                  &Value);
> 
>      *Buffer += (ULONG)Value;
> -
> -    return NDIS_STATUS_SUCCESS;
>  }
> 
> -static NDIS_STATUS
> +static FORCEINLINE VOID
>  AdapterGetRcvOk(
>      IN  PXENNET_ADAPTER     Adapter,
>      OUT PULONGLONG          Buffer
> @@ -835,8 +846,6 @@ AdapterGetRcvOk(
>                  &Value);
> 
>      *Buffer += (ULONG)Value;
> -
> -    return NDIS_STATUS_SUCCESS;
>  }
> 
>  static NDIS_STATUS
> @@ -892,11 +901,16 @@ AdapterGetRcvError(
>  static FORCEINLINE NDIS_STATUS
>  AdapterInterruptModeration(
>      IN  PXENNET_ADAPTER     Adapter,
> -    IN  PNDIS_INTERRUPT_MODERATION_PARAMETERS   Params
> +    IN  PNDIS_INTERRUPT_MODERATION_PARAMETERS   Params,
> +    IN  ULONG               BufferLength,
> +    IN OUT PULONG           BytesWritten
>      )
>  {
>      UNREFERENCED_PARAMETER(Adapter);
> 
> +    if (BufferLength <
> sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS))
> +        goto fail1;
> +
>      Params->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
>      Params->Header.Revision =
> NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1;
>      Params->Header.Size =
> sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
> @@ -904,7 +918,12 @@ AdapterInterruptModeration(
>      Params->Flags = 0;
>      Params->InterruptModeration = NdisInterruptModerationNotSupported;
> 
> +    *BytesWritten = sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
>      return NDIS_STATUS_SUCCESS;
> +
> +fail1:
> +    *BytesWritten = 0;
> +    return NDIS_STATUS_BUFFER_TOO_SHORT;
>  }
> 
>  NDIS_HANDLE
> @@ -1163,6 +1182,28 @@ __SetUlong(
>      }
>  }
> 
> +static FORCEINLINE NDIS_STATUS
> +__SetUlong64(
> +    IN  PVOID               Buffer,
> +    IN  ULONG               BufferLength,
> +    IN  ULONGLONG           Source,
> +    IN OUT PULONG           SourceLength
> +    )
> +{
> +    if (BufferLength >= sizeof(ULONGLONG)) {
> +        *(PULONGLONG)Buffer = Source;
> +        *SourceLength = sizeof(ULONGLONG);
> +        return NDIS_STATUS_SUCCESS;
> +    } else if (BufferLength == sizeof(ULONG)) {
> +        *(PULONG)Buffer = (ULONG)Source;
> +        *SourceLength = sizeof(ULONG);
> +        return NDIS_STATUS_BUFFER_TOO_SHORT;
> +    } else {
> +        *SourceLength = 0;
> +        return NDIS_STATUS_BUFFER_TOO_SHORT;
> +    }
> +}
> +
>  NDIS_STATUS
>  AdapterQueryInformation(
>      IN  PXENNET_ADAPTER     Adapter,
> @@ -1175,6 +1216,7 @@ AdapterQueryInformation(
>      ULONG           BytesWritten;
>      ULONG           Value32;
>      ULONGLONG       Value64;
> +    ETHERNET_ADDRESS    EthernetAddress;
>      NDIS_STATUS     ndisStatus;
> 
>      Buffer = Request->DATA.QUERY_INFORMATION.InformationBuffer;
> @@ -1193,6 +1235,7 @@ AdapterQueryInformation(
> 
>      case OID_PNP_QUERY_POWER:
>          BytesNeeded = sizeof(NDIS_DEVICE_POWER_STATE);
> +        BytesWritten = 0;
>          // do nothing
>          break;
> 
> @@ -1271,41 +1314,47 @@ AdapterQueryInformation(
> 
>      case OID_GEN_STATISTICS:
>          BytesNeeded = BytesWritten = sizeof(NDIS_STATISTICS_INFO);
> -        if (BufferLength >= BytesNeeded)
> -            ndisStatus = AdapterQueryGeneralStatistics(Adapter,
> -                                                       (PNDIS_STATISTICS_INFO)Buffer);
> +        ndisStatus = AdapterQueryGeneralStatistics(Adapter,
> +                                                   (PNDIS_STATISTICS_INFO)Buffer,
> +                                                   BufferLength,
> +                                                   &BytesWritten);
>          break;
> 
>      case OID_802_3_MULTICAST_LIST:
>          ndisStatus = AdapterQueryMulticastList(Adapter,
>                                                 Buffer,
>                                                 BufferLength,
> -                                               &BytesNeeded);
> -        BytesWritten = BytesNeeded;
> +                                               &BytesNeeded,
> +                                               &BytesWritten);
>          break;
> 
>      case OID_802_3_PERMANENT_ADDRESS:
> +        XENVIF_VIF(MacQueryPermanentAddress,
> +                    &Adapter->VifInterface,
> +                    &EthernetAddress);
>          BytesNeeded = BytesWritten = sizeof(ETHERNET_ADDRESS);
> -        if (BufferLength >= BytesNeeded) {
> -            XENVIF_VIF(MacQueryPermanentAddress,
> -                       &Adapter->VifInterface,
> -                       (PETHERNET_ADDRESS)Buffer);
> -        }
> +        ndisStatus = __CopyBuffer(Buffer,
> +                                  BufferLength,
> +                                  &EthernetAddress,
> +                                  &BytesWritten);
>          break;
> 
>      case OID_802_3_CURRENT_ADDRESS:
> +        XENVIF_VIF(MacQueryCurrentAddress,
> +                    &Adapter->VifInterface,
> +                    &EthernetAddress);
>          BytesNeeded = BytesWritten = sizeof(ETHERNET_ADDRESS);
> -        if (BufferLength >= BytesNeeded) {
> -            XENVIF_VIF(MacQueryCurrentAddress,
> -                       &Adapter->VifInterface,
> -                       (PETHERNET_ADDRESS)Buffer);
> -        }
> +        ndisStatus = __CopyBuffer(Buffer,
> +                                  BufferLength,
> +                                  &EthernetAddress,
> +                                  &BytesWritten);
>          break;
> 
>      case OID_GEN_MAXIMUM_FRAME_SIZE:
>          ndisStatus = __SetUlong(Buffer,
>                                  BufferLength,
> -                                Adapter->MaximumFrameSize -
> sizeof(ETHERNET_TAGGED_HEADER),
> +                                Adapter->MaximumFrameSize -
> +                                    sizeof(ETHERNET_TAGGED_HEADER),
>                                  &BytesWritten);
>          break;
> 
> @@ -1345,13 +1394,15 @@ AdapterQueryInformation(
>          break;
> 
>      case OID_GEN_MEDIA_CONNECT_STATUS:
> -        if (BufferLength >= sizeof(ULONG)) {
> -            XENVIF_VIF(MacQueryState,
> -                       &Adapter->VifInterface,
> -                       (PNET_IF_MEDIA_CONNECT_STATE)Buffer,
> -                       NULL,
> -                       NULL);
> -        }
> +        XENVIF_VIF(MacQueryState,
> +                    &Adapter->VifInterface,
> +                    (PNET_IF_MEDIA_CONNECT_STATE)&Value32,
> +                    NULL,
> +                    NULL);
> +        ndisStatus = __SetUlong(Buffer,
> +                                BufferLength,
> +                                Value32,
> +                                &BytesWritten);
>          break;
> 
>      case OID_GEN_MAXIMUM_SEND_PACKETS:
> @@ -1362,40 +1413,43 @@ AdapterQueryInformation(
>          break;
> 
>      case OID_GEN_CURRENT_PACKET_FILTER:
> -        if (BufferLength >= sizeof(ULONG)) {
> -            AdapterGetPacketFilter(Adapter,
> -                                   (PULONG)Buffer);
> -        }
> +        AdapterGetPacketFilter(Adapter, &Value32);
> +        ndisStatus = __SetUlong(Buffer,
> +                                BufferLength,
> +                                Value32,
> +                                &BytesWritten);
>          break;
> 
>      case OID_GEN_XMIT_OK:
> -        BytesNeeded = BytesWritten = sizeof(ULONGLONG);
> -        if (BufferLength >= BytesNeeded) {
> -            ndisStatus = AdapterGetXmitOk(Adapter,
> -                                          (PULONGLONG)Buffer);
> -        }
> +        AdapterGetXmitOk(Adapter, &Value64);
> +        ndisStatus = __SetUlong64(Buffer,
> +                                  BufferLength,
> +                                  Value64,
> +                                  &BytesWritten);
>          break;
> 
>      case OID_GEN_RCV_OK:
> -        BytesNeeded = BytesWritten = sizeof(ULONGLONG);
> -        if (BufferLength >= BytesNeeded) {
> -            ndisStatus = AdapterGetRcvOk(Adapter,
> -                                          (PULONGLONG)Buffer);
> -        }
> +        AdapterGetRcvOk(Adapter, &Value64);
> +        ndisStatus = __SetUlong64(Buffer,
> +                                  BufferLength,
> +                                  Value64,
> +                                  &BytesWritten);
>          break;
> 
>      case OID_GEN_XMIT_ERROR:
> -        if (BufferLength >= BytesNeeded) {
> -            ndisStatus = AdapterGetXmitError(Adapter,
> -                                             (PULONG)Buffer);
> -        }
> +        AdapterGetXmitError(Adapter, &Value32);
> +        ndisStatus = __SetUlong(Buffer,
> +                                BufferLength,
> +                                Value32,
> +                                &BytesWritten);
>          break;
> 
>      case OID_GEN_RCV_ERROR:
> -        if (BufferLength >= BytesNeeded) {
> -            ndisStatus = AdapterGetRcvError(Adapter,
> -                                            (PULONG)Buffer);
> -        }
> +        AdapterGetRcvError(Adapter, &Value32);
> +        ndisStatus = __SetUlong(Buffer,
> +                                BufferLength,
> +                                Value32,
> +                                &BytesWritten);
>          break;
> 
>      case OID_GEN_RCV_NO_BUFFER:
> @@ -1550,11 +1604,11 @@ AdapterQueryInformation(
>          break;
> 
>      case OID_GEN_INTERRUPT_MODERATION:
> -        BytesNeeded = BytesWritten =
> sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
> -        if (BufferLength >= BytesWritten) {
> -            ndisStatus = AdapterInterruptModeration(Adapter,
> -
> (PNDIS_INTERRUPT_MODERATION_PARAMETERS)Buffer);
> -        }
> +        BytesNeeded =
> sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);
> +        ndisStatus = AdapterInterruptModeration(Adapter,
> +
> (PNDIS_INTERRUPT_MODERATION_PARAMETERS)Buffer,
> +                                                BufferLength,
> +                                                &BytesWritten);
>          break;
> 
>      case OID_IP4_OFFLOAD_STATS:
> @@ -1576,9 +1630,7 @@ AdapterQueryInformation(
>          break;
>      }
> 
> -    if (ndisStatus == NDIS_STATUS_SUCCESS)
> -        Request->DATA.QUERY_INFORMATION.BytesWritten = BytesWritten;
> -
> +    Request->DATA.QUERY_INFORMATION.BytesWritten = BytesWritten;
>      Request->DATA.QUERY_INFORMATION.BytesNeeded = BytesNeeded;
> 
>      return ndisStatus;
> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 22 13:36:59 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 22 Jan 2015 13:36:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEHwQ-0002yI-TC; Thu, 22 Jan 2015 13:36:58 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YEHwP-0002y6-Pt
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 13:36:58 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	93/09-10078-8FCF0C45; Thu, 22 Jan 2015 13:36:56 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1421933816!19803939!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29212 invoked from network); 22 Jan 2015 13:36:56 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 13:36:56 -0000
X-IronPort-AV: E=Sophos;i="5.09,449,1418083200"; d="scan'208";a="29122770"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Use correct location when multi-queues
	are	not used.
Thread-Index: AQHQNARxZs9d5Ab/NEy5D2hKl/D7QJzMKNrQ
Date: Thu, 22 Jan 2015 13:36:55 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D3CAC@AMSPEX01CL01.citrite.net>
References: <1421684619-7480-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1421684619-7480-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Use correct location when multi-queues
 are	not used.
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 19 January 2015 16:24
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH] Use correct location when multi-queues are
> not used.
> 
> When the backend does not support multi-queues, or the frontend has
> explicitly disallowed multi-queues, the frontend needs to write
> event-channel and ring-references to the non-queued (old) locations,
> not under device/vif/<id>/queue-<index>
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

> ---
>  src/xenvif/frontend.c    | 3 ---
>  src/xenvif/receiver.c    | 9 +++++++--
>  src/xenvif/transmitter.c | 9 +++++++--
>  3 files changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
> index d2643fc..12b6287 100644
> --- a/src/xenvif/frontend.c
> +++ b/src/xenvif/frontend.c
> @@ -237,9 +237,6 @@ FrontendFormatPath(
>      PCHAR                   Path;
>      NTSTATUS                status;
> 
> -    if (__FrontendGetQueueCount(Frontend) == 1)
> -        return __FrontendGetPath(Frontend);
> -
>      Length = (ULONG)(strlen(__FrontendGetPath(Frontend)) +
>                       strlen("/queue-00") +
>                       1) * sizeof (CHAR);
> diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
> index 8856bca..a53a03f 100644
> --- a/src/xenvif/receiver.c
> +++ b/src/xenvif/receiver.c
> @@ -2291,15 +2291,20 @@ __ReceiverRingStoreWrite(
>      PXENVIF_RECEIVER                Receiver;
>      PXENVIF_FRONTEND                Frontend;
>      ULONG                           Port;
> +    PCHAR                           Path;
>      NTSTATUS                        status;
> 
>      Receiver = Ring->Receiver;
>      Frontend = Receiver->Frontend;
> 
> +    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
> +                    FrontendGetPath(Frontend) :
> +                    Ring->Path;
> +
>      status = XENBUS_STORE(Printf,
>                            &Receiver->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            "rx-ring-ref",
>                            "%u",
>                            GranterGetReference(FrontendGetGranter(Frontend),
> @@ -2315,7 +2320,7 @@ __ReceiverRingStoreWrite(
>      status = XENBUS_STORE(Printf,
>                            &Receiver->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            Receiver->Split ? "event-channel-rx" : "event-channel",
>                            "%u",
>                            Port);
> diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
> index 24fd6a5..aa55f1c 100644
> --- a/src/xenvif/transmitter.c
> +++ b/src/xenvif/transmitter.c
> @@ -3127,15 +3127,20 @@ __TransmitterRingStoreWrite(
>      PXENVIF_TRANSMITTER             Transmitter;
>      PXENVIF_FRONTEND                Frontend;
>      ULONG                           Port;
> +    PCHAR                           Path;
>      NTSTATUS                        status;
> 
>      Transmitter = Ring->Transmitter;
>      Frontend = Transmitter->Frontend;
> 
> +    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
> +                    FrontendGetPath(Frontend) :
> +                    Ring->Path;
> +
>      status = XENBUS_STORE(Printf,
>                            &Transmitter->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            "tx-ring-ref",
>                            "%u",
>                            GranterGetReference(FrontendGetGranter(Frontend),
> @@ -3154,7 +3159,7 @@ __TransmitterRingStoreWrite(
>      status = XENBUS_STORE(Printf,
>                            &Transmitter->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            "event-channel-tx",
>                            "%u",
>                            Port);
> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 22 13:36:59 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 22 Jan 2015 13:36:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEHwQ-0002yI-TC; Thu, 22 Jan 2015 13:36:58 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YEHwP-0002y6-Pt
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 13:36:58 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	93/09-10078-8FCF0C45; Thu, 22 Jan 2015 13:36:56 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1421933816!19803939!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29212 invoked from network); 22 Jan 2015 13:36:56 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 13:36:56 -0000
X-IronPort-AV: E=Sophos;i="5.09,449,1418083200"; d="scan'208";a="29122770"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Use correct location when multi-queues
	are	not used.
Thread-Index: AQHQNARxZs9d5Ab/NEy5D2hKl/D7QJzMKNrQ
Date: Thu, 22 Jan 2015 13:36:55 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D3CAC@AMSPEX01CL01.citrite.net>
References: <1421684619-7480-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1421684619-7480-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Use correct location when multi-queues
 are	not used.
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Owen Smith
> Sent: 19 January 2015 16:24
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH] Use correct location when multi-queues are
> not used.
> 
> When the backend does not support multi-queues, or the frontend has
> explicitly disallowed multi-queues, the frontend needs to write
> event-channel and ring-references to the non-queued (old) locations,
> not under device/vif/<id>/queue-<index>
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

> ---
>  src/xenvif/frontend.c    | 3 ---
>  src/xenvif/receiver.c    | 9 +++++++--
>  src/xenvif/transmitter.c | 9 +++++++--
>  3 files changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
> index d2643fc..12b6287 100644
> --- a/src/xenvif/frontend.c
> +++ b/src/xenvif/frontend.c
> @@ -237,9 +237,6 @@ FrontendFormatPath(
>      PCHAR                   Path;
>      NTSTATUS                status;
> 
> -    if (__FrontendGetQueueCount(Frontend) == 1)
> -        return __FrontendGetPath(Frontend);
> -
>      Length = (ULONG)(strlen(__FrontendGetPath(Frontend)) +
>                       strlen("/queue-00") +
>                       1) * sizeof (CHAR);
> diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
> index 8856bca..a53a03f 100644
> --- a/src/xenvif/receiver.c
> +++ b/src/xenvif/receiver.c
> @@ -2291,15 +2291,20 @@ __ReceiverRingStoreWrite(
>      PXENVIF_RECEIVER                Receiver;
>      PXENVIF_FRONTEND                Frontend;
>      ULONG                           Port;
> +    PCHAR                           Path;
>      NTSTATUS                        status;
> 
>      Receiver = Ring->Receiver;
>      Frontend = Receiver->Frontend;
> 
> +    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
> +                    FrontendGetPath(Frontend) :
> +                    Ring->Path;
> +
>      status = XENBUS_STORE(Printf,
>                            &Receiver->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            "rx-ring-ref",
>                            "%u",
>                            GranterGetReference(FrontendGetGranter(Frontend),
> @@ -2315,7 +2320,7 @@ __ReceiverRingStoreWrite(
>      status = XENBUS_STORE(Printf,
>                            &Receiver->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            Receiver->Split ? "event-channel-rx" : "event-channel",
>                            "%u",
>                            Port);
> diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
> index 24fd6a5..aa55f1c 100644
> --- a/src/xenvif/transmitter.c
> +++ b/src/xenvif/transmitter.c
> @@ -3127,15 +3127,20 @@ __TransmitterRingStoreWrite(
>      PXENVIF_TRANSMITTER             Transmitter;
>      PXENVIF_FRONTEND                Frontend;
>      ULONG                           Port;
> +    PCHAR                           Path;
>      NTSTATUS                        status;
> 
>      Transmitter = Ring->Transmitter;
>      Frontend = Transmitter->Frontend;
> 
> +    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
> +                    FrontendGetPath(Frontend) :
> +                    Ring->Path;
> +
>      status = XENBUS_STORE(Printf,
>                            &Transmitter->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            "tx-ring-ref",
>                            "%u",
>                            GranterGetReference(FrontendGetGranter(Frontend),
> @@ -3154,7 +3159,7 @@ __TransmitterRingStoreWrite(
>      status = XENBUS_STORE(Printf,
>                            &Transmitter->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            "event-channel-tx",
>                            "%u",
>                            Port);
> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 22 15:00:52 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 22 Jan 2015 15:00:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEJFc-0002zy-C3; Thu, 22 Jan 2015 15:00:52 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YEJFa-0002zl-Rr
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 15:00:50 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	6F/76-18244-2A011C45; Thu, 22 Jan 2015 15:00:50 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1421938848!17662379!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13588 invoked from network); 22 Jan 2015 15:00:49 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 15:00:49 -0000
X-IronPort-AV: E=Sophos;i="5.09,449,1418083200"; d="scan'208";a="29136656"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQNiuPOf//2FFmvU+kIeIfOxgn0pzMO9vw
Date: Thu, 22 Jan 2015 15:00:47 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz> <54C0CC5F.8050106@m2r.biz>
In-Reply-To: <54C0CC5F.8050106@m2r.biz>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
	after	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> Sent: 22 January 2015 10:10
> To: win-pv-devel@lists.xenproject.org
> Cc: Paul Durrant
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> > Hi, I installed winpv driver build of 15 january on Windows server
> > 2012 R2 standard 64 bit and have problem after save/restore.
> > xl save/restore didn't show any errors, trying to connected with rdp I
> > was unable and with spice I saw screen with data and time (time update
> > after restore) but doing ctrl+alt+canc it changed something in screen
> > only after 5-10 minutes and still without showing login field.
> >
> > Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
> > backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
> > xen build.
> > DomU xl cfg:
> >> name='w2012r2-01'
> >> builder="hvm"
> >> memory=8192
> >> vcpus=4
> >> acpi_s3=0
> >> acpi_s4=0
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> 18:2a:f2,script=vif-openvswitch']
> >>
> >> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >> disk=['/mnt/vm/disks/w2012r2-
> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>
> >> boot='dc'
> >> device_model_version="qemu-xen"
> >> viridian=1
> >> vnc=0
> >> keymap="it"
> >> on_crash="destroy"
> >> vga="stdvga"
> >> spice=1
> >> spicehost='0.0.0.0'
> >> spiceport=6000
> >> spicepasswd="test"
> >> spicevdagent=1
> >> spice_clipboard_sharing=0
> >> spiceusbredirection=4
> >> soundhw="hda"
> >> localtime=1
> >
> > I added in attachments qemu logs (before and after save/restore) with
> > xen trace enabled.
> >
> > If you need more informations tests tell me and I'll post them.
> >
> > I have also another small question:
> > is ms_vm_genid needed for this case? for what I understand is only for
> > active directory controller and this it isn't.
> >
> > Thanks for any reply and sorry for my bad english.
> >
> >
> 
> I also tried to uninstall the pv drivers from control panel but windows
> crash, minidump in attachments.

I'm re-working the FIFO event channel code at the moment so I'll run a quick suspend/resume test when I'm done.

  Paul

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 22 15:00:52 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 22 Jan 2015 15:00:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEJFc-0002zy-C3; Thu, 22 Jan 2015 15:00:52 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YEJFa-0002zl-Rr
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 15:00:50 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	6F/76-18244-2A011C45; Thu, 22 Jan 2015 15:00:50 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1421938848!17662379!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13588 invoked from network); 22 Jan 2015 15:00:49 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 15:00:49 -0000
X-IronPort-AV: E=Sophos;i="5.09,449,1418083200"; d="scan'208";a="29136656"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQNiuPOf//2FFmvU+kIeIfOxgn0pzMO9vw
Date: Thu, 22 Jan 2015 15:00:47 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz> <54C0CC5F.8050106@m2r.biz>
In-Reply-To: <54C0CC5F.8050106@m2r.biz>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
	after	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> Sent: 22 January 2015 10:10
> To: win-pv-devel@lists.xenproject.org
> Cc: Paul Durrant
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> > Hi, I installed winpv driver build of 15 january on Windows server
> > 2012 R2 standard 64 bit and have problem after save/restore.
> > xl save/restore didn't show any errors, trying to connected with rdp I
> > was unable and with spice I saw screen with data and time (time update
> > after restore) but doing ctrl+alt+canc it changed something in screen
> > only after 5-10 minutes and still without showing login field.
> >
> > Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
> > backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
> > xen build.
> > DomU xl cfg:
> >> name='w2012r2-01'
> >> builder="hvm"
> >> memory=8192
> >> vcpus=4
> >> acpi_s3=0
> >> acpi_s4=0
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> 18:2a:f2,script=vif-openvswitch']
> >>
> >> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >> disk=['/mnt/vm/disks/w2012r2-
> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>
> >> boot='dc'
> >> device_model_version="qemu-xen"
> >> viridian=1
> >> vnc=0
> >> keymap="it"
> >> on_crash="destroy"
> >> vga="stdvga"
> >> spice=1
> >> spicehost='0.0.0.0'
> >> spiceport=6000
> >> spicepasswd="test"
> >> spicevdagent=1
> >> spice_clipboard_sharing=0
> >> spiceusbredirection=4
> >> soundhw="hda"
> >> localtime=1
> >
> > I added in attachments qemu logs (before and after save/restore) with
> > xen trace enabled.
> >
> > If you need more informations tests tell me and I'll post them.
> >
> > I have also another small question:
> > is ms_vm_genid needed for this case? for what I understand is only for
> > active directory controller and this it isn't.
> >
> > Thanks for any reply and sorry for my bad english.
> >
> >
> 
> I also tried to uninstall the pv drivers from control panel but windows
> crash, minidump in attachments.

I'm re-working the FIFO event channel code at the moment so I'll run a quick suspend/resume test when I'm done.

  Paul

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 23 11:54:55 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jan 2015 11:54:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEcpD-0005nU-4o; Fri, 23 Jan 2015 11:54:55 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <konstantinos.ladopoulos@citrix.com>)
	id 1YEJVI-0005FB-FG
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 15:17:04 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	EB/81-31115-F6411C45; Thu, 22 Jan 2015 15:17:03 +0000
X-Env-Sender: konstantinos.ladopoulos@citrix.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1421939821!22273107!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30353 invoked from network); 22 Jan 2015 15:17:02 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 15:17:02 -0000
X-IronPort-AV: E=Sophos;i="5.09,449,1418083200"; d="scan'208";a="220548111"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.79) with Microsoft SMTP Server id 14.3.210.2;
	Thu, 22 Jan 2015 10:17:00 -0500
Received: from dhcp-3-152.uk.xensource.com ([10.80.3.152])	by
	ukmail1.uk.xensource.com with esmtp (Exim 4.69)	(envelope-from
	<konstantinos.ladopoulos@citrix.com>)	id 1YEJV4-0001GA-Sn;
	Thu, 22 Jan 2015 15:16:50 +0000
From: Kostas Ladopoulos <konstantinos.ladopoulos@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Thu, 22 Jan 2015 15:16:48 +0000
Message-ID: <1421939808-15664-1-git-send-email-konstantinos.ladopoulos@citrix.com>
X-Mailer: git-send-email 1.9.1
MIME-Version: 1.0
X-DLP: MIA2
X-Mailman-Approved-At: Fri, 23 Jan 2015 11:54:54 +0000
Cc: Kostas Ladopoulos <konstantinos.ladopoulos@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix memory leak in __LinkGetImageBase()
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The in-function allocated QueryInfo object was correctly freed for all error
cases, but not the successful one.

Signed-off-by: Kostas Ladopoulos <konstantinos.ladopoulos@citrix.com>
---
 src/xenvif/link.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/xenvif/link.c b/src/xenvif/link.c
index 269ce69..27a502b 100644
--- a/src/xenvif/link.c
+++ b/src/xenvif/link.c
@@ -119,6 +119,8 @@ again:
 found:
     *ImageBase = QueryInfo[Index].BasicInfo.ImageBase;
 
+    __LinkFree(QueryInfo);
+
     Trace("<====\n");
 
     return STATUS_SUCCESS;
-- 
1.9.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 23 11:54:55 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jan 2015 11:54:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEcpD-0005nU-4o; Fri, 23 Jan 2015 11:54:55 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <konstantinos.ladopoulos@citrix.com>)
	id 1YEJVI-0005FB-FG
	for win-pv-devel@lists.xenproject.org; Thu, 22 Jan 2015 15:17:04 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	EB/81-31115-F6411C45; Thu, 22 Jan 2015 15:17:03 +0000
X-Env-Sender: konstantinos.ladopoulos@citrix.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1421939821!22273107!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30353 invoked from network); 22 Jan 2015 15:17:02 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Jan 2015 15:17:02 -0000
X-IronPort-AV: E=Sophos;i="5.09,449,1418083200"; d="scan'208";a="220548111"
Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
	(10.13.107.79) with Microsoft SMTP Server id 14.3.210.2;
	Thu, 22 Jan 2015 10:17:00 -0500
Received: from dhcp-3-152.uk.xensource.com ([10.80.3.152])	by
	ukmail1.uk.xensource.com with esmtp (Exim 4.69)	(envelope-from
	<konstantinos.ladopoulos@citrix.com>)	id 1YEJV4-0001GA-Sn;
	Thu, 22 Jan 2015 15:16:50 +0000
From: Kostas Ladopoulos <konstantinos.ladopoulos@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Thu, 22 Jan 2015 15:16:48 +0000
Message-ID: <1421939808-15664-1-git-send-email-konstantinos.ladopoulos@citrix.com>
X-Mailer: git-send-email 1.9.1
MIME-Version: 1.0
X-DLP: MIA2
X-Mailman-Approved-At: Fri, 23 Jan 2015 11:54:54 +0000
Cc: Kostas Ladopoulos <konstantinos.ladopoulos@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix memory leak in __LinkGetImageBase()
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The in-function allocated QueryInfo object was correctly freed for all error
cases, but not the successful one.

Signed-off-by: Kostas Ladopoulos <konstantinos.ladopoulos@citrix.com>
---
 src/xenvif/link.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/xenvif/link.c b/src/xenvif/link.c
index 269ce69..27a502b 100644
--- a/src/xenvif/link.c
+++ b/src/xenvif/link.c
@@ -119,6 +119,8 @@ again:
 found:
     *ImageBase = QueryInfo[Index].BasicInfo.ImageBase;
 
+    __LinkFree(QueryInfo);
+
     Trace("<====\n");
 
     return STATUS_SUCCESS;
-- 
1.9.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 23 13:24:15 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jan 2015 13:24:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEeDf-0004Q7-Aw; Fri, 23 Jan 2015 13:24:15 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YEeDe-0004Pw-GX
	for win-pv-devel@lists.xenproject.org; Fri, 23 Jan 2015 13:24:14 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	9A/58-10078-D7B42C45; Fri, 23 Jan 2015 13:24:13 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-21.messagelabs.com!1422019453!11919651!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13335 invoked from network); 23 Jan 2015 13:24:13 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Jan 2015 13:24:13 -0000
X-IronPort-AV: E=Sophos;i="5.09,453,1418083200"; d="scan'208";a="29319925"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Konstantinos Ladopoulos <konstantinos.ladopoulos@citrix.com>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Fix memory leak in __LinkGetImageBase()
Thread-Index: AQHQNwNs/64ODJXomUaRon3ml+ASipzNsYvw
Date: Fri, 23 Jan 2015 13:24:12 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D4F3A@AMSPEX01CL01.citrite.net>
References: <1421939808-15664-1-git-send-email-konstantinos.ladopoulos@citrix.com>
In-Reply-To: <1421939808-15664-1-git-send-email-konstantinos.ladopoulos@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Konstantinos Ladopoulos <konstantinos.ladopoulos@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Fix memory leak in __LinkGetImageBase()
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Kostas Ladopoulos
> Sent: 22 January 2015 15:17
> To: win-pv-devel@lists.xenproject.org
> Cc: Konstantinos Ladopoulos
> Subject: [win-pv-devel] [PATCH] Fix memory leak in __LinkGetImageBase()
> 
> The in-function allocated QueryInfo object was correctly freed for all error
> cases, but not the successful one.
> 
> Signed-off-by: Kostas Ladopoulos <konstantinos.ladopoulos@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

...and applied. Thanks!

  Paul

> ---
>  src/xenvif/link.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/src/xenvif/link.c b/src/xenvif/link.c
> index 269ce69..27a502b 100644
> --- a/src/xenvif/link.c
> +++ b/src/xenvif/link.c
> @@ -119,6 +119,8 @@ again:
>  found:
>      *ImageBase = QueryInfo[Index].BasicInfo.ImageBase;
> 
> +    __LinkFree(QueryInfo);
> +
>      Trace("<====\n");
> 
>      return STATUS_SUCCESS;
> --
> 1.9.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 23 13:24:15 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jan 2015 13:24:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YEeDf-0004Q7-Aw; Fri, 23 Jan 2015 13:24:15 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YEeDe-0004Pw-GX
	for win-pv-devel@lists.xenproject.org; Fri, 23 Jan 2015 13:24:14 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	9A/58-10078-D7B42C45; Fri, 23 Jan 2015 13:24:13 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-21.messagelabs.com!1422019453!11919651!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13335 invoked from network); 23 Jan 2015 13:24:13 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Jan 2015 13:24:13 -0000
X-IronPort-AV: E=Sophos;i="5.09,453,1418083200"; d="scan'208";a="29319925"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Konstantinos Ladopoulos <konstantinos.ladopoulos@citrix.com>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Fix memory leak in __LinkGetImageBase()
Thread-Index: AQHQNwNs/64ODJXomUaRon3ml+ASipzNsYvw
Date: Fri, 23 Jan 2015 13:24:12 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D4F3A@AMSPEX01CL01.citrite.net>
References: <1421939808-15664-1-git-send-email-konstantinos.ladopoulos@citrix.com>
In-Reply-To: <1421939808-15664-1-git-send-email-konstantinos.ladopoulos@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: Konstantinos Ladopoulos <konstantinos.ladopoulos@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Fix memory leak in __LinkGetImageBase()
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Kostas Ladopoulos
> Sent: 22 January 2015 15:17
> To: win-pv-devel@lists.xenproject.org
> Cc: Konstantinos Ladopoulos
> Subject: [win-pv-devel] [PATCH] Fix memory leak in __LinkGetImageBase()
> 
> The in-function allocated QueryInfo object was correctly freed for all error
> cases, but not the successful one.
> 
> Signed-off-by: Kostas Ladopoulos <konstantinos.ladopoulos@citrix.com>

Acked-by: Paul Durrant <paul.durrant@citrix.com>

...and applied. Thanks!

  Paul

> ---
>  src/xenvif/link.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/src/xenvif/link.c b/src/xenvif/link.c
> index 269ce69..27a502b 100644
> --- a/src/xenvif/link.c
> +++ b/src/xenvif/link.c
> @@ -119,6 +119,8 @@ again:
>  found:
>      *ImageBase = QueryInfo[Index].BasicInfo.ImageBase;
> 
> +    __LinkFree(QueryInfo);
> +
>      Trace("<====\n");
> 
>      return STATUS_SUCCESS;
> --
> 1.9.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Mon Jan 26 15:52:38 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 26 Jan 2015 15:52:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YFlxu-0000kv-ES; Mon, 26 Jan 2015 15:52:38 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YFlxt-0000kl-5a
	for win-pv-devel@lists.xenproject.org; Mon, 26 Jan 2015 15:52:37 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	22/94-29550-4C266C45; Mon, 26 Jan 2015 15:52:36 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1422287555!16092604!1
X-Originating-IP: [74.125.82.173]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9105 invoked from network); 26 Jan 2015 15:52:36 -0000
Received: from mail-we0-f173.google.com (HELO mail-we0-f173.google.com)
	(74.125.82.173)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	26 Jan 2015 15:52:36 -0000
Received: by mail-we0-f173.google.com with SMTP id w62so9851083wes.4
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 26 Jan 2015 07:52:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=U4ccuHJEE+8yndEhBUe0Eff2g+9ADzDPrn7XtmFFsVI=;
	b=QjJyj3IiJYR+5qDBkm55L111Jrzq5KGnXZJnv5aZZD5We5jl1B9M+LZliuJcGrOrxc
	39ORKvlXMkD8lBTbNwbmsSSvV/GVE81wTzq294EKI4L+WJQXFxvIjD9Ob73BiBsMyziI
	rX9XZoQXKEZfmwhmrjq1EPKDmi788dO25FgikTsqnjNN6gCZhOUE+JrFNs9B1/4508sL
	13KtrKETNEZLKEDnA0PF8KxQYdGjx5tIlQuRZjKhoEWcLYAGxEMjei/d+HwBEwDmwu/x
	H223b7EbW1APcgMEIihe2jKG5lT90moqH0BQrYY6JE1bg6hk+AIftYr+LOKgDh5CAN3o
	UxAw==
X-Received: by 10.180.76.72 with SMTP id i8mr24062136wiw.22.1422287555669;
	Mon, 26 Jan 2015 07:52:35 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm14438132wib.14.2015.01.26.07.52.34
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 26 Jan 2015 07:52:34 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 26 Jan 2015 15:52:29 +0000
Message-Id: <1422287549-7680-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix type mismatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The size of PWCHAR and the size of ULONG are the same for 32-bit
installations so this bug only affects 64-bit installations, but the
symptom is a crash on PDO destruction due to a corrupted heap.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/pdo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenbus/pdo.c b/src/xenbus/pdo.c
index 1ee35f8..495cf12 100644
--- a/src/xenbus/pdo.c
+++ b/src/xenbus/pdo.c
@@ -362,7 +362,7 @@ PdoAddRevision(
     if (Pdo->Description != NULL) {
         RtlCopyMemory(Buffer,
                       Pdo->Description,
-                      sizeof (ULONG) * Pdo->Count);
+                      sizeof (PWCHAR) * Pdo->Count);
         __PdoFree(Pdo->Description);
     }
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Mon Jan 26 15:52:38 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 26 Jan 2015 15:52:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YFlxu-0000kv-ES; Mon, 26 Jan 2015 15:52:38 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YFlxt-0000kl-5a
	for win-pv-devel@lists.xenproject.org; Mon, 26 Jan 2015 15:52:37 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	22/94-29550-4C266C45; Mon, 26 Jan 2015 15:52:36 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1422287555!16092604!1
X-Originating-IP: [74.125.82.173]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9105 invoked from network); 26 Jan 2015 15:52:36 -0000
Received: from mail-we0-f173.google.com (HELO mail-we0-f173.google.com)
	(74.125.82.173)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	26 Jan 2015 15:52:36 -0000
Received: by mail-we0-f173.google.com with SMTP id w62so9851083wes.4
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 26 Jan 2015 07:52:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=U4ccuHJEE+8yndEhBUe0Eff2g+9ADzDPrn7XtmFFsVI=;
	b=QjJyj3IiJYR+5qDBkm55L111Jrzq5KGnXZJnv5aZZD5We5jl1B9M+LZliuJcGrOrxc
	39ORKvlXMkD8lBTbNwbmsSSvV/GVE81wTzq294EKI4L+WJQXFxvIjD9Ob73BiBsMyziI
	rX9XZoQXKEZfmwhmrjq1EPKDmi788dO25FgikTsqnjNN6gCZhOUE+JrFNs9B1/4508sL
	13KtrKETNEZLKEDnA0PF8KxQYdGjx5tIlQuRZjKhoEWcLYAGxEMjei/d+HwBEwDmwu/x
	H223b7EbW1APcgMEIihe2jKG5lT90moqH0BQrYY6JE1bg6hk+AIftYr+LOKgDh5CAN3o
	UxAw==
X-Received: by 10.180.76.72 with SMTP id i8mr24062136wiw.22.1422287555669;
	Mon, 26 Jan 2015 07:52:35 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm14438132wib.14.2015.01.26.07.52.34
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 26 Jan 2015 07:52:34 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 26 Jan 2015 15:52:29 +0000
Message-Id: <1422287549-7680-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix type mismatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The size of PWCHAR and the size of ULONG are the same for 32-bit
installations so this bug only affects 64-bit installations, but the
symptom is a crash on PDO destruction due to a corrupted heap.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/pdo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenbus/pdo.c b/src/xenbus/pdo.c
index 1ee35f8..495cf12 100644
--- a/src/xenbus/pdo.c
+++ b/src/xenbus/pdo.c
@@ -362,7 +362,7 @@ PdoAddRevision(
     if (Pdo->Description != NULL) {
         RtlCopyMemory(Buffer,
                       Pdo->Description,
-                      sizeof (ULONG) * Pdo->Count);
+                      sizeof (PWCHAR) * Pdo->Count);
         __PdoFree(Pdo->Description);
     }
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Mon Jan 26 16:16:26 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 26 Jan 2015 16:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YFmKw-0002aC-Gi; Mon, 26 Jan 2015 16:16:26 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YFmKv-0002a7-R4
	for win-pv-devel@lists.xenproject.org; Mon, 26 Jan 2015 16:16:25 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
	B7/97-15069-85866C45; Mon, 26 Jan 2015 16:16:24 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1422288984!20204523!1
X-Originating-IP: [74.125.82.174]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28623 invoked from network); 26 Jan 2015 16:16:24 -0000
Received: from mail-we0-f174.google.com (HELO mail-we0-f174.google.com)
	(74.125.82.174)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	26 Jan 2015 16:16:24 -0000
Received: by mail-we0-f174.google.com with SMTP id w55so4547405wes.5
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 26 Jan 2015 08:16:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=kgXwg1sGfkIL2zhZNv2vzzSfIUfhi8nKVXfOOxDz8dY=;
	b=Xvxag0iAClEgaBs9RqNFHOzW2dklsvWPszE5rjddU7GlCK92DBLWTNDzUxWxIolcsc
	r4wtDXlMpd6c3UERdT0nPcf1av1WgVj1AY8d9/OOlypE4DLgOakN0hwmQEJHuTAhYxzU
	5vAxdWE5oZyY8Mv9tMLtBPCyrmXwJOEkenDqORksffKcAzKnOvlkDJTZb3DRl1u6Xtec
	fmsBBKoy0eKUtLdMI/L4jL0aJQ2BNQW9CucqCIOcW5lFxyUGrnqtJNq2zOJ5S3EBMkpy
	Z5NfH3cWHc/J3YnGkN4+QFe3qtcP96iu2ugG27R1iGAmMaB7dkk8v8FYv53WrlcLlFcR
	xw9Q==
X-Received: by 10.180.182.8 with SMTP id ea8mr27848484wic.48.1422288984206;
	Mon, 26 Jan 2015 08:16:24 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	kn7sm14905648wjc.45.2015.01.26.08.16.23
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 26 Jan 2015 08:16:23 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 26 Jan 2015 16:16:20 +0000
Message-Id: <1422288980-9216-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix type mismatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The size of PWCHAR and the size of ULONG are the same for 32-bit
installations so this bug only affects 64-bit installations, but the
symptom is a crash on PDO destruction due to a corrupted heap.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenvif/pdo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
index ef5413c..a7755d2 100644
--- a/src/xenvif/pdo.c
+++ b/src/xenvif/pdo.c
@@ -564,7 +564,7 @@ PdoAddRevision(
     if (Pdo->Description != NULL) {
         RtlCopyMemory(Buffer,
                       Pdo->Description,
-                      sizeof (ULONG) * Pdo->Count);
+                      sizeof (PWCHAR) * Pdo->Count);
         __PdoFree(Pdo->Description);
     }
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Mon Jan 26 16:16:26 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 26 Jan 2015 16:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YFmKw-0002aC-Gi; Mon, 26 Jan 2015 16:16:26 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YFmKv-0002a7-R4
	for win-pv-devel@lists.xenproject.org; Mon, 26 Jan 2015 16:16:25 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
	B7/97-15069-85866C45; Mon, 26 Jan 2015 16:16:24 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1422288984!20204523!1
X-Originating-IP: [74.125.82.174]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28623 invoked from network); 26 Jan 2015 16:16:24 -0000
Received: from mail-we0-f174.google.com (HELO mail-we0-f174.google.com)
	(74.125.82.174)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	26 Jan 2015 16:16:24 -0000
Received: by mail-we0-f174.google.com with SMTP id w55so4547405wes.5
	for <win-pv-devel@lists.xenproject.org>;
	Mon, 26 Jan 2015 08:16:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=kgXwg1sGfkIL2zhZNv2vzzSfIUfhi8nKVXfOOxDz8dY=;
	b=Xvxag0iAClEgaBs9RqNFHOzW2dklsvWPszE5rjddU7GlCK92DBLWTNDzUxWxIolcsc
	r4wtDXlMpd6c3UERdT0nPcf1av1WgVj1AY8d9/OOlypE4DLgOakN0hwmQEJHuTAhYxzU
	5vAxdWE5oZyY8Mv9tMLtBPCyrmXwJOEkenDqORksffKcAzKnOvlkDJTZb3DRl1u6Xtec
	fmsBBKoy0eKUtLdMI/L4jL0aJQ2BNQW9CucqCIOcW5lFxyUGrnqtJNq2zOJ5S3EBMkpy
	Z5NfH3cWHc/J3YnGkN4+QFe3qtcP96iu2ugG27R1iGAmMaB7dkk8v8FYv53WrlcLlFcR
	xw9Q==
X-Received: by 10.180.182.8 with SMTP id ea8mr27848484wic.48.1422288984206;
	Mon, 26 Jan 2015 08:16:24 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	kn7sm14905648wjc.45.2015.01.26.08.16.23
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 26 Jan 2015 08:16:23 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 26 Jan 2015 16:16:20 +0000
Message-Id: <1422288980-9216-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix type mismatch
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The size of PWCHAR and the size of ULONG are the same for 32-bit
installations so this bug only affects 64-bit installations, but the
symptom is a crash on PDO destruction due to a corrupted heap.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenvif/pdo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
index ef5413c..a7755d2 100644
--- a/src/xenvif/pdo.c
+++ b/src/xenvif/pdo.c
@@ -564,7 +564,7 @@ PdoAddRevision(
     if (Pdo->Description != NULL) {
         RtlCopyMemory(Buffer,
                       Pdo->Description,
-                      sizeof (ULONG) * Pdo->Count);
+                      sizeof (PWCHAR) * Pdo->Count);
         __PdoFree(Pdo->Description);
     }
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 03:01:50 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 03:01:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YFwPW-0000VA-0g; Tue, 27 Jan 2015 03:01:50 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christian.refvik@onlive.com>)
	id 1YFwPU-0000V2-Qq; Tue, 27 Jan 2015 03:01:48 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	9A/E3-10932-C9FF6C45; Tue, 27 Jan 2015 03:01:48 +0000
X-Env-Sender: christian.refvik@onlive.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1422327706!18065933!1
X-Originating-IP: [74.85.144.12]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16223 invoked from network); 27 Jan 2015 03:01:47 -0000
Received: from mx01.onlive.com (HELO mx01.onlive.com) (74.85.144.12)
	by server-6.tower-31.messagelabs.com with SMTP;
	27 Jan 2015 03:01:47 -0000
X-IronPort-AV: E=Sophos;i="5.09,471,1418112000"; 
   d="scan'208";a="4800030"
Received: from unknown (HELO CAS02.onlive.corp) ([74.85.144.1])
	by mx01.onlive.com with ESMTP; 26 Jan 2015 19:01:45 -0800
Received: from MAILBOX02.onlive.corp ([fe80::d46a:1f25:4cee:4678]) by
	CAS02.onlive.corp ([fe80::c0c:ea60:8aa8:29d5%11]) with mapi id
	14.01.0355.002; Mon, 26 Jan 2015 19:01:45 -0800
From: Christian Refvik <christian.refvik@onlive.com>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Porting libvchan to use the Windows PV Drivers
Thread-Index: AdA525hiLRGo13pnSj6DUPCv1wGyWQ==
Date: Tue, 27 Jan 2015 03:01:45 +0000
Message-ID: <B4DC7AAB07005D4DA887F0BE517884F2A2C2D8@mailbox02.onlive.corp>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.16.72.185]
MIME-Version: 1.0
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [win-pv-devel] Porting libvchan to use the Windows PV Drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Hi guys,

I'm a new Xen developer.  However, I've been looking at porting the libvchan library so that it uses the Windows PV Drivers that are currently checked in.  As far as libvchan is concerned, (I think) I understand it fairly well.  I've even started to create some documentation which I'm happy to post on the Xen wiki.

>From what I see, the libvchan basically relies on xenstore and libxc (XenCtrl).  The Windows PV drivers have the xeniface package contains the code used to access XenStore through XenBus.   I'm not sure about the equivalent of libxc, but most of the functionality looks like it lives in the xenbus package.  The issue seems like libxc allows user space applications to make calls to the hypervisor using the devices privcmd, evtchn, and gntalloc.  I don't know how this should work on Windows, since the device driver structure is different than Linux.

1.  Where should I start looking in the Windows PV side to get more familiar?
2.  Where is there some documentation on how can I use the Windows PV drivers to build my own custom drivers on top of the Windows PV interfaces?
3.  How should I correctly port libvchan to Windows?  Should libvchan be a new type of driver that might uses xen.sys directly?  Its not clear to me keep a high bandwidth and still get the best latency.

Any suggestions and help is appreciated.

Thanks,
Christian


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 03:01:50 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 03:01:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YFwPW-0000VA-0g; Tue, 27 Jan 2015 03:01:50 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christian.refvik@onlive.com>)
	id 1YFwPU-0000V2-Qq; Tue, 27 Jan 2015 03:01:48 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	9A/E3-10932-C9FF6C45; Tue, 27 Jan 2015 03:01:48 +0000
X-Env-Sender: christian.refvik@onlive.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1422327706!18065933!1
X-Originating-IP: [74.85.144.12]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16223 invoked from network); 27 Jan 2015 03:01:47 -0000
Received: from mx01.onlive.com (HELO mx01.onlive.com) (74.85.144.12)
	by server-6.tower-31.messagelabs.com with SMTP;
	27 Jan 2015 03:01:47 -0000
X-IronPort-AV: E=Sophos;i="5.09,471,1418112000"; 
   d="scan'208";a="4800030"
Received: from unknown (HELO CAS02.onlive.corp) ([74.85.144.1])
	by mx01.onlive.com with ESMTP; 26 Jan 2015 19:01:45 -0800
Received: from MAILBOX02.onlive.corp ([fe80::d46a:1f25:4cee:4678]) by
	CAS02.onlive.corp ([fe80::c0c:ea60:8aa8:29d5%11]) with mapi id
	14.01.0355.002; Mon, 26 Jan 2015 19:01:45 -0800
From: Christian Refvik <christian.refvik@onlive.com>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Porting libvchan to use the Windows PV Drivers
Thread-Index: AdA525hiLRGo13pnSj6DUPCv1wGyWQ==
Date: Tue, 27 Jan 2015 03:01:45 +0000
Message-ID: <B4DC7AAB07005D4DA887F0BE517884F2A2C2D8@mailbox02.onlive.corp>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.16.72.185]
MIME-Version: 1.0
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [win-pv-devel] Porting libvchan to use the Windows PV Drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Hi guys,

I'm a new Xen developer.  However, I've been looking at porting the libvchan library so that it uses the Windows PV Drivers that are currently checked in.  As far as libvchan is concerned, (I think) I understand it fairly well.  I've even started to create some documentation which I'm happy to post on the Xen wiki.

>From what I see, the libvchan basically relies on xenstore and libxc (XenCtrl).  The Windows PV drivers have the xeniface package contains the code used to access XenStore through XenBus.   I'm not sure about the equivalent of libxc, but most of the functionality looks like it lives in the xenbus package.  The issue seems like libxc allows user space applications to make calls to the hypervisor using the devices privcmd, evtchn, and gntalloc.  I don't know how this should work on Windows, since the device driver structure is different than Linux.

1.  Where should I start looking in the Windows PV side to get more familiar?
2.  Where is there some documentation on how can I use the Windows PV drivers to build my own custom drivers on top of the Windows PV interfaces?
3.  How should I correctly port libvchan to Windows?  Should libvchan be a new type of driver that might uses xen.sys directly?  Its not clear to me keep a high bandwidth and still get the best latency.

Any suggestions and help is appreciated.

Thanks,
Christian


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:39 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACp-0003cJ-8y; Tue, 27 Jan 2015 17:45:39 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACo-0003c2-6S
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:38 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
	64/B1-06207-1CEC7C45; Tue, 27 Jan 2015 17:45:37 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1422380736!8542467!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16666 invoked from network); 27 Jan 2015 17:45:37 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:37 -0000
Received: by mail-wi0-f175.google.com with SMTP id fb4so6562203wid.2
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:subject:date:message-id;
	bh=U4IpMZIWsPc35QooCIW1SJJlmiE43k9Efru9TO7MdmA=;
	b=kjz0NuFy37StsmXjjzXZHPTdLG/4xFZjnNr50LrBhpk4PqWo51SzDaXK1IMKDC8EiV
	R6Ztmkcyy+IMmSa3bNkY2aG6Bgsp5/+NYAxFyO+MIHqZO8kDCc0cX7UEBlpMHBji+KiT
	KhzCHbb7LsNv4a5ons9WCIgvxGdvhwRklbdBGIJsKKlUYJkKPkTvC6sK2tr2VfRSavbh
	aH+AkaL2sSqiG5SbkaYMZlejGig8OiwcY4ZMLZ+IOwpk730sjkRI2Qfbivx2B71Rn0AY
	OrOtOvz0bXUJKoka1f19RTXZ/7Vd/eIGA7stvnbsc8zw3BnS2K0oCUy6Eya3mnaO4blI
	/ZJw==
X-Received: by 10.180.83.5 with SMTP id m5mr8137704wiy.74.1422380736568;
	Tue, 27 Jan 2015 09:45:36 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.35
	for <win-pv-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:35 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:14 +0000
Message-Id: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Subject: [win-pv-devel] [PATCH 00/15] Various EVTCHN fixes and improvements
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Recent testing with the EVTCHN FIFO ABI and the new multi-queue network
frontend (XENVIF/XENNET combo) threw up several problems. This series
addresses those and also improves the generic EVTCHN code regardless of
which ABI is in use.


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:39 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACp-0003cJ-8y; Tue, 27 Jan 2015 17:45:39 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACo-0003c2-6S
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:38 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
	64/B1-06207-1CEC7C45; Tue, 27 Jan 2015 17:45:37 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1422380736!8542467!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16666 invoked from network); 27 Jan 2015 17:45:37 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:37 -0000
Received: by mail-wi0-f175.google.com with SMTP id fb4so6562203wid.2
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:subject:date:message-id;
	bh=U4IpMZIWsPc35QooCIW1SJJlmiE43k9Efru9TO7MdmA=;
	b=kjz0NuFy37StsmXjjzXZHPTdLG/4xFZjnNr50LrBhpk4PqWo51SzDaXK1IMKDC8EiV
	R6Ztmkcyy+IMmSa3bNkY2aG6Bgsp5/+NYAxFyO+MIHqZO8kDCc0cX7UEBlpMHBji+KiT
	KhzCHbb7LsNv4a5ons9WCIgvxGdvhwRklbdBGIJsKKlUYJkKPkTvC6sK2tr2VfRSavbh
	aH+AkaL2sSqiG5SbkaYMZlejGig8OiwcY4ZMLZ+IOwpk730sjkRI2Qfbivx2B71Rn0AY
	OrOtOvz0bXUJKoka1f19RTXZ/7Vd/eIGA7stvnbsc8zw3BnS2K0oCUy6Eya3mnaO4blI
	/ZJw==
X-Received: by 10.180.83.5 with SMTP id m5mr8137704wiy.74.1422380736568;
	Tue, 27 Jan 2015 09:45:36 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.35
	for <win-pv-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:35 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:14 +0000
Message-Id: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Subject: [win-pv-devel] [PATCH 00/15] Various EVTCHN fixes and improvements
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Recent testing with the EVTCHN FIFO ABI and the new multi-queue network
frontend (XENVIF/XENNET combo) threw up several problems. This series
addresses those and also improves the generic EVTCHN code regardless of
which ABI is in use.


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:39 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACp-0003cQ-A2; Tue, 27 Jan 2015 17:45:39 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACo-0003c4-Jp
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:38 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	46/5D-09606-1CEC7C45; Tue, 27 Jan 2015 17:45:37 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1422380737!22769933!1
X-Originating-IP: [209.85.212.182]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19433 invoked from network); 27 Jan 2015 17:45:37 -0000
Received: from mail-wi0-f182.google.com (HELO mail-wi0-f182.google.com)
	(209.85.212.182)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:37 -0000
Received: by mail-wi0-f182.google.com with SMTP id n3so6650820wiv.3
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=qgA/l7WkLcbFLi7fgo3ONrLeZi6wTkrr3x+F4pGrMNs=;
	b=zNB/XyffXKGVGFkF6iorfloN6nIDPZux4pRLZSH0Wjn3zjFF2jhHFmcJHon6HrNEkJ
	J9oNTD6jcuPWUVbskfN7hEPBeXfaCSSyEOUQNVkwoFOblC+VY8m2gNri/m25+wG1XAj5
	FEzRPYdkWjPYmcxsAyW56Z1ZRh++8LRmk7D1SWnZbCNbsWuBMtoJT/T92ZiXSntkww/E
	qaknyu7S0R2pJaOTerqfO1pOPIv0LnrobIUWqKNLbaPDTTqkBGSie2cjJqli2XC93z+l
	gPbV9NUMRgdogqexBPX6fzdsfjCZYqPaWJz9+LlvwMTTqhF+2r1kHxU/vqnyUw8GHbAm
	A8Jw==
X-Received: by 10.180.12.75 with SMTP id w11mr8330483wib.9.1422380737302;
	Tue, 27 Jan 2015 09:45:37 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.36
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:36 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:15 +0000
Message-Id: <1422380729-10928-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 01/15] Add missing barrier
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Testing an event word flag should always be preceded by a barrier (unless
using a locked operation).

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn_fifo.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index e045cd0..cef639d 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -102,6 +102,7 @@ __EvtchnFifoTestFlag(
     IN  ULONG           Flag
     )
 {
+    KeMemoryBarrier();
     return (*EventWord & (1 << Flag)) ? TRUE : FALSE;
 }
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:39 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACp-0003cQ-A2; Tue, 27 Jan 2015 17:45:39 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACo-0003c4-Jp
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:38 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	46/5D-09606-1CEC7C45; Tue, 27 Jan 2015 17:45:37 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1422380737!22769933!1
X-Originating-IP: [209.85.212.182]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19433 invoked from network); 27 Jan 2015 17:45:37 -0000
Received: from mail-wi0-f182.google.com (HELO mail-wi0-f182.google.com)
	(209.85.212.182)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:37 -0000
Received: by mail-wi0-f182.google.com with SMTP id n3so6650820wiv.3
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=qgA/l7WkLcbFLi7fgo3ONrLeZi6wTkrr3x+F4pGrMNs=;
	b=zNB/XyffXKGVGFkF6iorfloN6nIDPZux4pRLZSH0Wjn3zjFF2jhHFmcJHon6HrNEkJ
	J9oNTD6jcuPWUVbskfN7hEPBeXfaCSSyEOUQNVkwoFOblC+VY8m2gNri/m25+wG1XAj5
	FEzRPYdkWjPYmcxsAyW56Z1ZRh++8LRmk7D1SWnZbCNbsWuBMtoJT/T92ZiXSntkww/E
	qaknyu7S0R2pJaOTerqfO1pOPIv0LnrobIUWqKNLbaPDTTqkBGSie2cjJqli2XC93z+l
	gPbV9NUMRgdogqexBPX6fzdsfjCZYqPaWJz9+LlvwMTTqhF+2r1kHxU/vqnyUw8GHbAm
	A8Jw==
X-Received: by 10.180.12.75 with SMTP id w11mr8330483wib.9.1422380737302;
	Tue, 27 Jan 2015 09:45:37 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.36
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:36 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:15 +0000
Message-Id: <1422380729-10928-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 01/15] Add missing barrier
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Testing an event word flag should always be preceded by a barrier (unless
using a locked operation).

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn_fifo.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index e045cd0..cef639d 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -102,6 +102,7 @@ __EvtchnFifoTestFlag(
     IN  ULONG           Flag
     )
 {
+    KeMemoryBarrier();
     return (*EventWord & (1 << Flag)) ? TRUE : FALSE;
 }
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:40 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACq-0003dF-CH; Tue, 27 Jan 2015 17:45:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACp-0003cG-Ed
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:39 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	BC/DD-10078-2CEC7C45; Tue, 27 Jan 2015 17:45:38 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-21.messagelabs.com!1422380738!12783515!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27421 invoked from network); 27 Jan 2015 17:45:38 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:38 -0000
Received: by mail-wi0-f170.google.com with SMTP id em10so3996382wid.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=YCPE++jAH7moq2l8tLxspYM0JygtFaqDA1ycDgHtQV4=;
	b=rexs1sCmaZ039KnBrZLMKPOCsZxtL1emhSVaGx4LD4O80h9vIwoOkwE0aX3AYdeKKw
	dnpnsGEnDMH7NVsITzMm8T6/58oop45i81hx3/p/EvMP+9KtXMhLgfI3UZvm5bgbc/cg
	pI2MVdOd3NfK5/owyzFumY6zvE1qMjQF0LZZ8TGml1E5LnN752Z3ecOX6BydEvP4GYvT
	hJlRh0vj5ffmpyH56eaSX7ZF+pUcFz2Y40zV02kjYkU9ECSeJLWciUt7WU9T/39pX4lz
	hJSXtt3tXH1aS4TyUE8tmc8V8xFfWBFlC/J5zpZA+Rh9NwX05AJ1mqGngM+62pqfTQVv
	ph2Q==
X-Received: by 10.180.210.174 with SMTP id mv14mr8058218wic.80.1422380737987; 
	Tue, 27 Jan 2015 09:45:37 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.37
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:37 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:16 +0000
Message-Id: <1422380729-10928-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 02/15] Fix FIFO ABI Ack and Mask methods
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Both methods were using the wrong event word by using the port number as an
offset twice.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn_fifo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index cef639d..f44f3fc 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -398,7 +398,7 @@ EvtchnFifoPortAck(
     event_word_t                    *EventWord;
 
     EventWord = EvtchnFifoEventWord(Context, Port);
-    __EvtchnFifoClearFlag(&EventWord[Port], EVTCHN_FIFO_PENDING);
+    __EvtchnFifoClearFlag(EventWord, EVTCHN_FIFO_PENDING);
 }
 
 static VOID
@@ -411,7 +411,7 @@ EvtchnFifoPortMask(
     event_word_t                    *EventWord;
 
     EventWord = EvtchnFifoEventWord(Context, Port);
-    __EvtchnFifoSetFlag(&EventWord[Port], EVTCHN_FIFO_MASKED);
+    __EvtchnFifoSetFlag(EventWord, EVTCHN_FIFO_MASKED);
 }
 
 static BOOLEAN
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:40 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACq-0003dF-CH; Tue, 27 Jan 2015 17:45:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACp-0003cG-Ed
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:39 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	BC/DD-10078-2CEC7C45; Tue, 27 Jan 2015 17:45:38 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-21.messagelabs.com!1422380738!12783515!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27421 invoked from network); 27 Jan 2015 17:45:38 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:38 -0000
Received: by mail-wi0-f170.google.com with SMTP id em10so3996382wid.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=YCPE++jAH7moq2l8tLxspYM0JygtFaqDA1ycDgHtQV4=;
	b=rexs1sCmaZ039KnBrZLMKPOCsZxtL1emhSVaGx4LD4O80h9vIwoOkwE0aX3AYdeKKw
	dnpnsGEnDMH7NVsITzMm8T6/58oop45i81hx3/p/EvMP+9KtXMhLgfI3UZvm5bgbc/cg
	pI2MVdOd3NfK5/owyzFumY6zvE1qMjQF0LZZ8TGml1E5LnN752Z3ecOX6BydEvP4GYvT
	hJlRh0vj5ffmpyH56eaSX7ZF+pUcFz2Y40zV02kjYkU9ECSeJLWciUt7WU9T/39pX4lz
	hJSXtt3tXH1aS4TyUE8tmc8V8xFfWBFlC/J5zpZA+Rh9NwX05AJ1mqGngM+62pqfTQVv
	ph2Q==
X-Received: by 10.180.210.174 with SMTP id mv14mr8058218wic.80.1422380737987; 
	Tue, 27 Jan 2015 09:45:37 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.37
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:37 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:16 +0000
Message-Id: <1422380729-10928-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 02/15] Fix FIFO ABI Ack and Mask methods
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Both methods were using the wrong event word by using the port number as an
offset twice.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn_fifo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index cef639d..f44f3fc 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -398,7 +398,7 @@ EvtchnFifoPortAck(
     event_word_t                    *EventWord;
 
     EventWord = EvtchnFifoEventWord(Context, Port);
-    __EvtchnFifoClearFlag(&EventWord[Port], EVTCHN_FIFO_PENDING);
+    __EvtchnFifoClearFlag(EventWord, EVTCHN_FIFO_PENDING);
 }
 
 static VOID
@@ -411,7 +411,7 @@ EvtchnFifoPortMask(
     event_word_t                    *EventWord;
 
     EventWord = EvtchnFifoEventWord(Context, Port);
-    __EvtchnFifoSetFlag(&EventWord[Port], EVTCHN_FIFO_MASKED);
+    __EvtchnFifoSetFlag(EventWord, EVTCHN_FIFO_MASKED);
 }
 
 static BOOLEAN
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:41 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACr-0003do-DM; Tue, 27 Jan 2015 17:45:41 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACq-0003d0-3c
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:40 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
	6D/C1-14349-3CEC7C45; Tue, 27 Jan 2015 17:45:39 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1422380738!11885754!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7555 invoked from network); 27 Jan 2015 17:45:38 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:38 -0000
Received: by mail-wi0-f175.google.com with SMTP id fb4so6562422wid.2
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=t3Ryhu3L2l4AJAlBLmiS5qADd1QARPWjtPmJ3er+iZA=;
	b=R37TCFZDPXlmX6VlYtBno3mlcO1Zi1meAIpn4ke9BWrL4IR1B0LtSWOlXhvedYAX/X
	+VIsfX9RFqdWUWzIIoVnE0c8jKRA1YrD0HRI82rw49Z9T5/hn4rpLpK0lDFjqXAYy2dI
	eUJ0b9700M3LF0EBV460aZ3B1mjWS43YLrIQA3oty5GCxmTrpGxP9NwWfZYJ62VSUBm5
	AdsjHWnaxIYxKsOebzvNcjAwFtb8KicrFXZ3pPQTtxdMxllQP4iRWB/pAlKf2Ssz7xlJ
	s/kBvUL6XPoYSnb9BZVPLiLU/8PJSan5T41ZEB6wETBW/Lm1XYhIv6RWnZjIulhkZwuI
	/LOg==
X-Received: by 10.180.207.10 with SMTP id ls10mr9475703wic.7.1422380738666;
	Tue, 27 Jan 2015 09:45:38 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.38
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:38 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:17 +0000
Message-Id: <1422380729-10928-4-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 03/15] Fix EvtchnOpen() error path
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

It's possible for an error in the latter stages of EvtchnOpen() to cause the
channel to be left open in Xen. Also the Mask boolean was not being cleared
which would lead to ASSERTion failures in checked builds.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index b1528d5..16060aa 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -452,8 +452,12 @@ fail3:
     Error("fail3\n");
 
     Channel->LocalPort = 0;
+    Channel->Mask = FALSE;
     RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
 
+    if (Channel->Type != XENBUS_EVTCHN_TYPE_FIXED)
+        (VOID) EventChannelClose(LocalPort);
+
 fail2:
     Error("fail2\n");
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:41 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACr-0003do-DM; Tue, 27 Jan 2015 17:45:41 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACq-0003d0-3c
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:40 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
	6D/C1-14349-3CEC7C45; Tue, 27 Jan 2015 17:45:39 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1422380738!11885754!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7555 invoked from network); 27 Jan 2015 17:45:38 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:38 -0000
Received: by mail-wi0-f175.google.com with SMTP id fb4so6562422wid.2
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=t3Ryhu3L2l4AJAlBLmiS5qADd1QARPWjtPmJ3er+iZA=;
	b=R37TCFZDPXlmX6VlYtBno3mlcO1Zi1meAIpn4ke9BWrL4IR1B0LtSWOlXhvedYAX/X
	+VIsfX9RFqdWUWzIIoVnE0c8jKRA1YrD0HRI82rw49Z9T5/hn4rpLpK0lDFjqXAYy2dI
	eUJ0b9700M3LF0EBV460aZ3B1mjWS43YLrIQA3oty5GCxmTrpGxP9NwWfZYJ62VSUBm5
	AdsjHWnaxIYxKsOebzvNcjAwFtb8KicrFXZ3pPQTtxdMxllQP4iRWB/pAlKf2Ssz7xlJ
	s/kBvUL6XPoYSnb9BZVPLiLU/8PJSan5T41ZEB6wETBW/Lm1XYhIv6RWnZjIulhkZwuI
	/LOg==
X-Received: by 10.180.207.10 with SMTP id ls10mr9475703wic.7.1422380738666;
	Tue, 27 Jan 2015 09:45:38 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.38
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:38 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:17 +0000
Message-Id: <1422380729-10928-4-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 03/15] Fix EvtchnOpen() error path
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

It's possible for an error in the latter stages of EvtchnOpen() to cause the
channel to be left open in Xen. Also the Mask boolean was not being cleared
which would lead to ASSERTion failures in checked builds.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index b1528d5..16060aa 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -452,8 +452,12 @@ fail3:
     Error("fail3\n");
 
     Channel->LocalPort = 0;
+    Channel->Mask = FALSE;
     RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
 
+    if (Channel->Type != XENBUS_EVTCHN_TYPE_FIXED)
+        (VOID) EventChannelClose(LocalPort);
+
 fail2:
     Error("fail2\n");
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:41 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACr-0003dv-ES; Tue, 27 Jan 2015 17:45:41 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACq-0003dE-Pg
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:40 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	92/ED-10078-4CEC7C45; Tue, 27 Jan 2015 17:45:40 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1422380739!12812706!1
X-Originating-IP: [74.125.82.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17793 invoked from network); 27 Jan 2015 17:45:39 -0000
Received: from mail-we0-f175.google.com (HELO mail-we0-f175.google.com)
	(74.125.82.175)
	by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:39 -0000
Received: by mail-we0-f175.google.com with SMTP id p10so16329309wes.6
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=4I0pwwZslMVrudkpaxMupoYXlXpLQ3msofYndgZXHeY=;
	b=oaErdCbleaM+R74qrzjKpVwHgRehAAyx98WS0CVjZFEGJRJCUxj63XlQveuK0b3bkb
	WnG3cGIA+IWKJhRVc6UU5qI1BPYRP8goNVMX6K5UjndShmpbezu/fCEPftrsh4iw9/sv
	TH6vkK2KTAx/be11jOyg+MA/48K+pq4A5iZPrKOl18h2aRXmhzV9crYQVaAQwc6Rvm1U
	P+I1uicvdUMI3b7VrFJknxUPfUxWUvOZ45R597n39AfMkQB5cOXXNJQmwk+1UcAVfP3S
	vWX085UlXPLDWh1za9tQHZD8RkRudWPYD13rSCKA7vb1YfJLIuY68ijhlztdRzzPnOTG
	Hmmg==
X-Received: by 10.180.109.79 with SMTP id hq15mr18808304wib.47.1422380739650; 
	Tue, 27 Jan 2015 09:45:39 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.39
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:39 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:18 +0000
Message-Id: <1422380729-10928-5-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 04/15] EVTCHN Bind method should check that
	the channel is active
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Any method which performs ABI operations should check whether the channel is
active.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 16060aa..acbb84c 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -513,6 +513,9 @@ EvtchnBind(
 
     KeAcquireSpinLock(&Channel->Lock, &Irql);
 
+    if (!Channel->Active)
+        goto done;
+
     if (Channel->Cpu == Cpu)
         goto done;
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:41 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACr-0003dv-ES; Tue, 27 Jan 2015 17:45:41 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACq-0003dE-Pg
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:40 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	92/ED-10078-4CEC7C45; Tue, 27 Jan 2015 17:45:40 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1422380739!12812706!1
X-Originating-IP: [74.125.82.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17793 invoked from network); 27 Jan 2015 17:45:39 -0000
Received: from mail-we0-f175.google.com (HELO mail-we0-f175.google.com)
	(74.125.82.175)
	by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:39 -0000
Received: by mail-we0-f175.google.com with SMTP id p10so16329309wes.6
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=4I0pwwZslMVrudkpaxMupoYXlXpLQ3msofYndgZXHeY=;
	b=oaErdCbleaM+R74qrzjKpVwHgRehAAyx98WS0CVjZFEGJRJCUxj63XlQveuK0b3bkb
	WnG3cGIA+IWKJhRVc6UU5qI1BPYRP8goNVMX6K5UjndShmpbezu/fCEPftrsh4iw9/sv
	TH6vkK2KTAx/be11jOyg+MA/48K+pq4A5iZPrKOl18h2aRXmhzV9crYQVaAQwc6Rvm1U
	P+I1uicvdUMI3b7VrFJknxUPfUxWUvOZ45R597n39AfMkQB5cOXXNJQmwk+1UcAVfP3S
	vWX085UlXPLDWh1za9tQHZD8RkRudWPYD13rSCKA7vb1YfJLIuY68ijhlztdRzzPnOTG
	Hmmg==
X-Received: by 10.180.109.79 with SMTP id hq15mr18808304wib.47.1422380739650; 
	Tue, 27 Jan 2015 09:45:39 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.39
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:39 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:18 +0000
Message-Id: <1422380729-10928-5-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 04/15] EVTCHN Bind method should check that
	the channel is active
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Any method which performs ABI operations should check whether the channel is
active.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 16060aa..acbb84c 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -513,6 +513,9 @@ EvtchnBind(
 
     KeAcquireSpinLock(&Channel->Lock, &Irql);
 
+    if (!Channel->Active)
+        goto done;
+
     if (Channel->Cpu == Cpu)
         goto done;
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:42 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACs-0003eo-Fh; Tue, 27 Jan 2015 17:45:42 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACr-0003dm-N3
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:41 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	B6/2C-21543-5CEC7C45; Tue, 27 Jan 2015 17:45:41 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1422380740!12812982!1
X-Originating-IP: [74.125.82.51]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2695 invoked from network); 27 Jan 2015 17:45:40 -0000
Received: from mail-wg0-f51.google.com (HELO mail-wg0-f51.google.com)
	(74.125.82.51)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:40 -0000
Received: by mail-wg0-f51.google.com with SMTP id k14so16099157wgh.10
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=EVJmjr+gNCG6Y3gz+V/UPx0DEpqLdq+YWH3i3urpBJ0=;
	b=Sg4UBj35tZrqs6mwqj2rJ81h3Q+2tWMn/pvKhHB5lFGFRgysPaPRhXPA0u5IqgEmeg
	mgXLuaj1a5LTiyD6TPr4/pTh0ds9qDrV1XtNW+CVjh0EfvdF7DRXnVGoBlKWKSHPMDTd
	msL7Q/4vzlWx/LwjqWPxHSTFnQE/ynoocHDtFML/gbFHvy67rpfEp7gn8DBIwyniERhP
	NjArtgAOVGymJqtZCSCmCHWbKLeXAdDr+hiRtV5UJke9NYEkn/jPMSvkV0x4YaGWx+7q
	So5VIgTWn5AyaIF9km9QviR+Di+KewDWdAn97oqeJ1WIWQjGzi37jg4bhb4fSEAVlZKY
	8R2Q==
X-Received: by 10.180.206.47 with SMTP id ll15mr8420413wic.34.1422380740323;
	Tue, 27 Jan 2015 09:45:40 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.39
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:39 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:19 +0000
Message-Id: <1422380729-10928-6-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 05/15] EvtchnCallback() does not need to
	check that the channel is active
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

There is no interaction with the ABI that necessitates a check whether the
channel is active.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index acbb84c..b3f147c 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -596,9 +596,6 @@ EvtchnCallback(
     UNREFERENCED_PARAMETER(Dpc);
     UNREFERENCED_PARAMETER(Argument2);
 
-    if (!Channel->Active)
-        return;
-
     Irql = __EvtchnAcquireInterruptLock(Context, Channel);
 
 #pragma warning(suppress:6387)  // NULL argument
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:42 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACs-0003eo-Fh; Tue, 27 Jan 2015 17:45:42 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACr-0003dm-N3
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:41 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	B6/2C-21543-5CEC7C45; Tue, 27 Jan 2015 17:45:41 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1422380740!12812982!1
X-Originating-IP: [74.125.82.51]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2695 invoked from network); 27 Jan 2015 17:45:40 -0000
Received: from mail-wg0-f51.google.com (HELO mail-wg0-f51.google.com)
	(74.125.82.51)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:40 -0000
Received: by mail-wg0-f51.google.com with SMTP id k14so16099157wgh.10
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=EVJmjr+gNCG6Y3gz+V/UPx0DEpqLdq+YWH3i3urpBJ0=;
	b=Sg4UBj35tZrqs6mwqj2rJ81h3Q+2tWMn/pvKhHB5lFGFRgysPaPRhXPA0u5IqgEmeg
	mgXLuaj1a5LTiyD6TPr4/pTh0ds9qDrV1XtNW+CVjh0EfvdF7DRXnVGoBlKWKSHPMDTd
	msL7Q/4vzlWx/LwjqWPxHSTFnQE/ynoocHDtFML/gbFHvy67rpfEp7gn8DBIwyniERhP
	NjArtgAOVGymJqtZCSCmCHWbKLeXAdDr+hiRtV5UJke9NYEkn/jPMSvkV0x4YaGWx+7q
	So5VIgTWn5AyaIF9km9QviR+Di+KewDWdAn97oqeJ1WIWQjGzi37jg4bhb4fSEAVlZKY
	8R2Q==
X-Received: by 10.180.206.47 with SMTP id ll15mr8420413wic.34.1422380740323;
	Tue, 27 Jan 2015 09:45:40 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.39
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:39 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:19 +0000
Message-Id: <1422380729-10928-6-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 05/15] EvtchnCallback() does not need to
	check that the channel is active
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

There is no interaction with the ABI that necessitates a check whether the
channel is active.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index acbb84c..b3f147c 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -596,9 +596,6 @@ EvtchnCallback(
     UNREFERENCED_PARAMETER(Dpc);
     UNREFERENCED_PARAMETER(Argument2);
 
-    if (!Channel->Active)
-        return;
-
     Irql = __EvtchnAcquireInterruptLock(Context, Channel);
 
 #pragma warning(suppress:6387)  // NULL argument
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:43 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACt-0003fI-H9; Tue, 27 Jan 2015 17:45:43 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACs-0003eV-7N
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:42 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	19/81-11354-5CEC7C45; Tue, 27 Jan 2015 17:45:41 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1422380741!20460625!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5624 invoked from network); 27 Jan 2015 17:45:41 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:41 -0000
Received: by mail-wi0-f173.google.com with SMTP id r20so6578548wiv.0
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=Sry2vC4Xdgf95Bylpf/wOKzDEG6YV3qJ9/eGJfjFSYQ=;
	b=ez66rsbawGx9IIJVtfUfBkEPQwdBN63dMrsNK4jHHzhaWpt6h5y2K8W7r0jPDZ6D1R
	VJA/uF/2/OZHVAf9rMarVng6OpJ3eSq6EuZJRg64xAgqxPh32IkeCpRXUVVDNWmKya/f
	3mM/AuD6ZVRgsr234oDqpM2kRgoJjPxyzpj4gGd7rA73oGx2igVjrBM85SXam6/7b1b/
	9Tnf3K6N22C/JtoOsY5ScNMGRrAk0YG5Gzz/iq91SD1xL91RzaqQhNh6Y/aJOUP9yz79
	b9o9Hll1QFkS+0W8tfO2Yf8sBRmRio6NDXBkKFEHT9V9Gb3TPpH6P1+SF3ugWfa/tnGy
	haKA==
X-Received: by 10.194.240.201 with SMTP id wc9mr2746535wjc.57.1422380740974;
	Tue, 27 Jan 2015 09:45:40 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.40
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:40 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:20 +0000
Message-Id: <1422380729-10928-7-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 06/15] Remove unnecessary helper function
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The __EvtchnAcquire/ReleaseInterruptLock functions are only used in one
place. Remove them and call the underlying Fdo functions directly.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 29 ++---------------------------
 1 file changed, 2 insertions(+), 27 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index b3f147c..f5f7c67 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -198,31 +198,6 @@ EvtchnInterruptDisable(
     Trace("<====\n");
 }
 
-static FORCEINLINE
-_IRQL_requires_max_(HIGH_LEVEL)
-_IRQL_saves_
-_IRQL_raises_(HIGH_LEVEL)
-KIRQL
-__EvtchnAcquireInterruptLock(
-    IN  PXENBUS_EVTCHN_CONTEXT  Context,
-    IN  PXENBUS_EVTCHN_CHANNEL  Channel
-    )
-{
-    return FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
-}
-
-static FORCEINLINE
-__drv_requiresIRQL(HIGH_LEVEL)
-VOID
-__EvtchnReleaseInterruptLock(
-    IN  PXENBUS_EVTCHN_CONTEXT      Context,
-    IN  PXENBUS_EVTCHN_CHANNEL      Channel,
-    IN  __drv_restoresIRQL KIRQL    Irql
-    )
-{
-    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, Irql);
-}
-
 static NTSTATUS
 EvtchnOpenFixed(
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
@@ -596,12 +571,12 @@ EvtchnCallback(
     UNREFERENCED_PARAMETER(Dpc);
     UNREFERENCED_PARAMETER(Argument2);
 
-    Irql = __EvtchnAcquireInterruptLock(Context, Channel);
+    Irql = FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
 
 #pragma warning(suppress:6387)  // NULL argument
     (VOID) Channel->Callback(NULL, Channel->Argument);
 
-    __EvtchnReleaseInterruptLock(Context, Channel, Irql);
+    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, Irql);
 }
 
 static VOID
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:43 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACt-0003fI-H9; Tue, 27 Jan 2015 17:45:43 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACs-0003eV-7N
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:42 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	19/81-11354-5CEC7C45; Tue, 27 Jan 2015 17:45:41 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1422380741!20460625!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5624 invoked from network); 27 Jan 2015 17:45:41 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:41 -0000
Received: by mail-wi0-f173.google.com with SMTP id r20so6578548wiv.0
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=Sry2vC4Xdgf95Bylpf/wOKzDEG6YV3qJ9/eGJfjFSYQ=;
	b=ez66rsbawGx9IIJVtfUfBkEPQwdBN63dMrsNK4jHHzhaWpt6h5y2K8W7r0jPDZ6D1R
	VJA/uF/2/OZHVAf9rMarVng6OpJ3eSq6EuZJRg64xAgqxPh32IkeCpRXUVVDNWmKya/f
	3mM/AuD6ZVRgsr234oDqpM2kRgoJjPxyzpj4gGd7rA73oGx2igVjrBM85SXam6/7b1b/
	9Tnf3K6N22C/JtoOsY5ScNMGRrAk0YG5Gzz/iq91SD1xL91RzaqQhNh6Y/aJOUP9yz79
	b9o9Hll1QFkS+0W8tfO2Yf8sBRmRio6NDXBkKFEHT9V9Gb3TPpH6P1+SF3ugWfa/tnGy
	haKA==
X-Received: by 10.194.240.201 with SMTP id wc9mr2746535wjc.57.1422380740974;
	Tue, 27 Jan 2015 09:45:40 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.40
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:40 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:20 +0000
Message-Id: <1422380729-10928-7-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 06/15] Remove unnecessary helper function
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The __EvtchnAcquire/ReleaseInterruptLock functions are only used in one
place. Remove them and call the underlying Fdo functions directly.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 29 ++---------------------------
 1 file changed, 2 insertions(+), 27 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index b3f147c..f5f7c67 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -198,31 +198,6 @@ EvtchnInterruptDisable(
     Trace("<====\n");
 }
 
-static FORCEINLINE
-_IRQL_requires_max_(HIGH_LEVEL)
-_IRQL_saves_
-_IRQL_raises_(HIGH_LEVEL)
-KIRQL
-__EvtchnAcquireInterruptLock(
-    IN  PXENBUS_EVTCHN_CONTEXT  Context,
-    IN  PXENBUS_EVTCHN_CHANNEL  Channel
-    )
-{
-    return FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
-}
-
-static FORCEINLINE
-__drv_requiresIRQL(HIGH_LEVEL)
-VOID
-__EvtchnReleaseInterruptLock(
-    IN  PXENBUS_EVTCHN_CONTEXT      Context,
-    IN  PXENBUS_EVTCHN_CHANNEL      Channel,
-    IN  __drv_restoresIRQL KIRQL    Irql
-    )
-{
-    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, Irql);
-}
-
 static NTSTATUS
 EvtchnOpenFixed(
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
@@ -596,12 +571,12 @@ EvtchnCallback(
     UNREFERENCED_PARAMETER(Dpc);
     UNREFERENCED_PARAMETER(Argument2);
 
-    Irql = __EvtchnAcquireInterruptLock(Context, Channel);
+    Irql = FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
 
 #pragma warning(suppress:6387)  // NULL argument
     (VOID) Channel->Callback(NULL, Channel->Argument);
 
-    __EvtchnReleaseInterruptLock(Context, Channel, Irql);
+    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, Irql);
 }
 
 static VOID
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:44 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACu-0003fy-Ig; Tue, 27 Jan 2015 17:45:44 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACt-0003fC-Ea
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:43 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	8A/A9-27398-6CEC7C45; Tue, 27 Jan 2015 17:45:42 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1422380741!20274441!1
X-Originating-IP: [74.125.82.174]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 517 invoked from network); 27 Jan 2015 17:45:42 -0000
Received: from mail-we0-f174.google.com (HELO mail-we0-f174.google.com)
	(74.125.82.174)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:42 -0000
Received: by mail-we0-f174.google.com with SMTP id w55so10894331wes.5
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=ucA5lDIl5FmIPFFmX6TXU5kLJ36zTjtEFzgw7maRIN0=;
	b=nvoP6g/U+mXEXA9W5qF6f3J/kWHKQXUyINh5TadPEfHI53+mZvvwMFP4dHAt4JYCLb
	fPgzjfCYaXDM9W8Y4o77aDyjrccXFSLR9GhM6Ke/9zYQmu0tcZI/4/zmkrfh7OgP2zjn
	9QIqv+vybYz+gGhsMzXzKVbVIunilKs7tIerflOhs166gwP1L5a6ohKHsj2H6Pr2rlO8
	CwOerkfBD/tX193aiLOKcgFPIzwRuUAocayxEEXWS+m7ESwa1vQsEUXByyoIpdOOlhS7
	ssUUyX4gr8495CztK87xjHCuGejAfD+pYSxd3eA7r3DVQaBk63QdQdsOthR9cN6raZ8x
	0h/A==
X-Received: by 10.180.103.201 with SMTP id fy9mr36903524wib.31.1422380741836; 
	Tue, 27 Jan 2015 09:45:41 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.41
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:41 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:21 +0000
Message-Id: <1422380729-10928-8-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 07/15] Get rid of per-channel interrupt
	pointer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

It's kind of redundant as we have a Cpu index value. Also, remove code that
tries to ensure everything is on the right cpu even across an event channel
re-bind. Since we now always use the hypercall to handle unmasking then we
don't need to care so much.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 61 ++++++-----------------------------------------------
 1 file changed, 7 insertions(+), 54 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index f5f7c67..0d62cf0 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -84,7 +84,6 @@ struct _XENBUS_EVTCHN_CHANNEL {
     BOOLEAN                     Mask;
     ULONG                       LocalPort;
     ULONG                       Cpu;
-    PXENBUS_INTERRUPT           Interrupt;
 };
 
 struct _XENBUS_EVTCHN_CONTEXT {
@@ -380,11 +379,6 @@ EvtchnOpen(
 
     LocalPort = Channel->LocalPort;
 
-    Channel->Cpu = 0;
-    Channel->Interrupt = (Context->Affinity != 0) ? // Latched available
-                         Context->LatchedInterrupt[0] :
-                         Context->LevelSensitiveInterrupt;
-
     status = XENBUS_EVTCHN_ABI(PortEnable,
                                &Context->EvtchnAbi,
                                LocalPort);
@@ -455,13 +449,6 @@ fail1:
     return NULL;
 }
 
-#define EVTCHN_SWAP_POINTER(_X, _Y)                             \
-        do {                                                    \
-            (_X) = (PVOID)((ULONG_PTR)(_X) ^ (ULONG_PTR)(_Y));  \
-            (_Y) = (PVOID)((ULONG_PTR)(_X) ^ (ULONG_PTR)(_Y));  \
-            (_X) = (PVOID)((ULONG_PTR)(_X) ^ (ULONG_PTR)(_Y));  \
-        } while (FALSE)
-
 static NTSTATUS
 EvtchnBind(
     IN  PINTERFACE              Interface,
@@ -470,7 +457,6 @@ EvtchnBind(
     )
 {
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
-    PXENBUS_INTERRUPT           Interrupt;
     ULONG                       LocalPort;
     unsigned int                vcpu_id;
     KIRQL                       Irql;
@@ -494,19 +480,6 @@ EvtchnBind(
     if (Channel->Cpu == Cpu)
         goto done;
 
-    Interrupt = Context->LatchedInterrupt[Cpu];
-
-    (VOID) KfRaiseIrql(HIGH_LEVEL);
-
-    // Make sure we always lock in a consistent order
-    if ((ULONG_PTR)Interrupt < (ULONG_PTR)Channel->Interrupt) {
-        (VOID) FdoAcquireInterruptLock(Context->Fdo, Interrupt);
-        (VOID) FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
-    } else {
-        (VOID) FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
-        (VOID) FdoAcquireInterruptLock(Context->Fdo, Interrupt);
-    }
-
     LocalPort = Channel->LocalPort;
     vcpu_id = SystemVirtualCpuIndex(Cpu);
 
@@ -514,15 +487,8 @@ EvtchnBind(
     if (!NT_SUCCESS(status))
         goto fail3;
 
-    EVTCHN_SWAP_POINTER(Channel->Interrupt, Interrupt);
     Channel->Cpu = Cpu;
 
-    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, HIGH_LEVEL);
-    FdoReleaseInterruptLock(Context->Fdo, Interrupt, HIGH_LEVEL);
-
-#pragma prefast(suppress:28138) // Use constant rather than variable
-    KeLowerIrql(DISPATCH_LEVEL);
-
     Info("[%u]: CPU %u\n", LocalPort, Cpu);
 
 done:
@@ -533,12 +499,6 @@ done:
 fail3:
     Error("fail3\n");
 
-    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, HIGH_LEVEL);
-    FdoReleaseInterruptLock(Context->Fdo, Interrupt, HIGH_LEVEL);
-
-#pragma prefast(suppress:28138) // Use constant rather than variable
-    KeLowerIrql(DISPATCH_LEVEL);
-
     KeReleaseSpinLock(&Channel->Lock, Irql);
 
 fail2:
@@ -566,17 +526,22 @@ EvtchnCallback(
 {
     PXENBUS_EVTCHN_CONTEXT  Context = _Context;
     PXENBUS_EVTCHN_CHANNEL  Channel = Argument1;
+    PXENBUS_INTERRUPT       Interrupt;
     KIRQL                   Irql;
 
     UNREFERENCED_PARAMETER(Dpc);
     UNREFERENCED_PARAMETER(Argument2);
 
-    Irql = FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
+    Interrupt = (Context->Affinity != 0) ? // Latched available
+                Context->LatchedInterrupt[Channel->Cpu] :
+                Context->LevelSensitiveInterrupt;
+
+    Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
 
 #pragma warning(suppress:6387)  // NULL argument
     (VOID) Channel->Callback(NULL, Channel->Argument);
 
-    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, Irql);
+    FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
 }
 
 static VOID
@@ -747,7 +712,6 @@ EvtchnClose(
         ASSERT(NT_SUCCESS(status));
     }
 
-    Channel->Interrupt = NULL;
     Channel->Cpu = 0;
 
     Channel->LocalPort = 0;
@@ -809,17 +773,6 @@ EvtchnPollCallback(
         goto done;
     }
 
-    if (Context->Affinity != 0) {
-        ULONG   Cpu;
-
-        ASSERT3U(KeGetCurrentIrql(), >=, DISPATCH_LEVEL);
-        Cpu = KeGetCurrentProcessorNumber();
-
-        // Only handle events on the correct CPU
-        if (Channel->Interrupt != Context->LatchedInterrupt[Cpu])
-            goto done;
-    }
-
     if (Channel->Mask)
         XENBUS_EVTCHN_ABI(PortMask,
                           &Context->EvtchnAbi,
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:44 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACu-0003fy-Ig; Tue, 27 Jan 2015 17:45:44 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACt-0003fC-Ea
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:43 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	8A/A9-27398-6CEC7C45; Tue, 27 Jan 2015 17:45:42 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1422380741!20274441!1
X-Originating-IP: [74.125.82.174]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 517 invoked from network); 27 Jan 2015 17:45:42 -0000
Received: from mail-we0-f174.google.com (HELO mail-we0-f174.google.com)
	(74.125.82.174)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:42 -0000
Received: by mail-we0-f174.google.com with SMTP id w55so10894331wes.5
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=ucA5lDIl5FmIPFFmX6TXU5kLJ36zTjtEFzgw7maRIN0=;
	b=nvoP6g/U+mXEXA9W5qF6f3J/kWHKQXUyINh5TadPEfHI53+mZvvwMFP4dHAt4JYCLb
	fPgzjfCYaXDM9W8Y4o77aDyjrccXFSLR9GhM6Ke/9zYQmu0tcZI/4/zmkrfh7OgP2zjn
	9QIqv+vybYz+gGhsMzXzKVbVIunilKs7tIerflOhs166gwP1L5a6ohKHsj2H6Pr2rlO8
	CwOerkfBD/tX193aiLOKcgFPIzwRuUAocayxEEXWS+m7ESwa1vQsEUXByyoIpdOOlhS7
	ssUUyX4gr8495CztK87xjHCuGejAfD+pYSxd3eA7r3DVQaBk63QdQdsOthR9cN6raZ8x
	0h/A==
X-Received: by 10.180.103.201 with SMTP id fy9mr36903524wib.31.1422380741836; 
	Tue, 27 Jan 2015 09:45:41 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.41
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:41 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:21 +0000
Message-Id: <1422380729-10928-8-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 07/15] Get rid of per-channel interrupt
	pointer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

It's kind of redundant as we have a Cpu index value. Also, remove code that
tries to ensure everything is on the right cpu even across an event channel
re-bind. Since we now always use the hypercall to handle unmasking then we
don't need to care so much.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 61 ++++++-----------------------------------------------
 1 file changed, 7 insertions(+), 54 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index f5f7c67..0d62cf0 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -84,7 +84,6 @@ struct _XENBUS_EVTCHN_CHANNEL {
     BOOLEAN                     Mask;
     ULONG                       LocalPort;
     ULONG                       Cpu;
-    PXENBUS_INTERRUPT           Interrupt;
 };
 
 struct _XENBUS_EVTCHN_CONTEXT {
@@ -380,11 +379,6 @@ EvtchnOpen(
 
     LocalPort = Channel->LocalPort;
 
-    Channel->Cpu = 0;
-    Channel->Interrupt = (Context->Affinity != 0) ? // Latched available
-                         Context->LatchedInterrupt[0] :
-                         Context->LevelSensitiveInterrupt;
-
     status = XENBUS_EVTCHN_ABI(PortEnable,
                                &Context->EvtchnAbi,
                                LocalPort);
@@ -455,13 +449,6 @@ fail1:
     return NULL;
 }
 
-#define EVTCHN_SWAP_POINTER(_X, _Y)                             \
-        do {                                                    \
-            (_X) = (PVOID)((ULONG_PTR)(_X) ^ (ULONG_PTR)(_Y));  \
-            (_Y) = (PVOID)((ULONG_PTR)(_X) ^ (ULONG_PTR)(_Y));  \
-            (_X) = (PVOID)((ULONG_PTR)(_X) ^ (ULONG_PTR)(_Y));  \
-        } while (FALSE)
-
 static NTSTATUS
 EvtchnBind(
     IN  PINTERFACE              Interface,
@@ -470,7 +457,6 @@ EvtchnBind(
     )
 {
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
-    PXENBUS_INTERRUPT           Interrupt;
     ULONG                       LocalPort;
     unsigned int                vcpu_id;
     KIRQL                       Irql;
@@ -494,19 +480,6 @@ EvtchnBind(
     if (Channel->Cpu == Cpu)
         goto done;
 
-    Interrupt = Context->LatchedInterrupt[Cpu];
-
-    (VOID) KfRaiseIrql(HIGH_LEVEL);
-
-    // Make sure we always lock in a consistent order
-    if ((ULONG_PTR)Interrupt < (ULONG_PTR)Channel->Interrupt) {
-        (VOID) FdoAcquireInterruptLock(Context->Fdo, Interrupt);
-        (VOID) FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
-    } else {
-        (VOID) FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
-        (VOID) FdoAcquireInterruptLock(Context->Fdo, Interrupt);
-    }
-
     LocalPort = Channel->LocalPort;
     vcpu_id = SystemVirtualCpuIndex(Cpu);
 
@@ -514,15 +487,8 @@ EvtchnBind(
     if (!NT_SUCCESS(status))
         goto fail3;
 
-    EVTCHN_SWAP_POINTER(Channel->Interrupt, Interrupt);
     Channel->Cpu = Cpu;
 
-    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, HIGH_LEVEL);
-    FdoReleaseInterruptLock(Context->Fdo, Interrupt, HIGH_LEVEL);
-
-#pragma prefast(suppress:28138) // Use constant rather than variable
-    KeLowerIrql(DISPATCH_LEVEL);
-
     Info("[%u]: CPU %u\n", LocalPort, Cpu);
 
 done:
@@ -533,12 +499,6 @@ done:
 fail3:
     Error("fail3\n");
 
-    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, HIGH_LEVEL);
-    FdoReleaseInterruptLock(Context->Fdo, Interrupt, HIGH_LEVEL);
-
-#pragma prefast(suppress:28138) // Use constant rather than variable
-    KeLowerIrql(DISPATCH_LEVEL);
-
     KeReleaseSpinLock(&Channel->Lock, Irql);
 
 fail2:
@@ -566,17 +526,22 @@ EvtchnCallback(
 {
     PXENBUS_EVTCHN_CONTEXT  Context = _Context;
     PXENBUS_EVTCHN_CHANNEL  Channel = Argument1;
+    PXENBUS_INTERRUPT       Interrupt;
     KIRQL                   Irql;
 
     UNREFERENCED_PARAMETER(Dpc);
     UNREFERENCED_PARAMETER(Argument2);
 
-    Irql = FdoAcquireInterruptLock(Context->Fdo, Channel->Interrupt);
+    Interrupt = (Context->Affinity != 0) ? // Latched available
+                Context->LatchedInterrupt[Channel->Cpu] :
+                Context->LevelSensitiveInterrupt;
+
+    Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
 
 #pragma warning(suppress:6387)  // NULL argument
     (VOID) Channel->Callback(NULL, Channel->Argument);
 
-    FdoReleaseInterruptLock(Context->Fdo, Channel->Interrupt, Irql);
+    FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
 }
 
 static VOID
@@ -747,7 +712,6 @@ EvtchnClose(
         ASSERT(NT_SUCCESS(status));
     }
 
-    Channel->Interrupt = NULL;
     Channel->Cpu = 0;
 
     Channel->LocalPort = 0;
@@ -809,17 +773,6 @@ EvtchnPollCallback(
         goto done;
     }
 
-    if (Context->Affinity != 0) {
-        ULONG   Cpu;
-
-        ASSERT3U(KeGetCurrentIrql(), >=, DISPATCH_LEVEL);
-        Cpu = KeGetCurrentProcessorNumber();
-
-        // Only handle events on the correct CPU
-        if (Channel->Interrupt != Context->LatchedInterrupt[Cpu])
-            goto done;
-    }
-
     if (Channel->Mask)
         XENBUS_EVTCHN_ABI(PortMask,
                           &Context->EvtchnAbi,
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:45 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACv-0003ga-Kc; Tue, 27 Jan 2015 17:45:45 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACu-0003fl-A0
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:44 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	BD/24-04085-7CEC7C45; Tue, 27 Jan 2015 17:45:43 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1422380742!20274444!1
X-Originating-IP: [209.85.212.169]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 611 invoked from network); 27 Jan 2015 17:45:42 -0000
Received: from mail-wi0-f169.google.com (HELO mail-wi0-f169.google.com)
	(209.85.212.169)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:42 -0000
Received: by mail-wi0-f169.google.com with SMTP id h11so4012101wiw.0
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=9vK1eVJ3v5mqkI+nbJ5v33WnEblyP9h+dZmkieIs4O8=;
	b=Hm6LfsODICfq49cAIkeg2aVBCm1VWV00hUJbiUGJlDAFr46CMygDwVQdeFeAA/iicj
	zIavgOI6EGxusiwRuDT+yoS57NtnTFQBIbv0dmpmmJuQbyEXLH6EuYbD7ykWGuBEDiIc
	4Dc7ru5okkl1WCeN/vC9XNNiCdURybj7d5hvyArFE5vquctdx/XExikA08bQye5I8fpV
	o6hMQ531TMTvxuQmC+1no+UtOJDWtyUMKVts/Whtpg15QEJUlRmKdIOirjNEByYABFuE
	DYsU8Zf4cE0Hqm+sWc2NbPjpvbGljJptymVgr0/EqgQwofv/q0PxgH5a9yf1EIMX/yW1
	BgqQ==
X-Received: by 10.194.61.145 with SMTP id p17mr2709417wjr.35.1422380742471;
	Tue, 27 Jan 2015 09:45:42 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.41
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:42 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:22 +0000
Message-Id: <1422380729-10928-9-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 08/15] Eagerly enable and disable interrupts
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

There's really no need to lazily enable event channel interrupts. It makes
the code simpler to enable at the end of the first acquire and disable at
the start of the last release.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 167 ++++++++++++++++++++++++----------------------------
 1 file changed, 76 insertions(+), 91 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 0d62cf0..453f9d6 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -93,7 +93,6 @@ struct _XENBUS_EVTCHN_CONTEXT {
     PXENBUS_INTERRUPT               LevelSensitiveInterrupt;
     PXENBUS_INTERRUPT               LatchedInterrupt[MAXIMUM_PROCESSORS];
     KAFFINITY                       Affinity;
-    BOOLEAN                         Enabled;
     XENBUS_SUSPEND_INTERFACE        SuspendInterface;
     PXENBUS_SUSPEND_CALLBACK        SuspendCallbackEarly;
     PXENBUS_SUSPEND_CALLBACK        SuspendCallbackLate;
@@ -127,76 +126,6 @@ __EvtchnFree(
     ExFreePoolWithTag(Buffer, XENBUS_EVTCHN_TAG);
 }
 
-static VOID
-EvtchnInterruptEnable(
-    IN  PXENBUS_EVTCHN_CONTEXT  Context
-    )
-{
-    LONG                        Cpu;
-    ULONG                       Line;
-    NTSTATUS                    status;
-
-    Trace("====>\n");
-
-    ASSERT3U(Context->Affinity, ==, 0);
-
-    Cpu = 0;
-    while (Cpu < KeNumberProcessors) {
-        unsigned int    vcpu_id;
-        UCHAR           Vector;
-
-        vcpu_id = SystemVirtualCpuIndex(Cpu);
-        Vector = FdoGetInterruptVector(Context->Fdo,
-                                       Context->LatchedInterrupt[Cpu]);
-
-        status = HvmSetEvtchnUpcallVector(vcpu_id, Vector);
-        if (NT_SUCCESS(status)) {
-            Info("CPU %u\n", Cpu);
-            Context->Affinity |= (KAFFINITY)1 << Cpu;
-        }
-
-        Cpu++;
-    }
-
-    Line = FdoGetInterruptLine(Context->Fdo,
-                               Context->LevelSensitiveInterrupt);
-
-    status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, Line);
-    ASSERT(NT_SUCCESS(status));
-
-    Trace("<====\n");
-}
-
-static VOID
-EvtchnInterruptDisable(
-    IN  PXENBUS_EVTCHN_CONTEXT  Context
-    )
-{
-    LONG                        Cpu;
-    NTSTATUS                    status;
-
-    UNREFERENCED_PARAMETER(Context);
-
-    Trace("====>\n");
-
-    status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, 0);
-    ASSERT(NT_SUCCESS(status));
-
-    Cpu = KeNumberProcessors;
-    while (--Cpu >= 0) {
-        unsigned int    vcpu_id;
-
-        vcpu_id = SystemVirtualCpuIndex(Cpu);
-
-        (VOID) HvmSetEvtchnUpcallVector(vcpu_id, 0);
-        Context->Affinity &= ~((KAFFINITY)1 << Cpu);
-    }
-
-    ASSERT3U(Context->Affinity, ==, 0);
-
-    Trace("<====\n");
-}
-
 static NTSTATUS
 EvtchnOpenFixed(
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
@@ -394,14 +323,7 @@ EvtchnOpen(
     Channel->Active = TRUE;
 
     KeAcquireSpinLockAtDpcLevel(&Context->Lock);
-
     InsertTailList(&Context->List, &Channel->ListEntry);
-
-    if (!IsListEmpty(&Context->List) && !Context->Enabled) {
-        EvtchnInterruptEnable(Context);
-        Context->Enabled = TRUE;
-    }
-
     KeReleaseSpinLockFromDpcLevel(&Context->Lock);
 
     KeLowerIrql(Irql);
@@ -466,8 +388,6 @@ EvtchnBind(
     if (Cpu >= (ULONG)KeNumberProcessors)
         goto fail1;
 
-    ASSERT(Context->Enabled);
-
     status = STATUS_NOT_SUPPORTED;
     if (~Context->Affinity & ((KAFFINITY)1 << Cpu))
         goto fail2;
@@ -683,14 +603,7 @@ EvtchnClose(
     KeRaiseIrql(DISPATCH_LEVEL, &Irql); // Prevent suspend
 
     KeAcquireSpinLockAtDpcLevel(&Context->Lock);
-
     RemoveEntryList(&Channel->ListEntry);
-
-    if (IsListEmpty(&Context->List) && Context->Enabled) {
-        EvtchnInterruptDisable(Context);
-        Context->Enabled = FALSE;
-    }
-
     KeReleaseSpinLockFromDpcLevel(&Context->Lock);
 
     RtlZeroMemory(&Channel->ListEntry, sizeof (LIST_ENTRY));
@@ -870,6 +783,76 @@ EvtchnAbiRelease(
 }
 
 static VOID
+EvtchnInterruptEnable(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context
+    )
+{
+    LONG                        Cpu;
+    ULONG                       Line;
+    NTSTATUS                    status;
+
+    Trace("====>\n");
+
+    ASSERT3U(Context->Affinity, ==, 0);
+
+    Cpu = 0;
+    while (Cpu < KeNumberProcessors) {
+        unsigned int    vcpu_id;
+        UCHAR           Vector;
+
+        vcpu_id = SystemVirtualCpuIndex(Cpu);
+        Vector = FdoGetInterruptVector(Context->Fdo,
+                                       Context->LatchedInterrupt[Cpu]);
+
+        status = HvmSetEvtchnUpcallVector(vcpu_id, Vector);
+        if (NT_SUCCESS(status)) {
+            Info("CPU %u\n", Cpu);
+            Context->Affinity |= (KAFFINITY)1 << Cpu;
+        }
+
+        Cpu++;
+    }
+
+    Line = FdoGetInterruptLine(Context->Fdo,
+                               Context->LevelSensitiveInterrupt);
+
+    status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, Line);
+    ASSERT(NT_SUCCESS(status));
+
+    Trace("<====\n");
+}
+
+static VOID
+EvtchnInterruptDisable(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context
+    )
+{
+    LONG                        Cpu;
+    NTSTATUS                    status;
+
+    UNREFERENCED_PARAMETER(Context);
+
+    Trace("====>\n");
+
+    status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, 0);
+    ASSERT(NT_SUCCESS(status));
+
+    Cpu = KeNumberProcessors;
+    while (--Cpu >= 0) {
+        unsigned int    vcpu_id;
+
+        vcpu_id = SystemVirtualCpuIndex(Cpu);
+
+        (VOID) HvmSetEvtchnUpcallVector(vcpu_id, 0);
+        Context->Affinity &= ~((KAFFINITY)1 << Cpu);
+    }
+
+    ASSERT3U(Context->Affinity, ==, 0);
+
+    Trace("<====\n");
+}
+
+static VOID
 EvtchnSuspendCallbackEarly(
     IN  PVOID               Argument
     )
@@ -909,10 +892,8 @@ EvtchnSuspendCallbackLate(
     status = EvtchnAbiAcquire(Context);
     ASSERT(NT_SUCCESS(status));
 
-    if (Context->Enabled) {
-        EvtchnInterruptDisable(Context);
-        EvtchnInterruptEnable(Context);
-    }
+    EvtchnInterruptDisable(Context);
+    EvtchnInterruptEnable(Context);
 }
 
 static VOID
@@ -1082,6 +1063,8 @@ EvtchnAcquire(
         Cpu++;
     }
 
+    EvtchnInterruptEnable(Context);
+
     Trace("<====\n");
 
 done:
@@ -1174,6 +1157,8 @@ EvtchnRelease(
     if (!IsListEmpty(&Context->List))
         BUG("OUTSTANDING EVENT CHANNELS");
 
+    EvtchnInterruptDisable(Context);
+
     Cpu = KeNumberProcessors;
     while (--Cpu >= 0) {
         FdoFreeInterrupt(Fdo, Context->LatchedInterrupt[Cpu]);
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:45 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACv-0003ga-Kc; Tue, 27 Jan 2015 17:45:45 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACu-0003fl-A0
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:44 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	BD/24-04085-7CEC7C45; Tue, 27 Jan 2015 17:45:43 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1422380742!20274444!1
X-Originating-IP: [209.85.212.169]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 611 invoked from network); 27 Jan 2015 17:45:42 -0000
Received: from mail-wi0-f169.google.com (HELO mail-wi0-f169.google.com)
	(209.85.212.169)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:42 -0000
Received: by mail-wi0-f169.google.com with SMTP id h11so4012101wiw.0
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=9vK1eVJ3v5mqkI+nbJ5v33WnEblyP9h+dZmkieIs4O8=;
	b=Hm6LfsODICfq49cAIkeg2aVBCm1VWV00hUJbiUGJlDAFr46CMygDwVQdeFeAA/iicj
	zIavgOI6EGxusiwRuDT+yoS57NtnTFQBIbv0dmpmmJuQbyEXLH6EuYbD7ykWGuBEDiIc
	4Dc7ru5okkl1WCeN/vC9XNNiCdURybj7d5hvyArFE5vquctdx/XExikA08bQye5I8fpV
	o6hMQ531TMTvxuQmC+1no+UtOJDWtyUMKVts/Whtpg15QEJUlRmKdIOirjNEByYABFuE
	DYsU8Zf4cE0Hqm+sWc2NbPjpvbGljJptymVgr0/EqgQwofv/q0PxgH5a9yf1EIMX/yW1
	BgqQ==
X-Received: by 10.194.61.145 with SMTP id p17mr2709417wjr.35.1422380742471;
	Tue, 27 Jan 2015 09:45:42 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.41
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:42 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:22 +0000
Message-Id: <1422380729-10928-9-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 08/15] Eagerly enable and disable interrupts
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

There's really no need to lazily enable event channel interrupts. It makes
the code simpler to enable at the end of the first acquire and disable at
the start of the last release.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 167 ++++++++++++++++++++++++----------------------------
 1 file changed, 76 insertions(+), 91 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 0d62cf0..453f9d6 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -93,7 +93,6 @@ struct _XENBUS_EVTCHN_CONTEXT {
     PXENBUS_INTERRUPT               LevelSensitiveInterrupt;
     PXENBUS_INTERRUPT               LatchedInterrupt[MAXIMUM_PROCESSORS];
     KAFFINITY                       Affinity;
-    BOOLEAN                         Enabled;
     XENBUS_SUSPEND_INTERFACE        SuspendInterface;
     PXENBUS_SUSPEND_CALLBACK        SuspendCallbackEarly;
     PXENBUS_SUSPEND_CALLBACK        SuspendCallbackLate;
@@ -127,76 +126,6 @@ __EvtchnFree(
     ExFreePoolWithTag(Buffer, XENBUS_EVTCHN_TAG);
 }
 
-static VOID
-EvtchnInterruptEnable(
-    IN  PXENBUS_EVTCHN_CONTEXT  Context
-    )
-{
-    LONG                        Cpu;
-    ULONG                       Line;
-    NTSTATUS                    status;
-
-    Trace("====>\n");
-
-    ASSERT3U(Context->Affinity, ==, 0);
-
-    Cpu = 0;
-    while (Cpu < KeNumberProcessors) {
-        unsigned int    vcpu_id;
-        UCHAR           Vector;
-
-        vcpu_id = SystemVirtualCpuIndex(Cpu);
-        Vector = FdoGetInterruptVector(Context->Fdo,
-                                       Context->LatchedInterrupt[Cpu]);
-
-        status = HvmSetEvtchnUpcallVector(vcpu_id, Vector);
-        if (NT_SUCCESS(status)) {
-            Info("CPU %u\n", Cpu);
-            Context->Affinity |= (KAFFINITY)1 << Cpu;
-        }
-
-        Cpu++;
-    }
-
-    Line = FdoGetInterruptLine(Context->Fdo,
-                               Context->LevelSensitiveInterrupt);
-
-    status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, Line);
-    ASSERT(NT_SUCCESS(status));
-
-    Trace("<====\n");
-}
-
-static VOID
-EvtchnInterruptDisable(
-    IN  PXENBUS_EVTCHN_CONTEXT  Context
-    )
-{
-    LONG                        Cpu;
-    NTSTATUS                    status;
-
-    UNREFERENCED_PARAMETER(Context);
-
-    Trace("====>\n");
-
-    status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, 0);
-    ASSERT(NT_SUCCESS(status));
-
-    Cpu = KeNumberProcessors;
-    while (--Cpu >= 0) {
-        unsigned int    vcpu_id;
-
-        vcpu_id = SystemVirtualCpuIndex(Cpu);
-
-        (VOID) HvmSetEvtchnUpcallVector(vcpu_id, 0);
-        Context->Affinity &= ~((KAFFINITY)1 << Cpu);
-    }
-
-    ASSERT3U(Context->Affinity, ==, 0);
-
-    Trace("<====\n");
-}
-
 static NTSTATUS
 EvtchnOpenFixed(
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
@@ -394,14 +323,7 @@ EvtchnOpen(
     Channel->Active = TRUE;
 
     KeAcquireSpinLockAtDpcLevel(&Context->Lock);
-
     InsertTailList(&Context->List, &Channel->ListEntry);
-
-    if (!IsListEmpty(&Context->List) && !Context->Enabled) {
-        EvtchnInterruptEnable(Context);
-        Context->Enabled = TRUE;
-    }
-
     KeReleaseSpinLockFromDpcLevel(&Context->Lock);
 
     KeLowerIrql(Irql);
@@ -466,8 +388,6 @@ EvtchnBind(
     if (Cpu >= (ULONG)KeNumberProcessors)
         goto fail1;
 
-    ASSERT(Context->Enabled);
-
     status = STATUS_NOT_SUPPORTED;
     if (~Context->Affinity & ((KAFFINITY)1 << Cpu))
         goto fail2;
@@ -683,14 +603,7 @@ EvtchnClose(
     KeRaiseIrql(DISPATCH_LEVEL, &Irql); // Prevent suspend
 
     KeAcquireSpinLockAtDpcLevel(&Context->Lock);
-
     RemoveEntryList(&Channel->ListEntry);
-
-    if (IsListEmpty(&Context->List) && Context->Enabled) {
-        EvtchnInterruptDisable(Context);
-        Context->Enabled = FALSE;
-    }
-
     KeReleaseSpinLockFromDpcLevel(&Context->Lock);
 
     RtlZeroMemory(&Channel->ListEntry, sizeof (LIST_ENTRY));
@@ -870,6 +783,76 @@ EvtchnAbiRelease(
 }
 
 static VOID
+EvtchnInterruptEnable(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context
+    )
+{
+    LONG                        Cpu;
+    ULONG                       Line;
+    NTSTATUS                    status;
+
+    Trace("====>\n");
+
+    ASSERT3U(Context->Affinity, ==, 0);
+
+    Cpu = 0;
+    while (Cpu < KeNumberProcessors) {
+        unsigned int    vcpu_id;
+        UCHAR           Vector;
+
+        vcpu_id = SystemVirtualCpuIndex(Cpu);
+        Vector = FdoGetInterruptVector(Context->Fdo,
+                                       Context->LatchedInterrupt[Cpu]);
+
+        status = HvmSetEvtchnUpcallVector(vcpu_id, Vector);
+        if (NT_SUCCESS(status)) {
+            Info("CPU %u\n", Cpu);
+            Context->Affinity |= (KAFFINITY)1 << Cpu;
+        }
+
+        Cpu++;
+    }
+
+    Line = FdoGetInterruptLine(Context->Fdo,
+                               Context->LevelSensitiveInterrupt);
+
+    status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, Line);
+    ASSERT(NT_SUCCESS(status));
+
+    Trace("<====\n");
+}
+
+static VOID
+EvtchnInterruptDisable(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context
+    )
+{
+    LONG                        Cpu;
+    NTSTATUS                    status;
+
+    UNREFERENCED_PARAMETER(Context);
+
+    Trace("====>\n");
+
+    status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, 0);
+    ASSERT(NT_SUCCESS(status));
+
+    Cpu = KeNumberProcessors;
+    while (--Cpu >= 0) {
+        unsigned int    vcpu_id;
+
+        vcpu_id = SystemVirtualCpuIndex(Cpu);
+
+        (VOID) HvmSetEvtchnUpcallVector(vcpu_id, 0);
+        Context->Affinity &= ~((KAFFINITY)1 << Cpu);
+    }
+
+    ASSERT3U(Context->Affinity, ==, 0);
+
+    Trace("<====\n");
+}
+
+static VOID
 EvtchnSuspendCallbackEarly(
     IN  PVOID               Argument
     )
@@ -909,10 +892,8 @@ EvtchnSuspendCallbackLate(
     status = EvtchnAbiAcquire(Context);
     ASSERT(NT_SUCCESS(status));
 
-    if (Context->Enabled) {
-        EvtchnInterruptDisable(Context);
-        EvtchnInterruptEnable(Context);
-    }
+    EvtchnInterruptDisable(Context);
+    EvtchnInterruptEnable(Context);
 }
 
 static VOID
@@ -1082,6 +1063,8 @@ EvtchnAcquire(
         Cpu++;
     }
 
+    EvtchnInterruptEnable(Context);
+
     Trace("<====\n");
 
 done:
@@ -1174,6 +1157,8 @@ EvtchnRelease(
     if (!IsListEmpty(&Context->List))
         BUG("OUTSTANDING EVENT CHANNELS");
 
+    EvtchnInterruptDisable(Context);
+
     Cpu = KeNumberProcessors;
     while (--Cpu >= 0) {
         FdoFreeInterrupt(Fdo, Context->LatchedInterrupt[Cpu]);
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:45 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACv-0003gj-Lm; Tue, 27 Jan 2015 17:45:45 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACu-0003fq-JI
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:44 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	FB/1B-07052-7CEC7C45; Tue, 27 Jan 2015 17:45:43 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1422380743!22732152!1
X-Originating-IP: [74.125.82.45]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19735 invoked from network); 27 Jan 2015 17:45:43 -0000
Received: from mail-wg0-f45.google.com (HELO mail-wg0-f45.google.com)
	(74.125.82.45)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:43 -0000
Received: by mail-wg0-f45.google.com with SMTP id x12so16152594wgg.4
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=KAX3W2cWQ2FLwq6U2tiPkuaEkZHZVNKEClyTKyj7Pxc=;
	b=FB4RFQHGwniF0J+p9x3awHuq1nV4ceJ2tcEb5bEkTXSGCLcd/ZZR9FoWhr3gQ5eqqL
	/YO6Y0c20WAuAzDwII/J771dawVVBVgp6LxHpEmIBdOHCs87VkPEJTWzvsmIyf4YjBBg
	ocPayPC0vDyEsatrxoEljgLNYeKrTkTTdbRXLzZ5ECTUjqRNHeFQuqTt6iKV2ZT7yEyu
	LUrLGARot3D02wmqsLuCfDqN0BW1uohVcYt5EQ42oSufWqs0LgFK2RWYPCcB9+Yap+ed
	5Pedb1INa+cr1nqE4CQuyBCOroa7hMoR4zClFYdPiaK4jQF86wnuG8F434HMoA3HZR1X
	JZ2A==
X-Received: by 10.181.27.199 with SMTP id ji7mr8313682wid.76.1422380743090;
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.42
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:42 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:23 +0000
Message-Id: <1422380729-10928-10-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 09/15] The EVTCHN ABI Unmask methods should
	simply return Pending state
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The methods should not care whether the current thread is responsible for
clearing the mask.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn_fifo.c | 4 ----
 src/xenbus/shared_info.c | 4 +---
 2 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index f44f3fc..078e067 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -433,10 +433,6 @@ EvtchnFifoPortUnmask(
         New = Old & ~(1 << EVTCHN_FIFO_MASKED);
     } while (InterlockedCompareExchange((LONG *)EventWord, New, Old) != Old);
 
-    // Check whether the port was masked
-    if (~Old & (1 << EVTCHN_FIFO_MASKED))
-        return FALSE;
-
     // If we cleared the mask then check whether something is pending
     return __EvtchnFifoTestFlag(EventWord, EVTCHN_FIFO_PENDING);
 }
diff --git a/src/xenbus/shared_info.c b/src/xenbus/shared_info.c
index 240d87b..1aca2e2 100644
--- a/src/xenbus/shared_info.c
+++ b/src/xenbus/shared_info.c
@@ -309,9 +309,7 @@ SharedInfoEvtchnUnmask(
     SelectorBit = Port / XENBUS_SHARED_INFO_EVTCHN_PER_SELECTOR;
     PortBit = Port % XENBUS_SHARED_INFO_EVTCHN_PER_SELECTOR;
 
-    // Check whether the port is masked
-    if (!SharedInfoClearBit(&Shared->evtchn_mask[SelectorBit], PortBit))
-        return FALSE;
+    (VOID) SharedInfoClearBit(&Shared->evtchn_mask[SelectorBit], PortBit);
 
     KeMemoryBarrier();
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:45 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACv-0003gj-Lm; Tue, 27 Jan 2015 17:45:45 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACu-0003fq-JI
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:44 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	FB/1B-07052-7CEC7C45; Tue, 27 Jan 2015 17:45:43 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1422380743!22732152!1
X-Originating-IP: [74.125.82.45]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19735 invoked from network); 27 Jan 2015 17:45:43 -0000
Received: from mail-wg0-f45.google.com (HELO mail-wg0-f45.google.com)
	(74.125.82.45)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:43 -0000
Received: by mail-wg0-f45.google.com with SMTP id x12so16152594wgg.4
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=KAX3W2cWQ2FLwq6U2tiPkuaEkZHZVNKEClyTKyj7Pxc=;
	b=FB4RFQHGwniF0J+p9x3awHuq1nV4ceJ2tcEb5bEkTXSGCLcd/ZZR9FoWhr3gQ5eqqL
	/YO6Y0c20WAuAzDwII/J771dawVVBVgp6LxHpEmIBdOHCs87VkPEJTWzvsmIyf4YjBBg
	ocPayPC0vDyEsatrxoEljgLNYeKrTkTTdbRXLzZ5ECTUjqRNHeFQuqTt6iKV2ZT7yEyu
	LUrLGARot3D02wmqsLuCfDqN0BW1uohVcYt5EQ42oSufWqs0LgFK2RWYPCcB9+Yap+ed
	5Pedb1INa+cr1nqE4CQuyBCOroa7hMoR4zClFYdPiaK4jQF86wnuG8F434HMoA3HZR1X
	JZ2A==
X-Received: by 10.181.27.199 with SMTP id ji7mr8313682wid.76.1422380743090;
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.42
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:42 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:23 +0000
Message-Id: <1422380729-10928-10-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 09/15] The EVTCHN ABI Unmask methods should
	simply return Pending state
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The methods should not care whether the current thread is responsible for
clearing the mask.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn_fifo.c | 4 ----
 src/xenbus/shared_info.c | 4 +---
 2 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index f44f3fc..078e067 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -433,10 +433,6 @@ EvtchnFifoPortUnmask(
         New = Old & ~(1 << EVTCHN_FIFO_MASKED);
     } while (InterlockedCompareExchange((LONG *)EventWord, New, Old) != Old);
 
-    // Check whether the port was masked
-    if (~Old & (1 << EVTCHN_FIFO_MASKED))
-        return FALSE;
-
     // If we cleared the mask then check whether something is pending
     return __EvtchnFifoTestFlag(EventWord, EVTCHN_FIFO_PENDING);
 }
diff --git a/src/xenbus/shared_info.c b/src/xenbus/shared_info.c
index 240d87b..1aca2e2 100644
--- a/src/xenbus/shared_info.c
+++ b/src/xenbus/shared_info.c
@@ -309,9 +309,7 @@ SharedInfoEvtchnUnmask(
     SelectorBit = Port / XENBUS_SHARED_INFO_EVTCHN_PER_SELECTOR;
     PortBit = Port % XENBUS_SHARED_INFO_EVTCHN_PER_SELECTOR;
 
-    // Check whether the port is masked
-    if (!SharedInfoClearBit(&Shared->evtchn_mask[SelectorBit], PortBit))
-        return FALSE;
+    (VOID) SharedInfoClearBit(&Shared->evtchn_mask[SelectorBit], PortBit);
 
     KeMemoryBarrier();
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:46 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACw-0003hX-N0; Tue, 27 Jan 2015 17:45:46 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACv-0003gR-9H
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:45 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	F7/83-28502-8CEC7C45; Tue, 27 Jan 2015 17:45:44 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1422380743!18299151!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20882 invoked from network); 27 Jan 2015 17:45:44 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:44 -0000
Received: by mail-wi0-f172.google.com with SMTP id h11so6540115wiw.5
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=4T+QPjHDR3hS8dFCo+zHD5JzMethlnxWgw0IUKsxXyU=;
	b=oISPak8LUiUPLwsT9iijjGK6zt8p8ndgXd9jXgN7qs1U/fT8lJPdVKUPe1xEIBJbp0
	dkCUNvC8cZ6isgjhkR8GA8rI8rL9MXmOAdOUr51xsITyazPH6FjLZHwIew3ncQ4DPxRJ
	I0chpF31lIfgzTiI6XuYfHl7aBQFIYTyp3fONbI8jyvcvoZTZE7epvErcp4W9tNXMUk6
	sbQ9sICuRdgYgPKBMvTY8/kq3BWp67Ms2Runpc0w0W9ssJ4goi9mB8xi762/9IO8Luir
	glRaVaRo+6WtAneevbaGcWbx8x0YGhFakpS5av6qsbFAp/4m8w0nOJy92vLdOoKHh5RX
	kH0A==
X-Received: by 10.180.20.141 with SMTP id n13mr8176115wie.73.1422380743741;
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.43
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:24 +0000
Message-Id: <1422380729-10928-11-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 10/15] Simplify EVTCHN Unmask
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Just use the hypercall if the event channel is pending. It's a lot safer
than trying to avoid it.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 48 ++++--------------------------------------------
 1 file changed, 4 insertions(+), 44 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 453f9d6..e33a68e 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -493,9 +493,7 @@ EvtchnUnmask(
 {
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
     KIRQL                       Irql = PASSIVE_LEVEL;
-    BOOLEAN                     Pending;
     ULONG                       LocalPort;
-    ULONG                       Cpu;
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
@@ -504,59 +502,21 @@ EvtchnUnmask(
 
     ASSERT3U(KeGetCurrentIrql(), >=, DISPATCH_LEVEL);
 
-    Pending = FALSE;
-
     if (!Channel->Active)
         goto done;
 
     LocalPort = Channel->LocalPort;
 
-    Pending = XENBUS_EVTCHN_ABI(PortUnmask,
-                                &Context->EvtchnAbi,
-                                LocalPort);
-
-    if (!Pending)
-        goto done;
-
-    //
-    // If we are in context of the upcall then use a hypercall
-    // to schedule the pending event.
-    //
-    if (InUpcall) {
-        (VOID) EventChannelUnmask(LocalPort);
-
-        Pending = FALSE;
-        goto done;
-    }
-
-    //
-    // If we are not unmasking on the same CPU to which the
-    // event channel is bound, then we need to use a hypercall
-    // to schedule the upcall on the correct CPU.
-    //
-    Cpu = KeGetCurrentProcessorNumber();
-
-    if (Channel->Cpu != Cpu) {
-        (VOID) EventChannelUnmask(LocalPort);
-
-        Pending = FALSE;
-        goto done;
-    }
-
-    if (Channel->Mask)
-        XENBUS_EVTCHN_ABI(PortMask,
+    if (XENBUS_EVTCHN_ABI(PortUnmask,
                           &Context->EvtchnAbi,
-                          LocalPort);
-
-    XENBUS_EVTCHN_ABI(PortAck,
-                      &Context->EvtchnAbi,
-                      LocalPort);
+                          LocalPort))
+        (VOID) EventChannelUnmask(LocalPort);
 
 done:
     if (!InUpcall)
         KeReleaseSpinLock(&Channel->Lock, Irql);
 
-    return Pending;
+    return FALSE;
 }
 
 static NTSTATUS
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:46 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACw-0003hX-N0; Tue, 27 Jan 2015 17:45:46 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACv-0003gR-9H
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:45 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	F7/83-28502-8CEC7C45; Tue, 27 Jan 2015 17:45:44 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1422380743!18299151!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20882 invoked from network); 27 Jan 2015 17:45:44 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:44 -0000
Received: by mail-wi0-f172.google.com with SMTP id h11so6540115wiw.5
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=4T+QPjHDR3hS8dFCo+zHD5JzMethlnxWgw0IUKsxXyU=;
	b=oISPak8LUiUPLwsT9iijjGK6zt8p8ndgXd9jXgN7qs1U/fT8lJPdVKUPe1xEIBJbp0
	dkCUNvC8cZ6isgjhkR8GA8rI8rL9MXmOAdOUr51xsITyazPH6FjLZHwIew3ncQ4DPxRJ
	I0chpF31lIfgzTiI6XuYfHl7aBQFIYTyp3fONbI8jyvcvoZTZE7epvErcp4W9tNXMUk6
	sbQ9sICuRdgYgPKBMvTY8/kq3BWp67Ms2Runpc0w0W9ssJ4goi9mB8xi762/9IO8Luir
	glRaVaRo+6WtAneevbaGcWbx8x0YGhFakpS5av6qsbFAp/4m8w0nOJy92vLdOoKHh5RX
	kH0A==
X-Received: by 10.180.20.141 with SMTP id n13mr8176115wie.73.1422380743741;
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.43
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:24 +0000
Message-Id: <1422380729-10928-11-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 10/15] Simplify EVTCHN Unmask
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Just use the hypercall if the event channel is pending. It's a lot safer
than trying to avoid it.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 48 ++++--------------------------------------------
 1 file changed, 4 insertions(+), 44 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 453f9d6..e33a68e 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -493,9 +493,7 @@ EvtchnUnmask(
 {
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
     KIRQL                       Irql = PASSIVE_LEVEL;
-    BOOLEAN                     Pending;
     ULONG                       LocalPort;
-    ULONG                       Cpu;
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
@@ -504,59 +502,21 @@ EvtchnUnmask(
 
     ASSERT3U(KeGetCurrentIrql(), >=, DISPATCH_LEVEL);
 
-    Pending = FALSE;
-
     if (!Channel->Active)
         goto done;
 
     LocalPort = Channel->LocalPort;
 
-    Pending = XENBUS_EVTCHN_ABI(PortUnmask,
-                                &Context->EvtchnAbi,
-                                LocalPort);
-
-    if (!Pending)
-        goto done;
-
-    //
-    // If we are in context of the upcall then use a hypercall
-    // to schedule the pending event.
-    //
-    if (InUpcall) {
-        (VOID) EventChannelUnmask(LocalPort);
-
-        Pending = FALSE;
-        goto done;
-    }
-
-    //
-    // If we are not unmasking on the same CPU to which the
-    // event channel is bound, then we need to use a hypercall
-    // to schedule the upcall on the correct CPU.
-    //
-    Cpu = KeGetCurrentProcessorNumber();
-
-    if (Channel->Cpu != Cpu) {
-        (VOID) EventChannelUnmask(LocalPort);
-
-        Pending = FALSE;
-        goto done;
-    }
-
-    if (Channel->Mask)
-        XENBUS_EVTCHN_ABI(PortMask,
+    if (XENBUS_EVTCHN_ABI(PortUnmask,
                           &Context->EvtchnAbi,
-                          LocalPort);
-
-    XENBUS_EVTCHN_ABI(PortAck,
-                      &Context->EvtchnAbi,
-                      LocalPort);
+                          LocalPort))
+        (VOID) EventChannelUnmask(LocalPort);
 
 done:
     if (!InUpcall)
         KeReleaseSpinLock(&Channel->Lock, Irql);
 
-    return Pending;
+    return FALSE;
 }
 
 static NTSTATUS
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:47 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACx-0003i5-O4; Tue, 27 Jan 2015 17:45:47 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACw-0003gc-6d
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:46 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	F8/0A-27568-9CEC7C45; Tue, 27 Jan 2015 17:45:45 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1422380744!17120011!1
X-Originating-IP: [209.85.212.179]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31071 invoked from network); 27 Jan 2015 17:45:44 -0000
Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com)
	(209.85.212.179)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:44 -0000
Received: by mail-wi0-f179.google.com with SMTP id l15so6700837wiw.0
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=kNvPv8JNs9rM2NSFyMduKCnwaAS8dSjEKhYkTKQcM/E=;
	b=XXoqyCohbKUenieZ+TFVpKk8MSzqwAuQU6GKm54r1O3tPAqPlM2B3ZIXbf/3U2zfE2
	vCFe7bAJ1e1DUH49pAODmtnQyXoNJbtiZN6E5M/0YFN4iuoWxEd0F/G3aUWPD2sqZwFd
	KK+ziTWbgn5iUJvbK9ldyvtNP7Te0Zu5O+koliIz+lTXuTyZXAeUGut0yE8Ygi9h1Dnt
	PQefm4ujoW4L/gWPoSP3Id+Cq4LvSRCDXj+Er+oeJckcxr5GVI588quBgVPhOj1wRDHW
	ZroZ9+/oKOs5U8Ku9Txbjv3teh0G2AE7jYom0SZW9lI+SxstS0YCW8k0oSUeElYZeT8k
	MjVA==
X-Received: by 10.194.81.133 with SMTP id a5mr5332704wjy.44.1422380744368;
	Tue, 27 Jan 2015 09:45:44 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.43
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:25 +0000
Message-Id: <1422380729-10928-12-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 11/15] Update EVTCHN to version 3
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Since the Unmask method no longer returns any useful information, make it
void. This means we need to bump the interface version to 3.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 include/evtchn_interface.h | 33 ++++++++++++++++++++++++++++-----
 src/xenbus/evtchn.c        | 44 ++++++++++++++++++++++++++++++++++++++++++--
 src/xenbus/fdo.c           | 13 ++++---------
 src/xenbus/store.c         | 13 ++++---------
 4 files changed, 78 insertions(+), 25 deletions(-)

diff --git a/include/evtchn_interface.h b/include/evtchn_interface.h
index 4ab2b28..1bc456a 100644
--- a/include/evtchn_interface.h
+++ b/include/evtchn_interface.h
@@ -126,15 +126,21 @@ typedef NTSTATUS
     IN  ULONG                   Cpu
     );
 
+typedef BOOLEAN
+(*XENBUS_EVTCHN_UNMASK_V1)(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  BOOLEAN                 InCallback
+    );
+
 /*! \typedef XENBUS_EVTCHN_UNMASK
     \brief Unmask an event channel
 
     \param Interface The interface header
     \param Channel The channel handle
     \param InCallback Set to TRUE if this method is invoked in context of the channel callback
-    \return TRUE if there was an event pending at the point of unmask, FALSE otherwise
 */
-typedef BOOLEAN
+typedef VOID
 (*XENBUS_EVTCHN_UNMASK)(
     IN  PINTERFACE              Interface,
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
@@ -203,7 +209,7 @@ struct _XENBUS_EVTCHN_INTERFACE_V1 {
     XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
     XENBUS_EVTCHN_RELEASE   EvtchnRelease;
     XENBUS_EVTCHN_OPEN      EvtchnOpen;
-    XENBUS_EVTCHN_UNMASK    EvtchnUnmask;
+    XENBUS_EVTCHN_UNMASK_V1 EvtchnUnmaskVersion1;
     XENBUS_EVTCHN_SEND      EvtchnSend;
     XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
     XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
@@ -220,6 +226,23 @@ struct _XENBUS_EVTCHN_INTERFACE_V2 {
     XENBUS_EVTCHN_RELEASE   EvtchnRelease;
     XENBUS_EVTCHN_OPEN      EvtchnOpen;
     XENBUS_EVTCHN_BIND      EvtchnBind;
+    XENBUS_EVTCHN_UNMASK_V1 EvtchnUnmaskVersion1;
+    XENBUS_EVTCHN_SEND      EvtchnSend;
+    XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
+    XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
+    XENBUS_EVTCHN_CLOSE     EvtchnClose;
+};
+
+/*! \struct _XENBUS_EVTCHN_INTERFACE_V3
+    \brief EVTCHN interface version 3
+    \ingroup interfaces
+*/
+struct _XENBUS_EVTCHN_INTERFACE_V3 {
+    INTERFACE               Interface;
+    XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
+    XENBUS_EVTCHN_RELEASE   EvtchnRelease;
+    XENBUS_EVTCHN_OPEN      EvtchnOpen;
+    XENBUS_EVTCHN_BIND      EvtchnBind;
     XENBUS_EVTCHN_UNMASK    EvtchnUnmask;
     XENBUS_EVTCHN_SEND      EvtchnSend;
     XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
@@ -227,7 +250,7 @@ struct _XENBUS_EVTCHN_INTERFACE_V2 {
     XENBUS_EVTCHN_CLOSE     EvtchnClose;
 };
 
-typedef struct _XENBUS_EVTCHN_INTERFACE_V2 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVTCHN_INTERFACE;
+typedef struct _XENBUS_EVTCHN_INTERFACE_V3 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVTCHN_INTERFACE;
 
 /*! \def XENBUS_EVTCHN
     \brief Macro at assist in method invocation
@@ -238,7 +261,7 @@ typedef struct _XENBUS_EVTCHN_INTERFACE_V2 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVT
 #endif  // _WINDLL
 
 #define XENBUS_EVTCHN_INTERFACE_VERSION_MIN 1
-#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 2
+#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 3
 
 #endif  // _XENBUS_EVTCHN_INTERFACE_H
 
diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index e33a68e..4cb00eb 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -484,7 +484,7 @@ EvtchnTrigger(
     KeReleaseSpinLock(&Channel->Lock, Irql);
 }
 
-static BOOLEAN
+static VOID
 EvtchnUnmask(
     IN  PINTERFACE              Interface,
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
@@ -515,6 +515,16 @@ EvtchnUnmask(
 done:
     if (!InUpcall)
         KeReleaseSpinLock(&Channel->Lock, Irql);
+}
+
+static BOOLEAN
+EvtchnUnmaskVersion1(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  BOOLEAN                 InUpcall
+    )
+{
+    EvtchnUnmask(Interface, Channel, InUpcall);
 
     return FALSE;
 }
@@ -1162,7 +1172,7 @@ static struct _XENBUS_EVTCHN_INTERFACE_V1 EvtchnInterfaceVersion1 = {
     EvtchnAcquire,
     EvtchnRelease,
     EvtchnOpen,
-    EvtchnUnmask,
+    EvtchnUnmaskVersion1,
     EvtchnSend,
     EvtchnTrigger,
     EvtchnGetPort,
@@ -1175,6 +1185,19 @@ static struct _XENBUS_EVTCHN_INTERFACE_V2 EvtchnInterfaceVersion2 = {
     EvtchnRelease,
     EvtchnOpen,
     EvtchnBind,
+    EvtchnUnmaskVersion1,
+    EvtchnSend,
+    EvtchnTrigger,
+    EvtchnGetPort,
+    EvtchnClose
+};
+
+static struct _XENBUS_EVTCHN_INTERFACE_V3 EvtchnInterfaceVersion3 = {
+    { sizeof (struct _XENBUS_EVTCHN_INTERFACE_V3), 3, NULL, NULL, NULL },
+    EvtchnAcquire,
+    EvtchnRelease,
+    EvtchnOpen,
+    EvtchnBind,
     EvtchnUnmask,
     EvtchnSend,
     EvtchnTrigger,
@@ -1325,6 +1348,23 @@ EvtchnGetInterface(
         status = STATUS_SUCCESS;
         break;
     }
+    case 3: {
+        struct _XENBUS_EVTCHN_INTERFACE_V3  *EvtchnInterface;
+
+        EvtchnInterface = (struct _XENBUS_EVTCHN_INTERFACE_V3 *)Interface;
+
+        status = STATUS_BUFFER_OVERFLOW;
+        if (Size < sizeof (struct _XENBUS_EVTCHN_INTERFACE_V3))
+            break;
+
+        *EvtchnInterface = EvtchnInterfaceVersion3;
+
+        ASSERT3U(Interface->Version, ==, Version);
+        Interface->Context = Context;
+
+        status = STATUS_SUCCESS;
+        break;
+    }
     default:
         status = STATUS_NOT_SUPPORTED;
         break;
diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c
index 1a122c0..7115d8e 100644
--- a/src/xenbus/fdo.c
+++ b/src/xenbus/fdo.c
@@ -2016,7 +2016,6 @@ __FdoD3ToD0(
     IN  PXENBUS_FDO Fdo
     )
 {
-    BOOLEAN         Pending;
     NTSTATUS        status;
 
     Trace("====>\n");
@@ -2034,14 +2033,10 @@ __FdoD3ToD0(
     if (Fdo->Channel == NULL)
         goto fail1;
 
-    Pending = XENBUS_EVTCHN(Unmask,
-                            &Fdo->EvtchnInterface,
-                            Fdo->Channel,
-                            FALSE);
-    if (Pending)
-        XENBUS_EVTCHN(Trigger,
-                      &Fdo->EvtchnInterface,
-                      Fdo->Channel);
+    XENBUS_EVTCHN(Unmask,
+                  &Fdo->EvtchnInterface,
+                  Fdo->Channel,
+                  FALSE);
 
     status = XENBUS_STORE(WatchAdd,
                           &Fdo->StoreInterface,
diff --git a/src/xenbus/store.c b/src/xenbus/store.c
index 04fce3a..9d581f5 100644
--- a/src/xenbus/store.c
+++ b/src/xenbus/store.c
@@ -1827,7 +1827,6 @@ StoreEnable(
 {
     ULONGLONG                   Value;
     ULONG                       Port;
-    BOOLEAN                     Pending;
     NTSTATUS                    status;
 
     status = HvmGetParam(HVM_PARAM_STORE_EVTCHN, &Value);
@@ -1857,14 +1856,10 @@ StoreEnable(
                          Context->Channel,
                          KeNumberProcessors - 1);
 
-    Pending = XENBUS_EVTCHN(Unmask,
-                            &Context->EvtchnInterface,
-                            Context->Channel,
-                            FALSE);
-    if (Pending)
-        XENBUS_EVTCHN(Trigger,
-                      &Context->EvtchnInterface,
-                      Context->Channel);
+    XENBUS_EVTCHN(Unmask,
+                  &Context->EvtchnInterface,
+                  Context->Channel,
+                  FALSE);
 }
 
 static PHYSICAL_ADDRESS
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:47 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACx-0003i5-O4; Tue, 27 Jan 2015 17:45:47 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACw-0003gc-6d
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:46 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	F8/0A-27568-9CEC7C45; Tue, 27 Jan 2015 17:45:45 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1422380744!17120011!1
X-Originating-IP: [209.85.212.179]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31071 invoked from network); 27 Jan 2015 17:45:44 -0000
Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com)
	(209.85.212.179)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:44 -0000
Received: by mail-wi0-f179.google.com with SMTP id l15so6700837wiw.0
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=kNvPv8JNs9rM2NSFyMduKCnwaAS8dSjEKhYkTKQcM/E=;
	b=XXoqyCohbKUenieZ+TFVpKk8MSzqwAuQU6GKm54r1O3tPAqPlM2B3ZIXbf/3U2zfE2
	vCFe7bAJ1e1DUH49pAODmtnQyXoNJbtiZN6E5M/0YFN4iuoWxEd0F/G3aUWPD2sqZwFd
	KK+ziTWbgn5iUJvbK9ldyvtNP7Te0Zu5O+koliIz+lTXuTyZXAeUGut0yE8Ygi9h1Dnt
	PQefm4ujoW4L/gWPoSP3Id+Cq4LvSRCDXj+Er+oeJckcxr5GVI588quBgVPhOj1wRDHW
	ZroZ9+/oKOs5U8Ku9Txbjv3teh0G2AE7jYom0SZW9lI+SxstS0YCW8k0oSUeElYZeT8k
	MjVA==
X-Received: by 10.194.81.133 with SMTP id a5mr5332704wjy.44.1422380744368;
	Tue, 27 Jan 2015 09:45:44 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.43
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:43 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:25 +0000
Message-Id: <1422380729-10928-12-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 11/15] Update EVTCHN to version 3
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Since the Unmask method no longer returns any useful information, make it
void. This means we need to bump the interface version to 3.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 include/evtchn_interface.h | 33 ++++++++++++++++++++++++++++-----
 src/xenbus/evtchn.c        | 44 ++++++++++++++++++++++++++++++++++++++++++--
 src/xenbus/fdo.c           | 13 ++++---------
 src/xenbus/store.c         | 13 ++++---------
 4 files changed, 78 insertions(+), 25 deletions(-)

diff --git a/include/evtchn_interface.h b/include/evtchn_interface.h
index 4ab2b28..1bc456a 100644
--- a/include/evtchn_interface.h
+++ b/include/evtchn_interface.h
@@ -126,15 +126,21 @@ typedef NTSTATUS
     IN  ULONG                   Cpu
     );
 
+typedef BOOLEAN
+(*XENBUS_EVTCHN_UNMASK_V1)(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  BOOLEAN                 InCallback
+    );
+
 /*! \typedef XENBUS_EVTCHN_UNMASK
     \brief Unmask an event channel
 
     \param Interface The interface header
     \param Channel The channel handle
     \param InCallback Set to TRUE if this method is invoked in context of the channel callback
-    \return TRUE if there was an event pending at the point of unmask, FALSE otherwise
 */
-typedef BOOLEAN
+typedef VOID
 (*XENBUS_EVTCHN_UNMASK)(
     IN  PINTERFACE              Interface,
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
@@ -203,7 +209,7 @@ struct _XENBUS_EVTCHN_INTERFACE_V1 {
     XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
     XENBUS_EVTCHN_RELEASE   EvtchnRelease;
     XENBUS_EVTCHN_OPEN      EvtchnOpen;
-    XENBUS_EVTCHN_UNMASK    EvtchnUnmask;
+    XENBUS_EVTCHN_UNMASK_V1 EvtchnUnmaskVersion1;
     XENBUS_EVTCHN_SEND      EvtchnSend;
     XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
     XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
@@ -220,6 +226,23 @@ struct _XENBUS_EVTCHN_INTERFACE_V2 {
     XENBUS_EVTCHN_RELEASE   EvtchnRelease;
     XENBUS_EVTCHN_OPEN      EvtchnOpen;
     XENBUS_EVTCHN_BIND      EvtchnBind;
+    XENBUS_EVTCHN_UNMASK_V1 EvtchnUnmaskVersion1;
+    XENBUS_EVTCHN_SEND      EvtchnSend;
+    XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
+    XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
+    XENBUS_EVTCHN_CLOSE     EvtchnClose;
+};
+
+/*! \struct _XENBUS_EVTCHN_INTERFACE_V3
+    \brief EVTCHN interface version 3
+    \ingroup interfaces
+*/
+struct _XENBUS_EVTCHN_INTERFACE_V3 {
+    INTERFACE               Interface;
+    XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
+    XENBUS_EVTCHN_RELEASE   EvtchnRelease;
+    XENBUS_EVTCHN_OPEN      EvtchnOpen;
+    XENBUS_EVTCHN_BIND      EvtchnBind;
     XENBUS_EVTCHN_UNMASK    EvtchnUnmask;
     XENBUS_EVTCHN_SEND      EvtchnSend;
     XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
@@ -227,7 +250,7 @@ struct _XENBUS_EVTCHN_INTERFACE_V2 {
     XENBUS_EVTCHN_CLOSE     EvtchnClose;
 };
 
-typedef struct _XENBUS_EVTCHN_INTERFACE_V2 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVTCHN_INTERFACE;
+typedef struct _XENBUS_EVTCHN_INTERFACE_V3 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVTCHN_INTERFACE;
 
 /*! \def XENBUS_EVTCHN
     \brief Macro at assist in method invocation
@@ -238,7 +261,7 @@ typedef struct _XENBUS_EVTCHN_INTERFACE_V2 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVT
 #endif  // _WINDLL
 
 #define XENBUS_EVTCHN_INTERFACE_VERSION_MIN 1
-#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 2
+#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 3
 
 #endif  // _XENBUS_EVTCHN_INTERFACE_H
 
diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index e33a68e..4cb00eb 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -484,7 +484,7 @@ EvtchnTrigger(
     KeReleaseSpinLock(&Channel->Lock, Irql);
 }
 
-static BOOLEAN
+static VOID
 EvtchnUnmask(
     IN  PINTERFACE              Interface,
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
@@ -515,6 +515,16 @@ EvtchnUnmask(
 done:
     if (!InUpcall)
         KeReleaseSpinLock(&Channel->Lock, Irql);
+}
+
+static BOOLEAN
+EvtchnUnmaskVersion1(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  BOOLEAN                 InUpcall
+    )
+{
+    EvtchnUnmask(Interface, Channel, InUpcall);
 
     return FALSE;
 }
@@ -1162,7 +1172,7 @@ static struct _XENBUS_EVTCHN_INTERFACE_V1 EvtchnInterfaceVersion1 = {
     EvtchnAcquire,
     EvtchnRelease,
     EvtchnOpen,
-    EvtchnUnmask,
+    EvtchnUnmaskVersion1,
     EvtchnSend,
     EvtchnTrigger,
     EvtchnGetPort,
@@ -1175,6 +1185,19 @@ static struct _XENBUS_EVTCHN_INTERFACE_V2 EvtchnInterfaceVersion2 = {
     EvtchnRelease,
     EvtchnOpen,
     EvtchnBind,
+    EvtchnUnmaskVersion1,
+    EvtchnSend,
+    EvtchnTrigger,
+    EvtchnGetPort,
+    EvtchnClose
+};
+
+static struct _XENBUS_EVTCHN_INTERFACE_V3 EvtchnInterfaceVersion3 = {
+    { sizeof (struct _XENBUS_EVTCHN_INTERFACE_V3), 3, NULL, NULL, NULL },
+    EvtchnAcquire,
+    EvtchnRelease,
+    EvtchnOpen,
+    EvtchnBind,
     EvtchnUnmask,
     EvtchnSend,
     EvtchnTrigger,
@@ -1325,6 +1348,23 @@ EvtchnGetInterface(
         status = STATUS_SUCCESS;
         break;
     }
+    case 3: {
+        struct _XENBUS_EVTCHN_INTERFACE_V3  *EvtchnInterface;
+
+        EvtchnInterface = (struct _XENBUS_EVTCHN_INTERFACE_V3 *)Interface;
+
+        status = STATUS_BUFFER_OVERFLOW;
+        if (Size < sizeof (struct _XENBUS_EVTCHN_INTERFACE_V3))
+            break;
+
+        *EvtchnInterface = EvtchnInterfaceVersion3;
+
+        ASSERT3U(Interface->Version, ==, Version);
+        Interface->Context = Context;
+
+        status = STATUS_SUCCESS;
+        break;
+    }
     default:
         status = STATUS_NOT_SUPPORTED;
         break;
diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c
index 1a122c0..7115d8e 100644
--- a/src/xenbus/fdo.c
+++ b/src/xenbus/fdo.c
@@ -2016,7 +2016,6 @@ __FdoD3ToD0(
     IN  PXENBUS_FDO Fdo
     )
 {
-    BOOLEAN         Pending;
     NTSTATUS        status;
 
     Trace("====>\n");
@@ -2034,14 +2033,10 @@ __FdoD3ToD0(
     if (Fdo->Channel == NULL)
         goto fail1;
 
-    Pending = XENBUS_EVTCHN(Unmask,
-                            &Fdo->EvtchnInterface,
-                            Fdo->Channel,
-                            FALSE);
-    if (Pending)
-        XENBUS_EVTCHN(Trigger,
-                      &Fdo->EvtchnInterface,
-                      Fdo->Channel);
+    XENBUS_EVTCHN(Unmask,
+                  &Fdo->EvtchnInterface,
+                  Fdo->Channel,
+                  FALSE);
 
     status = XENBUS_STORE(WatchAdd,
                           &Fdo->StoreInterface,
diff --git a/src/xenbus/store.c b/src/xenbus/store.c
index 04fce3a..9d581f5 100644
--- a/src/xenbus/store.c
+++ b/src/xenbus/store.c
@@ -1827,7 +1827,6 @@ StoreEnable(
 {
     ULONGLONG                   Value;
     ULONG                       Port;
-    BOOLEAN                     Pending;
     NTSTATUS                    status;
 
     status = HvmGetParam(HVM_PARAM_STORE_EVTCHN, &Value);
@@ -1857,14 +1856,10 @@ StoreEnable(
                          Context->Channel,
                          KeNumberProcessors - 1);
 
-    Pending = XENBUS_EVTCHN(Unmask,
-                            &Context->EvtchnInterface,
-                            Context->Channel,
-                            FALSE);
-    if (Pending)
-        XENBUS_EVTCHN(Trigger,
-                      &Context->EvtchnInterface,
-                      Context->Channel);
+    XENBUS_EVTCHN(Unmask,
+                  &Context->EvtchnInterface,
+                  Context->Channel,
+                  FALSE);
 }
 
 static PHYSICAL_ADDRESS
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:47 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACx-0003iC-PR; Tue, 27 Jan 2015 17:45:47 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACw-0003hN-Of
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:46 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	1A/54-30245-ACEC7C45; Tue, 27 Jan 2015 17:45:46 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1422380745!20460638!1
X-Originating-IP: [74.125.82.169]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5866 invoked from network); 27 Jan 2015 17:45:45 -0000
Received: from mail-we0-f169.google.com (HELO mail-we0-f169.google.com)
	(74.125.82.169)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:45 -0000
Received: by mail-we0-f169.google.com with SMTP id u56so16337195wes.0
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=oc4oAJkaPXo2oUisiIGkQaYBe+zqe5lWuruPtcQ4WPM=;
	b=C0904EnYRJMiXwshd+j89MLyutNU9aEfv1AKJon6LRduk9ERvT4NMJvvVsutpSrrGA
	UyLaZdGuANvLfZ/5Lk4jfLyQOfUk6/9cmDdnfJ/aSPJht/DM2QZlBSFUzacM1LNeSFAf
	8bBrGAEYN37p5NqZKezPMkyRbKtdQprXa7DPYKNVG7Mm1lb2be7L/yfzYxAEN+9bPcWT
	b3XxrVMEZ2ehKEOSHhoD+d9mmICsEkcE/+fTV7nXM8WV9bpIsRXrh9w3O8ta7xYpYprZ
	9yUTm5FeanEH/BQnEwtZWpIZRJCHdRYNpuOa1YxdnRLuwfZX3Dxn5JfTz7bE8ABj6ZW8
	K0hw==
X-Received: by 10.180.85.33 with SMTP id e1mr44575793wiz.55.1422380745155;
	Tue, 27 Jan 2015 09:45:45 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.44
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:44 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:26 +0000
Message-Id: <1422380729-10928-13-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 12/15] Use a DPC per CPU for EVTCHN Trigger
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Using a single DPC potentially means re-afinitizing it for each use, and
this potentially means Windows could try to insert it onto multiple CPU
queues at the same time, which probably won't end well. Using a DPC per
CPU seems a lot safer.

Also add a DPC flush before we zero out data structures.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 4cb00eb..81f97e4 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -105,7 +105,7 @@ struct _XENBUS_EVTCHN_CONTEXT {
     BOOLEAN                         UseEvtchnFifoAbi;
     PXENBUS_HASH_TABLE              Table;
     LIST_ENTRY                      List;
-    KDPC                            Dpc;
+    KDPC                            Dpc[MAXIMUM_PROCESSORS];
 };
 
 #define XENBUS_EVTCHN_TAG  'CTVE'
@@ -471,14 +471,14 @@ EvtchnTrigger(
     )
 {
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
-    PKDPC                       Dpc = &Context->Dpc;
+    PKDPC                       Dpc;
     KIRQL                       Irql;
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
     KeAcquireSpinLock(&Channel->Lock, &Irql);
 
-    KeSetTargetProcessorDpc(Dpc, (CCHAR)Channel->Cpu);
+    Dpc = &Context->Dpc[Channel->Cpu];
     KeInsertQueueDpc(Dpc, Channel, NULL);
 
     KeReleaseSpinLock(&Channel->Lock, Irql);
@@ -1213,6 +1213,7 @@ EvtchnInitialize(
 {
     HANDLE                      ParametersKey;
     ULONG                       UseEvtchnFifoAbi;
+    ULONG                       Cpu;
     NTSTATUS                    status;
 
     Trace("====>\n");
@@ -1269,7 +1270,13 @@ EvtchnInitialize(
 
     InitializeListHead(&(*Context)->List);
     KeInitializeSpinLock(&(*Context)->Lock);
-    KeInitializeDpc(&(*Context)->Dpc, EvtchnCallback, Context);
+
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
+        PKDPC   Dpc = &(*Context)->Dpc[Cpu];
+
+        KeInitializeDpc(Dpc, EvtchnCallback, *Context);
+        KeSetTargetProcessorDpc(Dpc, (CCHAR)Cpu);
+    }
 
     (*Context)->Fdo = Fdo;
 
@@ -1380,9 +1387,12 @@ EvtchnTeardown(
 {
     Trace("====>\n");
 
+    ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
+    KeFlushQueuedDpcs();
+
     Context->Fdo = NULL;
 
-    RtlZeroMemory(&Context->Dpc, sizeof (KDPC));
+    RtlZeroMemory(&Context->Dpc, sizeof (KDPC) * MAXIMUM_PROCESSORS);
     RtlZeroMemory(&Context->Lock, sizeof (KSPIN_LOCK));
     RtlZeroMemory(&Context->List, sizeof (LIST_ENTRY));
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:47 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACx-0003iC-PR; Tue, 27 Jan 2015 17:45:47 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACw-0003hN-Of
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:46 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	1A/54-30245-ACEC7C45; Tue, 27 Jan 2015 17:45:46 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1422380745!20460638!1
X-Originating-IP: [74.125.82.169]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5866 invoked from network); 27 Jan 2015 17:45:45 -0000
Received: from mail-we0-f169.google.com (HELO mail-we0-f169.google.com)
	(74.125.82.169)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:45 -0000
Received: by mail-we0-f169.google.com with SMTP id u56so16337195wes.0
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=oc4oAJkaPXo2oUisiIGkQaYBe+zqe5lWuruPtcQ4WPM=;
	b=C0904EnYRJMiXwshd+j89MLyutNU9aEfv1AKJon6LRduk9ERvT4NMJvvVsutpSrrGA
	UyLaZdGuANvLfZ/5Lk4jfLyQOfUk6/9cmDdnfJ/aSPJht/DM2QZlBSFUzacM1LNeSFAf
	8bBrGAEYN37p5NqZKezPMkyRbKtdQprXa7DPYKNVG7Mm1lb2be7L/yfzYxAEN+9bPcWT
	b3XxrVMEZ2ehKEOSHhoD+d9mmICsEkcE/+fTV7nXM8WV9bpIsRXrh9w3O8ta7xYpYprZ
	9yUTm5FeanEH/BQnEwtZWpIZRJCHdRYNpuOa1YxdnRLuwfZX3Dxn5JfTz7bE8ABj6ZW8
	K0hw==
X-Received: by 10.180.85.33 with SMTP id e1mr44575793wiz.55.1422380745155;
	Tue, 27 Jan 2015 09:45:45 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.44
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:44 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:26 +0000
Message-Id: <1422380729-10928-13-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 12/15] Use a DPC per CPU for EVTCHN Trigger
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Using a single DPC potentially means re-afinitizing it for each use, and
this potentially means Windows could try to insert it onto multiple CPU
queues at the same time, which probably won't end well. Using a DPC per
CPU seems a lot safer.

Also add a DPC flush before we zero out data structures.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 4cb00eb..81f97e4 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -105,7 +105,7 @@ struct _XENBUS_EVTCHN_CONTEXT {
     BOOLEAN                         UseEvtchnFifoAbi;
     PXENBUS_HASH_TABLE              Table;
     LIST_ENTRY                      List;
-    KDPC                            Dpc;
+    KDPC                            Dpc[MAXIMUM_PROCESSORS];
 };
 
 #define XENBUS_EVTCHN_TAG  'CTVE'
@@ -471,14 +471,14 @@ EvtchnTrigger(
     )
 {
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
-    PKDPC                       Dpc = &Context->Dpc;
+    PKDPC                       Dpc;
     KIRQL                       Irql;
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
     KeAcquireSpinLock(&Channel->Lock, &Irql);
 
-    KeSetTargetProcessorDpc(Dpc, (CCHAR)Channel->Cpu);
+    Dpc = &Context->Dpc[Channel->Cpu];
     KeInsertQueueDpc(Dpc, Channel, NULL);
 
     KeReleaseSpinLock(&Channel->Lock, Irql);
@@ -1213,6 +1213,7 @@ EvtchnInitialize(
 {
     HANDLE                      ParametersKey;
     ULONG                       UseEvtchnFifoAbi;
+    ULONG                       Cpu;
     NTSTATUS                    status;
 
     Trace("====>\n");
@@ -1269,7 +1270,13 @@ EvtchnInitialize(
 
     InitializeListHead(&(*Context)->List);
     KeInitializeSpinLock(&(*Context)->Lock);
-    KeInitializeDpc(&(*Context)->Dpc, EvtchnCallback, Context);
+
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
+        PKDPC   Dpc = &(*Context)->Dpc[Cpu];
+
+        KeInitializeDpc(Dpc, EvtchnCallback, *Context);
+        KeSetTargetProcessorDpc(Dpc, (CCHAR)Cpu);
+    }
 
     (*Context)->Fdo = Fdo;
 
@@ -1380,9 +1387,12 @@ EvtchnTeardown(
 {
     Trace("====>\n");
 
+    ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
+    KeFlushQueuedDpcs();
+
     Context->Fdo = NULL;
 
-    RtlZeroMemory(&Context->Dpc, sizeof (KDPC));
+    RtlZeroMemory(&Context->Dpc, sizeof (KDPC) * MAXIMUM_PROCESSORS);
     RtlZeroMemory(&Context->Lock, sizeof (KSPIN_LOCK));
     RtlZeroMemory(&Context->List, sizeof (LIST_ENTRY));
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:49 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACz-0003jH-RZ; Tue, 27 Jan 2015 17:45:49 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACy-0003i4-7t
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:48 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
	3E/F2-02099-BCEC7C45; Tue, 27 Jan 2015 17:45:47 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1422380746!22769945!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20281 invoked from network); 27 Jan 2015 17:45:46 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:46 -0000
Received: by mail-wi0-f176.google.com with SMTP id em10so6562654wid.3
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=5Mb7M4Bf+VH+D3RcCkQPtTuEMGcFPCYeVu9e/58r+dk=;
	b=B6jcngTLDd9HQCIu/9oXft+z05gy8Qw78xWoGSyddE7qHwCEdkZk3CHCHBolkGe7CS
	ap3/fRgDE6mB/8mZ2t3T11lmycJpS2V1sUh6lxMtLly/CWx6S3XeqW7LMM/zg98DCos6
	lXrJI+ThUSB3SKEdPUDuUf0eLbhaZUoVl+VmxmzfFO58rTbRTeA7ucgsMtFw2DWc/6NZ
	1e5G0Q4s9dR7tkM+9RZRm6YWcVWUZmaiMQc5Ts/onMzOITaNDtlOcSuccPjNm1uWzx8c
	ogeI/Tam8keIYFGbM6ZIzk+GestjgUqE3K3CgvWVBRNuwI4SfCiHDoVuV+f4XSyAjRs5
	ykgw==
X-Received: by 10.194.71.45 with SMTP id r13mr178286wju.128.1422380746268;
	Tue, 27 Jan 2015 09:45:46 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.45
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:45 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:27 +0000
Message-Id: <1422380729-10928-14-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 13/15] Re-work EVTCHN Trigger
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

By re-working the event channel poll callback to add pending channels to a
list and then service them, we can tidy up Trigger by forcibly appending a
channel to the same list and then scheduling a DPC on the correct cpu to
service in the list (unless an interrupt callback came along in the interim
and did the job).

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 212 ++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 148 insertions(+), 64 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 81f97e4..437bfac 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -75,6 +75,7 @@ struct _XENBUS_EVTCHN_CHANNEL {
     ULONG                       Magic;
     KSPIN_LOCK                  Lock;
     LIST_ENTRY                  ListEntry;
+    LIST_ENTRY                  PendingListEntry;
     PVOID                       Caller;
     PKSERVICE_ROUTINE           Callback;
     PVOID                       Argument;
@@ -105,6 +106,7 @@ struct _XENBUS_EVTCHN_CONTEXT {
     BOOLEAN                         UseEvtchnFifoAbi;
     PXENBUS_HASH_TABLE              Table;
     LIST_ENTRY                      List;
+    LIST_ENTRY                      PendingList[MAXIMUM_PROCESSORS];
     KDPC                            Dpc[MAXIMUM_PROCESSORS];
 };
 
@@ -308,6 +310,8 @@ EvtchnOpen(
 
     LocalPort = Channel->LocalPort;
 
+    InitializeListHead(&Channel->PendingListEntry);
+
     status = XENBUS_EVTCHN_ABI(PortEnable,
                                &Context->EvtchnAbi,
                                LocalPort);
@@ -342,6 +346,9 @@ fail4:
 fail3:
     Error("fail3\n");
 
+    ASSERT(IsListEmpty(&Channel->PendingListEntry));
+    RtlZeroMemory(&Channel->PendingListEntry, sizeof (LIST_ENTRY));
+
     Channel->LocalPort = 0;
     Channel->Mask = FALSE;
     RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
@@ -430,6 +437,102 @@ fail1:
     return status;
 }
 
+static BOOLEAN
+EvtchnPollCallback(
+    IN  PVOID               Argument,
+    IN  ULONG               LocalPort
+    )
+{
+    PXENBUS_EVTCHN_CONTEXT  Context = Argument;
+    ULONG                   Cpu;
+    PXENBUS_EVTCHN_CHANNEL  Channel;
+    BOOLEAN                 Pending;
+    NTSTATUS                status;
+
+    ASSERT3U(KeGetCurrentIrql(), >=, DISPATCH_LEVEL);
+    Cpu = KeGetCurrentProcessorNumber();
+
+    status = HashTableLookup(Context->Table,
+                             LocalPort,
+                             (PULONG_PTR)&Channel);
+    if (!NT_SUCCESS(status))
+        goto done;
+
+    ASSERT3U(Channel->LocalPort, ==, LocalPort);
+
+    Pending = !IsListEmpty(&Channel->PendingListEntry);
+
+    if (!Pending)
+        InsertTailList(&Context->PendingList[Cpu],
+                       &Channel->PendingListEntry);
+
+done:
+    return FALSE;
+}
+
+static BOOLEAN
+EvtchnPoll(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context,
+    IN  ULONG                   Cpu
+    )
+{
+    BOOLEAN                     DoneSomething;
+
+    (VOID) XENBUS_EVTCHN_ABI(Poll,
+                             &Context->EvtchnAbi,
+                             Cpu,
+                             EvtchnPollCallback,
+                             Context);
+
+    DoneSomething = FALSE;
+    while (!IsListEmpty(&Context->PendingList[Cpu])) {
+        PLIST_ENTRY             ListEntry;
+        PXENBUS_EVTCHN_CHANNEL  Channel;
+
+        ListEntry = RemoveHeadList(&Context->PendingList[Cpu]);
+        ASSERT(ListEntry != &Context->PendingList[Cpu]);
+
+        InitializeListHead(ListEntry);
+
+        Channel = CONTAINING_RECORD(ListEntry,
+                                    XENBUS_EVTCHN_CHANNEL,
+                                    PendingListEntry);
+        if (Channel->Mask)
+            XENBUS_EVTCHN_ABI(PortMask,
+                              &Context->EvtchnAbi,
+                              Channel->LocalPort);
+
+        XENBUS_EVTCHN_ABI(PortAck,
+                          &Context->EvtchnAbi,
+                          Channel->LocalPort);
+
+#pragma warning(suppress:6387)  // NULL argument
+        DoneSomething |= Channel->Callback(NULL, Channel->Argument);
+    }
+
+    return DoneSomething;
+}
+
+static VOID
+EvtchnFlush(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context,
+    IN  ULONG                   Cpu
+    )
+{
+    PXENBUS_INTERRUPT           Interrupt;
+    KIRQL                       Irql;
+
+    Interrupt = (Context->Affinity != 0) ? // Latched available
+                Context->LatchedInterrupt[Cpu] :
+                Context->LevelSensitiveInterrupt;
+
+    Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
+
+    (VOID) EvtchnPoll(Context, Cpu);
+
+    FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
+}
+
 static
 _Function_class_(KDEFERRED_ROUTINE)
 _IRQL_requires_max_(DISPATCH_LEVEL)
@@ -437,7 +540,7 @@ _IRQL_requires_min_(DISPATCH_LEVEL)
 _IRQL_requires_(DISPATCH_LEVEL)
 _IRQL_requires_same_
 VOID
-EvtchnCallback(
+EvtchnDpc(
     IN  PKDPC               Dpc,
     IN  PVOID               _Context,
     IN  PVOID               Argument1,
@@ -445,23 +548,24 @@ EvtchnCallback(
     )
 {
     PXENBUS_EVTCHN_CONTEXT  Context = _Context;
-    PXENBUS_EVTCHN_CHANNEL  Channel = Argument1;
-    PXENBUS_INTERRUPT       Interrupt;
-    KIRQL                   Irql;
+    ULONG                   Cpu;
 
     UNREFERENCED_PARAMETER(Dpc);
+    UNREFERENCED_PARAMETER(Argument1);
     UNREFERENCED_PARAMETER(Argument2);
 
-    Interrupt = (Context->Affinity != 0) ? // Latched available
-                Context->LatchedInterrupt[Channel->Cpu] :
-                Context->LevelSensitiveInterrupt;
+    ASSERT3U(KeGetCurrentIrql(), >=, DISPATCH_LEVEL);
+    Cpu = KeGetCurrentProcessorNumber();
 
-    Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
+    KeAcquireSpinLockAtDpcLevel(&Context->Lock);
 
-#pragma warning(suppress:6387)  // NULL argument
-    (VOID) Channel->Callback(NULL, Channel->Argument);
+    if (Context->References == 0)
+        goto done;
 
-    FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
+    EvtchnFlush(Context, Cpu);
+
+done:
+    KeReleaseSpinLockFromDpcLevel(&Context->Lock);
 }
 
 static VOID
@@ -473,15 +577,35 @@ EvtchnTrigger(
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
     PKDPC                       Dpc;
     KIRQL                       Irql;
+    ULONG                       Cpu;
+    PXENBUS_INTERRUPT           Interrupt;
+    BOOLEAN                     Pending;
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
     KeAcquireSpinLock(&Channel->Lock, &Irql);
+    Cpu = Channel->Cpu;
+    KeReleaseSpinLock(&Channel->Lock, Irql);
 
-    Dpc = &Context->Dpc[Channel->Cpu];
-    KeInsertQueueDpc(Dpc, Channel, NULL);
+    Interrupt = (Context->Affinity != 0) ? // Latched available
+                Context->LatchedInterrupt[Cpu] :
+                Context->LevelSensitiveInterrupt;
 
-    KeReleaseSpinLock(&Channel->Lock, Irql);
+    Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
+
+    Pending = !IsListEmpty(&Channel->PendingListEntry);
+
+    if (!Pending)
+        InsertTailList(&Context->PendingList[Cpu],
+                       &Channel->PendingListEntry);
+
+    FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
+
+    if (Pending)
+        return;
+
+    Dpc = &Context->Dpc[Cpu];
+    KeInsertQueueDpc(Dpc, NULL, NULL);
 }
 
 static VOID
@@ -597,6 +721,9 @@ EvtchnClose(
 
     Channel->Cpu = 0;
 
+    ASSERT(IsListEmpty(&Channel->PendingListEntry));
+    RtlZeroMemory(&Channel->PendingListEntry, sizeof (LIST_ENTRY));
+
     Channel->LocalPort = 0;
     Channel->Mask = FALSE;
     RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
@@ -629,49 +756,6 @@ EvtchnGetPort(
     return Channel->LocalPort;
 }
 
-static BOOLEAN
-EvtchnPollCallback(
-    IN  PVOID               Argument,
-    IN  ULONG               LocalPort
-    )
-{
-    PXENBUS_EVTCHN_CONTEXT  Context = Argument;
-    PXENBUS_EVTCHN_CHANNEL  Channel;
-    BOOLEAN                 DoneSomething;
-    NTSTATUS                status;
-
-    DoneSomething = FALSE;
-
-    status = HashTableLookup(Context->Table,
-                             LocalPort,
-                             (PULONG_PTR)&Channel);
-    
-    if (!NT_SUCCESS(status)) {
-        Warning("[%d]: INVALID PORT\n", LocalPort);
-
-        XENBUS_EVTCHN_ABI(PortMask,
-                          &Context->EvtchnAbi,
-                          LocalPort);
-
-        goto done;
-    }
-
-    if (Channel->Mask)
-        XENBUS_EVTCHN_ABI(PortMask,
-                          &Context->EvtchnAbi,
-                          LocalPort);
-
-    XENBUS_EVTCHN_ABI(PortAck,
-                      &Context->EvtchnAbi,
-                      LocalPort);
-
-#pragma warning(suppress:6387)  // NULL argument
-    DoneSomething = Channel->Callback(NULL, Channel->Argument);
-
-done:
-    return DoneSomething;
-}
-
 static
 _Function_class_(KSERVICE_ROUTINE)
 __drv_requiresIRQL(HIGH_LEVEL)
@@ -691,15 +775,10 @@ EvtchnInterruptCallback(
     Cpu = KeGetCurrentProcessorNumber();
 
     DoneSomething = FALSE;
-
     while (XENBUS_SHARED_INFO(UpcallPending,
                               &Context->SharedInfoInterface,
                               Cpu))
-        DoneSomething |= XENBUS_EVTCHN_ABI(Poll,
-                                           &Context->EvtchnAbi,
-                                           Cpu,
-                                           EvtchnPollCallback,
-                                           Context);
+        DoneSomething |= EvtchnPoll(Context, Cpu);
 
     return DoneSomething;
 }
@@ -1131,6 +1210,8 @@ EvtchnRelease(
 
     Cpu = KeNumberProcessors;
     while (--Cpu >= 0) {
+        EvtchnFlush(Context, Cpu);
+
         FdoFreeInterrupt(Fdo, Context->LatchedInterrupt[Cpu]);
         Context->LatchedInterrupt[Cpu] = NULL;
     }
@@ -1274,7 +1355,9 @@ EvtchnInitialize(
     for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
         PKDPC   Dpc = &(*Context)->Dpc[Cpu];
 
-        KeInitializeDpc(Dpc, EvtchnCallback, *Context);
+        InitializeListHead(&(*Context)->PendingList[Cpu]);
+
+        KeInitializeDpc(Dpc, EvtchnDpc, *Context);
         KeSetTargetProcessorDpc(Dpc, (CCHAR)Cpu);
     }
 
@@ -1395,6 +1478,7 @@ EvtchnTeardown(
     RtlZeroMemory(&Context->Dpc, sizeof (KDPC) * MAXIMUM_PROCESSORS);
     RtlZeroMemory(&Context->Lock, sizeof (KSPIN_LOCK));
     RtlZeroMemory(&Context->List, sizeof (LIST_ENTRY));
+    RtlZeroMemory(&Context->PendingList, sizeof (LIST_ENTRY) * MAXIMUM_PROCESSORS);
 
     RtlZeroMemory(&Context->SharedInfoInterface,
                   sizeof (XENBUS_SHARED_INFO_INTERFACE));
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:49 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACz-0003jH-RZ; Tue, 27 Jan 2015 17:45:49 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACy-0003i4-7t
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:48 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
	3E/F2-02099-BCEC7C45; Tue, 27 Jan 2015 17:45:47 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1422380746!22769945!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20281 invoked from network); 27 Jan 2015 17:45:46 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:46 -0000
Received: by mail-wi0-f176.google.com with SMTP id em10so6562654wid.3
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=5Mb7M4Bf+VH+D3RcCkQPtTuEMGcFPCYeVu9e/58r+dk=;
	b=B6jcngTLDd9HQCIu/9oXft+z05gy8Qw78xWoGSyddE7qHwCEdkZk3CHCHBolkGe7CS
	ap3/fRgDE6mB/8mZ2t3T11lmycJpS2V1sUh6lxMtLly/CWx6S3XeqW7LMM/zg98DCos6
	lXrJI+ThUSB3SKEdPUDuUf0eLbhaZUoVl+VmxmzfFO58rTbRTeA7ucgsMtFw2DWc/6NZ
	1e5G0Q4s9dR7tkM+9RZRm6YWcVWUZmaiMQc5Ts/onMzOITaNDtlOcSuccPjNm1uWzx8c
	ogeI/Tam8keIYFGbM6ZIzk+GestjgUqE3K3CgvWVBRNuwI4SfCiHDoVuV+f4XSyAjRs5
	ykgw==
X-Received: by 10.194.71.45 with SMTP id r13mr178286wju.128.1422380746268;
	Tue, 27 Jan 2015 09:45:46 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.45
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:45 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:27 +0000
Message-Id: <1422380729-10928-14-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 13/15] Re-work EVTCHN Trigger
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

By re-working the event channel poll callback to add pending channels to a
list and then service them, we can tidy up Trigger by forcibly appending a
channel to the same list and then scheduling a DPC on the correct cpu to
service in the list (unless an interrupt callback came along in the interim
and did the job).

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 212 ++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 148 insertions(+), 64 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 81f97e4..437bfac 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -75,6 +75,7 @@ struct _XENBUS_EVTCHN_CHANNEL {
     ULONG                       Magic;
     KSPIN_LOCK                  Lock;
     LIST_ENTRY                  ListEntry;
+    LIST_ENTRY                  PendingListEntry;
     PVOID                       Caller;
     PKSERVICE_ROUTINE           Callback;
     PVOID                       Argument;
@@ -105,6 +106,7 @@ struct _XENBUS_EVTCHN_CONTEXT {
     BOOLEAN                         UseEvtchnFifoAbi;
     PXENBUS_HASH_TABLE              Table;
     LIST_ENTRY                      List;
+    LIST_ENTRY                      PendingList[MAXIMUM_PROCESSORS];
     KDPC                            Dpc[MAXIMUM_PROCESSORS];
 };
 
@@ -308,6 +310,8 @@ EvtchnOpen(
 
     LocalPort = Channel->LocalPort;
 
+    InitializeListHead(&Channel->PendingListEntry);
+
     status = XENBUS_EVTCHN_ABI(PortEnable,
                                &Context->EvtchnAbi,
                                LocalPort);
@@ -342,6 +346,9 @@ fail4:
 fail3:
     Error("fail3\n");
 
+    ASSERT(IsListEmpty(&Channel->PendingListEntry));
+    RtlZeroMemory(&Channel->PendingListEntry, sizeof (LIST_ENTRY));
+
     Channel->LocalPort = 0;
     Channel->Mask = FALSE;
     RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
@@ -430,6 +437,102 @@ fail1:
     return status;
 }
 
+static BOOLEAN
+EvtchnPollCallback(
+    IN  PVOID               Argument,
+    IN  ULONG               LocalPort
+    )
+{
+    PXENBUS_EVTCHN_CONTEXT  Context = Argument;
+    ULONG                   Cpu;
+    PXENBUS_EVTCHN_CHANNEL  Channel;
+    BOOLEAN                 Pending;
+    NTSTATUS                status;
+
+    ASSERT3U(KeGetCurrentIrql(), >=, DISPATCH_LEVEL);
+    Cpu = KeGetCurrentProcessorNumber();
+
+    status = HashTableLookup(Context->Table,
+                             LocalPort,
+                             (PULONG_PTR)&Channel);
+    if (!NT_SUCCESS(status))
+        goto done;
+
+    ASSERT3U(Channel->LocalPort, ==, LocalPort);
+
+    Pending = !IsListEmpty(&Channel->PendingListEntry);
+
+    if (!Pending)
+        InsertTailList(&Context->PendingList[Cpu],
+                       &Channel->PendingListEntry);
+
+done:
+    return FALSE;
+}
+
+static BOOLEAN
+EvtchnPoll(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context,
+    IN  ULONG                   Cpu
+    )
+{
+    BOOLEAN                     DoneSomething;
+
+    (VOID) XENBUS_EVTCHN_ABI(Poll,
+                             &Context->EvtchnAbi,
+                             Cpu,
+                             EvtchnPollCallback,
+                             Context);
+
+    DoneSomething = FALSE;
+    while (!IsListEmpty(&Context->PendingList[Cpu])) {
+        PLIST_ENTRY             ListEntry;
+        PXENBUS_EVTCHN_CHANNEL  Channel;
+
+        ListEntry = RemoveHeadList(&Context->PendingList[Cpu]);
+        ASSERT(ListEntry != &Context->PendingList[Cpu]);
+
+        InitializeListHead(ListEntry);
+
+        Channel = CONTAINING_RECORD(ListEntry,
+                                    XENBUS_EVTCHN_CHANNEL,
+                                    PendingListEntry);
+        if (Channel->Mask)
+            XENBUS_EVTCHN_ABI(PortMask,
+                              &Context->EvtchnAbi,
+                              Channel->LocalPort);
+
+        XENBUS_EVTCHN_ABI(PortAck,
+                          &Context->EvtchnAbi,
+                          Channel->LocalPort);
+
+#pragma warning(suppress:6387)  // NULL argument
+        DoneSomething |= Channel->Callback(NULL, Channel->Argument);
+    }
+
+    return DoneSomething;
+}
+
+static VOID
+EvtchnFlush(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context,
+    IN  ULONG                   Cpu
+    )
+{
+    PXENBUS_INTERRUPT           Interrupt;
+    KIRQL                       Irql;
+
+    Interrupt = (Context->Affinity != 0) ? // Latched available
+                Context->LatchedInterrupt[Cpu] :
+                Context->LevelSensitiveInterrupt;
+
+    Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
+
+    (VOID) EvtchnPoll(Context, Cpu);
+
+    FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
+}
+
 static
 _Function_class_(KDEFERRED_ROUTINE)
 _IRQL_requires_max_(DISPATCH_LEVEL)
@@ -437,7 +540,7 @@ _IRQL_requires_min_(DISPATCH_LEVEL)
 _IRQL_requires_(DISPATCH_LEVEL)
 _IRQL_requires_same_
 VOID
-EvtchnCallback(
+EvtchnDpc(
     IN  PKDPC               Dpc,
     IN  PVOID               _Context,
     IN  PVOID               Argument1,
@@ -445,23 +548,24 @@ EvtchnCallback(
     )
 {
     PXENBUS_EVTCHN_CONTEXT  Context = _Context;
-    PXENBUS_EVTCHN_CHANNEL  Channel = Argument1;
-    PXENBUS_INTERRUPT       Interrupt;
-    KIRQL                   Irql;
+    ULONG                   Cpu;
 
     UNREFERENCED_PARAMETER(Dpc);
+    UNREFERENCED_PARAMETER(Argument1);
     UNREFERENCED_PARAMETER(Argument2);
 
-    Interrupt = (Context->Affinity != 0) ? // Latched available
-                Context->LatchedInterrupt[Channel->Cpu] :
-                Context->LevelSensitiveInterrupt;
+    ASSERT3U(KeGetCurrentIrql(), >=, DISPATCH_LEVEL);
+    Cpu = KeGetCurrentProcessorNumber();
 
-    Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
+    KeAcquireSpinLockAtDpcLevel(&Context->Lock);
 
-#pragma warning(suppress:6387)  // NULL argument
-    (VOID) Channel->Callback(NULL, Channel->Argument);
+    if (Context->References == 0)
+        goto done;
 
-    FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
+    EvtchnFlush(Context, Cpu);
+
+done:
+    KeReleaseSpinLockFromDpcLevel(&Context->Lock);
 }
 
 static VOID
@@ -473,15 +577,35 @@ EvtchnTrigger(
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
     PKDPC                       Dpc;
     KIRQL                       Irql;
+    ULONG                       Cpu;
+    PXENBUS_INTERRUPT           Interrupt;
+    BOOLEAN                     Pending;
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
     KeAcquireSpinLock(&Channel->Lock, &Irql);
+    Cpu = Channel->Cpu;
+    KeReleaseSpinLock(&Channel->Lock, Irql);
 
-    Dpc = &Context->Dpc[Channel->Cpu];
-    KeInsertQueueDpc(Dpc, Channel, NULL);
+    Interrupt = (Context->Affinity != 0) ? // Latched available
+                Context->LatchedInterrupt[Cpu] :
+                Context->LevelSensitiveInterrupt;
 
-    KeReleaseSpinLock(&Channel->Lock, Irql);
+    Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
+
+    Pending = !IsListEmpty(&Channel->PendingListEntry);
+
+    if (!Pending)
+        InsertTailList(&Context->PendingList[Cpu],
+                       &Channel->PendingListEntry);
+
+    FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
+
+    if (Pending)
+        return;
+
+    Dpc = &Context->Dpc[Cpu];
+    KeInsertQueueDpc(Dpc, NULL, NULL);
 }
 
 static VOID
@@ -597,6 +721,9 @@ EvtchnClose(
 
     Channel->Cpu = 0;
 
+    ASSERT(IsListEmpty(&Channel->PendingListEntry));
+    RtlZeroMemory(&Channel->PendingListEntry, sizeof (LIST_ENTRY));
+
     Channel->LocalPort = 0;
     Channel->Mask = FALSE;
     RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
@@ -629,49 +756,6 @@ EvtchnGetPort(
     return Channel->LocalPort;
 }
 
-static BOOLEAN
-EvtchnPollCallback(
-    IN  PVOID               Argument,
-    IN  ULONG               LocalPort
-    )
-{
-    PXENBUS_EVTCHN_CONTEXT  Context = Argument;
-    PXENBUS_EVTCHN_CHANNEL  Channel;
-    BOOLEAN                 DoneSomething;
-    NTSTATUS                status;
-
-    DoneSomething = FALSE;
-
-    status = HashTableLookup(Context->Table,
-                             LocalPort,
-                             (PULONG_PTR)&Channel);
-    
-    if (!NT_SUCCESS(status)) {
-        Warning("[%d]: INVALID PORT\n", LocalPort);
-
-        XENBUS_EVTCHN_ABI(PortMask,
-                          &Context->EvtchnAbi,
-                          LocalPort);
-
-        goto done;
-    }
-
-    if (Channel->Mask)
-        XENBUS_EVTCHN_ABI(PortMask,
-                          &Context->EvtchnAbi,
-                          LocalPort);
-
-    XENBUS_EVTCHN_ABI(PortAck,
-                      &Context->EvtchnAbi,
-                      LocalPort);
-
-#pragma warning(suppress:6387)  // NULL argument
-    DoneSomething = Channel->Callback(NULL, Channel->Argument);
-
-done:
-    return DoneSomething;
-}
-
 static
 _Function_class_(KSERVICE_ROUTINE)
 __drv_requiresIRQL(HIGH_LEVEL)
@@ -691,15 +775,10 @@ EvtchnInterruptCallback(
     Cpu = KeGetCurrentProcessorNumber();
 
     DoneSomething = FALSE;
-
     while (XENBUS_SHARED_INFO(UpcallPending,
                               &Context->SharedInfoInterface,
                               Cpu))
-        DoneSomething |= XENBUS_EVTCHN_ABI(Poll,
-                                           &Context->EvtchnAbi,
-                                           Cpu,
-                                           EvtchnPollCallback,
-                                           Context);
+        DoneSomething |= EvtchnPoll(Context, Cpu);
 
     return DoneSomething;
 }
@@ -1131,6 +1210,8 @@ EvtchnRelease(
 
     Cpu = KeNumberProcessors;
     while (--Cpu >= 0) {
+        EvtchnFlush(Context, Cpu);
+
         FdoFreeInterrupt(Fdo, Context->LatchedInterrupt[Cpu]);
         Context->LatchedInterrupt[Cpu] = NULL;
     }
@@ -1274,7 +1355,9 @@ EvtchnInitialize(
     for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
         PKDPC   Dpc = &(*Context)->Dpc[Cpu];
 
-        KeInitializeDpc(Dpc, EvtchnCallback, *Context);
+        InitializeListHead(&(*Context)->PendingList[Cpu]);
+
+        KeInitializeDpc(Dpc, EvtchnDpc, *Context);
         KeSetTargetProcessorDpc(Dpc, (CCHAR)Cpu);
     }
 
@@ -1395,6 +1478,7 @@ EvtchnTeardown(
     RtlZeroMemory(&Context->Dpc, sizeof (KDPC) * MAXIMUM_PROCESSORS);
     RtlZeroMemory(&Context->Lock, sizeof (KSPIN_LOCK));
     RtlZeroMemory(&Context->List, sizeof (LIST_ENTRY));
+    RtlZeroMemory(&Context->PendingList, sizeof (LIST_ENTRY) * MAXIMUM_PROCESSORS);
 
     RtlZeroMemory(&Context->SharedInfoInterface,
                   sizeof (XENBUS_SHARED_INFO_INTERFACE));
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:49 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACz-0003jS-TM; Tue, 27 Jan 2015 17:45:49 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACz-0003iy-0D
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:49 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	E9/64-30245-CCEC7C45; Tue, 27 Jan 2015 17:45:48 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1422380747!16354440!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30366 invoked from network); 27 Jan 2015 17:45:47 -0000
Received: from mail-wg0-f42.google.com (HELO mail-wg0-f42.google.com)
	(74.125.82.42)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:47 -0000
Received: by mail-wg0-f42.google.com with SMTP id x13so16199394wgg.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=7IZ0ObmPFT5pfUnQVMtI6N/Dbf10bqS+YbHHSyhhlEg=;
	b=C2kxwnqhc0AZ7v9kAEN7gxdfBzTSD0VEM6aHxWEJqBOB7APb8peqlrbUa8PVu+c9G9
	mL9pLFbJEtKXBsif3jXWPma5BH2Qj8V04pqnUYPfhJOYuy/2zwckuNZtx6uKqqgja312
	X0oQqEKVj40CXYd9XcZqeBmlmnsDwzOtN5PxfuyNan5we65n2BRQE6875E9f6m0HVDkJ
	0uVrjVLknDxtnM1YZpoU2ddy0/5MM22j7ASmL3o+GkWLkT1V0skYqeYuACNyl16um6wk
	w/EDNvbBAlM1nfNyypAxLo+2jb1r5YpC9pNB8Y5/ni8sO8wfexR+EM+7SIERGx7PDp7h
	jrdA==
X-Received: by 10.194.19.197 with SMTP id h5mr4938992wje.109.1422380747622;
	Tue, 27 Jan 2015 09:45:47 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.46
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:47 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:29 +0000
Message-Id: <1422380729-10928-16-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 15/15] Add missing magic number checks
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

We should sanity check the magic number in an event channel whenever one is
passed to an EVTCHN method or when one is recovered from a list.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index dd608ba..3360a29 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -644,6 +644,8 @@ EvtchnBind(
     KIRQL                       Irql;
     NTSTATUS                    status;
 
+    ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
     status = STATUS_INVALID_PARAMETER;
     if (Cpu >= (ULONG)KeNumberProcessors)
         goto fail1;
@@ -989,6 +991,8 @@ EvtchnSuspendCallbackEarly(
 
         Channel = CONTAINING_RECORD(ListEntry, XENBUS_EVTCHN_CHANNEL, ListEntry);
 
+        ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
         if (Channel->Active) {
             ULONG       LocalPort = Channel->LocalPort;
             NTSTATUS    status;
@@ -1044,6 +1048,8 @@ EvtchnDebugCallback(
 
             Channel = CONTAINING_RECORD(ListEntry, XENBUS_EVTCHN_CHANNEL, ListEntry);
 
+            ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
             ModuleLookup((ULONG_PTR)Channel->Caller, &Name, &Offset);
 
             if (Name != NULL) {
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:49 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGACz-0003jS-TM; Tue, 27 Jan 2015 17:45:49 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACz-0003iy-0D
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:49 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	E9/64-30245-CCEC7C45; Tue, 27 Jan 2015 17:45:48 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1422380747!16354440!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30366 invoked from network); 27 Jan 2015 17:45:47 -0000
Received: from mail-wg0-f42.google.com (HELO mail-wg0-f42.google.com)
	(74.125.82.42)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:47 -0000
Received: by mail-wg0-f42.google.com with SMTP id x13so16199394wgg.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=7IZ0ObmPFT5pfUnQVMtI6N/Dbf10bqS+YbHHSyhhlEg=;
	b=C2kxwnqhc0AZ7v9kAEN7gxdfBzTSD0VEM6aHxWEJqBOB7APb8peqlrbUa8PVu+c9G9
	mL9pLFbJEtKXBsif3jXWPma5BH2Qj8V04pqnUYPfhJOYuy/2zwckuNZtx6uKqqgja312
	X0oQqEKVj40CXYd9XcZqeBmlmnsDwzOtN5PxfuyNan5we65n2BRQE6875E9f6m0HVDkJ
	0uVrjVLknDxtnM1YZpoU2ddy0/5MM22j7ASmL3o+GkWLkT1V0skYqeYuACNyl16um6wk
	w/EDNvbBAlM1nfNyypAxLo+2jb1r5YpC9pNB8Y5/ni8sO8wfexR+EM+7SIERGx7PDp7h
	jrdA==
X-Received: by 10.194.19.197 with SMTP id h5mr4938992wje.109.1422380747622;
	Tue, 27 Jan 2015 09:45:47 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.46
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:47 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:29 +0000
Message-Id: <1422380729-10928-16-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 15/15] Add missing magic number checks
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

We should sanity check the magic number in an event channel whenever one is
passed to an EVTCHN method or when one is recovered from a list.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index dd608ba..3360a29 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -644,6 +644,8 @@ EvtchnBind(
     KIRQL                       Irql;
     NTSTATUS                    status;
 
+    ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
     status = STATUS_INVALID_PARAMETER;
     if (Cpu >= (ULONG)KeNumberProcessors)
         goto fail1;
@@ -989,6 +991,8 @@ EvtchnSuspendCallbackEarly(
 
         Channel = CONTAINING_RECORD(ListEntry, XENBUS_EVTCHN_CHANNEL, ListEntry);
 
+        ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
         if (Channel->Active) {
             ULONG       LocalPort = Channel->LocalPort;
             NTSTATUS    status;
@@ -1044,6 +1048,8 @@ EvtchnDebugCallback(
 
             Channel = CONTAINING_RECORD(ListEntry, XENBUS_EVTCHN_CHANNEL, ListEntry);
 
+            ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
             ModuleLookup((ULONG_PTR)Channel->Caller, &Name, &Offset);
 
             if (Name != NULL) {
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:50 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGAD0-0003k8-UO; Tue, 27 Jan 2015 17:45:50 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACz-0003j2-6P
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:49 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	C9/4C-21543-CCEC7C45; Tue, 27 Jan 2015 17:45:48 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1422380747!12761249!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29490 invoked from network); 27 Jan 2015 17:45:47 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:47 -0000
Received: by mail-wi0-f170.google.com with SMTP id em10so3997231wid.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=ueFs0jVSAmqx5PXPAtlahowDn+bj/CEy5uqfbEBniGc=;
	b=m58RqRyRXC/1d/vr9J8cM/zgTmbvPPZmz4CpWNGzR+Tt4i9Iiu6RJ5PRH0Z4VpPuGE
	8rhqD6dKub4lXELQNNjyCR6aug8pEl3d5uNcRpq1jR7WBDD4MVuV0BMVSBJ5uU2C8hMf
	UjdTBtDKxtpndMwgzsTMg+hSok6VhaXXuji4qGBf+fhh0jCWXfmbFFoKT7jEZxcpLeyw
	RQgDMhJeCfVR75Yv+TNKun6fTv4qsIPu6GW+98BRQVk41moFbgDB3mhCxROcBNHQ6lOr
	RsxCGv7ClHaAmtffH+yJ/gN8l85CEa3oQR+TpZIeJHpRHjeqMHbvsiblfSaZoCpEM96K
	Stww==
X-Received: by 10.180.21.161 with SMTP id w1mr8364674wie.44.1422380746936;
	Tue, 27 Jan 2015 09:45:46 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.46
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:46 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:28 +0000
Message-Id: <1422380729-10928-15-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 14/15] Re-work EVTCHN Close
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

When using the FIFO ABI, the Close operation needs to be synchronized with
polling. This requires some re-structuring of the close code to defer the
actual closure of the event channel in Xen until at least one poll after
masking and starting the tear-down.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 249 +++++++++++++++++++++++++++++++++-------------------
 1 file changed, 161 insertions(+), 88 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 437bfac..dd608ba 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -85,6 +85,7 @@ struct _XENBUS_EVTCHN_CHANNEL {
     BOOLEAN                     Mask;
     ULONG                       LocalPort;
     ULONG                       Cpu;
+    BOOLEAN                     Closed;
 };
 
 struct _XENBUS_EVTCHN_CONTEXT {
@@ -310,6 +311,8 @@ EvtchnOpen(
 
     LocalPort = Channel->LocalPort;
 
+    Trace("%u\n", LocalPort);
+
     InitializeListHead(&Channel->PendingListEntry);
 
     status = XENBUS_EVTCHN_ABI(PortEnable,
@@ -378,63 +381,49 @@ fail1:
     return NULL;
 }
 
-static NTSTATUS
-EvtchnBind(
-    IN  PINTERFACE              Interface,
+static VOID
+EvtchnReap(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context,
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
-    IN  ULONG                   Cpu
+    IN  BOOLEAN                 Close
     )
 {
-    PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
-    ULONG                       LocalPort;
-    unsigned int                vcpu_id;
-    KIRQL                       Irql;
-    NTSTATUS                    status;
+    ULONG                       LocalPort = Channel->LocalPort;
 
-    status = STATUS_INVALID_PARAMETER;
-    if (Cpu >= (ULONG)KeNumberProcessors)
-        goto fail1;
-
-    status = STATUS_NOT_SUPPORTED;
-    if (~Context->Affinity & ((KAFFINITY)1 << Cpu))
-        goto fail2;
-
-    KeAcquireSpinLock(&Channel->Lock, &Irql);
-
-    if (!Channel->Active)
-        goto done;
+    UNREFERENCED_PARAMETER(Context);
 
-    if (Channel->Cpu == Cpu)
-        goto done;
+    Trace("%u\n", LocalPort);
 
-    LocalPort = Channel->LocalPort;
-    vcpu_id = SystemVirtualCpuIndex(Cpu);
+    ASSERT(Channel->Closed);
+    Channel->Closed = FALSE;
 
-    status = EventChannelBindVirtualCpu(LocalPort, vcpu_id);
-    if (!NT_SUCCESS(status))
-        goto fail3;
+    RtlZeroMemory(&Channel->Lock, sizeof (KSPIN_LOCK));
 
-    Channel->Cpu = Cpu;
+    RemoveEntryList(&Channel->ListEntry);
+    RtlZeroMemory(&Channel->ListEntry, sizeof (LIST_ENTRY));
 
-    Info("[%u]: CPU %u\n", LocalPort, Cpu);
+    Channel->Cpu = 0;
 
-done:
-    KeReleaseSpinLock(&Channel->Lock, Irql);
+    ASSERT(IsListEmpty(&Channel->PendingListEntry));
+    RtlZeroMemory(&Channel->PendingListEntry, sizeof (LIST_ENTRY));
 
-    return STATUS_SUCCESS;
+    Channel->LocalPort = 0;
+    Channel->Mask = FALSE;
+    RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
 
-fail3:
-    Error("fail3\n");
+    if (Close && Channel->Type != XENBUS_EVTCHN_TYPE_FIXED)
+        (VOID) EventChannelClose(LocalPort);
 
-    KeReleaseSpinLock(&Channel->Lock, Irql);
+    Channel->Argument = NULL;
+    Channel->Callback = NULL;
+    Channel->Type = 0;
 
-fail2:
-    Error("fail2\n");
+    Channel->Caller = NULL;
 
-fail1:
-    Error("fail1 (%08x)\n", status);
+    Channel->Magic = 0;
 
-    return status;
+    ASSERT(IsZeroMemory(Channel, sizeof (XENBUS_EVTCHN_CHANNEL)));
+    __EvtchnFree(Channel);
 }
 
 static BOOLEAN
@@ -473,10 +462,12 @@ done:
 static BOOLEAN
 EvtchnPoll(
     IN  PXENBUS_EVTCHN_CONTEXT  Context,
-    IN  ULONG                   Cpu
+    IN  ULONG                   Cpu,
+    IN  PLIST_ENTRY             List
     )
 {
     BOOLEAN                     DoneSomething;
+    PLIST_ENTRY                 ListEntry;
 
     (VOID) XENBUS_EVTCHN_ABI(Poll,
                              &Context->EvtchnAbi,
@@ -485,29 +476,40 @@ EvtchnPoll(
                              Context);
 
     DoneSomething = FALSE;
-    while (!IsListEmpty(&Context->PendingList[Cpu])) {
-        PLIST_ENTRY             ListEntry;
-        PXENBUS_EVTCHN_CHANNEL  Channel;
-
-        ListEntry = RemoveHeadList(&Context->PendingList[Cpu]);
-        ASSERT(ListEntry != &Context->PendingList[Cpu]);
 
-        InitializeListHead(ListEntry);
+    ListEntry = Context->PendingList[Cpu].Flink;
+    while (ListEntry != &Context->PendingList[Cpu]) {
+        PLIST_ENTRY             Next = ListEntry->Flink;
+        PXENBUS_EVTCHN_CHANNEL  Channel;
 
         Channel = CONTAINING_RECORD(ListEntry,
                                     XENBUS_EVTCHN_CHANNEL,
                                     PendingListEntry);
-        if (Channel->Mask)
-            XENBUS_EVTCHN_ABI(PortMask,
+
+        ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
+        KeMemoryBarrier();
+        if (!Channel->Closed) {
+            RemoveEntryList(&Channel->PendingListEntry);
+            InitializeListHead(&Channel->PendingListEntry);
+
+            if (Channel->Mask)
+                XENBUS_EVTCHN_ABI(PortMask,
+                                  &Context->EvtchnAbi,
+                                  Channel->LocalPort);
+
+            XENBUS_EVTCHN_ABI(PortAck,
                               &Context->EvtchnAbi,
                               Channel->LocalPort);
 
-        XENBUS_EVTCHN_ABI(PortAck,
-                          &Context->EvtchnAbi,
-                          Channel->LocalPort);
-
 #pragma warning(suppress:6387)  // NULL argument
-        DoneSomething |= Channel->Callback(NULL, Channel->Argument);
+            DoneSomething |= Channel->Callback(NULL, Channel->Argument);
+        } else if (List != NULL) {
+            RemoveEntryList(&Channel->PendingListEntry);
+            InsertTailList(List, &Channel->PendingListEntry);
+        }
+
+        ListEntry = Next;
     }
 
     return DoneSomething;
@@ -519,6 +521,7 @@ EvtchnFlush(
     IN  ULONG                   Cpu
     )
 {
+    LIST_ENTRY                  List;
     PXENBUS_INTERRUPT           Interrupt;
     KIRQL                       Irql;
 
@@ -526,11 +529,31 @@ EvtchnFlush(
                 Context->LatchedInterrupt[Cpu] :
                 Context->LevelSensitiveInterrupt;
 
+    InitializeListHead(&List);
+
     Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
 
-    (VOID) EvtchnPoll(Context, Cpu);
+    (VOID) EvtchnPoll(Context, Cpu, &List);
 
     FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
+
+    while (!IsListEmpty(&List)) {
+        PLIST_ENTRY             ListEntry;
+        PXENBUS_EVTCHN_CHANNEL  Channel;
+
+        ListEntry = RemoveHeadList(&List);
+        ASSERT(ListEntry != &List);
+
+        Channel = CONTAINING_RECORD(ListEntry,
+                                    XENBUS_EVTCHN_CHANNEL,
+                                    PendingListEntry);
+
+        ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
+        InitializeListHead(&Channel->PendingListEntry);
+
+        EvtchnReap(Context, Channel, TRUE);
+    }
 }
 
 static
@@ -608,6 +631,65 @@ EvtchnTrigger(
     KeInsertQueueDpc(Dpc, NULL, NULL);
 }
 
+static NTSTATUS
+EvtchnBind(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  ULONG                   Cpu
+    )
+{
+    PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
+    ULONG                       LocalPort;
+    unsigned int                vcpu_id;
+    KIRQL                       Irql;
+    NTSTATUS                    status;
+
+    status = STATUS_INVALID_PARAMETER;
+    if (Cpu >= (ULONG)KeNumberProcessors)
+        goto fail1;
+
+    status = STATUS_NOT_SUPPORTED;
+    if (~Context->Affinity & ((KAFFINITY)1 << Cpu))
+        goto fail2;
+
+    KeAcquireSpinLock(&Channel->Lock, &Irql);
+
+    if (!Channel->Active)
+        goto done;
+
+    if (Channel->Cpu == Cpu)
+        goto done;
+
+    LocalPort = Channel->LocalPort;
+    vcpu_id = SystemVirtualCpuIndex(Cpu);
+
+    status = EventChannelBindVirtualCpu(LocalPort, vcpu_id);
+    if (!NT_SUCCESS(status))
+        goto fail3;
+
+    Channel->Cpu = Cpu;
+
+    Info("[%u]: CPU %u\n", LocalPort, Cpu);
+
+done:
+    KeReleaseSpinLock(&Channel->Lock, Irql);
+
+    return STATUS_SUCCESS;
+
+fail3:
+    Error("fail3\n");
+
+    KeReleaseSpinLock(&Channel->Lock, Irql);
+
+fail2:
+    Error("fail2\n");
+
+fail1:
+    Error("fail1 (%08x)\n", status);
+
+    return status;
+}
+
 static VOID
 EvtchnUnmask(
     IN  PINTERFACE              Interface,
@@ -688,57 +770,48 @@ EvtchnClose(
     )
 {
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
+    ULONG                       LocalPort = Channel->LocalPort;
     KIRQL                       Irql;
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
-    RtlZeroMemory(&Channel->Lock, sizeof (KSPIN_LOCK));
-
     KeRaiseIrql(DISPATCH_LEVEL, &Irql); // Prevent suspend
 
-    KeAcquireSpinLockAtDpcLevel(&Context->Lock);
-    RemoveEntryList(&Channel->ListEntry);
-    KeReleaseSpinLockFromDpcLevel(&Context->Lock);
-
-    RtlZeroMemory(&Channel->ListEntry, sizeof (LIST_ENTRY));
+    Trace("%u\n", LocalPort);
 
     if (Channel->Active) {
-        ULONG       LocalPort = Channel->LocalPort;
         NTSTATUS    status;
 
         Channel->Active = FALSE;
 
-        XENBUS_EVTCHN_ABI(PortMask,
+        XENBUS_EVTCHN_ABI(PortDisable,
                           &Context->EvtchnAbi,
                           LocalPort);
 
-        if (Channel->Type != XENBUS_EVTCHN_TYPE_FIXED)
-            (VOID) EventChannelClose(LocalPort);
-
         status = HashTableRemove(Context->Table, LocalPort);
         ASSERT(NT_SUCCESS(status));
-    }
 
-    Channel->Cpu = 0;
+        //
+        // The event may be pending on a CPU queue so we mark it as
+        // closed but defer the rest of the work to the correct
+        // DPC, which will make sure the queue is polled first.
+        //
 
-    ASSERT(IsListEmpty(&Channel->PendingListEntry));
-    RtlZeroMemory(&Channel->PendingListEntry, sizeof (LIST_ENTRY));
+        Channel->Closed = TRUE;
+        KeMemoryBarrier();
 
-    Channel->LocalPort = 0;
-    Channel->Mask = FALSE;
-    RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
-
-    Channel->Argument = NULL;
-    Channel->Callback = NULL;
-    Channel->Type = 0;
+        EvtchnTrigger(Interface, Channel);
+        goto done;
+    }
 
-    Channel->Caller = NULL;
+    KeAcquireSpinLockAtDpcLevel(&Context->Lock);
 
-    Channel->Magic = 0;
+    Channel->Closed = TRUE;
+    EvtchnReap(Context, Channel, FALSE);
 
-    ASSERT(IsZeroMemory(Channel, sizeof (XENBUS_EVTCHN_CHANNEL)));
-    __EvtchnFree(Channel);
+    KeReleaseSpinLockFromDpcLevel(&Context->Lock);
 
+done:
     KeLowerIrql(Irql);
 }
 
@@ -778,7 +851,7 @@ EvtchnInterruptCallback(
     while (XENBUS_SHARED_INFO(UpcallPending,
                               &Context->SharedInfoInterface,
                               Cpu))
-        DoneSomething |= EvtchnPoll(Context, Cpu);
+        DoneSomething |= EvtchnPoll(Context, Cpu, NULL);
 
     return DoneSomething;
 }
@@ -1203,9 +1276,6 @@ EvtchnRelease(
 
     Trace("====>\n");
 
-    if (!IsListEmpty(&Context->List))
-        BUG("OUTSTANDING EVENT CHANNELS");
-
     EvtchnInterruptDisable(Context);
 
     Cpu = KeNumberProcessors;
@@ -1219,6 +1289,9 @@ EvtchnRelease(
     FdoFreeInterrupt(Fdo, Context->LevelSensitiveInterrupt);
     Context->LevelSensitiveInterrupt = NULL;
 
+    if (!IsListEmpty(&Context->List))
+        BUG("OUTSTANDING EVENT CHANNELS");
+
     EvtchnAbiRelease(Context);
 
     XENBUS_SHARED_INFO(Release, &Context->SharedInfoInterface);
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Tue Jan 27 17:45:50 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jan 2015 17:45:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGAD0-0003k8-UO; Tue, 27 Jan 2015 17:45:50 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGACz-0003j2-6P
	for win-pv-devel@lists.xenproject.org; Tue, 27 Jan 2015 17:45:49 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	C9/4C-21543-CCEC7C45; Tue, 27 Jan 2015 17:45:48 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1422380747!12761249!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29490 invoked from network); 27 Jan 2015 17:45:47 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Jan 2015 17:45:47 -0000
Received: by mail-wi0-f170.google.com with SMTP id em10so3997231wid.1
	for <win-pv-devel@lists.xenproject.org>;
	Tue, 27 Jan 2015 09:45:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=ueFs0jVSAmqx5PXPAtlahowDn+bj/CEy5uqfbEBniGc=;
	b=m58RqRyRXC/1d/vr9J8cM/zgTmbvPPZmz4CpWNGzR+Tt4i9Iiu6RJ5PRH0Z4VpPuGE
	8rhqD6dKub4lXELQNNjyCR6aug8pEl3d5uNcRpq1jR7WBDD4MVuV0BMVSBJ5uU2C8hMf
	UjdTBtDKxtpndMwgzsTMg+hSok6VhaXXuji4qGBf+fhh0jCWXfmbFFoKT7jEZxcpLeyw
	RQgDMhJeCfVR75Yv+TNKun6fTv4qsIPu6GW+98BRQVk41moFbgDB3mhCxROcBNHQ6lOr
	RsxCGv7ClHaAmtffH+yJ/gN8l85CEa3oQR+TpZIeJHpRHjeqMHbvsiblfSaZoCpEM96K
	Stww==
X-Received: by 10.180.21.161 with SMTP id w1mr8364674wie.44.1422380746936;
	Tue, 27 Jan 2015 09:45:46 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	dn2sm19024471wib.14.2015.01.27.09.45.46
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 27 Jan 2015 09:45:46 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 27 Jan 2015 17:45:28 +0000
Message-Id: <1422380729-10928-15-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
References: <1422380729-10928-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 14/15] Re-work EVTCHN Close
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

When using the FIFO ABI, the Close operation needs to be synchronized with
polling. This requires some re-structuring of the close code to defer the
actual closure of the event channel in Xen until at least one poll after
masking and starting the tear-down.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c | 249 +++++++++++++++++++++++++++++++++-------------------
 1 file changed, 161 insertions(+), 88 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 437bfac..dd608ba 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -85,6 +85,7 @@ struct _XENBUS_EVTCHN_CHANNEL {
     BOOLEAN                     Mask;
     ULONG                       LocalPort;
     ULONG                       Cpu;
+    BOOLEAN                     Closed;
 };
 
 struct _XENBUS_EVTCHN_CONTEXT {
@@ -310,6 +311,8 @@ EvtchnOpen(
 
     LocalPort = Channel->LocalPort;
 
+    Trace("%u\n", LocalPort);
+
     InitializeListHead(&Channel->PendingListEntry);
 
     status = XENBUS_EVTCHN_ABI(PortEnable,
@@ -378,63 +381,49 @@ fail1:
     return NULL;
 }
 
-static NTSTATUS
-EvtchnBind(
-    IN  PINTERFACE              Interface,
+static VOID
+EvtchnReap(
+    IN  PXENBUS_EVTCHN_CONTEXT  Context,
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
-    IN  ULONG                   Cpu
+    IN  BOOLEAN                 Close
     )
 {
-    PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
-    ULONG                       LocalPort;
-    unsigned int                vcpu_id;
-    KIRQL                       Irql;
-    NTSTATUS                    status;
+    ULONG                       LocalPort = Channel->LocalPort;
 
-    status = STATUS_INVALID_PARAMETER;
-    if (Cpu >= (ULONG)KeNumberProcessors)
-        goto fail1;
-
-    status = STATUS_NOT_SUPPORTED;
-    if (~Context->Affinity & ((KAFFINITY)1 << Cpu))
-        goto fail2;
-
-    KeAcquireSpinLock(&Channel->Lock, &Irql);
-
-    if (!Channel->Active)
-        goto done;
+    UNREFERENCED_PARAMETER(Context);
 
-    if (Channel->Cpu == Cpu)
-        goto done;
+    Trace("%u\n", LocalPort);
 
-    LocalPort = Channel->LocalPort;
-    vcpu_id = SystemVirtualCpuIndex(Cpu);
+    ASSERT(Channel->Closed);
+    Channel->Closed = FALSE;
 
-    status = EventChannelBindVirtualCpu(LocalPort, vcpu_id);
-    if (!NT_SUCCESS(status))
-        goto fail3;
+    RtlZeroMemory(&Channel->Lock, sizeof (KSPIN_LOCK));
 
-    Channel->Cpu = Cpu;
+    RemoveEntryList(&Channel->ListEntry);
+    RtlZeroMemory(&Channel->ListEntry, sizeof (LIST_ENTRY));
 
-    Info("[%u]: CPU %u\n", LocalPort, Cpu);
+    Channel->Cpu = 0;
 
-done:
-    KeReleaseSpinLock(&Channel->Lock, Irql);
+    ASSERT(IsListEmpty(&Channel->PendingListEntry));
+    RtlZeroMemory(&Channel->PendingListEntry, sizeof (LIST_ENTRY));
 
-    return STATUS_SUCCESS;
+    Channel->LocalPort = 0;
+    Channel->Mask = FALSE;
+    RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
 
-fail3:
-    Error("fail3\n");
+    if (Close && Channel->Type != XENBUS_EVTCHN_TYPE_FIXED)
+        (VOID) EventChannelClose(LocalPort);
 
-    KeReleaseSpinLock(&Channel->Lock, Irql);
+    Channel->Argument = NULL;
+    Channel->Callback = NULL;
+    Channel->Type = 0;
 
-fail2:
-    Error("fail2\n");
+    Channel->Caller = NULL;
 
-fail1:
-    Error("fail1 (%08x)\n", status);
+    Channel->Magic = 0;
 
-    return status;
+    ASSERT(IsZeroMemory(Channel, sizeof (XENBUS_EVTCHN_CHANNEL)));
+    __EvtchnFree(Channel);
 }
 
 static BOOLEAN
@@ -473,10 +462,12 @@ done:
 static BOOLEAN
 EvtchnPoll(
     IN  PXENBUS_EVTCHN_CONTEXT  Context,
-    IN  ULONG                   Cpu
+    IN  ULONG                   Cpu,
+    IN  PLIST_ENTRY             List
     )
 {
     BOOLEAN                     DoneSomething;
+    PLIST_ENTRY                 ListEntry;
 
     (VOID) XENBUS_EVTCHN_ABI(Poll,
                              &Context->EvtchnAbi,
@@ -485,29 +476,40 @@ EvtchnPoll(
                              Context);
 
     DoneSomething = FALSE;
-    while (!IsListEmpty(&Context->PendingList[Cpu])) {
-        PLIST_ENTRY             ListEntry;
-        PXENBUS_EVTCHN_CHANNEL  Channel;
-
-        ListEntry = RemoveHeadList(&Context->PendingList[Cpu]);
-        ASSERT(ListEntry != &Context->PendingList[Cpu]);
 
-        InitializeListHead(ListEntry);
+    ListEntry = Context->PendingList[Cpu].Flink;
+    while (ListEntry != &Context->PendingList[Cpu]) {
+        PLIST_ENTRY             Next = ListEntry->Flink;
+        PXENBUS_EVTCHN_CHANNEL  Channel;
 
         Channel = CONTAINING_RECORD(ListEntry,
                                     XENBUS_EVTCHN_CHANNEL,
                                     PendingListEntry);
-        if (Channel->Mask)
-            XENBUS_EVTCHN_ABI(PortMask,
+
+        ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
+        KeMemoryBarrier();
+        if (!Channel->Closed) {
+            RemoveEntryList(&Channel->PendingListEntry);
+            InitializeListHead(&Channel->PendingListEntry);
+
+            if (Channel->Mask)
+                XENBUS_EVTCHN_ABI(PortMask,
+                                  &Context->EvtchnAbi,
+                                  Channel->LocalPort);
+
+            XENBUS_EVTCHN_ABI(PortAck,
                               &Context->EvtchnAbi,
                               Channel->LocalPort);
 
-        XENBUS_EVTCHN_ABI(PortAck,
-                          &Context->EvtchnAbi,
-                          Channel->LocalPort);
-
 #pragma warning(suppress:6387)  // NULL argument
-        DoneSomething |= Channel->Callback(NULL, Channel->Argument);
+            DoneSomething |= Channel->Callback(NULL, Channel->Argument);
+        } else if (List != NULL) {
+            RemoveEntryList(&Channel->PendingListEntry);
+            InsertTailList(List, &Channel->PendingListEntry);
+        }
+
+        ListEntry = Next;
     }
 
     return DoneSomething;
@@ -519,6 +521,7 @@ EvtchnFlush(
     IN  ULONG                   Cpu
     )
 {
+    LIST_ENTRY                  List;
     PXENBUS_INTERRUPT           Interrupt;
     KIRQL                       Irql;
 
@@ -526,11 +529,31 @@ EvtchnFlush(
                 Context->LatchedInterrupt[Cpu] :
                 Context->LevelSensitiveInterrupt;
 
+    InitializeListHead(&List);
+
     Irql = FdoAcquireInterruptLock(Context->Fdo, Interrupt);
 
-    (VOID) EvtchnPoll(Context, Cpu);
+    (VOID) EvtchnPoll(Context, Cpu, &List);
 
     FdoReleaseInterruptLock(Context->Fdo, Interrupt, Irql);
+
+    while (!IsListEmpty(&List)) {
+        PLIST_ENTRY             ListEntry;
+        PXENBUS_EVTCHN_CHANNEL  Channel;
+
+        ListEntry = RemoveHeadList(&List);
+        ASSERT(ListEntry != &List);
+
+        Channel = CONTAINING_RECORD(ListEntry,
+                                    XENBUS_EVTCHN_CHANNEL,
+                                    PendingListEntry);
+
+        ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
+
+        InitializeListHead(&Channel->PendingListEntry);
+
+        EvtchnReap(Context, Channel, TRUE);
+    }
 }
 
 static
@@ -608,6 +631,65 @@ EvtchnTrigger(
     KeInsertQueueDpc(Dpc, NULL, NULL);
 }
 
+static NTSTATUS
+EvtchnBind(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  ULONG                   Cpu
+    )
+{
+    PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
+    ULONG                       LocalPort;
+    unsigned int                vcpu_id;
+    KIRQL                       Irql;
+    NTSTATUS                    status;
+
+    status = STATUS_INVALID_PARAMETER;
+    if (Cpu >= (ULONG)KeNumberProcessors)
+        goto fail1;
+
+    status = STATUS_NOT_SUPPORTED;
+    if (~Context->Affinity & ((KAFFINITY)1 << Cpu))
+        goto fail2;
+
+    KeAcquireSpinLock(&Channel->Lock, &Irql);
+
+    if (!Channel->Active)
+        goto done;
+
+    if (Channel->Cpu == Cpu)
+        goto done;
+
+    LocalPort = Channel->LocalPort;
+    vcpu_id = SystemVirtualCpuIndex(Cpu);
+
+    status = EventChannelBindVirtualCpu(LocalPort, vcpu_id);
+    if (!NT_SUCCESS(status))
+        goto fail3;
+
+    Channel->Cpu = Cpu;
+
+    Info("[%u]: CPU %u\n", LocalPort, Cpu);
+
+done:
+    KeReleaseSpinLock(&Channel->Lock, Irql);
+
+    return STATUS_SUCCESS;
+
+fail3:
+    Error("fail3\n");
+
+    KeReleaseSpinLock(&Channel->Lock, Irql);
+
+fail2:
+    Error("fail2\n");
+
+fail1:
+    Error("fail1 (%08x)\n", status);
+
+    return status;
+}
+
 static VOID
 EvtchnUnmask(
     IN  PINTERFACE              Interface,
@@ -688,57 +770,48 @@ EvtchnClose(
     )
 {
     PXENBUS_EVTCHN_CONTEXT      Context = Interface->Context;
+    ULONG                       LocalPort = Channel->LocalPort;
     KIRQL                       Irql;
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
-    RtlZeroMemory(&Channel->Lock, sizeof (KSPIN_LOCK));
-
     KeRaiseIrql(DISPATCH_LEVEL, &Irql); // Prevent suspend
 
-    KeAcquireSpinLockAtDpcLevel(&Context->Lock);
-    RemoveEntryList(&Channel->ListEntry);
-    KeReleaseSpinLockFromDpcLevel(&Context->Lock);
-
-    RtlZeroMemory(&Channel->ListEntry, sizeof (LIST_ENTRY));
+    Trace("%u\n", LocalPort);
 
     if (Channel->Active) {
-        ULONG       LocalPort = Channel->LocalPort;
         NTSTATUS    status;
 
         Channel->Active = FALSE;
 
-        XENBUS_EVTCHN_ABI(PortMask,
+        XENBUS_EVTCHN_ABI(PortDisable,
                           &Context->EvtchnAbi,
                           LocalPort);
 
-        if (Channel->Type != XENBUS_EVTCHN_TYPE_FIXED)
-            (VOID) EventChannelClose(LocalPort);
-
         status = HashTableRemove(Context->Table, LocalPort);
         ASSERT(NT_SUCCESS(status));
-    }
 
-    Channel->Cpu = 0;
+        //
+        // The event may be pending on a CPU queue so we mark it as
+        // closed but defer the rest of the work to the correct
+        // DPC, which will make sure the queue is polled first.
+        //
 
-    ASSERT(IsListEmpty(&Channel->PendingListEntry));
-    RtlZeroMemory(&Channel->PendingListEntry, sizeof (LIST_ENTRY));
+        Channel->Closed = TRUE;
+        KeMemoryBarrier();
 
-    Channel->LocalPort = 0;
-    Channel->Mask = FALSE;
-    RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
-
-    Channel->Argument = NULL;
-    Channel->Callback = NULL;
-    Channel->Type = 0;
+        EvtchnTrigger(Interface, Channel);
+        goto done;
+    }
 
-    Channel->Caller = NULL;
+    KeAcquireSpinLockAtDpcLevel(&Context->Lock);
 
-    Channel->Magic = 0;
+    Channel->Closed = TRUE;
+    EvtchnReap(Context, Channel, FALSE);
 
-    ASSERT(IsZeroMemory(Channel, sizeof (XENBUS_EVTCHN_CHANNEL)));
-    __EvtchnFree(Channel);
+    KeReleaseSpinLockFromDpcLevel(&Context->Lock);
 
+done:
     KeLowerIrql(Irql);
 }
 
@@ -778,7 +851,7 @@ EvtchnInterruptCallback(
     while (XENBUS_SHARED_INFO(UpcallPending,
                               &Context->SharedInfoInterface,
                               Cpu))
-        DoneSomething |= EvtchnPoll(Context, Cpu);
+        DoneSomething |= EvtchnPoll(Context, Cpu, NULL);
 
     return DoneSomething;
 }
@@ -1203,9 +1276,6 @@ EvtchnRelease(
 
     Trace("====>\n");
 
-    if (!IsListEmpty(&Context->List))
-        BUG("OUTSTANDING EVENT CHANNELS");
-
     EvtchnInterruptDisable(Context);
 
     Cpu = KeNumberProcessors;
@@ -1219,6 +1289,9 @@ EvtchnRelease(
     FdoFreeInterrupt(Fdo, Context->LevelSensitiveInterrupt);
     Context->LevelSensitiveInterrupt = NULL;
 
+    if (!IsListEmpty(&Context->List))
+        BUG("OUTSTANDING EVENT CHANNELS");
+
     EvtchnAbiRelease(Context);
 
     XENBUS_SHARED_INFO(Release, &Context->SharedInfoInterface);
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 28 09:19:00 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jan 2015 09:19:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGOm4-0000I1-DU; Wed, 28 Jan 2015 09:19:00 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YGOm2-0000Ho-Tj
	for win-pv-devel@lists.xenproject.org; Wed, 28 Jan 2015 09:18:59 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
	A3/83-28359-289A8C45; Wed, 28 Jan 2015 09:18:58 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-4.tower-27.messagelabs.com!1422436736!12007045!1
X-Originating-IP: [209.85.216.173]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19142 invoked from network); 28 Jan 2015 09:18:57 -0000
Received: from mail-qc0-f173.google.com (HELO mail-qc0-f173.google.com)
	(209.85.216.173)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Jan 2015 09:18:57 -0000
Received: by mail-qc0-f173.google.com with SMTP id m20so15470931qcx.4
	for <win-pv-devel@lists.xenproject.org>;
	Wed, 28 Jan 2015 01:18:56 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:content-type;
	bh=U4BVFA9R2mg0TtsW6vhq40naYhX9xmGSNubHkcysjEU=;
	b=cir1oxqGyfR14vv9jvU9jMlGHUxSzTgGjxOXuNbZYsWvNinRRDPftKt22AdQCrbwWt
	QoAKH6raTK+8dn090nIAMW8x9J2pgTWEKb4OIpQ2+qHUZUVdTh+BTBiJdctP/RvUxMsJ
	jTVBsThPbmYghwpTn7NF/Z8Wrla5Ep233DzWh0wF9u9Y3qXRVmNNTt1W9V7BpO2WxpZo
	0nYJ7BRRl15HJX70NtEwhuzM91I0/ruZ5wR4ZwQa4OtRmqZul2eAq+fEC11Jutse8DhM
	OsUef7wJP1TUi2N5oo15iRKwXJ+wUWm9YfqBe9Kp9ophsWogoczcbJE/rYhALarxHs9o
	cPbA==
X-Gm-Message-State: ALoCoQl6zzEMuv098jhN8yMk45PfqwlJLwVrIZt1MmsOsoe/6lM6qtJY5A1eHauXw1FRN+X+qhoy
MIME-Version: 1.0
X-Received: by 10.224.23.6 with SMTP id p6mr11391435qab.55.1422436736227; Wed,
	28 Jan 2015 01:18:56 -0800 (PST)
Received: by 10.96.150.135 with HTTP; Wed, 28 Jan 2015 01:18:56 -0800 (PST)
X-Originating-IP: [194.184.175.141]
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz> <54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
Date: Wed, 28 Jan 2015 10:18:56 +0100
Message-ID: <CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
To: Paul Durrant <Paul.Durrant@citrix.com>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Il 22/01/2015 16:00, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>> Sent: 22 January 2015 10:10
>> To: win-pv-devel@lists.xenproject.org
>> Cc: Paul Durrant
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>> Hi, I installed winpv driver build of 15 january on Windows server
>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>> xl save/restore didn't show any errors, trying to connected with rdp I
>>> was unable and with spice I saw screen with data and time (time update
>>> after restore) but doing ctrl+alt+canc it changed something in screen
>>> only after 5-10 minutes and still without showing login field.
>>>
>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
>>> xen build.
>>> DomU xl cfg:
>>>> name='w2012r2-01'
>>>> builder="hvm"
>>>> memory=8192
>>>> vcpus=4
>>>> acpi_s3=0
>>>> acpi_s4=0
>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>> 18:2a:f2,script=vif-openvswitch']
>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>> disk=['/mnt/vm/disks/w2012r2-
>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>> boot='dc'
>>>> device_model_version="qemu-xen"
>>>> viridian=1
>>>> vnc=0
>>>> keymap="it"
>>>> on_crash="destroy"
>>>> vga="stdvga"
>>>> spice=1
>>>> spicehost='0.0.0.0'
>>>> spiceport=6000
>>>> spicepasswd="test"
>>>> spicevdagent=1
>>>> spice_clipboard_sharing=0
>>>> spiceusbredirection=4
>>>> soundhw="hda"
>>>> localtime=1
>>> I added in attachments qemu logs (before and after save/restore) with
>>> xen trace enabled.
>>>
>>> If you need more informations tests tell me and I'll post them.
>>>
>>> I have also another small question:
>>> is ms_vm_genid needed for this case? for what I understand is only for
>>> active directory controller and this it isn't.
>>>
>>> Thanks for any reply and sorry for my bad english.
>>>
>>>
>> I also tried to uninstall the pv drivers from control panel but windows
>> crash, minidump in attachments.
> I'm re-working the FIFO event channel code at the moment so I'll run a quick suspend/resume test when I'm done.
>
>    Paul

Thanks for your reply.
I did other tests and seems that save/restore problems with windows 2012
was for missed ms_vm_genid="generate" even if clean for now (no active
directory or other server services enabled nor domain member).
Remain windows crash on winpv drivers uninstall with minidump refer to
xenvif and other important and occasional problem:
network not working after some time and after 2-3 minutes all windows
become unusable.
I hope these problem will be solved by new network pv driver patches,
I'll test them ASAP when build with them will be ready.

Thanks for any reply and sorry for my bad english.

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 28 09:19:00 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jan 2015 09:19:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGOm4-0000I1-DU; Wed, 28 Jan 2015 09:19:00 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YGOm2-0000Ho-Tj
	for win-pv-devel@lists.xenproject.org; Wed, 28 Jan 2015 09:18:59 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
	A3/83-28359-289A8C45; Wed, 28 Jan 2015 09:18:58 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-4.tower-27.messagelabs.com!1422436736!12007045!1
X-Originating-IP: [209.85.216.173]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19142 invoked from network); 28 Jan 2015 09:18:57 -0000
Received: from mail-qc0-f173.google.com (HELO mail-qc0-f173.google.com)
	(209.85.216.173)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Jan 2015 09:18:57 -0000
Received: by mail-qc0-f173.google.com with SMTP id m20so15470931qcx.4
	for <win-pv-devel@lists.xenproject.org>;
	Wed, 28 Jan 2015 01:18:56 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:content-type;
	bh=U4BVFA9R2mg0TtsW6vhq40naYhX9xmGSNubHkcysjEU=;
	b=cir1oxqGyfR14vv9jvU9jMlGHUxSzTgGjxOXuNbZYsWvNinRRDPftKt22AdQCrbwWt
	QoAKH6raTK+8dn090nIAMW8x9J2pgTWEKb4OIpQ2+qHUZUVdTh+BTBiJdctP/RvUxMsJ
	jTVBsThPbmYghwpTn7NF/Z8Wrla5Ep233DzWh0wF9u9Y3qXRVmNNTt1W9V7BpO2WxpZo
	0nYJ7BRRl15HJX70NtEwhuzM91I0/ruZ5wR4ZwQa4OtRmqZul2eAq+fEC11Jutse8DhM
	OsUef7wJP1TUi2N5oo15iRKwXJ+wUWm9YfqBe9Kp9ophsWogoczcbJE/rYhALarxHs9o
	cPbA==
X-Gm-Message-State: ALoCoQl6zzEMuv098jhN8yMk45PfqwlJLwVrIZt1MmsOsoe/6lM6qtJY5A1eHauXw1FRN+X+qhoy
MIME-Version: 1.0
X-Received: by 10.224.23.6 with SMTP id p6mr11391435qab.55.1422436736227; Wed,
	28 Jan 2015 01:18:56 -0800 (PST)
Received: by 10.96.150.135 with HTTP; Wed, 28 Jan 2015 01:18:56 -0800 (PST)
X-Originating-IP: [194.184.175.141]
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz> <54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
Date: Wed, 28 Jan 2015 10:18:56 +0100
Message-ID: <CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
To: Paul Durrant <Paul.Durrant@citrix.com>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Il 22/01/2015 16:00, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>> Sent: 22 January 2015 10:10
>> To: win-pv-devel@lists.xenproject.org
>> Cc: Paul Durrant
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>> Hi, I installed winpv driver build of 15 january on Windows server
>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>> xl save/restore didn't show any errors, trying to connected with rdp I
>>> was unable and with spice I saw screen with data and time (time update
>>> after restore) but doing ctrl+alt+canc it changed something in screen
>>> only after 5-10 minutes and still without showing login field.
>>>
>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
>>> xen build.
>>> DomU xl cfg:
>>>> name='w2012r2-01'
>>>> builder="hvm"
>>>> memory=8192
>>>> vcpus=4
>>>> acpi_s3=0
>>>> acpi_s4=0
>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>> 18:2a:f2,script=vif-openvswitch']
>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>> disk=['/mnt/vm/disks/w2012r2-
>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>> boot='dc'
>>>> device_model_version="qemu-xen"
>>>> viridian=1
>>>> vnc=0
>>>> keymap="it"
>>>> on_crash="destroy"
>>>> vga="stdvga"
>>>> spice=1
>>>> spicehost='0.0.0.0'
>>>> spiceport=6000
>>>> spicepasswd="test"
>>>> spicevdagent=1
>>>> spice_clipboard_sharing=0
>>>> spiceusbredirection=4
>>>> soundhw="hda"
>>>> localtime=1
>>> I added in attachments qemu logs (before and after save/restore) with
>>> xen trace enabled.
>>>
>>> If you need more informations tests tell me and I'll post them.
>>>
>>> I have also another small question:
>>> is ms_vm_genid needed for this case? for what I understand is only for
>>> active directory controller and this it isn't.
>>>
>>> Thanks for any reply and sorry for my bad english.
>>>
>>>
>> I also tried to uninstall the pv drivers from control panel but windows
>> crash, minidump in attachments.
> I'm re-working the FIFO event channel code at the moment so I'll run a quick suspend/resume test when I'm done.
>
>    Paul

Thanks for your reply.
I did other tests and seems that save/restore problems with windows 2012
was for missed ms_vm_genid="generate" even if clean for now (no active
directory or other server services enabled nor domain member).
Remain windows crash on winpv drivers uninstall with minidump refer to
xenvif and other important and occasional problem:
network not working after some time and after 2-3 minutes all windows
become unusable.
I hope these problem will be solved by new network pv driver patches,
I'll test them ASAP when build with them will be ready.

Thanks for any reply and sorry for my bad english.

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 28 10:09:12 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jan 2015 10:09:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGPYe-0004VL-N5; Wed, 28 Jan 2015 10:09:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1YGPYd-0004Uv-P3; Wed, 28 Jan 2015 10:09:11 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	1D/6C-03891-645B8C45; Wed, 28 Jan 2015 10:09:10 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1422439749!22923805!1
X-Originating-IP: [74.125.82.44]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19104 invoked from network); 28 Jan 2015 10:09:10 -0000
Received: from mail-wg0-f44.google.com (HELO mail-wg0-f44.google.com)
	(74.125.82.44)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Jan 2015 10:09:10 -0000
Received: by mail-wg0-f44.google.com with SMTP id z12so19637210wgg.3;
	Wed, 28 Jan 2015 02:09:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:date:message-id
	:cc:to:mime-version;
	bh=yE9HIbxQQKPg+IdndQVKrLfqojZGFQCiIi7719Wsrj0=;
	b=aA70nW7lofEzr+jyu18aj6rmde9n/Ly5TqwEurLiyu/XnisWKJ/Lt1vM529XHLvfgf
	+uiUZtd4IT3UnDn6tyepvhuiylFdpyofz/4jTNQvYQB95ztp2Y8lsICJsNxDMlafjft8
	ZOUcxeEbZtQ/xHW00/OI1E0OPrRYloagiTRuENACuSy9ybghjxMNLW7fQx7Spv+d8ZOX
	gMnQWvGNSfGcYeQRmTTxSr2BzQpN8VUKJAivZtA/qRUmmff7jNV8tOODGqO30Zr8XY2f
	3niwD3rh/ObrKfb/tRp2ZMf8wYemYzHhtgEs3YnEBkPRLr7A50Me0J1TiS6MlLISw5n0
	tLxA==
X-Received: by 10.180.14.136 with SMTP id p8mr5474826wic.20.1422439749566;
	Wed, 28 Jan 2015 02:09:09 -0800 (PST)
Received: from [192.168.0.8] (97e5a0c2.skybroadband.com. [151.229.160.194])
	by mx.google.com with ESMTPSA id b10sm5373019wjr.32.2015.01.28.02.09.07
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 28 Jan 2015 02:09:08 -0800 (PST)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Date: Wed, 28 Jan 2015 10:09:06 +0000
Message-Id: <851C4ADF-6236-443B-B7BA-5A7A68AC8819@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	xen-api@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Cc: advisory-board@lists.xenproject.org
Subject: [win-pv-devel] Hackathon date options in Shanghai : please vote for
	a preference by Wed the 3rd of Feb
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Dear community members,

Intel has volunteered to host the next Xen Project Hackathon in Shanghai in China. We were originally looking at an April/May time-frame, but due to Easter holidays and the OpenStack summit in May, the following two date options look most sensible.

Remember, this is a two day event.

The options are:
* Option 1: 2 days from Tue April 21 to Fri 24th ... In this case I would suggest maybe the 22 - 23rd, giving people a chance to meet customers on Friday and/or do a bit of sightseeing. It also means that attendees from other Chinese cities will be able to get to their home cities more easily (Friday is always extremely busy)
* Option 2: April 28-29

Please let me know if you have any preferences and vote for option 1 or 2 (if you vote for option 1 let me know if you care about any specific dates)

Regards
Lars
_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 28 10:09:12 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jan 2015 10:09:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGPYe-0004VL-N5; Wed, 28 Jan 2015 10:09:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1YGPYd-0004Uv-P3; Wed, 28 Jan 2015 10:09:11 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	1D/6C-03891-645B8C45; Wed, 28 Jan 2015 10:09:10 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1422439749!22923805!1
X-Originating-IP: [74.125.82.44]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19104 invoked from network); 28 Jan 2015 10:09:10 -0000
Received: from mail-wg0-f44.google.com (HELO mail-wg0-f44.google.com)
	(74.125.82.44)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Jan 2015 10:09:10 -0000
Received: by mail-wg0-f44.google.com with SMTP id z12so19637210wgg.3;
	Wed, 28 Jan 2015 02:09:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:date:message-id
	:cc:to:mime-version;
	bh=yE9HIbxQQKPg+IdndQVKrLfqojZGFQCiIi7719Wsrj0=;
	b=aA70nW7lofEzr+jyu18aj6rmde9n/Ly5TqwEurLiyu/XnisWKJ/Lt1vM529XHLvfgf
	+uiUZtd4IT3UnDn6tyepvhuiylFdpyofz/4jTNQvYQB95ztp2Y8lsICJsNxDMlafjft8
	ZOUcxeEbZtQ/xHW00/OI1E0OPrRYloagiTRuENACuSy9ybghjxMNLW7fQx7Spv+d8ZOX
	gMnQWvGNSfGcYeQRmTTxSr2BzQpN8VUKJAivZtA/qRUmmff7jNV8tOODGqO30Zr8XY2f
	3niwD3rh/ObrKfb/tRp2ZMf8wYemYzHhtgEs3YnEBkPRLr7A50Me0J1TiS6MlLISw5n0
	tLxA==
X-Received: by 10.180.14.136 with SMTP id p8mr5474826wic.20.1422439749566;
	Wed, 28 Jan 2015 02:09:09 -0800 (PST)
Received: from [192.168.0.8] (97e5a0c2.skybroadband.com. [151.229.160.194])
	by mx.google.com with ESMTPSA id b10sm5373019wjr.32.2015.01.28.02.09.07
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 28 Jan 2015 02:09:08 -0800 (PST)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Date: Wed, 28 Jan 2015 10:09:06 +0000
Message-Id: <851C4ADF-6236-443B-B7BA-5A7A68AC8819@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	xen-api@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Cc: advisory-board@lists.xenproject.org
Subject: [win-pv-devel] Hackathon date options in Shanghai : please vote for
	a preference by Wed the 3rd of Feb
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Dear community members,

Intel has volunteered to host the next Xen Project Hackathon in Shanghai in China. We were originally looking at an April/May time-frame, but due to Easter holidays and the OpenStack summit in May, the following two date options look most sensible.

Remember, this is a two day event.

The options are:
* Option 1: 2 days from Tue April 21 to Fri 24th ... In this case I would suggest maybe the 22 - 23rd, giving people a chance to meet customers on Friday and/or do a bit of sightseeing. It also means that attendees from other Chinese cities will be able to get to their home cities more easily (Friday is always extremely busy)
* Option 2: April 28-29

Please let me know if you have any preferences and vote for option 1 or 2 (if you vote for option 1 let me know if you care about any specific dates)

Regards
Lars
_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 28 20:13:11 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jan 2015 20:13:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGYz9-00021y-Ks; Wed, 28 Jan 2015 20:13:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>)
	id 1YGYz9-00021q-06; Wed, 28 Jan 2015 20:13:11 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	72/5C-09606-6D249C45; Wed, 28 Jan 2015 20:13:10 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1422475989!23059796!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6455 invoked from network); 28 Jan 2015 20:13:09 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Jan 2015 20:13:09 -0000
X-IronPort-AV: E=Sophos;i="5.09,482,1418083200"; d="scan'208";a="30148869"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Christian Refvik <christian.refvik@onlive.com>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Porting libvchan to use the Windows PV Drivers
Thread-Index: AdA525hiLRGo13pnSj6DUPCv1wGyWQBWcWmg
Date: Wed, 28 Jan 2015 20:13:07 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5C1@AMSPEX01CL01.citrite.net>
References: <B4DC7AAB07005D4DA887F0BE517884F2A2C2D8@mailbox02.onlive.corp>
In-Reply-To: <B4DC7AAB07005D4DA887F0BE517884F2A2C2D8@mailbox02.onlive.corp>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Porting libvchan to use the Windows PV Drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Christian Refvik
> Sent: 27 January 2015 03:02
> To: win-pv-devel@lists.xenproject.org
> Cc: xen-devel@lists.xenproject.org
> Subject: [win-pv-devel] Porting libvchan to use the Windows PV Drivers
> 
> Hi guys,
> 
> I'm a new Xen developer.  However, I've been looking at porting the libvchan
> library so that it uses the Windows PV Drivers that are currently checked in.

Hi,

  I think that would be a great idea.

> As far as libvchan is concerned, (I think) I understand it fairly well.  I've even
> started to create some documentation which I'm happy to post on the Xen
> wiki.
> 
> From what I see, the libvchan basically relies on xenstore and libxc (XenCtrl).
> The Windows PV drivers have the xeniface package contains the code used
> to access XenStore through XenBus.

Currently the most functional interface to xenstore through XENIFACE is via WMI. WMI is very painful to use from anything other than .NET so I suspect it would need a more functional IOCTL based interface as a start.

>   I'm not sure about the equivalent of
> libxc, but most of the functionality looks like it lives in the xenbus package.
> The issue seems like libxc allows user space applications to make calls to the
> hypervisor using the devices privcmd, evtchn, and gntalloc.  I don't know how
> this should work on Windows, since the device driver structure is different
> than Linux.
> 

Continuing from above, I think IOCTL based interfaces (set up with IoRegisterDeviceInterface) in XENIFACE would be the way to go. XENBUS does contain the kernel implementations but I think XENIFACE is the right place to surface them to user space.

> 1.  Where should I start looking in the Windows PV side to get more familiar?

The best way to started is to get hold of source for each driver, build it and install it yourself. If you create debug builds then you should see a substantial amount of logging (via DbgPrint) so attaching a debugger to the VM is also a good idea.

> 2.  Where is there some documentation on how can I use the Windows PV
> drivers to build my own custom drivers on top of the Windows PV interfaces?

There's not much in the way of documentation. Each of the interface headers does contain some doxygen tagging though and there is a script in the repos to generate docs from these. 

> 3.  How should I correctly port libvchan to Windows?  Should libvchan be a
> new type of driver that might uses xen.sys directly?  Its not clear to me keep
> a high bandwidth and still get the best latency.
> 

As I said above, I think XENIFACE is the right place to do the coding. The libvchan equivalent should IMO be a Win32 DLL that is layered on the interfaces exposed by XENIFACE.

  Paul

> Any suggestions and help is appreciated.
> 
> Thanks,
> Christian
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 28 20:13:11 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jan 2015 20:13:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGYz9-00021y-Ks; Wed, 28 Jan 2015 20:13:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>)
	id 1YGYz9-00021q-06; Wed, 28 Jan 2015 20:13:11 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	72/5C-09606-6D249C45; Wed, 28 Jan 2015 20:13:10 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1422475989!23059796!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6455 invoked from network); 28 Jan 2015 20:13:09 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Jan 2015 20:13:09 -0000
X-IronPort-AV: E=Sophos;i="5.09,482,1418083200"; d="scan'208";a="30148869"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Christian Refvik <christian.refvik@onlive.com>,
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Porting libvchan to use the Windows PV Drivers
Thread-Index: AdA525hiLRGo13pnSj6DUPCv1wGyWQBWcWmg
Date: Wed, 28 Jan 2015 20:13:07 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5C1@AMSPEX01CL01.citrite.net>
References: <B4DC7AAB07005D4DA887F0BE517884F2A2C2D8@mailbox02.onlive.corp>
In-Reply-To: <B4DC7AAB07005D4DA887F0BE517884F2A2C2D8@mailbox02.onlive.corp>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Porting libvchan to use the Windows PV Drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Christian Refvik
> Sent: 27 January 2015 03:02
> To: win-pv-devel@lists.xenproject.org
> Cc: xen-devel@lists.xenproject.org
> Subject: [win-pv-devel] Porting libvchan to use the Windows PV Drivers
> 
> Hi guys,
> 
> I'm a new Xen developer.  However, I've been looking at porting the libvchan
> library so that it uses the Windows PV Drivers that are currently checked in.

Hi,

  I think that would be a great idea.

> As far as libvchan is concerned, (I think) I understand it fairly well.  I've even
> started to create some documentation which I'm happy to post on the Xen
> wiki.
> 
> From what I see, the libvchan basically relies on xenstore and libxc (XenCtrl).
> The Windows PV drivers have the xeniface package contains the code used
> to access XenStore through XenBus.

Currently the most functional interface to xenstore through XENIFACE is via WMI. WMI is very painful to use from anything other than .NET so I suspect it would need a more functional IOCTL based interface as a start.

>   I'm not sure about the equivalent of
> libxc, but most of the functionality looks like it lives in the xenbus package.
> The issue seems like libxc allows user space applications to make calls to the
> hypervisor using the devices privcmd, evtchn, and gntalloc.  I don't know how
> this should work on Windows, since the device driver structure is different
> than Linux.
> 

Continuing from above, I think IOCTL based interfaces (set up with IoRegisterDeviceInterface) in XENIFACE would be the way to go. XENBUS does contain the kernel implementations but I think XENIFACE is the right place to surface them to user space.

> 1.  Where should I start looking in the Windows PV side to get more familiar?

The best way to started is to get hold of source for each driver, build it and install it yourself. If you create debug builds then you should see a substantial amount of logging (via DbgPrint) so attaching a debugger to the VM is also a good idea.

> 2.  Where is there some documentation on how can I use the Windows PV
> drivers to build my own custom drivers on top of the Windows PV interfaces?

There's not much in the way of documentation. Each of the interface headers does contain some doxygen tagging though and there is a script in the repos to generate docs from these. 

> 3.  How should I correctly port libvchan to Windows?  Should libvchan be a
> new type of driver that might uses xen.sys directly?  Its not clear to me keep
> a high bandwidth and still get the best latency.
> 

As I said above, I think XENIFACE is the right place to do the coding. The libvchan equivalent should IMO be a Win32 DLL that is layered on the interfaces exposed by XENIFACE.

  Paul

> Any suggestions and help is appreciated.
> 
> Thanks,
> Christian
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 28 20:14:51 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jan 2015 20:14:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGZ0l-00028D-6E; Wed, 28 Jan 2015 20:14:51 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YGZ0j-000282-PT
	for win-pv-devel@lists.xenproject.org; Wed, 28 Jan 2015 20:14:50 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	FB/48-02754-83349C45; Wed, 28 Jan 2015 20:14:48 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1422476088!13093667!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD,received_headers: 
	No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1672 invoked from network); 28 Jan 2015 20:14:48 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Jan 2015 20:14:48 -0000
X-IronPort-AV: E=Sophos;i="5.09,482,1418083200"; d="scan'208";a="30149167"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQOtt08SqiS93VA0yd4kSKYd/vO5zV+CDA
Date: Wed, 28 Jan 2015 20:14:46 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
In-Reply-To: <CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
 save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> Sent: 28 January 2015 09:19
> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 22/01/2015 16:00, Paul Durrant ha scritto:
> >> -----Original Message-----
> >> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> >> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >> Sent: 22 January 2015 10:10
> >> To: win-pv-devel@lists.xenproject.org
> >> Cc: Paul Durrant
> >> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> after
> >> save/restore
> >>
> >> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> >>> Hi, I installed winpv driver build of 15 january on Windows server
> >>> 2012 R2 standard 64 bit and have problem after save/restore.
> >>> xl save/restore didn't show any errors, trying to connected with rdp I
> >>> was unable and with spice I saw screen with data and time (time update
> >>> after restore) but doing ctrl+alt+canc it changed something in screen
> >>> only after 5-10 minutes and still without showing login field.
> >>>
> >>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
> >>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
> >>> xen build.
> >>> DomU xl cfg:
> >>>> name='w2012r2-01'
> >>>> builder="hvm"
> >>>> memory=8192
> >>>> vcpus=4
> >>>> acpi_s3=0
> >>>> acpi_s4=0
> >>>>
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> >> 18:2a:f2,script=vif-openvswitch']
> >>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >>>> disk=['/mnt/vm/disks/w2012r2-
> >> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>>> boot='dc'
> >>>> device_model_version="qemu-xen"
> >>>> viridian=1
> >>>> vnc=0
> >>>> keymap="it"
> >>>> on_crash="destroy"
> >>>> vga="stdvga"
> >>>> spice=1
> >>>> spicehost='0.0.0.0'
> >>>> spiceport=6000
> >>>> spicepasswd="test"
> >>>> spicevdagent=1
> >>>> spice_clipboard_sharing=0
> >>>> spiceusbredirection=4
> >>>> soundhw="hda"
> >>>> localtime=1
> >>> I added in attachments qemu logs (before and after save/restore) with
> >>> xen trace enabled.
> >>>
> >>> If you need more informations tests tell me and I'll post them.
> >>>
> >>> I have also another small question:
> >>> is ms_vm_genid needed for this case? for what I understand is only for
> >>> active directory controller and this it isn't.
> >>>
> >>> Thanks for any reply and sorry for my bad english.
> >>>
> >>>
> >> I also tried to uninstall the pv drivers from control panel but windows
> >> crash, minidump in attachments.
> > I'm re-working the FIFO event channel code at the moment so I'll run a
> quick suspend/resume test when I'm done.
> >
> >    Paul
> 
> Thanks for your reply.
> I did other tests and seems that save/restore problems with windows 2012
> was for missed ms_vm_genid="generate" even if clean for now (no active
> directory or other server services enabled nor domain member).
> Remain windows crash on winpv drivers uninstall with minidump refer to
> xenvif and other important and occasional problem:
> network not working after some time and after 2-3 minutes all windows
> become unusable.
> I hope these problem will be solved by new network pv driver patches,
> I'll test them ASAP when build with them will be ready.
> 

I pushed my big series into xenbus today. You should definitely take that; it fixes several bugs in FIFO event channels and a couple of other things.

  Paul

> Thanks for any reply and sorry for my bad english.
_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Wed Jan 28 20:14:51 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jan 2015 20:14:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGZ0l-00028D-6E; Wed, 28 Jan 2015 20:14:51 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YGZ0j-000282-PT
	for win-pv-devel@lists.xenproject.org; Wed, 28 Jan 2015 20:14:50 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	FB/48-02754-83349C45; Wed, 28 Jan 2015 20:14:48 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1422476088!13093667!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD,received_headers: 
	No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1672 invoked from network); 28 Jan 2015 20:14:48 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Jan 2015 20:14:48 -0000
X-IronPort-AV: E=Sophos;i="5.09,482,1418083200"; d="scan'208";a="30149167"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQOtt08SqiS93VA0yd4kSKYd/vO5zV+CDA
Date: Wed, 28 Jan 2015 20:14:46 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
In-Reply-To: <CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
 save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> Sent: 28 January 2015 09:19
> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 22/01/2015 16:00, Paul Durrant ha scritto:
> >> -----Original Message-----
> >> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> >> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >> Sent: 22 January 2015 10:10
> >> To: win-pv-devel@lists.xenproject.org
> >> Cc: Paul Durrant
> >> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> after
> >> save/restore
> >>
> >> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> >>> Hi, I installed winpv driver build of 15 january on Windows server
> >>> 2012 R2 standard 64 bit and have problem after save/restore.
> >>> xl save/restore didn't show any errors, trying to connected with rdp I
> >>> was unable and with spice I saw screen with data and time (time update
> >>> after restore) but doing ctrl+alt+canc it changed something in screen
> >>> only after 5-10 minutes and still without showing login field.
> >>>
> >>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
> >>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
> >>> xen build.
> >>> DomU xl cfg:
> >>>> name='w2012r2-01'
> >>>> builder="hvm"
> >>>> memory=8192
> >>>> vcpus=4
> >>>> acpi_s3=0
> >>>> acpi_s4=0
> >>>>
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> >> 18:2a:f2,script=vif-openvswitch']
> >>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >>>> disk=['/mnt/vm/disks/w2012r2-
> >> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>>> boot='dc'
> >>>> device_model_version="qemu-xen"
> >>>> viridian=1
> >>>> vnc=0
> >>>> keymap="it"
> >>>> on_crash="destroy"
> >>>> vga="stdvga"
> >>>> spice=1
> >>>> spicehost='0.0.0.0'
> >>>> spiceport=6000
> >>>> spicepasswd="test"
> >>>> spicevdagent=1
> >>>> spice_clipboard_sharing=0
> >>>> spiceusbredirection=4
> >>>> soundhw="hda"
> >>>> localtime=1
> >>> I added in attachments qemu logs (before and after save/restore) with
> >>> xen trace enabled.
> >>>
> >>> If you need more informations tests tell me and I'll post them.
> >>>
> >>> I have also another small question:
> >>> is ms_vm_genid needed for this case? for what I understand is only for
> >>> active directory controller and this it isn't.
> >>>
> >>> Thanks for any reply and sorry for my bad english.
> >>>
> >>>
> >> I also tried to uninstall the pv drivers from control panel but windows
> >> crash, minidump in attachments.
> > I'm re-working the FIFO event channel code at the moment so I'll run a
> quick suspend/resume test when I'm done.
> >
> >    Paul
> 
> Thanks for your reply.
> I did other tests and seems that save/restore problems with windows 2012
> was for missed ms_vm_genid="generate" even if clean for now (no active
> directory or other server services enabled nor domain member).
> Remain windows crash on winpv drivers uninstall with minidump refer to
> xenvif and other important and occasional problem:
> network not working after some time and after 2-3 minutes all windows
> become unusable.
> I hope these problem will be solved by new network pv driver patches,
> I'll test them ASAP when build with them will be ready.
> 

I pushed my big series into xenbus today. You should definitely take that; it fixes several bugs in FIFO event channels and a couple of other things.

  Paul

> Thanks for any reply and sorry for my bad english.
_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:26 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoc-0005fr-H4; Thu, 29 Jan 2015 14:11:26 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpoa-0005fb-Vo
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:25 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	A5/66-03710-C8F3AC45; Thu, 29 Jan 2015 14:11:24 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1422540682!23315531!1
X-Originating-IP: [209.85.212.178]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4886 invoked from network); 29 Jan 2015 14:11:23 -0000
Received: from mail-wi0-f178.google.com (HELO mail-wi0-f178.google.com)
	(209.85.212.178)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:23 -0000
Received: by mail-wi0-f178.google.com with SMTP id bs8so16443488wib.5
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=Mt71ev8UHuqPY60piDYsvQ6Rq2Z+0avIPRq8wtg2FVQ=;
	b=CzoQ+9agM0dpkIb6Sw0tZkKs+aEm5Y4N1Wkv+R4OfxqvHe+42TuuMWFwbsH4o4SCdw
	0XHkxrZgdBtwxu9+2EDjtZIOA5BE9Pu96SethalFfJfPzYZ2n+gGMky66RmBu2GX1lmm
	KuQH3/zR+02lLl8zZKGG/q7Qk0jKTw0r2/QoCTJZP+O4Ph2/Ua+pjHglAaw7qrkuRbQw
	2pkHsfo/eKvakaB0DoCTeHeOW2pHRfFzaXGGDlfl9snShghftajR1lWXIRAP/XCIJmMW
	eveWvJeNtEKgl5ApTPQcds21HBQ8cfTkOyHWh0TZlamBBs6mkPt+es+bSKcUBBhfC8H1
	7w+Q==
X-Received: by 10.194.92.114 with SMTP id cl18mr1161861wjb.119.1422540682494; 
	Thu, 29 Jan 2015 06:11:22 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.21
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:21 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:05 +0000
Message-Id: <1422540669-9652-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/5] Remove use of KeNumberProcessors from
	SYNC code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

KeNumberProcessors is obsolete so replace it with an inital call to
KeQueryActiveProcessorCount() whenever we start a capture operation.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/sync.c | 47 +++++++++++++++++------------------------------
 1 file changed, 17 insertions(+), 30 deletions(-)

diff --git a/src/xenbus/sync.c b/src/xenbus/sync.c
index 78b5bef..5730039 100644
--- a/src/xenbus/sync.c
+++ b/src/xenbus/sync.c
@@ -82,6 +82,7 @@
 typedef struct  _SYNC_CONTEXT {
     KDPC                Dpc[MAXIMUM_PROCESSORS];
     ULONG               Sequence;
+    LONG                CpuCount;
     LONG                CompletionCount;
     BOOLEAN             DisableInterrupts[MAXIMUM_PROCESSORS];
     BOOLEAN             Exit[MAXIMUM_PROCESSORS];
@@ -129,7 +130,6 @@ SyncWorker(
 {
     BOOLEAN     InterruptsDisabled;
     ULONG       Cpu;
-    LONG        CpuCount;
 
     UNREFERENCED_PARAMETER(Dpc);
     UNREFERENCED_PARAMETER(Context);
@@ -142,8 +142,6 @@ SyncWorker(
     Trace("====> (%u)\n", Cpu);
     InterlockedIncrement(&SyncContext.CompletionCount);
 
-    CpuCount = KeNumberProcessors;
-
     for (;;) {
         ULONG   Sequence;
 
@@ -170,7 +168,7 @@ SyncWorker(
 
             Attempts = 0;
             while (SyncContext.Sequence == Sequence &&
-                   SyncContext.CompletionCount < CpuCount) {
+                   SyncContext.CompletionCount < SyncContext.CpuCount) {
                 _mm_pause();
                 KeMemoryBarrier();
 
@@ -182,11 +180,11 @@ SyncWorker(
                         Old = SyncContext.CompletionCount;
                         New = Old - 1;
 
-                        if (Old == CpuCount)
+                        if (Old == SyncContext.CpuCount)
                             break;
                     } while (InterlockedCompareExchange(&SyncContext.CompletionCount, New, Old) != Old);
 
-                    if (Old < CpuCount) {
+                    if (Old < SyncContext.CpuCount) {
 #pragma prefast(suppress:28138) // Use constant rather than variable
                         KeLowerIrql(DISPATCH_LEVEL);
                         status = STATUS_UNSUCCESSFUL;
@@ -212,7 +210,7 @@ SyncWorker(
             InterlockedIncrement(&SyncContext.CompletionCount);
 
             while (SyncContext.Sequence == Sequence &&
-                   SyncContext.CompletionCount < CpuCount) {
+                   SyncContext.CompletionCount < SyncContext.CpuCount) {
                 _mm_pause();
                 KeMemoryBarrier();
             }
@@ -234,7 +232,6 @@ SyncCapture(
     )
 {
     ULONG       Cpu;
-    LONG        CpuCount;
     ULONG       Index;
 
     ASSERT3U(KeGetCurrentIrql(), ==, DISPATCH_LEVEL);
@@ -248,10 +245,9 @@ SyncCapture(
 
     SyncContext.Sequence++;
     SyncContext.CompletionCount = 0;
+    SyncContext.CpuCount = KeQueryActiveProcessorCount(NULL);
 
-    CpuCount = KeNumberProcessors;
-
-    for (Index = 0; Index < (ULONG)CpuCount; Index++) {
+    for (Index = 0; Index < (ULONG)SyncContext.CpuCount; Index++) {
         PKDPC   Dpc = &SyncContext.Dpc[Index];
 
         SyncContext.DisableInterrupts[Index] = FALSE;
@@ -267,7 +263,7 @@ SyncCapture(
 
     InterlockedIncrement(&SyncContext.CompletionCount);
 
-    while (SyncContext.CompletionCount < CpuCount) {
+    while (SyncContext.CompletionCount < SyncContext.CpuCount) {
         _mm_pause();
         KeMemoryBarrier();
     }
@@ -282,7 +278,6 @@ SyncDisableInterrupts(
     VOID
     )
 {
-    LONG        CpuCount;
     ULONG       Index;
     ULONG       Attempts;
     NTSTATUS    status;
@@ -292,9 +287,7 @@ SyncDisableInterrupts(
     SyncContext.Sequence++;
     SyncContext.CompletionCount = 0;
 
-    CpuCount = KeNumberProcessors;
-
-    for (Index = 0; Index < (ULONG)CpuCount; Index++)
+    for (Index = 0; Index < (ULONG)SyncContext.CpuCount; Index++)
         SyncContext.DisableInterrupts[Index] = TRUE;
 
 again:
@@ -304,7 +297,7 @@ again:
     InterlockedIncrement(&SyncContext.CompletionCount);
 
     Attempts = 0;
-    while (SyncContext.CompletionCount < CpuCount) {
+    while (SyncContext.CompletionCount < SyncContext.CpuCount) {
         _mm_pause();
         KeMemoryBarrier();
 
@@ -316,15 +309,15 @@ again:
                 Old = SyncContext.CompletionCount;
                 New = Old - 1;
 
-                if (Old == CpuCount)
+                if (Old == SyncContext.CpuCount)
                     break;
             } while (InterlockedCompareExchange(&SyncContext.CompletionCount, New, Old) != Old);
 
-            if (Old < CpuCount) {
+            if (Old < SyncContext.CpuCount) {
                 LogPrintf(LOG_LEVEL_WARNING,
                           "SYNC: %d < %d\n",
                           Old,
-                          CpuCount);
+                          SyncContext.CpuCount);
 
 #pragma prefast(suppress:28138) // Use constant rather than variable
                 KeLowerIrql(DISPATCH_LEVEL);
@@ -347,7 +340,6 @@ SyncEnableInterrupts(
     )
 {
     KIRQL   Irql;
-    LONG    CpuCount;
     ULONG   Index;
 
     _enable();
@@ -358,14 +350,12 @@ SyncEnableInterrupts(
     SyncContext.Sequence++;
     SyncContext.CompletionCount = 0;
 
-    CpuCount = KeNumberProcessors;
-
-    for (Index = 0; Index < (ULONG)CpuCount; Index++)
+    for (Index = 0; Index < (ULONG)SyncContext.CpuCount; Index++)
         SyncContext.DisableInterrupts[Index] = FALSE;
 
     InterlockedIncrement(&SyncContext.CompletionCount);
 
-    while (SyncContext.CompletionCount < CpuCount) {
+    while (SyncContext.CompletionCount < SyncContext.CpuCount) {
         _mm_pause();
         KeMemoryBarrier();
     }
@@ -383,7 +373,6 @@ SyncRelease(
     VOID
     )
 {
-    LONG        CpuCount;
     ULONG       Cpu;
     ULONG       Index;
 
@@ -392,14 +381,12 @@ SyncRelease(
     SyncContext.Sequence++;
     SyncContext.CompletionCount = 0;
 
-    CpuCount = KeNumberProcessors;
-
-    for (Index = 0; Index < (ULONG)CpuCount; Index++)
+    for (Index = 0; Index < (ULONG)SyncContext.CpuCount; Index++)
         SyncContext.Exit[Index] = TRUE;
 
     InterlockedIncrement(&SyncContext.CompletionCount);
 
-    while (SyncContext.CompletionCount < CpuCount) {
+    while (SyncContext.CompletionCount < SyncContext.CpuCount) {
         _mm_pause();
         KeMemoryBarrier();
     }
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:26 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoc-0005g0-J5; Thu, 29 Jan 2015 14:11:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpob-0005fd-DF
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:25 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	3C/B8-02750-C8F3AC45; Thu, 29 Jan 2015 14:11:24 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1422540683!7709603!1
X-Originating-IP: [74.125.82.179]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18179 invoked from network); 29 Jan 2015 14:11:23 -0000
Received: from mail-we0-f179.google.com (HELO mail-we0-f179.google.com)
	(74.125.82.179)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:23 -0000
Received: by mail-we0-f179.google.com with SMTP id q59so23499704wes.10
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=8tBT9bzmhmeNyRRE7JJq3V5SE24LaX0QjRKTph+W0p4=;
	b=cw2FHSNaB4va+eFLXKmLCcTQQGbRdV70mfs/+R02FnswdRZWSBzt8lyFMVY9LLC4/o
	L8XAk5JI68v3+8Z4LcblLZXi0uWn+3lpcuu74+GJ92+8kZ+wQh9m4lVOsXq96L8ibqPp
	4B3WzpMA4AVvgBRWszIGaP6Ng0pOlX4B0UNC59RT2z7rRimnplceHhzgUEA1xPRNHmmd
	mRg59hh1nF7mVOTg+IEx1IS3zsMHuV+89s8oMVGyTRbGwCH7ShjVRL2EPHaMbbr0q0HJ
	8C4DQF2SgplPFhQUgCOsRwXcZTaIV0ZZiB/wNsJSe0iZNCyCDOhLUn9GwRBcR+l+oXcu
	yRfQ==
X-Received: by 10.194.173.161 with SMTP id bl1mr1547699wjc.102.1422540683330; 
	Thu, 29 Jan 2015 06:11:23 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.22
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:22 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:06 +0000
Message-Id: <1422540669-9652-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/5] Remove use of KeNumberProcessors from
	SYSTEM code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The Xen SYSTEM module queries system information, including per-cpu
information. It is therefore best to make use if processor callback
functions rather than iterating over boot-time active processors, as this
makes the code robust to processors hot-added after boot.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/common/names.h |  20 +++++
 src/xen/system.c   | 252 +++++++++++++++++++++++++++++++++++++++--------------
 2 files changed, 205 insertions(+), 67 deletions(-)

diff --git a/src/common/names.h b/src/common/names.h
index f4a8bd0..90636bb 100644
--- a/src/common/names.h
+++ b/src/common/names.h
@@ -450,6 +450,26 @@ BusQueryIdTypeName(
 #undef  _BUS_QUERY_ID_TYPE_NAME
 }
 
+static FORCEINLINE const CHAR *
+ProcessorChangeName(
+    IN  KE_PROCESSOR_CHANGE_NOTIFY_STATE    Change
+    )
+{
+#define _PROCESSOR_CHANGE_NAME(_Change) \
+    case KeProcessor ## _Change:        \
+        return #_Change;
+
+    switch (Change) {
+    _PROCESSOR_CHANGE_NAME(AddStartNotify);
+    _PROCESSOR_CHANGE_NAME(AddCompleteNotify);
+    _PROCESSOR_CHANGE_NAME(AddFailureNotify);
+    default:
+        break;
+    }
+
+    return "UNKNOWN";
 
+#undef _PROCESSOR_CHANGE_NAME
+}
 
 #endif // _COMMON_NAMES_H_
diff --git a/src/xen/system.c b/src/xen/system.c
index 0934ac8..efe5049 100644
--- a/src/xen/system.c
+++ b/src/xen/system.c
@@ -41,23 +41,26 @@
 #include "registry.h"
 #include "system.h"
 #include "acpi.h"
+#include "names.h"
 #include "dbg_print.h"
 #include "assert.h"
 
 #define XEN_SYSTEM_TAG  'TSYS'
 
 typedef struct _SYSTEM_CPU {
-    ULONG   Index;
     CHAR    Manufacturer[13];
     UCHAR   ApicID;
     UCHAR   ProcessorID;
+    KDPC    Dpc;
+    KEVENT  Event;
 } SYSTEM_CPU, *PSYSTEM_CPU;
 
 typedef struct _SYSTEM_CONTEXT {
     LONG        References;
     PACPI_MADT  Madt;
-    SYSTEM_CPU  Cpu[MAXIMUM_PROCESSORS];
-    PVOID       Handle;
+    PSYSTEM_CPU Cpu[MAXIMUM_PROCESSORS];
+    PVOID       PowerStateHandle;
+    PVOID       ProcessorChangeHandle;
 } SYSTEM_CONTEXT, *PSYSTEM_CONTEXT;
 
 static SYSTEM_CONTEXT   SystemContext;
@@ -325,32 +328,38 @@ SystemApicIDToProcessorID(
 
 #pragma warning(pop)
 
-KDEFERRED_ROUTINE   SystemCpuInformation;
-
+static
+_Function_class_(KDEFERRED_ROUTINE)
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
+_IRQL_requires_same_
 VOID
 SystemCpuInformation(
-    IN  PKDPC   Dpc,
-    IN  PVOID   Context,
-    IN  PVOID   Argument1,
-    IN  PVOID   Argument2
+    IN  PKDPC       Dpc,
+    IN  PVOID       _Context,
+    IN  PVOID       Argument1,
+    IN  PVOID       Argument2
     )
 {
-    PSYSTEM_CPU Cpu = Context;
-    PKSPIN_LOCK Lock = Argument1;
-    PKEVENT     Event = Argument2;
-    ULONG       EBX;
-    ULONG       ECX;
-    ULONG       EDX;
+    PSYSTEM_CONTEXT Context = &SystemContext;
+    ULONG           Index;
+    PSYSTEM_CPU     Cpu;
+    ULONG           EBX;
+    ULONG           ECX;
+    ULONG           EDX;
 
-    UNREFERENCED_PARAMETER(Dpc);
+    UNREFERENCED_PARAMETER(_Context);
+    UNREFERENCED_PARAMETER(Argument1);
+    UNREFERENCED_PARAMETER(Argument2);
 
-    ASSERT(Cpu != NULL);
-    ASSERT(Lock != NULL);
-    ASSERT(Event != NULL);
+    Index = KeGetCurrentProcessorNumber();
+    Cpu = Context->Cpu[Index];
 
-    KeAcquireSpinLockAtDpcLevel(Lock);
+    ASSERT(Cpu != NULL);
+    ASSERT3P(Dpc, ==, &Cpu->Dpc);
 
-    Info("====> (%u)\n", Cpu->Index);
+    Info("====> (%u)\n", Index);
 
     __CpuId(0, NULL, &EBX, &ECX, &EDX);
 
@@ -358,63 +367,133 @@ SystemCpuInformation(
     RtlCopyMemory(&Cpu->Manufacturer[4], &EDX, sizeof (ULONG));
     RtlCopyMemory(&Cpu->Manufacturer[8], &ECX, sizeof (ULONG));
 
-    Info("Manufacturer: %s\n", Cpu->Manufacturer);
-
     __CpuId(1, NULL, &EBX, NULL, NULL);
 
     Cpu->ApicID = EBX >> 24;
+    Cpu->ProcessorID = SystemApicIDToProcessorID(Cpu->ApicID);
 
+    Info("Manufacturer: %s\n", Cpu->Manufacturer);
     Info("APIC ID: %02X\n", Cpu->ApicID);
+    Info("PROCESSOR ID: %02X\n", Cpu->ProcessorID);
 
-    Cpu->ProcessorID = SystemApicIDToProcessorID(Cpu->ApicID);
+    KeSetEvent(&Cpu->Event, IO_NO_INCREMENT, FALSE);
 
-    Info("PROCESSOR ID: %02X\n", Cpu->ProcessorID);
+    Info("<==== (%u)\n", Index);
+}
+
+static
+_Function_class_(PROCESSOR_CALLBACK_FUNCTION)
+VOID
+SystemProcessorChangeCallback(
+    IN      PVOID                               Argument,
+    IN      PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT Change,
+    IN OUT  PNTSTATUS                           Status
+    )
+{
+    PSYSTEM_CONTEXT                             Context = &SystemContext;
+    ULONG                                       Index;
+
+    UNREFERENCED_PARAMETER(Argument);
+
+    Index = Change->NtNumber;
+    Trace("====> (%u:%s)\n", Index, ProcessorChangeName(Change->State));
 
-    Info("<==== (%u)\n", Cpu->Index);
+    switch (Change->State) {
+    case KeProcessorAddStartNotify: {
+        PSYSTEM_CPU Cpu;
 
-    KeReleaseSpinLockFromDpcLevel(Lock);
-    KeSetEvent(Event, IO_NO_INCREMENT, FALSE);
+        Cpu = __SystemAllocate(sizeof (SYSTEM_CPU));
+
+        if (Cpu == NULL) {
+            *Status = STATUS_NO_MEMORY;
+            break;
+        }
+
+        ASSERT3P(Context->Cpu[Index], ==, NULL);
+        Context->Cpu[Index] = Cpu;
+        break;
+    }
+    case KeProcessorAddCompleteNotify: {
+        PSYSTEM_CPU Cpu = Context->Cpu[Index];
+        PKDPC       Dpc = &Cpu->Dpc;
+        PKEVENT     Event = &Cpu->Event;
+
+        KeInitializeDpc(Dpc, SystemCpuInformation, (PVOID)(ULONG_PTR)Index);
+        KeSetImportanceDpc(Dpc, HighImportance);
+        KeSetTargetProcessorDpc(Dpc, (CCHAR)Index);
+
+        KeInitializeEvent(Event, NotificationEvent, FALSE);
+
+        KeInsertQueueDpc(Dpc, NULL, NULL);
+
+        (VOID) KeWaitForSingleObject(Event,
+                                     Executive,
+                                     KernelMode,
+                                     FALSE,
+                                     NULL);
+        break;
+    }
+    case KeProcessorAddFailureNotify: {
+        PSYSTEM_CPU Cpu = Context->Cpu[Index];
+
+        ASSERT(Cpu != NULL);
+
+        Context->Cpu[Index] = NULL;
+        __SystemFree(Cpu);
+
+        break;
+    }
+    }
+
+    Trace("<==== (%u:%s)\n", Index, ProcessorChangeName(Change->State));
 }
 
-static VOID
-SystemGetCpuInformation(
+static NTSTATUS
+SystemRegisterProcessorChangeCallback(
     VOID
     )
 {
-    PSYSTEM_CONTEXT     Context = &SystemContext;
-    static KSPIN_LOCK   Lock;
-    static KDPC         Dpc[MAXIMUM_PROCESSORS];
-    static KEVENT       Event[MAXIMUM_PROCESSORS];
-    PKEVENT             __Event[MAXIMUM_PROCESSORS];
-    static KWAIT_BLOCK  WaitBlock[MAXIMUM_PROCESSORS];
-    LONG                Index;
+    PSYSTEM_CONTEXT Context = &SystemContext;
+    NTSTATUS        status;
 
-    KeInitializeSpinLock(&Lock);
+    Context->ProcessorChangeHandle = KeRegisterProcessorChangeCallback(SystemProcessorChangeCallback,
+                                                                       NULL,
+                                                                       KE_PROCESSOR_CHANGE_ADD_EXISTING);
 
-    for (Index = 0; Index < KeNumberProcessors; Index++) {
-        PSYSTEM_CPU Cpu = &Context->Cpu[Index];
+    status = STATUS_UNSUCCESSFUL;
+    if (Context->ProcessorChangeHandle == NULL)
+        goto fail1;
 
-        Cpu->Index = Index;
-        KeInitializeDpc(&Dpc[Index],
-                        SystemCpuInformation,
-                        Cpu);
-        KeSetTargetProcessorDpc(&Dpc[Index], (CCHAR)Index);
-        KeSetImportanceDpc(&Dpc[Index], HighImportance);
+    return STATUS_SUCCESS;
 
-        __Event[Index] = &Event[Index];
-        KeInitializeEvent(__Event[Index], NotificationEvent, FALSE);
+fail1:
+    Error("fail1 (%08x)\n", status);
 
-        KeInsertQueueDpc(&Dpc[Index], &Lock, __Event[Index]);
+    return status;
+}
+
+static VOID
+SystemDeregisterProcessorChangeCallback(
+    VOID
+    )
+{
+    PSYSTEM_CONTEXT Context = &SystemContext;
+    ULONG           Index;
+
+    KeDeregisterProcessorChangeCallback(Context->ProcessorChangeHandle);
+    Context->ProcessorChangeHandle = NULL;
+
+    for (Index = 0; Index < MAXIMUM_PROCESSORS; Index++) {
+        PSYSTEM_CPU Cpu = Context->Cpu[Index];
+
+        if (Cpu == NULL)
+            continue;
+
+        Context->Cpu[Index] = NULL;
+        __SystemFree(Cpu);
     }
 
-    (VOID) KeWaitForMultipleObjects(KeNumberProcessors,
-                                    __Event,
-                                    WaitAll,
-                                    Executive,
-                                    KernelMode,
-                                    FALSE,
-                                    NULL,
-                                    WaitBlock);
+    ASSERT(IsZeroMemory(Context->Cpu, sizeof (SYSTEM_CPU) * MAXIMUM_PROCESSORS));
 }
 
 static NTSTATUS
@@ -545,6 +624,30 @@ SystemPowerStateCallback(
     }
 }
 
+static NTSTATUS
+SystemRegisterPowerStateCallback(
+    VOID
+    )
+{
+    PSYSTEM_CONTEXT Context = &SystemContext;
+
+    return SystemRegisterCallback(L"\\Callback\\PowerState",
+                                  SystemPowerStateCallback,
+                                  NULL,
+                                  &Context->PowerStateHandle);
+}
+
+static VOID
+SystemDeregisterPowerStateCallback(
+    VOID
+    )
+{
+    PSYSTEM_CONTEXT Context = &SystemContext;
+
+    SystemDeregisterCallback(Context->PowerStateHandle);
+    Context->PowerStateHandle = NULL;
+}
+
 NTSTATUS
 SystemInitialize(
     VOID
@@ -576,17 +679,21 @@ SystemInitialize(
     if (!NT_SUCCESS(status))
         goto fail5;
 
-    SystemGetCpuInformation();
-
-    status = SystemRegisterCallback(L"\\Callback\\PowerState",
-                                    SystemPowerStateCallback,
-                                    NULL,
-                                    &Context->Handle);
+    status = SystemRegisterProcessorChangeCallback();
     if (!NT_SUCCESS(status))
         goto fail6;
 
+    status = SystemRegisterPowerStateCallback();
+    if (!NT_SUCCESS(status))
+        goto fail7;
+
     return STATUS_SUCCESS;
 
+fail7:
+    Error("fail7\n");
+
+    SystemDeregisterProcessorChangeCallback();
+
 fail6:
     Error("fail6\n");
 
@@ -620,10 +727,22 @@ SystemVirtualCpuIndex(
     )
 {
     PSYSTEM_CONTEXT     Context = &SystemContext;
-    PSYSTEM_CPU         Cpu = &Context->Cpu[Index];
+    PSYSTEM_CPU         Cpu = Context->Cpu[Index];
+    LARGE_INTEGER       Timeout;
+    NTSTATUS            status;
 
     ASSERT3U(Index, <, MAXIMUM_PROCESSORS);
 
+    Timeout.QuadPart = 0;
+
+    // Make sure the SystemCpuInformation() has run
+    status = KeWaitForSingleObject(&Cpu->Event,
+                                   Executive,
+                                   KernelMode,
+                                   FALSE,
+                                   &Timeout);
+    ASSERT(NT_SUCCESS(status) && status != STATUS_TIMEOUT);
+
     return Cpu->ProcessorID;
 }
 
@@ -634,10 +753,9 @@ SystemTeardown(
 {
     PSYSTEM_CONTEXT Context = &SystemContext;
 
-    SystemDeregisterCallback(Context->Handle);
-    Context->Handle = NULL;
+    SystemDeregisterPowerStateCallback();
 
-    RtlZeroMemory(Context->Cpu, sizeof (SYSTEM_CPU) * MAXIMUM_PROCESSORS);
+    SystemDeregisterProcessorChangeCallback();
 
     __SystemFree(Context->Madt);
     Context->Madt = NULL;
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:26 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoc-0005fv-I2; Thu, 29 Jan 2015 14:11:26 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpob-0005fc-4j
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:25 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	E8/29-03000-C8F3AC45; Thu, 29 Jan 2015 14:11:24 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-21.messagelabs.com!1422540682!13213367!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9671 invoked from network); 29 Jan 2015 14:11:23 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:23 -0000
Received: by mail-wi0-f176.google.com with SMTP id bs8so18046835wib.3
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:subject:date:message-id;
	bh=xfqHznsHbwY4qa+AK9dTSgeMyxXHhHZTYIXNxe0AJEI=;
	b=ZCQXfuavP6vLVpErVlGiueOOMInbhwXIBgoW8ht2qYdxxhfOlZIh2aIGIoOT9GQx64
	vUngTukTPDfTyC2GOxmA0+AL3ws/YX/laiNZRbb7YzmyKEsZPYHQlWbAnVvtP1UpUs3G
	iv9baQlfbXsyhX8qN89eQGUCjT8x5SiIPo2LoMSeQl2uhXUsArHJ71wyMyDlumFp92UX
	e7UdL4vpl0Yf8oU9r5eDXKwaP0q7KQ8N6tDN2HEGBFJIpBeAQhU3fXltD9AwQj5tZSe2
	BdLVyZAoQc1n6aaoQQCtrHfCQV3/Wt8xi5IaO3rt3ii5/UtqtcT+60zlHEnYJiDpnLMR
	HfZg==
X-Received: by 10.180.91.193 with SMTP id cg1mr536683wib.26.1422540681638;
	Thu, 29 Jan 2015 06:11:21 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.20
	for <win-pv-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:20 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:04 +0000
Message-Id: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Subject: [win-pv-devel] [PATCH 0/5] Remove use of KeNumberProcessors
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

KeNumberProcessors has been obsolete for many releases of Windows so it's
about time the drivers stopped using it.
The modifications are not quite as simple as replacing occurences of
KeNumberProcessors with KeQueryActiveProcessorCount() though because the
DP WLK - Hot-Add HCK test fakes processor addition and will fool the FIFO
EVTCHN code into doing the wrong thing, so we need to be more careful.
Also, this series takes the opportunity to make use of processor callbacks
to make sure we get CPU information for hot added processors.


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:26 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoc-0005g0-J5; Thu, 29 Jan 2015 14:11:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpob-0005fd-DF
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:25 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	3C/B8-02750-C8F3AC45; Thu, 29 Jan 2015 14:11:24 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1422540683!7709603!1
X-Originating-IP: [74.125.82.179]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18179 invoked from network); 29 Jan 2015 14:11:23 -0000
Received: from mail-we0-f179.google.com (HELO mail-we0-f179.google.com)
	(74.125.82.179)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:23 -0000
Received: by mail-we0-f179.google.com with SMTP id q59so23499704wes.10
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=8tBT9bzmhmeNyRRE7JJq3V5SE24LaX0QjRKTph+W0p4=;
	b=cw2FHSNaB4va+eFLXKmLCcTQQGbRdV70mfs/+R02FnswdRZWSBzt8lyFMVY9LLC4/o
	L8XAk5JI68v3+8Z4LcblLZXi0uWn+3lpcuu74+GJ92+8kZ+wQh9m4lVOsXq96L8ibqPp
	4B3WzpMA4AVvgBRWszIGaP6Ng0pOlX4B0UNC59RT2z7rRimnplceHhzgUEA1xPRNHmmd
	mRg59hh1nF7mVOTg+IEx1IS3zsMHuV+89s8oMVGyTRbGwCH7ShjVRL2EPHaMbbr0q0HJ
	8C4DQF2SgplPFhQUgCOsRwXcZTaIV0ZZiB/wNsJSe0iZNCyCDOhLUn9GwRBcR+l+oXcu
	yRfQ==
X-Received: by 10.194.173.161 with SMTP id bl1mr1547699wjc.102.1422540683330; 
	Thu, 29 Jan 2015 06:11:23 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.22
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:22 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:06 +0000
Message-Id: <1422540669-9652-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/5] Remove use of KeNumberProcessors from
	SYSTEM code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The Xen SYSTEM module queries system information, including per-cpu
information. It is therefore best to make use if processor callback
functions rather than iterating over boot-time active processors, as this
makes the code robust to processors hot-added after boot.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/common/names.h |  20 +++++
 src/xen/system.c   | 252 +++++++++++++++++++++++++++++++++++++++--------------
 2 files changed, 205 insertions(+), 67 deletions(-)

diff --git a/src/common/names.h b/src/common/names.h
index f4a8bd0..90636bb 100644
--- a/src/common/names.h
+++ b/src/common/names.h
@@ -450,6 +450,26 @@ BusQueryIdTypeName(
 #undef  _BUS_QUERY_ID_TYPE_NAME
 }
 
+static FORCEINLINE const CHAR *
+ProcessorChangeName(
+    IN  KE_PROCESSOR_CHANGE_NOTIFY_STATE    Change
+    )
+{
+#define _PROCESSOR_CHANGE_NAME(_Change) \
+    case KeProcessor ## _Change:        \
+        return #_Change;
+
+    switch (Change) {
+    _PROCESSOR_CHANGE_NAME(AddStartNotify);
+    _PROCESSOR_CHANGE_NAME(AddCompleteNotify);
+    _PROCESSOR_CHANGE_NAME(AddFailureNotify);
+    default:
+        break;
+    }
+
+    return "UNKNOWN";
 
+#undef _PROCESSOR_CHANGE_NAME
+}
 
 #endif // _COMMON_NAMES_H_
diff --git a/src/xen/system.c b/src/xen/system.c
index 0934ac8..efe5049 100644
--- a/src/xen/system.c
+++ b/src/xen/system.c
@@ -41,23 +41,26 @@
 #include "registry.h"
 #include "system.h"
 #include "acpi.h"
+#include "names.h"
 #include "dbg_print.h"
 #include "assert.h"
 
 #define XEN_SYSTEM_TAG  'TSYS'
 
 typedef struct _SYSTEM_CPU {
-    ULONG   Index;
     CHAR    Manufacturer[13];
     UCHAR   ApicID;
     UCHAR   ProcessorID;
+    KDPC    Dpc;
+    KEVENT  Event;
 } SYSTEM_CPU, *PSYSTEM_CPU;
 
 typedef struct _SYSTEM_CONTEXT {
     LONG        References;
     PACPI_MADT  Madt;
-    SYSTEM_CPU  Cpu[MAXIMUM_PROCESSORS];
-    PVOID       Handle;
+    PSYSTEM_CPU Cpu[MAXIMUM_PROCESSORS];
+    PVOID       PowerStateHandle;
+    PVOID       ProcessorChangeHandle;
 } SYSTEM_CONTEXT, *PSYSTEM_CONTEXT;
 
 static SYSTEM_CONTEXT   SystemContext;
@@ -325,32 +328,38 @@ SystemApicIDToProcessorID(
 
 #pragma warning(pop)
 
-KDEFERRED_ROUTINE   SystemCpuInformation;
-
+static
+_Function_class_(KDEFERRED_ROUTINE)
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
+_IRQL_requires_same_
 VOID
 SystemCpuInformation(
-    IN  PKDPC   Dpc,
-    IN  PVOID   Context,
-    IN  PVOID   Argument1,
-    IN  PVOID   Argument2
+    IN  PKDPC       Dpc,
+    IN  PVOID       _Context,
+    IN  PVOID       Argument1,
+    IN  PVOID       Argument2
     )
 {
-    PSYSTEM_CPU Cpu = Context;
-    PKSPIN_LOCK Lock = Argument1;
-    PKEVENT     Event = Argument2;
-    ULONG       EBX;
-    ULONG       ECX;
-    ULONG       EDX;
+    PSYSTEM_CONTEXT Context = &SystemContext;
+    ULONG           Index;
+    PSYSTEM_CPU     Cpu;
+    ULONG           EBX;
+    ULONG           ECX;
+    ULONG           EDX;
 
-    UNREFERENCED_PARAMETER(Dpc);
+    UNREFERENCED_PARAMETER(_Context);
+    UNREFERENCED_PARAMETER(Argument1);
+    UNREFERENCED_PARAMETER(Argument2);
 
-    ASSERT(Cpu != NULL);
-    ASSERT(Lock != NULL);
-    ASSERT(Event != NULL);
+    Index = KeGetCurrentProcessorNumber();
+    Cpu = Context->Cpu[Index];
 
-    KeAcquireSpinLockAtDpcLevel(Lock);
+    ASSERT(Cpu != NULL);
+    ASSERT3P(Dpc, ==, &Cpu->Dpc);
 
-    Info("====> (%u)\n", Cpu->Index);
+    Info("====> (%u)\n", Index);
 
     __CpuId(0, NULL, &EBX, &ECX, &EDX);
 
@@ -358,63 +367,133 @@ SystemCpuInformation(
     RtlCopyMemory(&Cpu->Manufacturer[4], &EDX, sizeof (ULONG));
     RtlCopyMemory(&Cpu->Manufacturer[8], &ECX, sizeof (ULONG));
 
-    Info("Manufacturer: %s\n", Cpu->Manufacturer);
-
     __CpuId(1, NULL, &EBX, NULL, NULL);
 
     Cpu->ApicID = EBX >> 24;
+    Cpu->ProcessorID = SystemApicIDToProcessorID(Cpu->ApicID);
 
+    Info("Manufacturer: %s\n", Cpu->Manufacturer);
     Info("APIC ID: %02X\n", Cpu->ApicID);
+    Info("PROCESSOR ID: %02X\n", Cpu->ProcessorID);
 
-    Cpu->ProcessorID = SystemApicIDToProcessorID(Cpu->ApicID);
+    KeSetEvent(&Cpu->Event, IO_NO_INCREMENT, FALSE);
 
-    Info("PROCESSOR ID: %02X\n", Cpu->ProcessorID);
+    Info("<==== (%u)\n", Index);
+}
+
+static
+_Function_class_(PROCESSOR_CALLBACK_FUNCTION)
+VOID
+SystemProcessorChangeCallback(
+    IN      PVOID                               Argument,
+    IN      PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT Change,
+    IN OUT  PNTSTATUS                           Status
+    )
+{
+    PSYSTEM_CONTEXT                             Context = &SystemContext;
+    ULONG                                       Index;
+
+    UNREFERENCED_PARAMETER(Argument);
+
+    Index = Change->NtNumber;
+    Trace("====> (%u:%s)\n", Index, ProcessorChangeName(Change->State));
 
-    Info("<==== (%u)\n", Cpu->Index);
+    switch (Change->State) {
+    case KeProcessorAddStartNotify: {
+        PSYSTEM_CPU Cpu;
 
-    KeReleaseSpinLockFromDpcLevel(Lock);
-    KeSetEvent(Event, IO_NO_INCREMENT, FALSE);
+        Cpu = __SystemAllocate(sizeof (SYSTEM_CPU));
+
+        if (Cpu == NULL) {
+            *Status = STATUS_NO_MEMORY;
+            break;
+        }
+
+        ASSERT3P(Context->Cpu[Index], ==, NULL);
+        Context->Cpu[Index] = Cpu;
+        break;
+    }
+    case KeProcessorAddCompleteNotify: {
+        PSYSTEM_CPU Cpu = Context->Cpu[Index];
+        PKDPC       Dpc = &Cpu->Dpc;
+        PKEVENT     Event = &Cpu->Event;
+
+        KeInitializeDpc(Dpc, SystemCpuInformation, (PVOID)(ULONG_PTR)Index);
+        KeSetImportanceDpc(Dpc, HighImportance);
+        KeSetTargetProcessorDpc(Dpc, (CCHAR)Index);
+
+        KeInitializeEvent(Event, NotificationEvent, FALSE);
+
+        KeInsertQueueDpc(Dpc, NULL, NULL);
+
+        (VOID) KeWaitForSingleObject(Event,
+                                     Executive,
+                                     KernelMode,
+                                     FALSE,
+                                     NULL);
+        break;
+    }
+    case KeProcessorAddFailureNotify: {
+        PSYSTEM_CPU Cpu = Context->Cpu[Index];
+
+        ASSERT(Cpu != NULL);
+
+        Context->Cpu[Index] = NULL;
+        __SystemFree(Cpu);
+
+        break;
+    }
+    }
+
+    Trace("<==== (%u:%s)\n", Index, ProcessorChangeName(Change->State));
 }
 
-static VOID
-SystemGetCpuInformation(
+static NTSTATUS
+SystemRegisterProcessorChangeCallback(
     VOID
     )
 {
-    PSYSTEM_CONTEXT     Context = &SystemContext;
-    static KSPIN_LOCK   Lock;
-    static KDPC         Dpc[MAXIMUM_PROCESSORS];
-    static KEVENT       Event[MAXIMUM_PROCESSORS];
-    PKEVENT             __Event[MAXIMUM_PROCESSORS];
-    static KWAIT_BLOCK  WaitBlock[MAXIMUM_PROCESSORS];
-    LONG                Index;
+    PSYSTEM_CONTEXT Context = &SystemContext;
+    NTSTATUS        status;
 
-    KeInitializeSpinLock(&Lock);
+    Context->ProcessorChangeHandle = KeRegisterProcessorChangeCallback(SystemProcessorChangeCallback,
+                                                                       NULL,
+                                                                       KE_PROCESSOR_CHANGE_ADD_EXISTING);
 
-    for (Index = 0; Index < KeNumberProcessors; Index++) {
-        PSYSTEM_CPU Cpu = &Context->Cpu[Index];
+    status = STATUS_UNSUCCESSFUL;
+    if (Context->ProcessorChangeHandle == NULL)
+        goto fail1;
 
-        Cpu->Index = Index;
-        KeInitializeDpc(&Dpc[Index],
-                        SystemCpuInformation,
-                        Cpu);
-        KeSetTargetProcessorDpc(&Dpc[Index], (CCHAR)Index);
-        KeSetImportanceDpc(&Dpc[Index], HighImportance);
+    return STATUS_SUCCESS;
 
-        __Event[Index] = &Event[Index];
-        KeInitializeEvent(__Event[Index], NotificationEvent, FALSE);
+fail1:
+    Error("fail1 (%08x)\n", status);
 
-        KeInsertQueueDpc(&Dpc[Index], &Lock, __Event[Index]);
+    return status;
+}
+
+static VOID
+SystemDeregisterProcessorChangeCallback(
+    VOID
+    )
+{
+    PSYSTEM_CONTEXT Context = &SystemContext;
+    ULONG           Index;
+
+    KeDeregisterProcessorChangeCallback(Context->ProcessorChangeHandle);
+    Context->ProcessorChangeHandle = NULL;
+
+    for (Index = 0; Index < MAXIMUM_PROCESSORS; Index++) {
+        PSYSTEM_CPU Cpu = Context->Cpu[Index];
+
+        if (Cpu == NULL)
+            continue;
+
+        Context->Cpu[Index] = NULL;
+        __SystemFree(Cpu);
     }
 
-    (VOID) KeWaitForMultipleObjects(KeNumberProcessors,
-                                    __Event,
-                                    WaitAll,
-                                    Executive,
-                                    KernelMode,
-                                    FALSE,
-                                    NULL,
-                                    WaitBlock);
+    ASSERT(IsZeroMemory(Context->Cpu, sizeof (SYSTEM_CPU) * MAXIMUM_PROCESSORS));
 }
 
 static NTSTATUS
@@ -545,6 +624,30 @@ SystemPowerStateCallback(
     }
 }
 
+static NTSTATUS
+SystemRegisterPowerStateCallback(
+    VOID
+    )
+{
+    PSYSTEM_CONTEXT Context = &SystemContext;
+
+    return SystemRegisterCallback(L"\\Callback\\PowerState",
+                                  SystemPowerStateCallback,
+                                  NULL,
+                                  &Context->PowerStateHandle);
+}
+
+static VOID
+SystemDeregisterPowerStateCallback(
+    VOID
+    )
+{
+    PSYSTEM_CONTEXT Context = &SystemContext;
+
+    SystemDeregisterCallback(Context->PowerStateHandle);
+    Context->PowerStateHandle = NULL;
+}
+
 NTSTATUS
 SystemInitialize(
     VOID
@@ -576,17 +679,21 @@ SystemInitialize(
     if (!NT_SUCCESS(status))
         goto fail5;
 
-    SystemGetCpuInformation();
-
-    status = SystemRegisterCallback(L"\\Callback\\PowerState",
-                                    SystemPowerStateCallback,
-                                    NULL,
-                                    &Context->Handle);
+    status = SystemRegisterProcessorChangeCallback();
     if (!NT_SUCCESS(status))
         goto fail6;
 
+    status = SystemRegisterPowerStateCallback();
+    if (!NT_SUCCESS(status))
+        goto fail7;
+
     return STATUS_SUCCESS;
 
+fail7:
+    Error("fail7\n");
+
+    SystemDeregisterProcessorChangeCallback();
+
 fail6:
     Error("fail6\n");
 
@@ -620,10 +727,22 @@ SystemVirtualCpuIndex(
     )
 {
     PSYSTEM_CONTEXT     Context = &SystemContext;
-    PSYSTEM_CPU         Cpu = &Context->Cpu[Index];
+    PSYSTEM_CPU         Cpu = Context->Cpu[Index];
+    LARGE_INTEGER       Timeout;
+    NTSTATUS            status;
 
     ASSERT3U(Index, <, MAXIMUM_PROCESSORS);
 
+    Timeout.QuadPart = 0;
+
+    // Make sure the SystemCpuInformation() has run
+    status = KeWaitForSingleObject(&Cpu->Event,
+                                   Executive,
+                                   KernelMode,
+                                   FALSE,
+                                   &Timeout);
+    ASSERT(NT_SUCCESS(status) && status != STATUS_TIMEOUT);
+
     return Cpu->ProcessorID;
 }
 
@@ -634,10 +753,9 @@ SystemTeardown(
 {
     PSYSTEM_CONTEXT Context = &SystemContext;
 
-    SystemDeregisterCallback(Context->Handle);
-    Context->Handle = NULL;
+    SystemDeregisterPowerStateCallback();
 
-    RtlZeroMemory(Context->Cpu, sizeof (SYSTEM_CPU) * MAXIMUM_PROCESSORS);
+    SystemDeregisterProcessorChangeCallback();
 
     __SystemFree(Context->Madt);
     Context->Madt = NULL;
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:26 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoc-0005fr-H4; Thu, 29 Jan 2015 14:11:26 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpoa-0005fb-Vo
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:25 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	A5/66-03710-C8F3AC45; Thu, 29 Jan 2015 14:11:24 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1422540682!23315531!1
X-Originating-IP: [209.85.212.178]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4886 invoked from network); 29 Jan 2015 14:11:23 -0000
Received: from mail-wi0-f178.google.com (HELO mail-wi0-f178.google.com)
	(209.85.212.178)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:23 -0000
Received: by mail-wi0-f178.google.com with SMTP id bs8so16443488wib.5
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=Mt71ev8UHuqPY60piDYsvQ6Rq2Z+0avIPRq8wtg2FVQ=;
	b=CzoQ+9agM0dpkIb6Sw0tZkKs+aEm5Y4N1Wkv+R4OfxqvHe+42TuuMWFwbsH4o4SCdw
	0XHkxrZgdBtwxu9+2EDjtZIOA5BE9Pu96SethalFfJfPzYZ2n+gGMky66RmBu2GX1lmm
	KuQH3/zR+02lLl8zZKGG/q7Qk0jKTw0r2/QoCTJZP+O4Ph2/Ua+pjHglAaw7qrkuRbQw
	2pkHsfo/eKvakaB0DoCTeHeOW2pHRfFzaXGGDlfl9snShghftajR1lWXIRAP/XCIJmMW
	eveWvJeNtEKgl5ApTPQcds21HBQ8cfTkOyHWh0TZlamBBs6mkPt+es+bSKcUBBhfC8H1
	7w+Q==
X-Received: by 10.194.92.114 with SMTP id cl18mr1161861wjb.119.1422540682494; 
	Thu, 29 Jan 2015 06:11:22 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.21
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:21 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:05 +0000
Message-Id: <1422540669-9652-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/5] Remove use of KeNumberProcessors from
	SYNC code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

KeNumberProcessors is obsolete so replace it with an inital call to
KeQueryActiveProcessorCount() whenever we start a capture operation.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/sync.c | 47 +++++++++++++++++------------------------------
 1 file changed, 17 insertions(+), 30 deletions(-)

diff --git a/src/xenbus/sync.c b/src/xenbus/sync.c
index 78b5bef..5730039 100644
--- a/src/xenbus/sync.c
+++ b/src/xenbus/sync.c
@@ -82,6 +82,7 @@
 typedef struct  _SYNC_CONTEXT {
     KDPC                Dpc[MAXIMUM_PROCESSORS];
     ULONG               Sequence;
+    LONG                CpuCount;
     LONG                CompletionCount;
     BOOLEAN             DisableInterrupts[MAXIMUM_PROCESSORS];
     BOOLEAN             Exit[MAXIMUM_PROCESSORS];
@@ -129,7 +130,6 @@ SyncWorker(
 {
     BOOLEAN     InterruptsDisabled;
     ULONG       Cpu;
-    LONG        CpuCount;
 
     UNREFERENCED_PARAMETER(Dpc);
     UNREFERENCED_PARAMETER(Context);
@@ -142,8 +142,6 @@ SyncWorker(
     Trace("====> (%u)\n", Cpu);
     InterlockedIncrement(&SyncContext.CompletionCount);
 
-    CpuCount = KeNumberProcessors;
-
     for (;;) {
         ULONG   Sequence;
 
@@ -170,7 +168,7 @@ SyncWorker(
 
             Attempts = 0;
             while (SyncContext.Sequence == Sequence &&
-                   SyncContext.CompletionCount < CpuCount) {
+                   SyncContext.CompletionCount < SyncContext.CpuCount) {
                 _mm_pause();
                 KeMemoryBarrier();
 
@@ -182,11 +180,11 @@ SyncWorker(
                         Old = SyncContext.CompletionCount;
                         New = Old - 1;
 
-                        if (Old == CpuCount)
+                        if (Old == SyncContext.CpuCount)
                             break;
                     } while (InterlockedCompareExchange(&SyncContext.CompletionCount, New, Old) != Old);
 
-                    if (Old < CpuCount) {
+                    if (Old < SyncContext.CpuCount) {
 #pragma prefast(suppress:28138) // Use constant rather than variable
                         KeLowerIrql(DISPATCH_LEVEL);
                         status = STATUS_UNSUCCESSFUL;
@@ -212,7 +210,7 @@ SyncWorker(
             InterlockedIncrement(&SyncContext.CompletionCount);
 
             while (SyncContext.Sequence == Sequence &&
-                   SyncContext.CompletionCount < CpuCount) {
+                   SyncContext.CompletionCount < SyncContext.CpuCount) {
                 _mm_pause();
                 KeMemoryBarrier();
             }
@@ -234,7 +232,6 @@ SyncCapture(
     )
 {
     ULONG       Cpu;
-    LONG        CpuCount;
     ULONG       Index;
 
     ASSERT3U(KeGetCurrentIrql(), ==, DISPATCH_LEVEL);
@@ -248,10 +245,9 @@ SyncCapture(
 
     SyncContext.Sequence++;
     SyncContext.CompletionCount = 0;
+    SyncContext.CpuCount = KeQueryActiveProcessorCount(NULL);
 
-    CpuCount = KeNumberProcessors;
-
-    for (Index = 0; Index < (ULONG)CpuCount; Index++) {
+    for (Index = 0; Index < (ULONG)SyncContext.CpuCount; Index++) {
         PKDPC   Dpc = &SyncContext.Dpc[Index];
 
         SyncContext.DisableInterrupts[Index] = FALSE;
@@ -267,7 +263,7 @@ SyncCapture(
 
     InterlockedIncrement(&SyncContext.CompletionCount);
 
-    while (SyncContext.CompletionCount < CpuCount) {
+    while (SyncContext.CompletionCount < SyncContext.CpuCount) {
         _mm_pause();
         KeMemoryBarrier();
     }
@@ -282,7 +278,6 @@ SyncDisableInterrupts(
     VOID
     )
 {
-    LONG        CpuCount;
     ULONG       Index;
     ULONG       Attempts;
     NTSTATUS    status;
@@ -292,9 +287,7 @@ SyncDisableInterrupts(
     SyncContext.Sequence++;
     SyncContext.CompletionCount = 0;
 
-    CpuCount = KeNumberProcessors;
-
-    for (Index = 0; Index < (ULONG)CpuCount; Index++)
+    for (Index = 0; Index < (ULONG)SyncContext.CpuCount; Index++)
         SyncContext.DisableInterrupts[Index] = TRUE;
 
 again:
@@ -304,7 +297,7 @@ again:
     InterlockedIncrement(&SyncContext.CompletionCount);
 
     Attempts = 0;
-    while (SyncContext.CompletionCount < CpuCount) {
+    while (SyncContext.CompletionCount < SyncContext.CpuCount) {
         _mm_pause();
         KeMemoryBarrier();
 
@@ -316,15 +309,15 @@ again:
                 Old = SyncContext.CompletionCount;
                 New = Old - 1;
 
-                if (Old == CpuCount)
+                if (Old == SyncContext.CpuCount)
                     break;
             } while (InterlockedCompareExchange(&SyncContext.CompletionCount, New, Old) != Old);
 
-            if (Old < CpuCount) {
+            if (Old < SyncContext.CpuCount) {
                 LogPrintf(LOG_LEVEL_WARNING,
                           "SYNC: %d < %d\n",
                           Old,
-                          CpuCount);
+                          SyncContext.CpuCount);
 
 #pragma prefast(suppress:28138) // Use constant rather than variable
                 KeLowerIrql(DISPATCH_LEVEL);
@@ -347,7 +340,6 @@ SyncEnableInterrupts(
     )
 {
     KIRQL   Irql;
-    LONG    CpuCount;
     ULONG   Index;
 
     _enable();
@@ -358,14 +350,12 @@ SyncEnableInterrupts(
     SyncContext.Sequence++;
     SyncContext.CompletionCount = 0;
 
-    CpuCount = KeNumberProcessors;
-
-    for (Index = 0; Index < (ULONG)CpuCount; Index++)
+    for (Index = 0; Index < (ULONG)SyncContext.CpuCount; Index++)
         SyncContext.DisableInterrupts[Index] = FALSE;
 
     InterlockedIncrement(&SyncContext.CompletionCount);
 
-    while (SyncContext.CompletionCount < CpuCount) {
+    while (SyncContext.CompletionCount < SyncContext.CpuCount) {
         _mm_pause();
         KeMemoryBarrier();
     }
@@ -383,7 +373,6 @@ SyncRelease(
     VOID
     )
 {
-    LONG        CpuCount;
     ULONG       Cpu;
     ULONG       Index;
 
@@ -392,14 +381,12 @@ SyncRelease(
     SyncContext.Sequence++;
     SyncContext.CompletionCount = 0;
 
-    CpuCount = KeNumberProcessors;
-
-    for (Index = 0; Index < (ULONG)CpuCount; Index++)
+    for (Index = 0; Index < (ULONG)SyncContext.CpuCount; Index++)
         SyncContext.Exit[Index] = TRUE;
 
     InterlockedIncrement(&SyncContext.CompletionCount);
 
-    while (SyncContext.CompletionCount < CpuCount) {
+    while (SyncContext.CompletionCount < SyncContext.CpuCount) {
         _mm_pause();
         KeMemoryBarrier();
     }
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:26 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoc-0005fv-I2; Thu, 29 Jan 2015 14:11:26 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpob-0005fc-4j
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:25 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	E8/29-03000-C8F3AC45; Thu, 29 Jan 2015 14:11:24 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-21.messagelabs.com!1422540682!13213367!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9671 invoked from network); 29 Jan 2015 14:11:23 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:23 -0000
Received: by mail-wi0-f176.google.com with SMTP id bs8so18046835wib.3
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:subject:date:message-id;
	bh=xfqHznsHbwY4qa+AK9dTSgeMyxXHhHZTYIXNxe0AJEI=;
	b=ZCQXfuavP6vLVpErVlGiueOOMInbhwXIBgoW8ht2qYdxxhfOlZIh2aIGIoOT9GQx64
	vUngTukTPDfTyC2GOxmA0+AL3ws/YX/laiNZRbb7YzmyKEsZPYHQlWbAnVvtP1UpUs3G
	iv9baQlfbXsyhX8qN89eQGUCjT8x5SiIPo2LoMSeQl2uhXUsArHJ71wyMyDlumFp92UX
	e7UdL4vpl0Yf8oU9r5eDXKwaP0q7KQ8N6tDN2HEGBFJIpBeAQhU3fXltD9AwQj5tZSe2
	BdLVyZAoQc1n6aaoQQCtrHfCQV3/Wt8xi5IaO3rt3ii5/UtqtcT+60zlHEnYJiDpnLMR
	HfZg==
X-Received: by 10.180.91.193 with SMTP id cg1mr536683wib.26.1422540681638;
	Thu, 29 Jan 2015 06:11:21 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.20
	for <win-pv-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:20 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:04 +0000
Message-Id: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Subject: [win-pv-devel] [PATCH 0/5] Remove use of KeNumberProcessors
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

KeNumberProcessors has been obsolete for many releases of Windows so it's
about time the drivers stopped using it.
The modifications are not quite as simple as replacing occurences of
KeNumberProcessors with KeQueryActiveProcessorCount() though because the
DP WLK - Hot-Add HCK test fakes processor addition and will fool the FIFO
EVTCHN code into doing the wrong thing, so we need to be more careful.
Also, this series takes the opportunity to make use of processor callbacks
to make sure we get CPU information for hot added processors.


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:27 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpod-0005h1-KG; Thu, 29 Jan 2015 14:11:27 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpoc-0005fq-Ei
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:26 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
	EC/72-02639-D8F3AC45; Thu, 29 Jan 2015 14:11:25 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1422540685!12257346!1
X-Originating-IP: [74.125.82.45]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4042 invoked from network); 29 Jan 2015 14:11:25 -0000
Received: from mail-wg0-f45.google.com (HELO mail-wg0-f45.google.com)
	(74.125.82.45)
	by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:25 -0000
Received: by mail-wg0-f45.google.com with SMTP id x12so23246888wgg.4
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=LABOAzIDiHXp7yZoENe8YTcjzGz2GItrUbKjUIsf4hM=;
	b=LljGc7N/DWA/o5DIYh36jOmpCPT/d3yP+BiWIyaCxdzlVdW+GLY56vXRMvhuO3lqFv
	ONEaCRRwcgBvXRaAccojDYqfjOzU+hfOlvfyjjTFHkZE3huRt+bmI9sOL2EHvgiChw/K
	+PlQY06V0xjF6YMV56VELHkOU6uIG/UrllodayJ7WWJzyIFpeUNt7xizeetUL6K9WZIj
	Kb9DHh0k15ban5S14h2Wxfs+jv8NtkHNIV6gnCBa3r8DJcfIXVAQqzZyr91jfVEU8qpn
	T28naXjXa+9XGH9GXF/xvJgz+558a3603JoYY+hWH5NrccpDELyISRN3U/D1ePTC4ce+
	rIvw==
X-Received: by 10.194.239.104 with SMTP id vr8mr1481153wjc.124.1422540685051; 
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.24
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:24 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:08 +0000
Message-Id: <1422540669-9652-5-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 4/5] Get rid of EVTCHN Bind from the STORE
	code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Removing the gratuitous Bind means we don't make use of KeNumberProcessors.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/store.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/src/xenbus/store.c b/src/xenbus/store.c
index 9d581f5..e6119d3 100644
--- a/src/xenbus/store.c
+++ b/src/xenbus/store.c
@@ -1847,15 +1847,6 @@ StoreEnable(
                                      FALSE);
     ASSERT(Context->Channel != NULL);
 
-    // 
-    // Attempt to use some CPU other than 0 for events from
-    // xenstored.
-    //
-    (VOID) XENBUS_EVTCHN(Bind,
-                         &Context->EvtchnInterface,
-                         Context->Channel,
-                         KeNumberProcessors - 1);
-
     XENBUS_EVTCHN(Unmask,
                   &Context->EvtchnInterface,
                   Context->Channel,
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:27 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpod-0005h1-KG; Thu, 29 Jan 2015 14:11:27 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpoc-0005fq-Ei
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:26 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
	EC/72-02639-D8F3AC45; Thu, 29 Jan 2015 14:11:25 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1422540685!12257346!1
X-Originating-IP: [74.125.82.45]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4042 invoked from network); 29 Jan 2015 14:11:25 -0000
Received: from mail-wg0-f45.google.com (HELO mail-wg0-f45.google.com)
	(74.125.82.45)
	by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:25 -0000
Received: by mail-wg0-f45.google.com with SMTP id x12so23246888wgg.4
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=LABOAzIDiHXp7yZoENe8YTcjzGz2GItrUbKjUIsf4hM=;
	b=LljGc7N/DWA/o5DIYh36jOmpCPT/d3yP+BiWIyaCxdzlVdW+GLY56vXRMvhuO3lqFv
	ONEaCRRwcgBvXRaAccojDYqfjOzU+hfOlvfyjjTFHkZE3huRt+bmI9sOL2EHvgiChw/K
	+PlQY06V0xjF6YMV56VELHkOU6uIG/UrllodayJ7WWJzyIFpeUNt7xizeetUL6K9WZIj
	Kb9DHh0k15ban5S14h2Wxfs+jv8NtkHNIV6gnCBa3r8DJcfIXVAQqzZyr91jfVEU8qpn
	T28naXjXa+9XGH9GXF/xvJgz+558a3603JoYY+hWH5NrccpDELyISRN3U/D1ePTC4ce+
	rIvw==
X-Received: by 10.194.239.104 with SMTP id vr8mr1481153wjc.124.1422540685051; 
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.24
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:24 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:08 +0000
Message-Id: <1422540669-9652-5-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 4/5] Get rid of EVTCHN Bind from the STORE
	code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Removing the gratuitous Bind means we don't make use of KeNumberProcessors.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/store.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/src/xenbus/store.c b/src/xenbus/store.c
index 9d581f5..e6119d3 100644
--- a/src/xenbus/store.c
+++ b/src/xenbus/store.c
@@ -1847,15 +1847,6 @@ StoreEnable(
                                      FALSE);
     ASSERT(Context->Channel != NULL);
 
-    // 
-    // Attempt to use some CPU other than 0 for events from
-    // xenstored.
-    //
-    (VOID) XENBUS_EVTCHN(Bind,
-                         &Context->EvtchnInterface,
-                         Context->Channel,
-                         KeNumberProcessors - 1);
-
     XENBUS_EVTCHN(Unmask,
                   &Context->EvtchnInterface,
                   Context->Channel,
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:28 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoe-0005hc-M0; Thu, 29 Jan 2015 14:11:28 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpod-0005gl-Ar
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:27 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	45/77-02749-E8F3AC45; Thu, 29 Jan 2015 14:11:26 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1422540685!13284930!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3911 invoked from network); 29 Jan 2015 14:11:25 -0000
Received: from mail-wg0-f43.google.com (HELO mail-wg0-f43.google.com)
	(74.125.82.43)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:25 -0000
Received: by mail-wg0-f43.google.com with SMTP id y19so23278612wgg.2
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=Hr9b7cC/2t4Ry4MjfgrG8H9w2rrTtyqR/Z7XsRgCXfY=;
	b=ULBfysBO/LD8xr35ukhB1tMIwLDrfnEsHKqIiqne/7Ta0xNgS0DailbyZcBsnSQNZM
	PFqmMJsZyJcEmyFNoCLV6dGjwQ1aoxT1el2OZlvdXj4BJRK5LmoiEPtFvm12DpFFT1T4
	EzEMoL0fkfI+45QG9EHsTyLMZmdUYFhB12vUpVeI2jSuA+o1M++jfAKjUx1MnD6NLsWN
	UZ6MmZEbXtQ50oyx3bt/wMrfk1/kQNLQAfr7/EtXOFPxuCEViTcIx77p37x1tzJSWNNl
	QS4D/YuPUa+3U8424u6kRKTrCsWjdS3/dsCrnnnvvdG8cCuXOXag57njIkplw+tqu2ne
	I81g==
X-Received: by 10.194.94.164 with SMTP id dd4mr1677481wjb.56.1422540685723;
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.25
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:09 +0000
Message-Id: <1422540669-9652-6-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 5/5] Remove use of KeNumberProcessors from
	SHARED_INFO code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

KeNumberProcessors is used in the DEBUG callback. Use
KeQueryActiveProcessorCount() instead.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/shared_info.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xenbus/shared_info.c b/src/xenbus/shared_info.c
index 1aca2e2..244b9e1 100644
--- a/src/xenbus/shared_info.c
+++ b/src/xenbus/shared_info.c
@@ -457,14 +457,14 @@ SharedInfoDebugCallback(
 
     if (!Crashing) {
         shared_info_t   *Shared;
-        LONG            Cpu;
+        ULONG           Cpu;
         ULONG           Selector;
 
         Shared = Context->Shared;
 
         KeMemoryBarrier();
 
-        for (Cpu = 0; Cpu < KeNumberProcessors; Cpu++) {
+        for (Cpu = 0; Cpu < KeQueryActiveProcessorCount(NULL); Cpu++) {
             int vcpu_id = SystemVirtualCpuIndex(Cpu);
 
             XENBUS_DEBUG(Printf,
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:28 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoe-0005hc-M0; Thu, 29 Jan 2015 14:11:28 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpod-0005gl-Ar
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:27 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	45/77-02749-E8F3AC45; Thu, 29 Jan 2015 14:11:26 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1422540685!13284930!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3911 invoked from network); 29 Jan 2015 14:11:25 -0000
Received: from mail-wg0-f43.google.com (HELO mail-wg0-f43.google.com)
	(74.125.82.43)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:25 -0000
Received: by mail-wg0-f43.google.com with SMTP id y19so23278612wgg.2
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=Hr9b7cC/2t4Ry4MjfgrG8H9w2rrTtyqR/Z7XsRgCXfY=;
	b=ULBfysBO/LD8xr35ukhB1tMIwLDrfnEsHKqIiqne/7Ta0xNgS0DailbyZcBsnSQNZM
	PFqmMJsZyJcEmyFNoCLV6dGjwQ1aoxT1el2OZlvdXj4BJRK5LmoiEPtFvm12DpFFT1T4
	EzEMoL0fkfI+45QG9EHsTyLMZmdUYFhB12vUpVeI2jSuA+o1M++jfAKjUx1MnD6NLsWN
	UZ6MmZEbXtQ50oyx3bt/wMrfk1/kQNLQAfr7/EtXOFPxuCEViTcIx77p37x1tzJSWNNl
	QS4D/YuPUa+3U8424u6kRKTrCsWjdS3/dsCrnnnvvdG8cCuXOXag57njIkplw+tqu2ne
	I81g==
X-Received: by 10.194.94.164 with SMTP id dd4mr1677481wjb.56.1422540685723;
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.25
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:25 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:09 +0000
Message-Id: <1422540669-9652-6-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 5/5] Remove use of KeNumberProcessors from
	SHARED_INFO code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

KeNumberProcessors is used in the DEBUG callback. Use
KeQueryActiveProcessorCount() instead.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/shared_info.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xenbus/shared_info.c b/src/xenbus/shared_info.c
index 1aca2e2..244b9e1 100644
--- a/src/xenbus/shared_info.c
+++ b/src/xenbus/shared_info.c
@@ -457,14 +457,14 @@ SharedInfoDebugCallback(
 
     if (!Crashing) {
         shared_info_t   *Shared;
-        LONG            Cpu;
+        ULONG           Cpu;
         ULONG           Selector;
 
         Shared = Context->Shared;
 
         KeMemoryBarrier();
 
-        for (Cpu = 0; Cpu < KeNumberProcessors; Cpu++) {
+        for (Cpu = 0; Cpu < KeQueryActiveProcessorCount(NULL); Cpu++) {
             int vcpu_id = SystemVirtualCpuIndex(Cpu);
 
             XENBUS_DEBUG(Printf,
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:28 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoe-0005hi-N7; Thu, 29 Jan 2015 14:11:28 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpod-0005gg-7z
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:27 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
	CD/72-02639-D8F3AC45; Thu, 29 Jan 2015 14:11:25 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1422540684!12346403!1
X-Originating-IP: [74.125.82.169]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6784 invoked from network); 29 Jan 2015 14:11:24 -0000
Received: from mail-we0-f169.google.com (HELO mail-we0-f169.google.com)
	(74.125.82.169)
	by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:24 -0000
Received: by mail-we0-f169.google.com with SMTP id u56so23522403wes.0
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=Sol5a5fTYnPK7AnT6gO2wKEa21SjoxqrnLeH45l6M4I=;
	b=dBznpROPvKJ+nPW6L+Bf0X4iuB4U+RyzDyNYVicWrjJgHjhRrlAoZl1/CfBsEm3Ror
	xhsrdQMTi6eW2OkaLLpMIqTfzWy6IH4jtE4ATABBTJ0wAukhTLkFcV4Gyn1frexLd+h5
	DmrKiUwGK0l/GrQEQelYurssQipxo+67cDNR5SBQaoz8g33i0tw4nasoI6bx1Y4N/mm8
	pOHY8+e2tekp1ryOAlvKPIHuZjGVypNGn9pCpvyb/pE60r8SzEXawQNYjWBJgWN4p0Z4
	C/sVYfY/aQPqTBSilubOZRaXwLIeLm5oFkEBhBuq/UY0TX6g/q+W/EowLG6SxGw2GhN8
	jp8A==
X-Received: by 10.194.52.66 with SMTP id r2mr1276814wjo.61.1422540684223;
	Thu, 29 Jan 2015 06:11:24 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.23
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:23 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:07 +0000
Message-Id: <1422540669-9652-4-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/5] Remove use of KeNumberProcessors from
	EVTCHN code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The crucial things are the virtual CPUs to which the ABI can steer
interrupts and the number of interrupts which the FDO code successfully
allocated. By using an intersection of these two things we can drop any
use of KeNumberProcessors.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c      | 110 ++++++++++++++++++++++-------------------------
 src/xenbus/evtchn_2l.c   |   5 ++-
 src/xenbus/evtchn_abi.h  |   3 +-
 src/xenbus/evtchn_fifo.c |  21 +++++----
 src/xenbus/fdo.c         |  39 ++++++++---------
 src/xenbus/fdo.h         |   5 +--
 6 files changed, 90 insertions(+), 93 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 3360a29..63af079 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -646,13 +646,9 @@ EvtchnBind(
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
-    status = STATUS_INVALID_PARAMETER;
-    if (Cpu >= (ULONG)KeNumberProcessors)
-        goto fail1;
-
     status = STATUS_NOT_SUPPORTED;
     if (~Context->Affinity & ((KAFFINITY)1 << Cpu))
-        goto fail2;
+        goto fail1;
 
     KeAcquireSpinLock(&Channel->Lock, &Irql);
 
@@ -667,7 +663,7 @@ EvtchnBind(
 
     status = EventChannelBindVirtualCpu(LocalPort, vcpu_id);
     if (!NT_SUCCESS(status))
-        goto fail3;
+        goto fail2;
 
     Channel->Cpu = Cpu;
 
@@ -678,14 +674,11 @@ done:
 
     return STATUS_SUCCESS;
 
-fail3:
-    Error("fail3\n");
-
-    KeReleaseSpinLock(&Channel->Lock, Irql);
-
 fail2:
     Error("fail2\n");
 
+    KeReleaseSpinLock(&Channel->Lock, Irql);
+
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -860,7 +853,8 @@ EvtchnInterruptCallback(
 
 static NTSTATUS
 EvtchnAbiAcquire(
-    IN  PXENBUS_EVTCHN_CONTEXT  Context
+    IN  PXENBUS_EVTCHN_CONTEXT  Context,
+    OUT PKAFFINITY              Affinity
     )
 {
     NTSTATUS                    status;
@@ -869,7 +863,9 @@ EvtchnAbiAcquire(
         EvtchnFifoGetAbi(Context->EvtchnFifoContext,
                          &Context->EvtchnAbi);
 
-        status = XENBUS_EVTCHN_ABI(Acquire, &Context->EvtchnAbi);
+        status = XENBUS_EVTCHN_ABI(Acquire,
+                                   &Context->EvtchnAbi,
+                                   Affinity);
         if (!NT_SUCCESS(status))
             goto use_two_level;
 
@@ -881,7 +877,9 @@ use_two_level:
     EvtchnTwoLevelGetAbi(Context->EvtchnTwoLevelContext,
                          &Context->EvtchnAbi);
 
-    status = XENBUS_EVTCHN_ABI(Acquire, &Context->EvtchnAbi);
+    status = XENBUS_EVTCHN_ABI(Acquire,
+                               &Context->EvtchnAbi,
+                               Affinity);
     if (!NT_SUCCESS(status))
         goto fail1;
 
@@ -917,13 +915,13 @@ EvtchnInterruptEnable(
 
     Trace("====>\n");
 
-    ASSERT3U(Context->Affinity, ==, 0);
-
-    Cpu = 0;
-    while (Cpu < KeNumberProcessors) {
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
         unsigned int    vcpu_id;
         UCHAR           Vector;
 
+        if (Context->LatchedInterrupt[Cpu] == NULL)
+            continue;
+
         vcpu_id = SystemVirtualCpuIndex(Cpu);
         Vector = FdoGetInterruptVector(Context->Fdo,
                                        Context->LatchedInterrupt[Cpu]);
@@ -933,8 +931,6 @@ EvtchnInterruptEnable(
             Info("CPU %u\n", Cpu);
             Context->Affinity |= (KAFFINITY)1 << Cpu;
         }
-
-        Cpu++;
     }
 
     Line = FdoGetInterruptLine(Context->Fdo,
@@ -951,7 +947,7 @@ EvtchnInterruptDisable(
     IN  PXENBUS_EVTCHN_CONTEXT  Context
     )
 {
-    LONG                        Cpu;
+    ULONG                       Cpu;
     NTSTATUS                    status;
 
     UNREFERENCED_PARAMETER(Context);
@@ -961,10 +957,12 @@ EvtchnInterruptDisable(
     status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, 0);
     ASSERT(NT_SUCCESS(status));
 
-    Cpu = KeNumberProcessors;
-    while (--Cpu >= 0) {
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
         unsigned int    vcpu_id;
 
+        if (~Context->Affinity & (KAFFINITY)1 << Cpu)
+            continue;
+
         vcpu_id = SystemVirtualCpuIndex(Cpu);
 
         (VOID) HvmSetEvtchnUpcallVector(vcpu_id, 0);
@@ -1011,13 +1009,17 @@ EvtchnSuspendCallbackLate(
     )
 {
     PXENBUS_EVTCHN_CONTEXT  Context = Argument;
+    KAFFINITY               Affinity;
     NTSTATUS                status;
 
     EvtchnAbiRelease(Context);
 
-    status = EvtchnAbiAcquire(Context);
+    status = EvtchnAbiAcquire(Context, &Affinity);
     ASSERT(NT_SUCCESS(status));
 
+    // Affinity must be a superset of Context->Affinity
+    ASSERT3U(Affinity & Context->Affinity, ==, Context->Affinity);
+
     EvtchnInterruptDisable(Context);
     EvtchnInterruptEnable(Context);
 }
@@ -1115,7 +1117,8 @@ EvtchnAcquire(
     PXENBUS_EVTCHN_CONTEXT  Context = Interface->Context;
     PXENBUS_FDO             Fdo = Context->Fdo;
     KIRQL                   Irql;
-    LONG                    Cpu;
+    ULONG                   Cpu;
+    KAFFINITY               Affinity;
     NTSTATUS                status;
 
     KeAcquireSpinLock(&Context->Lock, &Irql);
@@ -1164,31 +1167,29 @@ EvtchnAcquire(
     if (!NT_SUCCESS(status))
         goto fail6;
 
-    status = EvtchnAbiAcquire(Context);
+    status = EvtchnAbiAcquire(Context, &Affinity);
     if (!NT_SUCCESS(status))
         goto fail7;
 
-    status = FdoAllocateInterrupt(Fdo,
-                                  LevelSensitive,
-                                  0,
-                                  EvtchnInterruptCallback,
-                                  Context,
-                                  &Context->LevelSensitiveInterrupt);
-    if (!NT_SUCCESS(status))
-        goto fail8;
+    Context->LevelSensitiveInterrupt = FdoAllocateInterrupt(Fdo,
+                                                            LevelSensitive,
+                                                            0,
+                                                            EvtchnInterruptCallback,
+                                                            Context);
 
-    Cpu = 0;
-    while (Cpu < KeNumberProcessors) {
-        status = FdoAllocateInterrupt(Fdo,
-                                      Latched,
-                                      Cpu,
-                                      EvtchnInterruptCallback,
-                                      Context,
-                                      &Context->LatchedInterrupt[Cpu]);
-        if (!NT_SUCCESS(status))
-            goto fail9;
+    status = STATUS_UNSUCCESSFUL;
+    if (Context->LevelSensitiveInterrupt == NULL)
+        goto fail8;
 
-        Cpu++;
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
+        if (~Affinity & (KAFFINITY)1 << Cpu)
+            continue;
+
+        Context->LatchedInterrupt[Cpu] = FdoAllocateInterrupt(Fdo,
+                                                              Latched,
+                                                              Cpu,
+                                                              EvtchnInterruptCallback,
+                                                              Context);
     }
 
     EvtchnInterruptEnable(Context);
@@ -1200,17 +1201,6 @@ done:
 
     return STATUS_SUCCESS;
 
-fail9:
-    Error("fail9\n");
-
-    while (--Cpu >= 0) {
-        FdoFreeInterrupt(Fdo, Context->LatchedInterrupt[Cpu]);
-        Context->LatchedInterrupt[Cpu] = NULL;
-    }
-
-    FdoFreeInterrupt(Fdo, Context->LevelSensitiveInterrupt);
-    Context->LevelSensitiveInterrupt = NULL;
-
 fail8:
     Error("fail8\n");
 
@@ -1273,7 +1263,7 @@ EvtchnRelease(
     PXENBUS_EVTCHN_CONTEXT  Context = Interface->Context;
     PXENBUS_FDO             Fdo = Context->Fdo;
     KIRQL                   Irql;
-    LONG                    Cpu;
+    ULONG                   Cpu;
 
     KeAcquireSpinLock(&Context->Lock, &Irql);
 
@@ -1284,8 +1274,10 @@ EvtchnRelease(
 
     EvtchnInterruptDisable(Context);
 
-    Cpu = KeNumberProcessors;
-    while (--Cpu >= 0) {
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
+        if (Context->LatchedInterrupt[Cpu] == NULL)
+            continue;
+
         EvtchnFlush(Context, Cpu);
 
         FdoFreeInterrupt(Fdo, Context->LatchedInterrupt[Cpu]);
diff --git a/src/xenbus/evtchn_2l.c b/src/xenbus/evtchn_2l.c
index 0f839ee..e5af9db 100644
--- a/src/xenbus/evtchn_2l.c
+++ b/src/xenbus/evtchn_2l.c
@@ -148,7 +148,8 @@ EvtchnTwoLevelPortUnmask(
 
 static NTSTATUS
 EvtchnTwoLevelAcquire(
-    IN  PXENBUS_EVTCHN_ABI_CONTEXT      _Context
+    IN  PXENBUS_EVTCHN_ABI_CONTEXT      _Context,
+    OUT PKAFFINITY                      Affinity
     )
 {
     PXENBUS_EVTCHN_TWO_LEVEL_CONTEXT    Context = (PVOID)_Context;
@@ -166,6 +167,8 @@ EvtchnTwoLevelAcquire(
     if (!NT_SUCCESS(status))
         goto fail1;
 
+    *Affinity = (KAFFINITY)1;
+
     Trace("<====\n");
 
 done:
diff --git a/src/xenbus/evtchn_abi.h b/src/xenbus/evtchn_abi.h
index 237ce7d..2e1bf43 100644
--- a/src/xenbus/evtchn_abi.h
+++ b/src/xenbus/evtchn_abi.h
@@ -39,7 +39,8 @@ typedef PVOID *PXENBUS_EVTCHN_ABI_CONTEXT;
 
 typedef NTSTATUS
 (*XENBUS_EVTCHN_ABI_ACQUIRE)(
-    IN  PXENBUS_EVTCHN_ABI_CONTEXT  Context
+    IN  PXENBUS_EVTCHN_ABI_CONTEXT  Context,
+    OUT PKAFFINITY                  Affinity
     );
 
 typedef VOID
diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index 078e067..ef72fdb 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -494,7 +494,8 @@ EvtchnFifoReset(
 
 static NTSTATUS
 EvtchnFifoAcquire(
-    IN  PXENBUS_EVTCHN_ABI_CONTEXT  _Context
+    IN  PXENBUS_EVTCHN_ABI_CONTEXT  _Context,
+    OUT PKAFFINITY                  Affinity
     )
 {
     PXENBUS_EVTCHN_FIFO_CONTEXT     Context = (PVOID)_Context;
@@ -510,8 +511,10 @@ EvtchnFifoAcquire(
 
     Trace("====>\n");
 
+    *Affinity = 0;
     Cpu = 0;
-    while (Cpu < KeNumberProcessors) {
+
+    while (Cpu < (LONG)KeQueryActiveProcessorCount(NULL)) {
         unsigned int        vcpu_id;
         PFN_NUMBER          Pfn;
         PHYSICAL_ADDRESS    Address;
@@ -538,6 +541,8 @@ EvtchnFifoAcquire(
                   Address.LowPart);
 
         Context->ControlBlockMdl[vcpu_id] = Mdl;
+
+        *Affinity |= (KAFFINITY)1 << Cpu;
         Cpu++;
     }
 
@@ -581,7 +586,7 @@ EvtchnFifoRelease(
 {
     PXENBUS_EVTCHN_FIFO_CONTEXT     Context = (PVOID)_Context;
     KIRQL                           Irql;
-    LONG                            Cpu;
+    int                             vcpu_id;
 
     KeAcquireSpinLock(&Context->Lock, &Irql);
 
@@ -594,14 +599,14 @@ EvtchnFifoRelease(
 
     EvtchnFifoContract(Context);
 
-    Cpu = KeNumberProcessors;
-    while (--Cpu >= 0) {
-        unsigned int    vcpu_id;
+    vcpu_id = MAX_HVM_VCPUS;
+    while (--vcpu_id >= 0) {
         PMDL            Mdl;
 
-        vcpu_id = SystemVirtualCpuIndex(Cpu);
-
         Mdl = Context->ControlBlockMdl[vcpu_id];
+        if (Mdl == NULL)
+            continue;
+
         Context->ControlBlockMdl[vcpu_id] = NULL;
 
         __FreePage(Mdl);
diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c
index 7115d8e..2877923 100644
--- a/src/xenbus/fdo.c
+++ b/src/xenbus/fdo.c
@@ -1475,6 +1475,7 @@ FdoFilterResourceRequirements(
     IO_RESOURCE_DESCRIPTOR          Interrupt;
     PIO_RESOURCE_LIST               List;
     ULONG                           Index;
+    ULONG                           Count;
     NTSTATUS                        status;
 
     status = FdoForwardIrpSynchronously(Fdo, Irp);
@@ -1487,8 +1488,10 @@ FdoFilterResourceRequirements(
     Old = (PIO_RESOURCE_REQUIREMENTS_LIST)Irp->IoStatus.Information;
     ASSERT3U(Old->AlternativeLists, ==, 1);
 
+    Count = KeQueryActiveProcessorCount(NULL);
+
     Size = Old->ListSize +
-        (sizeof (IO_RESOURCE_DESCRIPTOR) * KeNumberProcessors);
+        (sizeof (IO_RESOURCE_DESCRIPTOR) * Count);
 
     New = __AllocatePoolWithTag(PagedPool, Size, 'SUB');
 
@@ -1525,7 +1528,7 @@ FdoFilterResourceRequirements(
     Interrupt.u.Interrupt.AffinityPolicy = IrqPolicySpecifiedProcessors;
     Interrupt.u.Interrupt.PriorityPolicy = IrqPriorityUndefined;
 
-    for (Index = 0; Index < (ULONG)KeNumberProcessors; Index++) {
+    for (Index = 0; Index < Count; Index++) {
         Interrupt.u.Interrupt.TargetedProcessors = (KAFFINITY)1 << Index;
         List->Descriptors[List->Count++] = Interrupt;
     }
@@ -1879,48 +1882,42 @@ fail1:
     return status;
 }
 
-NTSTATUS
+PXENBUS_INTERRUPT
 FdoAllocateInterrupt(
     IN  PXENBUS_FDO         Fdo,
     IN  KINTERRUPT_MODE     InterruptMode,
     IN  ULONG               Cpu,
     IN  KSERVICE_ROUTINE    Callback,
-    IN  PVOID               Argument OPTIONAL,
-    OUT PXENBUS_INTERRUPT   *Interrupt
+    IN  PVOID               Argument OPTIONAL
     )
 {
     PLIST_ENTRY             ListEntry;
+    PXENBUS_INTERRUPT       Interrupt;
     KIRQL                   Irql;
-    NTSTATUS                status;
 
     for (ListEntry = Fdo->List.Flink;
          ListEntry != &Fdo->List;
          ListEntry = ListEntry->Flink) {
-        *Interrupt = CONTAINING_RECORD(ListEntry, XENBUS_INTERRUPT, ListEntry);
+        Interrupt = CONTAINING_RECORD(ListEntry, XENBUS_INTERRUPT, ListEntry);
 
-        if ((*Interrupt)->Callback == NULL &&
-            (*Interrupt)->InterruptMode == InterruptMode &&
-            (*Interrupt)->Cpu == Cpu)
+        if (Interrupt->Callback == NULL &&
+            Interrupt->InterruptMode == InterruptMode &&
+            Interrupt->Cpu == Cpu)
             goto found;
     }
 
-    *Interrupt = NULL;
-
-    status = STATUS_OBJECT_NAME_NOT_FOUND;
     goto fail1;
 
 found:
-    Irql = FdoAcquireInterruptLock(Fdo, *Interrupt);
-    (*Interrupt)->Callback = Callback;
-    (*Interrupt)->Argument = Argument;
-    FdoReleaseInterruptLock(Fdo, *Interrupt, Irql);
+    Irql = FdoAcquireInterruptLock(Fdo, Interrupt);
+    Interrupt->Callback = Callback;
+    Interrupt->Argument = Argument;
+    FdoReleaseInterruptLock(Fdo, Interrupt, Irql);
 
-    return STATUS_SUCCESS;
+    return Interrupt;
 
 fail1:
-    Error("fail1 (%08x)\n", status);
-
-    return status;
+    return NULL;
 }
 
 UCHAR
diff --git a/src/xenbus/fdo.h b/src/xenbus/fdo.h
index 4916be4..a07b55f 100644
--- a/src/xenbus/fdo.h
+++ b/src/xenbus/fdo.h
@@ -165,14 +165,13 @@ FdoReleaseInterruptLock(
     IN  __drv_restoresIRQL KIRQL    Irql
     );
 
-extern NTSTATUS
+extern PXENBUS_INTERRUPT
 FdoAllocateInterrupt(
     IN  PXENBUS_FDO         Fdo,
     IN  KINTERRUPT_MODE     InterruptMode,
     IN  ULONG               Cpu,
     IN  KSERVICE_ROUTINE    Callback,
-    IN  PVOID               Argument OPTIONAL,
-    OUT PXENBUS_INTERRUPT   *Interrupt
+    IN  PVOID               Argument OPTIONAL
     );
 
 extern UCHAR
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Thu Jan 29 14:11:28 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jan 2015 14:11:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YGpoe-0005hi-N7; Thu, 29 Jan 2015 14:11:28 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YGpod-0005gg-7z
	for win-pv-devel@lists.xenproject.org; Thu, 29 Jan 2015 14:11:27 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
	CD/72-02639-D8F3AC45; Thu, 29 Jan 2015 14:11:25 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1422540684!12346403!1
X-Originating-IP: [74.125.82.169]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6784 invoked from network); 29 Jan 2015 14:11:24 -0000
Received: from mail-we0-f169.google.com (HELO mail-we0-f169.google.com)
	(74.125.82.169)
	by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Jan 2015 14:11:24 -0000
Received: by mail-we0-f169.google.com with SMTP id u56so23522403wes.0
	for <win-pv-devel@lists.xenproject.org>;
	Thu, 29 Jan 2015 06:11:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id:in-reply-to:references;
	bh=Sol5a5fTYnPK7AnT6gO2wKEa21SjoxqrnLeH45l6M4I=;
	b=dBznpROPvKJ+nPW6L+Bf0X4iuB4U+RyzDyNYVicWrjJgHjhRrlAoZl1/CfBsEm3Ror
	xhsrdQMTi6eW2OkaLLpMIqTfzWy6IH4jtE4ATABBTJ0wAukhTLkFcV4Gyn1frexLd+h5
	DmrKiUwGK0l/GrQEQelYurssQipxo+67cDNR5SBQaoz8g33i0tw4nasoI6bx1Y4N/mm8
	pOHY8+e2tekp1ryOAlvKPIHuZjGVypNGn9pCpvyb/pE60r8SzEXawQNYjWBJgWN4p0Z4
	C/sVYfY/aQPqTBSilubOZRaXwLIeLm5oFkEBhBuq/UY0TX6g/q+W/EowLG6SxGw2GhN8
	jp8A==
X-Received: by 10.194.52.66 with SMTP id r2mr1276814wjo.61.1422540684223;
	Thu, 29 Jan 2015 06:11:24 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	ev7sm10625067wjb.47.2015.01.29.06.11.23
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 29 Jan 2015 06:11:23 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 29 Jan 2015 14:11:07 +0000
Message-Id: <1422540669-9652-4-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
References: <1422540669-9652-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/5] Remove use of KeNumberProcessors from
	EVTCHN code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The crucial things are the virtual CPUs to which the ABI can steer
interrupts and the number of interrupts which the FDO code successfully
allocated. By using an intersection of these two things we can drop any
use of KeNumberProcessors.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 src/xenbus/evtchn.c      | 110 ++++++++++++++++++++++-------------------------
 src/xenbus/evtchn_2l.c   |   5 ++-
 src/xenbus/evtchn_abi.h  |   3 +-
 src/xenbus/evtchn_fifo.c |  21 +++++----
 src/xenbus/fdo.c         |  39 ++++++++---------
 src/xenbus/fdo.h         |   5 +--
 6 files changed, 90 insertions(+), 93 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 3360a29..63af079 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -646,13 +646,9 @@ EvtchnBind(
 
     ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC);
 
-    status = STATUS_INVALID_PARAMETER;
-    if (Cpu >= (ULONG)KeNumberProcessors)
-        goto fail1;
-
     status = STATUS_NOT_SUPPORTED;
     if (~Context->Affinity & ((KAFFINITY)1 << Cpu))
-        goto fail2;
+        goto fail1;
 
     KeAcquireSpinLock(&Channel->Lock, &Irql);
 
@@ -667,7 +663,7 @@ EvtchnBind(
 
     status = EventChannelBindVirtualCpu(LocalPort, vcpu_id);
     if (!NT_SUCCESS(status))
-        goto fail3;
+        goto fail2;
 
     Channel->Cpu = Cpu;
 
@@ -678,14 +674,11 @@ done:
 
     return STATUS_SUCCESS;
 
-fail3:
-    Error("fail3\n");
-
-    KeReleaseSpinLock(&Channel->Lock, Irql);
-
 fail2:
     Error("fail2\n");
 
+    KeReleaseSpinLock(&Channel->Lock, Irql);
+
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -860,7 +853,8 @@ EvtchnInterruptCallback(
 
 static NTSTATUS
 EvtchnAbiAcquire(
-    IN  PXENBUS_EVTCHN_CONTEXT  Context
+    IN  PXENBUS_EVTCHN_CONTEXT  Context,
+    OUT PKAFFINITY              Affinity
     )
 {
     NTSTATUS                    status;
@@ -869,7 +863,9 @@ EvtchnAbiAcquire(
         EvtchnFifoGetAbi(Context->EvtchnFifoContext,
                          &Context->EvtchnAbi);
 
-        status = XENBUS_EVTCHN_ABI(Acquire, &Context->EvtchnAbi);
+        status = XENBUS_EVTCHN_ABI(Acquire,
+                                   &Context->EvtchnAbi,
+                                   Affinity);
         if (!NT_SUCCESS(status))
             goto use_two_level;
 
@@ -881,7 +877,9 @@ use_two_level:
     EvtchnTwoLevelGetAbi(Context->EvtchnTwoLevelContext,
                          &Context->EvtchnAbi);
 
-    status = XENBUS_EVTCHN_ABI(Acquire, &Context->EvtchnAbi);
+    status = XENBUS_EVTCHN_ABI(Acquire,
+                               &Context->EvtchnAbi,
+                               Affinity);
     if (!NT_SUCCESS(status))
         goto fail1;
 
@@ -917,13 +915,13 @@ EvtchnInterruptEnable(
 
     Trace("====>\n");
 
-    ASSERT3U(Context->Affinity, ==, 0);
-
-    Cpu = 0;
-    while (Cpu < KeNumberProcessors) {
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
         unsigned int    vcpu_id;
         UCHAR           Vector;
 
+        if (Context->LatchedInterrupt[Cpu] == NULL)
+            continue;
+
         vcpu_id = SystemVirtualCpuIndex(Cpu);
         Vector = FdoGetInterruptVector(Context->Fdo,
                                        Context->LatchedInterrupt[Cpu]);
@@ -933,8 +931,6 @@ EvtchnInterruptEnable(
             Info("CPU %u\n", Cpu);
             Context->Affinity |= (KAFFINITY)1 << Cpu;
         }
-
-        Cpu++;
     }
 
     Line = FdoGetInterruptLine(Context->Fdo,
@@ -951,7 +947,7 @@ EvtchnInterruptDisable(
     IN  PXENBUS_EVTCHN_CONTEXT  Context
     )
 {
-    LONG                        Cpu;
+    ULONG                       Cpu;
     NTSTATUS                    status;
 
     UNREFERENCED_PARAMETER(Context);
@@ -961,10 +957,12 @@ EvtchnInterruptDisable(
     status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, 0);
     ASSERT(NT_SUCCESS(status));
 
-    Cpu = KeNumberProcessors;
-    while (--Cpu >= 0) {
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
         unsigned int    vcpu_id;
 
+        if (~Context->Affinity & (KAFFINITY)1 << Cpu)
+            continue;
+
         vcpu_id = SystemVirtualCpuIndex(Cpu);
 
         (VOID) HvmSetEvtchnUpcallVector(vcpu_id, 0);
@@ -1011,13 +1009,17 @@ EvtchnSuspendCallbackLate(
     )
 {
     PXENBUS_EVTCHN_CONTEXT  Context = Argument;
+    KAFFINITY               Affinity;
     NTSTATUS                status;
 
     EvtchnAbiRelease(Context);
 
-    status = EvtchnAbiAcquire(Context);
+    status = EvtchnAbiAcquire(Context, &Affinity);
     ASSERT(NT_SUCCESS(status));
 
+    // Affinity must be a superset of Context->Affinity
+    ASSERT3U(Affinity & Context->Affinity, ==, Context->Affinity);
+
     EvtchnInterruptDisable(Context);
     EvtchnInterruptEnable(Context);
 }
@@ -1115,7 +1117,8 @@ EvtchnAcquire(
     PXENBUS_EVTCHN_CONTEXT  Context = Interface->Context;
     PXENBUS_FDO             Fdo = Context->Fdo;
     KIRQL                   Irql;
-    LONG                    Cpu;
+    ULONG                   Cpu;
+    KAFFINITY               Affinity;
     NTSTATUS                status;
 
     KeAcquireSpinLock(&Context->Lock, &Irql);
@@ -1164,31 +1167,29 @@ EvtchnAcquire(
     if (!NT_SUCCESS(status))
         goto fail6;
 
-    status = EvtchnAbiAcquire(Context);
+    status = EvtchnAbiAcquire(Context, &Affinity);
     if (!NT_SUCCESS(status))
         goto fail7;
 
-    status = FdoAllocateInterrupt(Fdo,
-                                  LevelSensitive,
-                                  0,
-                                  EvtchnInterruptCallback,
-                                  Context,
-                                  &Context->LevelSensitiveInterrupt);
-    if (!NT_SUCCESS(status))
-        goto fail8;
+    Context->LevelSensitiveInterrupt = FdoAllocateInterrupt(Fdo,
+                                                            LevelSensitive,
+                                                            0,
+                                                            EvtchnInterruptCallback,
+                                                            Context);
 
-    Cpu = 0;
-    while (Cpu < KeNumberProcessors) {
-        status = FdoAllocateInterrupt(Fdo,
-                                      Latched,
-                                      Cpu,
-                                      EvtchnInterruptCallback,
-                                      Context,
-                                      &Context->LatchedInterrupt[Cpu]);
-        if (!NT_SUCCESS(status))
-            goto fail9;
+    status = STATUS_UNSUCCESSFUL;
+    if (Context->LevelSensitiveInterrupt == NULL)
+        goto fail8;
 
-        Cpu++;
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
+        if (~Affinity & (KAFFINITY)1 << Cpu)
+            continue;
+
+        Context->LatchedInterrupt[Cpu] = FdoAllocateInterrupt(Fdo,
+                                                              Latched,
+                                                              Cpu,
+                                                              EvtchnInterruptCallback,
+                                                              Context);
     }
 
     EvtchnInterruptEnable(Context);
@@ -1200,17 +1201,6 @@ done:
 
     return STATUS_SUCCESS;
 
-fail9:
-    Error("fail9\n");
-
-    while (--Cpu >= 0) {
-        FdoFreeInterrupt(Fdo, Context->LatchedInterrupt[Cpu]);
-        Context->LatchedInterrupt[Cpu] = NULL;
-    }
-
-    FdoFreeInterrupt(Fdo, Context->LevelSensitiveInterrupt);
-    Context->LevelSensitiveInterrupt = NULL;
-
 fail8:
     Error("fail8\n");
 
@@ -1273,7 +1263,7 @@ EvtchnRelease(
     PXENBUS_EVTCHN_CONTEXT  Context = Interface->Context;
     PXENBUS_FDO             Fdo = Context->Fdo;
     KIRQL                   Irql;
-    LONG                    Cpu;
+    ULONG                   Cpu;
 
     KeAcquireSpinLock(&Context->Lock, &Irql);
 
@@ -1284,8 +1274,10 @@ EvtchnRelease(
 
     EvtchnInterruptDisable(Context);
 
-    Cpu = KeNumberProcessors;
-    while (--Cpu >= 0) {
+    for (Cpu = 0; Cpu < MAXIMUM_PROCESSORS; Cpu++) {
+        if (Context->LatchedInterrupt[Cpu] == NULL)
+            continue;
+
         EvtchnFlush(Context, Cpu);
 
         FdoFreeInterrupt(Fdo, Context->LatchedInterrupt[Cpu]);
diff --git a/src/xenbus/evtchn_2l.c b/src/xenbus/evtchn_2l.c
index 0f839ee..e5af9db 100644
--- a/src/xenbus/evtchn_2l.c
+++ b/src/xenbus/evtchn_2l.c
@@ -148,7 +148,8 @@ EvtchnTwoLevelPortUnmask(
 
 static NTSTATUS
 EvtchnTwoLevelAcquire(
-    IN  PXENBUS_EVTCHN_ABI_CONTEXT      _Context
+    IN  PXENBUS_EVTCHN_ABI_CONTEXT      _Context,
+    OUT PKAFFINITY                      Affinity
     )
 {
     PXENBUS_EVTCHN_TWO_LEVEL_CONTEXT    Context = (PVOID)_Context;
@@ -166,6 +167,8 @@ EvtchnTwoLevelAcquire(
     if (!NT_SUCCESS(status))
         goto fail1;
 
+    *Affinity = (KAFFINITY)1;
+
     Trace("<====\n");
 
 done:
diff --git a/src/xenbus/evtchn_abi.h b/src/xenbus/evtchn_abi.h
index 237ce7d..2e1bf43 100644
--- a/src/xenbus/evtchn_abi.h
+++ b/src/xenbus/evtchn_abi.h
@@ -39,7 +39,8 @@ typedef PVOID *PXENBUS_EVTCHN_ABI_CONTEXT;
 
 typedef NTSTATUS
 (*XENBUS_EVTCHN_ABI_ACQUIRE)(
-    IN  PXENBUS_EVTCHN_ABI_CONTEXT  Context
+    IN  PXENBUS_EVTCHN_ABI_CONTEXT  Context,
+    OUT PKAFFINITY                  Affinity
     );
 
 typedef VOID
diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index 078e067..ef72fdb 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -494,7 +494,8 @@ EvtchnFifoReset(
 
 static NTSTATUS
 EvtchnFifoAcquire(
-    IN  PXENBUS_EVTCHN_ABI_CONTEXT  _Context
+    IN  PXENBUS_EVTCHN_ABI_CONTEXT  _Context,
+    OUT PKAFFINITY                  Affinity
     )
 {
     PXENBUS_EVTCHN_FIFO_CONTEXT     Context = (PVOID)_Context;
@@ -510,8 +511,10 @@ EvtchnFifoAcquire(
 
     Trace("====>\n");
 
+    *Affinity = 0;
     Cpu = 0;
-    while (Cpu < KeNumberProcessors) {
+
+    while (Cpu < (LONG)KeQueryActiveProcessorCount(NULL)) {
         unsigned int        vcpu_id;
         PFN_NUMBER          Pfn;
         PHYSICAL_ADDRESS    Address;
@@ -538,6 +541,8 @@ EvtchnFifoAcquire(
                   Address.LowPart);
 
         Context->ControlBlockMdl[vcpu_id] = Mdl;
+
+        *Affinity |= (KAFFINITY)1 << Cpu;
         Cpu++;
     }
 
@@ -581,7 +586,7 @@ EvtchnFifoRelease(
 {
     PXENBUS_EVTCHN_FIFO_CONTEXT     Context = (PVOID)_Context;
     KIRQL                           Irql;
-    LONG                            Cpu;
+    int                             vcpu_id;
 
     KeAcquireSpinLock(&Context->Lock, &Irql);
 
@@ -594,14 +599,14 @@ EvtchnFifoRelease(
 
     EvtchnFifoContract(Context);
 
-    Cpu = KeNumberProcessors;
-    while (--Cpu >= 0) {
-        unsigned int    vcpu_id;
+    vcpu_id = MAX_HVM_VCPUS;
+    while (--vcpu_id >= 0) {
         PMDL            Mdl;
 
-        vcpu_id = SystemVirtualCpuIndex(Cpu);
-
         Mdl = Context->ControlBlockMdl[vcpu_id];
+        if (Mdl == NULL)
+            continue;
+
         Context->ControlBlockMdl[vcpu_id] = NULL;
 
         __FreePage(Mdl);
diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c
index 7115d8e..2877923 100644
--- a/src/xenbus/fdo.c
+++ b/src/xenbus/fdo.c
@@ -1475,6 +1475,7 @@ FdoFilterResourceRequirements(
     IO_RESOURCE_DESCRIPTOR          Interrupt;
     PIO_RESOURCE_LIST               List;
     ULONG                           Index;
+    ULONG                           Count;
     NTSTATUS                        status;
 
     status = FdoForwardIrpSynchronously(Fdo, Irp);
@@ -1487,8 +1488,10 @@ FdoFilterResourceRequirements(
     Old = (PIO_RESOURCE_REQUIREMENTS_LIST)Irp->IoStatus.Information;
     ASSERT3U(Old->AlternativeLists, ==, 1);
 
+    Count = KeQueryActiveProcessorCount(NULL);
+
     Size = Old->ListSize +
-        (sizeof (IO_RESOURCE_DESCRIPTOR) * KeNumberProcessors);
+        (sizeof (IO_RESOURCE_DESCRIPTOR) * Count);
 
     New = __AllocatePoolWithTag(PagedPool, Size, 'SUB');
 
@@ -1525,7 +1528,7 @@ FdoFilterResourceRequirements(
     Interrupt.u.Interrupt.AffinityPolicy = IrqPolicySpecifiedProcessors;
     Interrupt.u.Interrupt.PriorityPolicy = IrqPriorityUndefined;
 
-    for (Index = 0; Index < (ULONG)KeNumberProcessors; Index++) {
+    for (Index = 0; Index < Count; Index++) {
         Interrupt.u.Interrupt.TargetedProcessors = (KAFFINITY)1 << Index;
         List->Descriptors[List->Count++] = Interrupt;
     }
@@ -1879,48 +1882,42 @@ fail1:
     return status;
 }
 
-NTSTATUS
+PXENBUS_INTERRUPT
 FdoAllocateInterrupt(
     IN  PXENBUS_FDO         Fdo,
     IN  KINTERRUPT_MODE     InterruptMode,
     IN  ULONG               Cpu,
     IN  KSERVICE_ROUTINE    Callback,
-    IN  PVOID               Argument OPTIONAL,
-    OUT PXENBUS_INTERRUPT   *Interrupt
+    IN  PVOID               Argument OPTIONAL
     )
 {
     PLIST_ENTRY             ListEntry;
+    PXENBUS_INTERRUPT       Interrupt;
     KIRQL                   Irql;
-    NTSTATUS                status;
 
     for (ListEntry = Fdo->List.Flink;
          ListEntry != &Fdo->List;
          ListEntry = ListEntry->Flink) {
-        *Interrupt = CONTAINING_RECORD(ListEntry, XENBUS_INTERRUPT, ListEntry);
+        Interrupt = CONTAINING_RECORD(ListEntry, XENBUS_INTERRUPT, ListEntry);
 
-        if ((*Interrupt)->Callback == NULL &&
-            (*Interrupt)->InterruptMode == InterruptMode &&
-            (*Interrupt)->Cpu == Cpu)
+        if (Interrupt->Callback == NULL &&
+            Interrupt->InterruptMode == InterruptMode &&
+            Interrupt->Cpu == Cpu)
             goto found;
     }
 
-    *Interrupt = NULL;
-
-    status = STATUS_OBJECT_NAME_NOT_FOUND;
     goto fail1;
 
 found:
-    Irql = FdoAcquireInterruptLock(Fdo, *Interrupt);
-    (*Interrupt)->Callback = Callback;
-    (*Interrupt)->Argument = Argument;
-    FdoReleaseInterruptLock(Fdo, *Interrupt, Irql);
+    Irql = FdoAcquireInterruptLock(Fdo, Interrupt);
+    Interrupt->Callback = Callback;
+    Interrupt->Argument = Argument;
+    FdoReleaseInterruptLock(Fdo, Interrupt, Irql);
 
-    return STATUS_SUCCESS;
+    return Interrupt;
 
 fail1:
-    Error("fail1 (%08x)\n", status);
-
-    return status;
+    return NULL;
 }
 
 UCHAR
diff --git a/src/xenbus/fdo.h b/src/xenbus/fdo.h
index 4916be4..a07b55f 100644
--- a/src/xenbus/fdo.h
+++ b/src/xenbus/fdo.h
@@ -165,14 +165,13 @@ FdoReleaseInterruptLock(
     IN  __drv_restoresIRQL KIRQL    Irql
     );
 
-extern NTSTATUS
+extern PXENBUS_INTERRUPT
 FdoAllocateInterrupt(
     IN  PXENBUS_FDO         Fdo,
     IN  KINTERRUPT_MODE     InterruptMode,
     IN  ULONG               Cpu,
     IN  KSERVICE_ROUTINE    Callback,
-    IN  PVOID               Argument OPTIONAL,
-    OUT PXENBUS_INTERRUPT   *Interrupt
+    IN  PVOID               Argument OPTIONAL
     );
 
 extern UCHAR
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 13:51:04 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 13:51:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHByR-0005OQ-UK; Fri, 30 Jan 2015 13:51:03 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YHByO-0005OL-V3
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 13:51:01 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	85/F8-02754-44C8BC45; Fri, 30 Jan 2015 13:51:00 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1422625859!13559911!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6708 invoked from network); 30 Jan 2015 13:50:59 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 13:50:59 -0000
Received: by mail-wi0-f175.google.com with SMTP id fb4so3197987wid.2
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 05:50:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=pCHHtmh/XqPctS4iyo42KjtIWDV4nQvEZwXbLw+B0d4=;
	b=AwclXBJ2Ps/v0PBHv2aiSP5/2MPTWtvCXpJ2Hw2XT2OEUFyuOfNLS7I4vrpNK1UMr/
	9ZlwHiJFAXOeUd5qEpgPvwcc9XL3jF+tEpI3kKxUmkyltA3rnVATnROUMZR+MgtMIXOe
	TArmt0ecdbdr6M5wO9FradRnJ/UEfG/T6iwFMG/sE7+A2YCjSrnWC6ZBgyCQ69KsyHo9
	0Zo1OyEekQiqDVbLn1NXu0/1jZisiG7KwkUISbxuT8wxEHkeaktcw68gzXbIIMKngyoM
	TYGFGv1uu6s3ThvwxVT16htZW+SCcXXA0PKhPc3bflMRC3M7SRSUKvfUiiwh/OiTohi0
	CL3A==
X-Received: by 10.194.81.161 with SMTP id b1mr12709298wjy.2.1422625859230;
	Fri, 30 Jan 2015 05:50:59 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id z6sm7026258wix.20.2015.01.30.05.50.58
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 05:50:58 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 30 Jan 2015 13:50:56 +0000
Message-Id: <1422625856-5168-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Update to EVTCHN version 3
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Take the opportunity to refresh all imported headers though as there's a
small doxygen tweak in each of them too.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 include/cache_interface.h    |  1 +
 include/debug_interface.h    |  1 +
 include/emulated_interface.h |  1 +
 include/evtchn_interface.h   | 69 +++++++++++++++++++++++++++++++++++++++-----
 include/gnttab_interface.h   |  1 +
 include/store_interface.h    |  1 +
 include/suspend_interface.h  |  1 +
 src/xenvbd/notifier.c        | 33 +++++++++------------
 8 files changed, 81 insertions(+), 27 deletions(-)

diff --git a/include/cache_interface.h b/include/cache_interface.h
index 12599ef..dae3ac6 100644
--- a/include/cache_interface.h
+++ b/include/cache_interface.h
@@ -205,6 +205,7 @@ DEFINE_GUID(GUID_XENBUS_CACHE_INTERFACE,
 
 /*! \struct _XENBUS_CACHE_INTERFACE_V1
     \brief CACHE interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_CACHE_INTERFACE_V1 {
     INTERFACE               Interface;
diff --git a/include/debug_interface.h b/include/debug_interface.h
index 0b4f763..cc71db0 100644
--- a/include/debug_interface.h
+++ b/include/debug_interface.h
@@ -146,6 +146,7 @@ DEFINE_GUID(GUID_XENBUS_DEBUG_INTERFACE,
 
 /*! \struct _XENBUS_DEBUG_INTERFACE_V1
     \brief DEBUG interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_DEBUG_INTERFACE_V1 {
     INTERFACE               Interface;
diff --git a/include/emulated_interface.h b/include/emulated_interface.h
index 0019c1b..85ed2b8 100644
--- a/include/emulated_interface.h
+++ b/include/emulated_interface.h
@@ -101,6 +101,7 @@ DEFINE_GUID(GUID_XENFILT_EMULATED_INTERFACE,
 
 /*! \struct _XENFILT_EMULATED_INTERFACE_V1
     \brief EMULATED interface version 1
+    \ingroup interfaces
 */
 struct _XENFILT_EMULATED_INTERFACE_V1 {
     INTERFACE                           Interface;
diff --git a/include/evtchn_interface.h b/include/evtchn_interface.h
index 207f341..1bc456a 100644
--- a/include/evtchn_interface.h
+++ b/include/evtchn_interface.h
@@ -112,19 +112,39 @@ typedef PXENBUS_EVTCHN_CHANNEL
     ...
     );
 
+/*! \typedef XENBUS_EVTCHN_BIND
+    \brief Bind an event channel to a specific CPU
+
+    \param Interface The interface header
+    \param Channel The channel handle
+    \param Cpu The CPU that should handle events
+*/
+typedef NTSTATUS
+(*XENBUS_EVTCHN_BIND)(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  ULONG                   Cpu
+    );
+
+typedef BOOLEAN
+(*XENBUS_EVTCHN_UNMASK_V1)(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  BOOLEAN                 InCallback
+    );
+
 /*! \typedef XENBUS_EVTCHN_UNMASK
     \brief Unmask an event channel
 
     \param Interface The interface header
     \param Channel The channel handle
-    \param Locked Set to TRUE if this method is invoked in context of the channel callback
-    \return TRUE if there was an event pending at the point of unmask, FALSE otherwise
+    \param InCallback Set to TRUE if this method is invoked in context of the channel callback
 */
-typedef BOOLEAN
+typedef VOID
 (*XENBUS_EVTCHN_UNMASK)(
     IN  PINTERFACE              Interface,
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
-    IN  BOOLEAN                 Locked
+    IN  BOOLEAN                 InCallback
     );
 
 /*! \typedef XENBUS_EVTCHN_SEND
@@ -182,20 +202,55 @@ DEFINE_GUID(GUID_XENBUS_EVTCHN_INTERFACE,
 
 /*! \struct _XENBUS_EVTCHN_INTERFACE_V1
     \brief EVTCHN interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_EVTCHN_INTERFACE_V1 {
     INTERFACE               Interface;
     XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
     XENBUS_EVTCHN_RELEASE   EvtchnRelease;
     XENBUS_EVTCHN_OPEN      EvtchnOpen;
+    XENBUS_EVTCHN_UNMASK_V1 EvtchnUnmaskVersion1;
+    XENBUS_EVTCHN_SEND      EvtchnSend;
+    XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
+    XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
+    XENBUS_EVTCHN_CLOSE     EvtchnClose;
+};
+
+/*! \struct _XENBUS_EVTCHN_INTERFACE_V2
+    \brief EVTCHN interface version 2
+    \ingroup interfaces
+*/
+struct _XENBUS_EVTCHN_INTERFACE_V2 {
+    INTERFACE               Interface;
+    XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
+    XENBUS_EVTCHN_RELEASE   EvtchnRelease;
+    XENBUS_EVTCHN_OPEN      EvtchnOpen;
+    XENBUS_EVTCHN_BIND      EvtchnBind;
+    XENBUS_EVTCHN_UNMASK_V1 EvtchnUnmaskVersion1;
+    XENBUS_EVTCHN_SEND      EvtchnSend;
+    XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
+    XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
+    XENBUS_EVTCHN_CLOSE     EvtchnClose;
+};
+
+/*! \struct _XENBUS_EVTCHN_INTERFACE_V3
+    \brief EVTCHN interface version 3
+    \ingroup interfaces
+*/
+struct _XENBUS_EVTCHN_INTERFACE_V3 {
+    INTERFACE               Interface;
+    XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
+    XENBUS_EVTCHN_RELEASE   EvtchnRelease;
+    XENBUS_EVTCHN_OPEN      EvtchnOpen;
+    XENBUS_EVTCHN_BIND      EvtchnBind;
     XENBUS_EVTCHN_UNMASK    EvtchnUnmask;
     XENBUS_EVTCHN_SEND      EvtchnSend;
-    XENBUS_EVTCHN_SEND      EvtchnTrigger;
+    XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
     XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
     XENBUS_EVTCHN_CLOSE     EvtchnClose;
 };
 
-typedef struct _XENBUS_EVTCHN_INTERFACE_V1 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVTCHN_INTERFACE;
+typedef struct _XENBUS_EVTCHN_INTERFACE_V3 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVTCHN_INTERFACE;
 
 /*! \def XENBUS_EVTCHN
     \brief Macro at assist in method invocation
@@ -206,7 +261,7 @@ typedef struct _XENBUS_EVTCHN_INTERFACE_V1 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVT
 #endif  // _WINDLL
 
 #define XENBUS_EVTCHN_INTERFACE_VERSION_MIN 1
-#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 1
+#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 3
 
 #endif  // _XENBUS_EVTCHN_INTERFACE_H
 
diff --git a/include/gnttab_interface.h b/include/gnttab_interface.h
index c9d005f..d29440a 100644
--- a/include/gnttab_interface.h
+++ b/include/gnttab_interface.h
@@ -169,6 +169,7 @@ DEFINE_GUID(GUID_XENBUS_GNTTAB_INTERFACE,
 
 /*! \struct _XENBUS_GNTTAB_INTERFACE_V1
     \brief GNTTAB interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_GNTTAB_INTERFACE_V1 {
     INTERFACE                           Interface;
diff --git a/include/store_interface.h b/include/store_interface.h
index f052b8f..5bcbba3 100644
--- a/include/store_interface.h
+++ b/include/store_interface.h
@@ -269,6 +269,7 @@ struct _XENBUS_STORE_INTERFACE_V1 {
 
 /*! \struct _XENBUS_STORE_INTERFACE_V1
     \brief STORE interface version 1
+    \ingroup interfaces
 */
 typedef struct _XENBUS_STORE_INTERFACE_V1 XENBUS_STORE_INTERFACE, *PXENBUS_STORE_INTERFACE;
 
diff --git a/include/suspend_interface.h b/include/suspend_interface.h
index 1a39141..df1b4b0 100644
--- a/include/suspend_interface.h
+++ b/include/suspend_interface.h
@@ -148,6 +148,7 @@ DEFINE_GUID(GUID_XENBUS_SUSPEND_INTERFACE,
 
 /*! \struct _XENBUS_SUSPEND_INTERFACE_V1
     \brief SUSPEND interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_SUSPEND_INTERFACE_V1 {
     INTERFACE                   Interface;
diff --git a/src/xenvbd/notifier.c b/src/xenvbd/notifier.c
index d299c0c..b812d69 100644
--- a/src/xenvbd/notifier.c
+++ b/src/xenvbd/notifier.c
@@ -125,19 +125,15 @@ NotifierDpc(
             return;
     }
 
-    for (;;) {
-        if (Notifier->Connected)
-            FrontendNotifyResponses(Notifier->Frontend);
-
-        if (!Notifier->Connected)
-            break;
-
-        if (!XENBUS_EVTCHN(Unmask,
-                           Notifier->EvtchnInterface,
-                           Notifier->Channel,
-                           FALSE))
-            break;
-    }
+    if (!Notifier->Connected)
+        return;
+
+    FrontendNotifyResponses(Notifier->Frontend);
+
+    XENBUS_EVTCHN(Unmask,
+                  Notifier->EvtchnInterface,
+                  Notifier->Channel,
+                  FALSE);
 }
 
 NTSTATUS
@@ -211,13 +207,10 @@ NotifierConnect(
                                    Notifier->EvtchnInterface,
                                    Notifier->Channel);
 
-    if (XENBUS_EVTCHN(Unmask,
-                      Notifier->EvtchnInterface,
-                      Notifier->Channel,
-                      FALSE))
-        XENBUS_EVTCHN(Trigger,
-                      Notifier->EvtchnInterface,
-                      Notifier->Channel);
+    XENBUS_EVTCHN(Unmask,
+                  Notifier->EvtchnInterface,
+                  Notifier->Channel,
+                  FALSE);
 
     Notifier->Connected = TRUE;
     return STATUS_SUCCESS;
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 13:51:04 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 13:51:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHByR-0005OQ-UK; Fri, 30 Jan 2015 13:51:03 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YHByO-0005OL-V3
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 13:51:01 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	85/F8-02754-44C8BC45; Fri, 30 Jan 2015 13:51:00 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1422625859!13559911!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6708 invoked from network); 30 Jan 2015 13:50:59 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 13:50:59 -0000
Received: by mail-wi0-f175.google.com with SMTP id fb4so3197987wid.2
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 05:50:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=pCHHtmh/XqPctS4iyo42KjtIWDV4nQvEZwXbLw+B0d4=;
	b=AwclXBJ2Ps/v0PBHv2aiSP5/2MPTWtvCXpJ2Hw2XT2OEUFyuOfNLS7I4vrpNK1UMr/
	9ZlwHiJFAXOeUd5qEpgPvwcc9XL3jF+tEpI3kKxUmkyltA3rnVATnROUMZR+MgtMIXOe
	TArmt0ecdbdr6M5wO9FradRnJ/UEfG/T6iwFMG/sE7+A2YCjSrnWC6ZBgyCQ69KsyHo9
	0Zo1OyEekQiqDVbLn1NXu0/1jZisiG7KwkUISbxuT8wxEHkeaktcw68gzXbIIMKngyoM
	TYGFGv1uu6s3ThvwxVT16htZW+SCcXXA0PKhPc3bflMRC3M7SRSUKvfUiiwh/OiTohi0
	CL3A==
X-Received: by 10.194.81.161 with SMTP id b1mr12709298wjy.2.1422625859230;
	Fri, 30 Jan 2015 05:50:59 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id z6sm7026258wix.20.2015.01.30.05.50.58
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 05:50:58 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 30 Jan 2015 13:50:56 +0000
Message-Id: <1422625856-5168-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Update to EVTCHN version 3
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Take the opportunity to refresh all imported headers though as there's a
small doxygen tweak in each of them too.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
 include/cache_interface.h    |  1 +
 include/debug_interface.h    |  1 +
 include/emulated_interface.h |  1 +
 include/evtchn_interface.h   | 69 +++++++++++++++++++++++++++++++++++++++-----
 include/gnttab_interface.h   |  1 +
 include/store_interface.h    |  1 +
 include/suspend_interface.h  |  1 +
 src/xenvbd/notifier.c        | 33 +++++++++------------
 8 files changed, 81 insertions(+), 27 deletions(-)

diff --git a/include/cache_interface.h b/include/cache_interface.h
index 12599ef..dae3ac6 100644
--- a/include/cache_interface.h
+++ b/include/cache_interface.h
@@ -205,6 +205,7 @@ DEFINE_GUID(GUID_XENBUS_CACHE_INTERFACE,
 
 /*! \struct _XENBUS_CACHE_INTERFACE_V1
     \brief CACHE interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_CACHE_INTERFACE_V1 {
     INTERFACE               Interface;
diff --git a/include/debug_interface.h b/include/debug_interface.h
index 0b4f763..cc71db0 100644
--- a/include/debug_interface.h
+++ b/include/debug_interface.h
@@ -146,6 +146,7 @@ DEFINE_GUID(GUID_XENBUS_DEBUG_INTERFACE,
 
 /*! \struct _XENBUS_DEBUG_INTERFACE_V1
     \brief DEBUG interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_DEBUG_INTERFACE_V1 {
     INTERFACE               Interface;
diff --git a/include/emulated_interface.h b/include/emulated_interface.h
index 0019c1b..85ed2b8 100644
--- a/include/emulated_interface.h
+++ b/include/emulated_interface.h
@@ -101,6 +101,7 @@ DEFINE_GUID(GUID_XENFILT_EMULATED_INTERFACE,
 
 /*! \struct _XENFILT_EMULATED_INTERFACE_V1
     \brief EMULATED interface version 1
+    \ingroup interfaces
 */
 struct _XENFILT_EMULATED_INTERFACE_V1 {
     INTERFACE                           Interface;
diff --git a/include/evtchn_interface.h b/include/evtchn_interface.h
index 207f341..1bc456a 100644
--- a/include/evtchn_interface.h
+++ b/include/evtchn_interface.h
@@ -112,19 +112,39 @@ typedef PXENBUS_EVTCHN_CHANNEL
     ...
     );
 
+/*! \typedef XENBUS_EVTCHN_BIND
+    \brief Bind an event channel to a specific CPU
+
+    \param Interface The interface header
+    \param Channel The channel handle
+    \param Cpu The CPU that should handle events
+*/
+typedef NTSTATUS
+(*XENBUS_EVTCHN_BIND)(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  ULONG                   Cpu
+    );
+
+typedef BOOLEAN
+(*XENBUS_EVTCHN_UNMASK_V1)(
+    IN  PINTERFACE              Interface,
+    IN  PXENBUS_EVTCHN_CHANNEL  Channel,
+    IN  BOOLEAN                 InCallback
+    );
+
 /*! \typedef XENBUS_EVTCHN_UNMASK
     \brief Unmask an event channel
 
     \param Interface The interface header
     \param Channel The channel handle
-    \param Locked Set to TRUE if this method is invoked in context of the channel callback
-    \return TRUE if there was an event pending at the point of unmask, FALSE otherwise
+    \param InCallback Set to TRUE if this method is invoked in context of the channel callback
 */
-typedef BOOLEAN
+typedef VOID
 (*XENBUS_EVTCHN_UNMASK)(
     IN  PINTERFACE              Interface,
     IN  PXENBUS_EVTCHN_CHANNEL  Channel,
-    IN  BOOLEAN                 Locked
+    IN  BOOLEAN                 InCallback
     );
 
 /*! \typedef XENBUS_EVTCHN_SEND
@@ -182,20 +202,55 @@ DEFINE_GUID(GUID_XENBUS_EVTCHN_INTERFACE,
 
 /*! \struct _XENBUS_EVTCHN_INTERFACE_V1
     \brief EVTCHN interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_EVTCHN_INTERFACE_V1 {
     INTERFACE               Interface;
     XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
     XENBUS_EVTCHN_RELEASE   EvtchnRelease;
     XENBUS_EVTCHN_OPEN      EvtchnOpen;
+    XENBUS_EVTCHN_UNMASK_V1 EvtchnUnmaskVersion1;
+    XENBUS_EVTCHN_SEND      EvtchnSend;
+    XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
+    XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
+    XENBUS_EVTCHN_CLOSE     EvtchnClose;
+};
+
+/*! \struct _XENBUS_EVTCHN_INTERFACE_V2
+    \brief EVTCHN interface version 2
+    \ingroup interfaces
+*/
+struct _XENBUS_EVTCHN_INTERFACE_V2 {
+    INTERFACE               Interface;
+    XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
+    XENBUS_EVTCHN_RELEASE   EvtchnRelease;
+    XENBUS_EVTCHN_OPEN      EvtchnOpen;
+    XENBUS_EVTCHN_BIND      EvtchnBind;
+    XENBUS_EVTCHN_UNMASK_V1 EvtchnUnmaskVersion1;
+    XENBUS_EVTCHN_SEND      EvtchnSend;
+    XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
+    XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
+    XENBUS_EVTCHN_CLOSE     EvtchnClose;
+};
+
+/*! \struct _XENBUS_EVTCHN_INTERFACE_V3
+    \brief EVTCHN interface version 3
+    \ingroup interfaces
+*/
+struct _XENBUS_EVTCHN_INTERFACE_V3 {
+    INTERFACE               Interface;
+    XENBUS_EVTCHN_ACQUIRE   EvtchnAcquire;
+    XENBUS_EVTCHN_RELEASE   EvtchnRelease;
+    XENBUS_EVTCHN_OPEN      EvtchnOpen;
+    XENBUS_EVTCHN_BIND      EvtchnBind;
     XENBUS_EVTCHN_UNMASK    EvtchnUnmask;
     XENBUS_EVTCHN_SEND      EvtchnSend;
-    XENBUS_EVTCHN_SEND      EvtchnTrigger;
+    XENBUS_EVTCHN_TRIGGER   EvtchnTrigger;
     XENBUS_EVTCHN_GET_PORT  EvtchnGetPort;
     XENBUS_EVTCHN_CLOSE     EvtchnClose;
 };
 
-typedef struct _XENBUS_EVTCHN_INTERFACE_V1 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVTCHN_INTERFACE;
+typedef struct _XENBUS_EVTCHN_INTERFACE_V3 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVTCHN_INTERFACE;
 
 /*! \def XENBUS_EVTCHN
     \brief Macro at assist in method invocation
@@ -206,7 +261,7 @@ typedef struct _XENBUS_EVTCHN_INTERFACE_V1 XENBUS_EVTCHN_INTERFACE, *PXENBUS_EVT
 #endif  // _WINDLL
 
 #define XENBUS_EVTCHN_INTERFACE_VERSION_MIN 1
-#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 1
+#define XENBUS_EVTCHN_INTERFACE_VERSION_MAX 3
 
 #endif  // _XENBUS_EVTCHN_INTERFACE_H
 
diff --git a/include/gnttab_interface.h b/include/gnttab_interface.h
index c9d005f..d29440a 100644
--- a/include/gnttab_interface.h
+++ b/include/gnttab_interface.h
@@ -169,6 +169,7 @@ DEFINE_GUID(GUID_XENBUS_GNTTAB_INTERFACE,
 
 /*! \struct _XENBUS_GNTTAB_INTERFACE_V1
     \brief GNTTAB interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_GNTTAB_INTERFACE_V1 {
     INTERFACE                           Interface;
diff --git a/include/store_interface.h b/include/store_interface.h
index f052b8f..5bcbba3 100644
--- a/include/store_interface.h
+++ b/include/store_interface.h
@@ -269,6 +269,7 @@ struct _XENBUS_STORE_INTERFACE_V1 {
 
 /*! \struct _XENBUS_STORE_INTERFACE_V1
     \brief STORE interface version 1
+    \ingroup interfaces
 */
 typedef struct _XENBUS_STORE_INTERFACE_V1 XENBUS_STORE_INTERFACE, *PXENBUS_STORE_INTERFACE;
 
diff --git a/include/suspend_interface.h b/include/suspend_interface.h
index 1a39141..df1b4b0 100644
--- a/include/suspend_interface.h
+++ b/include/suspend_interface.h
@@ -148,6 +148,7 @@ DEFINE_GUID(GUID_XENBUS_SUSPEND_INTERFACE,
 
 /*! \struct _XENBUS_SUSPEND_INTERFACE_V1
     \brief SUSPEND interface version 1
+    \ingroup interfaces
 */
 struct _XENBUS_SUSPEND_INTERFACE_V1 {
     INTERFACE                   Interface;
diff --git a/src/xenvbd/notifier.c b/src/xenvbd/notifier.c
index d299c0c..b812d69 100644
--- a/src/xenvbd/notifier.c
+++ b/src/xenvbd/notifier.c
@@ -125,19 +125,15 @@ NotifierDpc(
             return;
     }
 
-    for (;;) {
-        if (Notifier->Connected)
-            FrontendNotifyResponses(Notifier->Frontend);
-
-        if (!Notifier->Connected)
-            break;
-
-        if (!XENBUS_EVTCHN(Unmask,
-                           Notifier->EvtchnInterface,
-                           Notifier->Channel,
-                           FALSE))
-            break;
-    }
+    if (!Notifier->Connected)
+        return;
+
+    FrontendNotifyResponses(Notifier->Frontend);
+
+    XENBUS_EVTCHN(Unmask,
+                  Notifier->EvtchnInterface,
+                  Notifier->Channel,
+                  FALSE);
 }
 
 NTSTATUS
@@ -211,13 +207,10 @@ NotifierConnect(
                                    Notifier->EvtchnInterface,
                                    Notifier->Channel);
 
-    if (XENBUS_EVTCHN(Unmask,
-                      Notifier->EvtchnInterface,
-                      Notifier->Channel,
-                      FALSE))
-        XENBUS_EVTCHN(Trigger,
-                      Notifier->EvtchnInterface,
-                      Notifier->Channel);
+    XENBUS_EVTCHN(Unmask,
+                  Notifier->EvtchnInterface,
+                  Notifier->Channel,
+                  FALSE);
 
     Notifier->Connected = TRUE;
     return STATUS_SUCCESS;
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 13:51:31 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 13:51:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHByt-0005oF-0A; Fri, 30 Jan 2015 13:51:31 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YHByr-0005mx-36
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 13:51:29 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
	C1/5B-02753-06C8BC45; Fri, 30 Jan 2015 13:51:28 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1422625887!11820211!1
X-Originating-IP: [74.125.82.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29869 invoked from network); 30 Jan 2015 13:51:27 -0000
Received: from mail-we0-f176.google.com (HELO mail-we0-f176.google.com)
	(74.125.82.176)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 13:51:27 -0000
Received: by mail-we0-f176.google.com with SMTP id w62so27221044wes.7
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 05:51:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=FLd8UAq1ExR1aFwRHkDp/h/uSfWUNaCveu2k7hqhFM4=;
	b=jgfkPgHOFkgxxBzssOujv6HHL77WWeY+ASqQ5eKTXv/eby2w35Lv8KlsnSzEs1K1iA
	XNqrq/cW3KwIHgYATXjG+bxP+szQtQOa2fE44FZQIw/x2j69Vr+37Hf5HES8+K/HN9rT
	InaYsGnICxoYfNz7uCFRQYWyt++K8G6/AgDjK5+zU+UZw2/cByObWV9uKoMQXeEowwKo
	uE9BBq+RluC62mG85ce3ovM+njscEHbr9JxEBPdD+KDRQ0vEl3JSKJf2XUlOkgMFU1L5
	RZucCaM2TVJfCup0AHjKVGWB0jD/BQIfgESNyJ6qj7Ghy+JzovsEKDYX8xDwwX7i5QUv
	krAA==
X-Received: by 10.180.80.67 with SMTP id p3mr4906046wix.55.1422625887641;
	Fri, 30 Jan 2015 05:51:27 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	uo6sm15019962wjc.49.2015.01.30.05.51.26
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 05:51:27 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 30 Jan 2015 13:51:28 +0000
Message-Id: <1422625888-11876-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Insertion into head of austere heap misses
	setting reverse link
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The heap is maintained as a doubly linked list of objects but both
__AllocSmall() and __FreeSmall() are missing setup of the reverse link when
a new object is inserted at the head. This patch adds the necessary fix.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reported-by: Gregory Jacklin <jackling@amazon.com>
---
 src/xencrsh/austere.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/xencrsh/austere.c b/src/xencrsh/austere.c
index c242006..6851475 100644
--- a/src/xencrsh/austere.c
+++ b/src/xencrsh/austere.c
@@ -262,6 +262,7 @@ __AllocSmall(
             SubHeap->Next->Prev = SubHeap->Prev;
         SubHeap->Prev = NULL;
         SubHeap->Next = AustereHeap.HeadSubHeap;
+        AustereHeap.HeadSubHeap->Prev = SubHeap;
         AustereHeap.HeadSubHeap = SubHeap;
     }
     return Res;
@@ -327,6 +328,7 @@ __FreeSmall(
             SubHeap->Next->Prev = SubHeap->Prev;
         SubHeap->Prev = NULL;
         SubHeap->Next = AustereHeap.HeadSubHeap;
+        AustereHeap.HeadSubHeap->Prev = SubHeap;
         AustereHeap.HeadSubHeap = SubHeap;
     }
 }
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 13:51:31 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 13:51:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHByt-0005oF-0A; Fri, 30 Jan 2015 13:51:31 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YHByr-0005mx-36
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 13:51:29 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
	C1/5B-02753-06C8BC45; Fri, 30 Jan 2015 13:51:28 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1422625887!11820211!1
X-Originating-IP: [74.125.82.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29869 invoked from network); 30 Jan 2015 13:51:27 -0000
Received: from mail-we0-f176.google.com (HELO mail-we0-f176.google.com)
	(74.125.82.176)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 13:51:27 -0000
Received: by mail-we0-f176.google.com with SMTP id w62so27221044wes.7
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 05:51:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=FLd8UAq1ExR1aFwRHkDp/h/uSfWUNaCveu2k7hqhFM4=;
	b=jgfkPgHOFkgxxBzssOujv6HHL77WWeY+ASqQ5eKTXv/eby2w35Lv8KlsnSzEs1K1iA
	XNqrq/cW3KwIHgYATXjG+bxP+szQtQOa2fE44FZQIw/x2j69Vr+37Hf5HES8+K/HN9rT
	InaYsGnICxoYfNz7uCFRQYWyt++K8G6/AgDjK5+zU+UZw2/cByObWV9uKoMQXeEowwKo
	uE9BBq+RluC62mG85ce3ovM+njscEHbr9JxEBPdD+KDRQ0vEl3JSKJf2XUlOkgMFU1L5
	RZucCaM2TVJfCup0AHjKVGWB0jD/BQIfgESNyJ6qj7Ghy+JzovsEKDYX8xDwwX7i5QUv
	krAA==
X-Received: by 10.180.80.67 with SMTP id p3mr4906046wix.55.1422625887641;
	Fri, 30 Jan 2015 05:51:27 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id
	uo6sm15019962wjc.49.2015.01.30.05.51.26
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 05:51:27 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 30 Jan 2015 13:51:28 +0000
Message-Id: <1422625888-11876-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Insertion into head of austere heap misses
	setting reverse link
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The heap is maintained as a doubly linked list of objects but both
__AllocSmall() and __FreeSmall() are missing setup of the reverse link when
a new object is inserted at the head. This patch adds the necessary fix.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reported-by: Gregory Jacklin <jackling@amazon.com>
---
 src/xencrsh/austere.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/xencrsh/austere.c b/src/xencrsh/austere.c
index c242006..6851475 100644
--- a/src/xencrsh/austere.c
+++ b/src/xencrsh/austere.c
@@ -262,6 +262,7 @@ __AllocSmall(
             SubHeap->Next->Prev = SubHeap->Prev;
         SubHeap->Prev = NULL;
         SubHeap->Next = AustereHeap.HeadSubHeap;
+        AustereHeap.HeadSubHeap->Prev = SubHeap;
         AustereHeap.HeadSubHeap = SubHeap;
     }
     return Res;
@@ -327,6 +328,7 @@ __FreeSmall(
             SubHeap->Next->Prev = SubHeap->Prev;
         SubHeap->Prev = NULL;
         SubHeap->Next = AustereHeap.HeadSubHeap;
+        AustereHeap.HeadSubHeap->Prev = SubHeap;
         AustereHeap.HeadSubHeap = SubHeap;
     }
 }
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 14:17:05 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 14:17:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHCNd-00006e-Aa; Fri, 30 Jan 2015 14:17:05 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YHCNb-00006Z-JS
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 14:17:03 +0000
Received: from [85.158.137.68] by server-15.bemta-3.messagelabs.com id
	59/5F-02884-E529BC45; Fri, 30 Jan 2015 14:17:02 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-10.tower-31.messagelabs.com!1422627421!10858228!1
X-Originating-IP: [74.125.82.181]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18970 invoked from network); 30 Jan 2015 14:17:01 -0000
Received: from mail-we0-f181.google.com (HELO mail-we0-f181.google.com)
	(74.125.82.181)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 14:17:01 -0000
Received: by mail-we0-f181.google.com with SMTP id k48so27409641wev.12
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 06:17:01 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:subject:references:in-reply-to:content-type;
	bh=KXGXNSGMJlkpwONCU7Oq9t+O39+hJC1/6KD8hHZsoJE=;
	b=BZtjKb2yC9KfvEGNh3xrzrdbDqFSF6G77LZU0n9qQ+IxKwne8xJ9w+52j6OK3T4tmD
	cSEk8Kc/fbzvz/nfzNJPF1m1PhppTc6IIX/XGel+joFoERuxg+AK9sI5anUmKfYejuP9
	P3V8P8cldydYijffbwpEc/18AlRgHW2Y5b7nUYuRAHNYm/RvRE0UxvrQfrZ8w63JYLVm
	pfHRKWOJVqmKdzAS3jvKi0ujaHOetr+JBoTr9BEGOky5Q4AlL2R+qSrM9a1VAuZEmLyZ
	PXFCqLceva9dF1Htqf4Rfz+PZ2SjswSAyANcDU2AzIluJMIOChuJvQRvFtp6eCOHvWVZ
	pq0w==
X-Gm-Message-State: ALoCoQkbMWSFwEdDGSVH7okHMgu2IEsgGNyEJGgHfX8atSe4WQfWIFKoWGgviMH5Dih0w7aATaDv
X-Received: by 10.194.2.75 with SMTP id 11mr12847237wjs.78.1422627421008;
	Fri, 30 Jan 2015 06:17:01 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id n3sm15108541wja.36.2015.01.30.06.16.59
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 06:17:00 -0800 (PST)
Message-ID: <54CB9266.4060800@m2r.biz>
Date: Fri, 30 Jan 2015 15:17:10 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Paul Durrant <Paul.Durrant@citrix.com>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
Content-Type: multipart/mixed; boundary="------------020307020406050409000908"
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------020307020406050409000908
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Il 28/01/2015 21:14, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>> Sent: 28 January 2015 09:19
>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
>>>> -----Original Message-----
>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>> Sent: 22 January 2015 10:10
>>>> To: win-pv-devel@lists.xenproject.org
>>>> Cc: Paul Durrant
>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>> after
>>>> save/restore
>>>>
>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>>>> Hi, I installed winpv driver build of 15 january on Windows server
>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>>>> xl save/restore didn't show any errors, trying to connected with rdp I
>>>>> was unable and with spice I saw screen with data and time (time update
>>>>> after restore) but doing ctrl+alt+canc it changed something in screen
>>>>> only after 5-10 minutes and still without showing login field.
>>>>>
>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
>>>>> xen build.
>>>>> DomU xl cfg:
>>>>>> name='w2012r2-01'
>>>>>> builder="hvm"
>>>>>> memory=8192
>>>>>> vcpus=4
>>>>>> acpi_s3=0
>>>>>> acpi_s4=0
>>>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>>>> 18:2a:f2,script=vif-openvswitch']
>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>>>> disk=['/mnt/vm/disks/w2012r2-
>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>>>> boot='dc'
>>>>>> device_model_version="qemu-xen"
>>>>>> viridian=1
>>>>>> vnc=0
>>>>>> keymap="it"
>>>>>> on_crash="destroy"
>>>>>> vga="stdvga"
>>>>>> spice=1
>>>>>> spicehost='0.0.0.0'
>>>>>> spiceport=6000
>>>>>> spicepasswd="test"
>>>>>> spicevdagent=1
>>>>>> spice_clipboard_sharing=0
>>>>>> spiceusbredirection=4
>>>>>> soundhw="hda"
>>>>>> localtime=1
>>>>> I added in attachments qemu logs (before and after save/restore) with
>>>>> xen trace enabled.
>>>>>
>>>>> If you need more informations tests tell me and I'll post them.
>>>>>
>>>>> I have also another small question:
>>>>> is ms_vm_genid needed for this case? for what I understand is only for
>>>>> active directory controller and this it isn't.
>>>>>
>>>>> Thanks for any reply and sorry for my bad english.
>>>>>
>>>>>
>>>> I also tried to uninstall the pv drivers from control panel but windows
>>>> crash, minidump in attachments.
>>> I'm re-working the FIFO event channel code at the moment so I'll run a
>> quick suspend/resume test when I'm done.
>>>     Paul
>> Thanks for your reply.
>> I did other tests and seems that save/restore problems with windows 2012
>> was for missed ms_vm_genid="generate" even if clean for now (no active
>> directory or other server services enabled nor domain member).
>> Remain windows crash on winpv drivers uninstall with minidump refer to
>> xenvif and other important and occasional problem:
>> network not working after some time and after 2-3 minutes all windows
>> become unusable.
>> I hope these problem will be solved by new network pv driver patches,
>> I'll test them ASAP when build with them will be ready.
>>
> I pushed my big series into xenbus today. You should definitely take that; it fixes several bugs in FIFO event channels and a couple of other things.
>
>    Paul

Thanks.
I tested now new pv drivers build on a windows 7 64 bit domU.
On update I saw a strange thing, xenvif and xennet even if updated 
showed message "Ready to use" instead "Driver updated".
After update of all drivers components I rebooted windows but it didn't 
start, stay blocked on windows logo, seems there is a critical 
regression in latest pv drivers build :(
DomU's qemu log with xen-platform trace in attachment.

Thanks for any reply and sorry for my bad english.

--------------020307020406050409000908
Content-Type: text/plain; charset=windows-1252;
 name="qemu-dm-W7.log"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="qemu-dm-W7.log"

bWFpbl9jaGFubmVsX2xpbms6IGFkZCBtYWluIGNoYW5uZWwgY2xpZW50Cm1haW5fY2hhbm5l
bF9oYW5kbGVfcGFyc2VkOiBuZXQgdGVzdDogbGF0ZW5jeSA1OS4yOTAwMDAgbXMsIGJpdHJh
dGUgMzAzODU3NTY2NyBicHMgKDI4OTcuODExNTcyIE1icHMpCmlucHV0c19jb25uZWN0OiBp
bnB1dHMgY2hhbm5lbCBjbGllbnQgY3JlYXRlCnJlZF9kaXNwYXRjaGVyX3NldF9jdXJzb3Jf
cGVlcjogCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU58RGxsSW5pdGlhbGl6
ZTogWEVOIDguMC4wICgyOCkgKDMwLjAxLjIwMTUpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBs
YXRmb3JtOiBYRU58QWNwaUZpbmRSc2RwOiAweDAwMDAwMDAwMDAwRjBEOTAKeGVuX3BsYXRm
b3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1HZXRTdGFydE9wdGlvbnM6ICBURVNU
U0lHTklORyAgTk9FWEVDVVRFPU9QVElOCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3Jt
OiBYRU58U3lzdGVtR2V0VmVyc2lvbkluZm9ybWF0aW9uOiBLRVJORUw6IDYuMSAoQlVJTEQg
NzYwMSkgUExBVEZPUk0gV0lOMzJfTlQgKHg2NCkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxh
dGZvcm06IFhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IFNQOiAxLjAgKCkKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3Jt
YXRpb246IFNVSVRFUzoKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0
ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IC0gVEVSTUlOQUwKeGVuX3BsYXRmb3JtX2xvZyB4
ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IC0gU0lOR0xF
VVNFUlRTCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU58U3lzdGVtR2V0VmVy
c2lvbkluZm9ybWF0aW9uOiBUWVBFOiBXT1JLU1RBVElPTgp4ZW5fcGxhdGZvcm1fbG9nIHhl
biBwbGF0Zm9ybTogWEVOfFN5c3RlbUdldE1lbW9yeUluZm9ybWF0aW9uOiBSQU5HRVswXSAw
MDAwMDAwMC4wMDAwMTAwMCAtIDAwMDAwMDAwLjAwMDllZmZmCnhlbl9wbGF0Zm9ybV9sb2cg
eGVuIHBsYXRmb3JtOiBYRU58U3lzdGVtR2V0TWVtb3J5SW5mb3JtYXRpb246IFJBTkdFWzFd
IDAwMDAwMDAwLjAwMTAwMDAwIC0gMDAwMDAwMDAuN2VmZmVmZmYKeGVuX3BsYXRmb3JtX2xv
ZyB4ZW4gcGxhdGZvcm06IFhFTnxBY3BpR2V0WHNkdDogMHgwMDAwMDAwMEZDMDBBMEUwCnhl
bl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU58U3lzdGVtQ3B1SW5mb3JtYXRpb246
ID09PT0+ICgwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOfFN5c3RlbUNw
dUluZm9ybWF0aW9uOiBNYW51ZmFjdHVyZXI6IEdlbnVpbmVJbnRlbAp4ZW5fcGxhdGZvcm1f
bG9nIHhlbiBwbGF0Zm9ybTogWEVOfFN5c3RlbUNwdUluZm9ybWF0aW9uOiBBUElDIElEOiAw
MAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOfFN5c3RlbUNwdUluZm9ybWF0
aW9uOiBQUk9DRVNTT1IgSUQ6IDAwCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBY
RU58U3lzdGVtQ3B1SW5mb3JtYXRpb246IDw9PT09ICgwKQp4ZW5fcGxhdGZvcm1fbG9nIHhl
biBwbGF0Zm9ybTogWEVOfFN5c3RlbUNwdUluZm9ybWF0aW9uOiA9PT09PiAoMSkKeGVuX3Bs
YXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1DcHVJbmZvcm1hdGlvbjogTWFu
dWZhY3R1cmVyOiBHZW51aW5lSW50ZWwKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTnxTeXN0ZW1DcHVJbmZvcm1hdGlvbjogQVBJQyBJRDogMDIKeGVuX3BsYXRmb3JtX2xv
ZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1DcHVJbmZvcm1hdGlvbjogUFJPQ0VTU09SIElE
OiAwMQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOfFN5c3RlbUNwdUluZm9y
bWF0aW9uOiA8PT09PSAoMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTjog
SFlQRVJDQUxMIFBBR0UgMCBAIDAwMDAwMDAwLjAzNmE4MDAwCnhlbl9wbGF0Zm9ybV9sb2cg
eGVuIHBsYXRmb3JtOiBYRU46IDQuNS4wCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3Jt
OiBYRU5GSUxUfERyaXZlckVudHJ5OiBYRU5GSUxUIDguMC4wICgyOCkgKDMwLjAxLjIwMTUp
Cnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5GSUxUfERyaXZlclNldEFjdGl2
ZURldmljZUluc3RhbmNlOiBQQ0lcVkVOXzU4NTMmREVWXzAwMDEmU1VCU1lTXzAwMDE1ODUz
JlJFVl8wMS8xMAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxVbnBs
dWdDaGVja0ZvclBWRGlza3M6IFBSRVNFTlQKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkZJTFR8VW5wbHVnQ2hlY2tGb3JQVk5pY3M6IFBSRVNFTlQKeGVuX3BsYXRmb3Jt
X2xvZyB4ZW4gcGxhdGZvcm06IFVOUExVRzogUFJFLUFNQkxFIChEUklWRVJTIE5PVCBCTEFD
S0xJU1RFRCkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFVOUExVRzogRElTS1MK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFVOUExVRzogTklDUwp4ZW5fcGxhdGZv
cm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxGZG9DcmVhdGU6IEZGRkZGQTgwMDE5QUEw
NDAgKEFDUElcUE5QMEEwM1wwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVO
RklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDE5QUVBQzAgKFBDSVxWRU5fODA4NiZERVZfMTIz
NyZTVUJTWVNfMTEwMDFBRjQmUkVWXzAyXDAwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0
Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDE5QjE1RDAgKFBDSVxWRU5fODA4
NiZERVZfNzAwMCZTVUJTWVNfMTEwMDFBRjQmUkVWXzAwXDA4KQp4ZW5fcGxhdGZvcm1fbG9n
IHhlbiBwbGF0Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDE5QjI1RDAgKFBD
SVxWRU5fODA4NiZERVZfNzAxMCZTVUJTWVNfMTEwMDFBRjQmUkVWXzAwXDA5KQp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDE5
QjM1RDAgKFBDSVxWRU5fNTg1MyZERVZfMDAwMSZTVUJTWVNfMDAwMTU4NTMmUkVWXzAxXDEw
KQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZG
RkZGQTgwMDE5QjQ1RDAgKFBDSVxWRU5fODA4NiZERVZfMjY2OCZTVUJTWVNfMTEwMDFBRjQm
UkVWXzAxXDE4KQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxQZG9D
cmVhdGU6IEZGRkZGQTgwMDE5QjU1RDAgKFBDSVxWRU5fMUFGNCZERVZfMTAwMyZTVUJTWVNf
MDAwMzFBRjQmUkVWXzAwXDIwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVO
RklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDI2QTMwNDAgKFBDSVxWRU5fMTIzNCZERVZfMTEx
MSZTVUJTWVNfMTEwMDFBRjQmUkVWXzAwXDI4KQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0
Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDI2QTQwNDAgKEFDUElcUE5QMDEw
M1wwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERyaXZlckVudHJ5
OiBYRU5CVVMgOC4wLjAgKDI4KSAoMzAuMDEuMjAxNSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4g
cGxhdGZvcm06IFhFTkZJTFR8UGRvUXVlcnlJbnRlcmZhY2U6IFBDSVxWRU5fNTg1MyZERVZf
MDAwMSZTVUJTWVNfMDAwMTU4NTMmUkVWXzAxXDEwOiBVTlBMVUdfSU5URVJGQUNFIChWRVJT
SU9OIDEpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RmRvQ3JlYXRl
OiBGRkZGRkE4MDAxODY3NkEwIChYUzAwMDEgWEVOQlVTKSBbQUNUSVZFXQp4ZW5fcGxhdGZv
cm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfEZkb0Nvbm5lY3RJbnRlcnJ1cHQ6IEZGRkZG
QTgwMDE4NkE5Rjg6IFNoYXJlZCBMZXZlbFNlbnNpdGl2ZSBDUFUgMCBWRUNUT1IgNTEKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xGZG9Db25uZWN0SW50ZXJydXB0
OiBGRkZGRkE4MDAxODZDRjU4OiBEZXZpY2VFeGNsdXNpdmUgTGF0Y2hlZCBDUFUgMCBWRUNU
T1IgYjAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xGZG9Db25uZWN0
SW50ZXJydXB0OiBGRkZGRkE4MDAxODZDRDY4OiBEZXZpY2VFeGNsdXNpdmUgTGF0Y2hlZCBD
UFUgMSBWRUNUT1IgYjAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xG
ZG9TY2FuOiA9PT09Pgp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfEZk
b0NyZWF0ZUlvU3BhY2U6IDAwMDAwMDAwLmYwMDAwMDAwIC0gMDAwMDAwMDAuZjBmZmZmZmYK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xGZG9TdXNwZW5kOiA9PT09
Pgp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogU0hBUkVEX0lORk86IE1BUCBYRU5N
QVBTUEFDRV9zaGFyZWRfaW5mbyBAIDAwMDAwMDAwLmYwMDAwMDAwCnhlbl9wbGF0Zm9ybV9s
b2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RmRvQmFsbG9vbjogPT09PT4KeGVuX3BsYXRmb3Jt
X2xvZyB4ZW4gcGxhdGZvcm06IEVWVENITl9GSUZPOiBDT05UUk9MQkxPQ0tbMF0gQCAwMDAw
MDAwMC4zYzUzNjAwMAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogRVZUQ0hOX0ZJ
Rk86IENPTlRST0xCTE9DS1sxXSBAIDAwMDAwMDAwLjNjZGI3MDAwCnhlbl9wbGF0Zm9ybV9s
b2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RXZ0Y2huQWJpQWNxdWlyZTogRklGTwp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfEV2dGNobkludGVycnVwdEVuYWJsZTog
Q1BVIDAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xFdnRjaG5JbnRl
cnJ1cHRFbmFibGU6IENQVSAxCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBTVE9S
RTogUEFHRSBAIDAwMDAwMDAwLmZlZmZjMDAwCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRm
b3JtOiBTVE9SRTogRVZUQ0hOIDEKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IEVW
VENITl9GSUZPOiBFVkVOVEFSUkFZWzBdIEAgMDAwMDAwMDAuM2JlYjgwMDAKeGVuX3BsYXRm
b3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xFdnRjaG5GaWZvRXhwYW5kOiBhZGRlZCBw
b3J0cyBbMDAwMDAwMDAgLSAwMDAwMDNmZl0KeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwMSkK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwMikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwMykK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwNCkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwNSkK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwNikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwMSkK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwMikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwMykK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwNCkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwNSkK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwNikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDI2NTRENDAgKElGQUNFIDAwMDAwMDAx
KQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfFBkb0NyZWF0ZTogRkZG
RkZBODAwMjY1NEQ0MCAoSUZBQ0UgMDAwMDAwMDIpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBs
YXRmb3JtOiBYRU5CVVN8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyNjU0RDQwIChJRkFDRSAwMDAw
MDAwMykKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6
IEZGRkZGQTgwMDI2NTRENDAgKElGQUNFIDAwMDAwMDA0KQp4ZW5fcGxhdGZvcm1fbG9nIHhl
biBwbGF0Zm9ybTogWEVOQlVTfFBkb0NyZWF0ZTogRkZGRkZBODAwMjY1NEQ0MCAoSUZBQ0Ug
MDAwMDAwMDUpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8UGRvQ3Jl
YXRlOiBGRkZGRkE4MDAyNjU0RDQwIChJRkFDRSAwMDAwMDAwNikKeGVuX3BsYXRmb3JtX2xv
ZyB4ZW4gcGxhdGZvcm06IFhFTkZJTFR8RmRvQ3JlYXRlOiBGRkZGRkE4MDAyNjZEQUMwIChQ
Q0lJREVcSURFQ2hhbm5lbFwwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVO
RklMVHxGZG9DcmVhdGU6IEZGRkZGQTgwMDI2NzFBQzAgKFBDSUlERVxJREVDaGFubmVsXDEp
Cnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5GSUxUfFBkb0NyZWF0ZTogRkZG
RkZBODAwMjY3QjA0MCAoSURFXENkUm9tUUVNVV9RRU1VX0RWRC1ST01fX19fX19fX19fX19f
X19fX19fX19fXzIuMC5fX19fXDAuMS4wKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9y
bTogWEVOVkJEfERyaXZlckVudHJ5OjguMC4wLjEwICgyMC8xLzIwMTUpCnhlbl9wbGF0Zm9y
bV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19Ecml2ZXJQYXJzZVBhcmFtZXRlcktleTpE
cml2ZXJQYXJhbWV0ZXJzOiAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkRJ
U0t8RHJpdmVyRW50cnk6WEVORElTSyA4LjAuMCAoMTApICgyMC4wMS4yMDE1KQp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORElTS3xGZG9DcmVhdGU6RkZGRkZBODAwMjZD
MkRFMAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfERpc3BhdGNoUG5w
OkRldmljZU9iamVjdCAweEZGRkZGQTgwMDI2QzUwNjAgaXMgbm90IEZETyAoMHgwMDAwMDAw
MDAwMDAwMDAwKSBvciBhIFBETwp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVO
VkJEfERpc3BhdGNoUG5wOkRldmljZU9iamVjdCAweEZGRkZGQTgwMDI2QzUwNjAgaXMgbm90
IEZETyAoMHgwMDAwMDAwMDAwMDAwMDAwKSBvciBhIFBETwp4ZW5fcGxhdGZvcm1fbG9nIHhl
biBwbGF0Zm9ybTogWEVOVkJEfERpc3BhdGNoUG5wOkRldmljZU9iamVjdCAweEZGRkZGQTgw
MDI2QzUwNjAgaXMgbm90IEZETyAoMHgwMDAwMDAwMDAwMDAwMDAwKSBvciBhIFBETwp4ZW5f
cGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfERpc3BhdGNoUG5wOkRldmljZU9i
amVjdCAweEZGRkZGQTgwMDI2QzUwNjAgaXMgbm90IEZETyAoMHgwMDAwMDAwMDAwMDAwMDAw
KSBvciBhIFBETwp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfERpc3Bh
dGNoUG5wOkRldmljZU9iamVjdCAweEZGRkZGQTgwMDI2QzUwNjAgaXMgbm90IEZETyAoMHgw
MDAwMDAwMDAwMDAwMDAwKSBvciBhIFBETwp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9y
bTogWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWQkQ6IEJVU19JTlRFUkZBQ0UgKFZFUlNJ
T04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxEaXNwYXRjaFBu
cDpEZXZpY2VPYmplY3QgMHhGRkZGRkE4MDAyNkM1MDYwIGlzIG5vdCBGRE8gKDB4MDAwMDAw
MDAwMDAwMDAwMCkgb3IgYSBQRE8KeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhF
TkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBCVVNfSU5URVJGQUNFIChWRVJTSU9OIDEp
Cnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RG1hRHVtcERldmljZURl
c2NyaXB0aW9uOiBWZXJzaW9uID0gMAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTog
WEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogTWFzdGVyID0gVFJVRQp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlv
bjogU2NhdHRlckdhdGhlciA9IFRSVUUKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IERlbWFuZE1vZGUgPSBGQUxTRQp4
ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNj
cmlwdGlvbjogQXV0b0luaXRpYWxpemUgPSBGQUxTRQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBw
bGF0Zm9ybTogWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hMzJCaXRBZGRy
ZXNzZXMgPSBUUlVFCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RG1h
RHVtcERldmljZURlc2NyaXB0aW9uOiBJZ25vcmVDb3VudCA9IEZBTFNFCnhlbl9wbGF0Zm9y
bV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBE
bWE2NEJpdEFkZHJlc3NlcyA9IFRSVUUKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEJ1c051bWJlciA9IDAwMDAwMDAw
Cnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RG1hRHVtcERldmljZURl
c2NyaXB0aW9uOiBEbWFDaGFubmVsID0gZmZmZmZmZmYKeGVuX3BsYXRmb3JtX2xvZyB4ZW4g
cGxhdGZvcm06IFhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEludGVyZmFjZVR5
cGUgPSBJbnRlcm5hbAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERt
YUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hV2lkdGggPSA4Qml0cwp4ZW5fcGxhdGZvcm1f
bG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1h
U3BlZWQgPSBDb21wYXRpYmxlCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5C
VVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBNYXhpbXVtTGVuZ3RoID0gMDAwYjAwMDAK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xEbWFEdW1wRGV2aWNlRGVz
Y3JpcHRpb246IERtYVBvcnQgPSBmZmZmZmZmZgp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0
Zm9ybTogWEVOQlVTfERtYUdldEFkYXB0ZXI6IG5vIGludGVyY2VwdGlvbgp4ZW5fcGxhdGZv
cm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWQkQ6IFNU
T1JFX0lOVEVSRkFDRSAoVkVSU0lPTiAxKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9y
bTogWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWQkQ6IEVWVENITl9JTlRFUkZBQ0UgKFZF
UlNJT04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9RdWVy
eUludGVyZmFjZTogVkJEOiBHTlRUQUJfSU5URVJGQUNFIChWRVJTSU9OIDEpCnhlbl9wbGF0
Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZCRDog
U1VTUEVORF9JTlRFUkZBQ0UgKFZFUlNJT04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxh
dGZvcm06IFhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBERUJVR19JTlRFUkZBQ0Ug
KFZFUlNJT04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9R
dWVyeUludGVyZmFjZTogVkJEOiBFTVVMQVRFRF9JTlRFUkZBQ0UgKFZFUlNJT04gMSkKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkZJTFR8UGRvUXVlcnlJbnRlcmZhY2U6
IFBDSVxWRU5fNTg1MyZERVZfMDAwMSZTVUJTWVNfMDAwMTU4NTMmUkVWXzAxXDEwOiBFTVVM
QVRFRF9JTlRFUkZBQ0UgKFZFUlNJT04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTlZCRHxfX0Zkb1NldERldmljZVBvd2VyU3RhdGU6UE9XRVIgRDMgdG8gRDAKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxfX0Zkb0QzVG9EMDpEMy0+RDAK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxfX0Zkb0lzUGRvVW5wbHVn
Z2VkOlRhcmdldFswXSA6ICh2YmQvNzY4KSBFbXVsYXRlZCBOT1RfUFJFU0VOVAp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfFBkb0NyZWF0ZTpUYXJnZXRbMF0gOiBD
cmVhdGluZyAoUFYpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8UGRv
U2V0RGV2aWNlUG93ZXJTdGF0ZTpUYXJnZXRbMF0gOiBQT1dFUiBEMyB0byBEMAp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfFBkb0QzVG9EMDpUYXJnZXRbMF0gOiBE
My0+RDAgKFBWKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfF9fRnJv
bnRlbmRTZXRTdGF0ZTpUYXJnZXRbMF0gOiBJTklUSUFMSVpFRCAtLS0tPiBFTkFCTEVECnhl
bl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19Gcm9udGVuZFNldFN0YXRl
OlRhcmdldFswXSA6IGluIHN0YXRlIENMT1NFRAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0
Zm9ybTogWEVOVkJEfEZyb250ZW5kV3JpdGVVc2FnZTpUYXJnZXRbMF0gOiBOT1RfRFVNUCBO
T1RfSElCRVIgTk9UX1BBR0UKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZC
RHxQZG9SZWFkSW5xdWlyeURhdGE6VGFyZ2V0WzBdIDogRmFpbGVkIHRvIGdldCBQYWdlODAg
ZGF0YQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfFBkb1JlYWRJbnF1
aXJ5RGF0YTpUYXJnZXRbMF0gOiBGYWlsZWQgdG8gZ2V0IFBhZ2U4MyBkYXRhCnhlbl9wbGF0
Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8UGRvVXBkYXRlSW5xdWlyeURhdGE6VGFy
Z2V0WzBdIDogVkRJLVVVSUQgPSB7MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAw
MDAwfQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfEZyb250ZW5kUHJl
cGFyZTpUYXJnZXRbMF0gOiBCYWNrZW5kSWQgMCAoL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQv
cWRpc2svNC83NjgpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8RnJv
bnRlbmRSZWFkRmVhdHVyZXM6VGFyZ2V0WzBdIDogRmVhdHVyZXM6IFBFUlNJU1RFTlQgCnhl
bl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19Gcm9udGVuZFNldFN0YXRl
OlRhcmdldFswXSA6IGluIHN0YXRlIFBSRVBBUkVECnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBs
YXRmb3JtOiBYRU5CVVN8UmFuZ2VTZXRQb3A6IGZhaWwxIChjMDAwMDA5YSkKeGVuX3BsYXRm
b3JtX2xvZyB4ZW4gcGxhdGZvcm06IEdOVFRBQjogTUFQIFhFTk1BUFNQQUNFX2dyYW50X3Rh
YmxlWzBdIEAgMDAwMDAwMDAuZjAwMDEwMDAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xHbnR0YWJFeHBhbmQ6IGFkZGVkIHJlZmVyZW5jZXMgWzAwMDAwMDIwIC0g
MDAwMDAxZmZdCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19SZWFk
RGlza0luZm86VGFyZ2V0WzBdIDogMTAyNDAwMDAwIHNlY3RvcnMgb2YgNTEyIGJ5dGVzICg1
MTIpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19SZWFkRGlza0lu
Zm86VGFyZ2V0WzBdIDogNDggR0IgKDAwMDAwMDAwKSAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4g
cGxhdGZvcm06IFhFTlZCRHxGcm9udGVuZFJlYWREaXNrSW5mbzpUYXJnZXRbMF0gOiBGZWF0
dXJlczogRkxVU0ggRElTQ0FSRCAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhF
TlZCRHxGcm9udGVuZFJlYWREaXNrSW5mbzpUYXJnZXRbMF0gOiBESVNDQVJEIDAvMAp4ZW5f
cGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfF9fRnJvbnRlbmRTZXRTdGF0ZTpU
YXJnZXRbMF0gOiBpbiBzdGF0ZSBDT05ORUNURUQKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxh
dGZvcm06IFhFTlZCRHxfX0Zyb250ZW5kU2V0U3RhdGU6VGFyZ2V0WzBdIDogaW4gc3RhdGUg
RU5BQkxFRAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfFBkb0NyZWF0
ZTpUYXJnZXRbMF0gOiBDcmVhdGVkIChQVikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTlZCRHxGZG9Mb2dUYXJnZXRzOlNjYW5UaHJlYWQgPT09Pgp4ZW5fcGxhdGZvcm1f
bG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfEZkb0xvZ1RhcmdldHM6U2NhblRocmVhZCA6IFRh
cmdldFswXSA9IDB4RkZGRkZBODAwMjY3ODZFMCAocHJlc2VudCkKeGVuX3BsYXRmb3JtX2xv
ZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxGZG9Mb2dUYXJnZXRzOlNjYW5UaHJlYWQgPD09PQp4
ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfEZkb0Rpc3BhdGNoUG5wOjE0
OlFVRVJZX1BOUF9ERVZJQ0VfU1RBVEUgLT4gYzAwMDAwYmIKeGVuX3BsYXRmb3JtX2xvZyB4
ZW4gcGxhdGZvcm06IFhFTlZCRHxfX0hhbmRsZVBhZ2U4MzpUYXJnZXRbMF0gOiBJTlFVSVJZ
IFVzaW5nIEZha2UgUGFnZTgzIERhdGEKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTlZCRHxfX0hhbmRsZVBhZ2U4MDpUYXJnZXRbMF0gOiBJTlFVSVJZIFVzaW5nIEZha2Ug
UGFnZTgwIERhdGEKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkRJU0t8UGRv
Q3JlYXRlOkZGRkZGQTgwMDI2QzlENDAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTlZCRHxQZG9TZXREZXZpY2VPYmplY3Q6VGFyZ2V0WzBdIDogU2V0dGluZyBEZXZpY2VP
YmplY3QgPSAweEZGRkZGQTgwMDI2Qzg4NTAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTlZCRHxGZG9NYXBEZXZpY2VPYmplY3RUb1BkbzoweEZGRkZGQTgwMDI2Qzg4NTAg
LS0+IFRhcmdldCAwICgwMDAwMDApCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBY
RU5WQkR8UGRvRGlzcGF0Y2hQbnA6VGFyZ2V0WzBdIDogMTM6UVVFUllfSUQgLT4gYzAwMDAw
YmIKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxQZG9EaXNwYXRjaFBu
cDpUYXJnZXRbMF0gOiAxNTpRVUVSWV9CVVNfSU5GT1JNQVRJT04gLT4gYzAwMDAwYmIKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxQZG9EaXNwYXRjaFBucDpUYXJn
ZXRbMF0gOiAxOTpVTktOT1dOIC0+IGMwMDAwMGJiCg==
--------------020307020406050409000908
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--------------020307020406050409000908--


From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 14:17:05 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 14:17:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHCNd-00006e-Aa; Fri, 30 Jan 2015 14:17:05 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YHCNb-00006Z-JS
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 14:17:03 +0000
Received: from [85.158.137.68] by server-15.bemta-3.messagelabs.com id
	59/5F-02884-E529BC45; Fri, 30 Jan 2015 14:17:02 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-10.tower-31.messagelabs.com!1422627421!10858228!1
X-Originating-IP: [74.125.82.181]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18970 invoked from network); 30 Jan 2015 14:17:01 -0000
Received: from mail-we0-f181.google.com (HELO mail-we0-f181.google.com)
	(74.125.82.181)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 14:17:01 -0000
Received: by mail-we0-f181.google.com with SMTP id k48so27409641wev.12
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 06:17:01 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:subject:references:in-reply-to:content-type;
	bh=KXGXNSGMJlkpwONCU7Oq9t+O39+hJC1/6KD8hHZsoJE=;
	b=BZtjKb2yC9KfvEGNh3xrzrdbDqFSF6G77LZU0n9qQ+IxKwne8xJ9w+52j6OK3T4tmD
	cSEk8Kc/fbzvz/nfzNJPF1m1PhppTc6IIX/XGel+joFoERuxg+AK9sI5anUmKfYejuP9
	P3V8P8cldydYijffbwpEc/18AlRgHW2Y5b7nUYuRAHNYm/RvRE0UxvrQfrZ8w63JYLVm
	pfHRKWOJVqmKdzAS3jvKi0ujaHOetr+JBoTr9BEGOky5Q4AlL2R+qSrM9a1VAuZEmLyZ
	PXFCqLceva9dF1Htqf4Rfz+PZ2SjswSAyANcDU2AzIluJMIOChuJvQRvFtp6eCOHvWVZ
	pq0w==
X-Gm-Message-State: ALoCoQkbMWSFwEdDGSVH7okHMgu2IEsgGNyEJGgHfX8atSe4WQfWIFKoWGgviMH5Dih0w7aATaDv
X-Received: by 10.194.2.75 with SMTP id 11mr12847237wjs.78.1422627421008;
	Fri, 30 Jan 2015 06:17:01 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id n3sm15108541wja.36.2015.01.30.06.16.59
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 06:17:00 -0800 (PST)
Message-ID: <54CB9266.4060800@m2r.biz>
Date: Fri, 30 Jan 2015 15:17:10 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Paul Durrant <Paul.Durrant@citrix.com>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
Content-Type: multipart/mixed; boundary="------------020307020406050409000908"
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------020307020406050409000908
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Il 28/01/2015 21:14, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>> Sent: 28 January 2015 09:19
>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
>>>> -----Original Message-----
>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>> Sent: 22 January 2015 10:10
>>>> To: win-pv-devel@lists.xenproject.org
>>>> Cc: Paul Durrant
>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>> after
>>>> save/restore
>>>>
>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>>>> Hi, I installed winpv driver build of 15 january on Windows server
>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>>>> xl save/restore didn't show any errors, trying to connected with rdp I
>>>>> was unable and with spice I saw screen with data and time (time update
>>>>> after restore) but doing ctrl+alt+canc it changed something in screen
>>>>> only after 5-10 minutes and still without showing login field.
>>>>>
>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
>>>>> xen build.
>>>>> DomU xl cfg:
>>>>>> name='w2012r2-01'
>>>>>> builder="hvm"
>>>>>> memory=8192
>>>>>> vcpus=4
>>>>>> acpi_s3=0
>>>>>> acpi_s4=0
>>>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>>>> 18:2a:f2,script=vif-openvswitch']
>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>>>> disk=['/mnt/vm/disks/w2012r2-
>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>>>> boot='dc'
>>>>>> device_model_version="qemu-xen"
>>>>>> viridian=1
>>>>>> vnc=0
>>>>>> keymap="it"
>>>>>> on_crash="destroy"
>>>>>> vga="stdvga"
>>>>>> spice=1
>>>>>> spicehost='0.0.0.0'
>>>>>> spiceport=6000
>>>>>> spicepasswd="test"
>>>>>> spicevdagent=1
>>>>>> spice_clipboard_sharing=0
>>>>>> spiceusbredirection=4
>>>>>> soundhw="hda"
>>>>>> localtime=1
>>>>> I added in attachments qemu logs (before and after save/restore) with
>>>>> xen trace enabled.
>>>>>
>>>>> If you need more informations tests tell me and I'll post them.
>>>>>
>>>>> I have also another small question:
>>>>> is ms_vm_genid needed for this case? for what I understand is only for
>>>>> active directory controller and this it isn't.
>>>>>
>>>>> Thanks for any reply and sorry for my bad english.
>>>>>
>>>>>
>>>> I also tried to uninstall the pv drivers from control panel but windows
>>>> crash, minidump in attachments.
>>> I'm re-working the FIFO event channel code at the moment so I'll run a
>> quick suspend/resume test when I'm done.
>>>     Paul
>> Thanks for your reply.
>> I did other tests and seems that save/restore problems with windows 2012
>> was for missed ms_vm_genid="generate" even if clean for now (no active
>> directory or other server services enabled nor domain member).
>> Remain windows crash on winpv drivers uninstall with minidump refer to
>> xenvif and other important and occasional problem:
>> network not working after some time and after 2-3 minutes all windows
>> become unusable.
>> I hope these problem will be solved by new network pv driver patches,
>> I'll test them ASAP when build with them will be ready.
>>
> I pushed my big series into xenbus today. You should definitely take that; it fixes several bugs in FIFO event channels and a couple of other things.
>
>    Paul

Thanks.
I tested now new pv drivers build on a windows 7 64 bit domU.
On update I saw a strange thing, xenvif and xennet even if updated 
showed message "Ready to use" instead "Driver updated".
After update of all drivers components I rebooted windows but it didn't 
start, stay blocked on windows logo, seems there is a critical 
regression in latest pv drivers build :(
DomU's qemu log with xen-platform trace in attachment.

Thanks for any reply and sorry for my bad english.

--------------020307020406050409000908
Content-Type: text/plain; charset=windows-1252;
 name="qemu-dm-W7.log"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="qemu-dm-W7.log"

bWFpbl9jaGFubmVsX2xpbms6IGFkZCBtYWluIGNoYW5uZWwgY2xpZW50Cm1haW5fY2hhbm5l
bF9oYW5kbGVfcGFyc2VkOiBuZXQgdGVzdDogbGF0ZW5jeSA1OS4yOTAwMDAgbXMsIGJpdHJh
dGUgMzAzODU3NTY2NyBicHMgKDI4OTcuODExNTcyIE1icHMpCmlucHV0c19jb25uZWN0OiBp
bnB1dHMgY2hhbm5lbCBjbGllbnQgY3JlYXRlCnJlZF9kaXNwYXRjaGVyX3NldF9jdXJzb3Jf
cGVlcjogCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU58RGxsSW5pdGlhbGl6
ZTogWEVOIDguMC4wICgyOCkgKDMwLjAxLjIwMTUpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBs
YXRmb3JtOiBYRU58QWNwaUZpbmRSc2RwOiAweDAwMDAwMDAwMDAwRjBEOTAKeGVuX3BsYXRm
b3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1HZXRTdGFydE9wdGlvbnM6ICBURVNU
U0lHTklORyAgTk9FWEVDVVRFPU9QVElOCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3Jt
OiBYRU58U3lzdGVtR2V0VmVyc2lvbkluZm9ybWF0aW9uOiBLRVJORUw6IDYuMSAoQlVJTEQg
NzYwMSkgUExBVEZPUk0gV0lOMzJfTlQgKHg2NCkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxh
dGZvcm06IFhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IFNQOiAxLjAgKCkKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3Jt
YXRpb246IFNVSVRFUzoKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0
ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IC0gVEVSTUlOQUwKeGVuX3BsYXRmb3JtX2xvZyB4
ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IC0gU0lOR0xF
VVNFUlRTCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU58U3lzdGVtR2V0VmVy
c2lvbkluZm9ybWF0aW9uOiBUWVBFOiBXT1JLU1RBVElPTgp4ZW5fcGxhdGZvcm1fbG9nIHhl
biBwbGF0Zm9ybTogWEVOfFN5c3RlbUdldE1lbW9yeUluZm9ybWF0aW9uOiBSQU5HRVswXSAw
MDAwMDAwMC4wMDAwMTAwMCAtIDAwMDAwMDAwLjAwMDllZmZmCnhlbl9wbGF0Zm9ybV9sb2cg
eGVuIHBsYXRmb3JtOiBYRU58U3lzdGVtR2V0TWVtb3J5SW5mb3JtYXRpb246IFJBTkdFWzFd
IDAwMDAwMDAwLjAwMTAwMDAwIC0gMDAwMDAwMDAuN2VmZmVmZmYKeGVuX3BsYXRmb3JtX2xv
ZyB4ZW4gcGxhdGZvcm06IFhFTnxBY3BpR2V0WHNkdDogMHgwMDAwMDAwMEZDMDBBMEUwCnhl
bl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU58U3lzdGVtQ3B1SW5mb3JtYXRpb246
ID09PT0+ICgwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOfFN5c3RlbUNw
dUluZm9ybWF0aW9uOiBNYW51ZmFjdHVyZXI6IEdlbnVpbmVJbnRlbAp4ZW5fcGxhdGZvcm1f
bG9nIHhlbiBwbGF0Zm9ybTogWEVOfFN5c3RlbUNwdUluZm9ybWF0aW9uOiBBUElDIElEOiAw
MAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOfFN5c3RlbUNwdUluZm9ybWF0
aW9uOiBQUk9DRVNTT1IgSUQ6IDAwCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBY
RU58U3lzdGVtQ3B1SW5mb3JtYXRpb246IDw9PT09ICgwKQp4ZW5fcGxhdGZvcm1fbG9nIHhl
biBwbGF0Zm9ybTogWEVOfFN5c3RlbUNwdUluZm9ybWF0aW9uOiA9PT09PiAoMSkKeGVuX3Bs
YXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1DcHVJbmZvcm1hdGlvbjogTWFu
dWZhY3R1cmVyOiBHZW51aW5lSW50ZWwKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTnxTeXN0ZW1DcHVJbmZvcm1hdGlvbjogQVBJQyBJRDogMDIKeGVuX3BsYXRmb3JtX2xv
ZyB4ZW4gcGxhdGZvcm06IFhFTnxTeXN0ZW1DcHVJbmZvcm1hdGlvbjogUFJPQ0VTU09SIElE
OiAwMQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOfFN5c3RlbUNwdUluZm9y
bWF0aW9uOiA8PT09PSAoMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTjog
SFlQRVJDQUxMIFBBR0UgMCBAIDAwMDAwMDAwLjAzNmE4MDAwCnhlbl9wbGF0Zm9ybV9sb2cg
eGVuIHBsYXRmb3JtOiBYRU46IDQuNS4wCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3Jt
OiBYRU5GSUxUfERyaXZlckVudHJ5OiBYRU5GSUxUIDguMC4wICgyOCkgKDMwLjAxLjIwMTUp
Cnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5GSUxUfERyaXZlclNldEFjdGl2
ZURldmljZUluc3RhbmNlOiBQQ0lcVkVOXzU4NTMmREVWXzAwMDEmU1VCU1lTXzAwMDE1ODUz
JlJFVl8wMS8xMAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxVbnBs
dWdDaGVja0ZvclBWRGlza3M6IFBSRVNFTlQKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkZJTFR8VW5wbHVnQ2hlY2tGb3JQVk5pY3M6IFBSRVNFTlQKeGVuX3BsYXRmb3Jt
X2xvZyB4ZW4gcGxhdGZvcm06IFVOUExVRzogUFJFLUFNQkxFIChEUklWRVJTIE5PVCBCTEFD
S0xJU1RFRCkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFVOUExVRzogRElTS1MK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFVOUExVRzogTklDUwp4ZW5fcGxhdGZv
cm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxGZG9DcmVhdGU6IEZGRkZGQTgwMDE5QUEw
NDAgKEFDUElcUE5QMEEwM1wwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVO
RklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDE5QUVBQzAgKFBDSVxWRU5fODA4NiZERVZfMTIz
NyZTVUJTWVNfMTEwMDFBRjQmUkVWXzAyXDAwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0
Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDE5QjE1RDAgKFBDSVxWRU5fODA4
NiZERVZfNzAwMCZTVUJTWVNfMTEwMDFBRjQmUkVWXzAwXDA4KQp4ZW5fcGxhdGZvcm1fbG9n
IHhlbiBwbGF0Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDE5QjI1RDAgKFBD
SVxWRU5fODA4NiZERVZfNzAxMCZTVUJTWVNfMTEwMDFBRjQmUkVWXzAwXDA5KQp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDE5
QjM1RDAgKFBDSVxWRU5fNTg1MyZERVZfMDAwMSZTVUJTWVNfMDAwMTU4NTMmUkVWXzAxXDEw
KQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZG
RkZGQTgwMDE5QjQ1RDAgKFBDSVxWRU5fODA4NiZERVZfMjY2OCZTVUJTWVNfMTEwMDFBRjQm
UkVWXzAxXDE4KQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORklMVHxQZG9D
cmVhdGU6IEZGRkZGQTgwMDE5QjU1RDAgKFBDSVxWRU5fMUFGNCZERVZfMTAwMyZTVUJTWVNf
MDAwMzFBRjQmUkVWXzAwXDIwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVO
RklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDI2QTMwNDAgKFBDSVxWRU5fMTIzNCZERVZfMTEx
MSZTVUJTWVNfMTEwMDFBRjQmUkVWXzAwXDI4KQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0
Zm9ybTogWEVORklMVHxQZG9DcmVhdGU6IEZGRkZGQTgwMDI2QTQwNDAgKEFDUElcUE5QMDEw
M1wwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERyaXZlckVudHJ5
OiBYRU5CVVMgOC4wLjAgKDI4KSAoMzAuMDEuMjAxNSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4g
cGxhdGZvcm06IFhFTkZJTFR8UGRvUXVlcnlJbnRlcmZhY2U6IFBDSVxWRU5fNTg1MyZERVZf
MDAwMSZTVUJTWVNfMDAwMTU4NTMmUkVWXzAxXDEwOiBVTlBMVUdfSU5URVJGQUNFIChWRVJT
SU9OIDEpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RmRvQ3JlYXRl
OiBGRkZGRkE4MDAxODY3NkEwIChYUzAwMDEgWEVOQlVTKSBbQUNUSVZFXQp4ZW5fcGxhdGZv
cm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfEZkb0Nvbm5lY3RJbnRlcnJ1cHQ6IEZGRkZG
QTgwMDE4NkE5Rjg6IFNoYXJlZCBMZXZlbFNlbnNpdGl2ZSBDUFUgMCBWRUNUT1IgNTEKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xGZG9Db25uZWN0SW50ZXJydXB0
OiBGRkZGRkE4MDAxODZDRjU4OiBEZXZpY2VFeGNsdXNpdmUgTGF0Y2hlZCBDUFUgMCBWRUNU
T1IgYjAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xGZG9Db25uZWN0
SW50ZXJydXB0OiBGRkZGRkE4MDAxODZDRDY4OiBEZXZpY2VFeGNsdXNpdmUgTGF0Y2hlZCBD
UFUgMSBWRUNUT1IgYjAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xG
ZG9TY2FuOiA9PT09Pgp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfEZk
b0NyZWF0ZUlvU3BhY2U6IDAwMDAwMDAwLmYwMDAwMDAwIC0gMDAwMDAwMDAuZjBmZmZmZmYK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xGZG9TdXNwZW5kOiA9PT09
Pgp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogU0hBUkVEX0lORk86IE1BUCBYRU5N
QVBTUEFDRV9zaGFyZWRfaW5mbyBAIDAwMDAwMDAwLmYwMDAwMDAwCnhlbl9wbGF0Zm9ybV9s
b2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RmRvQmFsbG9vbjogPT09PT4KeGVuX3BsYXRmb3Jt
X2xvZyB4ZW4gcGxhdGZvcm06IEVWVENITl9GSUZPOiBDT05UUk9MQkxPQ0tbMF0gQCAwMDAw
MDAwMC4zYzUzNjAwMAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogRVZUQ0hOX0ZJ
Rk86IENPTlRST0xCTE9DS1sxXSBAIDAwMDAwMDAwLjNjZGI3MDAwCnhlbl9wbGF0Zm9ybV9s
b2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RXZ0Y2huQWJpQWNxdWlyZTogRklGTwp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfEV2dGNobkludGVycnVwdEVuYWJsZTog
Q1BVIDAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xFdnRjaG5JbnRl
cnJ1cHRFbmFibGU6IENQVSAxCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBTVE9S
RTogUEFHRSBAIDAwMDAwMDAwLmZlZmZjMDAwCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRm
b3JtOiBTVE9SRTogRVZUQ0hOIDEKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IEVW
VENITl9GSUZPOiBFVkVOVEFSUkFZWzBdIEAgMDAwMDAwMDAuM2JlYjgwMDAKeGVuX3BsYXRm
b3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xFdnRjaG5GaWZvRXhwYW5kOiBhZGRlZCBw
b3J0cyBbMDAwMDAwMDAgLSAwMDAwMDNmZl0KeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwMSkK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwMikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwMykK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwNCkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwNSkK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkRDNzAgKFZCRCAwMDAwMDAwNikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwMSkK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwMikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwMykK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwNCkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwNSkK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZG
QTgwMDE4NkU1NzAgKFZJRiAwMDAwMDAwNikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDI2NTRENDAgKElGQUNFIDAwMDAwMDAx
KQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfFBkb0NyZWF0ZTogRkZG
RkZBODAwMjY1NEQ0MCAoSUZBQ0UgMDAwMDAwMDIpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBs
YXRmb3JtOiBYRU5CVVN8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyNjU0RDQwIChJRkFDRSAwMDAw
MDAwMykKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9DcmVhdGU6
IEZGRkZGQTgwMDI2NTRENDAgKElGQUNFIDAwMDAwMDA0KQp4ZW5fcGxhdGZvcm1fbG9nIHhl
biBwbGF0Zm9ybTogWEVOQlVTfFBkb0NyZWF0ZTogRkZGRkZBODAwMjY1NEQ0MCAoSUZBQ0Ug
MDAwMDAwMDUpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8UGRvQ3Jl
YXRlOiBGRkZGRkE4MDAyNjU0RDQwIChJRkFDRSAwMDAwMDAwNikKeGVuX3BsYXRmb3JtX2xv
ZyB4ZW4gcGxhdGZvcm06IFhFTkZJTFR8RmRvQ3JlYXRlOiBGRkZGRkE4MDAyNjZEQUMwIChQ
Q0lJREVcSURFQ2hhbm5lbFwwKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVO
RklMVHxGZG9DcmVhdGU6IEZGRkZGQTgwMDI2NzFBQzAgKFBDSUlERVxJREVDaGFubmVsXDEp
Cnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5GSUxUfFBkb0NyZWF0ZTogRkZG
RkZBODAwMjY3QjA0MCAoSURFXENkUm9tUUVNVV9RRU1VX0RWRC1ST01fX19fX19fX19fX19f
X19fX19fX19fXzIuMC5fX19fXDAuMS4wKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9y
bTogWEVOVkJEfERyaXZlckVudHJ5OjguMC4wLjEwICgyMC8xLzIwMTUpCnhlbl9wbGF0Zm9y
bV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19Ecml2ZXJQYXJzZVBhcmFtZXRlcktleTpE
cml2ZXJQYXJhbWV0ZXJzOiAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkRJ
U0t8RHJpdmVyRW50cnk6WEVORElTSyA4LjAuMCAoMTApICgyMC4wMS4yMDE1KQp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVORElTS3xGZG9DcmVhdGU6RkZGRkZBODAwMjZD
MkRFMAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfERpc3BhdGNoUG5w
OkRldmljZU9iamVjdCAweEZGRkZGQTgwMDI2QzUwNjAgaXMgbm90IEZETyAoMHgwMDAwMDAw
MDAwMDAwMDAwKSBvciBhIFBETwp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVO
VkJEfERpc3BhdGNoUG5wOkRldmljZU9iamVjdCAweEZGRkZGQTgwMDI2QzUwNjAgaXMgbm90
IEZETyAoMHgwMDAwMDAwMDAwMDAwMDAwKSBvciBhIFBETwp4ZW5fcGxhdGZvcm1fbG9nIHhl
biBwbGF0Zm9ybTogWEVOVkJEfERpc3BhdGNoUG5wOkRldmljZU9iamVjdCAweEZGRkZGQTgw
MDI2QzUwNjAgaXMgbm90IEZETyAoMHgwMDAwMDAwMDAwMDAwMDAwKSBvciBhIFBETwp4ZW5f
cGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfERpc3BhdGNoUG5wOkRldmljZU9i
amVjdCAweEZGRkZGQTgwMDI2QzUwNjAgaXMgbm90IEZETyAoMHgwMDAwMDAwMDAwMDAwMDAw
KSBvciBhIFBETwp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfERpc3Bh
dGNoUG5wOkRldmljZU9iamVjdCAweEZGRkZGQTgwMDI2QzUwNjAgaXMgbm90IEZETyAoMHgw
MDAwMDAwMDAwMDAwMDAwKSBvciBhIFBETwp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9y
bTogWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWQkQ6IEJVU19JTlRFUkZBQ0UgKFZFUlNJ
T04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxEaXNwYXRjaFBu
cDpEZXZpY2VPYmplY3QgMHhGRkZGRkE4MDAyNkM1MDYwIGlzIG5vdCBGRE8gKDB4MDAwMDAw
MDAwMDAwMDAwMCkgb3IgYSBQRE8KeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhF
TkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBCVVNfSU5URVJGQUNFIChWRVJTSU9OIDEp
Cnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RG1hRHVtcERldmljZURl
c2NyaXB0aW9uOiBWZXJzaW9uID0gMAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTog
WEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogTWFzdGVyID0gVFJVRQp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlv
bjogU2NhdHRlckdhdGhlciA9IFRSVUUKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IERlbWFuZE1vZGUgPSBGQUxTRQp4
ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNj
cmlwdGlvbjogQXV0b0luaXRpYWxpemUgPSBGQUxTRQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBw
bGF0Zm9ybTogWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hMzJCaXRBZGRy
ZXNzZXMgPSBUUlVFCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RG1h
RHVtcERldmljZURlc2NyaXB0aW9uOiBJZ25vcmVDb3VudCA9IEZBTFNFCnhlbl9wbGF0Zm9y
bV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBE
bWE2NEJpdEFkZHJlc3NlcyA9IFRSVUUKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEJ1c051bWJlciA9IDAwMDAwMDAw
Cnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8RG1hRHVtcERldmljZURl
c2NyaXB0aW9uOiBEbWFDaGFubmVsID0gZmZmZmZmZmYKeGVuX3BsYXRmb3JtX2xvZyB4ZW4g
cGxhdGZvcm06IFhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEludGVyZmFjZVR5
cGUgPSBJbnRlcm5hbAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERt
YUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hV2lkdGggPSA4Qml0cwp4ZW5fcGxhdGZvcm1f
bG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1h
U3BlZWQgPSBDb21wYXRpYmxlCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5C
VVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBNYXhpbXVtTGVuZ3RoID0gMDAwYjAwMDAK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xEbWFEdW1wRGV2aWNlRGVz
Y3JpcHRpb246IERtYVBvcnQgPSBmZmZmZmZmZgp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0
Zm9ybTogWEVOQlVTfERtYUdldEFkYXB0ZXI6IG5vIGludGVyY2VwdGlvbgp4ZW5fcGxhdGZv
cm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWQkQ6IFNU
T1JFX0lOVEVSRkFDRSAoVkVSU0lPTiAxKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9y
bTogWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWQkQ6IEVWVENITl9JTlRFUkZBQ0UgKFZF
UlNJT04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9RdWVy
eUludGVyZmFjZTogVkJEOiBHTlRUQUJfSU5URVJGQUNFIChWRVJTSU9OIDEpCnhlbl9wbGF0
Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZCRDog
U1VTUEVORF9JTlRFUkZBQ0UgKFZFUlNJT04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxh
dGZvcm06IFhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBERUJVR19JTlRFUkZBQ0Ug
KFZFUlNJT04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkJVU3xQZG9R
dWVyeUludGVyZmFjZTogVkJEOiBFTVVMQVRFRF9JTlRFUkZBQ0UgKFZFUlNJT04gMSkKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkZJTFR8UGRvUXVlcnlJbnRlcmZhY2U6
IFBDSVxWRU5fNTg1MyZERVZfMDAwMSZTVUJTWVNfMDAwMTU4NTMmUkVWXzAxXDEwOiBFTVVM
QVRFRF9JTlRFUkZBQ0UgKFZFUlNJT04gMSkKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTlZCRHxfX0Zkb1NldERldmljZVBvd2VyU3RhdGU6UE9XRVIgRDMgdG8gRDAKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxfX0Zkb0QzVG9EMDpEMy0+RDAK
eGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxfX0Zkb0lzUGRvVW5wbHVn
Z2VkOlRhcmdldFswXSA6ICh2YmQvNzY4KSBFbXVsYXRlZCBOT1RfUFJFU0VOVAp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfFBkb0NyZWF0ZTpUYXJnZXRbMF0gOiBD
cmVhdGluZyAoUFYpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8UGRv
U2V0RGV2aWNlUG93ZXJTdGF0ZTpUYXJnZXRbMF0gOiBQT1dFUiBEMyB0byBEMAp4ZW5fcGxh
dGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfFBkb0QzVG9EMDpUYXJnZXRbMF0gOiBE
My0+RDAgKFBWKQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfF9fRnJv
bnRlbmRTZXRTdGF0ZTpUYXJnZXRbMF0gOiBJTklUSUFMSVpFRCAtLS0tPiBFTkFCTEVECnhl
bl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19Gcm9udGVuZFNldFN0YXRl
OlRhcmdldFswXSA6IGluIHN0YXRlIENMT1NFRAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0
Zm9ybTogWEVOVkJEfEZyb250ZW5kV3JpdGVVc2FnZTpUYXJnZXRbMF0gOiBOT1RfRFVNUCBO
T1RfSElCRVIgTk9UX1BBR0UKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZC
RHxQZG9SZWFkSW5xdWlyeURhdGE6VGFyZ2V0WzBdIDogRmFpbGVkIHRvIGdldCBQYWdlODAg
ZGF0YQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfFBkb1JlYWRJbnF1
aXJ5RGF0YTpUYXJnZXRbMF0gOiBGYWlsZWQgdG8gZ2V0IFBhZ2U4MyBkYXRhCnhlbl9wbGF0
Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8UGRvVXBkYXRlSW5xdWlyeURhdGE6VGFy
Z2V0WzBdIDogVkRJLVVVSUQgPSB7MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAw
MDAwfQp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfEZyb250ZW5kUHJl
cGFyZTpUYXJnZXRbMF0gOiBCYWNrZW5kSWQgMCAoL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQv
cWRpc2svNC83NjgpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8RnJv
bnRlbmRSZWFkRmVhdHVyZXM6VGFyZ2V0WzBdIDogRmVhdHVyZXM6IFBFUlNJU1RFTlQgCnhl
bl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19Gcm9udGVuZFNldFN0YXRl
OlRhcmdldFswXSA6IGluIHN0YXRlIFBSRVBBUkVECnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBs
YXRmb3JtOiBYRU5CVVN8UmFuZ2VTZXRQb3A6IGZhaWwxIChjMDAwMDA5YSkKeGVuX3BsYXRm
b3JtX2xvZyB4ZW4gcGxhdGZvcm06IEdOVFRBQjogTUFQIFhFTk1BUFNQQUNFX2dyYW50X3Rh
YmxlWzBdIEAgMDAwMDAwMDAuZjAwMDEwMDAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTkJVU3xHbnR0YWJFeHBhbmQ6IGFkZGVkIHJlZmVyZW5jZXMgWzAwMDAwMDIwIC0g
MDAwMDAxZmZdCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19SZWFk
RGlza0luZm86VGFyZ2V0WzBdIDogMTAyNDAwMDAwIHNlY3RvcnMgb2YgNTEyIGJ5dGVzICg1
MTIpCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBYRU5WQkR8X19SZWFkRGlza0lu
Zm86VGFyZ2V0WzBdIDogNDggR0IgKDAwMDAwMDAwKSAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4g
cGxhdGZvcm06IFhFTlZCRHxGcm9udGVuZFJlYWREaXNrSW5mbzpUYXJnZXRbMF0gOiBGZWF0
dXJlczogRkxVU0ggRElTQ0FSRCAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhF
TlZCRHxGcm9udGVuZFJlYWREaXNrSW5mbzpUYXJnZXRbMF0gOiBESVNDQVJEIDAvMAp4ZW5f
cGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfF9fRnJvbnRlbmRTZXRTdGF0ZTpU
YXJnZXRbMF0gOiBpbiBzdGF0ZSBDT05ORUNURUQKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxh
dGZvcm06IFhFTlZCRHxfX0Zyb250ZW5kU2V0U3RhdGU6VGFyZ2V0WzBdIDogaW4gc3RhdGUg
RU5BQkxFRAp4ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfFBkb0NyZWF0
ZTpUYXJnZXRbMF0gOiBDcmVhdGVkIChQVikKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTlZCRHxGZG9Mb2dUYXJnZXRzOlNjYW5UaHJlYWQgPT09Pgp4ZW5fcGxhdGZvcm1f
bG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfEZkb0xvZ1RhcmdldHM6U2NhblRocmVhZCA6IFRh
cmdldFswXSA9IDB4RkZGRkZBODAwMjY3ODZFMCAocHJlc2VudCkKeGVuX3BsYXRmb3JtX2xv
ZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxGZG9Mb2dUYXJnZXRzOlNjYW5UaHJlYWQgPD09PQp4
ZW5fcGxhdGZvcm1fbG9nIHhlbiBwbGF0Zm9ybTogWEVOVkJEfEZkb0Rpc3BhdGNoUG5wOjE0
OlFVRVJZX1BOUF9ERVZJQ0VfU1RBVEUgLT4gYzAwMDAwYmIKeGVuX3BsYXRmb3JtX2xvZyB4
ZW4gcGxhdGZvcm06IFhFTlZCRHxfX0hhbmRsZVBhZ2U4MzpUYXJnZXRbMF0gOiBJTlFVSVJZ
IFVzaW5nIEZha2UgUGFnZTgzIERhdGEKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTlZCRHxfX0hhbmRsZVBhZ2U4MDpUYXJnZXRbMF0gOiBJTlFVSVJZIFVzaW5nIEZha2Ug
UGFnZTgwIERhdGEKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTkRJU0t8UGRv
Q3JlYXRlOkZGRkZGQTgwMDI2QzlENDAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06
IFhFTlZCRHxQZG9TZXREZXZpY2VPYmplY3Q6VGFyZ2V0WzBdIDogU2V0dGluZyBEZXZpY2VP
YmplY3QgPSAweEZGRkZGQTgwMDI2Qzg4NTAKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZv
cm06IFhFTlZCRHxGZG9NYXBEZXZpY2VPYmplY3RUb1BkbzoweEZGRkZGQTgwMDI2Qzg4NTAg
LS0+IFRhcmdldCAwICgwMDAwMDApCnhlbl9wbGF0Zm9ybV9sb2cgeGVuIHBsYXRmb3JtOiBY
RU5WQkR8UGRvRGlzcGF0Y2hQbnA6VGFyZ2V0WzBdIDogMTM6UVVFUllfSUQgLT4gYzAwMDAw
YmIKeGVuX3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxQZG9EaXNwYXRjaFBu
cDpUYXJnZXRbMF0gOiAxNTpRVUVSWV9CVVNfSU5GT1JNQVRJT04gLT4gYzAwMDAwYmIKeGVu
X3BsYXRmb3JtX2xvZyB4ZW4gcGxhdGZvcm06IFhFTlZCRHxQZG9EaXNwYXRjaFBucDpUYXJn
ZXRbMF0gOiAxOTpVTktOT1dOIC0+IGMwMDAwMGJiCg==
--------------020307020406050409000908
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--------------020307020406050409000908--


From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 14:32:18 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 14:32:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHCcM-0001xc-5x; Fri, 30 Jan 2015 14:32:18 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YHCcK-0001xS-WF
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 14:32:17 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	A9/9C-02745-0F59BC45; Fri, 30 Jan 2015 14:32:16 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1422628335!10895309!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD,received_headers: 
	No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10030 invoked from network); 30 Jan 2015 14:32:15 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 14:32:15 -0000
X-IronPort-AV: E=Sophos;i="5.09,491,1418083200"; d="scan'208";a="30437136"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQPJd7orz5wUmi2kK/BwVykZg9spzYuR5g
Date: Fri, 30 Jan 2015 14:31:59 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
	<54CB9266.4060800@m2r.biz>
In-Reply-To: <54CB9266.4060800@m2r.biz>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
	after	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> Sent: 30 January 2015 14:17
> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 28/01/2015 21:14, Paul Durrant ha scritto:
> >> -----Original Message-----
> >> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> >> Sent: 28 January 2015 09:19
> >> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> after
> >> save/restore
> >>
> >> Il 22/01/2015 16:00, Paul Durrant ha scritto:
> >>>> -----Original Message-----
> >>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
> devel-
> >>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>> Sent: 22 January 2015 10:10
> >>>> To: win-pv-devel@lists.xenproject.org
> >>>> Cc: Paul Durrant
> >>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> >> after
> >>>> save/restore
> >>>>
> >>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> >>>>> Hi, I installed winpv driver build of 15 january on Windows server
> >>>>> 2012 R2 standard 64 bit and have problem after save/restore.
> >>>>> xl save/restore didn't show any errors, trying to connected with rdp I
> >>>>> was unable and with spice I saw screen with data and time (time
> update
> >>>>> after restore) but doing ctrl+alt+canc it changed something in screen
> >>>>> only after 5-10 minutes and still without showing login field.
> >>>>>
> >>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
> >>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
> >>>>> xen build.
> >>>>> DomU xl cfg:
> >>>>>> name='w2012r2-01'
> >>>>>> builder="hvm"
> >>>>>> memory=8192
> >>>>>> vcpus=4
> >>>>>> acpi_s3=0
> >>>>>> acpi_s4=0
> >>>>>>
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> >>>> 18:2a:f2,script=vif-openvswitch']
> >>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >>>>>> disk=['/mnt/vm/disks/w2012r2-
> >>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>>>>> boot='dc'
> >>>>>> device_model_version="qemu-xen"
> >>>>>> viridian=1
> >>>>>> vnc=0
> >>>>>> keymap="it"
> >>>>>> on_crash="destroy"
> >>>>>> vga="stdvga"
> >>>>>> spice=1
> >>>>>> spicehost='0.0.0.0'
> >>>>>> spiceport=6000
> >>>>>> spicepasswd="test"
> >>>>>> spicevdagent=1
> >>>>>> spice_clipboard_sharing=0
> >>>>>> spiceusbredirection=4
> >>>>>> soundhw="hda"
> >>>>>> localtime=1
> >>>>> I added in attachments qemu logs (before and after save/restore)
> with
> >>>>> xen trace enabled.
> >>>>>
> >>>>> If you need more informations tests tell me and I'll post them.
> >>>>>
> >>>>> I have also another small question:
> >>>>> is ms_vm_genid needed for this case? for what I understand is only
> for
> >>>>> active directory controller and this it isn't.
> >>>>>
> >>>>> Thanks for any reply and sorry for my bad english.
> >>>>>
> >>>>>
> >>>> I also tried to uninstall the pv drivers from control panel but windows
> >>>> crash, minidump in attachments.
> >>> I'm re-working the FIFO event channel code at the moment so I'll run a
> >> quick suspend/resume test when I'm done.
> >>>     Paul
> >> Thanks for your reply.
> >> I did other tests and seems that save/restore problems with windows
> 2012
> >> was for missed ms_vm_genid="generate" even if clean for now (no active
> >> directory or other server services enabled nor domain member).
> >> Remain windows crash on winpv drivers uninstall with minidump refer to
> >> xenvif and other important and occasional problem:
> >> network not working after some time and after 2-3 minutes all windows
> >> become unusable.
> >> I hope these problem will be solved by new network pv driver patches,
> >> I'll test them ASAP when build with them will be ready.
> >>
> > I pushed my big series into xenbus today. You should definitely take that; it
> fixes several bugs in FIFO event channels and a couple of other things.
> >
> >    Paul
> 
> Thanks.
> I tested now new pv drivers build on a windows 7 64 bit domU.
> On update I saw a strange thing, xenvif and xennet even if updated
> showed message "Ready to use" instead "Driver updated".
> After update of all drivers components I rebooted windows but it didn't
> start, stay blocked on windows logo, seems there is a critical
> regression in latest pv drivers build :(
> DomU's qemu log with xen-platform trace in attachment.
> 

I don't see either XENVIF or XENNET loading at all so perhaps the problem is with PV storage and Windows is unable to load the drivers? Does this happen if you fresh-install a VM? I tested on Win7 64 and didn't see any problem, but it was a fresh VM in my case.

  Paul

> Thanks for any reply and sorry for my bad english.
_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 14:32:18 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 14:32:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHCcM-0001xc-5x; Fri, 30 Jan 2015 14:32:18 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YHCcK-0001xS-WF
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 14:32:17 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	A9/9C-02745-0F59BC45; Fri, 30 Jan 2015 14:32:16 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1422628335!10895309!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD,received_headers: 
	No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10030 invoked from network); 30 Jan 2015 14:32:15 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 14:32:15 -0000
X-IronPort-AV: E=Sophos;i="5.09,491,1418083200"; d="scan'208";a="30437136"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQPJd7orz5wUmi2kK/BwVykZg9spzYuR5g
Date: Fri, 30 Jan 2015 14:31:59 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
	<54CB9266.4060800@m2r.biz>
In-Reply-To: <54CB9266.4060800@m2r.biz>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
	after	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> Sent: 30 January 2015 14:17
> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 28/01/2015 21:14, Paul Durrant ha scritto:
> >> -----Original Message-----
> >> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> >> Sent: 28 January 2015 09:19
> >> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> after
> >> save/restore
> >>
> >> Il 22/01/2015 16:00, Paul Durrant ha scritto:
> >>>> -----Original Message-----
> >>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
> devel-
> >>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>> Sent: 22 January 2015 10:10
> >>>> To: win-pv-devel@lists.xenproject.org
> >>>> Cc: Paul Durrant
> >>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> >> after
> >>>> save/restore
> >>>>
> >>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> >>>>> Hi, I installed winpv driver build of 15 january on Windows server
> >>>>> 2012 R2 standard 64 bit and have problem after save/restore.
> >>>>> xl save/restore didn't show any errors, trying to connected with rdp I
> >>>>> was unable and with spice I saw screen with data and time (time
> update
> >>>>> after restore) but doing ctrl+alt+canc it changed something in screen
> >>>>> only after 5-10 minutes and still without showing login field.
> >>>>>
> >>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
> >>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
> >>>>> xen build.
> >>>>> DomU xl cfg:
> >>>>>> name='w2012r2-01'
> >>>>>> builder="hvm"
> >>>>>> memory=8192
> >>>>>> vcpus=4
> >>>>>> acpi_s3=0
> >>>>>> acpi_s4=0
> >>>>>>
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> >>>> 18:2a:f2,script=vif-openvswitch']
> >>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >>>>>> disk=['/mnt/vm/disks/w2012r2-
> >>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>>>>> boot='dc'
> >>>>>> device_model_version="qemu-xen"
> >>>>>> viridian=1
> >>>>>> vnc=0
> >>>>>> keymap="it"
> >>>>>> on_crash="destroy"
> >>>>>> vga="stdvga"
> >>>>>> spice=1
> >>>>>> spicehost='0.0.0.0'
> >>>>>> spiceport=6000
> >>>>>> spicepasswd="test"
> >>>>>> spicevdagent=1
> >>>>>> spice_clipboard_sharing=0
> >>>>>> spiceusbredirection=4
> >>>>>> soundhw="hda"
> >>>>>> localtime=1
> >>>>> I added in attachments qemu logs (before and after save/restore)
> with
> >>>>> xen trace enabled.
> >>>>>
> >>>>> If you need more informations tests tell me and I'll post them.
> >>>>>
> >>>>> I have also another small question:
> >>>>> is ms_vm_genid needed for this case? for what I understand is only
> for
> >>>>> active directory controller and this it isn't.
> >>>>>
> >>>>> Thanks for any reply and sorry for my bad english.
> >>>>>
> >>>>>
> >>>> I also tried to uninstall the pv drivers from control panel but windows
> >>>> crash, minidump in attachments.
> >>> I'm re-working the FIFO event channel code at the moment so I'll run a
> >> quick suspend/resume test when I'm done.
> >>>     Paul
> >> Thanks for your reply.
> >> I did other tests and seems that save/restore problems with windows
> 2012
> >> was for missed ms_vm_genid="generate" even if clean for now (no active
> >> directory or other server services enabled nor domain member).
> >> Remain windows crash on winpv drivers uninstall with minidump refer to
> >> xenvif and other important and occasional problem:
> >> network not working after some time and after 2-3 minutes all windows
> >> become unusable.
> >> I hope these problem will be solved by new network pv driver patches,
> >> I'll test them ASAP when build with them will be ready.
> >>
> > I pushed my big series into xenbus today. You should definitely take that; it
> fixes several bugs in FIFO event channels and a couple of other things.
> >
> >    Paul
> 
> Thanks.
> I tested now new pv drivers build on a windows 7 64 bit domU.
> On update I saw a strange thing, xenvif and xennet even if updated
> showed message "Ready to use" instead "Driver updated".
> After update of all drivers components I rebooted windows but it didn't
> start, stay blocked on windows logo, seems there is a critical
> regression in latest pv drivers build :(
> DomU's qemu log with xen-platform trace in attachment.
> 

I don't see either XENVIF or XENNET loading at all so perhaps the problem is with PV storage and Windows is unable to load the drivers? Does this happen if you fresh-install a VM? I tested on Win7 64 and didn't see any problem, but it was a fresh VM in my case.

  Paul

> Thanks for any reply and sorry for my bad english.
_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 14:42:11 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 14:42:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHClv-0002lx-7G; Fri, 30 Jan 2015 14:42:11 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YHClu-0002lm-C4
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 14:42:10 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	DC/FF-03000-1489BC45; Fri, 30 Jan 2015 14:42:09 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-7.tower-21.messagelabs.com!1422628928!13556329!1
X-Originating-IP: [74.125.82.51]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4222 invoked from network); 30 Jan 2015 14:42:09 -0000
Received: from mail-wg0-f51.google.com (HELO mail-wg0-f51.google.com)
	(74.125.82.51)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 14:42:09 -0000
Received: by mail-wg0-f51.google.com with SMTP id k14so27191511wgh.10
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 06:42:08 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:subject:references:in-reply-to:content-type
	:content-transfer-encoding;
	bh=CbJfepeIUx2do5j+/q+AX33S9Gb/4UOvC0WPc/01eEE=;
	b=JCmaEBmCKNCCxYyOf2eMUGKDO75M+kU9owGmbIu4uHXs5C0bBbUSRDNVYClQBHbE2z
	aKAa4KiPokjIG9gGlJ09JRIPfVzh1KqNgxKC2NM0E+3LG+KFu67Y/6rlTEKTJz75rwqq
	eOSiHrQXNhJkH8KQdM9DHBpUXdulLj/T1GI1rJEt6OB37xVmlDUKwFz71Xf/b084uv3C
	mZN4XxLjFGWCjcQ7WiDZBwhycLHIrT8KdyuXfdMd1jSUdZKmXKjI4rRGDCI3Dpc49U5o
	2IZoqOrlIYyy1x5beIcJYb/97Z8wD46IFDmPNteJIM6cdAj1yeuHwWKtOpllbCzgZTF7
	LB3Q==
X-Gm-Message-State: ALoCoQmtuwi+JBeH2/h1kHc3eERJ5jbtzH3aV1294GayOitKZ4Pnk6rWTg9mZJRHgeu6yS4RePit
X-Received: by 10.180.210.167 with SMTP id mv7mr5355859wic.78.1422628928491;
	Fri, 30 Jan 2015 06:42:08 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id li7sm7220841wic.4.2015.01.30.06.42.06
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 06:42:07 -0800 (PST)
Message-ID: <54CB9849.2010102@m2r.biz>
Date: Fri, 30 Jan 2015 15:42:17 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Paul Durrant <Paul.Durrant@citrix.com>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
	<54CB9266.4060800@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Il 30/01/2015 15:31, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>> Sent: 30 January 2015 14:17
>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 28/01/2015 21:14, Paul Durrant ha scritto:
>>>> -----Original Message-----
>>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>>>> Sent: 28 January 2015 09:19
>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>> after
>>>> save/restore
>>>>
>>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
>>>>>> -----Original Message-----
>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
>> devel-
>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>>>> Sent: 22 January 2015 10:10
>>>>>> To: win-pv-devel@lists.xenproject.org
>>>>>> Cc: Paul Durrant
>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>>>> after
>>>>>> save/restore
>>>>>>
>>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>>>>>> Hi, I installed winpv driver build of 15 january on Windows server
>>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>>>>>> xl save/restore didn't show any errors, trying to connected with rdp I
>>>>>>> was unable and with spice I saw screen with data and time (time
>> update
>>>>>>> after restore) but doing ctrl+alt+canc it changed something in screen
>>>>>>> only after 5-10 minutes and still without showing login field.
>>>>>>>
>>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
>>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
>>>>>>> xen build.
>>>>>>> DomU xl cfg:
>>>>>>>> name='w2012r2-01'
>>>>>>>> builder="hvm"
>>>>>>>> memory=8192
>>>>>>>> vcpus=4
>>>>>>>> acpi_s3=0
>>>>>>>> acpi_s4=0
>>>>>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>>>>>> 18:2a:f2,script=vif-openvswitch']
>>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>>>>>> disk=['/mnt/vm/disks/w2012r2-
>>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>>>>>> boot='dc'
>>>>>>>> device_model_version="qemu-xen"
>>>>>>>> viridian=1
>>>>>>>> vnc=0
>>>>>>>> keymap="it"
>>>>>>>> on_crash="destroy"
>>>>>>>> vga="stdvga"
>>>>>>>> spice=1
>>>>>>>> spicehost='0.0.0.0'
>>>>>>>> spiceport=6000
>>>>>>>> spicepasswd="test"
>>>>>>>> spicevdagent=1
>>>>>>>> spice_clipboard_sharing=0
>>>>>>>> spiceusbredirection=4
>>>>>>>> soundhw="hda"
>>>>>>>> localtime=1
>>>>>>> I added in attachments qemu logs (before and after save/restore)
>> with
>>>>>>> xen trace enabled.
>>>>>>>
>>>>>>> If you need more informations tests tell me and I'll post them.
>>>>>>>
>>>>>>> I have also another small question:
>>>>>>> is ms_vm_genid needed for this case? for what I understand is only
>> for
>>>>>>> active directory controller and this it isn't.
>>>>>>>
>>>>>>> Thanks for any reply and sorry for my bad english.
>>>>>>>
>>>>>>>
>>>>>> I also tried to uninstall the pv drivers from control panel but windows
>>>>>> crash, minidump in attachments.
>>>>> I'm re-working the FIFO event channel code at the moment so I'll run a
>>>> quick suspend/resume test when I'm done.
>>>>>      Paul
>>>> Thanks for your reply.
>>>> I did other tests and seems that save/restore problems with windows
>> 2012
>>>> was for missed ms_vm_genid="generate" even if clean for now (no active
>>>> directory or other server services enabled nor domain member).
>>>> Remain windows crash on winpv drivers uninstall with minidump refer to
>>>> xenvif and other important and occasional problem:
>>>> network not working after some time and after 2-3 minutes all windows
>>>> become unusable.
>>>> I hope these problem will be solved by new network pv driver patches,
>>>> I'll test them ASAP when build with them will be ready.
>>>>
>>> I pushed my big series into xenbus today. You should definitely take that; it
>> fixes several bugs in FIFO event channels and a couple of other things.
>>>     Paul
>> Thanks.
>> I tested now new pv drivers build on a windows 7 64 bit domU.
>> On update I saw a strange thing, xenvif and xennet even if updated
>> showed message "Ready to use" instead "Driver updated".
>> After update of all drivers components I rebooted windows but it didn't
>> start, stay blocked on windows logo, seems there is a critical
>> regression in latest pv drivers build :(
>> DomU's qemu log with xen-platform trace in attachment.
>>
> I don't see either XENVIF or XENNET loading at all so perhaps the problem is with PV storage and Windows is unable to load the drivers? Does this happen if you fresh-install a VM? I tested on Win7 64 and didn't see any problem, but it was a fresh VM in my case.
>
>    Paul

Is a windows 7 with only few things installed that I use for new xen and 
pv drivers testing only.
There was installed previous official builds from here:
http://xenproject.org/downloads/windows-pv-drivers.html
Previous update was 2-3 weeks ago and reboot was succesfull, update of 
today not.
I didn't have installed/updated any other software in this domU between 
the latest 2 pv driver updates.


Thanks for any reply and sorry for my bad english.

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 14:42:11 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 14:42:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHClv-0002lx-7G; Fri, 30 Jan 2015 14:42:11 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YHClu-0002lm-C4
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 14:42:10 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	DC/FF-03000-1489BC45; Fri, 30 Jan 2015 14:42:09 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-7.tower-21.messagelabs.com!1422628928!13556329!1
X-Originating-IP: [74.125.82.51]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4222 invoked from network); 30 Jan 2015 14:42:09 -0000
Received: from mail-wg0-f51.google.com (HELO mail-wg0-f51.google.com)
	(74.125.82.51)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 14:42:09 -0000
Received: by mail-wg0-f51.google.com with SMTP id k14so27191511wgh.10
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 06:42:08 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:subject:references:in-reply-to:content-type
	:content-transfer-encoding;
	bh=CbJfepeIUx2do5j+/q+AX33S9Gb/4UOvC0WPc/01eEE=;
	b=JCmaEBmCKNCCxYyOf2eMUGKDO75M+kU9owGmbIu4uHXs5C0bBbUSRDNVYClQBHbE2z
	aKAa4KiPokjIG9gGlJ09JRIPfVzh1KqNgxKC2NM0E+3LG+KFu67Y/6rlTEKTJz75rwqq
	eOSiHrQXNhJkH8KQdM9DHBpUXdulLj/T1GI1rJEt6OB37xVmlDUKwFz71Xf/b084uv3C
	mZN4XxLjFGWCjcQ7WiDZBwhycLHIrT8KdyuXfdMd1jSUdZKmXKjI4rRGDCI3Dpc49U5o
	2IZoqOrlIYyy1x5beIcJYb/97Z8wD46IFDmPNteJIM6cdAj1yeuHwWKtOpllbCzgZTF7
	LB3Q==
X-Gm-Message-State: ALoCoQmtuwi+JBeH2/h1kHc3eERJ5jbtzH3aV1294GayOitKZ4Pnk6rWTg9mZJRHgeu6yS4RePit
X-Received: by 10.180.210.167 with SMTP id mv7mr5355859wic.78.1422628928491;
	Fri, 30 Jan 2015 06:42:08 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id li7sm7220841wic.4.2015.01.30.06.42.06
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 06:42:07 -0800 (PST)
Message-ID: <54CB9849.2010102@m2r.biz>
Date: Fri, 30 Jan 2015 15:42:17 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Paul Durrant <Paul.Durrant@citrix.com>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
	<54CB9266.4060800@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Il 30/01/2015 15:31, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>> Sent: 30 January 2015 14:17
>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 28/01/2015 21:14, Paul Durrant ha scritto:
>>>> -----Original Message-----
>>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>>>> Sent: 28 January 2015 09:19
>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>> after
>>>> save/restore
>>>>
>>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
>>>>>> -----Original Message-----
>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
>> devel-
>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>>>> Sent: 22 January 2015 10:10
>>>>>> To: win-pv-devel@lists.xenproject.org
>>>>>> Cc: Paul Durrant
>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>>>> after
>>>>>> save/restore
>>>>>>
>>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>>>>>> Hi, I installed winpv driver build of 15 january on Windows server
>>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>>>>>> xl save/restore didn't show any errors, trying to connected with rdp I
>>>>>>> was unable and with spice I saw screen with data and time (time
>> update
>>>>>>> after restore) but doing ctrl+alt+canc it changed something in screen
>>>>>>> only after 5-10 minutes and still without showing login field.
>>>>>>>
>>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
>>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6 from
>>>>>>> xen build.
>>>>>>> DomU xl cfg:
>>>>>>>> name='w2012r2-01'
>>>>>>>> builder="hvm"
>>>>>>>> memory=8192
>>>>>>>> vcpus=4
>>>>>>>> acpi_s3=0
>>>>>>>> acpi_s4=0
>>>>>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>>>>>> 18:2a:f2,script=vif-openvswitch']
>>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>>>>>> disk=['/mnt/vm/disks/w2012r2-
>>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>>>>>> boot='dc'
>>>>>>>> device_model_version="qemu-xen"
>>>>>>>> viridian=1
>>>>>>>> vnc=0
>>>>>>>> keymap="it"
>>>>>>>> on_crash="destroy"
>>>>>>>> vga="stdvga"
>>>>>>>> spice=1
>>>>>>>> spicehost='0.0.0.0'
>>>>>>>> spiceport=6000
>>>>>>>> spicepasswd="test"
>>>>>>>> spicevdagent=1
>>>>>>>> spice_clipboard_sharing=0
>>>>>>>> spiceusbredirection=4
>>>>>>>> soundhw="hda"
>>>>>>>> localtime=1
>>>>>>> I added in attachments qemu logs (before and after save/restore)
>> with
>>>>>>> xen trace enabled.
>>>>>>>
>>>>>>> If you need more informations tests tell me and I'll post them.
>>>>>>>
>>>>>>> I have also another small question:
>>>>>>> is ms_vm_genid needed for this case? for what I understand is only
>> for
>>>>>>> active directory controller and this it isn't.
>>>>>>>
>>>>>>> Thanks for any reply and sorry for my bad english.
>>>>>>>
>>>>>>>
>>>>>> I also tried to uninstall the pv drivers from control panel but windows
>>>>>> crash, minidump in attachments.
>>>>> I'm re-working the FIFO event channel code at the moment so I'll run a
>>>> quick suspend/resume test when I'm done.
>>>>>      Paul
>>>> Thanks for your reply.
>>>> I did other tests and seems that save/restore problems with windows
>> 2012
>>>> was for missed ms_vm_genid="generate" even if clean for now (no active
>>>> directory or other server services enabled nor domain member).
>>>> Remain windows crash on winpv drivers uninstall with minidump refer to
>>>> xenvif and other important and occasional problem:
>>>> network not working after some time and after 2-3 minutes all windows
>>>> become unusable.
>>>> I hope these problem will be solved by new network pv driver patches,
>>>> I'll test them ASAP when build with them will be ready.
>>>>
>>> I pushed my big series into xenbus today. You should definitely take that; it
>> fixes several bugs in FIFO event channels and a couple of other things.
>>>     Paul
>> Thanks.
>> I tested now new pv drivers build on a windows 7 64 bit domU.
>> On update I saw a strange thing, xenvif and xennet even if updated
>> showed message "Ready to use" instead "Driver updated".
>> After update of all drivers components I rebooted windows but it didn't
>> start, stay blocked on windows logo, seems there is a critical
>> regression in latest pv drivers build :(
>> DomU's qemu log with xen-platform trace in attachment.
>>
> I don't see either XENVIF or XENNET loading at all so perhaps the problem is with PV storage and Windows is unable to load the drivers? Does this happen if you fresh-install a VM? I tested on Win7 64 and didn't see any problem, but it was a fresh VM in my case.
>
>    Paul

Is a windows 7 with only few things installed that I use for new xen and 
pv drivers testing only.
There was installed previous official builds from here:
http://xenproject.org/downloads/windows-pv-drivers.html
Previous update was 2-3 weeks ago and reboot was succesfull, update of 
today not.
I didn't have installed/updated any other software in this domU between 
the latest 2 pv driver updates.


Thanks for any reply and sorry for my bad english.

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 15:08:24 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 15:08:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHDBI-0006AT-KI; Fri, 30 Jan 2015 15:08:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YHDBG-0006AH-HZ
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 15:08:22 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	8E/D9-03168-56E9BC45; Fri, 30 Jan 2015 15:08:21 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1422630499!7198816!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD,received_headers: 
	No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29833 invoked from network); 30 Jan 2015 15:08:19 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 15:08:19 -0000
X-IronPort-AV: E=Sophos;i="5.09,492,1418083200"; d="scan'208";a="30441928"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQPJd7orz5wUmi2kK/BwVykZg9spzYuR5g///y0oCAABeO8A==
Date: Fri, 30 Jan 2015 15:07:44 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
	<54CB9266.4060800@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
	<54CB9849.2010102@m2r.biz>
In-Reply-To: <54CB9849.2010102@m2r.biz>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
	after	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> Sent: 30 January 2015 14:42
> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 30/01/2015 15:31, Paul Durrant ha scritto:
> >> -----Original Message-----
> >> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> >> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >> Sent: 30 January 2015 14:17
> >> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> after
> >> save/restore
> >>
> >> Il 28/01/2015 21:14, Paul Durrant ha scritto:
> >>>> -----Original Message-----
> >>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> >>>> Sent: 28 January 2015 09:19
> >>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> >> after
> >>>> save/restore
> >>>>
> >>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
> >>>>>> -----Original Message-----
> >>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
> >> devel-
> >>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>>>> Sent: 22 January 2015 10:10
> >>>>>> To: win-pv-devel@lists.xenproject.org
> >>>>>> Cc: Paul Durrant
> >>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
> problem
> >>>> after
> >>>>>> save/restore
> >>>>>>
> >>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> >>>>>>> Hi, I installed winpv driver build of 15 january on Windows server
> >>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
> >>>>>>> xl save/restore didn't show any errors, trying to connected with rdp
> I
> >>>>>>> was unable and with spice I saw screen with data and time (time
> >> update
> >>>>>>> after restore) but doing ctrl+alt+canc it changed something in
> screen
> >>>>>>> only after 5-10 minutes and still without showing login field.
> >>>>>>>
> >>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
> >>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6
> from
> >>>>>>> xen build.
> >>>>>>> DomU xl cfg:
> >>>>>>>> name='w2012r2-01'
> >>>>>>>> builder="hvm"
> >>>>>>>> memory=8192
> >>>>>>>> vcpus=4
> >>>>>>>> acpi_s3=0
> >>>>>>>> acpi_s4=0
> >>>>>>>>
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> >>>>>> 18:2a:f2,script=vif-openvswitch']
> >>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >>>>>>>> disk=['/mnt/vm/disks/w2012r2-
> >>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>>>>>>> boot='dc'
> >>>>>>>> device_model_version="qemu-xen"
> >>>>>>>> viridian=1
> >>>>>>>> vnc=0
> >>>>>>>> keymap="it"
> >>>>>>>> on_crash="destroy"
> >>>>>>>> vga="stdvga"
> >>>>>>>> spice=1
> >>>>>>>> spicehost='0.0.0.0'
> >>>>>>>> spiceport=6000
> >>>>>>>> spicepasswd="test"
> >>>>>>>> spicevdagent=1
> >>>>>>>> spice_clipboard_sharing=0
> >>>>>>>> spiceusbredirection=4
> >>>>>>>> soundhw="hda"
> >>>>>>>> localtime=1
> >>>>>>> I added in attachments qemu logs (before and after save/restore)
> >> with
> >>>>>>> xen trace enabled.
> >>>>>>>
> >>>>>>> If you need more informations tests tell me and I'll post them.
> >>>>>>>
> >>>>>>> I have also another small question:
> >>>>>>> is ms_vm_genid needed for this case? for what I understand is only
> >> for
> >>>>>>> active directory controller and this it isn't.
> >>>>>>>
> >>>>>>> Thanks for any reply and sorry for my bad english.
> >>>>>>>
> >>>>>>>
> >>>>>> I also tried to uninstall the pv drivers from control panel but windows
> >>>>>> crash, minidump in attachments.
> >>>>> I'm re-working the FIFO event channel code at the moment so I'll run
> a
> >>>> quick suspend/resume test when I'm done.
> >>>>>      Paul
> >>>> Thanks for your reply.
> >>>> I did other tests and seems that save/restore problems with windows
> >> 2012
> >>>> was for missed ms_vm_genid="generate" even if clean for now (no
> active
> >>>> directory or other server services enabled nor domain member).
> >>>> Remain windows crash on winpv drivers uninstall with minidump refer
> to
> >>>> xenvif and other important and occasional problem:
> >>>> network not working after some time and after 2-3 minutes all
> windows
> >>>> become unusable.
> >>>> I hope these problem will be solved by new network pv driver patches,
> >>>> I'll test them ASAP when build with them will be ready.
> >>>>
> >>> I pushed my big series into xenbus today. You should definitely take
> that; it
> >> fixes several bugs in FIFO event channels and a couple of other things.
> >>>     Paul
> >> Thanks.
> >> I tested now new pv drivers build on a windows 7 64 bit domU.
> >> On update I saw a strange thing, xenvif and xennet even if updated
> >> showed message "Ready to use" instead "Driver updated".
> >> After update of all drivers components I rebooted windows but it didn't
> >> start, stay blocked on windows logo, seems there is a critical
> >> regression in latest pv drivers build :(
> >> DomU's qemu log with xen-platform trace in attachment.
> >>
> > I don't see either XENVIF or XENNET loading at all so perhaps the problem is
> with PV storage and Windows is unable to load the drivers? Does this happen
> if you fresh-install a VM? I tested on Win7 64 and didn't see any problem, but
> it was a fresh VM in my case.
> >
> >    Paul
> 
> Is a windows 7 with only few things installed that I use for new xen and
> pv drivers testing only.
> There was installed previous official builds from here:
> http://xenproject.org/downloads/windows-pv-drivers.html
> Previous update was 2-3 weeks ago and reboot was succesfull, update of
> today not.
> I didn't have installed/updated any other software in this domU between
> the latest 2 pv driver updates.
> 

Ah, I wonder if I've unwittingly introduced a dependency on the per-vpu event channel callback patch into Xen. I did my testing with that in place. I'll try running on 4.5.

  Paul

> 
> Thanks for any reply and sorry for my bad english.
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 15:08:24 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 15:08:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHDBI-0006AT-KI; Fri, 30 Jan 2015 15:08:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YHDBG-0006AH-HZ
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 15:08:22 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	8E/D9-03168-56E9BC45; Fri, 30 Jan 2015 15:08:21 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1422630499!7198816!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD,received_headers: 
	No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29833 invoked from network); 30 Jan 2015 15:08:19 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 15:08:19 -0000
X-IronPort-AV: E=Sophos;i="5.09,492,1418083200"; d="scan'208";a="30441928"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQPJd7orz5wUmi2kK/BwVykZg9spzYuR5g///y0oCAABeO8A==
Date: Fri, 30 Jan 2015 15:07:44 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
	<54CB9266.4060800@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
	<54CB9849.2010102@m2r.biz>
In-Reply-To: <54CB9849.2010102@m2r.biz>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
	after	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> Sent: 30 January 2015 14:42
> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 30/01/2015 15:31, Paul Durrant ha scritto:
> >> -----Original Message-----
> >> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> >> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >> Sent: 30 January 2015 14:17
> >> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> after
> >> save/restore
> >>
> >> Il 28/01/2015 21:14, Paul Durrant ha scritto:
> >>>> -----Original Message-----
> >>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> >>>> Sent: 28 January 2015 09:19
> >>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> >> after
> >>>> save/restore
> >>>>
> >>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
> >>>>>> -----Original Message-----
> >>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
> >> devel-
> >>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>>>> Sent: 22 January 2015 10:10
> >>>>>> To: win-pv-devel@lists.xenproject.org
> >>>>>> Cc: Paul Durrant
> >>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
> problem
> >>>> after
> >>>>>> save/restore
> >>>>>>
> >>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> >>>>>>> Hi, I installed winpv driver build of 15 january on Windows server
> >>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
> >>>>>>> xl save/restore didn't show any errors, trying to connected with rdp
> I
> >>>>>>> was unable and with spice I saw screen with data and time (time
> >> update
> >>>>>>> after restore) but doing ctrl+alt+canc it changed something in
> screen
> >>>>>>> only after 5-10 minutes and still without showing login field.
> >>>>>>>
> >>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
> >>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6
> from
> >>>>>>> xen build.
> >>>>>>> DomU xl cfg:
> >>>>>>>> name='w2012r2-01'
> >>>>>>>> builder="hvm"
> >>>>>>>> memory=8192
> >>>>>>>> vcpus=4
> >>>>>>>> acpi_s3=0
> >>>>>>>> acpi_s4=0
> >>>>>>>>
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> >>>>>> 18:2a:f2,script=vif-openvswitch']
> >>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >>>>>>>> disk=['/mnt/vm/disks/w2012r2-
> >>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>>>>>>> boot='dc'
> >>>>>>>> device_model_version="qemu-xen"
> >>>>>>>> viridian=1
> >>>>>>>> vnc=0
> >>>>>>>> keymap="it"
> >>>>>>>> on_crash="destroy"
> >>>>>>>> vga="stdvga"
> >>>>>>>> spice=1
> >>>>>>>> spicehost='0.0.0.0'
> >>>>>>>> spiceport=6000
> >>>>>>>> spicepasswd="test"
> >>>>>>>> spicevdagent=1
> >>>>>>>> spice_clipboard_sharing=0
> >>>>>>>> spiceusbredirection=4
> >>>>>>>> soundhw="hda"
> >>>>>>>> localtime=1
> >>>>>>> I added in attachments qemu logs (before and after save/restore)
> >> with
> >>>>>>> xen trace enabled.
> >>>>>>>
> >>>>>>> If you need more informations tests tell me and I'll post them.
> >>>>>>>
> >>>>>>> I have also another small question:
> >>>>>>> is ms_vm_genid needed for this case? for what I understand is only
> >> for
> >>>>>>> active directory controller and this it isn't.
> >>>>>>>
> >>>>>>> Thanks for any reply and sorry for my bad english.
> >>>>>>>
> >>>>>>>
> >>>>>> I also tried to uninstall the pv drivers from control panel but windows
> >>>>>> crash, minidump in attachments.
> >>>>> I'm re-working the FIFO event channel code at the moment so I'll run
> a
> >>>> quick suspend/resume test when I'm done.
> >>>>>      Paul
> >>>> Thanks for your reply.
> >>>> I did other tests and seems that save/restore problems with windows
> >> 2012
> >>>> was for missed ms_vm_genid="generate" even if clean for now (no
> active
> >>>> directory or other server services enabled nor domain member).
> >>>> Remain windows crash on winpv drivers uninstall with minidump refer
> to
> >>>> xenvif and other important and occasional problem:
> >>>> network not working after some time and after 2-3 minutes all
> windows
> >>>> become unusable.
> >>>> I hope these problem will be solved by new network pv driver patches,
> >>>> I'll test them ASAP when build with them will be ready.
> >>>>
> >>> I pushed my big series into xenbus today. You should definitely take
> that; it
> >> fixes several bugs in FIFO event channels and a couple of other things.
> >>>     Paul
> >> Thanks.
> >> I tested now new pv drivers build on a windows 7 64 bit domU.
> >> On update I saw a strange thing, xenvif and xennet even if updated
> >> showed message "Ready to use" instead "Driver updated".
> >> After update of all drivers components I rebooted windows but it didn't
> >> start, stay blocked on windows logo, seems there is a critical
> >> regression in latest pv drivers build :(
> >> DomU's qemu log with xen-platform trace in attachment.
> >>
> > I don't see either XENVIF or XENNET loading at all so perhaps the problem is
> with PV storage and Windows is unable to load the drivers? Does this happen
> if you fresh-install a VM? I tested on Win7 64 and didn't see any problem, but
> it was a fresh VM in my case.
> >
> >    Paul
> 
> Is a windows 7 with only few things installed that I use for new xen and
> pv drivers testing only.
> There was installed previous official builds from here:
> http://xenproject.org/downloads/windows-pv-drivers.html
> Previous update was 2-3 weeks ago and reboot was succesfull, update of
> today not.
> I didn't have installed/updated any other software in this domU between
> the latest 2 pv driver updates.
> 

Ah, I wonder if I've unwittingly introduced a dependency on the per-vpu event channel callback patch into Xen. I did my testing with that in place. I'll try running on 4.5.

  Paul

> 
> Thanks for any reply and sorry for my bad english.
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 15:14:05 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 15:14:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHDGn-0006cB-RW; Fri, 30 Jan 2015 15:14:05 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YHDGm-0006c6-OT
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 15:14:04 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	E7/9D-31919-CBF9BC45; Fri, 30 Jan 2015 15:14:04 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-8.tower-27.messagelabs.com!1422630843!11793630!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22501 invoked from network); 30 Jan 2015 15:14:03 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 15:14:03 -0000
Received: by mail-wi0-f173.google.com with SMTP id r20so3743036wiv.0
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 07:14:02 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:subject:references:in-reply-to:content-type
	:content-transfer-encoding;
	bh=85Xze10sAUPZxvIyxnA5xO0OfLucJea9D/GZpmoAoSQ=;
	b=gvcC5HVF6P/07AnTeRJ6PsOtKgeSzYxpFd5oJuowdewnc7KAmEORyQpKlSjtT0OXnV
	mLBUib7qidzwGp0he3g/KPp6oL6QC0erIMFOYnp88UPBKn3fAcZaDIt9+0CB3RFJN5Ti
	U3FquvdC7bXf+6h6nuqFXiEfYdcpaGl6BC/ptJ3TxdcWFDJdVvejcFwQ72j74gpWJSVA
	5IZlZkHZTQJOMq9ne7c/nEhgWE4SP98nPO72FSNe5FaxKLaLkiUEPInyeUFq4+xmCkeX
	UF8qhOLPJemxicr0OkYV86vrMYwKDOoyvQ5RKC+SbCSVoa1wGbL/ZSUFzE1vne5gnBrF
	yrxA==
X-Gm-Message-State: ALoCoQk6HciR+xUOqaWfiUZO+sUv8GTN+0MoeL6bvUxHXnCEeFAod06Abfyr9DCEm3s2yxA4T8et
X-Received: by 10.194.175.202 with SMTP id cc10mr13283450wjc.27.1422630842682; 
	Fri, 30 Jan 2015 07:14:02 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id eu8sm7324581wib.21.2015.01.30.07.14.01
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 07:14:01 -0800 (PST)
Message-ID: <54CB9FC4.2060108@m2r.biz>
Date: Fri, 30 Jan 2015 16:14:12 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Paul Durrant <Paul.Durrant@citrix.com>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>	<54CB9266.4060800@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
	<54CB9849.2010102@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Il 30/01/2015 16:07, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>> Sent: 30 January 2015 14:42
>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 30/01/2015 15:31, Paul Durrant ha scritto:
>>>> -----Original Message-----
>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>> Sent: 30 January 2015 14:17
>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>> after
>>>> save/restore
>>>>
>>>> Il 28/01/2015 21:14, Paul Durrant ha scritto:
>>>>>> -----Original Message-----
>>>>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>>>>>> Sent: 28 January 2015 09:19
>>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>>>> after
>>>>>> save/restore
>>>>>>
>>>>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
>>>>>>>> -----Original Message-----
>>>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
>>>> devel-
>>>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>>>>>> Sent: 22 January 2015 10:10
>>>>>>>> To: win-pv-devel@lists.xenproject.org
>>>>>>>> Cc: Paul Durrant
>>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
>> problem
>>>>>> after
>>>>>>>> save/restore
>>>>>>>>
>>>>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>>>>>>>> Hi, I installed winpv driver build of 15 january on Windows server
>>>>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>>>>>>>> xl save/restore didn't show any errors, trying to connected with rdp
>> I
>>>>>>>>> was unable and with spice I saw screen with data and time (time
>>>> update
>>>>>>>>> after restore) but doing ctrl+alt+canc it changed something in
>> screen
>>>>>>>>> only after 5-10 minutes and still without showing login field.
>>>>>>>>>
>>>>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
>>>>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6
>> from
>>>>>>>>> xen build.
>>>>>>>>> DomU xl cfg:
>>>>>>>>>> name='w2012r2-01'
>>>>>>>>>> builder="hvm"
>>>>>>>>>> memory=8192
>>>>>>>>>> vcpus=4
>>>>>>>>>> acpi_s3=0
>>>>>>>>>> acpi_s4=0
>>>>>>>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>>>>>>>> 18:2a:f2,script=vif-openvswitch']
>>>>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>>>>>>>> disk=['/mnt/vm/disks/w2012r2-
>>>>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>>>>>>>> boot='dc'
>>>>>>>>>> device_model_version="qemu-xen"
>>>>>>>>>> viridian=1
>>>>>>>>>> vnc=0
>>>>>>>>>> keymap="it"
>>>>>>>>>> on_crash="destroy"
>>>>>>>>>> vga="stdvga"
>>>>>>>>>> spice=1
>>>>>>>>>> spicehost='0.0.0.0'
>>>>>>>>>> spiceport=6000
>>>>>>>>>> spicepasswd="test"
>>>>>>>>>> spicevdagent=1
>>>>>>>>>> spice_clipboard_sharing=0
>>>>>>>>>> spiceusbredirection=4
>>>>>>>>>> soundhw="hda"
>>>>>>>>>> localtime=1
>>>>>>>>> I added in attachments qemu logs (before and after save/restore)
>>>> with
>>>>>>>>> xen trace enabled.
>>>>>>>>>
>>>>>>>>> If you need more informations tests tell me and I'll post them.
>>>>>>>>>
>>>>>>>>> I have also another small question:
>>>>>>>>> is ms_vm_genid needed for this case? for what I understand is only
>>>> for
>>>>>>>>> active directory controller and this it isn't.
>>>>>>>>>
>>>>>>>>> Thanks for any reply and sorry for my bad english.
>>>>>>>>>
>>>>>>>>>
>>>>>>>> I also tried to uninstall the pv drivers from control panel but windows
>>>>>>>> crash, minidump in attachments.
>>>>>>> I'm re-working the FIFO event channel code at the moment so I'll run
>> a
>>>>>> quick suspend/resume test when I'm done.
>>>>>>>       Paul
>>>>>> Thanks for your reply.
>>>>>> I did other tests and seems that save/restore problems with windows
>>>> 2012
>>>>>> was for missed ms_vm_genid="generate" even if clean for now (no
>> active
>>>>>> directory or other server services enabled nor domain member).
>>>>>> Remain windows crash on winpv drivers uninstall with minidump refer
>> to
>>>>>> xenvif and other important and occasional problem:
>>>>>> network not working after some time and after 2-3 minutes all
>> windows
>>>>>> become unusable.
>>>>>> I hope these problem will be solved by new network pv driver patches,
>>>>>> I'll test them ASAP when build with them will be ready.
>>>>>>
>>>>> I pushed my big series into xenbus today. You should definitely take
>> that; it
>>>> fixes several bugs in FIFO event channels and a couple of other things.
>>>>>      Paul
>>>> Thanks.
>>>> I tested now new pv drivers build on a windows 7 64 bit domU.
>>>> On update I saw a strange thing, xenvif and xennet even if updated
>>>> showed message "Ready to use" instead "Driver updated".
>>>> After update of all drivers components I rebooted windows but it didn't
>>>> start, stay blocked on windows logo, seems there is a critical
>>>> regression in latest pv drivers build :(
>>>> DomU's qemu log with xen-platform trace in attachment.
>>>>
>>> I don't see either XENVIF or XENNET loading at all so perhaps the problem is
>> with PV storage and Windows is unable to load the drivers? Does this happen
>> if you fresh-install a VM? I tested on Win7 64 and didn't see any problem, but
>> it was a fresh VM in my case.
>>>     Paul
>> Is a windows 7 with only few things installed that I use for new xen and
>> pv drivers testing only.
>> There was installed previous official builds from here:
>> http://xenproject.org/downloads/windows-pv-drivers.html
>> Previous update was 2-3 weeks ago and reboot was succesfull, update of
>> today not.
>> I didn't have installed/updated any other software in this domU between
>> the latest 2 pv driver updates.
>>
> Ah, I wonder if I've unwittingly introduced a dependency on the per-vpu event channel callback patch into Xen. I did my testing with that in place. I'll try running on 4.5.
>
>    Paul

My actual testing dom0 where I tested the new pv drivers is xen 4.5.0 
with some patches:
https://github.com/Fantu/Xen/commits/rebase/m2r-testing
Including backports of this 2 patches:
x86/hvm: add per-vcpu evtchn upcalls
x86/hvm: extend HVM cpuid leaf with vcpu id

Thanks for any reply and sorry for my bad english.



_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 15:14:05 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 15:14:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHDGn-0006cB-RW; Fri, 30 Jan 2015 15:14:05 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YHDGm-0006c6-OT
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 15:14:04 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	E7/9D-31919-CBF9BC45; Fri, 30 Jan 2015 15:14:04 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-8.tower-27.messagelabs.com!1422630843!11793630!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22501 invoked from network); 30 Jan 2015 15:14:03 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 15:14:03 -0000
Received: by mail-wi0-f173.google.com with SMTP id r20so3743036wiv.0
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 07:14:02 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:subject:references:in-reply-to:content-type
	:content-transfer-encoding;
	bh=85Xze10sAUPZxvIyxnA5xO0OfLucJea9D/GZpmoAoSQ=;
	b=gvcC5HVF6P/07AnTeRJ6PsOtKgeSzYxpFd5oJuowdewnc7KAmEORyQpKlSjtT0OXnV
	mLBUib7qidzwGp0he3g/KPp6oL6QC0erIMFOYnp88UPBKn3fAcZaDIt9+0CB3RFJN5Ti
	U3FquvdC7bXf+6h6nuqFXiEfYdcpaGl6BC/ptJ3TxdcWFDJdVvejcFwQ72j74gpWJSVA
	5IZlZkHZTQJOMq9ne7c/nEhgWE4SP98nPO72FSNe5FaxKLaLkiUEPInyeUFq4+xmCkeX
	UF8qhOLPJemxicr0OkYV86vrMYwKDOoyvQ5RKC+SbCSVoa1wGbL/ZSUFzE1vne5gnBrF
	yrxA==
X-Gm-Message-State: ALoCoQk6HciR+xUOqaWfiUZO+sUv8GTN+0MoeL6bvUxHXnCEeFAod06Abfyr9DCEm3s2yxA4T8et
X-Received: by 10.194.175.202 with SMTP id cc10mr13283450wjc.27.1422630842682; 
	Fri, 30 Jan 2015 07:14:02 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id eu8sm7324581wib.21.2015.01.30.07.14.01
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 07:14:01 -0800 (PST)
Message-ID: <54CB9FC4.2060108@m2r.biz>
Date: Fri, 30 Jan 2015 16:14:12 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Paul Durrant <Paul.Durrant@citrix.com>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>	<54CB9266.4060800@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
	<54CB9849.2010102@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

Il 30/01/2015 16:07, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>> Sent: 30 January 2015 14:42
>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 30/01/2015 15:31, Paul Durrant ha scritto:
>>>> -----Original Message-----
>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>> Sent: 30 January 2015 14:17
>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>> after
>>>> save/restore
>>>>
>>>> Il 28/01/2015 21:14, Paul Durrant ha scritto:
>>>>>> -----Original Message-----
>>>>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>>>>>> Sent: 28 January 2015 09:19
>>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>>>> after
>>>>>> save/restore
>>>>>>
>>>>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
>>>>>>>> -----Original Message-----
>>>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
>>>> devel-
>>>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>>>>>> Sent: 22 January 2015 10:10
>>>>>>>> To: win-pv-devel@lists.xenproject.org
>>>>>>>> Cc: Paul Durrant
>>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
>> problem
>>>>>> after
>>>>>>>> save/restore
>>>>>>>>
>>>>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>>>>>>>> Hi, I installed winpv driver build of 15 january on Windows server
>>>>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>>>>>>>> xl save/restore didn't show any errors, trying to connected with rdp
>> I
>>>>>>>>> was unable and with spice I saw screen with data and time (time
>>>> update
>>>>>>>>> after restore) but doing ctrl+alt+canc it changed something in
>> screen
>>>>>>>>> only after 5-10 minutes and still without showing login field.
>>>>>>>>>
>>>>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from official
>>>>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6
>> from
>>>>>>>>> xen build.
>>>>>>>>> DomU xl cfg:
>>>>>>>>>> name='w2012r2-01'
>>>>>>>>>> builder="hvm"
>>>>>>>>>> memory=8192
>>>>>>>>>> vcpus=4
>>>>>>>>>> acpi_s3=0
>>>>>>>>>> acpi_s4=0
>>>>>>>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>>>>>>>> 18:2a:f2,script=vif-openvswitch']
>>>>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>>>>>>>> disk=['/mnt/vm/disks/w2012r2-
>>>>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>>>>>>>> boot='dc'
>>>>>>>>>> device_model_version="qemu-xen"
>>>>>>>>>> viridian=1
>>>>>>>>>> vnc=0
>>>>>>>>>> keymap="it"
>>>>>>>>>> on_crash="destroy"
>>>>>>>>>> vga="stdvga"
>>>>>>>>>> spice=1
>>>>>>>>>> spicehost='0.0.0.0'
>>>>>>>>>> spiceport=6000
>>>>>>>>>> spicepasswd="test"
>>>>>>>>>> spicevdagent=1
>>>>>>>>>> spice_clipboard_sharing=0
>>>>>>>>>> spiceusbredirection=4
>>>>>>>>>> soundhw="hda"
>>>>>>>>>> localtime=1
>>>>>>>>> I added in attachments qemu logs (before and after save/restore)
>>>> with
>>>>>>>>> xen trace enabled.
>>>>>>>>>
>>>>>>>>> If you need more informations tests tell me and I'll post them.
>>>>>>>>>
>>>>>>>>> I have also another small question:
>>>>>>>>> is ms_vm_genid needed for this case? for what I understand is only
>>>> for
>>>>>>>>> active directory controller and this it isn't.
>>>>>>>>>
>>>>>>>>> Thanks for any reply and sorry for my bad english.
>>>>>>>>>
>>>>>>>>>
>>>>>>>> I also tried to uninstall the pv drivers from control panel but windows
>>>>>>>> crash, minidump in attachments.
>>>>>>> I'm re-working the FIFO event channel code at the moment so I'll run
>> a
>>>>>> quick suspend/resume test when I'm done.
>>>>>>>       Paul
>>>>>> Thanks for your reply.
>>>>>> I did other tests and seems that save/restore problems with windows
>>>> 2012
>>>>>> was for missed ms_vm_genid="generate" even if clean for now (no
>> active
>>>>>> directory or other server services enabled nor domain member).
>>>>>> Remain windows crash on winpv drivers uninstall with minidump refer
>> to
>>>>>> xenvif and other important and occasional problem:
>>>>>> network not working after some time and after 2-3 minutes all
>> windows
>>>>>> become unusable.
>>>>>> I hope these problem will be solved by new network pv driver patches,
>>>>>> I'll test them ASAP when build with them will be ready.
>>>>>>
>>>>> I pushed my big series into xenbus today. You should definitely take
>> that; it
>>>> fixes several bugs in FIFO event channels and a couple of other things.
>>>>>      Paul
>>>> Thanks.
>>>> I tested now new pv drivers build on a windows 7 64 bit domU.
>>>> On update I saw a strange thing, xenvif and xennet even if updated
>>>> showed message "Ready to use" instead "Driver updated".
>>>> After update of all drivers components I rebooted windows but it didn't
>>>> start, stay blocked on windows logo, seems there is a critical
>>>> regression in latest pv drivers build :(
>>>> DomU's qemu log with xen-platform trace in attachment.
>>>>
>>> I don't see either XENVIF or XENNET loading at all so perhaps the problem is
>> with PV storage and Windows is unable to load the drivers? Does this happen
>> if you fresh-install a VM? I tested on Win7 64 and didn't see any problem, but
>> it was a fresh VM in my case.
>>>     Paul
>> Is a windows 7 with only few things installed that I use for new xen and
>> pv drivers testing only.
>> There was installed previous official builds from here:
>> http://xenproject.org/downloads/windows-pv-drivers.html
>> Previous update was 2-3 weeks ago and reboot was succesfull, update of
>> today not.
>> I didn't have installed/updated any other software in this domU between
>> the latest 2 pv driver updates.
>>
> Ah, I wonder if I've unwittingly introduced a dependency on the per-vpu event channel callback patch into Xen. I did my testing with that in place. I'll try running on 4.5.
>
>    Paul

My actual testing dom0 where I tested the new pv drivers is xen 4.5.0 
with some patches:
https://github.com/Fantu/Xen/commits/rebase/m2r-testing
Including backports of this 2 patches:
x86/hvm: add per-vcpu evtchn upcalls
x86/hvm: extend HVM cpuid leaf with vcpu id

Thanks for any reply and sorry for my bad english.



_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 15:45:31 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 15:45:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHDlD-0001e3-A3; Fri, 30 Jan 2015 15:45:31 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YHDlA-0001dt-TZ
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 15:45:30 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	FE/D5-03165-717ABC45; Fri, 30 Jan 2015 15:45:27 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-13.tower-206.messagelabs.com!1422632726!11390247!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10954 invoked from network); 30 Jan 2015 15:45:26 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 15:45:26 -0000
Received: by mail-wi0-f175.google.com with SMTP id fb4so3971426wid.2
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 07:45:26 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:cc:subject:references:in-reply-to:content-type;
	bh=24P/XOgQPwzLTbLjMyqM+O8wz2XEzu7CZrOGBeGibSg=;
	b=HcZDXCdc1oE/fezmCTBf7jY+vSxFc0YXBNQtdmXVQ8YH8A2Y5ei56wvWNZdjeCL2BQ
	6FbzT0FAdRUTPCVD1ZB8YDn7OwkuVVAiA5tNoxmFbvGKwmVbcF2MtNacMAddVeY7mZh6
	VwAKra5oVtoKZnOf60SlQqjPWqi1O3n7N/g5odnjSPa3Y544viSw0yTnHtSJJ7koxF+A
	3M3sn6GM9tPOxaXHkUfGi9eSyAoR4ppIk3lhPpxRj2SQiqI684OMVoRSdhh4T2R59QtT
	suc15wx6CHQpRvyHuqGWRSg9O2HBzkw7YO94zW57J0jdHNVav5ogtIqldqkPVx3lPCQE
	m9bA==
X-Gm-Message-State: ALoCoQmj5UamWFBMGgqEvkdpOzo4Ue++1kQjgYskVTQKBKNr9u1UF4Zs8FtrgyzKdOGJh+C0rR4m
X-Received: by 10.194.109.9 with SMTP id ho9mr13394066wjb.29.1422632726166;
	Fri, 30 Jan 2015 07:45:26 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id ej10sm7467950wib.2.2015.01.30.07.45.12
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 07:45:24 -0800 (PST)
Message-ID: <54CBA714.6000507@m2r.biz>
Date: Fri, 30 Jan 2015 16:45:24 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Paul Durrant <Paul.Durrant@citrix.com>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>	<54CB9266.4060800@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
	<54CB9849.2010102@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
	<54CB9FC4.2060108@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD8F5@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD8F5@AMSPEX01CL01.citrite.net>
Content-Type: multipart/mixed; boundary="------------080908030705010802070909"
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------080908030705010802070909
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit

Il 30/01/2015 16:31, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>> Sent: 30 January 2015 15:14
>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 30/01/2015 16:07, Paul Durrant ha scritto:
>>>> -----Original Message-----
>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>> Sent: 30 January 2015 14:42
>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>> after
>>>> save/restore
>>>>
>>>> Il 30/01/2015 15:31, Paul Durrant ha scritto:
>>>>>> -----Original Message-----
>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
>> devel-
>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>>>> Sent: 30 January 2015 14:17
>>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>>>> after
>>>>>> save/restore
>>>>>>
>>>>>> Il 28/01/2015 21:14, Paul Durrant ha scritto:
>>>>>>>> -----Original Message-----
>>>>>>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>>>>>>>> Sent: 28 January 2015 09:19
>>>>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
>> problem
>>>>>> after
>>>>>>>> save/restore
>>>>>>>>
>>>>>>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
>>>>>>>>>> -----Original Message-----
>>>>>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-
>> pv-
>>>>>> devel-
>>>>>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>>>>>>>> Sent: 22 January 2015 10:10
>>>>>>>>>> To: win-pv-devel@lists.xenproject.org
>>>>>>>>>> Cc: Paul Durrant
>>>>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
>>>> problem
>>>>>>>> after
>>>>>>>>>> save/restore
>>>>>>>>>>
>>>>>>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>>>>>>>>>> Hi, I installed winpv driver build of 15 january on Windows server
>>>>>>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>>>>>>>>>> xl save/restore didn't show any errors, trying to connected with
>> rdp
>>>> I
>>>>>>>>>>> was unable and with spice I saw screen with data and time (time
>>>>>> update
>>>>>>>>>>> after restore) but doing ctrl+alt+canc it changed something in
>>>> screen
>>>>>>>>>>> only after 5-10 minutes and still without showing login field.
>>>>>>>>>>>
>>>>>>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from
>> official
>>>>>>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6
>>>> from
>>>>>>>>>>> xen build.
>>>>>>>>>>> DomU xl cfg:
>>>>>>>>>>>> name='w2012r2-01'
>>>>>>>>>>>> builder="hvm"
>>>>>>>>>>>> memory=8192
>>>>>>>>>>>> vcpus=4
>>>>>>>>>>>> acpi_s3=0
>>>>>>>>>>>> acpi_s4=0
>>>>>>>>>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>>>>>>>>>> 18:2a:f2,script=vif-openvswitch']
>>>>>>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>>>>>>>>>> disk=['/mnt/vm/disks/w2012r2-
>>>>>>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>>>>>>>>>> boot='dc'
>>>>>>>>>>>> device_model_version="qemu-xen"
>>>>>>>>>>>> viridian=1
>>>>>>>>>>>> vnc=0
>>>>>>>>>>>> keymap="it"
>>>>>>>>>>>> on_crash="destroy"
>>>>>>>>>>>> vga="stdvga"
>>>>>>>>>>>> spice=1
>>>>>>>>>>>> spicehost='0.0.0.0'
>>>>>>>>>>>> spiceport=6000
>>>>>>>>>>>> spicepasswd="test"
>>>>>>>>>>>> spicevdagent=1
>>>>>>>>>>>> spice_clipboard_sharing=0
>>>>>>>>>>>> spiceusbredirection=4
>>>>>>>>>>>> soundhw="hda"
>>>>>>>>>>>> localtime=1
>>>>>>>>>>> I added in attachments qemu logs (before and after
>> save/restore)
>>>>>> with
>>>>>>>>>>> xen trace enabled.
>>>>>>>>>>>
>>>>>>>>>>> If you need more informations tests tell me and I'll post them.
>>>>>>>>>>>
>>>>>>>>>>> I have also another small question:
>>>>>>>>>>> is ms_vm_genid needed for this case? for what I understand is
>> only
>>>>>> for
>>>>>>>>>>> active directory controller and this it isn't.
>>>>>>>>>>>
>>>>>>>>>>> Thanks for any reply and sorry for my bad english.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> I also tried to uninstall the pv drivers from control panel but
>> windows
>>>>>>>>>> crash, minidump in attachments.
>>>>>>>>> I'm re-working the FIFO event channel code at the moment so I'll
>> run
>>>> a
>>>>>>>> quick suspend/resume test when I'm done.
>>>>>>>>>        Paul
>>>>>>>> Thanks for your reply.
>>>>>>>> I did other tests and seems that save/restore problems with
>> windows
>>>>>> 2012
>>>>>>>> was for missed ms_vm_genid="generate" even if clean for now (no
>>>> active
>>>>>>>> directory or other server services enabled nor domain member).
>>>>>>>> Remain windows crash on winpv drivers uninstall with minidump
>> refer
>>>> to
>>>>>>>> xenvif and other important and occasional problem:
>>>>>>>> network not working after some time and after 2-3 minutes all
>>>> windows
>>>>>>>> become unusable.
>>>>>>>> I hope these problem will be solved by new network pv driver
>> patches,
>>>>>>>> I'll test them ASAP when build with them will be ready.
>>>>>>>>
>>>>>>> I pushed my big series into xenbus today. You should definitely take
>>>> that; it
>>>>>> fixes several bugs in FIFO event channels and a couple of other things.
>>>>>>>       Paul
>>>>>> Thanks.
>>>>>> I tested now new pv drivers build on a windows 7 64 bit domU.
>>>>>> On update I saw a strange thing, xenvif and xennet even if updated
>>>>>> showed message "Ready to use" instead "Driver updated".
>>>>>> After update of all drivers components I rebooted windows but it didn't
>>>>>> start, stay blocked on windows logo, seems there is a critical
>>>>>> regression in latest pv drivers build :(
>>>>>> DomU's qemu log with xen-platform trace in attachment.
>>>>>>
>>>>> I don't see either XENVIF or XENNET loading at all so perhaps the
>> problem is
>>>> with PV storage and Windows is unable to load the drivers? Does this
>> happen
>>>> if you fresh-install a VM? I tested on Win7 64 and didn't see any problem,
>> but
>>>> it was a fresh VM in my case.
>>>>>      Paul
>>>> Is a windows 7 with only few things installed that I use for new xen and
>>>> pv drivers testing only.
>>>> There was installed previous official builds from here:
>>>> http://xenproject.org/downloads/windows-pv-drivers.html
>>>> Previous update was 2-3 weeks ago and reboot was succesfull, update of
>>>> today not.
>>>> I didn't have installed/updated any other software in this domU between
>>>> the latest 2 pv driver updates.
>>>>
>>> Ah, I wonder if I've unwittingly introduced a dependency on the per-vpu
>> event channel callback patch into Xen. I did my testing with that in place. I'll
>> try running on 4.5.
>>>     Paul
>> My actual testing dom0 where I tested the new pv drivers is xen 4.5.0
>> with some patches:
>> https://github.com/Fantu/Xen/commits/rebase/m2r-testing
>> Including backports of this 2 patches:
>> x86/hvm: add per-vcpu evtchn upcalls
>> x86/hvm: extend HVM cpuid leaf with vcpu id
>>
> In that case I can't really think of anything. As I said, it worked for me when I tested it all. I'll give it another try just to make sure.
>
>    Paul

I restored the domUs from backup of 10 days ago, when was working, after 
backup I didn't install anythings until today when I installed latest pv 
drivers build and windows was unable to boot after reboot.
Screenshoot of software installed in attachments.

Thanks for any reply and sorry for my bad english.


--------------080908030705010802070909
Content-Type: image/jpeg;
 name="pv-screen1.JPG"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="pv-screen1.JPG"

/9j/4AAQSkZJRgABAQEAYABgAAD/4RB6RXhpZgAATU0AKgAAAAgABAE7AAIAAAAETTJSAIdp
AAQAAAABAAAISpydAAEAAAAIAAAQauocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6hwABwAA
CAwAAAhcAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABNADIAUgAAAP/hClxodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvADw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3pr
YzlkJz8+DQo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj48cmRmOlJERiB4
bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMi
PjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1h
ZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50
cy8xLjEvIi8+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEz
ZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2Rj
L2VsZW1lbnRzLzEuMS8iPjxkYzpjcmVhdG9yPjxyZGY6U2VxIHhtbG5zOnJkZj0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpsaT5NMlI8L3Jk
ZjpsaT48L3JkZjpTZXE+DQoJCQk8L2RjOmNyZWF0b3I+PC9yZGY6RGVzY3JpcHRpb24+PC9y
ZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSd3Jz8+/9sAQwAHBQUGBQQHBgUGCAcH
CAoRCwoJCQoVDxAMERgVGhkYFRgXGx4nIRsdJR0XGCIuIiUoKSssKxogLzMvKjInKisq/9sA
QwEHCAgKCQoUCwsUKhwYHCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioq/8AAEQgDAAQAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAAB
AgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGh
CCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVm
Z2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfI
ycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAAB
AgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRC
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
0IoxCqFZCY3cB9wyFwpPy4OQO2awl8f2V9pEtx9k1bTopNNmv7e4aKHdLHGBvMYLMNw3DhwA
eoyOaSi2PfY7Gkrl9S8XLardW02n6tAsWny3n26IWzYjRc7wC5wxPADIASDxgHE0njKwtvEd
loc6yi5vUDQyGWA7soW5jD+YPukbtm3Pem4tK4rq1/6/rU6E0wiuE0/4l6fYaJoaa/cGXULy
yiuJ3Dwx7Q5xu2s6luQfljDHjpyM2/GutNputaXbTeI/+EftJ7a6kefEPzunl7B+9Vs/ebgY
JqnCSdn5/gG7sdaRTCK5YeN00vTtBHiO1kt7zU4ot4EkSbJGKqR5bOJDywztVsA89KsW3jK0
utUSzFhfxRyXc1kl3IiCJpo925Rh93IQkHbg9M5yKfK1/XYm+lzeIptc1Z+PtNu7Zbm4s76w
tZLKS+inuo0CyxR434CsxyNw4IGeoyOaoQ+OoNcn0waLIYg2orBcxmSGXdG0Erj5o3dRkoO4
YbeQM81yyQnp/XzO3U0+uH0jxsyeHNPlvbW91G6/s6O9vpbWOPEKNn52BZc52sdqAn5Tx0z0
mo65Dp9payxwT3sl5II7aC2Cl5SVLcbiqgBQSSSBgeuBSlBp2GaZpprk/DXiObUryGO+mu1m
nnvxHA0UaqEimCgPxuDKGAGDg85zwa62k00A002nGkNAhK3qwa3qyqdDSAUUUVkWFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBkoc08VAjVMDmt2ZDhVPVtLh1iw+yX
TSJH5sUuYyAcxyK46g8ZUZ9quVn65qy6LpTXZhadzJHDFErBfMkdwiDJ6Dcwyew9aFe6sMTW
dEj1n7I32u5s57OYzQz22zcpKMh4dWU5ViOmfTFch4j8H3MWlDSvDkWrs02nDT3uFubdYHTJ
C+fvPmfLuY5jXJBxz0G/c69rNvc2WnJpFlJqt1HLMYhqDCBIoyoJ8zydxYl1AGz1545zLj4g
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
cYzwDzXSGmGqUmncTX9f16DDSU402gQU4Gm0A0AOrarFrarKoaQCiiisiwooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKAMOikJCqSxwBySe1Zlx4gsoHRVbzt+dpR0AOO
uCxG78M10tpK7MDUqtfWFtqVr9nvY/Mi3pJt3EfMjBlOR6MoNLbXtvd58iVWYDJToy/UHkVY
p+YFBNB0wLEotyBFdveJiRwVmfdubOe+9uOgzwOBUK+ENG8jy2junbz1uBM9/O0wdVKgiUvv
AAJGM45PHJrVBxUqmi7Ww9zE/wCEL0LzrmQ2chNzHNE6m5lKBZjmQKu7CbjydoHNS3HhPRrp
naS2kWR5lmMkNzLE4dY/KBDKwI+QbSAcEdc1sUtTzPuMxP8AhDtD8lYltHSJbI2HlpcyqrQE
EbGAbDY3NgnJGeCK240WONUQYVQFA9AKWihtvcBaWkoqQFpc0lFAxaSiigApKWkoENNMNPNN
NMBhphqQ001QhtFFFMQoNbdYdblZVDSAUUUVkWFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQBzGqRtNo95HGMs8Dqo9SVNeeXcd9p9/Lr9x5MlhBdNIVUkyyAkrH1GMA
MuOeBXp1c3q3hiS9he2t5cWsjKxj83yyuCDgHa2RwMdCOmcYA0q+0kvZx+GWk+7i9JW7O2xz
ShGXvfajrHtfpcr+Fb5dVvmu4IHgiVZVCOMbcmPpgnjKv+INavijVW0bw1eXcW4z7PLgVELs
0rnagCgEn5iOAKn0fSYtIsVgiwTj5iBgfQe3J9Tkkkkkmrc1vDcbPPhjl8txIm9QdrDowz0P
vVU6VOjFU6a91bX1dvUvmm/enq/1PMRf3Fh4bvdG0G7urM2d7ZyQSXtnPE7wyyorAByjY8zf
k9CDt75Gm9/q9rceIX1Sex1OGDU7KKOCW0fYjP5HzKGkYLgMSB/e+bPauyntNK1SS4iubezv
HRfInSRFkKqcPsYHPB+VsH2NVpLLw5a3Tme20uGdY4VbfHGrBN4EQOecb1AXtlRjkV0qavqv
60/y/Emxmjxdcos8d01tBLpiXEmqSeS7rEqcRFVDZ+cEOBk8Bh15FGDxT4mudMvY9tjbatb3
q2sME9nu+0M8Suq7Y7hgmMklt7YVScDGK7QWFmzXLNaQFrtQtwTEMzADAD8fMMHHPaso6B4P
lmGjnSdDeWNftAsTbQlkB+Xf5eOB2zis049izIfXtQtdYutOtIdNgvbjVIbM3ht2CMxtBKzu
ocFz8pVRuHG3k45WLxL4gvryx06yOlx3MpvUmuXhkkiY27ooZEDg4O4ggscHucYPTtoWkSWM
llJpVk1rLt8yBrdCj7QAuVxg4CqB6AD0qeHTrG3FuLezt4hbRmKDZEq+UhxlVwPlBwOB6Clz
K39dv8+gdv6/r/gHDweOPEGqTaZHoukRzPLpsF/cxgId3mMQVUvNGVA2H5gJOoyBjno9c1TU
otbsNJ0iSztprqGa4a4vImlQLHsG0KrpknzAc7uAp4Pac6L4c1e2gU6bpd9BZM0UAMEciwFT
hlXghSCMEDuParmo6Tp2sQLBq2n2t9Erb1juoVlUN0yAwPPJ5pylFvRd/wDgfcC3MWTxPdHw
Haa1FDbxXN2IEXzWJhjaV1QOTwSg3bu2RjkZzXPWF9dW3im9W7i06/u5dfigaVIiFQiwzuQF
iY2+XB5OMsK9Cntba6s3tbmCKa2dNjwyIGRl9Cp4I9qzNOs/DTIkGkW2klVVblI7WOPABUos
gC9ioZQ3pkUlJa6f1p/l/Vg6f1/X9eZzw8V60mlGCdoBr7TrELBdMbMZKFyuWuFRxtVj5gkC
4GMZ4rCuNe8Sarp+q6lb6lb2SP4XjvBAkMjeUxEu4owlAVsqcPg8bRztye+Tw94YEL6PHpGk
iIMty9kttFtBOVEhjx1+UgNjsfSnyWHh6NmlltdMU6fAY2do4x9miKklSf4FKk8cDFPmjrZf
1Ya3/rvf8jm21vUNK1EvcxafO9vp9nPfXiWzJI8LSyK/JcnCKN2CT0f1GI9c8a6raaO97piW
8rstxdwQm23brSLAEjO00YUEkHI3HDrhTg10/wBn8OaXCLfytLs4poBEItscavEWwFxxlS0m
MdMv6mp7vQdIv4beK+0qyuY7UYgSa2R1iGMYUEfLwAOPSjmV72/r+v1Jirb+X5f1+By2s6zq
7Q606/2XeaXZ6ZLPPbzWTna5i3JCzeZtfI+ZvlHylf72QS+KNVSe7mtl0+Oy064tbWS1eNvO
mMqxnKMGwv8ArQFXa2dp5GeN6Tw/4ZXVN8mkaSL+6R+WtovNlTG1+2WGGAPscHrVuTRdLk1K
HUJNNs3vYF2RXLQKZI154VsZA5PT1oUo9v6/rQLO39eRytr4n1ptSgkulsW0+fVrnTViiicT
Dy/NKvuLY58vBXb757CXwX4g13xFGL3UdOSDT7mETW0qBBtOfuZEzl+D1Kx4KnjnA6gadZLs
22duNkzTpiJflkbOXHHDHc2T15PrUFromlWF9NeWOmWdtdXGfOnht1R5MnJ3MBk8880KStsD
1/rz/wAi0RSU40lSIbWkYYMn9xF/3wKzquNMoY8jr60pajRJ5MH/ADwi/wC+BR5MH/PCL/vg
VkeIdbGheGtS1UIspsraScR7sbiqkgZ7dKwI7nXNA1DRZNU119Vj1Oc211A9vEiQuY2dWh2K
GCgptw7Pwc5yOY9R9L+v4HbeTB/zwi/74FHkwf8APCL/AL4FcZZ/Ee1v9PsLqz0TV5W1BGmg
gEcPmNAoXdMR5mAoLgYJ3E9FI5psvxR0aC30K4mhuEg1xY2t2eWBWTewUAxmUSNgsM7FbAPN
O2tg2O18mD/nhF/3wKPJg/54Rf8AfArkbX4g2V5qyWI0/UYI5byewjvpEjELTxb9yj5y3IjY
g7dp6ZzkVBp3jtZLXQ0h0rWdQTVYVeC8f7IGf5CxLqJFKkAckIFyQB1FJa6j62O18mD/AJ4R
f98CjyYP+eEX/fArjX+ItvBpF/qF7o19Zx2FyttKLq5s4wXIydrm48s4yAfmzk45IIHQaPrd
rrmiWeqWLH7PeQrNHvGGCsMgEetNK+39XFc0vJg/54Rf98CjyYP+eEX/AHwK4nxL8T9O8La0
mmahpOrSyzY8iS3hjdJ844Q7wScnGMZ/MZ6y2vPPtYpnieBpEDGKUjcmR0OCRkexNPlaVxcy
LXkwf88Iv++BR5MH/PCL/vgVF5y/3h+dc9451S70/wAKyTaXeNZ3L3VrCJ41RmRZLiNGIDhl
ztY9QamzHc6byYP+eEX/AHwKPJg/54Rf98CuAm1++8PalfaXrGsXl9bxiyntr2OCAXAE0/lG
J8KIyNwHIUHazdwDV2bx1a3enXdzDDqVraWt/HafbIjbN5sn2hYioUuzKNx53Kp2nI5xQtbW
DY7LyYP+eEX/AHwKPJg/54Rf98CuQtviJYXGqLaNp+owwveT2KXskaeS08O8sgw5fkRsQduD
0znIrPn+JN1Pb+H7vSPD17Laate+SHeS1Jkj8p3BTbPgHK/xdArAgHGRa7eX47Del7+f4Hf+
TB/zwi/74FHkwf8APCL/AL4FcD4h+JFtAviLSLAvbaxp+mXN1DIZbeUZjQEHasjMv3lIEirk
Z60QeOpNLj8QXmsObm2sbq2iiUS28Hlh7aJz80rxr99j1bPOBS03+f42Drb+tLf5nfeTB/zw
i/74FHkwf88Iv++BXJ/8JWusx6DLok7xwX8R1CVjGCwtlUEqc5ALMyL9N2DxkM8MzavrdjYe
IrvXJIo72NbhdLihhNukbjKqWKmQuARlg4G7+HHFVZ3t/X9b/cK+h1/kwf8APCL/AL4FHkwf
88Iv++BXDJ8VtFMeqF7e68zS5IY5oYXguGJll8pceTI4yG6qSGA/hqZPiRafaGiudF1a18m7
js7t5Uh22kkhUR7ysh3Bt6nKbgMjOKS12G9Ds/Jg/wCeEX/fAo8mD/nhF/3wK4Pw946lmuZr
LVoL1hJq95ZQagIY1gUpJJsi4IbOxR820qTwWzkU5PiVpWn6b4ea7a8mTWI4vJubiS1SUl2C
gvEHVicsM+WjAZoWtrdbfiD0bXY7ryYP+eEX/fAo8mD/AJ4Rf98CovOX+8Pzo85f7w/OnZiu
S+TB/wA8Iv8AvgUeTB/zwi/74FRecv8AeH50ecv94fnRZhcl8mD/AJ4Rf98CjyYP+eEX/fAq
Lzl/vD86POX+8PzoswuS+TB/zwi/74FHkwf88Iv++BUXnL/eH50ecv8AeH50WYXJfJg/54Rf
98CjyYP+eEX/AHwKi85f7w/Ojzl/vD86LMLkvkwf88Iv++BR5MH/ADwi/wC+BUXnL/eH50ec
v94fnRZhcl8mD/nhF/3wKPJg/wCeEX/fAqLzl/vD86POX+8PzoswuS+TB/zwi/74FHkwf88I
v++BUXnL/eH50ecv94fnRZhcl8mD/nhF/wB8CjyYP+eEX/fAqLzl/vD86POX+8PzoswuS+TB
/wA8Iv8AvgUeTB/zwi/74FRecv8AeH50ecv94fnRZhcl8mD/AJ4Rf98CjyYP+eEX/fAqLzl/
vD86POX+8PzoswuS+TB/zwi/74FHkwf88Iv++BUXnL/eH50ecv8AeH50WYXJfJg/54Rf98Cj
yYP+eEX/AHwKi85f7w/Ojzl/vD86LMLkvkwf88Iv++BR5MH/ADwi/wC+BUXnL/eH50ecv94f
nRZhcl8mD/nhF/3wKPJg/wCeEX/fAqLzl/vD86POX+8PzoswuS+TB/zwi/74FHkwf88Iv++B
UXnL/eH50ecv94fnRZhcl8mD/nhF/wB8CjyYP+eEX/fAqLzl/vD86POX+8PzoswuS+TB/wA8
Iv8AvgUeTB/zwi/74FRecv8AeH50ecv94fnRZhcl8mD/AJ4Rf98CjyYP+eEX/fAqLzl/vD86
POX+8PzoswuS+TB/zwi/74FHkwf88Iv++BUXnL/eH50ecv8AeH50WYXJfJg/54Rf98CjyYP+
eEX/AHwKi85f7w/Ojzl/vD86LMLkvkwf88Iv++BR5MH/ADwi/wC+BUXnL/eH50ecv94fnRZh
cl8mD/nhF/3wKPJg/wCeEX/fAqLzl/vD86POX+8PzoswuS+TB/zwi/74FHkwf88Iv++BUXnL
/eH50ecv94fnRZhcl8mD/nhF/wB8CjyYP+eEX/fAqLzl/vD86POX+8PzoswuS+TB/wA8Iv8A
vgUeTB/zwi/74FRecv8AeH50ecv94fnRZhcl8mD/AJ4Rf98CjyYP+eEX/fAqLzl/vD86POX+
8PzoswuS+TB/zwi/74FHkwf88Iv++BUXnL/eH50ecv8AeH50WYXJfJg/54Rf98CjyYP+eEX/
AHwKi85f7w/Ojzl/vD86LMLkvkwf88Iv++BR5MH/ADwi/wC+BUXnL/eH50ecv94fnRZhcl8m
D/nhF/3wKPJg/wCeEX/fAqLzl/vD86POX+8PzoswuS+TB/zwi/74FHkwf88Iv++BUXnL/eH5
0ecv94fnRZhcl8mD/nhF/wB8CjyYP+eEX/fAqLzl/vD86POX+8PzoswuS+TB/wA8Iv8AvgUe
TB/zwi/74FRecv8AeH51zt1LJHfRyHfBEZZP9IgQtIfkuOg8vDH5fu7n+5H8o3UWA6fyYP8A
nhF/3wKPJg/54Rf98CuWa/H2OM/2zrwzIw3jS8ueF4K/Z+AOxwM5bk446Tzl/vD86OVhcl8m
D/nhF/3wKPJg/wCeEX/fArE8SeJofDOjvqdxZ3d5BEf3os0V2jX+8QWHA746fTJqr4S8a2nj
GxkvbCxvra2Rtqy3aIglPfbhjnHc9P1w+V2uLmV7HS+TB/zwi/74FHkwf88Iv++BUXnL/eH5
0ecv94fnSsx3HTmytojJcrbxRjq8gVQPxNRWt1pd8CbKSzuQOvksj4/KvI/H3jD7LrS/aCxh
SVhhWwVjRyhCk5AZirfN9KhufEEdnrGgHTheW15qCnzrW5m857UkgRsXPOGzyp7eldSwlR01
Pve3yM/ax5uU9q8mD/nhF/3wKUQwZH7iL/vgVRsNQW9022uhhfPiWTGem4A/1qysylhyOvrX
LY0uU8UYpaK0JExWN4rv7jTPDk11bTfZirxrJclA/wBnjZ1V5MHj5VJPPAxk8A1tUUdQPJzr
t5Yx6vPpGsxXENxrEMMurzPHEix/ZVwxkEbxrlgq79hU57ZBDr25nu2knu7u1vZmtNL3XFpK
JY5Mag4yGCqCeOcKBnOAK9WorVTSadtrfghPVW/re5w3h3xBq9943urW+1OwijS4nhOlvcqJ
1RSdjrF5QfkANuMjKQxIA4AhlmvdFvvGOp2+pT/u9StPM8yOIpHEVgLt9zOFjLDJPCjPXLV3
9SKajmSadun6p/oV1ZwEnie+1fV3g0TWlWzl1uKziubaOOQCE2ZkYISCCd4JDHPPqOKryeJ5
xHYWV94v/s29F/cwSSym1jSWCGcqXYPGfnIAUBccknGFNek0tJSStoD1/r1/r5Hnkvia9aWK
PU9f/sWxa91CNtR2QrzFNtih3SKUGV3Hkbm2cHrUV1rviWewurn+05NPlsfD0epGFLWP97Nm
X7wdSVVggyowR2Iwc+k0UuZJbD6/13v/AMA8/l8W3svxBsrK1vhHbvOsFxYyyx7jutzJvSMR
bwmSo3mTGQRtrm3vLuXwLY2R1GSzsrXTNKuiUWP5SboqzFnU4ACq3oNg7ZB9loqlNLZdvwv/
AJisedP4klk+JGmW1lqaXEKSC0kSaWEySo8HmGVESINsYiM7/MCkggLjFXvFkLDxRBp4Rmh8
RRR2suBkYhk3uDwfvRPIPwrt6KnmWmm34j11PMdP1C/ttLvb2N2in0qay0NXdAd2y4VZWGRj
5lkXkentmtGz1jWxqdrdzao9xBca5d6d9iMESoI084odwXduBjAznBHbPJ72ihzvuv60/wCD
94W0/rtb/L7jySDxDfXOpWepWuqf2xq0Wi38z2IgUfZLj90fJ2oA3BGNrEvx15rVh8TXcNvc
3lj4hOu6ZZR21zdXflRHYC5E0eY1A4j+fbjcuBk8gV6LSVXOu39Xb/X/ADC39fceeQ+IfEU6
XVrPd21hcRW0t+1xdKqRwxSIphVyQQNrM4LYP+p5zk56PwhqY1bw+twLq4vMSvGZ52hbeVOC
VaEBGTPQgfXByK3zSGk5JrYWow0008001IDaJP8AWN9TS1X+2pJ86wXZDcgi2c5/SmIW4t4r
u1ltrmNZYZkMciMMhlIwQfwrD0/whBZXlrPcanqOorYqVsYbuRClqCu3I2opc7fl3SF2xnnJ
JO39qX/n3vP/AAFf/Cj7Uv8Az73n/gK/+FKyC5xus+GpNI0bSLfw9b65c3Gm2z2sEthcWqMY
yFykpmIGGKryi7htyMd00v4bQw6RpkV5qV5FNb2dpBdxWrp5U7W7b0yWQtgMT0K5HUV2f2pf
+fe8/wDAV/8ACj7Uv/Pvef8AgK/+FPrf+v61Bu5jx+EbCIWwWW5/0bUptTTLLzLJ5m4H5fu/
vWwOvA59aNj4DTTJrV9N8QatbLa2aWUcYFs48tef44SQSeSQRnA9BjpvtS/8+95/4Cv/AIUf
al/597z/AMBX/wAKVl/X3fkF3/Xrf8zl4PAKQWFnbL4i1hjYTedazMLbfExV1bpDhiwkbJYM
2eQQc56DR9Lh0TRbTTLV5HhtIliRpWyxAHc4GTVj7Uv/AD73n/gK/wDhR9qX/n3vP/AV/wDC
mATWsFxJDJPDHI8D74mdQTG2CMj0OCR+NS1F9qX/AJ97z/wFf/Cj7Uv/AD73n/gK/wDhQBLW
dr2ixeINHfT57ie2VpI5BNbld6NG6upG5WHVR1Bq59qX/n3vP/AV/wDCj7Uv/Pvef+Ar/wCF
AXMNvBlnNZzx317e3lzczQSz3szIJX8mQPGuFQIqgjoqjqx6kmoZ/AlleX95eX+oXtzcXTQE
uywoY1imEqINka7huAGX3HHQjJNdF9qX/n3vP/AV/wDCj7Uv/Pvef+Ar/wCFGl7hfSxjJ4Rs
Y1twk9ypttSm1KNty582XzNwPy/dHmtgdeBye9KPwBaozTnVtQN+18t8b4LbrIZFjMfKrEIy
NrMCSuTnrwMdN9qX/n3vP/AV/wDCj7Uv/Pvef+Ar/wCFJJL+v67IG7/1/XdnLt8O9Pf7Wsmo
6k8FxDdwrbl49kC3LbpSuE3E55BYtip7jwLZS3TXVvqF/aXRukulnhaMlGWAQYAdGXBQc5BO
SSCK6H7Uv/Pvef8AgK/+FH2pf+fe8/8AAV/8KLLYLv8ArzMnw94Yt/DwZYZ5LgLBFbQtKBuS
GMHCk9yWZ2JwOo44zUdj4Sj02bZZ6tqUem7mZdM8yPyEz1Cts80Lk5Ch8DpjHFbX2pf+fe8/
8BX/AMKPtS/8+95/4Cv/AIUNJ7hdnLWnw50+2tPs8mpalcoI7WGPzXiHlR28vmRou2MDGeCT
kkd881pXXhKwvP7R8yW4H9o3lveS7WX5Xh8vaF46HylznPU8jtr/AGpf+fe8/wDAV/8ACj7U
v/Pvef8AgK/+FMDn7PwPaWmqC6Oo6hPCl5NfR2UrRmGOeQtlxhA3G9sAsQOuM81UT4b6dDHa
xW+palFDBBbQPErxYnW3cvHvJjJ4JOdpUHuK6v7Uv/Pvef8AgK/+FH2pf+fe8/8AAV/8KSSW
wXbJaKi+1L/z73n/AICv/hR9qX/n3vP/AAFf/CmBLRUX2pf+fe8/8BX/AMKPtS/8+95/4Cv/
AIUAS0VF9qX/AJ97z/wFf/Cj7Uv/AD73n/gK/wDhQBLRUX2pf+fe8/8AAV/8KPtS/wDPvef+
Ar/4UAS0VF9qX/n3vP8AwFf/AAo+1L/z73n/AICv/hQBLRUX2pf+fe8/8BX/AMKPtS/8+95/
4Cv/AIUAS0VF9qX/AJ97z/wFf/Cj7Uv/AD73n/gK/wDhQBLRUX2pf+fe8/8AAV/8KPtS/wDP
vef+Ar/4UAS0VF9qX/n3vP8AwFf/AAo+1L/z73n/AICv/hQBLRUX2pf+fe8/8BX/AMKPtS/8
+95/4Cv/AIUAS0VF9qX/AJ97z/wFf/Cj7Uv/AD73n/gK/wDhQBLRUX2pf+fe8/8AAV/8KPtS
/wDPvef+Ar/4UAS0VF9qX/n3vP8AwFf/AAo+1L/z73n/AICv/hQBLRUX2pf+fe8/8BX/AMKP
tS/8+95/4Cv/AIUAS0VF9qX/AJ97z/wFf/Cj7Uv/AD73n/gK/wDhQBLRUX2pf+fe8/8AAV/8
KPtS/wDPvef+Ar/4UAS0VF9qX/n3vP8AwFf/AAo+1L/z73n/AICv/hQBLRUIulLFRb3hIGSB
bPx+ntTvtH/Tre/+Ar/4UASUVH9o/wCnW9/8BX/wo+0f9Ot7/wCAr/4UASUVH9o/6db3/wAB
X/wo+0f9Ot7/AOAr/wCFAElFR/aP+nW9/wDAV/8ACj7R/wBOt7/4Cv8A4UASUVH9o/6db3/w
Ff8Awo+0f9Ot7/4Cv/hQBJRUf2j/AKdb3/wFf/Cj7R/063v/AICv/hQBJRUf2j/p1vf/AAFf
/Cj7R/063v8A4Cv/AIUASUVH9o/6db3/AMBX/wAKPtH/AE63v/gK/wDhQBJRUf2j/p1vf/AV
/wDCj7R/063v/gK/+FAElFR/aP8Ap1vf/AV/8KPtH/Tre/8AgK/+FAElFR/aP+nW9/8AAV/8
KPtH/Tre/wDgK/8AhQBJRUf2j/p1vf8AwFf/AAo+0f8ATre/+Ar/AOFAElFRfaB/z7Xv/gK/
+FL9o/6db3/wFf8AwoAkoqP7R/063v8A4Cv/AIUfaP8Ap1vf/AV/8KAJKKj+0f8ATre/+Ar/
AOFH2j/p1vf/AAFf/CgCSio/tH/Tre/+Ar/4UfaP+nW9/wDAV/8ACgCSsl9LlfUBKkcMBDsx
uoyplIKyDoY/9tfvMw/drx1rS+0f9Ot7/wCAr/4UfaP+nW9/8BX/AMKLgUzpt0YlT+2r4MGJ
LhIMsDjg/u8YGPTuevGNCovtA/59r3/wFf8AwpftH/Tre/8AgK/+FFwJGUMpVgCCMEEdajt7
eG0to7e1iSGGJQqRxqFVQOgAHSj7R/063v8A4Cv/AIUfaP8Ap1vf/AV/8KLgSUVH9o/6db3/
AMBX/wAKPtH/AE63v/gK/wDhQB514/8Ah++uTrc2+/5ZDIpRd2N3LKyjkgnkEZIyeOag0/wX
cXniJtQ+zyW4O3aH8wiMhQu7dIAzH0GMD14r0z7R/wBOt7/4Cv8A4UfaB/z63v8A4Cv/AIVq
q9SMeRPT/MnlV72FhhS3t44YhhI1CKPQAYFSx/6xfqKrC9jPSG7P/bs/+FKt7GrA+Rd8HP8A
x7P/AIVkUWaKKKACiiigAooooAKVTikooAlBp1RqaeKkYtLSUUhi0tJRQAtFJmjNAC0lFFAC
UUGigBDSGlpKYCGmmnUhpiGGnvf22l+HjqF/J5Vra2vnTSbS21FXLHAyTwOgpprD8VwzXXw3
1m3tYnmnl0qZI4o1LM7GIgAAckk9qmd+RtCjb2iT/rY2o/EWlTWemXUV4rwas4jsnVWIlYoz
gdOPlRjzjGMdeK068pu9I1TTPEnhy1sLKebTJb/7dvVSy2Mv2eVZFf8AuozOrD/aLjjIFZ1s
PEJ8P3TWbeJBqw0S7/tQXRuNpvNo8v7Pu+Xdv37fI+XGP9mpatfy/wAv6/AcXe3nb8Wez0V5
Fqmg6zDHrS2moeJJDDoiXlowvZyXvv3u4DB+Y/Kn7r7g3cIMipl/4SCX4ledqOoajZwCaA2s
MWnXc0EsRjXerPHJ5KHf5gJlQsvBBxtw+X3rf12/ry+4XNpf+uj/AF+89XoqlmjNHKLmLtFU
s0Zo5Q5i7RVLNGaOUOYu0VSzRmjlDmLtFUs0Zo5Q5i7RVLNGaOUOYu0VSzRmjlDmLtFUs0Zo
5Q5i7RVLNGaOUOYu0VSzRmjlDmLtFUs0Zo5Q5i7RVLNGaOUOYq6xokuszwiW/lhtISHEEIKl
5AchmcHOBwQBjB55IGNWNWWNVd97AYLYxn3qpmjNOztYV0ncu0VSzRmlyj5i7RVLNGaOUOYu
0VSzRmjlDmLtFUs0Zo5Q5i7RVLNGaOUOYu0VSzRmjlDmLtFUs0Zo5Q5i7RVLNGaOUOYu0VSz
RmjlDmLtFUs0Zo5Q5i7RVLNGaOUOYu0VSzRmjlDmLtFUs0Zo5Q5i7RVLNGaOUOYt2/8Ax/z/
APXKP+b1HquuabogtTqt0lsLu4W2g3AnfI3ReBx06ngd6itT/pU3+4n82rivGGm674k8RXFn
p+lW01la6c8Cz313JbL58/8AHGVhfeUVBzxguRUVNJf12NKWsf67npNRRXVvPNPDBPFJLbsE
mRHBaJiAwDAdDgg4PYg15Pqeu+JBpN9cXNjrkV5qHhoQ28FlazuIr9DKJCNgPlklkKucbgBg
nFQNpmpadceLJLKLXkvLueznd43uX8y1KwC4MRJKeaAJQAv7wAYUAACptr/Xe3/B9NS/6/Bf
529T2SivJ0stUvns7exm8SR6FNrihDPNdRXIt/sr+ZvdyJljMuAC5Bz0wNtTeFk14fEK8k1v
UtSRvtVygtH0+8a3kgyTCVn8w2wwoQ5CK+QQSSTkSu/68v8AMG7L+vP/AC/I9SoqtmjNAFmi
q2aM0AWaKrZozQBZoqtmjNAFmiq2aM0AWaKrZozQBZoqtmjNAFmiq2aM0AWaKrZozQBOP9a3
0H9aoRa9p83iKfQo3m/tC3gW4kQ20gQRscKwkK7DkgjAJPB9DifP7w/7o/ma8z8YJqk/jDV1
0iLVoZJLLTIVu7S3lUcXpMoWULtOI5MkAnjdno2F9pLuPo3/AFuj1aoorq3nmnhgniklt2CT
IjgtExAYBgOhwQcHsQa8m1e11TTLbVrVLjxBNZWeqrJZ24e/mkvIzaqTF9ph3SogkLEOSygj
BB6CI2l1pNz4umh03XVu9QltXT99fTJHE8cKyOrRv87Rtv8AljYSFV2ghegtfu/O39PtuH9f
1/Xkeoat4i0vQ226pdeQfss13jy2b91CFMjfKD0DLx1OeAa0Y5ElhWWM5R1DKemQa8Ol07xB
e+GVW7ttTvZU0jXbeOSa1mEjB2j8lSJC0gLKPlDszEDqSK1bka5eePrGBItYs7RXW1uI4lvR
HLAbU5l80SCCP52C4VfMDKDuGaOmm/8Aw/8AwPxDpf1/C3/B/A9Ztbq3vbWO5sp47i3lUPHL
E4dHU9CCOCKS6uo7OESyrKyl1TEMLytliAOFBOMnk9AOTgDNeNaHZzad4T8MWWoQ+KoNLgtp
o9QisxfCdLwCMIPk/e+VjzMbP3Wce1dbeDxCvwx01ZWvDrIlsfPMR/fY+0R792z/AGM7scfe
7VVlfTuvz/p+lmI7TT9TtNVhllsJfNSGeS3c7SuJI2KOOQOjAjPQ9qtVyXge2uLTSdRS6gkg
Z9YvpFWRCpZGuHKsM9iCCD3BrpM0ui+Q+rXm/wAycf61voP61h6x400TQdQey1Oa6WaO3FzL
5NhPMkMRLAO7xoyouUbliMYJ6VqZ/eH/AHR/M1xOo6g2j/Em/updM1K7jutHt4YPslhLMksi
yzkxl1Uoh+ZeXZQM5JA5qX/X3B0f9dUdvb6hbXcuy1dpVMKTLMsbGJ0bO0rJjY3TOASQCD3F
Wa8bk0fxRpOjppFtNqkRg0vSYQ9izssUn2xvO8sgbcrHgHj7oGRirlxo2s2Fxqstjd+IZf7O
1iyXTUkvLiVXt3MBnBBJ85fnlyX3bcHBGKu13bz/AFS/UX9fhc9YorxSdPFf23xRJPqWsR6h
5OoLbWkGnXpjkTYxtzFMJDbqQNhG1Fk3AqSSTnSvtO1bTv7TtI9T19bOWwsbgzuLy7ZrjzX8
1FMR8xNyqgYRkbAcgAcGVsn6fj/w36Dej/ry/wA/u1PU1uo2vXtQsvmRorljC4QgkgYfG0ng
5AORxkcipW+6fpXkdxN4mmsJ5LSz1uxtm0mwL26zzzSxr9pk+0CN3w5m8nnoJPu8BsCrNnFr
El7pw0ubxAmjHxBG0X2wz+d9nFs5cSeb+88oygD95+HG2nb+vnb+vmK/9fK53ZnitrN7i5lS
GGJC8ksjBVRQMliTwABzmm6fqNpq2lw3+mzrcWtxHvilXow+h5B7EHkHg1Bf6RY63pos9Vg+
0WxdXMTOwVipyMgEZAPODxkA9QKnstOtNMt3isIFgjbkopOM4xnH+egpDCiiiuowCiiigAoo
ooAKKKKAAHFSg1FT1NJjH0tIKWpGFLSYooAWiiigApKWkxQAUlLSUAJRS4opgNpKdikIoENN
Nit7uOFENs+VUA4dPT/ep5FatKU+VC9mpO9zK8q6/wCfV/8AvtP/AIqjyrr/AJ9X/wC+0/8A
iq4q21+0GqWekXF3rDXsywBpFlfy90qKwOfNBx84zxWnrVnJYWrSxazq2+TeIwJJFVWWMyc7
mzjETDvy/wBMDk1uiFGLvaW3odF5V1/z6v8A99p/8VR5V1/z6v8A99p/8VWbr/iLW9F1ayii
0fT7qyvr2K0hkOpOk5LjLN5XkFcKA7ff5C9ulbmpSajFZFtHtbW6ucjEd1ctAhHc71jc/wDj
tT7TS9jT2Kva7/Aq+Vdf8+r/APfaf/FUeVdf8+r/APfaf/FVjeHfF2pawpk1DTdMsIDqDWUM
o1RnF1sVt7Q7oUL4ZSoHGQrsDgDdu6f4h0XVrl7bStXsL6eNFkeK2uUkZUYAqxCkkA5GD3zR
7R9hexXd/wBfIj8q6/59X/77T/4qjyrr/n1f/vtP/iqx4PGtxJr0EMulJHpF1fzabb3wusyN
PGGzui2fKhaORQ28nKjIGaueIPEGoaFdW0v9kxXGlyTwW81wLvbMrSyBAUi2EOAWXOXU9cA4
5XtNtNx+xSvq9PT/ACLnlXX/AD6v/wB9p/8AFUeVdf8APq//AH2n/wAVWR4c8bSa7qVvDcaa
tpbajbSXemTi48w3EUbhWLrtHlsQ6MAC2Q3UEYrTHiO3/wCEkn0yQwwxQCOMzyzhd9xICywo
pHzNsG4855XAOTh+0fYPYru/w/yJPKuv+fV/++0/+Ko8q6/59X/77T/4qsRviDZ3PjJNB0eb
Sbna4jnluNUWJi/8UcKBWMrqOWGVAyozknF/S/Fkeq+MtV0KC1Ij06GOT7XvyJmZ3RlC46K0
ZGc9QRjihVG9l/SB0Ut2/wAOvyLnlXX/AD6v/wB9p/8AFUeVdf8APq//AH2n/wAVU0uuaTBr
EWkzanZx6lMu+Kye4QTSLzyqZ3EfKeQOx9KxL7x5p0et/wBmaXdabeyJa3U1xK2oKkdq8GzK
SlQ2zO85JHy7TwaXtPIPY9Lv8DV8q6/59X/77T/4qjyrr/n1f/vtP/iqy7fx9o+oXuo2GnX+
nPe6ZcRQ3CT3yIh3lASrDcTgvsGVGXG3jrWzHr+jy6zJpEWrWL6nEu6SyW5QzIMA5KZ3AYIP
TvT9o+wvZLu/w/yIvKuv+fV/++0/+Ko8q6/59X/77T/4qq7eLNMvLS8Phy/07Wr21hE5s7a+
QsVxkfdzjI6EjByORnNaun30Gp6bbX9m2+3uolmiYjGVYAjj6Gj2j7D9iu7/AA/yKXlXX/Pq
/wD32n/xVHlXX/Pq/wD32n/xVatFHtH2D2K7v8P8jK8q6/59X/77T/4qjyrr/n1f/vtP/iq1
aKPaPsHsV3f4f5GV5V1/z6v/AN9p/wDFUeVdf8+r/wDfaf8AxVatFHtH2D2K7v8AD/IyvKuv
+fV/++0/+Ko8q6/59X/77T/4qtWij2j7B7Fd3+H+RleVdf8APq//AH2n/wAVR5V1/wA+r/8A
faf/ABVatFHtH2D2K7v8P8jK8q6/59X/AO+0/wDiqPKuv+fV/wDvtP8A4qtWij2j7B7Fd3+H
+RleVdf8+r/99p/8VR5V1/z6v/32n/xVatFHtH2D2K7v8P8AIyvKuv8An1f/AL7T/wCKo8q6
/wCfV/8AvtP/AIqtWij2j7B7Fd3+H+RleVdf8+r/APfaf/FUeVdf8+r/APfaf/FVq0Ue0fYP
Yru/w/yMryrr/n1f/vtP/iqPKuv+fV/++0/+KrVoo9o+wexXd/h/kZXlXX/Pq/8A32n/AMVR
5V1/z6v/AN9p/wDFVq0Ue0fYPYru/wAP8jK8q6/59X/77T/4qjyrr/n1f/vtP/iq1aKPaPsH
sV3f4f5GV5V1/wA+r/8Afaf/ABVHlXX/AD6v/wB9p/8AFVq0Ue0fYPYru/w/yMryrr/n1f8A
77T/AOKo8q6/59X/AO+0/wDiq1aKPaPsHsV3f4f5GV5V1/z6v/32n/xVHlXX/Pq//faf/FVq
0Ue0fYPYru/w/wAjK8q6/wCfV/8AvtP/AIqjyrr/AJ9X/wC+0/8Aiq1aKPaPsHsV3f4f5GV5
V1/z6v8A99p/8VR5V1/z6v8A99p/8VWrRR7R9g9iu7/D/IyvKuv+fV/++0/+Ko8q6/59X/77
T/4qtWij2j7B7Fd3+H+RleVdf8+r/wDfaf8AxVHlXX/Pq/8A32n/AMVWrRR7R9g9iu7/AA/y
Mryrr/n1f/vtP/iqPKuv+fV/++0/+KrVoo9o+wexXd/h/kZkEdxHNIzW7/MqgfMvbd7+9T5m
/wCfeT81/wAatD/WH6D+tYDeJ3t/F+o6VqEFra6fY6fHfNqEl3j5WZlwylAFA8tyTvPGPU4i
Urv+uxpGPLG39as1czf8+8n5r/jRmb/n3k/Nf8aqjxV4ebS5dTXXtMNhCVEt2LyPykLY2gvn
AzkYyecj1p58SaGsVlI2s6eI9Qx9jY3SYuckAeWc/PyyjjPJHrSGT5m/595PzX/GjM3/AD7y
fmv+Nc14l8a3+h6xfW9po0F7aaZpyalezPfGKQRF5AwjTy2DkCJjgsuelbj+KNBjvfsc2taf
FdiHzzbSXSLKse3cXKE5A285x0pX0v8A1/Wg7Wdv6/rVFnM3/PvJ+a/40Zm/595PzX/Gs/xD
4otNC06K4RobqaaSARwCcKzxyTRxGQdcqPMBzjHQZGasP4l0KPUrjT5Na05b22jMs9s12gki
QDJZlzlQAQcntQBYzN/z7yfmv+NGZv8An3k/Nf8AGpVvrR7iOBLqFppYjNHGJAWeMYBcDuvz
DnpyPWp6Yinmb/n3k/Nf8aMzf8+8n5r/AI1copDKeZv+feT81/xozN/z7yfmv+NXKKAKeZv+
feT81/xozN/z7yfmv+NXKKAKeZv+feT81/xozN/z7yfmv+NXKKAKeZv+feT81/xozN/z7yfm
v+NXKKAKeZv+feT81/xozN/z7yfmv+NXKKAKeZv+feT81/xozN/z7yfmv+NXKKAKWZtx/wBH
f7oHVfU+/vS5m/595PzX/GrQ/wBYfoP61yupeNpLDxDNaLpqy6bZ3NtaXt6bja8Us+NgWPaQ
yjfHuJZcb+AcU+thdLnQZm/595PzX/GjM3/PvJ+a/wCNZWl+LI9V8ZaroUFqRHp0Mcn2vfkT
MzujKFx0VoyM56gjHFUv+E3uDqmlwrokpsdS1CSzhvjcptIVZDu2/eyTE2BjG0g7snbSWtvM
b0v5f8OdFmb/AJ95PzX/ABozN/z7yfmv+NZun+I5rzxjqOhT6XLaCzto7iOeSZGM6u8i5Crn
A/d5GTnnlR3jude1aaTUE0HR7e8FlMIfMur426OwTc/IjcjGVUccndnbt5V7K4W1t/Xc1szf
8+8n5r/jRmb/AJ95PzX/ABrj7P4mfb/st3b6Oy6UTZx3lxLcbZbeW6ClFEe0hwPMj3NuXG/I
BxW1ovis6i+u/wBp6e+kpo8wST7RMjnZ5Ky722ZVeG6Bm6dewp6Xv0/4H+aBa7Gtmb/n3k/N
f8aMzf8APvJ+a/41neEfEbeKdDbUXsXsCt1PbmCR9zDy5GTJ4GCducdumTW7RqLQpZm3H/R3
+6B1X1Pv70uZv+feT81/xq0P9YfoP606gZTzN/z7yfmv+NGZv+feT81/xq5RSAp5m/595PzX
/GjM3/PvJ+a/41la14sj0jxPouipam4l1OYxyOH2i2XY7Kx4OSxjYAcfdY54qp4o8ZSaB4i0
rR4IdLMupRyOkupambNMo0ahFxG+928zheOhoWtrdQem50GZv+feT81/xpVMu4ZgcDPJJXj9
aybnX9TsfFVhp17pdsLHUZnhtrmG+LzBljaQl4TGAFwhGQ7YyuRzxHceMI7f4iReFZrQqJ7E
XEd55nBkJkxFtx12xO2c9jxQGwtpaRS6PbXMr3JllgWRit1KoyVBPAbArOknaC6h8h5xmWNT
vuJHBBdVIwWI6E1r2P8AyLdj/wBekf8A6AKw7j/j7h/67xf+jVpgdFRRRXQYBRRRQAUUUUAF
FFFABSg0lFAEoNOqJTUgpMYtLSUUhi0UmaM0ALSUUUAFFFFABSUUlMQUGiigBK1Ky61KzmXE
4a38Kxre2eo3Gmap9tgSDcEmt/LLRoqjGWzj5a0b60u7jT7iCHR7gvJGyozm3G1ipXPDf7R/
AmuH1j4+29lfXEel6A+oWsRwlw14IvN9wu0kD0zz7Cr3hX42W2v6/baZqOivpgumEcMwuhMD
ISAqkBQRknGeecfWuX29Nu1z0P7JxUIufs3bdnbXmjXV94007Up3h/s/TreUxRgnzDcSYXcR
jGAm4DnPzmqXiDw7qK6HqcXhK4lXUNSYCR7/AFW4KRIWO/yt3mCJsEgbVABIP8IFdHcXltZ+
V9ruIoPOkWKPzXC73booz1J7DrTri4htLaW4upo4IIULySyMFVFAySSeAAO9a2Vv69Tj1ucd
H4e1ie30CCbTdJ0m10O9SWOGzv5LgGIQSx4G6FMEF19cjPPri/C3Q9Ql0Twrqd1b6faWVhpT
pbm1dmluDNsYmRSgCY2kkBm3Mc8YxXpysrqGQhlYZBByCKit7q3u0Z7SeKdUdo2aNwwV1OGU
47gggjsRVXabff8A4Ynp/XqcWngaa48dRaxPZWdha2t3JeIsGoTz/aZShRXMLKscJwSzFNxY
4GepLn0vxleeINOvdYstDvILOJCscWozQrHcEESzBDC28gEhAWGBk9TkdxWMPF/hpr64sl8Q
6Ubq1DtcQC9j3whPvll3ZXbg5z0xzU6WS/r+v+AN63fcxPC/hHU9L1PTm1SS0NpodlLYaeYJ
HZ50d0IeQMo2EJEi7QWBJJyOBUGreH7/AFHUPEOjQoYYdZntrwX53DyEVI43MbBSBMphRkyR
gsGGdhFd0rK6hkIZWGQQcgioprq3tnhS4niiad/LiV3CmR8E7Vz1OATgdgfSm1fR/wBa3/ML
9UecWnw+1yFGsnTRo7S8nsZ7meF5Fktza7FAiTZghliQjLLsLt9/AJ2PC/gO68MeLZ75Nbu7
3T20+O2jiufJ8wuJZHYsUiXI/eZBzuJZt2eK7C4uIbS1lubuaOCCFC8ksrBVRQMliTwAB3qh
ZeJtB1Gxe90/W9Ou7WORYXngu43jV2ICqWBwGJYADqcj1p3d/wCvQOlv601OVm8DXn/CfXur
GKO8sr26hutzaxdWzWzpGqf8e6AxTY2BgW2nnB4ANZP/AArvxFPpkNhOmiQJY6BeaPBNBLJu
nMqoEkcGMbB8hJUFsEkgnNeqUVKVlb+trfkO7vc8/uvBetStrFvG1h9mv7zT7xJmncOrQG3D
oU2YwRCxDbupAIHWpbHwbq0GpwW0407+zLTV7jVYrxJHNzI0pkPlshTauDKQXDnKqBtGeO7q
uL60a8ltFuoTcwxrJLCJBvjQ5wxXqAcHBPoab13/AK2/KyJStHl/rt+pwmneFrzwhpXh68MM
Vw2haNc2lxDYxvJJcSyGJlCKFywLIxJOOTn1I63wtpkui+EdJ0y4IM1pZxQyFTkblUA49s5q
TSfEWi6/5v8AYWsWGpeSQJfsd0k3l5zjdtJxnB6+lJa+JdCvtVm0yx1rT7nUIN3m2kN0jyx7
ThtyA5GDwcjind6/13f6jNOiorW6t721jubOeO4t5VDxyxOGV1PQgjgipaQBRUNteW17G0ln
cRXCK7Rs0ThgGU4ZSR3BBBHYipqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGj/WH6D+tee+M9Av5NW1
bWrq40ay00WlkIpb+7ZEaS3uTNtmBTaqMW25DMRgHBzgehD/AFh+g/rUdxeW1n5X2u4ig86R
Yo/NcLvduijPUnsOtD3TW4dGn/XU8q8O6dqXiW51HxJpUekyyQ+IlvbeNJ3+x3e20ED7ZxHl
sMzYkCEFkPA6jpdF8GXtj4g0vVbs2QaH+0JriKEsViluZI3Cx5UZACsCx2kk5wM4HZXFxDaW
0txdTRwQQoXklkYKqKBkkk8AAd6erK6hkIZWGQQcgimtNv60t+gPXf8Arf8AzZyepeBrbW/H
E+rauGnsWsILdbZLqWNZHSWRz5sakJInzrw24dePWhqHg/XNR8f22p3c9vPplreieEPfTDZD
5DRmIWwXyt25mbzCSxBxwOK7a3ure7RntJ4p1R2jZo3DBXU4ZTjuCCCOxFTUu39eYPW/n/lY
89j+H+qf2Fc2k93ayzx3NpDYOWbEdjb3CyojHbnzMBgeoJC896nsvBmqR6lBaXa6c+lWur3G
qJdrIxuZTKZD5bRlNq480gvvOVUDaM8dZBrukXOsTaTbapZS6lAu6azjuEaaMccsgO4D5h1H
cetX6P6/L/IO6/rt+Tscv4P8MXmgtctqdxFcNGFs7Axkny7OMkxKxIB3/Mdx5zheeK6iiigA
ooqvfahZ6XYyXmp3cFnaxDMk9xII0QZxyxwByaALFFR29xDd20dxayxzwSoHjljYMrqRkEEc
EEd6koAKKKKACiiigAooooAKKitbq3vbWO5s547i3lUPHLE4ZXU9CCOCKloAKKKKAGj/AFh+
g/rXGat4R1O/128SGW1Gj6le2l/dO8jieN4NnyIm0qwbyY/m3KV+bhuK7Mf6w/Qf1qJr21S+
jsnuYVupUaSOAyASOqkBmC9SASMntkU+odDgbTwDrHhzUdRudF1u8vI7jTY7G2W5MAkjkM0j
NKxWJchfNL5yWYl87vlrT17w/rCyeG7bwxYaY1hok6TAXV9JCxCxSRBAFhcYw4O7PbGO9dHZ
65pOoX9zY2Gp2d1d2hxcW8FwjyQnOMOoOV59aZc+ItFs7mK3u9YsIJ5p/s8cUt0is8vB8sAn
Jb5l+Xr8w9aS6W/rX/Ng+t/60t+SMD7D4ntvHOp64um6bLaS6etrDHFqDmdzE0rodrRKoLGQ
AgvhcZyah1Xwzro8J6foulLY3UUjM+sfaLx7Vrotl5ArpE+A8jEtwDtyB1yOoj1zSZdZk0iL
U7N9TiTfJZLcIZkXAOSmdwGCOcdxTdR8Q6Lo6yNq+r2FgsZUObq5SIKWztzuIxna2PXB9KXQ
fW/9bf5HJzeENavL2WKSPTbXTdRu7O+vUiuXd4JLfZ+7iHlqHRhDENx2Ffm+U8Utv4T1zVLj
xLBr62mn2etzxTrLpl8ZpozGkSbCstuEKsI8nORglcHrXWtrmkpqVtp76pZLe3aeZb2xuEEk
yYJ3IucsMA8j0NWIL21upp4rW5hmktn8udI5AxibAO1gOhwQcHsRVf1+X+SEYXgnw5feGdLv
bbUtSk1CS41C4ulkcJwskjMM7UQbjnJ4xknHGBXSVBaXtrfwmWxuYbmNXaMvDIHUMpwy5HcE
EEdiKnpB1Y0f6w/Qf1p1NH+sP0H9adTYBRRRSA4nXPAdzf8AjCx12w1u7g2ahFdXNuwhKBI4
XjAjzEXz8/Qtj53IwSDTtah8ReMvCL6fHpFhY2ur2zRTvf3MnnWqMSA3k+Vhn2YbBdcMcdsn
pb3XNJ029tbPUdTs7S6vG220E9wiPOcgYRScsckDj1p19rOmaXPaw6nqNpZy3j+XbR3E6xtO
/A2oCRuPI4HqKFtYd2nfqc4nhrUJfGlrqf2HTdNjtXPmX9rcs93qMYjKJFMPKQbeQ+Cz4KLj
1E9/4SfUfGk2rzyosAt7MQ7CfMWWCeSQ9sBWV9vXJBYVuJrOmS6xJpMWo2j6lEnmSWazqZkT
j5imdwHI5x3FSm/tDqDaeLqD7aIvONt5g8wR5xv29dueM9M0b2Ftp6GTY/8AIt2P/XpH/wCg
CsO4/wCPuH/rvF/6NWtyx/5Fux/69I//AEAVh3H/AB9w/wDXeL/0atMDo6KKK6TAKKKKACii
igAooooAKKKKACnqaZSg0mBJS00UuaQxaKSigYtFJmjNAgozSUUAFFFFABRRRQAVp1mVp1nM
uJ8m+HrnR9Pgv9W1ryJxDugs7FgHZ5j0dozwUUZ+9wTjrg1V8FXqyfEDQA3I/tGD/wBGLXuO
ofBb4fW0c17fW80EeSzu144Az+P6VU8M+BPhgNet7nQpJJL61lDxK9zKPnHI4bGT3xXlfVbS
Wq0PtZZ9z052jJ8yt5LT+mXPHpu/EHiJ9I07R7/U/wCzLFphJaPAot7yX/UufNlTlVRjxn74
rC8Y+NZNa8KX32nWv7DiufDjTwWJijY31wwkSaEllJPllQuIypG7cSRXs9FehbS39df8/wAD
49Ozv/XT/L8Tyy48UanBrktrHrv2S9t57OHT9C8mI/2hA6Rl5eV8xuWlG5GCp5XI4bNTwxrl
za+I2stN11bm4l8RahHPoSxxfJB5kzGZjjzB8wHz52HIXbnmvXqKb1d/66f5f5WIStHl/rZr
9f8Ahzzb4X+Jtb8QXcza5rWmXEj2/mS6ZFdo1zZSh8FDCII2iUZKkO0hyF+bqTnJFqw+Gvju
V72zOmeZrQW2Fm4mDeZLyZfN2kZzx5Y+tetUUPVfKxSdnfzT+48pfxnqEXxB03S7DVI4rZZE
tbmwuposnNqZPNWIQ+YI87f3hlwSGG3oaoQate+I4NAtx4jkvL+DX0il1KBrW4t1Y2k5b7O0
SKpGDwJFLKSNwYdfZaKd9bv+tbkpWVl2t+Fjzu51G+1D4K+Kv7UuTd3NpDqlmbhkVGlERlRW
IUBQSFGcADPYVm6zpGppoNzrusx2drLeS6PbJbWUzTKUju0Ikd2RMufMIxt4Cjk549WopLR3
9Pw/zG9dPX8bflY8li8XeINX8aanp2gauuDBeGCymkhklt5oJECq8awKYlf5gN7yMVbcNpFS
a5431q68Px67o94NO0rUNRjtI57zZbraRLG2+RpGilCFph5eXRlGB0Lbh6bqFrJe2EtvBe3F
jJIMC4tghkj57b1ZfbkGk03T7fSdMt7CxTZb28YjjUnJwPU9z6nuaS2t6fn/AEh9b+pxPhLV
tb1fxRbwXniC3u7W30iG5f8As5opoLuRpp49xl8sE8IudgQbhwAMgw2Oq+FrT4va/bW+o6Ta
tLpUX2lIp4kYzLLcNKWAP3wuC2eQME16NRTdn+P43F0fy/C3+X4nBfDq6SK7vdF0TWz4g8O6
ba28dnfHymET4YNAJYlVJNqrG3Qkb8Enis3wrpGp6tqX2iWOzt9N0rxDqdzHOkzPcTOZZo/L
KbAqJ85JO9s7V4GePT6KUvev6B0t/WzX6niml+NJ/DHw+iim1WGwH/CIRXGlJKEBlugJd2wE
Zdh+6yvI6ccmtLXPGep2uqTp/wAJKLC9ivdPgt9J+zxH7VbymHzJvmUucl5F3KQq7cY3c16z
WDqnhcaxq1vc3+r6hJZ288dwmmL5K25kj5QkiPzDhgGwXxkDjHFXe8rvv+t/y0B67f1ov8vx
OPtta8Ra5rtppkOvTaektzrCvLBbQM+23uESEDehAwGwTg5Ge+COy8F6rc654H0bU78qbm7s
opZiowC5UZIHbJ5xW5RUrSNv66/18gerv6hRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADR/rD9B/WvN/Hp
u/EHiJ9I07R7/U/7MsWmElo8Ci3vJf8AUufNlTlVRjxn74r0gf6w/Qf1p1DBOx4x4x8aya14
UvvtOtf2HFc+HGngsTFGxvrhhIk0JLKSfLKhcRlSN24kitS48UanBrktrHrv2S9t57OHT9C8
mI/2hA6Rl5eV8xuWlG5GCp5XI4bPqdFNOzv/AFv/AEhNaW/rp/keQ+GNcubXxG1lpuurc3Ev
iLUI59CWOL5IPMmYzMceYPmA+fOw5C7c81q/C/xNrfiC7mbXNa0y4ke38yXTIrtGubKUPgoY
RBG0SjJUh2kOQvzdSfSaKUdF/Xaw5atvv/nc8sj1GWy1a78PeC9WsdUkka8vIUVVa50u4Dl2
SbqPLd2ZPmVXG7GW6g1fxre3Ph8+JbfXf7G0aa7CQwyPbW9zLGkbbxEZ0ZGkMuRtbAIj4Kkn
PpWoWsl7YS28F7cWMkgwLi2CGSPntvVl9uQaTTdPt9J0y3sLFNlvbxiONScnA9T3Pqe5pdLf
1/XQfW55HLrWoaFN44vtN1m4fUHns5xbXywo0EEkVuHuWVYiwEall3bWUbMsrEHOlpWs+I9Z
vNH0yHxhZulzHfvLfaTLb3xYRmAxgyeSiBwZGBxGBtPTOGHqlFPpb+trC7Hk2n+JvEraTpd7
ceIrdH1vw/c3ub2KKG2sZo/K2uGC7guJDneX9enFaF5r8GpfArxFfT6lPcoLK7gN3eSW5Ej7
WUbJIAsbqWOFIAJ6EZyK9Joolqmu/wDn/SHF8rT7M8pPiLWw1/qVjrxOnadqGmW0FnHBC0U8
M6W+/c+0sf8AWkqVYYPXIwBeXxVqBTxJOutB9fsFvPsvhfbDwsefKfZt859yhXyG2nfgCvSK
KJa3/rov8vxJiuVJdrfgeTSeK9V/si+Ph/xd/bkA/s8LqvkW7/Z5prlY5Iv3aBD8hztILLnk
8inXvijVrHxXqWmL4saW8sdQsrax0qS3t/Mv0eOEylsIGP3nbMe3ZyTlcAer1n2GjW+nalqd
9A8rS6nMk0wcgqrLGsY24HAwg655zTT1v/W6/wCCFtLHCab4p1S58WJAdd8y/bVbi2ufD3kx
f6NaJv2TcL5oyFjbezFG8zAHK45/VPG2v6d8ONFvn8SSLq+o2Euoia5NtbwttRP3Cr9ncyMS
wIRdrH5/nUYA9roqVorehV1zXPGp9a1LQrjx1fWGss+pPPaT/ZZ/KCwQSR24e5wsRcLGpZQx
DqAmWVyDm5D4t1D7HpkWq+NtOt7SZro/2tYTwXizSJ5Zjt2k8lI9xDudqxqzBVAOck+s0UNX
Vv6/r+ttBLZf1/X9epyvwxOfhZ4bJ/6B0XbH8IrqqKKuT5pNiWiCiiipGNH+sP0H9a4DVtS8
O2Pxs0RTeaXbalNZXUVyPNjSZ3Y2/lK/O4kgHaD1AOK78f6w/Qf1p1Pqn/W1g6Hmll4w8Oal
4lvddsdQ0100WyuLWysba5jNzc5dTK5jByFLRoqAjnJboVrG8RWEehW2q2WstG2o6r4caGzA
4N1fvLI8qRDuxkkhIAOcAenHsE0ENzGEuIklQMrhXUMAykMp57ggEHsQKkpLZf13v99x31f9
bWt+R4/avNF4w03TIb/Rr7+z9ZutTvLuzuTLc26NHJ5iXChcR4Z/LBLEsAo2jBxs3viOz8O+
Gk1PU30+11jxLcPJa/2lIsMcQZQF8xmPCpCqbgDyeBywr0OeCK5t5ILmJJoZVKSRyKGV1IwQ
QeCD6U/p0pPVWf8AX9WX9MS0d/66/wCbPFre30zT4pNC0m+ivbya/wBHfR5ElDtcWsIhBlTH
VF2XBYgkDJzjPOnouq2Il8d2Pw+k0+6vGuomtLTTJ4AVQwQo8qKWVflYseSAWGCcmvV6Kre9
+v8AwP8AIFpa3Q4b4Tfu/Cl7brp1xp8Vvq96kcVw8bEDz34yjtyPunnqDjIwT3NFFDdxW3Gj
/WH6D+tOpo/1h+g/rTqGMKKKKQHlGq6jeaT8S9Wmg1YwapcXthDZaW8Mbf2haFUD4JUvtUmd
soQFIYtkYp3j2+0+W/10vcwznU/DzWOk7JA3n3SyyB4o8dZN5h+UHPy9ODj1Wq2n6fbaVp0F
jYReVbW6BI03FsAe5ySfc8mktku3+Vh31v6fg7nl+jH/AIqTStLMivr9r4jvby/QNmRLdopQ
sjDqEZXgUHoTgA5HGpq1jcyfGgajp6lriy0+yV0BxvgknuI5QfoCH+sYr0WkPQ09dPL/ACt9
3kKys13/AM7mFY/8i3Y/9ekf/oArDuP+PuH/AK7xf+jVrcsf+Rbsf+vSP/0AVh3H/H3D/wBd
4v8A0atMDo6KKK6TAKKKKACiiigAooooAKKKKACiiigB6mlpgp9IYUUvFHFIBKKKKACiiigA
ooooAKKWkoAK06zK06zmXE80+KdvqV5NF5QkOnWsPmN5Q3Eyknqo54AHPbP1qh4V8IaNqGle
HNU/tOa2kuHZ5IJHCNcSqxzs5yMFe3UY6V2eraRq7Bo9KMB3fdlmcgoPoBz9f/11xGj/AAp8
QTavFP4m1eNreCXeot5HaQgNuwpONgz6fz5rh5pOLg6e7TvfsetQtzc7r8qjFpK3ff77a3O2
1C51PWPFs+hadqcmkQWVpFdT3NvHE88rSNIqovmKyqo8tiSVJORgjBzDJJrOo+IW8O2+tzWS
6fZRXFzfwwQm4uGkaRUADq0ajEZLHZySNu0Ag6eseGY9T1KHUrTUr7SdQijMP2qxaPdJGTnY
6yI6MM8glcg5wRk5hvPCKXM1pd22s6pY6lbQ+Q2oQPEZJ0zkrIro0bfMdw+QbTnbtBIrqWy/
rv8A8D/g9fMfW39bX/X/AIBjX/i5/CWuakviHUWuNP0/SLSXcY442kmknljyT8qgttQHJVBy
flGaS4+LmgW3hWPxA0Ur2ZnkgkCXlmTG6DcQD5+2QleQImcnpjPFal94D0/UhcNe3uoSXE9r
Bbm581RIrQytLHMpC4Dh2z028AbccVX1P4frrEKjUfEmtSz/AGee0e5H2ZHkgl274zthCgfI
DlQG96Nbf13/AK+W3Yel/wCu39f1qOuPiFYW+rz2f9m6lJBbXVva3F+kcfkRPOEMROXDEHzF
BwpweuBgmlJ8XPDceqapYqZZX02O4dzHLAxkMClpEWPzPMBG1sF0VTt4bkZ15fBOmy29/C09
0Fv7q2u5SHXIeARBAPl6HyVznPU4xxiB/Adu1vqtnFrOqQ6XqguPO05DCYkacHzGRmjMi/Mx
bG/aCemOKOmn9aL9bij0v5f8E3tKv21PTIbxrO4svOG5YbnZ5gXsSFZgMjBxnPPIByKuVHDE
sFvHChJWNQoJ64AxUlN2voKN7ahRRRSGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
FFFFABRRRQA0f6w/Qf1rzPx34qvtJ8WX1pa+Jjps1vpMNzp2miOB/wC0blpZV8ra6GR92xFw
hBGc16YP9YfoP61Rj0a3j8Rz60ry/aZ7WO1ZCRsCI7sCBjOcyHPPpR1X9dA6P+uqOfm8bQab
fXNvJa6rf3bajFYraRJB8kr2wmCoSU+TaDlnOQxP8PTI/wCEt1G+8ZaPpWmvqwsHuL9ry5aO
zBY28wQxnJ4iXJyQu8gpgk7sdPJ4O0+TXDqrTXPnnUU1HaGXb5i2/kAY2527DnGc5744pLDw
Zp2n6pFfxS3LyRPeOFkZSpN1IskgI29AVAHt1zRro/62X63Dpb+uv/AM+P4laa2ny382mapb
2f2GbULSeWKPbewxDcxjAckHaQQJAhIP1wy7+JVpY7/tOg62phsV1G4AhiP2e2LOvmPiT0Qt
tGXwRhSQwWSL4b6ammzafNqWpXNmbGXT7SGaSPFjBINrLEQgJOAoDSFyAuM8nOhfeDtPv/7R
86a5X+0dKXSpdjL8sQ8zDL8v3v3jcnI4HFD8v63/AOB+I9P6+X/B/AfofimHW9RurE6ffafc
W8UdwEvFQebDIWCSLsduCUbg4YdwK3azLXQbWz1yTVYpJjPJZRWRViNuyNnZTjGc5kOecdOK
06bt0JV+v9f0wooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigBo/1h+g/rXA634h1m
28Qale29+YrDSNSsbBrARxlbgT+XvdmKlwwE67cMBlOQc13w/wBYfoP61g3vg6xv9fGpy3N2
qNLDPPYo6+RPLF/q5GBXduXC/dYA7FyDinpdX8v6+4OjMzSG1W28f3tlN4kv9S02wsFkuVvI
rZQs0jEoA0USEbURick/fWqY1rxE134Y1A6kiafrWpsv2M2YDiBopXjBcnIG1EYjaG3E/Nj5
a35fCUDabrNrFdTbtauTNeSzYdihCq0a4xgeWuwdcdeaTXvCf9u3unXC63qOmrpsgmt4bNbf
YJArLuPmROfuuwxnHtnmkul/L/N/5IHrf5/lZf5nP2XiLWG8R2l9Nfl9Ov8AXLrSF07y49kK
xLJtkDBd+8tAxOWIw/AGAavXuo3l5pGsaxJ4jn0TS7ad0glgt4mbZECjH94jZ3SbuMHIVNuM
nNyTwRbjU59QtNQuo5S81xawSbXgtbmRCjTqoAYkgsdpfblmIAJzTtR8FW97puj2Vpql/pkW
jlWtxaCFgzKu1WdZY3DEdRxwTnqAQrXjb0/r8Pncf2rr+t/+B9xyUHifxUIf7T1S7Fs2l3Gm
2V7pqRR7J3nWLzmYlS6sDOu0KwAKc7s1uaX4j1HTT4tfxFeJfjSruNIFt7cRA74InWNFySSX
fAyxJJ/AX28D2supxXl3qmo3JDwzXEMhiEd3ND/q5ZAsYwwwv3NqnYuQcUlj4EtIbrVH1XUL
vXYNWZXu7PU4LZ4XdQqq21YV5ARQBnHGcZ5qt7/P9P8AJ/eJaW+QvgDUtV1Pw7PJr86T30Oo
Xdu7xoFUCOZkAAAHAAxk8nHPNdPWN4Z8KaT4Rsbi00O1jt4bi5kuXVI0T5nYnA2gDao+UDsA
B2rZoF3+Y0f6w/Qf1p1NH+sP0H9adQxhRRRSAKKKKACkPQ0tIehoAwrH/kW7H/r0j/8AQBWH
cf8AH3D/ANd4v/Rq1uWP/It2P/XpH/6AKw7j/j7h/wCu8X/o1aYHR0UUV0GAUUUUAFFFFABR
RRQAUUUUAFFFFABT1NMpQaAH0UCikMKKKKACiiigAooooAKKKKACtOsytOs5lxOW0uxXW0vL
u9vNQEq31zCBBfSxKFjlZFAVGAGFUDpz1PJJrO1GDVLbWdHsrnWLmCKG8Q21yZWCXkZZd0E+
OsmB8jHhuVPzHJu+E9QtorLUknuIo2Gr32A7gHH2h/WjxZqFtLZaakFxFIx1exyEcE4+0J6V
mWbses28niOfRVSX7TBax3TOQNhR3dQAc5zmM549KhGvxrrdnpVzZXVvc3iXEkQk8srshZFL
Eqxxu8xSO+OoB4rGu11XTfiTcanb6De6lZXWmW9sJrWW3AjdJZWbcJJUOMOp4BrlLrwdqA1O
zn1Twq+u2MV3q8ktms8GGE9wjwsVkkVWBAzgn5cA43AUr7fP/gDe/wB35f5nrVZuua5baDYL
c3Mc07yyLDBbW6BpZ5G+6igkDJ55JAABJIAJrz63+H+sm3mM6RLqcXheKwsb9pdxtrr9+GCt
ywKrIq78ZwTjuKj8PeDL/RrC1vtN0XUre60+9ju2069OnxpcfuXikEP2bagfa+d0m0sVUEgZ
Iq2tv63t+WvUX9fhf89Dr5PHdlbabqE+oadqFld2BiEunSpG07ea2yLaUdo2Dt8oO/AIOSMG
rNr4qN7ql1YWuialJLZCEXRzAFhkkCt5ZJl5ZUcMSuVxkAk8VyPiTwnqPjMXuo6l4fjj3yWE
Nrp968Mkgjiud80j4ZoxlHcABiSuf722luvAD28niaTSNCtLd77V9PmtmgSKMvBG1u0nIxgB
kkODjJyQDnkjq9f62/zv8vJg/I9MorzdfC+pFPEluNFKa/ereC08Ub4TlZM+Um/d50e0FUwE
2jZkGrHgXwtdaR4b1WztLbU9BuruIBWvI7AxxS7CvmRpabVbBxkuAzYX8J1tfy/pD628/wCm
dRoXiaw8Q3WqQacJT/Zd19lld1AV32hspgnI+bGTjoe3NR2nieO48RnRrnTb+xmeKSa2luVj
Ed0iMqsU2uWGN6nDhTg9Otc34S0HxL4RfXPMt7TUo5bm0S0jtk+zb41iiieTLyyYCqp+U8sU
JB+YAXvDZ1i88VXepeIfD+o2c7q0NtJJNbPb20AbIVdkrOXfAZiV7AdFBNaXXp+n+f69Seh0
NjrNvqGo6pZQpKsmmTLDMXAAZmjWQbeeRhx1xzmnaFrFv4g0Gy1azSRLe9hWaNZQAwVhkZAJ
GfxrmIPBC3virxLqGqHU4EvLqJrU2er3FssiLbxoSUhlUZ3Kwywzx6YrjE+HutBPDn9rafqd
xFY6Rb26Jpslg8ljcRuS7ZuM7cgp88LBvk56LSjrZPy/J3G9mz1nR9Zt9btp57RJUWC6mtWE
gAJeKQoxGCeMqce3pUfiHXIfDmiyalcW1xdKkkUSw2wXzHaSRY1A3sq/eYdSK8v1DQZYPFGl
Wms+Gn1tJp9buRp6ywkSRyXETI5DuqMMMpwxyODjcBXU3/hfWZvhHp2gq7NqcJst7xSKTF5c
8bsVaTIbYqnGc529DnFC1in6fnqPaVvX89DpdB1+LXYrrFpc2NzZzmC5tLsIJIX2hhnYzKQV
ZSCGIwa1q898T+DJ08Piys7a4183+ofaNUnnjs5bqTEZCMizqIBgrGv3eFzgZ5qjo/hXUbFv
D58TeG38QRW2lW9tHG0lvL/ZlwjHfJiV1U7gU+dMsPLxjpQtfw/LX8RPT+vP+megaPrNvrdt
PPaJKiwXU1qwkABLxSFGIwTxlTj29KyvEHja10CeaI6df35tzAs5tBFiJppPLjU+Y65JPpnA
5OM1z/hDwvq2keML2+1rThdw3F7eSWE++MnTVeZ3PG7pKrKdy5YY2sAAMQ+JLS+lvfEWlWNh
LfXt5qWn6lDFHJGha3jMAcgyMoO0wMCAerp65oWvL52/4P8An8ge8vmegadqdpqsEs1hL5qR
TyW7naV2yRsUdeR2YEZ6HtVSbX4016fSILK6ubuC3huXEXlhdkkjIDlmH3djEj06ZPFebv4I
u7Tw/faRaeDoVt59bmnuHtrewd5rctK0LRLMSnyZRT5igqpYKD1D7fwV4kXSLWGeyZpo9L0e
3fdcRsd9veGSUZzztTBz0PQc8UR1a+X4r9GEtL2/rW35anrdUNX1aHRbEXl3HK1usipLJGAR
CrHG9skfKMjJGcDnGASPK73wZ4jvdc8R3q6Kbee/0zUrVni+xxQ3LSYFvtKYlclVyzTHhicA
A1f1bw0nhrT/ABBDYafDZ2msaLb2EMUbKPtOoMZU6A5LnehLnrjJPBIFql/XfT8PxG9/68tf
xv8AI9UopkSlIURmLFVALHv70+glaoKKKKBhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADR/rD9B/Wud1/xfLoOp2tm3hzVr4X
kwgt57V7XZJIUZ9vzzKwwEbkgDjrXRD/AFh+g/rWD4m0y71DU/DctnF5iWWqi4uDuA2R+RMm
eTz8zqMDJ5o6r5B0foy7petw6reahaRwTwTadKkU6zBeGeJJMAqSDgOAfcHGRzWnXmuseBrq
71zXNZi0xJNRbWLC4065Mi70ijFuJmTJ+ThJAw4LAAc/LSeFvCF/pnxEvdV1W01N7iS6uXXU
IzZG2lhckxo7YF0do2qEOVBQY4AwLW1/60X+f4A9EdBqPj+10zUdThn0jVHstJkSO+1KJImh
g3Ir7iok80qFcEkIccnoCa6oEEAg5B6GvPtQ0vX5NR8YabaaJK0PiCRFg1J54RbxIbWOJ2dd
/m5BVsAJyccgHIpX/gu+PiS52aIbq4e6tH03XjLEDp1vEsYePlhKvKSHailW835iMtgjra/l
/wAEH5Hp9FebN4Suri38UWN34eEur6lFepB4jcwMJI5QfKj3F/OQKpVNu3aNmQeao6n4d8Qe
JWvnuPD91YRy2el2ojmu4RI/k3ZklIMch2gIcg5BPbniha2+X43/ACB6f16f53+R6vRXl1z8
OPs1zqs+kaHbwSw6xZXGjtEUX7PCDAZ/K5/dgkTblGN3PByKzbjwDrDXviiWaw1O41K/h1BL
e9jexFtcJMjeVG7nbc8AooViUUoCDtAwul/L9E/1t8hpa/M9Y1LU7TSLP7VqEvkw+ZHFu2lv
mdwijABPLMB+NUvEPiFPD8dj/wAS+81Ca+uhawW9p5Ydn2M/WR0UDCN3rz3XPhqfJv4NM8N2
09nJbabP9mHlfv7mG4YzHDkDzGiO0uxG7dgsea6zxP4cfXbXwxb21lPaWlpfpNPDb3P2Z7WI
W8qgBonBGGZVwjH8RVW/P8P6uSnp8v0udPZXEl1ZRTz2k1lI4y1vOULx+xKMy/kTU9eaeLPB
txc6rMsegy69bvpa2mmTz3iu+mXAZyZmeZ94J3RnzE3P+76cDLNX8P8AiJLnVbC30qbUE1LU
dNvP7QWeFI1WHyBJuDOH3fuSeFIORznihav+u9vy1G9P69D06s+41m3tvEFjpEiSm4vYZpo2
AGwLEUDZOc5/eDHB79K4Ow8C3dlq1lq0GmRwan/wkN7PcXgdDJ9jl8/aCc8oS0Z2DoTnAOTW
VpvhDXrCW3uLDwlDa6hbaNe213c3NxDJHqV2/l7ZGAclw5VjufB5w2BipT6/1tf/AIA7e9b+
t7f8E9WvdTtNPms4ryXy3vZ/s9uNpO+Taz44HHyoxycDipbaeSeNmltZbYh2UJKUJYA4DDax
GD1HOcHkA8V45YfDq6ghtpbrwo95bWuupdx2V1Hp4lEBtfLfCRFYF/eBGKgjO0HkitWfwhqC
zQy6x4Z/4SDTlv8AVJW0vzIG+aaffDPtldUOEDDk7l8zgdcP+vwQu39d/wDJfeeqUV5JefDf
UL3Tb1dU0+PUb2HwxFaWM0kwcpeK0zDYzEEMu5AJDg8nkZIr1a2EgtIRP/rdi7/97HP60/6/
MXX+uy/z/BktFFFIYUUUUANH+sP0H9axdZ8Tx6HfQRXem37WkssUL6hGsfkQvI4RA2XDnLFR
lVYDcMkc42h/rD9B/WuP146xfeMLW3n8P6jdaHZtHNHJazWwSefs0geVXCR8EAKctz/CAR3u
g6M2NF8SJr1zN9h029FhGzLHqUnlCC4KttIQb/MIznkoAcEgkYzl33xH0uynmT7DqE8VsZGu
Z4o02QQxv5bTtlwSgfePlBY+W5C4GTyXh7wtrPhWOCTTvD/2G9sNNksJryN0kXVZmdFgkKoS
xRcFiZApQHA4ya1Nd8IanZwXWnaDYtfQapoK6MbhpkX7Mys/72TcwZlImZjt3Nlehzmjt/Xf
7un3/Mel3/Xb/Pz2+R1Vj4oGo+I73SrTSL94rGYQT6hugECuY1kAx5nmHh15CYyfxovfE/2e
a9isNG1LVZLKRYpVs1iA3FN5AMjqPlUrnn+MAZOcc1faPJH4us9W03wrNYSaUZJLzVQIfN1K
JYWRYVWJ2kk3HYQJAuNgxzgVPqNn4h07wjZafp+nXl3dalK8ur3NhNCssG/LyeX50ijJJ2Kc
naoz2ApPbT+n/lv5oS31/r/g7epdt/iRo95cWYtILyazuRb7r5Y1ENu9wMxJJlg4ZsqOFIG5
ckZrV0TxRZa7Jqa20N3bjTZhDMbyAwkkxq+4K2GAww+8AfbGDXGv4Z1SSWfTbHQpbLTdTvNP
vfMkmhxYpbiINCyq5JbFuu3bvX5+SMGp4dH13W5vF9pLpl3oMetTxSQ3d35E6GNYoo3jZIp9
3zBHHBHBzkHiq728/wBP+D62BdL+R1vhrxJZeK9H/tPTEmS386WEecoViUcoTgE8EjI746gV
r1y3gDSNZ0XR7+DX2t2ml1O6nj+zw+WCjyswbHmP97OQM5AIByRk9TRoLXX5jR/rD9B/WnU0
f6w/Qf1p1DGFFFFIDD1nxPHod9BFd6bftaSyxQvqEax+RC8jhEDZcOcsVGVVgNwyRzh2i+JE
165m+w6beiwjZlj1KTyhBcFW2kIN/mEZzyUAOCQSMZxteOsX3jC1t5/D+o3Wh2bRzRyWs1sE
nn7NIHlVwkfBACnLc/wgHmfDWhz+BXtL670FrBdMsWsby5t5YmbWZXljSDYobJ6cGTYV3hRx
miOu/n/X9d0EvLy/r+vwO3t/GVpc+Ihpa2N8sb3ElpFfsieRLPGpZ41w+/ICtyUC5UgE8Znk
8VafH41XwtIsy38ll9sRyo8tl3Mu0HOd3yscYxgda5HTfDOrQ/EYarJpM8Nyb+5kudT+0xNb
TWjphESLduWXCwBm2KT5Zy7DAOvqfhe71H4htqwHkxQW1k1vc7gf3kc0xlTGc8xSlc4x8/tQ
tot/P7v6/IH9q3y++35f5+S1LH/kW7H/AK9I/wD0AVh3H/H3D/13i/8ARq1uWP8AyLdj/wBe
kf8A6AKw7j/j7h/67xf+jVpgdHRS0V0mAlFLRQAlFLRQAlFLRQAlFLRQAlFLRQAlFLRQAoNO
plOBpDFooooAKKKKACiiikAUUUUALWlWbWlWcy4nG3OnWev391ex+DtD1HE7wNc3xUSu0bGM
5/ctxlcD5jwB06ClDc6LpGo6bLpnguwt7z7WlpeSQwxxyae0hCK2VTLIwZsMMA4wcE4G54Rk
3afqH+zq16P/ACYeovFCLaXOl6rbFobxb+3tTIn8cUsqo6MO4IPfoQCOQKzLOoorlbX/AJK9
qn/YEtP/AEfcVx8d/f3vjPSP7FTSNLuFm1yBWkt2MWI7iIFzGrKXdtuSdy8lm7YKvt8/wG97
en4q561RXmcXxF1qaxl1QWtiLOz8OJrE8ARzJO7ecNqPuAVD5YYMVY47c5EM+p6/runaTbeN
rFbXSL7U4Y5pY1jjjuonicpGwS4m+RpRGpJYBw4XbgnNWd7f1vYW2/8AWl/8j1KivGvGWnpY
f29ofhM2VhpZOli8s1ty0EcstzsZBGjIF3oYy6/xL1A37qkS1l0XWPFN/eWmh37WmpaZp9uh
0wqIImNttVMyNtVd+4KON43e1KPvf16f5g9D2GiuH/4S7VxofiDxIRZHTdJ+2ImmrC/2hmgL
DLy79q7ipO3yzhWHJqz4b8QeJJvDuoaj4k0dswQi4tRaQxhrpdhbaiRzz5OQMHcN24fKMcq+
l/K47a287fcdfRXmPwx1aCO98VS6nNPBPJf28txJe20tsvmy28QKjzVXHznaqnnG3jkE6mkW
WkR+Nb/xHpNvb6bpdnbzQXt+CqLfzFwzu7H7wi2MN7Hq7AH5TVW1V+36X/4At1dHdUV5Zb6z
9u+OdjNdQahCfs99aWyyWM6xGJDARIHKbGDNvO4Ejb5YJBIB2NftNH8UeItJ/sWG3u9TSSC8
bV4GVzZ2qPuG2Tn/AFuGQKOGDOTwDSWqi+/+f9MH18jtXtbeS6iupIImuIVZI5SgLorY3AHq
AdoyO+B6VNRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA0f6w/Qf1p1NH+sP0H9
a4Px94Y0HUPEfhe5v9E026nudXWGeWe0jdpYxbTkIxIyy5UHB44HpR1S9A6N9rnfUV5b/aeq
eG/FPia60yPT10qHWdPtprd4mMjLJDbRfuyGCptDAjIbPT5cZOz4Z8WeI9f8VXanSETQobu5
tPOCxhomiYqCW88uxYr93yVxuHzEDLC1St/Wif6oHov6/rodzRXkmv6Ro803xE1e8toY9Us5
4vsOoIgW5hlFpCYljkHzAmQgBQfmLYwc4rbuPGOvxXd9KBpqW2k3dpZXNnJE5uLl5liJZHDg
JzMAqlG3bDyM8EdbfL8f+H/IHp/XY9Aorhm8U67N4f8AEfiC1bTktNLW9jgsHtneYyQbgGkk
EgADFc7AmdrD5u9Qa/471TT7i7h0yKwmkistNnjEu7Be5uTEwYg8LtAI4yOvPSha2t1t+OwP
T+uzS/NnoFFecy+LvFdhc3/259Hmg0jVLWxuvJtZUa5WcxYZMykRlRMODv3YPK1Xbx/4qki8
RanbaND/AGTpiX6RySKmEktw20uwuN7bmTlPKTAYfMQMlX0v/Wyf6oaTbt8v6+49OoryjxJ4
j8XfYbnT5L/TrW7U6XeR3FnbSgLHPdeW0R/egnBUZbIDKWG1c5Gz8SLGW+tfClpcWGnaxM+s
IJLa8Bjtp2FtPnIKybRkZAw3b607P8bfkJNNX8r/AIXO+orzy/17V9CF1puj2mg6LDoejrqN
xasjyRSBmk/dRMvlBFHlHLlDy4+Xjmxd+Or+C11iX7PbRNZ6lp9rBHMrbilwIC275hlh5r4x
j7o4ODTWrsv61t+Ybb/1pf8AVHd0V59ZeMvEDatay3iaa2l3Ot3ekrBDDIJx5XnFJN5fac+V
grt75B52jEj8V3kuv6F4j1y90uO3k0C/v4VtIXdrVCYCFcbyZSMAZXZkhhgdala/15Njtrb+
t7fmeuUV5H/wk/jDV9S0q0mnttKurXxALSdWtCPORrNpVDpHdOABk/L5jZOxvl2lTraf4m1S
4vY9G0KLRtJmnvNUdp5bRmiK29wE/wBWsiZkcuGZt3Zjg54f9fgn+TF/X5/5Ho1FeX3HxB8S
3Omz3+lw6VBFZ+H49ZmS4jklMpLSho0YOuFIiyrkHHoc8emQSie3jmUECRAwB7ZGadv6/r0D
rb+uj/VElFFFIAooooAaP9YfoP606mj/AFh+g/rXFeKtK0/WvFenW1hYxya5bywXUupADzLC
3R92A/UeZtZAg+8GckYBobs0HRnb0V4/4D1RdHa01rWodKnn1jS7nUbq+gtyL2Ixum9JZCxL
rltoUBdhQLg4zVbXtIWK31q516NV1ODw+2rWpb5mgvpJZGZ4yed6FLeMMBkAKOM4o9f63+/Z
jtv/AF2/zR7TRXm39kr4b+JNlrF5b6ReTeIrojc9kFvbJltfmKTbjuj/AHRBG1ceZ1PQyXcO
k6l4dn1bW9Gh1m7165Labp06hvOUKVgGG4UBAZCxHyb3P1Tul5/r2ErP+unc9Forxk6O2kyT
Nez/AGzxBo2oaPYWN2/MoiIhVwhPzbXL3Ab1AOc443bGR/C48fPottdXU0V/CIUAlu5C720A
3N96RwC249TgHFVprb+tv8wWtj0miuE+EctufCN5Ba/a2SDVr1N93byRO/79yCd6gk4PPocg
4IIru6GLuNH+sP0H9adTR/rD9B/WnUMYUUUUgCiuc8cahNY+HxHBBeyC8nS2llsrWWd4ImyZ
H2xqzfdBAOOGZc15GbUzfCnTdXm0SXUbSDw4kFhcuVhbTLtWP71VkKtlyYtrxhmPlgAEHlX3
8v8AJ/18x2/r5nv9Iehrx/w7FMPiBZaxd29rtutVu7Q38Z/02adYirQSj/ngpilK4JPyxfKu
Cx2tWS5t/jcmp2Yd/I02ztriJed8M1xOhOP9l/LbPorVW1r9f8r/ANfeStU7f1rb+vuOpsf+
Rbsf+vSP/wBAFYdx/wAfcP8A13i/9GrW5Y/8i3Y/9ekf/oArDuP+PuH/AK7xf+jVoGdJRSkY
pK6TAKKKKACiiigAooooAKKKKACiiigAooooAKUUlFIB9FANFAwooooAXFGKKWkAmKMUtFAC
YrSrOrRrOZcTh2sbnTbi7/sfxlpdlaXFzJc+Vc2qyuryMXf5/NXI3E44GBgcnkshtpdY1Oyt
dS8a6TqCRXMdytpZ2yxyyPE3mLg+a3GVBPynjPTqKkt9czNFBa3E29oYVRFmKjJiXoMgDufz
NM063utO8T2EutXEh8u6YxqJWl/5ZyR5II4H7wHIz0reeHjCCcpavZdWZxqOT0Wh2mo+GNA1
i+ivdX0PTb66hAWOe6tI5ZEAOQAzAkYJJpL3wr4e1KIRajoWmXcYd3CT2cbgM7BnbBHVmAJP
cjJrHu/F11ZfFK38OzQQ/wBm3FlG6zgHzFuHaXapOcbSsLDp1xzyBWdD4/ubjxXrlnI9nY6V
Ytara3clvJM0zPcNBICqsMZkRkU9iNxyOK5FrZI3el7+X47HbpYWcUxmjtIElaJYC6xgMY1z
tTP90ZOB0GTVC08KeHdPsbqysNB0u2tbwbbmCGzjRJx0w6gYbqevrUM3jLRIJtQR7idk02OS
S7njs5ngiEa7nBlVChYDqobd2xmq8/xB8OW0MMs13cqk0Rnz/Z9wfLi3FfNkwn7uMkHDvtUg
EgkDNG/zDY1bbQNHstMXTrPSbG3sVcSLaxWyLEHDBg2wDGQwBzjqAalk0vT5fO82xtn+0SJL
NuhU+Y6Y2M3HJG1cE8jaPSqP/CWaP9uu7b7TJ/oSGS5uDbS/Z4gFDndPt8sEKwON2cGud8Q/
E7T7Twxc3uh/aJr1JLeJIbnTLpSgmcKspiKK7J94gjAYrtDbiKL/ANfkB1Y0HR11iTVl0qxG
pSpskvRbJ5zrgDBfG4jAAxntSaT4f0bQVlXQtIsdNWYgyiztkhEhHQnaBnqetZPhfxguv6tq
mlSW9wlxpbpHJO1jPBHOTGjFgJF+TlzhCzHADcg5qv4u8X3fhnxHo0KW8MumTw3E+oyEMZIY
ozEvmLg4wvm7myD8qnGKNml3/wCHDc6STStPl87zbG2f7RIks26FT5jpjYzcckbVwTyNo9Kz
rbwV4Vs5ZpbPw1o9vJPG0UrxWESmRG+8rELyD3B61yviH4gX2najdW8d9o+m20etQ2C39/Gz
xRxPZ+eWb96gJ3cA7gMEdTVzVtY8U27+H20vXPD91b6xcJbLONLldTmGSTzVK3WCp8vge/3j
Qtvu/FBt91/uOzNlam4hnNtCZoEaOKTyxujVsblU9gdq5A64HpWS3gjwo91Fcv4Y0Zp4Qoil
OnxFkC/dwduRjAxjpis/xv4kvPDOnaOy6lpVg17fLa3F9qMJMEQ8qRy23zUxlkAGX796tWHi
/TWktdPm1SLVNQltBd+ZpdlK8MkR3YkXb5gCnYQMucnAHJAJ5/13DbT+ux0dFc23j/w5HZi5
mu7iEG7Fl5M1jOk3nmPzFj8pkD5ZeR8vzZAGSQKdp3j3w7q19bWljeyvLdFkiL2kyIzqCWjL
sgUSKFJMZIYYORQB0VFc/aeOfD99OkVveS5kkSOJ5LSaOOYs21WjdkCyKTxvUlclefmGZk8X
6A8BmGpwiJZp4WdgVVWhBMuSRwFCk7jx0wTkZOlw62NqiuaX4g+Gzp1zeyXs8ENqIjKtxYzw
yBZW2xsI3QOysxwGAI688GoNK8b295r9/YXe6PF5FBYRC1lEzq1vHKxkQjcmDJyWCheA2D1O
tv6/rUDrKK5TXvFlxp/jLQ9EsIoZUu7gR30kmSYVeOVowuCPmJhbrnAHTkGoPGnibU9A1fTo
4J7fT9Llhle61G50ue8jhcNGEVjE6CIEMx3ucDbQtbBs7HZUVznjLW9U0LS7W80qCzmja7t4
bh7h2yqyTJH8iqPmPznksMYHDdK6OjpcAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGj/WH6D+tRzWtvcvC9xBF
K0D+ZEzoGMb4I3LnocEjI7E1IP8AWH6D+tcnd+Lrqy+KVv4dmgh/s24so3WcA+Ytw7S7VJzj
aVhYdOuOeQKfVIOjZ0cml6fL53m2Ns/2iRJZt0KnzHTGxm45I2rgnkbR6VAvh7RU1ttZTR7B
dUYYN8LVBOeNv+sxu6cdelclD4/ubjxXrlnI9nY6VYtara3clvJM0zPcNBICqsMZkRkU9iNx
yOK6KbxlokE2oI9xOyabHJJdzx2czwRCNdzgyqhQsB1UNu7YzST0uHVxLTeG9DfXBrL6Lp7a
oDkXxtUM4+Xb/rMbunHXpxUk2haRcaxDq1xpdlLqUC7Yrx7dGmjHPCuRuA5PQ9zWTP8AEHw5
bQwyzXdyqTRGfP8AZ9wfLi3FfNkwn7uMkHDvtUgEgkDNXP8AhLNH+3Xdt9pk/wBCQyXNwbaX
7PEAoc7p9vlghWBxuzg0bfINyx/YGjDV5dVGk2P9ozJ5cl59mTznXAG0vjcRgAYz0FQ2fhPw
5p0LxafoGl2schQukFlGgYq25SQBzhuR6Hmub8Q/E7T7Twxc3uh/aJr1JLeJIbnTLpSgmcKs
piKK7J94gjAYrtDbiK1PC/jBdf1bVNKkt7hLjS3SOSdrGeCOcmNGLASL8nLnCFmOAG5BzQvL
p/X6/wBagzck0vT5fO82xtn+0SJLNuhU+Y6Y2M3HJG1cE8jaPSqk3hXw/calNqFxoWmS3twh
jmuXs42kkUrtKsxGSCvBB7cVmWOqeINfuprzSH0600q3upLZY7q3kkmuvLcpIwdXURDcrAfK
/Tceu0XYvGWhT62dKjvHNz5rQBjbSiF5VGWjWYr5bOADlQxIweODS0sGxeutF0q+jmS90yzu
EniWCVZbdXEkaklUbI5UEkgHgZNS/wBnWXl2sf2O32WZBtl8pcQEKVBQY+XCkjjsSK55PiV4
XltbW4ivbqRL0O1qE065ZrgIFLmNRHucAOMkA9G/utie78feG7OG2mk1BpIrm2F2slvbSzKk
B6SyFFIjTr8z7RwfQ4f9f1+If1+hqahoWkatc21xqul2V7PaNvt5bm3SRoWyDlCwJU5A6egq
O78N6Hf6mmo3+i6fc30YUJdTWqPKoU5UByMjB5HPBqu3i/R/t9/ZRS3Vxcaeivcpa2M82wMq
soBRCGJDqQBkkZ44OMtfiLplz4i0nS7CG8nTUorhhcfYrgeQ8TqhR1MfyncW3biuzAzjcDRs
B0i6Xp6eXtsbZfLna5TEK/LK2d0g44Y7my3U7j61Uh8K+HraaeW30LTIpLkOJ3SzjUyh/v7i
B827AznrjmsuPx/oVrpdhPf6p9oa5tFu2ntNPn8tYjx5rqA5hQnPMhA4PPBqzN468O2+tNpU
l8/2pZ4rd9trK0cckoUxq0gXYu4MNuWGTwOQaLa2/rsHmWU8I+G49O/s9PD+lLZeYJfswsox
HvHRtuMZHr1qW98NaFqVn9k1HRdOu7bzmuPJntEdPNYks+0jG4knJ6nJrTooAqS6Xp83nedY
20nnwC2l3wqfMiGcRtxyvzN8p45PrVpVVFCoAqqMAAYAFLRQAUUUUAFFFFADR/rD9B/Wsq88
JeHNR1QalqHh/S7q/BUi6nso3lBX7p3kZ4wMc8YrVH+sP0H9a5651vVLb4hWOjyQWa6Zd2dx
MkodmmZozF1GAqj94ePmzgHI6Udf67B0Lx8L6F5l1JHpNnDLeyJLdSQwiN7hlbeDIy4L/Nzg
5zznqas3ukabqVxaz6jp9rdzWb+ZbSTwK7QNx8yEjKngcj0rk/BXjeTxXqUjyXdtDBPC89nY
/YJ45TEGCiT7Q7eXL1G5UX5CwBORzn3nj3Xmivr7TINPNjp9k+rOJYnZri08xljVWDgK7rDI
+4hgNyDaeSTt/X9bfgO2rOy/4RXQVuL64i0eygudQjeO6ubeBYpplb7waRQGOfXPXmn6l4a0
LWoIIdY0XT9QithiFLu1SVYuAPlDA46Dp6VzuneK9RufH8+l39xb2Nk0mNPhm0qdXvk8hXLJ
clxESGZsoFJwh+ot3Osaze2+rXOkXek2NlYztEl1fQPMpESnzWIWROA+Vzn5fLYnOcBPSN32
v/X3iWr0/r+rGvB4b0O2ubS5ttG0+Geyi8m1ljtUVoI+fkQgZVeTwMDk03TPC3h/RbyS70bQ
tN0+5kUq81pZxxO4JyQWUAkZANcZaeP9duoYdTlsLW00+3ksLa/tpI3aYy3KxklH3AKE86Pg
qSfm5WtzSfFV4P8AhJ38TRWdpHok4H+iO8gEZgSXlmALN8/ZV9MdzTum/K/6f5iWtrHTW9rb
2iMlpBFAru0jLGgUM7HLMcdySST3Jqaud8Ea7qHiHw/Jd6xbw213He3Nu8MOcII5WQDJJycL
yehPTFdFSGNH+sP0H9adTR/rD9B/WnU2AUUUUgCsr/hF/D4vLS7Ghab9psUEdrN9jj326jOF
RsZUDJwBjrWP4i8QalpXiTT7Swv9JnN1NCn9jtCxvJI2fbJMriTAVBljmMjCHLDPFHwX411D
xF4ku7C6exkEETvcW9tDIkumyCYosMrMxEjMFY5UL9zOCGU0LV6f1YHotfL8Tq49A0eLWpNY
i0mxTU5F2verbIJnGAMGTG4jAA69hVr7LbrdPdrBELl4xG0wQb2QEkKW6kAsSB7n1rirDxrq
F18SJPD7NYlUnmSTT1hcXNvCkasty0hbYyOWUBQo+/8AeJRhVy88XXVl8UYPDs0EP9m3FjG6
zgHzFuHaXapOcbSsLDp1xzyBQtUvPYHpfy3/AK/ruaNj/wAi3Y/9ekf/AKAKw7j/AI+4f+u8
X/o1a3LH/kW7H/r0j/8AQBWHcf8AH3D/ANd4v/Rq0wOnYUypKYwroMRKKKKBBRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFACg06mU4GgYtFFFAC0UlLSAWiiigArRrOrRrOZcTlNR8MywBH0eIb
LfDRxy3UsmTtZcBWJUDDdvQfSsW00W4v/Ot5ba88+7yLmeSNohH1HBYAEYPbPYdAMaFz4gvY
4123Nxny0bcrRDJZA3AMR9fWqWgeI9V1HxPZwC9mltvOZLiNjAw2+VIQfljVhhlXv3rq9nXj
BVOi19TP2kHLlNrXPBg1rUtSvPt720l3YwW0LJHlraWGV5UmBzyQzg7cfw9eao3Pw4gfCWl+
YIVtbC2VWh3n/RbgzbidwyXzg+h556V0v9vaaPEn9gG6A1P7L9rFuVbmLcV3BsYPIPGc+1Qf
8JTpB1m90mO5ea/sBCbmCC3klaISnCE7VPXqfQcnA5rhWlrG71vf+tv8l/TMd/Bd+NJ1zRLf
WLdNH1RLrZE9iWnt3uNxY+YJQGUO7EKUBwcbuM07VfBd5d3k82maxHZJfacmnX6yWfnF4k34
aI718t8SOMsHHI+XjnrqKVlt/X9aju9/66P9Dib34djUNQv/ADL+K0028sXs3t7G3eKWUNGI
w0zmRklZQDtJjBHAzjILpvAt/qcMr65rcNzet9kRJbaxMMaRwTibGwyMSzEEFt2BxhRg57Sq
eq6rZaJpk2oanN5FtCBvfaWOSQAAqgliSQAACSSAKd7O4raW/rp/kihpmhXGm+J9Y1Fb2KS0
1R45mtzbkSRyLGkefM34KlUHG3OT17VCnhq5l8Q2eqalqYvDapeRLGbZUBjndGVOD/AsYXOC
W6nFa9lqNrqCMbSYOybfMjIKyRFlDBXQ4ZG2sDtYA89Kr32v6Xpusafpd9drDealvFpGyt+9
KAFhuxgHkcEjOeM0W1S+X9fIL9Tj7b4Y3emZfSNeRZItWTULX7bZGdYY1tzAsBCyIWAU8NkH
gA561015oV3qf9hy6jfQtc6Xefa5HgtiiTnypI9oUuxT/WZ+83T34TUfGeh6XLLFdXE7TRXS
2bRW9nNO/nNF5oULGjFvk+bIBH41XvfH2h6fJbJeJq8b3WBAv9h3pMjFSwUYi+9gE7eowcji
i/6fkrfhYH+n4a/8E0NZ0T+17zR5/tHk/wBmX32vbs3eZ+6kj29Rj/WZzz06c1Q1bwnJqeoa
xdw6nJZyalpSacrRJ80BVpW8wNnn/W9OOnXni/q3iTTdEsrS61FrlUvJBFBHFZzTSu5UsF8t
EL52qx5HGOavWV5Hf2UV1AsyRyjKrPA8Lj6o4DL9CBRbp/W1vyHfX+ujv+ZxWh/DQaPNbyrd
2MXlaqupGDT9NFrDxbNBsVA7bc7txYk859eNCPwOEjs0a/3Lba1caqf3ON/ned+7+9xjzvvd
9vQZ46yih67/ANbf5IXS39df82ec6V8KE0jRLrTbO40i3JiVLTULbRVivI3SQPE8sokxMVKr
n5V3EZNXU+F+ngX0DXcv2S70w2AiVAGjZ40jkmDZOWZYo+3BB67q7mij+v6/r8kGzv8A1/X9
dTi5vAt/qcMr65rcNzet9kRJbaxMMaRwTibGwyMSzEEFt2BxhRg5nh8EPZ+Or7xTp+pCK7v5
UE8ckBdHt1jRDF98YbMe4OMYyQQwrraqWup2l7eXtrbS75rGRYrhdpGxmRXAyRg/KynjPWmn
rp/W1/6/zFZWsc9rHw+03VfEtlrcc95a3UF8l5OI7ycJOUiaNRsEgRTgr8wXJAIOQxp2seG/
EGs6bdaXceI7YademVLn/iWfv/Idz+7RxIFXEZCbijHjd16bd/renaZqGn2V9ciK51KVorWP
aSZWVSxHA4wB1OB09RVfV/E+maJfW1lfG7e5ukeSKG0sZ7liqlQzERI2AC68nHWkuxWt7/11
MjxF4U1vWbGWxs9ftbaza6gnhjuNNMxhWExsqBllTOXjLEtk4bAxjNdVbrMttGt1JHJOEAke
NCis2OSFJJAz2ycepqhrHiPSNAFt/bF9HatdyrDAjZLyszBQFUZJ5ZcnGBnnFXLy8t9Pspry
9lWG3gQySyN0VQMk0X0ElskT0Vi6b4u0XVbua1trqSOeGZYHju7aW2YyMnmBFEqrubYN2Bk4
5rR1C/ttL0251C/k8q1tYmmmk2ltqKMscDJPA7UbbgtdizRVe1vob0yeQJcRkAs8LoGyoYFS
wAYYI5XIzkdQRVigNwooqrp+o2uq2n2mxkMke9ozlCjKysVZSrAEEEEYIoAtUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADR/rD9B/Wu
Z1zwYNa1LUrz7e9tJd2MFtCyR5a2lhleVJgc8kM4O3H8PXmumH+sP0H9aof29po8Sf2AboDU
/sv2sW5VuYtxXcGxg8g8Zz7UNXf9dgvZf13/AMzmrn4cQPhLS/MEK2thbKrQ7z/otwZtxO4Z
L5wfQ889KmfwXfjSdc0S31i3TR9US62RPYlp7d7jcWPmCUBlDuxClAcHG7jNbH/CU6QdZvdJ
juXmv7AQm5ggt5JWiEpwhO1T16n0HJwOa2KN163/AB3BaP7vwWn4HI6r4LvLu8nm0zWI7JL7
Tk06/WSz84vEm/DRHevlviRxlg45Hy8c1734djUNQv8AzL+K0028sXs3t7G3eKWUNGIw0zmR
klZQDtJjBHAzjIPbUUbgtLW6f1+iOLm8C3+pwyvrmtw3N632REltrEwxpHBOJsbDIxLMQQW3
YHGFGDnZ0zQrjTfE+sait7FJaao8czW5tyJI5FjSPPmb8FSqDjbnJ69qv6rqtlommTahqc3k
W0IG99pY5JAACqCWJJAAAJJIAp1lqNrqCMbSYOybfMjIKyRFlDBXQ4ZG2sDtYA89Kd+39XFa
xhW3hrVtK1G4Gh63Bb6VdXDXMlncWHmyRO7FpPKkEihQxJOGR8EntwK9n4JubXUY1fVkk0e3
1CbUYLMWm2ZZpC7ENNvwyBpHIAQH7oLEA51brxbo9pqx05555LhGVZTb2k00duW6CWRFKRcE
H5yOCD05raqbJob6p/1v/mzzhvCmtaRqng7TtCvkVtL0q7tn1CewaWE/6gAMgddpOCR8/wDD
3ANXf+FdXFnbC20XWxbRXGmR6Zfm4tPOeaNS53xneojc+bJyQ68j5eOe6op77/1v/mO5x174
B8/TtatLTUFiTU7m2mVJbcyRqkMcSeVIu8GRGEWGGVyGI+sGifD2fQZtJlstSs0NhJdmSKPT
vLieO4kV2SNFkHl7dgCnLDHUGu4qGS7t4rmO3knjWeVGeOEsN7quNxVepA3DOPUetD8/6/pC
tokcPb/De80/TYbLTNejhSTSYtKv2ksfMM0Ue/DxfvB5b4kcfNvHI4450J/AaSW2qwQ33lR3
99Z3aDyd3lC3EICfe+bPkdeMbuhxz1FrcpeWkVxEsqpKoZRNE0TgH1RgGU+xANTU7u9/63v+
Yb6hRRRSAKKKKACiiigAooooAaP9YfoP61zmo+HtXvPG9hrcOrWMVrZRSQraPp7u7JIYzJmQ
TAZ/djB2cZ5DV0Y/1h+g/rWd/wAJFpP/AAkY0Fb6NtUMTTG2TLMiDbktjhfvqQDgkHIzR1/r
t/kHQ5SL4e6haWcdrDrSSwWVpJYaav2fyntoJXXezyBm8yRY1wpAQcc9cjR1/wAD/wBqysun
X6ada3VgNMvoRb+YZbYEkLG24eWwDOMkMMN93gVsaf4j03VdSubLT5J55LZmWSUWkog3KcMo
mK+WzA8EBiQQfQ1TvPHXh2wuvIub9g4laJyltK6xlWVWZ2VSEQMwUuxCg5Gcg4Frb+v+H3/E
H1/r/htvwK2o+G9ZvtSgupdTsng01pJ9MsorNocTGNkjM0pd9yqHb7qrknPbFRar4Mvbrw9p
OkabqltDbWTB7qO+smuUvmHI8wCVDjflyMkMcZ4yDrweKNMuvEE+jW5u5by3fy5ilhOYY22B
9rTbPLB2sDjd3FJqPivSNLkuI7mW4kktmVZY7WzmuGQspYcRox+6Mn0BXOMjKvZX+YW1sY83
gi8vNTM99q9u1tdT213qNvDYlPPngxsZGMjbEOyPcp3k7OGGTSWnge7nutb/AOEl1O11Cz1i
aO4kgs7WazeOSMRqhWVZ2IAESnjBzznHFai+NvD8l/Z2cWoCWS9SOSF44ZGiIkBMe6ULsQsA
doYgt2Bq3o/iLSfEH2v+xb6K9Wzl8mZ4slA+0NgN0bhhyCR2p7f16f8AA9AuU/CPhWHwlp11
aQXdxdC4vZrrdPNJIV8xywXLux4BwTn5jljyTW/VDRtb07xBYG90e5Fzbea8XmKpALIxVgMg
Z5B56HtV+gOrGj/WH6D+tOpo/wBYfoP606mwCiiikBzuu+HtR1+9hhu9StE0aO4hufs0dk32
gvEwdf3xl2gb1BOI84yMjrWJZ+Dda8Ox20+n3trqU2mWh0/TIjZ+SUjkkj3PO/mfvSqoGO0J
nDcEkY6bUPE+laXqkGn308sU1w6Ij/ZpWiDOcIrShSiMx4AZgTkY6ima14t0Xw9cxQatdPC8
ieZ8lvJKI03Bd8jIpEaZIG5yB154NEdNv60/yB+Zk2ngi5t9fguZNUhl0+21GfUoLcWW2cTS
q4YNNvwUHmNgBAcbQWIHOjdeFbe98Tz6vdS+YklvaxrBsxseCZ5lfdn1YcY7e9TjxTpX9vJo
zyXEV5IzLF5tnMkUzBdxVJWQRuQAThWJ4PoanbXtNHiL+wDdAan9l+1i3KtzFuK7g2MHkHjO
fai2iX9bf5BfVv8Are/5lKx/5Fux/wCvSP8A9AFYdx/x9w/9d4v/AEatblj/AMi3Y/8AXpH/
AOgCsO4/4+4f+u8X/o1aYHU00inUlbmJHRTiKSmISilopgJRS0UAJRS0UAJRS0UAJRS0UAJR
S0UAJSiiigBwopBS0hhRRRQAoopKWgArSrOrRrKZcTzm7spNMurcambZvLEYmWOUygqsZAJQ
ouASqcZPX0pk093eM1/bwpCY5DLZxB9hkY9zz3OOOPvEdBluv13xJoWkQPFrF7CMjmD77n/g
I5rnPDHiTwjqmuxW2m215HeMW8gXRZ1GAWO3LMF4B9KiWOpc8ITabT/S2h1QwGIlTdSMHybt
2/H5fgV/E+mainxAu/EOm6fcXE2l6bazQCND/pO2W4E0CnoWMbnC5+9sJ7Vjvoev6ZqV/eQ2
96uoX9vpk11Paq/MrX7tNGGXqEjYKRnhAM8V67RSjo15f1/XoYS96/y/C39fM8yuTqR0/wAW
faP+Ei/4SYQXwtPJF39l8va3keTs/cb9uz/ppu3d6h1yx1Oxm+zNL4plUaSh0l7Ge6kJvizm
Tz2UkdTFgTfugNwAABFep0Urf19/+f3jv/X3f5W9NDzC9PiWLXtaTTP7Sv8AVJdOlaCY/aoL
aymEKhURXH2abc/IZcMCTkEAkZepaNc61otzBpieKpdMEumsY9RmvUnNwLlfNZfMIk2iM5OP
3YIDLypI9jop9U/T8P6/Unpb+un+X3No4fwjo8ekeP8AxUDHqqtcTRSwSXMtzLBJF5MQJDuT
GWDhh13gDH3RUGvaa3i/xZpYex1Gzt4bbUYPtLwlGglSWDypVPIGWj3oT94Dp1Fd/RR28v8A
K39eY9jxSeDX5ryW/wBXstX0y4j8TQvPc6bYNcttTTzE00S+XJujZxwdpxuwcEcd1q0c+ojw
ZParf3iQ6osk01zaNFKFFtOpkkTYuzJI6qoyRwMiuxoprp8vwt/kD/Rr8/8AM5Lx1pl7qlx4
aj0+a8tmj1cSSXVpGjvbr9nmG750ZQMkDLAj5vXFZmqWes2fiLU7oPrWrx6foCNaxC4eBLu5
LThsiEKhk27eAuRlSBkKR6BRU20t/W1h31+787nj+jWXiS7ht7Ga9182L+IE3TiO8tXNqbNi
4zO7zLH5nGWfhjldp240tJ0zX7C70q7W512eZdcu7KRLu4mkjNkqziJnQnaR8sREpG45GWOa
9Oopv+vw/wAvxYulv66/5/gjxnw+viu20ufUb6/1y51W0EVzeaYdOvU810lHmqkkkjwyZQyA
LCFVsqdvAxqRQ+PBb39qkt4byGyuNQt5WJ2NcTRAR24ZvlIjkM2FPAAjzxivUqKHqrf1/W33
Dvrf+v63+88mkg1afSL5PDcniqOxk/s9GN+10LlZjcr5xjM37wL5X3iPk9P4qtadpup6Z8Td
RFzDqq+H2vYBbyQNO7yzi1hVWmcZaSL5WBYkruB39iPT6Kadnf8Arp+VtOxNtLf1/T69zzfx
RpHiWT4kaNqcOn2l7YpqUKwyLcyB7aIQTby6CIhQWc/Nu52xrgdQ/wAazwavbNPp+m+JLbxN
bLPbaVLa29zGN/mBQXdf3JiZo1b96cFBnHNei0UlorFX1ucD481eSbw7JpzaVq8l1DqFllrf
TZp0mCSwzSOhjVvlC5GTjJVgMkVreNpluPAr3SrILbzrW4nEkbIwgE8bSblYAj92GyCAeoNd
RTZI0ljaOVFdHBVlYZDA9QRR0+d/y/yElbQ8g1nTDf8Aje7v57HXRa2/iSCVpLSG8j3RfYfK
Lr5YBcCRAu5c4BPIVjmHVR4k1LUvE6pa6usF1pWqQPYNb3jxhxhYSryO0Ts4BZRCigBip3V7
HDDFbW8cFvGkUMShI441CqigYAAHQAdqkpW0t/WyX6DTd0/T8G3+p5Vqz69HBqdq8OrJbTaj
bJFcRR3r/ZYxZISUjtnSRlMgKkKwUMxLdMGn/Z/irUPD81xe3PiKK9s/CkEtusM00Je/UzZ3
Kp+eThAUOc5GQeDXsNFN/wBfdb/gijoku3+d/wDgHmF//bs3iS6Mn9vpqrXVodL+zeeLEW+2
PzfN2/uc58/cJPn+7t/hrq/Cvz6v4omi/wCPaTVsRnsWW3hSQg/76sPqD9B0lQ2lnbWFsttY
28VtAmSsUKBFXJycAcckk/jT2/r0/wAhW0/rzJqKKKQwooooAKKKKACiiigAooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAaP9YfoP61554n0zUU+IF34h03T7i4m0
vTbWaARof9J2y3AmgU9Cxjc4XP3thPavQx/rD9B/WnUPdMOjT6/5nkT6Hr+malf3kNverqF/
b6ZNdT2qvzK1+7TRhl6hI2CkZ4QDPFaFydSOn+LPtH/CRf8ACTCC+Fp5Iu/svl7W8jydn7jf
t2f9NN27vXptFLpb1/H/ACGnZ3fdP7v89/U8s1yx1Oxm+zNL4plUaSh0l7Ge6kJvizmTz2Uk
dTFgTfugNwAABFSXp8Sxa9rSaZ/aV/qkunStBMftUFtZTCFQqIrj7NNufkMuGBJyCASPT6Kb
1v53/ES0t5W/T/L722eOalo1zrWi3MGmJ4ql0wS6axj1Ga9Sc3AuV81l8wiTaIzk4/dggMvK
kjq/COjx6R4/8VAx6qrXE0UsElzLcywSReTECQ7kxlg4Ydd4Ax90V3FFO9vx/G3+X3aCtp/X
9f8AB1OJ8Pai3hqa80XUtL1NrmTUZ54Li2sZZobpJpWdWMqgqhAbaRIy425+7g1laaust4sT
zTrw1UarcG780z/2f9h+fy9mf3Gdvk42fvN2d38Vel0VNtPlb8v8tRvW/n/wf89PkeMwrd6f
aeDbfxDfeLD9t026n1KK2uLuS4eYCAKGWPMihSeigYJOeGfNm7TxL9gtU14+JPtn9hxDTjpj
TcX2X3faDF8m7/U8zfu/v/7VepS6ZaT6rbalLFuu7WOSKGTcRtWQqXGM4Odi9R2q3T3/AK9f
8/wHf+vuf/DnmV/BrsC+Kb27TV7mYzWtrAsM115UUbRQebNFFCys+197Hy8MdrAFctWX4e0v
UTr3hfUdeXX5zA2o2yTlb1MAzobfzELsyoV3cyk5AUOTtGPYaKP6/C3+f3k9Lf1/X+R44o8R
NoenjWv+Ep+1nQYf7O+xG5Dfb8vv+0bOM/6n/X/Jjd/tVqX2n+JP7Q1bU2uNaN3aarpy2kME
8wt3iK24uMRD5XQ5kzkELgkbTk16fRTvrf8Are//AAPQb1/r+v8Ah7hRRRSAKKKKACiiigAo
oooAaP8AWH6D+tcZrN+F+K2hBbPUnSCzuoJZ49NuHhR5TAUBlVCmDtbJzhcckV2Y/wBYfoP6
06hrX+u1gPHvCp1TwpZ2wjt9aEtlpssGpW9+ZRbTXhkRIFgL/ISzFvmiyCGy3zEVc1/w/eaR
a6hp0Vld6lLq/h0abBPDbtIrXe+Uu0jKMRhmnD7mwvynkYxXqtFG+/8AW/8An+Q72d/66f5H
m84t9K8YwX2irrNu0MkkviCeeO5jspYY7fYX/e4jZ9yRbWiycKcnGas3uo6noPhO3C2t8uq6
9O81zc2+nzXgsN4ySyxISSibY1BHJUZ4BNd/RQ9Vr/Xl6CStt/Xn6nkiaN5Cz6Houl6gsGoX
+l3VhPJZSosVvAIQ/mMyjy3XyHO1trEuMA5rQtpNR1i68b2uhW15a3WpXET202o2VzZxvEII
YpCsrRHa3DgcE5AOCOa9Loo/r8v8l+ILTY474Z2epWHh6+t9V0yLTSNVvGhhikZl2GZiCNyJ
8vPynHK4PGcDsaKKdxWsNH+sP0H9adTR/rD9B/WnUMYUUUUgOI8S6ot/4stNCvbPU00y2lhu
ZpotJuZ0u5QwaOMSJGVVVYK7MT2A6bsYvjR5ddF3N4RuruebW9MbTnh/saaWGdRJIqsLghY4
cF5Ms5YFSCFPy59RqK3t4bS2jtrSGOCCJQkcUShVRQMAADgAelKytZju07r+v6Zw+yefxvos
Fm+q3yadIy3Ed7p8kNraqsDRmaKUxoJHLEDBaQYdiAMZC6roN7efFb+1bSF42s7OyMVwyERu
vnTrPHu6E+VITj12H0rvKQ9DTbbd+okklbpovuMKx/5Fux/69I//AEAVh3H/AB9w/wDXeL/0
atblj/yLdj/16R/+gCsO4/4+4f8ArvF/6NWmB1RopaStzEQio6lpjCmA2iiigQUUUUAFFFFA
BRRRQAUUUUAFFFFABRRRQAopwplKDQA+ikFLQMKKKKACtGs6tGsplxPOPA1haXnjTxe93awT
vFf/ALtpYwxTMkucE9M4H5VznhsBfjlKFAAF9eAAdvlkr02Tw/JYz3Vz4cngsbi7cyT+bB5i
ytknJOQRyx7kDPSuZ8O/D/VbDxt/wkGq3tmzmWWVo7cMdxcMD1Axy3vXgTw1ROlFR2ldv53P
rqeOoyVepKduaHKlre/Lb01Yus6zf6V8YEma8lGjx6faxXVu0h8pDNNMizbegYOsak4+6x5w
KxIfE16fE2tarfzXlzpt3Hp0thZJeSQLFHJeNAkgK/3wokI/iDbTxXpN/wCHNJ1OW+kv7NZ2
1C0Flc7mbEkILELjOBy7cjnnrwKjufCmiXkheexUkxW8OFkZQEgk8yJQAQAFc5469DkcV7cd
Gr9Py/r9T5SWt7dbfhb89fw8zHk8aX39ka3rdto8D6Ppcd1slkvSs9xJb7gwEYjIVSyMAxfP
GdvNQXPjjWYRKsXh22lmstPXUr+P+0ivlROX2LGfK/eSFY2JB2KDgbjnNbMvgzRJZtRka3uA
uppIl3Al7OkEvmLtc+UHCBiOrBQ2ec55p2p+DdD1ieKa/tJGeOEW58u5liEsQORHKEYCVOvy
vuHJ45OVr/Xz/wCB2Hp/Xy/S5iz/ABFW0u9Ua7sYoLGws2vI/NuWS6u0WJZC0UJjCunzbSwk
OCOQKxvGHizxKfD9zpraXb6ZqUhsnD22rOQYJrgRMBKIQyvn5TheA25WJGK7abwno9zqU19d
wTXUk0TwtFc3UssKo6hWCwsxjTIGDtUZBPqagtvA+gWtnLarazSxyvC7tc3k00h8lw8S73cs
FVhkKDt5PHJy9Lq+2n9f1+Atbf15f8EzfBmpa9P4i8Q6bqsNutjpk8UFsVvXnkT9xE20s0as
+dxYuzFskjkc1i3P2q+8LeIvFkmtahbalp8159ljjvJEt7ZbZ3VEaAEI+4Jli6knfwQAuO8t
tEsLTWrvVraOWO7vQouCJ5PLkKgAN5e7ZuwoG4DOBjNUbvwXoN9qb311Zu7yyLLNCLmVYJ3X
G15IA3lyMNq/Myk/KvoMGunp/T/r/Masv6/A811zV/FlxJ4pu418gpfWGnxKmtTxeRFL5BIV
Fi2q7eZzIPnXewBO0buuh8UNpV7d6RY6bLcal/aENhDHc6rLLHJIbRZmYySBiiqgbOFJYjOM
sa6W48M6RdfbfPtN3265hurj9443yxbPLbg8Y8tOBgHHOcmor3wlouoC7+02jb7y4jupZY55
I5BKiqiujqwaMhVAypHGfU5Ftb+un/BJXmYGsfEC/wBI1y30j/hHpLy8W3iuL5bL7ROsKu7K
BGyW7Bj8jH955Q6c9cWPHUF6J7O+lXU7jQ7aKU3sGk3j21wjfKVm+RkaRVAcFA2fmBCsQMaV
x4L0a5ntbiRb9bm1h8hLmLU7mOZ487gskiyBpBnn5y3U+pqxrfhnTPEOwaot0wVGjK297Nbi
RG6q4jdQ68dGyOvqaT289f8Agf1+JS3+7/gnJaZ401ZJPFF1c/YLnTbGaBdOka7fdL5kMTIu
EtyxL793AZtzbApGDUtl8RdT1WLTItL8OI9/fC93w3N49ukJtpFQ5LQ78Nu4zGpBwCByRv3P
gfQLqS6d7OWP7UIvMWC7mhUGLb5bqqOAjrsUB1AbAxnFTab4S0XSJLaSwtGSS1E4id55JGHn
MGlJLMSxZlBJOT+Zpv8Ar7hLSxxviDx9qGreBb+48N6Yy58Pf2jcXDXvkyWnmo+wR4U73Uox
PKAYGCScVrL47e28VaboRsluobjZDJeRSTM0MphMm2T9z5QOFHHm78MDtwavXXw58L3llBaT
adILeC0+wiOO8mjDwdo32uPMAySN+cEkjBqyvgnQV1pNVW0lF1HKJlxdS+WJBH5e/wArds3b
Pl3bckdTQ+tv63/r/MHtp/W36ow9M8eazrOmaTLZ+HLf7VqttJexwtqWFjt0CAsX8r75aQAI
BjHJZelSeHLqK++DWk3viLU7yGI6fFNd3S3bxytgAnMinfkn+6cnp3rYm8EaBPp2nWLWckcG
mRmK08m6lieNCAChdWDMpAGVYkHAyDinXHg3RLnw5Z6C9tNHp1iY2tooLuaJozH9wh0cNweR
k9QD2odtbeX6j6nm9xJrsOi6k99qmq2j6Jocmq2CSXUiygvNM0S3GD+9KxxRoVfd95sgnmux
0dr1viNq1vc6lfTQ3GkW1ysEsgC27PJMCEVQAMBQMkFjgZJxWlL4F0G4W2F1Bd3X2bcFa41C
4lZ1LBikjM5MiZUHY+5eOlSDwZpA1241gHURfXMZikkGq3QBQ7vlC+ZtUDcxUADaTkYPNH/B
/X+vkJ63+X6f5P7zH8GGS38Ua1YudUtIkgt5YtO1a+e7mTJkBmEheQBW2gBQ5wUJIXPPbVma
P4e07QjO1glw0twR5s91dy3MrgfdBklZm2jJwucDJwOTWnTDqFFFFIAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAaP8A
WH6D+tef6zrN/pXxgSZryUaPHp9rFdW7SHykM00yLNt6Bg6xqTj7rHnAr0Af6w/Qf1rNv/Dm
k6nLfSX9ms7ahaCyudzNiSEFiFxnA5duRzz14FDvdP8ArYNLNf1uebQ+Jr0+Jta1W/mvLnTb
uPTpbCyS8kgWKOS8aBJAV/vhRIR/EG2niutk8aX39ka3rdto8D6Ppcd1slkvSs9xJb7gwEYj
IVSyMAxfPGdvNbFz4U0S8kLz2KkmK3hwsjKAkEnmRKACAArnPHXocjioZfBmiSzajI1vcBdT
SRLuBL2dIJfMXa58oOEDEdWChs85zzS+zZef/A/r8xr4rvy/LUxrnxxrMIlWLw7bSzWWnrqV
/H/aRXyonL7FjPlfvJCsbEg7FBwNxzmln+Iq2l3qjXdjFBY2Fm15H5tyyXV2ixLIWihMYV0+
baWEhwRyBW1qfg3Q9Ynimv7SRnjhFufLuZYhLEDkRyhGAlTr8r7hyeOTl83hPR7nUpr67gmu
pJonhaK5upZYVR1CsFhZjGmQMHaoyCfU031t5/8AA/T/AIIl0v5fpf8AU4nxh4s8Snw/c6a2
l2+malIbJw9tqzkGCa4ETASiEMr5+U4XgNuViRit3wZqWvT+IvEOm6rDbrY6ZPFBbFb155E/
cRNtLNGrPncWLsxbJI5HNaVt4H0C1s5bVbWaWOV4Xdrm8mmkPkuHiXe7lgqsMhQdvJ45OdC2
0SwtNau9Wto5Y7u9Ci4Ink8uQqAA3l7tm7CgbgM4GM01ZX+f6W/r/hha2Oc0CyfxO91rOpal
qKXEOozwQW9reywRWywysiqY1IWQnbuPmBs7sfdwKfa+N7u41KJjo6Lo9xqMumw3gu8zGWMu
pZodmAhaNwCHJ6EqMnGpceDtFuNYfUzbzxXMrK8wt7yaGO4ZehliRwkhxgZdTkAA8DFLB4Q0
S21ptVhtHW5aR5gpuJTCkjjDSLCW8tXIJywUE7m55OZ1sl/XT+v8xvrb+t/+Ac3p3xB1zVbX
QzZ+GbU3GuWs13bxyaqVWOOMR8yN5JIJ8wgBQ3Rc9TtePiPdXtiLrRdCW6S30tNTvlnvRE0S
MXGyPCMJH/dSdSi8L83PFrUPh9ZXWqaBHAr2+k6RZXFssUF7PDMu/wArZtkRg2MIwOW5z35r
SvPA3h2+W2WbTyiW1utqscFxLCjwL0ikVGAkQc/K4Ycnjk5fp/W//AHp/X9eplyePZzJrckG
m2q2WmeSkc9xeOrXMsscTogjSF2yfMxxuJO0BTnjL0vxzr2v+JtBS106C0sbqG+W9t5riRHD
wSohZQ0AfgHKg7Cd5DBdoz2F34U0a+ivo7i0bF/PHcTtHPJGxkjChHVlYFCAi4KkdPrUFt4J
0KzNi1rbTxPYyyywut5Nu3SMGk3tvzIGIBIfIJHSk/6+4Wtl3Oa0/wCIF1JoFtLomhfaYrbR
4tTvFu9UbzIon37UR2RjNJiNzlyg6fNzxbn+Id0mpXRg0RJNJs720tZ7xr3bJ/pKxFWWLYc7
TMNwLDjkZ5A1Zfh/4alt7SA2EixWluLREju5kEkIORFKFceanX5ZNw5Pqc3p/DGkXIvBNZ7h
fXEN1cDzHG+SLZ5bcHjHlpwMA45zk1WnNf8Arf8Ay/pg/L+v61NaiiikAUUUUAFFFFABRRRQ
A0f6w/Qf1rj/ABbCz+INKTSr/UE1mSeJ0hhupBBHbI4MzSxAhCpXKgsCdzKARjjsB/rD9B/W
sS58H6Rda9JrL/2hFfSiMSPb6pcwq4T7oKJIFIGTwRjk+poe6Do0cZ4F8Q3XnW2reJ0uIzrO
nzahFdtqsssKRoVZkNuQI4dqsu1l3EgHcQSQaGqXOsSWmsajdapqNlPY6GdctoVupEWOaR5G
RHVSFZUSGNChypLOcEnNd0PAHh+P7R9mtZYDcgo4Wd3VYzIJHjjRyVjRyPmVAufqARe1fwvp
Gu3cFzqlqZpIAVXbM6B0JDFHVWAkTKg7XBXjpR2t/W//AAO2w+r/AK7f8Fdd/kcrANR0n4gw
X+trczWet3Qj094tYuNlq32YHyntDiPBMcp3DcckcDqJLye21Dw/qOu6tf6stpdXRXT7bT72
SF5VXMcQj8pgSZG3OADyGXdwoxvz+DtKn1Ce/Y3v22RJUjnkvZZvsxkGGaFJGZIjjjKqOOOn
FO1Lwho+q2+nQ3MVzGumDFmbS+ntmi+XZwYnU/d457E+ppNXVv6/4fz/AKaWj/r+rP8AQ8/S
48QWccl/q+rXb6rot7pWn+VHcOsM3mLCJi0YOyRmM7/MQSCgIxWxba9L4Ug8cXeqapcX6ade
xLA9/MqgNJbw7VyAqRqXfsABkk9zXTr4M0NdStr9reeW5tlQI815NJvKZ2NIGciR13HDvuYd
iKfo/hLStC1K6v8ATvtwuLzmdrjUbicSHAAJWR2GQFABxkAY6VW979b/AKf5P7wWlvkYfwr1
Yar4Vui2trrUsGp3cTXQnEu4CZtnQnClcFR02kY4rtqqafplppUMsVhF5SSzyXDjcWzJIxdz
yT1Yk46elW6Bd/mNH+sP0H9adTR/rD9B/WnUMYUUUUgCiiigApD0NLSHoaAMKx/5Fux/69I/
/QBWHcf8fcP/AF3i/wDRq1Ld62+laNosKxWbi5s8lrm/S3K7VT7oYEv97nHTA9RVVZvtK2s/
7oF54siKYSr/AK1P4gBTA7CkpaQ1sYhSEUtJTAYaSnEU2mIKKKKACiiigAooooAKKKKACiii
gAooooAKKKKAHCnUwGnCgYtFFFABWjWdWjWdQuJ5N4x8d6hBql7Ba36WltaSmNQvys5BAbLd
eu7gVb+G/jq5125vbe7naaO3eIb2+bHmEqBu9cgY/Guf+IvhS9s/EF1c29lNdWN8xmEkVv5v
kyE5YEYPfkcd/apPhT4avrXUmYQXUUDyrcXVzcW/l+ay/cRRgYAPP5+tebHFV4UZ0HG8nJWf
RK+vTtf8j0cRl1KVSni6M0oqOqvu7dr7+iPRpvGEdv8AEaHwrNaFRPZLcR3nmcGQtJiLbjrt
ids57HiobDx1aXnizX9KmhW1s9Fgjlk1GacLHJksH6jChChUsT1DdMVX8Q+EL/Vde1DVLG5t
4J2sLZLCR8kxXMMssgLAD7h3hTg5ILCsu8+G975cy2VzayEWViqG4Lf6RcQXT3DmXAOFkZuS
MkFicHGD2rpfz/XX5dvQ4ZdbeX6X/r1Ork8Z+F4tMi1GXxJpCWMzmOK6a+iEUjDqqvuwSPQG
qtz4ujhv7GGBbK8ivdQS0jktb3zCitbtMHcBeCQvC5OVYNnnFYl74Z8T3FvfSJaaOX1i9SXU
rIX8qRmBI1QRiUQEsXKjeSi/LlR/eqYeDtWm8RLqk7WUIbWIdReGOZ32KtibdlBKDJ3njgZX
ng8Une2n9bf8EP8AJ/rY1tE8b6RqekaLcX17Zabe6xbpNb2E12nmPu7KDgvzxwKdr+v6nYa/
pmkaLplpfXF9DPMWu71rZI1iMYPKxSEk+YOw6VxrfDrxM2l6Fpkl5aS2mnW9kpUahcRJFJDK
HkYRIm2fcFUAyEbSuQOTXW+IfB1p4l8VaRe6vY6fqGn2NvcxyW97CJcvIYtrKrKRwEbng8iq
dr6d393QOpdbxJZ2C3La/f6TpywSrESdQBCsYw5V9yrtbGSBzlQG4zgQa5458O6FZ6pJc6vY
vc6ZbNcz2S3cfnBQBgbScgsWUDPUsvqKyJfA92/in+0ENmLRdch1FIsnKxx2XkYA24DB8EDp
gdc8VjS/DXU9uvWyx21wt8L9rS+l1m7HlNcq/DWm1ohgyFS6nJHOM8VLu1p2/Rf8H7ila6v5
fm/6+Z1+neM9KfRdLvNa1TRtPn1Nd1vEmppIkpzjEbsE3nkA4HBOOa1o9W06WVYor+1eRpnt
1RZlJMqglkAz94AEkdRiuR1vwhrFxe3j6ammXEWqaPHpV0b2R1NsFL/OgCN5gPmn5CU5UfNz
xY0fwnqOm+NpNbdrR4ZYjaNF5jFkiVECTA7cGVygDjgbVjAJ8v5r0cn21/r8vv8AIzV7K/8A
W3/B+7zRo3PiDUrDxVY6de6XbCx1GZ4ba5hvS8wKxtIS8JjAVcIRkO2Mrkc8HhfxZH4nuNXW
C1MMGn3QgilL7vtCGNXEgGBgENx1yMHvisrVPCV/rniZ7p7Wx0SIiWObU9MumN7eRtE0axuD
CoAG4Py0gDRrgdw3w94O1vwtJrTafqsd8Ly5tfsyXyoqpCkccb7hDEmH2KwUD5flTPO7MK9v
l+NynvoXPDnjaTXdSt4bjTVtLbUbaS70ycXHmG4ijcKxddo8tiHRgAWyG6gjFGm+MpdS8e6l
4ejh0uNdPk2Sb9TP2t18pH8xbfy+Uy4XO/sfpWdo/hHxBpf2dhJppfQ9MnsNHLSSMs5cqUec
bQUwIkUqpbOWII4FaVzo+u6z4n0m61S30y0s9IuHuYpra4eaedjG0YXa0aiNSHJOGfOAPeqV
rr+uuj+7oD6/10/rU0tQ8R2+n67Fp8xhjiEBuLq5nnEaW6FgkY5HLO5wBkfdPOcA4vib4gx6
HqclpY21pfm0g8+8334idRvVfLiXa3mS/OvyEr9+Pn5xTtf02/fxJfiytIblda0gWStcozQR
vG8hxJtB4KzMQDgEptyCwrmZ/hnri2v2JRpWpRRQPb2V5fXMq3Fm5kZxeLiM5uDvG4goSYlO
8biFUd1f+t/+B6jfW3l+n/BOr0zxvHrHjK50WwGneVau8chm1ELdOycO0duEJZA3yFiy8huD
jmz4j8a6Z4TaSTXLqzgt18hVH2tROWlkKZMbYAQYLbtxyFfj5ecXT/BOqWevWySPYNplpq8+
rJdhmF1I8qODGybQoGZGy+45VQNo61N4q8H6nrGrajfafJaZmtbBIY55GTMlvdNOQxCnapBA
BAJznj1P5fxF3/rr/lqdDpGvR6pqF9aBI1a2EcsTxS+Yk8EgJjlVgB12sMdtvUggnWrmtEiu
7rxfq+q3dq1sotraxCkMA7xmR5GUsql0zKFDYGdrYHr0tMAooopAFFFFABRRRQAUUUUAFFFF
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA0
f6w/Qf1rnZvGEdv8RofCs1oVE9ktxHeeZwZC0mItuOu2J2znseK6If6w/Qf1rj/EPhC/1XXt
Q1SxubeCdrC2SwkfJMVzDLLICwA+4d4U4OSCwoe6/roHR9/+CWLDx1aXnizX9KmhW1s9Fgjl
k1GacLHJksH6jChChUsT1DdMVfk8Z+F4tMi1GXxJpCWMzmOK6a+iEUjDqqvuwSPQGuUvPhve
+XMtlc2shFlYqhuC3+kXEF09w5lwDhZGbkjJBYnBxgzXvhnxPcW99Ilpo5fWL1JdSshfypGY
EjVBGJRASxcqN5KL8uVH96jpr/Wu/wDWwdfL/gf5m3c+Lo4b+xhgWyvIr3UEtI5LW98worW7
TB3AXgkLwuTlWDZ5xS6J430jU9I0W4vr2y0291i3Sa3sJrtPMfd2UHBfnjgVkjwdq03iJdUn
ayhDaxDqLwxzO+xVsTbsoJQZO88cDK88HisVvh14mbS9C0yS8tJbTTreyUqNQuIkikhlDyMI
kTbPuCqAZCNpXIHJpx8/L8tfxB7X8vxv/keqUUUUgCiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAaP8AWH6D+tcpqfjZ9P8AEE1qumrJptnc21pe3puNrwyz42BY9pDKN8e4llxv
4BxXVj/WH6D+tcZq3hHU77XbxIZLQaRqV7aX907yOJo3g2fIqbSpD+TGN25SvzcNxT6/d/X3
B0ZY8P8AjS41jU7KG80pLK11W1e80ydbrzWmjUr/AKxNg8tirowALDBIzkVRvviPPA929noo
ubWwhkvLqVrvYwtEkMfmIoQ7mYpKQpIBVAdw3YFC18C6pY3tzqlnY2um3KWslpY21pqMt2kD
Tuu+YGZUESqBkRxrg89TgDQ13wPfSRy2Xhw2cNhfaQujXInkZWt4VLbZI1CkOwWSQbTt52nd
1FLt/Xf/AIH39B6a/wBdr/r9xt6Z4mk1Dxbf6M+mSWsdraxXMVxJMjfaFd3UMFXOF/d5GTnn
lR3Zc69q00moJoOj294LKYQ+ZdXxt0dgm5+RG5GMqo45O7O3bznR6Z4ksPGmoavDpmnS2J01
LOCOPUHM7eUZXQ7WiVQWMgBBfAxnJqPVfDOujwnp+i6UtjdRSMz6x9ovHtWui2XkCukT4DyM
S3AO3IHXIT20/rXT8NxLfX+tNfx2IrP4mfb/ALLd2+jsulE2cd5cS3G2W3lugpRRHtIcDzI9
zblxvyAcVbfx3NFofirULnRJLWTw9uP2aa5QtMBAsoyU3KmQ2OC3r7CnN4Q1q8vZYpI9NtdN
1G7s769SK5d3gkt9n7uIeWodGEMQ3HYV+b5TxVvRrDxZp2reIr+bTNGY6lMlxBGmqy8MsccW
1j9n4BCFsgHnAx3qn1+f6f8ABCPS/kbXhjWpdf0VdQkOmMsjkRvpeoG8iYD/AKaeWnOcgjHG
OtbFc94V0S90yTVr7VRax3erXn2qS3s2ZoocRpGAGYKXJCAltq5JPHFdDQxIaP8AWH6D+tOp
o/1h+g/rTqGMKKKKQHI6n44ksPFg0lNPhkgSe2t5ZHvNk5efJUxw7DvQBSS25fuyYB2GneHP
G0mu6lbw3GmraW2o20l3pk4uPMNxFG4Vi67R5bEOjAAtkN1BGKztZ8F6pqHjJ9SjTTnR7q3n
g1OWaRbywjj2iSCJQhBR9rZ+dQfNbKtjmKw0DW/DS2V3PbQagmhWb6dpcFpLIXuRLLGoeXKf
utqogON4A3NkAYoj5/1p/n/XUJb6eRr6b42j1fxnc6LYDTTFau8cjS6iFunZOHaO3CEsgb5S
xZeQ3BxzNceMI7f4iReFZrQqJ7EXEd55nBkJkxFtx12xO2c9jxWTZeC9TtvEUG/+zxpdtrFx
q8dyjv8AaneVXBiKbQoAMjfPuOVVRtHWtK/8JPqPjSbV55UWAW9mIdhPmLLBPJIe2ArK+3rk
gsKFtG/z+7/P+tRvd2+X3/5a/wDBRBLpL6jo2jzJefZhb2YBAtYpS+5U7uCVxt7dc89BVN08
lrWIytKVniy7IqZ/ep2UAVvWP/It2P8A16R/+gCsO4/4+4f+u8X/AKNWmI6ug0GitjESilxR
imAw001JTSKYDKKXFGKBCUUuKMUAJRS4oxQAlFLijFACUUuKMUAJRS4oxQAlFLijFACU4UmK
UUALS0lFAxa0azq0ayqFxObufEl3DcmJbJ2wAdyRO4/MYGasaf4hW71ldNYI0v2cTO0Z4Q5I
29evFclrL2dpqNqt1I8q3l06lSxwAG+ZeOg/xqfWJEtrCTX9NEVnHZuiQIgAMmSoCcDoSSMf
j2rZRp1Ivl6b9r2T7+ZnTlJtp9Pv/L/M7r7faHUTp4uoPtoi8423mDzBHnG/b1254z0zQl/a
S30tlHdQvdwory26yAyRq2dpZeoBwcE9cV5z4oZ9N+Klz4ihV3Oj6RazTpGCS9s01wswx3wu
Hx1JjA71i/aNT0LWtf1sE2eo6np1hdXs7RhzZRy3UqFipGMwwYHIx+7yQRmuVa2+f62N5aX+
X42v91/yPaKp/wBracLg251C184TC3MfnLuEpTeExnO7b82OuOeleYaj4wlh0S5SLx9sjk1B
bXStac2aR3OYg0hkdo/LdIjuyUC5ICZ3VYn1e41LxTp8MmojUbWz8RW8drOAmHRtLZy2UAB3
MxbPTnjjApN2X9eX+YdPk391/wDI9Otbq3vbWO5s547i3lUPHLE4ZXU9CCOCKZLf2kF7b2c9
1BHdXIYwQPIA8oUZbap5bAIzjpXith4xv9I8PeDbDStSFo6WOntNbTzRKt2ksoQiOMwtJIQo
bcVkjC5U88iut+INjc3njbw7Lpylr+xsr28tVBxvkje2Oz/ga7k+jVTsn5Xa+4Otuv8Amd61
/aJqCWL3UK3kkZlS3MgEjICAWC9SASOfenT3ltbSQR3NxFC9w/lwrI4UytgnaoPU4BOB2Bry
KTVh/wAJdB46niu1W80bUZLZEjAmS1i8jy8KwwCSXk5GPnGelWvDPjPXbuW0gn1m31CNvEC2
hubeWK4WWFrJ5dvmpDErYcdVQEYxk4NTsrv+tbB0v6/grnrNFeJXuqeJdS+H8Y1HX7m8/t7w
re3ckaWsCeVJEsZATEecMrlWBz1yu3jFy+8W6va6jo1lpXizTI9O/s6GeDUNSvoII9Rk8xlk
TcLd1k2hVXbGYmG7JJzkVbW39df8geiv/XT/ADPYaK8zsNf1+PVrK/utYmubS58Q32ltp4to
giwx+eUIYLvLgxAZ3YI4xnk4Fh4+1+/sNWk0/XY5Ub+zpLSRnguZLTz7vy3jkCQxqrBCAYzv
Kn+Pmkvetbr+oPS9/wCtbfme10V5jd+I9Z0k6hpmoa/JHaWmtxWk+vTwwLJa28lssoLYQRAm
RhHvZMAOMjPNVvEHi3V7XxHptnpXivTItNaxiuLfUdSvoII9TcyMHG4W7pJgBPljMRG/OTkY
Fra3X/K4PRX/AK3sekarrmk6FAk2uapZabFI2xJLy4SFWbGcAsRk4HSrwIIBByD0NcP8QL6y
0O9tNcGtWGnara2k6QWuon91fxNsZ4lGQ2/KJgrkjPKtkCsO38Xa9P8AEKOxkv8ATtBtEa2W
HR7+6SCWeKSJWbZEYC0jBmZRslUAx4K8Hck9P6/r+vvHoeq1DDeW1zNPFb3EUslu4SZEcMYm
IDAMB0OCDg9iK8w0vxR4j07wnoWr6jqc2rSeILPyYI3t4UWK+cAwgbEU7G+fduJ5AxgHAsX/
AIl1nTrjULG/1021na6tbWVzrLwRKbOJrNJDJyuxS8pC7nBVfM6dMVazt/W9v69UH9f1/XQ9
NoryjxB4t1e18R6bZ6V4r0yLTWsYri31HUr6CCPU3MjBxuFu6SYAT5YzERvzk5GPV6Ol/wCt
A62CiiikAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFADR/rD9B/Woft9odROni6g+2iLzjbeYPMEecb9vXbnjPTN
TD/WH6D+teZ+KGfTfipc+IoVdzo+kWs06RgkvbNNcLMMd8Lh8dSYwO9Deqv/AFoFtG1/Wtj0
ZL+0lvpbKO6he7hRXlt1kBkjVs7Sy9QDg4J64qxXi/2jU9C1rX9bBNnqOp6dYXV7O0Yc2Uct
1KhYqRjMMGByMfu8kEZq7qPjCWHRLlIvH2yOTUFtdK1pzZpHc5iDSGR2j8t0iO7JQLkgJndR
0/rvb+mHXy/4Fz0/+1tOFwbc6ha+cJhbmPzl3CUpvCYzndt+bHXHPSp7W6t721jubOeO4t5V
DxyxOGV1PQgjgivMZ9XuNS8U6fDJqI1G1s/EVvHazgJh0bS2ctlAAdzMWz0544wKwLDxjf6R
4e8G2GlakLR0sdPaa2nmiVbtJZQhEcZhaSQhQ24rJGFyp55FOOunp+KuJ7X8r/jY9yooopDC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAaP9YfoP61E17apfR2T3MK3UqNJHAZA
JHVSAzBepAJGT2yKlH+sP0H9a4DV9S8PWPxq0VReaXbanNY3UVwPNjSaR2Nv5KvzuJIB2g9Q
Dih7/wBdrh0Oyg1zSbrVp9KttTs5tRt13TWcdwjTRDjlkByByOo7imXPiLRbO5it7vWLCCea
f7PHFLdIrPLwfLAJyW+Zfl6/MPWvLvAviKfQbKGJtUfUvJ065udY07yY1ksbwSLhSVUMHkdn
G2QksfmXAGKTxFYR6FbarZay0bajqvhxobMDg3V+8sjypEO7GSSEgA5wB6cHb+u+33fl6Dtq
1/XT/O/3+p6kPEeiNrZ0ZdZ086oOtiLpPPHG7/V53dOenTml1HxDoujrI2r6vYWCxlQ5urlI
gpbO3O4jGdrY9cH0rh4dRttH8fRroniRdQmv7l5Ne0tWhlW0EduFacsq74iGijXDsQdxwM9H
XviOz8O+Gk1PU30+11jxLcPJa/2lIsMcQZQF8xmPCpCqbgDyeBywpO9tP6f9X18hLV6/1/w3
Y7htc0lNSttPfVLJb27TzLe2NwgkmTBO5FzlhgHkehqxBe2t1NPFa3MM0ls/lzpHIGMTYB2s
B0OCDg9iK8ct7fTNPik0LSb6K9vJr/R30eRJQ7XFrCIQZUx1RdlwWIJAyc4zzp6LqtiJfHdj
8PpNPurxrqJrS00yeAFUMEKPKillX5WLHkgFhgnJqu9vP9P89fQFra/keoWl7a38JlsbmG5j
V2jLwyB1DKcMuR3BBBHYip64b4Tfu/Cl7brp1xp8Vvq96kcVw8bEDz34yjtyPunnqDjIwT3N
Au/zGj/WH6D+tOpo/wBYfoP606hjCiiikAVQXXNJbWW0hdUszqaJvayFwnnKuM5KZ3YwRzjv
V+vOtQ8S+GNV8ex2dxqukWkPh+aWeZJbmNZp7kxMrKqZyUVHYsccnA/halfUfQ61PF3huTTr
jUI/EGlPZWriOe5W9jMcLHgKzbsKeRwavWOo2Wq2CXul3lve2soPlz28qyI+Dg4ZSQeRivL4
NT8H+LbfU9bv/FemaPHcvZrbfZtQt1lto7eRpIGkD7lDs5Y7WBwoC9Qa7bwTqV/q3hCG71OU
3DtNKsN00PlG6hWRhFMUwAN6BW4ABzkAAiiWkW+39f0hdSax/wCRbsf+vSP/ANAFYdx/x9w/
9d4v/Rq1uWP/ACLdj/16R/8AoArDuP8Aj7h/67xf+jVqgOrNFFFbmIUUUUAJSGlopgMNJTjT
aBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA4UtNFLQMWtGs6tGs6hcTnNY8LafdRTzX
moX9taYaSaGG5KR+rEgDPaobPwXo0zWl79qvb6GPEtvHPcl41OOGCnvjvVnxjqMljoypBbfa
nnlVDEBnKjknHpxj8aTwbqL3ukSRzW/2Z7eZkEZGPlPzA49OSPwrk9v+99jfpfZ/nsdPsX7L
2vnbdfludDRXGeIPEuoaDqutws3mq+mx3GlIwUDz95iZOmSN7wHnP3jVzw1qWoPqfiO01S7a
8GlzwxRv5aoSPssTsflA6szH2zgccVrdWb+f42Metv6/rU6eiuT8Lf2zrthp/iS71yWKK+jW
4XS4YITbpE65VSxUyFwCMsHA3fw44qTxB47svD2pXNnPpupXZs7Jb+6ltYkZIICzqXJZwTjY
SVALEdAcHDemjDfY6iiuPm+JWlWVjqVzq1lfab9gihn2XYiUzxzMUiZCJCoDMpHzldv8W0c0
yy+JmmarY20uj2F9qNxO8ym2s2gmaJYtu92dZTGQN6fddidwABIICbsn5f1/XbqB2dFee+F/
HDP4Zh1DV7i8u7uPQrbUblD9mghw7OC4ZygVvkOdzBQAMYOa3rDxxpepeBbnxXbJM1jaxTyS
xqY3f9yWDhSrFG+6cEMVPHNVL3b36Bu7f13OkorgtZ8eyy6RKNPtL/Sb1JrCSP7bDGPOt5rl
Iy6gFsZG4ENtdcjIBxVu8+JukWGvalpNzbXP2jToHuJfKlt5cxIU3ttSUumA4bDqpIBwCRii
39egdLnZUVyniH4iaP4b+0/b1mIgnitg++KNJZXQybA8jqoIQBiWKj5lAJJxTtE8e6f4h1K0
tNJsrycXFmt41wvlGKBC0iYZg/J3xMvybgeCCRkhLX+vn+QbHU0Vyd/capa+P9LtrTWZLlLt
pHudLaGLy4LZYyPNDBfMDeZsHzMQdxAAxxJd3+rW/wATdMsWvojpd5Y3UgtUtwGDxmEBmckl
vvtjAUYPIPWha28/0A6iiuO+IeoX2k6V9t03WL+wuEjYwRw2cclrI4wR9oleNhFH0yxePjdy
SOOvQkopJBJHJHSjoGw6iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAaP9YfoP606mj/WH6D+
tcd4g8S6hoOq63Czear6bHcaUjBQPP3mJk6ZI3vAec/eNDBHZ0Vx8fitNJlu7GdtU1rUYbyG
xWBIYFaaY26yny/uKF27nJcjB3AHG0ViW3xXs9H0IXPiRpmubrUb6O3t3e3tnSKGZlwxleNM
qCq43FiemcE0af18v8w1sn/XX/I9Lork2+IemNcH7NZahdWEbQJPqUMaeRA0yqyBgXDniSMk
qjAbxkjBxZ8KaxcX2jald6rcBhbanewhyoUJFFO6qOAOiqOevHNG2/8AW3+YbpNf1v8A5HR0
V5rD4v11PCXiS4v7hYr06RJrOlHylBhhZH2oQRhihVSSQfvjNWbXxZqx/wCEe069mEepjVEt
NRxEoFzE1tNIkijHAfYp+XGGVl7GnZ3t6fi7fg9weiv6/gr/AJbHoNFFFIAooooAKKKKACii
igAooooAKKKKACiiigAooooAaP8AWH6D+tOpo/1h+g/rXK+K7jVLHVtKk0vWZEnuruGCLSvJ
iMdxHuzMzEqZBtj3NuVlA2rkHPL6pB0OomghuYwlxEkqBlcK6hgGUhlPPcEAg9iBUlclZ3ep
W3xAnsn1t9RsUs3uL2KWGJFsHLr5KoyKDhl8zIcscKDkZ55i+8UeJZ7fU9RtdUa0isNKbXIr
f7PFiaNnfyoX3KWC+XASxGG3SH5gABUp6f15/wCQ7P8Ar+vNHqE8EVzbyQXMSTQyqUkjkUMr
qRggg8EH0p/TpXCWer6vD4/265c6tbaZqE+zSEWO0azlH2dXKOwUzq+4SkZKqdoGexs3uo3l
5pGsaxJ4jn0TS7ad0glgt4mbZECjH94jZ3SbuMHIVNuMnI9Fd/1/wRLU7OivLYPE/ioQ/wBp
6pdi2bS7jTbK901Io9k7zrF5zMSpdWBnXaFYAFOd2a3NL8R6jpp8Wv4ivEvxpV3GkC29uIgd
8ETrGi5JJLvgZYkk/gKatf8Art/mgWtjtqK5jwBqWq6n4dnk1+dJ76HULu3d40CqBHMyAAAD
gAYyeTjnmunpANH+sP0H9adTR/rD9B/WnU2AUUUUgCiiigApD0NLSHoaAMKx/wCRbsf+vSP/
ANAFYdx/x9w/9d4v/Rq1uWP/ACLdj/16R/8AoArDuP8Aj7h/67xf+jVpgdXRSA0tbmIUUUUA
JRRRTAQ00040hoAbRRRQIKKKKACiiigAooooAKKKKACiiigAooooAKUUlFADq0qzKtz4aZFc
ZXaxIPQnI/xrOoaQOD8TaF4gvvFUmo6bb3ShUEUbI8O1k69GcHrnqKTw34e1yz8XRapqNrdZ
aMwuzSQ7FU+yuT1x2qjrXxEv9O1JbI+HUtJjKY1FxHvWX+6VdcLk9MH1/O7pvxCguJobe406
3lncgMLTMhHHcBSF57Fq8VYCDqc6qT3va+l732seisycoezUI7WvbW22512teGNP17UNKvL7
zRLpdx9ohEb4Dn+64xyu4K2PVFPaoIfCxtvE15rFnrepQLfTJNc2KrAYJWWNYxy0RkA2oOji
odR8SaVpi6wbm0kLaRbpcyokSlpVYNt8sZ5JKMuDjkfjSp4h0+4ubaDT9OlvXuLSO8HkpGAs
TsFUsWYY6lseiNjJwD6q3sv6/q34HC9rv+v6uP0zwimj3inT9Z1SLTkkMiaVviNuhPOAxTzQ
ueQu/aOmNvFS6p4TsdWuNVmuZbhW1XTRps4jZQFiBkOVyDhv3rcnI4HHro+VB/zxj/74FULj
U7C216y0h7bNxewzTRsI12BYygbJ65/eDHHY9KLX0/rb/Id9blXU/A2marJcSXE92kk1pb2y
vFIFaHyJGkikQ44cO2ecjgcdctn8GyXTWs0/iXWWvrXzEW9X7OkjxSbd0TBYQm3KKchQwI4Y
Vt+VB/zxj/74FHlQf88Y/wDvgUbi2OYX4ZaTFp0NrBe6hEbe0tLWGYPGXjFtKZY3+ZCpbc3O
QQcDiptR8KSWnw117RNKludQur62vCr3Mib5ZpgxOSAqjLN6ACtXV76y0XRL3VLq23wWVu9x
IscaliqKWIAOBnA9RWbo/iaz1TUhp91ot3pV49v9qhivY4j50WQCytE7rwWXKkhhuBxg5ofv
XXf9f+G/AafK1L+tP6/Ehtvh/ayWLDVdR1G9upVtQZp3i3xJBIJUiXagG3eDkkFjnluhDR4L
ttDuJtUtTqur+Wtz5GleZAEH2iQPKFLBM5bnLuSBkD0roFMZvHhOnlY1RWFwQmxyScqBndkY
BOQByME84m8qD/njH/3wKJe9/XcmPu6HLaR8PorfwZpWm3F5dWmo2UwvFvbSUGSKcgg4Lqys
NrGP5lIK9q3NN8PJYas+pzX93fXslpHaSTXPljeqO7gkRooBzIRwAMAcZyTd8qD/AJ4x/wDf
ArmLDxrpt9rS2LaNeW0Ut5PYwXs0cPkzTQlgyDa5cE7HI3Kudpp3u/69P+AFrLX+uv8AwTQs
/CT2PiS81eHxBqpN7MJZ7V1tmjYAYVN3k+YEUdAH45Pc5rw+B2h1nS9RPibW5ZNMgMESTNby
CRG2bw7NCXYv5akndn0Irf8AKg/54x/98CqFxqdhba9ZaQ9tm4vYZpo2Ea7AsZQNk9c/vBjj
selJaNW/rT/IZUvvBp1G3mtLjxFrJsLl5Tc2ZeFkmSRyzRl2iMiphtgCsuFAAOea6NFWNFRA
FVRgAdhVbyoP+eMf/fAo8qD/AJ4x/wDfAo6WDrct0VU8qD/njH/3wKRo4VQkW6MQMhQoyfbm
gC5RXNab4k0vVZ7GG0s5DLdwPO6NEgNqEbYyy88NvyuBnlW7AmtryoP+eMf/AHwKALdFZGr3
1louiXuqXVtvgsrd7iRY41LFUUsQAcDOB6iqGg+IrPXLq4tJNIudMvLeOOZre9SLc0T52upj
d1IJVh1yCDkCgNjpqKqeVB/zxj/74FQ2xjnjZpdPNsQ7KElCEsAcBhtJGD1HOcHkA8UAaNFV
DFbgZMMf/fAqnZajpWo6LFq1mYnsZofPSYx7QUxnOCARx60eYGvRWTpV3a6tpVvfxWbQx3CC
SNJo1DbT90kDOMjBx155AORVvyoP+eMf/fAp2tuG5borF1LU7DS7nToLi23NqN19liKRqQr+
W75bOOMIemecVf8AKg/54x/98CkBboqjKsMcLulosrKpIjRV3OfQZwMn3IFZn9v6MPCr+IJF
EdjHA00haH50C53KVHO4EEEeoxQG+h0NFYmkXw1OGR7nQ7rS3RgBFeLCSwIyGBjd1x2xnIxy
OmdAxW4GTDH/AN8Ch6bgtS3RWVpt5pusaXb6jpwjmtbmMSRSeVt3KehwQCPxq15UH/PGP/vg
U7WAt0VU8qD/AJ4x/wDfArE17xNpPh5wl5avK3kPOywRKxVQQozkjlnZUUDqT2AJCA6aiuKk
8d6Rb2AnutIv4JlvlsZ7U2qu9tKzIB5joTGoIkRgd/IPGSCK2tW1Ow0dLcz2jzNcS+VHHbwe
Y5+Usx2jkgKrE4yeMAEkAnS4G3RXMab4n0jUvDl1rYtZba1tZJo5FuYAkgMTFW+XqMleAcH1
APFFv4m0u58IWniGKylNveRxNBb+UnnMZCFRMZxuJYDrj3xR/X37AdPRXGX3jfS9LurmDVdH
vrLy4Hnt3lhiIvVR1QiMK5IYs6ABwhO4e+GyeO9It7AT3WkX8Ey3y2M9qbVXe2lZkA8x0JjU
ESIwO/kHjJBFC12/rp+YPQ7WiuYm8QQJ4qOhWuhXd5LHFFNPcQiARQJIzqpbfIrH7jE7VbpU
ev8AivTfD90YZtLubsRW/wBqupLWKMraw7tvmPuZSRw3CBm+U8eoB1dFc3r+v2WhC2QaXcaj
c3W8xWtlHGZGVF3O3zsq4Ax3zkgAEmkvPEmk22g2Wq21s1/HqJiWyhto08y4MgyoXeVA4yTu
IAAOaAOlorA0/WbDU/Dv9rWdhLIuHBtREvnLIjFWiIzjcGUr1xkdcc1jN47sQscK+HNSbUWv
jYNpoS3EySeSZsljKI9pjGQQ56468UdbB5ncUVhWeqWlzqbadPp8lndi3S5Ec6R/Mh4OCrMC
Vb5W54JHUEE6XlQf88Y/++BQBboqp5UH/PGP/vgUeVB/zxj/AO+BQBboqp5UH/PGP/vgUeVB
/wA8Y/8AvgUAWR/rD9B/WsnWvDGn69qGlXl95ol0u4+0QiN8Bz/dcY5XcFbHqintVzyoM/6m
P/vgVj6n4i0rSLm7hvrVo2t7T7WpESkXC7tpWPnJYMVGDjl19aOv9dAEvvBNneXl1ew39/ZX
s96l8lzbvHugkWEQ/KGRlKlAQQwbqfbFWH4d2lnFatp2s6tZ3ttNcyrfxyRPK4uH3yoweNkZ
SwB5XI2jB656GJYZIUdrVYmZQTG6ruX2OMjI9iaf5UH/ADxj/wC+BRawXuYUvgW1m1KS5l1T
UWhuJIZ72z3RCG8miChZHxHuB+RMhGVTtGVxkGFvAETWmqWJ8Qav/ZuqSTyT2I+ziMGZy0gV
vJ8zBLEcseDUdz4102016406bRrzyLW6hs59REcJt45ZVVkB+fzMHzEGdmAT1710/lQf88Y/
++BR0v8A10/4H4B1Ocuvhj4WlEn9naZBoxmtJ7OZtLgigM0UybWDYTnGAw9CPqDev/Bmmahr
2i6vK1xHd6P/AKlo3AEo2MoWQY+YDcxHQgk46kG+xjW8jhGnlo3RmacBNiEYwpBO7JycYBHB
yRxmbyoP+eMf/fAp+YdLFuispL3TX1eXTFEZvIoEuHi8rpGzMqnOMclG4znirXlQf88Y/wDv
gUgLdFVPKg/54x/98CjyoP8AnjH/AN8CgC3RVTyoP+eMf/fAo8qD/njH/wB8CgC3RVTyoP8A
njH/AN8CjyoP+eMf/fAoAt0VU8qD/njH/wB8CjyoP+eMf/fAoAt0VU8qD/njH/3wKPKg/wCe
Mf8A3wKALdFVPKg/54x/98CjyoP+eMf/AHwKALdFVPKg/wCeMf8A3wKPKg/54x/98CgCyP8A
WH6D+tc/deE3n8VPrsHiDVLSZ4khMES2zxiNTkoPMhZlDHlsMM8egxreVBn/AFMf/fArJfX9
NTxZD4eNjP8AapYHnWY2u2HCbMgOcbj84+7kDkEg8U+odChD4AktrC+so/E2qz22oO7XMN1H
bMJPMYGQlkiVyxXKgliAMcEACtDXfBlhr1wsk1xd2qNb/ZbmC2ZFS7g3bvKkBUnb15Uq2GYZ
5pLLxBpV/wCKNQ0G2gLXWnRRyzOY18v584UHOSRt5479euMm98f6LZTTL/Zd5PFbGRrmeKGP
ZBCj+W0zZYEoG3D5QWPlsQuBkpdLf1/X5A+v9ef9efmal54Se81L7fNrl9NLB5j6fBOsXkWU
rKVEioiIzlQxA3s3BPfmk1HwVb3um6PZWmqX+mRaOVa3FoIWDMq7VZ1ljcMR1HHBOeoBDrDx
Bpmo+I77RoLKdJ7KJJXkmtfLjdWZlGwtgsMofmA2nsTUd74hggmvIrHQb7VJLORY5FtIogNx
TeQDI6j5VK55/iAGTnC0Sv8A1oG7sDeB7WXU4ry71TUbkh4ZriGQxCO7mh/1csgWMYYYX7m1
TsXIOKSx8CWkN1qj6rqF3rsGrMr3dnqcFs8LuoVVbasK8gIoAzjjOM81Qt/iBoF3cWYtLK4m
tLkW+6+WFBFbvOMxI+WDhmyo4UgblyRmp18a6M2ka9qP9nXiQ6Fn7QktoIpJAIxJlEfB6MMb
tv5c1VrX+f6f8D8AWrVvI1/DPhTSfCNjcWmh2sdvDcXMly6pGifM7E4G0AbVHygdgAO1bNY2
k3X9pWfn3Oiz6Y27Ahu/JZyMD5v3TuuOfXPHSr3lQf8APGP/AL4FAlZ6osj/AFh+g/rTqp+V
Bn/Ux/8AfApfKg/54x/98CgZboqp5UH/ADxj/wC+BR5UH/PGP/vgUgLdFVPKg/54x/8AfAo8
qD/njH/3wKALdIehqr5UH/PGP/vgUoihDArFGDnghRxQBl2P/It2P/XpH/6AKw7j/j7h/wCu
8X/o1a3LH/kW7H/r0j/9AFYdx/x9w/8AXeL/ANGrTA6kU6mU4VuYi0UtJQAmKMUtFADaMUpo
oAaRSYpxpKYhMUYoooAMUYoooAMUYoooAMUYoooAMUYoooAMUYoooAMUYoooAAKsXjbZUP8A
sN/Nar1emgWYDcSCOhFZ1OhpA4fVfDFzqE1wyajtSUHCOpYA9sjI4/Kub0hdW8NazGI/Dbxr
K6RzSQTmSNl5y/zHIPOeAK7288QeHrHb9o1dPmYqDGBIMjqMqp59qsWeo6Nf7fsmqxSMxwE3
IGzjPKkZHHqKx3ejNE1scx4m0S/1HxbpNzZxK9jLtj1Ms4BVIpBNEcH73zhlwP79YUHhPWo9
C1O3ltlaVdRsoLBVlTmxt7hZEbsAQrP8vXivVvsCf89H/Jf8KPsCf89H/Jf8Ka0/P8b/ANeo
nq7/ANf1/kjy6x8G3Nnq1nqsGnRw6l/b97PPdh0Mn2STz9oJzyhLRnZ2JzgHJrJsvB2tjyls
dE/sXUE0W9s7nVPtcZ+1Xcgj2zZRi53FWO9gHGeQMCvZ/sCf89H/ACX/AAo+wJ/z0f8AJf8A
ClbS39bWHf3ub+t7nk9v4YvYba6vdB8MjQWto7WW20zzYV+03MLlmb92xRdyHy95IY5O4AAZ
dB4O1VY7uz1QXVzYG1muc2k0Ylku7iNVlVN5ABB84jd8v772NerfYE/56P8Akv8AhR9gT/no
/wCS/wCFN63/AK3/AKX3IS0/rt/T+9nntrpGot8JtY0ddHtdPuri1uobaztoYbfduVghdY3a
NXbqSrY5zx0FTWNK1rxPpNw76RNp72uiXdlbW9zPEZbieaNVz+7dkVAFwCWySxyABk+m/YE/
56P+S/4UfYE/56P+S/4UPW9/66fqNaNNdP6/Q8xuPB1za300+jabDB9j0y0ewCMihruKaWRk
68bt+GY9fMbnrWf4h8F6lqVvpU97Y3N4sz3FzqlnZ/ZHdbiXaUYLdAxMI1UxhgQwGCpwTXr3
2BP+ej/kv+FH2BP+ej/kv+FD1/rv/X4IS0/ryt/Xqzh/CXh86b4g1jVL2ycXFyYEt7q6aN52
iW2iVgzKTg70O7HBK55GDVfw74Tuba7uL/Vbm6eSHVL27sbCR4vs8TSSPtl+Rd5JRzwzHG48
A9PQPsCf89H/ACX/AAo+wJ/z0f8AJf8ACh6/dYForf12PFtK8I+Io7LWnGlvZPfW9q1xaK1r
bx3UiTM88UYgwAroSgaQliGwxxWlrfhi91GTRZPD/hxdG0+0huhd6Ufs8IuFd4SYf3TlR5gR
uQSOMNgE16v9gT/no/5L/hR9gT/no/5L/hR/X9f1YOtzyh/D+r3PxE0/VodDbTYrWZFjlhSz
RY7b7MV2Oy5mZw7bdoPl4UYzjNYlpoV/HrFtpFlpY0XXm8PX8c999pRjdzsYlFwWQlvmbJ3u
A/J4+WvcvsCf89H/ACX/AArP0zwlomivM+j6daae05Bla1tYojJjON21RnqevqaXl6/k1+o7
2d/T8Dkfh1ojaBp13EbDUtNaYxs0V2LFU3hSC0YtQF9MswBOF9K6WxiutMsZRcaje6xJkurX
CwLJ0+4vlpGvbv68nHTZ+wJ/z0f8l/wo+wJ/z0f8l/wqm7kpWVjzFPD/AIkgh1qS28uG88TW
UrXEkTJH/Z90FIiG4fMy7WClhkhk3Y+c4y9J8CM1pplpNod/FaLqkVzfWt/9gWEqLeZGKpbY
VgWZFbcuWGMggGvYvsCf89H/ACX/AAo+wJ/z0f8AJf8ACktPw/Ab1/H8VY8+g0C/tvhbr+gQ
WojklGoRWFssi7RFI8nkqDnCjDLgEjA44xUGreCZZfC08Rmu9Y1K8ksUnkvHiVhBFOjmNdio
oVR5h4GSSeTxXpH2BP8Ano/5L/hR9gT/AJ6P+S/4Udb+n4f1qH/B/E8svvCU48R3QtdAjZ2u
rV9M1eJokXTLeNYw0KjcJEHySYVFKt5nJGTjFu/Dd74hs4JhbXWoaWmrat5ttZ/ZHcs9y2yU
LdAxnG1xnhhu44Jr2i50i1vLWS2u1E8EqlJIpY0ZXU8EEFcEe1Fto9rZWsdtZoLe3iUJHFFG
ioijoAAuAPaj+v6+4d+39b/5nnll4e/4qKY+IPDcmtx3EUSWuo3ptpmsohCEeGQM2QdwcsYw
wbzDS6D4eubL4NXPh2PSl0u/awltnRfLAmmMe3zcxsc7jjk4bjkCvR/sCf8APR/yX/Cj7An/
AD0f8l/woeqa7ij7rT7HmKWk+ueItO17S9OzpTRwfaIxJGPPmCsEmK7usB+Uq2GJ7ZiTPPab
4B1OLw/dWV1p2pNqM7Wq3kzy2S293suo3eQPFtmdtodg0vzYJGcnn2/7An/PR/yX/Cj7An/P
R/yX/Cn1v/X9f12FbS3p+B5Jqfg24tp5Lew8Orc6JFr8d7HpttJFEjQfYykm1CyqAZCQUOA2
TkYJNWtM0bWNCm0fULbQ5ZYoDqCLplvPCGs455EeJcs4TaoTBCk43YUECvUfsCf89H/Jf8KP
sCf89H/Jf8Km2lv62t+Q9/69f8zyPQ/Dt/otz4Zu73RUM9jp8MN9d3wtpILJEVyxik3+bG+T
yQrIQRnH3h1HhzMngS5kawF9FfS3dzHZPtAmhlmd1T5uPmRhw2B82DgdO0+wJ/z0f8l/wo+w
J/z0f8l/wqm73v1/UOt/60PJZrfWdD06TWLWyubYafeRrpGnaldLNNslURSRF1d/kZmUqu8k
FB0GALJ8GC08RaUkehx6nGLZbe+u9Qgt5YFU+Y0jRkv5qSMztuwrK27kDqPSZ9AsLq6t7m5g
jmntSWt5ZIUZoSRglSVyuRxxVj7An/PR/wAl/wAKW+4HiB8CX7eFfDmnzeH7mK1sI5or+ysl
09mmnKoFuQs26Jh8rDcdsg3fWtS88CT3i6rdyabLLfSXuntZ3FzcIZ1hSOBJzuVsKxVZA+Mb
8dxtr1v7An/PR/yX/Cj7An/PR/yX/CnfW/8AW9wOR8J6MfD1/r1va2cdjpc16k1jBDtWNVME
Yfaq/dG8Nxgc5PesbxdZ3F14kuo4VV572xtZLJHYKJpbS5aZosngFgy/gCegr0f7An/PR/yX
/Cj7An/PR/yX/Cl28v8AIOjX9b3PLNWsNdn0rVbiLw/eS3OsavbXgtUntg1tFAYB+8JlC7mE
LEBSw5GSK6iKW6vvEMuqXFjcxx6fZ+Xb2r7Q7yyAPJg7thIARAwOMlxu611f2BP+ej/kv+FH
2BP+ej/kv+FGyt/W1vyA8z0vSNf1DQLizkt5NBmTWpdSX7fHFcx3CNM8qIVhnBBBKE5Ycrj5
hmp/COk6vbaX4Z0nXIwv9j2gnm2IVQzYKRx53MGKqXJwcZ2HA4r0X7An/PR/yX/Cj7An/PR/
yX/ChabeX4KwPW/9bnlt5Z6/4gbUbnUfD99BqAeN7ITT2pt44oZ0lWJSsrNvkMYLMVxnaOAu
SmrWGuz6VqtxF4fvJbnWNXtrwWqT2wa2igMA/eEyhdzCFiApYcjJFep/YE/56P8Akv8AhR9g
T/no/wCS/wCFC0tb+tU/0A898R6fNr+sabNaeFpLTUoZ7eUa5M1urW0asHeMMkjSMSNybcbC
WPOOarePtB1HWtZ8+DSp78JZBNPmt7mOIWlyJN++YOw8yPKwttxIMxn5M4z6X9gT/no/5L/h
R9gT/no/5L/hRtb1uBwmrtry+JLXVbfRGvRp8c1oiw3MQa4WWOJvNAcqFCyR7CCc45GelUl0
jWtJ0Xw1YQab9uHh1bacyQ3EYNy/lyRSxor4AKhw4LEA9Mg16R9gT/no/wCS/wCFH2BP+ej/
AJL/AIUbf1/XV3DpY4HT38R+HfDkgs9C+33t295fPEt3GnkyyTb44jkgNw5ywOBsOM5FUvsP
n+F3tNZ8C6hrlzPM88/9oGxJknK48z/XkIMHau3LKqgY459L+wJ/z0f8l/wo+wJ/z0f8l/wp
NJqw79Tz/wAPwXVv4h0OwursXd5ouiNDqE6uWzJI0WxSTyc+U5554BOM89t51WvsCf8APR/y
X/Cj7An/AD0f8l/wqm7/ANedyUrFXzqPOq19gT/no/5L/hR9gT/no/5L/hSGVfOo86rX2BP+
ej/kv+FH2BP+ej/kv+FAFXzua47xZpWr67qkNxZQRoNE23lj5ojb7Zc5zsyclECgrkgfM4Yf
cFdyLFN5HmP0HZf8Kd9gT/no/wCS/wCFHUDyt/Deo3PxKbXdRsNUYSTQTWk1u1iVtEEYVoZG
f98oDb8iJirBz3JzN4K8H3Hhu78N3Eemx2cy6TNb6tIjoWklzEYw5BJfG1wDyAOOBgV6d9gT
/no/5L/hR9gT/no/5L/hTj7u39aNfqG+5wMPhOe98X61fardXaadNqFvdQ2SPF5NyY4Ygrvh
TJ8rp93cAdoyCOuPL4Oni095ptBjvzL4guLy/sQ0Re/ti83lAl2CMFMiOEdgOD36+rfYE/56
P+S/4UfYE/56P+S/4UtreX/A/wAkG/8AXr/mePPoeqJPZ6Vp/wDxK7ybS9YaztxMP9AWV4fK
TcpIXbkfdyF6LkAGk07whdWegxxR6BqT2q3sM9/o122npHeKI2UhFg2xthijHzdu7y19MV6x
D4e062vri9t7aKK7utvn3EcMayS4GBuYLlsds1a+wJ/z0f8AJf8ACjp/Xe4f8H8TzzR/D1vY
/EKPWLbwlFp9vNpcUMciRWytZSI0m5W2MSCUZFym4YGCQBXc+dVr7An/AD0f8l/wo+wJ/wA9
H/Jf8Kd9LB1v/W1ir51HnVa+wJ/z0f8AJf8ACj7An/PR/wAl/wAKQFXzqPOq19gT/no/5L/h
R9gT/no/5L/hQBV86jzqtfYE/wCej/kv+FH2BP8Ano/5L/hQBV86jzqtfYE/56P+S/4UfYE/
56P+S/4UAVfOo86rX2BP+ej/AJL/AIUfYE/56P8Akv8AhQBV86jzqtfYE/56P+S/4UfYE/56
P+S/4UAVfOo86rX2BP8Ano/5L/hR9gT/AJ6P+S/4UAVfO5rk9Uk1R/iPpF3b6JezWNpbXEEl
4ktuEBlMRDBWlDkLsbPy59Aa7QWKbyPMfoOy/wCFO+wJ/wA9H/Jf8KOtwPLNN0LxT4X1jU7w
XNtqQl01IIJorJkaW5eeVsuPNYjDS7mbAXDcbdpqfW/DGo2kF1p+h2bXsGp6GukGdpUX7Myl
/wB7JuIZgRMxO3ccr0Oc16Z9gT/no/5L/hR9gT/no/5L/hR0t/XX/Nju7t/10/yOAt5tT07x
zqF++gaidPTSo7WO5V4H8xoWlfIRZC5DB1A+XOeoFN1CHX9P8KWmn2FheXVzqEjy6rc2M0Ky
w78vJ5fmyKMknYpydqjPYCvQfsCf89H/ACX/AAo+wJ/z0f8AJf8ACjda/wBa3/ES02/rS34H
l76BqUkk+nWWiy2WnaleWF55jyw4sktxEGiZVcktiBdu3cvz8kYq9pj6j/aPiqXVPCN/Laal
KksdvLJZuJ0EMcTIV84jJ2scNgbe+eK9C+wJ/wA9H/Jf8KPsCf8APR/yX/Cj+vy/yQLQ43wP
pk+j22pE6eNIs7q8M1ppauh+yJsVSMISi7mVn2qSBu65zXUedVr7An/PR/yX/Cj7An/PR/yX
/CncCr53NHnVYFim8jzH6Dsv+FO+wJ/z0f8AJf8ACkBV86jzqtfYE/56P+S/4UfYE/56P+S/
4UAVfOo86rX2BP8Ano/5L/hR9gT/AJ6P+S/4UAVfOp0cuZFHuKsfYE/56P8Akv8AhQLJUYMJ
HODnov8AhQBl2P8AyLdj/wBekf8A6AKw7j/j7h/67xf+jVrcsf8AkW7H/r0j/wDQBWHcf8fc
P/XeL/0atMDp6cDTaWugwHg0UgNLSGFFFFACGiiimAU006koAbRS0lAgooooAKKKKACiiigA
ooooAKKKKACiiigArTrMrTrOoaQPH/EvhO2fWLi4tdGnt3RzIwttxjl7ndGAQc+3J+tV/Clv
p91qsS6xrEU8LFRbraT7ED8/I6gDJ46885r2frWJc+DfD93fJey6XB9pRxIJVXDbh0P1rn5b
P3SoxhG+hynjRfK8TXGihtq+LrWG1ABxkpJtnI5HPkSZ45+T2rGs9Xe50+fUru2tb+XRf7P0
ORbuPzEFz9qQTtjP3h+6YHPBAPtXrUtnbT3EE89vFJNbsWhkdAWiJGCVJ5BIJHHaoTpOnGGW
I2FqY5phcSp5K4klBBEjDHLZVTk85A9KuOlvX+vwbXzHLX+v67I4qy8ZeIG1a1lvE01tLudb
u9JWCGGQTjyvOKSby+058rBXb3yDztHPzeL9TXVNI8U6j/Zt0o8OajqVtZ2W5WjT9wwjdizb
ugBcBeQ3y8V6sul6enl7bG2Xy52uUxCvyytndIOOGO5st1O4+tV7Pw3oen3kl3YaLp9rcylz
JNDaojuXxuJYDJzgZ9cUtbf12t+ev4D05r9P+D/lp+JyT+MNd0e4eLWZtJvIoY7O7uLqzgki
SKCaUxtkNI+NuN4fOCob5RjNRWPjzxDqyS2um6TbvqYjuLqKByVDW/lo1v1YYZjMgOSBlJOn
UdlZ+GtC0/TbjT7DRdOtbK6z59tDaIkcuRg7lAw2RxzU0+jaZcicXOm2kwuIRbzCSBW82IZx
G2RyoyeDxyab6/1/VtPx7iX9f156/gchq2qzav8ABzxNLeXMdxcxafeQz7LGS08t1ibKGN3c
gj13EHqODWPfLaeB737Z4PsrOzkj8N3V7fWcEeyBjGqGCR40wNxbzF3cFgGGfl49Gt9F0u00
c6TaabZwacyMhs4oFWEq2dw2AbcHJyMc5NRWXhvQ9M0640/TdF0+0srnPn20FqkccuRg7lAw
2Rxz2oe7t/Wj/wA/63Gul+j/AMv8jjZPEuq6XrUtxfW2kySQadZXeoXVvaOj/Z5J5lYBi5OI
1AbnOcOcDcAI9U8deJXn0+38Padb3MmqtdT2R8lXLW0JRVO2S4hDF92/cG4XHynkjv30ywla
UyWVs5mgFvKWiU+ZEM4jPHK/M3ynjk+tV7/w9ouqafDYano9heWdvjyba4tUkjjwMDapBAwO
OO1D8v6/4bT8RLz/AK0/r8DI8Na3reseItYg1GKztLTTzDF9mVGaYSvBFK26QPtwpdhwvPHI
xzxfhPR2m8UvqtloYsGs9d1OW+1smFftUPmSr5GFYyP8xQ/OoA8vg9M+qWmnWWnq4sLO3tQ+
3cIYlTdtUKucDnCqAPQADtT7e1t7RHS1gigV3aRljQKGdjlmOOpJJJPcmjrddv8AIPs2f9aN
Hmlp8S9Z8jU3uLW2kj8mzm025kg+zIY7mYxJLIomlOwDa+T5bEZBVetO8Xatq3h3xd4Ylvpr
O81Ca2vbdbqO1eC2g3yWwWSVTI5CL3+bk4GVzkd1aeF9AsILmCx0PTbaK7Upcxw2kaLMpzkO
APmByeD60tt4Z0GztVtrTRNOgt0SSNYorSNUCyY8xQAMYbAyO+BmjZp/12/ph1/r+vkcrc+N
NWtPHNlpaLBe6e1yLC7mS08rZcfZ2lIRjOWY8KdvlEANjfkVmL8SNbtLO21K9TSbu1vNDu9Z
jtbRXWWIRBCsbOXIb75BfavIPyjHPeQ+F9At9QjvrfQ9NivIkVI7hLSNZEVV2qAwGQAOAOw4
rE0HwINM8VTa5ePpRleGSJIdM0oWaMZGDSSSZdzI52KM5HAPBzS8vX8n+v3bD0vf0/r7v8yz
4L1bxHqmnzzeJdOS34R7WWJIoxMrLkgKlxMOD/EWGdw4GOdjTb2bU7ORr7SLvTDuKeRetCzO
uOv7qR1wc45OeDxTdJ8P6NoKyroWkWOmrMQZRZ2yQiQjoTtAz1PWr0sUc8LwzxrJFIpV0dcq
wPBBB6iqlZ7ExutzyfStag0b+1tQeKW6tNC0y4n8ORSpsE1qpPmMrZOcFUQNgYj2Hnea0rfx
Z43az0xLvT7C0n1TUI7e3uriBfLMTwSyFhHFcy5KmMEEuu4NjC/erv8A+zLAfZf9Btv9DUpb
fuV/cKV2kJx8o28YHbiqen+FfD2kkHS9B0yyIkEw+zWcceHAKhvlA+YBmGeuGPrS9fL89fvG
/Lz/AC0+45fUdYvNa+DHiibU1gF5b2upWkxt1Kxu0XmR7lDEkAhQcEnGeprGsU1Hwjo2o63o
Ph+38P210NOtYNOuBHskmaYRyXBSByq5WVRw2TsyR0z6b/Ztj9jntPsVv9muC5mh8pdkpckv
uXGDuJOc9cnNPns7W5thb3NtDNCpVhFJGGUFSCpweOCAR6EChb39P+CD109f0t+Rw114t8QW
t9qDGTSpLfR720sLmA28izXbyrES8Z8wiMZmG1Crk7SN3PGZJ401yCSDSvC2iWQvLq/1PCwW
6bWW3n252PPCC7bgzMHJ4J2nPHf3+gWF3fDVI9P03+2oYylrqFzZrK8Jwcc5DY5PAYdTyM1Q
svBWl/8ACPJpmv2llrf+ky3crXVmjI08js7sqNu28uQOSQOMnrS1/r5f8Pb5D/r8yjYa14j1
7VdRt7VtO0gaascU9tdW7XMzSvAsm4MkqBUBcL0bdsbBHbP8OatrVr8BxrN9erfahHo73UU3
lsGJERZd5Z2Ltkctxn0FdcfDehtf2l82jaebuyjEVrcG1TzIEGcKjYyoGTwMdamtNG0zT7Ga
z0/TrW0tp2ZpYbeFY0dm+8SFABJ7mh7NLr/X4/gEdGm+hx9vq9z4b13SfCenrZvazW8c0U5R
iyKFdpFfDfNLKUZkPGf3pIOz5sew+IXjG88JvrzaNaRWt39mNjJKqCNTLcJGUYpcOz/K5+Yp
Hgqcrzgd7p3hfStOsIrX7LFdeUY2E1zEjSMY+IizBRkoAArHkADnPNLF4T8OwXVxcw6Bpcdx
csHnlSzjDysHDgscZY7gGye4B61X2rv+v6/TzZKTSS9Dgda1nXLzVNN068m0z+1NM8UR20d0
sDxwOJLF3VjGXZsjzCNu/wCYgDIzkbmieM9Su9W0+w1FbLEn9ox3FzCjqkj2sqIrJuY7QQzZ
BLYK9eOeovfD2i6kkqajpFhdrNIJZVntkcSOE2BmyOTt+XJ7cdKZceGNBu9OttPutE02eytC
Db20lpG0cJHAKKRhfwqdbW/rZK/6je6f9df8/wADj9H8XaxrUPh+bWYbG20jWrKHc32F50up
pA26EMJf3IxtxvVlbJGc8VoaPbSap8NL/Sv7RexCyXunW99u5iRJpIo2zkE4UKOoJx171u/8
IroSXMV3a6RYWt7bw+RbXkNnEJbZMEARsVO0AE4HTnpU1jodjY+H00byhcWYiMUi3AD+eGzv
L8YYsSS3HJJpuzTX9f0v1Hdpp/1/W33HCaRr1r4Omls5dE0rQbayuUi1j+zx+4BkiLQzpgLj
JUIysm75l5IAJvL4k8Um600ah9h0q21G3UwSvp0twrTybysLFZlMZVfLyWG1zuAZTgDZvvBl
jLpcOjaTb6fpWjNOJb2ztrFV+0YZWABUhUyVAYlWJHAx1rWk0LSJtaj1eXS7J9TiXZHetboZ
kXBGA+NwGCeM9zQ/eWv9af1/kTsrL+v6/pnmGkeLvGFp4P8ACNjZLFrGq6rYSXQneAMxSNY/
kYS3Ue9yXyXD9B9w8kat/wCNfFkMupzx2mlW8Gm3llaPazrI8rNcJDkeYrbRsebqA24DHy43
HsJfCHhqfT/sE3h3SpLPzjcfZnsYzH5pGC+3bjcR361bTRNKjt3gTTLNYXaNmjFuoVjGFEZI
xyVCLj02jHQU73d3/Wv+Wn4j9DL8Latqd9dazp2ttaS3el3iwefZwtFHKrQxyKdjO5Ujfg/M
elU9QsINd8fXNlqPmGCx0qOSARzPEQ80kgdgykEHbCq5B6Ow6MQeoitbeCaaaCCKOW4YPM6I
A0jABQWI6nAAyewArO1Tw1pus30VzqUC3CrC8EtvLGkkVxGxDbZFYEEBlVh0II9CQYkrq3l+
lg6P+utzzfR7DT9V8K+ANN1+KGbSG0W4meGdQY2lSOMISDxlUaVh6Yz2zW34cNx4p0Twrp+q
tNKLfSodQvpDI6O0jJshywwdxO+TOQQ0anriurXwf4ZTS/7NXw7pK2Hm+f8AZRYx+V5mMb9m
3G7HfGaujSrHN7utkkF9j7Ssg3rKNoTaQcjbtGNvTk8cmrbu2+//AAf8/wAEHY4nwtotvdeA
tU01NJsdWjj1m+EVnqchMMm26fG9ikhJHXJVjkfjVbw9HDfeFNI8MwI3lT390buHGI4oILhi
8aYJBi37Il5GUPQcqOtTwL4Rjs5LRPC2irbSuryQjTogjsudpK7cEjJwe2T61o2ukWFjMstl
aRwFLdLZFjG1I4lJKoqjhRz2A7egwl/l+CB63+f4/wDDnl/iXTLGabVtY8P2q2GmrssNSvYM
L/aJkuohOzHq4jQSKXJ6u4B+U1Hquk2UGk67b2URh0/SvE1ithbwSNHBCXe0MiiNSEIDsxAI
O0s2MHNejWvgvwtYzyzWXhrSLaWZGjleGwiRnRvvKSF5B7g9aWfwb4YutPtrC58OaTNZ2m77
PbyWMTRw7jltilcLk9cdaI+7by/zT/TT1+8er/rtY4jxhq7P8VPDkV3bajHBYanHHblbCdop
mkt5i7h1QocZjUDORiQkYGag+KNv9t165eO3tLkaXo4urhrsgSWMZmJ8+05/1+2JxztGRH83
VT6cum2Kw2sS2VuI7Ig2qCJcQEKVBQY+XCkjjsSKh1HQNH1ie3n1bSbG+ltW3W8l1bJK0JyD
lSwO05A6egoWlvJ3/Cw93fyS+53OS8VjR/EPinR9L1dre70xLa7kuLaYqyrOI4zHvU9GEbyO
MjI+8OmazFvF1nwP4E03XZ47k3slm2p287KzTRtDIYzKpPKvKiDnhjxz0rv73w9oupxypqWk
WF2k0qzSrPbJIHkVdqucjlgoAB6gcU+90XS9SWZdR02zu1uI1imE8CuJEUllVsjkAkkA8Ak0
LT8Pwu/+B6IXS3k1955u17FD8JbjTftaRW76lNawJ5gDHT1vxE+0Ej5FibbnoFx7U+O2g0h9
VOkQx29tpHia0i06OFAqxLMLdbiFAOApMr5Xpk56jI9GbRtMaGKFtOtDFDA1tEhgXakTABow
McKQoBUcHA9KqN4Y0xY9Nt7SBbKx02bz4rG1jSOBn52kqF/hYlgBj5sE5wKFo7+n5r/L72we
33/r/n9xsUUUUAFFFFABRRRQA0f6w/Qf1rzv4hSxWmtRm2eaKO7thFrzwx58uw8zHmM2RtYF
nAPOEMpx8gr0Qf6w/Qf1qA6dZGS6kNnbl7xQlyxiXM6gEAOcfMACRg9jQ90wX9f1/WpxcPij
X5fHdzo2h6LE2i6VNDazsqxAqrRK+8MZ1ZQAwwohfIU4YZ+VPB3i/wAQard6CddXTTBrmmS3
sSWcMiNA0ZjBDMzsHDCTPAXBGPm611MnhfQJb61vZdD017qzRUtp2tIzJAq/dCNjKgdgOlWo
NL0+2+zfZrG2h+yRmK38uFV8lDjKpgfKDtXgccD0prTf+tH+uojy+40OTV/iXrzadoQOowaz
ZSrrxMK/Y4kt4Gkjzu807lDLtClTv5I5rYTxf4juNqRvpMDX+vT6TZvJbSMsCwmYl5B5g8xm
EQUKCnJzk/dHexWtvBNNNBBFHLcMHmdEAaRgAoLEdTgAZPYAVWuNC0m806awu9Lsp7KeQyy2
0tujRyOW3FmUjBJbnJ781K0SX9dP8hvX+vX9WcBc+OruyKahf6Zp15d2Fjq5e4gjIMptXjH7
piSURz95fmwVxk7ebNn4u8XmwsotT0+zsrrVb2K3sr6eJBAFaJ5CTHFcylv9Xhf3ibi68DHP
S2vhgW/iOG/MloljY2j2mn2FtZiJYEcoX3HcQ3+rUABVAGRg9amh8HeGbbT7mwt/DmkxWd2V
Nxbx2MSxzFTld6hcNg8jPSmtv67v80H/AAf+B934mFpT+Ix8Vru11HV7S4tI9HtpHghs5I1L
M8y7kBmYKcrknByu1e2T29Z0Hh7RrW4tJ7XSLCGayiMNrJHbIrQRnqiEDKryeBgVo0+lv63D
rf8ArZIKKKKQBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADR/rD9B/WuP1Cxhh+MWh3aeYZrjT
b0PvmdlAVrcAKpOE687QMnk5NdgP9YfoP61mXHhbw/d6wurXehabPqSMrLeSWcbTKV+6Q5G7
IwMc8U/tJ/1tYOhxyQ6f4V+I1xfT6VZaREdLu7gtpnzfbESSNmluPlUiQZ+UYfO9/nzwYrrQ
hZX3gvUr9JF1a71kzXY89yivJbzuw2k7cr8qBsZ2oB04rsrfwh4ds4Z4rDRLCyS5dHnFpbrD
5xRty79gG4A9jkHJB4JqTVPC/h/XLqO51rQ9N1GeNdqS3dpHKyDOcAsCQM80o6W8v87/ANf0
gevN5/5WPPrCOKLxbYasoUa1c+Jb+0vJsDzGtEil2xseuxUSBgDwDg4550buHSdS8Oz6trej
Q6zd69cltN06dQ3nKFKwDDcKAgMhYj5N7n69nN4e0ee6u7p9NtluryA29xdRxhJpIyMbTIuG
xgDvxgelJqXhrQtaggh1jRdP1CK2GIUu7VJVi4A+UMDjoOnpStePK/Jf5/lp8x397m/rr/nb
5I8sOjtpMkzXs/2zxBo2oaPYWN2/MoiIhVwhPzbXL3Ab1AOc443bGR/C48fPottdXU0V/CIU
Alu5C720A3N96RwC249TgHFdtB4b0O2ubS5ttG0+Geyi8m1ljtUVoI+fkQgZVeTwMDk03TPC
3h/RbyS70bQtN0+5kUq81pZxxO4JyQWUAkZANVe979b/AKf5fiJaW8rHM/COW3PhG8gtftbJ
Bq16m+7t5Inf9+5BO9QScHn0OQcEEV3dQ29rb2iMlpBFAru0jLGgUM7HLMcdySST3JqagXf5
jR/rD9B/WnU0f6w/Qf1p1DGFFFFIAooooAKQ9DS0h6GgDCsf+Rbsf+vSP/0AVh3H/H3D/wBd
4v8A0atblj/yLdj/ANekf/oArDuP+PuH/rvF/wCjVpgdPRS4oxXQYAKcKbilFAx1IaWkpAFF
GKMUwENFKRSYoEIaSnYpMUAJRS4oxQAlFLijFACUUuKMUAJRS4oxQAlFLijFACUUuKMUAJWn
WbitKs6hpA8f8S3/AIvt9TaIa1HcWySn97bSeS8anoGjGN2OvBz/ACNvwr4n8R6veC002Z7p
bcgzG8dF2g5HAALMOvJPb8K7u88J6TfSyyTwNvlBDFZGXr3GDwfcVzMfgrxJYavbT2WvrcW8
Mi8XEQ8zyx/BuHbHtXPblZUYJXdzT17xTf6Tca3aQwQSXMNpby6YrK2JZJnaJVfB5AkC5xjh
vbNVovHEl39mmSa2sbQ2Fnc3Es1tJMUluZgiRAKwIPyuOehKk8Ag6ut+FI9a8TaLq7XTQ/2Y
7mSERhhcqcMoJP3drojAj0rKh+HMcGlarZJqTH+0NViv0doB+4jjmSVYAARlQVYA/wC3nHrc
el+/4f8ADO/yHLy/r+rfia1p448P32tDSra9ka6M8tsM2sqxmaLdvjEhUIXAUnbuzjnpzWWn
xF0y78UWdpYXUZ01rK7urm7ngkiULEYwHjdwFeP5ny67lOBg1Yj8DhI7NGv9y22tXGqn9zjf
53nfu/vcY8773fb0GeMtPhndXFtBY6xr4utPtdKudKt44bIQyLDKEAZn3sGdRGBkKAf7o5yt
f69P8/8Ahx6c3l/wf8tToLHxxoGoMqwXU0cjSRRiO5s5oHJlyIztkRTtYggNjaTxnNPfxr4e
js3um1OPyY5Z4WYIxw8IJkGMZ4CnnoeMZyM5M3gfUdRs719Y1yGXVJbeGC0u7Wx8lLYxP5iP
5Zkbc2/BPzAEAAAc5ba/Dm3sLi5ktZ7eWOTT/skdte2nnRByiJJI67hv3LFGCuR0bn5uG+v9
en9ea7MS8/67/wBeT7o1dW8S+V4E1bX9LhmD2dnPPEl/ZywEtGhI3RyBHxke2R0NZcHirU9C
vo4/GVxp8tlcabLfx3tlbSQ+V5QVpEaMvIT8rBgwPOCNvTNu38H3CfD/AFLw5d6qZpL6GeIX
AjfZAJFKhUR5GYIoIwpc+xAwBWn8D32q6ZeRa9rMNxdS6ZNplq9rZGGK3SVQGfyzI5dztXJ3
gYUAAZJI9G7f1o/1sNa2v3f6fpcu2vjTSrjVI0GoYhuY4fs8MmnzxSZkeRFcuwxtcoQvyjoD
kh1qe98a6FYF1muZ5HSZ4DHbWc077kALkLGjEqu5QWA2gnBOeKpaj4IXULi+mN+Y3udMt7KJ
hDkwSQyPIkwO7khnUgcfd688Z2rfDGDUbXRf32nXV3pkcqSNq2mC9guWlIaSQxF1KuXG4ENx
lhyDQ/L+u39ea7CXn/Wmv4/l5nTWHifSdU1i40zT7l7i5tkV5ikEhjQMquv7zbsyVdSBnJGc
dDjltL8Ya7Lr9qL5tNl0++1i80yK3gt3S4i8kybZC5kYOMRfNhVxuH0ro/D3h3+wrrUpvOhf
7fJDJ5UFv5McPlwRxbVXccL+7yB2BxzjJr+H/BOmaBPqF5FBatqV/c3M0moR2qRz7ZZC+wvy
SFyBycHaOBRs7+X46f8ABDePn/wH+tiZPGmhGO/aa5mtf7PRZLhbyzmt2CsSqsqyIpcFlIBU
HJ4HNZ1748trXV9NL+ZbaXc2l3PM95ZTwTK0TQqoWN1VjkyEAbSWO0L742mfCU2Nreq+q2ou
p4rYR3NrpohYzQSmVJ5syMZnLYLkkbsds1qax4FvfEV7pGo6xrEA1LSVma2ns7JokWV2jKPs
aV8hfLwVJIYMfu0dV/X9f1qHX+v6/rY3D4p0tdWtdOmN3BcXgBgM9hPHG5KF9vmMgQPtBOwn
cMEYyKp2nj/wze3LQw6lgiCW5EktvLFG8MeN8qyMoVkGR8ykg9iayG+HU9z4zg8QajqVlcSx
zrOzDTcT/wCo8poklMhKQ5JcIBwSck9a5zSvDF3r+qR6JdXN/caHYaHdaatzNo8unsiymNEX
Mv8ArXCxkl1ULwvHzUtfz/J/8BD0vrtoel6N4g0/Xo5X05rjMJAdLm0lt3GRkHZKqttPZsYO
Dg8GtJtxQ7CA2OCRkA/Sub8HeE/+EXsZ7d49E/ehAW0rSBY+ZgEZkAkYOee2AOeOa1LDRNP0
SwmtvDun2OlrIS4W2tVSPzCMbmVNu7oO4JA61UrdCY36mDpHiy9u7yaHUo7eyTRoX/tueRGW
NJRyojYnAUoDISd2FZAeScWm+IHh1LNLiW5u4hJOtukUunXCTPIyF1CxGMOdwVtpAwxGBk8V
nH4bW5s57f8AtCQf2lYTWeryCP575pMkS5J+R1Z3I+8NrbcYAxHo3w6Omf2cWk0WA2N8l2Tp
Wiiy+0bYZI8SYlYE/vM5AGMEY54Xr5fnr+G36j9PP8tPx3NjUfFcDfD3U/EmgSJcrbWdxND5
0TqPMiDZV0O1hhlIIODwelZNh41n0q41KHxld2LRWdtaXP2ywtZUVRcMyLG0e+Rt25RyDyGB
wMVpf8If/wAUbrmg/bv+Qs963n+T/qvtDO2Nu75tu/1GcdqLjwNpi+FV0TRre00mL7Tb3Lm0
tFRZHiljckquOW8sDPb3xihb/d/wfuB/5/pb9SVvHOgR38VnLdXEcsnlBi9lOqQtIAY0lcpt
idsjCOVbkccio/8AhNNKsrMyX9+bp2uriFVsdOnd/wB05Vx5ah2ITgM/3ScHjcBVHV/CUy3m
qXX9qFNGvriK+v7KOwae4d4lQYidWyAwiTK+Wzfe2kZGMG2+Hh8Rabaapcw2cVwt9qFxHa65
pIuo2huJy674WZGR8BCDkEZYEc8L+vy/4I9P6+f/AADtZ/GGjRXhtYpbm8mWETMLGynuVRSp
ZdzRIwUlRkAkE5GAciquheNrXWfh+PFUltPaQLatczRSxupQKm5gpZV3jHRgMHtSaX4Xv9F1
iWfTdRsYrC88t7yy/s8/6xIliJhYSjylKonykPjHB5pNO8ITWvw5m8J3t/HdRGzksop4rcxE
RFNo3Au2WGeSMA+goez/AK/r+tgjurk2neKYFhtrTXZkh1h/JEtrFBIMNMGZFXOd4AVgXHA8
tydoBAYfiF4ZWzuLuTUJI7a32Fp5LSZEkV3EavGxQCVNxA3JuUZBzgg1Rt/C2p6pqmmeINWu
Vs9RtIFtxa+SHRIyCJ1yr/N5h2srcFQifL98Nl6X8Jo9K0ltNt59HjhV4DHdW+irDeOsU6Sh
ZpVkxISIwCdq5Pzexr7X9f1/Xzcq9vu/4P8AX/DLT1T4i6fBDpl1p8jNbTat/Z96lxZzpPEf
IeQKIiofeSEwNpzu4ByK3NP8V6Nqr2iWN4Xe8SZ4UaF0b9ywWUMGUFGVmAKtg+1Yup+Bru51
ibU9O1iO1uW1aPU4/NszKilLX7PsYB1LA/eyCD296YngbULVrG90/W4U1aGS7e4uZ7EyRzfa
WVpAsYlBTBRdvzNgDndnNTrb+uy/C9xvdW/rf/gGrb+MdJ1R7a30e5mnnvbZZ7eRNPnliRXD
bGkYKAgO08Oyk4qOHxJez+ArrWbfTjdalaxTq9lDk+ZPCzIyr1OCyHHBOCOM1kaf4Bu9G/sN
7bUYXXRbRIXa2s2hur4IrYjaTzghjJIOx1IByQQTkbfh/SdRsvCLQPKlnql08907FRKsEssj
SbSAQHCltpwRkDgjinK1nb+uw+q/r1/Qg8NeJBfQWovtb0vVH1Bn+xz6bbSRRtsXLxsC8gV1
5OCwPX5RtNSr450OWUR2sl7dt5bS/wCi6bczAKC4ySkZAyY225+9j5c5GeX1zwrqEMFywvZJ
/EesX0EsF3punPDBamNRGXPzOE/ds+Wd8sPlHQCt+XwWy6/pV3p93b2Nnp0UcOyC2dbmeNFI
ETzCUK0fIOxo2wckEE5A7taf1oTsiLSPiTpF/wCFdN1m8ivbR7+MutoljcTSDABcqqx7mRdw
/eBdvI55q1dfETwtZ3slrPqmHiaNZXS3leOMyIHj3SBSq7ww25PzHgZIIrn5fhU02k6HbXN7
pF/LokUltb/2jo32iCSBguA8Rlz5gKA71Ze4281qt4C32GpW/wBuhi+33lld4gtNkcP2cQjY
qbzhT5HHPyhsc45ejf8AXf8AyGb+i6/p/iC3mm0ySVhbymGaOe3kgkicAHaySKrKcMDyOhFU
dT1jVP8AhITpWhQWcskFn9quPtbsi/MxSNQyg4ztkbOD9zHG7cLel6J/Zusa1f8A2jzf7UuY
59mzHlbYUjxnPOdmc8dce9Z+o6ZqyeLHv9GMKfbrBbWWeeLzUt3idnRmjDoWUiSRflbIO3tm
ole2nb8bf5h0f9df8jHfxlrp+HOgeIoLXTmkvjafbC7OojE0saHy0Gc/fPVxjA+90rpNb1S8
tb3T7DSI7ea9u3d9lwxVRFGuXbIyRklEzg4Lg4OMHm/+ED15fAOneGE8Q6cEsZISLg6TIS6w
ujxjb9o4O5PmOeQcALjNdFa6TqK6ne6jeXNs169rHbW0iRN5aADczmMtkbpDyoY/KifNnpbt
d27/AIdPxBGRp3iXVL3wXe6lqN/o2i3Npf3FtLdXKM9rEsczR85kQnOAMll5Ocfw0+z8T6pc
eDbC7kitRquoXRtbXCOsMw8xgJwhO7YYkMu3Ocd+9LonhvxNoek3ltBr2kyT3F7JdrK+jybU
Mrs8ilRc5PzMMHIwBzuzkS6B4QfR721ea5S4itUnlUqpQNc3EpeZxH0RRnCjJIDsCe5S/wAv
y1/y/q4Prbz/AOB/X498rX/FviHw7q09rKmm3/2i38y0jghkRrWR544YRMS53qxk6gIf3bYH
cMvPGXiPT7C8jkg0u4u9M1e3sby4AkjR45mh2NHFljnbNg5k4K5+bOBPH4D1iW21SDU9d0+5
Ooyi4a6j0pkuFlRw8JLGdlKRlVATaBgdiSSuoeBNXvNIuYI9dskvdQ1CO/vrl9Md1d4jEYlj
QTgooEKggs5OTyM0R0tf+tV+l/XQHv8A12L2veLLjT/GWh6JYRQypd3AjvpJMkwq8crRhcEf
MTC3XOAOnINUPHfjXUPDOr2lrZvYw+fDvgju4ZJG1GbzFQW8RVlCP8wO5g33gduFYi1qHw8s
9T1zTtamu7iHUbe8ju7tra5uI4bl0hMfEXm7Y+o55OAVJIY07xR4Ludevrua01SC0i1HTxp1
7FcWX2gtEGY5iO9dj/vG5IcfdO3jkXS/d/l/n/ww+vyX56/gWvEur6vBqenaR4eFpHfXkU9w
015C0scccQXI2q6HJaRBnPAycHpVSXxdd3/hLw7f6LDDDe+IJIY4ftKNLHblo2kcsqlS21Uf
gFcnHIqXVPCmq3WpLqFhryW9xbl47Tz7ESrBA8SLJGcOpYl0DhieDxgiopvBFxFY6ZaaRq4t
oNHit/7OjntBMI5Yw6tI5DKX3xvtKgrjGQQTQvPy/W/4WXrt3F087P7+n9f8MMHjG+Hw/n1R
raF9Vhum04xqGETXIuPs4YDJIQthsZJAOM55qO28WatbSyw6sLKZ9P1eLTr6S3heMSLOsZhl
QF22YMqBlJbPJBHAqWXwJO/h+PSk1pkjJmuLh/sqt5148yzpPyflCSBiEycggE8ZqObwrqCw
pbTSLfXGqatFf6pfRxiGKNYdhVFjLs2CIY0Ay3ViT2prfXy/Nf8AB+TXUHt9/wCv/A+Z2tFF
FIAooooAKKKKAGj/AFh+g/rXM+JPEeo6FqK28VpHcjUYxDpm2NubvJ+SQg8KV+fPGBG+T0rp
h/rD9B/Wua1/waviK+uLm+vSGSBU00xx4NjKGDmYfNhn3Kh6DAXH8RyPdAi4fFOmW+rR6Pd3
TPf/ACRytFaS+SkjLkK0gBSNiOQjNu5XrkZj0LxvoHiS6S30e8kmeSA3ERe1liWWMEAsjOoD
4LAHaTgnBwaxk+HYj8ZP4hZ9FuZ7iSGa4e70YSzpKiKhaCbzAYgQoIBD7Tk55q9ongv+xm8O
H7f539h6dLY/6nb5+/y/n+8duPK6c9evFNef9aP9bC9DK1Hxhrtl4j1Io2mtpdhqtnpxtTbv
9pm89IjuWTzNuQZc7dnIU8jrW43jzw8qXTfa7hxa3RsnEdjO5ecMymOMBCZGGxiQm4gDJ45p
bDwZplr4u1PxHcWtpdaheTJJDcPar5tqqwrEVWQ5ODtJ4x94iqT+B54rGH7BqqQ39rq9xqlt
PLa+ZGpmaTdG8YcFhtlYZDKcgH2qVsk/62/4LKfdf1v/AMBF2PxhpNxNaXEOr28dnLbXMzpN
byI4EJUSFmYgRbM4ZXXdk9sGlTxzoLadJeG4uY0SVIvJlsJ453dxlAkLIJHyM42qc4bHQ45R
/B41XXm0e6e8mj/s/UU1O/8AsbQRvNdtEQISwKkAK2ApfbtAYknm9YfDifTrC3+xXOhWGo2V
zHc21zp2hC2R2CPG3nxiU+ZuSRhwUwTkelNbf13d/wAP66C/4P8AwDX07xxaal4zk0CGyv0K
2UV2s81jcRA7y/ysHjATAQcsRkkr1UiunrnrTQNSh8VprlxqVrK8tglneRJZMgkKM7K8ZMp2
cyHIO/OOoroafT+u/wDkHX+uy/W4UUUUgCiiigAooooAKKKKACiiigAooooAKKKKAGj/AFh+
g/rXPXGt6pb/ABDsNGe3s1028s7iZJQ7NMzRmLqMBVH7w8fNnAOR0roR/rD9B/Wuc1Dw9rF3
430/XINWsYrWxikhW0fT3d2SQxmTMgmAz+7GDs4zyGp/aX9dA6FfRvEGo3XjS60mTUNJ1W1h
hkeZ9PhZGsJFdQsMpMjhmYFv7h/dk7cHiovi3XJL7QZ47bTv7I1nUXgil3uZjD5crRsF+78w
iD7s9HA28bjNfeEtb1K7mvtQ1ezlvPskljbNZ2j2ohhldDKxJkkLuFQbfugEe+Ra8QeGNT1G
60U6Lqdhp1rpEyzxQTae85ZhG8YG4TJhdrnjGcgHPalHpf8ArX/KwP7Vv600/El07W9Un8ea
pouoW9nFa29nDc2zQOzuweSVcuSAAf3Y+UA4/vHtBc6xrN7b6tc6Rd6TY2VjO0SXV9A8ykRK
fNYhZE4D5XOfl8tic5wGt4e8Qw+LtQ1631bTZPtFkLWK0awkjwEMjR5l81ud0nzHZyBwBTNV
8GXt14e0nSNN1S2htrJg91HfWTXKXzDkeYBKhxvy5GSGOM8ZBWrj/Xff5L8x/a/rt/mY1p4/
126hh1OWwtbTT7eSwtr+2kjdpjLcrGSUfcAoTzo+CpJ+bla3NJ8VXg/4Sd/E0VnaR6JOB/oj
vIBGYEl5ZgCzfP2VfTHcxTeCLy81Mz32r27W11PbXeo28NiU8+eDGxkYyNsQ7I9yneTs4YZN
JaeB7ue61v8A4SXU7XULPWJo7iSCztZrN45IxGqFZVnYgARKeMHPOccVW9/n+n/BsJdL+Roe
CNd1DxD4fku9Yt4ba7jvbm3eGHOEEcrIBkk5OF5PQnpiuirA8I+FYfCWnXVpBd3F0Li9mut0
80khXzHLBcu7HgHBOfmOWPJNb9Au/wAxo/1h+g/rTqaP9YfoP606hjCiiikAUUUUAFIehpaQ
9DQBhWP/ACLdj/16R/8AoArDuP8Aj7h/67xf+jVrcsf+Rbsf+vSP/wBAFYdx/wAfcP8A13i/
9GrTA6miiiugwCgUUUAOopop1IYUUUlABRRRQIKQ0tFMBKKKKACiiigAooooAKKKKACiiigA
ooooAK0azq0azqGkDz/Uvi1p9lfGzh0+4a5V2R4Lg+TIMdwuDkH2/KtK0+ImmytBHfQS2Usx
AVZGU7sjgqM7iP8AgNU9f8Japql1NJm1nVTvhMuAVYcjB2kqc9xXKeGpbXwx4hSO50PUI5Lm
RYpBcwq4R+curqMAZ9zXPqn7z/AqMZats9Tu/EOl2EepyXd0Il0qET3hKN+6jKlg3T5hhT0z
yCOvFJJ4h01JoIVmkmkuIVuIlggklLRsyqH+RTgZccnoMnoCRy/i7Sb658ZabHaWc01jq6x2
+oSopKxLBKJl3nsGUyJn1YCsGw0zxBa6Hqbra6hBdWN7YaRaGNXDzWkFypMq45KMkjZPopzx
Vx1tfv8A8D9V+I5abf1/Wv4HrNVJdTtINVttNll23d1HJLDHtJ3LGVDnOMDG9ep7159Yafr9
vq1lqfn63JPN4hvYJoZ55mgWzPn+XmInaEyIyr4zyADjArCtLbxDLdW13pcHiJtei0K/W5l1
OOXykv28rAiMn7sAspwE/dkAY6GlfS/9bX/4cdvet/W9v68j2mivLLf+1ILW71Dw4PE8thYx
2ly1tqZuTPcTJITPHGs/ztmLggfIW27eQcLBbeLpI7yx1XUNUs40tJ7830EMsxSSeNQsKKnz
SeW5nIReQBHjHFN9f6/q+v8ATQlr/X9baf0j0nUL+20rTLnUL+TyrW1iaaaTaW2ooJY4GSeB
0FZ+jeK9I166ktbCeZbmOMTG3u7SW1lMZOA4SVVZlzxuAIzxmuXVL3UPgvr0C6bqCXElleQw
xXEt1PNcHYwVlFwPOG49EYZHQZGCaWstqGvWMmo6BZaravpfh+9gSZ7Sa1mkuJETZHGjqsjE
GPduAxnbgk5wPRv+uj/r/gjWtl3f+R6Qt1G169qFl8yNFcsYXCEEkDD42k8HIByOMjkVNXm1
zp+vadfzyadLrU8WnaXZ3kcctxNL9qmWaZp4vmJ3O6Hbt7ZTAwFFZ3iO38Tz22k3Mt5q9jZ6
i9zdXYt7a8uXtHbZ9niMdtJHKoWMMDjKb87gSQQPT+v631t/wRLX+vK/9f8AAPWqwbHxroWo
60dKtrmf7V5ssC+ZZzRxySREiRElZAjsuDkKx6E9qy/B9nqLeIdavtVu9TuADbxWrXHmwwuh
toS7rAx2qTJuzxlTuHB3ZzfDPhjVpryW91WYJZWGuahe2enizaKWSRpJVR2lZyGQrIxACLnc
Dkgcmz17X/IN43W//AZ6JVSXU7SDVbbTZZdt3dRySwx7SdyxlQ5zjAxvXqe9eSaTN4uksdcm
hXW4op7e0me3aC8ElvmZvtMcDXLuzyLEcBo9qkhSq5xV7xBaXst/4fufCVvrz6fDb3q3styt
39sWFng3rG1x+8EhCttzjIDbOcGjqv6/peYdbf1/w/kesUV5Y9xrc/xI059Li1m2sopkhMc8
N88c9ubUkSyPI/kr85VSpTzdy5Zhkismzu/EIu7e20qfxEuvyaDfyXUOptKImvl8oK0ayfuy
AzEKU/dgEY6ml0/rs3/XZ6Dtrb0/r+ump7TSMwRCxzhRk4BJ/Ida4j4ax3sem3n2vUtRuy5j
ZY9R069t2gYqdwBupJGfOBkI20EcYzz09gNTs7CZ9eu7a9lQlw1jYyQgIB02GSRmbr0PPAx6
1JWJi7jbTxDpl81gtpc+adRhae2Cxtlo1xuY8fJjcB82OTjrxWnXltpZ+ItNXXL3TtLkgvfE
FhPcaYEjZjp8o3MsL7vljL7xJzgeYZAf4ap6Rp+tXdppdr/a/iKa3n1WI3imz1Cxkgi+zzbw
ZJ5XcqWCAlHCqcFcEg0t/wAPxdvwG9Px/BX/ABPVdQv7bStMudQv5PKtbWJpppNpbaigljgZ
J4HQVS0TxNpfiEzrpksxkt9vmxXNrLbyKGGVbZKqttIBwcYODzxXLGz1aT4P+JtNuY7+5ukj
1O2tFuA8k80YaUQ8t8zkrtAPJIx1qtqnhrXYPDtzqMmoz3Gs3n9nWgbSrd7UwWyXClgFDu2c
SSFmLYx2AByLV/d+IPT8fwt/wT0ioba6ju42eJZVCuyESwvGcqcHAYAkccHoRyCRXm2oWurW
/ia6toH8RfbYru0TRmjluZLP7KFj8wzPkxMc+duMpMh+Xbk7aydUk8SahbwbdS1SHTP7V1WO
a4tba8unR1uCsIK20qS7AocDBKAgAj7uFf8Ar7v87eug/wCvz/yPZaht7u2u7OO7tLiKe2kT
ek0ThkZfUMOCPeuCsYp7vxJNb+KJ/EM0ksUK6bPaJeW1s8RgAdpBDhY5DJ5hIlIZfkxjiovD
Om3Nr8BbjTbKDUYNSj0uaFor0TB1uPKIwnm87c4xs+T0oeib7f1+HXsEfeaXc7/TtQttV0+G
+sHMltMN0blGXeueoBAOD1B6EYI4IqzXnHn3k/ibS5dD/tT/AIRyWC2abyhL5fmmNjB5eOkW
Nvm7flz5eePNrmtMt/Fsnh26W71bXxq8z2q3dumn3sRif7XGJXjmkkeEgKX4hCoVOSuBgVb3
rf1/X/A7kp6J+n4nsN7qdpp81nFeS+W97P8AZ7cbSd8m1nxwOPlRjk4HFW68j1rS9QtbsWcy
+IrjSbHxJHLFNEbi5uEtmsW3lJPmkKeYzLlSWBJCkHGNDS73WtIl0a9v49fm0nOoxJG0FxcT
7GkQ2xmQKXztV8M4yoIDEEmpvpf+tk/v1sN6Nf13/wAvxPSZZVhheVwxVFLEIhZsAZ4AySfY
c1VXWNPbRP7Y+1xDTvI+0faWOFEeM7jnpxXm/hxtbi1Dwm+qjXb26lsII7m2m+2wLaOA5eWS
QfuZWPQpL8wwME8Keh0G3tLv4b6gmoWst5pl1PfuIIVZnkt3uJSNoX5jlTkbeeRjJxlyVkxq
10dHpGuWWuQySWIulEbBWS6s5rZxkZB2SqrYPY4wcHng1o15aNZ13SdPm1lX1fUNL0a6SO3F
/btaXF9DJHsZHjZU3FJDGVcoCcMOTljM2manaeJNJsr+41vVZLm1WK6SK4vreK1dvMaSYTRn
yXGWwEYhlCrtPRaJeX9af15eZK21PR7W6t721jubOeO4t5VDxyxOGV1PQgjgipa8Ot9O1u08
E+FdPtJdf0uyhgmj1I/Y9RnliugqbBsikjm8vHmYKExZ7HII2rzTPEdyurX6al4he4hvtOjs
zEZoEeJ47dbhxB0wd0hIYHYQSNpDEu13Zf1rb/g+mo9j1es3VPEOlaJJGmrXsdqZEZwZM4Cr
jLE9FGWUZOMllA5IFZXhG0vNN1DxBYTvfy2MF8hsJL6aSZjG0EbMFkkJZ1Dl+5wcjtUN5exa
Z8Qb+6vkneNtGi+zrBbvO52zSCXaiAsfvw5wD29KiTsrrtf8Lh0f9dbF+Xxr4dh0nTdSm1ON
LbVSgsiyMHn3kBcJjd1Zc8cZ5xWnf6naaYsLX0wiE8qwx8E7nOeOPYEk9AAScAGvLlvHj+CO
g6a2l619thksUktxo10XQwzxPJkCPIAUEg9DggEkYrs/tq6p4lbUFjuHsdFszIIxA/mPPKm7
Hlkbg6xYG3Gf32MZq5WTfk391rgh7/ETwvDY3l3d6k1nHZBTMt5bSwSYYMVKxuoZwwRsbQc7
TjODW3eapZ2GmHULubZagKd+0kncQFAUDJJJAAAyScV5le6mdW8G+K9SutN1r+2dW057SKzG
hXgNvHskEUIJi+c7mYsw+UFsZwAT1MF0PEF5oNlClxHbWkS392lxA8LgplIkZHUMMuGcZA/1
Q6g0L/L9b/kJ/wCf6W++5fbxv4fjuLyGe9kgayheeQz2ssavGh2s0bMoEoBIGULckeopp8ee
G0soLmbUhALi5+yRwzwyRzGXcq7DCyhwQWXOVGAwJ4Oa4nWbibxdLfX0ml6stzYsgsbCXSLm
PMEVzHLMxkZAjSSiIbUDdAo6lsJrckzaPrl8umasU1jXbO5tII9LuHkMUDWwkkdFQtHnynID
hSQOM5FKOtr/ANar9H+DG99P60PSr/W9O0zUNPsr65EVzqUrRWse0kysqliOBxgDqcDp6iqu
s+K9G8P3UVvqtzJFJIhk/d28kojQEDfIUUiNMn7z4HXng1xniDTvEV74/wBB1q1063u9ON/A
bd3lmjltofs82/zIjCfLyznJLclY1IHUM+JNjeXWuSmGDVVDaYEthp9pJPFqMolLG2uSoO2P
5U5Jj4kkG/G4ULpfv+g+unZfmd3rfiPTPDtvFNqs0iCZisaQW8k7vhSxISNWbAUEk4wB1p9/
r2m6bpEep3NzutJdgheCNpjMXICBFQFnJyMBQc1yuu6hND4usNTn0XU5bfTIbiyl8iyeYPJN
HDIrRhMlk+Roy2MBjg4HNZsdrfaN4c8Hafe6XqEz+HhaXV60Fs0y4aKWEomzJdo2KsVUHC4I
z0oX+X6/pr8xdL+T/wCB/kd0viLSm8OHXheKNNERlM7Kw2qOoKkbgwII243Z4xniobHxXo+o
rbG2uZAbmd7ZEmtpYmWVBuMbq6go2BkKwBI5Ga4iW11BPALWJ0fUHlvdQn1hYVgJEcK3yz+U
4yCsjxtwnUncOCKknimuLfUtQW3uLYax4msJNPiuIWikYRm3VnMbAMvEUhwQDtXPTmhau3p+
aX6v7ge33/qemUUUUAFFFFABRRRQA0f6w/Qf1qhda9ptjNeRXdyIWsbYXc+9GAWI7vmBxhvu
npkjj1FXx/rD9B/WuD8cWV/q+swS6bpj3CaEq3c+9HX7eCwb7KnQPwm89RvWIH+Kh7oEd3FK
s0KSpuCuoYblKnB55B5B9jzT68wdteuvie11c6hqtlZGaB7CFdLvZIpYGjXcrskghjbeXDed
HuXg5xjE3gfT9d0+88MT38+tztfaPMdUGoTzSLHOphMeVc4jbBcYABYA5ycmmtf68m/0t6iO
rm8a6Fb6+2jTXM6XaTpbsTZzeSsrqGRDNs8sMQwwN2TkDrW9XnqeFtU1jxl4iW7uRaaJJqtp
dNEbNvMujFBCy7Ji+0JvQA4Qn5SMjtny2WsQ6c93fy+Imtp/EVyNQW2muWmSyV5vJ8lEO9U3
GIkxDcV7lRxK2V9/+G/z/Ab7/wBdX+h6Y91Gl5HbFZTJIjOpELlABjOXA2qeRgEgnnGcGpq8
nafxVFHaW2lXGpfaZdM1iTTor1281lV4RbGUP1cBuPM+Ybvm5zUOmprMXh+PztR8RXmnPfQt
qUSabqNvdwxGNwRG00kkzgyeVu8luAGwBk5fT+u9vw6h/wAH8P8APp3PWBdW7XjWizxG5RBI
0Icb1QkgMV6gEqQD7H0qavPdE0u1t/ikuo28WvfZrrRoFtZbp75kLK0u5ZfMOFIUqQsuDkkj
5iTXoVPp/XcOtv62TCiiikAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA0f6w/Qf1rK1DxRpOl
6pBp9/PLFNO6Ij/ZpWiDOcIrShSiMx4AZgTkY6itUf6w/Qf1rivEuqLf+LLTQ72z1NNMtpIb
qeaLSbmdLuUMGjjEiRsqqrBXZiewH97B1SDo2dJo/iLSfEBu/wCxb6O9Wzl8mZ4slA+0NgN0
bhhyCR2qsfGfh8axDpX9pxG+nuGto4ArFmdQS3boNrDd93Klc5GK5bS/EX2HVPGl9Fp+pK89
zFLZC7064tkuW8iGFVDyIBkyjbjr3AI5pddRfD//AAhunm31O+ewvxdXdxa6bPcKcwzK8jNG
hAJkfOOvzZxiha287fjv9wPZ/P8AA7Gy8RaTqWs3mlWF9FcXtiqtcxx5YRZLAAt0zlSCucjH
IFQ6j4r0jS5LiO5luJJLZlWWO1s5rhkLKWHEaMfujJ9AVzjIzzq63b2nxR1i9ubbUobOPSIo
jdS6bcJBuhkndx5pQJgKwIOcHOASajvdR1PQfCduFtb5dV16d5rm5t9PmvBYbxklliQklE2x
qCOSozwCaWvLdf1roPTmt/W139x0K+NvD8l/Z2cWoCWS9SOSF44ZGiIkBMe6ULsQsAdoYgt2
Bq3o/iLSfEH2v+xb6K9Wzl8mZ4slA+0NgN0bhhyCR2rzdNG8hZ9D0XS9QWDUL/S7qwnkspUW
K3gEIfzGZR5br5Dna21iXGAc1oW0mo6xdeN7XQra8tbrUriJ7abUbK5s43iEEMUhWVojtbhw
OCcgHBHNV3t5/p/m/uEul/I7zRtb07xBYG90e5Fzbea8XmKpALIxVgMgZ5B56HtV+uO+Gdnq
Vh4evrfVdMi00jVbxoYYpGZdhmYgjcifLz8pxyuDxnA7GgXf5jR/rD9B/WnU0f6w/Qf1p1DG
FFFFIAooooAKQ9DS0h6GgDCsf+Rbsf8Ar0j/APQBWHcf8fcP/XeL/wBGrW5Y/wDIt2P/AF6R
/wDoArDuP+PuH/rvF/6NWmB1NFFFdBgFFFFABS0lAoAWiiigAooooAKKKKAENFBooAKKKKAC
iiigAooooAKKKKACiiigArRrOrRrOoaQKt1qVjYsFvb23tywyBLKqZ/M+9SRy211EksTxTRt
9x1IYH6GvGPEvh6yt9Wnazuby3iilM0ltM2+M/3iGJ3JxnnPHpVvwppN3daui310mmp8rxG1
2N5+R0Z8sQ2B046/hWCcm9UNOTeqPYqK4HxZf39nreo6RbXtxE+u2lvHYskjAwSGXyZnT+6V
SSN+Mcrn1rLtvFFzdWg1G+N1OmnQafY3MEN5JADey3ISUkrjJXCHBHIYg8NVR1++39fh95T0
0/rp/XyPUqK4mz8fXk2rwx3WiR2+mT6pc6XHdi93yGWHzDuMWwYRhEed2QeMY5ONN481BdY0
vXdSsJLHRjol/qMcEF55rXEa+SyGRMKqyBTwMsBvPzdaV7/15XHZ3t1/4Nj0+iuMHjfUbK7W
11/Q4bOZjbOWtr8zxrFNJ5QYsY0O5XxlcYwchj0qvB8S/tlnK+n6Hc3Vyn2mRbWNyXkhjjV4
5AApJ8wSw4ABI3nrjBf9fd/X9WEtf67/ANf1c7uiuM1TxBcal8Jdd1aCa0guY9Puij6ZetMI
nWNsYkKRsrgjkFQVIxWTc303gW7iurO51DUbSXQrq+uLG91CSfEkCxsHV5S7pu3lSAdvIOMj
k2vf+t3+gb2t1/4H+Z6TRXCDxlcWetbtS0jyHa1s5bpk1N5Y7eKaaWNW2FAuVwpYgDgnkhAS
zV/iXPYyQxadoUl/LczXP2by2nkEkMDKjSHyYJWGXbCjbtIGSwyATb8fw/r+rAtdv6v/AF/V
zvqK5vw/4nu9e1zUbUaT9ks7ERBpp5yJjJJDHKFMWz5cCQg5bggcHJxxvhm6vrrxf5tlca5N
PFreoJqTXUlybFbRXlVFXzD5W4MIgBHyMNnjNHW3zD7N/wCtr/15nq1FefWfxS89dSEuk7nt
xb/Ymt5ZTFemeUxR4eWGP5SwB3qHTByGOMVH4h8Vatofizw0up28Ud3fQXkEWnWl+7wXE5eA
RbpGjTHVuSvygnGScEWrXmHkei1j6X4W0rSNSl1C1juZbyWPyjcXl7NdOqZzsUyu2xc8kLgH
A9BWJc+PJbLxlZ6Hc6fDJHMwhnuLWaaQW03ktKUYmAR9F6eYHIZW2AGqS/Ey4treG+1bQfs2
nXWlXOq28sN4JZWhiCEKybAFdhIDgMQP7x5weY7X909AormvCHii88R2t1JqOjT6Y8BUruiu
AsisM/KZoYmJGCCApHTBOeNbTdUttbs5JbWO9ijDGNhdWc1o+cdhIqtjn7w49+KGmtCU09S/
RXmWkeJ2s5tZn1PUp7uy8J2cpi8uRy+oICwMrZwHKeWYupG8OxxlauW3xG1e4trVf+EVkjvb
y/SzhjnkuLeJt8UkgffNbox2+WQwVDgEEFjxRvt/V9v6+8e2/n+GrPQaK4rUfElzqvwl8Q6m
kT6Zf2tpfQusM5YwzQ+YhKSAKTyuQ2AenANYela9e+HtP1PVdOtdZv8ASSthFBDrM1xHI91L
J5chRrgGQR4eM8jaSDt70dben4g9Px/C3+f5nplzbpd2stvKZFSVCjGKVo3APo6kMp9wQRUO
maZaaNp0Vjp0XlW8WdqlyxJJJJLMSWJJJJJJJJJNctP441K3ursyaHA1lplxBaajOl+S8c0i
oT5SGMeYi+amWYoTzheOcy4+IzaXEtrpeh3V9dzXt+oiee5uMLBNsZt0cMrjczLtXbsUHG4Y
AJ/X9feH9f19x6PRXK2nirVdZvLqPQtFhMNmqJcPqN41tIkzQrKIxGInPAdAxJXBJwDiqPh/
xRrB+DA8S63HA99Hpb3YaKTcJtse4Mw2KFJI5UAgepoeib7Dj7zSXU7K2tbeytxBZwRW8Kkk
RxIFUEkknA45JJ+pqauMtfENzoOpab4Yubd727nt1njvJbst50YBNxK2VJUqxGEGQfMQDADb
Mm0+LF1eaLPqkfhe7+zsLd7Mv50QnWWZIgGeSFEDYkVgEaRTg/MByX1siU7q/wDWp6TRXm2r
eLdbubzTbWPTlttVs/EK2VxaW+oEwXAazklXMpRTs+ZSQUJG3hWIGdzR/G8mparZadcaattc
zfbVuAlz5iwyW0iIQp2jeG8zIOFIxyM9FfS/9bJ/qN6P+vP/ACOqlijnheGeNZIpFKujrlWB
4IIPUUkMMVtbxwW8aRQxKEjjjUKqKBgAAdAB2ridL8eTa9NpFvJpsFha6xYxz+dc6hJCzNIG
zFARFiR1ABI3owByBxmruly6xq3w8vrWxvgmrwm7sYLybnLxSPEkjHBySFUk4POeO1Dur/1s
Pqk/6ub9/o9nqdxaTXySSG0k82JPOdY94wQWQEK+CARuBwRkYNXq4Hw/4itNGuI9OnttUs2a
48m/TV9Re5aylMReNhI7PujkCMAQ4AYAbQSQJofHepXV9ZW8ejWdn9utRcWz6jqDwCctvKRx
kQsrvtVWZchlDdGAyU2khebO4ory3TviVrdp4N8OSahpA1TWNUtGuf8ARzO6tEgTLsIbZ2Vi
zgbQm0f3+gOnd/EfUIZb2SDwy72VjcWtvM814Ipt9wkRQCIp1VpQrBmGByNxyBVtbf12/MDv
6hktbea4hnmgikmgJMMjIC0ZIwSp6jI447Vk+G9eutYk1O11Owisb7TLoW80cFwZ42zGkisr
lEJBDjgqMEGqOoi61fxpPpsWpXmnw2OmpOGtHCs0k0jrkhgVOFhYYIP38jBAImTsr/P8Lh5/
1vY6qivO9OuYbr4MaHfa9qGrO7WUTD7Heyx3N3My4VQ6MHdiTwM4J5PStKFNYuIfD3h6+1Oe
PUYbNbrVLu2dQ2VXYoPBB3SEtyCreUwIwcGmrNrt/X4WDodlRXAaFHDceAtUk8R6pqk0Gm6n
fu90uozQTFIppAMvEyHAUfd4XpgDAwaTHqMHgnw7os95fDUtXfzp5JLt5JreHPmyDzGYvhVK
xA5yCy/Wktfw/EHp+P4Hf0V5Z4kkvLPVtTfw3q2qeQBHZ6lPLdSSxpPcXMKjyQSRG8cbSE+W
ABuTIz0Zqcmo2WnaxaWet6olvo3iCyhgzdGRpY5mtmaOSV8yMFMr/wAfRsHIAFEfet5/5pfq
mgen9eR6tRXmfirxpBH8UdC0iPXIbFLPUI4rq1N0sbXDSwSsAy5BKL+6xkYLSAdRSfEm+1KL
WmGnS6i0dlpwuJGsbt4F04mX/j5lRSPtC7UciPDn92Rt+fIFrbz/AMrja1t5L8XY9NorjvFK
yav4g0TRxqF3aWNza3V3LLZXMlu7tGI1Qb0IIH70tjODtGc9Kzhq2oa74E8E/arqeCTXJrdL
6e2kaGRl8h5W2smCm4xgZUjhjg0LX8PxbX6C6X8m/u1PQqhls7aa5guZreKSe33GGV0BaLcM
NtPUZHBx1rl/CjXmq+Cri0l1K7jktry6s475GV5mjiuHRTucMC21QCxBJ5Oc81k6TqN9H8Lv
CGuPe3MtzGbJZzJMzfaEmdIn3gn5z8+4E8ggY6kEWv4fiH/B/A9EooooAKKKKACiiigBo/1h
+g/rTqaP9YfoP61wnjrU7nR9atIbPU3txrUYs7gF3P2JN4UXSAAhTmTZngFnjJOFNHVLuHS5
3tFcT/wnUkPjM+HbHRby7tbOaO0uL3bcSFHaNWzuETRlQGTczyq3JODxud4U8d3uv3WlJqGi
R6dBrFg97Zul75zEIUDK67FC/wCsBBBbI67TxQtdv66htudpRXlN7c39x8RdYh0yfXZNTt9X
sltkjkuTYx2xhhaYSD/UAFTIcH59xGOSK3k8ealPuS10K3aWfV5tKsFk1AqJniMvmSSERHy1
2xEjAcknGAOSLVJ/10/z/MHp/Xr/AJHUQ6JYQa5Nq6xytfTR+UZJZ5JAicZVFZisYJAJCgZI
BOa0K4Cf4gQWssd7qumXEE9pZ6i91HBes6I1s0YdVXhZd24FWYKQOwyRT7D4iajeWsUb+GpY
NTurtLazhna4ghlJjaQsZJrdGG1Y3ztjb+HGc8C2Vv61Dz/rTf7jvKK47TNa8TT/ABKudK1G
1sIbCPS4LhkhvGkMbs8oLLmFS2Sm3BIACgjkkDsaOlw62/ra4UUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUANH+sP0H9adTR/rD9B/WuUvvtcHxX0dRqV49rd6feFrMuBChQwAEKoBJ+Zj
lixGTjA4o62/ra4HW0Vwek2ttpnj7WJ4NR1JdL0ewVbkXmq3NxGZn/eMSJZGA2Rqp4x/rDVW
QatHd+EdUudV1KJtV1Znn09pgIkSSCZ1QgDPyqqLt3bcqWxk5oWtv63en3g9L/10uejUVx15
AzfEiwGkX+oPcRlp9Uja6ka1jtzGypGYs+Wrs+1lwA2EYk4607ye21Dw/qOu6tf6stpdXRXT
7bT72SF5VXMcQj8pgSZG3OADyGXdwowm9Ljtrb+v6/4B3tFeRpceILOOS/1fVrt9V0W90rT/
ACo7h1hm8xYRMWjB2SMxnf5iCQUBGK2LbXpfCkHji71TVLi/TTr2JYHv5lUBpLeHauQFSNS7
9gAMknuap9f67f5oS1seiUVxPwr1Yar4Vui2trrUsGp3cTXQnEu4CZtnQnClcFR02kY4rtqG
rCuNH+sP0H9adTR/rD9B/WnUMYUUUUgCiiigApD0NLSHoaAMKx/5Fux/69I//QBWHcf8fcP/
AF3i/wDRq1uWP/It2P8A16R/+gCsO4/4+4f+u8X/AKNWmB1NFKRRXQYCUUtFACUUtFACUtFF
ABRS4oxQMSiiigQlFLRQAlFLRQAlFLRQAlFLRQAlFLRQAlFLRQAlaNZ9aFZ1DSAxoYmJLRqS
eCSK5N/hn4fGoxXlpFLaSRyiUJBKVTcDkfL0rmvEPi7xrYah9nNrFBGJSouLQLJEVP3S24Fl
9zjHX6i1oHj3WdSuI7aC2GplWAleGApsyP4mJA/Jcfzrn0k9tiozvdK53d7omnajqen6he2q
TXemu72kpJzEzLtYjnByPWqi+EdCS0vLaPT0SG+vhqFyquw8y4Dq4ckHP3kU4HHHTk1U1jxd
/ZDa3G9l5k2m2sVxbxiXH2syllRBx8pMi7e/UH2qOPxpHdyWv2KK18mewt7157u78lI1nkCR
pna2WPz4HcqF43ZFrfT+uv6fgN7a/wBf1f8AE1E8M6RH5Gy0x9nvpNQj/eP8s8m/e/XnPmPw
eOenArPs/h94ZsZzLBppbMEtsI5rmWWNIZMb4ljdiqocD5QAB2ArTg8R6Jc6qdMttZ0+bUBu
zaR3SNL8pIb5Ac8EEHjgg1nr4z0y48W22h6ddWl6zxXL3MkF0rm1eExgo6jOCfMPUjG3p6LT
b+tv8h63HQeB9Ag0q+077JNNb38QguPtN5NPI8YBCoJHcuqjJwAQASSME1ZHhbSFuJ54bVoJ
p7RbN5beeSJhEv3VUqwKEf3lweBzwMPsPE2g6rF5ml63p17H5og3213HIPMIyEypPzYGcdan
bWNMSFpn1G0WJXkRnM6hQ0YJkXOeqhWyO2056U33f9f1f8Rf1/X3fgVofDGkweH7rRVgkexv
FkW4Wa4kkkm8wEOWkZi5JBxktkDGOgqvbeCtCtrC9sxbTTx31ubW4e6vJp5WhII8sSSOzqvJ
woIAJJHJp194q0+PwbqPiLR7i11e2sraadTa3KskpjUsV3rkDpjviqOn+L7qPUUs/FWn2uke
dZPfQXUN/wCdbtGmPMDO6RlGUMrEbSMEnPBFHX+vP/ghtb+u3/ANW48NaTdtdG4tA5vLJbCf
MjfPAu7CdePvtyOeevAqC88HaJe2WnW0ltNCumJ5dnJa3c1vLCu0KVEkbK+CAMjPOBnOKfa+
JtMvNQEVvqmlTQSqogeG/V5JXLOpXYBjGY2AIYklXGBtqa+8S6FpcLy6nrWnWccc32d3uLpI
wsu3dsJJGG2kHHXHNH9f19/4h/X9fd+BLp2j2WlS3MllG6yXTI07ySvI0jKixqSWJOdqKM98
ZOSSadY6VZadbTW9nAEinmlnlQsWDPIxZzyT1LE46c0kWsaZNqj6bDqNpJfxrve1SdTKq4U5
KZyBhl5x/EPUVzOneOb261qGG80eG30661O50u3uo70ySGaEyffiMahVYRPghmxxnrmjfQNl
f+tv8i9a/D7w1Z2d1axWEjw3dultIs93NKREhJRFLuSgUklduNp6Yqd/BWhz28cN3b3F4sUU
sKNeXs87hJCpcb3ct1RSDnK4GMVbs/Emh6jDdzafrOn3UVln7U8F0jrBjJO8g/L0PXHQ1nHx
xpEmqWEVle2V3p11a3Vy+pQ3aNDCIDHuyRkY/ecnIxt/IAki8D6DDq0WppbXDXUUiyq0l9O6
+YI/L8wozlS+zguQWPcmud0H4eGDxK97qWmWFnpyWM1nFYQ6hPfK6zMpcYlVViQBABGg2/M3
TArr4fEmh3Gpxadb6zp8t9NGJo7VLpGldCu4MEByVI5zjGOaW18R6JfXstnZaxp9zdQl1lgh
ukd0KY3AqDkYyM56ZFHr5/5MP+B/mJonh+x8PW7Qaa155TBQEub+e5CBRgBfNdtox2XA/KtC
WJZoXicsFdSpKOVbBGOCMEH3HNVNK1rStdtnuNE1Kz1GBH8tpbSdZVVsA7SVJAOCOPerrFgh
2AFscAnAJ+tEtdwXkZB8KaI0NnC2no0VlavZwoWYr5LqFeNhn51IUZDZ5APXmobHwZounLar
BHeSLZzLPbLc6jcXAhdUZBtEjtgbXYYHHtwMQaL4vGtX8VnFZCOeGF31RWm/48JA20Rn5fmL
EMQflyq7u4zcj8YeGpdObUIvEWkvZLIYjcrfRmMOF3Fd27GQoLY64GaPP+t/8w8v6/qxN/wj
ul/2NfaV9l/0LUGna5i8xv3hmJMnOcjJY9CMZ4xU17pFjqOnJYXkHmWyPG6pvYYMbK6HIOeG
VT745qpqfiO1tPBt94i054dStrazluozBMCk4RS2A4yOcYzzWbpXjJmuLy28U29losttbwXQ
kW/82B4piyofMdI8NvUrtI9ME5o627W/4Aef9dP+AW9S8JaZc6jLrEVgJ9SysqxSXksNvPLG
P3bSouUYjAw5RiMLj7orP07wHaS6Pbrr6E6il3c3nn6fdzQNC88jO6JKhRyvzBewbaCQO20v
ijQHvbSzXXNNa6vY1ltYBdx77hG5DIucsDg4IznFRv4n0uw09rvXdV0nT4vtMlusjX6+WWVi
Nu9guHwpynYgjJxmj+v6/AN/6/rzBPCulRavHqcSXcd2iIjOl9OqzhBhTKofbKQDjc4Y9OeK
fY+GdL03QJdFtIZBp8qOhglnklCqwwVXex2rjoowB2FO1DxLoWk3SW2qa1p9lcSRmVIbi6SN
2QAksAxBIAB56cGq2ieMNG1/wiPEen3StYCEyynerNDhdzK+0kBgOozxSdmnfbqNXurEWn+D
bGCO2l1ItfajbmHF7vkRz5IZY+N52/K7BgMKxdyR8xFJb+A/D9rbvbwW1ytq7pILQ39wYI2W
QSrsiL7I8OoOFAHbocVb0vxFa3umwz38trY3L+WJLVrlWaBpeYkfph2BX5cdTgZ6l8fijQJf
tfla5pr/AGKRYrrbdxn7O7NtVX5+UluADjJ4qndO73JVmtP67FfUfBmharLLLeWknmy3S3jS
xXUsTiZYvKV1ZGBUhOOMevXmmS+B9BlsLOz+yzxx2TO0Lw3s8cuZDmTdIrh33E5bcTuPJzUO
oeO9GtrXTL2zv7G+06+vTayX0V4hhgCxSSMxcZHHl4IyMZznitm11jTL5bZrLUbS4W7jaW3M
U6uJkUgMyYPzAZGSOmRStp/Xb/IfUy4/BOj2qWP2CKaI6bEsdjDJeTyW8JUEIxg8wIxGepG7
pyCARa03w7b2XhddFuJHuUdH+0SgmNpZHJaRwVOUJZmIwflzweKWTxPo3mW1vbaxpkl7fReZ
Y27XqKboYOCmMkqcdVB79arHxZbp4GuPEsttMEtYJZZ7ZcF0eIsJEz0OGVhnpxnpQ3o2/wCv
66jS1SW5mav4DtrjSX0bTrWNrPUbiOTU7u+vZp7gqhUgKz72c4XaMuoQHIz0rdufDem3erW2
o3CXDy2uDDF9rlECkAgN5AbyywycErkcegqPRtYu7pI01qHT7K5uB5lqlpqH2lbiPAJZSyIT
jIzhSMEHJzwtx4v8N2kix3XiDS4ZHV3RJL2NWYIWDkAtyFKsD6bTnpQ9NyVqtCl/wgHh5bG0
tI7e7ijsndrV4dRuY5bcMAGRJFkDqhAHyAheBxxVw+FNGa3uYZLV5FupoJ5zJcSM0kkIQRsW
LZyPKTvzjnOTmppvxB8L6j4XtPEB1qxs7C6IRXu7qKPZJjPlsd2A4HVc5rRn8S6Fa3wsrnWt
Phu2JUW8l0iyEhQ5G0nP3WDfQg96ezHuWLXTLSyvL26totk19Istw24neyoqA4JwPlVRxjpW
fqnhqPU9YS9N1NAr2zWt0kEkkTzJu3JtkjZWRlbPIJyGYY5yL+matp2tWYu9G1C11C2LFRNa
TLKmR1G5SRms/VPEE9nrC6dp2mSalOLZrmZIpkQom7amN2ASzZ6kcIx5ICmXZb/1p/kH9fj/
AJlJPh14cj06xsYo9Rjg092e0Eer3atAWXadriXcBt4xnAycDk51LHw7Z2CXixS3kn2tFieS
a6keRUVdoUSk7+Ms2SxbLE56YzrLxJquseCdM1zRtHtpZ763Wdra5vzFHEpXJHmCNiT2Hyge
pFOj8XfatB0PULDTJ7ibWEWSO0LqjonlmRiSeMgDA5ALFRkA5FO92n8w7C23gPw/a6Pe6WkF
3JZX7+ZcQ3Go3Ewdt24nLyEjLHLYxu75rXGmw/2ydSLO032cW6KSNsa7tzYGM5Y7c8/wL05z
zVt44u7zQoLi30VU1O61SbTILGe7CqHjaTczyqrbQEidvlDcjAz1q1a+MGufC41Aadt1D7Yd
Paw8/IFyJfLK+ZjlQQW3bfujOO1Lf+v672/AHpv/AF/VvwHWvw/8PWltcW0UN89rcrIsttNq
l1LCd5LMfLeQqGJJO4AEE5BBpbnwD4fu9Kj06aG9+zJMbghNTuUeWXIbfI6yBpGBVSC5JG0Y
xis/WPHV94fvpoNW0NFWSB5bA2955jTsJY4lSQbAIizTJgguOTzxyy48f3tlYStdaATeWepR
affJBeK0MBkaII4dlV3BWZSAI+oIOOpFra39a2/MHp/Xl/kdRLo1jOmnrPHJMdNkEts0kzsy
uEZAxYnLnazD5ic5yeeap6z4Q0XX7tbnVLWR5fK8lzFcywiaPOfLkCMBImSflfI5PHJzDrXi
yPSPE+i6KlqbiXU5jHI4faLZdjsrHg5LGNgBx91jniqXizxvJ4a1AW8Onw3Kx2v2uczXnkMy
eYsYWFdjebJlgNuVGWQZywoWrXr+IbaeX4dPxNDUPBWg6nLPLdWcgluJhPJLDcywuXEQi4ZG
BAKAKVGAR1Bp174O0K/JM9jsYwwwK0EzwmJIWLRBCjAoVLHBXB5xnFR+IvEV3pV1Y2Gj6bHq
Oo3qyypBNcmBFjjUF2LhHOcsigY5LdQOaiufGMbeGdH1TR7X7XNrbwx2NvNL5QLSKX+dgrbQ
qqxOA33cYo/4H+S/yAsv4O0Rra1gS2mgWzgkgge2u5oZER2Vn+dGDEsUUlicnnnk5qw+CLGx
sdM0zS5ZoNKsbpblrWaaW4ZymDGqvI5KIrBW2jg7ccZObej69NrXhltQtrEC9RpYJLNpuFnj
do2Tfj7u5T82M45x2rMg8Ua/dWWoiDQtPW/0u5MN3HNqrJb7fKWQMk3kEtw4yCi4IOT0yXtr
21/H/MLX0+R11Fc9oPisa1cWccti9oL/AE2PUbXe+5nQ7d6sMfKyl07kEMCO4HQ02mtxJ3Ci
iikMKKKKAGj/AFh+g/rWfc+H9LvZNQe7tfPOpW4trrzHZg8QBAQAnCj5m+7jJOetaA/1h+g/
rXPa94tXw/fSW13ZljLbh9P2y83k+7b5AGPlbLJjk5BY/wAJofYFcnTwfo8erJqUKXkN0FjV
2h1C4RZ/LGFMqq4WUgcZcMSODmp7Hw1pOmnTTZWnl/2Xbva2f7xz5Ubbdy8nnOxeTk8fWpP7
d02LUrfSr3UbC31aeMSLYfalMrcEkqpwzAYbnHY0mneI9E1i5kt9I1jT76eJBI8VrdJKyKej
EKSQDkYPvT6i0J7XTLSyvL26totk19Istw24neyoqA4JwPlVRxjpVC48I6Lc6c1jJaOsJu3v
Q0VxJHJHO7FmkSRWDoSWb7pHBI6HFY1745vbLX7+BtHhbSdPv7axuLwXp84NOsZVhD5eCoaV
Qfnz1OO1bsvirw9BHdyTa7pkaWLBbpnvIwLclioDnPyncCOccgip0sn/AF0f+Q/Ixrfwag1+
ITWNkmiWdlcWkEPnvPJdfaGRpWm3r1yhzlnLbySQaup4F0JNKOnGO/ktg8ckYl1S5keBk+6Y
naQtER0+Qrxx0q/FrVtdXNl9iu9PuLS7gkmjmS8BaQKV+aNQCHX5uW3DHy8HPDIfFXh650mf
VbfXdMl063bZNeJeRtDE3HDODgHkcE9xT6f13/zALbwzplrqlvqMK3X2u3txbLK97M5eMEkC
Tc58zBZiC+4jPBrWrnbDx34c1TxOdB07VbS5u/sqXSGG4jdZVbdwmGJJAXcePusp710VPUP6
/r5BRRRSAKKKKACiiigAooooAKKKKACiiigAooooAaP9YfoP61j3fhLSr3xFBrlx9uN/b8RO
mo3CIg4yBGrhMHauRtw2Oc1sD/WH6D+tYHiDxDqGhXVtL/ZMVxpbzw281wLsrMrSyBAUi2EO
AWXOWU9cA45L2aDoyzJ4Y0xtPvrOKN4YtRuftN3sckzMSpYEtnhgoUgY+XgYputeE9K8QXlr
dan9uMto26D7PqNxbrG2CNwWN1G7DMN2M4JGcVmeH/GlxrGp2UN5pSWVrqtq95pk63XmtNGp
X/WJsHlsVdGABYYJGcik/wCE3uDqmlwrokpsdS1CSzhvjcptIVZDu2/eyTE2BjG0g7snbR2/
D8gfX8fzLbeBtIF5e3lrNqlpc3rvJM8Gq3AUyMu0v5RcxkgYxlSBgccVPqXhDR9Vt9OhuYrm
NdMGLM2l9PbNF8uzgxOp+7xz2J9TUV54g1Gw8UWNhdaTENP1CdraC7ju90u8RNJlotmAmEYZ
Dk9MgZ4S517VppNQTQdHt7wWUwh8y6vjbo7BNz8iNyMZVRxyd2du3lXSXl/l/lcfX+uv/DEq
+DNDXUra/a3nlubZUCPNeTSbymdjSBnIkddxw77mHYin6P4S0rQtSur/AE77cLi85na41G4n
EhwACVkdhkBQAcZAGOlc7Z/Ez7f9lu7fR2XSibOO8uJbjbLby3QUooj2kOB5ke5ty435AOK2
tF8VnUX13+09PfSU0eYJJ9omRzs8lZd7bMqvDdAzdOvYVqm/n+l/zQlra3l/wDX0/TLTSoZY
rCLyklnkuHG4tmSRi7nknqxJx09Kt1heEfEbeKdDbUXsXsCt1PbmCR9zDy5GTJ4GCducdumT
W7S2DcaP9YfoP606mj/WH6D+tOpsAooopAFFFFABSHoaWkPQ0AYVj/yLdj/16R/+gCsO4/4+
4f8ArvF/6NWtG11Oxh0O1glvLdJY7ZEdGmUFWCgEEZrJa4hnvYBDNFIxmiwEkVjxIp6A+gpg
diabTqaa3MQooopiCiiigAooooAWkzRRQMKKKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
WhWfWhWdQ0gczqHgiyv7ieY3E8TSg/cx8pxweQenvXM2Hh3xboGuQS2lrpksO9Ulmt08pniG
c7l7nnOc9a3rz4m+HLViIriS62u0b+Sg+Rh1BDEEfXpWhY+M9Gv40aOeSIscYliZQDj+9938
ia57xk9GVGa2RU8Q+FrrV/Fmi6nbXEUdrbNi/ifdumRWWWLbjjKyIDzxgtWLB8PdSh0XVrRr
u1kludVtprQksBFZwzpKkTcH5gPMHHHI59O6k1GyhW6aa8t41s133JaVQIFxuy/PyjHPPbmm
XGr6bZtGt3qFrAZAGQSzKu8FgoIyecsyj6sB3q1pZL+nv+g3rq/6/q/5HI23ga7gNiwe0SSH
xFd6rLJGSGaKYTKADt5fEiA54+XqcCseP4b65d2Nrpt+2kWdtZ6Fd6NHc2bO8solCBZGQooX
7hJTceSfmOePUqhe6t47qK1kniW4mVnjiLgO6rjcQOpA3DJ7ZHrStpb+trfkO7vzf1vf8zhZ
/CGvanFd391HpOn6sltaxWMdrM8sO+3kMqPI5jU4LHbtCnaueTniK1+G01o11HP9m1KyaycJ
ay3EkPm3UqIkzs6qSgIjyGXJzI/Hr6LRT/r79/69Owlp/Xbb+vXucj/YGv3vw21bRdXvIZtR
vba5ggZpjIsSupWNWlEaF8ZGWKA+uTyaGo+Ete8RaVdDWBptncpo9zptjBbXDzR75kCtK8jR
oR91QFCnA3HLZAHcXFxDaWstzdzRwQQoXkllYKqKBksSeAAO9VNJ1/R9fjkk0LVrHU0iIWRr
O5SYIT0BKk4oet/68v1/pjTtZ/1/WhzGo+Cb26vLu4tZbWFxpVnb2JyR5VzbyySIxAH3MsnT
qMjHrn6p8PdSnj0a7iaG8vLeO5/tCH+07iwWeS4KvI6zQAtgMuApUgqR0KivQVvLZ717NLiJ
rqNFkeAOC6qxIDFeoBIOD7GpqHrr/Wu4lp/Xloc14T8NS6Be6vPJHbxJfPbmKOGVpTGkdtHF
sLsoLYKNgnqDk4JIqr4c8CwaTeXmpXhMupSX15cW0huZZYoFmkZgViY7EfaQCVUE8jJBOevr
MtPEmh3+rTaXY61p9zqEG4S2kN0jyx7ThtyA5GDwcjih6v5WDZWPPrX4c+IprfUZdWurSS+u
LezAaS/nu0uZoJjMd4dQIo3Jx5aDaoJwDWr4k8Ia94q1DRdTuhp9hc6Wk7G1S6e4hncvC0au
TEhZD5R3cAg7SN2K7+oXureO6itZJ4luJlZ44i4Duq43EDqQNwye2R60dv6/r8g63OEufCXi
TU/G1lq2pzWwtra7W4QR6nORAn2cxtEkGxY2Id2bzT8xBxgdK5HStJPiXULfwxZ3+iTxad4b
vNNfUdGmNwFEhjSMy4ACM21m8vcejndzXt9FKy26f8C36/5ju7366fnc5XwV4eu9Etrr+0rK
K3uJljR5Ytaur/zQoI6zqDGBk4UE9evFbNhpUei2E0OmtczsxMii+v5rglscDfIzsq8DgcDk
4rRpGZUQs7BVUZJJwAKcne7FFW0RwEngLVpbDUoG1RGk8QafNDrEjOxCXDKQkkK4+6oYx7Tt
yipzleYdL8Bags2kzX1lZwS2Wow3U7nWbrUPOWOGVBt89MoQ0gIUEjrzkDPeR6lYy/ZfKvbd
/tiF7bbKp89cZynPzDBByOxq1T2f3fg7oN19/wCKszj18I3qfD7xDoCyWyz6k+oG3IZhGguH
kZAeMjG8ZwD3xmo774fWo8KyadpaA3VxcWctzPfXUtw0qwyxuVLyFm27VYKv3QT0GSa6+4uI
bS1lubuaOCCFC8ksrBVRQMliTwAB3qrpWuaTr1u8+h6pZalDG2x5LO4SZVbGcEqSAcHpSWm3
l+GwPXfz/E4/W/DF9Hfa1JNNpUWialeW+o3V/dTsk1mIVjyoXZtI/cghy67dxODjnBs/CN54
isrPXNM8u6g+36qyQNqdzYLPBcXBZJFmgBbBCKcEFWVs9hXrtQ215bXsbSWdxFcIrtGzROGA
ZThlJHcEEEdiKVv6/D/gDv8A19/+Zyug+HtW8Pa1c/Y7TTn03UBA0zPeyedaFIVi8tMxnzkG
wEFmQ/M2RSaZ4X1KP4TzeFNR+ypcDT5LCOW3maRXUxlVc7kXaTnleceprsaKb1T8/wCv6/EU
fdaa6HBRaHq2u+INJ8TtbwWZt4EgaznLpIQVdZXbKcPGWIjxkFTJziTK4un/AAt1G38OjR7m
3spWhFtCl7Lq91Os8MVzHIwNtIpSHcsfRGIzx06eo211b3tuJ7OeK4hYkCSJwykgkEZHHBBH
1FTU72d1/X9aitpb0/A8+1fwRq02uTalp8el3A/t6HVore6kdFYJaeSQSEba+8AggHGAeoxS
2vhDX9LuNP1SxTS5tQSW/e5tZLh4oIxdSK/7txGS20oByq7sk/L0rup7y2tpII7m4ihe4fy4
VkcKZWwTtUHqcAnA7A1HY6nYamkr6be294sMrQytbyrII5F6o2Dww7g8iptpb+tkvysN/wBf
j/mzhND8Ja94bGhNC1rAljYwwarc291LKbtIlb92tsYSDyeHVlfkjBHynoPDFrqNp4Nkkjt0
i1C7mub2O3usoEM0ryKj4BKnDAHAODng9+lqGe6t7Xy/tM8UPmyCKPzHC73PRRnqTjpVNt38
/wBf6/q4f19x5bqOh33h6zkmtX0vR9Zu9Rjl0TSLGYywo+3ypioZUzuWRmcKgVcBjzk10kPh
LUdK1/S28P8AkWljBbxW99cm7YvdRoGwjW5jKZ3NnzA6t8xzkcHqtR1Sw0exa81e+trC1QgN
PdTLEiknAyzEDk1LbXMF7axXNnNHcW8yB4pYnDI6kZDAjggjuKWjVv62BnmX/Cu9d/sfw5FM
lnPNolrNYNBDrN1ZrcROExJ50SBlbMfMZVlIP3sgVel+HM0unavCtvp0TX97ps0SGRpfLitl
gBjZ2Tc2PLkC567snGTj0Simm07/ANb3/MHqYmiaLPpeueILyRovJ1O8juIVjJyoEEcbbhjG
SyE8Z4xVHUItSsfGs97ptkt22o6alvH5rvHEkkMjth3VHKBlmYglcZTHUiupoqWrq3y/Cwf1
+NzziHwx4wh+Huj+GjbaO8dsot79E1SaMXUCqAFEgtyV3Hhhj7owG+bI6PT7DVH1afU76wtb
ee1sltLG1juN0IJAeQhwgYKWEa5KAjy87eRnS1DxFomkiQ6rrFhYiJkWQ3N0kewsCVB3EYJC
nHrg+lW2vrRb2Kza6hF1NG0kcBkG90GAWC9SBkZPuKq7bb/rYPX+tTgrXwr4gbw1d2Gq6No9
1LJqsuoQeTrlzAYjJK8mVlS3DoylgoK/eBbJHQ3/AAx4Nn0WfTbe52SQWAnvWkU/LLeTu2SM
kthELrublvMBJJzXV3eqWGnhzf31taiOJp386ZU2xqQGc5PCgkZPQZFOub+zs7dJ7u7gghkZ
USSWQKrMxAUAngkkgAd80lpt/XT+vNA9d/66/r+Jwb+FfFOpLqsmr22kLf3UiSwX0WozSeX5
MolghERhXbHlfmIYkkseeADVPCnie70i/MFvpLahq2qQX9yj38qxW6wGHZGjCEmTIh5YqmC3
Q4rvLvULOwVWvruC2DBiDNIEyFUs3X0UEn0AJqgfFvhxdHTVm8QaWNNeTylvDex+Sz/3Q+dp
PB4z2oWm39ar9UgOc1TwJqGo+KNM1+HWLi0nW+hur20V4pIkCQPHtiZoN55c8EgYdyAGIweN
vB2p+IdVa4s4dNukezEFu99NJHJpcwZj9pg2o2X+ZehQ/u1+bnjs2vrRb2Kza6hF1NG0kcBk
G90GAWC9SBkZPuKqWXiPRNT1KfT9O1nT7u9t8+dbQXSPJFg4O5QcjB4Oe9Ha39dAv19P8zC1
bR/E8muQ6ppzaXNLZLJbWqXEskW+CWOPe0jBW+cSxggBcFeMg81WbwjrWn6XoVjpMthPF4fj
t5LT7Q8kTXEyrJFKHZQwRDG+VwGIbOQRXUx65pMusyaRFqdm+pxJvksluEMyLgHJTO4DBHOO
4p02s6Zb6tBpdxqNpFqFwpeG0edVllUZyVQnJHB5A7GheX9W/psNlY5m20XxXovh1rbQ5NJe
+uPtd1cPctIFS6ml8xdhCnKLucHK5O1eBk4qr4b1f/hFY9JufCnh2/xM0rC/1aWffIeTOzG0
yZCzMeAMdiOg7C+1nTNLntYdT1G0s5bx/Lto7idY2nfgbUBI3HkcD1FTXd7a2EKy31zDbRs6
xq80gQFmOFXJ7kkADuTRZP8Ar+v6sH/DnLaPpV7B4m0qC6murwaHo7W02oXCMPtU0pj5DH7+
BCS3JwWXJJ6dhVKbWdMt9Wg0u41G0i1C4UvDaPOqyyqM5KoTkjg8gdjU9tdW97brcWc8VxC+
dskThlbBwcEcHkU73/rzFa2hNRRRSGFFFFADR/rD9B/WuV8S+GdU8Qag1wl6loNPjWXSdkjY
F1nJklGB8uBs2gnKvJ3Ix1Q/1h+g/rUL39nHJcRvdwK9tGJZ1MgBiQ5wzD+EHa3J9D6UPuCO
GXwRqX/Cbz6xdW1tdwXtxb3cgGtXcP2WVI1QgQqvlzgFAVLhDzg9BVrwx4Ju9CbwqXazX+x9
KnsrrySR5jyNE2V+UZGUYnODk5xya7SKWOeFJYXWSORQyOhyGB5BB7in017un9bW/IW5yVp4
Gtm8Zatruqg3H2i8hubOIXUvloUgRAzw5EZcMpIYgkcEEEcUP+EL1S0sreay/s+a9tPEF1qy
QTSMkU6ymUAM4QlXCyg52tyuOnI6lvEmhprg0Z9a09dUJwLE3SCc/Lu/1ed3Tnp05rTpLRK3
9bf5Ib10f9aNfqzySTw1/a2tyeHkv7Rb+XTdWbUVsm8xNPku3iKIeh/vEbtpbaxwM4GlZ+Bt
Ztra0u0sbCPU7G8huRHPrl3ew3myOSPDPNGWh2iQsu0PggZ9a9De8to7yO0e4iW5lRnjhLgO
6rjcQvUgZGT2yPWpqFolb+rO4PXfz/Hf7zmbLS9aTxuNburewSG602K1uo47t3aCSN5HGzMQ
8xT5gGTsIx0NdNRRR5B1v/XYKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGj/AFh+g/rX
KatpniO78aW16LLS73SbIKbSKbUZYWjlIIeVkEDh2AJCjcAOT1OR1Y/1h+g/rUTXtql9HZPc
wrdSo0kcBkAkdVIDMF6kAkZPbIo6h0PPLXwLqlje3OqWdja6bcpayWljbWmoy3aQNO675gZl
QRKoGRHGuDz1OANjXvD+sLJ4btvDFhpjWGiTpMBdX0kLELFJEEAWFxjDg7s9sY711aXtrJfS
WSXMLXUSLJJAJAXRWyFYr1AODg98Gqlz4i0WzuYre71iwgnmn+zxxS3SKzy8HywCclvmX5ev
zD1oXS39f02D63/q6/yOdew8VReLb3WbjS9M1COON4tOCam6yQRbc4ETQ7DI7AbmMg4wMgA5
ZqvhnXR4T0/RdKWxuopGZ9Y+0Xj2rXRbLyBXSJ8B5GJbgHbkDrkdgl7ayX0lklzC11EiySQC
QF0VshWK9QDg4PfBqrqPiHRdHWRtX1ewsFjKhzdXKRBS2dudxGM7Wx64PpS6W/r+u/cfX+v6
9Dk5vCGtXl7LFJHptrpuo3dnfXqRXLu8Elvs/dxDy1DowhiG47CvzfKeKW38J65qlx4lg19b
TT7PW54p1l0y+M00ZjSJNhWW3CFWEeTnIwSuD1rrW1zSU1K2099UslvbtPMt7Y3CCSZME7kX
OWGAeR6Gntq+mpFeSPqFqsdgSLtzMoFuQoY+Yc/L8pB5xwc09v69P8kIx/BPhy+8M6Xe22pa
lJqElxqFxdLI4ThZJGYZ2og3HOTxjJOOMCukqlpes6XrlqbrRNStNRt1coZbSdZUDDkjKkjP
I496u0wGj/WH6D+tOpo/1h+g/rTqGAUUUUgCiiigApD0NLSHoaAM6H/Vinn7p+lMh/1Yp5+6
fpQAUUUV0mAlFBooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACt
Cs+tCs6hpA808S+ErrUdXmvBosMs0Z8yK4iAVzjkDORnPo3HrXO+GZvD9r4ihTW7h72aR0ii
S8hdJLeTn5QGJ+XoO3617bVWbTbK5kWSe1hkdTkMyAkGsLO+haUVfQ4XxrA3/CYW2mCNmg8U
wxWc2FJXEEu+QHg/eheUc46Vh6ZqepWmj6hqEUjw3OjXGn+HFkeMHdsulWZgGGMOsicgduOm
a9goqo6f1/XS6+YPX+v67L7jzOw17xEurWV7PrEl1bXXiG90v+zzbxLGIo/PMZDBd+8GIDO7
BHUZyTztt4o1G71Wx1ay1ga7rUPh/Ubh9OFug+w3P7k/Z9qANwRjY5L/AC9ea9uopW0/rtb/
AII7+9f+t7/8A8st/F19b2t3f6d4pPiPSNPjtLq8vfJgPlgyETxZiRV4j+fbjeuBk4YClg8U
+KbmO8s7i+tNMuoLSfUmubxVjighkjU26OxUhQrvIC2D/qOc5IPqVFN9f6/rp+PcS0/r+vP8
Ox51NrA1v4HeIrsXt1f4sL2M3Ny1u/mFY2BKPAqxumeAwAPrg5AzdX1u3uvM8ReDL23uJtK8
M3i3WoWmyaNX2o0MTPyrMGVm284HUAMM+r0UPW/9dGv1GtLX6f5r/I82udc8QaVfzh9XmvYN
N0uz1O6ElvCDMjTTeeBtQYxGvygc/IuScsTneI/FviSK20m5h1m10ex1l7m5hvL6eK1jhjGz
7PCZXglUFkLSEMu4nIDDbg+tUUP+v6+63/BEtP68v+H/AKRxvg/UdW1fxDrUuoaslxbWht4o
ba1WM25L20MjOr7d7DczbecYbkHjGD4W0rU9S1D7ZLDaQ6bpHiDU7qOaKV3uZ2MkyeXs2AIv
zkkhmJ2qMDPHqFFD3uu3+Wv4B9mz/rRr9TxnSfiFrl1Y65c22qx3dqtvaXEczPFcyadHLMyy
tIIoY1DRx/MYzv2leWI4qz4i1qS21nw3e6D4gOuQta36T60pt5jaxGS3EkoWJVR9g7beOpBA
IPrtFGzX9f1+fmHX+v6/TyPLH8bXrfEjTtO0nW1vLIzJbTW01xAXuQbUyidI0hDbGOz955oU
tuATGKzrHx3rknlSabrw1u/k0S+vbnShaxj7JdxiPbBhFDjaWZdjEucck5FeyVhab4XFlrza
xfavqGrXggNvC155SrBGzBmVFijQclVyWyflHNLy9fyf6j2d/QxPhrreoazpt5Jfa/peubTG
0TWd/HcPFuU5WTy4IQnI4BQsPmyT0HT2F3qC2E0/iK2sdPaIlj9mvWnjEYGdzO8ceO/GMYHX
00aKqTu9CUrLU8k03UrnRv7X1GysZGe70y4ufC0Ep3gxKWdolQAEFjskC5J2FVGPLNM0jxN4
h1O00u3g8Y6fdfb9Vige50+5gvJoY2t5nZGH2eJUOY1KgoSDnJYcV69RSWmnp+d/x6jev4/i
rfged3Oo32ofBXxV/alybu5tIdUszcMio0oiMqKxCgKCQozgAZ7Cql9B4i0nRb3xI01npWoX
y6ZYQpYt9pVYxOqmRzJGoZyJmXG3gAcnt6fRQt7+n4f5g9fx/G35WPMNQ8R6tY+JrrTz4kkX
ULO7tLew0iWCDdqkLLH5kzAIHJJaXLRlUTy+Rwaztb8aeJEjt4k1mz0qCXUtThbUbyeK1jXy
Z9sMJkeCVB8u44Khm2cMMHPrdzE89rLFFcSWzuhVZogpeMn+IbgVyPcEe1VNF0iDQtKSxtpJ
pgrvI807AvLI7F3dsADJZieABzwAKX9f1934j9P63/z/AAOMsdeutV8STafq/i2PR7ryoVsb
Kxa326grwBjPG00bNIN5cLswB5YyDk1V8H3E0P7Pcj6Zqb6he22kyqvMZa2mWL/U4RRgqccN
lueTXptIQGUhgCCMEHvQ9U13CL5Wn2POf7dl0zxNpei6PqajRDBbKzqkZFq/lt5VuGx/y3Cg
5bJXGAQZUxzWmeN/FV54durqTxHpa38j2qvZRzxzXGnyPdxxurW/kRtGoDspDtIchcN3Psen
afbaVp8NjYIY7aEbY0Ls2xc9ASScDoB0AwBwBVmqv713/X9f11vKVlb0/A8zbWtet9XbQZNc
uJtmvrYfbmggEzQyWDTAECMJuV8EEKOgBB5zy58R6j4U+D/hmHTNcltbyXS5LyKW6kt4YnCK
uIFBt3MjZYbUXaxG7L9K90oqVt934L+mVpe5wll4jmvPGs9pqniBdKmi8o2GjjyU/tFGhDGT
Mil3+cuuI2GPL55rkNO8Tax4g8EeI5de1vTZ5l0qS5OnQ3aNdafcocqPJEMbxBXwMO8hDKuG
7n2qqmoaZaarDHFfxmWOOZJ1Teyguh3LkAjcAQDg5HA4p9f6/r+uglov6/r+upz3jU2UNjpW
oajrlnoF7ZXPnWl1fYNuZTGysjhioIKM/RlbuDwRXP2fizW7qDT7eOJrCXxJDE+neVArLasr
n7SwyoypjxKm8Encc+lemVmjRY28Rf2vPdXE8iRGK3gk2eXbBsbygCgkttGSxbHQYBIItxdD
yfxLrVzqel65ZXfiqaV9P1G1nllsJbOW0toftqgKx8rfG6gbmWTPMeQzLuFbCeK9af4kDTl8
RaZDYRSW6W8F5exRPqUDxKTMiCAmVmYtgxyooKgbeufUqKSVlYb1ueUeH9Q8WavF4aS58W3C
NrukzXkrxWNsDA8XlbfLzGRhvM+bcGzj5dmcDu/Beq3OueB9G1O/Km5u7KKWYqMAuVGSB2ye
cVuUVV9/67/5/gHW55MLuw07XodW8SSxQWf2/WIbmW4bagmLKkKnPGTbxkKO4OB1wYPDNzpG
i+KvA1pqVzp9nrh0KSC9ikkjS4MhW2EUcg+8W2ghQeeDivVrbTrW0vbu6tozHLeMrzkOdrso
2htucA4ABIGTgZzgVapR9239dGv1/IHq2/X8WeXeMm0m98CeLfEGvmxVLmCa10trzYMeVHIs
ZQt/G0hlZcckMtUfHuo3Gp6Hol7ptjJq2iQGylhu7C5t3ja5+1Rrg7pVOQqsowCMynJG3Net
wQRWtvHBbRJDDEoSOONQqooGAABwAPSpKFo/u/AHr+P42/yOMv8AVtPh1HWPEmvbY9K0O2+y
qZVDfvG2vKRyQTnykH+0rCuPstU0JdetfE2q6rpMlnfvevefZbxJre1uHhhSKJmUlTIYYnBP
G5iwGcjPr8MENshS3iSJCzOVRQoLMSzHjuSSSe5NSUmrq3lb79/66D6/18jx/wAM3OkaL4q8
DWmpXOn2euHQpIL2KSSNLgyFbYRRyD7xbaCFB54OK3vCV7bW3jaXSvC3iAa9o00dzeXaI0Uq
6fO8wYKJY1H3y8vyOWYbMjAr0Kirvd39fxv/AJk20t6Hkek3aH4nQxC9t5AutXr/ANiYAurR
jEwN27feaNgpKggACdfmbCqG32q2Gr6pqH9n3Am1DWNV0m90kEFZJbVPKJkRSAdq7bgt6ZOc
Z59eoqY6W8rfhb/L+ujerb73/X/M8k8a6vpl9f8AiI+eJXvdDk0vTFYFWmvI5pVkijBA3PvM
PA64BGQM1ofEfW/Dg8Pxxare6emrabqNlHuuiqSRv50Eknls2MjyyGYrxjr0r0uihaW8v87/
AOYPV3/rZL9PzPJ9ZurW58QapbW1xFNqmp6tpV3pXlyBmmtk8omSPHVF2zkkZABOevPaeFfk
1fxRDF/x7R6tmMdlZreF5AB/vsx+pP1PSVU03TLTSbP7NYRmOLe8h3OzszOxZmLMSSSSTkmh
af16f5A9f69f8y3RRRQAUUUUANH+sP0H9a86+IEiXOtL9igluI9Nt1k14QSAb7JnB8kjBLMd
rPgYO1HGf3gr0Uf6w/Qf1p1HVMOljy9vF+r3PxOayh1zSbLTVmtxa2dzexxNf28kSt5kSGBm
lJZmClJVGUAK9d0/gfXNfuLzwxJrGtSaimu6PNdSwvbxRrDJGYcFCig8iQ5DE88jA4r0miha
f15P/hw3PMTpGp6/428S2NvHZxafHrdjdTXjzN58bRQQSBY4wmOdoG4uMBm4PeOXxFrUWnPe
6h4klsLG48RXNhNemCBU023ieYIQzIVBZkjQvJuHI4BOT6lRSWiS/rp+isD1/r1/zueWf8Jj
4kisYHsLj+1SdP1aa0f7Ov8AxMPIaMW8uFAzkMfuYD5yBgiqmm+MtXbw/HLeeL9LlsZ76GO5
1ezvILqTTYnjc/vP9Hijj3OqIN6Nt3tknjHpMehIPEz61PeXVxMITBBDIUEdsjFS4QKoJ3FF
JLFjxxgcVq01t/Xf/L+rB/wfx/yPONDeEfF4zL4sl1CO80O3a13valb4K827aUjXcF+/8hGC
3Py4A9Hoop9Lf1uHW/8AWyQUUUUgCiiigAooooAKKKKACiiigAooooAKKKKAGj/WH6D+tcBq
2peHbD42aKv2zS7fUprK6iuV82NJpHY2/lK/O4kgHaD1AOK78f6w/Qf1p1HVP+trB0PI/Dmq
6ho/jnxFqXiHQ761vH0eK6uQ8sDhm86fy0XZK2QV2xrwCdhJC5Ga/iKwj0K21Wy1lo21HVfD
jQ2YHBur95ZHlSId2MkkJABzgD049gmghuYwlxEkqBlcK6hgGUhlPPcEAg9iBUlHRf13/wA/
wHfVvvb8Lf5fieb6Jqvh2w+Ler28OoaVFdPpMBuo4Jow0lwkk7TFgOS4GC3cDBNLe+I7Pw74
aTU9TfT7XWPEtw8lr/aUiwxxBlAXzGY8KkKpuAPJ4HLCvQ54Irm3kguYkmhlUpJHIoZXUjBB
B4IPpT+nSk9VZ/1rd/oJaO6/qyseLW9vpmnxSaFpN9Fe3k1/o76PIkodri1hEIMqY6ouy4LE
EgZOcZ509HuvBV7/AMLA0ZNa0mx0m4lVXNndQxrFE1tFG7r/AAgbyRnGN3B5r1eiqve9+v8A
wP8AIFpa3Q5PwFql1qdnqQfUjrGn216YdP1Qxov2qLYpJygVH2uXTeoAO31ya6yiigSVho/1
h+g/rTqaP9YfoP606hjCiiikAUUUUAFIehpaQ9DQBnQ/6sU8/dP0pkP+rFPP3T9KACilpK6T
EQ0UtFAhKKWigBKKWigBKKWigBKKWigBKKWigBKKWigBKKWigBKKWigBKKWigBKKWigBK0Ko
VfrOoaQPFPFGmXx1ZwmvTXtvHMSYrpSZUB6hH6HHYEY461f8JHxBeajHaQzy6ZFCFkC3bSN5
qkEZQHCge2D6+9em3GiaZdtI1zYwSmVSrl0B3AjBBrlR8Nha6lBc6Zrd9BFFMsogeTevH8OT
zj8a5+Xld0VGEVdj/E2v6ppmo6vp1rchLi7tLf8AslmRT5U0kpgY4I+YKzRvg56ntxVGDxrc
XkMN5cXdzbWsFlYC6SzjiZzd3E4Qp84IAXaQ2OznHIFdZqnhqx1fXdJ1a6MwudKd2hEb4V94
wQ4x8wBAYD1ANUI/AOkxafqVnHJdLHqWprqcx8wErKsiSBVyOEzGOPQnmrjpa/f8P+Gb+5Dl
rt/X9W/Fkdp8QLG71hLI6bqUEMl9Pp6X00cYgaeHeWQYctyI2IbbtPTOcgZLfEYS+INPungv
tO0FtLvb95bqBNt1HGYikqbSzgYZjtO1juGV6V0EfgzTo1tV825YW2qTaooZl+aWXzNyn5fu
/vmwOvA5PfOt/hnpcYSK81HVL+0isZ9PhtLmZPLht5doZFKorHAQAMWLY6k8YWtv67f57D05
vL/g/wCX4li38eWrXCW+o6Rqml3DvAqxXaRZKTMUSTKSMNu8bSM7gSMgDmon+JehLps16BdP
HA9yrqsY3BYE3s/3vuMChU9/MXOMnEv/AAgVpNpt9balq2qahPeQJb/bbh4lmgRDuTy9kaqC
rHduKkk4yTgYntfBOn6ffTXml3F1ZXD2KWUbxFG8hVCrvQMpG8hIwSwIOxeOuW+v9en9efkJ
ef8AXf8Ary8yPWfEF4fhrq+uWdtPplzDp089uJ2hlZSsZZH/AHbuhB4I5PuKyG13UvB95FJr
eq3et6bcaRcX7GW3hWeB4FRmCmNY1Ksr8AjIYD5sHjbtPBWn2ng/UPDouLh7fUVnFxORGkjG
bIdgERUU89kA7kEk5hHgS0m0+9t9U1PUdTmu7F9PF1ctEJIIHGGWMRxqgzwSxUk4GSQAAPd2
/rR/rbt+g1bS/f8Ay/4P9akEPje2GsRrd22r232iG1P2e4jg8uATSyRxyEqxYFmUAgk4DJwD
uxFrvxS0Lw+B9tjn3NcTQRBpbeES+TgSOrSyopAY7cZ3Eg4UgZrVvfBunX73zTyXGb3To9Of
a6jYiF2V144cGQnPTgcVDL4ItBb6SNN1LUNMutKhaCG8tWiMjo4G8OJEZG3MqsSVzuGRjmh+
X9dv+D6+Ql5/1pr+P5eZPoni608Qatd2em2l48NqkbPesqLC3mRpIgX5txJWQH7uBg5xxnjf
D/izUbzxpHaR+Izqc76xfWt3o2yA/Y7WNpBHN8iCRMFY1y7ENv8AXFd9pOhw6Td390lxcXE+
oSRyzvMV5ZIkjyAqgDIQE+5OMDil0vQ7XSbG6tLdpXjurme5k8xhndK7OwBAGBljjvjvRs7r
t+OgfZs/60Zz1r8UNEuW1aNoriOfSmjSSBJIJ2leSQxoi+TI4Dlxt2sVIyMgDmodW8bXOl+I
tEF/ZXunw3ltd50yRYJJ7iZWhESp5bsMne2AHA5y2AMia0+GWmW2nzWkup6pdK1rBawPLJEr
WiQMXhMeyNQGRjkFg2cDOas33gK01drGbWtT1C/u7BJlt7uTyUljaRkYOPLjUBlMa7SAO+d2
aOq/r+n+Adf6/q34jrjx7p1l4tsfD1/bTWt5fIGj3z2zbSUZ8MiymQY2MN2zZkfe6VVh+Jml
Ntku7DU7GzksZ9QgvLmFBHNbxbS0ihXLDIcEKyhsdQOMzx+AbVNcTUpdW1Oci5W8e3cwiOWc
Q+SZG2xhslP4QQoPQCua0XwNc3uuiDVLPWIvD9rpVxp8Vvq11buxSZkHlxeQSQipH95238ry
cUtfz/J/ra3luPS/lp/X3fj5HWeEfHOleM7a7l0zMZtGUSo1xBLgMMqd0Mjrzg8FsjHIHGdX
TdZ0vXrOSfQ9UtL+FWMbTWU6TKjYzjIJGRkHB9RUWh6RcaPbNBca3qGrLhVja+EO6MAYwDHG
mc9y2Tx1rRlRpIXRJGiZlIEiY3IcdRkEZHuCKqVuhMb9ThdI8WXYu9TGt6hHHa+FrdxqkyCN
jePyVk2qCVARSSAB85Kj7hFOsfi1oup2kcmn2V7dzy3iWaWtrLbTuXeN5EO6OZowCI2HLAgj
5gBzWofh/optIbY/aPKWxlsLhQ4H2yKTlvNIGS24s4YYIZm/vEF9t4P2f2f/AGhr2q6p/Zty
tzbG78gFWWN48ExxKWBEhJzk5A565Xr5fnr+A35ef5afiV9R8Vm8+GOta9o4nsrm0s7valwi
eZbzwh1IYZZSQyepB9xWBonjr7Bb6peTaxceK9Jt47PZeW8cDOtzM/ltADEEjfGY29V34OeK
6/8A4ROx/wCEa1XRPNuPs2qtdNM+5d6m4ZmfacYGC5xkHtnNWdU0G11fRY9MuZJlhjkgkDRk
BsxSLIvUEclBnjpnpQt/u/4IPsvP9LGPL49toLx4ZtH1RIreSGC9udsTR2UsoUrHJiQsSN6Z
KB1G4fN1xm3/AMUND8O2Ktf3F3cyy3t3CiXElrA37iQq+Gd402g4CjO8gjgkMRqap4PtpL68
1KObU5YriSO6udItpIRFezRBdhO8Ag/IgwJFU7Ru75z9H8ETzafb39zd32haut3e3KvZyQu8
UdzMZDC4dXjbjZng4ZeDjqtf6+X/AAfl5j0/r5/8A1IvGkN/cSR6DpWoavHFEry3Nr5KRxs8
YkRCZZEJYqyn5QQNwyR2q6D4yur74VjxXq2nNaSx2DXckXy7ZNqbtybXbCnsGIb1FaNt4WFn
rb6la6xqMRuNjXtuBCYryRU2eY4MeVYqFB8soDtHFJp/hG1sPBsvhk3d1d2DwPbJ9o2bo4mX
bsBRVyAOhOT6k0PZ2/r+un4hHdcxTsfFB06ay0TW1u7nWZo433rHGEnDAtJImCAI48ENnBA2
feLruyrP4y+Gr+1vLizS5uEtvKZVgeCWSZZJViDBEkLJ8zr8sgRsHhSQQNWz8HPPcWOqa5fT
PrFqkcYlt5FMaooKsqgoPllB3ODk524b5FIS38AW8GjjSDrerTaVE8TW1lK0JW2EUqyoqv5W
8gFAvzM3y++CK05vL+v6+/yJV7L5f8Ehk8cQzmEfYtYs76LUjYyabttvMkl+ztMqMxdk2MuC
GVxzgEgbqxdI+JEmifDXTvEvjBb2VtRLSkvLZQiMFdwWNfMQsuM7V+eU4OR0rrJfBuny602q
NNcidtQTUSoZdvmLb/ZwPu527DnGc5744rNuvhrps+jafpsOp6naR2Onyab5kDxb5reQLuVi
0ZAJ2LyoU+9Sr2+78tfx/ArS/wDXn+hqxeKYbvW5NP07T728jtyour2IRrBbMyBwrb3VidpU
nYrY3DOK5Y/FPTvEGj6nceFrhxPpVudQCmS3kF3Ah+dSqO7x5HZwjgkccEV09v4Uistae/sN
TvrWOcJ9rsk8pobplTYHbdGWB2hQdjLnaKypvAt1a+GZtB0rWbybTbiMWn2W+eMpaWzH5xEy
xeYzBMqodyOeTxT6/wBf1/wL3Ettf6/r/hi94xvtTg0uxn0qW8hs3uB9uutPt1uLiGAoxDxx
srhvn2A4RjtJIHcRWXjPT4tImb7Tcas1pBbyJcRpHuv1mJWJkCkKSzAqfujcDwBitrVdLm1G
3ijs9WvtKeNsiWy8osRjG0iVHUjv0zxwetcvbeCoYvFGix29jcw6doMLkXU86t9ukchhwGJO
1y7ksF+YjaCCcC3t/X9fcLW1+tiPWfiPcRaFdahoOg3l2ltqUViZne38t2NwIpAF88Op7DcF
5ZSRtyRck+JuhweLofDk4kiv3aOKRXntwYZZFDLGU83zGPKgsisgJ+9wcPvPh5ZahdaldX2q
ahNdX4iUXG23R7cRSiWMLtiAbDAY8wPwMdzm7B4S+ya3JqVnrmqQG5Mb3tuvkGK7dECb2DRE
qzKqg+WUBwOBSV7f1/Xf8N9RvrYyLL4n2uoxWb2PhzXpmv7ZrqyTyYVNzGuPMK7pQF27h94r
uyNu7Irq9H1W21zRbPVLAsba8gSeLeMNtYZGR2PPSszTPB2n6T/Yv2ea5b+xrKSyt/MZTvR9
mS+FGT+7XpgcnitHQtHt/D+g2Wk2byPb2UKwxtKQWKqMDJAAz+FVpr/Xf9LB1OK1jXvEJ0m7
1rTtUjtbSPXIrFbc2quxiW6S3fDHoWbzCSQ3G3btOSX614i1i31/Ur63vzFp+kalY2D2AjjK
3In8vzHZipcMPPXbtZR8nIOavXfgWfUYL7TZtYurHTJNQ/tCAWJi3ly4lKuJInwFlUuCp53E
EYHN6bwTaXOrRX1zqF9LhoJbi3ZoxFdzQ/6uaQBAdwIU4Qqp2rkEDFKOlr+X6f5P5sH1+f5u
xk+INc1efxLFp2kag1jazX0OmGZIo2ZZTG9xK6l1IJEaIg4Iy7ZBIGOW1Hx14ggt0jOqXEc9
iLiFpra1heOaWK7MIkuyVPkQlV3Fl2DiXBGFU+hHwhDJ4et9PkvZ4rqG4+2DULYKkguCxZpF
DBl5LMNrBhtOOaoS/DXTTb+Ta6nqlmk1s1rfeRLHm/Rnd28wshwS0kh3R7D85wQMYI6Nf10/
K9xuz/rz/wArfc9r3NG9ur/UPEY0zTL42cdvZma6mSJX+eTKxAbgRxtkb6hM8Eg8hZav4i1T
U00Sx8STG1mnvJLXWvs9v508UCRLt2+X5ZHnSsNyoMrHx/ePXS+E459E1fT2v7i2fVZGaW6s
wsciJgIqKWDAYjVVz9Txniq3gXfY20L+ItX8203JbXMaWsTwxMmxogEgCbCAOqkgqCCMCk79
O39fd+KEul/6/wCHMrw74n1vV9c8LXF1dwJYazo0t09nFb7dkqCDJLkknmRsAbcA85PNW/DH
ia/1zx5q0TTA6P8AYoZ7CIIASPNmjMm7GSH8vI5xt2nuaur4Ggh1rS7+y1fUbSHSrf7La2EQ
gMKQkIGQ7oi5DeWuSWzxwRU2k+BPDmheJJtb0bSrSxuZrZbYrbW0cSKoZmLAKoO5twBOeQq+
lXpe/r+tv0F9m3XT9Dm9O8UarN8TTp0uoTm3e9uIDA1vGLLykjBQRTBdzz7vvJuONsuVAVSZ
da8Raxb6/qV9b35i0/SNSsbB7ARxlbkT+X5jsxUuGHnrt2so+TkHNblv4JtLbWlvl1HUHt47
uW9h053jMEU8gbfIDs8w5LucFyoLHAGBiGHwBYx3dtNLqeqXKRGB54bidXW8lh/1c0pK7i4w
v3WUHauQcVMfs36W/wCD+v3je7t/X9f155vjXXdZtNS1X+yNQNlHoWjf2q8YjjcXjl3xG+5S
Qm2Fgdm05cc8VoeIdQ1O/wBV0bSNG1GTSTf2txePdRxxvIBGqBUAkVl5aVSeM4U4IzmnX/gC
y1KSRrnVNVZbjzUukM6sLqB5DJ5D7lJEakkLtKsFJG7mrGqeDYdSvJLtdY1W0uWkLRyW8yHy
EaJY3iRXRlCMFDEYzu+YEGp15bf11/4H3D+1fp/w3/B+8zvCnie/1W40Wa+cGHXNHF6sQUAQ
TR+WJFU9SreaCAxJG0+uB2lc/p3hz7D4gt54o4YNO0zThYadDG7MwVipctkcY8uMDBOcEk88
dBWjae3n+bt+BK/r7goooqRhRRRQA0f6w/Qf1rj/ABfruqaFq1tb2l1Ft1tRZWYlMYFpc54l
OcFkKtyOfmVFA+euwH+sP0H9axNU8JafrNxfzai88zXlqLVcso+yoDuzEQMqxYK24knKL/dF
D3X9f1/TBf1/X9X2MuX4j6Hp/i+LwrPcSTX6vHbyTNLAv71lBUGPesjE5XlIyoLdRg4n8N+P
rLxLdWcMOmalYrf2jXlnLeRxqtxGpUPt2uxBBdfvAZHIyOasW/hH7HrUmo2WuapAbgxve26+
Q0V26IE3uGiJVmVVB8soDgcCn6V4P0/SDohtprlv7Fs5LK38xlO9H2ZL4UZP7temByeKa8/6
0f62+QjjdS8WajB4/wBRsbXxGWu7fVbO2tfD4SA/aIJIomlfGzzflDyPv3bRs54rpP8AhYNq
4m8jR9Vmcag+m2yIkIN5OhcOI8yAAKI2Ys+0Y6EnIrdsNGt9O1LU76B5Wl1OZJpg5BVWWNYx
twOBhB1zzmsqXwRYtp6wW97fWs0Woy6lBdwsnmwTSs5fbuQqVxI64ZTwfXmpWiSf9bf8Eb8v
63/WxTbx7pQlgu7uXULCOO1vZbm2lhj2wm3ZBKJMZbcu75djFSCevy1DpfxU0TWLFpdOt7m5
uvtCW0VjbzW08szupcbWjlaMfKjk7nXAQ5xxmFPBSXeviyu7G7fSYLC8guby7njL6jJdNGzs
PLORjY2cqmCVCjA41T4KaXTobe78SazdT2kyTWV7J9nE1oyqV+UrCFbcrFT5gfIP401tr/Wr
v+G1w9PP/gf8GxHpvizU73x9NodxoF3Z2qadDdebM0BaNnaQHfsmbI+QKNoJ3Bs8YNdZWHa+
Ghba/DrDatfzXS2a2k/mCHbdKrMys4WMYYF2PybR6g1uU+n9dw6/12X6hRRRSAKKKKACiiig
AooooAKKKKACiiigAooooAaP9YfoP61wOt+IdZtfEGpXtvfmOw0jUrGwewEcZW5E/l73Zipc
MBOu3awHycg5rvh/rD9B/WsC+8G2Ooa9/aU1zdrG8sM89ijr5E8sX+rkYFd25cL91gDsXIOK
fX7g6M5nwN4q1PU/Ek0Op6lNLEbSW4lS5t4ooQyzbQbR1UGaILyXJf70fIJK1YGteImu/DGo
HUkTT9a1Nl+xmzAcQNFK8YLk5A2ojEbQ24n5sfLVxPhxaw2ZtY9X1CW3S2aytobkxulrbOym
SNNqqxyiBAzs5A/HOlr3hP8At29064XW9R01dNkE1vDZrb7BIFZdx8yJz912GM49s80LS39d
f8rA9eb+ull+Jz9l4i1hvEdpfTX5fTr/AFy60hdO8uPZCsSybZAwXfvLQMTliMPwBgGr17qN
5eaRrGsSeI59E0u2ndIJYLeJm2RAox/eI2d0m7jByFTbjJzck8EW41OfULTULqOUvNcWsEm1
4LW5kQo06qAGJILHaX25ZiACc07UfBVve6bo9laapf6ZFo5VrcWghYMyrtVnWWNwxHUccE56
gETa8ben9fh87j+1df1v/wAD7jkoPE/ioQ/2nql2LZtLuNNsr3TUij2TvOsXnMxKl1YGddoV
gAU53Zrc0vxHqOmnxa/iK8S/GlXcaQLb24iB3wROsaLkkku+BliST+Avt4HtZdTivLvVNRuS
HhmuIZDEI7uaH/VyyBYxhhhfubVOxcg4pLHwJaQ3WqPquoXeuwasyvd2epwWzwu6hVVtqwry
AigDOOM4zzVb3+f6f5P7xLS3yF8Aalqup+HZ5NfnSe+h1C7t3eNAqgRzMgAAA4AGMnk455rp
6xvDPhTSfCNjcWmh2sdvDcXMly6pGifM7E4G0AbVHygdgAO1bNAu/wAxo/1h+g/rTqaP9Yfo
P606hjCiiikAUUUUAFIehpaQ9DQBnQ/6sU8/dP0pkP8AqxTz90/SgAooorpMAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACr9UKv1nUNIHmeufE3V9M1JbI
6EbOYymNRcAusv8AdKupC5PTB9fzvaZ8S/tU0NtcWccs7sA32N2kI47gAheexatDVfBlzqE9
w8epFUlB2o6lgD2yMjIz24rltEttc8La7GqeGWjSZ0inkt5zJGy85kwxyDzngCufWL1ZUYy1
dzvNR8VWOlrrJuYrgtpFslzKiIC0qOG2+WM8klGXBxyPfNKnie2uLq2g0+0ur17i0jvV8nYA
sTsFUsWZcdS2PRGxk4Bx/FHh3UNS8YaPc2UKPp8u2PVCzgFUhkWeI4P3vnVlwP79YFv4K1yP
QNVt5rRWmXUrK309VlTmwtrlZEbsFIVpPl6/L0z1uOtr9/8Agfqn8mOXZf1/Vn96PUaz7jWb
e28QWOkSJKbi9hmmjYAbAsRQNk5zn94McHv0rg7DwLd2WrWWrQaZHBqf/CQ3s9xeB0Mn2OXz
9oJzyhLRnYOhOcA5NY9j4G14eUthoJ0TUU0S9s7rVTdxn7XeSCPbPlGLncVZt7AOM8gYFK/X
+tr/AJ6Dt71v63t/wT2SivLLfwjfw2t3feH/AAsPD7WsdpLbaX50C/armGQuzfu3ZF3IfL3k
hmydwAAysHgbV1jvLLVlu7rTzaT3ObOeMSy3dxGqyqm8hQQfOYbvl/fY7Gm+v9f1fX8O4lr/
AF/W2n49j0XWNUh0TQ77VbpZHgsbeS4kWIAsVRSxABIGcD1FZujeLItV1MaddaXqGk3j2/2q
GG+WM+fFkAsrRO68FlypIYbgcYOawbXQdTb4Qazoy6Ja6dd3Frdw2tlbQw2+7crKhdY3aNXb
qSrbec8dBU1rQ9c8U6Rcu+izac9poV3Y2ttdTwmW4nmjVc5jdkVAEABLZJY5CgZI9G/66P8A
4A1rb1f6f8E9CWeRr14DayrGqKwuCU2OSTlQN27IwCcgDkYJ5xNXm1z4GurW/nuNE0yG3+x6
XZvp6xsihruGaaRkPPG/fhmPXzG5zms7xH4D1TU7bSbi+sLq9Wd7m51WysfsbyLcTbCjBboG
JhGqmIMCGAwVOCaHp/X9f1buJa/15f1+PY9arlrDx5aX2tLYNpmo2sUt5PYwX06xeRNPCWDI
NshcE7HI3Kudp+lVvB/hhtM8Q61qt9Yutxcm3jtrq6aOS4aJbaFWDMpIB3od2OCVzyMGq/hr
wVdW15cahq9zdPJDqt9eWGnyPF9niaSSTZL8i7ySjnhmON54Bxg2fy/yDePn/wAB/qd1Wfca
zb23iCx0iRJTcXsM00bADYFiKBsnOc/vBjg9+leU6T4J8Sx2OuP/AGRJYvf29o1zZq1pbx3c
iTM88UYt+AroSgeQliGwxxWnrvhC/wBSk0STw74ZGi6dZw3YvNJb7PCLhHeEmA+S7KvmBG5B
I4w2Axo6q/8AX9ff5B1t/X9f1c9Toryx/C+s3XxI07V4NAbTIbSZFimhSyRI7X7KV2OykzM6
u23YD5W1VxnGawrTw5qEetW2jWWkjQ/EDeHNQjnv/tSMbudjEouSyMW+Zsne4D8nj5aX/B/J
sfW3oe4UjEqhIUsQMhRjJ9ua4j4a+HW8P6beRHTtU0tpjGzQ3gsFTeFILRi0AX0yzgMcL6V0
9hZ3Wl2EwuNRvtalyXVrlYFkPHCL5aRr279zycdKkrExdyppniuy1aexhs4rgy3cDzujKoNq
EbYyy88NvyuBnlW7AmtyvNk8L+J4INbktRHDe+KLGV7iSJkj/s67CkRDcvzMu1gpYbiGTdj5
yRlaR8PHa00u0n0DUIbRdViub+01D+z1hKi3mRiqWuFcFmRW3LuYYyCAcLf8Pxf6f8HQe34/
gv1PUdY1SHRNDvtVulkeCxt5LiRYgCxVFLEAEgZwPUVQ0DxRFrl1cWkmnXumXlvHHM1teiPc
0UmdkimN3UglWHXIIOQKwIPDOo23wo8Q+HoLMRyyjUYtPtlkXaIpHk8lQc4UbWXAJGBxxioN
X8ATS+E7iEzXes6neyWCXEl5JErLBDOjmNdiogVR5jcDJJPJ4oW/3fj/AJdQf+f4W/4J6FUN
tPJPGzS2stsQ7KElKEsAcBhtYjB6jnODyAeK821DwVcjxNdC08Oxs73do+l6zE8SLpdtGsYa
FRuEiD5JMJGpVvMwSMtjEu/Cl94jsYJltLvUdKTV9X861svsbuWe5by5Qt2DEwG11zww3ZHB
NL+vyH/X5/5HtJOBk1TsdXsdS0WHV7O4D2E0PnpMVKgpjO7BAI49RXE2Phf/AIqSY+IvDEmu
x3MUKWmpXxtp2sohAEeGQM+QdwdmMQZW8w07w/4WurL4J3XhyPR10nUG0+a2dF8oCeYxbfNB
jY53HHJw3HIFD0Tf9f1/WoR1aTO10rUU1fSbbUIoZoYrlBJGkwAfafukgE4yMHHXnkA5FXK8
2j0+41/xJpniDSdMzpDxwfaIxJGPPmCsEmKbutu3ylWwxPbMSZ5zTPhxq0Xh26srvTNUbUp3
tVvZpJbFbe82XcbvKrxbZnbaHYNL8wBYZ3Hmre9b+v6/rvaU9L+h7LPO8MkKpbSzLI+13jKA
QjBO5tzAkcY+UE5I4xkij4d16LxLo6anaWlzb2sxJt2uQgM8faRQrEhT2DYb1AriT4Dng1hr
Oz0a3j0Ea+t0lqojEIt2sGikxHnAUyMQVxzknGDmsHVfh9q//CtNB0C08NxeZDp0pmFpHZeZ
DelVCszzZCqfm3PFmTIXBFStr+n5Xf3bf1pVtbf11Paaoavq0Oi2IvLuOVrdZFSWSMAiFWON
7ZI+UZGSM4HOMAkcnZaDdQ+NZ7zWfD7apPN5TWOsEwSf2cohCtHiRw6fOHbMYbd5nPQ1x2ne
F7rwz4Q1qHV7PUY9W1KwbTjLM9kbfULqRtqMhhCzSOWYsGmG4Atk9TT6/wBfd/XyEtVf+v6/
pnq+ua9Foi2qfZLm+urybyba0tdnmSsFLnBdlQAKrHLMOmBkkCr1lcteWUVw9vNatIuWgnAD
xnurYJGR7Ej0JHNYniqxW60W3t59EvNb2SKR9huI4LiBwDiVHaSPaeoyrA/N0IJrjo9E1v7d
pGkaw0c8uv2qnWgzgsqWzg5baAGLo6Quw4OBjihb28xdL+R6RqWp2mkWf2rUJfJh8yOLdtLf
M7hFGACeWYD8at14/qfgK5vbfXYIvCENxA97DeRy38Fn9ru3F1vkVZFkIdPL3hfN2MA20kgn
F5PBt7/wsgavcaVqa2/mW76e9n/Z4SxiWJUaBy/75FBDZWFijBzjknKT0uN6XPUqK8o8P/C2
CCLw1Fq3h+3eNdJmi1hJWSQSz/uvK8wZPmFf3m08hO2OK7vwXZX+m+B9GstYVlvrayiinVnD
kMqgYLAkHp1yaq2/9d/8vxDqVdT8d6bpc0ySWmoTpDeRWTTQW++PzXZBgvnChTImS2M5wu4g
gWtZ8Tx6HfQRXem37WkssUL6hGsfkQvI4RA2XDnLFRlVYDcMkc44vUY9Rk8OanoGm6RdalqE
Ov8A2uZYJYE2RG8W5Rj5siZDJlQRn5kI4xW1qs2t6n4osFu/DGqto1r5Vwqwz2mJLg85lBmB
2xcHChssM8hRlR2TfdfdZf8AB/UH1+f5mp4i8aWHhsXhu7W/uRZWn2qb7HbGXYvzbQSPukhH
OThRt5IyMx6144stEYb7DULxEtRe3clqiEWcBOBJJucHHDHCBjhGOOKyNVsNVu/h74hlt9Ju
rzVPEKTqtsjRxtCjRmOEN5rqFAQKWHUMzcdaz/Eugaxr9jHHp2la5pd9faYNPupPtVmtsI9z
DE+HdztyzAxckPjcMnatf6+f62ux6f18v0vY7nUNegsbm3t47e5vZ7iGSeOO1QMdiAc8kDks
qj3YdACRht8RbRVeEaLqzapHO8EmlKsJuE2RiVnz5vlldjIchzncAOeKIYNU0+11nVtN0uW+
vYYlsNMspGEReOLjJLkABpC5zxlVXGeKxLLTNb0+4sNag8Oapc38Iuo71Lua0Wa5knEZ85ds
zIEUwqm3cCFxgNjkfW3b/hv+D2FHpf8Arv8AjsdVZeNNL1LW7DTbFLuU39mb2C5NuyQtGAh4
dsbjiRfu5xyDg8VZsvE1hqHirUdAthK11p0MUs7lR5fz7sKDnJI288Y5HPXHIaToutaFrnhG
zGiXl3baPpcljc38MtuIi8gh+ZVaUOVUxtn5c9MA1Z8H+EvEPh/xtd3GpX1pfWMmnJH9pjtD
E80pnmkbIMz4OZCScAHcAANpzel/LX9bfoL7N+un6XNy38ZWlz4iGlrY3yxvcSWkV+yJ5Es8
alnjXD78gK3JQLlSATxkvvGlhYeIRpclrduqywwT3qKnkW8s3+qRyWDZY7fuqQNy5IzXMad4
Z1aD4jDVX0maK5+33Mlxqf2mI209o6YREi3bllwkAZtik+WcuwwCTaJ4i1O5uYLnRDaR63fW
GpXE32qKRLIw+V5kLEEMzfuF2lVKnfyVxUx15b+V/wCvv9Lfe3u/6/r+vl0/iHxnY+HLwQXN
reXOyA3V1JbKhW0g3BfNk3MDtznhQzYVjjirGveJI9Ea2ii0+91W7uVd47WwWMyGNAC7/O6r
gblHXJLAAGuT8R6V4j1S61poNCI/tvTZNHDi6iK2yrLKEnfJB2Mkxbau5gVwQetW/Etjq89z
D/Z2kawl1p263sb/AE29tFE0TxR7hKJj8qFwB8qsw8rcMZAK15fP+v8AgfiPTmt0/wCG/wCD
9yOi0fxRp+tzxx2Xm4ntI723kdQFnhb+Jec/KSAwIBBI9Qa2a4LwzpH9k+IdC0aGZJ5NB0N4
b6SNiQJJXiKqc88+VIwzzgD1572qdunn+bJV+v8AWgUUUUhhRRRQA0f6w/Qf1rH1TxTY6Pc3
cN+k8bW1p9rUhQRcLu2lY+clgxUYOOXXrmtgf6w/Qf1rjPF+h6zr2rQ3FjbxxjQtt7YecI2F
7dZzsyclECgrkgfM4YfcGR7r+v6/pAv6/r+u52UTmSFHaNomZQTG+Nyn0OCRkexNPrzB/Cep
3PxPbXtS07VnWSaCazntmsCtogjVXhkaT98oDb9whYqwc9yczeB/A1z4ZvPDFzHpcdnMujzW
+sSo6FpJcwmMOQSXxtcA8hRwCBgU1rvp/wAM/wDhheh0F148tLTX7nTptM1EQWt3DZz6iFiN
vFLKqMgP7zzMHzEGdmAT1711NcPB4KnvvGWuX2r3V4mmzajb3UFijxeTcmKCIK74UyfLIn3d
wB2DII64svgW4i0555vD0WoGXxFc3uoWAaIvqFsXm8kEuwRgpkSQI7AcH+Lgytlf+tv+CU+6
/rf/AIHzZ6Y88i3kcItZXjdGZrgFNkZGMKQW3ZOTjAI4OSOMzV5FJ4c1ZLiy0nTwNKvZ9J1l
rK3Ew/4l6SyQ+Um5SQu3I+7kLyFyADSab4IvLPw/HFH4d1SS1W+hn1DRLxtOjjvUEbqRGtuV
jbDFHPm7d/lrnpimtr/1u1+H9dxf8H8P8z1NNTtH1iXS1lzeQwJcPFtPEbsyqc4xyUbjOeKt
1wWjeF7ew+I0etW3g+LT7efSooI5EitVaxkRpNysEckEoyLmPcMDBIArvafT+u4df67IKKKK
QBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADR/rD9B/WsXWfFEeh30Ed5pt+1pLLFC+oRrH5EL
yOEQNlw5yxUZVWA3DJHONof6w/Qf1rj9dOsXvjG1gn8Pajd6HZNHNHJazWwSefs0geVXCR8E
AKctz/CAR7oOjL+ieNbLXNTS0isr61FxA9zY3FyiCO9iVgpePaxOPmU4cKSGBxTT4507+17O
wFpqBa8vZLKG4FsfJZ0Dlj5hOMZjdcfeyudu3DVyNh4e1rTb4ajY2esQW+l2UtppVlqksEzR
yTOiqFFuW/coAMtIxbHoFJOxrumahpp8J2OiaFf6pbaPdJcTXEU1uuVEMsZz5sqsXJcMeMcn
nPFNdP66/wCW/qD6/P8AL9Wb8/ieO08R22lXem38Ed3KYLe/dY/IllCF9gw+8HCtyUCnacHp
lL3xP9nmvYrDRtS1WSykWKVbNYgNxTeQDI6j5VK55/jAGTnGJPday3jKfUdW8M6rJY6asi6c
beS2eI/J807KJfNZ25RVCHAJ7scM1Gz8Q6d4RstP0/Try7utSleXV7mwmhWWDfl5PL86RRkk
7FOTtUZ7AVOvLp/X9dfl1Hpf+v67F23+JGj3lxZi0gvJrO5FvuvljUQ273AzEkmWDhmyo4Ug
blyRmtXRPFFlrsmprbQ3duNNmEMxvIDCSTGr7grYYDDD7wB9sYNca/hnVJJZ9NsdClstN1O8
0+98ySaHFiluIg0LKrklsW67du9fn5Iwanh0fXdbm8X2kumXegx61PFJDd3fkToY1iijeNki
n3fMEccEcHOQeKrvbz/T/g+thLpfyOt8NeJLLxXo/wDaemJMlv50sI85QrEo5QnAJ4JGR3x1
ArXrlvAGkazouj38GvtbtNLqd1PH9nh8sFHlZg2PMf72cgZyAQDkjJ6mjQWuvzGj/WH6D+tO
po/1h+g/rTqGMKKKKQBRRRQAUh6GlpD0NAGdD/qxTz90/SmQ/wCrFPP3T9KACiiiukwCiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKv1Qq/WdQ0gYt54v0G
x2/aNTh+ZioMeZBkdRlQefarFn4g0m/2/ZNQt5GY4CbwGzjPKnkceorzHxL4Ttn1i4uLXRp7
d0cyMLbcY5e53RgEHPtyfrVfwpb6fdarEusaxFPCxUW62k+xA/PyOoAyeOvPOa503e0rFRU3
e60PaKK848aL5Xia40UNtXxdaw2oAOMlJNs5HI58iTPHPye1Y1nq73Onz6ld21rfy6L/AGfo
ci3cfmILn7UgnbGfvD90wOeCAfarjrb1t+n52+8b00/r+t/uPYKK8+svGXiBtWtZbxNNbS7n
W7vSVghhkE48rzikm8vtOfKwV298g87Rz83i/U11TSPFOo/2bdKPDmo6lbWdluVo0/cMI3Ys
27oAXAXkN8vFK/X+tm/yHZ35f63t+Z7DRXn7+MNd0e4eLWZtJvIoY7O7uLqzgkiSKCaUxtkN
I+NuN4fOCob5RjNRWPjzxDqyS2um6TbvqYjuLqKByVDW/lo1v1YYZjMgOSBlJOnUP+vu/r8H
2Emn/Xf+l96PRaK4PVtVm1f4OeJpby5juLmLT7yGfZYyWnlusTZQxu7kEeu4g9Rwax75bTwP
e/bPB9lZ2ckfhu6vb6zgj2QMY1QwSPGmBuLeYu7gsAwz8vBtv/Wjf6DteyXX/gL9T1SivOpP
Euq6XrUtxfW2kySQadZXeoXVvaOj/Z5J5lYBi5OI1AbnOcOcDcAI9U8deJXn0+38Padb3Mmq
tdT2R8lXLW0JRVO2S4hDF92/cG4XHynkg209fw/r8GJa/h+Kv/XyPSaK5bw1ret6x4i1iDUY
rO0tNPMMX2ZUZphK8EUrbpA+3Cl2HC88cjHPF+E9HabxS+q2Whiwaz13U5b7WyYV+1Q+ZKvk
YVjI/wAxQ/OoA8vg9MnXXtf8v8w+zdf1o/8AI9dory60+Jes+Rqb3FrbSR+TZzabcyQfZkMd
zMYklkUTSnYBtfJ8tiMgqvWneLtW1bw74u8MS301neahNbXtut1HavBbQb5LYLJKpkchF7/N
ycDK5yDW6Xf8+wHp9Z2l+HtF0N530TSLDTmuCDM1papEZcZxu2gZ6nr6muSufGmrWnjmy0tF
gvdPa5FhdzJaeVsuPs7SkIxnLMeFO3yiAGxvyKzF+JGt2lnbaleppN3a3mh3esx2torrLEIg
hWNnLkN98gvtXkH5RjlX0uv66/krjs2+X+u356HqNFcx4L1bxHqmnzzeJdOS34R7WWJIoxMr
LkgKlxMOD/EWGdw4GOdjTb2bU7ORr7SLvTDuKeRetCzOuOv7qR1wc45OeDxVNNaEppq5fory
TStag0b+1tQeKW6tNC0y4n8ORSpsE1qpPmMrZOcFUQNgYj2Hnea0rfxZ43az0xLvT7C0n1TU
I7e3uriBfLMTwSyFhHFcy5KmMEEuu4NjC/epLXby/F2/4fsN6b+f4K7PSaK4HUdYvNa+DHii
bU1gF5b2upWkxt1Kxu0XmR7lDEkAhQcEnGeprGsU1Hwjo2o63oPh+38P210NOtYNOuBHskma
YRyXBSByq5WVRw2TsyR0yLV29PxB6fj+Fv8AM9SubWC9tZbW8gjuLeZCkkUqBkdTwQQeCD6U
lraW9jaRWtjbxW1vCoSKGFAiIo6AKOAPYVwt14t8QWt9qDGTSpLfR720sLmA28izXbyrES8Z
8wiMZmG1Crk7SN3PGZJ401yCSDSvC2iWQvLq/wBTwsFum1lt59udjzwgu24MzByeCdpzwfr/
AF+TuH9fn/kep0Vx1hrXiPXtV1G3tW07SBpqxxT211btczNK8CybgySoFQFwvRt2xsEds/w5
q2tWvwHGs316t9qEejvdRTeWwYkRFl3lnYu2Ry3GfQUPRN9v1HFczS7noNFcFb6vc+G9d0nw
np62b2s1vHNFOUYsihXaRXw3zSylGZDxn96SDs+bHsPiF4xvPCb682jWkVrd/ZjYySqgjUy3
CRlGKXDs/wArn5ikeCpyvOA7a2X9f1qSnpf0/E9VorzuXxd4nivP7G3aS+pLriaa139llWEx
PaG4DiLzS24dMb8HHUZyKc/j/wAUyxabpul6da3Oszz38UzxQq0b/ZZfL+SOS4ixuyG/1jFQ
Dw3UL+vwv+TH/X5/5M9QoryaabXbvTvHd5rd3Ch0wx3dnbCJi9jcJaxSoFfzGXAJ2kKuGJY9
G21vfEewbWovCtqJpLSWbWFaOZPvQyC2nZWHrtYA474o7fL8Q6X8n+B3dVotOsYNQnvoLO3j
vLkKs9wkSiSULwoZgMnHbPSvJ7jxzd2Gva7qYs4zrNnplhYXNrkbIbhruWPPzMuU+dXXLLlW
XLLnI17HUfGt3488PRay8Olo9vema0a2/wCPhEeH59sdzIqth8Llm24Y878K1ra3n/X3fmD0
uv62uelUVzvjqWSPwjPHE7R/ap7e0d1OCkc06RuQex2uea4XTtNtItf06e2iWHU7nxDfadct
bnypBZJDKEi3IQyoqJAygEYO0jk5pLV/15f5oHor/wBbN/oeuUV574Xuh4d+H2rmwjLyxaxf
QWcTszGSVrp0jUsck5YrknJ6k1ztzo1vo95fSRgSazpWq6Va6fOwBl8uQxGTaeuJWkuS/Td8
2c44L7fL8bf5oHpfyv8AgeyUV4/4D1RdHa01rWodKnn1jS7nUbq+gtyL2Ixum9JZCxLrltoU
BdhQLg4zWnrXhy0vvDVrpl9pkN14q1jzLhHb5msJJCDJcBjygiBRQwwTsRR1p2/r+vRh1/r+
ux6bRXktlYxN4jsbwljrV74iv7C9uEbZO9osUoVC6kMFCJAw5GDgjk5q9o/hKPxD8ONS0KCW
GGNPEFy6fa4DdRsIr1n2yKWBcNtwctk5PNLf+vT/ADDbfvb8/wDI9MorzKS+huvgjdxxWthp
6+e+nJHp0Yjs5X+1eSCFyMQyN94ZztZuSeSzSrmTw94D8X2USWelarBPcrbWVi4FvFKbYSxx
23Qk7MMRtU7t52gUm7Xa6L/L/MaV2l52PUKK878ILpPh3xFqFtpMltaaO2lafMxDKkbXMjSI
Gz0LyKI8nksdvXNZfghrTS9S0DURJDby6hod3ea9cMVTfIksR8yZvVXaVcseBuHGOKt71v66
/wCX5Ep3V15fjb/P7z1iivJJdMltviBpoudERr/UdXumk1YyxOt/YNE58oqCXKovlLtZQgKK
QSWGe58DSO3hcQO7Olnd3VpC7HOYop3ROepwqgZPp360lqr/ANf1/wAEb0f9ef8Al+R0VFFF
ABRRRQAUUUUAFFFFADR/rD9B/WnU0f6w/Qf1rzv4hSxWmtRm2eaKO7thFrzwx58uw8zHmM2R
tYFnAPOEMpx8goe6QdL/ANf1/wAMejUVwUPijX5fHdzo2h6LE2i6VNDazsqxAqrRK+8MZ1ZQ
AwwohfIU4YZ+VPB3i/xBqt3oJ11dNMGuaZLexJZwyI0DRmMEMzOwcMJM8BcEY+brQtdv60v+
SA76ivJLjQ5NX+JevNp2hA6jBrNlKuvEwr9jiS3gaSPO7zTuUMu0KVO/kjmthPF/iO42pG+k
wNf69PpNm8ltIywLCZiXkHmDzGYRBQoKcnOT90C1S8/+B/mD01/rq/0O4g0vT7XULm/trG2h
vLvb9ouI4VWSbaMLvYDLYHTPSrdeY3Pjq7simoX+madeXdhY6uXuIIyDKbV4x+6YklEc/eX5
sFcZO3mzZ+LvF5sLKLU9Ps7K61W9it7K+niQQBWieQkxxXMpb/V4X94m4uvAxyLVK39XdkD0
38/w3PRaK4jSn8Rj4rXdrqOr2lxaR6PbSPBDZyRqWZ5l3IDMwU5XJODldq9snt6Olw62/ra4
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANH+sP0H9adTR/rD9B/WuO1Gyhg+MWh3ieaZ
rjTb4PumdlAU24AVSSF687QMnk5NHW39bXA7OivJfCniWMfEHxFrGrwajaSSaPHczRXVhPF5
Eccs+1BvQD7mzpkMxfaTg4oa9pCxW+tXOvRqupweH21a1LfM0F9JLIzPGTzvQpbxhgMgBRxn
FHb+u/8Akx21a9Pxt/mv60PaaK4fQ7RLL4qavK3mLLcaLaTzmWZ3w5lnzjcTtUY4UYA7CqV3
DpOpeHZ9W1vRodZu9euS2m6dOobzlClYBhuFAQGQsR8m9z9U7paf1rb8eglZv+u1z0WivGTo
7aTJM17P9s8QaNqGj2FjdvzKIiIVcIT821y9wG9QDnOOOg03wxDqEfxE8O208lvHe3CwefM7
3DKZLOLLEu25uT3b2qu9v62/zBatXPRqK4/4e+Va22saRFYaTanS7827y6Pai3guGMaPu8vJ
2uAwVhublevYdhR6CV+o0f6w/Qf1p1NH+sP0H9adQxhRRRSAKKKKACkPQ0tIehoAzof9WKef
un6UyH/Vinn7p+lABRRijFdJgFFGKMUAFFGKMUAFFGKMUAFFGKMUAFFGKMUAFFGKMUAFFGKM
UAFFGKMUAFFGKMUAFFGKMUAFFGKMUAFX6oYq/WdQ0gJ1rEufBvh+7vkvZdLg+0o4kEqrhtw6
H61534lv/F9vqbRDWo7i2SU/vbaTyXjU9A0Yxux14Of5G34V8T+I9XvBaabM90tuQZjeOi7Q
cjgAFmHXknt+FYJ3ew1Jt2seny2dtPcQTz28Uk1uxaGR0BaIkYJUnkEgkcdqhOk6cYZYjYWp
jmmFxKnkriSUEESMMctlVOTzkD0rnte8U3+k3Gt2kMEElzDaW8umKytiWSZ2iVXweQJAucY4
b2zVaLxxJd/ZpkmtrG0NhZ3NxLNbSTFJbmYIkQCsCD8rjnoSpPAINLV6f1/VvvsU9P69P8zq
10vT08vbY2y+XO1ymIV+WVs7pBxwx3Nlup3H1qvZ+G9D0+8ku7DRdPtbmUuZJobVEdy+NxLA
ZOcDPriqVp448P32tDSra9ka6M8tsM2sqxmaLdvjEhUIXAUnbuzjnpzWWnxF0y78UWdpYXUZ
01rK7urm7ngkiULEYwHjdwFeP5ny67lOBg0tP67W/wCAHU6Gz8NaFp+m3Gn2Gi6da2V1nz7a
G0RI5cjB3KBhsjjmpp9G0y5E4udNtJhcQi3mEkCt5sQziNsjlRk8Hjk1mWPjjQNQZVgupo5G
kijEdzZzQOTLkRnbIinaxBAbG0njOae/jXw9HZvdNqcfkxyzwswRjh4QTIMYzwFPPQ8YzkZb
8/6/q/4h/X9fd+Bft9F0u00c6TaabZwacyMhs4oFWEq2dw2AbcHJyMc5NRWXhvQ9M0640/Td
F0+0srnPn20FqkccuRg7lAw2Rxz2qlq3iXyvAmra/pcMwezs554kv7OWAlo0JG6OQI+Mj2yO
hrLg8VanoV9HH4yuNPlsrjTZb+O9sraSHyvKCtIjRl5CflYMGB5wRt6ZOrv/AF/Vg7W/r+rn
VPplhK0pksrZzNALeUtEp8yIZxGeOV+ZvlPHJ9ar3/h7RdU0+Gw1PR7C8s7fHk21xapJHHgY
G1SCBgccdqzLXxppVxqkaDUMQ3McP2eGTT54pMyPIiuXYY2uUIX5R0ByQ61Pe+NdCsC6zXM8
jpM8BjtrOad9yAFyFjRiVXcoLAbQTgnPFH9fd/w/4gt9P6/q34GraadZaeriws7e1D7dwhiV
N21Qq5wOcKoA9AAO1Pt7W3tEdLWCKBXdpGWNAoZ2OWY46kkkk9yaz7DxPpOqaxcaZp9y9xc2
yK8xSCQxoGVXX95t2ZKupAzkjOOhxy2l+MNdl1+1F82my6ffaxeaZFbwW7pcReSZNshcyMHG
Ivmwq43D6UbuwtOW/wDW1/yOqtPC+gWEFzBY6HpttFdqUuY4bSNFmU5yHAHzA5PB9aW28M6D
Z2q21pomnQW6JJGsUVpGqBZMeYoAGMNgZHfAzVVPGmhGO/aa5mtf7PRZLhbyzmt2CsSqsqyI
pcFlIBUHJ4HNZ1748trXV9NL+ZbaXc2l3PM95ZTwTK0TQqoWN1VjkyEAbSWO0L7g+ptQ+F9A
t9QjvrfQ9NivIkVI7hLSNZEVV2qAwGQAOAOw4rE0HwINM8VTa5ePpRleGSJIdM0oWaMZGDSS
SZdzI52KM5HAPBzWwfFOlrq1rp0xu4Li8AMBnsJ443JQvt8xkCB9oJ2E7hgjGRVO08f+Gb25
aGHUsEQS3Iklt5Yo3hjxvlWRlCsgyPmUkHsTR1+//ghvp6f8A09J8P6NoKyroWkWOmrMQZRZ
2yQiQjoTtAz1PWr0sUc8LwzxrJFIpV0dcqwPBBB6is/RvEGn69HK+nNcZhIDpc2ktu4yMg7J
VVtp7NjBwcHg1pNuKHYQGxwSMgH6UPzBeRW/sywH2X/Qbb/Q1KW37lf3CldpCcfKNvGB24qn
p/hXw9pJB0vQdMsiJBMPs1nHHhwCob5QPmAZhnrhj61jaR4svbu8mh1KO3sk0aF/7bnkRljS
UcqI2JwFKAyEndhWQHknFpviB4dSzS4lubuISTrbpFLp1wkzyMhdQsRjDncFbaQMMRgZPFHn
/Xl/wA8jb/s2x+xz2n2K3+zXBczQ+UuyUuSX3LjB3EnOeuTmnz2drc2wt7m2hmhUqwikjDKC
pBU4PHBAI9CBWJqPiuBvh7qfiTQJEuVtrO4mh86J1HmRBsq6HawwykEHB4PSsmw8az6VcalD
4yu7ForO2tLn7ZYWsqKouGZFjaPfI27co5B5DA4GKOtg8/66f5o6S/0Cwu74apHp+m/21DGU
tdQubNZXhODjnIbHJ4DDqeRmqFl4K0v/AIR5NM1+0stb/wBJlu5WurNGRp5HZ3ZUbdt5cgck
gcZPWnN450CO/is5bq4jlk8oMXsp1SFpADGkrlNsTtkYRyrcjjkVH/wmmlWVmZL+/N07XVxC
q2OnTu/7pyrjy1DsQnAZ/uk4PG4CgN/6/rzNI+G9Da/tL5tG083dlGIrW4NqnmQIM4VGxlQM
ngY61NaaNpmn2M1np+nWtpbTszSw28Kxo7N94kKACT3NUJ/GGjRXhtYpbm8mWETMLGynuVRS
pZdzRIwUlRkAkE5GAciquheNrXWfh+PFUltPaQLatczRSxupQKm5gpZV3jHRgMHtSezv8wWr
Vi9p3hfStOsIrX7LFdeUY2E1zEjSMY+IizBRkoAArHkADnPNLF4T8OwXVxcw6BpcdxcsHnlS
zjDysHDgscZY7gGye4B61U07xTAsNtaa7MkOsP5IltYoJBhpgzIq5zvACsC44HluTtAIDD8Q
vDK2dxdyahJHbW+wtPJaTIkiu4jV42KASpuIG5NyjIOcEGqd7+YlZrT+uxtHS9Pa5+0NY2xn
Mwn80wru8wJsD5xncE+XPXHHSq974a0LUrP7JqOi6dd23nNP5M9ojp5rEln2kY3Ek5PU5NZx
8f8AhxdPW7e7uERrz7CInsZ1m+0bN4j8kp5gYryBt5yMZyKc/jrw+ul2t+t1PNDdmQRJBZTy
zHyztkzEqF1CnhiyjaSAcZFIfX+v67kt/wCDtEvlwtjBaMyxRzPawRo88MZBEDttz5XygFRj
gY6VrzWtvcvC9xBFK0D+ZEzoGMb4I3LnocEjI7E1xc3xGW4XxA+l2sjR6BIkk0kttNsurfy0
eQo5VVVsMSvLbgob7rAjR8b+JNS8PWuky6LZxX0l5fiGSFgSzxCKSRhHg/fIjwM5GT0o2V3/
AFcPT+rG5No+mXEl1JcadaSveRCG5Z4FYzxjOEckfMvJ4PHJqrb+E/DlnHbR2mgaXAlpMZ7d
YrKNRDIcZdAB8rcDkc8CslPHNn/bV00lxAdFj0q2v4blEZnkM0kiBQBktnYoChdxJxySBSJ8
RNMn8UaXo9pbX8v9oRzMZWsLiMwPGyLsdGjyud+SW27RtJ4dSRb2/rQH5/1p/kdHqmm2+saV
c6feqxguYzG+04IB7g9iOoPrVePw7pKzS3M+n2tze3FuLa6vJbaPzrmPABWRgo3A4GR09qTx
Hqz6JoFxewxLNONscETHAeV2CRqT6FmUVz7+LdW0nVtfg163sWt9J0dNRQ2ZfdNzKGJ3fdz5
XCjdtz95qWn9eg7N7f1qjbsvB/hzTGRtL0OwsNkqzYs7dYQzqGVSwQANgM2M5wTnrV2XSNNn
1aHVJtPtZNQgQpDdvApljU5yFfGQOTwD3Nc5onijUYJtStfF7WUctlp8OptNaRNEiROH3IwZ
2OUMTfNkZBHAxUV7rviiwsNH1G5XS1W8nt4ZdNEMnnuZX5CSb8AohyQVbOxjlQeKej1/q+n/
AACbpq/9d/1ub58L6F5l1JHpNnDLeyJLdSQwiN7hlbeDIy4L/Nzg5zznqaTVfCvh7XrhJ9c0
LTNSmjXYkl5ZxzMq5zgFgSBk9K5/wt4v1XVNT04arFaJZ63Yy32nrDEyyQIjoNkhLEOWSVGy
AoBBGDwaZqfibxCvg+fxLpkmkpaRmSa3gnhkdruIMFiRWDqFaTGQ2G/1ijbxkq239eRXU6ce
HdFF1PdDR7AXFxB9mml+ypvliwB5bHGSuABtPHFU08C+EY7OS0Twtoq20rq8kI06II7LnaSu
3BIycHtk+tYNv4y1ubWIZfstl/Zl7qNxpdrbuHSZZokch3lBYbGeGRcBMgYOTyKuaV4uvpPB
15qWqwWv9oQ6hPYRQWxbZJKs5ijUFuTk4y3Hc4HQJvS/9f1qL+vz/wAn9x07adYtpn9mtZ25
sfK8n7KYl8ry8Y2bMY244xjGKgs9A0fT7WC2sNJsbWC2lM0EUNsiLFIQQXUAYVsMRkc8n1rn
oPFuoyfCGDxS1vbtfPp6XMiojmKMkDc+0EsVUZYqDkhcA5NJofjOS58D6vr95La6jb6a1wYr
ywjaOK9jiXJZFZmI+YMn3mB25BwRTlo5X6AldJd9Dobbw9otlYvZWej2FvavKJ2gitUWNpAQ
Q5UDBYFVOeuQPSlj0DRoTfGLSbFDqWftu22Qfas5z5nHz9T1z1NY3hjXNYuNVutJ8SLZm8is
7e+R7OJ40CS7wYyGZiWVo2+bIyCOBiqXhbxdquq6ppw1WK1Wz1yylvtPWCJlkgRHQBJCWIcs
kqNkBQCCMHg07a2/r+tPwFfS6/r+rnRW3hvR9Pnu7nSdMs9NvLtSJru0tY0lcnnJbb8xzz82
RmrGk6XBo2k2+n2m8xQLjfIcu5zlnY92YkknuSa5KLxdrM2uxfLZR6Ve6nc6TagwOZo5okfE
rtvAZC8Mg2BVIG07utdJ4b1aTWtCiu7iNYrhXkguEQ/KssbtG+M843KcZ5xiktVf+v6/zG9H
b+v60f3GrRRRQAUUUUAFFFFABRRRQA0f6w/Qf1qA6dZGS6kNnbl7xQlyxiXM6gEAOcfMACRg
9jU4/wBYfoP61zPiTxHqOhaitvFaR3I1GMQ6Ztjbm7yfkkIPClfnzxgRvk9KH2BdzTk8L6BL
fWt7LoemvdWaKltO1pGZIFX7oRsZUDsB0q1Bpen232b7NY20P2SMxW/lwqvkocZVMD5Qdq8D
jgelZ58U6Zb6tHo93dM9/wDJHK0VpL5KSMuQrSAFI2I5CM27leuRmPQvG+geJLpLfR7ySZ5I
DcRF7WWJZYwQCyM6gPgsAdpOCcHBp77C9TZitbeCaaaCCKOW4YPM6IA0jABQWI6nAAyewAqt
caFpN5p01hd6XZT2U8hlltpbdGjkctuLMpGCS3OT35rj9R8Ya7ZeI9SKNpraXYarZ6cbU27/
AGmbz0iO5ZPM25Blzt2chTyOtbjePPDypdN9ruHFrdGycR2M7l5wzKY4wEJkYbGJCbiAMnjm
p0av/XT/ADQ9v69f+CPtfDAt/EcN+ZLRLGxtHtNPsLazESwI5QvuO4hv9WoACqAMjB61ND4O
8M22n3Nhb+HNJis7sqbi3jsYljmKnK71C4bB5GelV4/GGk3E1pcQ6vbx2cttczOk1vIjgQlR
IWZiBFszhldd2T2waVPHOgtp0l4bi5jRJUi8mWwnjnd3GUCQsgkfIzjapzhsdDh9P67/AOYG
hB4e0a1uLSe10iwhmsojDayR2yK0EZ6ohAyq8ngYFaNcxp3ji01LxnJoENlfoVsortZ5rG4i
B3l/lYPGAmAg5YjJJXqpFdPT13DyCiiikAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA0f6w/Q
f1rMuPC3h+71hdWutC02fUkZWW9ks42mUr90hyN2RgY54rTH+sP0H9a5vxPq2taNeWNzZvp8
llNdwWrWckLm4nMj4Zkk3hV2qS2CrZCNyOw3ZoOjNm80fT79ne6tIneQRq74wzqj71UsOSob
J2njk8cmlvdI03Uri1n1HT7W7ms38y2kngV2gbj5kJGVPA5HpXK+FvF+q6pqenDVYrRLPW7G
W+09YYmWSBEdBskJYhyySo2QFAIIweDTV8W65JfaDPHbad/ZGs6i8EUu9zMYfLlaNgv3fmEQ
fdno4G3jcTsv6ve35g+r/rY3ZPBvhqW8uL06DpyXtyrrLeRWyRztvBDnzVAcEgnkHPNWNS8N
aFrUEEOsaLp+oRWwxCl3apKsXAHyhgcdB09K5y08X6rL4jtzPFajRbzVbjSYEWJhOskSufMZ
920qWhkXaFGPlO48irlzrGs3tvq1zpF3pNjZWM7RJdX0DzKREp81iFkTgPlc5+Xy2JznATaU
b9N/6+8dnzW6/wBf5fga8HhvQ7a5tLm20bT4Z7KLybWWO1RWgj5+RCBlV5PAwOTVWLwP4ThW
4WHwvo0Yul2ThNPiHnLkNhvl+YZAOD3ArlLTx/rt1DDqctha2mn28lhbX9tJG7TGW5WMko+4
BQnnR8FST83K1uaT4qvB/wAJO/iaKztI9EnA/wBEd5AIzAkvLMAWb5+yr6Y7mmrN36X/AE/z
EtbW8jo7DTrLSrGOy0uzt7K1iz5cFvEsaJk5OFUADkk1ZrnfBGu6h4h8PyXesW8Ntdx3tzbv
DDnCCOVkAyScnC8noT0xXRUMQ0f6w/Qf1p1NH+sP0H9adQxhRRRSAKKKKACkPQ0tIehoAzof
9WKefun6UyH/AFYp5+6fpQAtFFFdJgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAVeqjV6s6hpAxbzwnpN9LLJPA2+UEMVkZevcYPB9xXMx+CvElhq9tPZa
+txbwyLxcRDzPLH8G4dse1GpfFrT7K+NnDp9w1yrsjwXB8mQY7hcHIPt+VaVp8RNNlaCO+gl
spZiAqyMp3ZHBUZ3Ef8AAa57xk9HsVGondJl3W/CketeJtF1drpof7MdzJCIwwuVOGUEn7u1
0RgR6VlQ/DmODStVsk1Jj/aGqxX6O0A/cRxzJKsAAIyoKsAf9vOPXpLvxDpdhHqcl3dCJdKh
E94SjfuoypYN0+YYU9M8gjrxSSeIdNSaCFZpJpLiFbiJYIJJS0bMqh/kU4GXHJ6DJ6AkWtNF
/XX9P61G+7/r+r/l5GNH4HCR2aNf7lttauNVP7nG/wA7zv3f3uMed97vt6DPGWnwzuri2gsd
Y18XWn2ulXOlW8cNkIZFhlCAMz72DOojAyFAP90c59AqpLqdpBqttpssu27uo5JYY9pO5Yyo
c5xgY3r1Pelbp/W1vyHd3v8A1vf8zl5vA+o6jZ3r6xrkMuqS28MFpd2tj5KWxifzEfyzI25t
+CfmAIAAA5y21+HNvYXFzJaz28scmn/ZI7a9tPOiDlESSR13DfuWKMFcjo3PzcdrRT/r+vvE
tP6/rsctb+D7hPh/qXhy71UzSX0M8QuBG+yASKVCojyMwRQRhS59iBgCtP4HvtV0y8i17WYb
i6l0ybTLV7WyMMVukqgM/lmRy7nauTvAwoAAySep1C/ttK0y51C/k8q1tYmmmk2ltqKCWOBk
ngdBWfo3ivSNeupLWwnmW5jjExt7u0ltZTGTgOElVWZc8bgCM8Zo3b/rv/wQ2s/66f8AAM3U
fBC6hcX0xvzG9zplvZRMIcmCSGR5EmB3ckM6kDj7vXnjO1b4Ywaja6L++066u9MjlSRtW0wX
sFy0pDSSGIupVy43AhuMsOQa7ZbqNr17ULL5kaK5YwuEIJIGHxtJ4OQDkcZHIqajcFpsYfh7
w7/YV1qU3nQv9vkhk8qC38mOHy4I4tqruOF/d5A7A45xk1/D/gnTNAn1C8igtW1K/ubmaTUI
7VI59sshfYX5JC5A5ODtHArpKwbHxroWo60dKtrmf7V5ssC+ZZzRxySREiRElZAjsuDkKx6E
9qN38vwDZeRyumfCU2Nreq+q2oup4rYR3NrpohYzQSmVJ5syMZnLYLkkbsds1qax4FvfEV7p
Go6xrEA1LSVma2ns7JokWV2jKPsaV8hfLwVJIYMfu12lVJdTtINVttNll23d1HJLDHtJ3LGV
DnOMDG9ep70dUHmce3w6nufGcHiDUdSsriWOdZ2Yabif/UeU0SSmQlIckuEA4JOSetc5pXhi
71/VI9Eurm/uNDsNDutNW5m0eXT2RZTGiLmX/WuFjJLqoXhePmr16ilbp/W1h3d79TmvB3hP
/hF7Ge3ePRP3oQFtK0gWPmYBGZAJGDnntgDnjmtSw0TT9EsJrbw7p9jpayEuFtrVUj8wjG5l
Tbu6DuCQOtaNIzBELHOFGTgEn8h1pt31YkraI4o/Da3NnPb/ANoSD+0rCaz1eQR/PfNJkiXJ
PyOrO5H3htbbjAGI9G+HR0z+zi0miwGxvkuydK0UWX2jbDJHiTErAn95nIAxgjHPHT2niHTL
5rBbS5806jC09sFjbLRrjcx4+TG4D5scnHXitOns/wCuj/zDdf11VvyOZ/4Q/wD4o3XNB+3f
8hZ71vP8n/VfaGdsbd3zbd/qM47UXHgbTF8KromjW9ppMX2m3uXNpaKiyPFLG5JVcct5YGe3
vjFbuoX9tpWmXOoX8nlWtrE000m0ttRQSxwMk8DoKpaJ4m0vxCZ10yWYyW+3zYrm1lt5FDDK
tslVW2kA4OMHB54pLy8vw2B935/juYWr+EplvNUuv7UKaNfXEV9f2Udg09w7xKgxE6tkBhEm
V8tm+9tIyMYNt8PD4i0201S5hs4rhb7ULiO11zSRdRtDcTl13wsyMj4CEHIIywI549RqG2uo
7uNniWVQrshEsLxnKnBwGAJHHB6EcgkUrA/6/H/gnPaX4Xv9F1iWfTdRsYrC88t7yy/s8/6x
IliJhYSjylKonykPjHB5pNO8ITWvw5m8J3t/HdRGzksop4rcxERFNo3Au2WGeSMA+grqKht7
u2u7OO7tLiKe2kTek0ThkZfUMOCPem9Uxx0aaOSt/C2p6pqmmeINWuVs9RtIFtxa+SHRIyCJ
1yr/ADeYdrK3BUIny/fDZel/CaPStJbTbefR44VeAx3Vvoqw3jrFOkoWaVZMSEiMAnauT83s
e+07ULbVdPhvrBzJbTDdG5Rl3rnqAQDg9QehGCOCKs09ncmytY5WXwV5niVtW/tDG7Vo9S8r
yf7tobfZnd3zuzj2x3rH1H4Vw3r28/2jTbqeC8vZwmq6ULu3ZLmXzCpjLqQykLhww78c8ehU
VNv6+5foP+vz/wA2cHf+D9UtdP1y10yW2mh16OK2khgtRALM+UkDyqTJjywiEiMKWzgbjXS6
toK6lcaLIk/kLpV6LoJs3eYBFJHt6jH+sznnp05qxda5ptmWE95GPLnjtpNmX8qR8bFfGdmd
y8tgfMPUUzWNf0vQFtG1i7W1W8uVtIGZWIaVgSFJA46Hk4HvVdvl/wAAOlvL8OpyGpfCi2v7
jXiNSK22qJAYLWW2WWO1eOZpzwTh42kYkoccMwBAIxe0vwNcaVqGk3lpPotk1g06yQado5to
Zo5fL3YQTHbJ+6Hz5Yc/d4rqE1O0fWJdLWXN5DAlw8W08RuzKpzjHJRuM54qV7q3juorWSeJ
biZWeOIuA7quNxA6kDcMntketJabA9XqZnivTLjVvDc9vY7TdxvFcW6ucK0sUiyICfQsgH41
jN4S1PVde1DUtWv7UWGracLCfThYFZo4f3hC+aJ2XeDKQSFIOOAOtdXeXlvp9lNeXsqw28CG
SWRuiqBkmsyy8X6DqNzeW9pqUTSWMCz3YcMgt0OfvlgApG1sqeVxyBS0/r+uw9f6+X6mJD4H
vzltU1SHUJrg21vdSpAbcG0gLOsYQM2Wd2+c5AIY4Axg3b/w3rVz4zj1qDV9P+zwxiKC1u9N
eVrcH/WMjrOoDOONxU4AA6ZzsaNrmneIdO+36NdLdWvmPEJVUgFkYq2MgZGQeeh6jIqnp/jL
w/quqRabp2px3F5NE8yQorZ2KQCx44B3AjONwIIyOardk6W/r+v6sYEXw/vbS1MMOrJIlvaS
adpoEJha0tpZFMhLBm3yBFUKQEHy89Sa0dc8Lanfalpc2kalp9pZaYn7mxvNOe4jEo4WT5Zo
+VXhQc4yT1wRp2PifStR1mXSraeX7ZGjPsltpYhIqsFZo2dQsigkAlCQMj1FV7/xvoOmrI93
dzCOGV4pZY7OaSOIpgMXdUIRQTguSFBDDOVOEun9f1q/vG+v9f1sZ0Pgi7h1ZbkarA1rb3U2
oWlsbI/u7uVGVnZvM+ePLyMEwDlvvnAqPS/AEg0uax8S6imoIdQl1G3k09J9PkhmkZ2f50nL
EfvCAMjjrnrWz/wmOgjWJ9NfUFjngDmR5InWEbFDuomI8ssqkMVDZAySODU+neI9J1bRZdX0
+9SbT4jIHuMFVHlkhzyBkAg89D1GRSdreVvw/rqG/wDX9d395i23gNLT4a2vhSHUpS1qsRS7
lUyZkjdZFJR2PyblGU3AbcgEUkfgq8ksdQg1DWInbV7ppdUFrYiKO4iaDyfLVWdynARi+5iS
vocDaTxLpL+F08RLdj+yngFws5jYbkI4wuN2TkALjJJxjNP0vX9O1ewmvLOdhFA7JOLiF4Hh
ZRkh0kCsnBB5A4IPQ05bu/z/AK+QLpYxdN8JarZC4uptfSTVZo7W2F3HYhFW3hcts8su3zOG
kDNkfeBCjFQab4FvNMB8jW1DWVjNY6M62YzZJIwO5wWIlZdkYHCjC8gk5re0LxLpXiSKWTSL
iSUQ7d6y28kLYYZVgsiqSrDkMBg4OCcGmaV4p0fWtQuLLTbppZ7cEsGgkRXAYozRsyhZFDDB
ZCQDjJ5FPW/n/X9f8OCskY9v4MnsdWS8kv8A7ZY2l3NqVtYR2wSQ3UiMHJkL7SpLyELtXBfl
sCtbwnptzpnh6NNQQJeXE013cIGDeW8sjSFMjg7d23I4OKP+Eu0U61PpK3MjXkAfcq20pVmV
QzIrhdruFIJRSWx2rTsr231GxgvLKVZredBJHIvRlIyDS6f1/X/DB/X9ff8AiT0UUUAFFFFA
BRRRQAUUUUANH+sP0H9a5rX/AAaviK+uLm+vSGSBU00xx4NjKGDmYfNhn3Kh6DAXH8Rz0o/1
h+g/rVC617TbGa8iu7kQtY2wu596MAsR3fMDjDfdPTJHHqKGCucwnw7EfjJ/ELPotzPcSQzX
D3ejCWdJURULQTeYDECFBAIfacnPNXtE8F/2M3hw/b/O/sPTpbH/AFO3z9/l/P8AeO3HldOe
vXiunilWaFJU3BXUMNylTg88g8g+x5p9PbT+u36i31OdsPBmmWvi7U/Edxa2l1qF5MkkNw9q
vm2qrCsRVZDk4O0njH3iKpP4HnisYfsGqpDf2ur3GqW08tr5kamZpN0bxhwWG2VhkMpyAfat
GbxroVvr7aNNczpdpOluxNnN5KyuoZEM2zywxDDA3ZOQOtb1JbJr+tv+AN9n/W6/zPM38HjV
debR7p7yaP8As/UU1O/+xtBG8120RAhLAqQArYCl9u0BiSeb1h8OJ9OsLf7Fc6FYajZXMdzb
XOnaELZHYI8befGJT5m5JGHBTBOR6V3D3UaXkdsVlMkiM6kQuUAGM5cDap5GASCecZwamoWi
X9dbh/X37/ec9aaBqUPitNcuNStZXlsEs7yJLJkEhRnZXjJlOzmQ5B35x1FdDUIurdrxrRZ4
jcogkaEON6oSQGK9QCVIB9j6VNQHUKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGj/WH6
D+tczf8AhvWrnxnHrUGr6f8AZ4YxFBa3emvK1uD/AKxkdZ1AZ+m4qcAAdM56Yf6w/Qf1rO/4
SLSf+EjGgrfRtqhiaY2yZZkQbclscL99SAcEg5GaOodDl4vh/e2lqYYdWSRLe0k07TQITC1p
bSyKZCWDNvkCKoUgIPl56k1p+IPDGp6jdaKdF1Ow0610iZZ4oJtPecswjeMDcJkwu1zxjOQD
ntWhp/ijStS1eTS7eS4S8jRpBFc2c0HmIrBS0ZkRRIoJHKkjkeoqM+M/D41iHSv7TiN9PcNb
RwBWLM6glu3QbWG77uVK5yMULpb+tfx1/EH1v/Wn+Rkt4KvINTe6tNRhktre6n1GwsZICmy7
lRlJeUE7ky7sAEyC3U4Ap+q+DL268PaTpGm6pbQ21kwe6jvrJrlL5hyPMAlQ435cjJDHGeMg
7ll4i0nUtZvNKsL6K4vbFVa5jjywiyWABbpnKkFc5GOQKh1HxXpGlyXEdzLcSSWzKssdrZzX
DIWUsOI0Y/dGT6ArnGRlaJfd+A9W/P8AzMebwReXmpme+1e3a2up7a71G3hsSnnzwY2MjGRt
iHZHuU7ydnDDJpLTwPdz3Wt/8JLqdrqFnrE0dxJBZ2s1m8ckYjVCsqzsQAIlPGDnnOOK1F8b
eH5L+zs4tQEsl6kckLxwyNERICY90oXYhYA7QxBbsDVvR/EWk+IPtf8AYt9FerZy+TM8WSgf
aGwG6Nww5BI7U9v69P8AgegrlPwj4Vh8JaddWkF3cXQuL2a63TzSSFfMcsFy7seAcE5+Y5Y8
k1v1Q0bW9O8QWBvdHuRc23mvF5iqQCyMVYDIGeQeeh7VfoDqxo/1h+g/rTqaP9YfoP606mwC
iiikAUUUUAFIehpaQ9DQBnQ/6sU8/dP0pkP+rFPP3T9KAFooorpMAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACr1UavVnUNIHC6/4S1TVLqaTNrOqnfCZc
Aqw5GDtJU57iuU8NS2vhjxCkdzoeoRyXMixSC5hVwj85dXUYAz7mvW7rUrGxYLe3tvblhkCW
VUz+Z96kjltrqJJYnimjb7jqQwP0NYu/c0TRxXi7Sb658ZabHaWc01jq6x2+oSopKxLBKJl3
nsGUyJn1YCsGw0zxBa6Hqbra6hBdWN7YaRaGNXDzWkFypMq45KMkjZPopzxXrNFOOn5/j/w/
3ierv/X9bfceZ2Gn6/b6tZan5+tyTzeIb2CaGeeZoFsz5/l5iJ2hMiMq+M8gA4wKwrS28Qy3
Vtd6XB4ibXotCv1uZdTjl8pL9vKwIjJ+7ALKcBP3ZAGOhr2milbS39bW/wCD6jv71/63v/wP
Q8st/wC1ILW71Dw4PE8thYx2ly1tqZuTPcTJITPHGs/ztmLggfIW27eQcLBbeLpI7yx1XUNU
s40tJ7830EMsxSSeNQsKKnzSeW5nIReQBHjHFepUU31/rf8Apfd6iWn9dv6f3nnype6h8F9e
gXTdQS4ksryGGK4lup5rg7GCsouB5w3HojDI6DIwTS1ltQ16xk1HQLLVbV9L8P3sCTPaTWs0
lxIibI40dVkYgx7twGM7cEnOPTqKHrf+ujX6/wBLQa0a8v8Agf5Hm1zp+vadfzyadLrU8Wna
XZ3kcctxNL9qmWaZp4vmJ3O6Hbt7ZTAwFFZ3iO38Tz22k3Mt5q9jZ6i9zdXYt7a8uXtHbZ9n
iMdtJHKoWMMDjKb87gSQR61RQ9f67/0reglp/Xlb/P7zjfB9nqLeIdavtVu9TuADbxWrXHmw
wuhtoS7rAx2qTJuzxlTuHB3ZzfDPhjVpryW91WYJZWGuahe2enizaKWSRpJVR2lZyGQrIxAC
LncDkgc+iUUPe67W/L/IFtb+tmv1PGdJm8XSWOuTQrrcUU9vaTPbtBeCS3zM32mOBrl3Z5Fi
OA0e1SQpVc4q94gtL2W/8P3PhK3159Pht71b2W5W7+2LCzwb1ja4/eCQhW25xkBtnODXrFFG
1v6/pB1v/X/Dnlj3Gtz/ABI059Li1m2sopkhMc8N88c9ubUkSyPI/kr85VSpTzdy5Zhkismz
u/EIu7e20qfxEuvyaDfyXUOptKImvl8oK0ayfuyAzEKU/dgEY6mvaax9L8LaVpGpS6hax3Mt
5LH5RuLy9munVM52KZXbYueSFwDgegpW6ev5P/O78x3s7+n9fp6HP/DWO9j028+16lqN2XMb
LHqOnXtu0DFTuAN1JIz5wMhG2gjjGeensBqdnYTPr13bXsqEuGsbGSEBAOmwySMzdeh54GPX
RoqpO7uSlZWPLbSz8RaauuXunaXJBe+ILCe40wJGzHT5RuZYX3fLGX3iTnA8wyA/w1T0jT9a
u7TS7X+1/EU1vPqsRvFNnqFjJBF9nm3gyTyu5UsEBKOFU4K4JBr16ikrL8PwdxvX8fxVjgDZ
6tJ8H/E2m3Md/c3SR6nbWi3AeSeaMNKIeW+ZyV2gHkkY61W1Tw1rsHh251GTUZ7jWbz+zrQN
pVu9qYLZLhSwCh3bOJJCzFsY7AA59Ioo639Pw/zB/wCf42/Kx5hqFrq1v4muraB/EX22K7tE
0Zo5bmSz+yhY/MMz5MTHPnbjKTIfl25O2snVJPEmoW8G3UtUh0z+1dVjmuLW2vLp0dbgrCCt
tKkuwKHAwSgIAI+7j2C5t0u7WW3lMipKhRjFK0bgH0dSGU+4IIqHTNMtNG06Kx06LyreLO1S
5YkkkklmJLEkkkkkkkkml/X9fdf11H6f1v8A5nD2MU934kmt/FE/iGaSWKFdNntEvLa2eIwA
O0ghwschk8wkSkMvyYxxUXhnTbm1+AtxptlBqMGpR6XNC0V6Jg63HlEYTzeducY2fJ6V6RRT
eqa7/wBf8OEfdafY848+8n8TaXLof9qf8I5LBbNN5Ql8vzTGxg8vHSLG3zdvy58vPHm1zWmW
/i2Tw7dLd6tr41eZ7Vbu3TT72IxP9rjErxzSSPCQFL8QhUKnJXAwPZra1t7K3EFnBFbwqSRH
EgVQSSScDjkkn6mpqd/ev/X9f8DsSlZW9Pw/r8zzGbSNaXVv7GhufEA0lfEUYEwu7hpDatYl
nXzyS5j83jO7gnAIIGMrVLfxUNO02ylvdattNgvNRhe5W2vbqchZsWxf7PIkzL5e7D5ZT8u4
HINex0VP9fgl+n3lf1+f+f4Hjz6YNO0zx8b3+1prrULNGgnuEuUiume2iQFVfKLIZuAn314U
DaAK7Lxro7ayfDVpc2j3lv8A2li8CISojNrOrFsfdGWAz6kV1NxZ2155X2u3in8mRZY/NQNs
dejDPQjsetTU3rb5fgLZW9fxPHNRtPGVtd+Io7eC/NzZ6dZWcepRxM7XkC3MjO6bSpaUQvhl
VlbcDtIJU1Y0XR5U8W+GdRvrvXtSii+1wLObTUrYQszQtGjpK7vsJ8zLyEqcAE4RQPW6KI6O
/wDX9fr9wPX+vKxzfj7jwdO7f6iK4tpbn08hZ42lz7bA2fasu31aNPivqk7WWq/Z/wCyoYBO
NKuTGzxSTu4V/L2t8rLggkNkBcniu2kjSWNo5UV0cFWVhkMD1BFNhhitreOC3jSKGJQkccah
VRQMAADoAO1C0/rysHS39b3PN9D1OdvCOqafZ2+oWWoalrN1FbG7sZrZgtxPIwlXzUG7bFuk
wM424OK0r6eCw+Jfhy0tbDUvsthYXFoZYtNuHhjMnkeWvmqhTGEOTnAxyRXdUULS39dLf5/e
D1bfr+LuecR+J/tWsahr13p+pQ3dpBJaaTZXWlXMC/M6jLTPGELyuIwFB4UDqS2JPEBOlaJp
3hCaHU5bW6gJ1TUbXS7i6DoT+9QeUjYklYtycbQWPXaK9Doo6Jf1/V2HW55fY2lxBq1jZDTL
6Iabrt5q81yLKXyzbPHMU2Nj52PnInlr8w2nK8UaRFq2seFL6y0jT5Ec69cXdxb6vBcWC3Fs
9xJKoVmhbO75MjaflJBwTXqFFJq6t/XT/JB/X5/5v8DzSysNXX9n+xsLzSpUvUtII5LeEO08
SB13SKuFYSomXCjkMoA3d47K3v38EeItKgttXvTrVzc29nf3tm0NxIZLYnzbhWCFEDgxhtqj
AQBccn0+inL3m33/AOB/kNO1vI8/0O8mGs33iBNF1SG0On2GmrbmyeOYyiR958t8EoglXL8j
AYgnFZ3hmK9019Hkl0fUgfC+iXVteqto4a5lLR7Uh3YE27yWYFSR8y5IJxXqNFO+t/66/wCb
JSSVvT8Lf5HmemWN7J4g07T/AOzryGWy8QXerT3Mts6xGCVJimJD8rMfPRCoORtbIwM11HgP
nwu0if6ia/vJbf3ia5kZCPUEEEH0I+tdDLFHPC8M8ayRSKVdHXKsDwQQeopIYYra3jgt40ih
iUJHHGoVUUDAAA6ADtS6W/r+tEN6u/8AXX/N/gSUUUUAFFFFABRRRQAUUUUANH+sP0H9a4Px
xZX+r6zBLpumPcJoSrdz70dft4LBvsqdA/Cbz1G9Ygf4q7wf6w/Qf1p1D3TDpY8wdteuvie1
1c6hqtlZGaB7CFdLvZIpYGjXcrskghjbeXDedHuXg5xjE3gfT9d0+88MT38+tztfaPMdUGoT
zSLHOphMeVc4jbBcYABYA5ycmvSaKI6bf1o1/wAH1Dfc89TwtqmseMvES3dyLTRJNVtLpojZ
t5l0YoIWXZMX2hN6AHCE/KRkds+Wy1iHTnu7+XxE1tP4iuRqC201y0yWSvN5Pkoh3qm4xEmI
bivcqOPUqKS0SXb/AIH+QPVf15/5nk7T+Koo7S20q41L7TLpmsSadFeu3msqvCLYyh+rgNx5
nzDd83Oah01NZi8Px+dqPiK80576FtSiTTdRt7uGIxuCI2mkkmcGTyt3ktwA2AMnPp0OiWEG
uTauscrX00flGSWeSQInGVRWYrGCQCQoGSATmtCmtv673/4cP+D+P+XQ890TS7W3+KS6jbxa
99mutGgW1lunvmQsrS7ll8w4UhSpCy4OSSPmJNehUUU+lv63Drf+trBRRRSAKKKKACiiigAo
oooAKKKKACiiigAooooAaP8AWH6D+tcZrGoKnxX0ICz1J47e0uoJZ49NuHhR5TAUBlVCmDsb
JzhcckV2Y/1h+g/rTqfVP+trB0POJdWuIfFF3rdmmqahDBYzRJ/athJZ+RNJLGIoIN0ce8Ow
wSQ5G1PmGcF+uovh/wD4Q3Tzb6nfPYX4uru4tdNnuFOYZleRmjQgEyPnHX5s4xXolFJaW8v8
7g9b+d/xVjhF1u3tPijrF7c22pQ2cekRRG6l024SDdDJO7jzSgTAVgQc4OcAk1He6jqeg+E7
cLa3y6rr07zXNzb6fNeCw3jJLLEhJKJtjUEclRngE139FK2lv63u/vDrf+trI8kTRvIWfQ9F
0vUFg1C/0u6sJ5LKVFit4BCH8xmUeW6+Q52ttYlxgHNaFtJqOsXXje10K2vLW61K4ie2m1Gy
ubON4hBDFIVlaI7W4cDgnIBwRzXpdFP+vy/yX4gtNjjvhnZ6lYeHr631XTItNI1W8aGGKRmX
YZmII3Iny8/Kccrg8ZwOxoop3Faw0f6w/Qf1p1NH+sP0H9adQxhRRRSAKKKKACkPQ0tIehoA
zoRmMYqQghTkdqy9Y8O6b4l0RtO1m2S4t3wwDAZjYdGU9iMn8yDkEin6J4f0/wAO6YLTS7WK
BNo3mNAu8gdTQBo0UUV0mAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
UUAFFFFABTPtlz6R/kf8afWZq1lLqWj3VlbX0+nyzxFFurfG+InuM/0wfQg4IzqGkDIXwd4f
nVylksqtK7HF5MwD5Ktj5+CCCDjpyKks/DtolxP/AGfBa2nkShdxWV3Y7FbO4SA9GxVzw9pY
0Tw7ZaaqogtY/LwhyOp6VG96bW5vgGwWuAcf9so6xUUnohqKWyLslpqEq3StqEQF0u2Takyl
Rtx8hE37s47rg55680y40++umjMuoopjAA8rz484YNztnGeVHJzkZB4JBo/2u/8Az0H5Cj+1
3/56D8hVWKNrfqv/AD+2X/gI3/xyoXh1J7qK4N/bh4lZVAhlCENjOUEu1jwMEgkc4xk5y/7X
f/noPyFH9rv/AM9B+QosBtb9V/5/bL/wEb/45Rv1X/n9sv8AwEb/AOOVi/2u/wDz0H5Cj+13
/wCeg/IUWA1biPUrq1lgkv7ZUlQoxigkjYAjHDLKCp9wQR2qppOkXeixyJZ6mZBIQWN5Jc3R
H0Ms7FfoMVV/td/+eg/IUf2u/wDz0H5CiwGosGorevdC/t/MkRUKmGUoACSMJ5u0Hk5IGTxk
8Cpt+q/8/tl/4CN/8crF/td/+eg/IUf2u/8Az0H5CiwG1v1X/n9sv/ARv/jlZlpodzZatNqM
OpyNPNu3JNPdyxDccnbE9wUX2wox0GKg/td/+eg/IUf2u/8Az0H5CiwG1v1X/n9sv/ARv/jl
QvDqT3UVwb+3DxKyqBDKEIbGcoJdrHgYJBI5xjJzl/2u/wDz0H5Cj+13/wCeg/IUWA2t+q/8
/tl/4CN/8co36r/z+2X/AICN/wDHKxf7Xf8A56D8hR/a7/8APQfkKLAbW/Vf+f2y/wDARv8A
45SMdUdCpvrPDDBxauD+Yl4rG/td/wDnoPyFH9rv/wA9B+QosBoR2d/F9l26hEfsqFI9yzNu
GMfPmb94eOrZOeetWt+q/wDP7Zf+Ajf/ABysX+13/wCeg/IUf2u//PQfkKANW4j1K6tZYJL+
2VJUKMYoJI2AIxwyygqfcEEdqq6VpV5o1u8NnqXmK7bibx7m6YHGOGlnYgewOKqf2u//AD0H
5Cj+13/56D8hRYDa36r/AM/tl/4CN/8AHKhtoNRtI2SK/t2DOzkywyyHLHJwWlJA54HQDgAC
sv8Atd/+eg/IUf2u/wDz0H5CiwG1v1X/AJ/bL/wEb/45Rv1X/n9sv/ARv/jlYv8Aa7/89B+Q
o/td/wDnoPyFFgNS2h1K0txDFf27KpJBlhlkbkk/eaUk9fXgcDgVNv1X/n9sv/ARv/jlYv8A
a7/89B+Qo/td/wDnoPyFFgNrfqv/AD+2X/gI3/xyjfqv/P7Zf+Ajf/HKxf7Xf/noPyFH9rv/
AM9B+QosBqTw6lceX5l/bjypBIvlwypkj12yjcP9k5B9KbdW2oXhgMuoQr5EolTyY5ossM8N
tmG5efutlT3FZv8Aa7/89B+Qo/td/wDnoPyFFgNQQ6kt41yL+38xkEZBhlKYBJGE83aDyckD
J4BPAqbfqv8Az+2X/gI3/wAcrF/td/8AnoPyFH9rv/z0H5CiwGxJ/akkbI19aAMCCVtnU8+h
EuR9RVe2sb+1mMsWoxs3lJDiVZ5F2rnBw0xG7nlvvHuTis/+13/56D8hR/a7/wDPQfkKLAXN
L0u80iOVLTUvMEr72+1vc3JB9jLOxUewwKdFYX0NxFMmooWiV1UP57KQ7bjlTMQxz0JBKjgY
HFUf7Xf/AJ6D8hR/a7/89B+QosBbstLvNPvbq6g1LfJdNukWd7mZFOSfkR5ysY56KAOnoKoa
rBB9qB1PxHDaywsLsoL24t8BiqAsq3KgoWUAKRtyTxknMn9rv/z0H5CsnU7c6lczTeZF+9gg
i+YjPyT+Yf0otYDetbaaXVrjVLTWIZ5ubeVVknkhRlIBXyfPMasCOSFDdfU1at7XULW2eCLU
IWR2ZiZY5pGyxJOGaYkDngA4HQYArFsbg2EMyiRMzXU05246O5I/nVj+13/56D8hRYDQWyv0
0v8As8ajH5PleVvKzmXbjGfNM2/d/tbt3fOaNOsb/S7FbS21GN41JIa5We4fk55eSZmP4nis
/wDtd/8AnoPyFH9rv/z0H5CiwF3TNNvdJgkitdSWRZJDITdm4uWBPo0s7EDjoDj2os9NvbG8
urmDUlaS6bdIJzcTIp5+4jzlYxz0QAdPQVS/td/+eg/IUf2u/wDz0H5CiwFltGum1Oe/Opt5
1xGYnUS3QiAwBlYvtGxG4+8oBzk5yTV6IanDCkaX1qVRQoL2zsSB6ky5J9zzWR/a7/8APQfk
KP7Xf/noPyFFgNrfqv8Az+2X/gI3/wAco36r/wA/tl/4CN/8crF/td/+eg/IUf2u/wDz0H5C
iwG1v1X/AJ/bL/wEb/45Rv1X/n9sv/ARv/jlYv8Aa7/89B+Qo/td/wDnoPyFFgNrfqv/AD+2
X/gI3/xyjfqv/P7Zf+Ajf/HKxf7Xf/noPyFH9rv/AM9B+QosBtb9V/5/bL/wEb/45Rv1X/n9
sv8AwEb/AOOVi/2u/wDz0H5Cj+13/wCeg/IUWA2d2q5z9tss/wDXo3/xyoHtdQeS4c6hCDcR
iNwI5gABnlQJsIfmPzLgnjngYzf7Xf8A56D8hR/a7/8APQfkKLAa8Q1OGFI0vrUqihQXtnYk
D1JlyT7nmn79V/5/bL/wEb/45WL/AGu//PQfkKP7Xf8A56D8hQBO2h3La4NVOpyfaAc7BPdi
D7uP9R9o8vp/s9eevNae/Vf+f2y/8BG/+OVi/wBrv/z0H5Cj+13/AOeg/IUWA1Hg1F7yO5N/
biSNGRQIZQhBxnKCXax4GCQSOcYyam36r/z+2X/gI3/xysX+13/56D8hR/a7/wDPQfkKLAbW
/Vf+f2y/8BG/+OUb9V/5/bL/AMBG/wDjlYv9rv8A89B+Qo/td/8AnoPyFFgNrfqv/P7Zf+Aj
f/HKN+q/8/tl/wCAjf8AxysX+13/AOeg/IUf2u//AD0H5CiwG1v1X/n9sv8AwEb/AOOUb9V/
5/bL/wABG/8AjlYv9rv/AM9B+Qo/td/+eg/IUWA2t+q/8/tl/wCAjf8Axyjfqv8Az+2X/gI3
/wAcrF/td/8AnoPyFH9rv/z0H5CiwG1v1X/n9sv/AAEb/wCOUb9V/wCf2y/8BG/+OVi/2u//
AD0H5Cj+13/56D8hRYDa36r/AM/tl/4CN/8AHKN+q/8AP7Zf+Ajf/HKxf7Xf/noPyFH9rv8A
89B+QosBtb9V/wCf2y/8BG/+OUb9V/5/bL/wEb/45WL/AGu//PQfkKP7Xf8A56D8hRYDa36r
/wA/tl/4CN/8co36r/z+2X/gI3/xysX+13/56D8hR/a7/wDPQfkKLAayX19FqCQTyW83mRs4
aOFkxtKjHLHP3qZcWIutVg1CSS5Wa3GESK9njiPX70SuEfr/ABKf0qhp9011rEZZt22CUD/v
qOtul1Ap2ViNPvbq6gkuXkum3SLPezzIpyT8iO5WMc9FAHT0FPa2LXCzF5tyzGcAXUoXcV24
K78FcfwEbc84zzVmigCmtiF1ptUElz9oZNhQ3s5hxjHEO/yweOoXNM1HTV1RZFuZbtBIVJ+y
6hcW5G3OMGORcfeOcdeM5wMX6KAKbWIfUra+Mlz5tsnloovZxGRgj54w+xzz1YE9OeBU8Akt
pp5I2YtcPvcSTO4BwB8oZiEHHRcDOTjJNS0UARWgksoTFCzMpdnJmmeVsscnl2JxzwOgHAAF
T/arj/pn+VNooAd9puM5xHn6Gj7Vcf8ATP8AKm0UAO+1XH/TP8qPtVx/0z/Km0UAO+1XH/TP
8qPtVx/0z/Km0UAD37xvGkkkKNK2yNWOC7bS2BzycKxwOwJ7VL5023JKfgv/ANeuc8U+H38Q
rpMaStEtnqK3TujbWULFIAQeudzL0roQMRAFixGAWOMn34oAQDAABOB70uPc/nRRQAUUYoxX
SYBRRijFABRRijFABRRijFABRRijFABRRijFABRRijFABRRijFABRRijFABRRijFABRRijFA
BRRijFABUHl3PrH+VT4qWpkVEp+Xc+sf5VTuNIFzMZZVG9upSR0z27EVsVyni7x9YeErmG1u
YXluJ4zJGNwRSAcY3HvWcpRguaWw5NRV2y//AGBF/db/AL/y/wDxVH9gRf3W/wC/8v8A8VXB
3fxX+12pMVwdNfqo+zGTd7Z6H8K5w+L/ABFP/pFzdXixx4Kzh/JLg85CNwRUe1ha6FzK17nr
/wDYEX91v+/8v/xVH9gRf3W/7/y//FV5jpnxP11JivnQ3cYHyQyxFpj9Qg6fTNdrpvjnUbu1
ZrnQJLd1/iaYbT74xkfjiqjJSV0hp32Nn+wIv7rf9/5f/iqP7Ai/ut/3/l/+Kql4f8VXWp6h
bWt9bwxtd2n2qIwknaucYOe/IrqarQeph/2BF/db/v8Ay/8AxVH9gRf3W/7/AMv/AMVWhqmq
2ejWLXmpSmG3VlVpBGzBdxABO0HAyeSeB1JApI9Wspdam0qKYvewQrPLGqMRGrEhctjaCcHC
k5IBOMU9AKH9gRf3W/7/AMv/AMVR/YEX91v+/wDL/wDFVuUhOBk0tEBif2BF/db/AL/y/wDx
VH9gRf3W/wC/8v8A8VSaF4y0PxJMItJuZndoRcIJ7OaDzYs43p5iLvXOOVyBkeordp/IDD/s
CL+63/f+X/4qj+wIv7rf9/5f/iq1nmkS7ihW2ldJFYtOpTZGRjAYFg2TnjAI4OccZmo0Aw/7
Ai/ut/3/AJf/AIqj+wIv7rf9/wCX/wCKrRl1K0g1S206WXbd3UcksMe0ncqFQxzjAxvXqe9S
3F1DaiMzttEkixqdpOWbgDjpRoBk/wBgRf3W/wC/8v8A8VR/YEX91v8Av/L/APFVrx3MUtzL
Aj5khC+YMH5c8jnp/n3qWjQDD/sCL+63/f8Al/8AiqP7Ai/ut/3/AJf/AIqtgzKs6xEPuZSw
IQleMdWxgHnoTz+FSUaAYf8AYEX91v8Av/L/APFUf2BF/db/AL/y/wDxVblFGgGH/YEX91v+
/wDL/wDFUf2BF/db/v8Ay/8AxVWrjX9NtdWj02e4ZbqTaABE5RS2doZwNqlsHAJBPan6brWn
awbj+y7tLoW0nlytHkqGwDgN0PBHIyKLeQeVyl/YEX91v+/8v/xVH9gRf3W/7/y//FVOfE2j
jUo9P+3Rm7lmaBIQCWZ1BJ7dBgjd0yCM5GKsvqtlHrEWlvOBezRNMkO0klFIBOcYHJHXr+FF
vIPmZ/8AYEX91v8Av/L/APFUf2BF/db/AL/y/wDxVWb3xDp1g8yTyTO8BUSJBbSzMpILDhFJ
6DJ9ARnGRmNfFOjPd21vHeb3ukR4nSN2jIcEplwNqlsHAJBPanbyFe3Ui/sCL+63/f8Al/8A
iqP7Ai/ut/3/AJf/AIqpo/E+jTWN/ewXyS22nZ+0yxqzKmFDHBA+bg/w59OtWbPVbW+sXu4/
Phgjzua6tpLcgAZJxIqnGO/Sla3QfzKH9gRf3W/7/wAv/wAVR/YEX91v+/8AL/8AFVb0rXdP
1pZDp8sjGMKzLLBJC21hlW2uoJU4OGHBweeKTT9f03VLya1srhpJYckgxOgcBipKMwAcBhgl
SQDTtrawr9blX+wIv7rf9/5f/iqP7Ai/ut/3/l/+Kq1Hr+my6y2lx3DG7UlSPKcIWADFQ+Np
YAglQcgdqW817T9Pv4bO7lkjlmZUVvIkMYZjhVaQLtUk8AEgnj1ot5D+ZU/sCL+63/f+X/4q
j+wIv7rf9/5f/iqtafr1hqt1NBYm4cws6PI1pKke5W2sBIyhWIII4J6GtKlbyAw/7Ai/ut/3
/l/+Ko/sCL+63/f+X/4qtyijQDD/ALAi/ut/3/l/+Ko/sCL+63/f+X/4qtyijQDD/sCL+63/
AH/l/wDiqP7Ai/ut/wB/5f8A4qtyijQDD/sCL+63/f8Al/8AiqP7Ai/ut/3/AJf/AIqtyijQ
DD/sCL+63/f+X/4qj+wIv7rf9/5f/iq3KKNAMP8AsCL+63/f+X/4qj+wIv7rf9/5f/iq3KKN
AMP+wIv7rf8Af+X/AOKo/sCL+63/AH/l/wDiq3KKNAMP+wIv7rf9/wCX/wCKo/sCL+63/f8A
l/8Aiq3KKNAMP+wIv7rf9/5f/iqP7Ai/ut/3/l/+Krcoo0Aw/wCwIv7rf9/5f/iqP7Ai/ut/
3/l/+Krcoo0Aw/7Ai/ut/wB/5f8A4qj+wIv7rf8Af+X/AOKrcoo0Aw/7Ai/ut/3/AJf/AIqj
+wIv7rf9/wCX/wCKrcoo0Aw/7Ai/ut/3/l/+Ko/sCL+63/f+X/4qtyijQDD/ALAi/ut/3/l/
+Ko/sCL+63/f+X/4qtyijQDD/sCL+63/AH/l/wDiqP7Ai/ut/wB/5f8A4qtyijQDD/sCL+63
/f8Al/8AiqP7Ai/ut/3/AJf/AIqtyijQDD/sCL+63/f+X/4qj+wIv7rf9/5f/iq3KKNAMP8A
sCL+63/f+X/4qj+wIv7rf9/5f/iq3KKNAMP+wIv7rf8Af+X/AOKo/sCL+63/AH/l/wDiq3KK
NAMP+wIv7rf9/wCX/wCKo/sCL+63/f8Al/8Aiq3KKNAMP+wIv7rf9/5f/iqP7Ai/ut/3/l/+
Krcoo0Aw/wCwIv7rf9/5f/iqP7Ai/ut/3/l/+Krcoo0AybXSvscplgUByu3czu/HpyT6CrWy
69Y/++auUUaAU9l16x/980bLr1j/AO+auUUaAU9l16x/980bLr1j/wC+auUUaAU9l16x/wDf
NGy69Y/++auUUaAU9l16x/8AfNGy69Y/++auUUaAU9l16x/980bLr1j/AO+auUUaAU9l16x/
980bLr1j/wC+auUUaAU9l16x/wDfNG269Y/++auUUaAVNt16x/8AfNGLrpmPH+7VuijQCpi6
/wCmf5H/ABoxdf8ATP8AI/41boo0AjooorQzCiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKkqOpKmRUQrlfE02h6leHSNYtraXaobzLvIRSewIB57846jmu
qrl/Eeh3VxdNd2MMVyrqBLC52kkcZU/TH5U4KDlaexRyr/B/QGiebT9WuraV+Ua1ceUP+AnJ
I/GuSvfh1q+j3sLP9l1XT1lXzHijKSqm4ZOwe3pk107JHbXXlw3E+lXRPEM52bj7H7rVk63r
fiKzMsT7pghCKqDazHGckjtWssvwrXtE9te23cx+rwnJWWvkbWmbdFsXjaOBgZGYSyRraoFP
RQoBYke4Gayb/V7iXUNuo6s8GnHgf2fGI3P4ucn/AICfwrnbq3165tDcz3UNkm4DcWC8Z5+c
+3bNXPDel3M0PlaVYyarcP8A6y6kUrHnGD8zckVPNSlH3f8AI6qlOVNdL9j1Pwd4e0W2ji1f
SLq5vA8IiiknlZiiD+EA9PpXW1geDNEuNA8OR2l46vOXaSTb0BY54rfrHToQZHii4MHh65jX
TJNVe5X7MlmsZZZWf5cOQMKnPzMeAM+wPAXeia3pPgjxB4cigury/ZYbr+0Uhkl+3wbkEsZO
7LOqI0Yj3BmTbjkkj1aiptv5jvt5Hk1r4YS8sdHtjbG70x/EHnS2cOh3GmwW0f2WRWHkSkkR
s2M/wMXIxyQey8C2U2neG7mxkt5LaK31C8S1hdCuyDz38sKD/Btxt7YxjiunoptXTXf/AIH+
Qu39d/8AM8k0/wAIay3wpNzqztNeW/hm4srHTYbF4ZIjJGNyuCzNJIdiAYC9/lyeNbV/Dml6
YPD8d34ee68Pqkr31rBZNc7rpkQRzTRKrPKcCQFiGIZgT6j0Wim9W3/XX/MP+D+Nv8jyRNP1
hY9JtNPjuLS8fR9a/s2KUlZLaNpIvsyMSTtKqYxgn5eB2qHR9EvI/BWrf2ZDPGJYLRbnTLTQ
rjTGdVfM+DK7ebK0W9CyHJwvJJFeowaJY2+sz6qkcj3s6bGklnkkCLx8qKzERgkAkIACQCc4
FaFJKy/ru3899Q/r+v0PM4dA8Np438Oato/hL7JYqtzDvGhvCY5yYTExQxhoxxJh2CgHcc/N
k97rVm19o88MX+uAEkJ9JFO5f1Aq/RT6WQHHXSapJoEV3GlzaPfXvn3arFI0scRBVAVjZX42
xg7SD9RmnRWt7KZTLqGpCOLTQIp1hnT94WkBPlE7mYLt4JLHg9cGuvop3/r5WFb+vnc45H1d
7WL+zoLyFxa3YTzZJXDyDZ5bHzfmGTuwG6c9RzTWjvXsbgaS+sJAwtlzcGXzRJ5o3lfM+bGz
r/D6d67Oii4raHG6hBqttDdWtrLfCzTUE/eETTyCExAnBVhIyiT+62Rz2BFbGgCRdwlnvrhh
BGPMuIXijbl8bVclg2OGyST8p71tUUX0sO2pw+r2V0+sajYx2dw8mo6hZXUNwsLGNI4/L37p
PuqV8pjgkE7hjOaksNa+y6h4nu0s74NLNHJai4spoVnPlRxhQzoBkv8ALjr36V2lFPm0s/62
/wAkK2t0cXqyDRx4ZszDfXT2l4Li5mt7GaYHMcoZyUQjJd84685xioHttX07x+mrala2zWQi
vJHvEnc+XCBFsVgYwFICZ27jklzkYwe7oo5uvr+Icv6fgcfc3t9pHh2Hbb3Q1DV5mlnnhs5L
kWe4ZyyxqSSq7UUY5IGeMmspdM8pZtK0uwvRFeXdhPaTPayIscMXlBt7MBsZfKY7WwTuGM5r
0WimpWd1/VthONzirO5sry88VR6lYambK9kUkNptyvmx+THG23CAk5BGBzgZ6c1PpUd//wAI
3rqwW13dWzGUaZbaoXMkieWBtbzDv2l92N5BwewxXXUVLelvKxSVmmcN4WaXS2vpxFrOoW7R
WsYmvbR0uA+ShQBguY0BDE4/iclmOai0KO6sm015NNvQdA0u4hugtuwM8hZMLFniTd5bMCpI
5GcE131FU53d/wCtrfqyVGyscLZWt0+sWdn9iuo5LbWLjUZZ3gZYzC6SFcP90sfNVdoORtOR
gZqxfa0NZ1Gws7rTtVtLAeVdSiTS53MsmdyRkorKoVgGYk9gP72Oyopc2wcu5yOiQqni120K
HU4NNaKZ71LxJ44jO0gZTGs2CDzITsG3kZ5xXXUUUm7lW1YUUUUhhRRRQAUUUUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
QBHRRRWhkFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVJUd
SVMiohWfrN/Jp2nvNBEZpB91AQCx9Oa0KiuLaK6haKdA6N1BqCzi73Ury7s/+JvpdncwOOYz
Mj4/MLj9a5HxLBpdmoj8PancRNJgtbGMTKhHZC3I69Bke1ehTeBtLncl5LkD+6JTipB4S0+w
026XSLaOO8eF1imflgxBwcn3oTktgPI7fwzrMsiXTWpeQ/cuNTcH8lbOB+Fdx4R8ValZ+Ix4
Y8Rw24naISW81sAFYehxx+grnLTXdZ8D3Mtv4ha9j3qghmEfnxhQPuliQRyT+dW4vF2lajdR
yIljNP8AwyqPJcH6sB/OueeIpU5WnK3rf8zeNCpKN4q567RXm/hj4hrJ4qn0S/8AOYPOsNu5
w2xyuSrHPqDivSK6NOhgFFFFMAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAjorxHZbf9A7Tv/ACH
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
--------------080908030705010802070909
Content-Type: image/jpeg;
 name="pv-screen2.JPG"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="pv-screen2.JPG"

/9j/4AAQSkZJRgABAQEAYABgAAD/4RDSRXhpZgAATU0AKgAAAAgABAE7AAIAAAAETTJSAIdp
AAQAAAABAAAISpydAAEAAAAIAAAQwuocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkAMAAgAA
ABQAABCYkAQAAgAAABQAABCskpEAAgAAAAMxMQAAkpIAAgAAAAMxMQAA6hwABwAACAwAAAiM
AAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAMjAxNTowMTozMCAxNjozODo1MgAyMDE1OjAxOjMwIDE2OjM4OjUyAAAA
TQAyAFIAAAD/4QsWaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVn
aW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pg0KPHg6eG1wbWV0YSB4
bWxuczp4PSJhZG9iZTpuczptZXRhLyI+PHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOkRlc2NyaXB0aW9uIHJk
ZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht
bG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIvPjxyZGY6RGVzY3Jp
cHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4
MmYxYiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj48eG1wOkNy
ZWF0ZURhdGU+MjAxNS0wMS0zMFQxNjozODo1Mi4xMTI8L3htcDpDcmVhdGVEYXRlPjwvcmRm
OkRlc2NyaXB0aW9uPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1
LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9y
Zy9kYy9lbGVtZW50cy8xLjEvIj48ZGM6Y3JlYXRvcj48cmRmOlNlcSB4bWxuczpyZGY9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPjxyZGY6bGk+TTJS
PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9u
PjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/bAEMABwUFBgUEBwYF
BggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsaIC8zLyoyJyor
Kv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKv/AABEIAwAEAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAA
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
KjbF5W75VVPvSEtyo5wa6STwdZvfPMLy9S3meKW4slZPJuJIwoVmyu4cImQrAHaMg856Cim6
kv6+/wDMLGLH4Wsovs+2W4P2fUZdSTLLzJJ5mQePu/vGwOvA5qheeAbC6SQR6hqFqZftQlaF
48ulw4eRPmQ4GQMEYb3rqaDU8zH1/r+upgyeErGWC9iaW423lxb3EmGXIaER7QOOh8pc/U9O
zL7wjZ3l1cXSXd5bXc12l4lxAy7oZFiEXyhlIIKAghgwOT7Y6CkNNSf9fL/JCskrHPTeFILm
O+F7fXl1Lfaf/Z88z+WrGPLncAqBQ37wjpjgcdcwzeD7SWW7JvLxYruS3lkhBTb5kJTawOzd
kiJQRnGM8A810hphqlJp3E1/X9egw0lONNoEFOBptANADq2qxa2qyqGkAooorIsKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDDopCQqkscAckntWZceILKB0VW87fna
UdADjrgsRu/DNdLaSuzA1KrX1hbala/Z72PzIt6SbdxHzIwZTkejKDS217b3efIlVmAyU6Mv
1B5FWKfmBQTQdMCxKLcgRXb3iYkcFZn3bmznvvbjoM8DgVCvhDRvI8to7p289bgTPfztMHVS
oIlL7wACRjOOTxya1QcVKpou1sPcxP8AhC9C865kNnITcxzROpuZSgWY5kCruwm48naBzUtx
4T0a6Z2ktpFkeZZjJDcyxOHWPygQysCPkG0gHBHXNbFLU8z7jMT/AIQ7Q/JWJbR0iWyNh5aX
Mqq0BBGxgGw2NzYJyRngituNFjjVEGFUBQPQCloobb3AWlpKKkBaXNJRQMWkoooAKSlpKBDT
TDTzTTTAYaYakNNNUIbRRRTEKDW3WHW5WVQ0gFFFFZFhRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
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
tJntZEWOGLyg29mA2MvlMdrYJ3DGc16LRTUrO6/q2wnG5xVnc2V5eeKo9SsNTNleyKSG025X
zY/JjjbbhAScgjA5wM9Oan0qO/8A+Eb11YLa7urZjKNMttULmSRPLA2t5h37S+7G8g4PYYrr
qKlvS3lYpKzTOG8LNLpbX04i1nULdorWMTXto6XAfJQoAwXMaAhicfxOSzHNRaFHdWTaa8mm
3oOgaXcQ3QW3YGeQsmFizxJu8tmBUkcjOCa76iqc7u/9bW/VkqNlY4Wytbp9Ys7P7FdRyW2s
XGoyzvAyxmF0kK4f7pY+aq7QcjacjAzVi+1oazqNhZ3WnaraWA8q6lEmlzuZZM7kjJRWVQrA
MxJ7Af3sdlRS5tg5dzkdEhVPFrtoUOpwaa0Uz3qXiTxxGdpAymNZsEHmQnYNvIzziuuoopN3
KtqwooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigCOiiitDIKKKKACiiigAooooAKKKKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAqSo6kqZFRCs/Wb+TTtPeaCIzSD7qAgFj6c1oVFcW0V1C0U6
B0bqDUFnF3upXl3Z/wDE30uzuYHHMZmR8fmFx+tcj4lg0uzUR+HtTuImkwWtjGJlQjshbkde
gyPavQpvA2lzuS8lyB/dEpxUg8JafYabdLpFtHHePC6xTPywYg4OT70JyWwHkdv4Z1mWRLpr
UvIfuXGpuD+StnA/Cu48I+KtSs/EY8MeI4bcTtEJLea2ACsPQ44/QVzlprus+B7mW38Qtex7
1QQzCPz4woH3SxII5J/OrcXi7StRuo5ESxmn/hlUeS4P1YD+dc88RSpytOVvW/5m8aFSUbxV
z12ivN/DHxDWTxVPol/5zB51ht3OG2OVyVY59QcV6RXRp0MAooopgFFFFABRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
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
tSUf/9k=
--------------080908030705010802070909
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--------------080908030705010802070909--


From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 15:45:31 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 15:45:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHDlD-0001e3-A3; Fri, 30 Jan 2015 15:45:31 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <fabio.fantoni@m2r.biz>) id 1YHDlA-0001dt-TZ
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 15:45:30 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	FE/D5-03165-717ABC45; Fri, 30 Jan 2015 15:45:27 +0000
X-Env-Sender: fabio.fantoni@m2r.biz
X-Msg-Ref: server-13.tower-206.messagelabs.com!1422632726!11390247!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10954 invoked from network); 30 Jan 2015 15:45:26 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 15:45:26 -0000
Received: by mail-wi0-f175.google.com with SMTP id fb4so3971426wid.2
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 07:45:26 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:cc:subject:references:in-reply-to:content-type;
	bh=24P/XOgQPwzLTbLjMyqM+O8wz2XEzu7CZrOGBeGibSg=;
	b=HcZDXCdc1oE/fezmCTBf7jY+vSxFc0YXBNQtdmXVQ8YH8A2Y5ei56wvWNZdjeCL2BQ
	6FbzT0FAdRUTPCVD1ZB8YDn7OwkuVVAiA5tNoxmFbvGKwmVbcF2MtNacMAddVeY7mZh6
	VwAKra5oVtoKZnOf60SlQqjPWqi1O3n7N/g5odnjSPa3Y544viSw0yTnHtSJJ7koxF+A
	3M3sn6GM9tPOxaXHkUfGi9eSyAoR4ppIk3lhPpxRj2SQiqI684OMVoRSdhh4T2R59QtT
	suc15wx6CHQpRvyHuqGWRSg9O2HBzkw7YO94zW57J0jdHNVav5ogtIqldqkPVx3lPCQE
	m9bA==
X-Gm-Message-State: ALoCoQmj5UamWFBMGgqEvkdpOzo4Ue++1kQjgYskVTQKBKNr9u1UF4Zs8FtrgyzKdOGJh+C0rR4m
X-Received: by 10.194.109.9 with SMTP id ho9mr13394066wjb.29.1422632726166;
	Fri, 30 Jan 2015 07:45:26 -0800 (PST)
Received: from [192.168.1.15] (ip-73-126.sn2.eutelia.it. [83.211.73.126])
	by mx.google.com with ESMTPSA id ej10sm7467950wib.2.2015.01.30.07.45.12
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 07:45:24 -0800 (PST)
Message-ID: <54CBA714.6000507@m2r.biz>
Date: Fri, 30 Jan 2015 16:45:24 +0100
From: Fabio Fantoni <fabio.fantoni@m2r.biz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Paul Durrant <Paul.Durrant@citrix.com>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>	<54CB9266.4060800@m2r.biz>	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
	<54CB9849.2010102@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
	<54CB9FC4.2060108@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD8F5@AMSPEX01CL01.citrite.net>
In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DD8F5@AMSPEX01CL01.citrite.net>
Content-Type: multipart/mixed; boundary="------------080908030705010802070909"
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------080908030705010802070909
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit

Il 30/01/2015 16:31, Paul Durrant ha scritto:
>> -----Original Message-----
>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>> Sent: 30 January 2015 15:14
>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
>> save/restore
>>
>> Il 30/01/2015 16:07, Paul Durrant ha scritto:
>>>> -----Original Message-----
>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>> Sent: 30 January 2015 14:42
>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>> after
>>>> save/restore
>>>>
>>>> Il 30/01/2015 15:31, Paul Durrant ha scritto:
>>>>>> -----Original Message-----
>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
>> devel-
>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>>>> Sent: 30 January 2015 14:17
>>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
>>>> after
>>>>>> save/restore
>>>>>>
>>>>>> Il 28/01/2015 21:14, Paul Durrant ha scritto:
>>>>>>>> -----Original Message-----
>>>>>>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
>>>>>>>> Sent: 28 January 2015 09:19
>>>>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
>>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
>> problem
>>>>>> after
>>>>>>>> save/restore
>>>>>>>>
>>>>>>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
>>>>>>>>>> -----Original Message-----
>>>>>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-
>> pv-
>>>>>> devel-
>>>>>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
>>>>>>>>>> Sent: 22 January 2015 10:10
>>>>>>>>>> To: win-pv-devel@lists.xenproject.org
>>>>>>>>>> Cc: Paul Durrant
>>>>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
>>>> problem
>>>>>>>> after
>>>>>>>>>> save/restore
>>>>>>>>>>
>>>>>>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
>>>>>>>>>>> Hi, I installed winpv driver build of 15 january on Windows server
>>>>>>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
>>>>>>>>>>> xl save/restore didn't show any errors, trying to connected with
>> rdp
>>>> I
>>>>>>>>>>> was unable and with spice I saw screen with data and time (time
>>>>>> update
>>>>>>>>>>> after restore) but doing ctrl+alt+canc it changed something in
>>>> screen
>>>>>>>>>>> only after 5-10 minutes and still without showing login field.
>>>>>>>>>>>
>>>>>>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from
>> official
>>>>>>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu 1.6
>>>> from
>>>>>>>>>>> xen build.
>>>>>>>>>>> DomU xl cfg:
>>>>>>>>>>>> name='w2012r2-01'
>>>>>>>>>>>> builder="hvm"
>>>>>>>>>>>> memory=8192
>>>>>>>>>>>> vcpus=4
>>>>>>>>>>>> acpi_s3=0
>>>>>>>>>>>> acpi_s4=0
>>>>>>>>>>>>
>> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
>>>>>>>>>> 18:2a:f2,script=vif-openvswitch']
>>>>>>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
>>>>>>>>>>>> disk=['/mnt/vm/disks/w2012r2-
>>>>>>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
>>>>>>>>>>>> boot='dc'
>>>>>>>>>>>> device_model_version="qemu-xen"
>>>>>>>>>>>> viridian=1
>>>>>>>>>>>> vnc=0
>>>>>>>>>>>> keymap="it"
>>>>>>>>>>>> on_crash="destroy"
>>>>>>>>>>>> vga="stdvga"
>>>>>>>>>>>> spice=1
>>>>>>>>>>>> spicehost='0.0.0.0'
>>>>>>>>>>>> spiceport=6000
>>>>>>>>>>>> spicepasswd="test"
>>>>>>>>>>>> spicevdagent=1
>>>>>>>>>>>> spice_clipboard_sharing=0
>>>>>>>>>>>> spiceusbredirection=4
>>>>>>>>>>>> soundhw="hda"
>>>>>>>>>>>> localtime=1
>>>>>>>>>>> I added in attachments qemu logs (before and after
>> save/restore)
>>>>>> with
>>>>>>>>>>> xen trace enabled.
>>>>>>>>>>>
>>>>>>>>>>> If you need more informations tests tell me and I'll post them.
>>>>>>>>>>>
>>>>>>>>>>> I have also another small question:
>>>>>>>>>>> is ms_vm_genid needed for this case? for what I understand is
>> only
>>>>>> for
>>>>>>>>>>> active directory controller and this it isn't.
>>>>>>>>>>>
>>>>>>>>>>> Thanks for any reply and sorry for my bad english.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> I also tried to uninstall the pv drivers from control panel but
>> windows
>>>>>>>>>> crash, minidump in attachments.
>>>>>>>>> I'm re-working the FIFO event channel code at the moment so I'll
>> run
>>>> a
>>>>>>>> quick suspend/resume test when I'm done.
>>>>>>>>>        Paul
>>>>>>>> Thanks for your reply.
>>>>>>>> I did other tests and seems that save/restore problems with
>> windows
>>>>>> 2012
>>>>>>>> was for missed ms_vm_genid="generate" even if clean for now (no
>>>> active
>>>>>>>> directory or other server services enabled nor domain member).
>>>>>>>> Remain windows crash on winpv drivers uninstall with minidump
>> refer
>>>> to
>>>>>>>> xenvif and other important and occasional problem:
>>>>>>>> network not working after some time and after 2-3 minutes all
>>>> windows
>>>>>>>> become unusable.
>>>>>>>> I hope these problem will be solved by new network pv driver
>> patches,
>>>>>>>> I'll test them ASAP when build with them will be ready.
>>>>>>>>
>>>>>>> I pushed my big series into xenbus today. You should definitely take
>>>> that; it
>>>>>> fixes several bugs in FIFO event channels and a couple of other things.
>>>>>>>       Paul
>>>>>> Thanks.
>>>>>> I tested now new pv drivers build on a windows 7 64 bit domU.
>>>>>> On update I saw a strange thing, xenvif and xennet even if updated
>>>>>> showed message "Ready to use" instead "Driver updated".
>>>>>> After update of all drivers components I rebooted windows but it didn't
>>>>>> start, stay blocked on windows logo, seems there is a critical
>>>>>> regression in latest pv drivers build :(
>>>>>> DomU's qemu log with xen-platform trace in attachment.
>>>>>>
>>>>> I don't see either XENVIF or XENNET loading at all so perhaps the
>> problem is
>>>> with PV storage and Windows is unable to load the drivers? Does this
>> happen
>>>> if you fresh-install a VM? I tested on Win7 64 and didn't see any problem,
>> but
>>>> it was a fresh VM in my case.
>>>>>      Paul
>>>> Is a windows 7 with only few things installed that I use for new xen and
>>>> pv drivers testing only.
>>>> There was installed previous official builds from here:
>>>> http://xenproject.org/downloads/windows-pv-drivers.html
>>>> Previous update was 2-3 weeks ago and reboot was succesfull, update of
>>>> today not.
>>>> I didn't have installed/updated any other software in this domU between
>>>> the latest 2 pv driver updates.
>>>>
>>> Ah, I wonder if I've unwittingly introduced a dependency on the per-vpu
>> event channel callback patch into Xen. I did my testing with that in place. I'll
>> try running on 4.5.
>>>     Paul
>> My actual testing dom0 where I tested the new pv drivers is xen 4.5.0
>> with some patches:
>> https://github.com/Fantu/Xen/commits/rebase/m2r-testing
>> Including backports of this 2 patches:
>> x86/hvm: add per-vcpu evtchn upcalls
>> x86/hvm: extend HVM cpuid leaf with vcpu id
>>
> In that case I can't really think of anything. As I said, it worked for me when I tested it all. I'll give it another try just to make sure.
>
>    Paul

I restored the domUs from backup of 10 days ago, when was working, after 
backup I didn't install anythings until today when I installed latest pv 
drivers build and windows was unable to boot after reboot.
Screenshoot of software installed in attachments.

Thanks for any reply and sorry for my bad english.


--------------080908030705010802070909
Content-Type: image/jpeg;
 name="pv-screen1.JPG"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="pv-screen1.JPG"

/9j/4AAQSkZJRgABAQEAYABgAAD/4RB6RXhpZgAATU0AKgAAAAgABAE7AAIAAAAETTJSAIdp
AAQAAAABAAAISpydAAEAAAAIAAAQauocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6hwABwAA
CAwAAAhcAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABNADIAUgAAAP/hClxodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvADw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3pr
YzlkJz8+DQo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj48cmRmOlJERiB4
bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMi
PjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1h
ZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50
cy8xLjEvIi8+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEz
ZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2Rj
L2VsZW1lbnRzLzEuMS8iPjxkYzpjcmVhdG9yPjxyZGY6U2VxIHhtbG5zOnJkZj0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpsaT5NMlI8L3Jk
ZjpsaT48L3JkZjpTZXE+DQoJCQk8L2RjOmNyZWF0b3I+PC9yZGY6RGVzY3JpcHRpb24+PC9y
ZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSd3Jz8+/9sAQwAHBQUGBQQHBgUGCAcH
CAoRCwoJCQoVDxAMERgVGhkYFRgXGx4nIRsdJR0XGCIuIiUoKSssKxogLzMvKjInKisq/9sA
QwEHCAgKCQoUCwsUKhwYHCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioq/8AAEQgDAAQAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAAB
AgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGh
CCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVm
Z2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfI
ycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAAB
AgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRC
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
0IoxCqFZCY3cB9wyFwpPy4OQO2awl8f2V9pEtx9k1bTopNNmv7e4aKHdLHGBvMYLMNw3DhwA
eoyOaSi2PfY7Gkrl9S8XLardW02n6tAsWny3n26IWzYjRc7wC5wxPADIASDxgHE0njKwtvEd
loc6yi5vUDQyGWA7soW5jD+YPukbtm3Pem4tK4rq1/6/rU6E0wiuE0/4l6fYaJoaa/cGXULy
yiuJ3Dwx7Q5xu2s6luQfljDHjpyM2/GutNputaXbTeI/+EftJ7a6kefEPzunl7B+9Vs/ebgY
JqnCSdn5/gG7sdaRTCK5YeN00vTtBHiO1kt7zU4ot4EkSbJGKqR5bOJDywztVsA89KsW3jK0
utUSzFhfxRyXc1kl3IiCJpo925Rh93IQkHbg9M5yKfK1/XYm+lzeIptc1Z+PtNu7Zbm4s76w
tZLKS+inuo0CyxR434CsxyNw4IGeoyOaoQ+OoNcn0waLIYg2orBcxmSGXdG0Erj5o3dRkoO4
YbeQM81yyQnp/XzO3U0+uH0jxsyeHNPlvbW91G6/s6O9vpbWOPEKNn52BZc52sdqAn5Tx0z0
mo65Dp9payxwT3sl5II7aC2Cl5SVLcbiqgBQSSSBgeuBSlBp2GaZpprk/DXiObUryGO+mu1m
nnvxHA0UaqEimCgPxuDKGAGDg85zwa62k00A002nGkNAhK3qwa3qyqdDSAUUUVkWFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBkoc08VAjVMDmt2ZDhVPVtLh1iw+yX
TSJH5sUuYyAcxyK46g8ZUZ9quVn65qy6LpTXZhadzJHDFErBfMkdwiDJ6Dcwyew9aFe6sMTW
dEj1n7I32u5s57OYzQz22zcpKMh4dWU5ViOmfTFch4j8H3MWlDSvDkWrs02nDT3uFubdYHTJ
C+fvPmfLuY5jXJBxz0G/c69rNvc2WnJpFlJqt1HLMYhqDCBIoyoJ8zydxYl1AGz1545zLj4g
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
cYzwDzXSGmGqUmncTX9f16DDSU402gQU4Gm0A0AOrarFrarKoaQCiiisiwooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKAMOikJCqSxwBySe1Zlx4gsoHRVbzt+dpR0AOO
uCxG78M10tpK7MDUqtfWFtqVr9nvY/Mi3pJt3EfMjBlOR6MoNLbXtvd58iVWYDJToy/UHkVY
p+YFBNB0wLEotyBFdveJiRwVmfdubOe+9uOgzwOBUK+ENG8jy2junbz1uBM9/O0wdVKgiUvv
AAJGM45PHJrVBxUqmi7Ww9zE/wCEL0LzrmQ2chNzHNE6m5lKBZjmQKu7CbjydoHNS3HhPRrp
naS2kWR5lmMkNzLE4dY/KBDKwI+QbSAcEdc1sUtTzPuMxP8AhDtD8lYltHSJbI2HlpcyqrQE
EbGAbDY3NgnJGeCK240WONUQYVQFA9AKWihtvcBaWkoqQFpc0lFAxaSiigApKWkoENNMNPNN
NMBhphqQ001QhtFFFMQoNbdYdblZVDSAUUUVkWFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQBzGqRtNo95HGMs8Dqo9SVNeeXcd9p9/Lr9x5MlhBdNIVUkyyAkrH1GMA
MuOeBXp1c3q3hiS9he2t5cWsjKxj83yyuCDgHa2RwMdCOmcYA0q+0kvZx+GWk+7i9JW7O2xz
ShGXvfajrHtfpcr+Fb5dVvmu4IHgiVZVCOMbcmPpgnjKv+INavijVW0bw1eXcW4z7PLgVELs
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
3rqwW13dWzGUaZbaoXMkieWBtbzDv2l92N5BwewxXXUVLelvKxSVmmcN4WaXS2vpxFrOoW7R
WsYmvbR0uA+ShQBguY0BDE4/iclmOai0KO6sm015NNvQdA0u4hugtuwM8hZMLFniTd5bMCpI
5GcE131FU53d/wCtrfqyVGyscLZWt0+sWdn9iuo5LbWLjUZZ3gZYzC6SFcP90sfNVdoORtOR
gZqxfa0NZ1Gws7rTtVtLAeVdSiTS53MsmdyRkorKoVgGYk9gP72Oyopc2wcu5yOiQqni120K
HU4NNaKZ71LxJ44jO0gZTGs2CDzITsG3kZ5xXXUUUm7lW1YUUUUhhRRRQAUUUUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
QBHRRRWhkFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVJUd
SVMiohWfrN/Jp2nvNBEZpB91AQCx9Oa0KiuLaK6haKdA6N1BqCzi73Ury7s/+JvpdncwOOYz
Mj4/MLj9a5HxLBpdmoj8PancRNJgtbGMTKhHZC3I69Bke1ehTeBtLncl5LkD+6JTipB4S0+w
026XSLaOO8eF1imflgxBwcn3oTktgPI7fwzrMsiXTWpeQ/cuNTcH8lbOB+Fdx4R8ValZ+Ix4
Y8Rw24naISW81sAFYehxx+grnLTXdZ8D3Mtv4ha9j3qghmEfnxhQPuliQRyT+dW4vF2lajdR
yIljNP8AwyqPJcH6sB/OueeIpU5WnK3rf8zeNCpKN4q567RXm/hj4hrJ4qn0S/8AOYPOsNu5
w2xyuSrHPqDivSK6NOhgFFFFMAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAjorxHZbf9A7Tv/ACH
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
--------------080908030705010802070909
Content-Type: image/jpeg;
 name="pv-screen2.JPG"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="pv-screen2.JPG"

/9j/4AAQSkZJRgABAQEAYABgAAD/4RDSRXhpZgAATU0AKgAAAAgABAE7AAIAAAAETTJSAIdp
AAQAAAABAAAISpydAAEAAAAIAAAQwuocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkAMAAgAA
ABQAABCYkAQAAgAAABQAABCskpEAAgAAAAMxMQAAkpIAAgAAAAMxMQAA6hwABwAACAwAAAiM
AAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAMjAxNTowMTozMCAxNjozODo1MgAyMDE1OjAxOjMwIDE2OjM4OjUyAAAA
TQAyAFIAAAD/4QsWaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVn
aW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pg0KPHg6eG1wbWV0YSB4
bWxuczp4PSJhZG9iZTpuczptZXRhLyI+PHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOkRlc2NyaXB0aW9uIHJk
ZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht
bG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIvPjxyZGY6RGVzY3Jp
cHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4
MmYxYiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj48eG1wOkNy
ZWF0ZURhdGU+MjAxNS0wMS0zMFQxNjozODo1Mi4xMTI8L3htcDpDcmVhdGVEYXRlPjwvcmRm
OkRlc2NyaXB0aW9uPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1
LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9y
Zy9kYy9lbGVtZW50cy8xLjEvIj48ZGM6Y3JlYXRvcj48cmRmOlNlcSB4bWxuczpyZGY9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPjxyZGY6bGk+TTJS
PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9u
PjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/bAEMABwUFBgUEBwYF
BggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsaIC8zLyoyJyor
Kv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKv/AABEIAwAEAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAA
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
KjbF5W75VVPvSEtyo5wa6STwdZvfPMLy9S3meKW4slZPJuJIwoVmyu4cImQrAHaMg856Cim6
kv6+/wDMLGLH4Wsovs+2W4P2fUZdSTLLzJJ5mQePu/vGwOvA5qheeAbC6SQR6hqFqZftQlaF
48ulw4eRPmQ4GQMEYb3rqaDU8zH1/r+upgyeErGWC9iaW423lxb3EmGXIaER7QOOh8pc/U9O
zL7wjZ3l1cXSXd5bXc12l4lxAy7oZFiEXyhlIIKAghgwOT7Y6CkNNSf9fL/JCskrHPTeFILm
O+F7fXl1Lfaf/Z88z+WrGPLncAqBQ37wjpjgcdcwzeD7SWW7JvLxYruS3lkhBTb5kJTawOzd
kiJQRnGM8A810hphqlJp3E1/X9egw0lONNoEFOBptANADq2qxa2qyqGkAooorIsKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDDopCQqkscAckntWZceILKB0VW87fna
UdADjrgsRu/DNdLaSuzA1KrX1hbala/Z72PzIt6SbdxHzIwZTkejKDS217b3efIlVmAyU6Mv
1B5FWKfmBQTQdMCxKLcgRXb3iYkcFZn3bmznvvbjoM8DgVCvhDRvI8to7p289bgTPfztMHVS
oIlL7wACRjOOTxya1QcVKpou1sPcxP8AhC9C865kNnITcxzROpuZSgWY5kCruwm48naBzUtx
4T0a6Z2ktpFkeZZjJDcyxOHWPygQysCPkG0gHBHXNbFLU8z7jMT/AIQ7Q/JWJbR0iWyNh5aX
Mqq0BBGxgGw2NzYJyRngituNFjjVEGFUBQPQCloobb3AWlpKKkBaXNJRQMWkoooAKSlpKBDT
TDTzTTTAYaYakNNNUIbRRRTEKDW3WHW5WVQ0gFFFFZFhRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
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
tJntZEWOGLyg29mA2MvlMdrYJ3DGc16LRTUrO6/q2wnG5xVnc2V5eeKo9SsNTNleyKSG025X
zY/JjjbbhAScgjA5wM9Oan0qO/8A+Eb11YLa7urZjKNMttULmSRPLA2t5h37S+7G8g4PYYrr
qKlvS3lYpKzTOG8LNLpbX04i1nULdorWMTXto6XAfJQoAwXMaAhicfxOSzHNRaFHdWTaa8mm
3oOgaXcQ3QW3YGeQsmFizxJu8tmBUkcjOCa76iqc7u/9bW/VkqNlY4Wytbp9Ys7P7FdRyW2s
XGoyzvAyxmF0kK4f7pY+aq7QcjacjAzVi+1oazqNhZ3WnaraWA8q6lEmlzuZZM7kjJRWVQrA
MxJ7Af3sdlRS5tg5dzkdEhVPFrtoUOpwaa0Uz3qXiTxxGdpAymNZsEHmQnYNvIzziuuoopN3
KtqwooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigCOiiitDIKKKKACiiigAooooAKKKKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAqSo6kqZFRCs/Wb+TTtPeaCIzSD7qAgFj6c1oVFcW0V1C0U6
B0bqDUFnF3upXl3Z/wDE30uzuYHHMZmR8fmFx+tcj4lg0uzUR+HtTuImkwWtjGJlQjshbkde
gyPavQpvA2lzuS8lyB/dEpxUg8JafYabdLpFtHHePC6xTPywYg4OT70JyWwHkdv4Z1mWRLpr
UvIfuXGpuD+StnA/Cu48I+KtSs/EY8MeI4bcTtEJLea2ACsPQ44/QVzlprus+B7mW38Qtex7
1QQzCPz4woH3SxII5J/OrcXi7StRuo5ESxmn/hlUeS4P1YD+dc88RSpytOVvW/5m8aFSUbxV
z12ivN/DHxDWTxVPol/5zB51ht3OG2OVyVY59QcV6RXRp0MAooopgFFFFABRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
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
tSUf/9k=
--------------080908030705010802070909
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
--------------080908030705010802070909--


From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 18:01:44 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 18:01:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHFt2-0001wx-Du; Fri, 30 Jan 2015 18:01:44 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YHFt1-0001wP-61
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 18:01:43 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	A1/BC-10964-607CBC45; Fri, 30 Jan 2015 18:01:42 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1422640901!11851624!1
X-Originating-IP: [209.85.212.174]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2303 invoked from network); 30 Jan 2015 18:01:41 -0000
Received: from mail-wi0-f174.google.com (HELO mail-wi0-f174.google.com)
	(209.85.212.174)
	by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 18:01:41 -0000
Received: by mail-wi0-f174.google.com with SMTP id n3so4847371wiv.1
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 10:01:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=Z8bfQwTsl4q38aCQp0BIsR8BPXLCRpNKIJfm/TB6LK0=;
	b=qnDcwcIrjoBorJdT+EvJbz/hJlGet5gVu4gZmqiQVuXgE2Flp+A4ZNf/N3jNiNSLv3
	of1Q73Inu/+RXfuSS5ylkLzQ+eOu2wPcqdkq96rBtlkp8zeEx78Id7HT8Sfse9mwrhLt
	JQmc9DVRlf6n0JYxfNL9OCVoR7rW4q2emquDyMTS3gKl1Qpow9yiywoC/Ul2tlEQgZUd
	ZEEL2NAgGy9sWDESIFOM9UQXD0gZlCwK9j+pYjwyXnXSjM/mbr/SnG4lPG7HBEczgDcq
	7vyo4cq8qAvRRIZ39xAJyF9RL+NnHwYRAsIL1OPaD7RrnJfgXcIMZQ8yhHph1+KLfRvI
	vLtg==
X-Received: by 10.194.62.235 with SMTP id b11mr14545686wjs.73.1422640901491;
	Fri, 30 Jan 2015 10:01:41 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id 7sm15921147wjq.29.2015.01.30.10.01.40
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 10:01:40 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 30 Jan 2015 18:01:40 +0000
Message-Id: <1422640900-7364-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] SystemVirtualCpuIndex() cannot use
	KeWaitForSingleObject()
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The function is called at > DISPATCH_LEVEL so it cannot wait, even with a
zero timeout. Having this call there causes the system to hang.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reported-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
---
 src/xen/system.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/src/xen/system.c b/src/xen/system.c
index efe5049..eb06bec 100644
--- a/src/xen/system.c
+++ b/src/xen/system.c
@@ -728,20 +728,8 @@ SystemVirtualCpuIndex(
 {
     PSYSTEM_CONTEXT     Context = &SystemContext;
     PSYSTEM_CPU         Cpu = Context->Cpu[Index];
-    LARGE_INTEGER       Timeout;
-    NTSTATUS            status;
 
-    ASSERT3U(Index, <, MAXIMUM_PROCESSORS);
-
-    Timeout.QuadPart = 0;
-
-    // Make sure the SystemCpuInformation() has run
-    status = KeWaitForSingleObject(&Cpu->Event,
-                                   Executive,
-                                   KernelMode,
-                                   FALSE,
-                                   &Timeout);
-    ASSERT(NT_SUCCESS(status) && status != STATUS_TIMEOUT);
+    ASSERT(Cpu != NULL);
 
     return Cpu->ProcessorID;
 }
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 18:01:44 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 18:01:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHFt2-0001wx-Du; Fri, 30 Jan 2015 18:01:44 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pdurrant@gmail.com>) id 1YHFt1-0001wP-61
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 18:01:43 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	A1/BC-10964-607CBC45; Fri, 30 Jan 2015 18:01:42 +0000
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1422640901!11851624!1
X-Originating-IP: [209.85.212.174]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2303 invoked from network); 30 Jan 2015 18:01:41 -0000
Received: from mail-wi0-f174.google.com (HELO mail-wi0-f174.google.com)
	(209.85.212.174)
	by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 18:01:41 -0000
Received: by mail-wi0-f174.google.com with SMTP id n3so4847371wiv.1
	for <win-pv-devel@lists.xenproject.org>;
	Fri, 30 Jan 2015 10:01:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:cc:subject:date:message-id;
	bh=Z8bfQwTsl4q38aCQp0BIsR8BPXLCRpNKIJfm/TB6LK0=;
	b=qnDcwcIrjoBorJdT+EvJbz/hJlGet5gVu4gZmqiQVuXgE2Flp+A4ZNf/N3jNiNSLv3
	of1Q73Inu/+RXfuSS5ylkLzQ+eOu2wPcqdkq96rBtlkp8zeEx78Id7HT8Sfse9mwrhLt
	JQmc9DVRlf6n0JYxfNL9OCVoR7rW4q2emquDyMTS3gKl1Qpow9yiywoC/Ul2tlEQgZUd
	ZEEL2NAgGy9sWDESIFOM9UQXD0gZlCwK9j+pYjwyXnXSjM/mbr/SnG4lPG7HBEczgDcq
	7vyo4cq8qAvRRIZ39xAJyF9RL+NnHwYRAsIL1OPaD7RrnJfgXcIMZQ8yhHph1+KLfRvI
	vLtg==
X-Received: by 10.194.62.235 with SMTP id b11mr14545686wjs.73.1422640901491;
	Fri, 30 Jan 2015 10:01:41 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
	by mx.google.com with ESMTPSA id 7sm15921147wjq.29.2015.01.30.10.01.40
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 30 Jan 2015 10:01:40 -0800 (PST)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 30 Jan 2015 18:01:40 +0000
Message-Id: <1422640900-7364-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] SystemVirtualCpuIndex() cannot use
	KeWaitForSingleObject()
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

The function is called at > DISPATCH_LEVEL so it cannot wait, even with a
zero timeout. Having this call there causes the system to hang.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reported-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
---
 src/xen/system.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/src/xen/system.c b/src/xen/system.c
index efe5049..eb06bec 100644
--- a/src/xen/system.c
+++ b/src/xen/system.c
@@ -728,20 +728,8 @@ SystemVirtualCpuIndex(
 {
     PSYSTEM_CONTEXT     Context = &SystemContext;
     PSYSTEM_CPU         Cpu = Context->Cpu[Index];
-    LARGE_INTEGER       Timeout;
-    NTSTATUS            status;
 
-    ASSERT3U(Index, <, MAXIMUM_PROCESSORS);
-
-    Timeout.QuadPart = 0;
-
-    // Make sure the SystemCpuInformation() has run
-    status = KeWaitForSingleObject(&Cpu->Event,
-                                   Executive,
-                                   KernelMode,
-                                   FALSE,
-                                   &Timeout);
-    ASSERT(NT_SUCCESS(status) && status != STATUS_TIMEOUT);
+    ASSERT(Cpu != NULL);
 
     return Cpu->ProcessorID;
 }
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 18:04:25 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 18:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHFvd-0002KA-1J; Fri, 30 Jan 2015 18:04:25 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YHFvb-0002K5-Mi
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 18:04:23 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	04/31-02750-7A7CBC45; Fri, 30 Jan 2015 18:04:23 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1422641061!11872676!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD,received_headers: 
	No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20989 invoked from network); 30 Jan 2015 18:04:22 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 18:04:22 -0000
X-IronPort-AV: E=Sophos;i="5.09,492,1418083200"; d="scan'208";a="30464130"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQPJ9r7ejI/RxHfE2g51ySQeLuW5zYyhiQ///zawCAADdl0A==
Date: Fri, 30 Jan 2015 18:04:20 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DDD6F@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
	<54CB9266.4060800@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
	<54CB9849.2010102@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
	<54CB9FC4.2060108@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD8F5@AMSPEX01CL01.citrite.net>
	<54CBA714.6000507@m2r.biz>
In-Reply-To: <54CBA714.6000507@m2r.biz>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
 save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> Sent: 30 January 2015 15:45
> To: Paul Durrant
> Cc: win-pv-devel@lists.xenproject.org
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 30/01/2015 16:31, Paul Durrant ha scritto:
> >> -----Original Message-----
> >> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> >> Sent: 30 January 2015 15:14
> >> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> after
> >> save/restore
> >>
> >> Il 30/01/2015 16:07, Paul Durrant ha scritto:
> >>>> -----Original Message-----
> >>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
> devel-
> >>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>> Sent: 30 January 2015 14:42
> >>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> >> after
> >>>> save/restore
> >>>>
> >>>> Il 30/01/2015 15:31, Paul Durrant ha scritto:
> >>>>>> -----Original Message-----
> >>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
> >> devel-
> >>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>>>> Sent: 30 January 2015 14:17
> >>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
> problem
> >>>> after
> >>>>>> save/restore
> >>>>>>
> >>>>>> Il 28/01/2015 21:14, Paul Durrant ha scritto:
> >>>>>>>> -----Original Message-----
> >>>>>>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> >>>>>>>> Sent: 28 January 2015 09:19
> >>>>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
> >> problem
> >>>>>> after
> >>>>>>>> save/restore
> >>>>>>>>
> >>>>>>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
> >>>>>>>>>> -----Original Message-----
> >>>>>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-
> >> pv-
> >>>>>> devel-
> >>>>>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>>>>>>>> Sent: 22 January 2015 10:10
> >>>>>>>>>> To: win-pv-devel@lists.xenproject.org
> >>>>>>>>>> Cc: Paul Durrant
> >>>>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
> >>>> problem
> >>>>>>>> after
> >>>>>>>>>> save/restore
> >>>>>>>>>>
> >>>>>>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> >>>>>>>>>>> Hi, I installed winpv driver build of 15 january on Windows
> server
> >>>>>>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
> >>>>>>>>>>> xl save/restore didn't show any errors, trying to connected
> with
> >> rdp
> >>>> I
> >>>>>>>>>>> was unable and with spice I saw screen with data and time
> (time
> >>>>>> update
> >>>>>>>>>>> after restore) but doing ctrl+alt+canc it changed something in
> >>>> screen
> >>>>>>>>>>> only after 5-10 minutes and still without showing login field.
> >>>>>>>>>>>
> >>>>>>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from
> >> official
> >>>>>>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu
> 1.6
> >>>> from
> >>>>>>>>>>> xen build.
> >>>>>>>>>>> DomU xl cfg:
> >>>>>>>>>>>> name='w2012r2-01'
> >>>>>>>>>>>> builder="hvm"
> >>>>>>>>>>>> memory=8192
> >>>>>>>>>>>> vcpus=4
> >>>>>>>>>>>> acpi_s3=0
> >>>>>>>>>>>> acpi_s4=0
> >>>>>>>>>>>>
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> >>>>>>>>>> 18:2a:f2,script=vif-openvswitch']
> >>>>>>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >>>>>>>>>>>> disk=['/mnt/vm/disks/w2012r2-
> >>>>>>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>>>>>>>>>>> boot='dc'
> >>>>>>>>>>>> device_model_version="qemu-xen"
> >>>>>>>>>>>> viridian=1
> >>>>>>>>>>>> vnc=0
> >>>>>>>>>>>> keymap="it"
> >>>>>>>>>>>> on_crash="destroy"
> >>>>>>>>>>>> vga="stdvga"
> >>>>>>>>>>>> spice=1
> >>>>>>>>>>>> spicehost='0.0.0.0'
> >>>>>>>>>>>> spiceport=6000
> >>>>>>>>>>>> spicepasswd="test"
> >>>>>>>>>>>> spicevdagent=1
> >>>>>>>>>>>> spice_clipboard_sharing=0
> >>>>>>>>>>>> spiceusbredirection=4
> >>>>>>>>>>>> soundhw="hda"
> >>>>>>>>>>>> localtime=1
> >>>>>>>>>>> I added in attachments qemu logs (before and after
> >> save/restore)
> >>>>>> with
> >>>>>>>>>>> xen trace enabled.
> >>>>>>>>>>>
> >>>>>>>>>>> If you need more informations tests tell me and I'll post them.
> >>>>>>>>>>>
> >>>>>>>>>>> I have also another small question:
> >>>>>>>>>>> is ms_vm_genid needed for this case? for what I understand
> is
> >> only
> >>>>>> for
> >>>>>>>>>>> active directory controller and this it isn't.
> >>>>>>>>>>>
> >>>>>>>>>>> Thanks for any reply and sorry for my bad english.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>> I also tried to uninstall the pv drivers from control panel but
> >> windows
> >>>>>>>>>> crash, minidump in attachments.
> >>>>>>>>> I'm re-working the FIFO event channel code at the moment so I'll
> >> run
> >>>> a
> >>>>>>>> quick suspend/resume test when I'm done.
> >>>>>>>>>        Paul
> >>>>>>>> Thanks for your reply.
> >>>>>>>> I did other tests and seems that save/restore problems with
> >> windows
> >>>>>> 2012
> >>>>>>>> was for missed ms_vm_genid="generate" even if clean for now
> (no
> >>>> active
> >>>>>>>> directory or other server services enabled nor domain member).
> >>>>>>>> Remain windows crash on winpv drivers uninstall with minidump
> >> refer
> >>>> to
> >>>>>>>> xenvif and other important and occasional problem:
> >>>>>>>> network not working after some time and after 2-3 minutes all
> >>>> windows
> >>>>>>>> become unusable.
> >>>>>>>> I hope these problem will be solved by new network pv driver
> >> patches,
> >>>>>>>> I'll test them ASAP when build with them will be ready.
> >>>>>>>>
> >>>>>>> I pushed my big series into xenbus today. You should definitely
> take
> >>>> that; it
> >>>>>> fixes several bugs in FIFO event channels and a couple of other
> things.
> >>>>>>>       Paul
> >>>>>> Thanks.
> >>>>>> I tested now new pv drivers build on a windows 7 64 bit domU.
> >>>>>> On update I saw a strange thing, xenvif and xennet even if updated
> >>>>>> showed message "Ready to use" instead "Driver updated".
> >>>>>> After update of all drivers components I rebooted windows but it
> didn't
> >>>>>> start, stay blocked on windows logo, seems there is a critical
> >>>>>> regression in latest pv drivers build :(
> >>>>>> DomU's qemu log with xen-platform trace in attachment.
> >>>>>>
> >>>>> I don't see either XENVIF or XENNET loading at all so perhaps the
> >> problem is
> >>>> with PV storage and Windows is unable to load the drivers? Does this
> >> happen
> >>>> if you fresh-install a VM? I tested on Win7 64 and didn't see any
> problem,
> >> but
> >>>> it was a fresh VM in my case.
> >>>>>      Paul
> >>>> Is a windows 7 with only few things installed that I use for new xen and
> >>>> pv drivers testing only.
> >>>> There was installed previous official builds from here:
> >>>> http://xenproject.org/downloads/windows-pv-drivers.html
> >>>> Previous update was 2-3 weeks ago and reboot was succesfull, update
> of
> >>>> today not.
> >>>> I didn't have installed/updated any other software in this domU
> between
> >>>> the latest 2 pv driver updates.
> >>>>
> >>> Ah, I wonder if I've unwittingly introduced a dependency on the per-vpu
> >> event channel callback patch into Xen. I did my testing with that in place.
> I'll
> >> try running on 4.5.
> >>>     Paul
> >> My actual testing dom0 where I tested the new pv drivers is xen 4.5.0
> >> with some patches:
> >> https://github.com/Fantu/Xen/commits/rebase/m2r-testing
> >> Including backports of this 2 patches:
> >> x86/hvm: add per-vcpu evtchn upcalls
> >> x86/hvm: extend HVM cpuid leaf with vcpu id
> >>
> > In that case I can't really think of anything. As I said, it worked for me when
> I tested it all. I'll give it another try just to make sure.
> >
> >    Paul
> 
> I restored the domUs from backup of 10 days ago, when was working, after
> backup I didn't install anythings until today when I installed latest pv
> drivers build and windows was unable to boot after reboot.
> Screenshoot of software installed in attachments.
> 

I think I found your problem,. I just posted a small patch to the list and pushed it immediately to kick off a new build.

  Paul

> Thanks for any reply and sorry for my bad english.


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

From win-pv-devel-bounces@lists.xenproject.org Fri Jan 30 18:04:25 2015
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 30 Jan 2015 18:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1YHFvd-0002KA-1J; Fri, 30 Jan 2015 18:04:25 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Paul.Durrant@citrix.com>) id 1YHFvb-0002K5-Mi
	for win-pv-devel@lists.xenproject.org; Fri, 30 Jan 2015 18:04:23 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	04/31-02750-7A7CBC45; Fri, 30 Jan 2015 18:04:23 +0000
X-Env-Sender: Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1422641061!11872676!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.7 required=7.0 tests=BIZ_TLD,received_headers: 
	No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20989 invoked from network); 30 Jan 2015 18:04:22 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Jan 2015 18:04:22 -0000
X-IronPort-AV: E=Sophos;i="5.09,492,1418083200"; d="scan'208";a="30464130"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>
Thread-Topic: [win-pv-devel] Windows server 2012 R2 domUs problem after
	save/restore
Thread-Index: AQHQPJ9r7ejI/RxHfE2g51ySQeLuW5zYyhiQ///zawCAADdl0A==
Date: Fri, 30 Jan 2015 18:04:20 +0000
Message-ID: <9AAE0902D5BC7E449B7C8E4E778ABCD0257DDD6F@AMSPEX01CL01.citrite.net>
References: <54BD2320.10307@m2r.biz>	<54C0CC5F.8050106@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257D3DDD@AMSPEX01CL01.citrite.net>
	<CABMPFzjYxE3R9wG8UJ+5tLvbg2TjZ9hEebaF7_f12wP6+GOs3A@mail.gmail.com>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DA5E8@AMSPEX01CL01.citrite.net>
	<54CB9266.4060800@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD649@AMSPEX01CL01.citrite.net>
	<54CB9849.2010102@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD7EB@AMSPEX01CL01.citrite.net>
	<54CB9FC4.2060108@m2r.biz>
	<9AAE0902D5BC7E449B7C8E4E778ABCD0257DD8F5@AMSPEX01CL01.citrite.net>
	<54CBA714.6000507@m2r.biz>
In-Reply-To: <54CBA714.6000507@m2r.biz>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
 save/restore
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
	<win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>,
	<mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: win-pv-devel-bounces@lists.xenproject.org
Errors-To: win-pv-devel-bounces@lists.xenproject.org

> -----Original Message-----
> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> Sent: 30 January 2015 15:45
> To: Paul Durrant
> Cc: win-pv-devel@lists.xenproject.org
> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem after
> save/restore
> 
> Il 30/01/2015 16:31, Paul Durrant ha scritto:
> >> -----Original Message-----
> >> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> >> Sent: 30 January 2015 15:14
> >> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> after
> >> save/restore
> >>
> >> Il 30/01/2015 16:07, Paul Durrant ha scritto:
> >>>> -----Original Message-----
> >>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
> devel-
> >>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>> Sent: 30 January 2015 14:42
> >>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs problem
> >> after
> >>>> save/restore
> >>>>
> >>>> Il 30/01/2015 15:31, Paul Durrant ha scritto:
> >>>>>> -----Original Message-----
> >>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-
> >> devel-
> >>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>>>> Sent: 30 January 2015 14:17
> >>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
> problem
> >>>> after
> >>>>>> save/restore
> >>>>>>
> >>>>>> Il 28/01/2015 21:14, Paul Durrant ha scritto:
> >>>>>>>> -----Original Message-----
> >>>>>>>> From: Fabio Fantoni [mailto:fabio.fantoni@m2r.biz]
> >>>>>>>> Sent: 28 January 2015 09:19
> >>>>>>>> To: Paul Durrant; win-pv-devel@lists.xenproject.org
> >>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
> >> problem
> >>>>>> after
> >>>>>>>> save/restore
> >>>>>>>>
> >>>>>>>> Il 22/01/2015 16:00, Paul Durrant ha scritto:
> >>>>>>>>>> -----Original Message-----
> >>>>>>>>>> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-
> >> pv-
> >>>>>> devel-
> >>>>>>>>>> bounces@lists.xenproject.org] On Behalf Of Fabio Fantoni
> >>>>>>>>>> Sent: 22 January 2015 10:10
> >>>>>>>>>> To: win-pv-devel@lists.xenproject.org
> >>>>>>>>>> Cc: Paul Durrant
> >>>>>>>>>> Subject: Re: [win-pv-devel] Windows server 2012 R2 domUs
> >>>> problem
> >>>>>>>> after
> >>>>>>>>>> save/restore
> >>>>>>>>>>
> >>>>>>>>>> Il 19/01/2015 16:30, Fabio Fantoni ha scritto:
> >>>>>>>>>>> Hi, I installed winpv driver build of 15 january on Windows
> server
> >>>>>>>>>>> 2012 R2 standard 64 bit and have problem after save/restore.
> >>>>>>>>>>> xl save/restore didn't show any errors, trying to connected
> with
> >> rdp
> >>>> I
> >>>>>>>>>>> was unable and with spice I saw screen with data and time
> (time
> >>>>>> update
> >>>>>>>>>>> after restore) but doing ctrl+alt+canc it changed something in
> >>>> screen
> >>>>>>>>>>> only after 5-10 minutes and still without showing login field.
> >>>>>>>>>>>
> >>>>>>>>>>> Dom0 is Wheezy with kernel 3.16.7-ckt2-1~bpo70+1 (from
> >> official
> >>>>>>>>>>> backport), build of xen based on start of 4.4.2-pre and qemu
> 1.6
> >>>> from
> >>>>>>>>>>> xen build.
> >>>>>>>>>>> DomU xl cfg:
> >>>>>>>>>>>> name='w2012r2-01'
> >>>>>>>>>>>> builder="hvm"
> >>>>>>>>>>>> memory=8192
> >>>>>>>>>>>> vcpus=4
> >>>>>>>>>>>> acpi_s3=0
> >>>>>>>>>>>> acpi_s4=0
> >>>>>>>>>>>>
> >>
> vif=['bridge=xenbr2,mac=00:16:3e:24:b7:d7','bridge=xenbr10,mac=00:16:3e:
> >>>>>>>>>> 18:2a:f2,script=vif-openvswitch']
> >>>>>>>>>>>> #vfb=['vnc=1,vncunused=1,vnclisten="0.0.0.0",keymap=it']
> >>>>>>>>>>>> disk=['/mnt/vm/disks/w2012r2-
> >>>>>>>>>> 01.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> >>>>>>>>>>>> boot='dc'
> >>>>>>>>>>>> device_model_version="qemu-xen"
> >>>>>>>>>>>> viridian=1
> >>>>>>>>>>>> vnc=0
> >>>>>>>>>>>> keymap="it"
> >>>>>>>>>>>> on_crash="destroy"
> >>>>>>>>>>>> vga="stdvga"
> >>>>>>>>>>>> spice=1
> >>>>>>>>>>>> spicehost='0.0.0.0'
> >>>>>>>>>>>> spiceport=6000
> >>>>>>>>>>>> spicepasswd="test"
> >>>>>>>>>>>> spicevdagent=1
> >>>>>>>>>>>> spice_clipboard_sharing=0
> >>>>>>>>>>>> spiceusbredirection=4
> >>>>>>>>>>>> soundhw="hda"
> >>>>>>>>>>>> localtime=1
> >>>>>>>>>>> I added in attachments qemu logs (before and after
> >> save/restore)
> >>>>>> with
> >>>>>>>>>>> xen trace enabled.
> >>>>>>>>>>>
> >>>>>>>>>>> If you need more informations tests tell me and I'll post them.
> >>>>>>>>>>>
> >>>>>>>>>>> I have also another small question:
> >>>>>>>>>>> is ms_vm_genid needed for this case? for what I understand
> is
> >> only
> >>>>>> for
> >>>>>>>>>>> active directory controller and this it isn't.
> >>>>>>>>>>>
> >>>>>>>>>>> Thanks for any reply and sorry for my bad english.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>> I also tried to uninstall the pv drivers from control panel but
> >> windows
> >>>>>>>>>> crash, minidump in attachments.
> >>>>>>>>> I'm re-working the FIFO event channel code at the moment so I'll
> >> run
> >>>> a
> >>>>>>>> quick suspend/resume test when I'm done.
> >>>>>>>>>        Paul
> >>>>>>>> Thanks for your reply.
> >>>>>>>> I did other tests and seems that save/restore problems with
> >> windows
> >>>>>> 2012
> >>>>>>>> was for missed ms_vm_genid="generate" even if clean for now
> (no
> >>>> active
> >>>>>>>> directory or other server services enabled nor domain member).
> >>>>>>>> Remain windows crash on winpv drivers uninstall with minidump
> >> refer
> >>>> to
> >>>>>>>> xenvif and other important and occasional problem:
> >>>>>>>> network not working after some time and after 2-3 minutes all
> >>>> windows
> >>>>>>>> become unusable.
> >>>>>>>> I hope these problem will be solved by new network pv driver
> >> patches,
> >>>>>>>> I'll test them ASAP when build with them will be ready.
> >>>>>>>>
> >>>>>>> I pushed my big series into xenbus today. You should definitely
> take
> >>>> that; it
> >>>>>> fixes several bugs in FIFO event channels and a couple of other
> things.
> >>>>>>>       Paul
> >>>>>> Thanks.
> >>>>>> I tested now new pv drivers build on a windows 7 64 bit domU.
> >>>>>> On update I saw a strange thing, xenvif and xennet even if updated
> >>>>>> showed message "Ready to use" instead "Driver updated".
> >>>>>> After update of all drivers components I rebooted windows but it
> didn't
> >>>>>> start, stay blocked on windows logo, seems there is a critical
> >>>>>> regression in latest pv drivers build :(
> >>>>>> DomU's qemu log with xen-platform trace in attachment.
> >>>>>>
> >>>>> I don't see either XENVIF or XENNET loading at all so perhaps the
> >> problem is
> >>>> with PV storage and Windows is unable to load the drivers? Does this
> >> happen
> >>>> if you fresh-install a VM? I tested on Win7 64 and didn't see any
> problem,
> >> but
> >>>> it was a fresh VM in my case.
> >>>>>      Paul
> >>>> Is a windows 7 with only few things installed that I use for new xen and
> >>>> pv drivers testing only.
> >>>> There was installed previous official builds from here:
> >>>> http://xenproject.org/downloads/windows-pv-drivers.html
> >>>> Previous update was 2-3 weeks ago and reboot was succesfull, update
> of
> >>>> today not.
> >>>> I didn't have installed/updated any other software in this domU
> between
> >>>> the latest 2 pv driver updates.
> >>>>
> >>> Ah, I wonder if I've unwittingly introduced a dependency on the per-vpu
> >> event channel callback patch into Xen. I did my testing with that in place.
> I'll
> >> try running on 4.5.
> >>>     Paul
> >> My actual testing dom0 where I tested the new pv drivers is xen 4.5.0
> >> with some patches:
> >> https://github.com/Fantu/Xen/commits/rebase/m2r-testing
> >> Including backports of this 2 patches:
> >> x86/hvm: add per-vcpu evtchn upcalls
> >> x86/hvm: extend HVM cpuid leaf with vcpu id
> >>
> > In that case I can't really think of anything. As I said, it worked for me when
> I tested it all. I'll give it another try just to make sure.
> >
> >    Paul
> 
> I restored the domUs from backup of 10 days ago, when was working, after
> backup I didn't install anythings until today when I installed latest pv
> drivers build and windows was unable to boot after reboot.
> Screenshoot of software installed in attachments.
> 

I think I found your problem,. I just posted a small patch to the list and pushed it immediately to kick off a new build.

  Paul

> Thanks for any reply and sorry for my bad english.


_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

