From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KocUp-000102-3f for qemu-devel@nongnu.org; Sat, 11 Oct 2008 07:18:55 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KocUo-0000zi-Aw for qemu-devel@nongnu.org; Sat, 11 Oct 2008 07:18:54 -0400 Received: from [199.232.76.173] (port=54864 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KocUo-0000zf-3s for qemu-devel@nongnu.org; Sat, 11 Oct 2008 07:18:54 -0400 Received: from rv-out-0708.google.com ([209.85.198.250]:6173) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KocUn-0000SP-Or for qemu-devel@nongnu.org; Sat, 11 Oct 2008 07:18:54 -0400 Received: by rv-out-0708.google.com with SMTP id f25so826337rvb.22 for ; Sat, 11 Oct 2008 04:18:52 -0700 (PDT) Message-ID: Date: Sat, 11 Oct 2008 13:18:52 +0200 From: "andrzej zaborowski" Subject: Re: [Qemu-devel] Bluetooth options In-Reply-To: <200809291154.14709.paul@codesourcery.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_77976_15899934.1223723932551" References: <200809291154.14709.paul@codesourcery.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: qemu-devel@nongnu.org ------=_Part_77976_15899934.1223723932551 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline 2008/9/29 Paul Brook : > On Monday 29 September 2008, andrzej zaborowski wrote: >> Hi, >> I added code to emulate various bluetooth hardware but I didn't add >> any user interface to set it up or tweak. The attached patch adds >> command line switches for doind that but it's not very pretty, any >> suggestions to change it will be appreciated. > > Do we really need 3 different options? Can't everything be done with a > single -bt option, like it is with -net? We can and then the syntax is more like with -net and less like with -usbdevice, the attached patch does that instead. The syntax is now: -bt hci,null -bt hci,host[:id] -bt hci[,vlan=N] -bt vhci[,vlan=N] -bt device:dev[,vlan=N] > > I'd kinda expect serial bluetooth dongles to be added the same way as USB > ones, i.e. via -serial options. The serial dongle emulated in hw/bt-hci-csr.c has some vendor extensions so it's not a standard serial dongle. It's attached by the machine code because this part is not configurable in n8x0. One can add support for attaching hot-pluggable serial dongles in vl.c if needed. Regards ------=_Part_77976_15899934.1223723932551 Content-Type: text/x-patch; name=0001-Add-commandline-options-to-make-use-of-bluetooth-2.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fm65nw210 Content-Disposition: attachment; filename=0001-Add-commandline-options-to-make-use-of-bluetooth-2.patch ZGlmZiAtLWdpdCBhL3ZsLmMgYi92bC5jCmluZGV4IGU4NDEwYTguLjM5NWZlNDYgMTAwNjQ0Ci0t LSBhL3ZsLmMKKysrIGIvdmwuYwpAQCAtMTYzLDYgKzE2Myw5IEBACiAvKiBNYXggbnVtYmVyIG9m IFVTQiBkZXZpY2VzIHRoYXQgY2FuIGJlIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZGxpbmUuICAq LwogI2RlZmluZSBNQVhfVVNCX0NNRExJTkUgOAogCisvKiBNYXggbnVtYmVyIG9mIGJsdWV0b290 aCBzd2l0Y2hlcyBvbiB0aGUgY29tbWFuZGxpbmUuICAqLworI2RlZmluZSBNQVhfQlRfQ01ETElO RSAxMAorCiAvKiBYWFg6IHVzZSBhIHR3byBsZXZlbCB0YWJsZSB0byBsaW1pdCBtZW1vcnkgdXNh Z2UgKi8KICNkZWZpbmUgTUFYX0lPUE9SVFMgNjU1MzYKIApAQCAtNTQwOSw2ICs1NDEyLDE0NCBA QCBzdHJ1Y3QgSENJSW5mbyAqcWVtdV9uZXh0X2hjaSh2b2lkKQogICAgIHJldHVybiBoY2lfdGFi bGVbY3VyX2hjaSsrXTsKIH0KIAorc3RhdGljIHN0cnVjdCBIQ0lJbmZvICpoY2lfaW5pdChjb25z dCBjaGFyICpzdHIpCit7CisgICAgY2hhciAqZW5kcDsKKyAgICBzdHJ1Y3QgYnRfc2NhdHRlcm5l dF9zICp2bGFuID0gMDsKKworICAgIGlmICghc3RyY21wKHN0ciwgIm51bGwiKSkKKyAgICAgICAg LyogbnVsbCAqLworICAgICAgICByZXR1cm4gJm51bGxfaGNpOworICAgIGVsc2UgaWYgKCFzdHJu Y21wKHN0ciwgImhvc3QiLCA0KSAmJiAoc3RyWzRdID09ICdcMCcgfHwgc3RyWzRdID09ICc6Jykp CisgICAgICAgIC8qIGhvc3RbOmhjaU5dICovCisgICAgICAgIHJldHVybiBidF9ob3N0X2hjaShz dHJbNF0gPyBzdHIgKyA1IDogImhjaTAiKTsKKyAgICBlbHNlIGlmICghc3RybmNtcChzdHIsICJo Y2kiLCAzKSkgeworICAgICAgICAvKiBoY2lbLHZsYW49bl0gKi8KKyAgICAgICAgaWYgKHN0clsz XSkgeworICAgICAgICAgICAgaWYgKCFzdHJuY21wKHN0ciArIDMsICIsdmxhbj0iLCA2KSkgewor ICAgICAgICAgICAgICAgIHZsYW4gPSBxZW11X2ZpbmRfYnRfdmxhbihzdHJ0b2woc3RyICsgOSwg JmVuZHAsIDApKTsKKyAgICAgICAgICAgICAgICBpZiAoKmVuZHApCisgICAgICAgICAgICAgICAg ICAgIHZsYW4gPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg IHZsYW4gPSBxZW11X2ZpbmRfYnRfdmxhbigwKTsKKyAgICAgICAgaWYgKHZsYW4pCisgICAgICAg ICAgIHJldHVybiBidF9uZXdfaGNpKHZsYW4pOworICAgIH0KKworICAgIGZwcmludGYoc3RkZXJy LCAicWVtdTogVW5rbm93biBibHVldG9vdGggSENJIGAlcycuXG4iLCBzdHIpOworCisgICAgcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYnRfaGNpX3BhcnNlKGNvbnN0IGNoYXIgKnN0cikKK3sK KyAgICBzdHJ1Y3QgSENJSW5mbyAqaGNpOworICAgIGJkYWRkcl90IGJkYWRkcjsKKworICAgIGlm IChuYl9oY2lzID49IE1BWF9OSUNTKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTog VG9vIG1hbnkgYmx1ZXRvb3RoIEhDSXMgKG1heCAlaSkuXG4iLCBNQVhfTklDUyk7CisgICAgICAg IHJldHVybiAtMTsKKyAgICB9CisKKyAgICBoY2kgPSBoY2lfaW5pdChzdHIpOworICAgIGlmICgh aGNpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBiZGFkZHIuYlswXSA9IDB4NTI7CisgICAg YmRhZGRyLmJbMV0gPSAweDU0OworICAgIGJkYWRkci5iWzJdID0gMHgwMDsKKyAgICBiZGFkZHIu YlszXSA9IDB4MTI7CisgICAgYmRhZGRyLmJbNF0gPSAweDM0OworICAgIGJkYWRkci5iWzVdID0g MHg1NiArIG5iX2hjaXM7CisgICAgaGNpLT5iZGFkZHJfc2V0KGhjaSwgYmRhZGRyLmIpOworCisg ICAgaGNpX3RhYmxlW25iX2hjaXMrK10gPSBoY2k7CisKKyAgICByZXR1cm4gMDsKK30KKworc3Rh dGljIHZvaWQgYnRfdmhjaV9hZGQoaW50IHZsYW5faWQpCit7CisgICAgc3RydWN0IGJ0X3NjYXR0 ZXJuZXRfcyAqdmxhbiA9IHFlbXVfZmluZF9idF92bGFuKHZsYW5faWQpOworCisgICAgaWYgKCF2 bGFuLT5zbGF2ZSkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJxZW11OiB3YXJuaW5nOiBhZGRp bmcgYSBWSENJIHRvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJhbiBlbXB0eSBzY2F0dGVy bmV0ICVpXG4iLCB2bGFuX2lkKTsKKworICAgIGJ0X3ZoY2lfaW5pdChidF9uZXdfaGNpKHZsYW4p KTsKK30KKworc3RhdGljIHN0cnVjdCBidF9kZXZpY2VfcyAqYnRfZGV2aWNlX2FkZChjb25zdCBj aGFyICpvcHQpCit7CisgICAgc3RydWN0IGJ0X3NjYXR0ZXJuZXRfcyAqdmxhbjsKKyAgICBpbnQg dmxhbl9pZCA9IDA7CisgICAgY2hhciAqZW5kcCA9IHN0cnN0cihvcHQsICIsdmxhbj0iKTsKKyAg ICBpbnQgbGVuID0gKGVuZHAgPyBlbmRwIC0gb3B0IDogc3RybGVuKG9wdCkpICsgMTsKKyAgICBj aGFyIGRldm5hbWVbMTBdOworCisgICAgcHN0cmNweShkZXZuYW1lLCBNSU4oc2l6ZW9mKGRldm5h bWUpLCBsZW4pLCBvcHQpOworCisgICAgaWYgKGVuZHApIHsKKyAgICAgICAgdmxhbl9pZCA9IHN0 cnRvbChlbmRwICsgNiwgJmVuZHAsIDApOworICAgICAgICBpZiAoKmVuZHApIHsKKyAgICAgICAg ICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTogdW5yZWNvZ25pc2VkIGJsdWV0b290aCB2bGFuIElk XG4iKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgdmxh biA9IHFlbXVfZmluZF9idF92bGFuKHZsYW5faWQpOworCisgICAgaWYgKCF2bGFuLT5zbGF2ZSkK KyAgICAgICAgZnByaW50ZihzdGRlcnIsICJxZW11OiB3YXJuaW5nOiBhZGRpbmcgYSBzbGF2ZSBk ZXZpY2UgdG8gIgorICAgICAgICAgICAgICAgICAgICAgICAgImFuIGVtcHR5IHNjYXR0ZXJuZXQg JWlcbiIsIHZsYW5faWQpOworCisgICAgaWYgKCFzdHJjbXAoZGV2bmFtZSwgImtleWJvYXJkIikp CisgICAgICAgIHJldHVybiBidF9rZXlib2FyZF9pbml0KHZsYW4pOworCisgICAgZnByaW50Zihz dGRlcnIsICJxZW11OiB1bnN1cHBvcnRlZCBibHVldG9vdGggZGV2aWNlIGAlcydcbiIsIGRldm5h bWUpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJ0X3BhcnNlKGNvbnN0IGNoYXIg Km9wdCkKK3sKKyAgICBjb25zdCBjaGFyICplbmRwLCAqcDsKKyAgICBpbnQgdmxhbjsKKworICAg IGlmIChzdHJzdGFydChvcHQsICJoY2kiLCAmZW5kcCkpIHsKKyAgICAgICAgaWYgKCEqZW5kcCB8 fCAqZW5kcCA9PSAnLCcpIHsKKyAgICAgICAgICAgIGlmICgqZW5kcCkKKyAgICAgICAgICAgICAg ICBpZiAoIXN0cnN0YXJ0KGVuZHAsICIsdmxhbj0iLCAwKSkKKyAgICAgICAgICAgICAgICAgICAg b3B0ID0gZW5kcCArIDE7CisKKyAgICAgICAgICAgIHJldHVybiBidF9oY2lfcGFyc2Uob3B0KTsK KyAgICAgICB9CisgICAgfSBlbHNlIGlmIChzdHJzdGFydChvcHQsICJ2aGNpIiwgJmVuZHApKSB7 CisgICAgICAgIGlmICghKmVuZHAgfHwgKmVuZHAgPT0gJywnKSB7CisgICAgICAgICAgICBpZiAo KmVuZHApIHsKKyAgICAgICAgICAgICAgICBpZiAoc3Ryc3RhcnQoZW5kcCwgIix2bGFuPSIsICZw KSkgeworICAgICAgICAgICAgICAgICAgICB2bGFuID0gc3RydG9sKHAsIChjaGFyICoqKSAmZW5k cCwgMCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgqZW5kcCkgeworICAgICAgICAgICAgICAg ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJxZW11OiBiYWQgc2NhdHRlcm5ldCAnJXMnXG4iLCBw KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZnByaW50 ZihzdGRlcnIsICJxZW11OiBiYWQgcGFyYW1ldGVyICclcydcbiIsIGVuZHAgKyAxKTsKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg fSBlbHNlCisgICAgICAgICAgICAgICAgdmxhbiA9IDA7CisKKyAgICAgICAgICAgIGJ0X3ZoY2lf YWRkKHZsYW4pOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9IGVsc2Ug aWYgKHN0cnN0YXJ0KG9wdCwgImRldmljZToiLCAmZW5kcCkpCisgICAgICAgIHJldHVybiAhYnRf ZGV2aWNlX2FkZChlbmRwKTsKKworICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTogYmFkIGJsdWV0 b290aCBwYXJhbWV0ZXIgJyVzJ1xuIiwgb3B0KTsKKyAgICByZXR1cm4gMTsKK30KKwogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwog LyogUUVNVSBCbG9jayBkZXZpY2VzICovCiAKQEAgLTU4NTksNiArNjAwMCw5IEBAIHN0YXRpYyBp bnQgdXNiX2RldmljZV9hZGQoY29uc3QgY2hhciAqZGV2bmFtZSkKICAgICAgICAgICAgIHJldHVy biAtMTsKICAgICAgICAgbmRfdGFibGVbbmljXS5tb2RlbCA9ICJ1c2IiOwogICAgICAgICBkZXYg PSB1c2JfbmV0X2luaXQoJm5kX3RhYmxlW25pY10pOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChk ZXZuYW1lLCAiYnQiKSB8fCBzdHJzdGFydChkZXZuYW1lLCAiYnQ6IiwgJnApKSB7CisgICAgICAg IGRldiA9IHVzYl9idF9pbml0KGRldm5hbWVbMl0gPyBoY2lfaW5pdChwKSA6CisgICAgICAgICAg ICAgICAgICAgICAgICBidF9uZXdfaGNpKHFlbXVfZmluZF9idF92bGFuKDApKSk7CiAgICAgfSBl bHNlIHsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KQEAgLTgxNDYsNiArODI5MCwxNiBAQCBz dGF0aWMgdm9pZCBoZWxwKGludCBleGl0Y29kZSkKICAgICAgICAgICAgIi1uZXQgbm9uZSAgICAg ICB1c2UgaXQgYWxvbmUgdG8gaGF2ZSB6ZXJvIG5ldHdvcmsgZGV2aWNlczsgaWYgbm8gLW5ldCBv cHRpb25cbiIKICAgICAgICAgICAgIiAgICAgICAgICAgICAgICBpcyBwcm92aWRlZCwgdGhlIGRl ZmF1bHQgaXMgJy1uZXQgbmljIC1uZXQgdXNlcidcbiIKICAgICAgICAgICAgIlxuIgorICAgICAg ICAgICAiLWJ0IGhjaSxudWxsICAgIER1bWIgYmx1ZXRvb3RoIEhDSSAtIGRvZXNuJ3QgcmVzcG9u ZCB0byBjb21tYW5kc1xuIgorICAgICAgICAgICAiLWJ0IGhjaSxob3N0WzppZF1cbiIKKyAgICAg ICAgICAgIiAgICAgICAgICAgICAgICBVc2UgaG9zdCdzIEhDSSB3aXRoIHRoZSBnaXZlbiBuYW1l XG4iCisgICAgICAgICAgICItYnQgaGNpWyx2bGFuPW5dXG4iCisgICAgICAgICAgICIgICAgICAg ICAgICAgICAgRW11bGF0ZSBhIHN0YW5kYXJkIEhDSSBpbiB2aXJ0dWFsIHNjYXR0ZXJuZXQgJ24n XG4iCisgICAgICAgICAgICItYnQgdmhjaVssdmxhbj1uXVxuIgorICAgICAgICAgICAiICAgICAg ICAgICAgICAgIEFkZCBob3N0IGNvbXB1dGVyIHRvIHZpcnR1YWwgc2NhdHRlcm5ldCAnbicgdXNp bmcgVkhDSVxuIgorICAgICAgICAgICAiLWJ0IGRldmljZTpkZXZbLHZsYW49bl1cbiIKKyAgICAg ICAgICAgIiAgICAgICAgICAgICAgICBFbXVsYXRlIGEgYmx1ZXRvb3RoIGRldmljZSAnZGV2JyBp biBzY2F0dGVybmV0ICduJ1xuIgorICAgICAgICAgICAiXG4iCiAjaWZkZWYgQ09ORklHX1NMSVJQ CiAgICAgICAgICAgICItdGZ0cCBkaXIgICAgICAgYWxsb3cgdGZ0cCBhY2Nlc3MgdG8gZmlsZXMg aW4gZGlyIFstbmV0IHVzZXJdXG4iCiAgICAgICAgICAgICItYm9vdHAgZmlsZSAgICAgYWR2ZXJ0 aXNlIGZpbGUgaW4gQk9PVFAgcmVwbGllc1xuIgpAQCAtODI1NCw2ICs4NDA4LDcgQEAgZW51bSB7 CiAgICAgUUVNVV9PUFRJT05fYm9vdHAsCiAgICAgUUVNVV9PUFRJT05fc21iLAogICAgIFFFTVVf T1BUSU9OX3JlZGlyLAorICAgIFFFTVVfT1BUSU9OX2J0LAogCiAgICAgUUVNVV9PUFRJT05fa2Vy bmVsLAogICAgIFFFTVVfT1BUSU9OX2FwcGVuZCwKQEAgLTgzNTEsNiArODUwNiw3IEBAIHN0YXRp YyBjb25zdCBRRU1VT3B0aW9uIHFlbXVfb3B0aW9uc1tdID0gewogI2VuZGlmCiAgICAgeyAicmVk aXIiLCBIQVNfQVJHLCBRRU1VX09QVElPTl9yZWRpciB9LAogI2VuZGlmCisgICAgeyAiYnQiLCBI QVNfQVJHLCBRRU1VX09QVElPTl9idCB9LAogCiAgICAgeyAia2VybmVsIiwgSEFTX0FSRywgUUVN VV9PUFRJT05fa2VybmVsIH0sCiAgICAgeyAiYXBwZW5kIiwgSEFTX0FSRywgUUVNVV9PUFRJT05f YXBwZW5kIH0sCkBAIC04Njg4LDYgKzg4NDQsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAgICAgaW50IGN5bHMsIGhlYWRzLCBzZWNzLCB0cmFuc2xhdGlvbjsKICAgICBjb25z dCBjaGFyICpuZXRfY2xpZW50c1tNQVhfTkVUX0NMSUVOVFNdOwogICAgIGludCBuYl9uZXRfY2xp ZW50czsKKyAgICBjb25zdCBjaGFyICpidF9vcHRzW01BWF9CVF9DTURMSU5FXTsKKyAgICBpbnQg bmJfYnRfb3B0czsKICAgICBpbnQgaGRhX2luZGV4OwogICAgIGludCBvcHRpbmQ7CiAgICAgY29u c3QgY2hhciAqciwgKm9wdGFyZzsKQEAgLTg3NzEsNiArODkyOSw3IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKICAgICB1c2JfZGV2aWNlc19pbmRleCA9IDA7CiAKICAgICBuYl9u ZXRfY2xpZW50cyA9IDA7CisgICAgbmJfYnRfb3B0cyA9IDA7CiAgICAgbmJfZHJpdmVzID0gMDsK ICAgICBuYl9kcml2ZXNfb3B0ID0gMDsKICAgICBoZGFfaW5kZXggPSAtMTsKQEAgLTkwMDYsNiAr OTE2NSwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICAg ICAgbmV0X3NsaXJwX3JlZGlyKG9wdGFyZyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAjZW5k aWYKKyAgICAgICAgICAgIGNhc2UgUUVNVV9PUFRJT05fYnQ6CisgICAgICAgICAgICAgICAgaWYg KG5iX2J0X29wdHMgPj0gTUFYX0JUX0NNRExJTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgZnBy aW50ZihzdGRlcnIsICJxZW11OiB0b28gbWFueSBibHVldG9vdGggb3B0aW9uc1xuIik7CisgICAg ICAgICAgICAgICAgICAgIGV4aXQoMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgIGJ0X29wdHNbbmJfYnRfb3B0cysrXSA9IG9wdGFyZzsKKyAgICAgICAgICAgICAgICBicmVh azsKICNpZmRlZiBIQVNfQVVESU8KICAgICAgICAgICAgIGNhc2UgUUVNVV9PUFRJT05fYXVkaW9f aGVscDoKICAgICAgICAgICAgICAgICBBVURfaGVscCAoKTsKQEAgLTk0ODIsNiArOTY0OCwxMSBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgfQogI2VuZGlmCiAKKyAgICAv KiBpbml0IHRoZSBibHVldG9vdGggd29ybGQgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJfYnRf b3B0czsgaSsrKQorICAgICAgICBpZiAoYnRfcGFyc2UoYnRfb3B0c1tpXSkpCisgICAgICAgICAg ICBleGl0KDEpOworCiAgICAgLyogaW5pdCB0aGUgbWVtb3J5ICovCiAgICAgcGh5c19yYW1fc2l6 ZSA9IG1hY2hpbmUtPnJhbV9yZXF1aXJlICYgflJBTVNJWkVfRklYRUQ7CiAK ------=_Part_77976_15899934.1223723932551--