From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 379DB7CA1 for ; Wed, 29 Jun 2016 09:03:22 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id B91DBAC001 for ; Wed, 29 Jun 2016 07:03:18 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id ENmRkrFoIE4lk0vn (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Wed, 29 Jun 2016 07:03:13 -0700 (PDT) Date: Wed, 29 Jun 2016 16:03:07 +0200 From: Carlos Maiolino Subject: Re: [PATCH 5/6] xfsdocs: reverse-mapping btree documentation Message-ID: <20160629140307.GA26533@redhat.com> References: <146612808918.25586.1147874927753492795.stgit@birch.djwong.org> <146612811976.25586.4109341284933778121.stgit@birch.djwong.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <146612811976.25586.4109341284933778121.stgit@birch.djwong.org> List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com To: "Darrick J. Wong" Cc: xfs@oss.sgi.com T24gVGh1LCBKdW4gMTYsIDIwMTYgYXQgMDY6NDg6MzlQTSAtMDcwMCwgRGFycmljayBKLiBXb25n IHdyb3RlOgo+IEFkZCBjaGFwdGVycyBvbiB0aGUgb3BlcmF0aW9uIG9mIHRoZSByZXZlcnNlIG1h cHBpbmcgYnRyZWUgYW5kIGZ1dHVyZQo+IHRoaW5ncyB3ZSBjb3VsZCBkbyB3aXRoIHJtYXAgZGF0 YS4KPiAKPiB2MjogQWRkIG1hZ2ljIG51bWJlciB0byB0aGUgdGFibGUuCj4gCgpIaSBkYXJyaWNr LgoKSnVzdCBGWUksIEknbSBub3Qgc3VyZSB3aHksIGJ1dCB0aGlzIHBhdGNoIGNhbWUgdG8gdGhl IGxpc3QgaW4gYmFzZTY0IGZvcm1hdCwKYWx0aG91Z2ggdGhlIHJlbWFpbmluZyBvbmVzIGFyZSBp biB0ZXh0LXBsYWluLgoKCj4gU2lnbmVkLW9mZi1ieTogRGFycmljayBKLiBXb25nIDxkYXJyaWNr LndvbmdAb3JhY2xlLmNvbT4KPiAtLS0KPiAgLi4uL2FsbG9jYXRpb25fZ3JvdXBzLmFzY2lpZG9j ICAgICAgICAgICAgICAgICAgICAgfCAgIDI0ICstCj4gIGRlc2lnbi9YRlNfRmlsZXN5c3RlbV9T dHJ1Y3R1cmUvZG9jaW5mby54bWwgICAgICAgIHwgICAxNyArCj4gIC4uLi9qb3VybmFsaW5nX2xv Zy5hc2NpaWRvYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzMCArKysrKysrKysKPiAgZGVz aWduL1hGU19GaWxlc3lzdGVtX1N0cnVjdHVyZS9tYWdpYy5hc2NpaWRvYyAgICAgfCAgICAzIAo+ ICAuLi4vcmVjb25zdHJ1Y3Rpb24uYXNjaWlkb2MgICAgICAgICAgICAgICAgICAgICAgICB8ICAg NTMgKysrCj4gIGRlc2lnbi9YRlNfRmlsZXN5c3RlbV9TdHJ1Y3R1cmUvcm1hcGJ0LmFzY2lpZG9j ICAgIHwgIDMwNSArKysrKysrKysrKysrKysrKysrKwo+ICAuLi4veGZzX2ZpbGVzeXN0ZW1fc3Ry dWN0dXJlLmFzY2lpZG9jICAgICAgICAgICAgICB8ICAgIDQgCj4gIDcgZmlsZXMgY2hhbmdlZCwg NTI4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk ZXNpZ24vWEZTX0ZpbGVzeXN0ZW1fU3RydWN0dXJlL3JlY29uc3RydWN0aW9uLmFzY2lpZG9jCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBkZXNpZ24vWEZTX0ZpbGVzeXN0ZW1fU3RydWN0dXJlL3JtYXBi dC5hc2NpaWRvYwo+IAo+IAo+IGRpZmYgLS1naXQgYS9kZXNpZ24vWEZTX0ZpbGVzeXN0ZW1fU3Ry dWN0dXJlL2FsbG9jYXRpb25fZ3JvdXBzLmFzY2lpZG9jIGIvZGVzaWduL1hGU19GaWxlc3lzdGVt X1N0cnVjdHVyZS9hbGxvY2F0aW9uX2dyb3Vwcy5hc2NpaWRvYwo+IGluZGV4IDU1YmJjNTAuLjhj ZWQ4M2EgMTAwNjQ0Cj4gLS0tIGEvZGVzaWduL1hGU19GaWxlc3lzdGVtX1N0cnVjdHVyZS9hbGxv Y2F0aW9uX2dyb3Vwcy5hc2NpaWRvYwo+ICsrKyBiL2Rlc2lnbi9YRlNfRmlsZXN5c3RlbV9TdHJ1 Y3R1cmUvYWxsb2NhdGlvbl9ncm91cHMuYXNjaWlkb2MKPiBAQCAtMTIsNiArMTIsNyBAQCBFYWNo IEFHIGhhcyB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcmlzdGljczoKPiAgICAgICAgICAgKiBBIHN1 cGVyIGJsb2NrIGRlc2NyaWJpbmcgb3ZlcmFsbCBmaWxlc3lzdGVtIGluZm8KPiAgICAgICAgICAg KiBGcmVlIHNwYWNlIG1hbmFnZW1lbnQKPiAgICAgICAgICAgKiBJbm9kZSBhbGxvY2F0aW9uIGFu ZCB0cmFja2luZwo+ICsgICAgICAgICAqIFJldmVyc2UgYmxvY2stbWFwcGluZyBpbmRleCAob3B0 aW9uYWwpCj4gIAo+ICBIYXZpbmcgbXVsdGlwbGUgQUdzIGFsbG93cyBYRlMgdG8gaGFuZGxlIG1v c3Qgb3BlcmF0aW9ucyBpbiBwYXJhbGxlbCB3aXRob3V0Cj4gIGRlZ3JhZGluZyBwZXJmb3JtYW5j ZSBhcyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgYWNjZXNzZXMgaW5jcmVhc2VzLgo+IEBAIC0z NzksNiArMzgwLDEyIEBAIGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGUgZmxhZy4KPiAgRnJlZSBp bm9kZSBCK3RyZWUuICBFYWNoIGFsbG9jYXRpb24gZ3JvdXAgY29udGFpbnMgYSBCK3RyZWUgdG8g dHJhY2sgaW5vZGUgY2h1bmtzCj4gIGNvbnRhaW5pbmcgZnJlZSBpbm9kZXMuICBUaGlzIGlzIGEg cGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIHRvIHJlZHVjZSB0aGUgdGltZQo+ICByZXF1aXJlZCB0 byBhbGxvY2F0ZSBpbm9kZXMuCj4gKwo+ICt8ICtYRlNfU0JfRkVBVF9ST19DT01QQVRfUk1BUEJU KyB8Cj4gK1JldmVyc2UgbWFwcGluZyBCK3RyZWUuICBFYWNoIGFsbG9jYXRpb24gZ3JvdXAgY29u dGFpbnMgYSBCK3RyZWUgY29udGFpbmluZwo+ICtyZWNvcmRzIG1hcHBpbmcgQUcgYmxvY2tzIHRv IHRoZWlyIG93bmVycy4gIFNlZSB0aGUgc2VjdGlvbiBhYm91dAo+ICt4cmVmOlJlY29uc3RydWN0 aW9uW3JlY29uc3RydWN0aW9uXSBmb3IgbW9yZSBkZXRhaWxzLgo+ICsKPiAgfD09PT09Cj4gIAo+ ICAqc2JfZmVhdHVyZXNfaW5jb21wYXQqOjoKPiBAQCAtNTI5LDkgKzUzNiw3IEBAIHN0cnVjdCB4 ZnNfYWdmIHsKPiAgICAgICBfX2JlMzIgICAgICAgICAgICAgIGFnZl9zZXFubzsKPiAgICAgICBf X2JlMzIgICAgICAgICAgICAgIGFnZl9sZW5ndGg7Cj4gICAgICAgX19iZTMyICAgICAgICAgICAg ICBhZ2Zfcm9vdHNbWEZTX0JUTlVNX0FHRl07Cj4gLSAgICAgX19iZTMyICAgICAgICAgICAgICBh Z2Zfc3BhcmUwOwo+ICAgICAgIF9fYmUzMiAgICAgICAgICAgICAgYWdmX2xldmVsc1tYRlNfQlRO VU1fQUdGXTsKPiAtICAgICBfX2JlMzIgICAgICAgICAgICAgIGFnZl9zcGFyZTE7Cj4gICAgICAg X19iZTMyICAgICAgICAgICAgICBhZ2ZfZmxmaXJzdDsKPiAgICAgICBfX2JlMzIgICAgICAgICAg ICAgIGFnZl9mbGxhc3Q7Cj4gICAgICAgX19iZTMyICAgICAgICAgICAgICBhZ2ZfZmxjb3VudDsK PiBAQCAtNTUwLDkgKzU1NSwxMCBAQCBzdHJ1Y3QgeGZzX2FnZiB7Cj4gIH07Cj4gIC0tLS0KPiAg Cj4gLVRoZSByZXN0IG9mIHRoZSBieXRlcyBpbiB0aGUgc2VjdG9yIGFyZSB6ZXJvZWQuICtYRlNf QlROVU1fQUdGKyBpcyBzZXQgdG8gMjoKPiAtaW5kZXggMCBmb3IgdGhlIGZyZWUgc3BhY2UgQit0 cmVlIGluZGV4ZWQgYnkgYmxvY2sgbnVtYmVyOyBhbmQgaW5kZXggMSBmb3IgdGhlCj4gLWZyZWUg c3BhY2UgQit0cmVlIGluZGV4ZWQgYnkgZXh0ZW50IHNpemUuCj4gK1RoZSByZXN0IG9mIHRoZSBi eXRlcyBpbiB0aGUgc2VjdG9yIGFyZSB6ZXJvZWQuICtYRlNfQlROVU1fQUdGKyBpcyBzZXQgdG8g MzoKPiAraW5kZXggMCBmb3IgdGhlIGZyZWUgc3BhY2UgQit0cmVlIGluZGV4ZWQgYnkgYmxvY2sg bnVtYmVyOyBpbmRleCAxIGZvciB0aGUgZnJlZQo+ICtzcGFjZSBCK3RyZWUgaW5kZXhlZCBieSBl eHRlbnQgc2l6ZTsgYW5kIGluZGV4IDIgZm9yIHRoZSByZXZlcnNlLW1hcHBpbmcKPiArQit0cmVl Lgo+ICAKPiAgKmFnZl9tYWdpY251bSo6Ogo+ICBTcGVjaWZpZXMgdGhlIG1hZ2ljIG51bWJlciBm b3IgdGhlIEFHRiBzZWN0b3I6IGBgWEFHRicnICgweDU4NDE0NzQ2KS4KPiBAQCAtNTcwLDExICs1 NzYsMTMgQEAgdGhpcyBjb3VsZCBiZSBsZXNzIHRoYW4gdGhlICtzYl9hZ2Jsb2NrcysgdmFsdWUu IEl0IGlzIHRoaXMgdmFsdWUgdGhhdCBzaG91bGQKPiAgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhl IHNpemUgb2YgdGhlIEFHLgo+ICAKPiAgKmFnZl9yb290cyo6Ogo+IC1TcGVjaWZpZXMgdGhlIGJs b2NrIG51bWJlciBmb3IgdGhlIHJvb3Qgb2YgdGhlIHR3byBmcmVlIHNwYWNlIEIrdHJlZXMuCj4g K1NwZWNpZmllcyB0aGUgYmxvY2sgbnVtYmVyIGZvciB0aGUgcm9vdCBvZiB0aGUgdHdvIGZyZWUg c3BhY2UgQit0cmVlcyBhbmQgdGhlCj4gK3JldmVyc2UtbWFwcGluZyBCK3RyZWUsIGlmIGVuYWJs ZWQuCj4gIAo+ICAqYWdmX2xldmVscyo6Ogo+IC1TcGVjaWZpZXMgdGhlIGxldmVsIG9yIGRlcHRo IG9mIHRoZSB0d28gZnJlZSBzcGFjZSBCK3RyZWVzLiBGb3IgYSBmcmVzaCBBRywgdGhpcwo+IC13 aWxsIGJlIG9uZSwgYW5kIHRoZSBgYHJvb3RzJycgd2lsbCBwb2ludCB0byBhIHNpbmdsZSBsZWFm IG9mIGxldmVsIDAuCj4gK1NwZWNpZmllcyB0aGUgbGV2ZWwgb3IgZGVwdGggb2YgdGhlIHR3byBm cmVlIHNwYWNlIEIrdHJlZXMgYW5kIHRoZQo+ICtyZXZlcnNlLW1hcHBpbmcgQit0cmVlLCBpZiBl bmFibGVkLiAgRm9yIGEgZnJlc2ggQUcsIHRoaXMgdmFsdWUgd2lsbCBiZSBvbmUsCj4gK2FuZCB0 aGUgYGByb290cycnIHdpbGwgcG9pbnQgdG8gYSBzaW5nbGUgbGVhZiBvZiBsZXZlbCAwLgo+ICAK PiAgKmFnZl9mbGZpcnN0Kjo6Cj4gIFNwZWNpZmllcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGBg ZnJlZSBsaXN0JycgYmxvY2suIEZyZWUgbGlzdHMgYXJlIGNvdmVyZWQgaW4KPiBkaWZmIC0tZ2l0 IGEvZGVzaWduL1hGU19GaWxlc3lzdGVtX1N0cnVjdHVyZS9kb2NpbmZvLnhtbCBiL2Rlc2lnbi9Y RlNfRmlsZXN5c3RlbV9TdHJ1Y3R1cmUvZG9jaW5mby54bWwKPiBpbmRleCBjYzU1OTZkLi40NGY5 NDRhIDEwMDY0NAo+IC0tLSBhL2Rlc2lnbi9YRlNfRmlsZXN5c3RlbV9TdHJ1Y3R1cmUvZG9jaW5m by54bWwKPiArKysgYi9kZXNpZ24vWEZTX0ZpbGVzeXN0ZW1fU3RydWN0dXJlL2RvY2luZm8ueG1s Cj4gQEAgLTEyMiw0ICsxMjIsMjEgQEAKPiAgCQkJPC9zaW1wbGVsaXN0Pgo+ICAJCTwvcmV2ZGVz Y3JpcHRpb24+Cj4gIAk8L3JldmlzaW9uPgo+ICsJPHJldmlzaW9uPgo+ICsJCTxyZXZudW1iZXI+ My4xNDE8L3Jldm51bWJlcj4KPiArCQk8ZGF0ZT5KdW5lIDIwMTY8L2RhdGU+Cj4gKwkJPGF1dGhv cj4KPiArCQkJPGZpcnN0bmFtZT5EYXJyaWNrPC9maXJzdG5hbWU+Cj4gKwkJCTxzdXJuYW1lPldv bmc8L3N1cm5hbWU+Cj4gKwkJCTxlbWFpbD48L2VtYWlsPgo+ICsJCTwvYXV0aG9yPgo+ICsJCTxy ZXZkZXNjcmlwdGlvbj4KPiArCQkJPHNpbXBsZWxpc3Q+Cj4gKwkJCQk8bWVtYmVyPkRvY3VtZW50 IHRoZSByZXZlcnNlLW1hcHBpbmcgYnRyZWUuPC9tZW1iZXI+Cj4gKwkJCQk8bWVtYmVyPk1vdmUg dGhlIGIrdHJlZSBpbmZvIHRvIGEgc2VwYXJhdGUgY2hhcHRlci48L21lbWJlcj4KPiArCQkJCTxt ZW1iZXI+RGlzY3VzcyBvdmVybGFwcGluZyBpbnRlcnZhbCBiK3RyZWVzLjwvbWVtYmVyPgo+ICsJ CQkJPG1lbWJlcj5EaXNjdXNzIG5ldyBsb2cgaXRlbXMgZm9yIGF0b21pYyB1cGRhdGVzLjwvbWVt YmVyPgo+ICsJCQk8L3NpbXBsZWxpc3Q+Cj4gKwkJPC9yZXZkZXNjcmlwdGlvbj4KPiArCTwvcmV2 aXNpb24+Cj4gIDwvcmV2aGlzdG9yeT4KPiBkaWZmIC0tZ2l0IGEvZGVzaWduL1hGU19GaWxlc3lz dGVtX1N0cnVjdHVyZS9qb3VybmFsaW5nX2xvZy5hc2NpaWRvYyBiL2Rlc2lnbi9YRlNfRmlsZXN5 c3RlbV9TdHJ1Y3R1cmUvam91cm5hbGluZ19sb2cuYXNjaWlkb2MKPiBpbmRleCA2N2QyMDlmLi4w ZmJiY2VlIDEwMDY0NAo+IC0tLSBhL2Rlc2lnbi9YRlNfRmlsZXN5c3RlbV9TdHJ1Y3R1cmUvam91 cm5hbGluZ19sb2cuYXNjaWlkb2MKPiArKysgYi9kZXNpZ24vWEZTX0ZpbGVzeXN0ZW1fU3RydWN0 dXJlL2pvdXJuYWxpbmdfbG9nLmFzY2lpZG9jCj4gQEAgLTIwOSw2ICsyMDksOCBAQCBtYWdpYyBu dW1iZXIgdG8gZGlzdGluZ3Vpc2ggdGhlbXNlbHZlcy4gIEJ1ZmZlciBkYXRhIGl0ZW1zIG9ubHkg YXBwZWFyIGFmdGVyCj4gIHwgK1hGU19MSV9EUVVPVCsJCXwgMHgxMjNkICAgICAgICB8IHhyZWY6 UXVvdGFfVXBkYXRlX0xvZ19JdGVtW1VwZGF0ZSBRdW90YV0KPiAgfCArWEZTX0xJX1FVT1RBT0ZG KwkJfCAweDEyM2UgICAgICAgIHwgeHJlZjpRdW90YV9PZmZfTG9nX0l0ZW1bUXVvdGEgT2ZmXQo+ ICB8ICtYRlNfTElfSUNSRUFURSsJCXwgMHgxMjNmICAgICAgICB8IHhyZWY6SW5vZGVfQ3JlYXRl X0xvZ19JdGVtW0lub2RlIENyZWF0aW9uXQo+ICt8ICtYRlNfTElfUlVJKwkJCXwgMHgxMjQwICAg ICAgICB8IHhyZWY6UlVJX0xvZ19JdGVtW1JldmVyc2UgTWFwcGluZyBVcGRhdGUgSW50ZW50XQo+ ICt8ICtYRlNfTElfUlVEKwkJCXwgMHgxMjQxICAgICAgICB8IHhyZWY6UlVEX0xvZ19JdGVtW1Jl dmVyc2UgTWFwcGluZyBVcGRhdGUgRG9uZV0KPiAgfD09PT09Cj4gIAo+ICBbW0xvZ19UcmFuc2Fj dGlvbl9IZWFkZXJzXV0KPiBAQCAtMzg2LDYgKzM4OCwxMzQgQEAgVmFyaWFibGUtbGVuZ3RoIGFy cmF5IG9mIGV4dGVudHMgdG8gYmUgZnJlZWQuICBUaGUgYXJyYXkgbGVuZ3RoIGlzIGdpdmVuIGJ5 Cj4gICt4ZnNfZXh0ZW50XzMyX3QrOyB0aGlzIGNhbiBiZSBkZXRlcm1pbmVkIGZyb20gdGhlIGxv ZyBpdGVtIHNpemUgKCtvaF9sZW4rKSBhbmQKPiAgdGhlIG51bWJlciBvZiBleHRlbnRzICgrZWZk X25leHRlbnRzKykuCj4gIAo+ICtbW1JVSV9Mb2dfSXRlbV1dCj4gKz09PSBSZXZlcnNlIE1hcHBp bmcgVXBkYXRlcyBJbnRlbnQKPiArCj4gK1RoZSBuZXh0IHR3byBvcGVyYXRpb24gdHlwZXMgd29y ayB0b2dldGhlciB0byBoYW5kbGUgZGVmZXJyZWQgcmV2ZXJzZSBtYXBwaW5nCj4gK3VwZGF0ZXMu ICBOYXR1cmFsbHksIHRoZSBtYXBwaW5ncyB0byBiZSB1cGRhdGVkIGNhbiBiZSBleHByZXNzZWQg aW4gdGVybXMgb2YKPiArbWFwcGluZyBleHRlbnRzOgo+ICsKPiArW3NvdXJjZSwgY10KPiArLS0t LQo+ICtzdHJ1Y3QgeGZzX21hcF9leHRlbnQgewo+ICsgICAgIF9fdWludDY0X3QgICAgICAgICAg ICAgICAgbWVfb3duZXI7Cj4gKyAgICAgX191aW50NjRfdCAgICAgICAgICAgICAgICBtZV9zdGFy dGJsb2NrOwo+ICsgICAgIF9fdWludDY0X3QgICAgICAgICAgICAgICAgbWVfc3RhcnRvZmY7Cj4g KyAgICAgX191aW50MzJfdCAgICAgICAgICAgICAgICBtZV9sZW47Cj4gKyAgICAgX191aW50MzJf dCAgICAgICAgICAgICAgICBtZV9mbGFnczsKPiArfTsKPiArLS0tLQo+ICsKPiArKm1lX293bmVy Kjo6Cj4gK093bmVyIG9mIHRoaXMgcmV2ZXJzZSBtYXBwaW5nLiAgU2VlIHRoZSB2YWx1ZXMgaW4g dGhlIHNlY3Rpb24gYWJvdXQKPiAreHJlZjpSZXZlcnNlX01hcHBpbmdfQnRyZWVbcmV2ZXJzZSBt YXBwaW5nXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KPiArCj4gKyptZV9zdGFydGJsb2NrKjo6Cj4g K0ZpbGVzeXN0ZW0gYmxvY2sgb2YgdGhpcyBtYXBwaW5nLgo+ICsKPiArKm1lX3N0YXJ0b2ZmKjo6 Cj4gK0xvZ2ljYWwgYmxvY2sgb2Zmc2V0IG9mIHRoaXMgbWFwcGluZy4KPiArCj4gKyptZV9sZW4q OjoKPiArVGhlIGxlbmd0aCBvZiB0aGlzIG1hcHBpbmcuCj4gKwo+ICsqbWVfZmxhZ3MqOjoKPiAr VGhlIGxvd2VyIGJ5dGUgb2YgdGhpcyBmaWVsZCBpcyBhIHR5cGUgY29kZSBpbmRpY2F0aW5nIHdo YXQgc29ydCBvZgo+ICtyZXZlcnNlIG1hcHBpbmcgb3BlcmF0aW9uIHdlIHdhbnQuICBUaGUgdXBw ZXIgdGhyZWUgYnl0ZXMgYXJlIGZsYWcgYml0cy4KPiArCj4gKy5SZXZlcnNlIG1hcHBpbmcgdXBk YXRlIGxvZyBpbnRlbnQgdHlwZXMKPiArW29wdGlvbnM9ImhlYWRlciJdCj4gK3w9PT09PQo+ICt8 IFZhbHVlCQkJCXwgRGVzY3JpcHRpb24KPiArfCArWEZTX1JNQVBfRVhURU5UX01BUCsJCXwgQWRk IGEgcmV2ZXJzZSBtYXBwaW5nIGZvciBmaWxlIGRhdGEuCj4gK3wgK1hGU19STUFQX0VYVEVOVF9N QVBfU0hBUkVEKwl8IEFkZCBhIHJldmVyc2UgbWFwcGluZyBmb3IgZmlsZSBkYXRhIGZvciBhIGZp bGUgd2l0aCBzaGFyZWQgYmxvY2tzLgo+ICt8ICtYRlNfUk1BUF9FWFRFTlRfVU5NQVArCXwgUmVt b3ZlIGEgcmV2ZXJzZSBtYXBwaW5nIGZvciBmaWxlIGRhdGEuCj4gK3wgK1hGU19STUFQX0VYVEVO VF9VTk1BUF9TSEFSRUQrCXwgUmVtb3ZlIGEgcmV2ZXJzZSBtYXBwaW5nIGZvciBmaWxlIGRhdGEg Zm9yIGEgZmlsZSB3aXRoIHNoYXJlZCBibG9ja3MuCj4gK3wgK1hGU19STUFQX0VYVEVOVF9DT05W RVJUKwl8IENvbnZlcnQgYSByZXZlcnNlIG1hcHBpbmcgZm9yIGZpbGUgZGF0YSBiZXR3ZWVuIHVu d3JpdHRlbiBhbmQgbm9ybWFsLgo+ICt8ICtYRlNfUk1BUF9FWFRFTlRfQ09OVkVSVF9TSEFSRUQr CXwgQ29udmVydCBhIHJldmVyc2UgbWFwcGluZyBmb3IgZmlsZSBkYXRhIGJldHdlZW4gdW53cml0 dGVuIGFuZCBub3JtYWwgZm9yIGEgZmlsZSB3aXRoIHNoYXJlZCBibG9ja3MuCj4gK3wgK1hGU19S TUFQX0VYVEVOVF9BTExPQysJfCBBZGQgYSByZXZlcnNlIG1hcHBpbmcgZm9yIG5vbi1maWxlIGRh dGEuCj4gK3wgK1hGU19STUFQX0VYVEVOVF9GUkVFKwl8IFJlbW92ZSBhIHJldmVyc2UgbWFwcGlu ZyBmb3Igbm9uLWZpbGUgZGF0YS4KPiArfD09PT09Cj4gKwo+ICsuUmV2ZXJzZSBtYXBwaW5nIHVw ZGF0ZSBsb2cgaW50ZW50IGZsYWdzCj4gK1tvcHRpb25zPSJoZWFkZXIiXQo+ICt8PT09PT0KPiAr fCBWYWx1ZQkJCQl8IERlc2NyaXB0aW9uCj4gK3wgK1hGU19STUFQX0VYVEVOVF9BVFRSX0ZPUksr CXwgRXh0ZW50IGlzIGZvciB0aGUgYXR0cmlidXRlIGZvcmsuCj4gK3wgK1hGU19STUFQX0VYVEVO VF9CTUJUX0JMT0NLKwl8IEV4dGVudCBpcyBmb3IgYSBibG9jayBtYXBwaW5nIGJ0cmVlIGJsb2Nr Lgo+ICt8ICtYRlNfUk1BUF9FWFRFTlRfVU5XUklUVEVOKwl8IEV4dGVudCBpcyB1bndyaXR0ZW4u Cj4gK3w9PT09PQo+ICsKPiArVGhlIGBgcm1hcCB1cGRhdGUgaW50ZW50Jycgb3BlcmF0aW9uIGNv bWVzIGZpcnN0OyBpdCB0ZWxscyB0aGUgbG9nIHRoYXQgWEZTCj4gK3dhbnRzIHRvIHVwZGF0ZSBz b21lIHJldmVyc2UgbWFwcGluZ3MuICBUaGlzIHJlY29yZCBpcyBjcnVjaWFsIGZvciBjb3JyZWN0 IGxvZwo+ICtyZWNvdmVyeSBiZWNhdXNlIGl0IGVuYWJsZXMgdXMgdG8gc3ByZWFkIGEgY29tcGxl eCBtZXRhZGF0YSB1cGRhdGUgYWNyb3NzCj4gK211bHRpcGxlIHRyYW5zYWN0aW9ucyB3aGlsZSBl bnN1cmluZyB0aGF0IGEgY3Jhc2ggbWlkd2F5IHRocm91Z2ggdGhlIGNvbXBsZXgKPiArdXBkYXRl IHdpbGwgYmUgcmVwbGF5ZWQgZnVsbHkgZHVyaW5nIGxvZyByZWNvdmVyeS4KPiArCj4gK1tzb3Vy Y2UsIGNdCj4gKy0tLS0KPiArc3RydWN0IHhmc19ydWlfbG9nX2Zvcm1hdCB7Cj4gKyAgICAgX191 aW50MTZfdCAgICAgICAgICAgICAgICBydWlfdHlwZTsKPiArICAgICBfX3VpbnQxNl90ICAgICAg ICAgICAgICAgIHJ1aV9zaXplOwo+ICsgICAgIF9fdWludDMyX3QgICAgICAgICAgICAgICAgcnVp X25leHRlbnRzOwo+ICsgICAgIF9fdWludDY0X3QgICAgICAgICAgICAgICAgcnVpX2lkOwkKPiAr ICAgICBzdHJ1Y3QgeGZzX21hcF9leHRlbnQgICAgIHJ1aV9leHRlbnRzWzFdOwo+ICt9Owo+ICst LS0tCj4gKwo+ICsqcnVpX3R5cGUqOjoKPiArVGhlIHNpZ25hdHVyZSBvZiBhbiBSVUkgb3BlcmF0 aW9uLCAweDEyNDAuICBUaGlzIHZhbHVlIGlzIGluIGhvc3QtZW5kaWFuIG9yZGVyLAo+ICtub3Qg YmlnLWVuZGlhbiBsaWtlIHRoZSByZXN0IG9mIFhGUy4KPiArCj4gKypydWlfc2l6ZSo6Ogo+ICtT aXplIG9mIHRoaXMgbG9nIGl0ZW0uICBTaG91bGQgYmUgMS4KPiArCj4gKypydWlfbmV4dGVudHMq OjoKPiArTnVtYmVyIG9mIHJldmVyc2UgbWFwcGluZ3MuCj4gKwo+ICsqcnVpX2lkKjo6Cj4gK0Eg NjQtYml0IG51bWJlciB0aGF0IGJpbmRzIHRoZSBjb3JyZXNwb25kaW5nIFJVRCBsb2cgaXRlbSB0 byB0aGlzIFJVSSBsb2cgaXRlbS4KPiArCj4gKypydWlfZXh0ZW50cyo6Ogo+ICtWYXJpYWJsZS1s ZW5ndGggYXJyYXkgb2YgcmV2ZXJzZSBtYXBwaW5ncyB0byB1cGRhdGUuCj4gKwo+ICtbW1JVRF9M b2dfSXRlbV1dCj4gKz09PSBDb21wbGV0aW9uIG9mIFJldmVyc2UgTWFwcGluZyBVcGRhdGVzCj4g Kwo+ICtUaGUgYGByZXZlcnNlIG1hcHBpbmcgdXBkYXRlIGRvbmUnJyBvcGVyYXRpb24gY29tcGxl bWVudHMgdGhlIGBgcmV2ZXJzZSBtYXBwaW5nCj4gK3VwZGF0ZSBpbnRlbnQnJyBvcGVyYXRpb24u ICBUaGlzIHNlY29uZCBvcGVyYXRpb24gaW5kaWNhdGVzIHRoYXQgdGhlIHVwZGF0ZQo+ICthY3R1 YWxseSBoYXBwZW5lZCwgc28gdGhhdCBsb2cgcmVjb3ZlcnkgbmVlZG4ndCByZXBsYXkgdGhlIHVw ZGF0ZS4gIFRoZSBSVUQgYW5kCj4gK3RoZSBhY3R1YWwgdXBkYXRlcyBhcmUgdHlwaWNhbGx5IGZv dW5kIGluIGEgbmV3IHRyYW5zYWN0aW9uIGZvbGxvd2luZyB0aGUKPiArdHJhbnNhY3Rpb24gaW4g d2hpY2ggdGhlIFJVSSB3YXMgbG9nZ2VkLgo+ICsKPiArW3NvdXJjZSwgY10KPiArLS0tLQo+ICtz dHJ1Y3QgeGZzX3J1ZF9sb2dfZm9ybWF0IHsKPiArICAgICAgX191aW50MTZfdCAgICAgICAgICAg ICAgIHJ1ZF90eXBlOwo+ICsgICAgICBfX3VpbnQxNl90ICAgICAgICAgICAgICAgcnVkX3NpemU7 Cj4gKyAgICAgIF9fdWludDMyX3QgICAgICAgICAgICAgICBydWRfbmV4dGVudHM7Cj4gKyAgICAg IF9fdWludDY0X3QgICAgICAgICAgICAgICBydWRfcnVpX2lkOwo+ICsgICAgICBzdHJ1Y3QgeGZz X21hcF9leHRlbnQgICAgcnVkX2V4dGVudHNbMV07Cj4gK307Cj4gKy0tLS0KPiArCj4gKypydWRf dHlwZSo6Ogo+ICtUaGUgc2lnbmF0dXJlIG9mIGFuIFJVRCBvcGVyYXRpb24sIDB4MTI0MS4gIFRo aXMgdmFsdWUgaXMgaW4gaG9zdC1lbmRpYW4gb3JkZXIsCj4gK25vdCBiaWctZW5kaWFuIGxpa2Ug dGhlIHJlc3Qgb2YgWEZTLgo+ICsKPiArKnJ1ZF9zaXplKjo6Cj4gK1NpemUgb2YgdGhpcyBsb2cg aXRlbS4gIFNob3VsZCBiZSAxLgo+ICsKPiArKnJ1ZF9uZXh0ZW50cyo6Ogo+ICtOdW1iZXIgb2Yg cmV2ZXJzZSBtYXBwaW5ncy4KPiArCj4gKypydWRfaWQqOjoKPiArQSA2NC1iaXQgbnVtYmVyIHRo YXQgYmluZHMgdGhlIGNvcnJlc3BvbmRpbmcgUlVJIGxvZyBpdGVtIHRvIHRoaXMgUlVEIGxvZyBp dGVtLgo+ICsKPiArKnJ1ZF9leHRlbnRzKjo6Cj4gK1ZhcmlhYmxlLWxlbmd0aCBhcnJheSBvZiBy ZXZlcnNlIG1hcHBpbmdzLiAgVGhlIGFycmF5IGxlbmd0aCBpcyBnaXZlbiBieQo+ICsrcnVkX25l eHRlbnRzKy4KPiArCj4gIFtbSW5vZGVfTG9nX0l0ZW1dXQo+ICA9PT0gSW5vZGUgVXBkYXRlcwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZGVzaWduL1hGU19GaWxlc3lzdGVtX1N0cnVjdHVyZS9tYWdpYy5h c2NpaWRvYyBiL2Rlc2lnbi9YRlNfRmlsZXN5c3RlbV9TdHJ1Y3R1cmUvbWFnaWMuYXNjaWlkb2MK PiBpbmRleCAzMDFjZmEwLi4xMGZkMTVmIDEwMDY0NAo+IC0tLSBhL2Rlc2lnbi9YRlNfRmlsZXN5 c3RlbV9TdHJ1Y3R1cmUvbWFnaWMuYXNjaWlkb2MKPiArKysgYi9kZXNpZ24vWEZTX0ZpbGVzeXN0 ZW1fU3RydWN0dXJlL21hZ2ljLmFzY2lpZG9jCj4gQEAgLTQ0LDYgKzQ0LDcgQEAgcmVsZXZhbnQg Y2hhcHRlcnMuICBNYWdpYyBudW1iZXJzIHRlbmQgdG8gaGF2ZSBjb25zaXN0ZW50IGxvY2F0aW9u czoKPiAgfCArWEZTX0FUVFJfTEVBRl9NQUdJQysJCXwgMHhmYmVlCXwgICAgIAl8IHhyZWY6TGVh Zl9BdHRyaWJ1dGVzW0xlYWYgQXR0cmlidXRlXQo+ICB8ICtYRlNfQVRUUjNfTEVBRl9NQUdJQysJ fCAweDNiZWUJfCAgICAgCXwgeHJlZjpMZWFmX0F0dHJpYnV0ZXNbTGVhZiBBdHRyaWJ1dGVdLCB2 NSBvbmx5Cj4gIHwgK1hGU19BVFRSM19STVRfTUFHSUMrCQl8IDB4NTg0MTUyNGQJfCBYQVJNCXwg eHJlZjpSZW1vdGVfVmFsdWVzW1JlbW90ZSBBdHRyaWJ1dGUgVmFsdWVdLCB2NSBvbmx5Cj4gK3wg K1hGU19STUFQX0NSQ19NQUdJQysJCXwgMHg1MjRkNDIzMwl8IFJNQjMJfCB4cmVmOlJldmVyc2Vf TWFwcGluZ19CdHJlZVtSZXZlcnNlIE1hcHBpbmcgQit0cmVlXSwgdjUgb25seQo+ICB8PT09PT0K PiAgCj4gIFRoZSBtYWdpYyBudW1iZXJzIGZvciBsb2cgaXRlbXMgYXJlIGF0IG9mZnNldCB6ZXJv IGluIGVhY2ggbG9nIGl0ZW0sIGJ1dCBpdGVtcwo+IEBAIC02MSw2ICs2Miw4IEBAIGFyZSBub3Qg YWxpZ25lZCB0byBibG9ja3MuCj4gIHwgK1hGU19MSV9EUVVPVCsJCXwgMHgxMjNkICAgICAgICB8 ICAgICAgIHwgeHJlZjpRdW90YV9VcGRhdGVfTG9nX0l0ZW1bVXBkYXRlIFF1b3RhIExvZyBJdGVt XQo+ICB8ICtYRlNfTElfUVVPVEFPRkYrCQl8IDB4MTIzZSAgICAgICAgfCAgICAgICB8IHhyZWY6 UXVvdGFfT2ZmX0xvZ19JdGVtW1F1b3RhIE9mZiBMb2cgSXRlbV0KPiAgfCArWEZTX0xJX0lDUkVB VEUrCQl8IDB4MTIzZiAgICAgICAgfCAgICAgICB8IHhyZWY6SW5vZGVfQ3JlYXRlX0xvZ19JdGVt W0lub2RlIENyZWF0aW9uIExvZyBJdGVtXQo+ICt8ICtYRlNfTElfUlVJKwkJCXwgMHgxMjQwICAg ICAgICB8ICAgICAgIHwgeHJlZjpSVUlfTG9nX0l0ZW1bUmV2ZXJzZSBNYXBwaW5nIFVwZGF0ZSBJ bnRlbnRdCj4gK3wgK1hGU19MSV9SVUQrCQkJfCAweDEyNDEgICAgICAgIHwgICAgICAgfCB4cmVm OlJVRF9Mb2dfSXRlbVtSZXZlcnNlIE1hcHBpbmcgVXBkYXRlIERvbmVdCj4gIHw9PT09PQo+ICAK PiAgPSBUaGVvcmV0aWNhbCBMaW1pdHMKPiBkaWZmIC0tZ2l0IGEvZGVzaWduL1hGU19GaWxlc3lz dGVtX1N0cnVjdHVyZS9yZWNvbnN0cnVjdGlvbi5hc2NpaWRvYyBiL2Rlc2lnbi9YRlNfRmlsZXN5 c3RlbV9TdHJ1Y3R1cmUvcmVjb25zdHJ1Y3Rpb24uYXNjaWlkb2MKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAuLmYxNzJlMGYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZGVz aWduL1hGU19GaWxlc3lzdGVtX1N0cnVjdHVyZS9yZWNvbnN0cnVjdGlvbi5hc2NpaWRvYwo+IEBA IC0wLDAgKzEsNTMgQEAKPiArW1tSZWNvbnN0cnVjdGlvbl1dCj4gKz0gTWV0YWRhdGEgUmVjb25z dHJ1Y3Rpb24KPiArCj4gK1tOT1RFXQo+ICtUaGlzIGlzIGEgdGhlb3JldGljYWwgZGlzY3Vzc2lv biBvZiBob3cgcmVjb25zdHJ1Y3Rpb24gY291bGQgd29yazsgbm9uZSBvZiB0aGlzCj4gK2lzIGlt cGxlbWVudGVkIGFzIG9mIDIwMTUuCj4gKwo+ICtBIHNpbXBsZSBVTklYIGZpbGVzeXN0ZW0gY2Fu IGJlIHRob3VnaHQgb2YgaW4gdGVybXMgb2YgYSBkaXJlY3RlZCBhY3ljbGljIGdyYXBoLgo+ICtU byBhIGZpcnN0IGFwcHJveGltYXRpb24sIHRoZXJlIGV4aXN0cyBhIHJvb3QgZGlyZWN0b3J5IG5v ZGUsIHdoaWNoIHBvaW50cyB0bwo+ICtvdGhlciBub2Rlcy4gIFRob3NlIG90aGVyIG5vZGVzIGNh biB0aGVtc2VsdmVzIGJlIGRpcmVjdG9yaWVzIG9yIHRoZXkgY2FuIGJlCj4gK2ZpbGVzLiAgRWFj aCBmaWxlLCBpbiB0dXJuLCBwb2ludHMgdG8gZGF0YSBibG9ja3MuCj4gKwo+ICtYRlMgYWRkcyBh IGZldyBtb3JlIGRldGFpbHMgdG8gdGhpcyBwaWN0dXJlOgo+ICsKPiArKiBUaGUgcmVhbCByb290 KHMpIG9mIGFuIFhGUyBmaWxlc3lzdGVtIGFyZSB0aGUgYWxsb2NhdGlvbiBncm91cCBoZWFkZXJz Cj4gKyhzdXBlcmJsb2NrLCBBR0YsIEFHSSwgQUdGTCkuCj4gKyogRWFjaCBhbGxvY2F0aW9uIGdy b3Vw4oCZcyBoZWFkZXJzIHBvaW50IHRvIHZhcmlvdXMgcGVyLUFHIEIrdHJlZXMgKGZyZWUgc3Bh Y2UsCj4gK2lub2RlLCBmcmVlIGlub2RlcywgZnJlZSBsaXN0LCBldGMuKQo+ICsqIFRoZSBmcmVl IHNwYWNlIEIrdHJlZXMgcG9pbnQgdG8gdW51c2VkIGV4dGVudHM7Cj4gKyogVGhlIGlub2RlIEIr dHJlZXMgcG9pbnQgdG8gYmxvY2tzIGNvbnRhaW5pbmcgaW5vZGUgY2h1bmtzOwo+ICsqIEFsbCBz dXBlcmJsb2NrcyBwb2ludCB0byB0aGUgcm9vdCBkaXJlY3RvcnkgYW5kIHRoZSBsb2c7Cj4gKyog SGFyZGxpbmtzIG1lYW4gdGhhdCBtdWx0aXBsZSBkaXJlY3RvcmllcyBjYW4gcG9pbnQgdG8gYSBz aW5nbGUgZmlsZSBub2RlOwo+ICsqIEZpbGUgZGF0YSBibG9jayBwb2ludGVycyBhcmUgaW5kZXhl ZCBieSBmaWxlIG9mZnNldDsKPiArKiBGaWxlcyBhbmQgZGlyZWN0b3JpZXMgY2FuIGhhdmUgYSBz ZWNvbmQgY29sbGVjdGlvbiBvZiBwb2ludGVycyB0byBkYXRhIGJsb2Nrcwo+ICt3aGljaCBjb250 YWluIGV4dGVuZGVkIGF0dHJpYnV0ZXM7Cj4gKyogTGFyZ2UgZGlyZWN0b3JpZXMgcmVxdWlyZSBt dWx0aXBsZSBkYXRhIGJsb2NrcyB0byBzdG9yZSBhbGwgdGhlIHN1YnBvaW50ZXJzOwo+ICsqIFN0 aWxsIGxhcmdlciBkaXJlY3RvcmllcyB1c2UgaGlnaC1vZmZzZXQgZGF0YSBibG9ja3MgdG8gc3Rv cmUgYSBCK3RyZWUgb2YKPiAraGFzaGVzIHRvIGRpcmVjdG9yeSBlbnRyaWVzOwo+ICsqIExhcmdl IGV4dGVuZGVkIGF0dHJpYnV0ZSBmb3JrcyBzaW1pbGFybHkgdXNlIGhpZ2gtb2Zmc2V0IGRhdGEg YmxvY2tzIHRvIHN0b3JlCj4gK2EgQit0cmVlIG9mIGhhc2hlcyB0byBhdHRyaWJ1dGUga2V5czsg YW5kCj4gKyogU3ltYm9saWMgbGlua3MgY2FuIHBvaW50IHRvIGRhdGEgYmxvY2tzLgo+ICsKPiAr VGhlIGJlYXV0eSBvZiB0aGlzIG1hc3NpdmUgZ3JhcGggc3RydWN0dXJlIGlzIHRoYXQgdW5kZXIg bm9ybWFsIGNpcmN1bXN0YW5jZXMsCj4gK2V2ZXJ5dGhpbmcga25vd24gdG8gdGhlIGZpbGVzeXN0 ZW0gaXMgZGlzY292ZXJhYmxlIChhY2Nlc3MgY29udHJvbHMKPiArbm90d2l0aHN0YW5kaW5nKSBm cm9tIHRoZSByb290LiAgVGhlIG1ham9yIHdlYWtuZXNzIG9mIHRoaXMgc3RydWN0dXJlIG9mIGNv dXJzZQo+ICtpcyB0aGF0IGJyZWFraW5nIGEgZWRnZSBpbiB0aGUgZ3JhcGggY2FuIHJlbmRlciBl bnRpcmUgc3VidHJlZXMgaW5hY2Nlc3NpYmxlLgo+ICsreGZzX3JlcGFpcisg4oCccmVjb3ZlcnPi gJ0gZnJvbSBicm9rZW4gZGlyZWN0b3JpZXMgYnkgc2Nhbm5pbmcgZm9yIHVubGlua2VkIGlub2Rl cwo+ICthbmQgY29ubmVjdGluZyB0aGVtIHRvICsvbG9zdCtmb3VuZCssIGJ1dCB0aGlzIGlzbuKA mXQgc3VmZmljaWVudGx5IGdlbmVyYWwgdG8KPiArcmVjb3ZlciBmcm9tIGJyZWFrcyBpbiBvdGhl ciBwYXJ0cyBvZiB0aGUgZ3JhcGggc3RydWN0dXJlLiAgV291bGRu4oCZdCBpdCBiZQo+ICt1c2Vm dWwgdG8gaGF2ZSBiYWNrIHBvaW50ZXJzIGFzIGEgc2Vjb25kYXJ5IGRhdGEgc3RydWN0dXJlPyAg VGhlIGN1cnJlbnQgcmVwYWlyCj4gK3N0cmF0ZWd5IGlzIHRvIHJlY29uc3RydWN0IHdoYXRldmVy IGNhbiBiZSByZWJ1aWx0LCBidXQgdG8gc2NyYXAgYW55dGhpbmcgdGhhdAo+ICtkb2Vzbid0IGNo ZWNrIG91dC4KPiArCj4gK1RoZSB4cmVmOlJldmVyc2VfTWFwcGluZ19CdHJlZVtyZXZlcnNlLW1h cHBpbmcgQit0cmVlXSBmaWxscyBpbiBwYXJ0IG9mIHRoZQo+ICtwdXp6bGUuICBTaW5jZSBpdCBj b250YWlucyBjb3BpZXMgb2YgZXZlcnkgZW50cnkgaW4gZWFjaCBpbm9kZeKAmXMgZGF0YSBhbmQK PiArYXR0cmlidXRlIGZvcmtzLCB3ZSBjYW4gZml4IGEgY29ycnVwdGVkIGJsb2NrIG1hcCB3aXRo IHRoZXNlIHJlY29yZHMuCj4gK0Z1cnRoZXJtb3JlLCBpZiB0aGUgaW5vZGUgQit0cmVlcyBiZWNv bWUgY29ycnVwdCwgaXQgaXMgcG9zc2libGUgdG8gdmlzaXQgYWxsCj4gK2lub2RlIGNodW5rcyB1 c2luZyB0aGUgcmV2ZXJzZS1tYXBwaW5nIGRhdGEuICBTaG91bGQgWEZTIGV2ZXIgZ2FpbiB0aGUg YWJpbGl0eQo+ICt0byBzdG9yZSBwYXJlbnQgZGlyZWN0b3J5IGluZm9ybWF0aW9uIGluIGVhY2gg aW5vZGUsIGl0IGFsc28gYmVjb21lcyBwb3NzaWJsZQo+ICt0byByZXN1cnJlY3QgZGFtYWdlZCBk aXJlY3RvcnkgdHJlZXMsIHdoaWNoIHNob3VsZCByZWR1Y2UgdGhlIGNvbXBsYWludHMgYWJvdXQK PiAraW5vZGVzIGVuZGluZyB1cCBpbiArL2xvc3QrZm91bmQrLiAgRXZlcnl0aGluZyBlbHNlIGlu IHRoZSBwZXItQUcgcHJpbWFyeQo+ICttZXRhZGF0YSBjYW4gYWxyZWFkeSBiZSByZWNvbnN0cnVj dGVkIHZpYSAreGZzX3JlcGFpcisuICBIb3BlZnVsbHksCj4gK3JlY29uc3RydWN0aW9uIHdpbGwg bm90IHR1cm4gb3V0IHRvIGJlIGEgZm9vbCdzIGVycmFuZC4KPiBkaWZmIC0tZ2l0IGEvZGVzaWdu L1hGU19GaWxlc3lzdGVtX1N0cnVjdHVyZS9ybWFwYnQuYXNjaWlkb2MgYi9kZXNpZ24vWEZTX0Zp bGVzeXN0ZW1fU3RydWN0dXJlL3JtYXBidC5hc2NpaWRvYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gaW5kZXggMDAwMDAwMC4uYThhMjEwYgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kZXNpZ24v WEZTX0ZpbGVzeXN0ZW1fU3RydWN0dXJlL3JtYXBidC5hc2NpaWRvYwo+IEBAIC0wLDAgKzEsMzA1 IEBACj4gK1tbUmV2ZXJzZV9NYXBwaW5nX0J0cmVlXV0KPiArPT0gUmV2ZXJzZS1NYXBwaW5nIEIr dHJlZQo+ICsKPiArW05PVEVdCj4gK1RoaXMgZGF0YSBzdHJ1Y3R1cmUgaXMgdW5kZXIgY29uc3Ry dWN0aW9uISAgRGV0YWlscyBtYXkgY2hhbmdlLgo+ICsKPiArSWYgdGhlIGZlYXR1cmUgaXMgZW5h YmxlZCwgZWFjaCBhbGxvY2F0aW9uIGdyb3VwIGhhcyBpdHMgb3duIHJldmVyc2UKPiArYmxvY2st bWFwcGluZyBCK3RyZWUsIHdoaWNoIGdyb3dzIGluIHRoZSBmcmVlIHNwYWNlIGxpa2UgdGhlIGZy ZWUgc3BhY2UKPiArQit0cmVlcy4gIEFzIG1lbnRpb25lZCBpbiB0aGUgY2hhcHRlciBhYm91dAo+ ICt4cmVmOlJlY29uc3RydWN0aW9uW3JlY29uc3RydWN0aW9uXSwgdGhpcyBkYXRhIHN0cnVjdHVy ZSBpcyBhbm90aGVyIHBpZWNlIG9mCj4gK3RoZSBwdXp6bGUgbmVjZXNzYXJ5IHRvIHJlY29uc3Ry dWN0IHRoZSBkYXRhIG9yIGF0dHJpYnV0ZSBmb3JrIG9mIGEgZmlsZSBmcm9tCj4gK3JldmVyc2Ut bWFwcGluZyByZWNvcmRzOyB3ZSBjYW4gYWxzbyB1c2UgaXQgdG8gZG91YmxlLWNoZWNrIGFsbG9j YXRpb25zIHRvCj4gK2Vuc3VyZSB0aGF0IHdlIGFyZSBub3QgYWNjaWRlbnRhbGx5IGNyb3NzLWxp bmtpbmcgYmxvY2tzLCB3aGljaCBjYW4gY2F1c2UKPiArc2V2ZXJlIGRhbWFnZSB0byB0aGUgZmls ZXN5c3RlbS4KPiArCj4gK1RoaXMgQit0cmVlIGlzIG9ubHkgcHJlc2VudCBpZiB0aGUgK1hGU19T Ql9GRUFUX1JPX0NPTVBBVF9STUFQQlQrCj4gK2ZlYXR1cmUgaXMgZW5hYmxlZC4gIFRoZSBmZWF0 dXJlIHJlcXVpcmVzIGEgdmVyc2lvbiA1IGZpbGVzeXN0ZW0uCj4gKwo+ICtFYWNoIHJlY29yZCBp biB0aGUgcmV2ZXJzZS1tYXBwaW5nIEIrdHJlZSBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6 Cj4gKwo+ICtbc291cmNlLCBjXQo+ICstLS0tCj4gK3N0cnVjdCB4ZnNfcm1hcF9yZWMgewo+ICsg ICAgIF9fYmUzMiAgICAgICAgICAgICAgICAgICAgIHJtX3N0YXJ0YmxvY2s7Cj4gKyAgICAgX19i ZTMyICAgICAgICAgICAgICAgICAgICAgcm1fYmxvY2tjb3VudDsKPiArICAgICBfX2JlNjQgICAg ICAgICAgICAgICAgICAgICBybV9vd25lcjsKPiArICAgICBfX2JlNjQgICAgICAgICAgICAgICAg ICAgICBybV9mb3JrOjE7Cj4gKyAgICAgX19iZTY0ICAgICAgICAgICAgICAgICAgICAgcm1fYm1i dDoxOwo+ICsgICAgIF9fYmU2NCAgICAgICAgICAgICAgICAgICAgIHJtX3Vud3JpdHRlbjoxOwo+ ICsgICAgIF9fYmU2NCAgICAgICAgICAgICAgICAgICAgIHJtX3VudXNlZDo3Owo+ICsgICAgIF9f YmU2NCAgICAgICAgICAgICAgICAgICAgIHJtX29mZnNldDo1NDsKPiArfTsKPiArLS0tLQo+ICsK PiArKnJtX3N0YXJ0YmxvY2sqOjoKPiArQUcgYmxvY2sgbnVtYmVyIG9mIHRoaXMgcmVjb3JkLgo+ ICsKPiArKnJtX2Jsb2NrY291bnQqOjoKPiArVGhlIGxlbmd0aCBvZiB0aGlzIGV4dGVudC4KPiAr Cj4gKypybV9vd25lcio6Ogo+ICtBIDY0LWJpdCBudW1iZXIgZGVzY3JpYmluZyB0aGUgb3duZXIg b2YgdGhpcyBleHRlbnQuICBUaGlzIGlzIHR5cGljYWxseSB0aGUKPiArYWJzb2x1dGUgaW5vZGUg bnVtYmVyLCBidXQgY2FuIGFsc28gY29ycmVzcG9uZCB0byBvbmUgb2YgdGhlIGZvbGxvd2luZzoK PiArCj4gKy5TcGVjaWFsIG93bmVyIHZhbHVlcwo+ICtbb3B0aW9ucz0iaGVhZGVyIl0KPiArfD09 PT09Cj4gK3wgVmFsdWUJCQkJfCBEZXNjcmlwdGlvbgo+ICt8ICtYRlNfUk1BUF9PV05fTlVMTCsg ICAgICAgICAgIHwgTm8gb3duZXIuICBUaGlzIHNob3VsZCBuZXZlciBhcHBlYXIgb24gZGlzay4K PiArfCArWEZTX1JNQVBfT1dOX1VOS05PV04rICAgICAgICB8IFVua25vd24gb3duZXI7IGZvciBF RkkgcmVjb3ZlcnkuICBUaGlzIHNob3VsZCBuZXZlciBhcHBlYXIgb24gZGlzay4KPiArfCArWEZT X1JNQVBfT1dOX0ZTKyAgICAgICAgICAgICB8IEFsbG9jYXRpb24gZ3JvdXAgaGVhZGVycwo+ICt8 ICtYRlNfUk1BUF9PV05fTE9HKyAgICAgICAgICAgIHwgWEZTIGxvZyBibG9ja3MKPiArfCArWEZT X1JNQVBfT1dOX0FHKyAgICAgICAgICAgICB8IFBlci1hbGxvY2F0aW9uIGdyb3VwIEIrdHJlZSBi bG9ja3MuICBUaGlzIG1lYW5zIGZyZWUgc3BhY2UgQit0cmVlIGJsb2NrcywgYmxvY2tzIG9uIHRo ZSBmcmVlbGlzdCwgYW5kIHJldmVyc2UtbWFwcGluZyBCK3RyZWUgYmxvY2tzLgo+ICt8ICtYRlNf Uk1BUF9PV05fSU5PQlQrICAgICAgICAgIHwgUGVyLWFsbG9jYXRpb24gZ3JvdXAgaW5vZGUgQit0 cmVlIGJsb2Nrcy4gIFRoaXMgaW5jbHVkZXMgZnJlZSBpbm9kZSBCK3RyZWUgYmxvY2tzLgo+ICt8 ICtYRlNfUk1BUF9PV05fSU5PREVTKyAgICAgICAgIHwgSW5vZGUgY2h1bmtzCj4gK3w9PT09PQo+ ICsKPiArKnJtX2ZvcmsqOjoKPiArSWYgK3JtX293bmVyKyBkZXNjcmliZXMgYW4gaW5vZGUsIHRo aXMgY2FuIGJlIDEgaWYgdGhpcyByZWNvcmQgaXMgZm9yIGFuCj4gK2F0dHJpYnV0ZSBmb3JrLgo+ ICsKPiArKnJtX2JtYnQqOjoKPiArSWYgK3JtX293bmVyKyBkZXNjcmliZXMgYW4gaW5vZGUsIHRo aXMgY2FuIGJlIDEgdG8gc2lnbmlmeSB0aGF0IHRoaXMgcmVjb3JkIGlzCj4gK2ZvciBhIGJsb2Nr IG1hcCBCK3RyZWUgYmxvY2suICBJbiB0aGlzIGNhc2UsICtybV9vZmZzZXQrIGhhcyBubyBtZWFu aW5nLgo+ICsKPiArKnJtX3Vud3JpdHRlbio6Ogo+ICtBIGZsYWcgaW5kaWNhdGluZyB0aGF0IHRo ZSBleHRlbnQgaXMgdW53cml0dGVuLiAgVGhpcyBjb3JyZXNwb25kcyB0byB0aGUgZmxhZyBpbgo+ ICt0aGUgeHJlZjpEYXRhX0V4dGVudHNbZXh0ZW50IHJlY29yZF0gZm9ybWF0IHdoaWNoIG1lYW5z ICtYRlNfRVhUX1VOV1JJVFRFTisuCj4gKwo+ICsqcm1fb2Zmc2V0Kjo6Cj4gK1RoZSA1NC1iaXQg bG9naWNhbCBmaWxlIGJsb2NrIG9mZnNldCwgaWYgK3JtX293bmVyKyBkZXNjcmliZXMgYW4gaW5v ZGUuCj4gK01lYW5pbmdsZXNzIG90aGVyd2lzZS4KPiArCj4gK1tOT1RFXQo+ICtUaGUgc2luZ2xl LWJpdCBmbGFnIHZhbHVlcyArcm1fdW53cml0dGVuKywgK3JtX2ZvcmsrLCBhbmQgK3JtX2JtYnQr IGFyZSBwYWNrZWQKPiAraW50byB0aGUgbGFyZ2VyIGZpZWxkcyBpbiB0aGUgQyBzdHJ1Y3R1cmUg ZGVmaW5pdGlvbi4KPiArCj4gK1RoZSBrZXkgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOgo+ ICsKPiArW3NvdXJjZSwgY10KPiArLS0tLQo+ICtzdHJ1Y3QgeGZzX3JtYXBfa2V5IHsKPiArICAg ICBfX2JlMzIgICAgICAgICAgICAgICAgICAgICBybV9zdGFydGJsb2NrOwo+ICsgICAgIF9fYmU2 NCAgICAgICAgICAgICAgICAgICAgIHJtX293bmVyOwo+ICsgICAgIF9fYmU2NCAgICAgICAgICAg ICAgICAgICAgIHJtX2Zvcms6MTsKPiArICAgICBfX2JlNjQgICAgICAgICAgICAgICAgICAgICBy bV9ibWJ0OjE7Cj4gKyAgICAgX19iZTY0ICAgICAgICAgICAgICAgICAgICAgcm1fcmVzZXJ2ZWQ6 MTsKPiArICAgICBfX2JlNjQgICAgICAgICAgICAgICAgICAgICBybV91bnVzZWQ6NzsKPiArICAg ICBfX2JlNjQgICAgICAgICAgICAgICAgICAgICBybV9vZmZzZXQ6NTQ7Cj4gK307Cj4gKy0tLS0K PiArCj4gK0ZvciB0aGUgcmV2ZXJzZS1tYXBwaW5nIEIrdHJlZSBvbiBhIGZpbGVzeXN0ZW0gdGhh dCBzdXBwb3J0cyBzaGFyaW5nIG9mIGZpbGUKPiArZGF0YSBibG9ja3MsIHRoZSBrZXkgZGVmaW5p dGlvbiBpcyBsYXJnZXIgdGhhbiB0aGUgdXN1YWwgQUcgYmxvY2sgbnVtYmVyLiAgT24gYQo+ICtj bGFzc2ljIFhGUyBmaWxlc3lzdGVtLCBlYWNoIGJsb2NrIGhhcyBvbmx5IG9uZSBvd25lciwgd2hp Y2ggbWVhbnMgdGhhdAo+ICsrcm1fc3RhcnRibG9jaysgaXMgc3VmZmljaWVudCB0byB1bmlxdWVs eSBpZGVudGlmeSBlYWNoIHJlY29yZC4gIEhvd2V2ZXIsCj4gK3NoYXJlZCBibG9jayBzdXBwb3J0 IChyZWZsaW5rKSBvbiBYRlMgYnJlYWtzIHRoYXQgYXNzdW1wdGlvbjsgbm93IGZpbGVzeXN0ZW0K PiArYmxvY2tzIGNhbiBiZSBsaW5rZWQgdG8gYW55IGxvZ2ljYWwgYmxvY2sgb2Zmc2V0IG9mIGFu eSBmaWxlIGlub2RlLiAgVGhlcmVmb3JlLAo+ICt0aGUga2V5IG11c3QgaW5jbHVkZSB0aGUgb3du ZXIgYW5kIG9mZnNldCBpbmZvcm1hdGlvbiB0byBwcmVzZXJ2ZSB0aGUgMSB0byAxCj4gK3JlbGF0 aW9uIGJldHdlZW4ga2V5IGFuZCByZWNvcmQuCj4gKwo+ICsqIEFzIHRoZSByZWZlcmVuY2UgY291 bnRpbmcgaXMgQUcgcmVsYXRpdmUsIGFsbCB0aGUgYmxvY2sgbnVtYmVycyBhcmUgb25seQo+ICsz Mi1iaXRzLgo+ICsqIFRoZSArYmJfbWFnaWMrIHZhbHVlIGlzICJSTUIzIiAoMHg1MjRkNDIzMyku Cj4gKyogVGhlICt4ZnNfYnRyZWVfc2Jsb2NrX3QrIGhlYWRlciBpcyB1c2VkIGZvciBpbnRlcm1l ZGlhdGUgQit0cmVlIG5vZGUgYXMgd2VsbAo+ICthcyB0aGUgbGVhdmVzLgo+ICsqIEVhY2ggcG9p bnRlciBpcyBhc3NvY2lhdGVkIHdpdGggdHdvIGtleXMuICBUaGUgZmlyc3Qgb2YgdGhlc2UgaXMg dGhlICJsb3cKPiAra2V5Iiwgd2hpY2ggaXMgdGhlIGtleSBvZiB0aGUgc21hbGxlc3QgcmVjb3Jk IGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgcG9pbnRlci4KPiArVGhpcyBsb3cga2V5IGhhcyB0aGUg c2FtZSBtZWFuaW5nIGFzIHRoZSBrZXkgaW4gYWxsIG90aGVyIGJ0cmVlcy4gIFRoZSBzZWNvbmQK PiAra2V5IGlzIHRoZSBoaWdoIGtleSwgd2hpY2ggaXMgdGhlIG1heGltdW0gb2YgdGhlIGxhcmdl c3Qga2V5IHRoYXQgY2FuIGJlIHVzZWQKPiArdG8gYWNjZXNzIGEgZ2l2ZW4gcmVjb3JkIHVuZGVy bmVhdGggdGhlIHBvaW50ZXIuICBSZWNhbGwgdGhhdCBlYWNoIHJlY29yZAo+ICtpbiB0aGUgcmV2 ZXJzZSBtYXBwaW5nIGIrdHJlZSBkZXNjcmliZXMgYW4gaW50ZXJ2YWwgb2YgcGh5c2ljYWwgYmxv Y2tzIG1hcHBlZAo+ICt0byBhbiBpbnRlcnZhbCBvZiBsb2dpY2FsIGZpbGUgYmxvY2sgb2Zmc2V0 czsgdGhlcmVmb3JlLCBpdCBtYWtlcyBzZW5zZSB0aGF0Cj4gK2EgcmFuZ2Ugb2Yga2V5cyBjYW4g YmUgdXNlZCB0byBmaW5kIHRvIGEgcmVjb3JkLgo+ICsKPiArPT09IHhmc19kYiBybWFwYnQgRXhh bXBsZQo+ICsKPiArVGhpcyBleGFtcGxlIHNob3dzIGEgcmV2ZXJzZS1tYXBwaW5nIEIrdHJlZSBm cm9tIGEgZnJlc2hseSBwb3B1bGF0ZWQgcm9vdAo+ICtmaWxlc3lzdGVtOgo+ICsKPiArLS0tLQo+ ICt4ZnNfZGI+IGFnZiAwCj4gK3hmc19kYj4gYWRkciBybWFwcm9vdAo+ICt4ZnNfZGI+IHAKPiAr bWFnaWMgPSAweDUyNGQ0MjMzCj4gK2xldmVsID0gMQo+ICtudW1yZWNzID0gNDMKPiArbGVmdHNp YiA9IG51bGwKPiArcmlnaHRzaWIgPSBudWxsCj4gK2JubyA9IDU2Cj4gK2xzbiA9IDB4MzAwMDAw NGM4Cj4gK3V1aWQgPSAxOTc3MjIxZC04MzQ1LTQ2NGUtYjFmNC1hYTJlYTM2ODk1ZjQKPiArb3du ZXIgPSAwCj4gK2NyYyA9IDB4N2NmOGJlNmYgKGNvcnJlY3QpCj4gK2tleXNbMS00M10gPSBbc3Rh cnRibG9jayxvd25lcixvZmZzZXRdCj4gK2tleXNbMS00M10gPSBbc3RhcnRibG9jayxvd25lcixv ZmZzZXQsYXR0cmZvcmssYm1idGJsb2NrLHN0YXJ0YmxvY2tfaGksb3duZXJfaGksCj4gKwkgICAg IG9mZnNldF9oaSxhdHRyZm9ya19oaSxibWJ0YmxvY2tfaGldCj4gKyAgICAgICAgMTpbMCwtMyww LDAsMCwzNTEsNDQxOCw2NiwwLDBdCj4gKyAgICAgICAgMjpbNDE3LDI4NSwwLDAsMCw4MjcsNDQx OSwyLDAsMF0KPiArICAgICAgICAzOls4MjksNDk5LDAsMCwwLDIzNTIsNTczLDU1LDAsMF0KPiAr ICAgICAgICA0OlsxMjkyLDcxMCwwLDAsMCwzMjE2OCwyNjI5MjMsNDcsMCwwXQo+ICsgICAgICAg IDU6WzMyMjE1LC01LDAsMCwwLDM0NjU1LDIzNjUsMzQxMSwwLDBdCj4gKyAgICAgICAgNjpbMzQw ODMsMTE2MSwwLDAsMCwzNDg5NSwyNjUyMjAsMSwwLDFdCj4gKyAgICAgICAgNzpbMzQ4OTYsMjU2 MTkxLDAsMCwwLDM2NTIyLC05LDAsMCwwXQo+ICsgICAgICAgIC4uLgo+ICsgICAgICAgIDQxOls1 MDk5OCwzMjY3MzQsMCwwLDAsNTE0MzAsLTUsMCwwLDBdCj4gKyAgICAgICAgNDI6WzUxNDMxLDMy NzAxMCwwLDAsMCw1MTYwMCwzMjU3MjIsMTEsMCwwXQo+ICsgICAgICAgIDQzOls1MTYxMSwzMjcx MTIsMCwwLDAsOTQwNjMsMjM1MjIsMjgzNzUyNzIsMCwwXQo+ICtwdHJzWzEtNDNdID0gMTo1IDI6 NiAzOjggNDo5IDU6MTAgNjoxMSA3OjQxOCAuLi4gNDE6NDYzNzcgNDI6NDg3ODQgNDM6NDk1MjIK PiArLS0tLQo+ICsKPiArV2UgYXJiaXRyYXJpbHkgcGljayBwb2ludGVyIDE3IHRvIHRyYXZlcnNl IGRvd253YXJkczoKPiArCj4gKy0tLS0KPiAreGZzX2RiPiBhZGRyIHB0cnNbMTddCj4gK3hmc19k Yj4gcAo+ICttYWdpYyA9IDB4NTI0ZDQyMzMKPiArbGV2ZWwgPSAwCj4gK251bXJlY3MgPSAxNjgK PiArbGVmdHNpYiA9IDM2Mjg0Cj4gK3JpZ2h0c2liID0gMzc2MTcKPiArYm5vID0gMjk0NzYwCj4g K2xzbiA9IDB4MjAwMDAyNzYxCj4gK3V1aWQgPSAxOTc3MjIxZC04MzQ1LTQ2NGUtYjFmNC1hYTJl YTM2ODk1ZjQKPiArb3duZXIgPSAwCj4gK2NyYyA9IDB4MmRhZDNmYmUgKGNvcnJlY3QpCj4gK3Jl Y3NbMS0xNjhdID0gW3N0YXJ0YmxvY2ssYmxvY2tjb3VudCxvd25lcixvZmZzZXQsZXh0ZW50Zmxh ZyxhdHRyZm9yayxibWJ0YmxvY2tdCj4gKyAgICAgICAgMTpbNDAzMjYsMSwyNTk2MTUsMCwwLDAs MF0gMjpbNDAzMjcsMSwtNSwwLDAsMCwwXQo+ICsgICAgICAgIDM6WzQwMzI4LDIsMjU5NjE4LDAs MCwwLDBdIDQ6WzQwMzMwLDEsMjU5NjE5LDAsMCwwLDBdCj4gKyAgICAgICAgLi4uCj4gKyAgICAg ICAgMTI3Ols0MDU0MCwxLDMyNDI2NiwwLDAsMCwwXSAxMjg6WzQwNTQxLDEsMzI0MjY2LDgzODg2 MDgsMCwwLDBdCj4gKyAgICAgICAgMTI5Ols0MDU0MiwyLDMyNDI2NiwxLDAsMCwwXSAxMzA6WzQw NTQ0LDMyLC03LDAsMCwwLDBdCj4gKy0tLS0KPiArCj4gK1NldmVyYWwgaW50ZXJlc3RpbmcgdGhp bmdzIHBvcCBvdXQgaGVyZS4gIFRoZSBmaXJzdCByZWNvcmQgc2hvd3MgdGhhdCBpbm9kZQo+ICsy NTksNjE1IGhhcyBtYXBwZWQgQUcgYmxvY2sgNDAsMzI2IGF0IG9mZnNldCAwLiAgV2UgY29uZmly bSB0aGlzIGJ5IGxvb2tpbmcgYXQKPiArdGhlIGJsb2NrIG1hcCBmb3IgdGhhdCBpbm9kZToKPiAr Cj4gKy0tLS0KPiAreGZzX2RiPiBpbm9kZSAyNTk2MTUKPiAreGZzX2RiPiBibWFwCj4gK2RhdGEg b2Zmc2V0IDAgc3RhcnRibG9jayA0MDMyNiAoMC80MDMyNikgY291bnQgMSBmbGFnIDAKPiArLS0t LQo+ICsKPiArTmV4dCwgbm90aWNlIHJlY29yZHMgMTI3IGFuZCAxMjgsIHdoaWNoIGRlc2NyaWJl IG5laWdoYm9yaW5nIEFHIGJsb2NrcyB0aGF0IGFyZQo+ICttYXBwZWQgdG8gbm9uLWNvbnRpZ3Vv dXMgbG9naWNhbCBibG9ja3MgaW4gaW5vZGUgMzI0LDI2Ni4gIEdpdmVuIHRoZSBsb2dpY2FsCj4g K29mZnNldCBvZiA4LDM4OCw2MDggd2Ugc3VybWlzZSB0aGF0IHRoaXMgaXMgYSBsZWFmIGRpcmVj dG9yeSwgYnV0IGxldCB1cwo+ICtjb25maXJtOgo+ICsKPiArLS0tLQo+ICt4ZnNfZGI+IGlub2Rl IDMyNDI2Ngo+ICt4ZnNfZGI+IHAgY29yZS5tb2RlCj4gK2NvcmUubW9kZSA9IDA0MDc1NQo+ICt4 ZnNfZGI+IGJtYXAKPiArZGF0YSBvZmZzZXQgMCBzdGFydGJsb2NrIDQwNTQwICgwLzQwNTQwKSBj b3VudCAxIGZsYWcgMAo+ICtkYXRhIG9mZnNldCAxIHN0YXJ0YmxvY2sgNDA1NDIgKDAvNDA1NDIp IGNvdW50IDIgZmxhZyAwCj4gK2RhdGEgb2Zmc2V0IDMgc3RhcnRibG9jayA0MDU3NiAoMC80MDU3 NikgY291bnQgMSBmbGFnIDAKPiArZGF0YSBvZmZzZXQgODM4ODYwOCBzdGFydGJsb2NrIDQwNTQx ICgwLzQwNTQxKSBjb3VudCAxIGZsYWcgMAo+ICt4ZnNfZGI+IHAgY29yZS5tb2RlCj4gK2NvcmUu bW9kZSA9IDAxMDA2NDQKPiAreGZzX2RiPiBkYmxvY2sgMAo+ICt4ZnNfZGI+IHAgZGhkci5oZHIu bWFnaWMKPiArZGhkci5oZHIubWFnaWMgPSAweDU4NDQ0NDMzCj4gK3hmc19kYj4gZGJsb2NrIDgz ODg2MDgKPiAreGZzX2RiPiBwIGxoZHIuaW5mby5oZHIubWFnaWMKPiArbGhkci5pbmZvLmhkci5t YWdpYyA9IDB4M2RmMQo+ICstLS0tCj4gKwo+ICtJbmRlZWQsIHRoaXMgaW5vZGUgMzI0LDI2NiBh cHBlYXJzIHRvIGJlIGEgbGVhZiBkaXJlY3RvcnksIGFzIGl0IGhhcyByZWd1bGFyCj4gK2RpcmVj dG9yeSBkYXRhIGJsb2NrcyBhdCBsb3cgb2Zmc2V0cywgYW5kIGEgc2luZ2xlIGxlYWYgYmxvY2su Cj4gKwo+ICtOb3RpY2UgZnVydGhlciB0aGUgdHdvIHJldmVyc2UtbWFwcGluZyByZWNvcmRzIHdp dGggbmVnYXRpdmUgb3duZXJzLiAgQW4gb3duZXIKPiArb2YgLTcgY29ycmVzcG9uZHMgdG8gK1hG U19STUFQX09XTl9JTk9ERVMrLCB3aGljaCBpcyBhbiBpbm9kZSBjaHVuaywgYW5kIGFuCj4gK293 bmVyIGNvZGUgb2YgLTUgY29ycmVzcG9uZHMgdG8gK1hGU19STUFQX09XTl9BRyssIHdoaWNoIGNv dmVycyBmcmVlIHNwYWNlCj4gK0IrdHJlZXMgYW5kIGZyZWUgc3BhY2UuICBMZXQncyBzZWUgaWYg YmxvY2sgNDAsNTQ0IGlzIHBhcnQgb2YgYW4gaW5vZGUgY2h1bms6Cj4gKwo+ICstLS0tCj4gK3hm c19kYj4gYmxvY2tnZXQKPiAreGZzX2RiPiBmc2Jsb2NrIDQwNTQ0Cj4gK3hmc19kYj4gYmxvY2t1 c2UKPiArYmxvY2sgNDA1NDQgKDAvNDA1NDQpIHR5cGUgaW5vZGUKPiAreGZzX2RiPiBzdGFjawo+ ICsxOgo+ICsgICAgICAgIGJ5dGUgb2Zmc2V0IDE2NjA2ODIyNCwgbGVuZ3RoIDQwOTYKPiArICAg ICAgICBidWZmZXIgYmxvY2sgMzI0MzUyIChmc2JubyA0MDU0NCksIDggYmJzCj4gKyAgICAgICAg aW5vZGUgMzI0MjY2LCBkaXIgaW5vZGUgMzI0MjY2LCB0eXBlIGRhdGEKPiAreGZzX2RiPiB0eXBl IGlub2RlCj4gK3hmc19kYj4gcAo+ICtjb3JlLm1hZ2ljID0gMHg0OTRlCj4gKy0tLS0KPiArCj4g K091ciBzdXNwaWNpb25zIGFyZSBjb25maXJtZWQuICBMZXQncyBhbHNvIHNlZSBpZiA0MCwzMjcg aXMgcGFydCBvZiBhIGZyZWUgc3BhY2UKPiArdHJlZToKPiArCj4gKy0tLS0KPiAreGZzX2RiPiBm c2Jsb2NrIDQwMzI3Cj4gK3hmc19kYj4gYmxvY2t1c2UKPiArYmxvY2sgNDAzMjcgKDAvNDAzMjcp IHR5cGUgYnRybWFwCj4gK3hmc19kYj4gdHlwZSBybWFwYnQKPiAreGZzX2RiPiBwCj4gK21hZ2lj ID0gMHg1MjRkNDIzMwo+ICstLS0tCj4gKwo+ICtBcyB5b3UgY2FuIHNlZSwgdGhlIHJldmVyc2Ug YmxvY2stbWFwcGluZyBCK3RyZWUgaXMgYW4gaW1wb3J0YW50IHNlY29uZGFyeQo+ICttZXRhZGF0 YSBzdHJ1Y3R1cmUsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlY29uc3RydWN0IGRhbWFnZWQgcHJp bWFyeSBtZXRhZGF0YS4KPiArTm93IGxldCdzIGxvb2sgYXQgYW4gZXh0ZW5kIHJtYXAgYnRyZWU6 Cj4gKwo+ICstLS0tCj4gK3hmc19kYj4gYWdmIDAKPiAreGZzX2RiPiBhZGRyIHJtYXByb290Cj4g K3hmc19kYj4gcAo+ICttYWdpYyA9IDB4MzQ1MjRkNDIKPiArbGV2ZWwgPSAxCj4gK251bXJlY3Mg PSA1Cj4gK2xlZnRzaWIgPSBudWxsCj4gK3JpZ2h0c2liID0gbnVsbAo+ICtibm8gPSA2MzY4Cj4g K2xzbiA9IDB4MTAwMDAwZDFiCj4gK3V1aWQgPSA0MDBmMDkyOC02Yjg4LTRjMzctYWYxZS1jZWYx Zjg5MTFmM2YKPiArb3duZXIgPSAwCj4gK2NyYyA9IDB4OGQ0YWNlMDUgKGNvcnJlY3QpCj4gK2tl eXNbMS01XSA9IFtzdGFydGJsb2NrLG93bmVyLG9mZnNldCxhdHRyZm9yayxibWJ0YmxvY2ssc3Rh cnRibG9ja19oaSxvd25lcl9oaSxvZmZzZXRfaGksYXR0cmZvcmtfaGksYm1idGJsb2NrX2hpXQo+ ICsxOlswLC0zLDAsMCwwLDcwNSwxMzIsNjgxLDAsMF0KPiArMjpbMjQsNTc2MSwwLDAsMCw1NDgs NTc2MSw1MjQsMCwwXQo+ICszOlsyNCw1OTI5LDAsMCwwLDM4MCw1OTI5LDM1NiwwLDBdCj4gKzQ6 WzI0LDYwOTcsMCwwLDAsMjEyLDYwOTcsMTg4LDAsMF0KPiArNTpbMjQsNjI3NywwLDAsMCw4MDcs LTcsMCwwLDBdCj4gK3B0cnNbMS01XSA9IDE6NSAyOjc3MSAzOjkgNDoxMCA1OjExCj4gKy0tLS0K PiArCj4gK1RoZSBzZWNvbmQgcG9pbnRlciBzdG9yZXMgYm90aCB0aGUgbG93IGtleSBbMjQsNTc2 MSwwLDAsMF0gYW5kIHRoZSBoaWdoIGtleQo+ICtbNTQ4LDU3NjEsNTI0LDAsMF0sIHdoaWNoIG1l YW5zIHRoYXQgd2UgY2FuIGV4cGVjdCBibG9jayA3NzEgdG8gY29udGFpbiByZWNvcmRzCj4gK3N0 YXJ0aW5nIGF0IHBoeXNpY2FsIGJsb2NrIDI0LCBpbm9kZSA1NzYxLCBvZmZzZXQgemVybzsgYW5k IHRoYXQgb25lIG9mIHRoZQo+ICtyZWNvcmRzIGNhbiBiZSB1c2VkIHRvIGZpbmQgYSByZXZlcnNl IG1hcHBpbmcgZm9yIHBoeXNpY2FsIGJsb2NrIDU0OCwgaW5vZGUKPiArNTc2MSwgYW5kIG9mZnNl dCA1MjQ6Cj4gKwo+ICstLS0tCj4gK3hmc19kYj4gYWRkciBwdHJzWzJdCj4gK3hmc19kYj4gcAo+ ICttYWdpYyA9IDB4MzQ1MjRkNDIKPiArbGV2ZWwgPSAwCj4gK251bXJlY3MgPSAxNjgKPiArbGVm dHNpYiA9IDUKPiArcmlnaHRzaWIgPSA5Cj4gK2JubyA9IDYxNjgKPiArbHNuID0gMHgxMDAwMDBk MWIKPiArdXVpZCA9IDQwMGYwOTI4LTZiODgtNGMzNy1hZjFlLWNlZjFmODkxMWYzZgo+ICtvd25l ciA9IDAKPiArY3JjID0gMHhkNThlZmYwZSAoY29ycmVjdCkKPiArcmVjc1sxLTE2OF0gPSBbc3Rh cnRibG9jayxibG9ja2NvdW50LG93bmVyLG9mZnNldCxleHRlbnRmbGFnLGF0dHJmb3JrLGJtYnRi bG9ja10KPiArMTpbMjQsNTI1LDU3NjEsMCwwLDAsMF0KPiArMjpbMjQsNTI0LDU3NjIsMCwwLDAs MF0KPiArMzpbMjQsNTIzLDU3NjMsMCwwLDAsMF0KPiArLi4uCj4gKzE2NjpbMjQsMzYwLDU5MjYs MCwwLDAsMF0KPiArMTY3OlsyNCwzNTksNTkyNywwLDAsMCwwXQo+ICsxNjg6WzI0LDM1OCw1OTI4 LDAsMCwwLDBdCj4gKy0tLS0KPiArCj4gK09ic2VydmUgdGhhdCB0aGUgZmlyc3QgcmVjb3JkIGlu IHRoZSBibG9jayBzdGFydHMgYXQgcGh5c2ljYWwgYmxvY2sgMjQsIGlub2RlCj4gKzU3NjEsIG9m ZnNldCB6ZXJvLCBqdXN0IGFzIHdlIGV4cGVjdGVkLiAgTm90ZSB0aGF0IHRoaXMgZmlyc3QgcmVj b3JkIGlzIGFsc28KPiAraW5kZXhlZCBieSB0aGUgaGlnaGVzdCBrZXkgYXMgcHJvdmlkZWQgaW4g dGhlIG5vZGUgYmxvY2s7IHBoeXNpY2FsIGJsb2NrIDU0OCwKPiAraW5vZGUgNTc2MSwgb2Zmc2V0 IDUyNCBpcyB0aGUgdmVyeSBsYXN0IGJsb2NrIG1hcHBlZCBieSB0aGlzIHJlY29yZC4gIEZ1cnRo ZXJtb3JlLAo+ICtub3RlIHRoYXQgcmVjb3JkIDE2OCwgZGVzcGl0ZSBiZWluZyB0aGUgbGFzdCBy ZWNvcmQgaW4gdGhpcyBibG9jaywgaGFzIGEgbG93ZXIKPiArbWF4aW11bSBrZXkgKHBoeXNpY2Fs IGJsb2NrIDM4MiwgaW5vZGUgNTkyOCwgb2Zmc2V0IDIzKSB0aGFuIHRoZSBmaXJzdCByZWNvcmQu Cj4gZGlmZiAtLWdpdCBhL2Rlc2lnbi9YRlNfRmlsZXN5c3RlbV9TdHJ1Y3R1cmUveGZzX2ZpbGVz eXN0ZW1fc3RydWN0dXJlLmFzY2lpZG9jIGIvZGVzaWduL1hGU19GaWxlc3lzdGVtX1N0cnVjdHVy ZS94ZnNfZmlsZXN5c3RlbV9zdHJ1Y3R1cmUuYXNjaWlkb2MKPiBpbmRleCA2MjUwMmIzLi4xYjg2 NThkIDEwMDY0NAo+IC0tLSBhL2Rlc2lnbi9YRlNfRmlsZXN5c3RlbV9TdHJ1Y3R1cmUveGZzX2Zp bGVzeXN0ZW1fc3RydWN0dXJlLmFzY2lpZG9jCj4gKysrIGIvZGVzaWduL1hGU19GaWxlc3lzdGVt X1N0cnVjdHVyZS94ZnNfZmlsZXN5c3RlbV9zdHJ1Y3R1cmUuYXNjaWlkb2MKPiBAQCAtNDgsNiAr NDgsOCBAQCBpbmNsdWRlOjpvdmVydmlldy5hc2NpaWRvY1tdCj4gIAo+ICBpbmNsdWRlOjptZXRh ZGF0YV9pbnRlZ3JpdHkuYXNjaWlkb2NbXQo+ICAKPiAraW5jbHVkZTo6cmVjb25zdHJ1Y3Rpb24u YXNjaWlkb2NbXQo+ICsKPiAgaW5jbHVkZTo6Y29tbW9uX3R5cGVzLmFzY2lpZG9jW10KPiAgCj4g IGluY2x1ZGU6Om1hZ2ljLmFzY2lpZG9jW10KPiBAQCAtNjYsNiArNjgsOCBAQCBpbmNsdWRlOjpi dHJlZXMuYXNjaWlkb2NbXQo+ICAKPiAgaW5jbHVkZTo6YWxsb2NhdGlvbl9ncm91cHMuYXNjaWlk b2NbXQo+ICAKPiAraW5jbHVkZTo6cm1hcGJ0LmFzY2lpZG9jW10KPiArCj4gIGluY2x1ZGU6Ompv dXJuYWxpbmdfbG9nLmFzY2lpZG9jW10KPiAgCj4gIGluY2x1ZGU6OmludGVybmFsX2lub2Rlcy5h c2NpaWRvY1tdCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiB4ZnMgbWFpbGluZyBsaXN0Cj4geGZzQG9zcy5zZ2kuY29tCj4gaHR0cDovL29zcy5z Z2kuY29tL21haWxtYW4vbGlzdGluZm8veGZzCgotLSAKQ2FybG9zCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp4ZnMgbWFpbGluZyBsaXN0Cnhmc0Bvc3Mu c2dpLmNvbQpodHRwOi8vb3NzLnNnaS5jb20vbWFpbG1hbi9saXN0aW5mby94ZnMK