From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: [RFCv2 00/12] TDR/watchdog timeout support for gen8 (edit: fixed coverletter) Date: Tue, 21 Jul 2015 15:51:02 +0100 Message-ID: <1437490262-30791-1-git-send-email-tomas.elf@intel.com> References: <1437487135-32520-1-git-send-email-tomas.elf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 7979E6E800 for ; Tue, 21 Jul 2015 07:51:17 -0700 (PDT) In-Reply-To: <1437487135-32520-1-git-send-email-tomas.elf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBzZXJpZXMgaW50cm9kdWNlcyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzOgoKKiBG ZWF0dXJlIDE6IFREUiAoVGltZW91dCBEZXRlY3Rpb24gYW5kIFJlY292ZXJ5KSBmb3IgZ2VuOCBl eGVjbGlzdCBtb2RlLgoKVERSIGlzIGFuIHVtYnJlbGxhIHRlcm0gZm9yIGFueXRoaW5nIHRoYXQg Z29lcyBpbnRvIGRldGVjdGluZyBhbmQgcmVjb3ZlcmluZyBmcm9tIEdQVSBoYW5ncyBhbmQgaXMg YSB0ZXJtIG1vcmUgd2lkZWx5IHVzZWQgb3V0c2lkZSBvZiB0aGUgdXBzdHJlYW0gZHJpdmVyLgpU aGlzIGZlYXR1cmUgaW50cm9kdWNlcyBhbiBleHRlbnNpYmxlIGZyYW1ld29yayB0aGF0IGN1cnJl bnRseSBzdXBwb3J0cyBnZW44IGJ1dCB0aGF0IGNhbiBiZSBlYXNpbHkgZXh0ZW5kZWQgdG8gc3Vw cG9ydCBnZW43IGFzIHdlbGwgKHdoaWNoIGlzIGFscmVhZHkgdGhlIGNhc2UgaW4gR01JTiBidXQg dW5mb3J0dW5hdGVseSBpbiBhIG5vdCBxdWl0ZSB1cHN0cmVhbWFibGUgZm9ybSkuIFRoZSBjb2Rl IGNvbnRhaW5lZCBpbiB0aGlzIHN1Ym1pc3Npb24gcmVwcmVzZW50cyB0aGUgZXNzZW50aWFscyBv ZiB3aGF0IGlzIGN1cnJlbnRseSBpbiBHTUlOIG1lcmdlZCB3aXRoIHdoYXQgaXMgY3VycmVudGx5 IGluIHVwc3RyZWFtIChhcyBvZiB0aGUgdGltZSB3aGVuIHRoaXMgd29yayBjb21tZW5jZWQgYSBm ZXcgbW9udGhzIGJhY2spLgoKVGhpcyBmZWF0dXJlIGFkZHMgYSBuZXcgaGFuZyByZWNvdmVyeSBw YXRoIGFsb25nc2lkZSB0aGUgbGVnYWN5IEdQVSByZXNldCBwYXRoLCB3aGljaCB0YWtlcyBjYXJl IG9mIGVuZ2luZSByZWNvdmVyeSBvbmx5LiBBc2lkZSBmcm9tIGFkZGluZyBzdXBwb3J0IGZvciBw ZXItZW5naW5lIHJlY292ZXJ5IHRoaXMgZmVhdHVyZSBhbHNvIGludHJvZHVjZXMgcnVsZXMgZm9y IGhvdyB0byBwcm9tb3RlIGEgcG90ZW50aWFsIHBlci1lbmdpbmUgcmVzZXQgdG8gYSBsZWdhY3ks IGZ1bGwgR1BVIHJlc2V0LgoKVGhlIGhhbmcgY2hlY2tlciBub3cgaW50ZWdyYXRlcyB3aXRoIHRo ZSBlcnJvciBoYW5kbGVyIGluIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHdheSBpbiB0aGF0IGl0IGFs bG93cyBoYW5nIHJlY292ZXJ5IG9uIG11bHRpcGxlIGVuZ2luZXMgYXQgdGhlIHNhbWUgdGltZSBi eSBwYXNzaW5nIGFuIGVuZ2luZSBmbGFnIG1hc2sgdG8gdGhlIGVycm9yIGhhbmRsZXIgd2hlcmUg ZmxhZ3MgcmVwcmVzZW50aW5nIGFsbCBvZiB0aGUgaHVuZyBlbmdpbmVzIGFyZSBzZXQuIFRoaXMg YWxsb3dzIHVzIHRvIHNjaGVkdWxlIGhhbmcgcmVjb3Zlcnkgb25jZSBmb3IgYWxsIGN1cnJlbnRs eSBodW5nIGVuZ2luZXMgaW5zdGVhZCBvZiBvbmUgaGFuZyByZWNvdmVyeSBwZXIgZGV0ZWN0ZWQg ZW5naW5lIGhhbmcuIFByZXZpb3VzbHksIHdoZW4gb25seSBmdWxsIEdQVSByZXNldCB3YXMgc3Vw cG9ydGVkIHRoaXMgd2FzIGFsbCB0aGUgc2FtZSBzaW5jZSBpdCB3b3VsZG4ndCBtYXR0ZXIgaWYg b25lIG9yIGZvdXIgZW5naW5lcyB3ZXJlIGh1bmcgYXQgYW55IGdpdmVuIHBvaW50IHNpbmNlIGl0 IHdvdWxkIGFsbCBhbW91bnQgdG8gdGhlIHNhbWUgdGhpbmcgLSB0aGUgR1BVIGdldHRpbmcgcmVz ZXQuIEFzIGl0IHN0YW5kcyBub3cgdGhlIGJlaGF2aW91ciBpcyBkaWZmZXJlbnQgZGVwZW5kaW5n IG9uIHdoaWNoIGVuZ2luZSBpcyBodW5nIHNpbmNlIGVhY2ggZW5naW5lIGlzIHJlc2V0IHNlcGFy YXRlbHkgZnJvbSBhbGwgdGhlIG90aGVyIGVuZ2luZXMsIHRoZXJlZm9yZSB3ZSBoYXZlIHRvIHRo aW5rIGFib3V0IHRoaXMgaW4gdGVybXMgb2Ygc2NoZWR1bGluZyBjb3N0IGFuZCByZWNvdmVyeSBs YXRlbmN5LiAoc2VlIG9wZW4gcXVlc3Rpb24gYmVsb3cpCgpPUEVOIFFVRVNUSU9OUzoKCgkxLiBE byB3ZSB3YW50IHRvIGludmVzdGlnYXRlIHRoZSBwb3NzaWJpbGl0eSBvZiBwZXItZW5naW5lIGhh bmcKCWRldGVjdGlvbj8gSW4gdGhlIGN1cnJlbnQgdXBzdHJlYW0gZHJpdmVyIHRoZXJlIGlzIG9u bHkgb25lIHdvcmsgcXVldWUKCXRoYXQgaGFuZGxlcyB0aGUgaGFuZyBjaGVja2VyIGFuZCBldmVy eXRoaW5nIGZyb20gaW5pdGlhbCBoYW5nCglkZXRlY3Rpb24gdG8gZmluYWwgaGFuZyByZWNvdmVy eSBydW5zIGluIHRoaXMgdGhyZWFkLiBUaGlzIG1ha2VzIHNlbnNlCglpZiB5b3UncmUgb25seSBz dXBwb3J0aW5nIG9uZSBmb3JtIG9mIGhhbmcgcmVjb3ZlcnkgLSB1c2luZyBmdWxsIEdQVQoJcmVz ZXQgYW5kIG5vdGhpbmcgdGllZCB0byBhbnkgcGFydGljdWxhciBlbmdpbmUuIEhvd2V2ZXIsIGFz IHBhcnQKCW9mIHRoaXMgcGF0Y2ggc2VyaWVzIHdlJ3JlIGNoYW5naW5nIHRoYXQgYnkgaW50cm9k dWNpbmcgcGVyLWVuZ2luZQoJaGFuZyByZWNvdmVyeS4gSXQgY291bGQgbWFrZSBzZW5zZSB0byBp bnRyb2R1Y2UgbXVsdGlwbGUgd29yawoJcXVldWVzIC0gb25lIHBlciBlbmdpbmUgLSB0byBydW4g bXVsdGlwbGUgaGFuZyBjaGVja2luZyB0aHJlYWRzIGluCglwYXJhbGxlbC4KCglUaGlzIHdvdWxk IHBvdGVudGlhbGx5IGFsbG93IHNhdmluZ3MgaW4gdGVybXMgb2YgcmVjb3ZlcnkgbGF0ZW5jeSBz aW5jZQoJd2UgZG9uJ3QgaGF2ZSB0byBzY2FuIGFsbCBlbmdpbmVzIGV2ZXJ5IHRpbWUgdGhlIGhh bmcgY2hlY2tlciBpcwoJc2NoZWR1bGVkIGFuZCB0aGUgZXJyb3IgaGFuZGxlciBkb2VzIG5vdCBo YXZlIHRvIHNjYW4gYWxsIGVuZ2luZXMgZXZlcnkKCXRpbWUgaXQgaXMgc2NoZWR1bGVkLiBJbnN0 ZWFkLCB3ZSBjb3VsZCBpbXBsZW1lbnQgb25lIHdvcmsgcXVldWUgcGVyCgllbmdpbmUgdGhhdCB3 b3VsZCBpbnZva2UgdGhlIGhhbmcgY2hlY2tlciB0aGF0IG9ubHkgY2hlY2tzIF90aGF0XwoJcGFy dGljdWxhciBlbmdpbmUgYW5kIHRoZW4gdGhlIGVycm9yIGhhbmRsZXIgaXMgaW52b2tlZCBmb3Ig X3RoYXRfCglwYXJ0aWN1bGFyIGVuZ2luZS4gSWYgb25lIGVuZ2luZSBoYXMgaHVuZyB0aGUgbGF0 ZW5jeSBmb3IgZ2V0dGluZyB0bwoJdGhlIGhhbmcgcmVjb3ZlcnkgcGF0aCBmb3IgdGhhdCBwYXJ0 aWN1bGFyIGVuZ2luZSB3b3VsZCBiZSAoVGltZSBGb3IKCUhhbmcgQ2hlY2tpbmcgT25lIEVuZ2lu ZSkgKyAoVGltZSBGb3IgRXJyb3IgSGFuZGxpbmcgT25lIEVuZ2luZSkgcmF0aGVyCgl0aGFuIHRo ZSB0aW1lIGl0IHRha2VzIHRvIGRvIGhhbmcgY2hlY2tpbmcgZm9yIGFsbCBlbmdpbmVzICsgdGhl IHRpbWUKCWl0IHRha2VzIHRvIGRvIGVycm9yIGhhbmRsaW5nIGZvciBhbGwgZW5naW5lcyB0aGF0 IGhhdmUgYmVlbiBkZXRlY3RlZAoJYXMgaHVuZyAod2hpY2ggaW4gdGhlIHdvcnN0IGNhc2Ugd291 bGQgYmUgYWxsIGVuZ2luZXMpLiBUaGVyZSB3b3VsZAoJcG90ZW50aWFsbHkgYmUgYXMgbWFueSBo YW5nIGNoZWNrZXIgYW5kIGVycm9yIGhhbmRsaW5nIHRocmVhZHMgZ29pbmcgb24KCWNvbmN1cnJl bnRseSBhcyB0aGVyZSBhcmUgZW5naW5lcyBpbiB0aGUgaGFyZHdhcmUgYnV0IHRoZXkgd291bGQg YWxsIGJlCglydW5uaW5nIGluIHBhcmFsbGVsIHdpdGhvdXQgYW55IHNpZ25pZmljYW50IGxvY2tp bmcuIFRoZSBmaXJzdCB0aW1lCgl3aGVyZSBhbnkgdGhyZWFkIG5lZWRzIGV4Y2x1c2l2ZSBhY2Nl c3MgdG8gdGhlIGRyaXZlciBpcyBhdCB0aGUgcG9pbnQKCW9mIHRoZSBhY3R1YWwgaGFuZyByZWNv dmVyeSBidXQgdGhlIHRpbWUgaXQgdGFrZXMgdG8gZ2V0IHRoZXJlIHdvdWxkCgl0aGVvcmV0aWNh bGx5IGJlIGxvd2VyIGFuZCB0aGUgdGltZSBpdCBhY3R1YWxseSB0YWtlcyB0byBkbyBwZXItZW5n aW5lCgloYW5nIHJlY292ZXJ5IGlzIHF1aXRlIGEgbG90IGxvd2VyIHRoYW4gdGhlIHRpbWUgaXQg dGFrZXMgdG8gYWN0dWFsbHkKCWRldGVjdCBhIGhhbmcgcmVsaWFibHkuCgoJSG93IG11Y2ggd2Ug d291bGQgc2F2ZSBieSBzdWNoIGEgY2hhbmdlIHN0aWxsIG5lZWRzIHRvIGJlIGFuYWx5c2VkIGFu ZAoJY29tcGFyZWQgYWdhaW5zdCB0aGUgY3VycmVudCBzaW5nbGUtdGhyZWFkIG1vZGVsIGJ1dCBp dCBtYWtlcyBzZW5zZQoJZnJvbSBhIHRoZW9yZXRpY2FsIGRlc2lnbiBwb2ludCBvZiB2aWV3LgoK KiBGZWF0dXJlIDI6IFdhdGNoZG9nIFRpbWVvdXQgKGEuay5hICJtZWRpYSBlbmdpbmUgcmVzZXQi KSBmb3IgZ2VuOC4KClRoaXMgZmVhdHVyZSBhbGxvd3MgdXNlcmxhbmQgYXBwbGljYXRpb25zIHRv IGNvbnRyb2wgd2hldGhlciBvciBub3QgaW5kaXZpZHVhbCBiYXRjaCBidWZmZXJzIHNob3VsZCBo YXZlIGEgZmlyc3QtbGV2ZWwsIGZpbmUtZ3JhaW5lZCwgaGFyZHdhcmUtYmFzZWQgaGFuZyBkZXRl Y3Rpb24gbWVjaGFuaXNtIG9uIHRvcCBvZiB0aGUgb3JkaW5hcnksIHNvZnR3YXJlLWJhc2VkIHBl cmlvZGljIGhhbmcgY2hlY2tlciB0aGF0IGlzIGFscmVhZHkgaW4gdGhlIGRyaXZlci4gVGhlIGFk dmFudGFnZSBvdmVyIHJlbHlpbmcgc29sZWx5IG9uIHRoZSBjdXJyZW50IHNvZnR3YXJlLWJhc2Vk IGhhbmcgY2hlY2tlciBpcyB0aGF0IHRoZSB3YXRjaGRvZyB0aW1lb3V0IG1lY2hhbmlzbSBpcyBh Ym91dCAxMDAweCBxdWlja2VyIGFuZCBtb3JlIHByZWNpc2UuIFNpbmNlIGl0J3Mgbm90IGEgZnVs bCBkcml2ZXItbGV2ZWwgaGFuZyBkZXRlY3Rpb24gbWVjaGFuaXNtIGJ1dCBvbmx5IHRhcmdldHRp bmcgb25lIGluZGl2aWR1YWwgYmF0Y2ggYnVmZmVyIGF0IGEgdGltZSBpdCBjYW4gYWZmb3JkIHRv IGJlIHRoYXQgcXVpY2sgd2l0aG91dCByaXNraW5nIGFuIGluY3JlYXNlIGluIGZhbHNlIHBvc2l0 aXZlIGhhbmcgZGV0ZWN0aW9uLgoKVGhpcyBmZWF0dXJlIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcg Y2hhbmdlczoKCmEpIFdhdGNoZG9nIHRpbWVvdXQgaW50ZXJydXB0IHNlcnZpY2Ugcm91dGluZSBm b3IgaGFuZGxpbmcgd2F0Y2hkb2cgaW50ZXJydXB0cyBhbmQgY29ubmVjdGluZyB0aGVzZSB0byBw ZXItZW5naW5lIGhhbmcgcmVjb3ZlcnkuCgpiKSBJbmplY3Rpb24gb2Ygd2F0Y2hkb2cgdGltZXIg ZW5hYmxlbWVudC9jYW5jZWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGJlZm9yZS9hZnRlciB0aGUgYmF0 Y2ggYnVmZmVyIHN0YXJ0IGluc3RydWN0aW9uIGluIHRoZSByaW5nIGJ1ZmZlciBzbyB0aGF0IHdh dGNoZG9nIHRpbWVvdXQgaXMgY29ubmVjdGVkIHRvIHRoZSBzdWJtaXNzaW9uIG9mIGFuIGluZGl2 aWR1YWwgYmF0Y2ggYnVmZmVyLgoKYykgRXh0ZW5zaW9uIG9mIHRoZSBEUk0gYmF0Y2ggYnVmZmVy IGludGVyZmFjZSwgZXhwb3NpbmcgdGhlIHdhdGNoZG9nIHRpbWVvdXQgZmVhdHVyZSB0byB1c2Vy bGFuZC4gV2UndmUgZ290IHR3byBvcGVuIHNvdXJjZSBncm91cHMgaW4gVlBHIGN1cnJlbnRseSBp biB0aGUgcHJvY2VzcyBvZiBpbnRlZ3JhdGluZyBzdXBwb3J0IGZvciB0aGlzIGZlYXR1cmUsIHdo aWNoIHNob3VsZCBtYWtlIGl0IHByaW5jaXBhbGx5IHBvc3NpYmxlIHRvIHVwc3RyZWFtIHRoaXMg ZXh0ZW5zaW9uLgoKVGhlcmUgaXMgY3VycmVudGx5IGZ1bGwgd2F0Y2hkb2cgdGltZW91dCBzdXBw b3J0IGZvciBnZW43IGluIEdNSU4gYW5kIGl0IGlzIHF1aXRlIHNpbWlsYXIgdG8gdGhlIGdlbjgg aW1wbGVtZW50YXRpb24gc28gdGhlcmUgaXMgbm90aGluZyBvYnZpb3VzIHRoYXQgcHJldmVudHMg dXMgZnJvbSB1cHN0cmVhbWluZyB0aGF0IGNvZGUgYWxvbmcgd2l0aCB0aGUgZ2VuOCBjb2RlLiBI b3dldmVyLCB3YXRjaGRvZyB0aW1lb3V0IGlzIGZ1bGx5IGRlcGVuZGVudCBvbiB0aGUgcGVyLWVu Z2luZSBoYW5nIHJlY292ZXJ5IHBhdGggYW5kIHRoYXQgaXMgbm90IHBhcnQgb2YgdGhpcyBjb2Rl IHN1Ym1pc3Npb24gZm9yIGdlbjcuIFRoZXJlZm9yZSB3YXRjaGRvZyB0aW1lb3V0IHN1cHBvcnQg Zm9yIGdlbjcgaGFzIGJlZW4gZXhjbHVkZWQgdW50aWwgcGVyLWVuZ2luZSBoYW5nIHJlY292ZXJ5 IHN1cHBvcnQgZm9yCmdlbjcgaGFzIGxhbmRlZCB1cHN0cmVhbS4KCkFzIHBhcnQgb2YgdGhpcyBz dWJtaXNzaW9uIHdlJ3ZlIGhhZCB0byByZWluc3RhdGUgdGhlIHdvcmsgcXVldWUgdGhhdCB3YXMg cHJldmlvdXNseSBpbiBwbGFjZSBiZXR3ZWVuIHRoZSBlcnJvciBoYW5kbGVyIGFuZCB0aGUgaGFu ZyByZWNvdmVyeSBwYXRoLiBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgdGhlIHBlci1lbmdp bmUgcmVjb3ZlcnkgcGF0aCBpcyBjYWxsZWQgZGlyZWN0bHkgZnJvbSB0aGUgaW50ZXJydXB0IGhh bmRsZXIgaW4gdGhlIGNhc2Ugb2Ygd2F0Y2hkb2cgdGltZW91dC4gSW4gdGhhdCBzaXR1YXRpb24g dGhlcmUncyBubyB3YXkgb2YgZ3JhYmJpbmcgdGhlIHN0cnVjdF9tdXRleCwgd2hpY2ggaXMgYSBy ZXF1aXJlbWVudCBmb3IgdGhlIGhhbmcgcmVjb3ZlcnkgcGF0aC4gVGhlcmVmb3JlLCBieSByZWlu c3RhdGluZyB0aGUgd29yayBxdWV1ZSB3ZSBwcm92aWRlIGEgdW5pZmllZCBleGVjdXRpb24gY29u dGV4dCBmb3IgdGhlIGhhbmcgcmVjb3ZlcnkgY29kZSB0aGF0IGFsbG93cyB0aGUgaGFuZyByZWNv dmVyeSBjb2RlIHRvIGdyYWIgd2hhdGV2ZXIgbG9ja3MgaXQgbmVlZHMgd2l0aG91dCBzYWNyaWZp Y2luZyBpbnRlcnJ1cHQgbGF0ZW5jeSB0b28gbXVjaCBvciBzbGVlcGluZyBpbmRlZmluaXRlbHkg aW4gaGFyZCBpbnRlcnJ1cHQgY29udGV4dC4KCiogRmVhdHVyZSAzLiBDb250ZXh0IFN1Ym1pc3Np b24gU3RhdHVzIENvbnNpc3RlbmN5IGNoZWNraW5nCgpTb21ldGhpbmcgdGhhdCBiZWNvbWVzIGFw cGFyZW50IHdoZW4geW91IHJ1biBsb25nLWR1cmF0aW9uIG9wZXJhdGlvbnMgdGVzdHMgd2l0aCBj b25jdXJyZW50IHJlbmRlcmluZyBwcm9jZXNzZXMgd2l0aCBpbnRlcm1pdHRlbnRseSBpbmplY3Rl ZCBoYW5ncyBpcyB0aGF0IGl0IHNlZW1zIGxpa2UgdGhlIEdQVSBmb3JnZXRzIHRvIHNlbmQgY29u dGV4dCBjb21wbGV0aW9uIGludGVycnVwdHMgdG8gdGhlIGRyaXZlciB1bmRlciBzb21lIGNpcmN1 bXN0YW5jZXMuIFdoYXQgdGhpcyBtZWFucyBpcyB0aGF0IHRoZSBkcml2ZXIgc29tZXRpbWVzIGdl dHMgc3R1Y2sgb24gYSBjb250ZXh0IHRoYXQgbmV2ZXIgc2VlbXMgdG8gZmluaXNoLCBhbGwgdGhl IHdoaWxlIHRoZSBoYXJkd2FyZSBoYXMgY29tcGxldGVkIGFuZCBpcyB3YWl0aW5nIGZvciBtb3Jl IHdvcmsuCgpUaGUgcHJvYmxlbSB3aXRoIHRoaXMgaXMgdGhhdCB0aGUgcGVyLWVuZ2luZSBoYW5n IHJlY292ZXJ5IHBhdGggcmVsaWVzIG9uIGNvbnRleHQgcmVzdWJtaXNzaW9uIHRvIGtpY2sgb2Zm IHRoZSBoYXJkd2FyZSBhZ2FpbiBmb2xsb3dpbmcgYW4gZW5naW5lIHJlc2V0LgpUaGlzIGNhbiBv bmx5IGJlIGRvbmUgc2FmZWx5IGlmIHRoZSBoYXJkd2FyZSBhbmQgZHJpdmVyIHNoYXJlIHRoZSBz YW1lIG9waW5pb24gYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuIFRoZXJlZm9yZSB3ZSd2ZSBleHRl bmRlZCB0aGUgcGVyaW9kaWMgaGFuZyBjaGVja2VyIHRvIGNoZWNrIGZvciBjb250ZXh0IHN1Ym1p c3Npb24gc3RhdGUgaW5jb25zaXN0ZW5jaWVzIGFzaWRlIGZyb20gdGhlIGhhbmcgY2hlY2tpbmcg aXQgYWxyZWFkeSBkb2VzLgoKSWYgc3VjaCBhIHN0YXRlIGlzIGRldGVjdGVkIGl0IGlzIGFzc3Vt ZWQgKGJhc2VkIG9uIGV4cGVyaWVuY2UpIHRoYXQgYSBjb250ZXh0IGNvbXBsZXRpb24gaW50ZXJy dXB0IGhhcyBiZWVuIGxvc3Qgc29tZWhvdy4gSWYgdGhpcyBzdGF0ZSBwZXJzaXN0cyBmb3Igc29t ZSB0aW1lIGFuIGF0dGVtcHQgdG8gY29ycmVjdCBpdCBpcyBtYWRlIGJ5IGZha2luZyB0aGUgcHJl c3VtYWJseSBsb3N0IGNvbnRleHQgY29tcGxldGlvbiBpbnRlcnJ1cHQgYnkgbWFudWFsbHkgY2Fs bGluZyB0aGUgZXhlY2xpc3QgaW50ZXJydXB0IGhhbmRsZXIsIHdoaWNoIGlzIG5vcm1hbGx5IGNh bGxlZCBmcm9tIHRoZSBtYWluIGludGVycnVwdCBoYW5kbGVyIGN1ZWQgYnkgYSByZWNlaXZlZCBj b250ZXh0IGV2ZW50IGludGVycnVwdC4gSnVzdCBiZWNhdXNlIGFuIGludGVycnVwdCBnb2VzIG1p c3NpbmcgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSBjb250ZXh0IHN0YXR1cyBidWZmZXIgKENTQikg ZG9lcyBub3QgZ2V0IGFwcHJvcHJpYXRlbHkgdXBkYXRlZCBieSB0aGUgaGFyZHdhcmUsIHdoaWNo IG1lYW5zIHRoYXQgd2UgY2FuIGV4cGVjdCB0byBmaW5kIGFsbCB0aGUgcmVjZW50IGNoYW5nZXMg dG8gdGhlIGNvbnRleHQgc3RhdGVzIGZvciBlYWNoIGVuZ2luZSBjYXB0dXJlZCB0aGVyZS4KCklm IHRoZXJlIGFyZSBvdXRzdGFuZGluZyBjb250ZXh0IHN0YXR1cyBjaGFuZ2VzIGluIHN0b3JlIHRo ZXJlIHRoZW4gdGhlIGZha2VkIGNvbnRleHQgZXZlbnQgaW50ZXJydXB0IHdpbGwgYWxsb3cgdGhl IGludGVycnVwdCBoYW5kbGVyIHRvIGFjdCBvbiB0aGVtLiBJbiB0aGUgY2FzZSBvZiBsb3N0IGNv bnRleHQgY29tcGxldGlvbiBpbnRlcnJ1cHRzIHRoaXMgd2lsbCBwcm9tcHQgdGhlIGRyaXZlciB0 byByZW1vdmUgdGhlIGFscmVhZHkgY29tcGxldGVkIGNvbnRleHQgZnJvbSB0aGUgZXhlY2xpc3Qg cXVldWUgYW5kIG1vdmUgb24gdG8gdGhlIG5leHQgcGVuZGluZyBwaWVjZSBvZiB3b3JrIGFuZCB0 aGVyZWJ5IGVsaW1pbmF0aW5nIHRoZSBpbmNvbnNpc3RlbmN5LgoKKiBGZWF0dXJlIDQuIERlYnVn ZnMgZXh0ZW5zaW9ucyBmb3IgcGVyLWVuZ2luZSBoYW5nIHJlY292ZXJ5IGFuZCBURFIvd2F0Y2hk b2cgdHJhY2UgcG9pbnRzLgoKR0lUSFVCIFJFUE9TSVRPUlk6Cmh0dHBzOi8vZ2l0aHViLmNvbS90 ZWxmL1REUl93YXRjaGRvZ19SRkNfMS5naXQKClJGQyBWRVJTSU9OIDEgQlJBTkNIOgoyMDE1MDYw OF9URFJfdXBzdHJlYW1fYWRhcHRhdGlvbl9zaW5nbGUtdGhyZWFkX2hhbmdjaGVja2luZ19SRkNf ZGVsaXZlcnlfc2VuZG1haWxfMQoKUkZDIFZFUlNJT04gMiBCUkFOQ0g6CjIwMTUwNjA0X1REUl91 cHN0cmVhbV9hZGFwdGF0aW9uX3NpbmdsZS10aHJlYWRfaGFuZ2NoZWNraW5nX1JGQ3YyX2RlbGl2 ZXJ5X3NlbmRtYWlsXzEKCkNIQU5HRVMgSU4gVkVSU0lPTiAyCi0tLS0tLS0tLS0tLS0tLS0tLS0t ClZlcnNpb24gMiBvZiB0aGlzIFJGQyBzZXJpZXMgYWRkcmVzc2VzIGRlc2lnbiBjb25jZXJucyB0 aGF0IENocmlzIFdpbHNvbiBhbmQgRGFuaWVsIFZldHRlciBldC4gYWwuIGhhZCB3aXRoIHRoZSBm aXJzdCB2ZXJzaW9uIG9mIHRoaXMgUkZDIHNlcmllcy4gQmVsb3cgaXMgYSBzdW1tYXJ5IG9mIGFs bCB0aGUgY2hhbmdlcyBtYWRlIGJldHdlZW4gdmVyc2lvbnM6CgoqIFsxLzEyXSBkcm0vaTkxNTog RWFybHkgZXhpdCBmcm9tIHNlbWFwaG9yZV93YWl0c19mb3IgZm9yIGV4ZWNsaXN0IG1vZGU6CglU dXJuZWQgdGhlIGV4ZWNsaXN0IG1vZGUgY2hlY2sgaW50byBhIHJpbmdidWZmZXIgTlVMTCBjaGVj ayB0byBtYWtlIGl0IG1vcmUgc3VibWlzc2lvbiBtb2RlIGFnbm9zdGljIGFuZCBsZXNzIG9mIGEg bGF5ZXJpbmcgdmlvbGF0aW9uLgoKKiBbMi8xMl0gZHJtL2k5MTU6IE1ha2UgaTkxNV9nZW1fcmVz ZXRfcmluZ19zdGF0dXMoKSBwdWJsaWMKCVJlcGxhY2VzIHRoZSBvbGQgcGF0Y2ggaW4gUkZDdjE6 ICJkcm0vaTkxNTogQWRkIHJlc2V0IHN0YXRzIGVudHJ5IHBvaW50IGZvciBwZXItZW5naW5lIHJl c2V0IgoKKiBbMy8xMl0gZHJtL2k5MTU6IEFkZGluZyBURFIgLyBwZXItZW5naW5lIHJlc2V0IHN1 cHBvcnQgZm9yIGdlbjg6CgoJMS4gU2ltcGx5IHVzZSB0aGUgcHJldmlvdXNseSBwcml2YXRlIGZ1 bmN0aW9uCglpOTE1X2dlbV9yZXNldF9yaW5nX3N0YXR1cygpIGZyb20gdGhlIGVuZ2luZSBoYW5n IHJlY292ZXJ5IHBhdGggdG8gc2V0CglhY3RpdmUvcGVuZGluZyBjb250ZXh0IHN0YXR1cy4gVGhp cyByZXBsaWNhdGVzIHRoZSBzYW1lIGJlaGF2aW91ciBhcyBpbgoJZnVsbCBHUFUgcmVzZXQgYnV0 IGZvciBhIHNpbmdsZSwgdGFyZ2V0dGVkIGVuZ2luZS4KCgkyLiBSZW1vdmUgYWxsIGFkZGl0aW9u YWwgdWV2ZW50cyBmb3IgYm90aCBmdWxsIEdQVSByZXNldCBhbmQgcGVyLWVuZ2luZQoJcmVzZXQu ICBBZGFwdGVkIHVldmVudCBiZWhhdmlvdXIgdG8gdGhlIG5ldyBwZXItZW5naW5lIGhhbmcgcmVj b3ZlcnkKCW1vZGUgaW4gdGhhdCBpdCB3aWxsIG9ubHkgc2VuZCBvbmUgdWV2ZW50IHJlZ2FyZGxl c3Mgb2Ygd2hpY2ggZm9ybSBvZgoJcmVjb3ZlcnkgaXMgZW1wbG95ZWQuICBJZiBhIHBlci1lbmdp bmUgcmVzZXQgaXMgYXR0ZW1wdGVkIGZpcnN0IHRoZW4KCW9uZSB1ZXZlbnQgd2lsbCBiZSBkaXNw YXRjaGVkLiAgSWYgdGhhdCByZWNvdmVyeSBtb2RlIGZhaWxzIGFuZCB0aGUKCWhhbmcgaXMgcHJv bW90ZWQgdG8gYSBmdWxsIEdQVSByZXNldCBubyBmdXJ0aGVyIHVldmVudHMgd2lsbCBiZQoJZGlz cGF0Y2hlZCBhdCB0aGF0IHBvaW50LgoKCTMuIFJlbW92ZWQgdGhlIDIqSFVORyBoYW5nIHRocmVz aG9sZCBmcm9tIGk5MTVfaGFuZ2NoZWNrX2VsYXBzZWQgaW4KCW9yZGVyIHRvIG5vdCBtYWtlIHRo ZSBoYW5nIGRldGVjdGlvbiBhbGdvcml0aG0gdG9vIGNvbXBsaWNhdGVkLiBUaGlzCgl0aHJlc2hv bGQgd2FzIGludHJvZHVjZWQgdG8gY29tcGVuc2F0ZSBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQg aGFuZwoJcmVjb3ZlcnkgbWlnaHQgYmUgZGVsYXllZCBkdWUgdG8gaW5jb25zaXN0ZW50IGNvbnRl eHQgc3VibWlzc2lvbiBzdGF0dXMKCXRoYXQgd291bGQgcHJldmVudCBwZXItZW5naW5lIGhhbmcg cmVjb3ZlcnkgZnJvbSBoYXBwZW5pbmcuIEluIGEgbGF0ZXIKCXBhdGNoIHdlIGludHJvZHVjZSBm YWtlZCBjb250ZXh0IGV2ZW50IGludGVycnVwdHMgYW5kIGluY29uc2lzdGVuY3kKCXJlY3RpZmlj YXRpb24gYXQgdGhlIG9uc2V0IG9mIHBlci1lbmdpbmUgaGFuZyByZWNvdmVyeSBpbnN0ZWFkIG9m CglyZWx5aW5nIG9uIHRoZSBoYW5nIGNoZWNrZXIgdG8gZG8gdGhpcyBmb3IgdXMuIFRoZXJlZm9y ZSwgc2luY2Ugd2UgZG8KCW5vdCBkZWxheSBhbmQgZGVmZXIgdG8gZnV0dXJlIGhhbmcgZGV0ZWN0 aW9ucywgd2UgbmV2ZXIgYWxsb3cgaGFuZ3MgdG8KCWdvIGFkZHJlc3NlZCBiZXlvbmQgdGhlIEhV TkcgdGhyZXNob2xkIGFuZCB0aGVyZWZvcmUgdGhlcmUgaXMgbm8gbmVlZAoJZm9yIGFueSBmdXJ0 aGVyIHRocmVzaG9sZHMuCgoJNC4gVGlkaWVkIHVwIHRoZSBURFIgY29udGV4dCByZXN1Ym1pc3Np b24gcGF0aCBpbiBpbnRlbF9scmMuYyAuIFJlZHVjZWQKCXRoZSBhbW91bnQgb2YgZHVwbGljYXRp b24gYnkgcmVseWluZyBlbnRpcmVseSBvbiB0aGUgbm9ybWFsIHVucXVldWUKCWZ1bmN0aW9uLiAg QWRkZWQgYSBuZXcgcGFyYW1ldGVyIHRvIHRoZSB1bnF1ZXVlIGZ1bmN0aW9uIHRoYXQgdGFrZXMK CWludG8gY29uc2lkZXJhdGlvbiBpZiB0aGUgdW5xdWV1ZSBjYWxsIGlzIGZvciBhIGZpcnN0LXRp bWUgY29udGV4dAoJc3VibWlzc2lvbiBvciBhIHJlc3VibWlzc2lvbiBhbmQgYWRhcHRzIHRoZSBo YW5kbGluZyBvZiBlbHNwX3N1Ym1pdHRlZAoJYWNjb3JkaW5nbHkuIFRoZSByZWFzb24gZm9yIHRo aXMgaXMgdGhhdCBmb3IgY29udGV4dCByZXN1Ym1pc3Npb24gd2UKCWRvbid0IGV4cGVjdCBhbnkg ZnVydGhlciBpbnRlcnJ1cHRzIGZvciB0aGUgc3VibWlzc2lvbiBvciB0aGUgZm9sbG93aW5nCglj b250ZXh0IGNvbXBsZXRpb24uIEEgbW9yZSBlbGVnYW50IHdheSBvZiBoYW5kbGluZyB0aGlzIHdv dWxkIGJlIHRvCglwaGFzZSBvdXQgZWxzcF9zdWJtaXR0ZWQgYWx0b2dldGhlciwgaG93ZXZlciB0 aGF0J3MgcGFydCBvZiBhCglMUkMvZXhlY2xpc3QgY2xlYW51cCBlZmZvcnQgdGhhdCBpcyBoYXBw ZW5pbmcgaW5kZXBlbmRlbnRseSBvZiB0aGlzCglSRkMuIEZvciBub3cgd2UgbWFrZSB0aGlzIGNo YW5nZSBhcyBzaW1wbGUgYXMgcG9zc2libGUgd2l0aCBhcyBmZXcKCW5vbi1URFItcmVsYXRlZCBz aWRlLWVmZmVjdHMgYXMgcG9zc2libGUuCgoqIFs0LzEyXSBkcm0vaTkxNTogRXh0ZW5kaW5nIGk5 MTVfZ2VtX2NoZWNrX3dlZGdlIHRvIGNoZWNrIGVuZ2luZSByZXNldCBpbiBwcm9ncmVzczoKCVJl bW92ZWQgdW53YXJyYW50ZWQgY2hhbmdlcyBtYWRlIHRvIGk5MTVfZ2VtX3JpbmdfdGhyb3R0bGUo KQoKKiBbNy8xMl0gZHJtL2k5MTU6IEZha2UgbG9zdCBjb250ZXh0IGludGVycnVwdHMgdGhyb3Vn aCBmb3JjZWQgQ1NCIGNoZWNrCglSZW1vdmUgY29udGV4dCBzdWJtaXNzaW9uIHN0YXR1cyBjb25z aXN0ZW5jeSBwcmUtY2hlY2sgZnJvbQoJaTkxNV9oYW5nY2hlY2tfZWxhcHNlZCgpIGFuZCB0dXJu IGl0IGludG8gYSBwcmUtY2hlY2sgdG8gcGVyLWVuZ2luZQoJcmVzZXQuCgoJVGhlIGZvbGxvd2lu ZyBkZXNjcmliZXMgdGhlIGNoYW5nZSBpbiBwaGlsb3NwaHkgaW4gaG93IGNvbnRleHQKCXN1Ym1p c3Npb24gc3RhdGUgaW5jb25zaXN0ZW5jaWVzIGFyZSBkZXRlY3RlZDoKCglQcmV2aW91c2x5IHdl IHdvdWxkIGxldCB0aGUgcGVyaW9kaWMgaGFuZyBjaGVja2VyIGVuc3VyZSB0aGF0IHRoZXJlCgl3 ZXJlIG5vIGNvbnRleHQgc3VibWlzc2lvbiBzdGF0dXMgaW5jb25zaXN0ZW5jaWVzIG9uIGFueSBl bmdpbmUsIGF0IGFueQoJcG9pbnQuIElmIGFuIGluY29uc2lzdGVuY3kgd2FzIGRldGVjdGVkIGlu IHRoZSBwZXItZW5naW5lIGhhbmcgcmVjb3ZlcnkKCXBhdGggd2Ugd291bGQgYmFjayBvZmYgYW5k IGRlZmVyIHRvIHRoZSBuZXh0IGhhbmcgY2hlY2sgc2luY2UKCXBlci1lbmdpbmUgaGFuZyByZWNv dmVyeSBpcyBub3QgZWZmZWN0aXZlIGR1cmluZyBpbmNvbnNpc3RlbnQgY29udGV4dAoJc3VibWlz c2lvbiBzdGF0ZXMuCgoJV2hhdCB3ZSBkbyBpbiB0aGlzIG5ldyB2ZXJzaW9uIGlzIHRvIG1vdmUg dGhlIGNvbnNpc3RlbmN5IHByZS1jaGVjawoJZnJvbSB0aGUgaGFuZyBjaGVja2VyIHRvIHRoZSBl YXJsaWVzdCBwb2ludCBpbiB0aGUgcGVyLWVuZ2luZSBoYW5nCglyZWNvdmVyeSBwYXRoLiBJZiB3 ZSBkZXRlY3QgYW4gaW5jb25zaXN0ZW5jeSBhdCB0aGF0IHBvaW50IHdlIGZha2UgYQoJcG90ZW50 aWFsbHkgbG9zdCBjb250ZXh0IGV2ZW50IGludGVycnVwdCBieSBmb3JjaW5nIGEgQ1NCIGNoZWNr LiBJZgoJdGhlcmUgYXJlIG91dHN0YW5kaW5nIGV2ZW50cyBpbiB0aGUgQ1NCIHRoZXNlIHdpbGwg YmUgYWN0ZWQgdXBvbiBhbmQKCWhvcGVmdWxseSB0aGF0IHdpbGwgYnJpbmcgdGhlIGRyaXZlciB1 cCB0byBzcGVlZCB3aXRoIHRoZSBoYXJkd2FyZS4gSWYKCXRoZSBDU0IgY2hlY2sgZGlkIG5vdCBh bW91bnQgdG8gYW55dGhpbmcgaXQgaXMgY29uY2x1ZGVkIHRoYXQgdGhlCglpbmNvbnNpc3RlbmN5 IGlzIHVucmVzb2x2YWJsZSBhbmQgdGhlIHBlci1lbmdpbmUgaGFuZyByZWNvdmVyeSBmYWlscwoJ YW5kIHByb21vdGVzIHRvIGZ1bGwgR1BVIHJlc2V0IGluc3RlYWQuCgoJSW4gdGhlIGhhbmcgY2hl Y2tlci1iYXNlZCBjb25zaXN0ZW5jeSBjaGVja2luZyB3ZSB3b3VsZCBjaGVjayB0aGUKCWluY29u c2lzdGVuY3kgZm9yIGEgbnVtYmVyIG9mIHRpbWVzIHRvIG1ha2Ugc3VyZSB0aGUgZGV0ZWN0ZWQg c3RhdGUgd2FzCglzdGFibGUgYmVmb3JlIGF0dGVtcHRpbmcgdG8gcmVjdGlmeSB0aGUgc2l0dWF0 aW9uLiBUaGlzIGlzIHBvc3NpYmxlCglzaW5jZSBoYW5nIGNoZWNraW5nIGlzIGEgcmVjdXJyaW5n IGV2ZW50LiBIYXZpbmcgbW92ZWQgdGhlIGNvbnNpc3RlbmN5CgljaGVja2luZyB0byB0aGUgcmVj b3ZlcnkgcGF0aCBpbnN0ZWFkIChpLmUuIGEgb25lLXRpbWUsIGZpcmUgJgoJZm9yZ2V0LXN0eWxl IGV2ZW50KSBpdCBpcyBhc3N1bWVkIHRoYXQgdGhlIGhhbmcgZGV0ZWN0aW9uIHRoYXQgYnJvdWdo dAoJb24gdGhlIGhhbmcgcmVjb3ZlcnkgaGFzIGRldGVjdGVkIGEgc3RhYmxlIGhhbmcgYW5kIHRo ZXJlZm9yZSwgaWYgYW4KCWluY29uc2lzdGVuY3kgaXMgZGV0ZWN0ZWQgYXQgdGhhdCBwb2ludCwg dGhlIGluY29uc2lzdGVuY3kgbXVzdCBiZQoJc3RhYmxlIGFuZCBub3QgdGhlIHJlc3VsdCBvZiBh IG1vbWVudGFyeSBjb250ZXh0IHN0YXRlIHRyYW5zaXRpb24uCglUaGVyZWZvcmUsIHVubGlrZSBp biB0aGUgaGFuZyBjaGVja2VyIGNhc2UsIGF0IHRoZSB2ZXJ5IGZpcnN0CglpbmRpY2F0aW9uIG9m IGFuIGluY29uc2lzdGVudCBjb250ZXh0IHN1Ym1pc3Npb24gc3RhdHVzIHRoZSBpbnRlcnJ1cHQK CWlzIGZha2VkIHNwZWN1bGF0aXZlbHkuIElmIG91dHN0YW5kaW5nIENTQiBldmVudHMgYXJlIGZv dW5kIGl0IGlzCglkZXRlcm1pbmVkIHRoYXQgdGhlIGhhbmcgd2FzIGluIGZhY3QganVzdCBhIGNv bnRleHQgc3VibWlzc2lvbiBzdGF0dXMKCWluY29uc2lzdGVuY3kgYW5kIG5vIGhhbmcgcmVjb3Zl cnkgaXMgZG9uZS4gSWYgdGhlIGluY29uc2lzdGVuY3kgY2Fubm90CgliZSByZXNvbHZlZCB0aGUg cGVyLWVuZ2luZSBoYW5nIHJlY292ZXJ5IGlzIGZhaWxlZCBhbmQgdGhlIGhhbmcgaXMKCXByb21v dGVkIHRvIGZ1bGwgR1BVIHJlc2V0IGluc3RlYWQuCgoqIFs4LzEyXSBkcm0vaTkxNTogRGVidWdm cyBpbnRlcmZhY2UgZm9yIHBlci1lbmdpbmUgaGFuZyByZWNvdmVyeQoJMS4gQWZ0ZXIgcmV2aWV3 IGNvbW1lbnRzIGJ5IENocmlzIFdpbHNvbiB3ZSdyZSBkcm9wcGluZyB0aGUgZHVhbC1tb2RlIHBh cmFtZXRlcgoJdmFsdWUgaW50ZXJwcmV0YXRpb24gaW4gaTkxNV93ZWRnZWRfc2V0KCkuIEluIHRo aXMgdmVyc2lvbiB3ZSBvbmx5IGFjY2VwdAoJZW5naW5lIGlkIGZsYWcgbWFza3MgdGhhdCBjb250 YWluIHRoZSBlbmdpbmUgaWQgZmxhZ3Mgb2YgYWxsIGN1cnJlbnRseSBodW5nCgllbmdpbmVzLiBG dWxsIEdQVSByZXNldCBpcyBtb3N0IGVhc2lseSByZXF1ZXN0ZWQgYnkgcGFzc2luZyBhbiBhbGwg emVybwoJZW5naW5lIGlkIGZsYWcgbWFzay4KCgkyLiBNb3ZlZCBURFItc3BlY2lmaWMgZW5naW5l IG1ldHJpY3MgbGlrZSBudW1iZXIgb2YgZGV0ZWN0ZWQgZW5naW5lIGhhbmdzIGFuZAoJbnVtYmVy IG9mIHBlci1lbmdpbmUgcmVzZXRzIGludG8gaTkxNV9oYW5nY2hlY2tfaW5mbygpIGZyb20KCWk5 MTVfaGFuZ2NoZWNrX3JlYWQoKS4KCiogWzkvMTJdIGRybS9pOTE1OiBURFIvd2F0Y2hkb2cgdHJh Y2UgcG9pbnRzCglBcyBhIGNvbnNlcXVlbmNlIG9mIHRoZSBmYWtpbmcgY29udGV4dCBldmVudCBp bnRlcnJ1cHQgY29tbWl0IGJlaW5nIG1vdmVkIGZyb20KCXRoZSBoYW5nIGNoZWNrZXIgdG8gdGhl IHBlci1lbmdpbmUgcmVjb3ZlcnkgcGF0aCB3ZSBubyBsb25nZXIgY2hlY2sgY29udGV4dAoJc3Vi bWlzc2lvbiBzdGF0dXMgZnJvbSB0aGUgaGFuZyBjaGVja2VyLiBUaGVyZWZvcmUgdGhlcmUgaXMg bm8gbmVlZCB0byBwcm92aWRlCglzdWJtaXNzaW9uIHN0YXR1cyBvZiB0aGUgY3VycmVudGx5IHJ1 bm5pbmcgY29udGV4dCB0byB0aGUKCXRyYWNlX2k5MTVfdGRyX2hhbmdfY2hlY2soKSBldmVudC4K CiogWzEwLzEyXSBkcm0vaTkxNTogRml4IF9faTkxNV93YWl0X3JlcXVlc3QoKSBiZWhhdmlvdXIg ZHVyaW5nIGhhbmcgZGV0ZWN0aW9uCiogWzExLzEyXSBkcm0vaTkxNTogUG9ydCBvZiBBZGRlZCBz Y2hlZHVsZXIgc3VwcG9ydCB0byBfX3dhaXRfcmVxdWVzdCgpIGNhbGxzCglORVc6IEFkZGVkIHRv IGFkZHJlc3MgdGhlIHdheSB0aGF0IF9faTkxNV93YWl0X3JlcXVlc3QoKQoJYmVoYXZlcyBpbiB0 aGUgZmFjZSBvZiBoYW5nIGRldGVjdGlvbnMgYW5kIGhhbmcgcmVjb3ZlcnkuCgoqIFsxMi8xMl0g ZHJtL2k5MTU6IEV4dGVuZGVkIGVycm9yIHN0YXRlIHdpdGggVERSIGNvdW50LCB3YXRjaGRvZyBj b3VudCBhbmQgZW5naW5lIHJlc2V0IGNvdW50CglORVc6IEFkZHMgcGVyLWVuZ2luZSBURFIgc3Rh dGlzdGljcyB0byBjYXB0dXJlZCBlcnJvciBzdGF0ZS4KCgpUb21hcyBFbGYgKDEyKToKICBkcm0v aTkxNTogRWFybHkgZXhpdCBmcm9tIHNlbWFwaG9yZV93YWl0c19mb3IgZm9yIGV4ZWNsaXN0IG1v ZGUuCiAgZHJtL2k5MTU6IE1ha2UgaTkxNV9nZW1fcmVzZXRfcmluZ19zdGF0dXMoKSBwdWJsaWMK ICBkcm0vaTkxNTogQWRkaW5nIFREUiAvIHBlci1lbmdpbmUgcmVzZXQgc3VwcG9ydCBmb3IgZ2Vu OC4KICBkcm0vaTkxNTogRXh0ZW5kaW5nIGk5MTVfZ2VtX2NoZWNrX3dlZGdlIHRvIGNoZWNrIGVu Z2luZSByZXNldCBpbgogICAgcHJvZ3Jlc3MKICBkcm0vaTkxNTogUmVpbnN0YXRlIGhhbmcgcmVj b3Zlcnkgd29yayBxdWV1ZS4KICBkcm0vaTkxNTogV2F0Y2hkb2cgdGltZW91dCBzdXBwb3J0IGZv ciBnZW44LgogIGRybS9pOTE1OiBGYWtlIGxvc3QgY29udGV4dCBpbnRlcnJ1cHRzIHRocm91Z2gg Zm9yY2VkIENTQiBjaGVjay4KICBkcm0vaTkxNTogRGVidWdmcyBpbnRlcmZhY2UgZm9yIHBlci1l bmdpbmUgaGFuZyByZWNvdmVyeS4KICBkcm0vaTkxNTogVERSL3dhdGNoZG9nIHRyYWNlIHBvaW50 cy4KICBkcm0vaTkxNTogUG9ydCBvZiBBZGRlZCBzY2hlZHVsZXIgc3VwcG9ydCB0byBfX3dhaXRf cmVxdWVzdCgpIGNhbGxzCiAgZHJtL2k5MTU6IEZpeCBfX2k5MTVfd2FpdF9yZXF1ZXN0KCkgYmVo YXZpb3VyIGR1cmluZyBoYW5nIGRldGVjdGlvbi4KICBkcm0vaTkxNTogRXh0ZW5kZWQgZXJyb3Ig c3RhdGUgd2l0aCBURFIgY291bnQsIHdhdGNoZG9nIGNvdW50IGFuZAogICAgZW5naW5lIHJlc2V0 IGNvdW50CgogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgIHwgIDc2ICsr Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgICAgICAgICB8ICA3OCArKysrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCAyNTcgKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICA3OSArKystCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCAxMjggKysrKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8IDI5MiArKysrKysrKysrKy0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jICAgICAgfCAgMTAgKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCAgICAgICAgIHwgIDEzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dHJhY2UuaCAgICAgICB8IDMwOCArKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyAgICAgICAgfCA3MjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAgICB8ICAxNiArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjX3Rkci5oICAgIHwgIDM5ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAgODcgKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oIHwgIDk1ICsrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91 bmNvcmUuYyAgICAgfCAyMDMgKysrKysrKysrCiBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgg ICAgICAgICAgICAgfCAgIDUgKy0KIDE4IGZpbGVzIGNoYW5nZWQsIDIzMTMgaW5zZXJ0aW9ucygr KSwgMTEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyY190ZHIuaAoKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=