From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58495) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UCsjB-0005Vd-Jl for qemu-devel@nongnu.org; Tue, 05 Mar 2013 09:20:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UCsj7-0000V7-92 for qemu-devel@nongnu.org; Tue, 05 Mar 2013 09:20:25 -0500 Received: from lnx3.fantu.it ([94.23.245.208]:55358) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UCsj7-0000Sn-0S for qemu-devel@nongnu.org; Tue, 05 Mar 2013 09:20:21 -0500 Message-ID: <5135FF1B.4090508@tiscali.it> Date: Tue, 05 Mar 2013 15:20:11 +0100 From: Fabio Fantoni MIME-Version: 1.0 References: <511A3E25.9010303@tiscali.it> <51307CC7.1080107@tiscali.it> <5135C699.6000207@redhat.com> In-Reply-To: <5135C699.6000207@redhat.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms050304070307060208070201" Subject: Re: [Qemu-devel] [Spice-devel] Advice on some configuration parameters Reply-To: fantonifabio@tiscali.it List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Hans de Goede Cc: spice-devel@lists.freedesktop.org, qemu-devel@nongnu.org Questo รจ un messaggio firmato digitalmente in formato MIME. --------------ms050304070307060208070201 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Il 05/03/2013 11:19, Hans de Goede ha scritto: > Hi, > > On 03/01/2013 11:02 AM, Fabio Fantoni wrote: >> Il 12/02/2013 14:05, Fabio Fantoni ha scritto: >>> I'm making patches to enable some qemu upstream features in xen that = >>> are missing in libxl. >>> I'm trying to do it just by giving arguments to qemu, and I want=20 >>> them to be dynamic (e.g. without physical addresses if possible) and = >>> concise. >>> >>> I'm confused about usb configuration. >>> >>> Looking at what virt-manager does, it seems that you set the=20 >>> usbredirection in channels like this: >>> -chardev spicevmc,id=3Dcharredir0,name=3Dusbredir -device=20 >>> usb-redir,chardev=3Dcharredir0,id=3Dredir0 >>> >>> At the moment I'm defining the physical usb devices like this: >>> -readconfig /etc/qemu/ich9-ehci-uhci.cfg >>> >>> If I try to set up virt-manager so that it doesn't point to a file,=20 >>> it uses this configuration: >>> >>> -device ich9-usb-ehci1,id=3Dusb,bus=3Dpci.0,addr=3D0x5.0x7 >>> -device=20 >>> ich9-usb-uhci1,masterbus=3Dusb.0,firstport=3D0,bus=3Dpci.0,multifunct= ion=3Don,addr=3D0x5 >>> -device=20 >>> ich9-usb-uhci2,masterbus=3Dusb.0,firstport=3D2,bus=3Dpci.0,addr=3D0x5= =2E0x1 >>> -device=20 >>> ich9-usb-uhci3,masterbus=3Dusb.0,firstport=3D4,bus=3Dpci.0,addr=3D0x5= =2E0x2 >>> >>> This seems to differ from the configuration file, e.g. you have=20 >>> multifunzion=3Don only on the first uhci > > That does not matter the multifunction bit needs to set only on 0x5.0x0= =2E > >> besides I can't understand how many physical ports are defined. > > 6, the same as with the "-readconfig /etc/qemu/ich9-ehci-uhci.cf"=20 > directive. > >> I tried setting 9 usbredirection channels in virt-manager but that=20 >> configuration doesn't change and no errors are reported, but I doubt=20 >> that physical ports are being define dynamically. > > Hmm, that would be a libvirt bug you should be able to add only 6 > usb-redir channels, unless you add a second usb controller ... > > Possibly libvirt is also adding a hub? That would work sort-of, it > would make channels 6-9 be usb-1 only, since we don't emulate > usb-2 hubs. > >>> >>> Can you omit physical addresses? > > In most cases yes, then qemu will pick one itself. > >>> I searched the web but I can't find detailed informations about it.=20 >>> Can someone explain in detail how you are supposed to configure usb=20 >>> physical ports? I want to enable both usb redirection and usb=20 >>> passthrough in a dynamic and concise manner. > > The easiest way to do is probably to create the setup you want using > virt-manager and then run the vm once, after that the xml file > should contain fixed addresses for all devices. > >>> >>> About spice vdagent at the moment I'm using this configuration that=20 >>> seems to work: >>> -device virtio-serial -chardev spicevmc,id=3Dvdagent,name=3Dvdagent=20 >>> -device virtserialport,chardev=3Dvdagent,name=3Dcom.redhat.spice.0 >>> >>> But I noticed that virt-manager use this slightly different one: >>> -chardev pty,id=3Dcharserial0 -device=20 >>> isa-serial,chardev=3Dcharserial0,id=3Dserial0 -chardev=20 >>> spicevmc,id=3Dcharchannel0,name=3Dvdagent -device=20 >>> virtserialport,bus=3Dvirtio-serial0.0,nr=3D1,chardev=3Dcharchannel0,i= d=3Dchannel0,name=3Dcom.redhat.spice.0 >>> >>> Are there any problem with the more concise one I'm using? > > No. > > Regards, > > Hans > Thanks for reply, my goal is doing complete and good full feature=20 implementation of spice in xen (now exactly on libxl). The basic implementation was already present and working but without=20 vdagent, qxl and usb redirection. I did patch for qxl support, for now is working only as standard vga,=20 with qxl driver not working in both windows and linux vm. I already did many posts on xen-devel,qemu-devel and spice-devel but=20 without solution by now. I tried to found a solution myself for about 1 year without success. It=20 seems (almost certain) there are changes/fixes to do on hvmloader (xen=20 side) and it should be also necessary changes on qemu and/or spice side. Unfortunately I don't have much knowledge on this parts and I not found=20 nobody that can help me about for now. I'm trying to have a complete feature list of qemu options (about spice) = by doing a try and learn tests between kvm and xen. I have some question: Is -nodefaults necessary/useful for spice? xen do not use/want that for n= ow Is -no-shutdown necessary/useful for spice? What is exactly seamless migration on spice? is necessary to be on? Is -device usb-tablet necessary/useful for spice? I tried to do usb redirection without cfg files but is not working. These are all qemu option of W7 domU of my test: libxl: debug: libxl_device.c:920:device_hotplug: calling hotplug script: = /etc/xen/scripts/block add libxl: debug: libxl_dm.c:1156:libxl__spawn_local_dm: Spawning=20 device-model /usr/lib/xen/bin/qemu-system-i386 with arguments: libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 /usr/lib/xen/bin/qemu-system-i386 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -xen-domid libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: 9 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -chardev libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 socket,id=3Dlibxl-cmd,path=3D/var/run/xen/qmp-libxl-9,server,nowait libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -mon libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 chardev=3Dlibxl-cmd,mode=3Dcontrol libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -name libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: W7 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -global libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: isa-fdc.driveA=3D libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -spice libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 port=3D6002,tls-port=3D0,addr=3D0.0.0.0,disable-ticketing,agent-mouse=3Do= n libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -vga libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: std libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -boot libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: order=3Ddc libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -soundhw libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: hda libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -smp libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: 2,maxcpus=3D2 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 e1000,id=3Dnic0,netdev=3Dnet0,mac=3D00:16:3e:38:af:5f libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -netdev libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 type=3Dtap,id=3Dnet0,ifname=3Dvif9.0-emu,script=3Dno,downscript=3Dno libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 ich9-usb-ehci1,id=3Dehci,bus=3Dpci.0,addr=3D1d.7 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 ich9-usb-uhci1,masterbus=3Dehci.0,firstport=3D0,bus=3Dpci.0,multifunction= =3Don,addr=3D1d.5 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 ich9-usb-uhci2,masterbus=3Dehci.0,firstport=3D2,bus=3Dpci.0,addr=3D1d.1 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 ich9-usb-uhci3,masterbus=3Dehci.0,firstport=3D4,bus=3Dpci.0,addr=3D1d.2 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -chardev libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 spicevmc,name=3Dusbredir,id=3Dusbredirchardev1 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 usb-redir,chardev=3Dusbredirchardev1,id=3Dusbredirdev1,bus=3Dehci.0 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -chardev libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 spicevmc,name=3Dusbredir,id=3Dusbredirchardev2 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 usb-redir,chardev=3Dusbredirchardev2,id=3Dusbredirdev2,bus=3Dehci.0 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -chardev libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 spicevmc,name=3Dusbredir,id=3Dusbredirchardev3 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 usb-redir,chardev=3Dusbredirchardev3,id=3Dusbredirdev3,bus=3Dehci.0 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -chardev libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 spicevmc,name=3Dusbredir,id=3Dusbredirchardev4 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 usb-redir,chardev=3Dusbredirchardev4,id=3Dusbredirdev4,bus=3Dehci.0 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -chardev libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 spicevmc,name=3Dusbredir,id=3Dusbredirchardev5 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 usb-redir,chardev=3Dusbredirchardev5,id=3Dusbredirdev5,bus=3Dehci.0 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -chardev libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 spicevmc,name=3Dusbredir,id=3Dusbredirchardev6 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 usb-redir,chardev=3Dusbredirchardev6,id=3Dusbredirdev6,bus=3Dehci.0 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: virtio-serial libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -chardev libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 spicevmc,id=3Dvdagent,name=3Dvdagent libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -device libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 virtserialport,chardev=3Dvdagent,name=3Dcom.redhat.spice.0 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -M libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: xenfv libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -m libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: 2032 libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm: -drive libxl: debug: libxl_dm.c:1158:libxl__spawn_local_dm:=20 file=3D/mnt/vm/disks/W7.disk1.xm,if=3Dide,index=3D0,media=3Ddisk,format=3D= raw,cache=3Dwriteback Vdagent is working, I'll do a patch for insert it in libxl,=20 usbredirection with cfg file is working without (with config above) not, = what I do wrong? Based on this qemu options is there something other that can be a=20 problem with spice and need to be improved? Thanks for any reply. --------------ms050304070307060208070201 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: Firma crittografica S/MIME MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIINhjCC BjQwggQcoAMCAQICASAwDQYJKoZIhvcNAQEFBQAwfTELMAkGA1UEBhMCSUwxFjAUBgNVBAoT DVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNp Z25pbmcxKTAnBgNVBAMTIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA3 MTAyNDIxMDI1NVoXDTE3MTAyNDIxMDI1NVowgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1T dGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWdu aW5nMTgwNgYDVQQDEy9TdGFydENvbSBDbGFzcyAyIFByaW1hcnkgSW50ZXJtZWRpYXRlIENs aWVudCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMsohUWcASz7GfKrpTOM KqANy9BV7V0igWdGxA8IU77L3aTxErQ+fcxtDYZ36Z6GH0YFn7fq5RADteP0AYzrCA+EQTfi 8q1+kA3m0nwtwXG94M5sIqsvs7lRP1aycBke/s5g9hJHryZ2acScnzczjBCAo7X1v5G3yw8M DP2m2RCye0KfgZ4nODerZJVzhAlOD9YejvAXZqHksw56HzElVIoYSZ3q4+RJuPXXfIoyby+Y 2m1E+YzX5iCZXBx05gk6MKAW1vaw4/v2OOLy6FZH3XHHtOkzUreG//CsFnB9+uaYSlR65cdG zTsmoIK8WH1ygoXhRBm98SD7Hf/r3FELNvUCAwEAAaOCAa0wggGpMA8GA1UdEwEB/wQFMAMB Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSuVYNv7DHKufcd+q9rMfPIHeOsuzAfBgNV HSMEGDAWgBROC+8apEBbpRdphzDKNGhD0EGu8jBmBggrBgEFBQcBAQRaMFgwJwYIKwYBBQUH MAGGG2h0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9jYTAtBggrBgEFBQcwAoYhaHR0cDovL3d3 dy5zdGFydHNzbC5jb20vc2ZzY2EuY3J0MFsGA1UdHwRUMFIwJ6AloCOGIWh0dHA6Ly93d3cu c3RhcnRzc2wuY29tL3Nmc2NhLmNybDAnoCWgI4YhaHR0cDovL2NybC5zdGFydHNzbC5jb20v c2ZzY2EuY3JsMIGABgNVHSAEeTB3MHUGCysGAQQBgbU3AQIBMGYwLgYIKwYBBQUHAgEWImh0 dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93 d3cuc3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwDQYJKoZIhvcNAQEFBQADggIBADqp Jw3I07QWke9plNBpxUxcffc7nUrIQpJHDci91DFG7fVhHRkMZ1J+BKg5UNUxIFJ2Z9B90Mic c/NXcs7kPBRdn6XGO/vPc87Y6R+cWS9Nc9+fp3Enmsm94OxOwI9wn8qnr/6o3mD4noP9Jphw UPTXwHovjavRnhUQHLfo/i2NG0XXgTHXS2Xm0kVUozXqpYpAdumMiB/vezj1QHQJDmUdPYMc p+reg9901zkyT3fDW/ivJVv6pWtkh6Pw2ytZT7mvg7YhX3V50Nv860cV11mocUVcqBLv0gcT +HBDYtbuvexNftwNQKD5193A7zN4vG7CTYkXxytSjKuXrpEatEiFPxWgb84nVj25SU5q/r1X hwby6mLhkbaXslkVtwEWT3Van49rKjlK4XrUKYYWtnfzq6aSak5u0Vpxd1rY79tWhD3EdCvO hNz/QplNa+VkIsrcp7+8ZhP1l1b2U6MaxIVteuVMD3X0vziIwr7jxYae9FZjbxlpUemqXjcC 0QaFfN7qI0JsQMALL7iGRBg7K0CoOBzECdD3fuZil5kU/LP9cr1BK31U0Uy651bFnAMMMkqh AChIbn0ei72VnbpSsrrSdF0BAGYQ8vyHae5aCg+H75dVCV33K6FuxZrf09yTz+Vx/PkdRUYk XmZz/OTfyJXsUOUXrym6KvI2rYpccSk5MIIHSjCCBjKgAwIBAgICHmMwDQYJKoZIhvcNAQEF BQAwgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJT ZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFydENvbSBD bGFzcyAyIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQTAeFw0xMjAzMTgyMjE0MzBa Fw0xNDAzMjAwODU3MDlaMIGMMRkwFwYDVQQNExBlQjZPRTM3UlJOUHlsNW0yMQswCQYDVQQG EwJJVDEQMA4GA1UECBMHQmVyZ2FtbzEQMA4GA1UEBxMHUm92ZXR0YTEWMBQGA1UEAxMNRmFi aW8gRmFudG9uaTEmMCQGCSqGSIb3DQEJARYXZmFudG9uaWZhYmlvQHRpc2NhbGkuaXQwggEi MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1XhckXsX23vgJq76s2f0KT8U8Msov5QgV 10eQBb2wL/TzcmqtZotI7ztKVhio3ehHg+mfu+3EqOkX9Umgut8rP0bPi7AGjkPXbOTT/cSU Xz2Kw31VGOmiOVoUFGvpQitp3weCkhUJLBipI8EpNyBXpjtQ9yCpnIAqfuc77ybfSnCy7tTR MBq1BUkfjH1+GL45riosuS4+F+MSUvlYzLiT4rAduAX1Y2IuORDsf9Bce8GBxa6syP9rCyzl Vk7DIX5k8j2vlnyRATIypn5CQLQxGT6e0f6ac4gvWOHwO2QEBsmZKKs1ZidE4q/9OoNXYX6A jnHtp1H1vcrek/vVcs19AgMBAAGjggOyMIIDrjAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwHQYDVR0OBBYEFFan8cbEWWBmSTWFtLk2 YNdAcGUbMB8GA1UdIwQYMBaAFK5Vg2/sMcq59x36r2sx88gd46y7MCIGA1UdEQQbMBmBF2Zh bnRvbmlmYWJpb0B0aXNjYWxpLml0MIICIQYDVR0gBIICGDCCAhQwggIQBgsrBgEEAYG1NwEC AjCCAf8wLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYw NAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYw gfcGCCsGAQUFBwICMIHqMCcWIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MAMC AQEagb5UaGlzIGNlcnRpZmljYXRlIHdhcyBpc3N1ZWQgYWNjb3JkaW5nIHRvIHRoZSBDbGFz cyAyIFZhbGlkYXRpb24gcmVxdWlyZW1lbnRzIG9mIHRoZSBTdGFydENvbSBDQSBwb2xpY3ks IHJlbGlhbmNlIG9ubHkgZm9yIHRoZSBpbnRlbmRlZCBwdXJwb3NlIGluIGNvbXBsaWFuY2Ug b2YgdGhlIHJlbHlpbmcgcGFydHkgb2JsaWdhdGlvbnMuMIGcBggrBgEFBQcCAjCBjzAnFiBT dGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTADAgECGmRMaWFiaWxpdHkgYW5kIHdh cnJhbnRpZXMgYXJlIGxpbWl0ZWQhIFNlZSBzZWN0aW9uICJMZWdhbCBhbmQgTGltaXRhdGlv bnMiIG9mIHRoZSBTdGFydENvbSBDQSBwb2xpY3kuMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6 Ly9jcmwuc3RhcnRzc2wuY29tL2NydHUyLWNybC5jcmwwgY4GCCsGAQUFBwEBBIGBMH8wOQYI KwYBBQUHMAGGLWh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9zdWIvY2xhc3MyL2NsaWVudC9j YTBCBggrBgEFBQcwAoY2aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2VydHMvc3ViLmNsYXNz Mi5jbGllbnQuY2EuY3J0MCMGA1UdEgQcMBqGGGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tLzAN BgkqhkiG9w0BAQUFAAOCAQEAjzHNqifpDVMkH1TSPFZVIiQ4fh49/V5JMpstgqEZPDaDe5r8 h+fMBZtUa6LLMco03Z9BNEXlqlXKiFk8feVYB8obEjz7YYq1XhO9q7JUmkSs0WGIH4xU0XB1 kPC8T8H+5E//84poYSFHE4pA+Ff68UANP2/EuFJWMjegiefnOr8aM42OAcUkjEWSlautIIX8 oD2GizwQYjWdDDjEonbuMKFP6rY2xGI3PSLI3IVU2opb0/itNhQui3WRxafloJqTlriY8m8+ qSLr2HGftbBlbyzVWB8o//aW0H0LMabjkIvrm7Zmh2vcCxiSxGBwYASuSYXGuQiKAgGptUs1 XJLZuzGCA9owggPWAgEBMIGTMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20g THRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYG A1UEAxMvU3RhcnRDb20gQ2xhc3MgMiBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0EC Ah5jMAkGBSsOAwIaBQCgggIbMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN AQkFMQ8XDTEzMDMwNTE0MjAxMVowIwYJKoZIhvcNAQkEMRYEFM7iloJ8cz/CR1EmcglY4Rw2 wlWwMGwGCSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG 9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcN AwICASgwgaQGCSsGAQQBgjcQBDGBljCBkzCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0 YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25p bmcxODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xp ZW50IENBAgIeYzCBpgYLKoZIhvcNAQkQAgsxgZaggZMwgYwxCzAJBgNVBAYTAklMMRYwFAYD VQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0 ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFydENvbSBDbGFzcyAyIFByaW1hcnkgSW50ZXJtZWRp YXRlIENsaWVudCBDQQICHmMwDQYJKoZIhvcNAQEBBQAEggEArGX3hqkRrSD4CuBvJxZDTHiK 27/4r1egpCw25RV9dshSXlCI9HaTQOsHII0c036yJjLdiaGWYPEUrXJoKeKk19gcfaXkz+fZ oOE7Apf8KvM4ADTY7oznfKD4LjWOZFFSfDk8LHMCBW2uLDQmOColhE/CWAtsHUAqESIKg4pO NRZULVAfjcZiIfiHaXmtItV7wjbQ4sk1kjYMFAaGYcFBafUsZWo80ZVAiLJVIrqZNkfoy+CE P3+qMmd1PV90O/KOFtdcxhrDW9c4Bb9890KvrB+ckU1eTDTLJRs8FK+4g0fWoJEDWmm8RDYq Agl8wXRPmgIf6w1oum5LY9anQ+1U5gAAAAAAAA== --------------ms050304070307060208070201--