From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Bodireddy, Bhanuprakash" Subject: Re: If 1 KVM Guest loads the virtio-pci, on top of dpdkvhostuser OVS socket interface, it slows down everything! Date: Mon, 30 May 2016 16:44:55 +0000 Message-ID: <7EE4206A5F421D4FBA0A4623185DE2BD010A4BF7@IRSMSX104.ger.corp.intel.com> References: <7EE4206A5F421D4FBA0A4623185DE2BD0108FA25@IRSMSX104.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "" , dev , "qemu-stable-qX2TKyscuCcdnm+yROfE0A@public.gmane.org" To: "thiagocmartinsc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org" Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-yBygre7rU0TnMu66kgdUjQ@public.gmane.org Sender: "dev" List-Id: dev.dpdk.org RnJvbTogTWFydGlueCAtIOOCuOOCp+ODvOODoOOCuiBbbWFpbHRvOnRoaWFnb2NtYXJ0aW5zY0Bn bWFpbC5jb21dDQpTZW50OiBNb25kYXksIE1heSAzMCwgMjAxNiA1OjAxIFBNDQpUbzogQm9kaXJl ZGR5LCBCaGFudXByYWthc2ggPGJoYW51cHJha2FzaC5ib2RpcmVkZHlAaW50ZWwuY29tPg0KQ2M6 IENocmlzdGlhbiBFaHJoYXJkdCA8Y2hyaXN0aWFuLmVocmhhcmR0QGNhbm9uaWNhbC5jb20+OyA8 ZGV2QG9wZW52c3dpdGNoLm9yZz4gPGRldkBvcGVudnN3aXRjaC5vcmc+OyBkZXYgPGRldkBkcGRr Lm9yZz47IHFlbXUtc3RhYmxlQG5vbmdudS5vcmcNClN1YmplY3Q6IFJlOiBbb3ZzLWRldl0gSWYg MSBLVk0gR3Vlc3QgbG9hZHMgdGhlIHZpcnRpby1wY2ksIG9uIHRvcCBvZiBkcGRrdmhvc3R1c2Vy IE9WUyBzb2NrZXQgaW50ZXJmYWNlLCBpdCBzbG93cyBkb3duIGV2ZXJ5dGhpbmchDQoNCkhlbGxv IEJoYW51LA0KDQogSSdtIGEgbGl0dGxlIGJpdCBjb25mdXNlZCwgeW91IHNhaWQgdGhhdCB0aGUg cHJvYmxlbSBjYW4gYmUgZml4ZWQgYnV0LCBsYXRlciwgeW91IGFsc28gc2FpZCB0aGF0Og0KDQog Ik9uIGEgTXVsdGkgVk0gc2V0dXAgZXZlbiB3aXRoIHRoZSBhYm92ZSBwYXRjaCBhcHBsaWVkLCBv bmUgbWlnaHQgc2VlIGFnZ3JlZ2F0ZSB0aHJvdWdocHV0IGRpZmZlcmVuY2Ugd2hlbiB2TklDIGlz IGJpbmQgdG8gaWdiX3VpbyB2cyB2aXJ0aW8tcGNpIi4uLg0KDQogTXkgaWRlYSBpcyB0byB1c2Ug T1ZTIHdpdGggRFBESyBpbiBhIG11bHRpLXZtIGVudmlyb25tZW50IGJ1dCwgYmFzZWQgb24geW91 ciBhbnN3ZXIsIHRoaXMgaXMgbm90IHBvc3NpYmxlLCBiZWNhdXNlIHRoZSBWTSBBLCBjYW4gaW50 ZXJmZXJlIHdpdGggVk0gQi4uLiBJcyB0aGF0IHRydWUgZXZlbiB3aXRoIHRoYXQgcGF0Y2ggYXBw bGllZCwgY2FuIHlvdSBjb25maXJtIHRoaXM/DQoNCltCSEFOVV0gV2l0aCB0aGUgcGF0Y2ggYXBw bGllZCB0aGUgaXNzdWUgc2hvdWxkIGJlIGZpeGVkLiAgV2l0aG91dCB0aGUgcGF0Y2gsICBWTSBB IGNhbiBpbnRlcmZlcmUgd2l0aCBWTSBCIHdoZW4gVk0gQSBpc27igJl0IHByb2Nlc3NpbmcgaXRz IHF1ZXVlcyB3aGljaCBldmVudHVhbGx5IHRyaWdnZXJzIHZob3N0IHNlbmQgcmV0cmllcyB1bnRp bCB0aW1lb3V0ICgxMDBtcyBpbiB0aGlzIGNhc2UpLiBUaGlzIGNhdXNlIHRoZSBwbWQgdGhyZWFk IHRvIHNsb3cgZG93biBhbmQgdGhhdCBhZmZlY3RzIHRoZSBvdGhlciBWaXJ0dWFsIE1hY2hpbmVz KFZNIEIpIG9uIHRoZSBob3N0IGFzIGhhcHBlbmVkIGluIHlvdXIgY2FzZS4gVGhlIHBhdGNoIHRo YXQgSSBwb2ludGVkIHdpbGwgcmVtb3ZlIHRoZSByZXRyeSBsb2dpYyBjb21wbGV0ZWx5Lg0KDQpB bHNvIGluIHlvdXIgY2FzZSwgcGFja2V0cyBhcmUgc2VudCB0byB0aGUgaWRsZSBWTSAobm8gcGFj a2V0cyBkcmFpbmVkIGZyb20gdGhlIHZpcnQgcXVldWVzIGluc2lkZSkgd2hpY2ggdHJpZ2dlcmVk IHRoZSBpc3N1ZSBhbmQgYWZmZWN0ZWQgdGhlIG5laWdoYm9yaW5nIFZNcy4gY29uc2lkZXIgc2Vu ZGluZyB0aGUgdHJhZmZpYyB0byB0aGUgbmV3bHkgYm9vdGVkIFZNIGFmdGVyIHRoZSBmb3J3YXJk aW5nIGlzIGVuYWJsZWQgaW5zaWRlIHRoZSBndWVzdC4NCg0KIEkgZG9uJ3QgdGhpbmsgdGhhdCBk aXZlcnRpbmcgdGhlIHRyYWZmaWMgZnJvbSBhIFZNIHRoYXQgbG9hZGVkIHZpcnRpby1wY2kgZHJp dmVycyBpcyBhIGRvYWJsZSBzb2x1dGlvbiAoc2luY2UgeW91IGNhbid0IHByZWRpY3Qgd2hhdCB0 aGUgb3duZXJzIG9mIHRoZSBWTXMgd2lsbCBiZSBkb2luZyksIGFsc28sIHNwZWNpYWxseSBiZWNh dXNlIGluIG15IGVudiwgdGhlIERQREsgQXBwIGlzIGEgTDIgYnJpZGdlLCBzbywgaXQgcmVjZWl2 ZXMgdHJhZmZpYyB0aGF0IGlzIG5vdCBkZXN0aW5lZCB0byBpdCAobWlnaHQgYmUgZXZlbiBoYXJk ZXIgdG8gdHJ5IHRvIGRvIHRoaXMpLi4uDQoNCiBJIGhhdmUgYWxsIHRoZSByZXF1aXJlZCBoYXJk d2FyZSB0byBrZWVwIHRlc3RpbmcgdGhpcywgc28sIGxldCBtZSBrbm93IHdoZW4geW91IGd1eXMg KEludGVsIC8gQ2Fub25pY2FsKSBoYXZlIG5ld2VyIHZlcnNpb25zLCBJJ2xsIHRlc3QgaXQgd2l0 aCBwbGVhc3VyZSEgICA6LSkNCltCSEFOVV0gQXBwbHkgdGhlIHBhdGNoIGZyb20gdGhlIHRocmVh ZCBhbmQgdGhpcyBzaG91bGQgcmVzb2x2ZSB0aGUgaXNzdWUgcmVwb3J0ZWQuDQoNClRoYW5rcyEN ClRoaWFnbw0KDQpPbiAyNSBNYXkgMjAxNiBhdCAxMTowMCwgQm9kaXJlZGR5LCBCaGFudXByYWth c2ggPGJoYW51cHJha2FzaC5ib2RpcmVkZHlAaW50ZWwuY29tPG1haWx0bzpiaGFudXByYWthc2gu Ym9kaXJlZGR5QGludGVsLmNvbT4+IHdyb3RlOg0KSSBjb3VsZCByZXByb2R1Y2UgdGhlIGlzc3Vl IGFuZCB0aGlzIGNhbiBiZSBmaXhlZCBhcyBiZWxvdw0KDQpGaXJzdGx5LCB0aGUgdGhyb3VnaHB1 dCBpc3N1ZXMgb2JzZXJ2ZWQgd2l0aCBvdGhlciBWTXMgd2hlbiBhIG5ldyBWTSBpcyBzdGFydGVk IGNhbiBiZSBmaXhlZCB1c2luZyB0aGUgcGF0Y2ggaW4gdGhlIHRocmVhZCBodHRwOi8vb3BlbnZz d2l0Y2gub3JnL3BpcGVybWFpbC9kZXYvMjAxNi1NYXkvMDcxNjE1Lmh0bWwuICBJIGhhdmUgcHV0 IHVwIGFuIGV4cGxhbmF0aW9uIGluIHRoaXMgdGhyZWFkIGZvciB0aGUgY2F1c2Ugb2YgaXNzdWUg ZXNwZWNpYWxseSB3aXRoIG11bHRpIFZNIHNldHVwIG9uIE9WUyBEUERLLg0KDQpPbiBhIE11bHRp IFZNIHNldHVwIGV2ZW4gd2l0aCB0aGUgYWJvdmUgcGF0Y2ggYXBwbGllZCwgb25lIG1pZ2h0IHNl ZSBhZ2dyZWdhdGUgdGhyb3VnaHB1dCBkaWZmZXJlbmNlIHdoZW4gdk5JQyBpcyBiaW5kIHRvIGln Yl91aW8gdnMgdmlydGlvLXBjaSwgdGhpcyBpcyBmb3IgdGhlIGZhY3QgdGhhdCB0aGUgaW50ZXJy dXB0IG92ZXJoZWFkIGlzIHNpZ25pZmljYW50bHkgaGlnaGVyIHdoZW4gdmlydGlvLXBjaSBpcyBp biB1c2UuDQoNCk1vcmUgaW1wb3J0YW50bHkgaWYgeW91IGhhdmUgc2V0dXAgZXhwbGljaXQgZmxv d3MgbWF0Y2hpbmcgVk0ncyBNQUMvSVAsIGRpc2FibGluZyB0aGUgZmxvd3MgdG8gdGhlIFZNIHRo YXQgYXJlIGlkbGUgd291bGQgaW1wcm92ZSB0aGUgYWdncmVnYXRlIHRocm91Z2hwdXQgYW5kIGxl c3NlbiB0aGUgYnVyZGVuIG9uIHRoZSBwbWQgdGhyZWFkLiAgICd3YXRjaCAtZCAuL3V0aWxpdGll cy9vdnMtYXBwY3RsIGRwY3RsL3Nob3cgLXMnIHdpbGwgc2hvdyBuby4gb2YgcGFja2V0IHN0YXRz Lg0KDQpSZWdhcmRzLA0KQmhhbnUgUHJha2FzaC4NCg0KDQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj5Gcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BvcGVudnN3aXRjaC5vcmc8bWFp bHRvOmRldi1ib3VuY2VzQG9wZW52c3dpdGNoLm9yZz5dIE9uIEJlaGFsZiBPZiBDaHJpc3RpYW4N Cj5FaHJoYXJkdA0KPlNlbnQ6IFdlZG5lc2RheSwgTWF5IDI1LCAyMDE2IDc6MDggQU0NCj5Ubzog TWFydGlueCAtIOOCuOOCp+ODvOODoOOCuiA8dGhpYWdvY21hcnRpbnNjQGdtYWlsLmNvbTxtYWls dG86dGhpYWdvY21hcnRpbnNjQGdtYWlsLmNvbT4+DQo+Q2M6IDxkZXZAb3BlbnZzd2l0Y2gub3Jn PG1haWx0bzpkZXZAb3BlbnZzd2l0Y2gub3JnPj4gPGRldkBvcGVudnN3aXRjaC5vcmc8bWFpbHRv OmRldkBvcGVudnN3aXRjaC5vcmc+PjsgZGV2IDxkZXZAZHBkay5vcmc8bWFpbHRvOmRldkBkcGRr Lm9yZz4+Ow0KPnFlbXUtc3RhYmxlQG5vbmdudS5vcmc8bWFpbHRvOnFlbXUtc3RhYmxlQG5vbmdu dS5vcmc+DQo+U3ViamVjdDogUmU6IFtvdnMtZGV2XSBJZiAxIEtWTSBHdWVzdCBsb2FkcyB0aGUg dmlydGlvLXBjaSwgb24gdG9wIG9mDQo+ZHBka3Zob3N0dXNlciBPVlMgc29ja2V0IGludGVyZmFj ZSwgaXQgc2xvd3MgZG93biBldmVyeXRoaW5nIQ0KPg0KPkhpIGFnYWluLA0KPmFub3RoZXIgZm9y Z290dGVuIGNhc2UuDQo+DQo+SSBjdXJyZW50bHkgSSBsYWNrIHRoZSBIVyB0byBmdWxseSByZXBy b2R1Y2UgdGhpcywgYnV0IHRoZSB2aWRlbyBzdW1tYXJ5IGlzDQo+cHJldHR5IGdvb2QgYW5kIHNo b3dzIHRoZSBpc3N1ZSBpbiBhbiBpbXByZXNzaXZlIHdheS4NCj4NCj5BbHNvIHRoZSBkZXNjcmlw dGlvbiBpcyBnb29kIGFuZCBoZXJlIGFzIHdlbGwgSSB3b25kZXIgaWYgYW55Ym9keSBlbHNlIGNv dWxkDQo+cmVwcm9kdWNlIHRoaXMuDQo+QW55IGhpbnRzIC8gaW5zaWdodHMgYXJlIHdlbGNvbWUu DQo+DQo+UC5TLiBhbmQgYWxzbyBhZ2FpbiAtIHR3byBsaXN0IGNyb3NzIHBvc3RpbmcsIGJ1dCBo ZXJlIGFzIHdlbGwgaXQgaXMgeWV0IHVuY2xlYXINCj53aGljaCBpdCBiZWxvbmdzIHRvIHNvIEkn bGwga2VlcCBpdCBhcyB3ZWxsDQo+DQo+Q2hyaXN0aWFuIEVocmhhcmR0DQo+U29mdHdhcmUgRW5n aW5lZXIsIFVidW50dSBTZXJ2ZXINCj5DYW5vbmljYWwgTHRkDQo+DQo+T24gU3VuLCBNYXkgMjIs IDIwMTYgYXQgNjozNSBQTSwgTWFydGlueCAtIOOCuOOCp+ODvOODoOOCug0KPjx0aGlhZ29jbWFy dGluc2NAZ21haWwuY29tPG1haWx0bzp0aGlhZ29jbWFydGluc2NAZ21haWwuY29tPj4NCj53cm90 ZToNCj4NCj4+IEd1eXMsDQo+Pg0KPj4gIEknbSBzZWVpbmcgYSBzdHJhbmdlIHByb2JsZW0gaGVy ZSwgaW4gbXkgT1ZTK0RQREsgZGVwbG95bWVudCwgb24gdG9wDQo+PiBvZiBVYnVudHUgMTYuMDQg KERQREsgMi4yIGFuZCBPVlMgMi41KS4NCj4+DQo+PiAgSGVyZSBpcyB3aGF0IEknbSB0cnlpbmcg dG8gZG86IHJ1biBPVlMgd2l0aCBEUERLIGF0IHRoZSBob3N0LCBmb3IgS1ZNDQo+PiBHdWVzdHMg dGhhdCBhbHNvLCB3aWxsIGJlIHJ1bm5pbmcgbW9yZSBEUERLIEFwcHMuDQo+Pg0KPj4gIFRoZSBo b3N0IGhhdmUgMiB4IDEwRyBOSUNzLCBmb3IgT1ZTK0RQREsgYW5kIGVhY2ggS1ZNIEd1ZXN0IHJl Y2VpdmVzDQo+PiBpdHMgb3duIFZMQU4gdGFnZ2VkIHRyYWZmaWMgKG9yIGFsbCB0YWdzKS4NCj4+ DQo+PiAgVGhlcmUgaXMgYW4gSVhJQSBUcmFmZmljIEdlbmVyYXRvciBzZW5kaW5nIDEwRyBvZiB0 cmFmZmljIG9uIGJvdGgNCj4+IGRpcmVjdGlvbnMgKDIwRyB0b3RhbCkuDQo+Pg0KPj4gIEV4ZW1w bGlmeWluZywgdGhlIHByb2JsZW0gaXMsIGxldHMgc2F5IHRoYXQgSSBhbHJlYWR5IGhhdmUgMiBW TXMgKG9yDQo+PiAxMCkgcnVubmluZyBEUERLIEFwcHMgKG9uIHRvcCBvZiBkcGRrdmhvc3R1c2Vy KSwgZXZlcnl0aGluZyBpcyB3b3JraW5nDQo+PiBhcyBleHBlY3RlZCwgdGhlbiwgaWYgSSBib290 IHRoZSAzcmQgKG9yIDExKSBLVk0gR3Vlc3QsIHRoZSBPVlMrRFBESw0KPj4gYnJpZGdlIGF0IHRo ZSBob3N0LCBzbG93cyBkb3duLCBhIGxvdCEgVGhlIDNyZCAob3IgMTEpIFZNIGFmZmVjdHMgbm90 DQo+PiBvbmx5IHRoZSBob3N0LCBidXQgYWxzbywgYWxsIHRoZSBvdGhlciBuZWlnaGJvcnMgVk1z ISEhDQo+Pg0KPj4gIE5PVEU6IFRoaXMgcHJvYmxlbSBhcHBlYXIgc2luY2UgdGhlIGJvb3Qgb2Yg Vk0gMS4NCj4+DQo+PiAgU29vbiBhcyB5b3UsIGluc2lkZSBvZiB0aGUgM3JkIFZNLCBiaW5kIHRo ZSBWaXJ0SU8gTklDIHRvIHRoZQ0KPj4gRFBESy1Db21wYXRpdmUgRHJpdmVycywgdGhlIHNwZWVk IGNvbWVzIGJhY2sgdG8gbm9ybWFsLiBJZiB5b3UgYmluZCBpdA0KPj4gYmFjayB0byAidmlydGlv LXBjaSIsIGJvb20hIFRoZSBPVlMrRFBESyBhdCB0aGUgaG9zdCBhbmQgYWxsIFZNcyBsb3Nlcw0K Pj4gdG9vIG11Y2ggc3BlZWQuDQo+Pg0KPj4gIFRoaXMgcHJvYmxlbSBpcyBkZXRhaWxlZCBhdCB0 aGUgZm9sbG93aW5nIGJ1ZyByZXBvcnQ6DQo+Pg0KPj4gLS0NCj4+IFRoZSBPVlMrRFBESyBkcGRr dmhvc3R1c2VyIHNvY2tldCBicmlkZ2UsIG9ubHkgd29ya3MgYXMgZXhwZWN0ZWQsIGlmDQo+PiB0 aGUgS1ZNIEd1ZXN0IGFsc28gaGF2ZSBEUERLIGRyaXZlcnMgbG9hZGVkOg0KPj4NCj4+IGh0dHBz Oi8vYnVncy5sYXVuY2hwYWQubmV0L3VidW50dS8rc291cmNlL29wZW52c3dpdGNoLytidWcvMTU3 NzI1Ng0KPj4gLS0NCj4+DQo+PiAgQWxzbywgSSd2ZSByZWNvcmRlZCBhIH4xNSBtaW4gc2NyZWVu IGNhc3QgdmlkZW8gYWJvdXQgdGhpcyBwcm9ibGVtLA0KPj4gc28sIHlvdSBndXlzIGNhbiBzZWUg ZXhhY3RseSB3aGF0IGlzIGhhcHBlbmluZyBoZXJlLg0KPj4NCj4+DQo+aHR0cHM6Ly93d3cueW91 dHViZS5jb20vdi95SG5hU2lrZDlYWT92ZXJzaW9uPTMmdnE9aGQ3MjAmYXV0b3BsYXk9DQo+MQ0K Pj4NCj4+ICAqIEF0IDU6MjUsIEknbSBzdGFydGluZyBhIFZNIHRoYXQgd2lsbCBib290IHVwIGFu ZCBsb2FkIGEgRFBESyBBcHA7DQo+Pg0KPj4gICogQXQgNTozMywgT1ZTK0RQREsgaXMgbWVzc2Vk IHVwLCBpdCBsb3NlcyBzcGVlZDsNCj4+ICAgIFRoZSBLVk0gcnVubmluZyB3aXRoIHZpcnRpby1w Y2kgZHJpdmVycyBicmVha3MgT1ZTK0RQREsgYXQgdGhlDQo+PiBob3N0Ow0KPj4NCj4+ICAqIEF0 IDY6NTAsIERQREsgaW5zaWRlIG9mIHRoZSBLVk0gZ3Vlc3QgbG9hZHMgdXAgaXRzIGRyaXZlcnMs IGtpY2tpbmcNCj4+ICJ2aXJ0aW8tcGNpIiwgc3BlZWQgYmFjayB0byBub3JtYWwgYXQgdGhlIGhv c3Q7DQo+Pg0KPj4gICogQXQgNzo0Mywgc3RhcnRlZCBhbm90aGVyIEtWTSBHdWVzdCwgbm93LCB3 aGlsZSB2aXJ0aW8tcGNpIGRyaXZlciBpcw0KPj4gcnVubmluZywgdGhlIE9WUytEUERLIGF0IHRo ZSBob3N0IGFuZCB0aGUgb3RoZXIgVk0sIGFyZSB2ZXJ5LCB2ZXJ5DQo+PiBzbG93Ow0KPj4NCj4+ ICAqIEF0IDg6NTIsIHRoZSBzZWNvbmQgVk0gbG9hZHMgdXAgRFBESyBEcml2ZXJzLCBraWNraW5n IHZpcnRpby1wY2ksDQo+PiB0aGUgc3BlZWQgaXMgYmFjayB0byBub3JtYWwgYXQgdGhlIGhvc3Qs IGFuZCBvbiB0aGUgb3RoZXIgVk0gdG9vOw0KPj4NCj4+ICAqIEF0IDEwOjAwLCB0aGUgVWJ1bnR1 IFZNIGxvYWRzIHVwIHZpcnRpby1wY2kgZHJpdmVycyBvbiBpdHMgYm9vdCwNCj4+IHRoZSBzcGVl ZCBkcm9wcGVkIGF0IHRoZSBob3N0cyBhbmQgb24gdGhlIG90aGVyIFZNczsNCj4+DQo+PiAgKiAx MTo1NywgSSdtIHN0YXJ0aW5nICJzZXJ2aWNlIGRwZGsgc3RhcnQiIGluc2lkZSBvZiB0aGUgVWJ1 bnR1DQo+PiBndWVzdCwgdG8ga2ljayB1cCB2aXJ0aW8tcGNpLCBhbmQgYmFuZyEgU3BlZWQgaXMg YmFjayB0byBub3JtYWwNCj4+IGV2ZXJ5d2hlcmU7DQo+Pg0KPj4gICogMTI6NTEsIEknbSB0cnlp bmcgdG8gdW5iaW5kIHRoZSBEUERLIERyaXZlcnMgYW5kIHJldHVybiB0aGUNCj4+IHZpcnRpby1w Y2ksIEkgZm9yZ290IHRoZSBzeW50YXggd2hpbGUgcmVjb3JkaW5nIHRoZSB2aWRlbywgd2hpY2gg aXM6DQo+PiAiZHBka19uaWNfYmluZCAtYiA8SUQ+IHZpcnRpby1wY2kiLCBzbywgSSBqdXN0IHJl Ym9vdGVkIGl0LiBCdXQgYm90aA0KPj4gInJlYm9vdCIgb3IgInJlYmluZCB0byB2aXJ0aW8tcGNp IiB0cmlnZ2VycyB0aGUgYnVnLg0KPj4NCj4+DQo+PiBOT1RFOiBJIHRyaWVkIHRvIHN1YnNjcmli ZXIgdG8gcWVtdS1kZXZlbCBidXQsIGl0IGlzIG5vdCB3b3JraW5nLCBJJ20NCj4+IG5vdCByZWNl aXZpbmcgdGhlIGNvbmZpcm1hdGlvbiBlLW1haWwsIHdoaWxlIHFlbXUtc3RhYmxlIHdvcmtlZC4g SQ0KPj4gZG9uJ3Qga25vdyBpZiBpdCB3b3J0aCBzZW5kaW5nIGl0IHRvIExpbnV4IEtlcm5lbCB0 b28uLi4NCj4+DQo+Pg0KPj4gUmVnYXJkcywNCj4+IFRoaWFnbw0KPj4NCj5fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPmRldiBtYWlsaW5nIGxpc3QNCj5k ZXZAb3BlbnZzd2l0Y2gub3JnPG1haWx0bzpkZXZAb3BlbnZzd2l0Y2gub3JnPg0KPmh0dHA6Ly9v cGVudnN3aXRjaC5vcmcvbWFpbG1hbi9saXN0aW5mby9kZXYNCg0KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZGV2IG1haWxpbmcgbGlzdApkZXZAb3BlbnZz d2l0Y2gub3JnCmh0dHA6Ly9vcGVudnN3aXRjaC5vcmcvbWFpbG1hbi9saXN0aW5mby9kZXYK