From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Harrison Subject: Re: [PATCH v6 00/34] GPU scheduler for i915 driver Date: Mon, 25 Apr 2016 12:55:22 +0100 Message-ID: <571E05AA.4090501@Intel.com> References: <1461172435-4256-1-git-send-email-John.C.Harrison@Intel.com> <20160425095427.GI6094@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 788F66E59A for ; Mon, 25 Apr 2016 11:55:25 +0000 (UTC) In-Reply-To: <20160425095427.GI6094@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMjUvMDQvMjAxNiAxMDo1NCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+IE9uIFdlZCwgQXByIDIw LCAyMDE2IGF0IDA2OjEzOjE4UE0gKzAxMDAsIEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20gd3Jv dGU6Cj4+IEZyb206IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4+ Cj4+IEltcGxlbWVudGVkIGEgYmF0Y2ggYnVmZmVyIHN1Ym1pc3Npb24gc2NoZWR1bGVyIGZvciB0 aGUgaTkxNSBEUk0gZHJpdmVyLgo+Pgo+PiBUaGUgZ2VuZXJhbCB0aGVvcnkgb2Ygb3BlcmF0aW9u IGlzIHRoYXQgd2hlbiBiYXRjaCBidWZmZXJzIGFyZQo+PiBzdWJtaXR0ZWQgdG8gdGhlIGRyaXZl ciwgdGhlIGV4ZWNidWZmZXIoKSBjb2RlIGFzc2lnbnMgYSB1bmlxdWUgc2Vxbm8KPj4gdmFsdWUg YW5kIHRoZW4gcGFja2FnZXMgdXAgYWxsIHRoZSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBleGVj dXRlIHRoZQo+PiBiYXRjaCBidWZmZXIgYXQgYSBsYXRlciB0aW1lLiBUaGlzIHBhY2thZ2UgaXMg Z2l2ZW4gb3ZlciB0byB0aGUKPj4gc2NoZWR1bGVyIHdoaWNoIGFkZHMgaXQgdG8gYW4gaW50ZXJu YWwgbm9kZSBsaXN0Lgo+IFRoYXQgaXMgY2FsbGVkIHRoZSByZXF1ZXN0LiBQbGVhc2UgdXNlIGl0 IHByb3Blcmx5LiBXZSBwYXNzIGEgcmVxdWVzdCB0bwo+IHRoZSBlbmdpbmUuIFRoZSBlbmdpbmUg Y2FuIGhvb2sgdXAgdGhlIHNjaGVkdWxlciBpbiB3aGljaCBjYXNlIGl0IG1heQo+IGRlZmVyIGV4 ZWN1dGlvbiBvZiB0aGF0IHJlcXVlc3QgdW50aWwgdGhlIHNjaGVkdWxlciBzYXlzIGl0IGlzIHJl YWR5Lgo+IEJ1dCB0aGF0IGlzIGEgY29udmVyc2F0aW9uIGluc2lkZSB0aGUgZW5naW5lLCBub3Qg aW50ZXJtaW5nbGVkIHdpdGggR0VNLgpJdCBsb29rcyBsaWtlIEkgZm9yZ290IHRvIHVwZGF0ZSB0 aGF0IHBhcnQgb2YgdGhlIGRlc2NyaXB0aW9uLiBUaGUgCnNjaGVkdWxlciBhbmQgaXRzIGNvdmVy IGxldHRlciB3ZXJlIHdyaXR0ZW4gYmVmb3JlIHRoZSBjb252ZXJzaW9uIG9mIHRoZSAKZHJpdmVy IGZyb20gdXNpbmcgc2Vxbm9zIGV2ZXJ5d2hlcmUgdG8gdXNpbmcgcmVxdWVzdHMuIEluZGVlZCwg dGhhdCAKY29udmVyc2lvbiB3YXMgaW1wbGVtZW50ZWQgYXMgcHJlcC13b3JrIGZvciB0aGUgc2No ZWR1bGVyLiBTbywgeWVzIHRoZSAKZGVzY3JpcHRpb24gc2hvdWxkIGJlIHVwZGF0ZWQgdG8gbWF0 Y2ggdGhlIGNvZGUgYW5kIHNheSAnYXNzaWducyBhIApyZXF1ZXN0IHN0cnVjdHVyZScgbm90IGEg c2Vxbm8uCgo+IEdFTSBuZWVkcyB0byBvbmx5IGNhcmUgYWJvdXQgaXRzIHVuaXF1ZSBzZXFubyBh bG9uZyB0aGUgdGltZWxpbmUuIFdlIGNhbgo+IGxlYXZlIHNwYWNlIGZvciB0aGUgc2NoZWR1bGVy IHRvIGluamVjdCBhIHNlY29uZCBzZXFubyBpZiB0aGF0IGlzCj4gY29udmVuaWVudCwgYnV0IHNp bmNlIHRoZSBzY2hlZHVsZXIgY2FuIGtlZXAgYSBnbG9iYWwgbGlzdCBvZiBpbmZsaWdodAo+IHJl cXVlc3RzLCBpdHMgcmV0aXJlbWVudCBpcyBhbHNvIGdsb2JhbGx5IG9yZGVyZWQgZXZlbiBpZiB3 ZSBvbmx5Cj4gaW5zcGVjdCBlYWNoIHJlcXVlc3Qgd3J0IHRvIGl0cyBvd24gdGltZWxpbmUuCkN1 cnJlbnRseSwgdGhlcmUgaXMgbm8gJ293biB0aW1lbGluZScuIFRoZSBzZXFubyB0aW1lbGluZSBp cyBnbG9iYWwgdG8gCnRoZSBlbnRpcmUgZHJpdmVyIGFuZCBub3QgcGVyIGVuZ2luZSwgcGVyIGNv bnRleHQsIG9yIHdoYXRldmVyLiBUaGUgCmNvbnZlcnNpb24gdG8gbW9yZSB1c2VmdWwgdGltZWxp bmVzIHN0aWxsIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkLiBVbnRpbCAKdGhlbiwgdGhlIHNjaGVk dWxlciBtdXN0IGNvcGUgd2l0aCB0aGUgc2luZ2xlIGdsb2JhbCBvbmUuCgoKPgo+PiBUaGUgc2No ZWR1bGVyIGFsc28KPj4gc2NhbnMgdGhlIGxpc3Qgb2Ygb2JqZWN0cyBhc3NvY2lhdGVkIHdpdGgg dGhlIGJhdGNoIGJ1ZmZlciBhbmQKPj4gY29tcGFyZXMgdGhlbSBhZ2FpbnN0IHRoZSBvYmplY3Rz IGFscmVhZHkgaW4gdXNlIGJ5IG90aGVyIGJ1ZmZlcnMgaW4KPj4gdGhlIG5vZGUgbGlzdC4KPiBU aGlzIHBhcnQgbW92ZXMgdGhlIHBvbGljeSBvZiB0aGUgR0VNIEFQSSBhbmQgZW5zaHJpbmVzIGl0 IGludG8gdGhlCj4gc2NoZWR1bGVyLiBMZXQgR0VNIGNvbnZlcnQgdGhlIGltcGxpY2l0IHJ1bGVz IGl0IGhhcyBpbnRvIGV4cGxpY2l0Cj4gZGVwZW5kZW5jaWVzLCBvbiB0byB3aGljaCB3ZSBjYW4g YWRkIHRoZSBleHBsaWNpdCBkZXBlbmRlbmNpZXMgcGFzc2VkIGluCj4gYnkgdGhlIHVzZXIuIEdF TSBoYXMgdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzIHRvIG1haW50YWluIGl0cyBBUEksIGxldCdz Cj4gbm90IGxldCB0aGF0IHNpbGxpbmVzcyBzcHJlYWQuClNvIGhvdyBzaG91bGQgdGhpcyBiZSBk b25lPyBUaGUgc2NoZWR1bGVyIG5lZWRzIHNvbWUgbWVjaGFuaXNtIGZvciAKZW5zdXJpbmcgdGhh dCByZXF1ZXN0cyBhcmUgb25seSBzdWJtaXR0ZWQgdG8gdGhlIGhhcmR3YXJlIGluIGEgc3VpdGFi bGUgCm9yZGVyLiBBbmQgdGhhdCBpbmZvcm1hdGlvbiBuZWVkcyB0byBwZXJzaXN0IGZvciBhcyBs b25nIGFzIHRoZSByZXF1ZXN0IApzdGlsbCBleGlzdHMgaW4gYW4gdW5jb21wbGV0ZWQgc3RhdGUu Cgo+Cj4+IElmIG1hdGNoZXMgYXJlIGZvdW5kIHRoZW4gdGhlIG5ldyBiYXRjaCBidWZmZXIgbm9k ZSBpcwo+PiBtYXJrZWQgYXMgYmVpbmcgZGVwZW5kZW50IHVwb24gdGhlIG1hdGNoaW5nIG5vZGUu IFRoZSBzYW1lIGlzIGRvbmUgZm9yCj4+IHRoZSBjb250ZXh0IG9iamVjdC4gVGhlIHNjaGVkdWxl ciBhbHNvIGJ1bXBzIHVwIHRoZSBwcmlvcml0eSBvZiBzdWNoCj4+IG1hdGNoaW5nIG5vZGVzIG9u IHRoZSBncm91bmRzIHRoYXQgdGhlIG1vcmUgZGVwZW5kZW5jaWVzIGEgZ2l2ZW4gYmF0Y2gKPj4g YnVmZmVyIGhhcyB0aGUgbW9yZSBpbXBvcnRhbnQgaXQgaXMgbGlrZWx5IHRvIGJlLgo+IFNvdW5k cyBsaWtlIGEgcm91Z2ggY3V0IGF0IFBJIGF2b2lkYW5jZS4gVGhpcyBpcyBlYXNpbHkgYWJ1c2Fi bGUuIEl0Cj4gc291bmRzIGxpa2UgeW91IHdhbnQgYSBwcmlvL25pY2Ugc3BsaXQuIElzIHRoYXQg YSBnb29kIGlkZWEgdG8gaW50cm9kdWNlCj4gaW4gdGhlIGZpcnN0IHNlcmllcz8KTm90IHN1cmUg aG93IHlvdSBtZWFuIHRoYXQgaXQgY2FuIGJlIGFidXNlZD8KCj4+IFRoZSBzY2hlZHVsZXIgYWlt cyB0byBoYXZlIGEgZ2l2ZW4gKHR1bmVhYmxlKSBudW1iZXIgb2YgYmF0Y2ggYnVmZmVycwo+PiBp biBmbGlnaHQgb24gdGhlIGhhcmR3YXJlIGF0IGFueSBnaXZlbiB0aW1lLiBJZiBmZXdlciB0aGFu IHRoaXMgYXJlCj4+IGN1cnJlbnRseSBleGVjdXRpbmcgd2hlbiBhIG5ldyBub2RlIGlzIHF1ZXVl ZCwgdGhlbiB0aGUgbm9kZSBpcyBwYXNzZWQKPj4gc3RyYWlnaHQgdGhyb3VnaCB0byB0aGUgc3Vi bWl0IGZ1bmN0aW9uLiBPdGhlcndpc2UgaXQgaXMgc2ltcGx5IGFkZGVkCj4+IHRvIHRoZSBxdWV1 ZSBhbmQgdGhlIGRyaXZlciByZXR1cm5zIGJhY2sgdG8gdXNlciBsYW5kLgo+IEtlZXAgaXQgaW4g dGhlIHNjaGVkdWxlciwgSSBzZWUgeW91IGRlY2lkZWQgdG8gYWRkIEVBR0FJTiB0byBHRU0gZXhl Y2J1Zgo+IHdoZW4gY3VycmVudGx5IGV4ZWNidWYgKmJsb2NrcyogaW4gdGhpcyBzaXR1YXRpb24u IERvbid0IHVzZSBFQUdBSU4gaGVyZQo+IHNpbmNlIHlvdSBqdXN0IG1ha2UgdXNlcnNwYWNlIGJ1 c3lzcGluIG92ZXIgYSB2ZXJ5LCB2ZXJ5IGhlYXZ5d2VpZ2h0Cj4gaW9jdGwsIGFuZCB5b3UgaGF2 ZSB0aGUgcG93ZXIgaGVyZSB0byB0aHJvdHRsZSB1c2Vyc3BhY2Ugd2l0aG91dAo+IGJsb2NraW5n LgpOb3Qgc3VyZSB3aGVyZSB5b3UgYXJlIGxvb2tpbmcuIFRoZSBhYm92ZSBkZXNjcmlwdGlvbiBk b2VzIG5vdCB0YWxrIAphYm91dCByZXR1cm5pbmcgRUFHQUlOIGF0IGFueSBwb2ludC4gSXQgc2F5 cyB0aGUgYmF0Y2ggYnVmZmVyIGlzIGVpdGhlciAKc2VudCBkaXJlY3RseSB0byB0aGUgaGFyZHdh cmUgKGlmIHRoZSBjYXNlIG9mIGlkbGUgaGFyZHdhcmUpIG9yIGFkZGVkIHRvIAp0aGUgc2NoZWR1 bGVyJ3MgcXVldWUgKGluIHRoZSBjYXNlIG9mIGJ1c3kgaGFyZHdhcmUpLiBFaXRoZXIgd2F5LCB0 aGUgCmV4ZWNidWYgSU9DVEwgcmV0dXJucyBzdWNjZXNzIHRvIHRoZSB1c2VyLiBUaGVyZSBpcyBh IGxhdGVyIHBhdGNoIGluIHRoZSAKc2VyaWVzIHdoaWNoIGFkZHMgdGhyb3R0bGluZyB0byBwcmV2 ZW50IGEgdXNlciBmcm9tIHN1Ym1pdHRpbmcgCmFyYml0cmFyaWx5IGxhcmdlIG51bWJlcnMgb2Yg c2xvdyBiYXRjaGVzIHRvIHRoZSBzY2hlZHVsZXIgYW5kIAplZmZlY3RpdmVseSBjb25zdW1pbmcg dW5ib3VuZGVkIGFtb3VudHMgb2YgbWVtb3J5IGR1ZSB0byB0aGUgc2NoZWR1bGVyJ3MgCnF1ZXVl IG5vdCBiZWluZyBsaW1pdGVkIGJ5IHRoZSBzaXplIG9mIGEgcmluZyBidWZmZXIuIEhvd2V2ZXIs IHRoZSAKdGhyb3R0bGluZyBpcyBkb25lIGJ5IHdhaXRpbmcgb24gYW4gb3V0c3RhbmRpbmcgcmVx dWVzdCBzbyBhcyB0byBibG9jayAKdW50aWwgdGhlIHF1ZXVlIGRlcHRoIGhhcyBiZWVuIHJlZHVj ZWQuIEl0IG9ubHkgcmV0dXJucyBhbiBlcnJvciB0byB0aGUgCnVzZXIgaW4gdGhlIGNhc2Ugd2hl cmUgdGhlIHdhaXQgY291bGQgbm90IGJlIGRvbmUgZm9yIHNvbWUgcmVhc29uIChlLmcuIAp3ZWRn ZWQgR1BVKS4KCgo+PiBBcyBlYWNoIGJhdGNoIGJ1ZmZlciBjb21wbGV0ZXMsIGl0IHJhaXNlcyBh biBpbnRlcnJ1cHQgd2hpY2ggd2FrZXMgdXAKPj4gdGhlIHNjaGVkdWxlci4gTm90ZSB0aGF0IGl0 IGlzIHBvc3NpYmxlIGZvciBtdWx0aXBsZSBidWZmZXJzIHRvCj4+IGNvbXBsZXRlIGJlZm9yZSB0 aGUgSVJRIGhhbmRsZXIgZ2V0cyB0byBydW4uIEZ1cnRoZXIsIHRoZSBzZXFubyB2YWx1ZXMKPj4g b2YgdGhlIGluZGl2aWR1YWwgYnVmZmVycyBhcmUgbm90IG5lY2Vzc2FyeSBpbmNyZW1lbnRpbmcg YXMgdGhlCj4+IHNjaGVkdWxlciBtYXkgaGF2ZSByZS1vcmRlcmVkIHRoZWlyIHN1Ym1pc3Npb24u IEhvd2V2ZXIsIHRoZSBzY2hlZHVsZXIKPj4ga2VlcHMgdGhlIGxpc3Qgb2YgZXhlY3V0aW5nIGJ1 ZmZlcnMgaW4gb3JkZXIgb2YgaGFyZHdhcmUgc3VibWlzc2lvbi4KPj4gVGh1cyBpdCBjYW4gc2Nh biB0aHJvdWdoIHRoZSBsaXN0IHVudGlsIGEgbWF0Y2hpbmcgc2Vxbm8gaXMgZm91bmQgYW5kCj4+ IHRoZW4gbWFyayBhbGwgaW4gZmxpZ2h0IG5vZGVzIGZyb20gdGhhdCBwb2ludCBvbiBhcyBjb21w bGV0ZWQuCj4gTm8uIFlvdSBoYXZlbid0IGJ1aWx0IHlvdXIgdGltZWxpbmVzIGNvcnJlY3RseS4g VGhlIGlkZWEgYmVoaW5kIHRoZQo+IHRpbWVsaW5lIGlzIHRoYXQgYSByZXF1ZXN0IGNhbiB3YWl0 IHVwb24gaXRzIHNlcW5vIGFuZCBjaGVjayBpdCBhZ2FpbnN0Cj4gaXRzIG93biB0aW1lbGluZSwg d2hpY2ggaXMgb3JkZXJlZCBvbmx5IHdpdGggb3RoZXIgcmVxdWVzdHMgb24gaXRzCj4gdGltZWxp bmUuIEJlY2F1c2Ugb2YgdGhpcywgaXQgaXMgaW5kZXBlbmRlbnQgb2Ygd2hhdGV2ZXIgb3JkZXIg dGhlCj4gc2NoZWR1bGVyIGV4ZWN1dGVzIHRoZSB0aW1lbGluZXMgaW4sIGVhY2ggdGltZWxpbmUg aXMgb3JkZXJlZC4KPgo+IEEgcmVxdWVzdCBjYW4gc2ltcGx5IHdhaXQgZm9yIGl0cyB0aW1lbGlu ZSB0byBhZHZhbmNlLCBjb21wbGV0ZWx5Cj4gaWdub3JhbnQgb2YgdGhlIHNjaGVkdWxlci4gKFJl cXVlc3Qgc2lnbmFsaW5nIG1heSBiZSBkcml2ZW4gYnkgdGhlCj4gc2NoZWR1bGVyLCBidXQgdGhh dCBpcyBhIGxvd2xldmVsLCBub3QgR0VNIG9yIGRtYS1idWYvZmVuY2UsCj4gaW1wbGVtZW50YXRp b24gZGV0YWlsLiBBbmQgb25seSBpZiB0aGUgc2NoZWR1bGVyIGlzIGNvdXBsZWQgaW50byB0aGUK PiB1c2VyLWludGVydXB0LCBidXQgb24gZXhlY2xpc3RzIGl0IHdpbGwgYmUgdXNpbmcgdGhlIGNv bnRleHQtc3dpdGNoCj4gaW50ZXJydXB0IHRvIGRyaXZlciBpdHNlbGYsIGFuZCBmb3IgcmluZ2J1 ZmZlciBtb2RlIHdlIGhhdmUgYSBjaG9pY2Ugb2YKPiB1c2VyLWludGVycnVwdCBvciB1c2luZyBw aXBlLWNvbnRyb2wvZHctbm90aWZ5IHRvIGtlZXAgdGhlIHBhdGhzCj4gc2VwYXJhdGUuKQpBZ2Fp biwgeW91IGFyZSBhc3N1bWluZyBwZXIgY29udGV4dCB0aW1lbGluZXMgd2hpY2ggdGhlIGRyaXZl ciBkb2VzIG5vdCAKeWV0IGhhdmUuIFRoYXQgaXMgcGxhbm5lZCB3b3JrIGJ1dCBpcyBub3QgeWV0 IGltcGxlbWVudGVkLgoKPgo+PiBBIGRlZmVycmVkIHdvcmsgcXVldWUgaXMgYWxzbyBwb2tlZCBi eSB0aGUgaW50ZXJydXB0IGhhbmRsZXIuCj4gV2FpdCB5b3UgZGlkIGFsbCB0aGF0IGluIHRoZSBp bnRlcnJ1cHQgaGFuZGxlci4gTk8uCkFjdHVhbGx5LCB0aGUgY29tbWVudCBpcyBhZ2FpbiBvdXQg b2YgZGF0ZS4gU2luY2UgdGhlIHNlcW5vIC0+IHJlcXVlc3QgCmNvbnZlcnNpb24gc2VyaWVzLCB0 aGUgc2NoZWR1bGVyIG5vIGxvbmdlciBoYXMgdG8gd29ycnkgYWJvdXQgb3V0IG9mIApvcmRlciBz ZXFubyB2YWx1ZXMgZnJvbSB0aGUgaGFyZHdhcmUuIFNvIGFsbCBvZiB0aGUgYWJvdmUgSVJRIG1l c3Mgbm8gCmxvbmdlciBvY2N1cnMuCgo+Cj4+IElmIGEgc3VpdGFibGUgbm9kZSBpcyBmb3VuZCB0 aGVuIGl0IGlzIHNlbnQgdG8gZXhlY2J1ZmZfZmluYWwoKSBmb3IKPj4gc3VibWlzc2lvbiB0byB0 aGUgaGFyZHdhcmUuCj4gVGhhdCBpcyBhbiBhYnNvbHV0ZWx5IGF0cm9jaW91cyBpbXBsZW1lbnRh dGlvbi4gRG9uJ3QgcGFzcyBpdCBiYWNrIHVwCj4gdGhlIGxheWVycyB3aGVuIHlvdSBhbHJlYWR5 IGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvbiB5b3UgbmVlZCBwYWNrYWdlZCBpbgo+IHRoZSByZXF1 ZXN0IHRvIHN1Ym1pdCBpdCB0byBoYXJkd2FyZS4KPgo+IGV4ZWNidWYgLT4gZW5naW5lLT5hZGRf cmVxdWVzdCAtPiBbc2NoZWR1bGVyXSAtPiBlbmdpbmUtPnN1Ym1pdF9yZXF1ZXN0Cj4KPiAoY29u Y2VwdHVhbGx5LCBzaW5jZSB3aGF0IHNob3VsZCBoYXBwZW4gaXMgZXhlY2xpc3RzIGdldHMgaXQK PiBjb250ZXh0LXN3aXRjaCBpbnRlcnJ1cHQgYW5kIHRoZW4gYXNrcyB3aGF0IHNldCBvZiByZXF1 ZXN0cyB0byBzdWJtaXQKPiBuZXh0LiBJbiBhIHJpbmdidWZmZXIgbW9kZSwgYSBrdGhyZWFkL2t0 YXNrbGV0IHdvdWxkIHJ1biBvZmYgdGhlCj4gaW50ZXJydXB0IGFzayB3aGljaCByZXF1ZXN0IHRv IGV4ZWN1dGUgbmV4dCBhbmQgZG8gdGhlIHdyaXRlIGludG8gdGhlCj4gcmluZyBmb3IgdGhlIHN3 aXRjaCBpbnRvIHRoZSBuZXcgY29udGV4dCBhbmQgZXhlY3V0aW9uIG9mIHRoZSBuZXh0IGJhdGNo LAo+IGFuZCB0aGVuIHdyaXRlIHRoZSBSSU5HX1RBSUwuKQo+Cj4gQXQgdGhlIGZ1bmRhbWVudGFs IGxldmVsIGl0IGxvb2tzIGxpa2UgeW91IGhhdmUgbm90IGludHJvZHVjZWQgdGltZWxpbmVzCj4g Y29ycmVjdGx5IG9yIGludHJvZHVjZWQgdGhlIHNjaGVkdWxlciBhcyBhIHNlcGFyYXRlIGVudGl0 eSBmb3IgZGVjaWRpbmcKPiB3aGljaCByZXF1ZXN0IHRvIGV4ZWN1dGUgbmV4dCAob3IgaWYgdGhp cyByZXF1ZXN0IHNob3VsZCBwcmVlbXB0IGV4ZWN1dGlvbikuCldoZW4gdGhpcyBjb2RlIHdhcyBm aXJzdCB3cml0dGVuLCB0aGVyZSB3YXMgbm90IGV2ZW4gdGhlIHBvc3NpYmlsaXR5IG9mIAppbXBs ZW1lbnRpbmcgcGVyIGNvbnRleHQgdGltZWxpbmVzLiBTaW5jZSB0aGF0IGZpcnN0IHZlcnNpb24s IHRoZXJlIGhhcyAKYmVlbiBhIGxvdCBvZiBjb21wbGV4IHByZXAgd29yayAoYW50aS1PTFIgc2Vy aWVzLCBzZXFubyB0byByZXF1ZXN0IApjb252ZXJzaW9uLCBzdHJ1Y3QgZmVuY2UgY29udmVyc2lv bikgd2hpY2ggYWxsIG1ha2VzIHRoZSBzY2hlZHVsZXIgCnNlcmllcyBhIGxvdCBzaW1wbGVyLiBE dXJpbmcgdGhhdCBwcm9jZXNzLCB0aGVyZSBoYXMgYmVlbiBhbXBseSAKb3Bwb3J0dW5pdHkgdG8g Y29tbWVudCBvbiB0aGUgZGlyZWN0aW9uIGl0IHdhcyB0YWtpbmcgYW5kIHRvIGV4cGxhaW4gCndo YXQgY291bGQgYmUgaW1wcm92ZWQgYW5kIGhvdy4KClRoZSBhZ3JlZW1lbnQgb24gcGVyIGNvbnRl eHQgdGltZWxpbmVzIGlzIHRoYXQgd2hpbGUgaXQgd291bGQgbWFrZSAKdGhpbmdzIHNpbXBsZXIg c3RpbGwsIGl0IGlzIHlldCBtb3JlIGRlbGF5IGFuZCBjb3VsZCBiZSBsZWZ0IHVudGlsIGFmdGVy IAp0aGUgY3VycmVudCBzY2hlZHVsZXIgc2VyaWVzIGhhcyBsYW5kZWQuIE90aGVyd2lzZSBpdCBp cyBhIG5ldmVyIGVuZGluZyAKdGFzayB0byBzaW1wbHkga2VlcCByZWJhc2luZyB0aGUgc2NoZWR1 bGVyIHBhdGNoZXMgb250byBhIHJhcGlkbHkgCmNoYW5naW5nIHRhcmdldCBsZXQgYWxvbmUgd3Jp dGUgZW50aXJlIGV4dHJhIHBhdGNoIHNlcmllcyBhbmQgcmV3b3JrIHRoZSAKc2NoZWR1bGVyIGFj Y29yZGluZ2x5LiBQbHVzLCB3ZSBoYXZlIG11bHRpcGxlIGN1c3RvbWVycyB0aGF0IHJlcXVpcmUg dGhlIApzY2hlZHVsZXIgZnVuY3Rpb25hbGl0eSAoYW5kIHRoZSBwcmUtZW1wdGlvbiBzdXBwb3J0 IHRoYXQgYnVpbGRzIG9uIHRvcCkgCnNvIHdlIG5lZWQgdG8gZ2V0IHNvbWV0aGluZyBzaGlwcGlu ZyBub3cgcmF0aGVyIHRoYW4gaW4gYW5vdGhlciBYIHllYXJzIAp0aW1lLgoKPiAtQ2hyaXMKPgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==