From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.120]) by mx.groups.io with SMTP id smtpd.web09.1012.1582839556194400888 for ; Thu, 27 Feb 2020 13:39:16 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=IqLjU/pU; spf=pass (domain: redhat.com, ip: 207.211.31.120, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1582839555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WDrJjYfn4rhH6gIkEQjoK+CSukG2/2lGfstDJSUVQFk=; b=IqLjU/pUCoa9cSgxTc0sgCFgDx8L9a+pcrmpI2QZU/dOkb8y1QJM/yBj7sOF4qfxCm/aAw tFIV8PChUAtmqW7P/XcTW2LyE6Jd2D3OLjC0z+spH0itC/CW958PSuHZXL1DTj99MfCQwf +yXXsXqPKCnELiuYqNGH3BC9IV3HWOo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-151-GndyQWUXOBScDDcKVQMUbQ-1; Thu, 27 Feb 2020 16:39:09 -0500 X-MC-Unique: GndyQWUXOBScDDcKVQMUbQ-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 22740DB20; Thu, 27 Feb 2020 21:39:08 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-46.ams2.redhat.com [10.36.116.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id BFD49165DA; Thu, 27 Feb 2020 21:39:06 +0000 (UTC) From: "Laszlo Ersek" To: edk2-devel-groups-io Cc: Ard Biesheuvel , Leif Lindholm , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 1/3] ArmPkg: convert LFs to CRLF, expand hard TABs Date: Thu, 27 Feb 2020 22:39:01 +0100 Message-Id: <20200227213903.13884-2-lersek@redhat.com> In-Reply-To: <20200227213903.13884-1-lersek@redhat.com> References: <20200227213903.13884-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 V2UncmUgZ29pbmcgdG8gc3dpdGNoIHRoZSBpbnRlcm5hbCBsaW5lIHRlcm1pbmF0b3JzIGdsb2Jh bGx5IHRvIExGIGF0IHNvbWUKcG9pbnQsIGJ1dCB1bnRpbCB0aGVuLCBsZXQncyB1c2UgQ1JMRiBj b25zaXN0ZW50bHkuIENvbnZlcnQgc291cmNlIGZpbGVzCndpdGggTEZzIGluIHRoZW0gdG8gQ1JM RiwgdXNpbmcgInVuaXgyZG9zIi4KCiJnaXQgc2hvdyAtYiIgcHJpbnRzIG5vIGNvZGUgY2hhbmdl cyBmb3IgdGhpcyBwYXRjaC4KCihJIGNvbGxlY3RlZCBhbGwgdGhlIGZpbGUgbmFtZSBzdWZmaXhl cyBpbiB0aGlzIHBhY2thZ2UsIHdpdGg6CgokIGdpdCBscy1maWxlcyAtLSAkUEFDS0FHRSB8IHJl diB8IGN1dCAtZiAxIC1kIC4gfCBzb3J0IC11IHwgcmV2CgpJIGVsaW1pbmF0ZWQgdGhvc2Ugc3Vm Zml4ZXMgdGhhdCBkaWRuJ3Qgc3RhbmQgZm9yIHRleHQgZmlsZXMsIHRoZW4KYmxhbmtldC1jb252 ZXJ0ZWQgdGhlIHJlc3Qgd2l0aCB1bml4MmRvcy4gRmluYWxseSwgcGlja2VkIHVwIHRoZSBhY3R1 YWwKY2hhbmdlcyB3aXRoIGdpdC1hZGQuKQoKQXQgdGhlIHNhbWUgdGltZSwgdGhlIGZvbGxvd2lu ZyB0aHJlZSBmaWxlcyBoYWQgdG8gdW5kZXJnbyBUQUIgZXhwYW5zaW9uOgoKICBBcm1Qa2cvTGli cmFyeS9Bcm1Tb2Z0RmxvYXRMaWIvQXJtU29mdEZsb2F0TGliLmMKICBBcm1Qa2cvTGlicmFyeS9H Y2NMdG8vbGlibHRvLWFhcmNoNjQucwogIEFybVBrZy9MaWJyYXJ5L0djY0x0by9saWJsdG8tYXJt LnMKCkkgdXNlZCAiZXhwYW5kIC10IDIiLCBpbiBvcmRlciB0byBzdGF5IGNsb3NlIHRvIHRoZSBl ZGsyIGNvZGluZyBzdHlsZQood2hpY2ggdXNlcyB0d28gc3BhY2VzIGZvciBpbmRlbnRhdGlvbi4p CgpCb3RoIHRoZSBDUkxGIGNvbnZlcnNpb24gYW5kIHRoZSBUQUIgZXhwYW5zaW9uIGFyZSBtb3Rp dmF0ZWQgYnkKIlBhdGNoQ2hlY2sucHkiLiAiUGF0Y2hDaGVjay5weSIgaXMgYWxzbyB0aGUgcmVh c29uIHdoeSBDUkxGIGNvbnZlcnNpb24KYW5kIFRBQiBleHBhbnNpb24gaGF2ZSB0byBoYXBwZW4g aW4gdGhlIHNhbWUgcGF0Y2guCgpDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxp bmFyby5vcmc+CkNjOiBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT4KQ2M6IFBoaWxp cHBlIE1hdGhpZXUtRGF1ZMOpIDxwaGlsbWRAcmVkaGF0LmNvbT4KUmVmOiBodHRwczovL2J1Z3pp bGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTkKU2lnbmVkLW9mZi1ieTogTGFz emxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4KLS0tCiBBcm1Qa2cvTGlicmFyeS9Bcm1TbWNM aWJOdWxsL0FybVNtY0xpYk51bGwuYyAgICAgfCAgMzIgKy0KIEFybVBrZy9MaWJyYXJ5L0FybVNv ZnRGbG9hdExpYi9Bcm1Tb2Z0RmxvYXRMaWIuYyB8IDU2NiArKysrKysrKysrLS0tLS0tLS0tLQog QXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL21lbXNldC5jICAgIHwgMTEwICsr LS0KIEFybVBrZy9MaWJyYXJ5L0djY0x0by9saWJsdG8tYWFyY2g2NC5zICAgICAgICAgICB8ICA0 MiArLQogQXJtUGtnL0xpYnJhcnkvR2NjTHRvL2xpYmx0by1hcm0ucyAgICAgICAgICAgICAgIHwg MTEwICsrLS0KIDUgZmlsZXMgY2hhbmdlZCwgNDMwIGluc2VydGlvbnMoKyksIDQzMCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9Bcm1Qa2cvTGlicmFyeS9Bcm1TbWNMaWJOdWxsL0FybVNtY0xp Yk51bGwuYyBiL0FybVBrZy9MaWJyYXJ5L0FybVNtY0xpYk51bGwvQXJtU21jTGliTnVsbC5jCmlu ZGV4IDJjZDI5MmFhYmY4OC4uMmQ3OWFhZGFmMWZhIDEwMDY0NAotLS0gYS9Bcm1Qa2cvTGlicmFy eS9Bcm1TbWNMaWJOdWxsL0FybVNtY0xpYk51bGwuYworKysgYi9Bcm1Qa2cvTGlicmFyeS9Bcm1T bWNMaWJOdWxsL0FybVNtY0xpYk51bGwuYwpAQCAtMSwxNiArMSwxNiBAQAotLy8KLS8vICBDb3B5 cmlnaHQgKGMpIDIwMTYsIExpbmFybyBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8K LS8vICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudAotLy8KLS8v Ci0KLSNpbmNsdWRlIDxCYXNlLmg+Ci0jaW5jbHVkZSA8TGlicmFyeS9Bcm1TbWNMaWIuaD4KLQot Vk9JRAotQXJtQ2FsbFNtYyAoCi0gIElOIE9VVCBBUk1fU01DX0FSR1MgKkFyZ3MKLSAgKQotewot fQorLy8NCisvLyAgQ29weXJpZ2h0IChjKSAyMDE2LCBMaW5hcm8gTGltaXRlZC4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4NCisvLw0KKy8vICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KKy8vDQorLy8NCisNCisjaW5jbHVkZSA8QmFzZS5oPg0KKyNpbmNsdWRlIDxM aWJyYXJ5L0FybVNtY0xpYi5oPg0KKw0KK1ZPSUQNCitBcm1DYWxsU21jICgNCisgIElOIE9VVCBB Uk1fU01DX0FSR1MgKkFyZ3MNCisgICkNCit7DQorfQ0KZGlmZiAtLWdpdCBhL0FybVBrZy9MaWJy YXJ5L0FybVNvZnRGbG9hdExpYi9Bcm1Tb2Z0RmxvYXRMaWIuYyBiL0FybVBrZy9MaWJyYXJ5L0Fy bVNvZnRGbG9hdExpYi9Bcm1Tb2Z0RmxvYXRMaWIuYwppbmRleCA0MmJlZDc3MDBjOTkuLjc3ZTI0 NzM2NzhhMiAxMDA2NDQKLS0tIGEvQXJtUGtnL0xpYnJhcnkvQXJtU29mdEZsb2F0TGliL0FybVNv ZnRGbG9hdExpYi5jCisrKyBiL0FybVBrZy9MaWJyYXJ5L0FybVNvZnRGbG9hdExpYi9Bcm1Tb2Z0 RmxvYXRMaWIuYwpAQCAtMSwyODMgKzEsMjgzIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE1 IC0gMjAxOSwgTGluYXJvIExpbWl0ZWQKLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudAotICovCi0KLSNpbmNsdWRlICJwbGF0Zm9ybS5oIgotI2luY2x1 ZGUgPHNvZnRmbG9hdC5oPgotCi0vKgotICogT24gQVJNMzIgRUFCSSBkZWZpbmVzIGJvdGggYSBz b2Z0LWZsb2F0IEFCSSBhbmQgYSBoYXJkLWZsb2F0IEFCSSwKLSAqIGhhcmQtZmxvYXQgaXMgYmFz aWNhbGx5IGEgc3VwZXIgc2V0IG9mIHNvZnQtZmxvYXQuIEhhcmQtZmxvYXQgcmVxdWlyZXMKLSAq IGFsbCB0aGUgc3VwcG9ydCByb3V0aW5lcyBwcm92aWRlZCBmb3Igc29mdC1mbG9hdCwgYnV0IHRo ZSBjb21waWxlciBtYXkKLSAqIGNob29zZSB0byBvcHRpbWl6ZSB0byBub3QgdXNlIHNvbWUgb2Yg dGhlbS4KLSAqCi0gKiBUaGUgQUVBQkkgZnVuY3Rpb25zIHVzZXMgc29mdC1mbG9hdCBjYWxsaW5n IGNvbnZlbnRpb24gZXZlbiBpZiB0aGUKLSAqIGZ1bmN0aW9ucyBhcmUgY29tcGlsZWQgZm9yIGhh cmQtZmxvYXQuIFNvIHdoZXJlIGZsb2F0IGFuZCBkb3VibGUgd291bGQKLSAqIGhhdmUgYmVlbiBl eHBlY3RlZCB3ZSB1c2UgYWVhYmlfZmxvYXRfdCBhbmQgYWVhYmlfZG91YmxlX3QgcmVzcGVjdGl2 ZWx5Ci0gKiBpbnN0ZWFkLgotICovCi10eXBlZGVmIHVpbnQzMl90IGFlYWJpX2Zsb2F0X3Q7Ci10 eXBlZGVmIHVpbnQ2NF90IGFlYWJpX2RvdWJsZV90OwotCi0vKgotICogSGVscGVycyB0byBjb252 ZXJ0IGJldHdlZW4gZmxvYXQzMiBhbmQgYWVhYmlfZmxvYXRfdCwgYW5kIGZsb2F0NjQgYW5kCi0g KiBhZWFiaV9kb3VibGVfdCB1c2VkIGJ5IHRoZSBBRUFCSSBmdW5jdGlvbnMgYmVsb3cuCi0gKi8K LXN0YXRpYyBhZWFiaV9mbG9hdF90IGYzMl90b19mKGZsb2F0MzJfdCB2YWwpCi17Ci0JcmV0dXJu IHZhbC52OwotfQotCi1zdGF0aWMgZmxvYXQzMl90IGYzMl9mcm9tX2YoYWVhYmlfZmxvYXRfdCB2 YWwpCi17Ci0JZmxvYXQzMl90IHJlczsKLQotCXJlcy52ID0gdmFsOwotCi0JcmV0dXJuIHJlczsK LX0KLQotc3RhdGljIGFlYWJpX2RvdWJsZV90IGY2NF90b19kKGZsb2F0NjRfdCB2YWwpCi17Ci0J cmV0dXJuIHZhbC52OwotfQotCi1zdGF0aWMgZmxvYXQ2NF90IGY2NF9mcm9tX2QoYWVhYmlfZG91 YmxlX3QgdmFsKQotewotCWZsb2F0NjRfdCByZXM7Ci0KLQlyZXMudiA9IHZhbDsKLQotCXJldHVy biByZXM7Ci19Ci0KLS8qCi0gKiBGcm9tIEFSTSBSdW4tdGltZSBBQkkgZm9yIEFSTSBBcmNoaXRl Y3R1cmUKLSAqIEFSTSBJSEkgMDA0M0QsIGN1cnJlbnQgdGhyb3VnaCBBQkkgcmVsZWFzZSAyLjA5 Ci0gKgotICogNC4xLjIgVGhlIGZsb2F0aW5nLXBvaW50IGhlbHBlciBmdW5jdGlvbnMKLSAqLwot Ci0vKgotICogVGFibGUgMiwgU3RhbmRhcmQgYWVhYmlfZG91YmxlX3QgcHJlY2lzaW9uIGZsb2F0 aW5nLXBvaW50IGFyaXRobWV0aWMgaGVscGVyCi0gKiBmdW5jdGlvbnMKLSAqLwotCi1hZWFiaV9k b3VibGVfdCBfX2FlYWJpX2RhZGQoYWVhYmlfZG91YmxlX3QgYSwgYWVhYmlfZG91YmxlX3QgYikK LXsKLQlyZXR1cm4gZjY0X3RvX2QoZjY0X2FkZChmNjRfZnJvbV9kKGEpLCBmNjRfZnJvbV9kKGIp KSk7Ci19Ci0KLWFlYWJpX2RvdWJsZV90IF9fYWVhYmlfZGRpdihhZWFiaV9kb3VibGVfdCBhLCBh ZWFiaV9kb3VibGVfdCBiKQotewotCXJldHVybiBmNjRfdG9fZChmNjRfZGl2KGY2NF9mcm9tX2Qo YSksIGY2NF9mcm9tX2QoYikpKTsKLX0KLQotYWVhYmlfZG91YmxlX3QgX19hZWFiaV9kbXVsKGFl YWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpCi17Ci0JcmV0dXJuIGY2NF90b19kKGY2 NF9tdWwoZjY0X2Zyb21fZChhKSwgZjY0X2Zyb21fZChiKSkpOwotfQotCi0KLWFlYWJpX2RvdWJs ZV90IF9fYWVhYmlfZHJzdWIoYWVhYmlfZG91YmxlX3QgYSwgYWVhYmlfZG91YmxlX3QgYikKLXsK LQlyZXR1cm4gZjY0X3RvX2QoZjY0X3N1YihmNjRfZnJvbV9kKGIpLCBmNjRfZnJvbV9kKGEpKSk7 Ci19Ci0KLWFlYWJpX2RvdWJsZV90IF9fYWVhYmlfZHN1YihhZWFiaV9kb3VibGVfdCBhLCBhZWFi aV9kb3VibGVfdCBiKQotewotCXJldHVybiBmNjRfdG9fZChmNjRfc3ViKGY2NF9mcm9tX2QoYSks IGY2NF9mcm9tX2QoYikpKTsKLX0KLQotLyoKLSAqIFRhYmxlIDMsIGRvdWJsZSBwcmVjaXNpb24g ZmxvYXRpbmctcG9pbnQgY29tcGFyaXNvbiBoZWxwZXIgZnVuY3Rpb25zCi0gKi8KLQotaW50IF9f YWVhYmlfZGNtcGVxKGFlYWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpCi17Ci0JcmV0 dXJuIGY2NF9lcShmNjRfZnJvbV9kKGEpLCBmNjRfZnJvbV9kKGIpKTsKLX0KLQotaW50IF9fYWVh YmlfZGNtcGx0KGFlYWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpCi17Ci0JcmV0dXJu IGY2NF9sdChmNjRfZnJvbV9kKGEpLCBmNjRfZnJvbV9kKGIpKTsKLX0KLQotaW50IF9fYWVhYmlf ZGNtcGxlKGFlYWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpCi17Ci0JcmV0dXJuIGY2 NF9sZShmNjRfZnJvbV9kKGEpLCBmNjRfZnJvbV9kKGIpKTsKLX0KLQotaW50IF9fYWVhYmlfZGNt cGdlKGFlYWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpCi17Ci0JcmV0dXJuIGY2NF9s ZShmNjRfZnJvbV9kKGIpLCBmNjRfZnJvbV9kKGEpKTsKLX0KLQotaW50IF9fYWVhYmlfZGNtcGd0 KGFlYWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpCi17Ci0JcmV0dXJuIGY2NF9sdChm NjRfZnJvbV9kKGIpLCBmNjRfZnJvbV9kKGEpKTsKLX0KLQotLyoKLSAqIFRhYmxlIDQsIFN0YW5k YXJkIHNpbmdsZSBwcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYyBoZWxwZXIKLSAq IGZ1bmN0aW9ucwotICovCi0KLWFlYWJpX2Zsb2F0X3QgX19hZWFiaV9mYWRkKGFlYWJpX2Zsb2F0 X3QgYSwgYWVhYmlfZmxvYXRfdCBiKQotewotCXJldHVybiBmMzJfdG9fZihmMzJfYWRkKGYzMl9m cm9tX2YoYSksIGYzMl9mcm9tX2YoYikpKTsKLX0KLQotYWVhYmlfZmxvYXRfdCBfX2FlYWJpX2Zk aXYoYWVhYmlfZmxvYXRfdCBhLCBhZWFiaV9mbG9hdF90IGIpCi17Ci0JcmV0dXJuIGYzMl90b19m KGYzMl9kaXYoZjMyX2Zyb21fZihhKSwgZjMyX2Zyb21fZihiKSkpOwotfQotCi1hZWFiaV9mbG9h dF90IF9fYWVhYmlfZm11bChhZWFiaV9mbG9hdF90IGEsIGFlYWJpX2Zsb2F0X3QgYikKLXsKLQly ZXR1cm4gZjMyX3RvX2YoZjMyX211bChmMzJfZnJvbV9mKGEpLCBmMzJfZnJvbV9mKGIpKSk7Ci19 Ci0KLWFlYWJpX2Zsb2F0X3QgX19hZWFiaV9mcnN1YihhZWFiaV9mbG9hdF90IGEsIGFlYWJpX2Zs b2F0X3QgYikKLXsKLQlyZXR1cm4gZjMyX3RvX2YoZjMyX3N1YihmMzJfZnJvbV9mKGIpLCBmMzJf ZnJvbV9mKGEpKSk7Ci19Ci0KLWFlYWJpX2Zsb2F0X3QgX19hZWFiaV9mc3ViKGFlYWJpX2Zsb2F0 X3QgYSwgYWVhYmlfZmxvYXRfdCBiKQotewotCXJldHVybiBmMzJfdG9fZihmMzJfc3ViKGYzMl9m cm9tX2YoYSksIGYzMl9mcm9tX2YoYikpKTsKLX0KLQotLyoKLSAqIFRhYmxlIDUsIFN0YW5kYXJk IHNpbmdsZSBwcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgY29tcGFyaXNvbiBoZWxwZXIKLSAqIGZ1 bmN0aW9ucwotICovCi0KLWludCBfX2FlYWJpX2ZjbXBlcShhZWFiaV9mbG9hdF90IGEsIGFlYWJp X2Zsb2F0X3QgYikKLXsKLQlyZXR1cm4gZjMyX2VxKGYzMl9mcm9tX2YoYSksIGYzMl9mcm9tX2Yo YikpOwotfQotCi1pbnQgX19hZWFiaV9mY21wbHQoYWVhYmlfZmxvYXRfdCBhLCBhZWFiaV9mbG9h dF90IGIpCi17Ci0JcmV0dXJuIGYzMl9sdChmMzJfZnJvbV9mKGEpLCBmMzJfZnJvbV9mKGIpKTsK LX0KLQotaW50IF9fYWVhYmlfZmNtcGxlKGFlYWJpX2Zsb2F0X3QgYSwgYWVhYmlfZmxvYXRfdCBi KQotewotCXJldHVybiBmMzJfbGUoZjMyX2Zyb21fZihhKSwgZjMyX2Zyb21fZihiKSk7Ci19Ci0K LWludCBfX2FlYWJpX2ZjbXBnZShhZWFiaV9mbG9hdF90IGEsIGFlYWJpX2Zsb2F0X3QgYikKLXsK LQlyZXR1cm4gZjMyX2xlKGYzMl9mcm9tX2YoYiksIGYzMl9mcm9tX2YoYSkpOwotfQotCi1pbnQg X19hZWFiaV9mY21wZ3QoYWVhYmlfZmxvYXRfdCBhLCBhZWFiaV9mbG9hdF90IGIpCi17Ci0JcmV0 dXJuIGYzMl9sdChmMzJfZnJvbV9mKGIpLCBmMzJfZnJvbV9mKGEpKTsKLX0KLQotLyoKLSAqIFRh YmxlIDYsIFN0YW5kYXJkIGZsb2F0aW5nLXBvaW50IHRvIGludGVnZXIgY29udmVyc2lvbnMKLSAq LwotCi1pbnQgX19hZWFiaV9kMml6KGFlYWJpX2RvdWJsZV90IGEpCi17Ci0JcmV0dXJuIGY2NF90 b19pMzJfcl9taW5NYWcoZjY0X2Zyb21fZChhKSwgZmFsc2UpOwotfQotCi11bnNpZ25lZCBfX2Fl YWJpX2QydWl6KGFlYWJpX2RvdWJsZV90IGEpCi17Ci0JcmV0dXJuIGY2NF90b191aTMyX3JfbWlu TWFnKGY2NF9mcm9tX2QoYSksIGZhbHNlKTsKLX0KLQotbG9uZyBsb25nIF9fYWVhYmlfZDJseihh ZWFiaV9kb3VibGVfdCBhKQotewotCXJldHVybiBmNjRfdG9faTY0X3JfbWluTWFnKGY2NF9mcm9t X2QoYSksIGZhbHNlKTsKLX0KLQotdW5zaWduZWQgbG9uZyBsb25nIF9fYWVhYmlfZDJ1bHooYWVh YmlfZG91YmxlX3QgYSkKLXsKLQlyZXR1cm4gZjY0X3RvX3VpNjRfcl9taW5NYWcoZjY0X2Zyb21f ZChhKSwgZmFsc2UpOwotfQotCi1pbnQgX19hZWFiaV9mMml6KGFlYWJpX2Zsb2F0X3QgYSkKLXsK LQlyZXR1cm4gZjMyX3RvX2kzMl9yX21pbk1hZyhmMzJfZnJvbV9mKGEpLCBmYWxzZSk7Ci19Ci0K LXVuc2lnbmVkIF9fYWVhYmlfZjJ1aXooYWVhYmlfZmxvYXRfdCBhKQotewotCXJldHVybiBmMzJf dG9fdWkzMl9yX21pbk1hZyhmMzJfZnJvbV9mKGEpLCBmYWxzZSk7Ci19Ci0KLWxvbmcgbG9uZyBf X2FlYWJpX2YybHooYWVhYmlfZmxvYXRfdCBhKQotewotCXJldHVybiBmMzJfdG9faTY0X3JfbWlu TWFnKGYzMl9mcm9tX2YoYSksIGZhbHNlKTsKLX0KLQotdW5zaWduZWQgbG9uZyBsb25nIF9fYWVh YmlfZjJ1bHooYWVhYmlfZmxvYXRfdCBhKQotewotCXJldHVybiBmMzJfdG9fdWk2NF9yX21pbk1h ZyhmMzJfZnJvbV9mKGEpLCBmYWxzZSk7Ci19Ci0KLS8qCi0gKiBUYWJsZSA3LCBTdGFuZGFyZCBj b252ZXJzaW9ucyBiZXR3ZWVuIGZsb2F0aW5nIHR5cGVzCi0gKi8KLQotYWVhYmlfZmxvYXRfdCBf X2FlYWJpX2QyZihhZWFiaV9kb3VibGVfdCBhKQotewotCXJldHVybiBmMzJfdG9fZihmNjRfdG9f ZjMyKGY2NF9mcm9tX2QoYSkpKTsKLX0KLQotYWVhYmlfZG91YmxlX3QgX19hZWFiaV9mMmQoYWVh YmlfZmxvYXRfdCBhKQotewotCXJldHVybiBmNjRfdG9fZChmMzJfdG9fZjY0KGYzMl9mcm9tX2Yo YSkpKTsKLX0KLQotLyoKLSAqIFRhYmxlIDgsIFN0YW5kYXJkIGludGVnZXIgdG8gZmxvYXRpbmct cG9pbnQgY29udmVyc2lvbnMKLSAqLwotCi1hZWFiaV9kb3VibGVfdCBfX2FlYWJpX2kyZChpbnQg YSkKLXsKLQlyZXR1cm4gZjY0X3RvX2QoaTMyX3RvX2Y2NChhKSk7Ci19Ci0KLWFlYWJpX2RvdWJs ZV90IF9fYWVhYmlfdWkyZCh1bnNpZ25lZCBhKQotewotCXJldHVybiBmNjRfdG9fZCh1aTMyX3Rv X2Y2NChhKSk7Ci19Ci0KLWFlYWJpX2RvdWJsZV90IF9fYWVhYmlfbDJkKGxvbmcgbG9uZyBhKQot ewotCXJldHVybiBmNjRfdG9fZChpNjRfdG9fZjY0KGEpKTsKLX0KLQotYWVhYmlfZG91YmxlX3Qg X19hZWFiaV91bDJkKHVuc2lnbmVkIGxvbmcgbG9uZyBhKQotewotCXJldHVybiBmNjRfdG9fZCh1 aTY0X3RvX2Y2NChhKSk7Ci19Ci0KLWFlYWJpX2Zsb2F0X3QgX19hZWFiaV9pMmYoaW50IGEpCi17 Ci0JcmV0dXJuIGYzMl90b19mKGkzMl90b19mMzIoYSkpOwotfQotCi1hZWFiaV9mbG9hdF90IF9f YWVhYmlfdWkyZih1bnNpZ25lZCBhKQotewotCXJldHVybiBmMzJfdG9fZih1aTMyX3RvX2YzMihh KSk7Ci19Ci0KLWFlYWJpX2Zsb2F0X3QgX19hZWFiaV9sMmYobG9uZyBsb25nIGEpCi17Ci0JcmV0 dXJuIGYzMl90b19mKGk2NF90b19mMzIoYSkpOwotfQotCi1hZWFiaV9mbG9hdF90IF9fYWVhYmlf dWwyZih1bnNpZ25lZCBsb25nIGxvbmcgYSkKLXsKLQlyZXR1cm4gZjMyX3RvX2YodWk2NF90b19m MzIoYSkpOwotfQorLyoNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgLSAyMDE5LCBMaW5hcm8gTGlt aXRlZA0KKyAqDQorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCisgKi8NCisNCisjaW5jbHVkZSAicGxhdGZvcm0uaCINCisjaW5jbHVkZSA8c29mdGZsb2F0 Lmg+DQorDQorLyoNCisgKiBPbiBBUk0zMiBFQUJJIGRlZmluZXMgYm90aCBhIHNvZnQtZmxvYXQg QUJJIGFuZCBhIGhhcmQtZmxvYXQgQUJJLA0KKyAqIGhhcmQtZmxvYXQgaXMgYmFzaWNhbGx5IGEg c3VwZXIgc2V0IG9mIHNvZnQtZmxvYXQuIEhhcmQtZmxvYXQgcmVxdWlyZXMNCisgKiBhbGwgdGhl IHN1cHBvcnQgcm91dGluZXMgcHJvdmlkZWQgZm9yIHNvZnQtZmxvYXQsIGJ1dCB0aGUgY29tcGls ZXIgbWF5DQorICogY2hvb3NlIHRvIG9wdGltaXplIHRvIG5vdCB1c2Ugc29tZSBvZiB0aGVtLg0K KyAqDQorICogVGhlIEFFQUJJIGZ1bmN0aW9ucyB1c2VzIHNvZnQtZmxvYXQgY2FsbGluZyBjb252 ZW50aW9uIGV2ZW4gaWYgdGhlDQorICogZnVuY3Rpb25zIGFyZSBjb21waWxlZCBmb3IgaGFyZC1m bG9hdC4gU28gd2hlcmUgZmxvYXQgYW5kIGRvdWJsZSB3b3VsZA0KKyAqIGhhdmUgYmVlbiBleHBl Y3RlZCB3ZSB1c2UgYWVhYmlfZmxvYXRfdCBhbmQgYWVhYmlfZG91YmxlX3QgcmVzcGVjdGl2ZWx5 DQorICogaW5zdGVhZC4NCisgKi8NCit0eXBlZGVmIHVpbnQzMl90IGFlYWJpX2Zsb2F0X3Q7DQor dHlwZWRlZiB1aW50NjRfdCBhZWFiaV9kb3VibGVfdDsNCisNCisvKg0KKyAqIEhlbHBlcnMgdG8g Y29udmVydCBiZXR3ZWVuIGZsb2F0MzIgYW5kIGFlYWJpX2Zsb2F0X3QsIGFuZCBmbG9hdDY0IGFu ZA0KKyAqIGFlYWJpX2RvdWJsZV90IHVzZWQgYnkgdGhlIEFFQUJJIGZ1bmN0aW9ucyBiZWxvdy4N CisgKi8NCitzdGF0aWMgYWVhYmlfZmxvYXRfdCBmMzJfdG9fZihmbG9hdDMyX3QgdmFsKQ0KK3sN CisgIHJldHVybiB2YWwudjsNCit9DQorDQorc3RhdGljIGZsb2F0MzJfdCBmMzJfZnJvbV9mKGFl YWJpX2Zsb2F0X3QgdmFsKQ0KK3sNCisgIGZsb2F0MzJfdCByZXM7DQorDQorICByZXMudiA9IHZh bDsNCisNCisgIHJldHVybiByZXM7DQorfQ0KKw0KK3N0YXRpYyBhZWFiaV9kb3VibGVfdCBmNjRf dG9fZChmbG9hdDY0X3QgdmFsKQ0KK3sNCisgIHJldHVybiB2YWwudjsNCit9DQorDQorc3RhdGlj IGZsb2F0NjRfdCBmNjRfZnJvbV9kKGFlYWJpX2RvdWJsZV90IHZhbCkNCit7DQorICBmbG9hdDY0 X3QgcmVzOw0KKw0KKyAgcmVzLnYgPSB2YWw7DQorDQorICByZXR1cm4gcmVzOw0KK30NCisNCisv Kg0KKyAqIEZyb20gQVJNIFJ1bi10aW1lIEFCSSBmb3IgQVJNIEFyY2hpdGVjdHVyZQ0KKyAqIEFS TSBJSEkgMDA0M0QsIGN1cnJlbnQgdGhyb3VnaCBBQkkgcmVsZWFzZSAyLjA5DQorICoNCisgKiA0 LjEuMiBUaGUgZmxvYXRpbmctcG9pbnQgaGVscGVyIGZ1bmN0aW9ucw0KKyAqLw0KKw0KKy8qDQor ICogVGFibGUgMiwgU3RhbmRhcmQgYWVhYmlfZG91YmxlX3QgcHJlY2lzaW9uIGZsb2F0aW5nLXBv aW50IGFyaXRobWV0aWMgaGVscGVyDQorICogZnVuY3Rpb25zDQorICovDQorDQorYWVhYmlfZG91 YmxlX3QgX19hZWFiaV9kYWRkKGFlYWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpDQor ew0KKyAgcmV0dXJuIGY2NF90b19kKGY2NF9hZGQoZjY0X2Zyb21fZChhKSwgZjY0X2Zyb21fZChi KSkpOw0KK30NCisNCithZWFiaV9kb3VibGVfdCBfX2FlYWJpX2RkaXYoYWVhYmlfZG91YmxlX3Qg YSwgYWVhYmlfZG91YmxlX3QgYikNCit7DQorICByZXR1cm4gZjY0X3RvX2QoZjY0X2RpdihmNjRf ZnJvbV9kKGEpLCBmNjRfZnJvbV9kKGIpKSk7DQorfQ0KKw0KK2FlYWJpX2RvdWJsZV90IF9fYWVh YmlfZG11bChhZWFiaV9kb3VibGVfdCBhLCBhZWFiaV9kb3VibGVfdCBiKQ0KK3sNCisgIHJldHVy biBmNjRfdG9fZChmNjRfbXVsKGY2NF9mcm9tX2QoYSksIGY2NF9mcm9tX2QoYikpKTsNCit9DQor DQorDQorYWVhYmlfZG91YmxlX3QgX19hZWFiaV9kcnN1YihhZWFiaV9kb3VibGVfdCBhLCBhZWFi aV9kb3VibGVfdCBiKQ0KK3sNCisgIHJldHVybiBmNjRfdG9fZChmNjRfc3ViKGY2NF9mcm9tX2Qo YiksIGY2NF9mcm9tX2QoYSkpKTsNCit9DQorDQorYWVhYmlfZG91YmxlX3QgX19hZWFiaV9kc3Vi KGFlYWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpDQorew0KKyAgcmV0dXJuIGY2NF90 b19kKGY2NF9zdWIoZjY0X2Zyb21fZChhKSwgZjY0X2Zyb21fZChiKSkpOw0KK30NCisNCisvKg0K KyAqIFRhYmxlIDMsIGRvdWJsZSBwcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgY29tcGFyaXNvbiBo ZWxwZXIgZnVuY3Rpb25zDQorICovDQorDQoraW50IF9fYWVhYmlfZGNtcGVxKGFlYWJpX2RvdWJs ZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpDQorew0KKyAgcmV0dXJuIGY2NF9lcShmNjRfZnJvbV9k KGEpLCBmNjRfZnJvbV9kKGIpKTsNCit9DQorDQoraW50IF9fYWVhYmlfZGNtcGx0KGFlYWJpX2Rv dWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpDQorew0KKyAgcmV0dXJuIGY2NF9sdChmNjRfZnJv bV9kKGEpLCBmNjRfZnJvbV9kKGIpKTsNCit9DQorDQoraW50IF9fYWVhYmlfZGNtcGxlKGFlYWJp X2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpDQorew0KKyAgcmV0dXJuIGY2NF9sZShmNjRf ZnJvbV9kKGEpLCBmNjRfZnJvbV9kKGIpKTsNCit9DQorDQoraW50IF9fYWVhYmlfZGNtcGdlKGFl YWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpDQorew0KKyAgcmV0dXJuIGY2NF9sZShm NjRfZnJvbV9kKGIpLCBmNjRfZnJvbV9kKGEpKTsNCit9DQorDQoraW50IF9fYWVhYmlfZGNtcGd0 KGFlYWJpX2RvdWJsZV90IGEsIGFlYWJpX2RvdWJsZV90IGIpDQorew0KKyAgcmV0dXJuIGY2NF9s dChmNjRfZnJvbV9kKGIpLCBmNjRfZnJvbV9kKGEpKTsNCit9DQorDQorLyoNCisgKiBUYWJsZSA0 LCBTdGFuZGFyZCBzaW5nbGUgcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMgaGVs cGVyDQorICogZnVuY3Rpb25zDQorICovDQorDQorYWVhYmlfZmxvYXRfdCBfX2FlYWJpX2ZhZGQo YWVhYmlfZmxvYXRfdCBhLCBhZWFiaV9mbG9hdF90IGIpDQorew0KKyAgcmV0dXJuIGYzMl90b19m KGYzMl9hZGQoZjMyX2Zyb21fZihhKSwgZjMyX2Zyb21fZihiKSkpOw0KK30NCisNCithZWFiaV9m bG9hdF90IF9fYWVhYmlfZmRpdihhZWFiaV9mbG9hdF90IGEsIGFlYWJpX2Zsb2F0X3QgYikNCit7 DQorICByZXR1cm4gZjMyX3RvX2YoZjMyX2RpdihmMzJfZnJvbV9mKGEpLCBmMzJfZnJvbV9mKGIp KSk7DQorfQ0KKw0KK2FlYWJpX2Zsb2F0X3QgX19hZWFiaV9mbXVsKGFlYWJpX2Zsb2F0X3QgYSwg YWVhYmlfZmxvYXRfdCBiKQ0KK3sNCisgIHJldHVybiBmMzJfdG9fZihmMzJfbXVsKGYzMl9mcm9t X2YoYSksIGYzMl9mcm9tX2YoYikpKTsNCit9DQorDQorYWVhYmlfZmxvYXRfdCBfX2FlYWJpX2Zy c3ViKGFlYWJpX2Zsb2F0X3QgYSwgYWVhYmlfZmxvYXRfdCBiKQ0KK3sNCisgIHJldHVybiBmMzJf dG9fZihmMzJfc3ViKGYzMl9mcm9tX2YoYiksIGYzMl9mcm9tX2YoYSkpKTsNCit9DQorDQorYWVh YmlfZmxvYXRfdCBfX2FlYWJpX2ZzdWIoYWVhYmlfZmxvYXRfdCBhLCBhZWFiaV9mbG9hdF90IGIp DQorew0KKyAgcmV0dXJuIGYzMl90b19mKGYzMl9zdWIoZjMyX2Zyb21fZihhKSwgZjMyX2Zyb21f ZihiKSkpOw0KK30NCisNCisvKg0KKyAqIFRhYmxlIDUsIFN0YW5kYXJkIHNpbmdsZSBwcmVjaXNp b24gZmxvYXRpbmctcG9pbnQgY29tcGFyaXNvbiBoZWxwZXINCisgKiBmdW5jdGlvbnMNCisgKi8N CisNCitpbnQgX19hZWFiaV9mY21wZXEoYWVhYmlfZmxvYXRfdCBhLCBhZWFiaV9mbG9hdF90IGIp DQorew0KKyAgcmV0dXJuIGYzMl9lcShmMzJfZnJvbV9mKGEpLCBmMzJfZnJvbV9mKGIpKTsNCit9 DQorDQoraW50IF9fYWVhYmlfZmNtcGx0KGFlYWJpX2Zsb2F0X3QgYSwgYWVhYmlfZmxvYXRfdCBi KQ0KK3sNCisgIHJldHVybiBmMzJfbHQoZjMyX2Zyb21fZihhKSwgZjMyX2Zyb21fZihiKSk7DQor fQ0KKw0KK2ludCBfX2FlYWJpX2ZjbXBsZShhZWFiaV9mbG9hdF90IGEsIGFlYWJpX2Zsb2F0X3Qg YikNCit7DQorICByZXR1cm4gZjMyX2xlKGYzMl9mcm9tX2YoYSksIGYzMl9mcm9tX2YoYikpOw0K K30NCisNCitpbnQgX19hZWFiaV9mY21wZ2UoYWVhYmlfZmxvYXRfdCBhLCBhZWFiaV9mbG9hdF90 IGIpDQorew0KKyAgcmV0dXJuIGYzMl9sZShmMzJfZnJvbV9mKGIpLCBmMzJfZnJvbV9mKGEpKTsN Cit9DQorDQoraW50IF9fYWVhYmlfZmNtcGd0KGFlYWJpX2Zsb2F0X3QgYSwgYWVhYmlfZmxvYXRf dCBiKQ0KK3sNCisgIHJldHVybiBmMzJfbHQoZjMyX2Zyb21fZihiKSwgZjMyX2Zyb21fZihhKSk7 DQorfQ0KKw0KKy8qDQorICogVGFibGUgNiwgU3RhbmRhcmQgZmxvYXRpbmctcG9pbnQgdG8gaW50 ZWdlciBjb252ZXJzaW9ucw0KKyAqLw0KKw0KK2ludCBfX2FlYWJpX2QyaXooYWVhYmlfZG91Ymxl X3QgYSkNCit7DQorICByZXR1cm4gZjY0X3RvX2kzMl9yX21pbk1hZyhmNjRfZnJvbV9kKGEpLCBm YWxzZSk7DQorfQ0KKw0KK3Vuc2lnbmVkIF9fYWVhYmlfZDJ1aXooYWVhYmlfZG91YmxlX3QgYSkN Cit7DQorICByZXR1cm4gZjY0X3RvX3VpMzJfcl9taW5NYWcoZjY0X2Zyb21fZChhKSwgZmFsc2Up Ow0KK30NCisNCitsb25nIGxvbmcgX19hZWFiaV9kMmx6KGFlYWJpX2RvdWJsZV90IGEpDQorew0K KyAgcmV0dXJuIGY2NF90b19pNjRfcl9taW5NYWcoZjY0X2Zyb21fZChhKSwgZmFsc2UpOw0KK30N CisNCit1bnNpZ25lZCBsb25nIGxvbmcgX19hZWFiaV9kMnVseihhZWFiaV9kb3VibGVfdCBhKQ0K K3sNCisgIHJldHVybiBmNjRfdG9fdWk2NF9yX21pbk1hZyhmNjRfZnJvbV9kKGEpLCBmYWxzZSk7 DQorfQ0KKw0KK2ludCBfX2FlYWJpX2YyaXooYWVhYmlfZmxvYXRfdCBhKQ0KK3sNCisgIHJldHVy biBmMzJfdG9faTMyX3JfbWluTWFnKGYzMl9mcm9tX2YoYSksIGZhbHNlKTsNCit9DQorDQordW5z aWduZWQgX19hZWFiaV9mMnVpeihhZWFiaV9mbG9hdF90IGEpDQorew0KKyAgcmV0dXJuIGYzMl90 b191aTMyX3JfbWluTWFnKGYzMl9mcm9tX2YoYSksIGZhbHNlKTsNCit9DQorDQorbG9uZyBsb25n IF9fYWVhYmlfZjJseihhZWFiaV9mbG9hdF90IGEpDQorew0KKyAgcmV0dXJuIGYzMl90b19pNjRf cl9taW5NYWcoZjMyX2Zyb21fZihhKSwgZmFsc2UpOw0KK30NCisNCit1bnNpZ25lZCBsb25nIGxv bmcgX19hZWFiaV9mMnVseihhZWFiaV9mbG9hdF90IGEpDQorew0KKyAgcmV0dXJuIGYzMl90b191 aTY0X3JfbWluTWFnKGYzMl9mcm9tX2YoYSksIGZhbHNlKTsNCit9DQorDQorLyoNCisgKiBUYWJs ZSA3LCBTdGFuZGFyZCBjb252ZXJzaW9ucyBiZXR3ZWVuIGZsb2F0aW5nIHR5cGVzDQorICovDQor DQorYWVhYmlfZmxvYXRfdCBfX2FlYWJpX2QyZihhZWFiaV9kb3VibGVfdCBhKQ0KK3sNCisgIHJl dHVybiBmMzJfdG9fZihmNjRfdG9fZjMyKGY2NF9mcm9tX2QoYSkpKTsNCit9DQorDQorYWVhYmlf ZG91YmxlX3QgX19hZWFiaV9mMmQoYWVhYmlfZmxvYXRfdCBhKQ0KK3sNCisgIHJldHVybiBmNjRf dG9fZChmMzJfdG9fZjY0KGYzMl9mcm9tX2YoYSkpKTsNCit9DQorDQorLyoNCisgKiBUYWJsZSA4 LCBTdGFuZGFyZCBpbnRlZ2VyIHRvIGZsb2F0aW5nLXBvaW50IGNvbnZlcnNpb25zDQorICovDQor DQorYWVhYmlfZG91YmxlX3QgX19hZWFiaV9pMmQoaW50IGEpDQorew0KKyAgcmV0dXJuIGY2NF90 b19kKGkzMl90b19mNjQoYSkpOw0KK30NCisNCithZWFiaV9kb3VibGVfdCBfX2FlYWJpX3VpMmQo dW5zaWduZWQgYSkNCit7DQorICByZXR1cm4gZjY0X3RvX2QodWkzMl90b19mNjQoYSkpOw0KK30N CisNCithZWFiaV9kb3VibGVfdCBfX2FlYWJpX2wyZChsb25nIGxvbmcgYSkNCit7DQorICByZXR1 cm4gZjY0X3RvX2QoaTY0X3RvX2Y2NChhKSk7DQorfQ0KKw0KK2FlYWJpX2RvdWJsZV90IF9fYWVh YmlfdWwyZCh1bnNpZ25lZCBsb25nIGxvbmcgYSkNCit7DQorICByZXR1cm4gZjY0X3RvX2QodWk2 NF90b19mNjQoYSkpOw0KK30NCisNCithZWFiaV9mbG9hdF90IF9fYWVhYmlfaTJmKGludCBhKQ0K K3sNCisgIHJldHVybiBmMzJfdG9fZihpMzJfdG9fZjMyKGEpKTsNCit9DQorDQorYWVhYmlfZmxv YXRfdCBfX2FlYWJpX3VpMmYodW5zaWduZWQgYSkNCit7DQorICByZXR1cm4gZjMyX3RvX2YodWkz Ml90b19mMzIoYSkpOw0KK30NCisNCithZWFiaV9mbG9hdF90IF9fYWVhYmlfbDJmKGxvbmcgbG9u ZyBhKQ0KK3sNCisgIHJldHVybiBmMzJfdG9fZihpNjRfdG9fZjMyKGEpKTsNCit9DQorDQorYWVh YmlfZmxvYXRfdCBfX2FlYWJpX3VsMmYodW5zaWduZWQgbG9uZyBsb25nIGEpDQorew0KKyAgcmV0 dXJuIGYzMl90b19mKHVpNjRfdG9fZjMyKGEpKTsNCit9DQpkaWZmIC0tZ2l0IGEvQXJtUGtnL0xp YnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL21lbXNldC5jIGIvQXJtUGtnL0xpYnJhcnkvQ29t cGlsZXJJbnRyaW5zaWNzTGliL21lbXNldC5jCmluZGV4IGM1YWUzMmU1ZWU3MS4uMjQzOThkNTkx Zjc5IDEwMDY0NAotLS0gYS9Bcm1Qa2cvTGlicmFyeS9Db21waWxlckludHJpbnNpY3NMaWIvbWVt c2V0LmMKKysrIGIvQXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL21lbXNldC5j CkBAIC0xLDU1ICsxLDU1IEBACi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8KLS8vIENvcHly aWdodCAoYykgMjAxNiwgTGluYXJvIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+Ci0vLwot Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQKLS8vCi0vLy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotCi10eXBlZGVmIF9fU0laRV9UWVBFX18gc2l6ZV90OwotCi1z dGF0aWMgX19hdHRyaWJ1dGVfXygoX191c2VkX18pKQotdm9pZCAqX19tZW1zZXQodm9pZCAqcywg aW50IGMsIHNpemVfdCBuKQotewotICB1bnNpZ25lZCBjaGFyICpkID0gczsKLQotICB3aGlsZSAo bi0tKQotICAgICpkKysgPSBjOwotCi0gIHJldHVybiBzOwotfQotCi0vLwotLy8gT3RoZXIgbW9k dWxlcyAoc3VjaCBhcyBDcnlwdG9Qa2cvSW50cmluc2ljTGliKSBtYXkgcHJvdmlkZSBhbm90aGVy Ci0vLyBpbXBsZW1lbnRhdGlvbiBvZiBtZW1zZXQoKSwgd2hpY2ggbWF5IGNvbmZsaWN0IHdpdGgg dGhpcyBvbmUgaWYgdGhpcwotLy8gb2JqZWN0IHdhcyBwdWxsZWQgaW50byB0aGUgbGluayBkdWUg dG8gdGhlIGRlZmluaXRpb25zIGJlbG93LiBTbyBtYWtlCi0vLyBvdXIgbWVtc2V0KCkgJ3dlYWsn IHRvIGxldCB0aGUgb3RoZXIgaW1wbGVtZW50YXRpb24gdGFrZSBwcmVjZWRlbmNlLgotLy8KLV9f YXR0cmlidXRlX18oKF9fd2Vha19fLCBfX2FsaWFzX18oIl9fbWVtc2V0IikpKQotdm9pZCAqbWVt c2V0KHZvaWQgKmRlc3QsIGludCBjLCBzaXplX3Qgbik7Ci0KLSNpZmRlZiBfX2FybV9fCi0KLXZv aWQgX19hZWFiaV9tZW1zZXQodm9pZCAqZGVzdCwgc2l6ZV90IG4sIGludCBjKQotewotICBfX21l bXNldChkZXN0LCBjLCBuKTsKLX0KLQotX19hdHRyaWJ1dGVfXygoX19hbGlhc19fKCJfX2FlYWJp X21lbXNldCIpKSkKLXZvaWQgX19hZWFiaV9tZW1zZXQ0KHZvaWQgKmRlc3QsIHNpemVfdCBuLCBp bnQgYyk7Ci0KLV9fYXR0cmlidXRlX18oKF9fYWxpYXNfXygiX19hZWFiaV9tZW1zZXQiKSkpCi12 b2lkIF9fYWVhYmlfbWVtc2V0OCh2b2lkICpkZXN0LCBzaXplX3QgbiwgaW50IGMpOwotCi12b2lk IF9fYWVhYmlfbWVtY2xyKHZvaWQgKmRlc3QsIHNpemVfdCBuKQotewotICBfX21lbXNldChkZXN0 LCAwLCBuKTsKLX0KLQotX19hdHRyaWJ1dGVfXygoX19hbGlhc19fKCJfX2FlYWJpX21lbWNsciIp KSkKLXZvaWQgX19hZWFiaV9tZW1jbHI0KHZvaWQgKmRlc3QsIHNpemVfdCBuKTsKLQotX19hdHRy aWJ1dGVfXygoX19hbGlhc19fKCJfX2FlYWJpX21lbWNsciIpKSkKLXZvaWQgX19hZWFiaV9tZW1j bHI4KHZvaWQgKmRlc3QsIHNpemVfdCBuKTsKLQotI2VuZGlmCisvLy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KKy8vDQorLy8gQ29weXJpZ2h0IChjKSAyMDE2LCBMaW5hcm8gTHRkLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCisvLw0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQorLy8NCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KK3R5cGVkZWYg X19TSVpFX1RZUEVfXyBzaXplX3Q7DQorDQorc3RhdGljIF9fYXR0cmlidXRlX18oKF9fdXNlZF9f KSkNCit2b2lkICpfX21lbXNldCh2b2lkICpzLCBpbnQgYywgc2l6ZV90IG4pDQorew0KKyAgdW5z aWduZWQgY2hhciAqZCA9IHM7DQorDQorICB3aGlsZSAobi0tKQ0KKyAgICAqZCsrID0gYzsNCisN CisgIHJldHVybiBzOw0KK30NCisNCisvLw0KKy8vIE90aGVyIG1vZHVsZXMgKHN1Y2ggYXMgQ3J5 cHRvUGtnL0ludHJpbnNpY0xpYikgbWF5IHByb3ZpZGUgYW5vdGhlcg0KKy8vIGltcGxlbWVudGF0 aW9uIG9mIG1lbXNldCgpLCB3aGljaCBtYXkgY29uZmxpY3Qgd2l0aCB0aGlzIG9uZSBpZiB0aGlz DQorLy8gb2JqZWN0IHdhcyBwdWxsZWQgaW50byB0aGUgbGluayBkdWUgdG8gdGhlIGRlZmluaXRp b25zIGJlbG93LiBTbyBtYWtlDQorLy8gb3VyIG1lbXNldCgpICd3ZWFrJyB0byBsZXQgdGhlIG90 aGVyIGltcGxlbWVudGF0aW9uIHRha2UgcHJlY2VkZW5jZS4NCisvLw0KK19fYXR0cmlidXRlX18o KF9fd2Vha19fLCBfX2FsaWFzX18oIl9fbWVtc2V0IikpKQ0KK3ZvaWQgKm1lbXNldCh2b2lkICpk ZXN0LCBpbnQgYywgc2l6ZV90IG4pOw0KKw0KKyNpZmRlZiBfX2FybV9fDQorDQordm9pZCBfX2Fl YWJpX21lbXNldCh2b2lkICpkZXN0LCBzaXplX3QgbiwgaW50IGMpDQorew0KKyAgX19tZW1zZXQo ZGVzdCwgYywgbik7DQorfQ0KKw0KK19fYXR0cmlidXRlX18oKF9fYWxpYXNfXygiX19hZWFiaV9t ZW1zZXQiKSkpDQordm9pZCBfX2FlYWJpX21lbXNldDQodm9pZCAqZGVzdCwgc2l6ZV90IG4sIGlu dCBjKTsNCisNCitfX2F0dHJpYnV0ZV9fKChfX2FsaWFzX18oIl9fYWVhYmlfbWVtc2V0IikpKQ0K K3ZvaWQgX19hZWFiaV9tZW1zZXQ4KHZvaWQgKmRlc3QsIHNpemVfdCBuLCBpbnQgYyk7DQorDQor dm9pZCBfX2FlYWJpX21lbWNscih2b2lkICpkZXN0LCBzaXplX3QgbikNCit7DQorICBfX21lbXNl dChkZXN0LCAwLCBuKTsNCit9DQorDQorX19hdHRyaWJ1dGVfXygoX19hbGlhc19fKCJfX2FlYWJp X21lbWNsciIpKSkNCit2b2lkIF9fYWVhYmlfbWVtY2xyNCh2b2lkICpkZXN0LCBzaXplX3Qgbik7 DQorDQorX19hdHRyaWJ1dGVfXygoX19hbGlhc19fKCJfX2FlYWJpX21lbWNsciIpKSkNCit2b2lk IF9fYWVhYmlfbWVtY2xyOCh2b2lkICpkZXN0LCBzaXplX3Qgbik7DQorDQorI2VuZGlmDQpkaWZm IC0tZ2l0IGEvQXJtUGtnL0xpYnJhcnkvR2NjTHRvL2xpYmx0by1hYXJjaDY0LnMgYi9Bcm1Qa2cv TGlicmFyeS9HY2NMdG8vbGlibHRvLWFhcmNoNjQucwppbmRleCA2NjgxOTUzNGEwNDUuLjAyYTU1 ZWY0NDU2YyAxMDA2NDQKLS0tIGEvQXJtUGtnL0xpYnJhcnkvR2NjTHRvL2xpYmx0by1hYXJjaDY0 LnMKKysrIGIvQXJtUGtnL0xpYnJhcnkvR2NjTHRvL2xpYmx0by1hYXJjaDY0LnMKQEAgLTEsMjEg KzEsMjEgQEAKLS8vCi0vLyBDb3B5cmlnaHQgKGMpIDIwMTYsIExpbmFybyBMdGQuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPgotLy8KLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50Ci0vLwotCi0vLwotLy8gR0NDIGluIExUTyBtb2RlIGludGVyb3BlcmF0ZXMg cG9vcmx5IHdpdGggbm9uLXN0YW5kYXJkIGxpYnJhcmllcyB0aGF0Ci0vLyBwcm92aWRlIGltcGxl bWVudGF0aW9ucyBvZiBjb21waWxlciBpbnRyaW5zaWNzIHN1Y2ggYXMgbWVtY3B5L21lbXNldAot Ly8gb3IgdGhlIHN0YWNrIHByb3RlY3RvciBlbnRyeSBwb2ludHMuCi0vLwotLy8gQnkgcmVmZXJl bmNpbmcgdGhlc2UgZnVuY3Rpb25zIGZyb20gYSBub24tTFRPIG9iamVjdCB0aGF0IGNhbiBiZSBw YXNzZWQKLS8vIHRvIHRoZSBsaW5rZXIgdmlhIHRoZSAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdo PS1seHh4IG9wdGlvbnMsIHRoZQotLy8gaW50cmluc2ljcyBhcmUgaW5jbHVkZWQgaW4gdGhlIGxp bmsgaW4gYSB3YXkgdGhhdCBhbGxvd3MgdGhlbSB0byBiZQotLy8gcHJ1bmVkIGFnYWluIGlmIG5v IG90aGVyIHJlZmVyZW5jZXMgdG8gdGhlbSBleGlzdC4KLS8vCi0KLQkubG9uZwltZW1jcHkgLSAu Ci0JLmxvbmcJbWVtc2V0IC0gLgotCS5sb25nCV9fc3RhY2tfY2hrX2ZhaWwgLSAuCi0JLmxvbmcJ X19zdGFja19jaGtfZ3VhcmQgLSAuCisvLw0KKy8vIENvcHlyaWdodCAoYykgMjAxNiwgTGluYXJv IEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQorLy8NCisvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KKy8vDQorDQorLy8NCisvLyBHQ0MgaW4gTFRP IG1vZGUgaW50ZXJvcGVyYXRlcyBwb29ybHkgd2l0aCBub24tc3RhbmRhcmQgbGlicmFyaWVzIHRo YXQNCisvLyBwcm92aWRlIGltcGxlbWVudGF0aW9ucyBvZiBjb21waWxlciBpbnRyaW5zaWNzIHN1 Y2ggYXMgbWVtY3B5L21lbXNldA0KKy8vIG9yIHRoZSBzdGFjayBwcm90ZWN0b3IgZW50cnkgcG9p bnRzLg0KKy8vDQorLy8gQnkgcmVmZXJlbmNpbmcgdGhlc2UgZnVuY3Rpb25zIGZyb20gYSBub24t TFRPIG9iamVjdCB0aGF0IGNhbiBiZSBwYXNzZWQNCisvLyB0byB0aGUgbGlua2VyIHZpYSB0aGUg LXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbHh4eCBvcHRpb25zLCB0aGUNCisvLyBpbnRyaW5z aWNzIGFyZSBpbmNsdWRlZCBpbiB0aGUgbGluayBpbiBhIHdheSB0aGF0IGFsbG93cyB0aGVtIHRv IGJlDQorLy8gcHJ1bmVkIGFnYWluIGlmIG5vIG90aGVyIHJlZmVyZW5jZXMgdG8gdGhlbSBleGlz dC4NCisvLw0KKw0KKyAgLmxvbmcgbWVtY3B5IC0gLg0KKyAgLmxvbmcgbWVtc2V0IC0gLg0KKyAg LmxvbmcgX19zdGFja19jaGtfZmFpbCAtIC4NCisgIC5sb25nIF9fc3RhY2tfY2hrX2d1YXJkIC0g Lg0KZGlmZiAtLWdpdCBhL0FybVBrZy9MaWJyYXJ5L0djY0x0by9saWJsdG8tYXJtLnMgYi9Bcm1Q a2cvTGlicmFyeS9HY2NMdG8vbGlibHRvLWFybS5zCmluZGV4IDRiMjZkNDMyMGQ1Mi4uZjE5ZmI0 NTU1MTlkIDEwMDY0NAotLS0gYS9Bcm1Qa2cvTGlicmFyeS9HY2NMdG8vbGlibHRvLWFybS5zCisr KyBiL0FybVBrZy9MaWJyYXJ5L0djY0x0by9saWJsdG8tYXJtLnMKQEAgLTEsNTUgKzEsNTUgQEAK LS8vCi0vLyBDb3B5cmlnaHQgKGMpIDIwMTYsIExpbmFybyBMdGQuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPgotLy8KLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50Ci0vLwotCi0vLwotLy8gR0NDIGluIExUTyBtb2RlIGludGVyb3BlcmF0ZXMgcG9vcmx5IHdp dGggbm9uLXN0YW5kYXJkIGxpYnJhcmllcyB0aGF0Ci0vLyBwcm92aWRlIGltcGxlbWVudGF0aW9u cyBvZiBjb21waWxlciBpbnRyaW5zaWNzIHN1Y2ggYXMgbWVtY3B5L21lbXNldAotLy8gb3IgdGhl IHN0YWNrIHByb3RlY3RvciBlbnRyeSBwb2ludHMuCi0vLwotLy8gQnkgcmVmZXJlbmNpbmcgdGhl c2UgZnVuY3Rpb25zIGZyb20gYSBub24tTFRPIG9iamVjdCB0aGF0IGNhbiBiZSBwYXNzZWQKLS8v IHRvIHRoZSBsaW5rZXIgdmlhIHRoZSAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1seHh4IG9w dGlvbnMsIHRoZQotLy8gaW50cmluc2ljcyBhcmUgaW5jbHVkZWQgaW4gdGhlIGxpbmsgaW4gYSB3 YXkgdGhhdCBhbGxvd3MgdGhlbSB0byBiZQotLy8gcHJ1bmVkIGFnYWluIGlmIG5vIG90aGVyIHJl ZmVyZW5jZXMgdG8gdGhlbSBleGlzdC4KLS8vCi0KLQkubG9uZwltZW1jcHkgLSAuCi0JLmxvbmcJ bWVtc2V0IC0gLgotCS5sb25nCV9fc3RhY2tfY2hrX2ZhaWwgLSAuCi0JLmxvbmcJX19zdGFja19j aGtfZ3VhcmQgLSAuCi0JLmxvbmcgX19hc2hyZGkzIC0gLgotCS5sb25nIF9fYXNobGRpMyAtIC4K LQkubG9uZyBfX2FlYWJpX2lkaXYgLSAuCi0JLmxvbmcgX19hZWFiaV9pZGl2bW9kIC0gLgotCS5s b25nIF9fYWVhYmlfdWlkaXYgLSAuCi0JLmxvbmcgX19hZWFiaV91aWRpdm1vZCAtIC4KLQkubG9u ZyBfX2RpdmRpMyAtIC4KLQkubG9uZyBfX2RpdnNpMyAtIC4KLQkubG9uZyBfX2xzaHJkaTMgLSAu Ci0JLmxvbmcgX19hZWFiaV9tZW1jcHkgLSAuCi0JLmxvbmcgX19hZWFiaV9tZW1zZXQgLSAuCi0J LmxvbmcgbWVtbW92ZSAtIC4KLQkubG9uZyBfX21vZHNpMyAtIC4KLQkubG9uZyBfX21vZGRpMyAt IC4KLQkubG9uZyBfX211bGRpMyAtIC4KLQkubG9uZyBfX2FlYWJpX2xtdWwgLSAuCi0JLmxvbmcg X19BUk1fbGxfbXVsbHUgLSAuCi0JLmxvbmcgX191ZGl2c2kzIC0gLgotCS5sb25nIF9fdW1vZHNp MyAtIC4KLQkubG9uZyBfX3VkaXZkaTMgLSAuCi0JLmxvbmcgX191bW9kZGkzIC0gLgotCS5sb25n IF9fdWRpdm1vZGRpNCAtIC4KLQkubG9uZyBfX2NsenNpMiAtIC4KLQkubG9uZyBfX2N0enNpMiAt IC4KLQkubG9uZyBfX3VjbXBkaTIgLSAuCi0JLmxvbmcgX19zd2l0Y2g4IC0gLgotCS5sb25nIF9f c3dpdGNodTggLSAuCi0JLmxvbmcgX19zd2l0Y2gxNiAtIC4KLQkubG9uZyBfX3N3aXRjaDMyIC0g LgotCS5sb25nIF9fYWVhYmlfdWxjbXAgLSAuCi0JLmxvbmcgX19hZWFiaV91bGRpdm1vZCAtIC4K LQkubG9uZyBfX2FlYWJpX2xkaXZtb2QgLSAuCi0JLmxvbmcgX19hZWFiaV9sbHNyIC0gLgotCS5s b25nIF9fYWVhYmlfbGxzbCAtIC4KKy8vDQorLy8gQ29weXJpZ2h0IChjKSAyMDE2LCBMaW5hcm8g THRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCisvLw0KKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQorLy8NCisNCisvLw0KKy8vIEdDQyBpbiBMVE8g bW9kZSBpbnRlcm9wZXJhdGVzIHBvb3JseSB3aXRoIG5vbi1zdGFuZGFyZCBsaWJyYXJpZXMgdGhh dA0KKy8vIHByb3ZpZGUgaW1wbGVtZW50YXRpb25zIG9mIGNvbXBpbGVyIGludHJpbnNpY3Mgc3Vj aCBhcyBtZW1jcHkvbWVtc2V0DQorLy8gb3IgdGhlIHN0YWNrIHByb3RlY3RvciBlbnRyeSBwb2lu dHMuDQorLy8NCisvLyBCeSByZWZlcmVuY2luZyB0aGVzZSBmdW5jdGlvbnMgZnJvbSBhIG5vbi1M VE8gb2JqZWN0IHRoYXQgY2FuIGJlIHBhc3NlZA0KKy8vIHRvIHRoZSBsaW5rZXIgdmlhIHRoZSAt cGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1seHh4IG9wdGlvbnMsIHRoZQ0KKy8vIGludHJpbnNp Y3MgYXJlIGluY2x1ZGVkIGluIHRoZSBsaW5rIGluIGEgd2F5IHRoYXQgYWxsb3dzIHRoZW0gdG8g YmUNCisvLyBwcnVuZWQgYWdhaW4gaWYgbm8gb3RoZXIgcmVmZXJlbmNlcyB0byB0aGVtIGV4aXN0 Lg0KKy8vDQorDQorICAubG9uZyBtZW1jcHkgLSAuDQorICAubG9uZyBtZW1zZXQgLSAuDQorICAu bG9uZyBfX3N0YWNrX2Noa19mYWlsIC0gLg0KKyAgLmxvbmcgX19zdGFja19jaGtfZ3VhcmQgLSAu DQorICAubG9uZyBfX2FzaHJkaTMgLSAuDQorICAubG9uZyBfX2FzaGxkaTMgLSAuDQorICAubG9u ZyBfX2FlYWJpX2lkaXYgLSAuDQorICAubG9uZyBfX2FlYWJpX2lkaXZtb2QgLSAuDQorICAubG9u ZyBfX2FlYWJpX3VpZGl2IC0gLg0KKyAgLmxvbmcgX19hZWFiaV91aWRpdm1vZCAtIC4NCisgIC5s b25nIF9fZGl2ZGkzIC0gLg0KKyAgLmxvbmcgX19kaXZzaTMgLSAuDQorICAubG9uZyBfX2xzaHJk aTMgLSAuDQorICAubG9uZyBfX2FlYWJpX21lbWNweSAtIC4NCisgIC5sb25nIF9fYWVhYmlfbWVt c2V0IC0gLg0KKyAgLmxvbmcgbWVtbW92ZSAtIC4NCisgIC5sb25nIF9fbW9kc2kzIC0gLg0KKyAg LmxvbmcgX19tb2RkaTMgLSAuDQorICAubG9uZyBfX211bGRpMyAtIC4NCisgIC5sb25nIF9fYWVh YmlfbG11bCAtIC4NCisgIC5sb25nIF9fQVJNX2xsX211bGx1IC0gLg0KKyAgLmxvbmcgX191ZGl2 c2kzIC0gLg0KKyAgLmxvbmcgX191bW9kc2kzIC0gLg0KKyAgLmxvbmcgX191ZGl2ZGkzIC0gLg0K KyAgLmxvbmcgX191bW9kZGkzIC0gLg0KKyAgLmxvbmcgX191ZGl2bW9kZGk0IC0gLg0KKyAgLmxv bmcgX19jbHpzaTIgLSAuDQorICAubG9uZyBfX2N0enNpMiAtIC4NCisgIC5sb25nIF9fdWNtcGRp MiAtIC4NCisgIC5sb25nIF9fc3dpdGNoOCAtIC4NCisgIC5sb25nIF9fc3dpdGNodTggLSAuDQor ICAubG9uZyBfX3N3aXRjaDE2IC0gLg0KKyAgLmxvbmcgX19zd2l0Y2gzMiAtIC4NCisgIC5sb25n IF9fYWVhYmlfdWxjbXAgLSAuDQorICAubG9uZyBfX2FlYWJpX3VsZGl2bW9kIC0gLg0KKyAgLmxv bmcgX19hZWFiaV9sZGl2bW9kIC0gLg0KKyAgLmxvbmcgX19hZWFiaV9sbHNyIC0gLg0KKyAgLmxv bmcgX19hZWFiaV9sbHNsIC0gLg0KLS0gCjIuMTkuMS4zLmczMDI0N2FhNWQyMDEKCgo=