From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 07DC188EB5 for ; Tue, 16 Apr 2019 15:11:31 +0000 (UTC) From: Andi Shyti Date: Tue, 16 Apr 2019 18:11:22 +0300 Message-Id: <20190416151128.2465-1-andi.shyti@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v21 0/6] new engine discovery interface List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: IGT dev Cc: Andi Shyti List-ID: SGksCgpJbiB0aGlzIHBhdGNoc2V0IEkgcHJvcG9zZSBhbiBhbHRlcm5hdGl2ZSB3YXkgb2YgZW5n aW5lIGRpc2NvdmVyeQp0aGFua3MgdG8gdGhlIG5ldyBpbnRlcmZhY2VzIGRldmVsb3BlZCBieSBU dnJ0a28gYW5kIENocmlzWzRdLgoKVGhlIGNoYW5nZXMgdG8gcGVyZl9wbXUgYXJlIGEgcHJvcG9z YWwsIG1vc3QgcHJvYmFibHkgdGhleSBkb24ndAp3b3JrIChpdCdzIGFueXdheSBhbiBSRkMpIGJl Y2F1c2UgdGhlIGRlcGVuZGVuY3kgdG8gbGVnYWN5IGNvZGUKaXMgc3RpbGwgdG9vIHN0cm9uZy4K ClRoYW5rcyBUdnJ0a28sIENocmlzLCBBbnRvbmlvIGFuZCBQZXRyaSBmb3IgeW91ciBjb21tZW50 cyBpbiB0aGUKcHJldmlvdXMgUkZDcy4KCkFuZGkKCnYyMCAtLT4gdjIxCj09PT09PT09PT09CiAt IHJlbW92ZWQgVHZydGtvJ3MgZGVidWcgbWVzc2FnZXMKIC0gZmV3IGZpeGVzIGZyb20gQ2hyaXMg bGFzdCByZXZpZXcKCnYxOSAtLT4gdjIwCj09PT09PT09PT09CiAtIGFkZGVkIHNvbWUgZGVidWdz IGZyb20gVHZydGtvIHRvIGdldCBtb3JlIGluZm8gYWJvdXQgZ2VtX3dhaXQKICAgZmFpbHVyZS4K IC0gZmV3IGZpeGVzIGluIGdlbV9lbmdpbmVfdG9wb2xvZ3kuYyBmcm9tIFR2cnRrbydzIGNvbW1l bnRzLAogICBpbmNsdWRpbmcgYSBiaWdnZXIgZml4IGFib3V0IGFuIHVuY29udHJvbGxlZCB2YXJp YWJsZQogICBpbmNyZW1lbnQgaW4gdGhlIF9uZXh0IGZ1bmN0aW9uCgp2MTggLS0+IHYxOQo9PT09 PT09PT09PQogLSBpbnRlZ3JhdGVkIFR2cnRrbydzIGZpeHVwIHBhdGNoIFsxN10uIEZyb20gdGhp cyBwYXRjaCBzb21lCiAgIGNoYW5nZXMgaGF2ZSBiZWVuIG1vdmVkIHRvIGdlbV9lbmdpbmVfdG9w b2xvZ3kgYXMgYSBuZXcgaGVscGVyCiAgIGZvciBnZXR0aW5nIHRoZSBlbmdpbmUncyBwcm9wZXJ0 aWVzLgoKdjE3IC0tPiB2MTgKPT09PT09PT09PT0KIC0gdGhyZWUgcGF0Y2hlcyBoYXZlIGJlZW4g YXBwbGllZCAodGhlIG9uZXMgdGhhdCBhZGQKICAgZ2VtX2NvbnRleHRfaGFzX2VuZ2luZSgpIGZ1 bmN0aW9uKQogLSBmZXcgY29zbWV0aWMgZml4ZXMKIC0gYW5kIHNvbWUgY2hhbmdlcyBjb21pbmcg ZnJvbSBUdnJ0a28ncyByZXZpZXcgb24gdjE3Cgp2MTYgLS0+IHYxNwo9PT09PT09PT09PQphbW9u Z3N0IG1hbnkgbGl0dGxlIHRoaW5ncywgdGhyZWUgbWFpbiBjaGFuZ2VzOgogLSBpbXByb3ZlZCBw ZXJmX3BtdSBhZGFwdGF0aW9uIHRvIGdlbV9lbmdpbmVfdG9wb2xvZ3kKIC0gcmVtb3ZlZCB0aGUg ZXhlYy1jdHggdGVzdCwgcGVyZl9wbXUgd2lsbCBiZSB0aGUgZmxhZyB0ZXN0CiAtIHdoZW4gY3Jl YXRpbmcgdGhlIGVuZ2luZSBsaXN0LCBub3cgdGhlCiAgIGZvcl9lYWNoX2VuZ2luZV9waHlzaWNh bCBjYW4gYmUgZXhlY3V0ZWQgc2FmZWx5IGR1cmluZyBzdWJ0ZXN0CiAgIGxpc3RpbmcKCnYxNSAt LT4gdjE2Cj09PT09PT09PT09CiAtIGZldyBjaGFuZ2VzIHRvIHRoZSBnZW1fZW5naW5lX3RvcG9s b2d5IHN0dWZmCiAtIGFkZGVkIHVuZSBtb3JlIGR1bW15IHRlc3Qgd2hpY2ggbG9vcHMgdGhyb3Vn aCB0aGUgcGh5c2ljYWwKICAgZW5naW5lcywgYXMgd2VsbC4KIC0gY2hhbmdlcyB0byB0ZXN0L3Bl cmZfcG11IHJlcXVpcmVkIHNvbWUgbW9yZSBjaGFuZ2VzIHRoYW4KICAgZXhwZWN0ZWQgKHRoZSAz IGxhc3QgcGF0Y2hlcykKCnYxNCAtLT4gdjE1Cj09PT09PT09PT09ClBBVENIIHYxNDogWzE2XQoK IC0gdmlydHVhbCBlbmdpbmVzIHdpbGwgYmUgY2FsbGVkICJ2aXJ0dWFsIiBsaWtlIHVucmVjb2du aXNlZAogICBlbmdpbmVzIHdpbGwgYmUgY2FsbGVkICJ1bmtub3duIgoKIC0gcmVuYW1lZCB0aGUg Zm9yX2VhY2ggbG9vcHMgdG8gbW9yZSBtZWFuaW5nZnVsIG5hbWVzCiAgIChfX2Zvcl9lYWNoX3N0 YXRpY19lbmdpbmUgYW5kIGZvcl9lYWNoX2NvbnRleHRfZW5naW5lKSBhbmQKICAgbW92ZWQgaW50 byBnZW1fZW5naW5lX3RvcG9sb2d5LmgKCiAtIG1pbm9yIGNoYW5nZXMgYWJvdXQgZGF0YSB0eXBl cy4KCnYxMyAtLT4gdjE0Cj09PT09PT09PT09ClBBVENIIHYxMzogWzE1XQptaW5vciBjaGFuZ2Vz IHRoaXMgdGltZToKIC0gc3F1YXNoZWQgcGF0Y2ggMiBhbmQgMyAoZnJvbSB2MTMpIHdpdGggYSBs aXR0bGUgcmVuYW1lIGFuZAogICBhZGRlZCBDaHJpcyByLWIKCiAtIGZpeGVkIHNvbWUgaW5kZXgg aXNzdWVzIGFuZCBzdHJpbmcgYXNzaWduZW1lbnQgbGVha3MKCiAtIHNxdWFzaGVkIHBhdGNoZXMg NSwgNiwgNyBhbmQgOCBmcm9tIHYxMwoKdjEyIC0tPiB2MTMKPT09PT09PT09PT0KUEFUQ0ggdjEy OiBbMTRdClRoaXMgcGF0Y2ggaXMgYWxzbyB2ZXJ5IGRpZmZlcmVudCBmcm9tIHRoZSBwcmV2aW91 cyBvdGhlciB0aGFuCnNvbWUgcmVvcmdhbml6YXRpb24gb2YgdGhlIGNvZGUgdGhlc2UgYXJlIHRo ZSBtYWluIGNoYW5nZXM6CgogLSB0aGUgcHJldmlvdXMgdmVyc2lvbiBsYWNrZWQgdGhlIGNhc2Ug d2hlbiB0aGUgY29udGV4dCBoYWQgaXRzCiAgIGVuZ2luZXMgbWFwcGVkLiBjaGVja3MgaW4gdGhl IGZvbGxvd2luZyBvcmRlcgoKIGlmIHRoZSBkcml2ZXIgZG9lc24ndCBoYXZlIHRoZSBuZXcgQVBJ CiAgLT4gZ2V0IHRoZSBlbmdpbmVzIGZyb20gdGhlIHN0YXRpYyBsaXN0CiBpZiB0aGUgZHJpdmVy IGhhcyB0aGUgQVBJIGJ1dCB0aGUgY29udGV4dCBoYXMgbm90aGluZyBtYXBwZWQKICAtPiBnZXQg dGhlIGVuZ2luZXMgZnJvbSAicXVlcnkiIGFuZCBtYXAgdGhlbQogaWYgdGhlIGRyaXZlciBoYXMg dGhlIEFQSSBhbmQgdGhlIGNvbnRleHQgaGFzIGVuZ2luZXMgbWFwcGVkCiAgLT4gZ2V0IHRoZSBl bmdpbmVzIGZyb20gdGhlIGNvbnRleHQKCiAtIHRoZSBoZWxwZXIgZnVuY3Rpb25zIGhhdmUgYmVl biByZW1vdmVkIGFzIHRoZXkgd2VyZSBvZiBubyB1c2UuCgp2MTEgLS0+IHYxMgo9PT09PT09PT09 PQpQQVRDSCB2MTE6IFsxM10KVGhpcyAxMnRoIHZlcnNpb24gc3RhcnRzIGZyb20gYSBjb21wbGV0 ZWx5IGRpZmZlcmVudCB0aG91Z2h0LgpIZXJlJ3MgdGhlIG1haW4gZGlmZmVyZW5jZXM6CgogLSBU aGUgbGlzdCBvZiBlbmdpbmVzIGlzIHByb3ZpZGVkIGluIGFuIGVuZ2luZV9kYXRhIHN0cnVjdHVy ZQogICB3aGljaCBjb250YWlucyBhbiBpbmRleCAodXNlZnVsIGZvciBsb29waW5nIHRocm91Z2gg YW5kIGZvcgogICBlbmdpbmUvY29udGV4dCBpbmRleCBtYXBwaW5nKSBpbnN0ZWFkIG9mIGFuIGFy cmF5IG9mIGVuZ2luZXMuCgogLSBUaGUgbGlzdCBvZiBlbmdpbmVzIGlzIGdlbmVyYXRlZCBldmVy eSB0aW1lIHRoZSBpbml0IGZ1bmN0aW9uCiAgIGlzIGNhbGxlZCBhbmQgbm90aGluZyBpcyBhbGxv Y2F0ZWQgaW4gaGVhcCBtZW1vcnkuCgogLSBUaGUgaW9jdGwgY2hlY2sgaXMgZG9uZSBhbHJlYWR5 IGR1cmluZyB0aGUgaW5pdGlhbGl6YXRpb24gcGFydAogICBhbmQgaWYgdGhlIG5ldyBpb2N0bHMg YXJlIG5vdCBpbXBsZW1lbnRlZCwgdGhlbiB0aGUgaW5pdAogICBmdW5jdGlvbiBzdGlsbCBzdG9y ZXMgb25seSB0aG9zZSBwcmVzZW50IGluIHRoZSBHUFUuCgogLSBUaGUgZm9yX2VhY2ggbG9vcCBp cyBpbXBsZW1lbnRlZCBieSByZS11c2luZyB0aGUgcHJldmlvdXMKICAgJ2Zvcl9lYWNoX2VuZ2lu ZV9jbGFzc19pbnN0YW5jZSgpJyBpbXBsZW1lbnRlZCBieSBUdnJ0a28uCgogLSBUaGUgZ2VtX3Rv cG9sb2d5IGxpYnJhcnkgb2ZmZXJzIGZldyBoZWxwZXIgZnVuY3Rpb25zIGZvcgogICBjaGVja2lu ZyB0aGUgZW5naW5lIHByZXNlbmNlLCBjaGVja2luZyB0aGUgaW1wbGVtZW50YXRpb24gb2YKICAg dGhlIGlvY3RscyBhbmQgZXhlY3V0aW5nIHRoZSBidWZmZXIsIGluIG9yZGVyIHRvIGJlIGNvbXBs ZXRlbHkKICAgdW5hd2FyZSBvZiB0aGUgZHJpdmVyIGltcGxlbWVudGF0aW9uLgoKVGhhbmtzIFR2 cnRrbyBmb3IgYWxsIHlvdXIgaW5wdXRzLgoKdjEwIC0tPiB2MTEKPT09PT09PT09PT0KUkZDIHYx MDogWzEyXQpmZXcgY29zbWV0aWMgY2hhbmdlcyBpbiB2MTEgYW5kIG1pbm9yIGFyY2hpdGVjdHVy YWwgZGV0YWlscy4KVGhhbmtzIFR2cnRrby4KCi0gdGhlICdxdWVyeV9lbmdpbmVzKCknIGZ1bmN0 aW9ucyBhcmUgc3RhdGljIGFzIG5vIG9uZSBpcyB1c2luZwogIHRoZW0geWV0LgoKLSByZW1vdmVk IHRoZSAnZ2VtX2hhc19lbmdpbmVfdG9wb2xvZ3koKScgZnVuY3Rpb24gYmVjYXVzZSBpdCdzCiAg dmVyeSBsaXR0bGUgdXNlZCwgJ2dldF9hY3RpdmVfZW5naW5lcygpJyBjYW4gYmUgdXNlZCBpbnN0 ZWFkLgoKLSBhIG1pbm9yIHJpbmcgLT4gZW5naW5lIHJlbmFtaW5nIGNvbWluZyBmcm9tIENocmlz LiAKCnY5IC0tPiB2MTAKPT09PT09PT09PQpSRkMgdjk6IFsxMV0KYWxzbyB0aGlzIHRpbWUgcXVp dGUgbWFueSBjaGFuZ2VzLCB0aGFua3MgQ2hyaXMgZm9yIHRoZSByZXZpZXdzLApoZXJlIHRoZSBt b3N0IHJlbGV2YW50IG9mIHRoZW0uCgotIGdlbV9xdWVyeS5bY2hdIGhhdmUgYmVlbiByZW5hbWVk IHRvIGdlbV9lbmdpbmVfdG9wb2xvZ3kuW2NoXQogIGFuZCBhbGwgdGhlIGZ1bmN0aW9ucyBlbmRl ZCB1cCB0aGVyZSBhcyB0aGV5IGFyZSByZWZlcnJpbmcgdG8KICB0aGUgdG9wb2xvZ3kgb2YgdGhl IGVuZ2luZXMuCgotIHRoZSBmdW5jdGlvbnMgJ2dldF9hY3RpdmVfZW5naW5lcygpJywKICAnZ2Vt X3NldF9jb250ZXh0X2dldF9lbmdpbmVzKCknIGFuZAogICdpZ3RfcmVxdWlyZV9nZW1fZW5naW5l X2xpc3QoKScgd2lsbCBiZSB0aGUgbWFpbiBpbnRlcmZhY2UgdG8KICB0aGUgZ2VtX2VuZ2luZV90 b3BvbG9neSBsaWJyYXJ5LCByZWZlciB0byBwYXRjaCAyIGZvciBkZXRhaWxzLgoKLSB0aGUgZGVm aW5lICdmb3JfZWFjaF9lbmdpbmUyKCknIGRvZXNuJ3QgZXhwb3NlIGFueW1vcmUgdGhlCiAgaXRl cmF0b3IuCgotICdnZW1fY29udGV4dF9oYXNfZW5naW5lKCknIGhhcyBiZWVuIG1vdmVkIGZyb20g aW9jdGxfd3JhcHBlcnMuYwogIHRvIGdlbV9jb250ZXh0LmMuCgotIHRoZSBnZW1fZXhlY19iYXNp YyBleGVjLWN0eCBzdWJ0ZXN0IGRvZXMgbm90IGFib3J0IGlmIHRoZSBuZXcKICBnZXRwYXJhbS9z ZXRwYXJhbSBhbmQgcXVlcnkgYXBpcyBhcmUgbm90IGltcGxlbWVudGVkIGFzIGl0IGNhbgogIHdv cmsgd2l0aCBib3RoIChhcyBpdCB3YXMgZG9uZSBhdCB0aGUgYmVnaW5uaW5nKS4KCnY4IC0tPiB2 OQo9PT09PT09PT0KUkZDIHY4OiBbMTBdCnF1aXRlIG1hbnkgY2hhbmdlcywgcGxlYXNlIHJlZmVy IHRvIHRoZSByZXZpZXcgaW4gWzEwXS4gVGhhbmtzCkNocmlzIGZvciB0aGUgcmV2aWV3LiBUaGVz ZSBhcmUgdGhlIG1vc3QgcmVsZXZhbnQ6CgotIGFsbCB0aGUgYWxsb2NhdGlvbiBpbiBnZW1fcXVl cnkgaGF2ZSBiZWVuIG1hZGUgaW4gc3RhY2ssIG5vdAogIGFueW1vcmUgYWxsb2NhdGVkIGR5bmFt aWNhbGx5LgoKLSByZW1vdmVkIGdldC9zZXRfY29udGV4dCBhcyBpdCB3YXMgYWxyZWFkeSBpbXBs ZW1lbnRlZCBhbmQgSQogIGRpZG4ndCBrbm93LgoKLSByZW5hbWVkIHNvbWUgZnVuY3Rpb25zIGFu ZCB2YXJpYWJsZXMgdG8gaG9wZWZ1bGx5IG1vcmUKICBtZWFuaW5nZnVsIG5hbWVzLgoKVjcgLS0+ IHY4Cj09PT09PT09PQpSRkMgdjc6IFs5XQoKLSBhbGwgZnVuY3Rpb25zIGhhdmUgYmVlbiBtb3Zl ZCBmcm9tIGxpYi9pZ3RfZ3Que2MsaH0gYW5kCiAgbGliL2lvY3RsX3dyYXBwZXJzLntjLGh9IHRv IGxpYi9pOTE2L2dlbV9xdWVyeS57YyxofS4gKHRoYW5rcwogIENocmlzKQoKLSAnZm9yX2VhY2hf ZW5naW5lX2N0eCcgaGFzIGJlZW4gcmVuYW1lZCB0byAnZm9yX2VhY2hfZW5naW5lMicgdG8KICBi ZSBjb25zaXN0ZW50IHdpdGggdGhlICcyJyB0aGF0IGluZGljYXRlcyB0aGUgbmV3ICdzdHJ1Y3QK ICBpbnRlbF9leGVjdXRpb25fZW5naW5lMicgZGF0YSBzdHJ1Y3R1cmUuCgpWNiAtLT4gVjcKPT09 PT09PT09ClJGQyB2NjogWzhdCgotIGEgbmV3IHBhdGNoIGhhcyBiZWVuIGFkZGVkIChwYXRjaCAz KSB3aGljaCBhZGRzIGEgbmV3CiAgcmVxdWlyZW1lbnQgY2hlY2sgdGhyb3VnaCB0aGUgaWd0X3Jl cXVpcmVfZ2VtX2VuZ2luZV9saXN0KCkKICBmdW5jdGlvbi4gKHRoYW5rcyBDaHJpcykgVGhpcyBm dW5jdGlvbiB3aWxsIGluaXRpYWxpemUgdGhlCiAgZW5naW5lIGxpc3QgaW5zdGVhZCBvZiB0aGUg aW5zdGVhZCBvZiBpZ3RfcmVxdWlyZV9nZW0oKSBhcyBpdAogIHdhcyBpbiB2NgoKLSBhbGwgdGhl IGlvY3RscyBoYXZlIGJlZW4gd3JhcHBlZCAodGhhbmtzIENocmlzIGFuZCBBbnRvbmlvKSBhbmQK ICBuZXcgbGlicmFyeSBmdW5jdGlvbnMgaGF2ZSBiZWVuIGFkZGVkIGFuZCBhc3NlcnQgdGhlIGlv Y3RscwoKLSBnZW1faW5pdF9lbmdpbmVfbGlzdCgpIGZ1bmN0aW9uIHJldHVybnMgdGhlIGVycm5v IGZyb20gdGhlCiAgR0VUUEFSQU0gaW9jdGwgaW4gb3JkZXIgdG8gYmUgdXNlZCBhcyBhIHJlcXVp cmVtZW50LiAodGhhbmtzCiAgQ2hyaXMpCgotIGZpeGVkIGZldyByZXF1aXJlcy9hc3NlcnRzCgot IFRoZSBlbmdpbmUgbGlzdCAiaW50ZWxfYWN0aXZlX2VuZ2luZXMyIiBpcyBhbGxvY2F0ZWQgb2Yg dGhlCiAgbnVtYmVyIG9mIGVuZ2luZXMgaW5zdGVhZCBvZiBhIHBvbGl0aWNhbCA2NCAodGhhbmtz IEFudG9uaW8pLgoKLSBzb21lIHBhcmFtZXRlciByZW5hbWluZyBpbiBnZW1faGFzX3JpbmdfYnlf aWR4KCkuICh0aGFua3MKICBDaHJpcykuCgotIHRoZSBvcmlnaW5hbCAiaW50ZWxfZXhlY3V0aW9u X2VuZ2luZXMyIiBoYXMgbm90IGJlZW4gcmVuYW1lZCwKICBiZWNhdXNlIGl0IGlzIHVzZWQgdG8g Y3JlYXRlIHN1YnRlc3RzIGJlZm9yZSBldmVuIGV4ZWN1dGluZyBhbnkKICB0ZXN0L2lvY3RsLiBC eSByZW5hbWluZyBpdCwgc29tZSBzdWJ0ZXN0IGdlbmVyYXRpb25zIGZhaWxlZC4KICAodGhhbmtz IFBldHJpKQoKVjUgLS0+IFY2Cj09PT09PT09PQpSRkMgdjU6IFs3XQotIENocmlzIGltcGxlbWVu dGVkIHRoZSBnZXRwYXJhbSBpb2N0bCB3aGljaCBhbGxvd3MgdG8gdGhlIHRlc3QKICB0byBmaWd1 cmUgb3R1IHdoZXRoZXIgdGhlIG5ldyBpbnRlcmZhY2UgaGFzIGJlZW4gaW1wbGVtZW50ZWQuCiAg VGhpcyB3YXkgdGhlIGZvcl9lYWNoX2VuZ2luZV9jdHgoKSBpcyBhYmxlIHRvIHdvcmsgd2l0aCBu ZXcgYW5kCiAgb2xkIGtlcm5lbCB1YXBpICh0aGFua3MgQ2hyaXMpCgpWNCAtLT4gVjUKPT09PT09 PT09ClJGQyB2NDogWzZdCgotIHRoZSBlbmdpbmUgbGlzdCBpcyBub3cgYnVpbHQgaW4gJ2lndF9y ZXF1aXJlX2dlbSgpJyBpbnN0ZWFkIG9mCiAgJ19fb3Blbl9kcml2ZXIoKScgc28gdGhhdCB3ZSBr ZWVwIHRoaXMgZGlzY292ZXJ5IG1ldGhvZAogIHNwZWNpZmljIHRvIHRoZSBpOTE1IGRyaXZlciAo dGhhbmtzIENocmlzKS4KCi0gQWxsIHRoZSBxdWVyeS9zZXRwYXJhbSBzdHJ1Y3R1cmVzIGR5bmFt aWMgYWxsb2NhdGlvbiBiYXNlZCBvbgogIHRoZSBudW1iZXIgb2YgZW5naW5lcywgbm93IGFyZSBw b2xpdGljYWxseSBhbGxvY2F0ZWQgNjQgdGltZXMsCiAgdG8gYXZvaWQgZXh0cmEgaW9jdGwgY2Fs bHMgdGhhdCByZXRyaWV2ZSB0aGUgZW5naW5lIG51bWJlcgogICh0aGFua3MgQ2hyaXMpCgotIHVz ZSBpZ3RfaW9jdGwgaW5zdGVhZCBvZiBpb2N0bCAodGhhbmtzIENocmlzKQoKLSBhbGxvY2F0ZSBp bnRlbF9leGVjdXRpb25fZW5naW5lczIgZHluYW1pY2FsbHkgaW5zdGVhZCBvZgogIHN0YXRpY2Fs bHkgKHRoYW5rcyBUdnJ0a28pCgotIHNpbXBsaWZ5IHRoZSB0ZXN0IGluICdnZW1fZXhlY19iYXNp YygpJyBzbyB0aGF0IHNpbXBseSBjaGVja3MKICB0aGUgcHJlc2VuY2Ugb2YgdGhlIGVuZ2luZSBp bnN0ZWFkIG9mIGV4ZWN1dGluZyBhIGJ1ZmZlcgogICh0aGFuayBDaHJpcykKCi0gYSBuZXcgcGF0 Y2ggaGFzIGJlZW4gYWRkZWQgKHBhdGNoIDMpIHRoYXQgZXh0ZW5kcyB0aGUKICAnZ2VtX2hhc19y aW5nKCknIGJvb2xlYW4gZnVuY3Rpb24uIFRoZSBuZXcgdmVyc2lvbiBzZXRzIHRoZQogIGluZGV4 IGFzIGl0J3MgbWFwcGVkIGluIHRoZSBrZXJuZWwuVGhlIHByZXZpb3VzIGZ1bmN0aW9uIGlzIG5v dwogIGEgd3JhcHBlciB0byB0aGUgbmV3IGZ1bmN0aW9uLgoKVjMgLS0+IFY0Cj09PT09PT09PQpQ QVRDSCB2MzogWzNdCgotIHJlLWFyY2hpdGVjdHVyZWQgdGhlIGRpc2NvdmVyeSBtZWNoYW5pc20g YmFzZWQgb24gVHZydGtvJ3MKICBzdWdlc3Rpb24gYW5kIHJldmlld3MuLiBJbiB0aGlzIHZlcnNp b24gdGhlIGRpc2NvdmVyeSBpcyBkb25lCiAgZHVyaW5nIHRoZSBkZXZpY2Ugb3BlbmluZyBhbmQg c3RvcmVkIGluIGEgTlVMTCB0ZXJtaW5hdGVkCiAgYXJyYXksIHdoaWNoIHJlcGxhY2VzIHRoZSBl eGlzdGluZyBpbnRlbF9leGVjdXRpb25fZW5naW5lczIKICB0aGF0IGlzIG1haW5seSB1c2VkIGFz IGEgcmVmZXJlbmNlLgoKVjIgLS0+IFYzCj09PT09PT09PQpSRkMgdjI6IFsyXQoKLSByZW1vdmVk IGEgc3RhbmRhbG9uZSBnZW1fcXVlcnlfZW5naW5lc19kZW1vIHRlc3QgYW5kIGFkZGVkIHRoZQog IGV4ZWMtY3R4IHN1YnRlc3QgaW5zaWRlIGdlbV9leGVjX2Jhc2ljICh0aGFua3MgVHZydGtvKS4K Ci0gZml4ZWQgbW9zdCBvZiBUdnJ0a28ncyBjb21tZW50cyBpbiBbNV0sIHdoaWNoIGNvbnNpc3Qg aW4KICBwdXR0aW5nIHRoZSBtYWxsb2NzIGlndF9hc3NlcnQgYW5kIGljdGxzIGluIGlndF9yZXF1 aXJlIGFuZCBmZXcKICByZWZhY3RvcmluZyAodGhhbmtzIFR2cnRrbykuCgpWMSAtLT4gVjIKPT09 PT09PT09ClJGQyB2MTogWzFdCgotIGFkZGVkIGEgZGVtbyB0ZXN0IHRoYXQgc2ltcGx5IHF1ZXJp ZXMgdGhlIGRyaXZlciBhYm91dCB0aGUKICBlbmdpbmVzIGFuZCBleGVjdXRlcyBhIGJ1ZmZlciAo dGhhbmtzIFR2cnRrbykKCi0gcmVmYWN0b3JlZCB0aGUgZm9yX2VhY2hfZW5naW5lX2N0eCgpIG1h Y3JvIHNvIHRoYXQgd2hhdCBpbiB0aGUKICBwcmV2aW91cyB2ZXJzaW9uIHdhcyBkb25lIGJ5IHRo ZSAiYmluZCIgZnVuY3Rpb24sIG5vdyBpdCdzIGRvbmUKICBpbiB0aGUgZmlyc3QgaXRlcmF0aW9u LiAoVGhhbmtzIENyaGlzKQoKLSByZW1vdmVkIHRoZSAiZ2VtX2hhc19yaW5nX2N0eCgpIiBiZWNh dXNlIGl0IHdhcyBvdXQgb2YgdGhlCiAgc2NvcGUuCgotIHJlbmFtZSBmdW5jdGlvbnMgdG8gbW9y ZSBtZWFuaW5nZnVsIG5hbWVzCgpbMV0gUkZDIHYxOiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTgtTm92ZW1iZXIvMDA3MDI1Lmh0bWwKWzJdIFJGQyB2 MjogaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE4LU5v dmVtYmVyLzAwNzA3OS5odG1sClszXSBQQVRDSCB2MzogaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE4LU5vdmVtYmVyLzAwNzE0OC5odG1sCls0XSBodHRw czovL2NnaXQuZnJlZWRlc2t0b3Aub3JnL350dXJzdWxpbi9kcm0taW50ZWwvbG9nLz9oPW1lZGlh Cls1XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTgt Tm92ZW1iZXIvMDA3MTAwLmh0bWwKWzZdIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2Fy Y2hpdmVzL2lndC1kZXYvMjAxOS1KYW51YXJ5LzAwODAyOS5odG1sCls3XSBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktSmFudWFyeS8wMDgxNjUuaHRt bApbOF0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE5 LUZlYnJ1YXJ5LzAwODkwMi5odG1sCls5XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9h cmNoaXZlcy9pZ3QtZGV2LzIwMTktRmVicnVhcnkvMDA5MTg1Lmh0bWwKWzEwXSBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktRmVicnVhcnkvMDA5MjA1 Lmh0bWwKWzExXSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2 LzIwMTktRmVicnVhcnkvMDA5Mjc3Lmh0bWwKWzEyXSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktTWFyY2gvMDEwMTk3Lmh0bWwKWzEzXSBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktTWFyY2gvMDEwNDY3 Lmh0bWwKWzE0XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2 LzIwMTktTWFyY2gvMDEwNzc2Lmh0bWwKWzE1XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktTWFyY2gvMDEwODI3Lmh0bWwKWzE2XSBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktTWFyY2gvMDEwOTE2Lmh0 bWwKWzE3XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIw MTktQXByaWwvMDExODIxLmh0bWwKCkFuZGkgU2h5dGkgKDYpOgogIGluY2x1ZGUvZHJtLXVhcGk6 IGltcG9ydCBpOTE1X2RybS5oIGhlYWRlciBmaWxlCiAgbGliL2k5MTU6IGFkZCBnZW1fZW5naW5l X3RvcG9sb2d5IGxpYnJhcnkgYW5kIGZvcl9lYWNoIGxvb3AgZGVmaW5pdGlvbgogIGxpYjogaWd0 X2d0OiBhZGQgZXhlY3V0aW9uIGJ1ZmZlciBmbGFncyB0byBjbGFzcyBoZWxwZXIKICBsaWI6IGln dF9ndDogbWFrZSBnZW1fZW5naW5lX2Nhbl9zdG9yZV9kd29yZCgpIGNoZWNrIGVuZ2luZSBjbGFz cwogIGxpYjogaWd0X2R1bW15bG9hZDogdXNlIGZvcl9lYWNoX2NvbnRleHRfZW5naW5lKCkKICB0 ZXN0OiBwZXJmX3BtdTogdXNlIHRoZSBnZW1fZW5naW5lX3RvcG9sb2d5IGxpYnJhcnkKCiBpbmNs dWRlL2RybS11YXBpL2k5MTVfZHJtLmggICAgfCAzNjEgKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tCiBsaWIvTWFrZWZpbGUuc291cmNlcyAgICAgICAgICAgfCAgIDIgKwogbGliL2k5 MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jIHwgMjkxICsrKysrKysrKysrKysrKysrKysrKysrKysr CiBsaWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmggfCAgODAgKysrKysrKysKIGxpYi9pZ3Qu aCAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBsaWIvaWd0X2R1bW15bG9hZC5jICAgICAg ICAgICAgfCAgMjkgKystCiBsaWIvaWd0X2d0LmMgICAgICAgICAgICAgICAgICAgfCAgMzAgKyst CiBsaWIvaWd0X2d0LmggICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIGxpYi9tZXNvbi5idWls ZCAgICAgICAgICAgICAgICB8ICAgMSArCiB0ZXN0cy9wZXJmX3BtdS5jICAgICAgICAgICAgICAg fCAxNDggKysrKysrKystLS0tLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDgyMSBpbnNlcnRpb25zKCsp LCAxMzQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2k5MTUvZ2VtX2VuZ2lu ZV90b3BvbG9neS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2k5MTUvZ2VtX2VuZ2luZV90b3Bv bG9neS5oCgotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1k ZXY=