X-Original-To: alpine-aports@lists.alpinelinux.org Received: from lists.csiro.au (lists.csiro.au [150.229.2.163]) by lists.alpinelinux.org (Postfix) with ESMTP id DFE665C4098 for ; Wed, 25 May 2016 07:08:38 +0000 (GMT) Received: from vic-MTAout1.csiro.au (vic-mtaout1.csiro.au [150.229.64.37]) by lists.csiro.au (Postfix) with ESMTP id 6E0D2AE6D5; Wed, 25 May 2016 17:08:35 +1000 (AEST) X-SBRS: None X-IronPort-AV: E=Sophos;i="5.26,363,1459778400"; d="scan'208";a="49534697" Received: from zoidberg-vm3-dp.nexus.csiro.au (HELO zoidberg-vm3-dp.dp.csiro.au) ([140.253.176.81]) by vic-ironport-int.csiro.au with ESMTP; 25 May 2016 17:08:34 +1000 From: Ashley Sommer To: alpine-aports@lists.alpinelinux.org Cc: Ashley Sommer Subject: [alpine-aports] [PATCH] main/rsyslog: update to 8.18.0, and apply a new musl fix Date: Wed, 25 May 2016 17:08:19 +1000 Message-Id: <1464160099-2186-1-git-send-email-ashleysommer@gmail.com> X-Mailer: git-send-email 2.8.1 X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhpcyBjb21taXQgYnJpbmdzIHJzeXNsb2cgdXAgdG8gdGhlIGxhdGVzdCByZWxlYXNlIHRoYXQg aGFzIHNvbWUgbmljZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcy4NClRo aXMgY29tbWl0IGFsc28gaW5jbHVkZXMgYW4gdXBzdHJlYW0gZml4IGZyb20gOC4xOS4wICh1bnJl bGVhc2VkKSB3aGljaCBmaXhlcyBhIHNlZ2ZhdWx0IHByZXNlbnQgaW4gYWxsIGN1cnJlbnQgcnN5 c2xvZyB2ZXJzaW9ucyBvbiBtdXNsLg0KVmVyc2lvbiA4LjE3IGFuZCBsYXRlciBvZiByc3lzbG9n IGhhcyBhIG5ldyBkZXBlbmRlbmN5LiBJdCBub3cgbmVlZHMgbGliZmFzdGpzb24gaW5zdGFsbGVk IHRvIHJ1bi4NCkkgY3JlYXRlZCB0aGUgbGliZmFzdGpzb24gcGFja2FnZSBlYXJsaWVyIHRoaXMg bW9udGgsIGl0IGlzIGluIHRoZSBgdGVzdGluZ2AgZGlyZWN0b3J5LiBJIGJlbGlldmUgbGliZmFz dGpzb24gd2lsbCBuZWVkIHRvIGJlIHByb21vdGVkIGZyb20gYHRlc3RpbmdgIHRvIGBlZGdlYC4N Ci0tLQ0KIC4uLi84ZTRiZmUxOWI1ZDk3MWY1ZGY4NTIwZmFmODc1MzM4MWI1OGU3Y2E3LnBhdGNo IHwgMTE0ICsrKysNCiBtYWluL3JzeXNsb2cvQVBLQlVJTEQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA0MSArLQ0KIG1haW4vcnN5c2xvZy9xdWV1ZS5wYXRjaCAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNTk0ICsrKysrKysrKysrKysrKysrKysrKw0KIDMgZmlsZXMgY2hhbmdl ZCwgNzM4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0 NCBtYWluL3JzeXNsb2cvOGU0YmZlMTliNWQ5NzFmNWRmODUyMGZhZjg3NTMzODFiNThlN2NhNy5w YXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBtYWluL3JzeXNsb2cvcXVldWUucGF0Y2gNCg0KZGlm ZiAtLWdpdCBhL21haW4vcnN5c2xvZy84ZTRiZmUxOWI1ZDk3MWY1ZGY4NTIwZmFmODc1MzM4MWI1 OGU3Y2E3LnBhdGNoIGIvbWFpbi9yc3lzbG9nLzhlNGJmZTE5YjVkOTcxZjVkZjg1MjBmYWY4NzUz MzgxYjU4ZTdjYTcucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5j NzYzNzgwDQotLS0gL2Rldi9udWxsDQorKysgYi9tYWluL3JzeXNsb2cvOGU0YmZlMTliNWQ5NzFm NWRmODUyMGZhZjg3NTMzODFiNThlN2NhNy5wYXRjaA0KQEAgLTAsMCArMSwxMTQgQEANCitGcm9t IDhlNGJmZTE5YjVkOTcxZjVkZjg1MjBmYWY4NzUzMzgxYjU4ZTdjYTcgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxDQorRnJvbTogUmFpbmVyIEdlcmhhcmRzIDxyZ2VyaGFyZHNAYWRpc2Nvbi5jb20+ DQorRGF0ZTogRnJpLCAyOSBBcHIgMjAxNiAwODowOTo0NCArMDIwMA0KK1N1YmplY3Q6IFtQQVRD SF0gY29yZTogc2V0IGRlZmF1bHQgc3RhY2sgc2l6ZSB0byA0TWlCDQorDQorTm90ZSB0aGF0IHRo aXMgaXMgYmVsb3cgdGhlIHVzdWFsIDEwTWlCIGRlZmF1bHQsIGJ1dCBzaG91bGQgY2F1c2UNCitu byBpc3N1ZXMgKG91dHB1dCB0aHJlYWRzIGFscmVhZHkgdXNlIDRNaUIgc3RhY2sgc2l6ZSwgZm9y IGV4YW1wbGUpLg0KK1RoaXMgYWxzbyBhZGRyZXNzZXMgaXNzdWVzIGludHJvZHVjZWQgYnkgbWlj cm8tbGliYydzIHdoaWNoIG9ubHkNCitwcm92aWRlIHZlcnkgbGltaXRlZCBzdGFjayBzcGFjZSBi eSBkZWZhdWx0Lg0KKw0KK2Nsb3NlcyBodHRwczovL2dpdGh1Yi5jb20vcnN5c2xvZy9yc3lzbG9n L2lzc3Vlcy85OTYNCistLS0NCisgcnVudGltZS9yc3lzbG9nLmMgfCA3ICsrKystLS0NCisgcnVu dGltZS9yc3lzbG9nLmggfCAyICstDQorIHJ1bnRpbWUvc3RyZWFtLmMgIHwgNCAtLS0tDQorIHRo cmVhZHMuYyAgICAgICAgIHwgOSArLS0tLS0tLS0NCisgNCBmaWxlcyBjaGFuZ2VkLCA2IGluc2Vy dGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQ0KKw0KK2RpZmYgLS1naXQgYS9ydW50aW1lL3JzeXNs b2cuYyBiL3J1bnRpbWUvcnN5c2xvZy5jDQoraW5kZXggYzZkNzBkNC4uYzIzZDlmNyAxMDA2NDQN CistLS0gYS9ydW50aW1lL3JzeXNsb2cuYw0KKysrKyBiL3J1bnRpbWUvcnN5c2xvZy5jDQorQEAg LTM1LDcgKzM1LDcgQEANCisgICoNCisgICogTW9kdWxlIGJlZ3VuIDIwMDgtMDQtMTYgYnkgUmFp bmVyIEdlcmhhcmRzDQorICAqDQorLSAqIENvcHlyaWdodCAyMDA4LTIwMTQgUmFpbmVyIEdlcmhh cmRzIGFuZCBBZGlzY29uIEdtYkguDQorKyAqIENvcHlyaWdodCAyMDA4LTIwMTYgUmFpbmVyIEdl cmhhcmRzIGFuZCBBZGlzY29uIEdtYkguDQorICAqDQorICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IHRoZSByc3lzbG9nIHJ1bnRpbWUgbGlicmFyeS4NCisgICoNCitAQCAtODMsOSArODMsOSBAQA0K KyAjaW5jbHVkZSAiYXRvbWljLmgiDQorICNpbmNsdWRlICJzclV0aWxzLmgiDQorIA0KKytwdGhy ZWFkX2F0dHJfdCBkZWZhdWx0X3RocmVhZF9hdHRyOw0KKyAjaWZkZWYgSEFWRV9QVEhSRUFEX1NF VFNDSEVEUEFSQU0NCisgc3RydWN0IHNjaGVkX3BhcmFtIGRlZmF1bHRfc2NoZWRfcGFyYW07DQor LXB0aHJlYWRfYXR0cl90IGRlZmF1bHRfdGhyZWFkX2F0dHI7DQorIGludCBkZWZhdWx0X3Rocl9z Y2hlZF9wb2xpY3k7DQorICNlbmRpZg0KKyANCitAQCAtMTQ1LDExICsxNDUsMTIgQEAgcnNydElu aXQoY2hhciAqKnBwRXJyT2JqLCBvYmpfaWZfdCAqcE9iaklGKQ0KKyAJCXN0ZGxvZ19pbml0KDAp Ow0KKyAJCXN0ZGxvZ19oZGwgPSBOVUxMOw0KKyAjZW5kaWYNCisrCQlDSEtpUmV0KHB0aHJlYWRf YXR0cl9pbml0KCZkZWZhdWx0X3RocmVhZF9hdHRyKSk7DQorKwkJcHRocmVhZF9hdHRyX3NldHN0 YWNrc2l6ZSgmZGVmYXVsdF90aHJlYWRfYXR0ciwgNDA5NioxMDI0KTsNCisgI2lmZGVmIEhBVkVf UFRIUkVBRF9TRVRTQ0hFRFBBUkFNDQorIAkgICAgCUNIS2lSZXQocHRocmVhZF9nZXRzY2hlZHBh cmFtKHB0aHJlYWRfc2VsZigpLA0KKyAJCQkgICAgCQkgICAgICAmZGVmYXVsdF90aHJfc2NoZWRf cG9saWN5LA0KKyAJCQkJCSAgICAgICZkZWZhdWx0X3NjaGVkX3BhcmFtKSk7DQorLQkJQ0hLaVJl dChwdGhyZWFkX2F0dHJfaW5pdCgmZGVmYXVsdF90aHJlYWRfYXR0cikpOw0KKyAJCUNIS2lSZXQo cHRocmVhZF9hdHRyX3NldHNjaGVkcG9saWN5KCZkZWZhdWx0X3RocmVhZF9hdHRyLA0KKyAJCQkg ICAgCQkJICAgIGRlZmF1bHRfdGhyX3NjaGVkX3BvbGljeSkpOw0KKyAJCUNIS2lSZXQocHRocmVh ZF9hdHRyX3NldHNjaGVkcGFyYW0oJmRlZmF1bHRfdGhyZWFkX2F0dHIsDQorZGlmZiAtLWdpdCBh L3J1bnRpbWUvcnN5c2xvZy5oIGIvcnVudGltZS9yc3lzbG9nLmgNCitpbmRleCA1NDIzNDNkLi44 NzE5OGYzIDEwMDY0NA0KKy0tLSBhL3J1bnRpbWUvcnN5c2xvZy5oDQorKysrIGIvcnVudGltZS9y c3lzbG9nLmgNCitAQCAtNTMyLDkgKzUzMiw5IEBAIHR5cGVkZWYgZW51bSByc09iamVjdElEIHJz T2JqSUQ7DQorICNkZWZpbmUgUlNGUkVFT0JKKHgpIHsoeCktPk9JRCA9IE9JRHJzRnJlZWQ7IGZy ZWUoeCk7fQ0KKyAjZW5kaWYNCisgDQorK2V4dGVybiBwdGhyZWFkX2F0dHJfdCBkZWZhdWx0X3Ro cmVhZF9hdHRyOw0KKyAjaWZkZWYgSEFWRV9QVEhSRUFEX1NFVFNDSEVEUEFSQU0NCisgZXh0ZXJu IHN0cnVjdCBzY2hlZF9wYXJhbSBkZWZhdWx0X3NjaGVkX3BhcmFtOw0KKy1leHRlcm4gcHRocmVh ZF9hdHRyX3QgZGVmYXVsdF90aHJlYWRfYXR0cjsNCisgZXh0ZXJuIGludCBkZWZhdWx0X3Rocl9z Y2hlZF9wb2xpY3k7DQorICNlbmRpZg0KKyANCitkaWZmIC0tZ2l0IGEvcnVudGltZS9zdHJlYW0u YyBiL3J1bnRpbWUvc3RyZWFtLmMNCitpbmRleCBhZTNlZmFhLi45N2IwY2NkIDEwMDY0NA0KKy0t LSBhL3J1bnRpbWUvc3RyZWFtLmMNCisrKysgYi9ydW50aW1lL3N0cmVhbS5jDQorQEAgLTk2OCwx MSArOTY4LDcgQEAgc3RhdGljIHJzUmV0VmFsIHN0cm1Db25zdHJ1Y3RGaW5hbGl6ZShzdHJtX3Qg KnBUaGlzKQ0KKyAJCXBUaGlzLT5wSU9CdWYgPSBwVGhpcy0+YXN5bmNCdWZbMF0ucEJ1ZjsNCisg CQlwVGhpcy0+YlN0b3BXcml0ZXIgPSAwOw0KKyAJCWlmKHB0aHJlYWRfY3JlYXRlKCZwVGhpcy0+ d3JpdGVyVGhyZWFkSUQsDQorLSNpZmRlZiBIQVZFX1BUSFJFQURfU0VUU0NIRURQQVJBTQ0KKyAJ CQkgICAgCSAgJmRlZmF1bHRfdGhyZWFkX2F0dHIsDQorLSNlbHNlDQorLQkJCQkgIE5VTEwsDQor LSNlbmRpZg0KKyAJCQkJICBhc3luY1dyaXRlclRocmVhZCwgcFRoaXMpICE9IDApDQorIAkJCURC R1BSSU5URigiRVJST1I6IHN0cmVhbSAlcCBjb2xkIG5vdCBjcmVhdGUgd3JpdGVyIHRocmVhZFxu IiwgcFRoaXMpOw0KKyAJfSBlbHNlIHsNCitkaWZmIC0tZ2l0IGEvdGhyZWFkcy5jIGIvdGhyZWFk cy5jDQoraW5kZXggYjZjYWIxYi4uMmQ4MzQwMiAxMDA2NDQNCistLS0gYS90aHJlYWRzLmMNCisr KysgYi90aHJlYWRzLmMNCitAQCAtMjM1LDcgKzIzNSw2IEBAIHN0YXRpYyB2b2lkKiB0aHJkU3Rh cnRlcih2b2lkICphcmcpDQorIAlFTkRmdW5jDQorIAlwdGhyZWFkX2V4aXQoMCk7DQorIH0NCist DQorIC8qIFN0YXJ0IGEgbmV3IHRocmVhZCBhbmQgYWRkIGl0IHRvIHRoZSBsaXN0IG9mIGN1cnJl bnRseQ0KKyAgKiBleGVjdXRpbmcgdGhyZWFkcy4gSXQgaXMgYWRkZWQgYXQgdGhlIGVuZCBvZiB0 aGUgbGlzdC4NCisgICogcmdlcmhhcmRzLCAyMDA3LTEyLTE0DQorQEAgLTI1MywxMyArMjUyLDcg QEAgcnNSZXRWYWwgdGhyZENyZWF0ZShyc1JldFZhbCAoKnRocmRNYWluKSh0aHJkSW5mb190Kiks IHJzUmV0VmFsKCphZnRlclJ1bikodGhyZEkNCisgCXBUaGlzLT5wQWZ0ZXJSdW4gPSBhZnRlclJ1 bjsNCisgCXBUaGlzLT5iTmVlZHNDYW5jZWwgPSBiTmVlZHNDYW5jZWw7DQorIAlwVGhpcy0+bmFt ZSA9IHVzdHJkdXAobmFtZSk7DQorLQlwdGhyZWFkX2NyZWF0ZSgmcFRoaXMtPnRocmRJRCwNCist I2lmZGVmIEhBVkVfUFRIUkVBRF9TRVRTQ0hFRFBBUkFNDQorLQkJCSAgICZkZWZhdWx0X3RocmVh ZF9hdHRyLA0KKy0jZWxzZQ0KKy0JCQkgICBOVUxMLA0KKy0jZW5kaWYNCistCQkJICAgdGhyZFN0 YXJ0ZXIsIHBUaGlzKTsNCisrCXB0aHJlYWRfY3JlYXRlKCZwVGhpcy0+dGhyZElELCAmZGVmYXVs dF90aHJlYWRfYXR0ciwgdGhyZFN0YXJ0ZXIsIHBUaGlzKTsNCisgCUNIS2lSZXQobGxBcHBlbmQo JmxsVGhyZHMsIE5VTEwsIHBUaGlzKSk7DQorIA0KKyBmaW5hbGl6ZV9pdDoNCmRpZmYgLS1naXQg YS9tYWluL3JzeXNsb2cvQVBLQlVJTEQgYi9tYWluL3JzeXNsb2cvQVBLQlVJTEQNCmluZGV4IGE1 Y2NjOWIuLjE0OWVmNDMgMTAwNjQ0DQotLS0gYS9tYWluL3JzeXNsb2cvQVBLQlVJTEQNCisrKyBi L21haW4vcnN5c2xvZy9BUEtCVUlMRA0KQEAgLTEsMTcgKzEsMTkgQEANCiAjIENvbnRyaWJ1dG9y OiBGcmFuY2lzY28gR3VlcnJlaXJvIDxmcmFuY2lzZ0Bmbm9wLm5ldD4NCiAjIENvbnRyaWJ1dG9y OiDFgXVrYXN6IEplbmRyeXNpayA8c2NhZHVAeWFuZGV4LmNvbT4NCiAjIENvbnRyaWJ1dG9yOiBD YW1lcm9uIEJhbnRhIDxjYmFudGFAZ21haWwuY29tPg0KKyMgQ29udHJpYnV0b3I6IEFzaGxleSBT b21tZXIgPGFzaGxleXNvbW1lckBnbWFpbC5jb20+DQogIyBNYWludGFpbmVyOiBDYW1lcm9uIEJh bnRhIDxjYmFudGFAZ21haWwuY29tPg0KIHBrZ25hbWU9cnN5c2xvZw0KLXBrZ3Zlcj04LjE2LjAN Citwa2d2ZXI9OC4xOC4wDQogcGtncmVsPTANCiBwa2dkZXNjPSJFbmhhbmNlZCBtdWx0aS10aHJl YWRlZCBzeXNsb2dkIHdpdGggZGF0YWJhc2Ugc3VwcG9ydCBhbmQgbW9yZS4iDQogdXJsPSJodHRw Oi8vd3d3LnJzeXNsb2cuY29tLyINCiBhcmNoPSJhbGwiDQogbGljZW5zZT0iR1BMdjMgTEdQTDMi DQorZGVwZW5kcz0ibGliZmFzdGpzb24iDQogbWFrZWRlcGVuZHM9InpsaWItZGV2IGdudXRscy1k ZXYgbWFyaWFkYi1kZXYgcG9zdGdyZXNxbC1kZXYgbmV0LXNubXAtZGV2DQogCWxpYm5ldC1kZXYg bGliZ2NyeXB0LWRldiBsaWJlZS1kZXYgbGliZXN0ci1kZXYgbGlibG9nZ2luZy1kZXYNCi0JanNv bi1jLWRldiB1dGlsLWxpbnV4LWRldiBweS1kb2N1dGlscyBoaXJlZGlzLWRldiINCisJbGliZmFz dGpzb24tZGV2IHV0aWwtbGludXgtZGV2IHB5LWRvY3V0aWxzIGhpcmVkaXMtZGV2Ig0KIHN1YnBh Y2thZ2VzPSIkcGtnbmFtZS1kb2MgJHBrZ25hbWUtbXlzcWwgJHBrZ25hbWUtcGdzcWwgJHBrZ25h bWUtdGxzDQogCSRwa2duYW1lLXNubXAgJHBrZ25hbWUtaGlyZWRpcyAkcGtnbmFtZS1kYmciDQog c291cmNlPSJodHRwOi8vd3d3LnJzeXNsb2cuY29tL2ZpbGVzL2Rvd25sb2FkLyRwa2duYW1lLyRw a2duYW1lLSRwa2d2ZXIudGFyLmd6DQpAQCAtMjAsOSArMjIsMjEgQEAgc291cmNlPSJodHRwOi8v d3d3LnJzeXNsb2cuY29tL2ZpbGVzL2Rvd25sb2FkLyRwa2duYW1lLyRwa2duYW1lLSRwa2d2ZXIu dGFyLmd6DQogCSRwa2duYW1lLmxvZ3JvdGF0ZQ0KIAkkcGtnbmFtZS5jb25mDQogCW11c2wtZml4 LnBhdGNoDQotCSINCisgICAgICAgIHF1ZXVlLnBhdGNoDQorICAgICAgICA4ZTRiZmUxOWI1ZDk3 MWY1ZGY4NTIwZmFmODc1MzM4MWI1OGU3Y2E3LnBhdGNoCQ0KKyAgICAgICAgIg0KIA0KIF9idWls ZGRpcj0iJHNyY2RpciIvJHBrZ25hbWUtJHBrZ3Zlcg0KK3ByZXBhcmUoKSB7DQorICAgICAgICBs b2NhbCBpDQorICAgICAgICBjZCAiJF9idWlsZGRpciINCisgICAgICAgIGZvciBpIGluICRzb3Vy Y2U7IGRvDQorICAgICAgICAgICAgICAgIGNhc2UgJGkgaW4NCisgICAgICAgICAgICAgICAgKi5w YXRjaCkgbXNnICRpOyBwYXRjaCAtcDEgLWkgIiRzcmNkaXIiLyRpIHx8IHJldHVybiAxOzsNCisg ICAgICAgICAgICAgICAgZXNhYw0KKyAgICAgICAgZG9uZQ0KK30NCisNCiBidWlsZCgpIHsNCiAJ Y2QgIiRfYnVpbGRkaXIiDQogCS4vY29uZmlndXJlIFwNCkBAIC01Niw3ICs3MCw2IEBAIHBhY2th Z2UoKSB7DQogDQogCWluc3RhbGwgLW03NTUgLUQgIiRzcmNkaXIiLyRwa2duYW1lLmluaXRkICIk cGtnZGlyIi9ldGMvaW5pdC5kLyRwa2duYW1lDQogCWluc3RhbGwgLW02NDQgLUQgIiRzcmNkaXIi LyRwa2duYW1lLmNvbmZkICIkcGtnZGlyIi9ldGMvY29uZi5kLyRwa2duYW1lDQotDQogCWluc3Rh bGwgLW02NDQgLUQgIiRzcmNkaXIiLyRwa2duYW1lLmxvZ3JvdGF0ZSAiJHBrZ2RpciIvZXRjL2xv Z3JvdGF0ZS5kLyRwa2duYW1lDQogCWluc3RhbGwgLW02NDQgLUQgIiRzcmNkaXIiLyRwa2duYW1l LmNvbmYgIiRwa2dkaXIiL2V0Yy8kcGtnbmFtZS5jb25mDQogfQ0KQEAgLTk2LDIxICsxMDksMjcg QEAgc25tcCgpIHsNCiAJCSIkc3VicGtnZGlyIi91c3IvbGliL3JzeXNsb2cvIHx8IHJldHVybiAx DQogfQ0KIA0KLW1kNXN1bXM9IjUyOTE2MDQ1YzA3ZWJiZDNlZTc3YzM5ZTg0NjViYzRkICByc3lz bG9nLTguMTYuMC50YXIuZ3oNCittZDVzdW1zPSI3NTBkNTUyYmRjYmYyNTVjODVmNDY0ZmZiZTIx MTY4YSAgcnN5c2xvZy04LjE4LjAudGFyLmd6DQogNjdiOGFmZDU3MmI0MTAzYjM5YjU0YTcyOWI4 ODBiNTMgIHJzeXNsb2cuaW5pdGQNCiBhMzRmMzNkOGY3OThhYjY2NTJiMzQ3YWQwOTY1NjI4NCAg cnN5c2xvZy5jb25mZA0KIGJjNDNkZWJjOWZmZGY2NmJjMTQwOTAyNWZkM2QxMTc2ICByc3lzbG9n LmxvZ3JvdGF0ZQ0KK2JjMGE5YjEwOTVmNWY2ZmZjOTM3Y2QyYzliZDI2ZGZmICByc3lzbG9nLmNv bmYNCiA0ODBmMTUzNTA4ZmQxMGQxNTdjZWZjMGJiODk4ZmUyZCAgbXVzbC1maXgucGF0Y2gNCi1i YzBhOWIxMDk1ZjVmNmZmYzkzN2NkMmM5YmQyNmRmZiAgcnN5c2xvZy5jb25mIg0KLXNoYTI1NnN1 bXM9IjRmZTRmOTdjMTA4OTkwODZkOThiOTQwMWQ3ZThkMmJjZmY2MWM3YzNmN2NkZTg2Mjc4OTFl MzZmYzZlYzFiNzYgIHJzeXNsb2ctOC4xNi4wLnRhci5neg0KK2RlY2U0YzU1MTBlNWQ0Zjg4Mjkz ZWZmNzRkYTViZjU3ICBxdWV1ZS5wYXRjaA0KKzBkMzJjYWRmNzUyNDYyZjQ1YmNkZTliMDRkZjll YmZjICA4ZTRiZmUxOWI1ZDk3MWY1ZGY4NTIwZmFmODc1MzM4MWI1OGU3Y2E3LnBhdGNoIg0KK3No YTI1NnN1bXM9Ijk0MzQ2MjM3ZWNmYTIyYzlmNzhjZWJjM2YxOGQ1OTA1NmY1ZDk4NDZlYjkwNmM3 NWJlYWE3ZTQ4NmYwMmM2OTUgIHJzeXNsb2ctOC4xOC4wLnRhci5neg0KIDIyM2Q0YmRiNjk3NjBl ZjVhOWEwNDRkNjg0MzRjODA1Y2QxNWUzMWZhMTkwYTg2ZjVmMjgzOTEyZDBiYWY2ZDYgIHJzeXNs b2cuaW5pdGQNCiBmOTNjZDQ3Nzc3MDg3MjQ4NjE4NTE1MjQ1NGNlNjZlODkzMDJiN2E4ZDdhMTEy ZmYyODVjZWVhODkyZGZlMWYxICByc3lzbG9nLmNvbmZkDQogZjBlZmZjMTliZDFmMWJmYTM2N2Q2 NWQ2NTE2YzczNTA5Y2IzNDU0NTE1N2I5ZTkxY2Y2ZTQzNzY4NWRkM2ZlNSAgcnN5c2xvZy5sb2dy b3RhdGUNCitlNGViZTgwNmI1YTcxZWRhYTQ0OTIwMzNlYTNhM2U3MDgxMGE2NGQzZjNkNGY0ZTk5 NTRlZWZjZjI1ZjJlMmVkICByc3lzbG9nLmNvbmYNCiA1Yjg0MjA1NzBiZWY1N2FlYmE1NTk2NWJi YmRkYjI5Zjk2NmI2MGEzM2VmOWU3ZmM1ZjkyMTgyMDI3NDA4MGIwICBtdXNsLWZpeC5wYXRjaA0K LWU0ZWJlODA2YjVhNzFlZGFhNDQ5MjAzM2VhM2EzZTcwODEwYTY0ZDNmM2Q0ZjRlOTk1NGVlZmNm MjVmMmUyZWQgIHJzeXNsb2cuY29uZiINCi1zaGE1MTJzdW1zPSJlNDVhY2MxNjA3OGQ4MzkzN2Vk ZDdlMjJmOTE2ZmUwNTBiNjJhYTA1N2NhNGRkOTgwODIzODUwZjIxOTUyMTNjMTJkYjM2Zjc1OWM1 MjhiNWZlNmYxYjA2MWE2MWUyMTE3ZmNhNjA4NjI0NWJjMjQ4MzkyY2M0ZTYxYjIzODNkYyAgcnN5 c2xvZy04LjE2LjAudGFyLmd6DQotMjA5NjcyMzVlODIzMzU4ODIxMDA3MWE3MTU3YTgxZmUwMmEx ZTg4ZDdjN2Y1NTg1NWZjYzJmZTM0Mjk1MjY5YTZlM2UzYmZjY2IzZDRkZDgzYTZhNDhkYTI4OTQ4 YzkyZDZjZTQ3YTBjNWQ4MTdmNmI2YTQwMzA2MzVmNGY4OTYgIG11c2wtZml4LnBhdGNoDQorOGQ2 ZGRhNDM5Yzc5ZGZmYWMyYTVkMTdlM2Q5YTI4MzU1Y2ZiOGZjMjY0MTc1YTg3MWUyNzMwNGFjZTI1 OWRhYSAgcXVldWUucGF0Y2gNCis5NDBkY2I0YTQ4Y2JiOGUyMzVjYWI4YzM1ZGJiMTBjMzJiYzYy ODM1NzRmZTg0NWRjY2U0MmE0MjhhOTJlZTNiICA4ZTRiZmUxOWI1ZDk3MWY1ZGY4NTIwZmFmODc1 MzM4MWI1OGU3Y2E3LnBhdGNoIg0KK3NoYTUxMnN1bXM9IjZiMTU5YmEyMzEwMGI0Njc1NTc2ZjVi MjQ3ZDJiZjQ4MmJhYjBiZWFhMDcxYzI2YzY5MmM5OWU1MGYyMDJiMGIyNzJiN2E2NGJhMmI3Yzcy NjM5MGQ2NjM2NzdiN2E2ZDY4NjY2YjA2ZjczODI1ZTM1NjA1YjEzYWUwOTMwZmM3ICByc3lzbG9n LTguMTguMC50YXIuZ3oNCiA5YTRiMTg0MDc2YTgyZTA4OTlkYTc5YWIzNzQ5ZTFjNjdlYWMwM2Yz NmM0NDYwZDM0ZWQwMzg1ZjRhM2ZmYWQ1MzY4MWExY2MyNWRkNTE0ZTgzNWM5Mzk5YTlhYmQwMWMy MzU3NDM1MzVhZDU0OWQ1YmU3ZjY2ZDllMTI3YjlkYyAgcnN5c2xvZy5pbml0ZA0KIGE0ZDk2OTY3 MTgwMDIyNzEyOWJlODcwYjAzMTg5NjFiNzlkMTYzNjU2NjM3NTQxMTFhMTM2NzM0YmJmNzAwNWFi ZDRkYTI0ODUzZGZkYzA3YjNiNjY5MWFiNWE3YjIxNWYwYWM2YzE5MDIyYjRjNWM4ZGFiMDYxNjVh NDI0MzFiICByc3lzbG9nLmNvbmZkDQogZDU0Mzc3ZGRmMzkxOTc2NTY4MTFhODQyNzI1NjhlYTc2 MWY5ODRlMTlkZDA0ZmM1NGYzNzJkZDA0YTkyNDRlNjZkMDJiMjZhYjMzMDczZDAzNDRkMDU0ZjAz MTY2MGVjNjExZjNjN2ExOGMyNjZlN2I2OGNlZjVlMmM0N2YwNmYgIHJzeXNsb2cubG9ncm90YXRl DQotM2JjZDU4YjIyMmViN2Y0ZDhhNDJhMDY0M2NhY2I2YWI0NDc5MGY5MGM5YmQ1NTA2NzhlMDAy YmMxOTg2M2Q1ZDZhNzM0MWU1ZTViYTBiOTI5MmY4NWM2YzA0Y2Q1Y2M0MmQxNzRhY2RjNjNlOGJh MjIwMjI2MjBkYjEwZjJiOWIgIHJzeXNsb2cuY29uZiINCiszYmNkNThiMjIyZWI3ZjRkOGE0MmEw NjQzY2FjYjZhYjQ0NzkwZjkwYzliZDU1MDY3OGUwMDJiYzE5ODYzZDVkNmE3MzQxZTVlNWJhMGI5 MjkyZjg1YzZjMDRjZDVjYzQyZDE3NGFjZGM2M2U4YmEyMjAyMjYyMGRiMTBmMmI5YiAgcnN5c2xv Zy5jb25mDQorMjA5NjcyMzVlODIzMzU4ODIxMDA3MWE3MTU3YTgxZmUwMmExZTg4ZDdjN2Y1NTg1 NWZjYzJmZTM0Mjk1MjY5YTZlM2UzYmZjY2IzZDRkZDgzYTZhNDhkYTI4OTQ4YzkyZDZjZTQ3YTBj NWQ4MTdmNmI2YTQwMzA2MzVmNGY4OTYgIG11c2wtZml4LnBhdGNoDQorZGU4YjgyNzgxYWYyZGZl ZjY3YjIyMTU3ODI3MjFjY2EyZWU1ZGI5ZDA4ZWQzMjYwZjRlMzM5MDM1M2E1OWJmNGJkNzY3MDFk ZjY4MmM0YmY1MzdjZTgxN2VhYmY3OWIwNjJjNGIyYTNlMjBlNDE3NWU3ZDc3Y2EwOGM1YTcwMGYg IHF1ZXVlLnBhdGNoDQorNTNlMWIzYTIxOWZlYzkxYmYxMzQ0ODM5OGJkYTYyMzkwNjEwMjdkYmQ1 MzI3MjYwZmQ0NGQ5ZTNiMjkwMzg2YjQzOTkyYzNhMGQyMGU3Mzk3MWM1ZjVhNjgyYjliZDg3ZDE3 ZmZiZjQyZDQwMTIxZDgyYzA3OTk3MGIzMjU1NDcgIDhlNGJmZTE5YjVkOTcxZjVkZjg1MjBmYWY4 NzUzMzgxYjU4ZTdjYTcucGF0Y2giDQpkaWZmIC0tZ2l0IGEvbWFpbi9yc3lzbG9nL3F1ZXVlLnBh dGNoIGIvbWFpbi9yc3lzbG9nL3F1ZXVlLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMC4uODYzZmJkMg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvbWFpbi9yc3lzbG9nL3F1 ZXVlLnBhdGNoDQpAQCAtMCwwICsxLDU5NCBAQA0KKy0tLSByc3lzbG9nLTguMTguMC9wbHVnaW5z L2ltcHRjcC9pbXB0Y3AuYw0KKysrKyByc3lzbG9nLTguMTguMC1iL3BsdWdpbnMvaW1wdGNwL2lt cHRjcC5jDQorQEAgLTUwLDEzICs1MCwxMyBAQA0KKyAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0K KyAjaW5jbHVkZSA8c3lzL3VuLmg+DQorICNpbmNsdWRlIDxzeXMvZXBvbGwuaD4NCistI2luY2x1 ZGUgPHN5cy9xdWV1ZS5oPg0KKyAjaW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4NCisgI2luY2x1ZGUg PHN0ZGludC5oPg0KKyAjaW5jbHVkZSA8emxpYi5oPg0KKyAjaWYgSEFWRV9GQ05UTF9IDQorICNp bmNsdWRlIDxmY250bC5oPg0KKyAjZW5kaWYNCisrI2luY2x1ZGUgInF1ZXVlLmgiDQorICNpbmNs dWRlICJyc3lzbG9nLmgiDQorICNpbmNsdWRlICJjZnN5c2xpbmUuaCINCisgI2luY2x1ZGUgInBy b3AuaCINCistLS0gL2Rldi9udWxsDQorKysrIHJzeXNsb2ctOC4xOC4wLWIvcGx1Z2lucy9pbXB0 Y3AvcXVldWUuaA0KK0BAIC0wLDAgKzEsNTc0IEBADQorKy8qDQorKyAqIENvcHlyaWdodCAoYykg MTk5MSwgMTk5Mw0KKysgKglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCisrICoNCisrICogUmVkaXN0cmlidXRpb24gYW5k IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKyAqIG1v ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9ucw0KKysgKiBhcmUgbWV0Og0KKysgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KKysgKiAgICBub3RpY2UsIHRo aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQorKyAq IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv dmUgY29weXJpZ2h0DQorKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCisrICogICAgZG9jdW1lbnRhdGlvbiBh bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCisr ICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9m IGl0cyBjb250cmlidXRvcnMNCisrICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlDQorKyAqICAgIHdpdGhvdXQg c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KKysgKg0KKysgKiBUSElTIFNPRlRX QVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycn IEFORA0KKysgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUNCisrICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCisrICogQVJF IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRP UlMgQkUgTElBQkxFDQorKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMDQorKyAqIERBTUFHRVMgKElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT DQorKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT SU5FU1MgSU5URVJSVVBUSU9OKQ0KKysgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVA0KKysgKiBMSUFCSUxJ VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ TiBBTlkgV0FZDQorKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCisrICogU1VDSCBEQU1BR0UuDQorKyAqDQor KyAqCUAoIylxdWV1ZS5oCTguNSAoQmVya2VsZXkpIDgvMjAvOTQNCisrICovDQorKw0KKysjaWZu ZGVmCV9TWVNfUVVFVUVfSF8NCisrI2RlZmluZQlfU1lTX1FVRVVFX0hfDQorKw0KKysvKg0KKysg KiBUaGlzIGZpbGUgZGVmaW5lcyBmaXZlIHR5cGVzIG9mIGRhdGEgc3RydWN0dXJlczogc2luZ2x5 LWxpbmtlZCBsaXN0cywNCisrICogbGlzdHMsIHNpbXBsZSBxdWV1ZXMsIHRhaWwgcXVldWVzLCBh bmQgY2lyY3VsYXIgcXVldWVzLg0KKysgKg0KKysgKiBBIHNpbmdseS1saW5rZWQgbGlzdCBpcyBo ZWFkZWQgYnkgYSBzaW5nbGUgZm9yd2FyZCBwb2ludGVyLiBUaGUNCisrICogZWxlbWVudHMgYXJl IHNpbmdseSBsaW5rZWQgZm9yIG1pbmltdW0gc3BhY2UgYW5kIHBvaW50ZXIgbWFuaXB1bGF0aW9u DQorKyAqIG92ZXJoZWFkIGF0IHRoZSBleHBlbnNlIG9mIE8obikgcmVtb3ZhbCBmb3IgYXJiaXRy YXJ5IGVsZW1lbnRzLiBOZXcNCisrICogZWxlbWVudHMgY2FuIGJlIGFkZGVkIHRvIHRoZSBsaXN0 IGFmdGVyIGFuIGV4aXN0aW5nIGVsZW1lbnQgb3IgYXQgdGhlDQorKyAqIGhlYWQgb2YgdGhlIGxp c3QuICBFbGVtZW50cyBiZWluZyByZW1vdmVkIGZyb20gdGhlIGhlYWQgb2YgdGhlIGxpc3QNCisr ICogc2hvdWxkIHVzZSB0aGUgZXhwbGljaXQgbWFjcm8gZm9yIHRoaXMgcHVycG9zZSBmb3Igb3B0 aW11bQ0KKysgKiBlZmZpY2llbmN5LiBBIHNpbmdseS1saW5rZWQgbGlzdCBtYXkgb25seSBiZSB0 cmF2ZXJzZWQgaW4gdGhlIGZvcndhcmQNCisrICogZGlyZWN0aW9uLiAgU2luZ2x5LWxpbmtlZCBs aXN0cyBhcmUgaWRlYWwgZm9yIGFwcGxpY2F0aW9ucyB3aXRoIGxhcmdlDQorKyAqIGRhdGFzZXRz IGFuZCBmZXcgb3Igbm8gcmVtb3ZhbHMgb3IgZm9yIGltcGxlbWVudGluZyBhIExJRk8gcXVldWUu DQorKyAqDQorKyAqIEEgbGlzdCBpcyBoZWFkZWQgYnkgYSBzaW5nbGUgZm9yd2FyZCBwb2ludGVy IChvciBhbiBhcnJheSBvZiBmb3J3YXJkDQorKyAqIHBvaW50ZXJzIGZvciBhIGhhc2ggdGFibGUg aGVhZGVyKS4gVGhlIGVsZW1lbnRzIGFyZSBkb3VibHkgbGlua2VkDQorKyAqIHNvIHRoYXQgYW4g YXJiaXRyYXJ5IGVsZW1lbnQgY2FuIGJlIHJlbW92ZWQgd2l0aG91dCBhIG5lZWQgdG8NCisrICog dHJhdmVyc2UgdGhlIGxpc3QuIE5ldyBlbGVtZW50cyBjYW4gYmUgYWRkZWQgdG8gdGhlIGxpc3Qg YmVmb3JlDQorKyAqIG9yIGFmdGVyIGFuIGV4aXN0aW5nIGVsZW1lbnQgb3IgYXQgdGhlIGhlYWQg b2YgdGhlIGxpc3QuIEEgbGlzdA0KKysgKiBtYXkgb25seSBiZSB0cmF2ZXJzZWQgaW4gdGhlIGZv cndhcmQgZGlyZWN0aW9uLg0KKysgKg0KKysgKiBBIHNpbXBsZSBxdWV1ZSBpcyBoZWFkZWQgYnkg YSBwYWlyIG9mIHBvaW50ZXJzLCBvbmUgdGhlIGhlYWQgb2YgdGhlDQorKyAqIGxpc3QgYW5kIHRo ZSBvdGhlciB0byB0aGUgdGFpbCBvZiB0aGUgbGlzdC4gVGhlIGVsZW1lbnRzIGFyZSBzaW5nbHkN CisrICogbGlua2VkIHRvIHNhdmUgc3BhY2UsIHNvIGVsZW1lbnRzIGNhbiBvbmx5IGJlIHJlbW92 ZWQgZnJvbSB0aGUNCisrICogaGVhZCBvZiB0aGUgbGlzdC4gTmV3IGVsZW1lbnRzIGNhbiBiZSBh ZGRlZCB0byB0aGUgbGlzdCBhZnRlcg0KKysgKiBhbiBleGlzdGluZyBlbGVtZW50LCBhdCB0aGUg aGVhZCBvZiB0aGUgbGlzdCwgb3IgYXQgdGhlIGVuZCBvZiB0aGUNCisrICogbGlzdC4gQSBzaW1w bGUgcXVldWUgbWF5IG9ubHkgYmUgdHJhdmVyc2VkIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbi4N CisrICoNCisrICogQSB0YWlsIHF1ZXVlIGlzIGhlYWRlZCBieSBhIHBhaXIgb2YgcG9pbnRlcnMs IG9uZSB0byB0aGUgaGVhZCBvZiB0aGUNCisrICogbGlzdCBhbmQgdGhlIG90aGVyIHRvIHRoZSB0 YWlsIG9mIHRoZSBsaXN0LiBUaGUgZWxlbWVudHMgYXJlIGRvdWJseQ0KKysgKiBsaW5rZWQgc28g dGhhdCBhbiBhcmJpdHJhcnkgZWxlbWVudCBjYW4gYmUgcmVtb3ZlZCB3aXRob3V0IGEgbmVlZCB0 bw0KKysgKiB0cmF2ZXJzZSB0aGUgbGlzdC4gTmV3IGVsZW1lbnRzIGNhbiBiZSBhZGRlZCB0byB0 aGUgbGlzdCBiZWZvcmUgb3INCisrICogYWZ0ZXIgYW4gZXhpc3RpbmcgZWxlbWVudCwgYXQgdGhl IGhlYWQgb2YgdGhlIGxpc3QsIG9yIGF0IHRoZSBlbmQgb2YNCisrICogdGhlIGxpc3QuIEEgdGFp bCBxdWV1ZSBtYXkgYmUgdHJhdmVyc2VkIGluIGVpdGhlciBkaXJlY3Rpb24uDQorKyAqDQorKyAq IEEgY2lyY2xlIHF1ZXVlIGlzIGhlYWRlZCBieSBhIHBhaXIgb2YgcG9pbnRlcnMsIG9uZSB0byB0 aGUgaGVhZCBvZiB0aGUNCisrICogbGlzdCBhbmQgdGhlIG90aGVyIHRvIHRoZSB0YWlsIG9mIHRo ZSBsaXN0LiBUaGUgZWxlbWVudHMgYXJlIGRvdWJseQ0KKysgKiBsaW5rZWQgc28gdGhhdCBhbiBh cmJpdHJhcnkgZWxlbWVudCBjYW4gYmUgcmVtb3ZlZCB3aXRob3V0IGEgbmVlZCB0bw0KKysgKiB0 cmF2ZXJzZSB0aGUgbGlzdC4gTmV3IGVsZW1lbnRzIGNhbiBiZSBhZGRlZCB0byB0aGUgbGlzdCBi ZWZvcmUgb3IgYWZ0ZXINCisrICogYW4gZXhpc3RpbmcgZWxlbWVudCwgYXQgdGhlIGhlYWQgb2Yg dGhlIGxpc3QsIG9yIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuDQorKyAqIEEgY2lyY2xlIHF1ZXVl IG1heSBiZSB0cmF2ZXJzZWQgaW4gZWl0aGVyIGRpcmVjdGlvbiwgYnV0IGhhcyBhIG1vcmUNCisr ICogY29tcGxleCBlbmQgb2YgbGlzdCBkZXRlY3Rpb24uDQorKyAqDQorKyAqIEZvciBkZXRhaWxz IG9uIHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zLCBzZWUgdGhlIHF1ZXVlKDMpIG1hbnVhbCBwYWdl Lg0KKysgKi8NCisrDQorKy8qDQorKyAqIExpc3QgZGVmaW5pdGlvbnMuDQorKyAqLw0KKysjZGVm aW5lCUxJU1RfSEVBRChuYW1lLCB0eXBlKQkJCQkJCVwNCisrc3RydWN0IG5hbWUgewkJCQkJCQkJ XA0KKysJc3RydWN0IHR5cGUgKmxoX2ZpcnN0OwkvKiBmaXJzdCBlbGVtZW50ICovCQkJXA0KKyt9 DQorKw0KKysjZGVmaW5lCUxJU1RfSEVBRF9JTklUSUFMSVpFUihoZWFkKQkJCQkJXA0KKysJeyBO VUxMIH0NCisrDQorKyNkZWZpbmUJTElTVF9FTlRSWSh0eXBlKQkJCQkJCVwNCisrc3RydWN0IHsJ CQkJCQkJCVwNCisrCXN0cnVjdCB0eXBlICpsZV9uZXh0OwkvKiBuZXh0IGVsZW1lbnQgKi8JCQlc DQorKwlzdHJ1Y3QgdHlwZSAqKmxlX3ByZXY7CS8qIGFkZHJlc3Mgb2YgcHJldmlvdXMgbmV4dCBl bGVtZW50ICovCVwNCisrfQ0KKysNCisrLyoNCisrICogTGlzdCBmdW5jdGlvbnMuDQorKyAqLw0K KysjZGVmaW5lCUxJU1RfSU5JVChoZWFkKSBkbyB7CQkJCQkJXA0KKysJKGhlYWQpLT5saF9maXJz dCA9IE5VTEw7CQkJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQ0KKysNCisrI2RlZmlu ZQlMSVNUX0lOU0VSVF9BRlRFUihsaXN0ZWxtLCBlbG0sIGZpZWxkKSBkbyB7CQkJXA0KKysJaWYg KCgoZWxtKS0+ZmllbGQubGVfbmV4dCA9IChsaXN0ZWxtKS0+ZmllbGQubGVfbmV4dCkgIT0gTlVM TCkJXA0KKysJCShsaXN0ZWxtKS0+ZmllbGQubGVfbmV4dC0+ZmllbGQubGVfcHJldiA9CQlcDQor KwkJICAgICYoZWxtKS0+ZmllbGQubGVfbmV4dDsJCQkJXA0KKysJKGxpc3RlbG0pLT5maWVsZC5s ZV9uZXh0ID0gKGVsbSk7CQkJCVwNCisrCShlbG0pLT5maWVsZC5sZV9wcmV2ID0gJihsaXN0ZWxt KS0+ZmllbGQubGVfbmV4dDsJCVwNCisrfSB3aGlsZSAoLypDT05TVENPTkQqLzApDQorKw0KKysj ZGVmaW5lCUxJU1RfSU5TRVJUX0JFRk9SRShsaXN0ZWxtLCBlbG0sIGZpZWxkKSBkbyB7CQkJXA0K KysJKGVsbSktPmZpZWxkLmxlX3ByZXYgPSAobGlzdGVsbSktPmZpZWxkLmxlX3ByZXY7CQlcDQor KwkoZWxtKS0+ZmllbGQubGVfbmV4dCA9IChsaXN0ZWxtKTsJCQkJXA0KKysJKihsaXN0ZWxtKS0+ ZmllbGQubGVfcHJldiA9IChlbG0pOwkJCQlcDQorKwkobGlzdGVsbSktPmZpZWxkLmxlX3ByZXYg PSAmKGVsbSktPmZpZWxkLmxlX25leHQ7CQlcDQorK30gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQ0K KysNCisrI2RlZmluZQlMSVNUX0lOU0VSVF9IRUFEKGhlYWQsIGVsbSwgZmllbGQpIGRvIHsJCQkJ XA0KKysJaWYgKCgoZWxtKS0+ZmllbGQubGVfbmV4dCA9IChoZWFkKS0+bGhfZmlyc3QpICE9IE5V TEwpCQlcDQorKwkJKGhlYWQpLT5saF9maXJzdC0+ZmllbGQubGVfcHJldiA9ICYoZWxtKS0+Zmll bGQubGVfbmV4dDtcDQorKwkoaGVhZCktPmxoX2ZpcnN0ID0gKGVsbSk7CQkJCQlcDQorKwkoZWxt KS0+ZmllbGQubGVfcHJldiA9ICYoaGVhZCktPmxoX2ZpcnN0OwkJCVwNCisrfSB3aGlsZSAoLypD T05TVENPTkQqLzApDQorKw0KKysjZGVmaW5lCUxJU1RfUkVNT1ZFKGVsbSwgZmllbGQpIGRvIHsJ CQkJCVwNCisrCWlmICgoZWxtKS0+ZmllbGQubGVfbmV4dCAhPSBOVUxMKQkJCQlcDQorKwkJKGVs bSktPmZpZWxkLmxlX25leHQtPmZpZWxkLmxlX3ByZXYgPSAJCQlcDQorKwkJICAgIChlbG0pLT5m aWVsZC5sZV9wcmV2OwkJCQlcDQorKwkqKGVsbSktPmZpZWxkLmxlX3ByZXYgPSAoZWxtKS0+Zmll bGQubGVfbmV4dDsJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQ0KKysNCisrI2RlZmlu ZQlMSVNUX0ZPUkVBQ0godmFyLCBoZWFkLCBmaWVsZCkJCQkJCVwNCisrCWZvciAoKHZhcikgPSAo KGhlYWQpLT5saF9maXJzdCk7CQkJCVwNCisrCQkodmFyKTsJCQkJCQkJXA0KKysJCSh2YXIpID0g KCh2YXIpLT5maWVsZC5sZV9uZXh0KSkNCisrDQorKy8qDQorKyAqIExpc3QgYWNjZXNzIG1ldGhv ZHMuDQorKyAqLw0KKysjZGVmaW5lCUxJU1RfRU1QVFkoaGVhZCkJCSgoaGVhZCktPmxoX2ZpcnN0 ID09IE5VTEwpDQorKyNkZWZpbmUJTElTVF9GSVJTVChoZWFkKQkJKChoZWFkKS0+bGhfZmlyc3Qp DQorKyNkZWZpbmUJTElTVF9ORVhUKGVsbSwgZmllbGQpCQkoKGVsbSktPmZpZWxkLmxlX25leHQp DQorKw0KKysNCisrLyoNCisrICogU2luZ2x5LWxpbmtlZCBMaXN0IGRlZmluaXRpb25zLg0KKysg Ki8NCisrI2RlZmluZQlTTElTVF9IRUFEKG5hbWUsIHR5cGUpCQkJCQkJXA0KKytzdHJ1Y3QgbmFt ZSB7CQkJCQkJCQlcDQorKwlzdHJ1Y3QgdHlwZSAqc2xoX2ZpcnN0OwkvKiBmaXJzdCBlbGVtZW50 ICovCQkJXA0KKyt9DQorKw0KKysjZGVmaW5lCVNMSVNUX0hFQURfSU5JVElBTElaRVIoaGVhZCkJ CQkJCVwNCisrCXsgTlVMTCB9DQorKw0KKysjZGVmaW5lCVNMSVNUX0VOVFJZKHR5cGUpCQkJCQkJ XA0KKytzdHJ1Y3QgewkJCQkJCQkJXA0KKysJc3RydWN0IHR5cGUgKnNsZV9uZXh0OwkvKiBuZXh0 IGVsZW1lbnQgKi8JCQlcDQorK30NCisrDQorKy8qDQorKyAqIFNpbmdseS1saW5rZWQgTGlzdCBm dW5jdGlvbnMuDQorKyAqLw0KKysjZGVmaW5lCVNMSVNUX0lOSVQoaGVhZCkgZG8gewkJCQkJCVwN CisrCShoZWFkKS0+c2xoX2ZpcnN0ID0gTlVMTDsJCQkJCVwNCisrfSB3aGlsZSAoLypDT05TVENP TkQqLzApDQorKw0KKysjZGVmaW5lCVNMSVNUX0lOU0VSVF9BRlRFUihzbGlzdGVsbSwgZWxtLCBm aWVsZCkgZG8gewkJCVwNCisrCShlbG0pLT5maWVsZC5zbGVfbmV4dCA9IChzbGlzdGVsbSktPmZp ZWxkLnNsZV9uZXh0OwkJXA0KKysJKHNsaXN0ZWxtKS0+ZmllbGQuc2xlX25leHQgPSAoZWxtKTsJ CQkJXA0KKyt9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkNCisrDQorKyNkZWZpbmUJU0xJU1RfSU5T RVJUX0hFQUQoaGVhZCwgZWxtLCBmaWVsZCkgZG8gewkJCVwNCisrCShlbG0pLT5maWVsZC5zbGVf bmV4dCA9IChoZWFkKS0+c2xoX2ZpcnN0OwkJCVwNCisrCShoZWFkKS0+c2xoX2ZpcnN0ID0gKGVs bSk7CQkJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQ0KKysNCisrI2RlZmluZQlTTElT VF9SRU1PVkVfSEVBRChoZWFkLCBmaWVsZCkgZG8gewkJCQlcDQorKwkoaGVhZCktPnNsaF9maXJz dCA9IChoZWFkKS0+c2xoX2ZpcnN0LT5maWVsZC5zbGVfbmV4dDsJCVwNCisrfSB3aGlsZSAoLypD T05TVENPTkQqLzApDQorKw0KKysjZGVmaW5lCVNMSVNUX1JFTU9WRShoZWFkLCBlbG0sIHR5cGUs IGZpZWxkKSBkbyB7CQkJXA0KKysJaWYgKChoZWFkKS0+c2xoX2ZpcnN0ID09IChlbG0pKSB7CQkJ CVwNCisrCQlTTElTVF9SRU1PVkVfSEVBRCgoaGVhZCksIGZpZWxkKTsJCQlcDQorKwl9CQkJCQkJ CQlcDQorKwllbHNlIHsJCQkJCQkJCVwNCisrCQlzdHJ1Y3QgdHlwZSAqY3VyZWxtID0gKGhlYWQp LT5zbGhfZmlyc3Q7CQlcDQorKwkJd2hpbGUoY3VyZWxtLT5maWVsZC5zbGVfbmV4dCAhPSAoZWxt KSkJCQlcDQorKwkJCWN1cmVsbSA9IGN1cmVsbS0+ZmllbGQuc2xlX25leHQ7CQlcDQorKwkJY3Vy ZWxtLT5maWVsZC5zbGVfbmV4dCA9CQkJCVwNCisrCQkgICAgY3VyZWxtLT5maWVsZC5zbGVfbmV4 dC0+ZmllbGQuc2xlX25leHQ7CQlcDQorKwl9CQkJCQkJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RD T05EKi8wKQ0KKysNCisrI2RlZmluZQlTTElTVF9GT1JFQUNIKHZhciwgaGVhZCwgZmllbGQpCQkJ CQlcDQorKwlmb3IoKHZhcikgPSAoaGVhZCktPnNsaF9maXJzdDsgKHZhcik7ICh2YXIpID0gKHZh ciktPmZpZWxkLnNsZV9uZXh0KQ0KKysNCisrLyoNCisrICogU2luZ2x5LWxpbmtlZCBMaXN0IGFj Y2VzcyBtZXRob2RzLg0KKysgKi8NCisrI2RlZmluZQlTTElTVF9FTVBUWShoZWFkKQkoKGhlYWQp LT5zbGhfZmlyc3QgPT0gTlVMTCkNCisrI2RlZmluZQlTTElTVF9GSVJTVChoZWFkKQkoKGhlYWQp LT5zbGhfZmlyc3QpDQorKyNkZWZpbmUJU0xJU1RfTkVYVChlbG0sIGZpZWxkKQkoKGVsbSktPmZp ZWxkLnNsZV9uZXh0KQ0KKysNCisrDQorKy8qDQorKyAqIFNpbmdseS1saW5rZWQgVGFpbCBxdWV1 ZSBkZWNsYXJhdGlvbnMuDQorKyAqLw0KKysjZGVmaW5lCVNUQUlMUV9IRUFEKG5hbWUsIHR5cGUp CQkJCQlcDQorK3N0cnVjdCBuYW1lIHsJCQkJCQkJCVwNCisrCXN0cnVjdCB0eXBlICpzdHFoX2Zp cnN0OwkvKiBmaXJzdCBlbGVtZW50ICovCQkJXA0KKysJc3RydWN0IHR5cGUgKipzdHFoX2xhc3Q7 CS8qIGFkZHIgb2YgbGFzdCBuZXh0IGVsZW1lbnQgKi8JCVwNCisrfQ0KKysNCisrI2RlZmluZQlT VEFJTFFfSEVBRF9JTklUSUFMSVpFUihoZWFkKQkJCQkJXA0KKysJeyBOVUxMLCAmKGhlYWQpLnN0 cWhfZmlyc3QgfQ0KKysNCisrI2RlZmluZQlTVEFJTFFfRU5UUlkodHlwZSkJCQkJCQlcDQorK3N0 cnVjdCB7CQkJCQkJCQlcDQorKwlzdHJ1Y3QgdHlwZSAqc3RxZV9uZXh0OwkvKiBuZXh0IGVsZW1l bnQgKi8JCQlcDQorK30NCisrDQorKy8qDQorKyAqIFNpbmdseS1saW5rZWQgVGFpbCBxdWV1ZSBm dW5jdGlvbnMuDQorKyAqLw0KKysjZGVmaW5lCVNUQUlMUV9JTklUKGhlYWQpIGRvIHsJCQkJCQlc DQorKwkoaGVhZCktPnN0cWhfZmlyc3QgPSBOVUxMOwkJCQkJXA0KKysJKGhlYWQpLT5zdHFoX2xh c3QgPSAmKGhlYWQpLT5zdHFoX2ZpcnN0OwkJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RDT05EKi8w KQ0KKysNCisrI2RlZmluZQlTVEFJTFFfSU5TRVJUX0hFQUQoaGVhZCwgZWxtLCBmaWVsZCkgZG8g ewkJCVwNCisrCWlmICgoKGVsbSktPmZpZWxkLnN0cWVfbmV4dCA9IChoZWFkKS0+c3RxaF9maXJz dCkgPT0gTlVMTCkJXA0KKysJCShoZWFkKS0+c3RxaF9sYXN0ID0gJihlbG0pLT5maWVsZC5zdHFl X25leHQ7CQlcDQorKwkoaGVhZCktPnN0cWhfZmlyc3QgPSAoZWxtKTsJCQkJCVwNCisrfSB3aGls ZSAoLypDT05TVENPTkQqLzApDQorKw0KKysjZGVmaW5lCVNUQUlMUV9JTlNFUlRfVEFJTChoZWFk LCBlbG0sIGZpZWxkKSBkbyB7CQkJXA0KKysJKGVsbSktPmZpZWxkLnN0cWVfbmV4dCA9IE5VTEw7 CQkJCQlcDQorKwkqKGhlYWQpLT5zdHFoX2xhc3QgPSAoZWxtKTsJCQkJCVwNCisrCShoZWFkKS0+ c3RxaF9sYXN0ID0gJihlbG0pLT5maWVsZC5zdHFlX25leHQ7CQkJXA0KKyt9IHdoaWxlICgvKkNP TlNUQ09ORCovMCkNCisrDQorKyNkZWZpbmUJU1RBSUxRX0lOU0VSVF9BRlRFUihoZWFkLCBsaXN0 ZWxtLCBlbG0sIGZpZWxkKSBkbyB7CQlcDQorKwlpZiAoKChlbG0pLT5maWVsZC5zdHFlX25leHQg PSAobGlzdGVsbSktPmZpZWxkLnN0cWVfbmV4dCkgPT0gTlVMTClcDQorKwkJKGhlYWQpLT5zdHFo X2xhc3QgPSAmKGVsbSktPmZpZWxkLnN0cWVfbmV4dDsJCVwNCisrCShsaXN0ZWxtKS0+ZmllbGQu c3RxZV9uZXh0ID0gKGVsbSk7CQkJCVwNCisrfSB3aGlsZSAoLypDT05TVENPTkQqLzApDQorKw0K KysjZGVmaW5lCVNUQUlMUV9SRU1PVkVfSEVBRChoZWFkLCBmaWVsZCkgZG8gewkJCQlcDQorKwlp ZiAoKChoZWFkKS0+c3RxaF9maXJzdCA9IChoZWFkKS0+c3RxaF9maXJzdC0+ZmllbGQuc3RxZV9u ZXh0KSA9PSBOVUxMKSBcDQorKwkJKGhlYWQpLT5zdHFoX2xhc3QgPSAmKGhlYWQpLT5zdHFoX2Zp cnN0OwkJCVwNCisrfSB3aGlsZSAoLypDT05TVENPTkQqLzApDQorKw0KKysjZGVmaW5lCVNUQUlM UV9SRU1PVkUoaGVhZCwgZWxtLCB0eXBlLCBmaWVsZCkgZG8gewkJCVwNCisrCWlmICgoaGVhZCkt PnN0cWhfZmlyc3QgPT0gKGVsbSkpIHsJCQkJXA0KKysJCVNUQUlMUV9SRU1PVkVfSEVBRCgoaGVh ZCksIGZpZWxkKTsJCQlcDQorKwl9IGVsc2UgewkJCQkJCQlcDQorKwkJc3RydWN0IHR5cGUgKmN1 cmVsbSA9IChoZWFkKS0+c3RxaF9maXJzdDsJCVwNCisrCQl3aGlsZSAoY3VyZWxtLT5maWVsZC5z dHFlX25leHQgIT0gKGVsbSkpCQkJXA0KKysJCQljdXJlbG0gPSBjdXJlbG0tPmZpZWxkLnN0cWVf bmV4dDsJCVwNCisrCQlpZiAoKGN1cmVsbS0+ZmllbGQuc3RxZV9uZXh0ID0JCQkJXA0KKysJCQlj dXJlbG0tPmZpZWxkLnN0cWVfbmV4dC0+ZmllbGQuc3RxZV9uZXh0KSA9PSBOVUxMKSBcDQorKwkJ CSAgICAoaGVhZCktPnN0cWhfbGFzdCA9ICYoY3VyZWxtKS0+ZmllbGQuc3RxZV9uZXh0OyBcDQor Kwl9CQkJCQkJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQ0KKysNCisrI2RlZmluZQlT VEFJTFFfRk9SRUFDSCh2YXIsIGhlYWQsIGZpZWxkKQkJCQlcDQorKwlmb3IgKCh2YXIpID0gKCho ZWFkKS0+c3RxaF9maXJzdCk7CQkJCVwNCisrCQkodmFyKTsJCQkJCQkJXA0KKysJCSh2YXIpID0g KCh2YXIpLT5maWVsZC5zdHFlX25leHQpKQ0KKysNCisrI2RlZmluZQlTVEFJTFFfQ09OQ0FUKGhl YWQxLCBoZWFkMikgZG8gewkJCQlcDQorKwlpZiAoIVNUQUlMUV9FTVBUWSgoaGVhZDIpKSkgewkJ CQkJXA0KKysJCSooaGVhZDEpLT5zdHFoX2xhc3QgPSAoaGVhZDIpLT5zdHFoX2ZpcnN0OwkJXA0K KysJCShoZWFkMSktPnN0cWhfbGFzdCA9IChoZWFkMiktPnN0cWhfbGFzdDsJCVwNCisrCQlTVEFJ TFFfSU5JVCgoaGVhZDIpKTsJCQkJCVwNCisrCX0JCQkJCQkJCVwNCisrfSB3aGlsZSAoLypDT05T VENPTkQqLzApDQorKw0KKysvKg0KKysgKiBTaW5nbHktbGlua2VkIFRhaWwgcXVldWUgYWNjZXNz IG1ldGhvZHMuDQorKyAqLw0KKysjZGVmaW5lCVNUQUlMUV9FTVBUWShoZWFkKQkoKGhlYWQpLT5z dHFoX2ZpcnN0ID09IE5VTEwpDQorKyNkZWZpbmUJU1RBSUxRX0ZJUlNUKGhlYWQpCSgoaGVhZCkt PnN0cWhfZmlyc3QpDQorKyNkZWZpbmUJU1RBSUxRX05FWFQoZWxtLCBmaWVsZCkJKChlbG0pLT5m aWVsZC5zdHFlX25leHQpDQorKw0KKysNCisrLyoNCisrICogU2ltcGxlIHF1ZXVlIGRlZmluaXRp b25zLg0KKysgKi8NCisrI2RlZmluZQlTSU1QTEVRX0hFQUQobmFtZSwgdHlwZSkJCQkJCVwNCisr c3RydWN0IG5hbWUgewkJCQkJCQkJXA0KKysJc3RydWN0IHR5cGUgKnNxaF9maXJzdDsJLyogZmly c3QgZWxlbWVudCAqLwkJCVwNCisrCXN0cnVjdCB0eXBlICoqc3FoX2xhc3Q7CS8qIGFkZHIgb2Yg bGFzdCBuZXh0IGVsZW1lbnQgKi8JCVwNCisrfQ0KKysNCisrI2RlZmluZQlTSU1QTEVRX0hFQURf SU5JVElBTElaRVIoaGVhZCkJCQkJCVwNCisrCXsgTlVMTCwgJihoZWFkKS5zcWhfZmlyc3QgfQ0K KysNCisrI2RlZmluZQlTSU1QTEVRX0VOVFJZKHR5cGUpCQkJCQkJXA0KKytzdHJ1Y3QgewkJCQkJ CQkJXA0KKysJc3RydWN0IHR5cGUgKnNxZV9uZXh0OwkvKiBuZXh0IGVsZW1lbnQgKi8JCQlcDQor K30NCisrDQorKy8qDQorKyAqIFNpbXBsZSBxdWV1ZSBmdW5jdGlvbnMuDQorKyAqLw0KKysjZGVm aW5lCVNJTVBMRVFfSU5JVChoZWFkKSBkbyB7CQkJCQkJXA0KKysJKGhlYWQpLT5zcWhfZmlyc3Qg PSBOVUxMOwkJCQkJXA0KKysJKGhlYWQpLT5zcWhfbGFzdCA9ICYoaGVhZCktPnNxaF9maXJzdDsJ CQkJXA0KKyt9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkNCisrDQorKyNkZWZpbmUJU0lNUExFUV9J TlNFUlRfSEVBRChoZWFkLCBlbG0sIGZpZWxkKSBkbyB7CQkJXA0KKysJaWYgKCgoZWxtKS0+Zmll bGQuc3FlX25leHQgPSAoaGVhZCktPnNxaF9maXJzdCkgPT0gTlVMTCkJXA0KKysJCShoZWFkKS0+ c3FoX2xhc3QgPSAmKGVsbSktPmZpZWxkLnNxZV9uZXh0OwkJXA0KKysJKGhlYWQpLT5zcWhfZmly c3QgPSAoZWxtKTsJCQkJCVwNCisrfSB3aGlsZSAoLypDT05TVENPTkQqLzApDQorKw0KKysjZGVm aW5lCVNJTVBMRVFfSU5TRVJUX1RBSUwoaGVhZCwgZWxtLCBmaWVsZCkgZG8gewkJCVwNCisrCShl bG0pLT5maWVsZC5zcWVfbmV4dCA9IE5VTEw7CQkJCQlcDQorKwkqKGhlYWQpLT5zcWhfbGFzdCA9 IChlbG0pOwkJCQkJXA0KKysJKGhlYWQpLT5zcWhfbGFzdCA9ICYoZWxtKS0+ZmllbGQuc3FlX25l eHQ7CQkJXA0KKyt9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkNCisrDQorKyNkZWZpbmUJU0lNUExF UV9JTlNFUlRfQUZURVIoaGVhZCwgbGlzdGVsbSwgZWxtLCBmaWVsZCkgZG8gewkJXA0KKysJaWYg KCgoZWxtKS0+ZmllbGQuc3FlX25leHQgPSAobGlzdGVsbSktPmZpZWxkLnNxZV9uZXh0KSA9PSBO VUxMKVwNCisrCQkoaGVhZCktPnNxaF9sYXN0ID0gJihlbG0pLT5maWVsZC5zcWVfbmV4dDsJCVwN CisrCShsaXN0ZWxtKS0+ZmllbGQuc3FlX25leHQgPSAoZWxtKTsJCQkJXA0KKyt9IHdoaWxlICgv KkNPTlNUQ09ORCovMCkNCisrDQorKyNkZWZpbmUJU0lNUExFUV9SRU1PVkVfSEVBRChoZWFkLCBm aWVsZCkgZG8gewkJCQlcDQorKwlpZiAoKChoZWFkKS0+c3FoX2ZpcnN0ID0gKGhlYWQpLT5zcWhf Zmlyc3QtPmZpZWxkLnNxZV9uZXh0KSA9PSBOVUxMKSBcDQorKwkJKGhlYWQpLT5zcWhfbGFzdCA9 ICYoaGVhZCktPnNxaF9maXJzdDsJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQ0KKysN CisrI2RlZmluZQlTSU1QTEVRX1JFTU9WRShoZWFkLCBlbG0sIHR5cGUsIGZpZWxkKSBkbyB7CQkJ XA0KKysJaWYgKChoZWFkKS0+c3FoX2ZpcnN0ID09IChlbG0pKSB7CQkJCVwNCisrCQlTSU1QTEVR X1JFTU9WRV9IRUFEKChoZWFkKSwgZmllbGQpOwkJCVwNCisrCX0gZWxzZSB7CQkJCQkJCVwNCisr CQlzdHJ1Y3QgdHlwZSAqY3VyZWxtID0gKGhlYWQpLT5zcWhfZmlyc3Q7CQlcDQorKwkJd2hpbGUg KGN1cmVsbS0+ZmllbGQuc3FlX25leHQgIT0gKGVsbSkpCQkJXA0KKysJCQljdXJlbG0gPSBjdXJl bG0tPmZpZWxkLnNxZV9uZXh0OwkJXA0KKysJCWlmICgoY3VyZWxtLT5maWVsZC5zcWVfbmV4dCA9 CQkJCVwNCisrCQkJY3VyZWxtLT5maWVsZC5zcWVfbmV4dC0+ZmllbGQuc3FlX25leHQpID09IE5V TEwpIFwNCisrCQkJICAgIChoZWFkKS0+c3FoX2xhc3QgPSAmKGN1cmVsbSktPmZpZWxkLnNxZV9u ZXh0OyBcDQorKwl9CQkJCQkJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQ0KKysNCisr I2RlZmluZQlTSU1QTEVRX0ZPUkVBQ0godmFyLCBoZWFkLCBmaWVsZCkJCQkJXA0KKysJZm9yICgo dmFyKSA9ICgoaGVhZCktPnNxaF9maXJzdCk7CQkJCVwNCisrCQkodmFyKTsJCQkJCQkJXA0KKysJ CSh2YXIpID0gKCh2YXIpLT5maWVsZC5zcWVfbmV4dCkpDQorKw0KKysvKg0KKysgKiBTaW1wbGUg cXVldWUgYWNjZXNzIG1ldGhvZHMuDQorKyAqLw0KKysjZGVmaW5lCVNJTVBMRVFfRU1QVFkoaGVh ZCkJCSgoaGVhZCktPnNxaF9maXJzdCA9PSBOVUxMKQ0KKysjZGVmaW5lCVNJTVBMRVFfRklSU1Qo aGVhZCkJCSgoaGVhZCktPnNxaF9maXJzdCkNCisrI2RlZmluZQlTSU1QTEVRX05FWFQoZWxtLCBm aWVsZCkJKChlbG0pLT5maWVsZC5zcWVfbmV4dCkNCisrDQorKw0KKysvKg0KKysgKiBUYWlsIHF1 ZXVlIGRlZmluaXRpb25zLg0KKysgKi8NCisrI2RlZmluZQlfVEFJTFFfSEVBRChuYW1lLCB0eXBl LCBxdWFsKQkJCQkJXA0KKytzdHJ1Y3QgbmFtZSB7CQkJCQkJCQlcDQorKwlxdWFsIHR5cGUgKnRx aF9maXJzdDsJCS8qIGZpcnN0IGVsZW1lbnQgKi8JCVwNCisrCXF1YWwgdHlwZSAqcXVhbCAqdHFo X2xhc3Q7CS8qIGFkZHIgb2YgbGFzdCBuZXh0IGVsZW1lbnQgKi8JXA0KKyt9DQorKyNkZWZpbmUg VEFJTFFfSEVBRChuYW1lLCB0eXBlKQlfVEFJTFFfSEVBRChuYW1lLCBzdHJ1Y3QgdHlwZSwpDQor Kw0KKysjZGVmaW5lCVRBSUxRX0hFQURfSU5JVElBTElaRVIoaGVhZCkJCQkJCVwNCisrCXsgTlVM TCwgJihoZWFkKS50cWhfZmlyc3QgfQ0KKysNCisrI2RlZmluZQlfVEFJTFFfRU5UUlkodHlwZSwg cXVhbCkJCQkJCVwNCisrc3RydWN0IHsJCQkJCQkJCVwNCisrCXF1YWwgdHlwZSAqdHFlX25leHQ7 CQkvKiBuZXh0IGVsZW1lbnQgKi8JCVwNCisrCXF1YWwgdHlwZSAqcXVhbCAqdHFlX3ByZXY7CS8q IGFkZHJlc3Mgb2YgcHJldmlvdXMgbmV4dCBlbGVtZW50ICovXA0KKyt9DQorKyNkZWZpbmUgVEFJ TFFfRU5UUlkodHlwZSkJX1RBSUxRX0VOVFJZKHN0cnVjdCB0eXBlLCkNCisrDQorKy8qDQorKyAq IFRhaWwgcXVldWUgZnVuY3Rpb25zLg0KKysgKi8NCisrI2RlZmluZQlUQUlMUV9JTklUKGhlYWQp IGRvIHsJCQkJCQlcDQorKwkoaGVhZCktPnRxaF9maXJzdCA9IE5VTEw7CQkJCQlcDQorKwkoaGVh ZCktPnRxaF9sYXN0ID0gJihoZWFkKS0+dHFoX2ZpcnN0OwkJCQlcDQorK30gd2hpbGUgKC8qQ09O U1RDT05EKi8wKQ0KKysNCisrI2RlZmluZQlUQUlMUV9JTlNFUlRfSEVBRChoZWFkLCBlbG0sIGZp ZWxkKSBkbyB7CQkJXA0KKysJaWYgKCgoZWxtKS0+ZmllbGQudHFlX25leHQgPSAoaGVhZCktPnRx aF9maXJzdCkgIT0gTlVMTCkJXA0KKysJCShoZWFkKS0+dHFoX2ZpcnN0LT5maWVsZC50cWVfcHJl diA9CQkJXA0KKysJCSAgICAmKGVsbSktPmZpZWxkLnRxZV9uZXh0OwkJCQlcDQorKwllbHNlCQkJ CQkJCQlcDQorKwkJKGhlYWQpLT50cWhfbGFzdCA9ICYoZWxtKS0+ZmllbGQudHFlX25leHQ7CQlc DQorKwkoaGVhZCktPnRxaF9maXJzdCA9IChlbG0pOwkJCQkJXA0KKysJKGVsbSktPmZpZWxkLnRx ZV9wcmV2ID0gJihoZWFkKS0+dHFoX2ZpcnN0OwkJCVwNCisrfSB3aGlsZSAoLypDT05TVENPTkQq LzApDQorKw0KKysjZGVmaW5lCVRBSUxRX0lOU0VSVF9UQUlMKGhlYWQsIGVsbSwgZmllbGQpIGRv IHsJCQlcDQorKwkoZWxtKS0+ZmllbGQudHFlX25leHQgPSBOVUxMOwkJCQkJXA0KKysJKGVsbSkt PmZpZWxkLnRxZV9wcmV2ID0gKGhlYWQpLT50cWhfbGFzdDsJCQlcDQorKwkqKGhlYWQpLT50cWhf bGFzdCA9IChlbG0pOwkJCQkJXA0KKysJKGhlYWQpLT50cWhfbGFzdCA9ICYoZWxtKS0+ZmllbGQu dHFlX25leHQ7CQkJXA0KKyt9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkNCisrDQorKyNkZWZpbmUJ VEFJTFFfSU5TRVJUX0FGVEVSKGhlYWQsIGxpc3RlbG0sIGVsbSwgZmllbGQpIGRvIHsJCVwNCisr CWlmICgoKGVsbSktPmZpZWxkLnRxZV9uZXh0ID0gKGxpc3RlbG0pLT5maWVsZC50cWVfbmV4dCkg IT0gTlVMTClcDQorKwkJKGVsbSktPmZpZWxkLnRxZV9uZXh0LT5maWVsZC50cWVfcHJldiA9IAkJ XA0KKysJCSAgICAmKGVsbSktPmZpZWxkLnRxZV9uZXh0OwkJCQlcDQorKwllbHNlCQkJCQkJCQlc DQorKwkJKGhlYWQpLT50cWhfbGFzdCA9ICYoZWxtKS0+ZmllbGQudHFlX25leHQ7CQlcDQorKwko bGlzdGVsbSktPmZpZWxkLnRxZV9uZXh0ID0gKGVsbSk7CQkJCVwNCisrCShlbG0pLT5maWVsZC50 cWVfcHJldiA9ICYobGlzdGVsbSktPmZpZWxkLnRxZV9uZXh0OwkJXA0KKyt9IHdoaWxlICgvKkNP TlNUQ09ORCovMCkNCisrDQorKyNkZWZpbmUJVEFJTFFfSU5TRVJUX0JFRk9SRShsaXN0ZWxtLCBl bG0sIGZpZWxkKSBkbyB7CQkJXA0KKysJKGVsbSktPmZpZWxkLnRxZV9wcmV2ID0gKGxpc3RlbG0p LT5maWVsZC50cWVfcHJldjsJCVwNCisrCShlbG0pLT5maWVsZC50cWVfbmV4dCA9IChsaXN0ZWxt KTsJCQkJXA0KKysJKihsaXN0ZWxtKS0+ZmllbGQudHFlX3ByZXYgPSAoZWxtKTsJCQkJXA0KKysJ KGxpc3RlbG0pLT5maWVsZC50cWVfcHJldiA9ICYoZWxtKS0+ZmllbGQudHFlX25leHQ7CQlcDQor K30gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQ0KKysNCisrI2RlZmluZQlUQUlMUV9SRU1PVkUoaGVh ZCwgZWxtLCBmaWVsZCkgZG8gewkJCQlcDQorKwlpZiAoKChlbG0pLT5maWVsZC50cWVfbmV4dCkg IT0gTlVMTCkJCQkJXA0KKysJCShlbG0pLT5maWVsZC50cWVfbmV4dC0+ZmllbGQudHFlX3ByZXYg PSAJCVwNCisrCQkgICAgKGVsbSktPmZpZWxkLnRxZV9wcmV2OwkJCQlcDQorKwllbHNlCQkJCQkJ CQlcDQorKwkJKGhlYWQpLT50cWhfbGFzdCA9IChlbG0pLT5maWVsZC50cWVfcHJldjsJCVwNCisr CSooZWxtKS0+ZmllbGQudHFlX3ByZXYgPSAoZWxtKS0+ZmllbGQudHFlX25leHQ7CQkJXA0KKyt9 IHdoaWxlICgvKkNPTlNUQ09ORCovMCkNCisrDQorKyNkZWZpbmUJVEFJTFFfRk9SRUFDSCh2YXIs IGhlYWQsIGZpZWxkKQkJCQkJXA0KKysJZm9yICgodmFyKSA9ICgoaGVhZCktPnRxaF9maXJzdCk7 CQkJCVwNCisrCQkodmFyKTsJCQkJCQkJXA0KKysJCSh2YXIpID0gKCh2YXIpLT5maWVsZC50cWVf bmV4dCkpDQorKw0KKysjZGVmaW5lCVRBSUxRX0ZPUkVBQ0hfUkVWRVJTRSh2YXIsIGhlYWQsIGhl YWRuYW1lLCBmaWVsZCkJCVwNCisrCWZvciAoKHZhcikgPSAoKigoKHN0cnVjdCBoZWFkbmFtZSAq KSgoaGVhZCktPnRxaF9sYXN0KSktPnRxaF9sYXN0KSk7CVwNCisrCQkodmFyKTsJCQkJCQkJXA0K KysJCSh2YXIpID0gKCooKChzdHJ1Y3QgaGVhZG5hbWUgKikoKHZhciktPmZpZWxkLnRxZV9wcmV2 KSktPnRxaF9sYXN0KSkpDQorKw0KKysjZGVmaW5lCVRBSUxRX0NPTkNBVChoZWFkMSwgaGVhZDIs IGZpZWxkKSBkbyB7CQkJCVwNCisrCWlmICghVEFJTFFfRU1QVFkoaGVhZDIpKSB7CQkJCQlcDQor KwkJKihoZWFkMSktPnRxaF9sYXN0ID0gKGhlYWQyKS0+dHFoX2ZpcnN0OwkJXA0KKysJCShoZWFk MiktPnRxaF9maXJzdC0+ZmllbGQudHFlX3ByZXYgPSAoaGVhZDEpLT50cWhfbGFzdDsJXA0KKysJ CShoZWFkMSktPnRxaF9sYXN0ID0gKGhlYWQyKS0+dHFoX2xhc3Q7CQkJXA0KKysJCVRBSUxRX0lO SVQoKGhlYWQyKSk7CQkJCQlcDQorKwl9CQkJCQkJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RDT05E Ki8wKQ0KKysNCisrLyoNCisrICogVGFpbCBxdWV1ZSBhY2Nlc3MgbWV0aG9kcy4NCisrICovDQor KyNkZWZpbmUJVEFJTFFfRU1QVFkoaGVhZCkJCSgoaGVhZCktPnRxaF9maXJzdCA9PSBOVUxMKQ0K KysjZGVmaW5lCVRBSUxRX0ZJUlNUKGhlYWQpCQkoKGhlYWQpLT50cWhfZmlyc3QpDQorKyNkZWZp bmUJVEFJTFFfTkVYVChlbG0sIGZpZWxkKQkJKChlbG0pLT5maWVsZC50cWVfbmV4dCkNCisrDQor KyNkZWZpbmUJVEFJTFFfTEFTVChoZWFkLCBoZWFkbmFtZSkgXA0KKysJKCooKChzdHJ1Y3QgaGVh ZG5hbWUgKikoKGhlYWQpLT50cWhfbGFzdCkpLT50cWhfbGFzdCkpDQorKyNkZWZpbmUJVEFJTFFf UFJFVihlbG0sIGhlYWRuYW1lLCBmaWVsZCkgXA0KKysJKCooKChzdHJ1Y3QgaGVhZG5hbWUgKiko KGVsbSktPmZpZWxkLnRxZV9wcmV2KSktPnRxaF9sYXN0KSkNCisrDQorKw0KKysvKg0KKysgKiBD aXJjdWxhciBxdWV1ZSBkZWZpbml0aW9ucy4NCisrICovDQorKyNkZWZpbmUJQ0lSQ0xFUV9IRUFE KG5hbWUsIHR5cGUpCQkJCQlcDQorK3N0cnVjdCBuYW1lIHsJCQkJCQkJCVwNCisrCXN0cnVjdCB0 eXBlICpjcWhfZmlyc3Q7CQkvKiBmaXJzdCBlbGVtZW50ICovCQlcDQorKwlzdHJ1Y3QgdHlwZSAq Y3FoX2xhc3Q7CQkvKiBsYXN0IGVsZW1lbnQgKi8JCVwNCisrfQ0KKysNCisrI2RlZmluZQlDSVJD TEVRX0hFQURfSU5JVElBTElaRVIoaGVhZCkJCQkJCVwNCisrCXsgKHZvaWQgKikmaGVhZCwgKHZv aWQgKikmaGVhZCB9DQorKw0KKysjZGVmaW5lCUNJUkNMRVFfRU5UUlkodHlwZSkJCQkJCQlcDQor K3N0cnVjdCB7CQkJCQkJCQlcDQorKwlzdHJ1Y3QgdHlwZSAqY3FlX25leHQ7CQkvKiBuZXh0IGVs ZW1lbnQgKi8JCVwNCisrCXN0cnVjdCB0eXBlICpjcWVfcHJldjsJCS8qIHByZXZpb3VzIGVsZW1l bnQgKi8JCVwNCisrfQ0KKysNCisrLyoNCisrICogQ2lyY3VsYXIgcXVldWUgZnVuY3Rpb25zLg0K KysgKi8NCisrI2RlZmluZQlDSVJDTEVRX0lOSVQoaGVhZCkgZG8gewkJCQkJCVwNCisrCShoZWFk KS0+Y3FoX2ZpcnN0ID0gKHZvaWQgKikoaGVhZCk7CQkJCVwNCisrCShoZWFkKS0+Y3FoX2xhc3Qg PSAodm9pZCAqKShoZWFkKTsJCQkJXA0KKyt9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkNCisrDQor KyNkZWZpbmUJQ0lSQ0xFUV9JTlNFUlRfQUZURVIoaGVhZCwgbGlzdGVsbSwgZWxtLCBmaWVsZCkg ZG8gewkJXA0KKysJKGVsbSktPmZpZWxkLmNxZV9uZXh0ID0gKGxpc3RlbG0pLT5maWVsZC5jcWVf bmV4dDsJCVwNCisrCShlbG0pLT5maWVsZC5jcWVfcHJldiA9IChsaXN0ZWxtKTsJCQkJXA0KKysJ aWYgKChsaXN0ZWxtKS0+ZmllbGQuY3FlX25leHQgPT0gKHZvaWQgKikoaGVhZCkpCQlcDQorKwkJ KGhlYWQpLT5jcWhfbGFzdCA9IChlbG0pOwkJCQlcDQorKwllbHNlCQkJCQkJCQlcDQorKwkJKGxp c3RlbG0pLT5maWVsZC5jcWVfbmV4dC0+ZmllbGQuY3FlX3ByZXYgPSAoZWxtKTsJXA0KKysJKGxp c3RlbG0pLT5maWVsZC5jcWVfbmV4dCA9IChlbG0pOwkJCQlcDQorK30gd2hpbGUgKC8qQ09OU1RD T05EKi8wKQ0KKysNCisrI2RlZmluZQlDSVJDTEVRX0lOU0VSVF9CRUZPUkUoaGVhZCwgbGlzdGVs bSwgZWxtLCBmaWVsZCkgZG8gewkJXA0KKysJKGVsbSktPmZpZWxkLmNxZV9uZXh0ID0gKGxpc3Rl bG0pOwkJCQlcDQorKwkoZWxtKS0+ZmllbGQuY3FlX3ByZXYgPSAobGlzdGVsbSktPmZpZWxkLmNx ZV9wcmV2OwkJXA0KKysJaWYgKChsaXN0ZWxtKS0+ZmllbGQuY3FlX3ByZXYgPT0gKHZvaWQgKiko aGVhZCkpCQlcDQorKwkJKGhlYWQpLT5jcWhfZmlyc3QgPSAoZWxtKTsJCQkJXA0KKysJZWxzZQkJ CQkJCQkJXA0KKysJCShsaXN0ZWxtKS0+ZmllbGQuY3FlX3ByZXYtPmZpZWxkLmNxZV9uZXh0ID0g KGVsbSk7CVwNCisrCShsaXN0ZWxtKS0+ZmllbGQuY3FlX3ByZXYgPSAoZWxtKTsJCQkJXA0KKyt9 IHdoaWxlICgvKkNPTlNUQ09ORCovMCkNCisrDQorKyNkZWZpbmUJQ0lSQ0xFUV9JTlNFUlRfSEVB RChoZWFkLCBlbG0sIGZpZWxkKSBkbyB7CQkJXA0KKysJKGVsbSktPmZpZWxkLmNxZV9uZXh0ID0g KGhlYWQpLT5jcWhfZmlyc3Q7CQkJXA0KKysJKGVsbSktPmZpZWxkLmNxZV9wcmV2ID0gKHZvaWQg KikoaGVhZCk7CQkJCVwNCisrCWlmICgoaGVhZCktPmNxaF9sYXN0ID09ICh2b2lkICopKGhlYWQp KQkJCQlcDQorKwkJKGhlYWQpLT5jcWhfbGFzdCA9IChlbG0pOwkJCQlcDQorKwllbHNlCQkJCQkJ CQlcDQorKwkJKGhlYWQpLT5jcWhfZmlyc3QtPmZpZWxkLmNxZV9wcmV2ID0gKGVsbSk7CQlcDQor KwkoaGVhZCktPmNxaF9maXJzdCA9IChlbG0pOwkJCQkJXA0KKyt9IHdoaWxlICgvKkNPTlNUQ09O RCovMCkNCisrDQorKyNkZWZpbmUJQ0lSQ0xFUV9JTlNFUlRfVEFJTChoZWFkLCBlbG0sIGZpZWxk KSBkbyB7CQkJXA0KKysJKGVsbSktPmZpZWxkLmNxZV9uZXh0ID0gKHZvaWQgKikoaGVhZCk7CQkJ CVwNCisrCShlbG0pLT5maWVsZC5jcWVfcHJldiA9IChoZWFkKS0+Y3FoX2xhc3Q7CQkJXA0KKysJ aWYgKChoZWFkKS0+Y3FoX2ZpcnN0ID09ICh2b2lkICopKGhlYWQpKQkJCVwNCisrCQkoaGVhZCkt PmNxaF9maXJzdCA9IChlbG0pOwkJCQlcDQorKwllbHNlCQkJCQkJCQlcDQorKwkJKGhlYWQpLT5j cWhfbGFzdC0+ZmllbGQuY3FlX25leHQgPSAoZWxtKTsJCVwNCisrCShoZWFkKS0+Y3FoX2xhc3Qg PSAoZWxtKTsJCQkJCVwNCisrfSB3aGlsZSAoLypDT05TVENPTkQqLzApDQorKw0KKysjZGVmaW5l CUNJUkNMRVFfUkVNT1ZFKGhlYWQsIGVsbSwgZmllbGQpIGRvIHsJCQkJXA0KKysJaWYgKChlbG0p LT5maWVsZC5jcWVfbmV4dCA9PSAodm9pZCAqKShoZWFkKSkJCQlcDQorKwkJKGhlYWQpLT5jcWhf bGFzdCA9IChlbG0pLT5maWVsZC5jcWVfcHJldjsJCVwNCisrCWVsc2UJCQkJCQkJCVwNCisrCQko ZWxtKS0+ZmllbGQuY3FlX25leHQtPmZpZWxkLmNxZV9wcmV2ID0JCQlcDQorKwkJICAgIChlbG0p LT5maWVsZC5jcWVfcHJldjsJCQkJXA0KKysJaWYgKChlbG0pLT5maWVsZC5jcWVfcHJldiA9PSAo dm9pZCAqKShoZWFkKSkJCQlcDQorKwkJKGhlYWQpLT5jcWhfZmlyc3QgPSAoZWxtKS0+ZmllbGQu Y3FlX25leHQ7CQlcDQorKwllbHNlCQkJCQkJCQlcDQorKwkJKGVsbSktPmZpZWxkLmNxZV9wcmV2 LT5maWVsZC5jcWVfbmV4dCA9CQkJXA0KKysJCSAgICAoZWxtKS0+ZmllbGQuY3FlX25leHQ7CQkJ CVwNCisrfSB3aGlsZSAoLypDT05TVENPTkQqLzApDQorKw0KKysjZGVmaW5lCUNJUkNMRVFfRk9S RUFDSCh2YXIsIGhlYWQsIGZpZWxkKQkJCQlcDQorKwlmb3IgKCh2YXIpID0gKChoZWFkKS0+Y3Fo X2ZpcnN0KTsJCQkJXA0KKysJCSh2YXIpICE9IChjb25zdCB2b2lkICopKGhlYWQpOwkJCQlcDQor KwkJKHZhcikgPSAoKHZhciktPmZpZWxkLmNxZV9uZXh0KSkNCisrDQorKyNkZWZpbmUJQ0lSQ0xF UV9GT1JFQUNIX1JFVkVSU0UodmFyLCBoZWFkLCBmaWVsZCkJCQlcDQorKwlmb3IgKCh2YXIpID0g KChoZWFkKS0+Y3FoX2xhc3QpOwkJCQlcDQorKwkJKHZhcikgIT0gKGNvbnN0IHZvaWQgKikoaGVh ZCk7CQkJCVwNCisrCQkodmFyKSA9ICgodmFyKS0+ZmllbGQuY3FlX3ByZXYpKQ0KKysNCisrLyoN CisrICogQ2lyY3VsYXIgcXVldWUgYWNjZXNzIG1ldGhvZHMuDQorKyAqLw0KKysjZGVmaW5lCUNJ UkNMRVFfRU1QVFkoaGVhZCkJCSgoaGVhZCktPmNxaF9maXJzdCA9PSAodm9pZCAqKShoZWFkKSkN CisrI2RlZmluZQlDSVJDTEVRX0ZJUlNUKGhlYWQpCQkoKGhlYWQpLT5jcWhfZmlyc3QpDQorKyNk ZWZpbmUJQ0lSQ0xFUV9MQVNUKGhlYWQpCQkoKGhlYWQpLT5jcWhfbGFzdCkNCisrI2RlZmluZQlD SVJDTEVRX05FWFQoZWxtLCBmaWVsZCkJKChlbG0pLT5maWVsZC5jcWVfbmV4dCkNCisrI2RlZmlu ZQlDSVJDTEVRX1BSRVYoZWxtLCBmaWVsZCkJKChlbG0pLT5maWVsZC5jcWVfcHJldikNCisrDQor KyNkZWZpbmUgQ0lSQ0xFUV9MT09QX05FWFQoaGVhZCwgZWxtLCBmaWVsZCkJCQkJXA0KKysJKCgo ZWxtKS0+ZmllbGQuY3FlX25leHQgPT0gKHZvaWQgKikoaGVhZCkpCQkJXA0KKysJICAgID8gKCho ZWFkKS0+Y3FoX2ZpcnN0KQkJCQkJXA0KKysJICAgIDogKGVsbS0+ZmllbGQuY3FlX25leHQpKQ0K KysjZGVmaW5lIENJUkNMRVFfTE9PUF9QUkVWKGhlYWQsIGVsbSwgZmllbGQpCQkJCVwNCisrCSgo KGVsbSktPmZpZWxkLmNxZV9wcmV2ID09ICh2b2lkICopKGhlYWQpKQkJCVwNCisrCSAgICA/ICgo aGVhZCktPmNxaF9sYXN0KQkJCQkJXA0KKysJICAgIDogKGVsbS0+ZmllbGQuY3FlX3ByZXYpKQ0K KysNCisrI2VuZGlmCS8qIHN5cy9xdWV1ZS5oICovDQotLSANCjIuOC4xDQoNCg0KDQotLS0NClVu c3Vic2NyaWJlOiAgYWxwaW5lLWFwb3J0cyt1bnN1YnNjcmliZUBsaXN0cy5hbHBpbmVsaW51eC5v cmcNCkhlbHA6ICAgICAgICAgYWxwaW5lLWFwb3J0cytoZWxwQGxpc3RzLmFscGluZWxpbnV4Lm9y Zw0KLS0tDQo=