From mboxrd@z Thu Jan 1 00:00:00 1970 From: tang.junhui@zte.com.cn Subject: Re: [PATCH] multipath-tools: improve processing efficiency for addition and deletion of multipath devices Date: Wed, 18 Jan 2017 15:55:32 +0800 Message-ID: References: <1484725113-5400-1-git-send-email-tang.junhui@zte.com.cn> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8992847758116400589==" Return-path: In-Reply-To: <1484725113-5400-1-git-send-email-tang.junhui@zte.com.cn> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: bmarzins@redhat.com Cc: tang.wenjun3@zte.com.cn, zhang.kai16@zte.com.cn, dm-devel@redhat.com, bart.vanassche@sandisk.com, mwilck@suse.com List-Id: dm-devel.ids This is a multipart message in MIME format. --===============8992847758116400589== Content-Type: multipart/alternative; boundary="=_alternative 002B7F0C482580AC_=" This is a multipart message in MIME format. --=_alternative 002B7F0C482580AC_= Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 SGVsbG8gQUxMLA0KDQpUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHByZXZpb3VzIHR3byBzZXJpZXMg cGF0Y2hlcywgYW5kIG1vZGlmaWVkDQphY2NvcmRpbmcgdG8gQmVuJ3Mgc3VnZ2VzdGlvbiBhcyBi ZWxsb3c6ICANCg0KMSkgYWRkIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGRlZmF1bHRzIHNlY3Rpb24g DQogIHVpZF9hdHRycyAic2Q6SURfU0VSSUFMIGRhc2Q6SURfVUlEIiANCiAgaXQgd291bGQgb3Zl cnJpZGUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGlmIHRoaXMgDQogIGZpbGVkIGlzIGNvbmZp Z3VyZWQgYW5kIG1hdGNoZWQ7IA0KDQoyKSBJbiB1ZXZlbnQgcHJvY2Vzc2luZyB0aHJlYWQsIHdl IHdpbGwgYXNzaWduIHd3aWQNCiAgYWNjb3JkaW5nIHRoZSBsYWJlbCBpbiB1ZXZlbnRzIGJ5IHRo aXMgY29uZmlndXJhdGlvbjsgDQoNCjMpIHRoaXMgcGF0Y2ggd2lsbCB0YWtlIGJhY2s6IA0KICBb UEFUQ0ggMTIvMTJdIGxpYm11bHRpcGF0aDogdXNlIGV4aXN0aW5nIHd3aWQgd2hlbiANCiAgd3dp ZCBoYXMgYWxyZWFkeSBiZWVuIGV4aXN0ZWQgaW4gdWV2ZW50IA0KDQo0KSBpZiB0aGlzIGZpZWxk IGlzIG5vdCBjb25maWd1cmVkLCBvbmx5IGRvIGZpbHRlcmluZyBhbmQgDQogIG5vIG1lcmdpbmcg d29ya3MuDQoNCkkgZm91bmQgaXQgaXMgaGFyZCB0byBtb2RpZnkgcGF0Y2ggYmFzZWQgb24gc2Vy aWVzLCBzbyBJIG9ubHkgcHVzaCBvbmUNCnBhdGNoIHRoaXMgdGltZS4gSWYgaXQgaXMgaGFyZCB0 b28gcmV2aWV3LCBwbGVhc2UgbGV0IG1lIGtub3duLCBJIHdpbGwNCnNwbGl0IGl0IGludG8gYSBz ZXJpZXMgb2Ygc21hbGwgcGF0Y2hlcy4NCg0KVGhhbmtzLA0KVGFuZyBKdW5odWkgDQoNCg0KDQoN CreivP7IyzogICAgICAgICB0YW5nLmp1bmh1aUB6dGUuY29tLmNuDQrK1bz+yMs6ICAgICAgICAg Y2hyaXN0b3BoZS52YXJvcXVpQG9wZW5zdmMuY29tLCBibWFyemluc0ByZWRoYXQuY29tLCANCmhh cmVAc3VzZS5kZSwgbXdpbGNrQHN1c2UuY29tLCBiYXJ0LnZhbmFzc2NoZUBzYW5kaXNrLmNvbSwg DQqzrcvNOiAgIGRtLWRldmVsQHJlZGhhdC5jb20sIHpoYW5nLmthaTE2QHp0ZS5jb20uY24sIA0K dGFuZy53ZW5qdW4zQHp0ZS5jb20uY24sIHRhbmcuanVuaHVpQHp0ZS5jb20uY24NCsjVxto6ICAg MjAxNy8wMS8xOCAxNTozOQ0K1vfM4jogICBbUEFUQ0hdIG11bHRpcGF0aC10b29sczogaW1wcm92 ZSBwcm9jZXNzaW5nIGVmZmljaWVuY3kgZm9yIA0KYWRkaXRpb24gYW5kIGRlbGV0aW9uIG9mIG11 bHRpcGF0aCBkZXZpY2VzDQoNCg0KDQpGcm9tOiAidGFuZy5qdW5odWkiIDx0YW5nLmp1bmh1aUB6 dGUuY29tLmNuPg0KDQpDaGFuZ2UtSWQ6IEkzZjgxYTU1ZmZmMzg5Zjk5MWY5MTU5MjcwMDBiMjgx ZDdlMjYzY2M1DQpTaWduZWQtb2ZmLWJ5OiB0YW5nLmp1bmh1aSA8dGFuZy5qdW5odWlAenRlLmNv bS5jbj4NCg0KVGhpcyBwYXRjaCB1c2VkIHRvIGltcHJvdmUgcHJvY2Vzc2luZyBlZmZpY2llbmN5 IGZvciBhZGRpdGlvbiBhbmQgZGVsZXRpb24NCm9mIG11bHRpcGF0aCBkZXZpY2VzLg0KDQpUaGlz IHBhdGNoIGlzIHRlc3RlZCBwYXNzIGJ5IFpURSBtdWx0aXBhdGggYXV0b21hdGljIHRlc3Rpbmcg c3lzdGVtLg0KVGhlIG1vZGlmaWNhdGlvbiByZWR1Y2VzIHRoZSBzeXN0ZW0gY29uc3VtcHRpb24o c3VjaCBhcyBDUFUpIGFuZCBzaG9ydGVucw0KdGhlIHByb2Nlc3NpbmcgdGltZSBvYnZpb3VzbHkg aW4gc2NlbmUgb2YgbWFzc2l2ZSBtdWx0aXBhdGggZGV2aWNlcw0KYWRkaXRpb24gb3IgZGVsZXRp b24uDQoNClRoZSBtYWluIHByb2Nlc3NpbmcgZmxvdyBvZiBjb2RlIGlzOg0KMSkgYWRkIHVpZF9h dHRycyBjb25maWd1cmF0aW9uIGluIHRoZSBkZWZhdWx0cyBzZWN0aW9uOg0KICAgSXQgaXMgY29u ZmlndXJlZCB1ZGV2IGF0dHJpYnV0ZSB3aGljaCBwcm92aWRpbmcgYSB1bmlxdWUgcGF0aCANCmlk ZW50aWZpZXINCiAgIGZvciBjb3JyZXNwb25kaW5nIHR5cGUgb2YgcGF0aCBkZXZpY2VzLiBJZiB0 aGlzIGZpZWxkIGlzIGNvbmZpZ3VyZWQgYW5kDQogICBtYXRjaGVkIHdpdGggdHlwZSBvZiBkZXZp Y2UsIGl0IHdvdWxkIG92ZXJyaWRlIGFueSBvdGhlciBtZXRob2RzIA0KcHJvdmlkaW5nDQogICBm b3IgZGV2aWNlIHVuaXF1ZSBpZGVudGlmaWVyIGluIGNvbmZpZyBmaWxlLCBhbmQgaXQgd291bGQg YWN0aXZhdGUgDQptZXJnaW5nDQogICB1ZXZlbnRzIGFjY29yZGluZyB0byB0aGUgaWRlbnRpZmll ciB0byBwcm9tb3RlIGVmZmllY25jeSBpbiBwcm9jZXNzaW5nDQogICB1ZXZlbnRzLiBUdCBoYXMg bm8gZGVmYXVsdCB2YWx1ZSwgc28gZGVmYXVsdGx5IG9ubHkgdWV2ZW50cyBmaWx0ZXJpbmcNCiAg IHdvcmtzLCBhbmQgdWV2ZW50cyBtZXJnaW5nIGRvZXMgbm90IHdvcmtzLCBpZiB1c2VycyB3YW50 IHRvIGlkZW50aWZ5IA0KcGF0aA0KICAgYnkgdWRldiBhdHRyaWJ1dGUgYW5kIHRvIGFjdGl2YXRl IG1lcmdpbmcgdWV2ZW50cyBmb3IgU0NTSSBhbmQgREFTIA0KZGV2aWNlLA0KICAgdGhleSBjYW4g c2V0IGl0J3MgdmFsdWUgYXM6DQogICAic2Q6SURfU0VSSUFMIGRhc2Q6SURfVUlEIg0KMikgdWV2 ZW50cyBhY2N1bXVsYXRpb24gaW4gdWV2ZW50cyBidXJzdCBzY2VuZToNCiAgIHdhaXQgb25lIHNl Y29uZHMgZm9yIG1vcmUgdWV2ZW50cyBpbiB1ZXZlbnRfbGlzdGVuKCkgaW4gdWV2ZW50cyBidXJz dA0KICAgc2l0dWF0aW9ucw0KMykgdWV2ZW50cyBwcmVwYXJpbmcsIGZpbHRlcmluZyBhbmQgbWVy Z2luZzoNCiAgIGRpc2NhcmQgdW51c2UgdWV2ZW50cyBhbmQgZmV0Y2ggcGF0aCBpZGVuZGlmaWVy IGZyb20gdWV2ZW50czsNCiAgIGZpbHRlciB1ZXZlbnRzOw0KICAgbWVyZ2UgdWV2ZW50cy4NCjQp IHVldmVudHMgcHJvY2Nlc3Npbmc6DQogICBwcm9jY2VzcyB0aGUgbWVyZ2VkIHVldmVudHMgaW4g dWV2LT5tZXJnZV9ub2RlIGxpc3Qgd2l0aG91dCBjYWxsaW5nDQogICBkb21hcCgpOw0KICAgcHJv Y2Nlc3MgdGhlIGxhc3QgdWV2ZW50cyB1ZXYgd2l0aCBjYWxsaW5nIGRvbWFwKCkuDQoNCkFueSBj b21tZW50IHdpbGwgYmUgd2VsY29tZSwgYW5kIGl0IHdvdWxkIGJlIGFwcHJlY2lhdGVkIGlmIHRo ZXNlDQpwYXRjaGVzIHdvdWxkIGJlIGNvbnNpZGVyZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgdXBz dHJlYW0NCm11bHRpcGF0aC10b29scy4NCg0KVGhhbmsgeW91IGFsbCwNClRhbmcgSnVuaHVpDQot LS0NCiBsaWJtdWx0aXBhdGgvY29uZmlnLmMgICAgICB8ICAgMyArDQogbGlibXVsdGlwYXRoL2Nv bmZpZy5oICAgICAgfCAgIDEgKw0KIGxpYm11bHRpcGF0aC9kaWN0LmMgICAgICAgIHwgICAzICsN CiBsaWJtdWx0aXBhdGgvZGlzY292ZXJ5LmMgICB8ICAgNSArLQ0KIGxpYm11bHRpcGF0aC9kaXNj b3ZlcnkuaCAgIHwgICAyICstDQogbGlibXVsdGlwYXRoL2xpc3QuaCAgICAgICAgfCAgNDEgKysr KysrDQogbGlibXVsdGlwYXRoL3Byb3BzZWwuYyAgICAgfCAgIDcgKw0KIGxpYm11bHRpcGF0aC91 ZXZlbnQuYyAgICAgIHwgMzE5IA0KKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tDQogbGlibXVsdGlwYXRoL3VldmVudC5oICAgICAgfCAgIDIgKw0KIGxpYm11bHRp cGF0aC91dGlsLmMgICAgICAgIHwgIDQwICsrKysrKw0KIGxpYm11bHRpcGF0aC91dGlsLmggICAg ICAgIHwgICAxICsNCiBtdWx0aXBhdGgvbXVsdGlwYXRoLmNvbmYuNSB8ICAxOCArKysNCiBtdWx0 aXBhdGhkL2NsaV9oYW5kbGVycy5jICB8ICAgNCArLQ0KIG11bHRpcGF0aGQvbWFpbi5jICAgICAg ICAgIHwgIDkzICsrKysrLS0tLS0tLS0NCiBtdWx0aXBhdGhkL21haW4uaCAgICAgICAgICB8ICAg NCArLQ0KIDE1IGZpbGVzIGNoYW5nZWQsIDQ2OCBpbnNlcnRpb25zKCspLCA3NSBkZWxldGlvbnMo LSkNCg0KZGlmZiAtLWdpdCBhL2xpYm11bHRpcGF0aC9jb25maWcuYyBiL2xpYm11bHRpcGF0aC9j b25maWcuYw0KaW5kZXggMTVkZGJkOC4uNzY1ZTkxZCAxMDA2NDQNCi0tLSBhL2xpYm11bHRpcGF0 aC9jb25maWcuYw0KKysrIGIvbGlibXVsdGlwYXRoL2NvbmZpZy5jDQpAQCAtNDg4LDYgKzQ4OCw5 IEBAIGZyZWVfY29uZmlnIChzdHJ1Y3QgY29uZmlnICogY29uZikNCiAgICAgICAgICAgICAgICAg aWYgKGNvbmYtPnVpZF9hdHRyaWJ1dGUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGUkVFKGNvbmYtPnVpZF9hdHRyaWJ1dGUpOw0KIA0KKyAgICAgICAgICAgICAgICBpZiAoY29u Zi0+dWlkX2F0dHJzKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJFRShjb25m LT51aWRfYXR0cnMpOw0KKw0KICAgICAgICAgICAgICAgICBpZiAoY29uZi0+Z2V0dWlkKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJFRShjb25mLT5nZXR1aWQpOw0KIA0KZGlm ZiAtLWdpdCBhL2xpYm11bHRpcGF0aC9jb25maWcuaCBiL2xpYm11bHRpcGF0aC9jb25maWcuaA0K aW5kZXggOTY3MDAyMC4uYWI4NTkzMCAxMDA2NDQNCi0tLSBhL2xpYm11bHRpcGF0aC9jb25maWcu aA0KKysrIGIvbGlibXVsdGlwYXRoL2NvbmZpZy5oDQpAQCAtMTUzLDYgKzE1Myw3IEBAIHN0cnVj dCBjb25maWcgew0KIA0KICAgICAgICAgICAgICAgICBjaGFyICogbXVsdGlwYXRoX2RpcjsNCiAg ICAgICAgICAgICAgICAgY2hhciAqIHNlbGVjdG9yOw0KKyAgICAgICAgICAgICAgICBjaGFyICog dWlkX2F0dHJzOw0KICAgICAgICAgICAgICAgICBjaGFyICogdWlkX2F0dHJpYnV0ZTsNCiAgICAg ICAgICAgICAgICAgY2hhciAqIGdldHVpZDsNCiAgICAgICAgICAgICAgICAgY2hhciAqIGZlYXR1 cmVzOw0KZGlmZiAtLWdpdCBhL2xpYm11bHRpcGF0aC9kaWN0LmMgYi9saWJtdWx0aXBhdGgvZGlj dC5jDQppbmRleCBkYzIxODQ2Li4wYTUzMWQxIDEwMDY0NA0KLS0tIGEvbGlibXVsdGlwYXRoL2Rp Y3QuYw0KKysrIGIvbGlibXVsdGlwYXRoL2RpY3QuYw0KQEAgLTI0OSw2ICsyNDksOCBAQCBkZWNs YXJlX292cl9zbnByaW50KHNlbGVjdG9yLCBwcmludF9zdHIpDQogZGVjbGFyZV9tcF9oYW5kbGVy KHNlbGVjdG9yLCBzZXRfc3RyKQ0KIGRlY2xhcmVfbXBfc25wcmludChzZWxlY3RvciwgcHJpbnRf c3RyKQ0KIA0KK2RlY2xhcmVfZGVmX2hhbmRsZXIodWlkX2F0dHJzLCBzZXRfc3RyKQ0KK2RlY2xh cmVfZGVmX3NucHJpbnQodWlkX2F0dHJzLCBwcmludF9zdHIpDQogZGVjbGFyZV9kZWZfaGFuZGxl cih1aWRfYXR0cmlidXRlLCBzZXRfc3RyKQ0KIGRlY2xhcmVfZGVmX3NucHJpbnRfZGVmc3RyKHVp ZF9hdHRyaWJ1dGUsIHByaW50X3N0ciwgDQpERUZBVUxUX1VJRF9BVFRSSUJVVEUpDQogZGVjbGFy ZV9vdnJfaGFuZGxlcih1aWRfYXR0cmlidXRlLCBzZXRfc3RyKQ0KQEAgLTEzNjcsNiArMTM2OSw3 IEBAIGluaXRfa2V5d29yZHModmVjdG9yIGtleXdvcmRzKQ0KICAgICAgICAgICAgICAgICBpbnN0 YWxsX2tleXdvcmQoIm11bHRpcGF0aF9kaXIiLCANCiZkZWZfbXVsdGlwYXRoX2Rpcl9oYW5kbGVy LCAmc25wcmludF9kZWZfbXVsdGlwYXRoX2Rpcik7DQogICAgICAgICAgICAgICAgIGluc3RhbGxf a2V5d29yZCgicGF0aF9zZWxlY3RvciIsICZkZWZfc2VsZWN0b3JfaGFuZGxlciwgDQomc25wcmlu dF9kZWZfc2VsZWN0b3IpOw0KICAgICAgICAgICAgICAgICBpbnN0YWxsX2tleXdvcmQoInBhdGhf Z3JvdXBpbmdfcG9saWN5IiwgDQomZGVmX3BncG9saWN5X2hhbmRsZXIsICZzbnByaW50X2RlZl9w Z3BvbGljeSk7DQorICAgICAgICAgICAgICAgIGluc3RhbGxfa2V5d29yZCgidWlkX2F0dHJzIiwg JmRlZl91aWRfYXR0cnNfaGFuZGxlciwgDQomc25wcmludF9kZWZfdWlkX2F0dHJzKTsNCiAgICAg ICAgICAgICAgICAgaW5zdGFsbF9rZXl3b3JkKCJ1aWRfYXR0cmlidXRlIiwgDQomZGVmX3VpZF9h dHRyaWJ1dGVfaGFuZGxlciwgJnNucHJpbnRfZGVmX3VpZF9hdHRyaWJ1dGUpOw0KICAgICAgICAg ICAgICAgICBpbnN0YWxsX2tleXdvcmQoImdldHVpZF9jYWxsb3V0IiwgJmRlZl9nZXR1aWRfaGFu ZGxlciwgDQomc25wcmludF9kZWZfZ2V0dWlkKTsNCiAgICAgICAgICAgICAgICAgaW5zdGFsbF9r ZXl3b3JkKCJwcmlvIiwgJmRlZl9wcmlvX25hbWVfaGFuZGxlciwgDQomc25wcmludF9kZWZfcHJp b19uYW1lKTsNCmRpZmYgLS1naXQgYS9saWJtdWx0aXBhdGgvZGlzY292ZXJ5LmMgYi9saWJtdWx0 aXBhdGgvZGlzY292ZXJ5LmMNCmluZGV4IGQxYWVjMzEuLjE0OTA0ZjIgMTAwNjQ0DQotLS0gYS9s aWJtdWx0aXBhdGgvZGlzY292ZXJ5LmMNCisrKyBiL2xpYm11bHRpcGF0aC9kaXNjb3ZlcnkuYw0K QEAgLTMzLDcgKzMzLDcgQEANCiANCiBpbnQNCiBhbGxvY19wYXRoX3dpdGhfcGF0aGluZm8gKHN0 cnVjdCBjb25maWcgKmNvbmYsIHN0cnVjdCB1ZGV2X2RldmljZSANCip1ZGV2aWNlLA0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZsYWcsIHN0 cnVjdCBwYXRoIA0KKipwcF9wdHIpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGFyICp3d2lkLCBpbnQgZmxhZywgDQpzdHJ1Y3QgcGF0aCAqKnBw X3B0cikNCiB7DQogICAgICAgICAgICAgICAgIGludCBlcnIgPSBQQVRISU5GT19GQUlMRUQ7DQog ICAgICAgICAgICAgICAgIHN0cnVjdCBwYXRoICogcHA7DQpAQCAtNTEsNiArNTEsOSBAQCBhbGxv Y19wYXRoX3dpdGhfcGF0aGluZm8gKHN0cnVjdCBjb25maWcgKmNvbmYsIHN0cnVjdCANCnVkZXZf ZGV2aWNlICp1ZGV2aWNlLA0KICAgICAgICAgICAgICAgICBpZiAoIXBwKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBBVEhJTkZPX0ZBSUxFRDsNCiANCisgICAgICAg ICAgICAgICAgaWYod3dpZCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm5j cHkocHAtPnd3aWQsIHd3aWQsIA0Kc2l6ZW9mKHBwLT53d2lkKSk7DQorDQogICAgICAgICAgICAg ICAgIGlmIChzYWZlX3NwcmludGYocHAtPmRldiwgIiVzIiwgZGV2bmFtZSkpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRsb2coMCwgInBwLT5kZXYgdG9vIHNtYWxsIik7 DQogICAgICAgICAgICAgICAgIH0gZWxzZSB7DQpkaWZmIC0tZ2l0IGEvbGlibXVsdGlwYXRoL2Rp c2NvdmVyeS5oIGIvbGlibXVsdGlwYXRoL2Rpc2NvdmVyeS5oDQppbmRleCAzMDM5MjY4Li5kMTZh NjlhIDEwMDY0NA0KLS0tIGEvbGlibXVsdGlwYXRoL2Rpc2NvdmVyeS5oDQorKysgYi9saWJtdWx0 aXBhdGgvZGlzY292ZXJ5LmgNCkBAIC0zNyw3ICszNyw3IEBAIGludCBwYXRoX29mZmxpbmUgKHN0 cnVjdCBwYXRoICopOw0KIGludCBnZXRfc3RhdGUgKHN0cnVjdCBwYXRoICogcHAsIHN0cnVjdCBj b25maWcgKiBjb25mLCBpbnQgZGFlbW9uKTsNCiBpbnQgcGF0aGluZm8gKHN0cnVjdCBwYXRoICog cHAsIHN0cnVjdCBjb25maWcgKiBjb25mLCBpbnQgbWFzayk7DQogaW50IGFsbG9jX3BhdGhfd2l0 aF9wYXRoaW5mbyAoc3RydWN0IGNvbmZpZyAqY29uZiwgc3RydWN0IHVkZXZfZGV2aWNlIA0KKnVk ZXZpY2UsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IGZsYWcsIHN0cnVjdCANCnBhdGggKipwcF9wdHIpOw0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnd3aWQsIGludCAN CmZsYWcsIHN0cnVjdCBwYXRoICoqcHBfcHRyKTsNCiBpbnQgc3RvcmVfcGF0aGluZm8gKHZlY3Rv ciBwYXRodmVjLCBzdHJ1Y3QgY29uZmlnICpjb25mLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB1ZGV2X2RldmljZSAqdWRldmljZSwgaW50IA0KZmxhZywNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGF0aCAqKnBwX3B0cik7 DQpkaWZmIC0tZ2l0IGEvbGlibXVsdGlwYXRoL2xpc3QuaCBiL2xpYm11bHRpcGF0aC9saXN0LmgN CmluZGV4IGNlYWEzODEuLjJiMWRjZjMgMTAwNjQ0DQotLS0gYS9saWJtdWx0aXBhdGgvbGlzdC5o DQorKysgYi9saWJtdWx0aXBhdGgvbGlzdC5oDQpAQCAtMzE3LDQgKzMxNyw0NSBAQCBzdGF0aWMg aW5saW5lIHZvaWQgbGlzdF9zcGxpY2VfdGFpbF9pbml0KHN0cnVjdCANCmxpc3RfaGVhZCAqbGlz dCwNCiAgICAgICAgICAgICAgICAgICAgICAmcG9zLT5tZW1iZXIgIT0gKGhlYWQpOyAgIFwNCiAg ICAgICAgICAgICAgICAgICAgICBwb3MgPSBuLCBuID0gbGlzdF9lbnRyeShuLT5tZW1iZXIubmV4 dCwgdHlwZW9mKCpuKSwgDQptZW1iZXIpKQ0KIA0KKy8qKg0KKyAqIGxpc3RfZm9yX2VhY2hfZW50 cnlfcmV2ZXJzZV9zYWZlIC0gaXRlcmF0ZSBiYWNrd2FyZHMgb3ZlciBsaXN0IG9mIA0KZ2l2ZW4g dHlwZSBzYWZlIGFnYWluc3QgcmVtb3ZhbCBvZiBsaXN0IGVudHJ5DQorICogQHBvczogICAgICAg ICAgICAgICAgdGhlIHR5cGUgKiB0byB1c2UgYXMgYSBsb29wIGNvdW50ZXIuDQorICogQG46ICAg ICAgICAgICAgICAgICAgICAgICAgICBhbm90aGVyIHR5cGUgKiB0byB1c2UgYXMgdGVtcG9yYXJ5 IA0Kc3RvcmFnZQ0KKyAqIEBoZWFkOiAgICAgICAgICAgICAgIHRoZSBoZWFkIGZvciB5b3VyIGxp c3QuDQorICogQG1lbWJlcjogICAgICAgICAgICAgdGhlIG5hbWUgb2YgdGhlIGxpc3Rfc3RydWN0 IHdpdGhpbiB0aGUgc3RydWN0Lg0KKyAqLw0KKyNkZWZpbmUgbGlzdF9mb3JfZWFjaF9lbnRyeV9y ZXZlcnNlX3NhZmUocG9zLCBuLCBoZWFkLCBtZW1iZXIpICAgICAgICAgIFwNCisgICAgICAgICAg ICAgICAgZm9yIChwb3MgPSBsaXN0X2VudHJ5KChoZWFkKS0+cHJldiwgdHlwZW9mKCpwb3MpLCAN Cm1lbWJlciksICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSBs aXN0X2VudHJ5KHBvcy0+bWVtYmVyLnByZXYsIA0KdHlwZW9mKCpwb3MpLCBtZW1iZXIpO1wNCisg ICAgICAgICAgICAgICAgICAgICAmcG9zLT5tZW1iZXIgIT0gKGhlYWQpOyAgICAgICBcDQorICAg ICAgICAgICAgICAgICAgICAgcG9zID0gbiwgbiA9IGxpc3RfZW50cnkobi0+bWVtYmVyLnByZXYs IHR5cGVvZigqbiksIA0KbWVtYmVyKSkNCisNCisvKioNCisgKiBsaXN0X2Zvcl9zb21lX2VudHJ5 X3NhZmUgLSBpdGVyYXRlIGxpc3QgZnJvbSB0aGUgZ2l2ZW4gYmVnaW4gbm9kZSB0byANCnRoZSBn aXZlbiBlbmQgbm9kZSBzYWZlIGFnYWluc3QgcmVtb3ZhbCBvZiBsaXN0IGVudHJ5DQorICogQHBv czogICAgICAgICAgICAgICAgdGhlIHR5cGUgKiB0byB1c2UgYXMgYSBsb29wIGNvdW50ZXIuDQor ICogQG46ICAgICAgICAgICAgICAgICAgICAgICAgICBhbm90aGVyIHR5cGUgKiB0byB1c2UgYXMg dGVtcG9yYXJ5IA0Kc3RvcmFnZQ0KKyAqIEBmcm9tOiAgICAgICAgICAgICAgIHRoZSBiZWdpbiBu b2RlIG9mIHRoZSBpdGVyYXRpb24uDQorICogQHRvOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoZSBlbmQgbm9kZSBvZiB0aGUgaXRlcmF0aW9uLg0KKyAqIEBtZW1iZXI6ICAgICAg ICAgICAgIHRoZSBuYW1lIG9mIHRoZSBsaXN0X3N0cnVjdCB3aXRoaW4gdGhlIHN0cnVjdC4NCisg Ki8NCisjZGVmaW5lIGxpc3RfZm9yX3NvbWVfZW50cnlfc2FmZShwb3MsIG4sIGZyb20sIHRvLCBt ZW1iZXIpICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgIGZvciAocG9zID0gbGlzdF9l bnRyeSgoZnJvbSktPm5leHQsIHR5cGVvZigqcG9zKSwgDQptZW1iZXIpLCAgICAgIFwNCisgICAg ICAgICAgICAgICAgICAgICBuID0gbGlzdF9lbnRyeShwb3MtPm1lbWJlci5uZXh0LCB0eXBlb2Yo KnBvcyksIA0KbWVtYmVyKTsgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICZwb3MtPm1lbWJl ciAhPSAodG8pOyAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgcG9zID0gbiwgbiA9IGxp c3RfZW50cnkobi0+bWVtYmVyLm5leHQsIHR5cGVvZigqbiksIA0KbWVtYmVyKSkNCisNCisvKioN CisgKiBsaXN0X2Zvcl9zb21lX2VudHJ5X3JldmVyc2Vfc2FmZSAtIGl0ZXJhdGUgYmFja3dhcmRz IGxpc3QgZnJvbSB0aGUgDQpnaXZlbiBiZWdpbiBub2RlIHRvIHRoZSBnaXZlbiBlbmQgbm9kZSBz YWZlIGFnYWluc3QgcmVtb3ZhbCBvZiBsaXN0IGVudHJ5DQorICogQHBvczogICAgICAgICAgICAg ICAgdGhlIHR5cGUgKiB0byB1c2UgYXMgYSBsb29wIGNvdW50ZXIuDQorICogQG46ICAgICAgICAg ICAgICAgICAgICAgICAgICBhbm90aGVyIHR5cGUgKiB0byB1c2UgYXMgdGVtcG9yYXJ5IA0Kc3Rv cmFnZQ0KKyAqIEBmcm9tOiAgICAgICAgICAgICAgIHRoZSBiZWdpbiBub2RlIG9mIHRoZSBpdGVy YXRpb24uDQorICogQHRvOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBlbmQg bm9kZSBvZiB0aGUgaXRlcmF0aW9uLg0KKyAqIEBtZW1iZXI6ICAgICAgICAgICAgIHRoZSBuYW1l IG9mIHRoZSBsaXN0X3N0cnVjdCB3aXRoaW4gdGhlIHN0cnVjdC4NCisgKi8NCisjZGVmaW5lIGxp c3RfZm9yX3NvbWVfZW50cnlfcmV2ZXJzZV9zYWZlKHBvcywgbiwgZnJvbSwgdG8sIG1lbWJlcikg ICAgICBcDQorICAgICAgICAgICAgICAgIGZvciAocG9zID0gbGlzdF9lbnRyeSgoZnJvbSktPnBy ZXYsIHR5cGVvZigqcG9zKSwgDQptZW1iZXIpLCAgICAgIFwNCisgICAgICAgICAgICAgICAgICAg ICBuID0gbGlzdF9lbnRyeShwb3MtPm1lbWJlci5wcmV2LCB0eXBlb2YoKnBvcyksIA0KbWVtYmVy KTsgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICZwb3MtPm1lbWJlciAhPSAodG8pOyAgICAg ICBcDQorICAgICAgICAgICAgICAgICAgICAgcG9zID0gbiwgbiA9IGxpc3RfZW50cnkobi0+bWVt YmVyLnByZXYsIHR5cGVvZigqbiksIA0KbWVtYmVyKSkNCisNCiAjZW5kaWYgLyogX0xJU1RfSCAq Lw0KZGlmZiAtLWdpdCBhL2xpYm11bHRpcGF0aC9wcm9wc2VsLmMgYi9saWJtdWx0aXBhdGgvcHJv cHNlbC5jDQppbmRleCBjMGJjNjE2Li41YTU4ZGMwIDEwMDY0NA0KLS0tIGEvbGlibXVsdGlwYXRo L3Byb3BzZWwuYw0KKysrIGIvbGlibXVsdGlwYXRoL3Byb3BzZWwuYw0KQEAgLTE4LDYgKzE4LDcg QEANCiAjaW5jbHVkZSAicHJpby5oIg0KICNpbmNsdWRlICJkaXNjb3ZlcnkuaCINCiAjaW5jbHVk ZSAiZGljdC5oIg0KKyNpbmNsdWRlICJ1dGlsLmgiDQogI2luY2x1ZGUgInByaW9yaXRpemVycy9h bHVhX3J0cGcuaCINCiAjaW5jbHVkZSA8aW50dHlwZXMuaD4NCiANCkBAIC0zMzksNiArMzQwLDEy IEBAIGludCBzZWxlY3RfZ2V0dWlkKHN0cnVjdCBjb25maWcgKmNvbmYsIHN0cnVjdCBwYXRoIA0K KnBwKQ0KIHsNCiAgICAgICAgICAgICAgICAgY2hhciAqb3JpZ2luOw0KIA0KKyAgICAgICAgICAg ICAgICBwcC0+dWlkX2F0dHJpYnV0ZSA9IA0KcGFyc2VfdWlkX2F0dHJpYnV0ZV9ieV9hdHRycyhj b25mLT51aWRfYXR0cnMsIHBwLT5kZXYpOw0KKyAgICAgICAgICAgICAgICBpZiAocHAtPnVpZF9h dHRyaWJ1dGUpIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbiA9ICIo Y29uZmlnIGZpbGUgZGVmYXVsdCkiOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z290byBvdXQ7DQorICAgICAgICAgICAgICAgIH0NCisNCiAgICAgICAgICAgICAgICAgcHBfc2V0 X292cihnZXR1aWQpOw0KICAgICAgICAgICAgICAgICBwcF9zZXRfb3ZyKHVpZF9hdHRyaWJ1dGUp Ow0KICAgICAgICAgICAgICAgICBwcF9zZXRfaHdlKGdldHVpZCk7DQpkaWZmIC0tZ2l0IGEvbGli bXVsdGlwYXRoL3VldmVudC5jIGIvbGlibXVsdGlwYXRoL3VldmVudC5jDQppbmRleCA3ZWRjY2Ux Li43ZTRhYzA0IDEwMDY0NA0KLS0tIGEvbGlibXVsdGlwYXRoL3VldmVudC5jDQorKysgYi9saWJt dWx0aXBhdGgvdWV2ZW50LmMNCkBAIC0yNCw2ICsyNCw3IEBADQogDQogI2luY2x1ZGUgPHVuaXN0 ZC5oPg0KICNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxzdGRib29sLmg+DQogI2luY2x1 ZGUgPGVycm5vLmg+DQogI2luY2x1ZGUgPHN0ZGxpYi5oPg0KICNpbmNsdWRlIDxzdGRkZWYuaD4N CkBAIC0zOCw2ICszOSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4NCiAjaW5jbHVk ZSA8cHRocmVhZC5oPg0KICNpbmNsdWRlIDxzeXMvbW1hbi5oPg0KKyNpbmNsdWRlIDxzeXMvdGlt ZS5oPg0KICNpbmNsdWRlIDxsaWJ1ZGV2Lmg+DQogI2luY2x1ZGUgPGVycm5vLmg+DQogDQpAQCAt NDYsNiArNDgsMTQgQEANCiAjaW5jbHVkZSAibGlzdC5oIg0KICNpbmNsdWRlICJ1ZXZlbnQuaCIN CiAjaW5jbHVkZSAidmVjdG9yLmgiDQorI2luY2x1ZGUgInN0cnVjdHMuaCINCisjaW5jbHVkZSAi dXRpbC5oIg0KKyNpbmNsdWRlICJjb25maWcuaCINCisjaW5jbHVkZSAiYmxhY2tsaXN0LmgiDQor DQorI2RlZmluZSBNQVhfQUNDVU1VTEFUSU9OX0NPVU5UIDIwNDgNCisjZGVmaW5lIE1BWF9BQ0NV TVVMQVRJT05fVElNRSAzMCoxMDAwDQorI2RlZmluZSBNSU5fQlVSU1RfU1BFRUQgMTANCiANCiB0 eXBlZGVmIGludCAodWV2X3RyaWdnZXIpKHN0cnVjdCB1ZXZlbnQgKiwgdm9pZCAqIHRyaWdnZXJf ZGF0YSk7DQogDQpAQCAtNzIsNDggKzgyLDMwMCBAQCBzdHJ1Y3QgdWV2ZW50ICogYWxsb2NfdWV2 ZW50ICh2b2lkKQ0KIHsNCiAgICAgICAgICAgICAgICAgc3RydWN0IHVldmVudCAqdWV2ID0gTUFM TE9DKHNpemVvZihzdHJ1Y3QgdWV2ZW50KSk7DQogDQotICAgICAgICAgICAgICAgIGlmICh1ZXYp DQorICAgICAgICAgICAgICAgIGlmICh1ZXYpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElOSVRfTElTVF9IRUFEKCZ1ZXYtPm5vZGUpOw0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU5JVF9MSVNUX0hFQUQoJnVldi0+bWVyZ2Vfbm9kZSk7DQorICAgICAgICAg ICAgICAgIH0NCiANCiAgICAgICAgICAgICAgICAgcmV0dXJuIHVldjsNCiB9DQogDQogdm9pZA0K LXNlcnZpY2VfdWV2cShzdHJ1Y3QgbGlzdF9oZWFkICp0bXBxKQ0KK3VldnFfY2xlYW51cChzdHJ1 Y3QgbGlzdF9oZWFkICp0bXBxKQ0KIHsNCiAgICAgICAgICAgICAgICAgc3RydWN0IHVldmVudCAq dWV2LCAqdG1wOw0KIA0KICAgICAgICAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUo dWV2LCB0bXAsIHRtcHEsIG5vZGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpc3RfZGVsX2luaXQoJnVldi0+bm9kZSk7DQogDQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAobXlfdWV2X3RyaWdnZXIgJiYgbXlfdWV2X3RyaWdnZXIodWV2LCANCm15X3Ry aWdnZXJfZGF0YSkpDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uZGxvZygwLCAidWV2ZW50IA0KdHJpZ2dlciBlcnJvciIpOw0KLQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVldi0+dWRldikNCiB1ZGV2X2RldmljZV91bnJl Zih1ZXYtPnVkZXYpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJFRSh1ZXYp Ow0KICAgICAgICAgICAgICAgICB9DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHVldmVudF9jbGVhbnVw KHZvaWQgKmFyZykNCit2b2lkDQordWV2ZW50X2dldF93d2lkKHN0cnVjdCB1ZXZlbnQgKnVldikN CiB7DQotICAgICAgICAgICAgICAgIHN0cnVjdCB1ZGV2ICp1ZGV2ID0gYXJnOw0KKyAgICAgICAg ICAgICAgICBpbnQgaTsNCisgICAgICAgICAgICAgICAgY2hhciAqdWlkX2F0dHJpYnV0ZTsNCisg ICAgICAgICAgICAgICAgc3RydWN0IGNvbmZpZyAqIGNvbmY7DQorIA0KKyAgICAgICAgICAgICAg ICBjb25mID0gZ2V0X211bHRpcGF0aF9jb25maWcoKTsNCisgICAgICAgICAgICAgICAgdWlkX2F0 dHJpYnV0ZSA9IA0KcGFyc2VfdWlkX2F0dHJpYnV0ZV9ieV9hdHRycyhjb25mLT51aWRfYXR0cnMs IHVldi0+a2VybmVsKTsNCisgICAgICAgICAgICAgICAgcHV0X211bHRpcGF0aF9jb25maWcoY29u Zik7IA0KKyANCisgICAgICAgICAgICAgICAgaWYgKCF1aWRfYXR0cmlidXRlKQ0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KKyANCisgICAgICAgICAgICAgICAgZm9y IChpID0gMDsgdWV2LT5lbnZwW2ldICE9IE5VTEw7IGkrKykgew0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCFzdHJuY21wKHVldi0+ZW52cFtpXSwgdWlkX2F0dHJpYnV0ZSwg DQpzdHJsZW4odWlkX2F0dHJpYnV0ZSkpICYmDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RybGVuKHVldi0+ZW52cFtpXSkgPiANCnN0cmxlbih1aWRfYXR0cmlidXRlKSkg ew0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVldi0+ d3dpZCA9IHVldi0+ZW52cFtpXSANCisgc3RybGVuKHVpZF9hdHRyaWJ1dGUpICsgMTsNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgfQ0KKyAgICAg ICAgICAgICAgICBmcmVlKHVpZF9hdHRyaWJ1dGUpOw0KK30NCiANCi0gICAgICAgICAgICAgICAg Y29uZGxvZygzLCAiUmVsZWFzaW5nIHVldmVudF9saXN0ZW4oKSByZXNvdXJjZXMiKTsNCi0gICAg ICAgICAgICAgICAgdWRldl91bnJlZih1ZGV2KTsNCitib29sDQordWV2ZW50X25lZWRfbWVyZ2Uo dm9pZCkNCit7DQorICAgICAgICAgICAgICAgIHN0cnVjdCBjb25maWcgKiBjb25mOw0KKyAgICAg ICAgICAgICAgICBib29sIG5lZWRfbWVyZ2UgPSBmYWxzZTsNCisNCisgICAgICAgICAgICAgICAg Y29uZiA9IGdldF9tdWx0aXBhdGhfY29uZmlnKCk7DQorICAgICAgICAgICAgICAgIGlmIChjb25m LT51aWRfYXR0cnMpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkX21lcmdl ID0gdHJ1ZTsNCisgICAgICAgICAgICAgICAgcHV0X211bHRpcGF0aF9jb25maWcoY29uZik7IA0K Kw0KKyAgICAgICAgICAgICAgICByZXR1cm4gbmVlZF9tZXJnZTsNCit9DQorDQorYm9vbA0KK3Vl dmVudF9jYW5fZGlzY2FyZChzdHJ1Y3QgdWV2ZW50ICp1ZXYpDQorew0KKyAgICAgICAgICAgICAg ICBjaGFyICp0bXA7DQorICAgICAgICAgICAgICAgIGNoYXIgYVsxMV0sIGJbMTFdOw0KKyAgICAg ICAgICAgICAgICBzdHJ1Y3QgY29uZmlnICogY29uZjsNCisNCisgICAgICAgICAgICAgICAgLyoN CisgICAgICAgICAgICAgICAgICoga2VlcCBvbmx5IGJsb2NrIGRldmljZXMsIGRpc2NhcmQgcGFy dGl0aW9ucw0KKyAgICAgICAgICAgICAgICAgKi8NCisgICAgICAgICAgICAgICAgdG1wID0gc3Ry c3RyKHVldi0+ZGV2cGF0aCwgIi9ibG9jay8iKTsNCisgICAgICAgICAgICAgICAgaWYgKHRtcCA9 PSBOVUxMKXsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRsb2coNCwgIm5v IC9ibG9jay8gaW4gJyVzJyIsIA0KdWV2LT5kZXZwYXRoKTsNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAg ICAgICAgIGlmIChzc2NhbmYodG1wLCAiL2Jsb2NrLyUxMHMiLCBhKSAhPSAxIHx8DQorICAgICAg ICAgICAgICAgICAgICBzc2NhbmYodG1wLCAiL2Jsb2NrLyUxMFteL10vJTEwcyIsIGEsIGIpID09 IDIpIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRsb2coNCwgImRpc2Nh cmQgZXZlbnQgb24gJXMiLCANCnVldi0+ZGV2cGF0aCk7DQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAg ICAgICAgICAvKiANCisgICAgICAgICAgICAgICAgICogZG8gbm90IGZpbHRlciBkbSBkZXZpY2Vz IGJ5IGRldm5vZGUNCisgICAgICAgICAgICAgICAgICovDQorICAgICAgICAgICAgICAgIGlmICgh c3RybmNtcCh1ZXYtPmtlcm5lbCwgImRtLSIsIDMpKQ0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgICAgICAvKiANCisgICAgICAgICAg ICAgICAgICogZmlsdGVyIHBhdGhzIGRldmljZXMgYnkgZGV2bm9kZQ0KKyAgICAgICAgICAgICAg ICAgKi8NCisgICAgICAgICAgICAgICAgY29uZiA9IGdldF9tdWx0aXBhdGhfY29uZmlnKCk7DQor ICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJfZGV2bm9kZShjb25mLT5ibGlzdF9kZXZub2RlLCAN CmNvbmYtPmVsaXN0X2Rldm5vZGUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWV2LT5rZXJuZWwpID4gMCkgew0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHV0X211bHRpcGF0aF9jb25maWcoY29uZik7DQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgICAgICAgICAgICAgfQ0KKyAg ICAgICAgICAgICAgICBwdXRfbXVsdGlwYXRoX2NvbmZpZyhjb25mKTsNCisNCisgICAgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOw0KK30NCisNCitib29sDQordWV2ZW50X2Nhbl9maWx0ZXIoc3Ry dWN0IHVldmVudCAqZWFybGllciwgc3RydWN0IHVldmVudCAqbGF0ZXIpDQorew0KKw0KKyAgICAg ICAgICAgICAgICAvKg0KKyAgICAgICAgICAgICAgICAgKiBmaWx0ZXIgZWFybGllciB1dmVudHMg aWYgcGF0aCBoYXMgcmVtb3ZlZCBsYXRlci4gRWc6DQorICAgICAgICAgICAgICAgICAqICJhZGQg cGF0aDEgfGNoYW5nIHBhdGgxIHxhZGQgcGF0aDIgfHJlbW92ZSBwYXRoMSINCisgICAgICAgICAg ICAgICAgICogY2FuIGZpbHRlciBhczoNCisgICAgICAgICAgICAgICAgICogImFkZCBwYXRoMiB8 cmVtb3ZlIHBhdGgxIg0KKyAgICAgICAgICAgICAgICAgKiB1ZXZlbnRzICJhZGQgcGF0aDEiIGFu ZCAiY2hhbmcgcGF0aDEiIGFyZSBmaWx0ZXJlZCBvdXQNCisgICAgICAgICAgICAgICAgICovDQor ICAgICAgICAgICAgICAgIGlmICghc3RyY21wKGVhcmxpZXItPmtlcm5lbCwgbGF0ZXItPmtlcm5l bCkgJiYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdHJjbXAobGF0ZXItPmFj dGlvbiwgInJlbW92ZSIpICYmDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJu Y21wKGxhdGVyLT5rZXJuZWwsICJkbS0iLCAzKSkgew0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAg ICAgICAgLyoNCisgICAgICAgICAgICAgICAgICogZmlsdGVyIGNoYW5nZSB1dmVudHMgaWYgYWRk IHVldmVudHMgZXhpc3QuIEVnOg0KKyAgICAgICAgICAgICAgICAgKiAiY2hhbmdlIHBhdGgxfCBh ZGQgcGF0aDEgfGFkZCBwYXRoMiINCisgICAgICAgICAgICAgICAgICogY2FuIGZpbHRlciBhczoN CisgICAgICAgICAgICAgICAgICogImFkZCBwYXRoMSB8YWRkIHBhdGgyIg0KKyAgICAgICAgICAg ICAgICAgKiB1ZXZlbnQgImNoYW5nIHBhdGgxIiBpcyBmaWx0ZXJlZCBvdXQNCisgICAgICAgICAg ICAgICAgICovDQorICAgICAgICAgICAgICAgIGlmICghc3RyY21wKGVhcmxpZXItPmtlcm5lbCwg bGF0ZXItPmtlcm5lbCkgJiYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdHJj bXAoZWFybGllci0+YWN0aW9uLCAiY2hhbmdlIikgJiYNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICFzdHJjbXAobGF0ZXItPmFjdGlvbiwgImFkZCIpICYmDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJuY21wKGxhdGVyLT5rZXJuZWwsICJkbS0iLCAzKSkgew0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAgICAg ICAgICAgIH0NCisNCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KK30NCisNCitib29s DQorbWVyZ2VfbmVlZF9zdG9wKHN0cnVjdCB1ZXZlbnQgKmVhcmxpZXIsIHN0cnVjdCB1ZXZlbnQg KmxhdGVyKQ0KK3sNCisgICAgICAgICAgICAgICAgLyoNCisgICAgICAgICAgICAgICAgICogZG0g dWV2ZW50IGRvIG5vdCB0cnkgdG8gbWVyZ2Ugd2l0aCBsZWZ0IHVldmVudHMNCisgICAgICAgICAg ICAgICAgICovDQorICAgICAgICAgICAgICAgIGlmICghc3RybmNtcChsYXRlci0+a2VybmVsLCAi ZG0tIiwgMykpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsN CisNCisgICAgICAgICAgICAgICAgLyoNCisgICAgICAgICAgICAgICAgICogd2UgY2FuIG5vdCBt YWtlIGEganVnZW1lbnQgd2l0aG91dCB3d2lkLA0KKyAgICAgICAgICAgICAgICAgKiBzbyBpdCBp cyBzZW5zaWJsZSB0byBzdG9wIG1lcmdpbmcNCisgICAgICAgICAgICAgICAgICovDQorICAgICAg ICAgICAgICAgIGlmICghZWFybGllci0+d3dpZCB8fCAhbGF0ZXItPnd3aWQpDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgICAgICAgICAgICAgLyoN CisgICAgICAgICAgICAgICAgICogdWV2ZW50cyBtZXJnaW5nIHN0b3BlZA0KKyAgICAgICAgICAg ICAgICAgKiB3aGVuIHdlIG1lZXQgYW4gb3Bwb3NpdGUgYWN0aW9uIHVldmVudCBmcm9tIHRoZSBz YW1lIA0KTFVOIHRvIEFWT0lEDQorICAgICAgICAgICAgICAgICAqICJhZGQgcGF0aDEgfHJlbW92 ZSBwYXRoMSB8YWRkIHBhdGgyIHxyZW1vdmUgcGF0aDIgfGFkZCANCnBhdGgzIg0KKyAgICAgICAg ICAgICAgICAgKiB0byBtZXJnZSBhcyAicmVtb3ZlIHBhdGgxLCBwYXRoMiIgYW5kICJhZGQgcGF0 aDEsIA0KcGF0aDIsIHBhdGgzIg0KKyAgICAgICAgICAgICAgICAgKiBPUg0KKyAgICAgICAgICAg ICAgICAgKiAicmVtb3ZlIHBhdGgxIHxhZGQgcGF0aDEgfHJlbW92ZSBwYXRoMiB8YWRkIHBhdGgy IA0KfHJlbW92ZSBwYXRoMyINCisgICAgICAgICAgICAgICAgICogdG8gbWVyZ2UgYXMgImFkZCBw YXRoMSwgcGF0aDIiIGFuZCAicmVtb3ZlIHBhdGgxLCANCnBhdGgyLCBwYXRoMyINCisgICAgICAg ICAgICAgICAgICogU08NCisgICAgICAgICAgICAgICAgICogd2hlbiB3ZSBtZWV0IGEgbm9uLWNo YW5nZSB1ZXZlbnQgZnJvbSB0aGUgc2FtZSBMVU4NCisgICAgICAgICAgICAgICAgICogd2l0aCB0 aGUgc2FtZSB3d2lkIGFuZCBkaWZmZXJlbnQgYWN0aW9uDQorICAgICAgICAgICAgICAgICAqIGl0 IHdvdWxkIGJlIGJldHRlciB0byBzdG9wIG1lcmdpbmcuDQorICAgICAgICAgICAgICAgICAqLw0K KyAgICAgICAgICAgICAgICBpZiAoIXN0cmNtcChlYXJsaWVyLT53d2lkLCBsYXRlci0+d3dpZCkg JiYNCisgICAgICAgICAgICAgICAgICAgIHN0cmNtcChlYXJsaWVyLT5hY3Rpb24sIGxhdGVyLT5h Y3Rpb24pICYmDQorICAgICAgICAgICAgICAgICAgICBzdHJjbXAoZWFybGllci0+YWN0aW9uLCAi Y2hhbmdlIikgJiYNCisgICAgICAgICAgICAgICAgICAgIHN0cmNtcChsYXRlci0+YWN0aW9uLCAi Y2hhbmdlIikpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsN CisNCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KK30NCisNCitib29sDQordWV2ZW50 X2Nhbl9tZXJnZShzdHJ1Y3QgdWV2ZW50ICplYXJsaWVyLCBzdHJ1Y3QgdWV2ZW50ICpsYXRlcikN Cit7DQorICAgICAgICAgICAgICAgIC8qIG1lcmdlIHBhdGhzIHVldmVudHMNCisgICAgICAgICAg ICAgICAgICogd2hvc2Ugd3dpZHMgZXhzaXQgYW5kIGFyZSBzYW1lDQorICAgICAgICAgICAgICAg ICAqIGFuZCBhY3Rpb25zIGFyZSBzYW1lLA0KKyAgICAgICAgICAgICAgICAgKiBhbmQgYWN0aW9u cyBhcmUgYWRkaXRpb24gb3IgZGVsZXRpb24NCisgICAgICAgICAgICAgICAgICovDQorICAgICAg ICAgICAgICAgIGlmIChlYXJsaWVyLT53d2lkICYmIGxhdGVyLT53d2lkICYmDQorICAgICAgICAg ICAgICAgICAgICAhc3RyY21wKGVhcmxpZXItPnd3aWQsIGxhdGVyLT53d2lkKSAmJg0KKyAgICAg ICAgICAgICAgICAgICAgIXN0cmNtcChlYXJsaWVyLT5hY3Rpb24sIGxhdGVyLT5hY3Rpb24pICYm DQorICAgICAgICAgICAgICAgICAgICBzdHJuY21wKGVhcmxpZXItPmFjdGlvbiwgImNoYW5nZSIs IDYpICYmDQorICAgICAgICAgICAgICAgICAgICBzdHJuY21wKGVhcmxpZXItPmtlcm5lbCwgImRt LSIsIDMpKSB7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsN CisgICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQog fQ0KIA0KIHZvaWQNCi11ZXZxX2NsZWFudXAoc3RydWN0IGxpc3RfaGVhZCAqdG1wcSkNCit1ZXZl bnRfcHJlcGFyZShzdHJ1Y3QgbGlzdF9oZWFkICp0bXBxKQ0KK3sNCisgICAgICAgICAgICAgICAg c3RydWN0IHVldmVudCAqdWV2LCAqdG1wOw0KKw0KKyAgICAgICAgICAgICAgICBsaXN0X2Zvcl9l YWNoX2VudHJ5X3JldmVyc2Vfc2FmZSh1ZXYsIHRtcCwgdG1wcSwgbm9kZSkgew0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVldmVudF9jYW5fZGlzY2FyZCh1ZXYpKSB7DQor IGxpc3RfZGVsX2luaXQoJnVldi0+bm9kZSk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKHVldi0+dWRldikNCisgdWRldl9kZXZpY2VfdW5yZWYo dWV2LT51ZGV2KTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGUkVFKHVldik7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQor DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RybmNtcCh1ZXYtPmtlcm5l bCwgImRtLSIsIDMpICYmDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWV2 ZW50X25lZWRfbWVyZ2UoKSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1ZXZlbnRfZ2V0X3d3aWQodWV2KTsNCisgICAgICAgICAgICAgICAgfQ0KK30N CisNCit2b2lkDQordWV2ZW50X2ZpbHRlcihzdHJ1Y3QgdWV2ZW50ICpsYXRlciwgc3RydWN0IGxp c3RfaGVhZCAqdG1wcSkNCit7DQorICAgICAgICAgICAgICAgIHN0cnVjdCB1ZXZlbnQgKmVhcmxp ZXIsICp0bXA7DQorDQorICAgICAgICAgICAgICAgIGxpc3RfZm9yX3NvbWVfZW50cnlfcmV2ZXJz ZV9zYWZlKGVhcmxpZXIsIHRtcCwgDQombGF0ZXItPm5vZGUsIHRtcHEsIG5vZGUpIHsNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKiBmaWx0ZXIgdW5uZXNzYXJ5IGVhcmxpZXIgdWV2ZW50cyANCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqIGJ5IHRoZSBsYXRlciB1ZXZlbnQNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKHVldmVudF9jYW5fZmlsdGVyKGVhcmxpZXIsIGxhdGVyKSkgew0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRsb2coMiwgInVldmVudDog JXMtJXMgDQpoYXMgZmlsdGVyZWQgYnkgdWV2ZW50OiAlcy0lcyIsDQorIGVhcmxpZXItPmtlcm5l bCwgZWFybGllci0+YWN0aW9uLCANCisgbGF0ZXItPmtlcm5lbCwgbGF0ZXItPmFjdGlvbik7DQor DQorIGxpc3RfZGVsX2luaXQoJmVhcmxpZXItPm5vZGUpOw0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlYXJsaWVyLT51ZGV2KQ0KKyB1ZGV2X2Rl dmljZV91bnJlZihlYXJsaWVyLT51ZGV2KTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGUkVFKGVhcmxpZXIpOw0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB9DQorfQ0KKw0KK3ZvaWQNCit1ZXZlbnRf bWVyZ2Uoc3RydWN0IHVldmVudCAqbGF0ZXIsIHN0cnVjdCBsaXN0X2hlYWQgKnRtcHEpDQorew0K KyAgICAgICAgICAgICAgICBzdHJ1Y3QgdWV2ZW50ICplYXJsaWVyLCAqdG1wOw0KKw0KKyAgICAg ICAgICAgICAgICBsaXN0X2Zvcl9zb21lX2VudHJ5X3JldmVyc2Vfc2FmZShlYXJsaWVyLCB0bXAs IA0KJmxhdGVyLT5ub2RlLCB0bXBxLCBub2RlKSB7DQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAobWVyZ2VfbmVlZF9zdG9wKGVhcmxpZXIsIGxhdGVyKSkNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKiBtZXJnZSBlYXJsaWVyIHVldmVudHMgdG8gdGhlIGxhdGVyIA0KdWV2ZW50DQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICh1ZXZlbnRfY2FuX21lcmdlKGVhcmxpZXIsIGxhdGVyKSkgew0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRsb2coMiwgIm1lcmdl ZCANCnVldmVudDogJXMtJXMtJXMgd2l0aCB1ZXZlbnQ6ICVzLSVzLSVzIiwNCisgZWFybGllci0+ YWN0aW9uLCBlYXJsaWVyLT5rZXJuZWwsIGVhcmxpZXItPnd3aWQsDQorIGxhdGVyLT5hY3Rpb24s IGxhdGVyLT5rZXJuZWwsIGxhdGVyLT53d2lkKTsNCisNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0X21vdmUoJmVhcmxpZXItPm5vZGUsIA0KJmxh dGVyLT5tZXJnZV9ub2RlKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCisg ICAgICAgICAgICAgICAgfQ0KK30NCisNCit2b2lkDQorbWVyZ2VfdWV2cShzdHJ1Y3QgbGlzdF9o ZWFkICp0bXBxKQ0KK3sNCisgICAgICAgICAgICAgICAgc3RydWN0IHVldmVudCAqbGF0ZXI7DQor DQorICAgICAgICAgICAgICAgIHVldmVudF9wcmVwYXJlKHRtcHEpOw0KKyAgICAgICAgICAgICAg ICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JldmVyc2UobGF0ZXIsIHRtcHEsIG5vZGUpIHsNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVldmVudF9maWx0ZXIobGF0ZXIsIHRtcHEpOw0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodWV2ZW50X25lZWRfbWVyZ2UoKSkN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ZXZlbnRf bWVyZ2UobGF0ZXIsIA0KdG1wcSk7DQorICAgICAgICAgICAgICAgIH0NCit9DQorDQordm9pZA0K K3NlcnZpY2VfdWV2cShzdHJ1Y3QgbGlzdF9oZWFkICp0bXBxKQ0KIHsNCiAgICAgICAgICAgICAg ICAgc3RydWN0IHVldmVudCAqdWV2LCAqdG1wOw0KIA0KICAgICAgICAgICAgICAgICBsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUodWV2LCB0bXAsIHRtcHEsIG5vZGUpIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpc3RfZGVsX2luaXQoJnVldi0+bm9kZSk7DQorDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobXlfdWV2X3RyaWdnZXIgJiYgbXlfdWV2X3Ry aWdnZXIodWV2LCANCm15X3RyaWdnZXJfZGF0YSkpDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uZGxvZygwLCAidWV2ZW50IA0KdHJpZ2dlciBlcnJv ciIpOw0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWV2cV9jbGVhbnVwKCZ1 ZXYtPm1lcmdlX25vZGUpOw0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KHVldi0+dWRldikNCisgdWRldl9kZXZpY2VfdW5yZWYodWV2LT51ZGV2KTsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZSRUUodWV2KTsNCiAgICAgICAgICAgICAgICAgfQ0KIH0N CiANCitzdGF0aWMgdm9pZCB1ZXZlbnRfY2xlYW51cCh2b2lkICphcmcpDQorew0KKyAgICAgICAg ICAgICAgICBzdHJ1Y3QgdWRldiAqdWRldiA9IGFyZzsNCisNCisgICAgICAgICAgICAgICAgY29u ZGxvZygzLCAiUmVsZWFzaW5nIHVldmVudF9saXN0ZW4oKSByZXNvdXJjZXMiKTsNCisgICAgICAg ICAgICAgICAgdWRldl91bnJlZih1ZGV2KTsNCit9DQorDQogLyoNCiAgKiBTZXJ2aWNlIHRoZSB1 ZXZlbnQgcXVldWUuDQogICovDQpAQCAtMTQyLDYgKzQwNCw3IEBAIGludCB1ZXZlbnRfZGlzcGF0 Y2goaW50ICgqdWV2X3RyaWdnZXIpKHN0cnVjdCB1ZXZlbnQgDQoqLCB2b2lkICogdHJpZ2dlcl9k YXRhKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5s b2NrKHVldnFfbG9ja3ApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFt eV91ZXZfdHJpZ2dlcikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlX3Vl dnEoJnVldnFfdG1wKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2Vf dWV2cSgmdWV2cV90bXApOw0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIGNv bmRsb2coMywgIlRlcm1pbmF0aW5nIHVldiBzZXJ2aWNlIHF1ZXVlIik7DQpAQCAtNDQyLDExICs3 MDUsNDMgQEAgc3RydWN0IHVldmVudCAqdWV2ZW50X2Zyb21fdWRldl9kZXZpY2Uoc3RydWN0IA0K dWRldl9kZXZpY2UgKmRldikNCiAgICAgICAgICAgICAgICAgcmV0dXJuIHVldjsNCiB9DQogDQor Ym9vbCB1ZXZlbnRfYnVyc3Qoc3RydWN0IHRpbWV2YWwgKnN0YXJ0X3RpbWUsIGludCBldmVudHMp DQorew0KKyAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXZhbCBkaWZmX3RpbWUsIGVuZF90aW1l Ow0KKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNwZWVkOw0KKyAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIGVjbGlwc2VfbXM7DQorDQorICAgICAgICAgICAgICAgIGlmKGV2ZW50 cyA+IE1BWF9BQ0NVTVVMQVRJT05fQ09VTlQpIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbmRsb2coMiwgImJ1cnN0IGdvdCAldSB1ZXZlbnRzLCB0b28gDQptdWNoIHVldmVu dHMsIHN0b3BwZWQiLCBldmVudHMpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgICAgICB9DQorDQorICAgICAgICAgICAgICAgIGdl dHRpbWVvZmRheSgmZW5kX3RpbWUsIE5VTEwpOw0KKyAgICAgICAgICAgICAgICB0aW1lcnN1Yigm ZW5kX3RpbWUsIHN0YXJ0X3RpbWUsICZkaWZmX3RpbWUpOw0KKw0KKyAgICAgICAgICAgICAgICBl Y2xpcHNlX21zID0gZGlmZl90aW1lLnR2X3NlYyAqIDEwMDAgKyBkaWZmX3RpbWUudHZfdXNlYyAN Ci8gMTAwMDsNCisNCisgICAgICAgICAgICAgICAgaWYgKGVjbGlwc2VfbXMgPT0gMCkNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KKw0KKyAgICAgICAgICAg ICAgICBpZiAoZWNsaXBzZV9tcyA+IE1BWF9BQ0NVTVVMQVRJT05fVElNRSkgew0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uZGxvZygyLCAiYnVyc3QgY29udGludWVkICVsdSBt cywgdG9vIA0KbG9uZyB0aW1lLCBzdG9wcGVkIiwgZWNsaXBzZV9tcyk7DQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgICAgIH0NCisN CisgICAgICAgICAgICAgICAgc3BlZWQgPSAoZXZlbnRzICogMTAwMCkgLyBlY2xpcHNlX21zOw0K KyAgICAgICAgICAgICAgICBpZiAoc3BlZWQgPiBNSU5fQlVSU1RfU1BFRUQpDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCisNCisgICAgICAgICAgICAgICAg cmV0dXJuIGZhbHNlOw0KK30NCisNCiBpbnQgdWV2ZW50X2xpc3RlbihzdHJ1Y3QgdWRldiAqdWRl dikNCiB7DQogICAgICAgICAgICAgICAgIGludCBlcnIgPSAyOw0KICAgICAgICAgICAgICAgICBz dHJ1Y3QgdWRldl9tb25pdG9yICptb25pdG9yID0gTlVMTDsNCiAgICAgICAgICAgICAgICAgaW50 IGZkLCBzb2NrZXRfZmxhZ3MsIGV2ZW50czsNCisgICAgICAgICAgICAgICAgc3RydWN0IHRpbWV2 YWwgc3RhcnRfdGltZTsNCiAgICAgICAgICAgICAgICAgaW50IG5lZWRfZmFpbGJhY2sgPSAxOw0K ICAgICAgICAgICAgICAgICBpbnQgdGltZW91dCA9IDMwOw0KICAgICAgICAgICAgICAgICBMSVNU X0hFQUQodWV2bGlzdGVuX3RtcCk7DQpAQCAtNTAwLDYgKzc5NSw3IEBAIGludCB1ZXZlbnRfbGlz dGVuKHN0cnVjdCB1ZGV2ICp1ZGV2KQ0KICAgICAgICAgICAgICAgICB9DQogDQogICAgICAgICAg ICAgICAgIGV2ZW50cyA9IDA7DQorICAgICAgICAgICAgICAgIGdldHRpbWVvZmRheSgmc3RhcnRf dGltZSwgTlVMTCk7DQogICAgICAgICAgICAgICAgIHdoaWxlICgxKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWV2ZW50ICp1ZXY7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWRldl9kZXZpY2UgKmRldjsNCkBAIC01MTQsNyArODEw LDcgQEAgaW50IHVldmVudF9saXN0ZW4oc3RydWN0IHVkZXYgKnVkZXYpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlcnJubyA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmZGNvdW50ID0gcG9sbCgmZXZfcG9sbCwgMSwgDQpwb2xsX3RpbWVvdXQpOw0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZkY291bnQgJiYgZXZfcG9sbC5yZXZl bnRzICYgUE9MTElOKSANCnsNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aW1lb3V0ID0gMDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gDQp1ZXZlbnRfYnVyc3QoJnN0YXJ0X3RpbWUsIGV2 ZW50cyArIDEpID8gMSA6IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGV2ID0gDQp1ZGV2X21vbml0b3JfcmVjZWl2ZV9kZXZpY2UobW9uaXRvcik7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFk ZXYpIHsNCiBjb25kbG9nKDAsICJmYWlsZWQgZ2V0dGluZyB1ZGV2IGRldmljZSIpOw0KQEAgLTU0 Nyw2ICs4NDMsNyBAQCBpbnQgdWV2ZW50X2xpc3RlbihzdHJ1Y3QgdWRldiAqdWRldikNCiBwdGhy ZWFkX211dGV4X3VubG9jayh1ZXZxX2xvY2twKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBldmVudHMgPSAwOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0dGltZW9m ZGF5KCZzdGFydF90aW1lLCBOVUxMKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRpbWVvdXQgPSAzMDsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICBuZWVk X2ZhaWxiYWNrID0gMDsNCmRpZmYgLS1naXQgYS9saWJtdWx0aXBhdGgvdWV2ZW50LmggYi9saWJt dWx0aXBhdGgvdWV2ZW50LmgNCmluZGV4IDlkMjJkY2QuLjYxYTQyMDcgMTAwNjQ0DQotLS0gYS9s aWJtdWx0aXBhdGgvdWV2ZW50LmgNCisrKyBiL2xpYm11bHRpcGF0aC91ZXZlbnQuaA0KQEAgLTE3 LDExICsxNywxMyBAQCBzdHJ1Y3QgdWRldjsNCiANCiBzdHJ1Y3QgdWV2ZW50IHsNCiAgICAgICAg ICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBub2RlOw0KKyAgICAgICAgICAgICAgICBzdHJ1Y3Qg bGlzdF9oZWFkIG1lcmdlX25vZGU7DQogICAgICAgICAgICAgICAgIHN0cnVjdCB1ZGV2X2Rldmlj ZSAqdWRldjsNCiAgICAgICAgICAgICAgICAgY2hhciBidWZmZXJbSE9UUExVR19CVUZGRVJfU0la RSArIE9CSkVDVF9TSVpFXTsNCiAgICAgICAgICAgICAgICAgY2hhciAqZGV2cGF0aDsNCiAgICAg ICAgICAgICAgICAgY2hhciAqYWN0aW9uOw0KICAgICAgICAgICAgICAgICBjaGFyICprZXJuZWw7 DQorICAgICAgICAgICAgICAgIGNoYXIgKnd3aWQ7DQogICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgc2VxbnVtOw0KICAgICAgICAgICAgICAgICBjaGFyICplbnZwW0hPVFBMVUdfTlVNX0VO VlBdOw0KIH07DQpkaWZmIC0tZ2l0IGEvbGlibXVsdGlwYXRoL3V0aWwuYyBiL2xpYm11bHRpcGF0 aC91dGlsLmMNCmluZGV4IDAzYTU3MzguLmU1YTRhMjggMTAwNjQ0DQotLS0gYS9saWJtdWx0aXBh dGgvdXRpbC5jDQorKysgYi9saWJtdWx0aXBhdGgvdXRpbC5jDQpAQCAtMjYxLDYgKzI2MSw0NiBA QCBkZXZfdCBwYXJzZV9kZXZ0KGNvbnN0IGNoYXIgKmRldl90KQ0KICAgICAgICAgICAgICAgICBy ZXR1cm4gbWFrZWRldihtYWosIG1pbik7DQogfQ0KIA0KK2NoYXIgKnBhcnNlX3VpZF9hdHRyaWJ1 dGVfYnlfYXR0cnMoY2hhciAqdWlkX2F0dHJzLCBjaGFyICpwYXRoX2RldikNCit7DQorICAgICAg ICAgICAgICAgIGNoYXIgKnVpZF9hdHRyaWJ1dGU7DQorICAgICAgICAgICAgICAgIGNoYXIgKnVp ZF9hdHRyX3JlY29yZDsNCisgICAgICAgICAgICAgICAgY2hhciAqZGV2Ow0KKyAgICAgICAgICAg ICAgICBjaGFyICphdHRyOw0KKyAgICAgICAgICAgICAgICBjaGFyICp0bXA7DQorICAgICAgICAg ICAgICAgIGludCAgY291bnQ7DQorDQorICAgICAgICAgICAgICAgIGlmKCF1aWRfYXR0cnMgfHwg IXBhdGhfZGV2KQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7 DQorDQorICAgICAgICAgICAgICAgIGNvdW50ID0gZ2V0X3dvcmQodWlkX2F0dHJzLCAmdWlkX2F0 dHJfcmVjb3JkKTsNCisgICAgICAgICAgICAgICAgd2hpbGUgKHVpZF9hdHRyX3JlY29yZCkgew0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gc3RycmNocih1aWRfYXR0cl9y ZWNvcmQsICc6Jyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRtcCkg ew0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUo dWlkX2F0dHJfcmVjb3JkKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoIWNvdW50KQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCA9IA0KZ2V0X3dvcmQodWlkX2F0 dHJzICsgY291bnQsICZ1aWRfYXR0cl9yZWNvcmQpOw0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2ID0gdWlk X2F0dHJfcmVjb3JkOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciA9IHRt cCArIDE7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqdG1wID0gJ1wwJzsNCisN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFzdHJuY21wKHBhdGhfZGV2LCBk ZXYsIHN0cmxlbihkZXYpKSkgDQp7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWlkX2F0dHJpYnV0ZSA9IA0KU1RSRFVQKGF0dHIpOw0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUodWlkX2F0dHJfcmVj b3JkKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gdWlkX2F0dHJpYnV0ZTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CisNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUodWlkX2F0dHJfcmVjb3Jk KTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY291bnQpDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCA9IGdldF93b3JkKHVpZF9hdHRycyArIGNv dW50LCANCiZ1aWRfYXR0cl9yZWNvcmQpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAg ICAgICAgIHJldHVybiBOVUxMOw0KK30NCisNCiB2b2lkDQogc2V0dXBfdGhyZWFkX2F0dHIocHRo cmVhZF9hdHRyX3QgKmF0dHIsIHNpemVfdCBzdGFja3NpemUsIGludCBkZXRhY2hlZCkNCiB7DQpk aWZmIC0tZ2l0IGEvbGlibXVsdGlwYXRoL3V0aWwuaCBiL2xpYm11bHRpcGF0aC91dGlsLmgNCmlu ZGV4IGYzYjM3ZWUuLjc5M2YyYjcgMTAwNjQ0DQotLS0gYS9saWJtdWx0aXBhdGgvdXRpbC5oDQor KysgYi9saWJtdWx0aXBhdGgvdXRpbC5oDQpAQCAtMTIsNiArMTIsNyBAQCBzaXplX3Qgc3RybGNh dChjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IHNpemUpOw0KIGludCBkZXZ0MmRl dm5hbWUgKGNoYXIgKiwgaW50LCBjaGFyICopOw0KIGRldl90IHBhcnNlX2RldnQoY29uc3QgY2hh ciAqZGV2X3QpOw0KIGNoYXIgKmNvbnZlcnRfZGV2KGNoYXIgKmRldiwgaW50IGlzX3BhdGhfZGV2 aWNlKTsNCitjaGFyICpwYXJzZV91aWRfYXR0cmlidXRlX2J5X2F0dHJzKGNoYXIgKnVpZF9hdHRy cywgY2hhciAqcGF0aF9kZXYpOw0KIHZvaWQgc2V0dXBfdGhyZWFkX2F0dHIocHRocmVhZF9hdHRy X3QgKmF0dHIsIHNpemVfdCBzdGFja3NpemUsIGludCANCmRldGFjaGVkKTsNCiANCiAjZGVmaW5l IHNhZmVfc3ByaW50Zih2YXIsIGZvcm1hdCwgYXJncy4uLikgICAgICAgICAgICAgIFwNCmRpZmYg LS1naXQgYS9tdWx0aXBhdGgvbXVsdGlwYXRoLmNvbmYuNSBiL211bHRpcGF0aC9tdWx0aXBhdGgu Y29uZi41DQppbmRleCAzNjU4OWY1Li42M2M2M2MyIDEwMDY0NA0KLS0tIGEvbXVsdGlwYXRoL211 bHRpcGF0aC5jb25mLjUNCisrKyBiL211bHRpcGF0aC9tdWx0aXBhdGguY29uZi41DQpAQCAtMjA5 LDYgKzIwOSwyNCBAQCBUaGUgZGVmYXVsdCBpczogXGZCZmFpbG92ZXJcZlINCiAuDQogLg0KIC5U UA0KKy5CIHVpZF9hdHRycw0KK1RoZSB1ZGV2IGF0dHJpYnV0ZSBwcm92aWRpbmcgYSB1bmlxdWUg cGF0aCBpZGVudGlmaWVyIGZvciBjb3JyZXNwb25kaW5nIA0KK3R5cGUgb2YgcGF0aCBkZXZpY2Vz LiBJZiB0aGlzIGZpZWxkIGlzIGNvbmZpZ3VyZWQgYW5kIG1hdGNoZWQgd2l0aCB0eXBlDQorb2Yg ZGV2aWNlLCBpdCB3b3VsZCBvdmVycmlkZSBhbnkgb3RoZXIgbWV0aG9kcyBwcm92aWRpbmcgZm9y IGRldmljZQ0KK3VuaXF1ZSBpZGVudGlmaWVyIGluIGNvbmZpZyBmaWxlLCBhbmQgaXQgd291bGQg YWN0aXZhdGUgbWVyZ2luZyB1ZXZlbnRzDQorYWNjb3JkaW5nIHRvIHRoZSBpZGVudGlmaWVyIHRv IHByb21vdGUgZWZmaWVjbmN5IGluIHByb2Nlc3NpbmcgdWV2ZW50cy4NCitUdCBoYXMgbm8gZGVm YXVsdCB2YWx1ZSwgaWYgeW91IHdhbnQgdG8gaWRlbnRpZnkgcGF0aCBieSB1ZGV2IGF0dHJpYnV0 ZQ0KK2FuZCB0byBhY3RpdmF0ZSBtZXJnaW5nIHVldmVudHMgZm9yIFNDU0kgYW5kIERBUyBkZXZp Y2UsIHlvdSBjYW4gc2V0DQoraXQncyB2YWx1ZSBhczoNCisuUlMNCisuVFANCitcZkJ1aWRfYXR0 cnMgInNkOklEX1NFUklBTCBkYXNkOklEX1VJRCJcZlINCisuVFANCitUaGUgZGVmYXVsdCBpczog XGZCPHVuc2V0PlxmUg0KKy5SRQ0KKy4NCisuDQorLlRQDQogLkIgdWlkX2F0dHJpYnV0ZQ0KIFRo ZSB1ZGV2IGF0dHJpYnV0ZSBwcm92aWRpbmcgYSB1bmlxdWUgcGF0aCBpZGVudGlmaWVyLg0KIC5S Uw0KZGlmZiAtLWdpdCBhL211bHRpcGF0aGQvY2xpX2hhbmRsZXJzLmMgYi9tdWx0aXBhdGhkL2Ns aV9oYW5kbGVycy5jDQppbmRleCBiMGVlY2E2Li4xMmY4NWRlIDEwMDY0NA0KLS0tIGEvbXVsdGlw YXRoZC9jbGlfaGFuZGxlcnMuYw0KKysrIGIvbXVsdGlwYXRoZC9jbGlfaGFuZGxlcnMuYw0KQEAg LTY3MCw3ICs2NzAsNyBAQCBjbGlfYWRkX3BhdGggKHZvaWQgKiB2LCBjaGFyICoqIHJlcGx5LCBp bnQgKiBsZW4sIHZvaWQgDQoqIGRhdGEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcC0+Y2hlY2tpbnQgPSBjb25mLT5jaGVja2ludDsNCiAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICBwdXRfbXVsdGlwYXRoX2NvbmZpZyhjb25mKTsNCi0gICAgICAgICAgICAg ICAgcmV0dXJuIGV2X2FkZF9wYXRoKHBwLCB2ZWNzKTsNCisgICAgICAgICAgICAgICAgcmV0dXJu IGV2X2FkZF9wYXRoKHBwLCB2ZWNzLCAxKTsNCiBibGFja2xpc3RlZDoNCiAgICAgICAgICAgICAg ICAgKnJlcGx5ID0gc3RyZHVwKCJibGFja2xpc3RlZFxuIik7DQogICAgICAgICAgICAgICAgICps ZW4gPSBzdHJsZW4oKnJlcGx5KSArIDE7DQpAQCAtNjkyLDcgKzY5Miw3IEBAIGNsaV9kZWxfcGF0 aCAodm9pZCAqIHYsIGNoYXIgKiogcmVwbHksIGludCAqIGxlbiwgdm9pZCANCiogZGF0YSkNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRsb2coMCwgIiVzOiBwYXRoIGFscmVh ZHkgcmVtb3ZlZCIsIA0KcGFyYW0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDE7DQogICAgICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICAgICAgcmV0dXJuIGV2 X3JlbW92ZV9wYXRoKHBwLCB2ZWNzKTsNCisgICAgICAgICAgICAgICAgcmV0dXJuIGV2X3JlbW92 ZV9wYXRoKHBwLCB2ZWNzLCAxKTsNCiB9DQogDQogaW50DQpkaWZmIC0tZ2l0IGEvbXVsdGlwYXRo ZC9tYWluLmMgYi9tdWx0aXBhdGhkL21haW4uYw0KaW5kZXggYWRjMzI1OC4uZTUxM2Y3ZCAxMDA2 NDQNCi0tLSBhL211bHRpcGF0aGQvbWFpbi5jDQorKysgYi9tdWx0aXBhdGhkL21haW4uYw0KQEAg LTYwOCw3ICs2MDgsNyBAQCBldl9yZW1vdmVfbWFwIChjaGFyICogZGV2bmFtZSwgY2hhciAqIGFs aWFzLCBpbnQgDQptaW5vciwgc3RydWN0IHZlY3RvcnMgKiB2ZWNzKQ0KIH0NCiANCiBzdGF0aWMg aW50DQotdWV2X2FkZF9wYXRoIChzdHJ1Y3QgdWV2ZW50ICp1ZXYsIHN0cnVjdCB2ZWN0b3JzICog dmVjcykNCit1ZXZfYWRkX3BhdGggKHN0cnVjdCB1ZXZlbnQgKnVldiwgc3RydWN0IHZlY3RvcnMg KiB2ZWNzLCBpbnQgbmVlZF9kb19tYXApDQogew0KICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGF0 aCAqcHA7DQogICAgICAgICAgICAgICAgIGludCByZXQgPSAwLCBpOw0KQEAgLTY0MSw3ICs2NDEs NyBAQCB1ZXZfYWRkX3BhdGggKHN0cnVjdCB1ZXZlbnQgKnVldiwgc3RydWN0IHZlY3RvcnMgKiAN CnZlY3MpDQogRElfQUxMIHwgRElfQkxBQ0tMSVNUKTsNCiBwdXRfbXVsdGlwYXRoX2NvbmZpZyhj b25mKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAociA9PSBQQVRISU5GT19PSykNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gDQpldl9hZGRfcGF0aChwcCwgdmVj cyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldCA9IA0KZXZfYWRkX3BhdGgocHAsIHZlY3MsIG5lZWRfZG9fbWFwKTsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlm IChyID09IA0KUEFUSElORk9fU0tJUFBFRCkgew0KIGNvbmRsb2coMywgIiVzOiByZW1vdmUgYmxh Y2tsaXN0ZWQgcGF0aCIsDQogIHVldi0+a2VybmVsKTsNCkBAIC02NjUsNyArNjY1LDcgQEAgdWV2 X2FkZF9wYXRoIChzdHJ1Y3QgdWV2ZW50ICp1ZXYsIHN0cnVjdCB2ZWN0b3JzICogDQp2ZWNzKQ0K ICAgICAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgY29uZiA9IGdldF9tdWx0aXBh dGhfY29uZmlnKCk7DQogICAgICAgICAgICAgICAgIHJldCA9IGFsbG9jX3BhdGhfd2l0aF9wYXRo aW5mbyhjb25mLCB1ZXYtPnVkZXYsDQotIERJX0FMTCwgJnBwKTsNCisgdWV2LT53d2lkLCBESV9B TEwsICZwcCk7DQogICAgICAgICAgICAgICAgIHB1dF9tdWx0aXBhdGhfY29uZmlnKGNvbmYpOw0K ICAgICAgICAgICAgICAgICBpZiAoIXBwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAocmV0ID09IFBBVEhJTkZPX1NLSVBQRUQpDQpAQCAtNjgxLDcgKzY4MSw3IEBAIHVl dl9hZGRfcGF0aCAoc3RydWN0IHVldmVudCAqdWV2LCBzdHJ1Y3QgdmVjdG9ycyAqIA0KdmVjcykN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmYgPSBnZXRfbXVsdGlwYXRoX2Nv bmZpZygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHAtPmNoZWNraW50ID0g Y29uZi0+Y2hlY2tpbnQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRfbXVs dGlwYXRoX2NvbmZpZyhjb25mKTsNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dCA9IGV2X2FkZF9wYXRoKHBwLCB2ZWNzKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldCA9IGV2X2FkZF9wYXRoKHBwLCB2ZWNzLCBuZWVkX2RvX21hcCk7DQogICAgICAgICAg ICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kbG9n KDAsICIlczogZmFpbGVkIHRvIHN0b3JlIHBhdGggDQppbmZvLCAiDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRyb3BwaW5nIGV2ZW50IiwNCkBAIC02 OTksNyArNjk5LDcgQEAgdWV2X2FkZF9wYXRoIChzdHJ1Y3QgdWV2ZW50ICp1ZXYsIHN0cnVjdCB2 ZWN0b3JzICogDQp2ZWNzKQ0KICAqIDE6IGVycm9yDQogICovDQogaW50DQotZXZfYWRkX3BhdGgg KHN0cnVjdCBwYXRoICogcHAsIHN0cnVjdCB2ZWN0b3JzICogdmVjcykNCitldl9hZGRfcGF0aCAo c3RydWN0IHBhdGggKiBwcCwgc3RydWN0IHZlY3RvcnMgKiB2ZWNzLCBpbnQgbmVlZF9kb19tYXAp DQogew0KICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXVsdGlwYXRoICogbXBwOw0KICAgICAgICAg ICAgICAgICBjaGFyIHBhcmFtc1tQQVJBTVNfU0laRV0gPSB7MH07DQpAQCAtNzY3LDYgKzc2Nywx MyBAQCByZXNjYW46DQogICAgICAgICAgICAgICAgIC8qIHBlcnNpc3RlbnQgcmVzZXJ2YXRpb24g Y2hlY2sqLw0KICAgICAgICAgICAgICAgICBtcGF0aF9wcl9ldmVudF9oYW5kbGUocHApOw0KIA0K KyAgICAgICAgICAgICAgICBpZiAoIW5lZWRfZG9fbWFwKQ0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIDA7DQorDQorICAgICAgICAgICAgICAgIGlmICghZG1fbWFwX3By ZXNlbnQobXBwLT5hbGlhcykpIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1w cC0+YWN0aW9uID0gQUNUX0NSRUFURTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0YXJ0X3dhaXRlciA9IDE7DQorICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg LyoNCiAgICAgICAgICAgICAgICAgICogcHVzaCB0aGUgbWFwIHRvIHRoZSBkZXZpY2UtbWFwcGVy DQogICAgICAgICAgICAgICAgICAqLw0KQEAgLTgzMyw3ICs4NDAsNyBAQCBmYWlsOg0KIH0NCiAN CiBzdGF0aWMgaW50DQotdWV2X3JlbW92ZV9wYXRoIChzdHJ1Y3QgdWV2ZW50ICp1ZXYsIHN0cnVj dCB2ZWN0b3JzICogdmVjcykNCit1ZXZfcmVtb3ZlX3BhdGggKHN0cnVjdCB1ZXZlbnQgKnVldiwg c3RydWN0IHZlY3RvcnMgKiB2ZWNzLCBpbnQgDQpuZWVkX2RvX21hcCkNCiB7DQogICAgICAgICAg ICAgICAgIHN0cnVjdCBwYXRoICpwcDsNCiAgICAgICAgICAgICAgICAgaW50IHJldDsNCkBAIC04 NDQsNyArODUxLDcgQEAgdWV2X3JlbW92ZV9wYXRoIChzdHJ1Y3QgdWV2ZW50ICp1ZXYsIHN0cnVj dCB2ZWN0b3JzICogDQp2ZWNzKQ0KICAgICAgICAgICAgICAgICBwdGhyZWFkX3Rlc3RjYW5jZWwo KTsNCiAgICAgICAgICAgICAgICAgcHAgPSBmaW5kX3BhdGhfYnlfZGV2KHZlY3MtPnBhdGh2ZWMs IHVldi0+a2VybmVsKTsNCiAgICAgICAgICAgICAgICAgaWYgKHBwKQ0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0ID0gZXZfcmVtb3ZlX3BhdGgocHAsIHZlY3MpOw0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gZXZfcmVtb3ZlX3BhdGgocHAsIHZlY3Ms IA0KbmVlZF9kb19tYXApOw0KICAgICAgICAgICAgICAgICBsb2NrX2NsZWFudXBfcG9wKHZlY3Mt PmxvY2spOw0KICAgICAgICAgICAgICAgICBpZiAoIXBwKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBOb3QgYW4gZXJyb3I7IHBhdGggbWlnaHQgaGF2ZSBiZWVuIA0KcHVy Z2VkIGVhcmxpZXIgKi8NCkBAIC04NTUsNyArODYyLDcgQEAgdWV2X3JlbW92ZV9wYXRoIChzdHJ1 Y3QgdWV2ZW50ICp1ZXYsIHN0cnVjdCB2ZWN0b3JzICogDQp2ZWNzKQ0KIH0NCiANCiBpbnQNCi1l dl9yZW1vdmVfcGF0aCAoc3RydWN0IHBhdGggKnBwLCBzdHJ1Y3QgdmVjdG9ycyAqIHZlY3MpDQor ZXZfcmVtb3ZlX3BhdGggKHN0cnVjdCBwYXRoICpwcCwgc3RydWN0IHZlY3RvcnMgKiB2ZWNzLCBp bnQgbmVlZF9kb19tYXApDQogew0KICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXVsdGlwYXRoICog bXBwOw0KICAgICAgICAgICAgICAgICBpbnQgaSwgcmV0dmFsID0gMDsNCkBAIC05MTgsNiArOTI1 LDggQEAgZXZfcmVtb3ZlX3BhdGggKHN0cnVjdCBwYXRoICpwcCwgc3RydWN0IHZlY3RvcnMgKiAN CnZlY3MpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z290byBvdXQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW5lZWRfZG9fbWFwKQ0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqIHJlbG9hZCB0aGUgbWFwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ki8NCkBAIC05OTUsNyArMTAwNCw3IEBAIHVldl91cGRhdGVfcGF0aCAoc3RydWN0IHVldmVudCAq dWV2LCBzdHJ1Y3QgdmVjdG9ycyAqIA0KdmVjcykNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcC0+aW5p dGlhbGl6ZWQgPT0gDQpJTklUX1JFUVVFU1RFRF9VREVWKQ0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IA0KdWV2X2FkZF9wYXRoKHVldiwg dmVjcyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dmFsID0gDQp1ZXZfYWRkX3BhdGgodWV2LCB2ZWNzLCAxKTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1wcCAmJiBybyA+PSAwKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGxvZygyLCAiJXM6IHVwZGF0 ZSANCnBhdGggd3JpdGVfcHJvdGVjdCB0byAnJWQnICh1ZXZlbnQpIiwgdWV2LT5rZXJuZWwsIHJv KTsNCiANCkBAIC0xMDE2LDcgKzEwMjUsNyBAQCBvdXQ6DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZsYWcgPSBESV9TWVNGUyB8IA0KRElfV1dJ RDsNCiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25mID0gDQpnZXRfbXVsdGlwYXRoX2NvbmZpZygpOw0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IA0KYWxsb2NfcGF0aF93aXRoX3BhdGhp bmZvKGNvbmYsIHVldi0+dWRldiwgZmxhZywgTlVMTCk7DQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dmFsID0gDQphbGxvY19wYXRoX3dpdGhfcGF0 aGluZm8oY29uZiwgdWV2LT51ZGV2LCB1ZXYtPnd3aWQsIGZsYWcsIE5VTEwpOw0KIHB1dF9tdWx0 aXBhdGhfY29uZmlnKGNvbmYpOw0KIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIChyZXR2YWwgPT0gDQpQQVRISU5GT19TS0lQUEVEKSB7DQpAQCAt MTA3Nyw0MCArMTA4NiwxNSBAQCB1eHNvY2tfdHJpZ2dlciAoY2hhciAqIHN0ciwgY2hhciAqKiBy ZXBseSwgaW50ICogDQpsZW4sIHZvaWQgKiB0cmlnZ2VyX2RhdGEpDQogICAgICAgICAgICAgICAg IHJldHVybiByOw0KIH0NCiANCi1zdGF0aWMgaW50DQotdWV2X2Rpc2NhcmQoY2hhciAqIGRldnBh dGgpDQotew0KLSAgICAgICAgICAgICAgICBjaGFyICp0bXA7DQotICAgICAgICAgICAgICAgIGNo YXIgYVsxMV0sIGJbMTFdOw0KLQ0KLSAgICAgICAgICAgICAgICAvKg0KLSAgICAgICAgICAgICAg ICAgKiBrZWVwIG9ubHkgYmxvY2sgZGV2aWNlcywgZGlzY2FyZCBwYXJ0aXRpb25zDQotICAgICAg ICAgICAgICAgICAqLw0KLSAgICAgICAgICAgICAgICB0bXAgPSBzdHJzdHIoZGV2cGF0aCwgIi9i bG9jay8iKTsNCi0gICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKXsNCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbmRsb2coNCwgIm5vIC9ibG9jay8gaW4gJyVzJyIsIA0K ZGV2cGF0aCk7DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCi0g ICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgICAgICBpZiAoc3NjYW5mKHRtcCwgIi9ibG9j ay8lMTBzIiwgYSkgIT0gMSB8fA0KLSAgICAgICAgICAgICAgICAgICAgc3NjYW5mKHRtcCwgIi9i bG9jay8lMTBbXi9dLyUxMHMiLCBhLCBiKSA9PSAyKSB7DQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25kbG9nKDQsICJkaXNjYXJkIGV2ZW50IG9uICVzIiwgDQpkZXZwYXRoKTsN Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KLSAgICAgICAgICAg ICAgICB9DQotICAgICAgICAgICAgICAgIHJldHVybiAwOw0KLX0NCi0NCiBpbnQNCiB1ZXZfdHJp Z2dlciAoc3RydWN0IHVldmVudCAqIHVldiwgdm9pZCAqIHRyaWdnZXJfZGF0YSkNCiB7DQogICAg ICAgICAgICAgICAgIGludCByID0gMDsNCiAgICAgICAgICAgICAgICAgc3RydWN0IHZlY3RvcnMg KiB2ZWNzOw0KLSAgICAgICAgICAgICAgICBzdHJ1Y3QgY29uZmlnICpjb25mOw0KKyAgICAgICAg ICAgICAgICBzdHJ1Y3QgdWV2ZW50ICptZXJnZV91ZXYsICp0bXA7DQogDQogICAgICAgICAgICAg ICAgIHZlY3MgPSAoc3RydWN0IHZlY3RvcnMgKil0cmlnZ2VyX2RhdGE7DQogDQotICAgICAgICAg ICAgICAgIGlmICh1ZXZfZGlzY2FyZCh1ZXYtPmRldnBhdGgpKQ0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIDA7DQotDQogICAgICAgICAgICAgICAgIHB0aHJlYWRfY2xl YW51cF9wdXNoKGNvbmZpZ19jbGVhbnVwLCBOVUxMKTsNCiAgICAgICAgICAgICAgICAgcHRocmVh ZF9tdXRleF9sb2NrKCZjb25maWdfbG9jayk7DQogICAgICAgICAgICAgICAgIGlmIChydW5uaW5n X3N0YXRlICE9IERBRU1PTl9JRExFICYmDQpAQCAtMTEzOSwyOCArMTEyMywyMSBAQCB1ZXZfdHJp Z2dlciAoc3RydWN0IHVldmVudCAqIHVldiwgdm9pZCAqIA0KdHJpZ2dlcl9kYXRhKQ0KICAgICAg ICAgICAgICAgICB9DQogDQogICAgICAgICAgICAgICAgIC8qDQotICAgICAgICAgICAgICAgICAq IHBhdGggYWRkL3JlbW92ZSBldmVudA0KKyAgICAgICAgICAgICAgICAgKiBwYXRoIGFkZC9yZW1v dmUvY2hhbmdlIGV2ZW50LCBhZGQvcmVtb3ZlIG1heWJlIG1lcmdlZA0KICAgICAgICAgICAgICAg ICAgKi8NCi0gICAgICAgICAgICAgICAgY29uZiA9IGdldF9tdWx0aXBhdGhfY29uZmlnKCk7DQot ICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJfZGV2bm9kZShjb25mLT5ibGlzdF9kZXZub2RlLCAN CmNvbmYtPmVsaXN0X2Rldm5vZGUsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWV2LT5rZXJuZWwpID4gMCkgew0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHV0X211bHRpcGF0aF9jb25maWcoY29uZik7DQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsNCisgICAgICAgICAgICAgICAgbGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKG1lcmdlX3VldiwgdG1wLCANCiZ1ZXYtPm1lcmdlX25vZGUsIG5vZGUp IHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RybmNtcChtZXJnZV91 ZXYtPmFjdGlvbiwgImFkZCIsIA0KMykpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgciArPSANCnVldl9hZGRfcGF0aChtZXJnZV91ZXYsIHZlY3MsIDAp Ow0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJuY21wKG1lcmdlX3Vl di0+YWN0aW9uLCAicmVtb3ZlIiwgDQo2KSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByICs9IA0KdWV2X3JlbW92ZV9wYXRoKG1lcmdlX3VldiwgdmVj cywgMCk7DQogICAgICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICAgICAgcHV0X211bHRpcGF0 aF9jb25maWcoY29uZik7DQogDQotICAgICAgICAgICAgICAgIGlmICghc3RybmNtcCh1ZXYtPmFj dGlvbiwgImFkZCIsIDMpKSB7DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0g dWV2X2FkZF9wYXRoKHVldiwgdmVjcyk7DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIG91dDsNCi0gICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgICAgICBpZiAoIXN0 cm5jbXAodWV2LT5hY3Rpb24sICJyZW1vdmUiLCA2KSkgew0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgciA9IHVldl9yZW1vdmVfcGF0aCh1ZXYsIHZlY3MpOw0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7DQotICAgICAgICAgICAgICAgIH0NCi0gICAg ICAgICAgICAgICAgaWYgKCFzdHJuY21wKHVldi0+YWN0aW9uLCAiY2hhbmdlIiwgNikpIHsNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIgPSB1ZXZfdXBkYXRlX3BhdGgodWV2LCB2 ZWNzKTsNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KLSAgICAg ICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIGlmICghc3RybmNtcCh1ZXYtPmFjdGlvbiwg ImFkZCIsIDMpKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciArPSB1ZXZfYWRk X3BhdGgodWV2LCB2ZWNzLCAxKTsNCisgICAgICAgICAgICAgICAgaWYgKCFzdHJuY21wKHVldi0+ YWN0aW9uLCAicmVtb3ZlIiwgNikpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ICs9IHVldl9yZW1vdmVfcGF0aCh1ZXYsIHZlY3MsIDEpOw0KKyAgICAgICAgICAgICAgICBpZiAo IXN0cm5jbXAodWV2LT5hY3Rpb24sICJjaGFuZ2UiLCA2KSkNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHIgKz0gdWV2X3VwZGF0ZV9wYXRoKHVldiwgdmVjcyk7DQogDQogb3V0Og0K ICAgICAgICAgICAgICAgICByZXR1cm4gcjsNCkBAIC0xNTcwLDcgKzE1NDcsNyBAQCBjaGVja19w YXRoIChzdHJ1Y3QgdmVjdG9ycyAqIHZlY3MsIHN0cnVjdCBwYXRoICogcHAsIA0KaW50IHRpY2tz KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmYg PSANCmdldF9tdWx0aXBhdGhfY29uZmlnKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0ID0gcGF0aGluZm8ocHAsIGNvbmYsIA0KRElfQUxMIHwg RElfQkxBQ0tMSVNUKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAocmV0ID09IFBBVEhJTkZPX09LKSB7DQotIGV2X2FkZF9wYXRoKHBwLCB2ZWNz KTsNCisgZXZfYWRkX3BhdGgocHAsIHZlY3MsIDEpOw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcC0+dGljayANCj0gMTsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug aWYgKHJldCA9PSANClBBVEhJTkZPX1NLSVBQRUQpIHsNCiBwdXRfbXVsdGlwYXRoX2NvbmZpZyhj b25mKTsNCkBAIC0xNjg2LDcgKzE2NjMsNyBAQCBjaGVja19wYXRoIChzdHJ1Y3QgdmVjdG9ycyAq IHZlY3MsIHN0cnVjdCBwYXRoICogcHAsIA0KaW50IHRpY2tzKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFk aXNhYmxlX3JlaW5zdGF0ZSAmJiANCnJlaW5zdGF0ZV9wYXRoKHBwLCBhZGRfYWN0aXZlKSkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRsb2co MywgIiVzOiByZWxvYWQgDQptYXAiLCBwcC0+ZGV2KTsNCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBldl9hZGRfcGF0aChwcCwgdmVjcyk7DQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZfYWRkX3BhdGgocHAs IHZlY3MsIDEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBwLT50aWNrID0gMTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CkBAIC0xNzA5LDcgKzE2ODYsNyBAQCBjaGVja19wYXRoIChzdHJ1Y3QgdmVjdG9ycyAqIHZlY3Ms IHN0cnVjdCBwYXRoICogcHAsIA0KaW50IHRpY2tzKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENsZWFyIElPIGVycm9ycyAqLw0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWluc3RhdGVfcGF0 aChwcCwgDQowKSkgew0KIGNvbmRsb2coMywgIiVzOiByZWxvYWQgbWFwIiwgcHAtPmRldik7DQot IGV2X2FkZF9wYXRoKHBwLCB2ZWNzKTsNCisgZXZfYWRkX3BhdGgocHAsIHZlY3MsIDEpOw0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcC0+dGljayANCj0gMTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KZGlmZiAtLWdpdCBhL211bHRpcGF0 aGQvbWFpbi5oIGIvbXVsdGlwYXRoZC9tYWluLmgNCmluZGV4IGY3MjU4MGQuLjA5NGIwNGYgMTAw NjQ0DQotLS0gYS9tdWx0aXBhdGhkL21haW4uaA0KKysrIGIvbXVsdGlwYXRoZC9tYWluLmgNCkBA IC0yMiw4ICsyMiw4IEBAIHZvaWQgZXhpdF9kYWVtb24odm9pZCk7DQogY29uc3QgY2hhciAqIGRh ZW1vbl9zdGF0dXModm9pZCk7DQogaW50IG5lZWRfdG9fZGVsYXlfcmVjb25maWcgKHN0cnVjdCB2 ZWN0b3JzICopOw0KIGludCByZWNvbmZpZ3VyZSAoc3RydWN0IHZlY3RvcnMgKik7DQotaW50IGV2 X2FkZF9wYXRoIChzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3QgdmVjdG9ycyAqKTsNCi1pbnQgZXZfcmVt b3ZlX3BhdGggKHN0cnVjdCBwYXRoICosIHN0cnVjdCB2ZWN0b3JzICopOw0KK2ludCBldl9hZGRf cGF0aCAoc3RydWN0IHBhdGggKiwgc3RydWN0IHZlY3RvcnMgKiwgaW50KTsNCitpbnQgZXZfcmVt b3ZlX3BhdGggKHN0cnVjdCBwYXRoICosIHN0cnVjdCB2ZWN0b3JzICosIGludCk7DQogaW50IGV2 X2FkZF9tYXAgKGNoYXIgKiwgY2hhciAqLCBzdHJ1Y3QgdmVjdG9ycyAqKTsNCiBpbnQgZXZfcmVt b3ZlX21hcCAoY2hhciAqLCBjaGFyICosIGludCwgc3RydWN0IHZlY3RvcnMgKik7DQogdm9pZCBz eW5jX21hcF9zdGF0ZSAoc3RydWN0IG11bHRpcGF0aCAqKTsNCi0tIA0KMi44LjEud2luZG93cy4x DQoNCg0KDQo= --=_alternative 002B7F0C482580AC_= Content-Type: text/html; charset="GB2312" Content-Transfer-Encoding: base64 PGZvbnQgc2l6ZT0yIGZhY2U9InNhbnMtc2VyaWYiPkhlbGxvIEFMTCw8L2ZvbnQ+DQo8YnI+DQo8 YnI+PGZvbnQgc2l6ZT0yIGZhY2U9InNhbnMtc2VyaWYiPlRoaXMgcGF0Y2ggaXMgYmFzZWQgb24g cHJldmlvdXMgdHdvDQpzZXJpZXMgcGF0Y2hlcywgYW5kIG1vZGlmaWVkPC9mb250Pg0KPGJyPjxm b250IHNpemU9Mj5hY2NvcmRpbmcgdG8gQmVuJ3Mgc3VnZ2VzdGlvbiBhcyBiZWxsb3c6Jm5ic3A7 IDwvZm9udD4NCjxicj4NCjxicj48Zm9udCBzaXplPTI+MSkgYWRkIGNvbmZpZ3VyYXRpb24gaW4g dGhlIGRlZmF1bHRzIHNlY3Rpb24mbmJzcDs8YnI+DQombmJzcDsgdWlkX2F0dHJzICZxdW90O3Nk OklEX1NFUklBTCBkYXNkOklEX1VJRCZxdW90OyZuYnNwOzxicj4NCiZuYnNwOyBpdCB3b3VsZCBv dmVycmlkZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMgaWYgdGhpcyZuYnNwOzxicj4NCiZuYnNw OyBmaWxlZCBpcyBjb25maWd1cmVkIGFuZCBtYXRjaGVkOyZuYnNwOzxicj4NCjxicj4NCjIpIElu IHVldmVudCBwcm9jZXNzaW5nIHRocmVhZCwgd2Ugd2lsbCBhc3NpZ24gd3dpZDxicj4NCiZuYnNw OyBhY2NvcmRpbmcgdGhlIGxhYmVsIGluIHVldmVudHMgYnkgdGhpcyBjb25maWd1cmF0aW9uOyZu YnNwOzxicj4NCjxicj4NCjMpIHRoaXMgcGF0Y2ggd2lsbCB0YWtlIGJhY2s6Jm5ic3A7PGJyPg0K Jm5ic3A7IFtQQVRDSCAxMi8xMl0gbGlibXVsdGlwYXRoOiB1c2UgZXhpc3Rpbmcgd3dpZCB3aGVu Jm5ic3A7PGJyPg0KJm5ic3A7IHd3aWQgaGFzIGFscmVhZHkgYmVlbiBleGlzdGVkIGluIHVldmVu dCZuYnNwOzxicj4NCjxicj4NCjQpIGlmIHRoaXMgZmllbGQgaXMgbm90IGNvbmZpZ3VyZWQsIG9u bHkgZG8gZmlsdGVyaW5nIGFuZCZuYnNwOzxicj4NCiZuYnNwOyBubyBtZXJnaW5nIHdvcmtzLjwv Zm9udD4NCjxicj4NCjxicj48Zm9udCBzaXplPTI+SSBmb3VuZCBpdCBpcyBoYXJkIHRvIG1vZGlm eSBwYXRjaCBiYXNlZCBvbiBzZXJpZXMsIHNvDQpJIG9ubHkgcHVzaCBvbmU8L2ZvbnQ+DQo8YnI+ PGZvbnQgc2l6ZT0yPnBhdGNoIHRoaXMgdGltZS4gSWYgaXQgaXMgaGFyZCB0b28gcmV2aWV3LCBw bGVhc2UgbGV0DQptZSBrbm93biwgSSB3aWxsPC9mb250Pg0KPGJyPjxmb250IHNpemU9Mj5zcGxp dCBpdCBpbnRvIGEgc2VyaWVzIG9mIHNtYWxsIHBhdGNoZXMuPC9mb250Pg0KPGJyPg0KPGJyPjxm b250IHNpemU9Mj5UaGFua3MsPC9mb250Pg0KPGJyPjxmb250IHNpemU9Mj5UYW5nIEp1bmh1aSA8 L2ZvbnQ+DQo8YnI+DQo8YnI+DQo8YnI+DQo8YnI+DQo8YnI+PGZvbnQgc2l6ZT0xIGNvbG9yPSM1 ZjVmNWYgZmFjZT0ic2Fucy1zZXJpZiI+t6K8/sjLOiAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7IDwvZm9udD48Zm9udCBzaXplPTEgZmFjZT0ic2Fucy1zZXJpZiI+dGFuZy5qdW5odWlAenRl LmNvbS5jbjwvZm9udD4NCjxicj48Zm9udCBzaXplPTEgY29sb3I9IzVmNWY1ZiBmYWNlPSJzYW5z LXNlcmlmIj7K1bz+yMs6ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgPC9mb250Pjxmb250 IHNpemU9MSBmYWNlPSJzYW5zLXNlcmlmIj5jaHJpc3RvcGhlLnZhcm9xdWlAb3BlbnN2Yy5jb20s DQpibWFyemluc0ByZWRoYXQuY29tLCBoYXJlQHN1c2UuZGUsIG13aWxja0BzdXNlLmNvbSwgYmFy dC52YW5hc3NjaGVAc2FuZGlzay5jb20sDQo8L2ZvbnQ+DQo8YnI+PGZvbnQgc2l6ZT0xIGNvbG9y PSM1ZjVmNWYgZmFjZT0ic2Fucy1zZXJpZiI+s63LzTogJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZu YnNwOzwvZm9udD48Zm9udCBzaXplPTEgZmFjZT0ic2Fucy1zZXJpZiI+ZG0tZGV2ZWxAcmVkaGF0 LmNvbSwNCnpoYW5nLmthaTE2QHp0ZS5jb20uY24sIHRhbmcud2VuanVuM0B6dGUuY29tLmNuLCB0 YW5nLmp1bmh1aUB6dGUuY29tLmNuPC9mb250Pg0KPGJyPjxmb250IHNpemU9MSBjb2xvcj0jNWY1 ZjVmIGZhY2U9InNhbnMtc2VyaWYiPsjVxto6ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsg PC9mb250Pjxmb250IHNpemU9MSBmYWNlPSJzYW5zLXNlcmlmIj4yMDE3LzAxLzE4DQoxNTozOTwv Zm9udD4NCjxicj48Zm9udCBzaXplPTEgY29sb3I9IzVmNWY1ZiBmYWNlPSJzYW5zLXNlcmlmIj7W 98ziOiAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7PC9mb250Pjxmb250IHNpemU9MSBmYWNl PSJzYW5zLXNlcmlmIj5bUEFUQ0hdIG11bHRpcGF0aC10b29sczoNCmltcHJvdmUgcHJvY2Vzc2lu ZyBlZmZpY2llbmN5IGZvciBhZGRpdGlvbiBhbmQgZGVsZXRpb24gb2YgbXVsdGlwYXRoIGRldmlj ZXM8L2ZvbnQ+DQo8YnI+DQo8aHIgbm9zaGFkZT4NCjxicj4NCjxicj4NCjxicj48dHQ+PGZvbnQg c2l6ZT0yPkZyb206ICZxdW90O3RhbmcuanVuaHVpJnF1b3Q7ICZsdDt0YW5nLmp1bmh1aUB6dGUu Y29tLmNuJmd0Ozxicj4NCjxicj4NCkNoYW5nZS1JZDogSTNmODFhNTVmZmYzODlmOTkxZjkxNTky NzAwMGIyODFkN2UyNjNjYzU8YnI+DQpTaWduZWQtb2ZmLWJ5OiB0YW5nLmp1bmh1aSAmbHQ7dGFu Zy5qdW5odWlAenRlLmNvbS5jbiZndDs8YnI+DQo8YnI+DQpUaGlzIHBhdGNoIHVzZWQgdG8gaW1w cm92ZSBwcm9jZXNzaW5nIGVmZmljaWVuY3kgZm9yIGFkZGl0aW9uIGFuZCBkZWxldGlvbjxicj4N Cm9mIG11bHRpcGF0aCBkZXZpY2VzLjxicj4NCjxicj4NClRoaXMgcGF0Y2ggaXMgdGVzdGVkIHBh c3MgYnkgWlRFIG11bHRpcGF0aCBhdXRvbWF0aWMgdGVzdGluZyBzeXN0ZW0uPGJyPg0KVGhlIG1v ZGlmaWNhdGlvbiByZWR1Y2VzIHRoZSBzeXN0ZW0gY29uc3VtcHRpb24oc3VjaCBhcyBDUFUpIGFu ZCBzaG9ydGVuczxicj4NCnRoZSBwcm9jZXNzaW5nIHRpbWUgb2J2aW91c2x5IGluIHNjZW5lIG9m IG1hc3NpdmUgbXVsdGlwYXRoIGRldmljZXM8YnI+DQphZGRpdGlvbiBvciBkZWxldGlvbi48YnI+ DQo8YnI+DQpUaGUgbWFpbiBwcm9jZXNzaW5nIGZsb3cgb2YgY29kZSBpczo8YnI+DQoxKSBhZGQg dWlkX2F0dHJzIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGRlZmF1bHRzIHNlY3Rpb246PGJyPg0KICZu YnNwOyBJdCBpcyBjb25maWd1cmVkIHVkZXYgYXR0cmlidXRlIHdoaWNoIHByb3ZpZGluZyBhIHVu aXF1ZSBwYXRoIGlkZW50aWZpZXI8YnI+DQogJm5ic3A7IGZvciBjb3JyZXNwb25kaW5nIHR5cGUg b2YgcGF0aCBkZXZpY2VzLiBJZiB0aGlzIGZpZWxkIGlzIGNvbmZpZ3VyZWQNCmFuZDxicj4NCiAm bmJzcDsgbWF0Y2hlZCB3aXRoIHR5cGUgb2YgZGV2aWNlLCBpdCB3b3VsZCBvdmVycmlkZSBhbnkg b3RoZXIgbWV0aG9kcw0KcHJvdmlkaW5nPGJyPg0KICZuYnNwOyBmb3IgZGV2aWNlIHVuaXF1ZSBp ZGVudGlmaWVyIGluIGNvbmZpZyBmaWxlLCBhbmQgaXQgd291bGQgYWN0aXZhdGUNCm1lcmdpbmc8 YnI+DQogJm5ic3A7IHVldmVudHMgYWNjb3JkaW5nIHRvIHRoZSBpZGVudGlmaWVyIHRvIHByb21v dGUgZWZmaWVjbmN5IGluIHByb2Nlc3Npbmc8YnI+DQogJm5ic3A7IHVldmVudHMuIFR0IGhhcyBu byBkZWZhdWx0IHZhbHVlLCBzbyBkZWZhdWx0bHkgb25seSB1ZXZlbnRzIGZpbHRlcmluZzxicj4N CiAmbmJzcDsgd29ya3MsIGFuZCB1ZXZlbnRzIG1lcmdpbmcgZG9lcyBub3Qgd29ya3MsIGlmIHVz ZXJzIHdhbnQgdG8gaWRlbnRpZnkNCnBhdGg8YnI+DQogJm5ic3A7IGJ5IHVkZXYgYXR0cmlidXRl IGFuZCB0byBhY3RpdmF0ZSBtZXJnaW5nIHVldmVudHMgZm9yIFNDU0kgYW5kDQpEQVMgZGV2aWNl LDxicj4NCiAmbmJzcDsgdGhleSBjYW4gc2V0IGl0J3MgdmFsdWUgYXM6PGJyPg0KICZuYnNwOyAm cXVvdDtzZDpJRF9TRVJJQUwgZGFzZDpJRF9VSUQmcXVvdDs8YnI+DQoyKSB1ZXZlbnRzIGFjY3Vt dWxhdGlvbiBpbiB1ZXZlbnRzIGJ1cnN0IHNjZW5lOjxicj4NCiAmbmJzcDsgd2FpdCBvbmUgc2Vj b25kcyBmb3IgbW9yZSB1ZXZlbnRzIGluIHVldmVudF9saXN0ZW4oKSBpbiB1ZXZlbnRzDQpidXJz dDxicj4NCiAmbmJzcDsgc2l0dWF0aW9uczxicj4NCjMpIHVldmVudHMgcHJlcGFyaW5nLCBmaWx0 ZXJpbmcgYW5kIG1lcmdpbmc6PGJyPg0KICZuYnNwOyBkaXNjYXJkIHVudXNlIHVldmVudHMgYW5k IGZldGNoIHBhdGggaWRlbmRpZmllciBmcm9tIHVldmVudHM7PGJyPg0KICZuYnNwOyBmaWx0ZXIg dWV2ZW50czs8YnI+DQogJm5ic3A7IG1lcmdlIHVldmVudHMuPGJyPg0KNCkgdWV2ZW50cyBwcm9j Y2Vzc2luZzo8YnI+DQogJm5ic3A7IHByb2NjZXNzIHRoZSBtZXJnZWQgdWV2ZW50cyBpbiB1ZXYt Jmd0O21lcmdlX25vZGUgbGlzdCB3aXRob3V0DQpjYWxsaW5nPGJyPg0KICZuYnNwOyBkb21hcCgp Ozxicj4NCiAmbmJzcDsgcHJvY2Nlc3MgdGhlIGxhc3QgdWV2ZW50cyB1ZXYgd2l0aCBjYWxsaW5n IGRvbWFwKCkuPGJyPg0KPGJyPg0KQW55IGNvbW1lbnQgd2lsbCBiZSB3ZWxjb21lLCBhbmQgaXQg d291bGQgYmUgYXBwcmVjaWF0ZWQgaWYgdGhlc2U8YnI+DQpwYXRjaGVzIHdvdWxkIGJlIGNvbnNp ZGVyZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgdXBzdHJlYW08YnI+DQptdWx0aXBhdGgtdG9vbHMu PGJyPg0KPGJyPg0KVGhhbmsgeW91IGFsbCw8YnI+DQpUYW5nIEp1bmh1aTxicj4NCi0tLTxicj4N CiBsaWJtdWx0aXBhdGgvY29uZmlnLmMgJm5ic3A7ICZuYnNwOyAmbmJzcDt8ICZuYnNwOyAzICs8 YnI+DQogbGlibXVsdGlwYXRoL2NvbmZpZy5oICZuYnNwOyAmbmJzcDsgJm5ic3A7fCAmbmJzcDsg MSArPGJyPg0KIGxpYm11bHRpcGF0aC9kaWN0LmMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 fCAmbmJzcDsgMyArPGJyPg0KIGxpYm11bHRpcGF0aC9kaXNjb3ZlcnkuYyAmbmJzcDsgfCAmbmJz cDsgNSArLTxicj4NCiBsaWJtdWx0aXBhdGgvZGlzY292ZXJ5LmggJm5ic3A7IHwgJm5ic3A7IDIg Ky08YnI+DQogbGlibXVsdGlwYXRoL2xpc3QuaCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt8 ICZuYnNwOzQxICsrKysrKzxicj4NCiBsaWJtdWx0aXBhdGgvcHJvcHNlbC5jICZuYnNwOyAmbmJz cDsgfCAmbmJzcDsgNyArPGJyPg0KIGxpYm11bHRpcGF0aC91ZXZlbnQuYyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3wgMzE5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LTxicj4NCiBsaWJtdWx0aXBhdGgvdWV2ZW50LmggJm5ic3A7ICZuYnNwOyAmbmJzcDt8ICZuYnNw OyAyICs8YnI+DQogbGlibXVsdGlwYXRoL3V0aWwuYyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDt8ICZuYnNwOzQwICsrKysrKzxicj4NCiBsaWJtdWx0aXBhdGgvdXRpbC5oICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO3wgJm5ic3A7IDEgKzxicj4NCiBtdWx0aXBhdGgvbXVsdGlwYXRoLmNv bmYuNSB8ICZuYnNwOzE4ICsrKzxicj4NCiBtdWx0aXBhdGhkL2NsaV9oYW5kbGVycy5jICZuYnNw O3wgJm5ic3A7IDQgKy08YnI+DQogbXVsdGlwYXRoZC9tYWluLmMgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO3wgJm5ic3A7OTMgKysrKystLS0tLS0tLTxicj4NCiBtdWx0aXBhdGhk L21haW4uaCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fCAmbmJzcDsgNCArLTxi cj4NCiAxNSBmaWxlcyBjaGFuZ2VkLCA0NjggaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25zKC0p PGJyPg0KPGJyPg0KZGlmZiAtLWdpdCBhL2xpYm11bHRpcGF0aC9jb25maWcuYyBiL2xpYm11bHRp cGF0aC9jb25maWcuYzxicj4NCmluZGV4IDE1ZGRiZDguLjc2NWU5MWQgMTAwNjQ0PGJyPg0KLS0t IGEvbGlibXVsdGlwYXRoL2NvbmZpZy5jPGJyPg0KKysrIGIvbGlibXVsdGlwYXRoL2NvbmZpZy5j PGJyPg0KQEAgLTQ4OCw2ICs0ODgsOSBAQCBmcmVlX2NvbmZpZyAoc3RydWN0IGNvbmZpZyAqIGNv bmYpPGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7aWYNCihjb25mLSZndDt1aWRfYXR0cmlidXRlKTxicj4NCiAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0K Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0K RlJFRShjb25mLSZndDt1aWRfYXR0cmlidXRlKTs8YnI+DQogPGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQppZiAoY29uZi0mZ3Q7 dWlkX2F0dHJzKTxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtGUkVFKGNvbmYtJmd0O3VpZF9hdHRycyk7PGJyPg0KKzxi cj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2lmDQooY29uZi0mZ3Q7Z2V0dWlkKTxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KRlJFRShjb25mLSZn dDtnZXR1aWQpOzxicj4NCiA8YnI+DQpkaWZmIC0tZ2l0IGEvbGlibXVsdGlwYXRoL2NvbmZpZy5o IGIvbGlibXVsdGlwYXRoL2NvbmZpZy5oPGJyPg0KaW5kZXggOTY3MDAyMC4uYWI4NTkzMCAxMDA2 NDQ8YnI+DQotLS0gYS9saWJtdWx0aXBhdGgvY29uZmlnLmg8YnI+DQorKysgYi9saWJtdWx0aXBh dGgvY29uZmlnLmg8YnI+DQpAQCAtMTUzLDYgKzE1Myw3IEBAIHN0cnVjdCBjb25maWcgezxicj4N CiA8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtjaGFyDQoqIG11bHRpcGF0aF9kaXI7PGJyPg0KICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y2hhcg0KKiBz ZWxlY3Rvcjs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsNCmNoYXIgKiB1aWRfYXR0cnM7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y2hhcg0KKiB1aWRf YXR0cmlidXRlOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2NoYXINCiogZ2V0dWlkOzxicj4NCiAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2NoYXINCiog ZmVhdHVyZXM7PGJyPg0KZGlmZiAtLWdpdCBhL2xpYm11bHRpcGF0aC9kaWN0LmMgYi9saWJtdWx0 aXBhdGgvZGljdC5jPGJyPg0KaW5kZXggZGMyMTg0Ni4uMGE1MzFkMSAxMDA2NDQ8YnI+DQotLS0g YS9saWJtdWx0aXBhdGgvZGljdC5jPGJyPg0KKysrIGIvbGlibXVsdGlwYXRoL2RpY3QuYzxicj4N CkBAIC0yNDksNiArMjQ5LDggQEAgZGVjbGFyZV9vdnJfc25wcmludChzZWxlY3RvciwgcHJpbnRf c3RyKTxicj4NCiBkZWNsYXJlX21wX2hhbmRsZXIoc2VsZWN0b3IsIHNldF9zdHIpPGJyPg0KIGRl Y2xhcmVfbXBfc25wcmludChzZWxlY3RvciwgcHJpbnRfc3RyKTxicj4NCiA8YnI+DQorZGVjbGFy ZV9kZWZfaGFuZGxlcih1aWRfYXR0cnMsIHNldF9zdHIpPGJyPg0KK2RlY2xhcmVfZGVmX3NucHJp bnQodWlkX2F0dHJzLCBwcmludF9zdHIpPGJyPg0KIGRlY2xhcmVfZGVmX2hhbmRsZXIodWlkX2F0 dHJpYnV0ZSwgc2V0X3N0cik8YnI+DQogZGVjbGFyZV9kZWZfc25wcmludF9kZWZzdHIodWlkX2F0 dHJpYnV0ZSwgcHJpbnRfc3RyLCBERUZBVUxUX1VJRF9BVFRSSUJVVEUpPGJyPg0KIGRlY2xhcmVf b3ZyX2hhbmRsZXIodWlkX2F0dHJpYnV0ZSwgc2V0X3N0cik8YnI+DQpAQCAtMTM2Nyw2ICsxMzY5 LDcgQEAgaW5pdF9rZXl3b3Jkcyh2ZWN0b3Iga2V5d29yZHMpPGJyPg0KICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aW5zdGFsbF9r ZXl3b3JkKCZxdW90O211bHRpcGF0aF9kaXImcXVvdDssDQomYW1wO2RlZl9tdWx0aXBhdGhfZGly X2hhbmRsZXIsICZhbXA7c25wcmludF9kZWZfbXVsdGlwYXRoX2Rpcik7PGJyPg0KICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aW5z dGFsbF9rZXl3b3JkKCZxdW90O3BhdGhfc2VsZWN0b3ImcXVvdDssDQomYW1wO2RlZl9zZWxlY3Rv cl9oYW5kbGVyLCAmYW1wO3NucHJpbnRfZGVmX3NlbGVjdG9yKTs8YnI+DQogJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnN0YWxs X2tleXdvcmQoJnF1b3Q7cGF0aF9ncm91cGluZ19wb2xpY3kmcXVvdDssDQomYW1wO2RlZl9wZ3Bv bGljeV9oYW5kbGVyLCAmYW1wO3NucHJpbnRfZGVmX3BncG9saWN5KTs8YnI+DQorICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmluc3RhbGxf a2V5d29yZCgmcXVvdDt1aWRfYXR0cnMmcXVvdDssICZhbXA7ZGVmX3VpZF9hdHRyc19oYW5kbGVy LCAmYW1wO3NucHJpbnRfZGVmX3VpZF9hdHRycyk7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aW5zdGFsbF9rZXl3b3Jk KCZxdW90O3VpZF9hdHRyaWJ1dGUmcXVvdDssDQomYW1wO2RlZl91aWRfYXR0cmlidXRlX2hhbmRs ZXIsICZhbXA7c25wcmludF9kZWZfdWlkX2F0dHJpYnV0ZSk7PGJyPg0KICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aW5zdGFsbF9r ZXl3b3JkKCZxdW90O2dldHVpZF9jYWxsb3V0JnF1b3Q7LA0KJmFtcDtkZWZfZ2V0dWlkX2hhbmRs ZXIsICZhbXA7c25wcmludF9kZWZfZ2V0dWlkKTs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnN0YWxsX2tleXdvcmQo JnF1b3Q7cHJpbyZxdW90OywNCiZhbXA7ZGVmX3ByaW9fbmFtZV9oYW5kbGVyLCAmYW1wO3NucHJp bnRfZGVmX3ByaW9fbmFtZSk7PGJyPg0KZGlmZiAtLWdpdCBhL2xpYm11bHRpcGF0aC9kaXNjb3Zl cnkuYyBiL2xpYm11bHRpcGF0aC9kaXNjb3ZlcnkuYzxicj4NCmluZGV4IGQxYWVjMzEuLjE0OTA0 ZjIgMTAwNjQ0PGJyPg0KLS0tIGEvbGlibXVsdGlwYXRoL2Rpc2NvdmVyeS5jPGJyPg0KKysrIGIv bGlibXVsdGlwYXRoL2Rpc2NvdmVyeS5jPGJyPg0KQEAgLTMzLDcgKzMzLDcgQEA8YnI+DQogPGJy Pg0KIGludDxicj4NCiBhbGxvY19wYXRoX3dpdGhfcGF0aGluZm8gKHN0cnVjdCBjb25maWcgKmNv bmYsIHN0cnVjdCB1ZGV2X2RldmljZSAqdWRldmljZSw8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgaW50 IGZsYWcsIHN0cnVjdCBwYXRoICoqcHBfcHRyKTxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyBjaGFyICp3 d2lkLCBpbnQgZmxhZywgc3RydWN0IHBhdGggKipwcF9wdHIpPGJyPg0KIHs8YnI+DQogJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtp bnQNCmVyciA9IFBBVEhJTkZPX0ZBSUxFRDs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzdHJ1Y3QNCnBhdGggKiBwcDs8 YnI+DQpAQCAtNTEsNiArNTEsOSBAQCBhbGxvY19wYXRoX3dpdGhfcGF0aGluZm8gKHN0cnVjdCBj b25maWcgKmNvbmYsIHN0cnVjdA0KdWRldl9kZXZpY2UgKnVkZXZpY2UsPGJyPg0KICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYN CighcHApPGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQpyZXR1cm4gUEFUSElORk9fRkFJTEVEOzxicj4NCiA8YnI+DQor ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CmlmKHd3aWQpPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cm5jcHkocHAtJmd0O3d3aWQsDQp3d2lkLCBzaXplb2Yo cHAtJmd0O3d3aWQpKTs8YnI+DQorPGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYNCihzYWZlX3NwcmludGYocHAtJmd0 O2RldiwgJnF1b3Q7JXMmcXVvdDssIGRldm5hbWUpKSB7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjb25kbG9nKDAs ICZxdW90O3BwLSZndDtkZXYgdG9vIHNtYWxsJnF1b3Q7KTs8YnI+DQogJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9DQplbHNlIHs8 YnI+DQpkaWZmIC0tZ2l0IGEvbGlibXVsdGlwYXRoL2Rpc2NvdmVyeS5oIGIvbGlibXVsdGlwYXRo L2Rpc2NvdmVyeS5oPGJyPg0KaW5kZXggMzAzOTI2OC4uZDE2YTY5YSAxMDA2NDQ8YnI+DQotLS0g YS9saWJtdWx0aXBhdGgvZGlzY292ZXJ5Lmg8YnI+DQorKysgYi9saWJtdWx0aXBhdGgvZGlzY292 ZXJ5Lmg8YnI+DQpAQCAtMzcsNyArMzcsNyBAQCBpbnQgcGF0aF9vZmZsaW5lIChzdHJ1Y3QgcGF0 aCAqKTs8YnI+DQogaW50IGdldF9zdGF0ZSAoc3RydWN0IHBhdGggKiBwcCwgc3RydWN0IGNvbmZp ZyAqIGNvbmYsIGludCBkYWVtb24pOzxicj4NCiBpbnQgcGF0aGluZm8gKHN0cnVjdCBwYXRoICog cHAsIHN0cnVjdCBjb25maWcgKiBjb25mLCBpbnQgbWFzayk7PGJyPg0KIGludCBhbGxvY19wYXRo X3dpdGhfcGF0aGluZm8gKHN0cnVjdCBjb25maWcgKmNvbmYsIHN0cnVjdCB1ZGV2X2RldmljZQ0K KnVkZXZpY2UsPGJyPg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgaW50IGZsYWcsIHN0 cnVjdCBwYXRoICoqcHBfcHRyKTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyBj aGFyICp3d2lkLCBpbnQgZmxhZywgc3RydWN0IHBhdGggKipwcF9wdHIpOzxicj4NCiBpbnQgc3Rv cmVfcGF0aGluZm8gKHZlY3RvciBwYXRodmVjLCBzdHJ1Y3QgY29uZmlnICpjb25mLDxicj4NCiAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOw0KJm5ic3A7ICZuYnNwOyBzdHJ1Y3QgdWRldl9kZXZpY2UgKnVkZXZpY2UsIGludCBmbGFn LDxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyBzdHJ1Y3QgcGF0aCAqKnBwX3B0cik7PGJyPg0K ZGlmZiAtLWdpdCBhL2xpYm11bHRpcGF0aC9saXN0LmggYi9saWJtdWx0aXBhdGgvbGlzdC5oPGJy Pg0KaW5kZXggY2VhYTM4MS4uMmIxZGNmMyAxMDA2NDQ8YnI+DQotLS0gYS9saWJtdWx0aXBhdGgv bGlzdC5oPGJyPg0KKysrIGIvbGlibXVsdGlwYXRoL2xpc3QuaDxicj4NCkBAIC0zMTcsNCArMzE3 LDQ1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsaXN0X3NwbGljZV90YWlsX2luaXQoc3RydWN0IGxp c3RfaGVhZA0KKmxpc3QsPGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZhbXA7cG9zLSZndDtt ZW1iZXIgIT0gKGhlYWQpOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJz cDsgcG9zID0gbiwgbiA9IGxpc3RfZW50cnkobi0mZ3Q7bWVtYmVyLm5leHQsIHR5cGVvZigqbiks IG1lbWJlcikpPGJyPg0KIDxicj4NCisvKio8YnI+DQorICogbGlzdF9mb3JfZWFjaF9lbnRyeV9y ZXZlcnNlX3NhZmUgLSBpdGVyYXRlIGJhY2t3YXJkcyBvdmVyIGxpc3Qgb2YgZ2l2ZW4NCnR5cGUg c2FmZSBhZ2FpbnN0IHJlbW92YWwgb2YgbGlzdCBlbnRyeTxicj4NCisgKiBAcG9zOiAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp0aGUgdHlw ZSAqIHRvIHVzZSBhcyBhIGxvb3AgY291bnRlci48YnI+DQorICogQG46ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YW5vdGhlcg0K dHlwZSAqIHRvIHVzZSBhcyB0ZW1wb3Jhcnkgc3RvcmFnZTxicj4NCisgKiBAaGVhZDogJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdGhlIGhl YWQgZm9yIHlvdXIgbGlzdC48YnI+DQorICogQG1lbWJlcjogJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdGhlIG5hbWUgb2YgdGhlIGxpc3Rf c3RydWN0IHdpdGhpbiB0aGUgc3RydWN0Ljxicj4NCisgKi88YnI+DQorI2RlZmluZSBsaXN0X2Zv cl9lYWNoX2VudHJ5X3JldmVyc2Vfc2FmZShwb3MsIG4sIGhlYWQsIG1lbWJlcikgJm5ic3A7DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtcPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpmb3IgKHBvcyA9IGxpc3RfZW50cnko KGhlYWQpLSZndDtwcmV2LCB0eXBlb2YoKnBvcyksIG1lbWJlciksICZuYnNwOyAmbmJzcDsNCiZu YnNwO1w8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQpuID0gbGlzdF9lbnRyeShwb3MtJmd0O21lbWJlci5wcmV2LCB0 eXBlb2YoKnBvcyksIG1lbWJlcik7XDxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsmYW1wO3Bv cy0mZ3Q7bWVtYmVyICE9IChoZWFkKTsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+DQorICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJz cDsgJm5ic3A7cG9zID0gbiwgbiA9IGxpc3RfZW50cnkobi0mZ3Q7bWVtYmVyLnByZXYsIHR5cGVv ZigqbiksDQptZW1iZXIpKTxicj4NCis8YnI+DQorLyoqPGJyPg0KKyAqIGxpc3RfZm9yX3NvbWVf ZW50cnlfc2FmZSAtIGl0ZXJhdGUgbGlzdCBmcm9tIHRoZSBnaXZlbiBiZWdpbiBub2RlIHRvDQp0 aGUgZ2l2ZW4gZW5kIG5vZGUgc2FmZSBhZ2FpbnN0IHJlbW92YWwgb2YgbGlzdCBlbnRyeTxicj4N CisgKiBAcG9zOiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7DQp0aGUgdHlwZSAqIHRvIHVzZSBhcyBhIGxvb3AgY291bnRlci48YnI+DQorICog QG46ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7YW5vdGhlcg0KdHlwZSAqIHRvIHVzZSBhcyB0ZW1wb3Jhcnkgc3RvcmFnZTxicj4N CisgKiBAZnJvbTogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KdGhlIGJlZ2luIG5vZGUgb2YgdGhlIGl0ZXJhdGlvbi48YnI+DQorICogQHRv OiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3RoZQ0KZW5kIG5vZGUgb2YgdGhlIGl0ZXJhdGlvbi48YnI+DQorICogQG1lbWJlcjog Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0K dGhlIG5hbWUgb2YgdGhlIGxpc3Rfc3RydWN0IHdpdGhpbiB0aGUgc3RydWN0Ljxicj4NCisgKi88 YnI+DQorI2RlZmluZSBsaXN0X2Zvcl9zb21lX2VudHJ5X3NhZmUocG9zLCBuLCBmcm9tLCB0bywg bWVtYmVyKSAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 XDxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KZm9yIChwb3MgPSBsaXN0X2VudHJ5KChmcm9tKS0mZ3Q7bmV4dCwgdHlwZW9mKCpw b3MpLCBtZW1iZXIpLCAmbmJzcDsgJm5ic3A7DQombmJzcDtcPGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7 ICZuYnNwO24gPSBsaXN0X2VudHJ5KHBvcy0mZ3Q7bWVtYmVyLm5leHQsIHR5cGVvZigqcG9zKSwg bWVtYmVyKTsNCiZuYnNwOyAmbmJzcDtcPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyZhbXA7 cG9zLSZndDttZW1iZXIgIT0gKHRvKTsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtcPGJyPg0KKyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJz cDsgJm5ic3A7ICZuYnNwO3BvcyA9IG4sIG4gPSBsaXN0X2VudHJ5KG4tJmd0O21lbWJlci5uZXh0 LCB0eXBlb2YoKm4pLA0KbWVtYmVyKSk8YnI+DQorPGJyPg0KKy8qKjxicj4NCisgKiBsaXN0X2Zv cl9zb21lX2VudHJ5X3JldmVyc2Vfc2FmZSAtIGl0ZXJhdGUgYmFja3dhcmRzIGxpc3QgZnJvbSB0 aGUNCmdpdmVuIGJlZ2luIG5vZGUgdG8gdGhlIGdpdmVuIGVuZCBub2RlIHNhZmUgYWdhaW5zdCBy ZW1vdmFsIG9mIGxpc3QgZW50cnk8YnI+DQorICogQHBvczogJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdGhlIHR5cGUgKiB0byB1c2UgYXMg YSBsb29wIGNvdW50ZXIuPGJyPg0KKyAqIEBuOiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Fub3RoZXINCnR5cGUgKiB0byB1c2Ug YXMgdGVtcG9yYXJ5IHN0b3JhZ2U8YnI+DQorICogQGZyb206ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnRoZSBiZWdpbiBub2RlIG9mIHRo ZSBpdGVyYXRpb24uPGJyPg0KKyAqIEB0bzogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt0aGUNCmVuZCBub2RlIG9mIHRoZSBpdGVy YXRpb24uPGJyPg0KKyAqIEBtZW1iZXI6ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnRoZSBuYW1lIG9mIHRoZSBsaXN0X3N0cnVjdCB3aXRo aW4gdGhlIHN0cnVjdC48YnI+DQorICovPGJyPg0KKyNkZWZpbmUgbGlzdF9mb3Jfc29tZV9lbnRy eV9yZXZlcnNlX3NhZmUocG9zLCBuLCBmcm9tLCB0bywgbWVtYmVyKSAmbmJzcDsNCiZuYnNwOyAm bmJzcDtcPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQpmb3IgKHBvcyA9IGxpc3RfZW50cnkoKGZyb20pLSZndDtwcmV2LCB0eXBl b2YoKnBvcyksIG1lbWJlciksICZuYnNwOyAmbmJzcDsNCiZuYnNwO1w8YnI+DQorICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7biA9IGxpc3RfZW50cnkocG9zLSZndDttZW1iZXIucHJldiwgdHlwZW9mKCpw b3MpLCBtZW1iZXIpOw0KJm5ic3A7ICZuYnNwO1w8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7 JmFtcDtwb3MtJmd0O21lbWJlciAhPSAodG8pOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+DQor ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CiZuYnNwOyAmbmJzcDsgJm5ic3A7cG9zID0gbiwgbiA9IGxpc3RfZW50cnkobi0mZ3Q7bWVtYmVy LnByZXYsIHR5cGVvZigqbiksDQptZW1iZXIpKTxicj4NCis8YnI+DQogI2VuZGlmIC8qIF9MSVNU X0ggKi88YnI+DQpkaWZmIC0tZ2l0IGEvbGlibXVsdGlwYXRoL3Byb3BzZWwuYyBiL2xpYm11bHRp cGF0aC9wcm9wc2VsLmM8YnI+DQppbmRleCBjMGJjNjE2Li41YTU4ZGMwIDEwMDY0NDxicj4NCi0t LSBhL2xpYm11bHRpcGF0aC9wcm9wc2VsLmM8YnI+DQorKysgYi9saWJtdWx0aXBhdGgvcHJvcHNl bC5jPGJyPg0KQEAgLTE4LDYgKzE4LDcgQEA8YnI+DQogI2luY2x1ZGUgJnF1b3Q7cHJpby5oJnF1 b3Q7PGJyPg0KICNpbmNsdWRlICZxdW90O2Rpc2NvdmVyeS5oJnF1b3Q7PGJyPg0KICNpbmNsdWRl ICZxdW90O2RpY3QuaCZxdW90Ozxicj4NCisjaW5jbHVkZSAmcXVvdDt1dGlsLmgmcXVvdDs8YnI+ DQogI2luY2x1ZGUgJnF1b3Q7cHJpb3JpdGl6ZXJzL2FsdWFfcnRwZy5oJnF1b3Q7PGJyPg0KICNp bmNsdWRlICZsdDtpbnR0eXBlcy5oJmd0Ozxicj4NCiA8YnI+DQpAQCAtMzM5LDYgKzM0MCwxMiBA QCBpbnQgc2VsZWN0X2dldHVpZChzdHJ1Y3QgY29uZmlnICpjb25mLCBzdHJ1Y3QgcGF0aA0KKnBw KTxicj4NCiB7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y2hhcg0KKm9yaWdpbjs8YnI+DQogPGJyPg0KKyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpwcC0mZ3Q7 dWlkX2F0dHJpYnV0ZSA9IHBhcnNlX3VpZF9hdHRyaWJ1dGVfYnlfYXR0cnMoY29uZi0mZ3Q7dWlk X2F0dHJzLA0KcHAtJmd0O2Rldik7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQppZiAocHAtJmd0O3VpZF9hdHRyaWJ1dGUpIHs8 YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7b3JpZ2luDQo9ICZxdW90Oyhjb25maWcgZmlsZSBkZWZhdWx0KSZxdW90Ozs8 YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7Z290bw0Kb3V0Ozxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KfTxicj4NCis8YnI+DQogJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtwcF9zZXRf b3ZyKGdldHVpZCk7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cHBfc2V0X292cih1aWRfYXR0cmlidXRlKTs8YnI+DQog Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtwcF9zZXRfaHdlKGdldHVpZCk7PGJyPg0KZGlmZiAtLWdpdCBhL2xpYm11bHRpcGF0aC91 ZXZlbnQuYyBiL2xpYm11bHRpcGF0aC91ZXZlbnQuYzxicj4NCmluZGV4IDdlZGNjZTEuLjdlNGFj MDQgMTAwNjQ0PGJyPg0KLS0tIGEvbGlibXVsdGlwYXRoL3VldmVudC5jPGJyPg0KKysrIGIvbGli bXVsdGlwYXRoL3VldmVudC5jPGJyPg0KQEAgLTI0LDYgKzI0LDcgQEA8YnI+DQogPGJyPg0KICNp bmNsdWRlICZsdDt1bmlzdGQuaCZndDs8YnI+DQogI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7PGJy Pg0KKyNpbmNsdWRlICZsdDtzdGRib29sLmgmZ3Q7PGJyPg0KICNpbmNsdWRlICZsdDtlcnJuby5o Jmd0Ozxicj4NCiAjaW5jbHVkZSAmbHQ7c3RkbGliLmgmZ3Q7PGJyPg0KICNpbmNsdWRlICZsdDtz dGRkZWYuaCZndDs8YnI+DQpAQCAtMzgsNiArMzksNyBAQDxicj4NCiAjaW5jbHVkZSAmbHQ7bGlu dXgvbmV0bGluay5oJmd0Ozxicj4NCiAjaW5jbHVkZSAmbHQ7cHRocmVhZC5oJmd0Ozxicj4NCiAj aW5jbHVkZSAmbHQ7c3lzL21tYW4uaCZndDs8YnI+DQorI2luY2x1ZGUgJmx0O3N5cy90aW1lLmgm Z3Q7PGJyPg0KICNpbmNsdWRlICZsdDtsaWJ1ZGV2LmgmZ3Q7PGJyPg0KICNpbmNsdWRlICZsdDtl cnJuby5oJmd0Ozxicj4NCiA8YnI+DQpAQCAtNDYsNiArNDgsMTQgQEA8YnI+DQogI2luY2x1ZGUg JnF1b3Q7bGlzdC5oJnF1b3Q7PGJyPg0KICNpbmNsdWRlICZxdW90O3VldmVudC5oJnF1b3Q7PGJy Pg0KICNpbmNsdWRlICZxdW90O3ZlY3Rvci5oJnF1b3Q7PGJyPg0KKyNpbmNsdWRlICZxdW90O3N0 cnVjdHMuaCZxdW90Ozxicj4NCisjaW5jbHVkZSAmcXVvdDt1dGlsLmgmcXVvdDs8YnI+DQorI2lu Y2x1ZGUgJnF1b3Q7Y29uZmlnLmgmcXVvdDs8YnI+DQorI2luY2x1ZGUgJnF1b3Q7YmxhY2tsaXN0 LmgmcXVvdDs8YnI+DQorPGJyPg0KKyNkZWZpbmUgTUFYX0FDQ1VNVUxBVElPTl9DT1VOVCAyMDQ4 PGJyPg0KKyNkZWZpbmUgTUFYX0FDQ1VNVUxBVElPTl9USU1FIDMwKjEwMDA8YnI+DQorI2RlZmlu ZSBNSU5fQlVSU1RfU1BFRUQgMTA8YnI+DQogPGJyPg0KIHR5cGVkZWYgaW50ICh1ZXZfdHJpZ2dl cikoc3RydWN0IHVldmVudCAqLCB2b2lkICogdHJpZ2dlcl9kYXRhKTs8YnI+DQogPGJyPg0KQEAg LTcyLDQ4ICs4MiwzMDAgQEAgc3RydWN0IHVldmVudCAqIGFsbG9jX3VldmVudCAodm9pZCk8YnI+ DQogezxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO3N0cnVjdA0KdWV2ZW50ICp1ZXYgPSBNQUxMT0Moc2l6ZW9mKHN0cnVj dCB1ZXZlbnQpKTs8YnI+DQogPGJyPg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQppZiAodWV2KTxicj4NCisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KaWYgKHVldikgezxicj4N CiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KSU5JVF9MSVNUX0hFQUQoJmFtcDt1ZXYtJmd0O25vZGUpOzxicj4NCisgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtJ TklUX0xJU1RfSEVBRCgmYW1wO3Vldi0mZ3Q7bWVyZ2Vfbm9kZSk7PGJyPg0KKyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp9PGJyPg0KIDxi cj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3JldHVybg0KdWV2Ozxicj4NCiB9PGJyPg0KIDxicj4NCiB2b2lkPGJyPg0KLXNl cnZpY2VfdWV2cShzdHJ1Y3QgbGlzdF9oZWFkICp0bXBxKTxicj4NCit1ZXZxX2NsZWFudXAoc3Ry dWN0IGxpc3RfaGVhZCAqdG1wcSk8YnI+DQogezxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdA0KdWV2ZW50ICp1 ZXYsICp0bXA7PGJyPg0KIDxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2xpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh1ZXYs DQp0bXAsIHRtcHEsIG5vZGUpIHs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmxpc3RfZGVsX2luaXQoJmFtcDt1ZXYt Jmd0O25vZGUpOzxicj4NCiA8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYNCihteV91ZXZfdHJpZ2dlciAmYW1wOyZh bXA7IG15X3Vldl90cmlnZ2VyKHVldiwgbXlfdHJpZ2dlcl9kYXRhKSk8YnI+DQotICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpj b25kbG9nKDAsICZxdW90O3VldmVudCB0cmlnZ2VyIGVycm9yJnF1b3Q7KTs8YnI+DQotPGJyPg0K ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQppZiAodWV2LSZndDt1ZGV2KTxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt1ZGV2X2RldmljZV91 bnJlZih1ZXYtJmd0O3VkZXYpOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KRlJFRSh1ZXYpOzxicj4NCiAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308 YnI+DQogfTxicj4NCiA8YnI+DQotc3RhdGljIHZvaWQgdWV2ZW50X2NsZWFudXAodm9pZCAqYXJn KTxicj4NCit2b2lkPGJyPg0KK3VldmVudF9nZXRfd3dpZChzdHJ1Y3QgdWV2ZW50ICp1ZXYpPGJy Pg0KIHs8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsNCnN0cnVjdCB1ZGV2ICp1ZGV2ID0gYXJnOzxicj4NCisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KaW50IGk7PGJyPg0K KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQpjaGFyICp1aWRfYXR0cmlidXRlOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0Kc3RydWN0IGNvbmZpZyAqIGNvbmY7PGJyPg0K KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQo8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCmNvbmYgPSBnZXRfbXVsdGlwYXRoX2NvbmZpZygpOzxicj4NCisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdWlkX2F0dHJp YnV0ZSA9IHBhcnNlX3VpZF9hdHRyaWJ1dGVfYnlfYXR0cnMoY29uZi0mZ3Q7dWlkX2F0dHJzLCB1 ZXYtJmd0O2tlcm5lbCk7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpwdXRfbXVsdGlwYXRoX2NvbmZpZyhjb25mKTsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgPGJyPg0K KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQo8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCmlmICghdWlkX2F0dHJpYnV0ZSk8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuOzxicj4NCisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0K PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQpmb3IgKGkgPSAwOyB1ZXYtJmd0O2VudnBbaV0gIT0gTlVMTDsgaSsrKSB7PGJyPg0K KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2lmDQooIXN0cm5jbXAodWV2LSZndDtlbnZwW2ldLCB1aWRfYXR0cmlidXRlLCBzdHJs ZW4odWlkX2F0dHJpYnV0ZSkpICZhbXA7JmFtcDs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7 c3RybGVuKHVldi0mZ3Q7ZW52cFtpXSkgJmd0OyBzdHJsZW4odWlkX2F0dHJpYnV0ZSkpIHs8YnI+ DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7DQp1ZXYtJmd0O3d3aWQgPSB1ZXYtJmd0O2VudnBbaV0gKyBzdHJsZW4odWlkX2F0 dHJpYnV0ZSkgKyAxOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmJyZWFrOzxicj4NCisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPg0KKyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp9 PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQpmcmVlKHVpZF9hdHRyaWJ1dGUpOzxicj4NCit9PGJyPg0KIDxicj4NCi0gJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KY29uZGxv ZygzLCAmcXVvdDtSZWxlYXNpbmcgdWV2ZW50X2xpc3RlbigpIHJlc291cmNlcyZxdW90Oyk7PGJy Pg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQp1ZGV2X3VucmVmKHVkZXYpOzxicj4NCitib29sPGJyPg0KK3VldmVudF9uZWVkX21lcmdl KHZvaWQpPGJyPg0KK3s8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCnN0cnVjdCBjb25maWcgKiBjb25mOzxicj4NCisgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KYm9vbCBu ZWVkX21lcmdlID0gZmFsc2U7PGJyPg0KKzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KY29uZiA9IGdldF9tdWx0aXBhdGhfY29u ZmlnKCk7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQppZiAoY29uZi0mZ3Q7dWlkX2F0dHJzKTxicj4NCisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtuZWVkX21l cmdlDQo9IHRydWU7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQpwdXRfbXVsdGlwYXRoX2NvbmZpZyhjb25mKTsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgPGJyPg0KKzxi cj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOw0KcmV0dXJuIG5lZWRfbWVyZ2U7PGJyPg0KK308YnI+DQorPGJyPg0KK2Jvb2w8YnI+DQor dWV2ZW50X2Nhbl9kaXNjYXJkKHN0cnVjdCB1ZXZlbnQgKnVldik8YnI+DQorezxicj4NCisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KY2hh ciAqdG1wOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KY2hhciBhWzExXSwgYlsxMV07PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpzdHJ1Y3QgY29uZmlnICog Y29uZjs8YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQovKjxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7KiBrZWVwIG9ubHkgYmxvY2sgZGV2 aWNlcywgZGlzY2FyZCBwYXJ0aXRpb25zPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqLzxicj4NCisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdG1wID0gc3Ry c3RyKHVldi0mZ3Q7ZGV2cGF0aCwgJnF1b3Q7L2Jsb2NrLyZxdW90Oyk7PGJyPg0KKyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQppZiAodG1w ID09IE5VTEwpezxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjb25kbG9nKDQsDQomcXVvdDtubyAvYmxvY2svIGluICcl cycmcXVvdDssIHVldi0mZ3Q7ZGV2cGF0aCk7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybg0KdHJ1ZTs8YnI+ DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsNCn08YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsNCmlmIChzc2NhbmYodG1wLCAmcXVvdDsvYmxvY2svJTEwcyZxdW90OywgYSkg IT0gMSB8fDxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyBzc2NhbmYodG1wLCAmcXVvdDsvYmxvY2svJTEw W14vXS8lMTBzJnF1b3Q7LCBhLCBiKSA9PSAyKQ0Kezxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjb25kbG9nKDQsDQom cXVvdDtkaXNjYXJkIGV2ZW50IG9uICVzJnF1b3Q7LCB1ZXYtJmd0O2RldnBhdGgpOzxicj4NCisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0K Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtyZXR1cm4NCnRydWU7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp9PGJyPg0KKzxicj4NCisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KLyogPGJyPg0KKyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJz cDsqIGRvIG5vdCBmaWx0ZXIgZG0gZGV2aWNlcyBieSBkZXZub2RlPGJyPg0KKyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqLzxi cj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOw0KaWYgKCFzdHJuY21wKHVldi0mZ3Q7a2VybmVsLCAmcXVvdDtkbS0mcXVvdDssIDMpKTxi cj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtyZXR1cm4NCmZhbHNlOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KLyogPGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqIGZpbHRl ciBwYXRocyBkZXZpY2VzIGJ5IGRldm5vZGU8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyovPGJyPg0KKyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjb25mID0g Z2V0X211bHRpcGF0aF9jb25maWcoKTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmIChmaWx0ZXJfZGV2bm9kZShjb25mLSZn dDtibGlzdF9kZXZub2RlLCBjb25mLSZndDtlbGlzdF9kZXZub2RlLDxicj4NCisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZu YnNwOyAmbmJzcDt1ZXYtJmd0O2tlcm5lbCkgJmd0OyAwKSB7PGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3B1dF9tdWx0 aXBhdGhfY29uZmlnKGNvbmYpOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4NCnRydWU7PGJyPg0KKyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp9PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQpwdXRfbXVsdGlwYXRoX2NvbmZpZyhjb25mKTs8YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpyZXR1cm4gZmFs c2U7PGJyPg0KK308YnI+DQorPGJyPg0KK2Jvb2w8YnI+DQordWV2ZW50X2Nhbl9maWx0ZXIoc3Ry dWN0IHVldmVudCAqZWFybGllciwgc3RydWN0IHVldmVudCAqbGF0ZXIpPGJyPg0KK3s8YnI+DQor PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQovKjxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7KiBmaWx0ZXIgZWFybGllciB1dmVudHMgaWYgcGF0aCBo YXMgcmVtb3ZlZCBsYXRlci4gRWc6PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqICZxdW90O2FkZCBwYXRoMSB8Y2hh bmcgcGF0aDEgfGFkZCBwYXRoMiB8cmVtb3ZlIHBhdGgxJnF1b3Q7PGJyPg0KKyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqIGNh biBmaWx0ZXIgYXM6PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqICZxdW90O2FkZCBwYXRoMiB8cmVtb3ZlIHBhdGgx JnF1b3Q7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsqIHVldmVudHMgJnF1b3Q7YWRkIHBhdGgxJnF1b3Q7IGFuZCAm cXVvdDtjaGFuZyBwYXRoMSZxdW90OyBhcmUgZmlsdGVyZWQNCm91dDxicj4NCisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7Ki88 YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsNCmlmICghc3RyY21wKGVhcmxpZXItJmd0O2tlcm5lbCwgbGF0ZXItJmd0O2tlcm5lbCkg JmFtcDsmYW1wOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDshc3RyY21wKGxhdGVyLSZndDthY3Rpb24sDQomcXVvdDty ZW1vdmUmcXVvdDspICZhbXA7JmFtcDs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7c3RybmNtcChsYXRlci0mZ3Q7a2Vy bmVsLA0KJnF1b3Q7ZG0tJnF1b3Q7LCAzKSkgezxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4NCnRydWU7PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQp9PGJyPg0KKzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KLyo8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyogZmlsdGVyIGNoYW5nZSB1dmVu dHMgaWYgYWRkIHVldmVudHMgZXhpc3QuIEVnOjxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7KiAmcXVvdDtjaGFuZ2Ug cGF0aDF8IGFkZCBwYXRoMSB8YWRkIHBhdGgyJnF1b3Q7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqIGNhbiBmaWx0 ZXIgYXM6PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsqICZxdW90O2FkZCBwYXRoMSB8YWRkIHBhdGgyJnF1b3Q7PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsqIHVldmVudCAmcXVvdDtjaGFuZyBwYXRoMSZxdW90OyBpcyBmaWx0ZXJlZCBv dXQ8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyovPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQppZiAoIXN0cmNtcChlYXJsaWVyLSZndDtrZXJuZWws IGxhdGVyLSZndDtrZXJuZWwpICZhbXA7JmFtcDs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IXN0cmNtcChlYXJsaWVy LSZndDthY3Rpb24sDQomcXVvdDtjaGFuZ2UmcXVvdDspICZhbXA7JmFtcDs8YnI+DQorICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 IXN0cmNtcChsYXRlci0mZ3Q7YWN0aW9uLA0KJnF1b3Q7YWRkJnF1b3Q7KSAmYW1wOyZhbXA7PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3N0cm5jbXAobGF0ZXItJmd0O2tlcm5lbCwNCiZxdW90O2RtLSZxdW90OywgMykp IHs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7cmV0dXJuDQp0cnVlOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KfTxicj4NCis8YnI+DQorICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnJldHVy biBmYWxzZTs8YnI+DQorfTxicj4NCis8YnI+DQorYm9vbDxicj4NCittZXJnZV9uZWVkX3N0b3Ao c3RydWN0IHVldmVudCAqZWFybGllciwgc3RydWN0IHVldmVudCAqbGF0ZXIpPGJyPg0KK3s8YnI+ DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsNCi8qPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsqIGRtIHVldmVudCBkbyBub3QgdHJ5IHRvIG1lcmdlIHdpdGgg bGVmdCB1ZXZlbnRzPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqLzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KaWYgKCFzdHJuY21wKGxhdGVyLSZn dDtrZXJuZWwsICZxdW90O2RtLSZxdW90OywgMykpPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybg0KdHJ1ZTs8 YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQovKjxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7KiB3ZSBjYW4gbm90IG1ha2UgYSBqdWdlbWVu dCB3aXRob3V0IHd3aWQsPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqIHNvIGl0IGlzIHNlbnNpYmxlIHRvIHN0b3Ag bWVyZ2luZzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KJm5ic3A7Ki88YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmICghZWFybGllci0mZ3Q7d3dpZCB8fCAh bGF0ZXItJmd0O3d3aWQpPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybg0KdHJ1ZTs8YnI+DQorICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCi8qPGJyPg0K KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQombmJzcDsqIHVldmVudHMgbWVyZ2luZyBzdG9wZWQ8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyogd2hlbiB3ZSBt ZWV0IGFuIG9wcG9zaXRlIGFjdGlvbiB1ZXZlbnQgZnJvbSB0aGUgc2FtZSBMVU4gdG8gQVZPSUQ8 YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsNCiZuYnNwOyogJnF1b3Q7YWRkIHBhdGgxIHxyZW1vdmUgcGF0aDEgfGFkZCBwYXRoMiB8 cmVtb3ZlIHBhdGgyIHxhZGQgcGF0aDMmcXVvdDs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyogdG8gbWVyZ2UgYXMg JnF1b3Q7cmVtb3ZlIHBhdGgxLCBwYXRoMiZxdW90OyBhbmQgJnF1b3Q7YWRkIHBhdGgxLA0KcGF0 aDIsIHBhdGgzJnF1b3Q7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqIE9SPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqICZxdW90O3Jl bW92ZSBwYXRoMSB8YWRkIHBhdGgxIHxyZW1vdmUgcGF0aDIgfGFkZCBwYXRoMiB8cmVtb3ZlDQpw YXRoMyZxdW90Ozxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7KiB0byBtZXJnZSBhcyAmcXVvdDthZGQgcGF0aDEsIHBh dGgyJnF1b3Q7IGFuZCAmcXVvdDtyZW1vdmUgcGF0aDEsDQpwYXRoMiwgcGF0aDMmcXVvdDs8YnI+ DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsNCiZuYnNwOyogU088YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyogd2hlbiB3ZSBtZWV0IGEgbm9uLWNoYW5nZSB1 ZXZlbnQgZnJvbSB0aGUgc2FtZSBMVU48YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyogd2l0aCB0aGUgc2FtZSB3d2lk IGFuZCBkaWZmZXJlbnQgYWN0aW9uPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqIGl0IHdvdWxkIGJlIGJldHRlciB0 byBzdG9wIG1lcmdpbmcuPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqLzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KaWYgKCFzdHJjbXAoZWFybGll ci0mZ3Q7d3dpZCwgbGF0ZXItJmd0O3d3aWQpICZhbXA7JmFtcDs8YnI+DQorICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJz cDsgc3RyY21wKGVhcmxpZXItJmd0O2FjdGlvbiwgbGF0ZXItJmd0O2FjdGlvbikgJmFtcDsmYW1w Ozxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyBzdHJjbXAoZWFybGllci0mZ3Q7YWN0aW9uLCAmcXVvdDtj aGFuZ2UmcXVvdDspICZhbXA7JmFtcDs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgc3RyY21wKGxhdGVy LSZndDthY3Rpb24sICZxdW90O2NoYW5nZSZxdW90OykpPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybg0KdHJ1 ZTs8YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQpyZXR1cm4gZmFsc2U7PGJyPg0KK308YnI+DQorPGJyPg0KK2Jvb2w8 YnI+DQordWV2ZW50X2Nhbl9tZXJnZShzdHJ1Y3QgdWV2ZW50ICplYXJsaWVyLCBzdHJ1Y3QgdWV2 ZW50ICpsYXRlcik8YnI+DQorezxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KLyogbWVyZ2UgcGF0aHMgdWV2ZW50czxicj4NCisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0K Jm5ic3A7KiB3aG9zZSB3d2lkcyBleHNpdCBhbmQgYXJlIHNhbWU8YnI+DQorICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyogYW5k IGFjdGlvbnMgYXJlIHNhbWUsPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsqIGFuZCBhY3Rpb25zIGFyZSBhZGRpdGlv biBvciBkZWxldGlvbjxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7Ki88YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmIChlYXJsaWVyLSZndDt3d2lk ICZhbXA7JmFtcDsgbGF0ZXItJmd0O3d3aWQgJmFtcDsmYW1wOzxicj4NCisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAhc3RyY21wKGVhcmxpZXItJmd0O3d3aWQsIGxhdGVyLSZndDt3d2lkKSAmYW1wOyZhbXA7PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICFzdHJjbXAoZWFybGllci0mZ3Q7YWN0aW9uLCBsYXRlci0mZ3Q7 YWN0aW9uKSAmYW1wOyZhbXA7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7IHN0cm5jbXAoZWFybGllci0m Z3Q7YWN0aW9uLCAmcXVvdDtjaGFuZ2UmcXVvdDssIDYpICZhbXA7JmFtcDs8YnI+DQorICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNw OyAmbmJzcDsgc3RybmNtcChlYXJsaWVyLSZndDtrZXJuZWwsICZxdW90O2RtLSZxdW90OywgMykp IHs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7cmV0dXJuDQp0cnVlOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KfTxicj4NCis8YnI+DQorICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnJldHVy biBmYWxzZTs8YnI+DQogfTxicj4NCiA8YnI+DQogdm9pZDxicj4NCi11ZXZxX2NsZWFudXAoc3Ry dWN0IGxpc3RfaGVhZCAqdG1wcSk8YnI+DQordWV2ZW50X3ByZXBhcmUoc3RydWN0IGxpc3RfaGVh ZCAqdG1wcSk8YnI+DQorezxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0Kc3RydWN0IHVldmVudCAqdWV2LCAqdG1wOzxicj4NCis8 YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsNCmxpc3RfZm9yX2VhY2hfZW50cnlfcmV2ZXJzZV9zYWZlKHVldiwgdG1wLCB0bXBxLCBu b2RlKSB7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2lmDQoodWV2ZW50X2Nhbl9kaXNjYXJkKHVldikpIHs8YnI+DQor ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQpsaXN0X2RlbF9pbml0KCZhbXA7dWV2LSZndDtub2RlKTs8YnI+DQorICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpp ZiAodWV2LSZndDt1ZGV2KTxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7dWRldl9kZXZpY2VfdW5yZWYodWV2 LSZndDt1ZGV2KTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpGUkVFKHVldik7PGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KY29udGlu dWU7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO308YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmDQooc3RybmNtcCh1ZXYtJmd0 O2tlcm5lbCwgJnF1b3Q7ZG0tJnF1b3Q7LCAzKSAmYW1wOyZhbXA7PGJyPg0KKyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5i c3A7ICZuYnNwO3VldmVudF9uZWVkX21lcmdlKCkpPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdWV2ZW50X2dldF93 d2lkKHVldik7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQp9PGJyPg0KK308YnI+DQorPGJyPg0KK3ZvaWQ8YnI+DQordWV2ZW50 X2ZpbHRlcihzdHJ1Y3QgdWV2ZW50ICpsYXRlciwgc3RydWN0IGxpc3RfaGVhZCAqdG1wcSk8YnI+ DQorezxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0Kc3RydWN0IHVldmVudCAqZWFybGllciwgKnRtcDs8YnI+DQorPGJyPg0KKyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQps aXN0X2Zvcl9zb21lX2VudHJ5X3JldmVyc2Vfc2FmZShlYXJsaWVyLCB0bXAsICZhbXA7bGF0ZXIt Jmd0O25vZGUsIHRtcHEsDQpub2RlKSB7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qPGJyPg0KKyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KKiBm aWx0ZXIgdW5uZXNzYXJ5IGVhcmxpZXIgdWV2ZW50cyA8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQoqIGJ5IHRoZSBs YXRlciB1ZXZlbnQ8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQoqLzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZg0KKHVldmVudF9jYW5f ZmlsdGVyKGVhcmxpZXIsIGxhdGVyKSkgezxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmNvbmRsb2coMiwgJnF1b3Q7 dWV2ZW50OiAlcy0lcyBoYXMgZmlsdGVyZWQgYnkgdWV2ZW50OiAlcy0lcyZxdW90Oyw8YnI+DQor ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO2VhcmxpZXItJmd0O2tlcm5lbCwNCmVhcmxpZXItJmd0O2FjdGlvbiwgPGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtsYXRlci0mZ3Q7a2VybmVsLA0KbGF0ZXItJmd0O2FjdGlvbik7PGJy Pg0KKzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCmxpc3RfZGVsX2luaXQoJmFtcDtlYXJsaWVyLSZndDtub2RlKTs8 YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQppZiAoZWFybGllci0mZ3Q7dWRldik8YnI+DQorICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Vk ZXZfZGV2aWNlX3VucmVmKGVhcmxpZXItJmd0O3VkZXYpOzxicj4NCisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCkZSRUUoZWFy bGllcik7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO308YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCn08YnI+DQorfTxicj4NCis8YnI+DQordm9pZDxi cj4NCit1ZXZlbnRfbWVyZ2Uoc3RydWN0IHVldmVudCAqbGF0ZXIsIHN0cnVjdCBsaXN0X2hlYWQg KnRtcHEpPGJyPg0KK3s8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCnN0cnVjdCB1ZXZlbnQgKmVhcmxpZXIsICp0bXA7PGJyPg0K Kzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KbGlzdF9mb3Jfc29tZV9lbnRyeV9yZXZlcnNlX3NhZmUoZWFybGllciwgdG1wLCAm YW1wO2xhdGVyLSZndDtub2RlLCB0bXBxLA0Kbm9kZSkgezxicj4NCisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZg0KKG1lcmdl X25lZWRfc3RvcChlYXJsaWVyLCBsYXRlcikpPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KYnJlYWs7PGJyPg0KKyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOy8qPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KKiBtZXJnZSBlYXJsaWVyIHVldmVudHMgdG8gdGhlIGxhdGVy IHVldmVudDxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCiovPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmDQoodWV2ZW50X2Nhbl9tZXJn ZShlYXJsaWVyLCBsYXRlcikpIHs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjb25kbG9nKDIsICZxdW90O21lcmdl ZCB1ZXZlbnQ6ICVzLSVzLSVzIHdpdGggdWV2ZW50OiAlcy0lcy0lcyZxdW90Oyw8YnI+DQorICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2VhcmxpZXItJmd0O2FjdGlvbiwNCmVhcmxpZXItJmd0O2tlcm5lbCwgZWFybGll ci0mZ3Q7d3dpZCw8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2xhdGVyLSZndDthY3Rpb24sDQpsYXRlci0m Z3Q7a2VybmVsLCBsYXRlci0mZ3Q7d3dpZCk7PGJyPg0KKzxicj4NCisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmxpc3RfbW92 ZSgmYW1wO2VhcmxpZXItJmd0O25vZGUsICZhbXA7bGF0ZXItJmd0O21lcmdlX25vZGUpOzxicj4N CisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDt9PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQp9PGJyPg0KK308YnI+DQorPGJyPg0KK3ZvaWQ8YnI+DQorbWVyZ2Vf dWV2cShzdHJ1Y3QgbGlzdF9oZWFkICp0bXBxKTxicj4NCit7PGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpzdHJ1Y3QgdWV2ZW50 ICpsYXRlcjs8YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp1ZXZlbnRfcHJlcGFyZSh0bXBxKTs8YnI+DQorICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmxpc3Rf Zm9yX2VhY2hfZW50cnlfcmV2ZXJzZShsYXRlciwgdG1wcSwgbm9kZSkgezxicj4NCisgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt1 ZXZlbnRfZmlsdGVyKGxhdGVyLA0KdG1wcSk7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmKHVldmVudF9uZWVkX21l cmdlKCkpPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KdWV2ZW50X21lcmdlKGxhdGVyLCB0bXBxKTs8YnI+DQorICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCn08 YnI+DQorfTxicj4NCis8YnI+DQordm9pZDxicj4NCitzZXJ2aWNlX3VldnEoc3RydWN0IGxpc3Rf aGVhZCAqdG1wcSk8YnI+DQogezxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdA0KdWV2ZW50ICp1ZXYsICp0bXA7 PGJyPg0KIDxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2xpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh1ZXYsDQp0bXAsIHRt cHEsIG5vZGUpIHs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmxpc3RfZGVsX2luaXQoJmFtcDt1ZXYtJmd0O25vZGUp Ozxicj4NCis8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYNCihteV91ZXZfdHJpZ2dlciAmYW1wOyZhbXA7IG15X3Vl dl90cmlnZ2VyKHVldiwgbXlfdHJpZ2dlcl9kYXRhKSk8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjb25kbG9nKDAs ICZxdW90O3VldmVudCB0cmlnZ2VyIGVycm9yJnF1b3Q7KTs8YnI+DQorPGJyPg0KKyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Vl dnFfY2xlYW51cCgmYW1wO3Vldi0mZ3Q7bWVyZ2Vfbm9kZSk7PGJyPg0KKzxicj4NCisgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtp Zg0KKHVldi0mZ3Q7dWRldik8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp1ZGV2X2RldmljZV91bnJlZih1ZXYtJmd0 O3VkZXYpOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KRlJFRSh1ZXYpOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+DQogfTxicj4N CiA8YnI+DQorc3RhdGljIHZvaWQgdWV2ZW50X2NsZWFudXAodm9pZCAqYXJnKTxicj4NCit7PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQpzdHJ1Y3QgdWRldiAqdWRldiA9IGFyZzs8YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjb25kbG9nKDMsICZx dW90O1JlbGVhc2luZyB1ZXZlbnRfbGlzdGVuKCkgcmVzb3VyY2VzJnF1b3Q7KTs8YnI+DQorICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnVk ZXZfdW5yZWYodWRldik7PGJyPg0KK308YnI+DQorPGJyPg0KIC8qPGJyPg0KICZuYnNwOyogU2Vy dmljZSB0aGUgdWV2ZW50IHF1ZXVlLjxicj4NCiAmbmJzcDsqLzxicj4NCkBAIC0xNDIsNiArNDA0 LDcgQEAgaW50IHVldmVudF9kaXNwYXRjaChpbnQgKCp1ZXZfdHJpZ2dlcikoc3RydWN0IHVldmVu dA0KKiwgdm9pZCAqIHRyaWdnZXJfZGF0YSksPGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpwdGhyZWFkX211dGV4X3Vu bG9jayh1ZXZxX2xvY2twKTs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmICghbXlfdWV2X3RyaWdnZXIpPGJyPg0K ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO2JyZWFrOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDttZXJnZV91ZXZxKCZhbXA7dWV2cV90bXAp Ozxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0Kc2VydmljZV91ZXZxKCZhbXA7dWV2cV90bXApOzxicj4NCiAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308 YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtjb25kbG9nKDMsDQomcXVvdDtUZXJtaW5hdGluZyB1ZXYgc2VydmljZSBxdWV1 ZSZxdW90Oyk7PGJyPg0KQEAgLTQ0MiwxMSArNzA1LDQzIEBAIHN0cnVjdCB1ZXZlbnQgKnVldmVu dF9mcm9tX3VkZXZfZGV2aWNlKHN0cnVjdCB1ZGV2X2RldmljZQ0KKmRldik8YnI+DQogJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDty ZXR1cm4NCnVldjs8YnI+DQogfTxicj4NCiA8YnI+DQorYm9vbCB1ZXZlbnRfYnVyc3Qoc3RydWN0 IHRpbWV2YWwgKnN0YXJ0X3RpbWUsIGludCBldmVudHMpPGJyPg0KK3s8YnI+DQorICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnN0cnVjdCB0 aW1ldmFsIGRpZmZfdGltZSwgZW5kX3RpbWU7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp1bnNpZ25lZCBsb25nIHNwZWVkOzxi cj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOw0KdW5zaWduZWQgbG9uZyBlY2xpcHNlX21zOzxicj4NCis8YnI+DQorICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmKGV2ZW50cyAm Z3Q7IE1BWF9BQ0NVTVVMQVRJT05fQ09VTlQpIHs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y29uZGxvZygyLA0KJnF1 b3Q7YnVyc3QgZ290ICV1IHVldmVudHMsIHRvbyBtdWNoIHVldmVudHMsIHN0b3BwZWQmcXVvdDss IGV2ZW50cyk7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybg0KZmFsc2U7PGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp9PGJyPg0KKzxicj4N CisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KZ2V0dGltZW9mZGF5KCZhbXA7ZW5kX3RpbWUsIE5VTEwpOzxicj4NCisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdGltZXJzdWIoJmFt cDtlbmRfdGltZSwgc3RhcnRfdGltZSwgJmFtcDtkaWZmX3RpbWUpOzxicj4NCis8YnI+DQorICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmVj bGlwc2VfbXMgPSBkaWZmX3RpbWUudHZfc2VjICogMTAwMCArIGRpZmZfdGltZS50dl91c2VjIC8g MTAwMDs8YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQppZiAoZWNsaXBzZV9tcyA9PSAwKTxicj4NCisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1 cm4NCnRydWU7PGJyPg0KKzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KaWYgKGVjbGlwc2VfbXMgJmd0OyBNQVhfQUNDVU1VTEFU SU9OX1RJTUUpIHs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y29uZGxvZygyLA0KJnF1b3Q7YnVyc3QgY29udGludWVk ICVsdSBtcywgdG9vIGxvbmcgdGltZSwgc3RvcHBlZCZxdW90OywgZWNsaXBzZV9tcyk7PGJyPg0K KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3JldHVybg0KZmFsc2U7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp9PC9mb250PjwvdHQ+DQo8YnI+PHR0Pjxmb250 IHNpemU9Mj4rPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQpzcGVlZCA9IChldmVudHMgKiAxMDAwKSAvIGVjbGlwc2VfbXM7PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQppZiAoc3BlZWQgJmd0OyBNSU5fQlVSU1RfU1BFRUQpPGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybg0K dHJ1ZTs8YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQpyZXR1cm4gZmFsc2U7PGJyPg0KK308YnI+DQorPGJyPg0KIGlu dCB1ZXZlbnRfbGlzdGVuKHN0cnVjdCB1ZGV2ICp1ZGV2KTxicj4NCiB7PGJyPg0KICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aW50 DQplcnIgPSAyOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdA0KdWRldl9tb25pdG9yICptb25pdG9yID0gTlVM TDs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtpbnQNCmZkLCBzb2NrZXRfZmxhZ3MsIGV2ZW50czs8YnI+DQorICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnN0cnVj dCB0aW1ldmFsIHN0YXJ0X3RpbWU7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aW50DQpuZWVkX2ZhaWxiYWNrID0gMTs8 YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtpbnQNCnRpbWVvdXQgPSAzMDs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtMSVNUX0hFQUQodWV2bGlz dGVuX3RtcCk7PGJyPg0KQEAgLTUwMCw2ICs3OTUsNyBAQCBpbnQgdWV2ZW50X2xpc3RlbihzdHJ1 Y3QgdWRldiAqdWRldik8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPg0KIDxicj4NCiAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2ZW50cw0KPSAw Ozxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KZ2V0dGltZW9mZGF5KCZhbXA7c3RhcnRfdGltZSwgTlVMTCk7PGJyPg0KICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 d2hpbGUNCigxKSB7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpzdHJ1Y3QgdWV2ZW50ICp1ZXY7PGJyPg0KICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQpzdHJ1Y3QgdWRldl9kZXZpY2UgKmRldjs8YnI+DQpAQCAtNTE0LDcgKzgxMCw3IEBAIGludCB1 ZXZlbnRfbGlzdGVuKHN0cnVjdCB1ZGV2ICp1ZGV2KTxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KZXJybm8gPSAwOzxi cj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KZmRjb3VudCA9IHBvbGwoJmFtcDtldl9wb2xsLCAxLCBwb2xsX3RpbWVvdXQp Ozxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KaWYgKGZkY291bnQgJmFtcDsmYW1wOyBldl9wb2xsLnJldmVudHMgJmFt cDsgUE9MTElOKSB7PGJyPg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdGltZW91dCA9IDA7PGJyPg0KKyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdGlt ZW91dCA9IHVldmVudF9idXJzdCgmYW1wO3N0YXJ0X3RpbWUsIGV2ZW50cyArIDEpID8gMSA6IDA7 PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2Rldg0KPSB1ZGV2X21vbml0b3JfcmVjZWl2ZV9kZXZpY2UobW9u aXRvcik7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmDQooIWRldikgezxicj4NCiAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CmNvbmRsb2coMCwgJnF1b3Q7ZmFpbGVkIGdldHRpbmcgdWRldiBkZXZpY2UmcXVvdDspOzxicj4N CkBAIC01NDcsNiArODQzLDcgQEAgaW50IHVldmVudF9saXN0ZW4oc3RydWN0IHVkZXYgKnVkZXYp PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO3B0aHJlYWRfbXV0ZXhfdW5sb2NrKHVldnFfbG9ja3ApOzxicj4N CiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtldmVudHMNCj0gMDs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCn08YnI+DQorICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Z2V0 dGltZW9mZGF5KCZhbXA7c3RhcnRfdGltZSwNCk5VTEwpOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KdGltZW91dCA9 IDMwOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO308YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtuZWVkX2ZhaWxiYWNrDQo9IDA7PGJyPg0KZGlm ZiAtLWdpdCBhL2xpYm11bHRpcGF0aC91ZXZlbnQuaCBiL2xpYm11bHRpcGF0aC91ZXZlbnQuaDxi cj4NCmluZGV4IDlkMjJkY2QuLjYxYTQyMDcgMTAwNjQ0PGJyPg0KLS0tIGEvbGlibXVsdGlwYXRo L3VldmVudC5oPGJyPg0KKysrIGIvbGlibXVsdGlwYXRoL3VldmVudC5oPGJyPg0KQEAgLTE3LDEx ICsxNywxMyBAQCBzdHJ1Y3QgdWRldjs8YnI+DQogPGJyPg0KIHN0cnVjdCB1ZXZlbnQgezxicj4N CiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3N0cnVjdA0KbGlzdF9oZWFkIG5vZGU7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpzdHJ1Y3QgbGlzdF9oZWFkIG1l cmdlX25vZGU7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7c3RydWN0DQp1ZGV2X2RldmljZSAqdWRldjs8YnI+DQogJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtjaGFyDQpidWZmZXJbSE9UUExVR19CVUZGRVJfU0laRSArIE9CSkVDVF9TSVpFXTs8YnI+DQog Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtjaGFyDQoqZGV2cGF0aDs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjaGFyDQoqYWN0aW9uOzxicj4NCiAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O2NoYXINCiprZXJuZWw7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjaGFyICp3d2lkOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Vuc2lnbmVkDQps b25nIHNlcW51bTs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjaGFyDQoqZW52cFtIT1RQTFVHX05VTV9FTlZQXTs8YnI+ DQogfTs8YnI+DQpkaWZmIC0tZ2l0IGEvbGlibXVsdGlwYXRoL3V0aWwuYyBiL2xpYm11bHRpcGF0 aC91dGlsLmM8YnI+DQppbmRleCAwM2E1NzM4Li5lNWE0YTI4IDEwMDY0NDxicj4NCi0tLSBhL2xp Ym11bHRpcGF0aC91dGlsLmM8YnI+DQorKysgYi9saWJtdWx0aXBhdGgvdXRpbC5jPGJyPg0KQEAg LTI2MSw2ICsyNjEsNDYgQEAgZGV2X3QgcGFyc2VfZGV2dChjb25zdCBjaGFyICpkZXZfdCk8YnI+ DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtyZXR1cm4NCm1ha2VkZXYobWFqLCBtaW4pOzxicj4NCiB9PGJyPg0KIDxicj4NCitj aGFyICpwYXJzZV91aWRfYXR0cmlidXRlX2J5X2F0dHJzKGNoYXIgKnVpZF9hdHRycywgY2hhciAq cGF0aF9kZXYpPGJyPg0KK3s8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmNoYXIgKnVpZF9hdHRyaWJ1dGU7PGJyPg0KKyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjaGFy ICp1aWRfYXR0cl9yZWNvcmQ7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjaGFyICpkZXY7PGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjaGFyICphdHRyOzxi cj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOw0KY2hhciAqdG1wOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KaW50ICZuYnNwO2NvdW50Ozxicj4NCis8YnI+DQorICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlm KCF1aWRfYXR0cnMgfHwgIXBhdGhfZGV2KTxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4NCk5VTEw7PGJyPg0K Kzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KY291bnQgPSBnZXRfd29yZCh1aWRfYXR0cnMsICZhbXA7dWlkX2F0dHJfcmVjb3Jk KTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCndoaWxlICh1aWRfYXR0cl9yZWNvcmQpIHs8YnI+DQorICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7dG1wDQo9IHN0 cnJjaHIodWlkX2F0dHJfcmVjb3JkLCAnOicpOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZg0KKCF0bXApIHs8YnI+ DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7DQpmcmVlKHVpZF9hdHRyX3JlY29yZCk7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KaWYgKCFjb3Vu dCk8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFrOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmNvdW50ID0gZ2V0X3dv cmQodWlkX2F0dHJzICsgY291bnQsICZhbXA7dWlkX2F0dHJfcmVjb3JkKTs8YnI+DQorICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQpjb250aW51ZTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtkZXYNCj0gdWlkX2F0dHJfcmVj b3JkOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDthdHRyDQo9IHRtcCArIDE7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyp0bXANCj0gJ1ww Jzs8YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmKCFzdHJuY21wKHBhdGhfZGV2LA0KZGV2LCBzdHJsZW4o ZGV2KSkpIHs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp1aWRfYXR0cmlidXRlID0gU1RSRFVQKGF0dHIpOzxicj4N CisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCmZyZWUodWlkX2F0dHJfcmVjb3JkKTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpyZXR1cm4gdWlk X2F0dHJpYnV0ZTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4NCis8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZnJlZSh1aWRfYXR0 cl9yZWNvcmQpOzxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZg0KKCFjb3VudCk8YnI+DQorICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpicmVhazs8 YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7Y291bnQNCj0gZ2V0X3dvcmQodWlkX2F0dHJzICsgY291bnQsICZhbXA7dWlk X2F0dHJfcmVjb3JkKTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCn08YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnJldHVybiBOVUxMOzxicj4NCit9PGJyPg0K Kzxicj4NCiB2b2lkPGJyPg0KIHNldHVwX3RocmVhZF9hdHRyKHB0aHJlYWRfYXR0cl90ICphdHRy LCBzaXplX3Qgc3RhY2tzaXplLCBpbnQgZGV0YWNoZWQpPGJyPg0KIHs8YnI+DQpkaWZmIC0tZ2l0 IGEvbGlibXVsdGlwYXRoL3V0aWwuaCBiL2xpYm11bHRpcGF0aC91dGlsLmg8YnI+DQppbmRleCBm M2IzN2VlLi43OTNmMmI3IDEwMDY0NDxicj4NCi0tLSBhL2xpYm11bHRpcGF0aC91dGlsLmg8YnI+ DQorKysgYi9saWJtdWx0aXBhdGgvdXRpbC5oPGJyPg0KQEAgLTEyLDYgKzEyLDcgQEAgc2l6ZV90 IHN0cmxjYXQoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBzaXplKTs8YnI+DQog aW50IGRldnQyZGV2bmFtZSAoY2hhciAqLCBpbnQsIGNoYXIgKik7PGJyPg0KIGRldl90IHBhcnNl X2RldnQoY29uc3QgY2hhciAqZGV2X3QpOzxicj4NCiBjaGFyICpjb252ZXJ0X2RldihjaGFyICpk ZXYsIGludCBpc19wYXRoX2RldmljZSk7PGJyPg0KK2NoYXIgKnBhcnNlX3VpZF9hdHRyaWJ1dGVf YnlfYXR0cnMoY2hhciAqdWlkX2F0dHJzLCBjaGFyICpwYXRoX2Rldik7PGJyPg0KIHZvaWQgc2V0 dXBfdGhyZWFkX2F0dHIocHRocmVhZF9hdHRyX3QgKmF0dHIsIHNpemVfdCBzdGFja3NpemUsIGlu dCBkZXRhY2hlZCk7PGJyPg0KIDxicj4NCiAjZGVmaW5lIHNhZmVfc3ByaW50Zih2YXIsIGZvcm1h dCwgYXJncy4uLikgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgXDxicj4NCmRpZmYgLS1naXQgYS9tdWx0aXBhdGgvbXVsdGlwYXRoLmNvbmYu NSBiL211bHRpcGF0aC9tdWx0aXBhdGguY29uZi41PGJyPg0KaW5kZXggMzY1ODlmNS4uNjNjNjNj MiAxMDA2NDQ8YnI+DQotLS0gYS9tdWx0aXBhdGgvbXVsdGlwYXRoLmNvbmYuNTxicj4NCisrKyBi L211bHRpcGF0aC9tdWx0aXBhdGguY29uZi41PGJyPg0KQEAgLTIwOSw2ICsyMDksMjQgQEAgVGhl IGRlZmF1bHQgaXM6IFxmQmZhaWxvdmVyXGZSPGJyPg0KIC48YnI+DQogLjxicj4NCiAuVFA8YnI+ DQorLkIgdWlkX2F0dHJzPGJyPg0KK1RoZSB1ZGV2IGF0dHJpYnV0ZSBwcm92aWRpbmcgYSB1bmlx dWUgcGF0aCBpZGVudGlmaWVyIGZvciBjb3JyZXNwb25kaW5nDQo8YnI+DQordHlwZSBvZiBwYXRo IGRldmljZXMuIElmIHRoaXMgZmllbGQgaXMgY29uZmlndXJlZCBhbmQgbWF0Y2hlZCB3aXRoIHR5 cGU8YnI+DQorb2YgZGV2aWNlLCBpdCB3b3VsZCBvdmVycmlkZSBhbnkgb3RoZXIgbWV0aG9kcyBw cm92aWRpbmcgZm9yIGRldmljZTxicj4NCit1bmlxdWUgaWRlbnRpZmllciBpbiBjb25maWcgZmls ZSwgYW5kIGl0IHdvdWxkIGFjdGl2YXRlIG1lcmdpbmcgdWV2ZW50czxicj4NCithY2NvcmRpbmcg dG8gdGhlIGlkZW50aWZpZXIgdG8gcHJvbW90ZSBlZmZpZWNuY3kgaW4gcHJvY2Vzc2luZyB1ZXZl bnRzLjxicj4NCitUdCBoYXMgbm8gZGVmYXVsdCB2YWx1ZSwgaWYgeW91IHdhbnQgdG8gaWRlbnRp ZnkgcGF0aCBieSB1ZGV2IGF0dHJpYnV0ZTxicj4NCithbmQgdG8gYWN0aXZhdGUgbWVyZ2luZyB1 ZXZlbnRzIGZvciBTQ1NJIGFuZCBEQVMgZGV2aWNlLCB5b3UgY2FuIHNldDxicj4NCitpdCdzIHZh bHVlIGFzOjxicj4NCisuUlM8YnI+DQorLlRQPGJyPg0KK1xmQnVpZF9hdHRycyAmcXVvdDtzZDpJ RF9TRVJJQUwgZGFzZDpJRF9VSUQmcXVvdDtcZlI8YnI+DQorLlRQPGJyPg0KK1RoZSBkZWZhdWx0 IGlzOiBcZkImbHQ7dW5zZXQmZ3Q7XGZSPGJyPg0KKy5SRTxicj4NCisuPGJyPg0KKy48YnI+DQor LlRQPGJyPg0KIC5CIHVpZF9hdHRyaWJ1dGU8YnI+DQogVGhlIHVkZXYgYXR0cmlidXRlIHByb3Zp ZGluZyBhIHVuaXF1ZSBwYXRoIGlkZW50aWZpZXIuPGJyPg0KIC5SUzxicj4NCmRpZmYgLS1naXQg YS9tdWx0aXBhdGhkL2NsaV9oYW5kbGVycy5jIGIvbXVsdGlwYXRoZC9jbGlfaGFuZGxlcnMuYzxi cj4NCmluZGV4IGIwZWVjYTYuLjEyZjg1ZGUgMTAwNjQ0PGJyPg0KLS0tIGEvbXVsdGlwYXRoZC9j bGlfaGFuZGxlcnMuYzxicj4NCisrKyBiL211bHRpcGF0aGQvY2xpX2hhbmRsZXJzLmM8YnI+DQpA QCAtNjcwLDcgKzY3MCw3IEBAIGNsaV9hZGRfcGF0aCAodm9pZCAqIHYsIGNoYXIgKiogcmVwbHks IGludCAqIGxlbiwgdm9pZA0KKiBkYXRhKTxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KcHAtJmd0O2NoZWNraW50ID0g Y29uZi0mZ3Q7Y2hlY2tpbnQ7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3B1dF9tdWx0aXBhdGhf Y29uZmlnKGNvbmYpOzxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KcmV0dXJuIGV2X2FkZF9wYXRoKHBwLCB2ZWNzKTs8YnI+DQor ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CnJldHVybiBldl9hZGRfcGF0aChwcCwgdmVjcywgMSk7PGJyPg0KIGJsYWNrbGlzdGVkOjxicj4N CiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOypyZXBseQ0KPSBzdHJkdXAoJnF1b3Q7YmxhY2tsaXN0ZWRcbiZxdW90Oyk7PGJyPg0K ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7Kmxlbg0KPSBzdHJsZW4oKnJlcGx5KSArIDE7PGJyPg0KQEAgLTY5Miw3ICs2OTIsNyBA QCBjbGlfZGVsX3BhdGggKHZvaWQgKiB2LCBjaGFyICoqIHJlcGx5LCBpbnQgKiBsZW4sIHZvaWQN CiogZGF0YSk8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCmNvbmRsb2coMCwgJnF1b3Q7JXM6IHBhdGggYWxyZWFkeSBy ZW1vdmVkJnF1b3Q7LCBwYXJhbSk7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpyZXR1cm4gMTs8YnI+DQogJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9 PGJyPg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQpyZXR1cm4gZXZfcmVtb3ZlX3BhdGgocHAsIHZlY3MpOzxicj4NCisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KcmV0dXJuIGV2 X3JlbW92ZV9wYXRoKHBwLCB2ZWNzLCAxKTs8YnI+DQogfTxicj4NCiA8YnI+DQogaW50PGJyPg0K ZGlmZiAtLWdpdCBhL211bHRpcGF0aGQvbWFpbi5jIGIvbXVsdGlwYXRoZC9tYWluLmM8YnI+DQpp bmRleCBhZGMzMjU4Li5lNTEzZjdkIDEwMDY0NDxicj4NCi0tLSBhL211bHRpcGF0aGQvbWFpbi5j PGJyPg0KKysrIGIvbXVsdGlwYXRoZC9tYWluLmM8YnI+DQpAQCAtNjA4LDcgKzYwOCw3IEBAIGV2 X3JlbW92ZV9tYXAgKGNoYXIgKiBkZXZuYW1lLCBjaGFyICogYWxpYXMsIGludCBtaW5vciwNCnN0 cnVjdCB2ZWN0b3JzICogdmVjcyk8YnI+DQogfTxicj4NCiA8YnI+DQogc3RhdGljIGludDxicj4N Ci11ZXZfYWRkX3BhdGggKHN0cnVjdCB1ZXZlbnQgKnVldiwgc3RydWN0IHZlY3RvcnMgKiB2ZWNz KTxicj4NCit1ZXZfYWRkX3BhdGggKHN0cnVjdCB1ZXZlbnQgKnVldiwgc3RydWN0IHZlY3RvcnMg KiB2ZWNzLCBpbnQgbmVlZF9kb19tYXApPGJyPg0KIHs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzdHJ1Y3QNCnBhdGgg KnBwOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2ludA0KcmV0ID0gMCwgaTs8YnI+DQpAQCAtNjQxLDcgKzY0MSw3IEBA IHVldl9hZGRfcGF0aCAoc3RydWN0IHVldmVudCAqdWV2LCBzdHJ1Y3QgdmVjdG9ycyAqDQp2ZWNz KTxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7RElfQUxMIHwgRElfQkxB Q0tMSVNUKTs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cHV0X211bHRpcGF0aF9jb25maWcoY29uZik7PGJy Pg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2lmDQoociA9PSBQQVRISU5GT19PSyk8YnI+DQotICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O3JldA0KPSBldl9hZGRfcGF0aChwcCwgdmVjcyk7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXQNCj0g ZXZfYWRkX3BhdGgocHAsIHZlY3MsIG5lZWRfZG9fbWFwKTs8YnI+DQogJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZWxz ZQ0KaWYgKHIgPT0gUEFUSElORk9fU0tJUFBFRCkgezxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmNvbmRs b2coMywgJnF1b3Q7JXM6IHJlbW92ZSBibGFja2xpc3RlZCBwYXRoJnF1b3Q7LDxicj4NCiAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7dWV2LSZndDtrZXJuZWwpOzxicj4NCkBAIC02NjUsNyArNjY1LDcgQEAg dWV2X2FkZF9wYXRoIChzdHJ1Y3QgdWV2ZW50ICp1ZXYsIHN0cnVjdCB2ZWN0b3JzICoNCnZlY3Mp PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQoqLzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2NvbmYNCj0gZ2V0X211bHRpcGF0aF9jb25maWco KTs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtyZXQNCj0gYWxsb2NfcGF0aF93aXRoX3BhdGhpbmZvKGNvbmYsIHVldi0m Z3Q7dWRldiw8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgRElfQUxM LCAmYW1wO3BwKTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgdWV2 LSZndDt3d2lkLCBESV9BTEwsICZhbXA7cHApOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3B1dF9tdWx0aXBhdGhfY29u ZmlnKGNvbmYpOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmDQooIXBwKSB7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQppZiAocmV0ID09 IFBBVEhJTkZPX1NLSVBQRUQpPGJyPg0KQEAgLTY4MSw3ICs2ODEsNyBAQCB1ZXZfYWRkX3BhdGgg KHN0cnVjdCB1ZXZlbnQgKnVldiwgc3RydWN0IHZlY3RvcnMgKg0KdmVjcyk8YnI+DQogJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CmNvbmYgPSBnZXRfbXVsdGlwYXRoX2NvbmZpZygpOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KcHAtJmd0O2NoZWNr aW50ID0gY29uZi0mZ3Q7Y2hlY2tpbnQ7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpwdXRfbXVsdGlwYXRoX2NvbmZp Zyhjb25mKTs8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0DQo9IGV2X2FkZF9wYXRoKHBwLCB2ZWNzKTs8YnI+DQor ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7cmV0DQo9IGV2X2FkZF9wYXRoKHBwLCB2ZWNzLCBuZWVkX2RvX21hcCk7PGJyPg0KICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7fQ0KZWxzZSB7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpjb25kbG9nKDAsICZxdW90OyVzOiBmYWlsZWQgdG8g c3RvcmUgcGF0aCBpbmZvLCAmcXVvdDs8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7JnF1b3Q7ZHJvcHBpbmcN CmV2ZW50JnF1b3Q7LDxicj4NCkBAIC02OTksNyArNjk5LDcgQEAgdWV2X2FkZF9wYXRoIChzdHJ1 Y3QgdWV2ZW50ICp1ZXYsIHN0cnVjdCB2ZWN0b3JzICoNCnZlY3MpPGJyPg0KICZuYnNwOyogMTog ZXJyb3I8YnI+DQogJm5ic3A7Ki88YnI+DQogaW50PGJyPg0KLWV2X2FkZF9wYXRoIChzdHJ1Y3Qg cGF0aCAqIHBwLCBzdHJ1Y3QgdmVjdG9ycyAqIHZlY3MpPGJyPg0KK2V2X2FkZF9wYXRoIChzdHJ1 Y3QgcGF0aCAqIHBwLCBzdHJ1Y3QgdmVjdG9ycyAqIHZlY3MsIGludCBuZWVkX2RvX21hcCk8YnI+ DQogezxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO3N0cnVjdA0KbXVsdGlwYXRoICogbXBwOzxicj4NCiAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2NoYXIN CnBhcmFtc1tQQVJBTVNfU0laRV0gPSB7MH07PGJyPg0KQEAgLTc2Nyw2ICs3NjcsMTMgQEAgcmVz Y2FuOjxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOy8qDQpwZXJzaXN0ZW50IHJlc2VydmF0aW9uIGNoZWNrKi88YnI+DQog Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDttcGF0aF9wcl9ldmVudF9oYW5kbGUocHApOzxicj4NCiA8YnI+DQorICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmICghbmVlZF9k b19tYXApPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybg0KMDs8YnI+DQorPGJyPg0KKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQppZiAoIWRtX21hcF9w cmVzZW50KG1wcC0mZ3Q7YWxpYXMpKSB7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO21wcC0mZ3Q7YWN0aW9uDQo9IEFD VF9DUkVBVEU7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0YXJ0X3dhaXRlcg0KPSAxOzxicj4NCisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KfTxicj4NCiAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOy8qPGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7DQoqIHB1c2ggdGhlIG1hcCB0byB0aGUgZGV2aWNlLW1hcHBlcjxi cj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KKi88YnI+DQpAQCAtODMzLDcgKzg0MCw3IEBAIGZhaWw6PGJyPg0KIH08YnI+ DQogPGJyPg0KIHN0YXRpYyBpbnQ8YnI+DQotdWV2X3JlbW92ZV9wYXRoIChzdHJ1Y3QgdWV2ZW50 ICp1ZXYsIHN0cnVjdCB2ZWN0b3JzICogdmVjcyk8YnI+DQordWV2X3JlbW92ZV9wYXRoIChzdHJ1 Y3QgdWV2ZW50ICp1ZXYsIHN0cnVjdCB2ZWN0b3JzICogdmVjcywgaW50IG5lZWRfZG9fbWFwKTxi cj4NCiB7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7c3RydWN0DQpwYXRoICpwcDs8YnI+DQogJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnQNCnJldDs8 YnI+DQpAQCAtODQ0LDcgKzg1MSw3IEBAIHVldl9yZW1vdmVfcGF0aCAoc3RydWN0IHVldmVudCAq dWV2LCBzdHJ1Y3QgdmVjdG9ycw0KKiB2ZWNzKTxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3B0aHJlYWRfdGVzdGNhbmNl bCgpOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO3BwDQo9IGZpbmRfcGF0aF9ieV9kZXYodmVjcy0mZ3Q7cGF0aHZlYywg dWV2LSZndDtrZXJuZWwpOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmDQoocHApPGJyPg0KLSAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldA0KPSBl dl9yZW1vdmVfcGF0aChwcCwgdmVjcyk7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldA0KPSBldl9yZW1vdmVfcGF0 aChwcCwgdmVjcywgbmVlZF9kb19tYXApOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2xvY2tfY2xlYW51cF9wb3AodmVj cy0mZ3Q7bG9jayk7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYNCighcHApIHs8YnI+DQogJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCi8qIE5vdCBh biBlcnJvcjsgcGF0aCBtaWdodCBoYXZlIGJlZW4gcHVyZ2VkIGVhcmxpZXIgKi88YnI+DQpAQCAt ODU1LDcgKzg2Miw3IEBAIHVldl9yZW1vdmVfcGF0aCAoc3RydWN0IHVldmVudCAqdWV2LCBzdHJ1 Y3QgdmVjdG9ycw0KKiB2ZWNzKTxicj4NCiB9PGJyPg0KIDxicj4NCiBpbnQ8YnI+DQotZXZfcmVt b3ZlX3BhdGggKHN0cnVjdCBwYXRoICpwcCwgc3RydWN0IHZlY3RvcnMgKiB2ZWNzKTxicj4NCitl dl9yZW1vdmVfcGF0aCAoc3RydWN0IHBhdGggKnBwLCBzdHJ1Y3QgdmVjdG9ycyAqIHZlY3MsIGlu dCBuZWVkX2RvX21hcCk8YnI+DQogezxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdA0KbXVsdGlwYXRoICogbXBw Ozxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO2ludA0KaSwgcmV0dmFsID0gMDs8YnI+DQpAQCAtOTE4LDYgKzkyNSw4IEBA IGV2X3JlbW92ZV9wYXRoIChzdHJ1Y3QgcGF0aCAqcHAsIHN0cnVjdCB2ZWN0b3JzICogdmVjcyk8 YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7Z290bw0Kb3V0Ozxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KfTxicj4NCiA8YnI+DQor ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsN CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7aWYNCighbmVlZF9kb19tYXApPGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KZ290byBvdXQ7PGJyPg0KICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQovKjxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7KiByZWxvYWQgdGhlIG1hcDxicj4NCiAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0K Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0K Jm5ic3A7Ki88YnI+DQpAQCAtOTk1LDcgKzEwMDQsNyBAQCB1ZXZfdXBkYXRlX3BhdGggKHN0cnVj dCB1ZXZlbnQgKnVldiwgc3RydWN0IHZlY3RvcnMNCiogdmVjcyk8YnI+DQogJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCn08YnI+ DQogPGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQppZiAocHAtJmd0O2luaXRpYWxpemVkID09IElOSVRfUkVRVUVTVEVE X1VERVYpPGJyPg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KcmV0dmFsID0gdWV2X2FkZF9wYXRoKHVldiwgdmVjcyk7PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KcmV0dmFsID0gdWV2X2FkZF9wYXRoKHVldiwgdmVjcywgMSk7PGJyPg0KICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQplbHNlIGlmIChtcHAgJmFtcDsmYW1wOyBybyAmZ3Q7PSAwKSB7PGJyPg0KICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2NvbmRsb2coMiwNCiZxdW90OyVzOiB1cGRhdGUgcGF0aCB3cml0ZV9wcm90ZWN0IHRvICcl ZCcgKHVldmVudCkmcXVvdDssIHVldi0mZ3Q7a2VybmVsLA0Kcm8pOzxicj4NCiA8YnI+DQpAQCAt MTAxNiw3ICsxMDI1LDcgQEAgb3V0Ojxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnQNCmZsYWcgPSBESV9T WVNGUyB8IERJX1dXSUQ7PGJyPg0KIDxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjb25mDQo9IGdldF9tdWx0 aXBhdGhfY29uZmlnKCk7PGJyPg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KcmV0dmFsID0gYWxsb2NfcGF0aF93aXRoX3Bh dGhpbmZvKGNvbmYsIHVldi0mZ3Q7dWRldiwgZmxhZywgTlVMTCk7PGJyPg0KKyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KcmV0 dmFsID0gYWxsb2NfcGF0aF93aXRoX3BhdGhpbmZvKGNvbmYsIHVldi0mZ3Q7dWRldiwgdWV2LSZn dDt3d2lkLCBmbGFnLA0KTlVMTCk7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3B1dF9tdWx0aXBhdGhfY29u ZmlnKGNvbmYpOzxicj4NCiA8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYNCihyZXR2YWwgPT0gUEFUSElO Rk9fU0tJUFBFRCkgezxicj4NCkBAIC0xMDc3LDQwICsxMDg2LDE1IEBAIHV4c29ja190cmlnZ2Vy IChjaGFyICogc3RyLCBjaGFyICoqIHJlcGx5LCBpbnQNCiogbGVuLCB2b2lkICogdHJpZ2dlcl9k YXRhKTxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO3JldHVybg0Kcjs8YnI+DQogfTxicj4NCiA8YnI+DQotc3RhdGljIGlu dDxicj4NCi11ZXZfZGlzY2FyZChjaGFyICogZGV2cGF0aCk8YnI+DQotezxicj4NCi0gJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KY2hhciAq dG1wOzxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KY2hhciBhWzExXSwgYlsxMV07PGJyPg0KLTxicj4NCi0gJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KLyo8YnI+DQotICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZu YnNwOyoga2VlcCBvbmx5IGJsb2NrIGRldmljZXMsIGRpc2NhcmQgcGFydGl0aW9uczxicj4NCi0g Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0K Jm5ic3A7Ki88YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsNCnRtcCA9IHN0cnN0cihkZXZwYXRoLCAmcXVvdDsvYmxvY2svJnF1b3Q7 KTs8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCmlmICh0bXAgPT0gTlVMTCl7PGJyPg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2NvbmRsb2coNCwNCiZxdW90 O25vIC9ibG9jay8gaW4gJyVzJyZxdW90OywgZGV2cGF0aCk7PGJyPg0KLSAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybg0K MTs8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCn08YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsNCmlmIChzc2NhbmYodG1wLCAmcXVvdDsvYmxvY2svJTEwcyZxdW90 OywgYSkgIT0gMSB8fDxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyBzc2NhbmYodG1wLCAmcXVvdDsvYmxv Y2svJTEwW14vXS8lMTBzJnF1b3Q7LCBhLCBiKSA9PSAyKQ0Kezxicj4NCi0gJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjb25kbG9n KDQsDQomcXVvdDtkaXNjYXJkIGV2ZW50IG9uICVzJnF1b3Q7LCBkZXZwYXRoKTs8YnI+DQotICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7cmV0dXJuDQoxOzxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOw0KfTxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KcmV0dXJuIDA7PGJyPg0KLX08YnI+DQotPGJy Pg0KIGludDxicj4NCiB1ZXZfdHJpZ2dlciAoc3RydWN0IHVldmVudCAqIHVldiwgdm9pZCAqIHRy aWdnZXJfZGF0YSk8YnI+DQogezxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ludA0KciA9IDA7PGJyPg0KICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7c3Ry dWN0DQp2ZWN0b3JzICogdmVjczs8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnN0cnVjdCBjb25maWcgKmNvbmY7PGJyPg0KKyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpz dHJ1Y3QgdWV2ZW50ICptZXJnZV91ZXYsICp0bXA7PGJyPg0KIDxicj4NCiAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3ZlY3MNCj0g KHN0cnVjdCB2ZWN0b3JzICopdHJpZ2dlcl9kYXRhOzxicj4NCiA8YnI+DQotICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmICh1ZXZfZGlz Y2FyZCh1ZXYtJmd0O2RldnBhdGgpKTxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4NCjA7PGJyPg0KLTxicj4N CiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3B0aHJlYWRfY2xlYW51cF9wdXNoKGNvbmZpZ19jbGVhbnVwLA0KTlVMTCk7PGJyPg0K ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7cHRocmVhZF9tdXRleF9sb2NrKCZhbXA7Y29uZmlnX2xvY2spOzxicj4NCiAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lm DQoocnVubmluZ19zdGF0ZSAhPSBEQUVNT05fSURMRSAmYW1wOyZhbXA7PGJyPg0KQEAgLTExMzks MjggKzExMjMsMjEgQEAgdWV2X3RyaWdnZXIgKHN0cnVjdCB1ZXZlbnQgKiB1ZXYsIHZvaWQgKiB0 cmlnZ2VyX2RhdGEpPGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4NCiA8YnI+DQogJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKjxicj4NCi0gJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5i c3A7KiBwYXRoIGFkZC9yZW1vdmUgZXZlbnQ8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyogcGF0aCBhZGQvcmVtb3Zl L2NoYW5nZSBldmVudCwgYWRkL3JlbW92ZSBtYXliZSBtZXJnZWQ8YnI+DQogJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiovPGJy Pg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQpjb25mID0gZ2V0X211bHRpcGF0aF9jb25maWcoKTs8YnI+DQotICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmIChmaWx0ZXJfZGV2 bm9kZShjb25mLSZndDtibGlzdF9kZXZub2RlLCBjb25mLSZndDtlbGlzdF9kZXZub2RlLDxicj4N Ci0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsNCiZuYnNwOyAmbmJzcDt1ZXYtJmd0O2tlcm5lbCkgJmd0OyAwKSB7PGJyPg0KLSAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO3B1dF9tdWx0aXBhdGhfY29uZmlnKGNvbmYpOzxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtnb3RvDQpvdXQ7PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQpsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobWVyZ2VfdWV2LCB0bXAsICZhbXA7dWV2LSZn dDttZXJnZV9ub2RlLCBub2RlKQ0Kezxicj4NCisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZg0KKCFzdHJuY21wKG1lcmdlX3Vl di0mZ3Q7YWN0aW9uLCAmcXVvdDthZGQmcXVvdDssIDMpKTxicj4NCisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCnIgKz0gdWV2 X2FkZF9wYXRoKG1lcmdlX3VldiwgdmVjcywgMCk7PGJyPg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmDQooIXN0cm5jbXAo bWVyZ2VfdWV2LSZndDthY3Rpb24sICZxdW90O3JlbW92ZSZxdW90OywgNikpPGJyPg0KKyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KciArPSB1ZXZfcmVtb3ZlX3BhdGgobWVyZ2VfdWV2LCB2ZWNzLCAwKTs8YnI+DQogJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9 PGJyPg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQpwdXRfbXVsdGlwYXRoX2NvbmZpZyhjb25mKTs8YnI+DQogPGJyPg0KLSAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQppZiAoIXN0 cm5jbXAodWV2LSZndDthY3Rpb24sICZxdW90O2FkZCZxdW90OywgMykpIHs8YnI+DQotICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 cg0KPSB1ZXZfYWRkX3BhdGgodWV2LCB2ZWNzKTs8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Z290bw0Kb3V0Ozxicj4N Ci0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Ow0KfTxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KaWYgKCFzdHJuY21wKHVldi0mZ3Q7YWN0aW9uLCAmcXVvdDtyZW1vdmUmcXVv dDssIDYpKSB7PGJyPg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3INCj0gdWV2X3JlbW92ZV9wYXRoKHVldiwgdmVjcyk7PGJy Pg0KLSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2dvdG8NCm91dDs8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCn08YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmICghc3RybmNtcCh1ZXYtJmd0 O2FjdGlvbiwgJnF1b3Q7Y2hhbmdlJnF1b3Q7LCA2KSkgezxicj4NCi0gJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyDQo9IHVldl91 cGRhdGVfcGF0aCh1ZXYsIHZlY3MpOzxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtnb3RvDQpvdXQ7PGJyPg0KLSAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp9PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQppZiAoIXN0cm5jbXAodWV2LSZndDthY3Rpb24sICZxdW90O2FkZCZxdW90OywgMykpPGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3INCis9IHVldl9hZGRfcGF0aCh1ZXYsIHZlY3MsIDEpOzxicj4NCisgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KaWYgKCFz dHJuY21wKHVldi0mZ3Q7YWN0aW9uLCAmcXVvdDtyZW1vdmUmcXVvdDssIDYpKTxicj4NCisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtyDQorPSB1ZXZfcmVtb3ZlX3BhdGgodWV2LCB2ZWNzLCAxKTs8YnI+DQorICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmlmICghc3RybmNt cCh1ZXYtJmd0O2FjdGlvbiwgJnF1b3Q7Y2hhbmdlJnF1b3Q7LCA2KSk8YnI+DQorICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cg0K Kz0gdWV2X3VwZGF0ZV9wYXRoKHVldiwgdmVjcyk7PGJyPg0KIDxicj4NCiBvdXQ6PGJyPg0KICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7cmV0dXJuDQpyOzxicj4NCkBAIC0xNTcwLDcgKzE1NDcsNyBAQCBjaGVja19wYXRoIChzdHJ1 Y3QgdmVjdG9ycyAqIHZlY3MsIHN0cnVjdCBwYXRoICoNCnBwLCBpbnQgdGlja3MpPGJyPg0KICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2NvbmYNCj0gZ2V0X211bHRpcGF0aF9jb25maWcoKTs8YnI+DQogJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7cmV0DQo9IHBhdGhpbmZvKHBwLCBjb25mLCBESV9BTEwgfCBESV9CTEFDS0xJU1QpOzxicj4N CiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtpZg0KKHJldCA9PSBQQVRISU5GT19PSykgezxicj4NCi0gJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ZXZfYWRkX3BhdGgocHAsDQp2ZWNzKTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X2FkZF9wYXRo KHBwLA0KdmVjcywgMSk7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KcHAtJmd0O3RpY2sgPSAxOzxicj4N CiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDt9DQplbHNlIGlmIChyZXQgPT0gUEFUSElORk9fU0tJUFBFRCkgezxicj4N CiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsNCnB1dF9tdWx0aXBhdGhfY29uZmlnKGNvbmYpOzxicj4NCkBAIC0xNjg2 LDcgKzE2NjMsNyBAQCBjaGVja19wYXRoIChzdHJ1Y3QgdmVjdG9ycyAqIHZlY3MsIHN0cnVjdCBw YXRoICoNCnBwLCBpbnQgdGlja3MpPGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQp9PGJyPg0KICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQppZiAoIWRp c2FibGVfcmVpbnN0YXRlICZhbXA7JmFtcDsgcmVpbnN0YXRlX3BhdGgocHAsIGFkZF9hY3RpdmUp KSB7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2NvbmRsb2coMywNCiZxdW90OyVzOiByZWxvYWQgbWFwJnF1 b3Q7LCBwcC0mZ3Q7ZGV2KTs8YnI+DQotICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQpldl9hZGRfcGF0aChwcCwgdmVjcyk7PGJy Pg0KKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOw0KZXZfYWRkX3BhdGgocHAsIHZlY3MsIDEpOzxicj4NCiAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtw cC0mZ3Q7dGljaw0KPSAxOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4NCjA7PGJyPg0KICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 DQp9PGJyPg0KQEAgLTE3MDksNyArMTY4Niw3IEBAIGNoZWNrX3BhdGggKHN0cnVjdCB2ZWN0b3Jz ICogdmVjcywgc3RydWN0IHBhdGggKg0KcHAsIGludCB0aWNrcyk8YnI+DQogJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 LyoNCkNsZWFyIElPIGVycm9ycyAqLzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZg0KKHJlaW5zdGF0ZV9w YXRoKHBwLCAwKSkgezxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCmNvbmRsb2coMywgJnF1b3Q7JXM6IHJl bG9hZCBtYXAmcXVvdDssIHBwLSZndDtkZXYpOzxicj4NCi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfYWRkX3Bh dGgocHAsDQp2ZWNzKTs8YnI+DQorICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X2FkZF9wYXRoKHBwLA0KdmVjcywg MSk7PGJyPg0KICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KcHAtJmd0O3RpY2sgPSAxOzxicj4NCiAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsNCnJldHVybiAwOzxicj4NCiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOw0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPg0KZGlmZiAtLWdpdCBhL211bHRp cGF0aGQvbWFpbi5oIGIvbXVsdGlwYXRoZC9tYWluLmg8YnI+DQppbmRleCBmNzI1ODBkLi4wOTRi MDRmIDEwMDY0NDxicj4NCi0tLSBhL211bHRpcGF0aGQvbWFpbi5oPGJyPg0KKysrIGIvbXVsdGlw YXRoZC9tYWluLmg8YnI+DQpAQCAtMjIsOCArMjIsOCBAQCB2b2lkIGV4aXRfZGFlbW9uKHZvaWQp Ozxicj4NCiBjb25zdCBjaGFyICogZGFlbW9uX3N0YXR1cyh2b2lkKTs8YnI+DQogaW50IG5lZWRf dG9fZGVsYXlfcmVjb25maWcgKHN0cnVjdCB2ZWN0b3JzICopOzxicj4NCiBpbnQgcmVjb25maWd1 cmUgKHN0cnVjdCB2ZWN0b3JzICopOzxicj4NCi1pbnQgZXZfYWRkX3BhdGggKHN0cnVjdCBwYXRo ICosIHN0cnVjdCB2ZWN0b3JzICopOzxicj4NCi1pbnQgZXZfcmVtb3ZlX3BhdGggKHN0cnVjdCBw YXRoICosIHN0cnVjdCB2ZWN0b3JzICopOzxicj4NCitpbnQgZXZfYWRkX3BhdGggKHN0cnVjdCBw YXRoICosIHN0cnVjdCB2ZWN0b3JzICosIGludCk7PGJyPg0KK2ludCBldl9yZW1vdmVfcGF0aCAo c3RydWN0IHBhdGggKiwgc3RydWN0IHZlY3RvcnMgKiwgaW50KTs8YnI+DQogaW50IGV2X2FkZF9t YXAgKGNoYXIgKiwgY2hhciAqLCBzdHJ1Y3QgdmVjdG9ycyAqKTs8YnI+DQogaW50IGV2X3JlbW92 ZV9tYXAgKGNoYXIgKiwgY2hhciAqLCBpbnQsIHN0cnVjdCB2ZWN0b3JzICopOzxicj4NCiB2b2lk IHN5bmNfbWFwX3N0YXRlIChzdHJ1Y3QgbXVsdGlwYXRoICopOzxicj4NCi0tIDxicj4NCjIuOC4x LndpbmRvd3MuMTxicj4NCjxicj4NCjwvZm9udD48L3R0Pg0KPGJyPg0K --=_alternative 002B7F0C482580AC_=-- --===============8992847758116400589== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============8992847758116400589==--