From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KmPER-0000uL-Ek for qemu-devel@nongnu.org; Sun, 05 Oct 2008 04:44:51 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KmPEQ-0000to-Bg for qemu-devel@nongnu.org; Sun, 05 Oct 2008 04:44:50 -0400 Received: from [199.232.76.173] (port=34784 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KmPEP-0000ti-QY for qemu-devel@nongnu.org; Sun, 05 Oct 2008 04:44:50 -0400 Received: from wf-out-1314.google.com ([209.85.200.169]:5186) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KmPEP-0004rx-3L for qemu-devel@nongnu.org; Sun, 05 Oct 2008 04:44:49 -0400 Received: by wf-out-1314.google.com with SMTP id 27so2295932wfd.4 for ; Sun, 05 Oct 2008 01:44:47 -0700 (PDT) Message-ID: Date: Sun, 5 Oct 2008 11:44:47 +0300 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_12543_20127256.1223196287130" Subject: [Qemu-devel] [PATCH, RFC] Update qemu-tech.texi, needs verification Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel ------=_Part_12543_20127256.1223196287130 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, Currently qemu-tech.texi is no longer in synch with QEMU development. There are obsoleted references to code copying and dyngen versions, TCG has changed a lot regarding code generation and target/host status is no longer accurate. In this patch I've tried to update the document based on my understanding of how stuff works and what is the status of various targets. Please comment. ------=_Part_12543_20127256.1223196287130 Content-Type: plain/text; name=update_qemu_tech.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_flxfd6t2 Content-Disposition: attachment; filename=update_qemu_tech.diff SW5kZXg6IHFlbXUvcWVtdS10ZWNoLnRleGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3FlbXUt dGVjaC50ZXhpCTIwMDgtMTAtMDUgMDY6MDI6MDUuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3Fl bXUtdGVjaC50ZXhpCTIwMDgtMTAtMDUgMDg6Mjg6MzAuMDAwMDAwMDAwICswMDAwCkBAIC0zMywx MSArMzMsMTIgQEAKIAogQG1lbnUKICogaW50cm9fZmVhdHVyZXM6OiAgICAgICAgRmVhdHVyZXMK LSogaW50cm9feDg2X2VtdWxhdGlvbjo6ICAgeDg2IGVtdWxhdGlvbgorKiBpbnRyb194ODZfZW11 bGF0aW9uOjogICB4ODYgYW5kIHg4Ni02NCBlbXVsYXRpb24KICogaW50cm9fYXJtX2VtdWxhdGlv bjo6ICAgQVJNIGVtdWxhdGlvbgogKiBpbnRyb19taXBzX2VtdWxhdGlvbjo6ICBNSVBTIGVtdWxh dGlvbgogKiBpbnRyb19wcGNfZW11bGF0aW9uOjogICBQb3dlclBDIGVtdWxhdGlvbgotKiBpbnRy b19zcGFyY19lbXVsYXRpb246OiBTUEFSQyBlbXVsYXRpb24KKyogaW50cm9fc3BhcmNfZW11bGF0 aW9uOjogU3BhcmMzMiBhbmQgU3BhcmM2NCBlbXVsYXRpb24KKyogaW50cm9fb3RoZXJfZW11bGF0 aW9uOjogT3RoZXIgQ1BVIGVtdWxhdGlvbgogQGVuZCBtZW51CiAKIEBub2RlIGludHJvX2ZlYXR1 cmVzCkBAIC01MSwxNiArNTIsMjMgQEAKIEBpdGVtaXplIEBtaW51cwogCiBAaXRlbQotRnVsbCBz eXN0ZW0gZW11bGF0aW9uLiBJbiB0aGlzIG1vZGUsIFFFTVUgZW11bGF0ZXMgYSBmdWxsIHN5c3Rl bQotKHVzdWFsbHkgYSBQQyksIGluY2x1ZGluZyBhIHByb2Nlc3NvciBhbmQgdmFyaW91cyBwZXJp cGhlcmFscy4gSXQgY2FuCi1iZSB1c2VkIHRvIGxhdW5jaCBhbiBkaWZmZXJlbnQgT3BlcmF0aW5n IFN5c3RlbSB3aXRob3V0IHJlYm9vdGluZyB0aGUKLVBDIG9yIHRvIGRlYnVnIHN5c3RlbSBjb2Rl LgorRnVsbCBzeXN0ZW0gZW11bGF0aW9uLiBJbiB0aGlzIG1vZGUgKGZ1bGwgcGxhdGZvcm0gdmly dHVhbGl6YXRpb24pLAorUUVNVSBlbXVsYXRlcyBhIGZ1bGwgc3lzdGVtICh1c3VhbGx5IGEgUEMp LCBpbmNsdWRpbmcgYSBwcm9jZXNzb3IgYW5kCit2YXJpb3VzIHBlcmlwaGVyYWxzLiBJdCBjYW4g YmUgdXNlZCB0byBsYXVuY2ggc2V2ZXJhbCBkaWZmZXJlbnQKK09wZXJhdGluZyBTeXN0ZW1zIGF0 IG9uY2Ugd2l0aG91dCByZWJvb3RpbmcgdGhlIGhvc3QgbWFjaGluZSBvciB0bworZGVidWcgc3lz dGVtIGNvZGUuCiAKIEBpdGVtCi1Vc2VyIG1vZGUgZW11bGF0aW9uIChMaW51eCBob3N0IG9ubHkp LiBJbiB0aGlzIG1vZGUsIFFFTVUgY2FuIGxhdW5jaAotTGludXggcHJvY2Vzc2VzIGNvbXBpbGVk IGZvciBvbmUgQ1BVIG9uIGFub3RoZXIgQ1BVLiBJdCBjYW4gYmUgdXNlZCB0bwotbGF1bmNoIHRo ZSBXaW5lIFdpbmRvd3MgQVBJIGVtdWxhdG9yIChAdXJse2h0dHA6Ly93d3cud2luZWhxLm9yZ30p IG9yCi10byBlYXNlIGNyb3NzLWNvbXBpbGF0aW9uIGFuZCBjcm9zcy1kZWJ1Z2dpbmcuCitVc2Vy IG1vZGUgZW11bGF0aW9uLiBJbiB0aGlzIG1vZGUgKGFwcGxpY2F0aW9uIGxldmVsIHZpcnR1YWxp emF0aW9uKSwKK1FFTVUgY2FuIGxhdW5jaCBwcm9jZXNzZXMgY29tcGlsZWQgZm9yIG9uZSBDUFUg b24gYW5vdGhlciBDUFUsIGhvd2V2ZXIKK3RoZSBPcGVyYXRpbmcgU3lzdGVtcyBtdXN0IG1hdGNo LiBUaGlzIGNhbiBiZSB1c2VkIGZvciBleGFtcGxlIHRvIGVhc2UKK2Nyb3NzLWNvbXBpbGF0aW9u IGFuZCBjcm9zcy1kZWJ1Z2dpbmcuCisKK0xpbnV4IHVzZXIgZW11bGF0b3IgKExpbnV4IGhvc3Qg b25seSkgY2FuIGJlIHVzZWQgdG8gbGF1bmNoIHRoZSBXaW5lCitXaW5kb3dzIEFQSSBlbXVsYXRv ciAoQHVybHtodHRwOi8vd3d3LndpbmVocS5vcmd9KS4gQSBEYXJ3aW4gdXNlcgorZW11bGF0b3Ig KERhcndpbiBob3N0cyBvbmx5KSBleGlzdHMgYW5kIGEgQlNEIHVzZXIgZW11bGF0b3IgZm9yIEJT RAoraG9zdHMgaXMgdW5kZXIgZGV2ZWxvcG1lbnQuIEl0IHdvdWxkIGFsc28gYmUgcG9zc2libGUg dG8gZGV2ZWxvcCBhCitzaW1pbGFyIHVzZXIgZW11bGF0b3IgZm9yIFNvbGFyaXMuCiAKIEBlbmQg aXRlbWl6ZQogCkBAIC03NSw3ICs4MywxMSBAQAogCiBAaXRlbSBVc2luZyBkeW5hbWljIHRyYW5z bGF0aW9uIHRvIG5hdGl2ZSBjb2RlIGZvciByZWFzb25hYmxlIHNwZWVkLgogCi1AaXRlbSBXb3Jr aW5nIG9uIHg4NiBhbmQgUG93ZXJQQyBob3N0cy4gQmVpbmcgdGVzdGVkIG9uIEFSTSwgU3BhcmMz MiwgQWxwaGEgYW5kIFMzOTAuCitAaXRlbQorV29ya2luZyBvbiB4ODYgYW5kIHg4Nl82NCBob3N0 cy4gQmVpbmcgdGVzdGVkIG9uIEFSTSwgSFBQQSwgUG93ZXJQQworKDMyIGFuZCA2NCBiaXQpLCBT cGFyYzMyIGFuZCBTcGFyYzY0LiBQcmV2aW91cyB2ZXJzaW9ucyBoYWQgc29tZQorc3VwcG9ydCBm b3IgQWxwaGEgYW5kIFMzOTAgaG9zdHMsIGJ1dCBUQ0cgKHNlZSBiZWxvdykgZG9lc24ndCBzdXBw b3J0Cit0aG9zZSB5ZXQuCiAKIEBpdGVtIFNlbGYtbW9kaWZ5aW5nIGNvZGUgc3VwcG9ydC4KIApA QCAtODUsNiArOTcsMTAgQEAKIGluIG90aGVyIHByb2plY3RzIChsb29rIGF0IEBmaWxle3FlbXUv dGVzdHMvcXJ1bmNvbS5jfSB0byBoYXZlIGFuCiBleGFtcGxlIG9mIHVzZXIgbW9kZSBAY29kZXts aWJxZW11fSB1c2FnZSkuCiAKK0BpdGVtCitGbG9hdGluZyBwb2ludCBsaWJyYXJ5IHN1cHBvcnRp bmcgYm90aCBmdWxsIHNvZnR3YXJlIGVtdWxhdGlvbiBhbmQKK25hdGl2ZSBob3N0IEZQVSBpbnN0 cnVjdGlvbnMuCisKIEBlbmQgaXRlbWl6ZQogCiBRRU1VIHVzZXIgbW9kZSBlbXVsYXRpb24gZmVh dHVyZXM6CkBAIC05OCwxOCArMTE0LDI1IEBACiAKIFFFTVUgZnVsbCBzeXN0ZW0gZW11bGF0aW9u IGZlYXR1cmVzOgogQGl0ZW1pemUKLUBpdGVtIFFFTVUgY2FuIGVpdGhlciB1c2UgYSBmdWxsIHNv ZnR3YXJlIE1NVSBmb3IgbWF4aW11bSBwb3J0YWJpbGl0eSBvciB1c2UgdGhlIGhvc3Qgc3lzdGVt IGNhbGwgbW1hcCgpIHRvIHNpbXVsYXRlIHRoZSB0YXJnZXQgTU1VLgorQGl0ZW0KK1FFTVUgY2Fu IGVpdGhlciB1c2UgYSBmdWxsIHNvZnR3YXJlIE1NVSBmb3IgbWF4aW11bSBwb3J0YWJpbGl0eSBv ciB1c2UKK2FuIGluLWtlcm5lbCBhY2NlbGVyYXRvciAoa3FlbXUpIHRvIHNpbXVsYXRlIHRoZSB0 YXJnZXQgTU1VLiBWYXJpb3VzCitoYXJkd2FyZSBkZXZpY2VzIGNhbiBiZSBlbXVsYXRlZCBhbmQg aW4gc29tZSBjYXNlcywgaG9zdCBkZXZpY2VzCisoZS5nLiBzZXJpYWwgYW5kIHBhcmFsbGVsIHBv cnRzLCBVU0IsIGRyaXZlcykgY2FuIGJlIHVzZWQKK3RyYW5zcGFyZW50bHkgYnkgdGhlIGd1ZXN0 IE9wZXJhdGluZyBTeXN0ZW0gZm9yIG1heGltdW0gcGVyZm9ybWFuY2UuCiBAZW5kIGl0ZW1pemUK IAogQG5vZGUgaW50cm9feDg2X2VtdWxhdGlvbgotQHNlY3Rpb24geDg2IGVtdWxhdGlvbgorQHNl Y3Rpb24geDg2IGFuZCB4ODYtNjQgZW11bGF0aW9uCiAKIFFFTVUgeDg2IHRhcmdldCBmZWF0dXJl czoKIAogQGl0ZW1pemUKIAogQGl0ZW0gVGhlIHZpcnR1YWwgeDg2IENQVSBzdXBwb3J0cyAxNiBi aXQgYW5kIDMyIGJpdCBhZGRyZXNzaW5nIHdpdGggc2VnbWVudGF0aW9uLgotTERUL0dEVCBhbmQg SURUIGFyZSBlbXVsYXRlZC4gVk04NiBtb2RlIGlzIGFsc28gc3VwcG9ydGVkIHRvIHJ1biBET1NF TVUuCitMRFQvR0RUIGFuZCBJRFQgYXJlIGVtdWxhdGVkLiBWTTg2IG1vZGUgaXMgYWxzbyBzdXBw b3J0ZWQgdG8gcnVuCitET1NFTVUuIFRoZXJlIGlzIHNvbWUgc3VwcG9ydCBmb3IgTU1YLzNETm93 ISwgU1NFLCBTU0UyLCBTU0UzLCBTU1NFMywKK2FuZCBTU0U0IGFzIHdlbGwgYXMgeDg2LTY0IFNW TS4KIAogQGl0ZW0gU3VwcG9ydCBvZiBob3N0IHBhZ2Ugc2l6ZXMgYmlnZ2VyIHRoYW4gNEtCIGlu IHVzZXIgbW9kZSBlbXVsYXRpb24uCiAKQEAgLTEyNCw5ICsxNDcsNyBAQAogCiBAaXRlbWl6ZQog Ci1AaXRlbSBObyBTU0UvTU1YIHN1cHBvcnQgKHlldCkuCi0KLUBpdGVtIE5vIHg4Ni02NCBzdXBw b3J0LgorQGl0ZW0gTGltaXRlZCB4ODYtNjQgc3VwcG9ydC4KIAogQGl0ZW0gSVBDIHN5c2NhbGxz IGFyZSBtaXNzaW5nLgogCkBAIC0xMzQsMTAgKzE1NSw2IEBACiBtZW1vcnkgYWNjZXNzICh5ZXQp LiBIb3BlZnVsbHksIHZlcnkgZmV3IE9TZXMgc2VlbSB0byByZWx5IG9uIHRoYXQgZm9yCiBub3Jt YWwgdXNlLgogCi1AaXRlbSBPbiBub24geDg2IGhvc3QgQ1BVcywgQGNvZGV7ZG91YmxlfXMgYXJl IHVzZWQgaW5zdGVhZCBvZiB0aGUgbm9uIHN0YW5kYXJkCi0xMCBieXRlIEBjb2Rle2xvbmcgZG91 YmxlfXMgb2YgeDg2IGZvciBmbG9hdGluZyBwb2ludCBlbXVsYXRpb24gdG8gZ2V0Ci1tYXhpbXVt IHBlcmZvcm1hbmNlcy4KLQogQGVuZCBpdGVtaXplCiAKIEBub2RlIGludHJvX2FybV9lbXVsYXRp b24KQEAgLTE5Myw3ICsyMTAsNyBAQAogQGVuZCBpdGVtaXplCiAKIEBub2RlIGludHJvX3NwYXJj X2VtdWxhdGlvbgotQHNlY3Rpb24gU1BBUkMgZW11bGF0aW9uCitAc2VjdGlvbiBTcGFyYzMyIGFu ZCBTcGFyYzY0IGVtdWxhdGlvbgogCiBAaXRlbWl6ZQogCkBAIC0yMTYsOCArMjMzLDI2IEBACiAK IEBpdGVtIEF0b21pYyBpbnN0cnVjdGlvbnMgYXJlIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50ZWQu CiAKLUBpdGVtIFNwYXJjNjQgZW11bGF0b3JzIGFyZSBub3QgdXNhYmxlIGZvciBhbnl0aGluZyB5 ZXQuCitAaXRlbSBUaGVyZSBhcmUgc3RpbGwgc29tZSBwcm9ibGVtcyB3aXRoIFNwYXJjNjQgZW11 bGF0b3JzLgorCitAZW5kIGl0ZW1pemUKKworQG5vZGUgaW50cm9fb3RoZXJfZW11bGF0aW9uCitA c2VjdGlvbiBPdGhlciBDUFUgZW11bGF0aW9uCisKK0luIGFkZHRpb24gdG8gdGhlIGFib3ZlLCBR RU1VIHN1cHBvcnRzIGVtdWxhdGlvbiBvZiBvdGhlciBDUFVzIHdpdGgKK3ZhcnlpbmcgbGV2ZWxz IG9mIHN1Y2Nlc3MuIFRoZXNlIGFyZToKIAorQGl0ZW1pemUKKworQGl0ZW0KK0FscGhhCitAaXRl bQorQ1JJUworQGl0ZW0KK002OGsKK0BpdGVtCitTSDQKIEBlbmQgaXRlbWl6ZQogCiBAbm9kZSBR RU1VIEludGVybmFscwpAQCAtMjI2LDcgKzI2MSw2IEBACiBAbWVudQogKiBRRU1VIGNvbXBhcmVk IHRvIG90aGVyIGVtdWxhdG9yczo6CiAqIFBvcnRhYmxlIGR5bmFtaWMgdHJhbnNsYXRpb246Ogot KiBSZWdpc3RlciBhbGxvY2F0aW9uOjoKICogQ29uZGl0aW9uIGNvZGUgb3B0aW1pc2F0aW9uczo6 CiAqIENQVSBzdGF0ZSBvcHRpbWlzYXRpb25zOjoKICogVHJhbnNsYXRpb24gY2FjaGU6OgpAQCAt MjczLDE5ICszMDcsMjMgQEAKIFFFTVUgYWNjZXB0cyB1bnBhdGNoZWQgTGludXgga2VybmVscy4g VGhlIHByaWNlIHRvIHBheSBpcyB0aGF0IFFFTVUgaXMKIHNsb3dlci4KIAotVGhlIG5ldyBQbGV4 ODYgWzhdIFBDIHZpcnR1YWxpemVyIGlzIGRvbmUgaW4gdGhlIHNhbWUgc3Bpcml0IGFzIHRoZQot cWVtdS1mYXN0IHN5c3RlbSBlbXVsYXRvci4gSXQgcmVxdWlyZXMgYSBwYXRjaGVkIExpbnV4IGtl cm5lbCB0byB3b3JrCi0oeW91IGNhbm5vdCBsYXVuY2ggdGhlIHNhbWUga2VybmVsIG9uIHlvdXIg UEMpLCBidXQgdGhlIHBhdGNoZXMgYXJlCi1yZWFsbHkgc21hbGwuIEFzIGl0IGlzIGEgUEMgdmly dHVhbGl6ZXIgKG5vIGVtdWxhdGlvbiBpcyBkb25lIGV4Y2VwdAotZm9yIHNvbWUgcHJpdmlsZWdl ZCBpbnN0cnVjdGlvbnMpLCBpdCBoYXMgdGhlIHBvdGVudGlhbCBvZiBiZWluZwotZmFzdGVyIHRo YW4gUUVNVS4gVGhlIGRvd25zaWRlIGlzIHRoYXQgYSBjb21wbGljYXRlZCAoYW5kIHBvdGVudGlh bGx5Ci11bnNhZmUpIGhvc3Qga2VybmVsIHBhdGNoIGlzIG5lZWRlZC4KK1RoZSBQbGV4ODYgWzhd IFBDIHZpcnR1YWxpemVyIGlzIGRvbmUgaW4gdGhlIHNhbWUgc3Bpcml0IGFzIHRoZSBub3cKK29i c29sZXRlIHFlbXUtZmFzdCBzeXN0ZW0gZW11bGF0b3IuIEl0IHJlcXVpcmVzIGEgcGF0Y2hlZCBM aW51eCBrZXJuZWwKK3RvIHdvcmsgKHlvdSBjYW5ub3QgbGF1bmNoIHRoZSBzYW1lIGtlcm5lbCBv biB5b3VyIFBDKSwgYnV0IHRoZQorcGF0Y2hlcyBhcmUgcmVhbGx5IHNtYWxsLiBBcyBpdCBpcyBh IFBDIHZpcnR1YWxpemVyIChubyBlbXVsYXRpb24gaXMKK2RvbmUgZXhjZXB0IGZvciBzb21lIHBy aXZpbGVnZWQgaW5zdHJ1Y3Rpb25zKSwgaXQgaGFzIHRoZSBwb3RlbnRpYWwgb2YKK2JlaW5nIGZh c3RlciB0aGFuIFFFTVUuIFRoZSBkb3duc2lkZSBpcyB0aGF0IGEgY29tcGxpY2F0ZWQgKGFuZAor cG90ZW50aWFsbHkgdW5zYWZlKSBob3N0IGtlcm5lbCBwYXRjaCBpcyBuZWVkZWQuCiAKIFRoZSBj b21tZXJjaWFsIFBDIFZpcnR1YWxpemVycyAoVk1XYXJlIFs5XSwgVmlydHVhbFBDIFsxMF0sIFR3 b09TdHdvCiBbMTFdKSBhcmUgZmFzdGVyIHRoYW4gUUVNVSwgYnV0IHRoZXkgYWxsIG5lZWQgc3Bl Y2lmaWMsIHByb3ByaWV0YXJ5CiBhbmQgcG90ZW50aWFsbHkgdW5zYWZlIGhvc3QgZHJpdmVycy4g TW9yZW92ZXIsIHRoZXkgYXJlIHVuYWJsZSB0bwogcHJvdmlkZSBjeWNsZSBleGFjdCBzaW11bGF0 aW9uIGFzIGFuIGVtdWxhdG9yIGNhbi4KIAorVmlydHVhbEJveCBbMTJdLCBYZW4gWzEzXSBhbmQg S1ZNIFsxNF0gYXJlIGJhc2VkIG9uIFFFTVUuIFFFTVUtU3lzdGVtQworWzE1XSB1c2VzIFFFTVUg dG8gc2ltdWxhdGUgYSBzeXN0ZW0gd2hlcmUgc29tZSBoYXJkd2FyZSBkZXZpY2VzIGFyZQorZGV2 ZWxvcGVkIGluIFN5c3RlbUMuCisKIEBub2RlIFBvcnRhYmxlIGR5bmFtaWMgdHJhbnNsYXRpb24K IEBzZWN0aW9uIFBvcnRhYmxlIGR5bmFtaWMgdHJhbnNsYXRpb24KIApAQCAtMjk1LDM0ICszMzMs MTYgQEAKIHdoaWNoIG1ha2UgaXQgcmVsYXRpdmVseSBlYXNpbHkgcG9ydGFibGUgYW5kIHNpbXBs ZSB3aGlsZSBhY2hpZXZpbmcgZ29vZAogcGVyZm9ybWFuY2VzLgogCi1UaGUgYmFzaWMgaWRlYSBp cyB0byBzcGxpdCBldmVyeSB4ODYgaW5zdHJ1Y3Rpb24gaW50byBmZXdlciBzaW1wbGVyCi1pbnN0 cnVjdGlvbnMuIEVhY2ggc2ltcGxlIGluc3RydWN0aW9uIGlzIGltcGxlbWVudGVkIGJ5IGEgcGll Y2Ugb2YgQwotY29kZSAoc2VlIEBmaWxle3RhcmdldC1pMzg2L29wLmN9KS4gVGhlbiBhIGNvbXBp bGUgdGltZSB0b29sCi0oQGZpbGV7ZHluZ2VufSkgdGFrZXMgdGhlIGNvcnJlc3BvbmRpbmcgb2Jq ZWN0IGZpbGUgKEBmaWxle29wLm99KQotdG8gZ2VuZXJhdGUgYSBkeW5hbWljIGNvZGUgZ2VuZXJh dG9yIHdoaWNoIGNvbmNhdGVuYXRlcyB0aGUgc2ltcGxlCi1pbnN0cnVjdGlvbnMgdG8gYnVpbGQg YSBmdW5jdGlvbiAoc2VlIEBmaWxle29wLmg6ZHluZ2VuX2NvZGUoKX0pLgotCi1JbiBlc3NlbmNl LCB0aGUgcHJvY2VzcyBpcyBzaW1pbGFyIHRvIFsxXSwgYnV0IG1vcmUgd29yayBpcyBkb25lIGF0 Ci1jb21waWxlIHRpbWUuCi0KLUEga2V5IGlkZWEgdG8gZ2V0IG9wdGltYWwgcGVyZm9ybWFuY2Vz IGlzIHRoYXQgY29uc3RhbnQgcGFyYW1ldGVycyBjYW4KLWJlIHBhc3NlZCB0byB0aGUgc2ltcGxl IG9wZXJhdGlvbnMuIEZvciB0aGF0IHB1cnBvc2UsIGR1bW15IEVMRgotcmVsb2NhdGlvbnMgYXJl IGdlbmVyYXRlZCB3aXRoIGdjYyBmb3IgZWFjaCBjb25zdGFudCBwYXJhbWV0ZXIuIFRoZW4sCi10 aGUgdG9vbCAoQGZpbGV7ZHluZ2VufSkgY2FuIGxvY2F0ZSB0aGUgcmVsb2NhdGlvbnMgYW5kIGdl bmVyYXRlIHRoZQotYXBwcmlvcHJpYXRlIEMgY29kZSB0byByZXNvbHZlIHRoZW0gd2hlbiBidWls ZGluZyB0aGUgZHluYW1pYyBjb2RlLgotCi1UaGF0IHdheSwgUUVNVSBpcyBubyBtb3JlIGRpZmZp Y3VsdCB0byBwb3J0IHRoYW4gYSBkeW5hbWljIGxpbmtlci4KLQotVG8gZ28gZXZlbiBmYXN0ZXIs IEdDQyBzdGF0aWMgcmVnaXN0ZXIgdmFyaWFibGVzIGFyZSB1c2VkIHRvIGtlZXAgdGhlCi1zdGF0 ZSBvZiB0aGUgdmlydHVhbCBDUFUuCi0KLUBub2RlIFJlZ2lzdGVyIGFsbG9jYXRpb24KLUBzZWN0 aW9uIFJlZ2lzdGVyIGFsbG9jYXRpb24KLQotU2luY2UgUUVNVSB1c2VzIGZpeGVkIHNpbXBsZSBp bnN0cnVjdGlvbnMsIG5vIGVmZmljaWVudCByZWdpc3RlcgotYWxsb2NhdGlvbiBjYW4gYmUgZG9u ZS4gSG93ZXZlciwgYmVjYXVzZSBSSVNDIENQVXMgaGF2ZSBhIGxvdCBvZgotcmVnaXN0ZXIsIG1v c3Qgb2YgdGhlIHZpcnR1YWwgQ1BVIHN0YXRlIGNhbiBiZSBwdXQgaW4gcmVnaXN0ZXJzIHdpdGhv dXQKLWRvaW5nIGNvbXBsaWNhdGVkIHJlZ2lzdGVyIGFsbG9jYXRpb24uCitBZnRlciB0aGUgcmVs ZWFzZSBvZiB2ZXJzaW9uIDAuOS4wLCBRRU1VIHN3aXRjaGVkIHRvIGEgbmV3IG1ldGhvZCBvZgor Z2VuZXJhdGluZyBjb2RlLCBUaW55IENvZGUgR2VuZXJhdG9yIG9yIFRDRy4gVENHIHJlbGF4ZXMg dGhlCitkZXBlbmRlbmN5IG9uIHRoZSBleGFjdCB2ZXJzaW9uIG9mIHRoZSBjb21waWxlciB1c2Vk LiBUaGUgYmFzaWMgaWRlYQoraXMgdG8gc3BsaXQgZXZlcnkgdGFyZ2V0IGluc3RydWN0aW9uIGlu dG8gYSBjb3VwbGUgb2YgUklTQy1saWtlIFRDRworb3BlcmF0aW9ucyAoc2VlIEBjb2Rle3Rhcmdl dC1pMzg2L3RyYW5zbGF0ZS5jfSkuIFNvbWUgb3B0aW1pemF0aW9ucworY2FuIGJlIHBlcmZvcm1l ZCBhdCB0aGlzIHN0YWdlLCBpbmNsdWRpbmcgbGl2ZW5lc3MgYW5hbHlzaXMgYW5kCit0cml2aWFs IGNvbnN0YW50IGV4cHJlc3Npb24gZXZhbHVhdGlvbi4gVENHIG9wZXJhdGlvbnMgYXJlIHRoZW4K K2ltcGxlbWVudGVkIGluIHRoZSBob3N0IENQVSBiYWNrIGVuZCwgYWxzbyBrbm93biBhcyBUQ0cg dGFyZ2V0IChzZWUKK0Bjb2Rle3RjZy9pMzg2L3RjZy10YXJnZXQuY30pLiBGb3IgbW9yZSBpbmZv cm1hdGlvbiwgcGxlYXNlIHRha2UgYQorbG9vayBhdCBAY29kZXt0Y2cvUkVBRE1FfS4KIAogQG5v ZGUgQ29uZGl0aW9uIGNvZGUgb3B0aW1pc2F0aW9ucwogQHNlY3Rpb24gQ29uZGl0aW9uIGNvZGUg b3B0aW1pc2F0aW9ucwpAQCAtMzQzLDE1ICszNjMsMjAgQEAKIHRoZSBjb25kaXRpb24gY29kZXMg YXJlIG5vdCBuZWVkZWQgYnkgdGhlIG5leHQgaW5zdHJ1Y3Rpb25zLCBubwogY29uZGl0aW9uIGNv ZGVzIGFyZSBjb21wdXRlZCBhdCBhbGwuCiAKK1RoaXMgb3B0aW1pemF0aW9uIGlzIG5vdCB5ZXQg aW1wbGVtZW50ZWQgb24gb3RoZXIgdGFyZ2V0cy4KKwogQG5vZGUgQ1BVIHN0YXRlIG9wdGltaXNh dGlvbnMKIEBzZWN0aW9uIENQVSBzdGF0ZSBvcHRpbWlzYXRpb25zCiAKLVRoZSB4ODYgQ1BVIGhh cyBtYW55IGludGVybmFsIHN0YXRlcyB3aGljaCBjaGFuZ2UgdGhlIHdheSBpdCBldmFsdWF0ZXMK LWluc3RydWN0aW9ucy4gSW4gb3JkZXIgdG8gYWNoaWV2ZSBhIGdvb2Qgc3BlZWQsIHRoZSB0cmFu c2xhdGlvbiBwaGFzZQotY29uc2lkZXJzIHRoYXQgc29tZSBzdGF0ZSBpbmZvcm1hdGlvbiBvZiB0 aGUgdmlydHVhbCB4ODYgQ1BVIGNhbm5vdAotY2hhbmdlIGluIGl0LiBGb3IgZXhhbXBsZSwgaWYg dGhlIFNTLCBEUyBhbmQgRVMgc2VnbWVudHMgaGF2ZSBhIHplcm8KLWJhc2UsIHRoZW4gdGhlIHRy YW5zbGF0b3IgZG9lcyBub3QgZXZlbiBnZW5lcmF0ZSBhbiBhZGRpdGlvbiBmb3IgdGhlCi1zZWdt ZW50IGJhc2UuCitUaGUgdGFyZ2V0IENQVXMgaGF2ZSBtYW55IGludGVybmFsIHN0YXRlcyB3aGlj aCBjaGFuZ2UgdGhlIHdheSBpdAorZXZhbHVhdGVzIGluc3RydWN0aW9ucy4gSW4gb3JkZXIgdG8g YWNoaWV2ZSBhIGdvb2Qgc3BlZWQsIHRoZQordHJhbnNsYXRpb24gcGhhc2UgY29uc2lkZXJzIHRo YXQgc29tZSBzdGF0ZSBpbmZvcm1hdGlvbiBvZiB0aGUgdmlydHVhbAorQ1BVIGNhbm5vdCBjaGFu Z2UgaW4gaXQuIFRoZSBzdGF0ZSBpcyByZWNvcmRlZCBpbiB0aGUgVHJhbnNsYXRpb24KK0Jsb2Nr IChUQikuIElmIHRoZSBzdGF0ZSBjaGFuZ2VzIChlLmcuIHByaXZpbGVnZSBsZXZlbCksIGEgbmV3 IFRCIHdpbGwKK2JlIGdlbmVyYXRlZCBhbmQgdGhlIHByZXZpb3VzIFRCIHdvbid0IGJlIHVzZWQg YW55bW9yZSB1bnRpbCB0aGUgc3RhdGUKK21hdGNoZXMgdGhlIHN0YXRlIHJlY29yZGVkIGluIHRo ZSBwcmV2aW91cyBUQi4gRm9yIGV4YW1wbGUsIGlmIHRoZSBTUywKK0RTIGFuZCBFUyBzZWdtZW50 cyBoYXZlIGEgemVybyBiYXNlLCB0aGVuIHRoZSB0cmFuc2xhdG9yIGRvZXMgbm90IGV2ZW4KK2dl bmVyYXRlIGFuIGFkZGl0aW9uIGZvciB0aGUgc2VnbWVudCBiYXNlLgogCiBbVGhlIEZQVSBzdGFj ayBwb2ludGVyIHJlZ2lzdGVyIGlzIG5vdCBoYW5kbGVkIHRoYXQgd2F5IHlldF0uCiAKQEAgLTM3 NSwxMSArNDAwLDYgQEAKIGlzIGtub3duLCBRRU1VIGNhbiBwYXRjaCBhIGJhc2ljIGJsb2NrIHNv IHRoYXQgaXQganVtcHMgZGlyZWN0bHkgdG8gdGhlCiBuZXh0IG9uZS4KIAotVGhlIG1vc3QgcG9y dGFibGUgY29kZSB1c2VzIGFuIGluZGlyZWN0IGp1bXAuIEFuIGluZGlyZWN0IGp1bXAgbWFrZXMK LWl0IGVhc2llciB0byBtYWtlIHRoZSBqdW1wIHRhcmdldCBtb2RpZmljYXRpb24gYXRvbWljLiBP biBzb21lIGhvc3QKLWFyY2hpdGVjdHVyZXMgKHN1Y2ggYXMgeDg2IG9yIFBvd2VyUEMpLCB0aGUg QGNvZGV7SlVNUH0gb3Bjb2RlIGlzCi1kaXJlY3RseSBwYXRjaGVkIHNvIHRoYXQgdGhlIGJsb2Nr IGNoYWluaW5nIGhhcyBubyBvdmVyaGVhZC4KLQogQG5vZGUgU2VsZi1tb2RpZnlpbmcgY29kZSBh bmQgdHJhbnNsYXRlZCBjb2RlIGludmFsaWRhdGlvbgogQHNlY3Rpb24gU2VsZi1tb2RpZnlpbmcg Y29kZSBhbmQgdHJhbnNsYXRlZCBjb2RlIGludmFsaWRhdGlvbgogCkBAIC0zODgsMjggKzQwOCwy MCBAQAogaXMgbW9kaWZpZWQuCiAKIFdoZW4gdHJhbnNsYXRlZCBjb2RlIGlzIGdlbmVyYXRlZCBm b3IgYSBiYXNpYyBibG9jaywgdGhlIGNvcnJlc3BvbmRpbmcKLWhvc3QgcGFnZSBpcyB3cml0ZSBw cm90ZWN0ZWQgaWYgaXQgaXMgbm90IGFscmVhZHkgcmVhZC1vbmx5ICh3aXRoIHRoZQotc3lzdGVt IGNhbGwgQGNvZGV7bXByb3RlY3QoKX0pLiBUaGVuLCBpZiBhIHdyaXRlIGFjY2VzcyBpcyBkb25l IHRvIHRoZQotcGFnZSwgTGludXggcmFpc2VzIGEgU0VHViBzaWduYWwuIFFFTVUgdGhlbiBpbnZh bGlkYXRlcyBhbGwgdGhlCi10cmFuc2xhdGVkIGNvZGUgaW4gdGhlIHBhZ2UgYW5kIGVuYWJsZXMg d3JpdGUgYWNjZXNzZXMgdG8gdGhlIHBhZ2UuCitob3N0IHBhZ2UgaXMgd3JpdGUgcHJvdGVjdGVk IGlmIGl0IGlzIG5vdCBhbHJlYWR5IHJlYWQtb25seS4gVGhlbiwgaWYKK2Egd3JpdGUgYWNjZXNz IGlzIGRvbmUgdG8gdGhlIHBhZ2UsIExpbnV4IHJhaXNlcyBhIFNFR1Ygc2lnbmFsLiBRRU1VCit0 aGVuIGludmFsaWRhdGVzIGFsbCB0aGUgdHJhbnNsYXRlZCBjb2RlIGluIHRoZSBwYWdlIGFuZCBl bmFibGVzIHdyaXRlCithY2Nlc3NlcyB0byB0aGUgcGFnZS4KIAogQ29ycmVjdCB0cmFuc2xhdGVk IGNvZGUgaW52YWxpZGF0aW9uIGlzIGRvbmUgZWZmaWNpZW50bHkgYnkgbWFpbnRhaW5pbmcKIGEg bGlua2VkIGxpc3Qgb2YgZXZlcnkgdHJhbnNsYXRlZCBibG9jayBjb250YWluZWQgaW4gYSBnaXZl biBwYWdlLiBPdGhlcgogbGlua2VkIGxpc3RzIGFyZSBhbHNvIG1haW50YWluZWQgdG8gdW5kbyBk aXJlY3QgYmxvY2sgY2hhaW5pbmcuCiAKLUFsdGhvdWdoIHRoZSBvdmVyaGVhZCBvZiBkb2luZyBA Y29kZXttcHJvdGVjdCgpfSBjYWxscyBpcyBpbXBvcnRhbnQsCi1tb3N0IE1TRE9TIHByb2dyYW1z IGNhbiBiZSBlbXVsYXRlZCBhdCByZWFzb25uYWJsZSBzcGVlZCB3aXRoIFFFTVUgYW5kCi1ET1NF TVUuCi0KLU5vdGUgdGhhdCBRRU1VIGFsc28gaW52YWxpZGF0ZXMgcGFnZXMgb2YgdHJhbnNsYXRl ZCBjb2RlIHdoZW4gaXQgZGV0ZWN0cwotdGhhdCBtZW1vcnkgbWFwcGluZ3MgYXJlIG1vZGlmaWVk IHdpdGggQGNvZGV7bW1hcCgpfSBvciBAY29kZXttdW5tYXAoKX0uCi0KLVdoZW4gdXNpbmcgYSBz b2Z0d2FyZSBNTVUsIHRoZSBjb2RlIGludmFsaWRhdGlvbiBpcyBtb3JlIGVmZmljaWVudDogaWYK LWEgZ2l2ZW4gY29kZSBwYWdlIGlzIGludmFsaWRhdGVkIHRvbyBvZnRlbiBiZWNhdXNlIG9mIHdy aXRlIGFjY2Vzc2VzLAotdGhlbiBhIGJpdG1hcCByZXByZXNlbnRpbmcgYWxsIHRoZSBjb2RlIGlu c2lkZSB0aGUgcGFnZSBpcwotYnVpbHQuIEV2ZXJ5IHN0b3JlIGludG8gdGhhdCBwYWdlIGNoZWNr cyB0aGUgYml0bWFwIHRvIHNlZSBpZiB0aGUgY29kZQotcmVhbGx5IG5lZWRzIHRvIGJlIGludmFs aWRhdGVkLiBJdCBhdm9pZHMgaW52YWxpZGF0aW5nIHRoZSBjb2RlIHdoZW4KLW9ubHkgZGF0YSBp cyBtb2RpZmllZCBpbiB0aGUgcGFnZS4KK09uIFJJU0MgdGFyZ2V0cywgY29ycmVjdGx5IHdyaXR0 ZW4gc29mdHdhcmUgdXNlcyBtZW1vcnkgYmFycmllcnMgYW5kCitjYWNoZSBmbHVzaGVzLCBzbyBz b21lIG9mIHRoZSBwcm90ZWN0aW9uIGFib3ZlIHdvdWxkIG5vdCBiZQorbmVjZXNzYXJ5LiBIb3dl dmVyLCBRRU1VIHN0aWxsIHJlcXVpcmVzIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGFsd2F5cwor bWF0Y2hlcyB0aGUgdGFyZ2V0IGluc3RydWN0aW9ucyBpbiBtZW1vcnkgaW4gb3JkZXIgdG8gaGFu ZGxlCitleGNlcHRpb25zIGNvcnJlY3RseS4KIAogQG5vZGUgRXhjZXB0aW9uIHN1cHBvcnQKIEBz ZWN0aW9uIEV4Y2VwdGlvbiBzdXBwb3J0CkBAIC00MTgsMTAgKzQzMCw5IEBACiBlbmNvdW50ZXJl ZC4KIAogVGhlIGhvc3QgU0lHU0VHViBhbmQgU0lHQlVTIHNpZ25hbCBoYW5kbGVycyBhcmUgdXNl ZCB0byBnZXQgaW52YWxpZAotbWVtb3J5IGFjY2Vzc2VzLiBUaGUgZXhhY3QgQ1BVIHN0YXRlIGNh biBiZSByZXRyaWV2ZWQgYmVjYXVzZSBhbGwgdGhlCi14ODYgcmVnaXN0ZXJzIGFyZSBzdG9yZWQg aW4gZml4ZWQgaG9zdCByZWdpc3RlcnMuIFRoZSBzaW11bGF0ZWQgcHJvZ3JhbQotY291bnRlciBp cyBmb3VuZCBieSByZXRyYW5zbGF0aW5nIHRoZSBjb3JyZXNwb25kaW5nIGJhc2ljIGJsb2NrIGFu ZCBieQotbG9va2luZyB3aGVyZSB0aGUgaG9zdCBwcm9ncmFtIGNvdW50ZXIgd2FzIGF0IHRoZSBl eGNlcHRpb24gcG9pbnQuCittZW1vcnkgYWNjZXNzZXMuIFRoZSBzaW11bGF0ZWQgcHJvZ3JhbSBj b3VudGVyIGlzIGZvdW5kIGJ5CityZXRyYW5zbGF0aW5nIHRoZSBjb3JyZXNwb25kaW5nIGJhc2lj IGJsb2NrIGFuZCBieSBsb29raW5nIHdoZXJlIHRoZQoraG9zdCBwcm9ncmFtIGNvdW50ZXIgd2Fz IGF0IHRoZSBleGNlcHRpb24gcG9pbnQuCiAKIFRoZSB2aXJ0dWFsIENQVSBjYW5ub3QgcmV0cmll dmUgdGhlIGV4YWN0IEBjb2Rle0VGTEFHU30gcmVnaXN0ZXIgYmVjYXVzZQogaW4gc29tZSBjYXNl cyBpdCBpcyBub3QgY29tcHV0ZWQgYmVjYXVzZSBvZiBjb25kaXRpb24gY29kZQpAQCAtNDMxLDE1 ICs0NDIsMTAgQEAKIEBub2RlIE1NVSBlbXVsYXRpb24KIEBzZWN0aW9uIE1NVSBlbXVsYXRpb24K IAotRm9yIHN5c3RlbSBlbXVsYXRpb24sIFFFTVUgdXNlcyB0aGUgbW1hcCgpIHN5c3RlbSBjYWxs IHRvIGVtdWxhdGUgdGhlCi10YXJnZXQgQ1BVIE1NVS4gSXQgd29ya3MgYXMgbG9uZyB0aGUgZW11 bGF0ZWQgT1MgZG9lcyBub3QgdXNlIGFuIGFyZWEKLXJlc2VydmVkIGJ5IHRoZSBob3N0IE9TIChz dWNoIGFzIHRoZSBhcmVhIGFib3ZlIDB4YzAwMDAwMDAgb24geDg2Ci1MaW51eCkuCi0KLUluIG9y ZGVyIHRvIGJlIGFibGUgdG8gbGF1bmNoIGFueSBPUywgUUVNVSBhbHNvIHN1cHBvcnRzIGEgc29m dAotTU1VLiBJbiB0aGF0IG1vZGUsIHRoZSBNTVUgdmlydHVhbCB0byBwaHlzaWNhbCBhZGRyZXNz IHRyYW5zbGF0aW9uIGlzCi1kb25lIGF0IGV2ZXJ5IG1lbW9yeSBhY2Nlc3MuIFFFTVUgdXNlcyBh biBhZGRyZXNzIHRyYW5zbGF0aW9uIGNhY2hlIHRvCi1zcGVlZCB1cCB0aGUgdHJhbnNsYXRpb24u CitGb3Igc3lzdGVtIGVtdWxhdGlvbiBRRU1VIHN1cHBvcnRzIGEgc29mdCBNTVUuIEluIHRoYXQg bW9kZSwgdGhlIE1NVQordmlydHVhbCB0byBwaHlzaWNhbCBhZGRyZXNzIHRyYW5zbGF0aW9uIGlz IGRvbmUgYXQgZXZlcnkgbWVtb3J5CithY2Nlc3MuIFFFTVUgdXNlcyBhbiBhZGRyZXNzIHRyYW5z bGF0aW9uIGNhY2hlIHRvIHNwZWVkIHVwIHRoZQordHJhbnNsYXRpb24uCiAKIEluIG9yZGVyIHRv IGF2b2lkIGZsdXNoaW5nIHRoZSB0cmFuc2xhdGVkIGNvZGUgZWFjaCB0aW1lIHRoZSBNTVUKIG1h cHBpbmdzIGNoYW5nZSwgUUVNVSB1c2VzIGEgcGh5c2ljYWxseSBpbmRleGVkIHRyYW5zbGF0aW9u IGNhY2hlLiBJdApAQCAtNTEzLDkgKzUxOSw5IEBACiBlbXVsYXRvci4KIAogQWNoaWV2aW5nIHNl bGYtdmlydHVhbGl6YXRpb24gaXMgbm90IGVhc3kgYmVjYXVzZSB0aGVyZSBtYXkgYmUgYWRkcmVz cwotc3BhY2UgY29uZmxpY3RzLiBRRU1VIHNvbHZlcyB0aGlzIHByb2JsZW0gYnkgYmVpbmcgYW4g ZXhlY3V0YWJsZSBFTEYKLXNoYXJlZCBvYmplY3QgYXMgdGhlIGxkLWxpbnV4LnNvIEVMRiBpbnRl cnByZXRlci4gVGhhdCB3YXksIGl0IGNhbiBiZQotcmVsb2NhdGVkIGF0IGxvYWQgdGltZS4KK3Nw YWNlIGNvbmZsaWN0cy4gUUVNVSB1c2VyIGVtdWxhdG9ycyBzb2x2ZSB0aGlzIHByb2JsZW0gYnkg YmVpbmcgYW4KK2V4ZWN1dGFibGUgRUxGIHNoYXJlZCBvYmplY3QgYXMgdGhlIGxkLWxpbnV4LnNv IEVMRiBpbnRlcnByZXRlci4gVGhhdAord2F5LCBpdCBjYW4gYmUgcmVsb2NhdGVkIGF0IGxvYWQg dGltZS4KIAogQG5vZGUgQmlibGlvZ3JhcGh5CiBAc2VjdGlvbiBCaWJsaW9ncmFwaHkKQEAgLTU2 OCw2ICs1NzQsMjIgQEAKIEB1cmx7aHR0cDovL3d3dy50d29vc3R3by5vcmcvfSwKIFRoZSBUd29P U3R3byBQQyB2aXJ0dWFsaXplci4KIAorQGl0ZW0gWzEyXQorQHVybHtodHRwOi8vdmlydHVhbGJv eC5vcmcvfSwKK1RoZSBWaXJ0dWFsQm94IFBDIHZpcnR1YWxpemVyLgorCitAaXRlbSBbMTNdCitA dXJse2h0dHA6Ly93d3cueGVuLm9yZy99LAorVGhlIFhlbiBoeXBlcnZpc29yLgorCitAaXRlbSBb MTRdCitAdXJse2h0dHA6Ly9rdm0ucXVtcmFuZXQuY29tL2t2bXdpa2kvRnJvbnRfUGFnZX0sCitL ZXJuZWwgQmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pLgorCitAaXRlbSBbMTVdCitAdXJse2h0 dHA6Ly93d3cuZ3JlZW5zb2NzLmNvbS9wcm9qZWN0cy9RRU1VU3lzdGVtQ30sCitRRU1VLVN5c3Rl bUMsIGEgaGFyZHdhcmUgY28tc2ltdWxhdG9yLgorCiBAZW5kIHRhYmxlCiAKIEBub2RlIFJlZ3Jl c3Npb24gVGVzdHMK ------=_Part_12543_20127256.1223196287130--