From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Bish, Jim" Subject: Re: [drm_hwcomposer PATCH] Take Connection state into account. (v2) Date: Wed, 3 Jan 2018 18:32:03 +0000 Message-ID: <1515004326.2873.10.camel@intel.com> References: <20180103101007.27037-1-issor.oruam@gmail.com> <1514978193.5740.16.camel@collabora.com> Reply-To: "Bish, Jim" Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1621955049==" Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5251D896A5 for ; Wed, 3 Jan 2018 18:32:05 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "issor.oruam@gmail.com" , "robert.foss@collabora.com" Cc: "dri-devel@lists.freedesktop.org" , "qiang.yu@amd.com" List-Id: dri-devel@lists.freedesktop.org --===============1621955049== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_1515004326287310camelintelcom_" --_000_1515004326287310camelintelcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gV2VkLCAyMDE4LTAxLTAzIGF0IDEzOjQwICswMTAwLCBNYXVybyBSb3NzaSB3cm90ZToNCg0K DQoyMDE4LTAxLTAzIDEyOjE2IEdNVCswMTowMCBSb2JlcnQgRm9zcyA8cm9iZXJ0LmZvc3NAY29s bGFib3JhLmNvbTxtYWlsdG86cm9iZXJ0LmZvc3NAY29sbGFib3JhLmNvbT4+Og0KSGV5IE1hdXJv LA0KDQpUaGFua3MgZm9yIHRoZSBwYXRjaCEgSXQgYnVpbGRzIGFuZCBsb29rcyBnb29kIHRvIG1l LCBidXQgSSBoYXZlIHNvbWUNCnN1Z2dlc3Rpb25zIGhvd2V2ZXIuDQoNCg0KT24gV2VkLCAyMDE4 LTAxLTAzIGF0IDExOjEwICswMTAwLCBNYXVybyBSb3NzaSB3cm90ZToNCj4gVGhlc2UgY2hhbmdl cyBhdm9pZCBmb2xsb3dpbmcgbG9nY2F0IGVycm9yIG9uIGludGVncmF0ZWQgYW5kDQo+IGRlZGlj YXRlZCBHUFVzOg0KPg0KPiAuLi4gMjI0NSAgMjI0NSBFIGh3Yy1kcm0tcmVzb3VyY2VzOiBDb3Vs ZCBub3QgZmluZCBhIHN1aXRhYmxlDQo+IGVuY29kZXIvY3J0YyBmb3IgZGlzcGxheSAyDQo+IC4u LiAyMjQ1ICAyMjQ1IEUgaHdjLWRybS1yZXNvdXJjZXM6IEZhaWxlZCBDcmVhdGVEaXNwbGF5UGlw ZSA1NiB3aXRoDQo+IC0xOQ0KPiAuLi4gMjI0NSAgMjI0NSBFIGh3Y29tcG9zZXItZHJtOiBDYW4n dCBpbml0aWFsaXplIERybSBvYmplY3QgLTE5DQoNCkl0IGlzbid0IHF1aXRlIGNsZWFyIGNsZWFy IHdoaWNoIGVycm9ycyBiZWxvbmcgdG8gd2hpY2ggY2hhbmdlcywNCnRvIG1ha2UgdGhpcyBwYXRj aCBhIGJpdCBtb3JlIGJpc2VjdGFibGUgaXQgd291bGQgYmUgbmljZSB0byBzZWUNCmluZGVwZW5k ZW50IGNvbW1pdHMgY3JlYXRlZCBmb3IgZWFjaCBlcnJvci4NCg0KSGkgUm9iZXJ0LA0KDQpJbiB0 aGlzIGNhc2UgSSBob25lc3RseSBkbyBub3QgdGhpbmsgdGhhdCBzcGxpdHRpbmcgd291bGQgYWRk IHRvbyBtdWNoIHZhbHVlLA0Kb3JpZ2luYWwgY29tbWl0ICh2MSkgaXMgIHdlbGwgZG9jdW1lbnRl ZCBpbiBbMV0gYW5kIHRhY2tsZXMgd2l0aCBidWcgaW4gZHJtcmVzb3VyY2VzLmNwcA0Kd2hpY2gg Y3VycmVudGx5IGZhaWxzIHRvIGZpbmQgd29ya2FibGUgY3J0YyAtPiBlbmNvZGVyIC0+IGRpc3Bs YXkgb3V0cHV0IGNvbWJpbmF0aW9uDQpmb3IgaW50ZWdyYXRlZCBhbmQgZGVkaWNhdGVkIEdQVXMu IEJlc2lkZXMgdGhhdCBpdCB3YXMgYWxzbyBhZGRpbmcgRGlzcGxheVBvcnQgZHJtIG1vZGUgY29u bmVjdG9yIHR5cGUNCg0KU28gY2hhbmdlcyBpbiBkcm1yZXNvdXJjZXMuY3BwIGJlbG9uZyB0byBz b2x2aW5nICJDb3VsZCBub3QgZmluZCBhIHN1aXRhYmxlIGVuY29kZXIvY3J0YyBmb3IgZGlzcGxh eSBYIiBwcm9ibGVtLA0Kd2hpY2ggaXMgYSBzaG93IHN0b3BwZXIgZm9yIGVuYWJsaW5nIG1haW5s aW5lIGdyYXBoaWNzIGluIGFuZHJvaWQteDg2DQoNCk90aGVyIGRldmVsb3BlcnMgb2JzZXJ2ZWQg aW5kZXBlbmRlbnRseSB0aGF0IHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGlzICJlbWJlZGRl ZCBvcmllbnRlZCIgYW5kIG9ubHkgY2hlY2tzIHRoZSBmaXJzdCBkaXNwbGF5IG91dHB1dCwNCmlz bid0IGl0Pw0KDQpUaGUgb25seSBjaGFuZ2UgSSBkaWQgaW4gZHJtY29ubmVjdG9yLmNwcCBpcyB0 byBhY2NvdW50IGZvciB0aGUgYWRkaXRpb25hbCBleHRlcm5hbCBkcm0gbW9kZSBjb25uZWN0b3Jz IHR5cGVzDQp3aGljaCB3ZXJlIG1pc3NpbmcgKERWSUQsIERWSUksIFZHQSkgLiBPbmUgcXVlc3Rp b24gb24gbXkgc2lkZTogRG8gd2UgbmVlZCBtb3JlPw0KDQpCZXNpZGVzIHRoZXNlIG1pbm9yIHR5 cGVzIGxpc3RzIGRpc2N1c3Npb25zLCBJIHdvdWxkIHByb3Bvc2UgeW91IHRvIGNoZWNrIHdpdGgg SmltIEJpc2ggaWYgaGUgc2hvdWxkIGhhdmUgdGhlIGNyZWRpdCBmb3IgdGhlIHBhdGNoDQphbmQg cmV2aWV3IHRoZSBjb2Rpbmcgb2YgaGlzIGNoYW5nZXMuDQppdCB3b3VsZCBiZSBwcm9wZXIgdG8g a2VlcCB0aGUgb3JpZ2luYWwgYXV0aG9yIHNpZ25vZmYgYnV0IG9rIHRvIGFkZCBhZGRpdGlvbmFs IHNpZ25vZmYvdGVzdGluZywgZXRjLiAgSSBhbSBub3Qgc28gd29ycmllZCBhYm91dCBjcmVkaXQg Zm9yIHRoaXMganVzdCBwYXRjaCBidXQgZ29vZCB0byBmb2xsb3dpbmcgcHJvcGVyIHByb2NlZHVy ZXMuDQoNCg0KPg0KPiAodjEpIFRoZXJlIGFyZSB2YXJpb3VzIHBsYWNlcyB3aGVyZSB3ZSBzaG91 bGQgYmUgcmVhbGx5IHRha2luZw0KPiBjb25uZWN0aW9uDQo+IHN0YXRlIGludG8gYWNjb3VudCBi ZWZvcmUgcXVlcnlpbmcgdGhlIHByb3BlcnRpZXMgb3IgYXNzdW1pbmcgaXQNCj4gYXMgcHJpbWFy eS4gVGhpcyBwYXRjaCBmaXhlcyB0aGVtLg0KPg0KPiBCVUc9Tm9uZS4NCj4gVEVTVD1TeXN0ZW0g Ym9vdHMgdXAgYW5kIHNob3dzIFVJLg0KPg0KPiAodjEpIFNpZ25lZC1vZmYtYnk6IEppbSBCaXNo IDxqaW0uYmlzaEBpbnRlbC5jb208bWFpbHRvOmppbS5iaXNoQGludGVsLmNvbT4+DQo+DQo+ICh2 MikgcG9ydGluZyBvZiBvcmlnaW5hbCBjb21taXQgNzZmYjg3ZTY3NSBvZiBhbmRyb2lkLWlhIG1h c3Rlcg0KPiB3aXRoIGFkZGl0aW9uYWwgZXh0ZXJuYWwgY29ubmVjdG9yIHR5cGVzIChEaXNwbGF5 UG9ydCwgRFZJRCwgRFZJSSwNCj4gVkdBKQ0KPiBUZXN0ZWQgd2l0aCBpOTY1IG9uIFNhbmR5YnJp ZGdlIGFuZCBub3V2ZWF1IG9uIEdUMTIwLCBHVDYxMA0KDQpUaGUgY29tbWl0IG1lc3NhZ2UgaXNu J3QgcmVhbGx5IGZvbGxvd2luZyB0aGUgdXN1YWwgZm9ybWF0LiBJdCBkb2Vzbid0DQpuZWVkIHRv IGluY2x1ZGUgYSBjaGFuZ2Vsb2cgKHRoYXQgaXMgdHlwaWNhbGx5IHBsYWNlZCBiZXR3ZWVuIHRo ZSAiLS0tIg0KbWFya2VycyBpbiB0aGUgZW1haWwgaW5zdGVhZCksDQphbmQgaXQgaXMgbWlzc2lu ZyBhIHNpZ25vZmYgZnJvbSB0aGUgc3VibWl0dGVyICh5b3UpLg0KDQpTb3JyeSBJIGRvbid0IGhh dmUgYSBzaWduYXR1cmUsIGFzIHVzdWFsbHkgbXkgcGF0Y2hlcyBuZWVkIHNpZ24tb2ZmIGZyb20g cHJvZmVzc2lvbmFscywNCkknbSBhIChjcmFzaCB0ZXN0IGR1bW15KSBob2JieWlzdC4ucmVhbGx5 IDotKQ0KDQpNYXliZSBSb2IgSGVycmluZywgUWlhbmcgWXUgIG9yIENoaWgtV2VpIGNvdWxkIHJl dmlldyBhbmQgc2lnbi1vZmYgdGhlIHByb3Bvc2VkIHBhdGNoDQoNCg0KVGhlIEJVRyBhbmQgVEVT VCBmaWVsZHMgYXJlIG5vdCBzdHJpY3RseSByZXF1aXJlZCBlaXRoZXIsIGJ1dCBhcmVuJ3QgYQ0K cHJvYmxlbS4NCg0KVGhhdCBwYXJ0IGlzIHRoZSBvcmlnaW5hbCBKaW0gQmlzaCBjb21taXQgbWVz c2FnZSBbMV0sIG15IGNoYW5nZXMgdmVyc2lvbiBpcyAodjIpDQpTb3JyeSBpZiBJIHdhcyBub3Qg Y2xlYXIgZW5vdWdodA0KDQoNCj4gLS0tDQo+ICBkcm1jb25uZWN0b3IuY3BwIHwgNCArKystDQo+ ICBkcm1yZXNvdXJjZXMuY3BwIHwgOSArKysrKysrLS0NCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTAg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL2RybWNvbm5l Y3Rvci5jcHAgYi9kcm1jb25uZWN0b3IuY3BwDQo+IGluZGV4IDI0N2Y1NmIuLjE0NTUxOGYgMTAw NjQ0DQo+IC0tLSBhL2RybWNvbm5lY3Rvci5jcHANCj4gKysrIGIvZHJtY29ubmVjdG9yLmNwcA0K PiBAQCAtNzMsNyArNzMsOSBAQCBib29sIERybUNvbm5lY3Rvcjo6aW50ZXJuYWwoKSBjb25zdCB7 DQo+ICB9DQo+DQo+ICBib29sIERybUNvbm5lY3Rvcjo6ZXh0ZXJuYWwoKSBjb25zdCB7DQo+IC0g IHJldHVybiB0eXBlXyA9PSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUE7DQo+ICsgIHJldHVybiB0 eXBlXyA9PSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUEgfHwgdHlwZV8gPT0NCj4gRFJNX01PREVf Q09OTkVDVE9SX0Rpc3BsYXlQb3J0IHx8DQo+ICsgICAgICAgICB0eXBlXyA9PSBEUk1fTU9ERV9D T05ORUNUT1JfRFZJRCB8fCB0eXBlXyA9PQ0KPiBEUk1fTU9ERV9DT05ORUNUT1JfRFZJSSB8fA0K PiArICAgICAgICAgdHlwZV8gPT0gRFJNX01PREVfQ09OTkVDVE9SX1ZHQTsNCj4gIH0NCg0KVGhl IGNoYW5nZXMgdG8gZXh0ZXJuYWwoKSBzaG91bGQgcHJvYmFibHkgYmUgYnJva2VuIG91dCBpbnRv IGl0J3Mgb3duDQpjb21taXQsIHNpbmNlIGV4dGVybmFsKCkgaXMgY2FsbGVkIGVsc2V3aGVyZSBj aGFuZ2VzIHRvIGl0IF9jb3VsZF8NCmludHJvZHVjZSBpc3N1ZXMuDQoNCldpbGwgeW91IGNoZWNr IHRoZSBjb2RlLCBpbnZvbHZpbmcgSmltIEJpc2ggaWYgbmVjZXNzYXJ5LCBhYm91dCB0aGVzZSBw b3RlbnRpYWwgaXNzdWVzPw0KSSBhbSBhdmFpbGFibGUgdG8gcGVyZm9ybSBjaGFuZ2VzL3Rlc3Rz LCBidXQgdGhlIG9yaWdpbmFsIG1ha2VyIHdpbGwgYmUgYmV0dGVyLg0KQ2hlZXJzDQoNCk1hdXJv DQoNCg0KPg0KPiAgYm9vbCBEcm1Db25uZWN0b3I6OnZhbGlkX3R5cGUoKSBjb25zdCB7DQo+IGRp ZmYgLS1naXQgYS9kcm1yZXNvdXJjZXMuY3BwIGIvZHJtcmVzb3VyY2VzLmNwcA0KPiBpbmRleCAz MmRkMzc2Li5kNTgyY2ZlIDEwMDY0NA0KPiAtLS0gYS9kcm1yZXNvdXJjZXMuY3BwDQo+ICsrKyBi L2RybXJlc291cmNlcy5jcHANCj4gQEAgLTE1OSw3ICsxNTksNyBAQCBpbnQgRHJtUmVzb3VyY2Vz OjpJbml0KCkgew0KPg0KPiAgICAvLyBGaXJzdCBsb29rIGZvciBwcmltYXJ5IGFtb25nc3QgaW50 ZXJuYWwgY29ubmVjdG9ycw0KPiAgICBmb3IgKGF1dG8gJmNvbm4gOiBjb25uZWN0b3JzXykgew0K PiAtICAgIGlmIChjb25uLT5pbnRlcm5hbCgpICYmICFmb3VuZF9wcmltYXJ5KSB7DQo+ICsgICAg aWYgKGNvbm4tPnN0YXRlKCkgPT0gRFJNX01PREVfQ09OTkVDVEVEICYmIGNvbm4tPmludGVybmFs KCkgJiYNCj4gIWZvdW5kX3ByaW1hcnkpIHsNCj4gICAgICAgIGNvbm4tPnNldF9kaXNwbGF5KDAp Ow0KPiAgICAgICAgZm91bmRfcHJpbWFyeSA9IHRydWU7DQo+ICAgICAgfSBlbHNlIHsNCj4gQEAg LTE3MCw3ICsxNzAsNyBAQCBpbnQgRHJtUmVzb3VyY2VzOjpJbml0KCkgew0KPg0KPiAgICAvLyBU aGVuIGxvb2sgZm9yIHByaW1hcnkgYW1vbmdzdCBleHRlcm5hbCBjb25uZWN0b3JzDQo+ICAgIGZv ciAoYXV0byAmY29ubiA6IGNvbm5lY3RvcnNfKSB7DQo+IC0gICAgaWYgKGNvbm4tPmV4dGVybmFs KCkgJiYgIWZvdW5kX3ByaW1hcnkpIHsNCj4gKyAgICBpZiAoY29ubi0+c3RhdGUoKSA9PSBEUk1f TU9ERV9DT05ORUNURUQgJiYgY29ubi0+ZXh0ZXJuYWwoKSAmJg0KPiAhZm91bmRfcHJpbWFyeSkg ew0KPiAgICAgICAgY29ubi0+c2V0X2Rpc3BsYXkoMCk7DQo+ICAgICAgICBmb3VuZF9wcmltYXJ5 ID0gdHJ1ZTsNCj4gICAgICB9DQo+IEBAIC0yODgsNiArMjg4LDExIEBAIGludCBEcm1SZXNvdXJj ZXM6OlRyeUVuY29kZXJGb3JEaXNwbGF5KGludA0KPiBkaXNwbGF5LCBEcm1FbmNvZGVyICplbmMp IHsNCj4NCj4gIGludCBEcm1SZXNvdXJjZXM6OkNyZWF0ZURpc3BsYXlQaXBlKERybUNvbm5lY3Rv ciAqY29ubmVjdG9yKSB7DQo+ICAgIGludCBkaXNwbGF5ID0gY29ubmVjdG9yLT5kaXNwbGF5KCk7 DQo+ICsNCj4gKyAgLy8gc2tpcCBub3QgY29ubmVjdGVkDQo+ICsgIGlmIChjb25uZWN0b3ItPnN0 YXRlKCkgPT0gRFJNX01PREVfRElTQ09OTkVDVEVEKQ0KPiArICAgIHJldHVybiAwOw0KPiArDQo+ ICAgIC8qIFRyeSB0byB1c2UgY3VycmVudCBzZXR1cCBmaXJzdCAqLw0KPiAgICBpZiAoY29ubmVj dG9yLT5lbmNvZGVyKCkpIHsNCj4gICAgICBpbnQgcmV0ID0gVHJ5RW5jb2RlckZvckRpc3BsYXko ZGlzcGxheSwgY29ubmVjdG9yLT5lbmNvZGVyKCkpOw0KDQoNClsxXSBodHRwczovL2dpdGh1Yi5j b20vYW5kcm9pZC1pYS9leHRlcm5hbC1kcm1faHdjb21wb3Nlci9jb21taXQvNzZmYjg3ZTY3NWEy MDQ0OWQxMjYxZmNjYmE1MzAzYWVlN2JlM2RiYQ0KDQo= --_000_1515004326287310camelintelcom_ Content-Type: text/html; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IGJnY29sb3I9IiNmZmZm ZmYiIHRleHQ9IiM0YzRjNGMiIGxpbms9IiNmMDc3NDYiIHZsaW5rPSIjZjA3NzQ2Ij4NCjxkaXY+ T24gV2VkLCAyMDE4LTAxLTAzIGF0IDEzOjQwICYjNDM7MDEwMCwgTWF1cm8gUm9zc2kgd3JvdGU6 PC9kaXY+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4NCjxkaXYgZGlyPSJsdHIiPjxicj4NCjxk aXYgY2xhc3M9ImdtYWlsX2V4dHJhIj48YnI+DQo8ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+MjAx OC0wMS0wMyAxMjoxNiBHTVQmIzQzOzAxOjAwIFJvYmVydCBGb3NzIDxzcGFuIGRpcj0ibHRyIj4m bHQ7PGEgaHJlZj0ibWFpbHRvOnJvYmVydC5mb3NzQGNvbGxhYm9yYS5jb20iIHRhcmdldD0iX2Js YW5rIj5yb2JlcnQuZm9zc0Bjb2xsYWJvcmEuY29tPC9hPiZndDs8L3NwYW4+Ojxicj4NCjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPkhleSBNYXVybyw8YnI+DQo8YnI+DQpUaGFua3MgZm9yIHRoZSBw YXRjaCEgSXQgYnVpbGRzIGFuZCBsb29rcyBnb29kIHRvIG1lLCBidXQgSSBoYXZlIHNvbWU8YnI+ DQpzdWdnZXN0aW9ucyBob3dldmVyLjxicj4NCjxzcGFuIGNsYXNzPSJnbWFpbC0iPjxicj4NCjxi cj4NCk9uIFdlZCwgMjAxOC0wMS0wMyBhdCAxMToxMCAmIzQzOzAxMDAsIE1hdXJvIFJvc3NpIHdy b3RlOjxicj4NCiZndDsgVGhlc2UgY2hhbmdlcyBhdm9pZCBmb2xsb3dpbmcgbG9nY2F0IGVycm9y IG9uIGludGVncmF0ZWQgYW5kPGJyPg0KJmd0OyBkZWRpY2F0ZWQgR1BVczo8YnI+DQomZ3Q7PGJy Pg0KJmd0OyAuLi4gMjI0NSZuYnNwOyAyMjQ1IEUgaHdjLWRybS1yZXNvdXJjZXM6IENvdWxkIG5v dCBmaW5kIGEgc3VpdGFibGU8YnI+DQomZ3Q7IGVuY29kZXIvY3J0YyBmb3IgZGlzcGxheSAyPGJy Pg0KJmd0OyAuLi4gMjI0NSZuYnNwOyAyMjQ1IEUgaHdjLWRybS1yZXNvdXJjZXM6IEZhaWxlZCBD cmVhdGVEaXNwbGF5UGlwZSA1NiB3aXRoPGJyPg0KJmd0OyAtMTk8YnI+DQomZ3Q7IC4uLiAyMjQ1 Jm5ic3A7IDIyNDUgRSBod2NvbXBvc2VyLWRybTogQ2FuJ3QgaW5pdGlhbGl6ZSBEcm0gb2JqZWN0 IC0xOTxicj4NCjxicj4NCjwvc3Bhbj5JdCBpc24ndCBxdWl0ZSBjbGVhciBjbGVhciB3aGljaCBl cnJvcnMgYmVsb25nIHRvIHdoaWNoIGNoYW5nZXMsPGJyPg0KdG8gbWFrZSB0aGlzIHBhdGNoIGEg Yml0IG1vcmUgYmlzZWN0YWJsZSBpdCB3b3VsZCBiZSBuaWNlIHRvIHNlZTxicj4NCmluZGVwZW5k ZW50IGNvbW1pdHMgY3JlYXRlZCBmb3IgZWFjaCBlcnJvci48YnI+DQo8L2Jsb2NrcXVvdGU+DQo8 ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5IaSBSb2JlcnQsPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2 Pg0KPGRpdj5JbiB0aGlzIGNhc2UgSSBob25lc3RseSBkbyBub3QgdGhpbmsgdGhhdCBzcGxpdHRp bmcgd291bGQgYWRkIHRvbyBtdWNoIHZhbHVlLDwvZGl2Pg0KPGRpdj5vcmlnaW5hbCBjb21taXQg KHYxKSBpcyZuYnNwOyB3ZWxsIGRvY3VtZW50ZWQgaW4gWzFdIGFuZCB0YWNrbGVzIHdpdGggYnVn IGluIGRybXJlc291cmNlcy5jcHA8YnI+DQo8L2Rpdj4NCjxkaXY+d2hpY2ggY3VycmVudGx5IGZh aWxzIHRvIGZpbmQgd29ya2FibGUgY3J0YyAtJmd0OyBlbmNvZGVyIC0mZ3Q7IGRpc3BsYXkgb3V0 cHV0IGNvbWJpbmF0aW9uPC9kaXY+DQo8ZGl2PmZvciBpbnRlZ3JhdGVkIGFuZCBkZWRpY2F0ZWQg R1BVcy4gQmVzaWRlcyB0aGF0IGl0IHdhcyBhbHNvIGFkZGluZyBEaXNwbGF5UG9ydCBkcm0gbW9k ZSBjb25uZWN0b3IgdHlwZTwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+U28gY2hhbmdl cyBpbiBkcm1yZXNvdXJjZXMuY3BwIGJlbG9uZyB0byBzb2x2aW5nICZxdW90O0NvdWxkIG5vdCBm aW5kIGEgc3VpdGFibGUgZW5jb2Rlci9jcnRjIGZvciBkaXNwbGF5IFgmcXVvdDsgcHJvYmxlbSwm bmJzcDs8YnI+DQo8L2Rpdj4NCjxkaXY+d2hpY2ggaXMgYSBzaG93IHN0b3BwZXIgZm9yIGVuYWJs aW5nIG1haW5saW5lIGdyYXBoaWNzIGluIGFuZHJvaWQteDg2PC9kaXY+DQo8ZGl2Pjxicj4NCjwv ZGl2Pg0KPGRpdj4NCjxkaXY+T3RoZXIgZGV2ZWxvcGVycyBvYnNlcnZlZCBpbmRlcGVuZGVudGx5 IHRoYXQgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMgJnF1b3Q7ZW1iZWRkZWQgb3JpZW50 ZWQmcXVvdDsgYW5kIG9ubHkgY2hlY2tzIHRoZSBmaXJzdCBkaXNwbGF5IG91dHB1dCwmbmJzcDs8 L2Rpdj4NCjxkaXY+aXNuJ3QgaXQ/PC9kaXY+DQo8L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8 ZGl2PlRoZSBvbmx5IGNoYW5nZSBJIGRpZCBpbiBkcm1jb25uZWN0b3IuY3BwIGlzIHRvIGFjY291 bnQgZm9yIHRoZSBhZGRpdGlvbmFsIGV4dGVybmFsIGRybSBtb2RlIGNvbm5lY3RvcnMgdHlwZXM8 L2Rpdj4NCjxkaXY+d2hpY2ggd2VyZSBtaXNzaW5nIChEVklELCBEVklJLCBWR0EpIC4gT25lIHF1 ZXN0aW9uIG9uIG15IHNpZGU6IERvIHdlIG5lZWQgbW9yZT88L2Rpdj4NCjxkaXY+PGJyPg0KPC9k aXY+DQo8ZGl2PkJlc2lkZXMgdGhlc2UgbWlub3IgdHlwZXMgbGlzdHMgZGlzY3Vzc2lvbnMsIEkg d291bGQgcHJvcG9zZSB5b3UgdG8gY2hlY2sgd2l0aCBKaW0gQmlzaCBpZiBoZSBzaG91bGQgaGF2 ZSB0aGUgY3JlZGl0IGZvciB0aGUgcGF0Y2g8L2Rpdj4NCjxkaXY+YW5kIHJldmlldyB0aGUgY29k aW5nIG9mIGhpcyBjaGFuZ2VzLjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9j a3F1b3RlPg0KPGRpdj5pdCB3b3VsZCBiZSBwcm9wZXIgdG8ga2VlcCB0aGUgb3JpZ2luYWwgYXV0 aG9yIHNpZ25vZmYgYnV0IG9rIHRvIGFkZCBhZGRpdGlvbmFsIHNpZ25vZmYvdGVzdGluZywgZXRj LiAmbmJzcDtJIGFtIG5vdCBzbyB3b3JyaWVkIGFib3V0IGNyZWRpdCBmb3IgdGhpcyBqdXN0IHBh dGNoIGJ1dCBnb29kIHRvIGZvbGxvd2luZyBwcm9wZXIgcHJvY2VkdXJlcy48L2Rpdj4NCjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPg0KPGRpdiBkaXI9Imx0ciI+DQo8ZGl2IGNsYXNzPSJnbWFpbF9l eHRyYSI+DQo8ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRp dj4mbmJzcDs8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuIGNsYXNzPSJnbWFp bC0iPiZndDs8YnI+DQomZ3Q7ICh2MSkgVGhlcmUgYXJlIHZhcmlvdXMgcGxhY2VzIHdoZXJlIHdl IHNob3VsZCBiZSByZWFsbHkgdGFraW5nPGJyPg0KJmd0OyBjb25uZWN0aW9uPGJyPg0KJmd0OyBz dGF0ZSBpbnRvIGFjY291bnQgYmVmb3JlIHF1ZXJ5aW5nIHRoZSBwcm9wZXJ0aWVzIG9yIGFzc3Vt aW5nIGl0PGJyPg0KJmd0OyBhcyBwcmltYXJ5LiBUaGlzIHBhdGNoIGZpeGVzIHRoZW0uPGJyPg0K Jmd0Ozxicj4NCiZndDsgQlVHPU5vbmUuPGJyPg0KJmd0OyBURVNUPVN5c3RlbSBib290cyB1cCBh bmQgc2hvd3MgVUkuPGJyPg0KJmd0Ozxicj4NCiZndDsgKHYxKSBTaWduZWQtb2ZmLWJ5OiBKaW0g QmlzaCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmppbS5iaXNoQGludGVsLmNvbSI+amltLmJpc2hAaW50 ZWwuY29tPC9hPiZndDs8YnI+DQomZ3Q7PGJyPg0KJmd0OyAodjIpIHBvcnRpbmcgb2Ygb3JpZ2lu YWwgY29tbWl0IDc2ZmI4N2U2NzUgb2YgYW5kcm9pZC1pYSBtYXN0ZXI8YnI+DQomZ3Q7IHdpdGgg YWRkaXRpb25hbCBleHRlcm5hbCBjb25uZWN0b3IgdHlwZXMgKERpc3BsYXlQb3J0LCBEVklELCBE VklJLDxicj4NCiZndDsgVkdBKTxicj4NCiZndDsgVGVzdGVkIHdpdGggaTk2NSBvbiBTYW5keWJy aWRnZSBhbmQgbm91dmVhdSBvbiBHVDEyMCwgR1Q2MTA8YnI+DQo8YnI+DQo8L3NwYW4+VGhlIGNv bW1pdCBtZXNzYWdlIGlzbid0IHJlYWxseSBmb2xsb3dpbmcgdGhlIHVzdWFsIGZvcm1hdC4gSXQg ZG9lc24ndDxicj4NCm5lZWQgdG8gaW5jbHVkZSBhIGNoYW5nZWxvZyAodGhhdCBpcyB0eXBpY2Fs bHkgcGxhY2VkIGJldHdlZW4gdGhlICZxdW90Oy0tLSZxdW90Ozxicj4NCm1hcmtlcnMgaW4gdGhl IGVtYWlsIGluc3RlYWQpLDxicj4NCmFuZCBpdCBpcyBtaXNzaW5nIGEgc2lnbm9mZiBmcm9tIHRo ZSBzdWJtaXR0ZXIgKHlvdSkuPGJyPg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4N CjxkaXY+U29ycnkgSSBkb24ndCBoYXZlIGEgc2lnbmF0dXJlLCBhcyB1c3VhbGx5IG15IHBhdGNo ZXMgbmVlZCBzaWduLW9mZiBmcm9tIHByb2Zlc3Npb25hbHMsPC9kaXY+DQo8ZGl2PkknbSBhIChj cmFzaCB0ZXN0IGR1bW15KSBob2JieWlzdC4ucmVhbGx5IDotKTwvZGl2Pg0KPGRpdj48YnI+DQo8 L2Rpdj4NCjxkaXY+TWF5YmUgUm9iIEhlcnJpbmcsIFFpYW5nIFl1Jm5ic3A7IG9yIENoaWgtV2Vp IGNvdWxkIHJldmlldyBhbmQgc2lnbi1vZmYgdGhlIHByb3Bvc2VkIHBhdGNoPC9kaXY+DQo8ZGl2 Pjxicj4NCjwvZGl2Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi PlRoZSBCVUcgYW5kIFRFU1QgZmllbGRzIGFyZSBub3Qgc3RyaWN0bHkgcmVxdWlyZWQgZWl0aGVy LCBidXQgYXJlbid0IGE8YnI+DQpwcm9ibGVtLjxicj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+PGJy Pg0KPC9kaXY+DQo8ZGl2PlRoYXQgcGFydCBpcyB0aGUgb3JpZ2luYWwgSmltIEJpc2ggY29tbWl0 IG1lc3NhZ2UgWzFdLCBteSBjaGFuZ2VzIHZlcnNpb24gaXMgKHYyKTwvZGl2Pg0KPGRpdj5Tb3Jy eSBpZiBJIHdhcyBub3QgY2xlYXIgZW5vdWdodDwvZGl2Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuIGNsYXNzPSJnbWFpbC0iPjxicj4NCiZndDsgLS0t PGJyPg0KJmd0OyZuYnNwOyBkcm1jb25uZWN0b3IuY3BwIHwgNCAmIzQzOyYjNDM7JiM0MzstPGJy Pg0KJmd0OyZuYnNwOyBkcm1yZXNvdXJjZXMuY3BwIHwgOSAmIzQzOyYjNDM7JiM0MzsmIzQzOyYj NDM7JiM0MzsmIzQzOy0tPGJyPg0KJmd0OyZuYnNwOyAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2Vy dGlvbnMoJiM0MzspLCAzIGRlbGV0aW9ucygtKTxicj4NCiZndDs8YnI+DQomZ3Q7IGRpZmYgLS1n aXQgYS9kcm1jb25uZWN0b3IuY3BwIGIvZHJtY29ubmVjdG9yLmNwcDxicj4NCiZndDsgaW5kZXgg MjQ3ZjU2Yi4uMTQ1NTE4ZiAxMDA2NDQ8YnI+DQomZ3Q7IC0tLSBhL2RybWNvbm5lY3Rvci5jcHA8 YnI+DQomZ3Q7ICYjNDM7JiM0MzsmIzQzOyBiL2RybWNvbm5lY3Rvci5jcHA8YnI+DQomZ3Q7IEBA IC03Myw3ICYjNDM7NzMsOSBAQCBib29sIERybUNvbm5lY3Rvcjo6aW50ZXJuYWwoKSBjb25zdCB7 PGJyPg0KJmd0OyZuYnNwOyB9PGJyPg0KJmd0Ozxicj4NCiZndDsmbmJzcDsgYm9vbCBEcm1Db25u ZWN0b3I6OmV4dGVybmFsKCkgY29uc3Qgezxicj4NCiZndDsgLSZuYnNwOyByZXR1cm4gdHlwZV8g PT0gRFJNX01PREVfQ09OTkVDVE9SX0hETUlBOzxicj4NCiZndDsgJiM0MzsmbmJzcDsgcmV0dXJu IHR5cGVfID09IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSB8fCB0eXBlXyA9PTxicj4NCiZndDsg RFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0IHx8PGJyPg0KJmd0OyAmIzQzOyZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt0eXBlXyA9PSBEUk1fTU9ERV9DT05ORUNUT1JfRFZJ RCB8fCB0eXBlXyA9PTxicj4NCiZndDsgRFJNX01PREVfQ09OTkVDVE9SX0RWSUkgfHw8YnI+DQom Z3Q7ICYjNDM7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3R5cGVfID09IERSTV9N T0RFX0NPTk5FQ1RPUl9WR0E7PGJyPg0KJmd0OyZuYnNwOyB9PGJyPg0KPGJyPg0KPC9zcGFuPlRo ZSBjaGFuZ2VzIHRvIGV4dGVybmFsKCkgc2hvdWxkIHByb2JhYmx5IGJlIGJyb2tlbiBvdXQgaW50 byBpdCdzIG93bjxicj4NCmNvbW1pdCwgc2luY2UgZXh0ZXJuYWwoKSBpcyBjYWxsZWQgZWxzZXdo ZXJlIGNoYW5nZXMgdG8gaXQgX2NvdWxkXzxicj4NCmludHJvZHVjZSBpc3N1ZXMuPGJyPg0KPC9i bG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+V2lsbCB5b3UgY2hlY2sgdGhlIGNv ZGUsIGludm9sdmluZyBKaW0gQmlzaCBpZiBuZWNlc3NhcnksIGFib3V0IHRoZXNlIHBvdGVudGlh bCBpc3N1ZXM/PGJyPg0KPC9kaXY+DQo8ZGl2PkkgYW0gYXZhaWxhYmxlIHRvIHBlcmZvcm0gY2hh bmdlcy90ZXN0cywgYnV0IHRoZSBvcmlnaW5hbCBtYWtlciB3aWxsIGJlIGJldHRlci48L2Rpdj4N CjxkaXY+Q2hlZXJzPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5NYXVybzwvZGl2Pg0K PGRpdj48YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0KPGRpdiBjbGFzcz0i Z21haWwtSE9FblpiIj4NCjxkaXYgY2xhc3M9ImdtYWlsLWg1Ij48YnI+DQomZ3Q7PGJyPg0KJmd0 OyZuYnNwOyBib29sIERybUNvbm5lY3Rvcjo6dmFsaWRfdHlwZSgpIGNvbnN0IHs8YnI+DQomZ3Q7 IGRpZmYgLS1naXQgYS9kcm1yZXNvdXJjZXMuY3BwIGIvZHJtcmVzb3VyY2VzLmNwcDxicj4NCiZn dDsgaW5kZXggMzJkZDM3Ni4uZDU4MmNmZSAxMDA2NDQ8YnI+DQomZ3Q7IC0tLSBhL2RybXJlc291 cmNlcy5jcHA8YnI+DQomZ3Q7ICYjNDM7JiM0MzsmIzQzOyBiL2RybXJlc291cmNlcy5jcHA8YnI+ DQomZ3Q7IEBAIC0xNTksNyAmIzQzOzE1OSw3IEBAIGludCBEcm1SZXNvdXJjZXM6OkluaXQoKSB7 PGJyPg0KJmd0Ozxicj4NCiZndDsmbmJzcDsgJm5ic3A7IC8vIEZpcnN0IGxvb2sgZm9yIHByaW1h cnkgYW1vbmdzdCBpbnRlcm5hbCBjb25uZWN0b3JzPGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgZm9y IChhdXRvICZhbXA7Y29ubiA6IGNvbm5lY3RvcnNfKSB7PGJyPg0KJmd0OyAtJm5ic3A7ICZuYnNw OyBpZiAoY29ubi0mZ3Q7aW50ZXJuYWwoKSAmYW1wOyZhbXA7ICFmb3VuZF9wcmltYXJ5KSB7PGJy Pg0KJmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgaWYgKGNvbm4tJmd0O3N0YXRlKCkgPT0gRFJNX01P REVfQ09OTkVDVEVEICZhbXA7JmFtcDsgY29ubi0mZ3Q7aW50ZXJuYWwoKSAmYW1wOyZhbXA7PGJy Pg0KJmd0OyAhZm91bmRfcHJpbWFyeSkgezxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgY29ubi0mZ3Q7c2V0X2Rpc3BsYXkoMCk7PGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyBmb3VuZF9wcmltYXJ5ID0gdHJ1ZTs8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAm bmJzcDsgfSBlbHNlIHs8YnI+DQomZ3Q7IEBAIC0xNzAsNyAmIzQzOzE3MCw3IEBAIGludCBEcm1S ZXNvdXJjZXM6OkluaXQoKSB7PGJyPg0KJmd0Ozxicj4NCiZndDsmbmJzcDsgJm5ic3A7IC8vIFRo ZW4gbG9vayBmb3IgcHJpbWFyeSBhbW9uZ3N0IGV4dGVybmFsIGNvbm5lY3RvcnM8YnI+DQomZ3Q7 Jm5ic3A7ICZuYnNwOyBmb3IgKGF1dG8gJmFtcDtjb25uIDogY29ubmVjdG9yc18pIHs8YnI+DQom Z3Q7IC0mbmJzcDsgJm5ic3A7IGlmIChjb25uLSZndDtleHRlcm5hbCgpICZhbXA7JmFtcDsgIWZv dW5kX3ByaW1hcnkpIHs8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7ICZuYnNwOyBpZiAoY29ubi0mZ3Q7 c3RhdGUoKSA9PSBEUk1fTU9ERV9DT05ORUNURUQgJmFtcDsmYW1wOyBjb25uLSZndDtleHRlcm5h bCgpICZhbXA7JmFtcDs8YnI+DQomZ3Q7ICFmb3VuZF9wcmltYXJ5KSB7PGJyPg0KJmd0OyZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBjb25uLSZndDtzZXRfZGlzcGxheSgwKTs8YnI+DQomZ3Q7 Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGZvdW5kX3ByaW1hcnkgPSB0cnVlOzxicj4NCiZn dDsmbmJzcDsgJm5ic3A7ICZuYnNwOyB9PGJyPg0KJmd0OyBAQCAtMjg4LDYgJiM0MzsyODgsMTEg QEAgaW50IERybVJlc291cmNlczo6PHdicj5UcnlFbmNvZGVyRm9yRGlzcGxheShpbnQ8YnI+DQom Z3Q7IGRpc3BsYXksIERybUVuY29kZXIgKmVuYykgezxicj4NCiZndDs8YnI+DQomZ3Q7Jm5ic3A7 IGludCBEcm1SZXNvdXJjZXM6Ojx3YnI+Q3JlYXRlRGlzcGxheVBpcGUoRHJtQ29ubmVjdG9yICpj b25uZWN0b3IpIHs8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyBpbnQgZGlzcGxheSA9IGNvbm5lY3Rv ci0mZ3Q7ZGlzcGxheSgpOzxicj4NCiZndDsgJiM0Mzs8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7IC8v IHNraXAgbm90IGNvbm5lY3RlZDxicj4NCiZndDsgJiM0MzsmbmJzcDsgaWYgKGNvbm5lY3Rvci0m Z3Q7c3RhdGUoKSA9PSBEUk1fTU9ERV9ESVNDT05ORUNURUQpPGJyPg0KJmd0OyAmIzQzOyZuYnNw OyAmbmJzcDsgcmV0dXJuIDA7PGJyPg0KJmd0OyAmIzQzOzxicj4NCiZndDsmbmJzcDsgJm5ic3A7 IC8qIFRyeSB0byB1c2UgY3VycmVudCBzZXR1cCBmaXJzdCAqLzxicj4NCiZndDsmbmJzcDsgJm5i c3A7IGlmIChjb25uZWN0b3ItJmd0O2VuY29kZXIoKSkgezxicj4NCiZndDsmbmJzcDsgJm5ic3A7 ICZuYnNwOyBpbnQgcmV0ID0gVHJ5RW5jb2RlckZvckRpc3BsYXkoZGlzcGxheSwgY29ubmVjdG9y LSZndDtlbmNvZGVyKCkpOzwvZGl2Pg0KPC9kaXY+DQo8YnI+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2 Pjxicj4NCjwvZGl2Pg0KPGRpdj5bMV0mbmJzcDs8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20v YW5kcm9pZC1pYS9leHRlcm5hbC1kcm1faHdjb21wb3Nlci9jb21taXQvNzZmYjg3ZTY3NWEyMDQ0 OWQxMjYxZmNjYmE1MzAzYWVlN2JlM2RiYSI+aHR0cHM6Ly9naXRodWIuY29tL2FuZHJvaWQtaWEv ZXh0ZXJuYWwtZHJtX2h3Y29tcG9zZXIvY29tbWl0Lzc2ZmI4N2U2NzVhMjA0NDlkMTI2MWZjY2Jh NTMwM2FlZTdiZTNkYmE8L2E+Jm5ic3A7PC9kaXY+DQo8L2Rpdj4NCjxicj4NCjwvZGl2Pg0KPC9k aXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2JvZHk+DQo8L2h0bWw+DQo= --_000_1515004326287310camelintelcom_-- --===============1621955049== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============1621955049==--