From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1A3DC4404F; Wed, 12 Jun 2024 13:00:56 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A5C2A40395; Wed, 12 Jun 2024 13:00:55 +0200 (CEST) Received: from mxct.zte.com.cn (mxct.zte.com.cn [183.62.165.209]) by mails.dpdk.org (Postfix) with ESMTP id 96E3F402AB for ; Wed, 12 Jun 2024 13:00:52 +0200 (CEST) Received: from mse-fl2.zte.com.cn (unknown [10.5.228.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mxct.zte.com.cn (FangMail) with ESMTPS id 4VzjJF1CLhz501bc for ; Wed, 12 Jun 2024 19:00:45 +0800 (CST) Received: from szxlzmapp07.zte.com.cn ([10.5.230.251]) by mse-fl2.zte.com.cn with SMTP id 45CB0cQK000414 for ; Wed, 12 Jun 2024 19:00:38 +0800 (+08) (envelope-from zhang.yong25@zte.com.cn) Received: from mapi (szxlzmapp07[null]) by mapi (Zmail) with MAPI id mid14; Wed, 12 Jun 2024 19:00:40 +0800 (CST) Date: Wed, 12 Jun 2024 19:00:40 +0800 (CST) X-Zmail-TransId: 2b0966697fd8ffffffff873-5c20e X-Mailer: Zmail v1.0 Message-ID: <20240612190040926odHnlJEJAYAmzJON8zdHo@zte.com.cn> Mime-Version: 1.0 From: To: Subject: =?UTF-8?B?cmF3L3p4ZGg6IGludHJvZHVjZSB6eGRoIHJhdyBkZXZpY2UgZHJpdmVy?= Content-Type: multipart/mixed; boundary="=====_001_next=====" X-MAIL: mse-fl2.zte.com.cn 45CB0cQK000414 X-Fangmail-Anti-Spam-Filtered: true X-Fangmail-MID-QID: 66697FDD.000/4VzjJF1CLhz501bc X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --=====_001_next===== Content-Type: multipart/related; boundary="=====_002_next=====" --=====_002_next===== Content-Type: multipart/alternative; boundary="=====_003_next=====" --=====_003_next===== Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3ZGE5MGNhYTg5MmFiYzBhYjI3ZmMxMWU4OTJmNjYxNmY0YmM4YzlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogWW9uZyBaaGFuZyA8emhhbmcueW9uZzI1QHp0ZS5jb20uY24+ DQpEYXRlOiBXZWQsIDEyIEp1biAyMDI0IDE3OjM1OjM0ICswODAwDQpTdWJqZWN0OiBbUEFUQ0hd IHJhdy96eGRoOiBpbnRyb2R1Y2UgenhkaCByYXcgZGV2aWNlIGRyaXZlcg0KDQpJbnRyb2R1Y2Ug cmF3ZGV2IGRyaXZlciBzdXBwb3J0IGZvciBaWERIIHdoaWNoDQpjYW4gaGVscCB0byBjb25uZWN0 IHR3byBzZXBhcmF0ZSBob3N0cyB3aXRoIGVhY2ggb3RoZXIuDQoNClNpZ25lZC1vZmYtYnk6IFlv bmcgWmhhbmcgPHpoYW5nLnlvbmcyNUB6dGUuY29tLmNuPg0KLS0tDQogTUFJTlRBSU5FUlMgICAg ICAgICAgICAgICAgICAgIHwgICA1ICsNCiBkb2MvZ3VpZGVzL3Jhd2RldnMvaW5kZXgucnN0ICAg fCAgIDEgKw0KIGRvYy9ndWlkZXMvcmF3ZGV2cy96eGRoLnJzdCAgICB8ICAyOCArDQogZHJpdmVy cy9yYXcvbWVzb24uYnVpbGQgICAgICAgIHwgICAxICsNCiBkcml2ZXJzL3Jhdy96eGRoL21lc29u LmJ1aWxkICAgfCAgIDUgKw0KIGRyaXZlcnMvcmF3L3p4ZGgvenhkaF9wY2kuYyAgICB8IDU2NCAr KysrKysrKysrKysrKysrKysrKw0KIGRyaXZlcnMvcmF3L3p4ZGgvenhkaF9wY2kuaCAgICB8ICA0 MCArKw0KIGRyaXZlcnMvcmF3L3p4ZGgvenhkaF9yYXdkZXYuYyB8IDkxMSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysNCiBkcml2ZXJzL3Jhdy96eGRoL3p4ZGhfcmF3ZGV2LmggfCAx NjUgKysrKysrDQogOSBmaWxlcyBjaGFuZ2VkLCAxNzIwIGluc2VydGlvbnMoKykNCiBjcmVhdGUg bW9kZSAxMDA2NDQgZG9jL2d1aWRlcy9yYXdkZXZzL3p4ZGgucnN0DQogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvcmF3L3p4ZGgvbWVzb24uYnVpbGQNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9yYXcvenhkaC96eGRoX3BjaS5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcmF3 L3p4ZGgvenhkaF9wY2kuaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Jhdy96eGRoL3p4 ZGhfcmF3ZGV2LmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9yYXcvenhkaC96eGRoX3Jh d2Rldi5oDQoNCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTDQppbmRleCBj OWFkZmY5ODQ2Li40ZmNmMTM3YzEwIDEwMDY0NA0KLS0tIGEvTUFJTlRBSU5FUlMNCisrKyBiL01B SU5UQUlORVJTDQpAQCAtMTQ3OCw2ICsxNDc4LDExIEBAIE06IEdhZ2FuZGVlcCBTaW5naCA8Zy5z aW5naEBueHAuY29tPg0KIEY6IGRyaXZlcnMvcmF3L2RwYWEyX2NtZGlmLw0KIEY6IGRvYy9ndWlk ZXMvcmF3ZGV2cy9kcGFhMl9jbWRpZi5yc3QNCiANCitaWERIDQorTTogWW9uZyBaaGFuZyA8emhh bmcueW9uZzI1QHp0ZS5jb20uY24+DQorRjogZHJpdmVycy9yYXcvenhkaC8NCitGOiBkb2MvZ3Vp ZGVzL3Jhd2RldnMvenhkaC5yc3QNCisNCiANCiBQYWNrZXQgcHJvY2Vzc2luZw0KIC0tLS0tLS0t LS0tLS0tLS0tDQpkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9yYXdkZXZzL2luZGV4LnJzdCBiL2Rv Yy9ndWlkZXMvcmF3ZGV2cy9pbmRleC5yc3QNCmluZGV4IGYzNDMxNWYwNTEuLmQ4NWE0YjcxNDgg MTAwNjQ0DQotLS0gYS9kb2MvZ3VpZGVzL3Jhd2RldnMvaW5kZXgucnN0DQorKysgYi9kb2MvZ3Vp ZGVzL3Jhd2RldnMvaW5kZXgucnN0DQpAQCAtMTYsMyArMTYsNCBAQCBhcHBsaWNhdGlvbiB0aHJv dWdoIHJhd2RldiBBUEkuDQogICAgIGRwYWEyX2NtZGlmDQogICAgIGlmcGdhDQogICAgIG50Yg0K KyAgICB6eGRoDQpkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9yYXdkZXZzL3p4ZGgucnN0IGIvZG9j L2d1aWRlcy9yYXdkZXZzL3p4ZGgucnN0DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMC4uMTVhZDg1MjYxZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZG9jL2d1aWRlcy9yYXdk ZXZzL3p4ZGgucnN0DQpAQCAtMCwwICsxLDI4IEBADQorLi4gIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMy1DbGF1c2UNCisgICAgQ29weXJpZ2h0IDIwMjQgWlRFIENvcnBvcmF0aW9uDQor DQorWlhESCBSYXdkZXYgRHJpdmVyDQorPT09PT09PT09PT09PT09PT09PT09PQ0KKw0KK1RoZSBg YHp4ZGhgYCByYXdkZXYgZHJpdmVyIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSByYXdkZXYg QVBJLA0KK3RoYXQgcHJvdmlkZXMgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHR3byBzZXBhcmF0ZSBo b3N0cy4NCitUaGlzIGlzIGFjaGlldmVkIHZpYSB1c2luZyB0aGUgR0RNQSBjb250cm9sbGVyIG9m IERpbmdoYWkgU29DLg0KKw0KKw0KK0luaXRpYWxpemF0aW9uDQorLS0tLS0tLS0tLS0tLS0NCisN CitUaGUgWlhESCBpcyBleHBvc2VkIGFzIGEgdmRldiBkZXZpY2Ugd2hpY2ggY29uc2lzdHMgb2Yg TVBGIGRldmljZXMuDQorT24gRUFMIGluaXRpYWxpemF0aW9uLCB2ZGV2IGRldmljZSBjYW4gYmUg Y3JlYXRlZCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBjb2RlIGJ5DQorDQorKiBJbnZva2luZyBgYHJ0 ZV92ZGV2X2luaXQoInJhd2Rldl96eGRoX2dkbWEiKWBgIGZyb20gdGhlIGFwcGxpY2F0aW9uDQor DQorKiBVc2luZyBgYC0tdmRldj0icmF3ZGV2X3p4ZGhfZ2RtYSJgYCBpbiB0aGUgRUFMIG9wdGlv bnMsIHdoaWNoIHdpbGwgY2FsbA0KKyAgcnRlX3ZkZXZfaW5pdCgpIGludGVybmFsbHkNCisNCisN CitQbGF0Zm9ybSBSZXF1aXJlbWVudA0KK35+fn5+fn5+fn5+fn5+fn5+fn5+DQorDQorVGhpcyBQ TUQgaXMgb25seSBzdXBwb3J0ZWQgb24gWlRFIE5lbyBQbGF0Zm9ybXM6DQorLSBOZW8gWDUxMC9Y NTEyDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9yYXcvbWVzb24uYnVpbGQgYi9kcml2ZXJzL3Jhdy9t ZXNvbi5idWlsZA0KaW5kZXggMDVjYWQxNDNmZS4uMjM3ZDFiZGQ4MCAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvcmF3L21lc29uLmJ1aWxkDQorKysgYi9kcml2ZXJzL3Jhdy9tZXNvbi5idWlsZA0KQEAg LTEyLDUgKzEyLDYgQEAgZHJpdmVycyA9IFsNCiAgICAgICAgICdpZnBnYScsDQogICAgICAgICAn bnRiJywNCiAgICAgICAgICdza2VsZXRvbicsDQorICAgICAgICAnenhkaCcsDQogXQ0KIHN0ZF9k ZXBzID0gWydyYXdkZXYnXQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmF3L3p4ZGgvbWVzb24uYnVp bGQgYi9kcml2ZXJzL3Jhdy96eGRoL21lc29uLmJ1aWxkDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMC4uNmNkOTUyMTM4Nw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZHJpdmVy cy9yYXcvenhkaC9tZXNvbi5idWlsZA0KQEAgLTAsMCArMSw1IEBADQorI1NQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCisjQ29weXJpZ2h0IDIwMjQgWlRFIENvcnBvcmF0aW9u DQorDQorZGVwcyArPSBbJ3Jhd2RldicsICdrdmFyZ3MnLCAnbWJ1ZicsICdidXNfdmRldiddDQor c291cmNlcyA9IGZpbGVzKCd6eGRoX3Jhd2Rldi5jJywgJ3p4ZGhfcGNpLmMnKQ0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvcmF3L3p4ZGgvenhkaF9wY2kuYyBiL2RyaXZlcnMvcmF3L3p4ZGgvenhkaF9w Y2kuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjRkZWJkZGIwZDIN Ci0tLSAvZGV2L251bGwNCisrKyBiL2RyaXZlcnMvcmF3L3p4ZGgvenhkaF9wY2kuYw0KQEAgLTAs MCArMSw1NjQgQEANCisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQor ICogQ29weXJpZ2h0IDIwMjQgWlRFIENvcnBvcmF0aW9uDQorICovDQorDQorI2luY2x1ZGUgPHN0 ZGlvLmg+DQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxzdHJpbmcuaD4NCisjaW5j bHVkZSA8Z2V0b3B0Lmg+DQorI2luY2x1ZGUgPHN5cy9tbWFuLmg+DQorI2luY2x1ZGUgPGZjbnRs Lmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorI2luY2x1ZGUgPGRpcmVudC5oPg0KKyNpbmNsdWRl IDx1bmlzdGQuaD4NCisNCisjaW5jbHVkZSAienhkaF9yYXdkZXYuaCINCisjaW5jbHVkZSAienhk aF9wY2kuaCINCisNCisjZGVmaW5lIFBDSV9ERVZJQ0VTX0RJUiAgICAgICAgICAiL3N5cy9idXMv cGNpL2RldmljZXMiDQorDQorI2RlZmluZSBCQVIwX0lEWCAgICAgICAgICAgICAgICAgKDApDQor I2RlZmluZSBCQVIyX0lEWCAgICAgICAgICAgICAgICAgKDIpDQorDQorI2RlZmluZSBJT1JFU09V UkNFX01FTSAgICAgICAgICAgKDB4MDAwMDAyMDApDQorI2RlZmluZSBQQ0lfUkVTT1VSQ0VfRk1U X05WQUwgICAgKDMpDQorI2RlZmluZSBQQ0lfRk1UX05WQUwgICAgICAgICAgICAgKDQpDQorI2Rl ZmluZSBGSUxFX0ZNVF9OVkFMICAgICAgICAgICAgKDIpDQorDQorI2RlZmluZSBTVFJfQlVGRl9M RU4gICAgICAgICAgICAgKDEyOCkNCisNCisjZGVmaW5lIEJZVEVTX05PX1NXQVAgICAgICAgICAg ICAoMCkNCisjZGVmaW5lIEJZVEVTX1NXQVAgICAgICAgICAgICAgICAoMSkNCisNCisjZGVmaW5l IFBDSV9DTURfT0ZGU0VUICAgICAgICAgICAoMHgwNCkNCisjZGVmaW5lIFBDSV9DTURfQllURVMg ICAgICAgICAgICAoMikNCisjZGVmaW5lIFBDSV9DTURfTVNFX0JJVCAgICAgICAgICAoMSkNCisj ZGVmaW5lIEZQR0FfVkVSX09GRlNFVCAgICAgICAgICAoMHg0MjApDQorI2RlZmluZSBGUEdBX1ZF Ul9CWVRFUyAgICAgICAgICAgKDQpDQorI2RlZmluZSBCT01fSURfT0ZGU0VUICAgICAgICAgICAg KDB4NDI0KQ0KKyNkZWZpbmUgQk9NX0lEX0JZVEVTICAgICAgICAgICAgICgxKQ0KKyNkZWZpbmUg RlBHQV9QUl9GTEFHX09GRlNFVCAgICAgICgweDQyNSkNCisjZGVmaW5lIEZQR0FfUFJfRkxBR19C WVRFUyAgICAgICAoMSkNCisjZGVmaW5lIEJPQVJEX0lEX09GRlNFVCAgICAgICAgICAoMHg0MjYp DQorI2RlZmluZSBCT0FSRF9JRF9CWVRFUyAgICAgICAgICAgKDIpDQorI2RlZmluZSBGUEdBX01B S0VfVElNRV9PRkZTRVQgICAgKDB4NDI4KQ0KKyNkZWZpbmUgRlBHQV9NQUtFX1RJTUVfQllURVMg ICAgICg0KQ0KKw0KKyNkZWZpbmUgUEFSQV9QUl9GTEFHICAgICAgICAgICAgICgwKQ0KKyNkZWZp bmUgUEFSQV9GUEdBX1ZFUiAgICAgICAgICAgICgxKQ0KKyNkZWZpbmUgUEFSQV9GUEdBX01BS0Vf VElNRSAgICAgICgyKQ0KKyNkZWZpbmUgUEFSQV9CT0FSRF9JRCAgICAgICAgICAgICgzKQ0KKyNk ZWZpbmUgUEFSQV9CT01fSUQgICAgICAgICAgICAgICg0KQ0KKyNkZWZpbmUgUEFSQV9QQ0lfQ01E ICAgICAgICAgICAgICg1KQ0KKw0KKyNkZWZpbmUgUENJX1JFQUQgICAgICAgICAgICAgICAgICgw KQ0KKyNkZWZpbmUgUENJX1dSSVRFICAgICAgICAgICAgICAgICgxKQ0KKw0KK3N0cnVjdCB6eGRo X3BjaV9kZXYgZ2RldjsNCisNCitzdGF0aWMgaW50DQorenhkaF9nZG1hX3J3X3BjaV9jb25maWco c3RydWN0IHp4ZGhfcGNpX2RldiAqZGV2LCB1aW50OF90IHJ3LCB1aW50IG9mZnNldCwgdWludCBj b3VudCwgdWludDhfdCAqYnVmKQ0KK3sNCisJaW50IGZkID0gLTE7DQorCXVpbnQgcmVzID0gMDsN CisJaW50IHJldCA9IC0xOw0KKwljaGFyIGZpbGVuYW1lW0ZJTEVfUEFUSF9MRU5dID0gezB9Ow0K Kw0KKwlzbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIi9wcm9jL2J1cy9wY2kv JTAyeC8lMDJ4LiVkIiwNCisJCQlkZXYtPmJ1cywgZGV2LT5kZXZpZCwgZGV2LT5mdW5jdGlvbik7 DQorCWZkID0gb3BlbihmaWxlbmFtZSwgT19SRFdSKTsNCisJaWYgKGZkIDwgMCkgew0KKwkJc25w cmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIvcHJvYy9idXMvcGNpLyUwNHg6JTAy eC8lMDJ4LiVkIiwNCisJCQkJZGV2LT5kb21haW4sIGRldi0+YnVzLCBkZXYtPmRldmlkLCBkZXYt PmZ1bmN0aW9uKTsNCisJCWZkID0gb3BlbihmaWxlbmFtZSwgT19SRFdSKTsNCisJCWlmIChmZCA8 IDApIHsNCisJCQlaWERIX1BNRF9MT0coRVJSLCAiRmFpbGVkIHRvIG9wZW4gZmlsZTolcywgZmQ6 JWQhIiwgZmlsZW5hbWUsIGZkKTsNCisJCQlyZXR1cm4gLTE7DQorCQl9DQorCX0NCisNCisJcmVz ID0gbHNlZWsoZmQsIG9mZnNldCwgU0VFS19TRVQpOw0KKwlpZiAocmVzICE9IG9mZnNldCkgew0K KwkJY2xvc2UoZmQpOw0KKwkJWlhESF9QTURfTE9HKEVSUiwgIkZhaWxlZCB0byBsc2VlayBwY2ks IHJlczolZCEiLCByZXMpOw0KKwkJcmV0dXJuIC0xOw0KKwl9DQorDQorCWlmIChydyA9PSBQQ0lf UkVBRCkNCisJCXJldCA9IHJlYWQoZmQsIGJ1ZiwgY291bnQpOw0KKwllbHNlDQorCQlyZXQgPSB3 cml0ZShmZCwgYnVmLCBjb3VudCk7DQorDQorCWlmIChyZXQgPCAwKSB7DQorCQljbG9zZShmZCk7 DQorCQlaWERIX1BNRF9MT0coRVJSLCAiRmFpbGVkIHRvIHJ3IHBjaTolZCwgcmV0OiVkISIsIHJ3 LCByZXQpOw0KKwkJcmV0dXJuIC0xOw0KKwl9DQorDQorCWNsb3NlKGZkKTsNCisJcmV0dXJuIDA7 DQorfQ0KKw0KK3N0YXRpYyBpbnQNCit6eGRoX2dkbWFfY2ZnX3NwYWNlX3JlYWQoc3RydWN0IHp4 ZGhfcGNpX2RldiAqZGV2LCB1aW50OF90IFBhcmFUeXBlLCB1aW50ICpwUGFyYVZlcikNCit7DQor CWludCByZXQgPSAwOw0KKwl1aW50OF90IGFSZWdWYWxbc2l6ZW9mKHVpbnQpXSA9IHswfTsNCisJ dWludDhfdCB1Y0xvb3AgPSAwOw0KKwl1aW50OF90IHVjU3dhcCA9IEJZVEVTX05PX1NXQVA7DQor CXVpbnQgZHdSZWdPZmZzZXQgPSAwOw0KKwl1aW50IGR3UmVnTGVuID0gMDsNCisNCisJaWYgKChk ZXYgPT0gTlVMTCkgfHwgKHBQYXJhVmVyID09IE5VTEwpKSB7DQorCQlaWERIX1BNRF9MT0coRVJS LCAiUGFyYW0gaXMgaW52YWxpZCEiKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQorCXN3 aXRjaCAoUGFyYVR5cGUpIHsNCisJY2FzZSBQQVJBX1BSX0ZMQUc6DQorCQlkd1JlZ09mZnNldCA9 IEZQR0FfUFJfRkxBR19PRkZTRVQ7DQorCQlkd1JlZ0xlbiAgICA9IEZQR0FfUFJfRkxBR19CWVRF UzsNCisJCXVjU3dhcCAgICAgID0gQllURVNfTk9fU1dBUDsNCisJCWJyZWFrOw0KKwljYXNlIFBB UkFfRlBHQV9WRVI6DQorCQlkd1JlZ09mZnNldCA9IEZQR0FfVkVSX09GRlNFVDsNCisJCWR3UmVn TGVuICAgID0gRlBHQV9WRVJfQllURVM7DQorCQl1Y1N3YXAgICAgICA9IEJZVEVTX05PX1NXQVA7 DQorCQlicmVhazsNCisJY2FzZSBQQVJBX0ZQR0FfTUFLRV9USU1FOg0KKwkJZHdSZWdPZmZzZXQg PSBGUEdBX01BS0VfVElNRV9PRkZTRVQ7DQorCQlkd1JlZ0xlbiAgICA9IEZQR0FfTUFLRV9USU1F X0JZVEVTOw0KKwkJdWNTd2FwICAgICAgPSBCWVRFU19OT19TV0FQOw0KKwkJYnJlYWs7DQorCWNh c2UgUEFSQV9CT0FSRF9JRDoNCisJCWR3UmVnT2Zmc2V0ID0gQk9BUkRfSURfT0ZGU0VUOw0KKwkJ ZHdSZWdMZW4gICAgPSBCT0FSRF9JRF9CWVRFUzsNCisJCXVjU3dhcCAgICAgID0gQllURVNfTk9f U1dBUDsNCisJCWJyZWFrOw0KKwljYXNlIFBBUkFfQk9NX0lEOg0KKwkJZHdSZWdPZmZzZXQgPSBC T01fSURfT0ZGU0VUOw0KKwkJZHdSZWdMZW4gICAgPSBCT01fSURfQllURVM7DQorCQl1Y1N3YXAg ICAgICA9IEJZVEVTX05PX1NXQVA7DQorCQlicmVhazsNCisJY2FzZSBQQVJBX1BDSV9DTUQ6DQor CQlkd1JlZ09mZnNldCA9IFBDSV9DTURfT0ZGU0VUOw0KKwkJZHdSZWdMZW4gICAgPSBQQ0lfQ01E X0JZVEVTOw0KKwkJdWNTd2FwICAgICAgPSBCWVRFU19TV0FQOw0KKwkJYnJlYWs7DQorCWRlZmF1 bHQ6DQorCQlaWERIX1BNRF9MT0coRVJSLCAiUGFyYVR5cGUgJXUgbm90IHN1cHBvcnQhIiwgUGFy YVR5cGUpOw0KKwkJcmV0dXJuIC1FSU5WQUw7DQorCX0NCisNCisJaWYgKGR3UmVnTGVuID4gc2l6 ZW9mKHVpbnQpKSB7DQorCQlaWERIX1BNRF9MT0coRVJSLCAiZHdSZWdMZW4gJXUgaXMgaW52YWxp ZCIsIGR3UmVnTGVuKTsNCisJCXJldHVybiAtMTsNCisJfQ0KKw0KKwkqcFBhcmFWZXIgPSAwOw0K KwlyZXQgPSB6eGRoX2dkbWFfcndfcGNpX2NvbmZpZyhkZXYsIFBDSV9SRUFELCBkd1JlZ09mZnNl dCwgZHdSZWdMZW4sIGFSZWdWYWwpOw0KKwlpZiAocmV0ICE9IDApIHsNCisJCVpYREhfUE1EX0xP RyhFUlIsICJQYXJhVHlwZSAldSwgenhkaF9nZG1hX3J3X3BjaV9jb25maWcgZmFpbGVkISIsIFBh cmFUeXBlKTsNCisJCXJldHVybiByZXQ7DQorCX0NCisNCisJaWYgKHVjU3dhcCA9PSBCWVRFU19T V0FQKSB7DQorCQlmb3IgKHVjTG9vcCA9IDA7IHVjTG9vcCA8IGR3UmVnTGVuOyB1Y0xvb3ArKykN CisJCQkqcFBhcmFWZXIgPSAoKnBQYXJhVmVyIDw8IDgpIHwgYVJlZ1ZhbFtkd1JlZ0xlbi0xLXVj TG9vcF07DQorCX0gZWxzZSB7DQorCQlmb3IgKHVjTG9vcCA9IDA7IHVjTG9vcCA8IGR3UmVnTGVu OyB1Y0xvb3ArKykNCisJCQkqcFBhcmFWZXIgPSAoKnBQYXJhVmVyIDw8IDgpIHwgYVJlZ1ZhbFt1 Y0xvb3BdOw0KKwl9DQorDQorCXJldHVybiByZXQ7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCit6eGRo X2dkbWFfY2ZnX3NwYWNlX3dyaXRlKHN0cnVjdCB6eGRoX3BjaV9kZXYgKmRldiwgdWludDhfdCBQ YXJhVHlwZSwgdWludCAqcFBhcmFWZXIpDQorew0KKwlpbnQgcmV0ID0gMDsNCisJdWludDhfdCBh UmVnVmFsW3NpemVvZih1aW50KV0gPSB7MH07DQorCXVpbnQ4X3QgdWNMb29wID0gMDsNCisJdWlu dDhfdCB1Y1N3YXAgPSBCWVRFU19OT19TV0FQOw0KKwl1aW50IGR3UmVnT2Zmc2V0ID0gMDsNCisJ dWludCBkd1JlZ0xlbiA9IDA7DQorDQorCWlmICgoZGV2ID09IE5VTEwpIHx8IChwUGFyYVZlciA9 PSBOVUxMKSkgew0KKwkJWlhESF9QTURfTE9HKEVSUiwgIlBhcmFtIGlzIGludmFsaWQiKTsNCisJ CXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQorCWlmIChQYXJhVHlwZSAhPSBQQVJBX1BDSV9DTUQp IHsNCisJCVpYREhfUE1EX0xPRyhFUlIsICJQYXJhVHlwZSAldSBub3Qgc3VwcG9ydCEiLCBQYXJh VHlwZSk7DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0KKwlkd1JlZ09mZnNldCA9IFBDSV9D TURfT0ZGU0VUOw0KKwlkd1JlZ0xlbiA9IFBDSV9DTURfQllURVM7DQorCXVjU3dhcCA9IEJZVEVT X1NXQVA7DQorDQorCWlmIChkd1JlZ0xlbiA+IHNpemVvZih1aW50KSkgew0KKwkJWlhESF9QTURf TE9HKEVSUiwgImR3UmVnTGVuICV1IGlzIGludmFsaWQiLCBkd1JlZ0xlbik7DQorCQlyZXR1cm4g LTE7DQorCX0NCisNCisJaWYgKHVjU3dhcCA9PSBCWVRFU19TV0FQKSB7DQorCQlmb3IgKHVjTG9v cCA9IDA7IHVjTG9vcCA8IGR3UmVnTGVuOyB1Y0xvb3ArKykNCisJCQlhUmVnVmFsW3VjTG9vcF0g PSAoKnBQYXJhVmVyID4+IDgqdWNMb29wKSAmIDB4ZmY7DQorCX0gZWxzZSB7DQorCQlmb3IgKHVj TG9vcCA9IDA7IHVjTG9vcCA8IGR3UmVnTGVuOyB1Y0xvb3ArKykNCisJCQlhUmVnVmFsW3VjTG9v cF0gPSAoKnBQYXJhVmVyID4+IDgqKGR3UmVnTGVuLTEtdWNMb29wKSkgJiAweGZmOw0KKwl9DQor DQorCXJldCA9IHp4ZGhfZ2RtYV9yd19wY2lfY29uZmlnKGRldiwgUENJX1dSSVRFLCBkd1JlZ09m ZnNldCwgZHdSZWdMZW4sIGFSZWdWYWwpOw0KKwlpZiAocmV0ICE9IDApIHsNCisJCVpYREhfUE1E X0xPRyhFUlIsICJQYXJhVHlwZSAldSwgenhkaF9nZG1hX3J3X3BjaV9jb25maWcgZmFpbGVkISIs IFBhcmFUeXBlKTsNCisJCXJldHVybiByZXQ7DQorCX0NCisNCisJcmV0dXJuIHJldDsNCit9DQor DQorc3RhdGljIGludA0KK3p4ZGhfZ2RtYV9zdHJfc3BsaXQoY2hhciAqc3RyaW5nLCBpbnQgc3Ry aW5nbGVuLCBjaGFyICoqdG9rZW5zLCBpbnQgbWF4dG9rZW5zLCBjaGFyIGRlbGltKQ0KK3sNCisJ aW50IGxvb3AgPSAwOw0KKwlpbnQgdG9rID0gMDsNCisJaW50IHRva3N0YXJ0ID0gMTsgLyogZmly c3QgdG9rZW4gaXMgcmlnaHQgYXQgc3RhcnQgb2Ygc3RyaW5nICovDQorDQorCWlmIChzdHJpbmcg PT0gTlVMTCB8fCB0b2tlbnMgPT0gTlVMTCkgew0KKwkJWlhESF9QTURfTE9HKEVSUiwgIlBhcmFt IGlzIGludmFsaWQhIik7DQorCQlyZXR1cm4gLTE7DQorCX0NCisNCisJZm9yIChsb29wID0gMDsg bG9vcCA8IHN0cmluZ2xlbjsgbG9vcCsrKSB7DQorCQlpZiAoc3RyaW5nW2xvb3BdID09ICdcMCcg fHwgdG9rID49IG1heHRva2VucykNCisJCQlicmVhazsNCisNCisJCWlmICh0b2tzdGFydCkgew0K KwkJCXRva3N0YXJ0ID0gMDsNCisJCQl0b2tlbnNbdG9rKytdID0gJnN0cmluZ1tsb29wXTsNCisJ CX0NCisNCisJCWlmIChzdHJpbmdbbG9vcF0gPT0gZGVsaW0pIHsNCisJCQlzdHJpbmdbbG9vcF0g PSAnXDAnOw0KKwkJCXRva3N0YXJ0ID0gMTsNCisJCX0NCisJfQ0KKw0KKwlyZXR1cm4gdG9rOw0K K30NCisNCitzdGF0aWMgaW50DQorenhkaF9nZG1hX2RldmZzX3BhcnNlKGNvbnN0IGNoYXIgKmZp bGVuYW1lLCB1bnNpZ25lZCBsb25nICp2YWwpDQorew0KKwlGSUxFICpmID0gTlVMTDsNCisJY2hh ciAqZW5kID0gTlVMTDsNCisJY2hhciBidWZbU1RSX0JVRkZfTEVOXSA9IHswfTsNCisNCisJZiA9 IGZvcGVuKGZpbGVuYW1lLCAiciIpOw0KKwlpZiAoZiA9PSBOVUxMKSB7DQorCQlaWERIX1BNRF9M T0coRVJSLCAiQ2Fubm90IG9wZW4gc3lzZnMgJXMiLCBmaWxlbmFtZSk7DQorCQlyZXR1cm4gLTE7 DQorCX0NCisNCisJaWYgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGYpID09IE5VTEwpIHsNCisJ CVpYREhfUE1EX0xPRyhFUlIsICJDYW5ub3QgcmVhZCBzeXNmcyB2YWx1ZSAlcyIsIGZpbGVuYW1l KTsNCisJCWZjbG9zZShmKTsNCisJCXJldHVybiAtMTsNCisJfQ0KKw0KKwkqdmFsID0gc3RydG91 bChidWYsICZlbmQsIDApOw0KKwlpZiAoKGJ1ZlswXSA9PSAnXDAnKSB8fCAoZW5kID09IE5VTEwp IHx8ICgqZW5kICE9ICdcbicpKSB7DQorCQlaWERIX1BNRF9MT0coRVJSLCAiQ2Fubm90IHBhcnNl IHN5c2ZzIHZhbHVlICVzIiwgZmlsZW5hbWUpOw0KKwkJZmNsb3NlKGYpOw0KKwkJcmV0dXJuIC0x Ow0KKwl9DQorDQorCWZjbG9zZShmKTsNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQN Cit6eGRoX2dkbWFfcmVzZnNfcGFyc2UoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB6eGRo X3BjaV9kZXYgKmRldikNCit7DQorCUZJTEUgKmZwID0gTlVMTDsNCisJY2hhciBidWZbU1RSX0JV RkZfTEVOXSA9IHswfTsNCisJdWludDhfdCAgbG9vcCA9IDA7DQorCXVpbnQ2NF90IHBoeXNfYWRk ciA9IDA7DQorCXVpbnQ2NF90IGVuZF9hZGRyID0gMDsNCisJdWludDY0X3QgZmxhZ3MgPSAwOw0K KwlpbnQgcmV0ID0gMDsNCisJdW5pb24gcGNpX3Jlc291cmNlX2luZm8gew0KKwkJc3RydWN0IHsN CisJCQljaGFyICpwaHlzX2FkZHI7DQorCQkJY2hhciAqZW5kX2FkZHI7DQorCQkJY2hhciAqZmxh Z3M7DQorCQl9Ow0KKwkJY2hhciAqcHRyc1tQQ0lfUkVTT1VSQ0VfRk1UX05WQUxdOw0KKwl9IHJl c19pbmZvOw0KKw0KKwlmcCA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOw0KKwlpZiAoZnAgPT0gTlVM TCkgew0KKwkJWlhESF9QTURfTE9HKEVSUiwgIkZhaWxlZCB0byBvcGVuIGZpbGUgJXMiLCBmaWxl bmFtZSk7DQorCQlyZXR1cm4gLTE7DQorCX0NCisNCisJZm9yIChsb29wID0gMDsgbG9vcCA8IFBD SV9NQVhfUkVTT1VSQ0U7IGxvb3ArKykgew0KKwkJaWYgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1Ziks IGZwKSA9PSBOVUxMKSB7DQorCQkJWlhESF9QTURfTE9HKEVSUiwgIkZhaWxlZCB0byBnZXRzIGZp bGUgJXMiLCBmaWxlbmFtZSk7DQorCQkJZ290byBlcnJfZXhpdDsNCisJCX0NCisNCisJCXJldCA9 IHp4ZGhfZ2RtYV9zdHJfc3BsaXQoYnVmLCBzaXplb2YoYnVmKSwgcmVzX2luZm8ucHRycywNCisJ CQkJCQkJCQlQQ0lfUkVTT1VSQ0VfRk1UX05WQUwsICcgJyk7DQorCQlpZiAocmV0ICE9IFBDSV9S RVNPVVJDRV9GTVRfTlZBTCkgew0KKwkJCVpYREhfUE1EX0xPRyhFUlIsICJmaWxlICVzOnp4ZGhf Z2RtYV9zdHJfc3BsaXQgZmFpbGVkISIsIGZpbGVuYW1lKTsNCisJCQlnb3RvIGVycl9leGl0Ow0K KwkJfQ0KKwkJZXJybm8gPSAwOw0KKwkJcGh5c19hZGRyID0gc3RydG91bGwocmVzX2luZm8ucGh5 c19hZGRyLCBOVUxMLCAxNik7DQorCQllbmRfYWRkciAgPSBzdHJ0b3VsbChyZXNfaW5mby5lbmRf YWRkciwgTlVMTCwgMTYpOw0KKwkJZmxhZ3MgICAgID0gc3RydG91bGwocmVzX2luZm8uZmxhZ3Ms IE5VTEwsIDE2KTsNCisNCisJCWlmIChlcnJubyAhPSAwKSB7DQorCQkJWlhESF9QTURfTE9HKEVS UiwgImZpbGUgJXM6YmFkIHJlc291cmNlIGZvcm1hdCEiLCBmaWxlbmFtZSk7DQorCQkJZ290byBl cnJfZXhpdDsNCisJCX0NCisNCisJCWlmIChmbGFncyAmIElPUkVTT1VSQ0VfTUVNKSB7DQorCQkJ aWYgKGxvb3AgPT0gQkFSMF9JRFgpIHsNCisJCQkJZGV2LT5iYXJfcGFbQkFSMF9JRFhdID0gcGh5 c19hZGRyOw0KKwkJCQlkZXYtPmJhcl9sZW5bQkFSMF9JRFhdID0gZW5kX2FkZHIgLSBwaHlzX2Fk ZHIgKyAxOw0KKwkJCX0NCisNCisJCQlpZiAobG9vcCA9PSBCQVIyX0lEWCkgew0KKwkJCQlkZXYt PmJhcl9wYVtCQVIyX0lEWF0gPSBwaHlzX2FkZHI7DQorCQkJCWRldi0+YmFyX2xlbltCQVIyX0lE WF0gPSBlbmRfYWRkciAtIHBoeXNfYWRkciArIDE7DQorCQkJCWZjbG9zZShmcCk7DQorCQkJCXJl dHVybiAwOw0KKwkJCX0NCisJCX0NCisJfQ0KKw0KKwlaWERIX1BNRF9MT0coRVJSLCAiZmlsZSAl czogTm90IGZvdW5kIElPIHJlc291cmNlIG1lbW9yeSEiLCBmaWxlbmFtZSk7DQorDQorZXJyX2V4 aXQ6DQorCWZjbG9zZShmcCk7DQorCXJldHVybiAtMTsNCit9DQorDQorc3RhdGljIGludA0KK3p4 ZGhfZ2RtYV9wY2lfYWRkcl9wYXJzZShjb25zdCBjaGFyICpidWYsIGludCBidWZfc2l6ZSwgc3Ry dWN0IHp4ZGhfcGNpX2RldiAqZGV2KQ0KK3sNCisJY2hhciAqYnVmX2NvcHkgPSBOVUxMOw0KKwlp bnQgcmV0ID0gMDsNCisJdW5pb24gc3BsaXRhZGRyIHsNCisJCXN0cnVjdCB7DQorCQkJY2hhciAq ZG9tYWluOw0KKwkJCWNoYXIgKmJ1czsNCisJCQljaGFyICpkZXZpZDsNCisJCQljaGFyICpmdW5j dGlvbjsNCisJCX07DQorCQljaGFyICpzdHJbUENJX0ZNVF9OVkFMXTsNCisJfSBzcGxpdGFkZHI7 DQorDQorCWJ1Zl9jb3B5ID0gc3RybmR1cChidWYsIGJ1Zl9zaXplKTsNCisJaWYgKGJ1Zl9jb3B5 ID09IE5VTEwpIHsNCisJCVpYREhfUE1EX0xPRyhFUlIsICJidWYgJXM6IHN0cm5kdXAgZmFpbGVk ISIsIGJ1Zik7DQorCQlyZXR1cm4gLTE7DQorCX0NCisNCisJLyogZmlyc3Qgc3BsaXQgb24gJzon ICovDQorCXJldCA9IHp4ZGhfZ2RtYV9zdHJfc3BsaXQoYnVmX2NvcHksIGJ1Zl9zaXplLCBzcGxp dGFkZHIuc3RyLCBQQ0lfRk1UX05WQUwsICc6Jyk7DQorCWlmIChyZXQgIT0gKFBDSV9GTVRfTlZB TCAtIDEpKSB7DQorCQlaWERIX1BNRF9MT0coRVJSLCAiYnVmICVzOiB6eGRoX2dkbWFfc3RyX3Nw bGl0IGZhaWxlZCEiLCBidWYpOw0KKwkJZ290byBlcnJfZXhpdDsNCisJfQ0KKw0KKwkvKiBmaW5h bCBzcGxpdCBpcyBvbiAnLicgYmV0d2VlbiBkZXZpZCBhbmQgZnVuY3Rpb24gKi8NCisJc3BsaXRh ZGRyLmZ1bmN0aW9uID0gc3RyY2hyKHNwbGl0YWRkci5kZXZpZCwgJy4nKTsNCisJaWYgKHNwbGl0 YWRkci5mdW5jdGlvbiA9PSBOVUxMKSB7DQorCQlaWERIX1BNRF9MT0coRVJSLCAiYnVmICVzOiBz dHJjaHIgZmFpbGVkISIsIGJ1Zik7DQorCQlnb3RvIGVycl9leGl0Ow0KKwl9DQorCSpzcGxpdGFk ZHIuZnVuY3Rpb24rKyA9ICdcMCc7DQorDQorCS8qIG5vdyBjb252ZXJ0IHRvIGludCB2YWx1ZXMg Ki8NCisJZXJybm8gPSAwOw0KKwlkZXYtPmRvbWFpbiA9ICh1aW50MTZfdClzdHJ0b3VsKHNwbGl0 YWRkci5kb21haW4sIE5VTEwsIDE2KTsNCisJZGV2LT5idXMgPSAodWludDhfdClzdHJ0b3VsKHNw bGl0YWRkci5idXMsIE5VTEwsIDE2KTsNCisJZGV2LT5kZXZpZCA9ICh1aW50OF90KXN0cnRvdWwo c3BsaXRhZGRyLmRldmlkLCBOVUxMLCAxNik7DQorCWRldi0+ZnVuY3Rpb24gPSAodWludDhfdClz dHJ0b3VsKHNwbGl0YWRkci5mdW5jdGlvbiwgTlVMTCwgMTApOw0KKwlpZiAoZXJybm8gIT0gMCkg ew0KKwkJWlhESF9QTURfTE9HKEVSUiwgImJ1ZiAlczogYmFkIGZvcm1hdCEiLCBidWYpOw0KKwkJ Z290byBlcnJfZXhpdDsNCisJfQ0KKwlmcmVlKGJ1Zl9jb3B5KTsNCisJcmV0dXJuIDA7DQorDQor ZXJyX2V4aXQ6DQorCWZyZWUoYnVmX2NvcHkpOw0KKwlyZXR1cm4gLTE7DQorfQ0KKw0KK3N0YXRp YyBpbnQNCit6eGRoX2dkbWFfcGNpX2Rldl9tbWFwKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1 Y3QgenhkaF9wY2lfZGV2ICpkZXYsIHVpbnQ4X3QgYmFyX2lkeCkNCit7DQorCWludCBmZCA9IC0x Ow0KKw0KKwlpZiAoZGV2LT5iYXJfdmFbYmFyX2lkeF0gPT0gTlVMTCkgew0KKwkJZmQgPSBvcGVu KGZpbGVuYW1lLCBPX1JEV1IpOw0KKwkJaWYgKGZkIDwgMCkgew0KKwkJCVpYREhfUE1EX0xPRyhF UlIsICJGYWlsZWQgdG8gb3BlbiBmaWxlICVzIiwgZmlsZW5hbWUpOw0KKwkJCXJldHVybiAtMTsN CisJCX0NCisNCisJCWRldi0+YmFyX3ZhW2Jhcl9pZHhdID0gbW1hcCgodm9pZCAqKWRldi0+YmFy X3BhW2Jhcl9pZHhdLA0KKwkJCQkJCQkJCWRldi0+YmFyX2xlbltiYXJfaWR4XSwNCisJCQkJCQkJ CQlQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLA0KKwkJCQkJCQkJCU1BUF9TSEFSRUQsIGZkLCAwKTsN CisNCisJCWlmIChkZXYtPmJhcl92YVtiYXJfaWR4XSA9PSBNQVBfRkFJTEVEKSB7DQorCQkJWlhE SF9QTURfTE9HKEVSUiwgIkZhaWxlZCB0byBtbWFwIGZpbGUgJXMhIiwgZmlsZW5hbWUpOw0KKwkJ CWdvdG8gZXJyX2V4aXQ7DQorCQl9DQorCQljbG9zZShmZCk7DQorCX0gZWxzZQ0KKwkJWlhESF9Q TURfTE9HKEVSUiwgIkJhclZpcnRBZGRyIGlzIG5vdCBOVUxMISIpOw0KKw0KKwlyZXR1cm4gMDsN CisNCitlcnJfZXhpdDoNCisJY2xvc2UoZmQpOw0KKwlyZXR1cm4gLTE7DQorfQ0KKw0KK3ZvaWQN Cit6eGRoX2dkbWFfcGNpX2Rldl9tdW5tYXAodm9pZCkNCit7DQorCWlmIChnZGV2LmJhcl92YVtC QVIwX0lEWF0gIT0gTlVMTCkgew0KKwkJbXVubWFwKGdkZXYuYmFyX3ZhW0JBUjBfSURYXSwgZ2Rl di5iYXJfbGVuW0JBUjBfSURYXSk7DQorCQlnZGV2LmJhcl92YVtCQVIwX0lEWF0gPSBOVUxMOw0K Kwl9DQorDQorCWlmIChnZGV2LmJhcl92YVtCQVIyX0lEWF0gIT0gTlVMTCkgew0KKwkJbXVubWFw KGdkZXYuYmFyX3ZhW0JBUjJfSURYXSwgZ2Rldi5iYXJfbGVuW0JBUjJfSURYXSk7DQorCQlnZGV2 LmJhcl92YVtCQVIyX0lEWF0gPSBOVUxMOw0KKwl9DQorfQ0KKw0KK3N0YXRpYyBpbnQNCit6eGRo X2dkbWFfcGNpX21zZV9lbihzdHJ1Y3QgenhkaF9wY2lfZGV2ICpkZXYpDQorew0KKwlpbnQgcmV0 ID0gMDsNCisJdWludCBSZWdWYWwgPSAwOw0KKw0KKwlyZXQgPSB6eGRoX2dkbWFfY2ZnX3NwYWNl X3JlYWQoZGV2LCBQQVJBX1BDSV9DTUQsICZSZWdWYWwpOw0KKwlpZiAocmV0ICE9IDApIHsNCisJ CVpYREhfUE1EX0xPRyhFUlIsICJGYWlsZWQgdG8gcmVhZCAlMDR4OiUwMng6JTAyeC4lMDF4IHBj aSBjb25maWcgc3BhY2UhIiwNCisJCQkJCQlkZXYtPmRvbWFpbiwgZGV2LT5idXMsIGRldi0+ZGV2 aWQsIGRldi0+ZnVuY3Rpb24pOw0KKwkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwlpZiAoKFJlZ1Zh bCAmICgxIDw8IFBDSV9DTURfTVNFX0JJVCkpID09IDApIHsNCisJCVJlZ1ZhbCA9IFJlZ1ZhbCB8 ICgxIDw8IFBDSV9DTURfTVNFX0JJVCk7DQorDQorCQlyZXQgPSB6eGRoX2dkbWFfY2ZnX3NwYWNl X3dyaXRlKGRldiwgUEFSQV9QQ0lfQ01ELCAmUmVnVmFsKTsNCisJCWlmIChyZXQgIT0gMCkgew0K KwkJCVpYREhfUE1EX0xPRyhFUlIsICJGYWlsZWQgdG8gd3JpdGUgJTA0eDolMDJ4OiUwMnguJTAx eCBwY2kgY29uZmlnIHNwYWNlISIsDQorCQkJCQkJCWRldi0+ZG9tYWluLCBkZXYtPmJ1cywNCisJ CQkJCQkJZGV2LT5kZXZpZCwgZGV2LT5mdW5jdGlvbik7DQorCQkJcmV0dXJuIHJldDsNCisJCX0N CisJfQ0KKw0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCitpbnQNCit6eGRoX2dkbWFfcGNpX3NjYW4o dm9pZCkNCit7DQorCXN0cnVjdCBkaXJlbnQgKmUgPSBOVUxMOw0KKwlESVIgKmRpciA9IE5VTEw7 DQorCWNoYXIgZGlybmFtZVtGSUxFX1BBVEhfTEVOXSA9IHswfTsNCisJY2hhciBmaWxlbmFtZVtG SUxFX1BBVEhfTEVOXSA9IHswfTsNCisJdWludDE2X3QgdmVuZG9yX2lkID0gMDsNCisJdWludDE2 X3QgZGV2aWNlX2lkID0gMDsNCisJdW5zaWduZWQgbG9uZyB0bXAgPSAwOw0KKwlib29sIGZvdW5k ID0gZmFsc2U7DQorCWludCByZXQgPSAwOw0KKw0KKwlkaXIgPSBvcGVuZGlyKFBDSV9ERVZJQ0VT X0RJUik7DQorCWlmIChkaXIgPT0gTlVMTCkgew0KKwkJWlhESF9QTURfTE9HKEVSUiwgIkZhaWxl ZCB0byBvcGVuZGlyICVzIiwgUENJX0RFVklDRVNfRElSKTsNCisJCXJldHVybiAtMTsNCisJfQ0K Kw0KKwl3aGlsZSAoKGUgPSByZWFkZGlyKGRpcikpICE9IE5VTEwpIHsNCisJCWlmIChlLT5kX25h bWVbMF0gPT0gJy4nKQ0KKwkJCWNvbnRpbnVlOw0KKw0KKwkJbWVtc2V0KGRpcm5hbWUsIDAsIEZJ TEVfUEFUSF9MRU4pOw0KKwkJc25wcmludGYoZGlybmFtZSwgRklMRV9QQVRIX0xFTiwgIiVzLyVz IiwgUENJX0RFVklDRVNfRElSLCBlLT5kX25hbWUpOw0KKw0KKwkJc25wcmludGYoZmlsZW5hbWUs IHNpemVvZihmaWxlbmFtZSksICIlcy92ZW5kb3IiLCBkaXJuYW1lKTsNCisJCXJldCA9IHp4ZGhf Z2RtYV9kZXZmc19wYXJzZShmaWxlbmFtZSwgJnRtcCk7DQorCQlpZiAocmV0ICE9IDApDQorCQkJ Z290byBvdXQ7DQorDQorCQl2ZW5kb3JfaWQgPSAodWludDE2X3QpdG1wOw0KKw0KKwkJc25wcmlu dGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIlcy9kZXZpY2UiLCBkaXJuYW1lKTsNCisJ CXJldCA9IHp4ZGhfZ2RtYV9kZXZmc19wYXJzZShmaWxlbmFtZSwgJnRtcCk7DQorCQlpZiAocmV0 ICE9IDApDQorCQkJZ290byBvdXQ7DQorDQorCQlkZXZpY2VfaWQgPSAodWludDE2X3QpdG1wOw0K Kw0KKwkJaWYgKCh2ZW5kb3JfaWQgPT0gWlhESF9HRE1BX1ZFTkRPUklEKSAmJiAoZGV2aWNlX2lk ID09IFpYREhfR0RNQV9ERVZJQ0VJRCkpIHsNCisJCQlmb3VuZCA9IHRydWU7DQorCQkJYnJlYWs7 DQorCQl9DQorCX0NCisNCisJaWYgKGZvdW5kICE9IHRydWUpIHsNCisJCVpYREhfUE1EX0xPRyhF UlIsICJGYWlsZWQgdG8gZm91bmQgZ2RtYSBwY2kgZGV2Iik7DQorCQlyZXQgPSAtMTsNCisJCWdv dG8gb3V0Ow0KKwl9DQorDQorCWdkZXYudmVuZG9yX2lkID0gdmVuZG9yX2lkOw0KKwlnZGV2LmRl dmljZV9pZCA9IGRldmljZV9pZDsNCisJbWVtY3B5KGdkZXYuZF9uYW1lLCBlLT5kX25hbWUsIFBD SV9CVUZGX0xFTik7DQorCW1lbWNweShnZGV2LmRpcm5hbWUsIGRpcm5hbWUsIEZJTEVfUEFUSF9M RU4pOw0KKwlaWERIX1BNRF9MT0coSU5GTywgIkZvdW5kIGdkbWEgcGNpIGRldiAlcyIsIGUtPmRf bmFtZSk7DQorDQorCS8qIFBhcnNlIHBjaSBhZGRyICovDQorCXJldCA9IHp4ZGhfZ2RtYV9wY2lf YWRkcl9wYXJzZShlLT5kX25hbWUsIHNpemVvZihlLT5kX25hbWUpLCAmZ2Rldik7DQorCWlmIChy ZXQgIT0gMCkNCisJCWdvdG8gb3V0Ow0KKw0KKwkvKiBFbmFibGUgTVNFICovDQorCXJldCA9IHp4 ZGhfZ2RtYV9wY2lfbXNlX2VuKCZnZGV2KTsNCisJaWYgKHJldCAhPSAwKQ0KKwkJZ290byBvdXQ7 DQorDQorCS8qIEdldCBiYXIwIHBoeWFkZHIgYW5kIGxlbiAqLw0KKwlzbnByaW50ZihmaWxlbmFt ZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIiVzL3Jlc291cmNlIiwgZGlybmFtZSk7DQorCXJldCA9IHp4 ZGhfZ2RtYV9yZXNmc19wYXJzZShmaWxlbmFtZSwgJmdkZXYpOw0KKwlpZiAocmV0ICE9IDApDQor CQlnb3RvIG91dDsNCisNCisJLyogTW1hcCBiYXIwIHZpcnRhZGRyICovDQorCXNucHJpbnRmKGZp bGVuYW1lLCBzaXplb2YoZmlsZW5hbWUpLCAiJXMvcmVzb3VyY2UwIiwgZGlybmFtZSk7DQorCXJl dCA9IHp4ZGhfZ2RtYV9wY2lfZGV2X21tYXAoZmlsZW5hbWUsICZnZGV2LCBCQVIwX0lEWCk7DQor CWlmIChyZXQgIT0gMCkNCisJCWdvdG8gb3V0Ow0KKw0KKwlaWERIX1BNRF9MT0coSU5GTywgIkZv dW5kIHBjaV9zY2FuIHN1Y2Nlc3MiKTsNCisNCitvdXQ6DQorCWNsb3NlZGlyKGRpcik7DQorCXJl dHVybiByZXQ7DQorfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmF3L3p4ZGgvenhkaF9wY2kuaCBi L2RyaXZlcnMvcmF3L3p4ZGgvenhkaF9wY2kuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAwMDAuLjkzYzZjOTc0MDUNCi0tLSAvZGV2L251bGwNCisrKyBiL2RyaXZlcnMvcmF3 L3p4ZGgvenhkaF9wY2kuaA0KQEAgLTAsMCArMSw0MCBAQA0KKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMy1DbGF1c2UNCisgKiBDb3B5cmlnaHQgMjAyNCBaVEUgQ29ycG9yYXRpb24N CisgKi8NCisNCisjaWZuZGVmIF9fWlhESF9QQ0lfSF9fDQorI2RlZmluZSBfX1pYREhfUENJX0hf Xw0KKw0KKyNpZmRlZiBfX2NwbHVzcGx1cw0KK2V4dGVybiAiQyIgew0KKyNlbmRpZg0KKw0KKyNk ZWZpbmUgRklMRV9QQVRIX0xFTiAgICAgICAgICAgICAgICAgICAgICAgKDEwMCkNCisjZGVmaW5l IFBDSV9CVUZGX0xFTiAgICAgICAgICAgICAgICAgICAgICAgICgxNikNCisjZGVmaW5lIFBDSV9N QVhfUkVTT1VSQ0UgICAgICAgICAgICAgICAgICAgICg2KQ0KKw0KK3N0cnVjdCB6eGRoX3BjaV9k ZXYgew0KKwl1aW50MTZfdCAgICB2ZW5kb3JfaWQ7DQorCXVpbnQxNl90ICAgIGRldmljZV9pZDsN CisJdWludDE2X3QgICAgZG9tYWluOw0KKwl1aW50OF90ICAgICBidXM7DQorCXVpbnQ4X3QgICAg IGRldmlkOw0KKwl1aW50OF90ICAgICBmdW5jdGlvbjsNCisJY2hhciAgICAgICAgZGlybmFtZVtG SUxFX1BBVEhfTEVOXTsNCisJY2hhciAgICAgICAgZF9uYW1lW1BDSV9CVUZGX0xFTl07DQorCXZv aWQgICAgICAgKmJhcl92YVtQQ0lfTUFYX1JFU09VUkNFXTsNCisJdWludDY0X3QgICAgYmFyX3Bh W1BDSV9NQVhfUkVTT1VSQ0VdOw0KKwl1aW50NjRfdCAgICBiYXJfbGVuW1BDSV9NQVhfUkVTT1VS Q0VdOw0KK307DQorDQorZXh0ZXJuIHN0cnVjdCB6eGRoX3BjaV9kZXYgZ2RldjsNCisNCit2b2lk IHp4ZGhfZ2RtYV9wY2lfZGV2X211bm1hcCh2b2lkKTsNCitpbnQgenhkaF9nZG1hX3BjaV9zY2Fu KHZvaWQpOw0KKw0KKyNpZmRlZiBfX2NwbHVzcGx1cw0KK30NCisjZW5kaWYNCisNCisjZW5kaWYg LyogX19aWERIX1BDSV9IX18gKi8NCisNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Jhdy96eGRoL3p4 ZGhfcmF3ZGV2LmMgYi9kcml2ZXJzL3Jhdy96eGRoL3p4ZGhfcmF3ZGV2LmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi4zMjAxN2Y4NzQ0DQotLS0gL2Rldi9udWxsDQor KysgYi9kcml2ZXJzL3Jhdy96eGRoL3p4ZGhfcmF3ZGV2LmMNCkBAIC0wLDAgKzEsOTExIEBADQor LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KKyAqIENvcHlyaWdodCAy MDI0IFpURSBDb3Jwb3JhdGlvbg0KKyAqLw0KKw0KKyNpbmNsdWRlIDxhc3NlcnQuaD4NCisjaW5j bHVkZSA8c3RkaW8uaD4NCisjaW5jbHVkZSA8c3RkYm9vbC5oPg0KKyNpbmNsdWRlIDxlcnJuby5o Pg0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisjaW5jbHVkZSA8aW50dHlwZXMuaD4NCisjaW5jbHVk ZSA8c3RyaW5nLmg+DQorI2luY2x1ZGUgPHRpbWUuaD4NCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+ DQorDQorI2luY2x1ZGUgPHJ0ZV9ieXRlb3JkZXIuaD4NCisjaW5jbHVkZSA8cnRlX3ZlcnNpb24u aD4NCisjaW5jbHVkZSA8cnRlX2Vycm5vLmg+DQorI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCisj aW5jbHVkZSA8cnRlX2RlYnVnLmg+DQorI2luY2x1ZGUgPHJ0ZV9kZXYuaD4NCisjaW5jbHVkZSA8 cnRlX2VhbC5oPg0KKyNpbmNsdWRlIDxydGVfa3ZhcmdzLmg+DQorI2luY2x1ZGUgPHJ0ZV9sb2cu aD4NCisjaW5jbHVkZSA8cnRlX21hbGxvYy5oPg0KKyNpbmNsdWRlIDxydGVfbWVtb3J5Lmg+DQor I2luY2x1ZGUgPHJ0ZV9tZW1jcHkuaD4NCisjaW5jbHVkZSA8cnRlX2xjb3JlLmg+DQorI2luY2x1 ZGUgPHJ0ZV9jeWNsZXMuaD4NCisjaW5jbHVkZSA8cnRlX21lbXpvbmUuaD4NCisjaW5jbHVkZSA8 cnRlX2F0b21pYy5oPg0KKyNpbmNsdWRlIDxydGVfcmF3ZGV2Lmg+DQorI2luY2x1ZGUgPHJ0ZV9y YXdkZXZfcG1kLmg+DQorDQorI2lmIFJURV9WRVJTSU9OX05VTSgyMiwgMTEsIDAsIDApIDw9IFJU RV9WRVJTSU9ODQorI2luY2x1ZGUgPGJ1c192ZGV2X2RyaXZlci5oPg0KKyNlbHNlDQorI2luY2x1 ZGUgPHJ0ZV9idXNfdmRldi5oPg0KKyNlbmRpZg0KKw0KKyNpbmNsdWRlICJ6eGRoX3Jhd2Rldi5o Ig0KKyNpbmNsdWRlICJ6eGRoX3BjaS5oIg0KKw0KKy8qDQorICogVXNlciBkZWZpbmU6DQorICog ZXBfaWQtYml0WzE1OjEyXSB2ZnVuY19udW0tYml0WzExOjRdIGZ1bmNfbnVtLWJpdFszOjFdIHZm dW5jX2FjdGl2ZS1iaXQwDQorICogaG9zdCBlcF9pZDo1fjggICB6ZiBlcF9pZDo5DQorICovDQor I2RlZmluZSBaWERIX0dETUFfWkZfVVNFUiAgICAgICAgICAgICAgICAgICAgICAgMHg5MDAwICAg ICAgLyogZXA0IHBmMCAqLw0KKyNkZWZpbmUgWlhESF9HRE1BX1BGX05VTV9TSElGVCAgICAgICAg ICAgICAgICAgIDENCisjZGVmaW5lIFpYREhfR0RNQV9WRl9OVU1fU0hJRlQgICAgICAgICAgICAg ICAgICA0DQorI2RlZmluZSBaWERIX0dETUFfRVBfSURfU0hJRlQgICAgICAgICAgICAgICAgICAg MTINCisjZGVmaW5lIFpYREhfR0RNQV9WRl9FTiAgICAgICAgICAgICAgICAgICAgICAgICAxDQor I2RlZmluZSBaWERIX0dETUFfRVBJRF9PRkZTRVQgICAgICAgICAgICAgICAgICAgNQ0KKw0KKy8q IFJlZ2lzdGVyIG9mZnNldCAqLw0KKyNkZWZpbmUgWlhESF9HRE1BX0JBU0VfT0ZGU0VUICAgICAg ICAgICAgICAgICAgIDB4MTAwMDAwDQorI2RlZmluZSBaWERIX0dETUFfRVhUX0FERFJfT0ZGU0VU ICAgICAgICAgICAgICAgMHgyMTgNCisjZGVmaW5lIFpYREhfR0RNQV9TQVJfTE9XX09GRlNFVCAg ICAgICAgICAgICAgICAweDIwMA0KKyNkZWZpbmUgWlhESF9HRE1BX0RBUl9MT1dfT0ZGU0VUICAg ICAgICAgICAgICAgIDB4MjA0DQorI2RlZmluZSBaWERIX0dETUFfU0FSX0hJR0hfT0ZGU0VUICAg ICAgICAgICAgICAgMHgyMzQNCisjZGVmaW5lIFpYREhfR0RNQV9EQVJfSElHSF9PRkZTRVQgICAg ICAgICAgICAgICAweDIzOA0KKyNkZWZpbmUgWlhESF9HRE1BX1hGRVJTSVpFX09GRlNFVCAgICAg ICAgICAgICAgIDB4MjA4DQorI2RlZmluZSBaWERIX0dETUFfQ09OVFJPTF9PRkZTRVQgICAgICAg ICAgICAgICAgMHgyMzANCisjZGVmaW5lIFpYREhfR0RNQV9UQ19TVEFUVVNfT0ZGU0VUICAgICAg ICAgICAgICAweDANCisjZGVmaW5lIFpYREhfR0RNQV9TVEFUVVNfQ0xFQU5fT0ZGU0VUICAgICAg ICAgICAweDgwDQorI2RlZmluZSBaWERIX0dETUFfTExJX0xfT0ZGU0VUICAgICAgICAgICAgICAg ICAgMHgyMWMNCisjZGVmaW5lIFpYREhfR0RNQV9MTElfSF9PRkZTRVQgICAgICAgICAgICAgICAg ICAweDIyMA0KKyNkZWZpbmUgWlhESF9HRE1BX0NIQU5fQ09OVElOVUVfT0ZGU0VUICAgICAgICAg IDB4MjI0DQorI2RlZmluZSBaWERIX0dETUFfVENfQ05UX09GRlNFVCAgICAgICAgICAgICAgICAg MHgyM2MNCisjZGVmaW5lIFpYREhfR0RNQV9MTElfVVNFUl9PRkZTRVQgICAgICAgICAgICAgICAw eDIyOA0KKw0KKy8qIENvbnRyb2wgcmVnaXN0ZXIgKi8NCisjZGVmaW5lIFpYREhfR0RNQV9DSEFO X0VOQUJMRSAgICAgICAgICAgICAgICAgICAweDENCisjZGVmaW5lIFpYREhfR0RNQV9DSEFOX0RJ U0FCTEUgICAgICAgICAgICAgICAgICAwDQorI2RlZmluZSBaWERIX0dETUFfU09GVF9DSEFOICAg ICAgICAgICAgICAgICAgICAgMHgyDQorI2RlZmluZSBaWERIX0dETUFfVENfSU5UUl9FTkFCTEUg ICAgICAgICAgICAgICAgMHgxMA0KKyNkZWZpbmUgWlhESF9HRE1BX0FMTF9JTlRSX0VOQUJMRSAg ICAgICAgICAgICAgIDB4MzANCisjZGVmaW5lIFpYREhfR0RNQV9TQlNfU0hJRlQgICAgICAgICAg ICAgICAgICAgICA2ICAgICAgICAgICAvKiBzcmMgYnVyc3Qgc2l6ZSAqLw0KKyNkZWZpbmUgWlhE SF9HRE1BX1NCTF9TSElGVCAgICAgICAgICAgICAgICAgICAgIDkgICAgICAgICAgIC8qIHNyYyBi dXJzdCBsZW5ndGggKi8NCisjZGVmaW5lIFpYREhfR0RNQV9EQlNfU0hJRlQgICAgICAgICAgICAg ICAgICAgICAxMyAgICAgICAgICAvKiBkZXN0IGJ1cnN0IHNpemUgKi8NCisjZGVmaW5lIFpYREhf R0RNQV9CVVJTVF9TSVpFX01JTiAgICAgICAgICAgICAgICAweDEgICAgICAgICAvKiAxIGJ5dGUg Ki8NCisjZGVmaW5lIFpYREhfR0RNQV9CVVJTVF9TSVpFX01FRElVTSAgICAgICAgICAgICAweDQg ICAgICAgICAvKiA0IHdvcmQgKi8NCisjZGVmaW5lIFpYREhfR0RNQV9CVVJTVF9TSVpFX01BWCAg ICAgICAgICAgICAgICAweDYgICAgICAgICAvKiAxNiB3b3JkICovDQorI2RlZmluZSBaWERIX0dE TUFfREVGQVVMVF9CVVJTVF9MRU4gICAgICAgICAgICAgMHhmICAgICAgICAgLyogMTYgYmVhdHMg Ki8NCisjZGVmaW5lIFpYREhfR0RNQV9UQ19DTlRfRU5BQkxFICAgICAgICAgICAgICAgICAoMSA8 PCAyNykNCisjZGVmaW5lIFpYREhfR0RNQV9DSEFOX0ZPUkNFX0NMT1NFICAgICAgICAgICAgICAo MSA8PCAzMSkNCisNCisvKiBUQyBjb3VudCAmIEVycm9yIGludGVycnVwdCBzdGF0dXMgcmVnaXN0 ZXIgKi8NCisjZGVmaW5lIFpYREhfR0RNQV9TUkNfTExJX0VSUiAgICAgICAgICAgICAgICAgICAo MSA8PCAxNikNCisjZGVmaW5lIFpYREhfR0RNQV9TUkNfREFUQV9FUlIgICAgICAgICAgICAgICAg ICAoMSA8PCAxNykNCisjZGVmaW5lIFpYREhfR0RNQV9EU1RfQUREUl9FUlIgICAgICAgICAgICAg ICAgICAoMSA8PCAxOCkNCisjZGVmaW5lIFpYREhfR0RNQV9FUlJfU1RBVFVTICAgICAgICAgICAg ICAgICAgICAoMSA8PCAxOSkNCisjZGVmaW5lIFpYREhfR0RNQV9FUlJfSU5UUl9FTkFCTEUgICAg ICAgICAgICAgICAoMSA8PCAyMCkNCisjZGVmaW5lIFpYREhfR0RNQV9UQ19DTlRfQ0xFQU4gICAg ICAgICAgICAgICAgICAoMSkNCisNCisjZGVmaW5lIFpYREhfR0RNQV9DSEFOX1NISUZUICAgICAg ICAgICAgICAgICAgICAweDgwDQorI2RlZmluZSBaWERIX0dETUFfTElOS19FTkRfTk9ERSAgICAg ICAgICAgICAgICAgKDEgPDwgMzApDQorI2RlZmluZSBaWERIX0dETUFfQ0hBTl9DT05USU5VRSAg ICAgICAgICAgICAgICAgKDEpDQorDQorI2RlZmluZSBMT1czMl9NQVNLICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHhmZmZmZmZmZg0KKyNkZWZpbmUgTE9XMTZfTUFTSyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4ZmZmZg0KKw0KKyNkZWZpbmUgWlhESF9HRE1BX1dBSVRfVElN RVNfTUFYICAgICAgICAgICAgICAgIDEwMA0KKyNkZWZpbmUgWlhESF9HRE1BX1RDX0NOVF9NQVgg ICAgICAgICAgICAgICAgICAgIDB4MTAwMDANCisNCisjZGVmaW5lIElEWF9UT19BRERSKGFkZHIs IGlkeCwgdCkgXA0KKwkoKHQpKCh1aW50OF90ICopKGFkZHIpICsgKGlkeCkgKiBzaXplb2Yoc3Ry dWN0IHp4ZGhfZ2RtYV9idWZmX2Rlc2MpKSkNCisNCitzdGF0aWMgaW50IHp4ZGhfZ2RtYV9xdWV1 ZV9pbml0KHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkKTsNCitzdGF0 aWMgaW50IHp4ZGhfZ2RtYV9xdWV1ZV9mcmVlKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQx Nl90IHF1ZXVlX2lkKTsNCisNCitjaGFyIHp4ZGhfZ2RtYV9kcml2ZXJfbmFtZVtdID0gInJhd2Rl dl96eGRoX2dkbWEiOw0KK2NoYXIgZGV2X25hbWVbXSA9ICJ6eGRoX2dkbWEiOw0KKw0KK3N0YXRp YyBpbmxpbmUgc3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZSAqDQorenhkaF9nZG1hX2dldF9xdWV1ZShz dHJ1Y3QgcnRlX3Jhd2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCkNCit7DQorCXN0cnVjdCB6 eGRoX2dkbWFfcmF3ZGV2ICpnZG1hZGV2ID0genhkaF9nZG1hX3Jhd2Rldl9nZXRfcHJpdihkZXYp Ow0KKw0KKwlpZiAocXVldWVfaWQgPj0gWlhESF9HRE1BX1RPVEFMX0NIQU5fTlVNKSB7DQorCQla WERIX1BNRF9MT0coRVJSLCAicXVldWUgaWQgJWQgaXMgaW52YWxpZCIsIHF1ZXVlX2lkKTsNCisJ CXJldHVybiBOVUxMOw0KKwl9DQorDQorCXJldHVybiAmKGdkbWFkZXYtPnZxc1txdWV1ZV9pZF0p Ow0KK30NCisNCit1aW50DQorenhkaF9nZG1hX3JlYWRfcmVnKHN0cnVjdCBydGVfcmF3ZGV2ICpk ZXYsIHVpbnQxNl90IHF1ZXVlX2lkLCB1aW50IG9mZnNldCkNCit7DQorCXN0cnVjdCB6eGRoX2dk bWFfcmF3ZGV2ICpnZG1hZGV2ID0genhkaF9nZG1hX3Jhd2Rldl9nZXRfcHJpdihkZXYpOw0KKwl1 aW50IGFkZHIgPSAwOw0KKwl1aW50IHZhbCA9IDA7DQorDQorCWFkZHIgPSBvZmZzZXQgKyBxdWV1 ZV9pZCAqIFpYREhfR0RNQV9DSEFOX1NISUZUOw0KKwl2YWwgPSAqKHVpbnQgKikoZ2RtYWRldi0+ YmFzZV9hZGRyICsgYWRkcik7DQorDQorCXJldHVybiB2YWw7DQorfQ0KKw0KK3ZvaWQNCit6eGRo X2dkbWFfd3JpdGVfcmVnKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lk LCB1aW50IG9mZnNldCwgdWludCB2YWwpDQorew0KKwlzdHJ1Y3QgenhkaF9nZG1hX3Jhd2RldiAq Z2RtYWRldiA9IHp4ZGhfZ2RtYV9yYXdkZXZfZ2V0X3ByaXYoZGV2KTsNCisJdWludCBhZGRyID0g MDsNCisNCisJYWRkciA9IG9mZnNldCArIHF1ZXVlX2lkICogWlhESF9HRE1BX0NIQU5fU0hJRlQ7 DQorCSoodWludCAqKShnZG1hZGV2LT5iYXNlX2FkZHIgKyBhZGRyKSA9IHZhbDsNCit9DQorDQor aW50DQorenhkaF9nZG1hX2RlYnVnX2luZm9fZHVtcChzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2LCB1 aW50MTZfdCBxdWV1ZV9pZCkNCit7DQorCXN0cnVjdCB6eGRoX2dkbWFfcXVldWUgKnF1ZXVlID0g TlVMTDsNCisJc3RydWN0IHp4ZGhfZ2RtYV9idWZmX2Rlc2MgKmJkID0gTlVMTDsNCisJc3RydWN0 IHp4ZGhfZ2RtYV9qb2IgKmpvYiA9IE5VTEw7DQorCXVpbnQxNl90IGkgPSAwOw0KKw0KKwlpZiAo ZGV2ID09IE5VTEwpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJcXVldWUgPSB6eGRoX2dkbWFf Z2V0X3F1ZXVlKGRldiwgcXVldWVfaWQpOw0KKwlpZiAocXVldWUgPT0gTlVMTCkNCisJCXJldHVy biAtRUlOVkFMOw0KKw0KKwlaWERIX1BNRF9MT0coSU5GTywgIiMjI2R1bXAgc3dfcmluZyBpbmZv IyMjIik7DQorCVpYREhfUE1EX0xPRyhJTkZPLCAiZnJlZV9jbnQ6JXUgZGVxX2NudDoldSIsDQor CQkJCQkJcXVldWUtPnN3X3JpbmcuZnJlZV9jbnQsIHF1ZXVlLT5zd19yaW5nLmRlcV9jbnQpOw0K KwlaWERIX1BNRF9MT0coSU5GTywgImVucV9pZHg6JXUgZGVxX2lkeDoldSB1c2VkX2lkeDoldSIs DQorCQkJCQkJcXVldWUtPnN3X3JpbmcuZW5xX2lkeCwgcXVldWUtPnN3X3JpbmcuZGVxX2lkeCwN CisJCQkJCQlxdWV1ZS0+c3dfcmluZy51c2VkX2lkeCk7DQorCWZvciAoaSA9IDA7IGkgPCBaWERI X0dETUFfUVVFVUVfU0laRTsgaSsrKSB7DQorCQlpZiAocXVldWUtPnN3X3Jpbmcuam9iW2ldICE9 IE5VTEwpIHsNCisJCQlqb2IgPSBxdWV1ZS0+c3dfcmluZy5qb2JbaV07DQorCQkJWlhESF9QTURf TE9HKElORk8sICJpZHg6JWQsIFNyY0FkZHI6MHglIlBSSXg2NCIgRHN0QWRkcjoweCUiUFJJeDY0 IiBsZW46JXUiLA0KKwkJCQkJCQkJaSwgam9iLT5zcmMsIGpvYi0+ZGVzdCwgam9iLT5sZW4pOw0K KwkJfQ0KKwl9DQorDQorCVpYREhfUE1EX0xPRyhJTkZPLCAiIyMjZHVtcCByaW5nIGluZm8jIyMi KTsNCisJWlhESF9QTURfTE9HKElORk8sICJhdmFpbF9pZHg6JXUgdGNfY250OiV1IiwgcXVldWUt PnJpbmcuYXZhaWxfaWR4LCBxdWV1ZS0+dGNfY250KTsNCisJZm9yIChpID0gMDsgaSA8IFpYREhf R0RNQV9SSU5HX1NJWkU7IGkrKykgew0KKwkJYmQgPSBJRFhfVE9fQUREUihxdWV1ZS0+cmluZy5k ZXNjLCBpLCBzdHJ1Y3QgenhkaF9nZG1hX2J1ZmZfZGVzYyopOw0KKwkJWlhESF9QTURfTE9HKElO Rk8sICJpZHg6JWQgU3JjOjB4JSJQUkl4NjQiIERzdDoweCUiUFJJeDY0IiBMTElfTDoweCV4IExM SV9IOjB4JXggY3RybDoweCV4IHVzZXI6MHgleCIsDQorCQkJCWksIGJkLT5TcmNBZGRyX0wgfCAo KHVpbnQ2NF90KWJkLT5TcmNBZGRyX0ggPDwgMzIpLA0KKwkJCQliZC0+RHN0QWRkcl9MIHwgKCh1 aW50NjRfdCliZC0+RHN0QWRkcl9IIDw8IDMyKSwNCisJCQkJYmQtPkxMSV9BZGRyX0wsIGJkLT5M TElfQWRkcl9ILCBiZC0+Q29udHJvbCwgYmQtPkV4dEFkZHIpOw0KKwl9DQorDQorCXJldHVybiAw Ow0KK30NCisNCitzdGF0aWMgaW50DQorenhkaF9nZG1hX3Jhd2Rldl9pbmZvX2dldChzdHJ1Y3Qg cnRlX3Jhd2RldiAqZGV2LA0KKwkJCQkJCSAgX19ydGVfdW51c2VkIHJ0ZV9yYXdkZXZfb2JqX3Qg ZGV2X2luZm8sDQorCQkJCQkJICBfX3J0ZV91bnVzZWQgc2l6ZV90IGRldl9pbmZvX3NpemUpDQor ew0KKwlpZiAoZGV2ID09IE5VTEwpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJcmV0dXJuIDA7 DQorfQ0KKw0KK3N0YXRpYyBpbnQNCit6eGRoX2dkbWFfcmF3ZGV2X2NvbmZpZ3VyZShjb25zdCBz dHJ1Y3QgcnRlX3Jhd2RldiAqZGV2LA0KKwkJCQkJCSAgIHJ0ZV9yYXdkZXZfb2JqX3QgY29uZmln LA0KKwkJCQkJCSAgIHNpemVfdCBjb25maWdfc2l6ZSkNCit7DQorCXN0cnVjdCB6eGRoX2dkbWFf Y29uZmlnICpnZG1hX2NvbmZpZyA9IE5VTEw7DQorDQorCWlmICgoZGV2ID09IE5VTEwpIHx8DQor CQkoY29uZmlnID09IE5VTEwpIHx8DQorCQkoY29uZmlnX3NpemUgIT0gc2l6ZW9mKHN0cnVjdCB6 eGRoX2dkbWFfY29uZmlnKSkpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJZ2RtYV9jb25maWcg PSAoc3RydWN0IHp4ZGhfZ2RtYV9jb25maWcgKiljb25maWc7DQorCWlmIChnZG1hX2NvbmZpZy0+ bWF4X3ZxcyAhPSBaWERIX0dETUFfVE9UQUxfQ0hBTl9OVU0pIHsNCisJCVpYREhfUE1EX0xPRyhF UlIsICJnZG1hIG9ubHkgc3VwcG9ydCBxdWV1ZSBudW0gJWQiLCBaWERIX0dETUFfVE9UQUxfQ0hB Tl9OVU0pOw0KKwkJcmV0dXJuIC1FSU5WQUw7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0K K3N0YXRpYyBpbnQNCit6eGRoX2dkbWFfcmF3ZGV2X3N0YXJ0KHN0cnVjdCBydGVfcmF3ZGV2ICpk ZXYpDQorew0KKwlzdHJ1Y3QgenhkaF9nZG1hX3Jhd2RldiAqZ2RtYWRldiA9IE5VTEw7DQorDQor CWlmIChkZXYgPT0gTlVMTCkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlnZG1hZGV2ID0genhk aF9nZG1hX3Jhd2Rldl9nZXRfcHJpdihkZXYpOw0KKwlnZG1hZGV2LT5kZXZpY2Vfc3RhdGUgPSBa WERIX0dETUFfREVWX1JVTk5JTkc7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgdm9p ZA0KK3p4ZGhfZ2RtYV9yYXdkZXZfc3RvcChzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2KQ0KK3sNCisJ c3RydWN0IHp4ZGhfZ2RtYV9yYXdkZXYgKmdkbWFkZXYgPSBOVUxMOw0KKw0KKwlpZiAoZGV2ID09 IE5VTEwpDQorCQlyZXR1cm47DQorDQorCWdkbWFkZXYgPSB6eGRoX2dkbWFfcmF3ZGV2X2dldF9w cml2KGRldik7DQorCWdkbWFkZXYtPmRldmljZV9zdGF0ZSA9IFpYREhfR0RNQV9ERVZfU1RPUFBF RDsNCit9DQorDQorc3RhdGljIGludA0KK3p4ZGhfZ2RtYV9yYXdkZXZfcmVzZXQoc3RydWN0IHJ0 ZV9yYXdkZXYgKmRldikNCit7DQorCWlmIChkZXYgPT0gTlVMTCkNCisJCXJldHVybiAtRUlOVkFM Ow0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludA0KK3p4ZGhfZ2RtYV9yYXdkZXZf Y2xvc2Uoc3RydWN0IHJ0ZV9yYXdkZXYgKmRldikNCit7DQorCXN0cnVjdCB6eGRoX2dkbWFfcmF3 ZGV2ICpnZG1hZGV2ID0gTlVMTDsNCisJc3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZSAqcXVldWUgPSBO VUxMOw0KKwl1aW50MTZfdCBxdWV1ZV9pZCA9IDA7DQorDQorCWlmIChkZXYgPT0gTlVMTCkNCisJ CXJldHVybiAtRUlOVkFMOw0KKw0KKwlmb3IgKHF1ZXVlX2lkID0gMDsgcXVldWVfaWQgPCBaWERI X0dETUFfVE9UQUxfQ0hBTl9OVU07IHF1ZXVlX2lkKyspIHsNCisJCXF1ZXVlID0genhkaF9nZG1h X2dldF9xdWV1ZShkZXYsIHF1ZXVlX2lkKTsNCisJCWlmICgocXVldWUgPT0gTlVMTCkgfHwgKHF1 ZXVlLT5lbmFibGUgPT0gMCkpDQorCQkJY29udGludWU7DQorDQorCQl6eGRoX2dkbWFfcXVldWVf ZnJlZShkZXYsIHF1ZXVlX2lkKTsNCisJfQ0KKwlnZG1hZGV2ID0genhkaF9nZG1hX3Jhd2Rldl9n ZXRfcHJpdihkZXYpOw0KKwlnZG1hZGV2LT5kZXZpY2Vfc3RhdGUgPSBaWERIX0dETUFfREVWX1NU T1BQRUQ7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50DQorenhkaF9nZG1hX3Jh d2Rldl9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2LA0KKwkJCQkJCQkgdWludDE2 X3QgcXVldWVfaWQsDQorCQkJCQkJCSBydGVfcmF3ZGV2X29ial90IHF1ZXVlX2NvbmYsDQorCQkJ CQkJCSBzaXplX3QgY29uZl9zaXplKQ0KK3sNCisJc3RydWN0IHp4ZGhfZ2RtYV9yYXdkZXYgKmdk bWFkZXYgPSBOVUxMOw0KKwlzdHJ1Y3QgenhkaF9nZG1hX3F1ZXVlICpxdWV1ZSA9IE5VTEw7DQor CXN0cnVjdCB6eGRoX2dkbWFfcXVldWVfY29uZmlnICpxY29uZmlnID0gTlVMTDsNCisJc3RydWN0 IHp4ZGhfZ2RtYV9yYnAgKnJicCA9IE5VTEw7DQorCXVpbnQxNl90IGkgPSAwOw0KKwl1aW50OF90 IGlzX3R4cSA9IDA7DQorCXVpbnQgc3JjX3VzZXIgPSAwOw0KKwl1aW50IGRzdF91c2VyID0gMDsN CisNCisJaWYgKGRldiA9PSBOVUxMKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWlmICgocXVl dWVfY29uZiA9PSBOVUxMKSB8fCAoY29uZl9zaXplICE9IHNpemVvZihzdHJ1Y3QgenhkaF9nZG1h X3F1ZXVlX2NvbmZpZykpKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWdkbWFkZXYgPSB6eGRo X2dkbWFfcmF3ZGV2X2dldF9wcml2KGRldik7DQorCXFjb25maWcgPSAoc3RydWN0IHp4ZGhfZ2Rt YV9xdWV1ZV9jb25maWcgKilxdWV1ZV9jb25mOw0KKw0KKwlmb3IgKGkgPSAwOyBpIDwgWlhESF9H RE1BX1RPVEFMX0NIQU5fTlVNOyBpKyspIHsNCisJCWlmIChnZG1hZGV2LT52cXNbaV0uZW5hYmxl ID09IDApDQorCQkJYnJlYWs7DQorCX0NCisJaWYgKGkgPj0gWlhESF9HRE1BX1RPVEFMX0NIQU5f TlVNKSB7DQorCQlaWERIX1BNRF9MT0coRVJSLCAiRmFpbGVkIHRvIHNldHVwIHF1ZXVlLCBubyBh dmFpbCBxdWV1ZXMiKTsNCisJCXJldHVybiAtMTsNCisJfQ0KKwlxdWV1ZV9pZCA9IGk7DQorCWlm ICh6eGRoX2dkbWFfcXVldWVfaW5pdChkZXYsIHF1ZXVlX2lkKSAhPSAwKSB7DQorCQlaWERIX1BN RF9MT0coRVJSLCAiRmFpbGVkIHRvIGluaXQgcXVldWUiKTsNCisJCXJldHVybiAtMTsNCisJfQ0K KwlxdWV1ZSA9ICYoZ2RtYWRldi0+dnFzW3F1ZXVlX2lkXSk7DQorDQorCXJicCA9IHFjb25maWct PnJicDsNCisJaWYgKChyYnAtPnNyYnAgIT0gMCkgJiYgKHJicC0+ZHJicCA9PSAwKSkgew0KKwkJ aXNfdHhxID0gMDsNCisJCWRzdF91c2VyID0gWlhESF9HRE1BX1pGX1VTRVI7DQorCQlzcmNfdXNl ciA9ICgocmJwLT5zcGZpZCA8PCBaWERIX0dETUFfUEZfTlVNX1NISUZUKSB8DQorCQkJKChyYnAt PnNwb3J0aWQgKyBaWERIX0dETUFfRVBJRF9PRkZTRVQpIDw8IFpYREhfR0RNQV9FUF9JRF9TSElG VCkpOw0KKw0KKwkJaWYgKHJicC0+c3ZmaWQgIT0gMCkNCisJCQlzcmNfdXNlciB8PSAoWlhESF9H RE1BX1ZGX0VOIHwNCisJCQkJCQkgKChyYnAtPnN2ZmlkIC0gMSkgPDwgWlhESF9HRE1BX1ZGX05V TV9TSElGVCkpOw0KKw0KKwkJWlhESF9QTURfTE9HKERFQlVHLCAicnhxLT5xaWR4OiVkIHNldHVw IHNyY191c2VyKGVwOiVkIHBmOiVkIHZmOiVkKSBzdWNjZXNzIiwNCisJCQkJCXF1ZXVlX2lkLCAo dWludDhfdClyYnAtPnNwb3J0aWQsICh1aW50OF90KXJicC0+c3BmaWQsDQorCQkJCQkodWludDhf dClyYnAtPnN2ZmlkKTsNCisJfSBlbHNlIGlmICgocmJwLT5zcmJwID09IDApICYmIChyYnAtPmRy YnAgIT0gMCkpIHsNCisJCWlzX3R4cSA9IDE7DQorCQlzcmNfdXNlciA9IFpYREhfR0RNQV9aRl9V U0VSOw0KKwkJZHN0X3VzZXIgPSAoKHJicC0+ZHBmaWQgPDwgWlhESF9HRE1BX1BGX05VTV9TSElG VCkgfA0KKwkJCSgocmJwLT5kcG9ydGlkICsgWlhESF9HRE1BX0VQSURfT0ZGU0VUKSA8PCBaWERI X0dETUFfRVBfSURfU0hJRlQpKTsNCisNCisJCWlmIChyYnAtPmR2ZmlkICE9IDApDQorCQkJZHN0 X3VzZXIgfD0gKFpYREhfR0RNQV9WRl9FTiB8DQorCQkJCQkJICgocmJwLT5kdmZpZCAtIDEpIDw8 IFpYREhfR0RNQV9WRl9OVU1fU0hJRlQpKTsNCisNCisJCVpYREhfUE1EX0xPRyhERUJVRywgInR4 cS0+cWlkeDolZCBzZXR1cCBkc3RfdXNlcihlcDolZCBwZjolZCB2ZjolZCkgc3VjY2VzcyIsDQor CQkJCQlxdWV1ZV9pZCwgKHVpbnQ4X3QpcmJwLT5kcG9ydGlkLCAodWludDhfdClyYnAtPmRwZmlk LA0KKwkJCQkJKHVpbnQ4X3QpcmJwLT5kdmZpZCk7DQorCX0gZWxzZSB7DQorCQlaWERIX1BNRF9M T0coRVJSLCAiRmFpbGVkIHRvIHNldHVwIHF1ZXVlLCBzcmJwL2RyYnAgaXMgaW52YWxpZCIpOw0K KwkJcmV0dXJuIC1FSU5WQUw7DQorCX0NCisJcXVldWUtPmlzX3R4cSA9IGlzX3R4cTsNCisNCisJ Lyogc2V0dXAgcXVldWUgdXNlciBpbmZvICovDQorCXF1ZXVlLT51c2VyID0gKHNyY191c2VyICYg TE9XMTZfTUFTSykgfCAoZHN0X3VzZXIgPDwgMTYpOw0KKw0KKwl6eGRoX2dkbWFfd3JpdGVfcmVn KGRldiwgcXVldWVfaWQsIFpYREhfR0RNQV9FWFRfQUREUl9PRkZTRVQsIHF1ZXVlLT51c2VyKTsN CisJZ2RtYWRldi0+dXNlZF9udW0rKzsNCisNCisJcmV0dXJuIHF1ZXVlX2lkOw0KK30NCisNCitz dGF0aWMgaW50DQorenhkaF9nZG1hX3Jhd2Rldl9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfcmF3 ZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkKQ0KK3sNCisJc3RydWN0IHp4ZGhfZ2RtYV9xdWV1 ZSAqcXVldWUgPSBOVUxMOw0KKw0KKwlpZiAoZGV2ID09IE5VTEwpDQorCQlyZXR1cm4gLUVJTlZB TDsNCisNCisJcXVldWUgPSB6eGRoX2dkbWFfZ2V0X3F1ZXVlKGRldiwgcXVldWVfaWQpOw0KKwlp ZiAoKHF1ZXVlID09IE5VTEwpIHx8IChxdWV1ZS0+ZW5hYmxlID09IDApKQ0KKwkJcmV0dXJuIC1F SU5WQUw7DQorDQorCXp4ZGhfZ2RtYV9xdWV1ZV9mcmVlKGRldiwgcXVldWVfaWQpOw0KKw0KKwly ZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludA0KK3p4ZGhfZ2RtYV9yYXdkZXZfZ2V0X2F0dHIo c3RydWN0IHJ0ZV9yYXdkZXYgKmRldiwNCisJCQkJCQkgIF9fcnRlX3VudXNlZCBjb25zdCBjaGFy ICphdHRyX25hbWUsDQorCQkJCQkJICB1aW50NjRfdCAqYXR0cl92YWx1ZSkNCit7DQorCXN0cnVj dCB6eGRoX2dkbWFfcmF3ZGV2ICpnZG1hZGV2ID0gTlVMTDsNCisJc3RydWN0IHp4ZGhfZ2RtYV9h dHRyICpnZG1hX2F0dHIgPSBOVUxMOw0KKw0KKwlpZiAoKGRldiA9PSBOVUxMKSB8fCAoYXR0cl92 YWx1ZSA9PSBOVUxMKSkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlnZG1hZGV2ICAgPSB6eGRo X2dkbWFfcmF3ZGV2X2dldF9wcml2KGRldik7DQorCWdkbWFfYXR0ciA9IChzdHJ1Y3QgenhkaF9n ZG1hX2F0dHIgKilhdHRyX3ZhbHVlOw0KKwlnZG1hX2F0dHItPm51bV9od19xdWV1ZXMgPSBnZG1h ZGV2LT51c2VkX251bTsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9p ZA0KK3p4ZGhfZ2RtYV9jb250cm9sX2NhbCh1aW50ICp2YWwsIHVpbnQ4X3QgdGNfZW5hYmxlKQ0K K3sNCisJKnZhbCA9IChaWERIX0dETUFfQ0hBTl9FTkFCTEUgfA0KKwkJCVpYREhfR0RNQV9TT0ZU X0NIQU4gfA0KKwkJCShaWERIX0dETUFfREVGQVVMVF9CVVJTVF9MRU4gPDwgWlhESF9HRE1BX1NC TF9TSElGVCkgfA0KKwkJCShaWERIX0dETUFfQlVSU1RfU0laRV9NQVggPDwgWlhESF9HRE1BX1NC U19TSElGVCkgfA0KKwkJCShaWERIX0dETUFfQlVSU1RfU0laRV9NQVggPDwgWlhESF9HRE1BX0RC U19TSElGVCkpOw0KKw0KKwlpZiAodGNfZW5hYmxlICE9IDApDQorCQkqdmFsIHw9IFpYREhfR0RN QV9UQ19DTlRfRU5BQkxFOw0KK30NCisNCitzdGF0aWMgaW5saW5lIHVpbnQNCit6eGRoX2dkbWFf dXNlcl9nZXQoc3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZSAqcXVldWUsIHN0cnVjdCB6eGRoX2dkbWFf am9iICpqb2IpDQorew0KKwl1aW50IHNyY191c2VyID0gMDsNCisJdWludCBkc3RfdXNlciA9IDA7 DQorDQorCWlmICgoam9iLT5mbGFncyAmIFpYREhfR0RNQV9KT0JfRElSX01BU0spID09IDApIHsN CisJCVpYREhfUE1EX0xPRyhERUJVRywgImpvYiBmbGFnczoweCV4IGRlZmF1bHQgdXNlcjoweCV4 XG4iLA0KKwkJCQkJCQlqb2ItPmZsYWdzLCBxdWV1ZS0+dXNlcik7DQorCQlyZXR1cm4gcXVldWUt PnVzZXI7DQorCX0gZWxzZSBpZiAoKGpvYi0+ZmxhZ3MgJiBaWERIX0dETUFfSk9CX0RJUl9UWCkg IT0gMCkgew0KKwkJc3JjX3VzZXIgPSBaWERIX0dETUFfWkZfVVNFUjsNCisJCWRzdF91c2VyID0g KChqb2ItPnBmX2lkIDw8IFpYREhfR0RNQV9QRl9OVU1fU0hJRlQpIHwNCisJCQkoKGpvYi0+ZXBf aWQgKyBaWERIX0dETUFfRVBJRF9PRkZTRVQpIDw8IFpYREhfR0RNQV9FUF9JRF9TSElGVCkpOw0K Kw0KKwkJaWYgKGpvYi0+dmZfaWQgIT0gMCkNCisJCQlkc3RfdXNlciB8PSAoWlhESF9HRE1BX1ZG X0VOIHwNCisJCQkJCQkgKChqb2ItPnZmX2lkIC0gMSkgPDwgWlhESF9HRE1BX1ZGX05VTV9TSElG VCkpOw0KKwl9IGVsc2Ugew0KKwkJZHN0X3VzZXIgPSBaWERIX0dETUFfWkZfVVNFUjsNCisJCXNy Y191c2VyID0gKChqb2ItPnBmX2lkIDw8IFpYREhfR0RNQV9QRl9OVU1fU0hJRlQpIHwNCisJCQko KGpvYi0+ZXBfaWQgKyBaWERIX0dETUFfRVBJRF9PRkZTRVQpIDw8IFpYREhfR0RNQV9FUF9JRF9T SElGVCkpOw0KKw0KKwkJaWYgKGpvYi0+dmZfaWQgIT0gMCkNCisJCQlzcmNfdXNlciB8PSAoWlhE SF9HRE1BX1ZGX0VOIHwNCisJCQkJCQkgKChqb2ItPnZmX2lkIC0gMSkgPDwgWlhESF9HRE1BX1ZG X05VTV9TSElGVCkpOw0KKwl9DQorCVpYREhfUE1EX0xPRyhERUJVRywgImpvYiBmbGFnczoweCV4 IGVwX2lkOiV1LCBwZl9pZDoldSwgdmZfaWQ6JXUsIHVzZXI6MHgleFxuIiwNCisJCQkJCQlqb2It PmZsYWdzLCBqb2ItPmVwX2lkLCBqb2ItPnBmX2lkLCBqb2ItPnZmX2lkLA0KKwkJCQkJCShzcmNf dXNlciAmIExPVzE2X01BU0spIHwgKGRzdF91c2VyIDw8IDE2KSk7DQorDQorCXJldHVybiAoc3Jj X3VzZXIgJiBMT1cxNl9NQVNLKSB8IChkc3RfdXNlciA8PCAxNik7DQorfQ0KKw0KK3N0YXRpYyBp bmxpbmUgdm9pZA0KK3p4ZGhfZ2RtYV9maWxsX2JkKHN0cnVjdCB6eGRoX2dkbWFfcXVldWUgKnF1 ZXVlLCBzdHJ1Y3QgenhkaF9nZG1hX2pvYiAqam9iKQ0KK3sNCisJc3RydWN0IHp4ZGhfZ2RtYV9i dWZmX2Rlc2MgKmJkID0gTlVMTDsNCisJdWludCB2YWwgPSAwOw0KKwl1aW50NjRfdCBuZXh0X2Jk X2FkZHIgPSAwOw0KKwl1aW50MTZfdCBhdmFpbF9pZHggPSAwOw0KKw0KKwlhdmFpbF9pZHggPSBx dWV1ZS0+cmluZy5hdmFpbF9pZHg7DQorCWJkID0gJihxdWV1ZS0+cmluZy5kZXNjW2F2YWlsX2lk eF0pOw0KKwltZW1zZXQoYmQsIDAsIHNpemVvZihzdHJ1Y3QgenhkaF9nZG1hX2J1ZmZfZGVzYykp Ow0KKw0KKwkvKiBkYXRhIGJkICovDQorCWlmIChqb2IgIT0gTlVMTCkgew0KKwkJenhkaF9nZG1h X2NvbnRyb2xfY2FsKCZ2YWwsIDEpOw0KKwkJbmV4dF9iZF9hZGRyICAgPSBJRFhfVE9fQUREUihx dWV1ZS0+cmluZy5yaW5nX21lbSwNCisJCQkJCQkJKGF2YWlsX2lkeCArIDEpICUgWlhESF9HRE1B X1JJTkdfU0laRSwNCisJCQkJCQkJdWludDY0X3QpOw0KKwkJYmQtPlNyY0FkZHJfTCAgPSBqb2It PnNyYyAmIExPVzMyX01BU0s7DQorCQliZC0+RHN0QWRkcl9MICA9IGpvYi0+ZGVzdCAmIExPVzMy X01BU0s7DQorCQliZC0+U3JjQWRkcl9IICA9IChqb2ItPnNyYyA+PiAzMikgJiBMT1czMl9NQVNL Ow0KKwkJYmQtPkRzdEFkZHJfSCAgPSAoam9iLT5kZXN0ID4+IDMyKSAmIExPVzMyX01BU0s7DQor CQliZC0+WHBhcmEgICAgICA9IGpvYi0+bGVuOw0KKwkJYmQtPkV4dEFkZHIgICAgPSB6eGRoX2dk bWFfdXNlcl9nZXQocXVldWUsIGpvYik7DQorCQliZC0+TExJX0FkZHJfTCA9IChuZXh0X2JkX2Fk ZHIgPj4gNikgJiBMT1czMl9NQVNLOw0KKwkJYmQtPkxMSV9BZGRyX0ggPSBuZXh0X2JkX2FkZHIg Pj4gMzg7DQorCQliZC0+TExJX1VzZXIgICA9IFpYREhfR0RNQV9aRl9VU0VSOw0KKwkJYmQtPkNv bnRyb2wgICAgPSB2YWw7DQorCX0gZWxzZSB7DQorCQl6eGRoX2dkbWFfY29udHJvbF9jYWwoJnZh bCwgMCk7DQorCQluZXh0X2JkX2FkZHIgICA9IElEWF9UT19BRERSKHF1ZXVlLT5yaW5nLnJpbmdf bWVtLCBhdmFpbF9pZHgsIHVpbnQ2NF90KTsNCisJCWJkLT5FeHRBZGRyICAgID0gcXVldWUtPnVz ZXI7DQorCQliZC0+TExJX1VzZXIgICA9IFpYREhfR0RNQV9aRl9VU0VSOw0KKwkJYmQtPkNvbnRy b2wgICAgPSB2YWw7DQorCQliZC0+TExJX0FkZHJfTCA9IChuZXh0X2JkX2FkZHIgPj4gNikgJiBM T1czMl9NQVNLOw0KKwkJYmQtPkxMSV9BZGRyX0ggPSAobmV4dF9iZF9hZGRyID4+IDM4KSB8IFpY REhfR0RNQV9MSU5LX0VORF9OT0RFOw0KKwkJaWYgKHF1ZXVlLT5mbGFnICE9IDApIHsNCisJCQli ZCA9IElEWF9UT19BRERSKHF1ZXVlLT5yaW5nLmRlc2MsDQorCQkJCQlxdWV1ZS0+cmluZy5sYXN0 X2F2YWlsX2lkeCwNCisJCQkJCXN0cnVjdCB6eGRoX2dkbWFfYnVmZl9kZXNjKik7DQorCQkJbmV4 dF9iZF9hZGRyID0gSURYX1RPX0FERFIocXVldWUtPnJpbmcucmluZ19tZW0sDQorCQkJCQkocXVl dWUtPnJpbmcubGFzdF9hdmFpbF9pZHggKyAxKSAlIFpYREhfR0RNQV9SSU5HX1NJWkUsDQorCQkJ CQl1aW50NjRfdCk7DQorCQkJYmQtPkxMSV9BZGRyX0wgID0gKG5leHRfYmRfYWRkciA+PiA2KSAm IExPVzMyX01BU0s7DQorCQkJYmQtPkxMSV9BZGRyX0ggID0gbmV4dF9iZF9hZGRyID4+IDM4Ow0K KwkJCXJ0ZV93bWIoKTsNCisJCQliZC0+TExJX0FkZHJfSCAmPSB+WlhESF9HRE1BX0xJTktfRU5E X05PREU7DQorCQl9DQorCQkvKiBSZWNvcmQgdGhlIGluZGV4IG9mIGVtcHR5IGJkIGZvciBkeW5h bWljIGNoYWluaW5nICovDQorCQlxdWV1ZS0+cmluZy5sYXN0X2F2YWlsX2lkeCA9IGF2YWlsX2lk eDsNCisJfQ0KKw0KKwlpZiAoKythdmFpbF9pZHggPj0gWlhESF9HRE1BX1JJTkdfU0laRSkNCisJ CWF2YWlsX2lkeCAtPSBaWERIX0dETUFfUklOR19TSVpFOw0KKw0KKwlxdWV1ZS0+cmluZy5hdmFp bF9pZHggPSBhdmFpbF9pZHg7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCit6eGRoX2dkbWFfcmF3ZGV2 X2VucXVldWVfYnVmcyhzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2LA0KKwkJCQkJCV9fcnRlX3VudXNl ZCBzdHJ1Y3QgcnRlX3Jhd2Rldl9idWYgKipidWZmZXJzLA0KKwkJCQkJCXVpbnQgY291bnQsDQor CQkJCQkJcnRlX3Jhd2Rldl9vYmpfdCBjb250ZXh0KQ0KK3sNCisJc3RydWN0IHp4ZGhfZ2RtYV9y YXdkZXYgKmdkbWFkZXYgPSBOVUxMOw0KKwlzdHJ1Y3QgenhkaF9nZG1hX3F1ZXVlICpxdWV1ZSA9 IE5VTEw7DQorCXN0cnVjdCB6eGRoX2dkbWFfZW5xZGVxICplX2NvbnRleHQgPSBOVUxMOw0KKwlz dHJ1Y3QgenhkaF9nZG1hX2pvYiAqam9iID0gTlVMTDsNCisJdWludDE2X3QgcXVldWVfaWQgPSAw Ow0KKwl1aW50IHZhbCA9IDA7DQorCXVpbnQxNl90IGkgPSAwOw0KKwl1aW50MTZfdCBmcmVlX2Nu dCA9IDA7DQorDQorCWlmIChkZXYgPT0gTlVMTCkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlp ZiAodW5saWtlbHkoKGNvdW50IDwgMSkgfHwgKGNvbnRleHQgPT0gTlVMTCkpKQ0KKwkJcmV0dXJu IC1FSU5WQUw7DQorDQorCWdkbWFkZXYgPSB6eGRoX2dkbWFfcmF3ZGV2X2dldF9wcml2KGRldik7 DQorCWlmIChnZG1hZGV2LT5kZXZpY2Vfc3RhdGUgPT0gWlhESF9HRE1BX0RFVl9TVE9QUEVEKSB7 DQorCQlaWERIX1BNRF9MT0coRVJSLCAiZ2RtYSBkZXYgaXMgc3RvcCIpOw0KKwkJcmV0dXJuIDA7 DQorCX0NCisNCisJZV9jb250ZXh0ID0gKHN0cnVjdCB6eGRoX2dkbWFfZW5xZGVxICopY29udGV4 dDsNCisJcXVldWVfaWQgPSBlX2NvbnRleHQtPnZxX2lkOw0KKwlxdWV1ZSA9IHp4ZGhfZ2RtYV9n ZXRfcXVldWUoZGV2LCBxdWV1ZV9pZCk7DQorCWlmICgocXVldWUgPT0gTlVMTCkgfHwgKHF1ZXVl LT5lbmFibGUgPT0gMCkpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJZnJlZV9jbnQgPSBxdWV1 ZS0+c3dfcmluZy5mcmVlX2NudDsNCisJaWYgKGZyZWVfY250ID09IDApIHsNCisJCVpYREhfUE1E X0xPRyhFUlIsICJxdWV1ZSAldSBpcyBmdWxsLCBlbnFfaWR4OiV1IGRlcV9pZHg6JXUgdXNlZF9p ZHg6JXUiLA0KKwkJCQkJCSAgIHF1ZXVlX2lkLCBxdWV1ZS0+c3dfcmluZy5lbnFfaWR4LA0KKwkJ CQkJCSAgIHF1ZXVlLT5zd19yaW5nLmRlcV9pZHgsIHF1ZXVlLT5zd19yaW5nLnVzZWRfaWR4KTsN CisJCXJldHVybiAwOw0KKwl9IGVsc2UgaWYgKGZyZWVfY250IDwgY291bnQpIHsNCisJCVpYREhf UE1EX0xPRyhERUJVRywgImpvYiBudW0gJXUgPiBmcmVlX2NudCwgY2hhbmdlIHRvICV1IiwgY291 bnQsIGZyZWVfY250KTsNCisJCWNvdW50ID0gZnJlZV9jbnQ7DQorCX0NCisNCisJcnRlX3NwaW5s b2NrX2xvY2soJnF1ZXVlLT5lbnF1ZXVlX2xvY2spOw0KKw0KKwkvKiBCdWlsZCBiZCBsaXN0LCB0 aGUgbGFzdCBiZCBpcyBlbXB0eSBiZCAqLw0KKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykg ew0KKwkJam9iID0gZV9jb250ZXh0LT5qb2JbaV07DQorCQl6eGRoX2dkbWFfZmlsbF9iZChxdWV1 ZSwgam9iKTsNCisJfQ0KKwl6eGRoX2dkbWFfZmlsbF9iZChxdWV1ZSwgTlVMTCk7DQorDQorCWlm ICh1bmxpa2VseShxdWV1ZS0+ZmxhZyA9PSAwKSkgew0KKwkJenhkaF9nZG1hX3dyaXRlX3JlZyhk ZXYsIHF1ZXVlX2lkLCBaWERIX0dETUFfTExJX0xfT0ZGU0VULA0KKwkJCQkJCQkocXVldWUtPnJp bmcucmluZ19tZW0gPj4gNikgJiBMT1czMl9NQVNLKTsNCisJCXp4ZGhfZ2RtYV93cml0ZV9yZWco ZGV2LCBxdWV1ZV9pZCwgWlhESF9HRE1BX0xMSV9IX09GRlNFVCwNCisJCQkJCQkJIHF1ZXVlLT5y aW5nLnJpbmdfbWVtID4+IDM4KTsNCisJCS8qIFN0YXJ0IGhhcmR3YXJlIGhhbmRsaW5nICovDQor CQl6eGRoX2dkbWFfd3JpdGVfcmVnKGRldiwgcXVldWVfaWQsIFpYREhfR0RNQV9YRkVSU0laRV9P RkZTRVQsIDApOw0KKwkJenhkaF9nZG1hX2NvbnRyb2xfY2FsKCZ2YWwsIDApOw0KKwkJenhkaF9n ZG1hX3dyaXRlX3JlZyhkZXYsIHF1ZXVlX2lkLCBaWERIX0dETUFfQ09OVFJPTF9PRkZTRVQsIHZh bCk7DQorCQlxdWV1ZS0+ZmxhZyA9IDE7DQorCX0gZWxzZSB7DQorCQl2YWwgPSBaWERIX0dETUFf Q0hBTl9DT05USU5VRTsNCisJCXp4ZGhfZ2RtYV93cml0ZV9yZWcoZGV2LCBxdWV1ZS0+dnFfaWQs IFpYREhfR0RNQV9DSEFOX0NPTlRJTlVFX09GRlNFVCwgdmFsKTsNCisJfQ0KKw0KKyAgICAvKiBq b2IgZW5xdWV1ZSAqLw0KKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgew0KKwkJcXVldWUt PnN3X3Jpbmcuam9iW3F1ZXVlLT5zd19yaW5nLmVucV9pZHhdID0gZV9jb250ZXh0LT5qb2JbaV07 DQorCQlpZiAoKytxdWV1ZS0+c3dfcmluZy5lbnFfaWR4ID49IHF1ZXVlLT5xdWV1ZV9zaXplKQ0K KwkJCXF1ZXVlLT5zd19yaW5nLmVucV9pZHggLT0gcXVldWUtPnF1ZXVlX3NpemU7DQorDQorCQlm cmVlX2NudC0tOw0KKwl9DQorCXF1ZXVlLT5zd19yaW5nLmZyZWVfY250ID0gZnJlZV9jbnQ7DQor CXF1ZXVlLT5zd19yaW5nLnBlbmRfY250ICs9IGNvdW50Ow0KKwlydGVfc3BpbmxvY2tfdW5sb2Nr KCZxdWV1ZS0+ZW5xdWV1ZV9sb2NrKTsNCisNCisJcmV0dXJuIGNvdW50Ow0KK30NCisNCitzdGF0 aWMgaW5saW5lIHZvaWQNCit6eGRoX2dkbWFfdXNlZF9pZHhfdXBkYXRlKHN0cnVjdCB6eGRoX2dk bWFfcXVldWUgKnF1ZXVlLCB1aW50MTZfdCBjbnQsIHVpbnQ4X3QgZGF0YV9iZF9lcnIpDQorew0K Kwl1aW50MTZfdCBpZHggPSAwOw0KKw0KKwlpZiAocXVldWUtPnN3X3JpbmcudXNlZF9pZHggKyBj bnQgPCBxdWV1ZS0+cXVldWVfc2l6ZSkNCisJCXF1ZXVlLT5zd19yaW5nLnVzZWRfaWR4ICs9IGNu dDsNCisJZWxzZQ0KKwkJcXVldWUtPnN3X3JpbmcudXNlZF9pZHggPSBxdWV1ZS0+c3dfcmluZy51 c2VkX2lkeCArIGNudCAtIHF1ZXVlLT5xdWV1ZV9zaXplOw0KKw0KKwlpZiAoZGF0YV9iZF9lcnIg PT0gMSkgew0KKwkJLyogVXBkYXRlIGpvYiBzdGF0dXMsIHRoZSBsYXN0IGpvYiBzdGF0dXMgaXMg ZXJyb3IgKi8NCisJCWlmIChxdWV1ZS0+c3dfcmluZy51c2VkX2lkeCA9PSAwKQ0KKwkJCWlkeCA9 IHF1ZXVlLT5xdWV1ZV9zaXplIC0gMTsNCisJCWVsc2UNCisJCQlpZHggPSBxdWV1ZS0+c3dfcmlu Zy51c2VkX2lkeCAtIDE7DQorDQorCQlxdWV1ZS0+c3dfcmluZy5qb2JbaWR4XS0+c3RhdHVzID0g MTsNCisJfQ0KK30NCisNCitzdGF0aWMgaW50DQorenhkaF9nZG1hX3Jhd2Rldl9kZXF1ZXVlX2J1 ZnMoc3RydWN0IHJ0ZV9yYXdkZXYgKmRldiwNCisJCQkJCQlfX3J0ZV91bnVzZWQgc3RydWN0IHJ0 ZV9yYXdkZXZfYnVmICoqYnVmZmVycywNCisJCQkJCQl1aW50IGNvdW50LA0KKwkJCQkJCXJ0ZV9y YXdkZXZfb2JqX3QgY29udGV4dCkNCit7DQorCXN0cnVjdCB6eGRoX2dkbWFfcXVldWUgKnF1ZXVl ID0gTlVMTDsNCisJc3RydWN0IHp4ZGhfZ2RtYV9lbnFkZXEgKmVfY29udGV4dCA9IE5VTEw7DQor CXVpbnQxNl90IHF1ZXVlX2lkID0gMDsNCisJdWludCB2YWwgPSAwOw0KKwl1aW50MTZfdCB0Y19j bnQgPSAwOw0KKwl1aW50MTZfdCBkaWZmX2NudCA9IDA7DQorCXVpbnQxNl90IGkgPSAwOw0KKwl1 aW50MTZfdCBiZF9pZHggPSAwOw0KKwl1aW50NjRfdCBuZXh0X2JkX2FkZHIgPSAwOw0KKwl1aW50 OF90IGRhdGFfYmRfZXJyID0gMDsNCisNCisJaWYgKChkZXYgPT0gTlVMTCkgfHwgKGNvbnRleHQg PT0gTlVMTCkpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJZV9jb250ZXh0ID0gKHN0cnVjdCB6 eGRoX2dkbWFfZW5xZGVxICopY29udGV4dDsNCisJcXVldWVfaWQgPSBlX2NvbnRleHQtPnZxX2lk Ow0KKwlxdWV1ZSA9IHp4ZGhfZ2RtYV9nZXRfcXVldWUoZGV2LCBxdWV1ZV9pZCk7DQorCWlmICgo cXVldWUgPT0gTlVMTCkgfHwgKHF1ZXVlLT5lbmFibGUgPT0gMCkpDQorCQlyZXR1cm4gLUVJTlZB TDsNCisNCisJaWYgKHF1ZXVlLT5zd19yaW5nLnBlbmRfY250ID09IDApDQorCQlnb3RvIGRlcV9q b2I7DQorDQorCS8qIEdldCBkYXRhIHRyYW5zbWl0IGNvdW50ICovDQorCXZhbCA9IHp4ZGhfZ2Rt YV9yZWFkX3JlZyhkZXYsIHF1ZXVlX2lkLCBaWERIX0dETUFfVENfQ05UX09GRlNFVCk7DQorCXRj X2NudCA9IHZhbCAmIExPVzE2X01BU0s7DQorCWlmICh0Y19jbnQgPj0gcXVldWUtPnRjX2NudCkN CisJCWRpZmZfY250ID0gdGNfY250IC0gcXVldWUtPnRjX2NudDsNCisJZWxzZQ0KKwkJZGlmZl9j bnQgPSB0Y19jbnQgKyBaWERIX0dETUFfVENfQ05UX01BWCAtIHF1ZXVlLT50Y19jbnQ7DQorDQor CXF1ZXVlLT50Y19jbnQgPSB0Y19jbnQ7DQorDQorCS8qIERhdGEgdHJhbnNtaXQgZXJyb3IsIGNo YW5uZWwgc3RvcHBlZCAqLw0KKwlpZiAoKHZhbCAmIFpYREhfR0RNQV9FUlJfU1RBVFVTKSAhPSAw KSB7DQorCQluZXh0X2JkX2FkZHIgID0genhkaF9nZG1hX3JlYWRfcmVnKGRldiwgcXVldWVfaWQs IFpYREhfR0RNQV9MTElfTF9PRkZTRVQpOw0KKwkJbmV4dF9iZF9hZGRyIHw9ICgodWludDY0X3Qp enhkaF9nZG1hX3JlYWRfcmVnKGRldiwgcXVldWVfaWQsDQorCQkJCQkJCVpYREhfR0RNQV9MTElf SF9PRkZTRVQpIDw8IDMyKTsNCisJCW5leHRfYmRfYWRkciAgPSBuZXh0X2JkX2FkZHIgPDwgNjsN CisJCWJkX2lkeCA9IChuZXh0X2JkX2FkZHIgLSBxdWV1ZS0+cmluZy5yaW5nX21lbSkgLyBzaXpl b2Yoc3RydWN0IHp4ZGhfZ2RtYV9idWZmX2Rlc2MpOw0KKwkJaWYgKCh2YWwgJiBaWERIX0dETUFf U1JDX0RBVEFfRVJSKSB8fCAodmFsICYgWlhESF9HRE1BX0RTVF9BRERSX0VSUikpIHsNCisJCQlk aWZmX2NudCsrOw0KKwkJCWRhdGFfYmRfZXJyID0gMTsNCisJCX0NCisJCVpYREhfUE1EX0xPRyhJ TkZPLCAicXVldWUlZCBpcyBlcnIoMHgleCkgbmV4dF9iZF9pZHg6JXUgbGxfYWRkcjoweCUiUFJJ eDY0IiBkZWYgdXNlcjoweCV4IiwNCisJCQkJCXF1ZXVlX2lkLCB2YWwsIGJkX2lkeCwgbmV4dF9i ZF9hZGRyLCBxdWV1ZS0+dXNlcik7DQorCQl6eGRoX2dkbWFfZGVidWdfaW5mb19kdW1wKGRldiwg cXVldWVfaWQpOw0KKw0KKwkJWlhESF9QTURfTE9HKElORk8sICJDbGVhbiB1cCBlcnJvciBzdGF0 dXMiKTsNCisJCXZhbCA9IFpYREhfR0RNQV9FUlJfU1RBVFVTIHwgWlhESF9HRE1BX0VSUl9JTlRS X0VOQUJMRTsNCisJCXp4ZGhfZ2RtYV93cml0ZV9yZWcoZGV2LCBxdWV1ZV9pZCwgWlhESF9HRE1B X1RDX0NOVF9PRkZTRVQsIHZhbCk7DQorDQorCQlaWERIX1BNRF9MT0coSU5GTywgIlJlc3RhcnQg Y2hhbm5lbCIpOw0KKwkJenhkaF9nZG1hX3dyaXRlX3JlZyhkZXYsIHF1ZXVlX2lkLCBaWERIX0dE TUFfWEZFUlNJWkVfT0ZGU0VULCAwKTsNCisJCXp4ZGhfZ2RtYV9jb250cm9sX2NhbCgmdmFsLCAw KTsNCisJCXp4ZGhfZ2RtYV93cml0ZV9yZWcoZGV2LCBxdWV1ZV9pZCwgWlhESF9HRE1BX0NPTlRS T0xfT0ZGU0VULCB2YWwpOw0KKwl9DQorDQorCWlmIChkaWZmX2NudCAhPSAwKSB7DQorCQl6eGRo X2dkbWFfdXNlZF9pZHhfdXBkYXRlKHF1ZXVlLCBkaWZmX2NudCwgZGF0YV9iZF9lcnIpOw0KKwkJ cXVldWUtPnN3X3JpbmcuZGVxX2NudCArPSBkaWZmX2NudDsNCisJCXF1ZXVlLT5zd19yaW5nLnBl bmRfY250IC09IGRpZmZfY250Ow0KKwl9DQorDQorZGVxX2pvYjoNCisJaWYgKHF1ZXVlLT5zd19y aW5nLmRlcV9jbnQgPT0gMCkNCisJCXJldHVybiAwOw0KKwllbHNlIGlmIChxdWV1ZS0+c3dfcmlu Zy5kZXFfY250IDwgY291bnQpDQorCQljb3VudCA9IHF1ZXVlLT5zd19yaW5nLmRlcV9jbnQ7DQor DQorCXF1ZXVlLT5zd19yaW5nLmRlcV9jbnQgLT0gY291bnQ7DQorDQorCWZvciAoaSA9IDA7IGkg PCBjb3VudDsgaSsrKSB7DQorCQllX2NvbnRleHQtPmpvYltpXSA9IHF1ZXVlLT5zd19yaW5nLmpv YltxdWV1ZS0+c3dfcmluZy5kZXFfaWR4XTsNCisJCXF1ZXVlLT5zd19yaW5nLmpvYltxdWV1ZS0+ c3dfcmluZy5kZXFfaWR4XSA9IE5VTEw7DQorCQlpZiAoKytxdWV1ZS0+c3dfcmluZy5kZXFfaWR4 ID49IHF1ZXVlLT5xdWV1ZV9zaXplKQ0KKwkJCXF1ZXVlLT5zd19yaW5nLmRlcV9pZHggLT0gcXVl dWUtPnF1ZXVlX3NpemU7DQorCX0NCisJcXVldWUtPnN3X3JpbmcuZnJlZV9jbnQgKz0gY291bnQ7 DQorDQorCXJldHVybiBjb3VudDsNCit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBydGVfcmF3 ZGV2X29wcyB6eGRoX2dkbWFfcmF3ZGV2X29wcyA9IHsNCisJLmRldl9pbmZvX2dldCA9IHp4ZGhf Z2RtYV9yYXdkZXZfaW5mb19nZXQsDQorCS5kZXZfY29uZmlndXJlID0genhkaF9nZG1hX3Jhd2Rl dl9jb25maWd1cmUsDQorCS5kZXZfc3RhcnQgPSB6eGRoX2dkbWFfcmF3ZGV2X3N0YXJ0LA0KKwku ZGV2X3N0b3AgPSB6eGRoX2dkbWFfcmF3ZGV2X3N0b3AsDQorCS5kZXZfY2xvc2UgPSB6eGRoX2dk bWFfcmF3ZGV2X2Nsb3NlLA0KKwkuZGV2X3Jlc2V0ID0genhkaF9nZG1hX3Jhd2Rldl9yZXNldCwN CisNCisJLnF1ZXVlX3NldHVwID0genhkaF9nZG1hX3Jhd2Rldl9xdWV1ZV9zZXR1cCwNCisJLnF1 ZXVlX3JlbGVhc2UgPSB6eGRoX2dkbWFfcmF3ZGV2X3F1ZXVlX3JlbGVhc2UsDQorDQorCS5hdHRy X2dldCA9IHp4ZGhfZ2RtYV9yYXdkZXZfZ2V0X2F0dHIsDQorDQorCS5lbnF1ZXVlX2J1ZnMgPSB6 eGRoX2dkbWFfcmF3ZGV2X2VucXVldWVfYnVmcywNCisJLmRlcXVldWVfYnVmcyA9IHp4ZGhfZ2Rt YV9yYXdkZXZfZGVxdWV1ZV9idWZzLA0KK307DQorDQorc3RhdGljIGludA0KK3p4ZGhfZ2RtYV9x dWV1ZV9pbml0KHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkKQ0KK3sN CisJY2hhciBuYW1lW1JURV9SQVdERVZfTkFNRV9NQVhfTEVOXTsNCisJc3RydWN0IHp4ZGhfZ2Rt YV9xdWV1ZSAqcXVldWUgPSBOVUxMOw0KKwljb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKm16ID0g TlVMTDsNCisJdWludCBzaXplID0gMDsNCisJdWludCB2YWwgPSAwOw0KKwlpbnQgcmV0ID0gMDsN CisNCisJcXVldWUgPSB6eGRoX2dkbWFfZ2V0X3F1ZXVlKGRldiwgcXVldWVfaWQpOw0KKwlpZiAo cXVldWUgPT0gTlVMTCkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlxdWV1ZS0+ZW5hYmxlID0g MTsNCisJcXVldWUtPnZxX2lkICA9IHF1ZXVlX2lkOw0KKwlxdWV1ZS0+ZmxhZyAgID0gMDsNCisJ cXVldWUtPnRjX2NudCA9IDA7DQorDQorCS8qIEluaXQgc3dfcmluZyAqLw0KKwltZW1zZXQobmFt ZSwgMCwgc2l6ZW9mKG5hbWUpKTsNCisJc25wcmludGYobmFtZSwgUlRFX1JBV0RFVl9OQU1FX01B WF9MRU4sICJnZG1hX3ZxJWRfc3dfcmluZyIsIHF1ZXVlX2lkKTsNCisJc2l6ZSA9IHF1ZXVlLT5x dWV1ZV9zaXplICogc2l6ZW9mKHN0cnVjdCB6eGRoX2dkbWFfam9iICopOw0KKwlxdWV1ZS0+c3df cmluZy5qb2IgPSBydGVfem1hbGxvYyhuYW1lLCBzaXplLCAwKTsNCisJaWYgKHF1ZXVlLT5zd19y aW5nLmpvYiA9PSBOVUxMKSB7DQorCQlaWERIX1BNRF9MT0coRVJSLCAiY2FuIG5vdCBhbGxvY2F0 ZSBzd19yaW5nICVzIiwgbmFtZSk7DQorCQlyZXQgPSAtRU5PTUVNOw0KKwkJZ290byBmcmVlX3F1 ZXVlOw0KKwl9DQorDQorCS8qIENhY2hlIHVwIHRvIHNpemUtMSBqb2IgaW4gdGhlIHJpbmcgdG8g cHJldmVudCBvdmVyd3JpdGluZyBoYXJkd2FyZSBwcmVmZXRjaGluZyAqLw0KKwlxdWV1ZS0+c3df cmluZy5mcmVlX2NudCA9IHF1ZXVlLT5xdWV1ZV9zaXplIC0gMTsNCisJcXVldWUtPnN3X3Jpbmcu ZGVxX2NudCAgPSAwOw0KKwlxdWV1ZS0+c3dfcmluZy5wZW5kX2NudCA9IDA7DQorCXF1ZXVlLT5z d19yaW5nLmVucV9pZHggID0gMDsNCisJcXVldWUtPnN3X3JpbmcuZGVxX2lkeCAgPSAwOw0KKwlx dWV1ZS0+c3dfcmluZy51c2VkX2lkeCA9IDA7DQorDQorCS8qIEluaXQgcmluZyAqLw0KKwltZW1z ZXQobmFtZSwgMCwgc2l6ZW9mKG5hbWUpKTsNCisJc25wcmludGYobmFtZSwgUlRFX1JBV0RFVl9O QU1FX01BWF9MRU4sICJnZG1hX3ZxJWRfcmluZyIsIHF1ZXVlX2lkKTsNCisJc2l6ZSA9IFpYREhf R0RNQV9SSU5HX1NJWkUgKiBzaXplb2Yoc3RydWN0IHp4ZGhfZ2RtYV9idWZmX2Rlc2MpOw0KKwlt eiA9IHJ0ZV9tZW16b25lX3Jlc2VydmVfYWxpZ25lZChuYW1lLCBzaXplLCBydGVfc29ja2V0X2lk KCksDQorCQkJCQkJCVJURV9NRU1aT05FX0lPVkFfQ09OVElHLCBzaXplKTsNCisJaWYgKG16ID09 IE5VTEwpIHsNCisJCWlmIChydGVfZXJybm8gPT0gRUVYSVNUKQ0KKwkJCW16ID0gcnRlX21lbXpv bmVfbG9va3VwKG5hbWUpOw0KKwkJaWYgKG16ID09IE5VTEwpIHsNCisJCQlaWERIX1BNRF9MT0co RVJSLCAiY2FuIG5vdCBhbGxvY2F0ZSByaW5nICVzIiwgbmFtZSk7DQorCQkJcmV0ID0gLUVOT01F TTsNCisJCQlnb3RvIGZyZWVfcXVldWU7DQorCQl9DQorCX0NCisJbWVtc2V0KG16LT5hZGRyLCAw LCBzaXplKTsNCisJcXVldWUtPnJpbmcucmluZ19teiAgID0gbXo7DQorCXF1ZXVlLT5yaW5nLmRl c2MgICAgICA9IChzdHJ1Y3QgenhkaF9nZG1hX2J1ZmZfZGVzYyAqKShtei0+YWRkcik7DQorCXF1 ZXVlLT5yaW5nLnJpbmdfbWVtICA9IG16LT5pb3ZhOw0KKwlxdWV1ZS0+cmluZy5hdmFpbF9pZHgg PSAwOw0KKwlaWERIX1BNRF9MT0coSU5GTywgInF1ZXVlJXUgcmluZyBwaHkgYWRkcjoweCUiUFJJ eDY0IiB2aXJ0IGFkZHI6JXAiLA0KKwkJCQkJCXF1ZXVlX2lkLCBtei0+aW92YSwgbXotPmFkZHIp Ow0KKw0KKwkvKiBjbGVhbiBnZG1hIGNoYW5uZWwgKi8NCisJdmFsID0gWlhESF9HRE1BX0NIQU5f Rk9SQ0VfQ0xPU0U7DQorCXp4ZGhfZ2RtYV93cml0ZV9yZWcoZGV2LCBxdWV1ZV9pZCwgWlhESF9H RE1BX0NPTlRST0xfT0ZGU0VULCB2YWwpOw0KKw0KKwl2YWwgPSBaWERIX0dETUFfRVJSX0lOVFJf RU5BQkxFIHwgWlhESF9HRE1BX0VSUl9TVEFUVVMgfCBaWERIX0dETUFfVENfQ05UX0NMRUFOOw0K Kwl6eGRoX2dkbWFfd3JpdGVfcmVnKGRldiwgcXVldWVfaWQsIFpYREhfR0RNQV9UQ19DTlRfT0ZG U0VULCB2YWwpOw0KKw0KKwl2YWwgPSBaWERIX0dETUFfWkZfVVNFUjsNCisJenhkaF9nZG1hX3dy aXRlX3JlZyhkZXYsIHF1ZXVlX2lkLCBaWERIX0dETUFfTExJX1VTRVJfT0ZGU0VULCB2YWwpOw0K Kw0KKwlyZXR1cm4gMDsNCisNCitmcmVlX3F1ZXVlOg0KKwl6eGRoX2dkbWFfcXVldWVfZnJlZShk ZXYsIHF1ZXVlX2lkKTsNCisJcmV0dXJuIHJldDsNCit9DQorDQorc3RhdGljIGludA0KK3p4ZGhf Z2RtYV9xdWV1ZV9mcmVlKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lk KQ0KK3sNCisJc3RydWN0IHp4ZGhfZ2RtYV9yYXdkZXYgKmdkbWFkZXYgPSBOVUxMOw0KKwlzdHJ1 Y3QgenhkaF9nZG1hX3F1ZXVlICpxdWV1ZSA9IE5VTEw7DQorCXVpbnQgdmFsID0gMDsNCisNCisJ cXVldWUgPSB6eGRoX2dkbWFfZ2V0X3F1ZXVlKGRldiwgcXVldWVfaWQpOw0KKwlpZiAocXVldWUg PT0gTlVMTCkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlnZG1hZGV2ID0genhkaF9nZG1hX3Jh d2Rldl9nZXRfcHJpdihkZXYpOw0KKwlnZG1hZGV2LT51c2VkX251bS0tOw0KKw0KKwkvKiBkaXNh YmxlIGdkbWEgY2hhbm5lbCAqLw0KKwl2YWwgPSBaWERIX0dETUFfQ0hBTl9GT1JDRV9DTE9TRTsN CisJenhkaF9nZG1hX3dyaXRlX3JlZyhkZXYsIHF1ZXVlX2lkLCBaWERIX0dETUFfQ09OVFJPTF9P RkZTRVQsIHZhbCk7DQorDQorCXF1ZXVlLT5lbmFibGUgICAgICAgICAgID0gMDsNCisJcXVldWUt PmlzX3R4cSAgICAgICAgICAgPSAwOw0KKwlxdWV1ZS0+ZmxhZyAgICAgICAgICAgICA9IDA7DQor CXF1ZXVlLT51c2VyICAgICAgICAgICAgID0gMDsNCisJcXVldWUtPnRjX2NudCAgICAgICAgICAg PSAwOw0KKwlxdWV1ZS0+cmluZy5hdmFpbF9pZHggICA9IDA7DQorCXF1ZXVlLT5zd19yaW5nLmZy ZWVfY250ID0gMDsNCisJcXVldWUtPnN3X3JpbmcuZGVxX2NudCAgPSAwOw0KKwlxdWV1ZS0+c3df cmluZy5wZW5kX2NudCA9IDA7DQorCXF1ZXVlLT5zd19yaW5nLmVucV9pZHggID0gMDsNCisJcXVl dWUtPnN3X3JpbmcuZGVxX2lkeCAgPSAwOw0KKwlxdWV1ZS0+c3dfcmluZy51c2VkX2lkeCA9IDA7 DQorDQorCWlmIChxdWV1ZS0+c3dfcmluZy5qb2IgIT0gTlVMTCkNCisJCXJ0ZV9mcmVlKHF1ZXVl LT5zd19yaW5nLmpvYik7DQorDQorCWlmIChxdWV1ZS0+cmluZy5yaW5nX216ICE9IE5VTEwpDQor CQlydGVfbWVtem9uZV9mcmVlKHF1ZXVlLT5yaW5nLnJpbmdfbXopOw0KKw0KKwlyZXR1cm4gMDsN Cit9DQorDQorc3RhdGljIGludA0KK3p4ZGhfZ2RtYV9yYXdkZXZfcHJvYmUoc3RydWN0IHJ0ZV92 ZGV2X2RldmljZSAqdmRldikNCit7DQorCXN0cnVjdCBydGVfcmF3ZGV2ICpkZXYgPSBOVUxMOw0K KwlzdHJ1Y3QgenhkaF9nZG1hX3Jhd2RldiAqZ2RtYWRldiA9IE5VTEw7DQorCXN0cnVjdCB6eGRo X2dkbWFfcXVldWUgKnF1ZXVlID0gTlVMTDsNCisJdWludDhfdCBpID0gMDsNCisNCisJaWYgKHp4 ZGhfZ2RtYV9wY2lfc2NhbigpICE9IDApIHsNCisJCVpYREhfUE1EX0xPRyhFUlIsICJGYWlsZWQg dG8gc2NhbiBnZG1hIHBjaSBkZXZpY2UhIik7DQorCQlyZXR1cm4gLTE7DQorCX0NCisNCisJaWYg KChnZGV2LmJhcl9wYVswXSkgPT0gMCkgew0KKwkJWlhESF9QTURfTE9HKEVSUiwgIkVtcHR5IGJh cnMgMHglIlBSSXg2NCwNCisJCQkJCQkJKHVpbnQ2NF90KWdkZXYuYmFyX3BhWzBdKTsNCisJCXp4 ZGhfZ2RtYV9wY2lfZGV2X211bm1hcCgpOw0KKwkJcmV0dXJuIC1FTk9ERVY7DQorCX0NCisJWlhE SF9QTURfTE9HKElORk8sICIlMDR4OiUwMng6JTAyeC4lMDF4IEJhcjAgUGh5QWRkcjogMHglIlBS SXg2NCwNCisJCQkJCWdkZXYuZG9tYWluLCBnZGV2LmJ1cywgZ2Rldi5kZXZpZCwgZ2Rldi5mdW5j dGlvbiwNCisJCQkJCSh1aW50NjRfdClnZGV2LmJhcl9wYVswXSk7DQorDQorCWRldiA9IHJ0ZV9y YXdkZXZfcG1kX2FsbG9jYXRlKGRldl9uYW1lLCBzaXplb2Yoc3RydWN0IHp4ZGhfZ2RtYV9yYXdk ZXYpLCBydGVfc29ja2V0X2lkKCkpOw0KKwlpZiAoZGV2ID09IE5VTEwpIHsNCisJCVpYREhfUE1E X0xPRyhFUlIsICJVbmFibGUgdG8gYWxsb2NhdGUgZ2RtYSByYXdkZXYiKTsNCisJCXp4ZGhfZ2Rt YV9wY2lfZGV2X211bm1hcCgpOw0KKwkJcmV0dXJuIC0xOw0KKwl9DQorCVpYREhfUE1EX0xPRyhJ TkZPLCAiSW5pdCAlcyBvbiBOVU1BIG5vZGUgJWQsIGRldl9pZCBpcyAlZCIsDQorCQkJCQkJZGV2 X25hbWUsIHJ0ZV9zb2NrZXRfaWQoKSwgZGV2LT5kZXZfaWQpOw0KKw0KKwlkZXYtPmRldl9vcHMg PSAmenhkaF9nZG1hX3Jhd2Rldl9vcHM7DQorCWRldi0+ZGV2aWNlID0gJnZkZXYtPmRldmljZTsN CisJZGV2LT5kcml2ZXJfbmFtZSA9IHp4ZGhfZ2RtYV9kcml2ZXJfbmFtZTsNCisJZ2RtYWRldiA9 IHp4ZGhfZ2RtYV9yYXdkZXZfZ2V0X3ByaXYoZGV2KTsNCisJZ2RtYWRldi0+ZGV2aWNlX3N0YXRl ID0gWlhESF9HRE1BX0RFVl9TVE9QUEVEOw0KKwlnZG1hZGV2LT5yYXdkZXYgPSBkZXY7DQorCWdk bWFkZXYtPnF1ZXVlX251bSA9IFpYREhfR0RNQV9UT1RBTF9DSEFOX05VTTsNCisJZ2RtYWRldi0+ dXNlZF9udW0gPSAwOw0KKwlnZG1hZGV2LT5iYXNlX2FkZHIgPSAodWludHB0cl90KWdkZXYuYmFy X3ZhWzBdICsgWlhESF9HRE1BX0JBU0VfT0ZGU0VUOw0KKw0KKwlmb3IgKGkgPSAwOyBpIDwgWlhE SF9HRE1BX1RPVEFMX0NIQU5fTlVNOyBpKyspIHsNCisJCXF1ZXVlID0gJihnZG1hZGV2LT52cXNb aV0pOw0KKwkJcXVldWUtPmVuYWJsZSA9IDA7DQorCQlxdWV1ZS0+cXVldWVfc2l6ZSA9IFpYREhf R0RNQV9RVUVVRV9TSVpFOw0KKwkJcnRlX3NwaW5sb2NrX2luaXQoJihxdWV1ZS0+ZW5xdWV1ZV9s b2NrKSk7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCit6eGRoX2dk bWFfcmF3ZGV2X3JlbW92ZShfX3J0ZV91bnVzZWQgc3RydWN0IHJ0ZV92ZGV2X2RldmljZSAqdmRl dikNCit7DQorCXN0cnVjdCBydGVfcmF3ZGV2ICpkZXYgPSBOVUxMOw0KKwlpbnQgcmV0ID0gMDsN CisNCisJZGV2ID0gcnRlX3Jhd2Rldl9wbWRfZ2V0X25hbWVkX2RldihkZXZfbmFtZSk7DQorCWlm IChkZXYgPT0gTlVMTCkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwkvKiBydGVfcmF3ZGV2X2Ns b3NlIGlzIGNhbGxlZCBieSBwbWRfcmVsZWFzZSAqLw0KKwlyZXQgPSBydGVfcmF3ZGV2X3BtZF9y ZWxlYXNlKGRldik7DQorCWlmIChyZXQgIT0gMCkgew0KKwkJWlhESF9QTURfTE9HKEVSUiwgIkRl dmljZSBjbGVhbnVwIGZhaWxlZCIpOw0KKwkJcmV0dXJuIC0xOw0KKwl9DQorCVpYREhfUE1EX0xP RyhERUJVRywgInJhd2RldiAlcyByZW1vdmUgZG9uZSEiLCBkZXZfbmFtZSk7DQorDQorCXJldHVy biByZXQ7DQorfQ0KKw0KK3N0YXRpYyBzdHJ1Y3QgcnRlX3ZkZXZfZHJpdmVyIHp4ZGhfZ2RtYV9w bWRfZHJ2ID0gew0KKwkucHJvYmUgPSB6eGRoX2dkbWFfcmF3ZGV2X3Byb2JlLA0KKwkucmVtb3Zl ID0genhkaF9nZG1hX3Jhd2Rldl9yZW1vdmUNCit9Ow0KKw0KK1JURV9QTURfUkVHSVNURVJfVkRF VihyYXdkZXZfenhkaF9nZG1hLCB6eGRoX2dkbWFfcG1kX2Rydik7DQorUlRFX0xPR19SRUdJU1RF Ul9ERUZBVUxUKHp4ZGhfZ2RtYV9wbWRfbG9ndHlwZSwgTk9USUNFKTsNCmRpZmYgLS1naXQgYS9k cml2ZXJzL3Jhdy96eGRoL3p4ZGhfcmF3ZGV2LmggYi9kcml2ZXJzL3Jhdy96eGRoL3p4ZGhfcmF3 ZGV2LmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi44ZjI2YjRmMDFh DQotLS0gL2Rldi9udWxsDQorKysgYi9kcml2ZXJzL3Jhdy96eGRoL3p4ZGhfcmF3ZGV2LmgNCkBA IC0wLDAgKzEsMTY1IEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVz ZQ0KKyAqIENvcHlyaWdodCAyMDI0IFpURSBDb3Jwb3JhdGlvbg0KKyAqLw0KKw0KKyNpZm5kZWYg X19aWERIX1JBV0RFVl9IX18NCisjZGVmaW5lIF9fWlhESF9SQVdERVZfSF9fDQorDQorI2lmZGVm IF9fY3BsdXNwbHVzDQorZXh0ZXJuICJDIiB7DQorI2VuZGlmDQorDQorI2luY2x1ZGUgPHJ0ZV9y YXdkZXYuaD4NCisjaW5jbHVkZSA8cnRlX3NwaW5sb2NrLmg+DQorDQorZXh0ZXJuIGludCB6eGRo X2dkbWFfcG1kX2xvZ3R5cGU7DQorDQorI2RlZmluZSBaWERIX1BNRF9MT0cobGV2ZWwsIGZtdCwg YXJncy4uLikgXA0KKwlydGVfbG9nKFJURV9MT0dfICMjIGxldmVsLCB6eGRoX2dkbWFfcG1kX2xv Z3R5cGUsICIlcygpOiAiIGZtdCAiXG4iLCBfX2Z1bmNfXywgIyNhcmdzKQ0KKw0KKyNkZWZpbmUg WlhESF9HRE1BX1ZFTkRPUklEICAgICAgICAgICAgICAgICAgICAgIDB4MWNmMg0KKyNkZWZpbmUg WlhESF9HRE1BX0RFVklDRUlEICAgICAgICAgICAgICAgICAgICAgIDB4ODA0NA0KKw0KKyNkZWZp bmUgWlhESF9HRE1BX1RPVEFMX0NIQU5fTlVNICAgICAgICAgICAgICAgIDU4DQorI2RlZmluZSBa WERIX0dETUFfUVVFVUVfU0laRSAgICAgICAgICAgICAgICAgICAgMTYzODQgLyogPj0gNjUqNjQq MyAqLw0KKyNkZWZpbmUgWlhESF9HRE1BX1JJTkdfU0laRSAgICAgICAgICAgICAgICAgICAgIDMy NzY4DQorDQorLyogU3RhdGVzIGlmIHRoZSBzb3VyY2UgYWRkcmVzc2VzIGlzIHBoeXNpY2FsLiAq Lw0KKyNkZWZpbmUgWlhESF9HRE1BX0pPQl9TUkNfUEhZICAgICAgICAgICAgICAgICAgICgxVUwp DQorDQorLyogU3RhdGVzIGlmIHRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzZXMgaXMgcGh5c2ljYWwu ICovDQorI2RlZmluZSBaWERIX0dETUFfSk9CX0RFU1RfUEhZICAgICAgICAgICAgICAgICAgKDFV TCA8PCAxKQ0KKw0KKy8qIFpGLT5IT1NUICovDQorI2RlZmluZSBaWERIX0dETUFfSk9CX0RJUl9U WCAgICAgICAgICAgICAgICAgICAgKDFVTCA8PCAyKQ0KKw0KKy8qIEhPU1QtPlpGICovDQorI2Rl ZmluZSBaWERIX0dETUFfSk9CX0RJUl9SWCAgICAgICAgICAgICAgICAgICAgKDFVTCA8PCAzKQ0K Kw0KKyNkZWZpbmUgWlhESF9HRE1BX0pPQl9ESVJfTUFTSyAgICAgICAgICAgICAgICAgIChaWERI X0dETUFfSk9CX0RJUl9UWCB8IFpYREhfR0RNQV9KT0JfRElSX1JYKQ0KKw0KK2VudW0genhkaF9n ZG1hX2RldmljZV9zdGF0ZSB7DQorCVpYREhfR0RNQV9ERVZfUlVOTklORywNCisJWlhESF9HRE1B X0RFVl9TVE9QUEVEDQorfTsNCisNCitzdHJ1Y3QgenhkaF9nZG1hX2J1ZmZfZGVzYyB7DQorCXVp bnQgU3JjQWRkcl9MOw0KKwl1aW50IERzdEFkZHJfTDsNCisJdWludCBYcGFyYTsNCisJdWludCBa WV9wYXJhOw0KKwl1aW50IFpZX1NyY1N0ZXA7DQorCXVpbnQgWllfRHN0U3RlcDsNCisJdWludCBF eHRBZGRyOw0KKwl1aW50IExMSV9BZGRyX0w7DQorCXVpbnQgTExJX0FkZHJfSDsNCisJdWludCBD aENvbnQ7DQorCXVpbnQgTExJX1VzZXI7DQorCXVpbnQgRXJyQWRkcjsNCisJdWludCBDb250cm9s Ow0KKwl1aW50IFNyY0FkZHJfSDsNCisJdWludCBEc3RBZGRyX0g7DQorCXVpbnQgUmVzZXJ2ZWQ7 DQorfTsNCisNCitzdHJ1Y3QgenhkaF9nZG1hX3F1ZXVlIHsNCisJdWludDhfdCAgIGVuYWJsZTsN CisJdWludDhfdCAgIGlzX3R4cTsNCisJdWludDE2X3QgIHZxX2lkOw0KKwl1aW50MTZfdCAgcXVl dWVfc2l6ZTsNCisJLyogMDpHRE1BIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCB0aGUg QVBCIGludGVyZmFjZSAqLw0KKwl1aW50MTZfdCAgZmxhZzsNCisJdWludCAgICAgIHVzZXI7DQor CXVpbnQxNl90ICB0Y19jbnQ7DQorCXJ0ZV9zcGlubG9ja190IGVucXVldWVfbG9jazsNCisJc3Ry dWN0IHsNCisJCXVpbnQxNl90IGF2YWlsX2lkeDsNCisJCXVpbnQxNl90IGxhc3RfYXZhaWxfaWR4 Ow0KKwkJcnRlX2lvdmFfdCByaW5nX21lbTsNCisJCWNvbnN0IHN0cnVjdCBydGVfbWVtem9uZSAq cmluZ19tejsNCisJCXN0cnVjdCB6eGRoX2dkbWFfYnVmZl9kZXNjICpkZXNjOw0KKwl9IHJpbmc7 DQorCXN0cnVjdCB7DQorCQl1aW50MTZfdCAgZnJlZV9jbnQ7DQorCQl1aW50MTZfdCAgZGVxX2Nu dDsNCisJCXVpbnQxNl90ICBwZW5kX2NudDsNCisJCXVpbnQxNl90ICBlbnFfaWR4Ow0KKwkJdWlu dDE2X3QgIGRlcV9pZHg7DQorCQl1aW50MTZfdCAgdXNlZF9pZHg7DQorCQlzdHJ1Y3QgenhkaF9n ZG1hX2pvYiAqKmpvYjsNCisJfSBzd19yaW5nOw0KK307DQorDQorc3RydWN0IHp4ZGhfZ2RtYV9y YXdkZXYgew0KKwlzdHJ1Y3QgcnRlX2RldmljZSAqZGV2aWNlOw0KKwlzdHJ1Y3QgcnRlX3Jhd2Rl diAqcmF3ZGV2Ow0KKwl1aW50cHRyX3QgYmFzZV9hZGRyOw0KKwl1aW50OF90IHF1ZXVlX251bTsg LyogdG90YWwgcXVldWUgbnVtICovDQorCXVpbnQ4X3QgdXNlZF9udW07ICAvKiB1c2VkICBxdWV1 ZSBudW0gKi8NCisJZW51bSB6eGRoX2dkbWFfZGV2aWNlX3N0YXRlIGRldmljZV9zdGF0ZTsNCisJ c3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZSB2cXNbWlhESF9HRE1BX1RPVEFMX0NIQU5fTlVNXTsNCit9 Ow0KKw0KK3N0cnVjdCB6eGRoX2dkbWFfam9iIHsNCisJdWludDY0X3Qgc3JjOw0KKwl1aW50NjRf dCBkZXN0Ow0KKwl1aW50IGxlbjsNCisJdWludCBmbGFnczsNCisJdWludDY0X3QgY254dDsNCisJ dWludDE2X3Qgc3RhdHVzOw0KKwl1aW50MTZfdCB2cV9pZDsNCisJdm9pZCAqdXNyX2VsZW07DQor CXVpbnQ4X3QgZXBfaWQ7DQorCXVpbnQ4X3QgcGZfaWQ7DQorCXVpbnQxNl90IHZmX2lkOw0KK307 DQorDQorc3RydWN0IHp4ZGhfZ2RtYV9lbnFkZXEgew0KKwl1aW50MTZfdCB2cV9pZDsNCisJc3Ry dWN0IHp4ZGhfZ2RtYV9qb2IgKipqb2I7DQorfTsNCisNCitzdHJ1Y3QgenhkaF9nZG1hX2NvbmZp ZyB7DQorCXVpbnQxNl90IG1heF9od19xdWV1ZXNfcGVyX2NvcmU7DQorCXVpbnQxNl90IG1heF92 cXM7DQorCWludCBmbGVfcXVldWVfcG9vbF9jbnQ7DQorfTsNCisNCitzdHJ1Y3QgenhkaF9nZG1h X3JicCB7DQorCXVpbnQgdXNlX3VsdHJhc2hvcnQ6MTsNCisJdWludCBlbmFibGU6MTsNCisJdWlu dCBkcG9ydGlkOjM7DQorCXVpbnQgZHBmaWQ6MzsNCisJdWludCBkdmZpZDo4OyAvKnVzaW5nIHJv dXRlIGJ5IHBvcnQgZm9yIGRlc3RpbmF0aW9uICovDQorCXVpbnQgZHJicDoxOw0KKwl1aW50IHNw b3J0aWQ6MzsNCisJdWludCBzcGZpZDozOw0KKwl1aW50IHN2ZmlkOjg7DQorCXVpbnQgc3JicDox Ow0KK307DQorDQorc3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZV9jb25maWcgew0KKwl1aW50IGxjb3Jl X2lkOw0KKwl1aW50IGZsYWdzOw0KKwlzdHJ1Y3QgenhkaF9nZG1hX3JicCAqcmJwOw0KK307DQor DQorc3RydWN0IHp4ZGhfZ2RtYV9hdHRyIHsNCisJdWludDE2X3QgbnVtX2h3X3F1ZXVlczsNCit9 Ow0KKw0KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHp4ZGhfZ2RtYV9yYXdkZXYgKg0KK3p4ZGhfZ2Rt YV9yYXdkZXZfZ2V0X3ByaXYoY29uc3Qgc3RydWN0IHJ0ZV9yYXdkZXYgKnJhd2RldikNCit7DQor CXJldHVybiByYXdkZXYtPmRldl9wcml2YXRlOw0KK30NCisNCit1aW50IHp4ZGhfZ2RtYV9yZWFk X3JlZyhzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2LCB1aW50MTZfdCBxaWR4LCB1aW50IG9mZnNldCk7 DQordm9pZCB6eGRoX2dkbWFfd3JpdGVfcmVnKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQx Nl90IHFpZHgsIHVpbnQgb2Zmc2V0LCB1aW50IHZhbCk7DQoraW50IHp4ZGhfZ2RtYV9kZWJ1Z19p bmZvX2R1bXAoc3RydWN0IHJ0ZV9yYXdkZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWQpOw0KKw0K KyNpZmRlZiBfX2NwbHVzcGx1cw0KK30NCisjZW5kaWYNCisNCisjZW5kaWYgLyogX19aWERIX1JB V0RFVl9IX18gKi8NCi0tIA0KMi40My4w --=====_003_next===== Content-Type: text/html ; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBjbGFzcz0iemNvbnRlbnRSb3ciPjxwPkZyb20gN2RhOTBjYWE4OTJhYmMwYWIyN2ZjMTFl ODkyZjY2MTZmNGJjOGM5YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDE8L3A+PHA+RnJvbTogWW9u ZyBaaGFuZyAmbHQ7emhhbmcueW9uZzI1QHp0ZS5jb20uY24mZ3Q7PC9wPjxwPkRhdGU6IFdlZCwg MTIgSnVuIDIwMjQgMTc6MzU6MzQgKzA4MDA8L3A+PHA+U3ViamVjdDogW1BBVENIXSByYXcvenhk aDogaW50cm9kdWNlIHp4ZGggcmF3IGRldmljZSBkcml2ZXI8L3A+PHA+PGJyPjwvcD48cD5JbnRy b2R1Y2UgcmF3ZGV2IGRyaXZlciBzdXBwb3J0IGZvciBaWERIIHdoaWNoPC9wPjxwPmNhbiBoZWxw IHRvIGNvbm5lY3QgdHdvIHNlcGFyYXRlIGhvc3RzIHdpdGggZWFjaCBvdGhlci48L3A+PHA+PGJy PjwvcD48cD5TaWduZWQtb2ZmLWJ5OiBZb25nIFpoYW5nICZsdDt6aGFuZy55b25nMjVAenRlLmNv bS5jbiZndDs8L3A+PHA+LS0tPC9wPjxwPiZuYnNwO01BSU5UQUlORVJTJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHwm bmJzcDsgJm5ic3A7NSArPC9wPjxwPiZuYnNwO2RvYy9ndWlkZXMvcmF3ZGV2cy9pbmRleC5yc3Qm bmJzcDsgJm5ic3A7fCZuYnNwOyAmbmJzcDsxICs8L3A+PHA+Jm5ic3A7ZG9jL2d1aWRlcy9yYXdk ZXZzL3p4ZGgucnN0Jm5ic3A7ICZuYnNwOyB8Jm5ic3A7IDI4ICs8L3A+PHA+Jm5ic3A7ZHJpdmVy cy9yYXcvbWVzb24uYnVpbGQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfCZuYnNwOyAmbmJz cDsxICs8L3A+PHA+Jm5ic3A7ZHJpdmVycy9yYXcvenhkaC9tZXNvbi5idWlsZCZuYnNwOyAmbmJz cDt8Jm5ic3A7ICZuYnNwOzUgKzwvcD48cD4mbmJzcDtkcml2ZXJzL3Jhdy96eGRoL3p4ZGhfcGNp LmMmbmJzcDsgJm5ic3A7IHwgNTY0ICsrKysrKysrKysrKysrKysrKysrPC9wPjxwPiZuYnNwO2Ry aXZlcnMvcmF3L3p4ZGgvenhkaF9wY2kuaCZuYnNwOyAmbmJzcDsgfCZuYnNwOyA0MCArKzwvcD48 cD4mbmJzcDtkcml2ZXJzL3Jhdy96eGRoL3p4ZGhfcmF3ZGV2LmMgfCA5MTEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrPC9wPjxwPiZuYnNwO2RyaXZlcnMvcmF3L3p4ZGgvenhkaF9y YXdkZXYuaCB8IDE2NSArKysrKys8L3A+PHA+Jm5ic3A7OSBmaWxlcyBjaGFuZ2VkLCAxNzIwIGlu c2VydGlvbnMoKyk8L3A+PHA+Jm5ic3A7Y3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9ndWlkZXMvcmF3 ZGV2cy96eGRoLnJzdDwvcD48cD4mbmJzcDtjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9yYXcv enhkaC9tZXNvbi5idWlsZDwvcD48cD4mbmJzcDtjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9y YXcvenhkaC96eGRoX3BjaS5jPC9wPjxwPiZuYnNwO2NyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L3Jhdy96eGRoL3p4ZGhfcGNpLmg8L3A+PHA+Jm5ic3A7Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvcmF3L3p4ZGgvenhkaF9yYXdkZXYuYzwvcD48cD4mbmJzcDtjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9yYXcvenhkaC96eGRoX3Jhd2Rldi5oPC9wPjxwPjxicj48L3A+PHA+ZGlmZiAtLWdp dCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlM8L3A+PHA+aW5kZXggYzlhZGZmOTg0Ni4uNGZj ZjEzN2MxMCAxMDA2NDQ8L3A+PHA+LS0tIGEvTUFJTlRBSU5FUlM8L3A+PHA+KysrIGIvTUFJTlRB SU5FUlM8L3A+PHA+QEAgLTE0NzgsNiArMTQ3OCwxMSBAQCBNOiBHYWdhbmRlZXAgU2luZ2ggJmx0 O2cuc2luZ2hAbnhwLmNvbSZndDs8L3A+PHA+Jm5ic3A7RjogZHJpdmVycy9yYXcvZHBhYTJfY21k aWYvPC9wPjxwPiZuYnNwO0Y6IGRvYy9ndWlkZXMvcmF3ZGV2cy9kcGFhMl9jbWRpZi5yc3Q8L3A+ PHA+Jm5ic3A7PC9wPjxwPitaWERIPC9wPjxwPitNOiBZb25nIFpoYW5nICZsdDt6aGFuZy55b25n MjVAenRlLmNvbS5jbiZndDs8L3A+PHA+K0Y6IGRyaXZlcnMvcmF3L3p4ZGgvPC9wPjxwPitGOiBk b2MvZ3VpZGVzL3Jhd2RldnMvenhkaC5yc3Q8L3A+PHA+KzwvcD48cD4mbmJzcDs8L3A+PHA+Jm5i c3A7UGFja2V0IHByb2Nlc3Npbmc8L3A+PHA+Jm5ic3A7LS0tLS0tLS0tLS0tLS0tLS08L3A+PHA+ ZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcmF3ZGV2cy9pbmRleC5yc3QgYi9kb2MvZ3VpZGVzL3Jh d2RldnMvaW5kZXgucnN0PC9wPjxwPmluZGV4IGYzNDMxNWYwNTEuLmQ4NWE0YjcxNDggMTAwNjQ0 PC9wPjxwPi0tLSBhL2RvYy9ndWlkZXMvcmF3ZGV2cy9pbmRleC5yc3Q8L3A+PHA+KysrIGIvZG9j L2d1aWRlcy9yYXdkZXZzL2luZGV4LnJzdDwvcD48cD5AQCAtMTYsMyArMTYsNCBAQCBhcHBsaWNh dGlvbiB0aHJvdWdoIHJhd2RldiBBUEkuPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ZHBhYTJf Y21kaWY8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDtpZnBnYTwvcD48cD4mbmJzcDsgJm5ic3A7 ICZuYnNwO250YjwvcD48cD4rJm5ic3A7ICZuYnNwOyB6eGRoPC9wPjxwPmRpZmYgLS1naXQgYS9k b2MvZ3VpZGVzL3Jhd2RldnMvenhkaC5yc3QgYi9kb2MvZ3VpZGVzL3Jhd2RldnMvenhkaC5yc3Q8 L3A+PHA+bmV3IGZpbGUgbW9kZSAxMDA2NDQ8L3A+PHA+aW5kZXggMDAwMDAwMDAwMC4uMTVhZDg1 MjYxZjwvcD48cD4tLS0gL2Rldi9udWxsPC9wPjxwPisrKyBiL2RvYy9ndWlkZXMvcmF3ZGV2cy96 eGRoLnJzdDwvcD48cD5AQCAtMCwwICsxLDI4IEBAPC9wPjxwPisuLiZuYnNwOyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlPC9wPjxwPismbmJzcDsgJm5ic3A7IENvcHlyaWdo dCAyMDI0IFpURSBDb3Jwb3JhdGlvbjwvcD48cD4rPC9wPjxwPitaWERIIFJhd2RldiBEcml2ZXI8 L3A+PHA+Kz09PT09PT09PT09PT09PT09PT09PT08L3A+PHA+KzwvcD48cD4rVGhlIGBgenhkaGBg IHJhd2RldiBkcml2ZXIgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIHJhd2RldiBBUEksPC9w PjxwPit0aGF0IHByb3ZpZGVzIGNvbW11bmljYXRpb24gYmV0d2VlbiB0d28gc2VwYXJhdGUgaG9z dHMuPC9wPjxwPitUaGlzIGlzIGFjaGlldmVkIHZpYSB1c2luZyB0aGUgR0RNQSBjb250cm9sbGVy IG9mIERpbmdoYWkgU29DLjwvcD48cD4rPC9wPjxwPis8L3A+PHA+K0luaXRpYWxpemF0aW9uPC9w PjxwPistLS0tLS0tLS0tLS0tLTwvcD48cD4rPC9wPjxwPitUaGUgWlhESCBpcyBleHBvc2VkIGFz IGEgdmRldiBkZXZpY2Ugd2hpY2ggY29uc2lzdHMgb2YgTVBGIGRldmljZXMuPC9wPjxwPitPbiBF QUwgaW5pdGlhbGl6YXRpb24sIHZkZXYgZGV2aWNlIGNhbiBiZSBjcmVhdGVkIGZyb20gdGhlIGFw cGxpY2F0aW9uIGNvZGUgYnk8L3A+PHA+KzwvcD48cD4rKiBJbnZva2luZyBgYHJ0ZV92ZGV2X2lu aXQoInJhd2Rldl96eGRoX2dkbWEiKWBgIGZyb20gdGhlIGFwcGxpY2F0aW9uPC9wPjxwPis8L3A+ PHA+KyogVXNpbmcgYGAtLXZkZXY9InJhd2Rldl96eGRoX2dkbWEiYGAgaW4gdGhlIEVBTCBvcHRp b25zLCB3aGljaCB3aWxsIGNhbGw8L3A+PHA+KyZuYnNwOyBydGVfdmRldl9pbml0KCkgaW50ZXJu YWxseTwvcD48cD4rPC9wPjxwPis8L3A+PHA+K1BsYXRmb3JtIFJlcXVpcmVtZW50PC9wPjxwPit+ fn5+fn5+fn5+fn5+fn5+fn5+fjwvcD48cD4rPC9wPjxwPitUaGlzIFBNRCBpcyBvbmx5IHN1cHBv cnRlZCBvbiBaVEUgTmVvIFBsYXRmb3Jtczo8L3A+PHA+Ky0gTmVvIFg1MTAvWDUxMjwvcD48cD5k aWZmIC0tZ2l0IGEvZHJpdmVycy9yYXcvbWVzb24uYnVpbGQgYi9kcml2ZXJzL3Jhdy9tZXNvbi5i dWlsZDwvcD48cD5pbmRleCAwNWNhZDE0M2ZlLi4yMzdkMWJkZDgwIDEwMDY0NDwvcD48cD4tLS0g YS9kcml2ZXJzL3Jhdy9tZXNvbi5idWlsZDwvcD48cD4rKysgYi9kcml2ZXJzL3Jhdy9tZXNvbi5i dWlsZDwvcD48cD5AQCAtMTIsNSArMTIsNiBAQCBkcml2ZXJzID0gWzwvcD48cD4mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7J2lmcGdhJyw8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOydudGInLDwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7J3NrZWxldG9uJyw8L3A+PHA+KyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAnenhk aCcsPC9wPjxwPiZuYnNwO108L3A+PHA+Jm5ic3A7c3RkX2RlcHMgPSBbJ3Jhd2RldiddPC9wPjxw PmRpZmYgLS1naXQgYS9kcml2ZXJzL3Jhdy96eGRoL21lc29uLmJ1aWxkIGIvZHJpdmVycy9yYXcv enhkaC9tZXNvbi5idWlsZDwvcD48cD5uZXcgZmlsZSBtb2RlIDEwMDY0NDwvcD48cD5pbmRleCAw MDAwMDAwMDAwLi42Y2Q5NTIxMzg3PC9wPjxwPi0tLSAvZGV2L251bGw8L3A+PHA+KysrIGIvZHJp dmVycy9yYXcvenhkaC9tZXNvbi5idWlsZDwvcD48cD5AQCAtMCwwICsxLDUgQEA8L3A+PHA+KyNT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlPC9wPjxwPisjQ29weXJpZ2h0IDIw MjQgWlRFIENvcnBvcmF0aW9uPC9wPjxwPis8L3A+PHA+K2RlcHMgKz0gWydyYXdkZXYnLCAna3Zh cmdzJywgJ21idWYnLCAnYnVzX3ZkZXYnXTwvcD48cD4rc291cmNlcyA9IGZpbGVzKCd6eGRoX3Jh d2Rldi5jJywgJ3p4ZGhfcGNpLmMnKTwvcD48cD5kaWZmIC0tZ2l0IGEvZHJpdmVycy9yYXcvenhk aC96eGRoX3BjaS5jIGIvZHJpdmVycy9yYXcvenhkaC96eGRoX3BjaS5jPC9wPjxwPm5ldyBmaWxl IG1vZGUgMTAwNjQ0PC9wPjxwPmluZGV4IDAwMDAwMDAwMDAuLjRkZWJkZGIwZDI8L3A+PHA+LS0t IC9kZXYvbnVsbDwvcD48cD4rKysgYi9kcml2ZXJzL3Jhdy96eGRoL3p4ZGhfcGNpLmM8L3A+PHA+ QEAgLTAsMCArMSw1NjQgQEA8L3A+PHA+Ky8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt My1DbGF1c2U8L3A+PHA+KyAqIENvcHlyaWdodCAyMDI0IFpURSBDb3Jwb3JhdGlvbjwvcD48cD4r ICovPC9wPjxwPis8L3A+PHA+KyNpbmNsdWRlICZsdDtzdGRpby5oJmd0OzwvcD48cD4rI2luY2x1 ZGUgJmx0O3N0ZGxpYi5oJmd0OzwvcD48cD4rI2luY2x1ZGUgJmx0O3N0cmluZy5oJmd0OzwvcD48 cD4rI2luY2x1ZGUgJmx0O2dldG9wdC5oJmd0OzwvcD48cD4rI2luY2x1ZGUgJmx0O3N5cy9tbWFu LmgmZ3Q7PC9wPjxwPisjaW5jbHVkZSAmbHQ7ZmNudGwuaCZndDs8L3A+PHA+KyNpbmNsdWRlICZs dDtlcnJuby5oJmd0OzwvcD48cD4rI2luY2x1ZGUgJmx0O2RpcmVudC5oJmd0OzwvcD48cD4rI2lu Y2x1ZGUgJmx0O3VuaXN0ZC5oJmd0OzwvcD48cD4rPC9wPjxwPisjaW5jbHVkZSAienhkaF9yYXdk ZXYuaCI8L3A+PHA+KyNpbmNsdWRlICJ6eGRoX3BjaS5oIjwvcD48cD4rPC9wPjxwPisjZGVmaW5l IFBDSV9ERVZJQ0VTX0RJUiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgIi9zeXMv YnVzL3BjaS9kZXZpY2VzIjwvcD48cD4rPC9wPjxwPisjZGVmaW5lIEJBUjBfSURYJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsoMCk8 L3A+PHA+KyNkZWZpbmUgQkFSMl9JRFgmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOygyKTwvcD48cD4rPC9wPjxwPisjZGVmaW5lIElP UkVTT1VSQ0VfTUVNJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsoMHgw MDAwMDIwMCk8L3A+PHA+KyNkZWZpbmUgUENJX1JFU09VUkNFX0ZNVF9OVkFMJm5ic3A7ICZuYnNw OyAoMyk8L3A+PHA+KyNkZWZpbmUgUENJX0ZNVF9OVkFMJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KDQpPC9wPjxwPisjZGVmaW5lIEZJTEVfRk1UX05WQUwm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoMik8L3A+PHA+KzwvcD48 cD4rI2RlZmluZSBTVFJfQlVGRl9MRU4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsoMTI4KTwvcD48cD4rPC9wPjxwPisjZGVmaW5lIEJZVEVTX05PX1NXQVAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoMCk8L3A+PHA+KyNkZWZp bmUgQllURVNfU1dBUCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsoMSk8L3A+PHA+KzwvcD48cD4rI2RlZmluZSBQQ0lfQ01EX09GRlNFVCZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KDB4MDQpPC9wPjxwPisjZGVmaW5l IFBDSV9DTURfQllURVMmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAo Mik8L3A+PHA+KyNkZWZpbmUgUENJX0NNRF9NU0VfQklUJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAoMSk8L3A+PHA+KyNkZWZpbmUgRlBHQV9WRVJfT0ZGU0VUJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoMHg0MjApPC9wPjxwPisjZGVmaW5lIEZQR0FfVkVSX0JZ VEVTJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsoNCk8L3A+PHA+KyNk ZWZpbmUgQk9NX0lEX09GRlNFVCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICgweDQyNCk8L3A+PHA+KyNkZWZpbmUgQk9NX0lEX0JZVEVTJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KDEpPC9wPjxwPisjZGVmaW5lIEZQR0FfUFJf RkxBR19PRkZTRVQmbmJzcDsgJm5ic3A7ICZuYnNwOyAoMHg0MjUpPC9wPjxwPisjZGVmaW5lIEZQ R0FfUFJfRkxBR19CWVRFUyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOygxKTwvcD48cD4rI2Rl ZmluZSBCT0FSRF9JRF9PRkZTRVQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICgw eDQyNik8L3A+PHA+KyNkZWZpbmUgQk9BUkRfSURfQllURVMmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOygyKTwvcD48cD4rI2RlZmluZSBGUEdBX01BS0VfVElNRV9PRkZT RVQmbmJzcDsgJm5ic3A7ICgweDQyOCk8L3A+PHA+KyNkZWZpbmUgRlBHQV9NQUtFX1RJTUVfQllU RVMmbmJzcDsgJm5ic3A7ICZuYnNwOyg0KTwvcD48cD4rPC9wPjxwPisjZGVmaW5lIFBBUkFfUFJf RkxBRyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOygwKTwv cD48cD4rI2RlZmluZSBQQVJBX0ZQR0FfVkVSJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgKDEpPC9wPjxwPisjZGVmaW5lIFBBUkFfRlBHQV9NQUtFX1RJTUUmbmJzcDsg Jm5ic3A7ICZuYnNwOyAoMik8L3A+PHA+KyNkZWZpbmUgUEFSQV9CT0FSRF9JRCZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICgzKTwvcD48cD4rI2RlZmluZSBQQVJBX0JP TV9JRCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoNCk8 L3A+PHA+KyNkZWZpbmUgUEFSQV9QQ0lfQ01EJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7KDUpPC9wPjxwPis8L3A+PHA+KyNkZWZpbmUgUENJX1JFQUQmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OygwKTwvcD48cD4rI2RlZmluZSBQQ0lfV1JJVEUmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICgxKTwvcD48cD4rPC9wPjxwPitzdHJ1Y3Qgenhk aF9wY2lfZGV2IGdkZXY7PC9wPjxwPis8L3A+PHA+K3N0YXRpYyBpbnQ8L3A+PHA+K3p4ZGhfZ2Rt YV9yd19wY2lfY29uZmlnKHN0cnVjdCB6eGRoX3BjaV9kZXYgKmRldiwgdWludDhfdCBydywgdWlu dCBvZmZzZXQsIHVpbnQgY291bnQsIHVpbnQ4X3QgKmJ1Zik8L3A+PHA+K3s8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aW50IGZkID0gLTE7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQgcmVzID0gMDs8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aW50IHJldCA9IC0xOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5jaGFyIGZpbGVuYW1lW0ZJTEVf UEFUSF9MRU5dID0gezB9OzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPnNucHJpbnRmKGZpbGVuYW1lLCBzaXplb2YoZmlsZW5hbWUpLCAiL3Byb2Mv YnVzL3BjaS8lMDJ4LyUwMnguJWQiLDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQkJPC9zcGFuPmRldi0mZ3Q7YnVzLCBkZXYtJmd0O2RldmlkLCBkZXYtJmd0O2Z1bmN0aW9u KTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ZmQgPSBvcGVu KGZpbGVuYW1lLCBPX1JEV1IpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj5pZiAoZmQgJmx0OyAwKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JCTwvc3Bhbj5zbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIi9wcm9j L2J1cy9wY2kvJTA0eDolMDJ4LyUwMnguJWQiLDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQkJCTwvc3Bhbj5kZXYtJmd0O2RvbWFpbiwgZGV2LSZndDtidXMsIGRldi0mZ3Q7 ZGV2aWQsIGRldi0mZ3Q7ZnVuY3Rpb24pOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQk8L3NwYW4+ZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1JEV1IpOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+aWYgKGZkICZsdDsgMCkgezwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPlpYREhfUE1EX0xPRyhFUlIs ICJGYWlsZWQgdG8gb3BlbiBmaWxlOiVzLCBmZDolZCEiLCBmaWxlbmFtZSwgZmQpOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPnJldHVybiAtMTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPn08L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnJlcyA9IGxzZWVrKGZkLCBvZmZzZXQsIFNFRUtf U0VUKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKHJl cyAhPSBvZmZzZXQpIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9z cGFuPmNsb3NlKGZkKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9z cGFuPlpYREhfUE1EX0xPRyhFUlIsICJGYWlsZWQgdG8gbHNlZWsgcGNpLCByZXM6JWQhIiwgcmVz KTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnJldHVybiAt MTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4r PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChydyA9PSBQ Q0lfUkVBRCk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnJl dCA9IHJlYWQoZmQsIGJ1ZiwgY291bnQpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj5lbHNlPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj5yZXQgPSB3cml0ZShmZCwgYnVmLCBjb3VudCk7PC9wPjxwPis8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKHJldCAmbHQ7IDApIHs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmNsb3NlKGZkKTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpYREhfUE1EX0xPRyhFUlIs ICJGYWlsZWQgdG8gcncgcGNpOiVkLCByZXQ6JWQhIiwgcncsIHJldCk7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gLTE7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5jbG9zZShmZCk7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnJldHVybiAwOzwvcD48cD4rfTwvcD48cD4rPC9w PjxwPitzdGF0aWMgaW50PC9wPjxwPit6eGRoX2dkbWFfY2ZnX3NwYWNlX3JlYWQoc3RydWN0IHp4 ZGhfcGNpX2RldiAqZGV2LCB1aW50OF90IFBhcmFUeXBlLCB1aW50ICpwUGFyYVZlcik8L3A+PHA+ K3s8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aW50IHJldCA9 IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQ4X3Qg YVJlZ1ZhbFtzaXplb2YodWludCldID0gezB9OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj51aW50OF90IHVjTG9vcCA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQ4X3QgdWNTd2FwID0gQllURVNfTk9fU1dBUDs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCBkd1JlZ09m ZnNldCA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVp bnQgZHdSZWdMZW4gPSAwOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPmlmICgoZGV2ID09IE5VTEwpIHx8IChwUGFyYVZlciA9PSBOVUxMKSkgezwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+WlhESF9QTURfTE9H KEVSUiwgIlBhcmFtIGlzIGludmFsaWQhIik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gLUVJTlZBTDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPnN3aXRjaCAoUGFyYVR5cGUpIHs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Y2FzZSBQQVJBX1BSX0ZMQUc6PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5kd1JlZ09mZnNldCA9IEZQR0FfUFJf RkxBR19PRkZTRVQ7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bh bj5kd1JlZ0xlbiZuYnNwOyAmbmJzcDsgPSBGUEdBX1BSX0ZMQUdfQllURVM7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj51Y1N3YXAmbmJzcDsgJm5ic3A7ICZu YnNwOyA9IEJZVEVTX05PX1NXQVA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCTwvc3Bhbj5icmVhazs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+Y2FzZSBQQVJBX0ZQR0FfVkVSOjwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQk8L3NwYW4+ZHdSZWdPZmZzZXQgPSBGUEdBX1ZFUl9PRkZTRVQ7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5kd1JlZ0xlbiZuYnNwOyAmbmJzcDsg PSBGUEdBX1ZFUl9CWVRFUzs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ PC9zcGFuPnVjU3dhcCZuYnNwOyAmbmJzcDsgJm5ic3A7ID0gQllURVNfTk9fU1dBUDs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmJyZWFrOzwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5jYXNlIFBBUkFfRlBHQV9NQUtFX1RJ TUU6PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5kd1JlZ09m ZnNldCA9IEZQR0FfTUFLRV9USU1FX09GRlNFVDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJPC9zcGFuPmR3UmVnTGVuJm5ic3A7ICZuYnNwOyA9IEZQR0FfTUFLRV9USU1F X0JZVEVTOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+dWNT d2FwJm5ic3A7ICZuYnNwOyAmbmJzcDsgPSBCWVRFU19OT19TV0FQOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+YnJlYWs7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmNhc2UgUEFSQV9CT0FSRF9JRDo8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmR3UmVnT2Zmc2V0ID0gQk9BUkRfSURf T0ZGU0VUOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ZHdS ZWdMZW4mbmJzcDsgJm5ic3A7ID0gQk9BUkRfSURfQllURVM7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj51Y1N3YXAmbmJzcDsgJm5ic3A7ICZuYnNwOyA9IEJZ VEVTX05PX1NXQVA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bh bj5icmVhazs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Y2Fz ZSBQQVJBX0JPTV9JRDo8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9z cGFuPmR3UmVnT2Zmc2V0ID0gQk9NX0lEX09GRlNFVDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmR3UmVnTGVuJm5ic3A7ICZuYnNwOyA9IEJPTV9JRF9CWVRF Uzs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnVjU3dhcCZu YnNwOyAmbmJzcDsgJm5ic3A7ID0gQllURVNfTk9fU1dBUDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmJyZWFrOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj5jYXNlIFBBUkFfUENJX0NNRDo8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmR3UmVnT2Zmc2V0ID0gUENJX0NNRF9PRkZTRVQ7 PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5kd1JlZ0xlbiZu YnNwOyAmbmJzcDsgPSBQQ0lfQ01EX0JZVEVTOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+dWNTd2FwJm5ic3A7ICZuYnNwOyAmbmJzcDsgPSBCWVRFU19TV0FQ OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+YnJlYWs7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmRlZmF1bHQ6PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJS LCAiUGFyYVR5cGUgJXUgbm90IHN1cHBvcnQhIiwgUGFyYVR5cGUpOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAoZHdSZWdMZW4gJmd0OyBzaXplb2Yo dWludCkpIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpY REhfUE1EX0xPRyhFUlIsICJkd1JlZ0xlbiAldSBpcyBpbnZhbGlkIiwgZHdSZWdMZW4pOzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC0xOzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+KnBQYXJhVmVyID0gMDs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0ID0genhkaF9nZG1h X3J3X3BjaV9jb25maWcoZGV2LCBQQ0lfUkVBRCwgZHdSZWdPZmZzZXQsIGR3UmVnTGVuLCBhUmVn VmFsKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKHJl dCAhPSAwKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5a WERIX1BNRF9MT0coRVJSLCAiUGFyYVR5cGUgJXUsIHp4ZGhfZ2RtYV9yd19wY2lfY29uZmlnIGZh aWxlZCEiLCBQYXJhVHlwZSk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj5yZXR1cm4gcmV0OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+aWYgKHVjU3dhcCA9PSBCWVRFU19TV0FQKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5mb3IgKHVjTG9vcCA9IDA7IHVjTG9vcCAmbHQ7IGR3UmVn TGVuOyB1Y0xvb3ArKyk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwv c3Bhbj4qcFBhcmFWZXIgPSAoKnBQYXJhVmVyICZsdDsmbHQ7IDgpIHwgYVJlZ1ZhbFtkd1JlZ0xl bi0xLXVjTG9vcF07PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFu Pn0gZWxzZSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5m b3IgKHVjTG9vcCA9IDA7IHVjTG9vcCAmbHQ7IGR3UmVnTGVuOyB1Y0xvb3ArKyk8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj4qcFBhcmFWZXIgPSAoKnBQYXJh VmVyICZsdDsmbHQ7IDgpIHwgYVJlZ1ZhbFt1Y0xvb3BdOzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0dXJuIHJldDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4r c3RhdGljIGludDwvcD48cD4renhkaF9nZG1hX2NmZ19zcGFjZV93cml0ZShzdHJ1Y3QgenhkaF9w Y2lfZGV2ICpkZXYsIHVpbnQ4X3QgUGFyYVR5cGUsIHVpbnQgKnBQYXJhVmVyKTwvcD48cD4rezwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pbnQgcmV0ID0gMDs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludDhfdCBhUmVn VmFsW3NpemVvZih1aW50KV0gPSB7MH07PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPnVpbnQ4X3QgdWNMb29wID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludDhfdCB1Y1N3YXAgPSBCWVRFU19OT19TV0FQOzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50IGR3UmVnT2Zmc2V0 ID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCBk d1JlZ0xlbiA9IDA7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi Pgk8L3NwYW4+aWYgKChkZXYgPT0gTlVMTCkgfHwgKHBQYXJhVmVyID09IE5VTEwpKSB7PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJS LCAiUGFyYW0gaXMgaW52YWxpZCIpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj5pZiAoUGFyYVR5cGUgIT0gUEFSQV9QQ0lfQ01EKSB7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJSLCAiUGFy YVR5cGUgJXUgbm90IHN1cHBvcnQhIiwgUGFyYVR5cGUpOzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5kd1JlZ09mZnNldCA9IFBDSV9DTURfT0ZGU0VUOzwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5kd1JlZ0xlbiA9IFBD SV9DTURfQllURVM7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFu PnVjU3dhcCA9IEJZVEVTX1NXQVA7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgk8L3NwYW4+aWYgKGR3UmVnTGVuICZndDsgc2l6ZW9mKHVpbnQpKSB7PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJS LCAiZHdSZWdMZW4gJXUgaXMgaW52YWxpZCIsIGR3UmVnTGVuKTs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnJldHVybiAtMTs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmICh1Y1N3YXAgPT0gQllURVNfU1dBUCkgezwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+Zm9yICh1Y0xvb3AgPSAw OyB1Y0xvb3AgJmx0OyBkd1JlZ0xlbjsgdWNMb29wKyspPC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+YVJlZ1ZhbFt1Y0xvb3BdID0gKCpwUGFyYVZlciAmZ3Q7 Jmd0OyA4KnVjTG9vcCkgJmFtcDsgMHhmZjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+fSBlbHNlIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgkJPC9zcGFuPmZvciAodWNMb29wID0gMDsgdWNMb29wICZsdDsgZHdSZWdMZW47IHVjTG9v cCsrKTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmFSZWdW YWxbdWNMb29wXSA9ICgqcFBhcmFWZXIgJmd0OyZndDsgOCooZHdSZWdMZW4tMS11Y0xvb3ApKSAm YW1wOyAweGZmOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59 PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0 ID0genhkaF9nZG1hX3J3X3BjaV9jb25maWcoZGV2LCBQQ0lfV1JJVEUsIGR3UmVnT2Zmc2V0LCBk d1JlZ0xlbiwgYVJlZ1ZhbCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPmlmIChyZXQgIT0gMCkgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgIlBhcmFUeXBlICV1LCB6eGRoX2dkbWFfcndf cGNpX2NvbmZpZyBmYWlsZWQhIiwgUGFyYVR5cGUpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIHJldDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPnJldHVybiByZXQ7PC9wPjxwPit9PC9wPjxwPis8L3A+PHA+K3N0 YXRpYyBpbnQ8L3A+PHA+K3p4ZGhfZ2RtYV9zdHJfc3BsaXQoY2hhciAqc3RyaW5nLCBpbnQgc3Ry aW5nbGVuLCBjaGFyICoqdG9rZW5zLCBpbnQgbWF4dG9rZW5zLCBjaGFyIGRlbGltKTwvcD48cD4r ezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pbnQgbG9vcCA9 IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmludCB0b2sg PSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pbnQgdG9r c3RhcnQgPSAxOyAvKiBmaXJzdCB0b2tlbiBpcyByaWdodCBhdCBzdGFydCBvZiBzdHJpbmcgKi88 L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAo c3RyaW5nID09IE5VTEwgfHwgdG9rZW5zID09IE5VTEwpIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpYREhfUE1EX0xPRyhFUlIsICJQYXJhbSBpcyBpbnZh bGlkISIpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0 dXJuIC0xOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9w PjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Zm9yIChs b29wID0gMDsgbG9vcCAmbHQ7IHN0cmluZ2xlbjsgbG9vcCsrKSB7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5pZiAoc3RyaW5nW2xvb3BdID09ICdcMCcgfHwg dG9rICZndDs9IG1heHRva2Vucyk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJCTwvc3Bhbj5icmVhazs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQk8L3NwYW4+aWYgKHRva3N0YXJ0KSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCQk8L3NwYW4+dG9rc3RhcnQgPSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPnRva2Vuc1t0b2srK10gPSAmYW1wO3N0cmluZ1tsb29w XTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPn08L3A+PHA+ KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+aWYgKHN0cmlu Z1tsb29wXSA9PSBkZWxpbSkgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CQkJPC9zcGFuPnN0cmluZ1tsb29wXSA9ICdcMCc7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCQk8L3NwYW4+dG9rc3RhcnQgPSAxOzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+cmV0dXJuIHRvazs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4rc3RhdGljIGlu dDwvcD48cD4renhkaF9nZG1hX2RldmZzX3BhcnNlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCB1bnNp Z25lZCBsb25nICp2YWwpPC9wPjxwPit7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPkZJTEUgKmYgPSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5jaGFyICplbmQgPSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5jaGFyIGJ1ZltTVFJfQlVGRl9MRU5dID0gezB9OzwvcD48 cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmYgPSBmb3Bl bihmaWxlbmFtZSwgInIiKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+aWYgKGYgPT0gTlVMTCkgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgIkNhbm5vdCBvcGVuIHN5c2ZzICVzIiwgZmls ZW5hbWUpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0 dXJuIC0xOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9w PjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGZn ZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGYpID09IE5VTEwpIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpYREhfUE1EX0xPRyhFUlIsICJDYW5ub3QgcmVhZCBz eXNmcyB2YWx1ZSAlcyIsIGZpbGVuYW1lKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJPC9zcGFuPmZjbG9zZShmKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJPC9zcGFuPnJldHVybiAtMTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPip2YWwgPSBzdHJ0b3VsKGJ1ZiwgJmFtcDtlbmQsIDApOzwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAoKGJ1ZlswXSA9PSAnXDAnKSB8 fCAoZW5kID09IE5VTEwpIHx8ICgqZW5kICE9ICdcbicpKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJSLCAiQ2Fubm90IHBhcnNl IHN5c2ZzIHZhbHVlICVzIiwgZmlsZW5hbWUpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+ZmNsb3NlKGYpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC0xOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+ZmNsb3NlKGYpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj5yZXR1cm4gMDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4rc3RhdGljIGlu dDwvcD48cD4renhkaF9nZG1hX3Jlc2ZzX3BhcnNlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1 Y3QgenhkaF9wY2lfZGV2ICpkZXYpPC9wPjxwPit7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPkZJTEUgKmZwID0gTlVMTDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Y2hhciBidWZbU1RSX0JVRkZfTEVOXSA9IHswfTs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludDhfdCZuYnNwOyBs b29wID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWlu dDY0X3QgcGh5c19hZGRyID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi Pgk8L3NwYW4+dWludDY0X3QgZW5kX2FkZHIgPSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj51aW50NjRfdCBmbGFncyA9IDA7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmludCByZXQgPSAwOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51bmlvbiBwY2lfcmVzb3VyY2VfaW5mbyB7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5zdHJ1Y3QgezwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmNoYXIgKnBoeXNfYWRk cjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5jaGFyICpl bmRfYWRkcjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5j aGFyICpmbGFnczs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu Pn07PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5jaGFyICpw dHJzW1BDSV9SRVNPVVJDRV9GTVRfTlZBTF07PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPn0gcmVzX2luZm87PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ZnAgPSBmb3BlbihmaWxlbmFtZSwgInIiKTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGZwID09IE5VTEwpIHs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpYREhfUE1EX0xP RyhFUlIsICJGYWlsZWQgdG8gb3BlbiBmaWxlICVzIiwgZmlsZW5hbWUpOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC0xOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Zm9yIChsb29wID0gMDsgbG9vcCAmbHQ7IFBD SV9NQVhfUkVTT1VSQ0U7IGxvb3ArKykgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQk8L3NwYW4+aWYgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZwKSA9PSBOVUxMKSB7 PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+WlhESF9QTURf TE9HKEVSUiwgIkZhaWxlZCB0byBnZXRzIGZpbGUgJXMiLCBmaWxlbmFtZSk7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+Z290byBlcnJfZXhpdDs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPn08L3A+PHA+KzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0ID0genhkaF9nZG1hX3N0 cl9zcGxpdChidWYsIHNpemVvZihidWYpLCByZXNfaW5mby5wdHJzLDwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJCQkJPC9zcGFuPlBDSV9SRVNPVVJDRV9GTVRfTlZB TCwgJyAnKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmlm IChyZXQgIT0gUENJX1JFU09VUkNFX0ZNVF9OVkFMKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgImZpbGUgJXM6enhkaF9n ZG1hX3N0cl9zcGxpdCBmYWlsZWQhIiwgZmlsZW5hbWUpOzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmdvdG8gZXJyX2V4aXQ7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj59PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCTwvc3Bhbj5lcnJubyA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCTwvc3Bhbj5waHlzX2FkZHIgPSBzdHJ0b3VsbChyZXNfaW5mby5waHlzX2Fk ZHIsIE5VTEwsIDE2KTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9z cGFuPmVuZF9hZGRyJm5ic3A7ID0gc3RydG91bGwocmVzX2luZm8uZW5kX2FkZHIsIE5VTEwsIDE2 KTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmZsYWdzJm5i c3A7ICZuYnNwOyAmbmJzcDs9IHN0cnRvdWxsKHJlc19pbmZvLmZsYWdzLCBOVUxMLCAxNik7PC9w PjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmlmIChl cnJubyAhPSAwKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3Nw YW4+WlhESF9QTURfTE9HKEVSUiwgImZpbGUgJXM6YmFkIHJlc291cmNlIGZvcm1hdCEiLCBmaWxl bmFtZSk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+Z290 byBlcnJfZXhpdDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu Pn08L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ aWYgKGZsYWdzICZhbXA7IElPUkVTT1VSQ0VfTUVNKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+aWYgKGxvb3AgPT0gQkFSMF9JRFgpIHs8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+ZGV2LSZndDtiYXJfcGFbQkFS MF9JRFhdID0gcGh5c19hZGRyOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CQkJCTwvc3Bhbj5kZXYtJmd0O2Jhcl9sZW5bQkFSMF9JRFhdID0gZW5kX2FkZHIgLSBwaHlzX2Fk ZHIgKyAxOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPn08 L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmlm IChsb29wID09IEJBUjJfSURYKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCQkJPC9zcGFuPmRldi0mZ3Q7YmFyX3BhW0JBUjJfSURYXSA9IHBoeXNfYWRkcjs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+ZGV2LSZndDtiYXJfbGVu W0JBUjJfSURYXSA9IGVuZF9hZGRyIC0gcGh5c19hZGRyICsgMTs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+ZmNsb3NlKGZwKTs8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+cmV0dXJuIDA7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgImZpbGUgJXM6IE5vdCBmb3VuZCBJTyByZXNv dXJjZSBtZW1vcnkhIiwgZmlsZW5hbWUpOzwvcD48cD4rPC9wPjxwPitlcnJfZXhpdDo8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ZmNsb3NlKGZwKTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0dXJuIC0xOzwvcD48cD4r fTwvcD48cD4rPC9wPjxwPitzdGF0aWMgaW50PC9wPjxwPit6eGRoX2dkbWFfcGNpX2FkZHJfcGFy c2UoY29uc3QgY2hhciAqYnVmLCBpbnQgYnVmX3NpemUsIHN0cnVjdCB6eGRoX3BjaV9kZXYgKmRl dik8L3A+PHA+K3s8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ Y2hhciAqYnVmX2NvcHkgPSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj5pbnQgcmV0ID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+dW5pb24gc3BsaXRhZGRyIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJPC9zcGFuPnN0cnVjdCB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCQk8L3NwYW4+Y2hhciAqZG9tYWluOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQkJPC9zcGFuPmNoYXIgKmJ1czs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5jaGFyICpkZXZpZDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5jaGFyICpmdW5jdGlvbjs8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPn07PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5jaGFyICpzdHJbUENJX0ZNVF9OVkFMXTs8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fSBzcGxpdGFkZHI7PC9wPjxwPis8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+YnVmX2NvcHkgPSBz dHJuZHVwKGJ1ZiwgYnVmX3NpemUpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj5pZiAoYnVmX2NvcHkgPT0gTlVMTCkgezwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgImJ1ZiAlczogc3RybmR1 cCBmYWlsZWQhIiwgYnVmKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ PC9zcGFuPnJldHVybiAtMTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+fTwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9z cGFuPi8qIGZpcnN0IHNwbGl0IG9uICc6JyAqLzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5yZXQgPSB6eGRoX2dkbWFfc3RyX3NwbGl0KGJ1Zl9jb3B5LCBidWZf c2l6ZSwgc3BsaXRhZGRyLnN0ciwgUENJX0ZNVF9OVkFMLCAnOicpOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAocmV0ICE9IChQQ0lfRk1UX05WQUwgLSAx KSkgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+WlhESF9Q TURfTE9HKEVSUiwgImJ1ZiAlczogenhkaF9nZG1hX3N0cl9zcGxpdCBmYWlsZWQhIiwgYnVmKTs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmdvdG8gZXJyX2V4 aXQ7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+ KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4vKiBmaW5hbCBz cGxpdCBpcyBvbiAnLicgYmV0d2VlbiBkZXZpZCBhbmQgZnVuY3Rpb24gKi88L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3BsaXRhZGRyLmZ1bmN0aW9uID0gc3Ry Y2hyKHNwbGl0YWRkci5kZXZpZCwgJy4nKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+aWYgKHNwbGl0YWRkci5mdW5jdGlvbiA9PSBOVUxMKSB7PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJSLCAi YnVmICVzOiBzdHJjaHIgZmFpbGVkISIsIGJ1Zik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCTwvc3Bhbj5nb3RvIGVycl9leGl0OzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPipzcGxpdGFkZHIuZnVuY3Rpb24rKyA9ICdcMCc7PC9wPjxwPis8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Lyogbm93IGNvbnZlcnQgdG8g aW50IHZhbHVlcyAqLzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj5lcnJubyA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFu PmRldi0mZ3Q7ZG9tYWluID0gKHVpbnQxNl90KXN0cnRvdWwoc3BsaXRhZGRyLmRvbWFpbiwgTlVM TCwgMTYpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5kZXYt Jmd0O2J1cyA9ICh1aW50OF90KXN0cnRvdWwoc3BsaXRhZGRyLmJ1cywgTlVMTCwgMTYpOzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5kZXYtJmd0O2RldmlkID0g KHVpbnQ4X3Qpc3RydG91bChzcGxpdGFkZHIuZGV2aWQsIE5VTEwsIDE2KTs8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ZGV2LSZndDtmdW5jdGlvbiA9ICh1aW50 OF90KXN0cnRvdWwoc3BsaXRhZGRyLmZ1bmN0aW9uLCBOVUxMLCAxMCk7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChlcnJubyAhPSAwKSB7PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJSLCAi YnVmICVzOiBiYWQgZm9ybWF0ISIsIGJ1Zik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCTwvc3Bhbj5nb3RvIGVycl9leGl0OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPmZyZWUoYnVmX2NvcHkpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj5yZXR1cm4gMDs8L3A+PHA+KzwvcD48cD4rZXJyX2V4aXQ6PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmZyZWUoYnVmX2NvcHkpOzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5yZXR1cm4gLTE7PC9wPjxw Pit9PC9wPjxwPis8L3A+PHA+K3N0YXRpYyBpbnQ8L3A+PHA+K3p4ZGhfZ2RtYV9wY2lfZGV2X21t YXAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB6eGRoX3BjaV9kZXYgKmRldiwgdWludDhf dCBiYXJfaWR4KTwvcD48cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj5pbnQgZmQgPSAtMTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5pZiAoZGV2LSZndDtiYXJfdmFbYmFyX2lkeF0gPT0gTlVMTCkgezwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ZmQgPSBvcGVuKGZp bGVuYW1lLCBPX1JEV1IpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8 L3NwYW4+aWYgKGZkICZsdDsgMCkgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQkJPC9zcGFuPlpYREhfUE1EX0xPRyhFUlIsICJGYWlsZWQgdG8gb3BlbiBmaWxlICVzIiwg ZmlsZW5hbWUpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFu PnJldHVybiAtMTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu Pn08L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ ZGV2LSZndDtiYXJfdmFbYmFyX2lkeF0gPSBtbWFwKCh2b2lkICopZGV2LSZndDtiYXJfcGFbYmFy X2lkeF0sPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQkJCQk8L3Nw YW4+ZGV2LSZndDtiYXJfbGVuW2Jhcl9pZHhdLDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQkJCQkJCQkJPC9zcGFuPlBST1RfUkVBRCB8IFBST1RfV1JJVEUsPC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQkJCQk8L3NwYW4+TUFQX1NIQVJFRCwg ZmQsIDApOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwv c3Bhbj5pZiAoZGV2LSZndDtiYXJfdmFbYmFyX2lkeF0gPT0gTUFQX0ZBSUxFRCkgezwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPlpYREhfUE1EX0xPRyhFUlIs ICJGYWlsZWQgdG8gbW1hcCBmaWxlICVzISIsIGZpbGVuYW1lKTs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5nb3RvIGVycl9leGl0OzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+Y2xvc2UoZmQpOzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59IGVsc2U8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJPC9zcGFuPlpYREhfUE1EX0xPRyhFUlIsICJCYXJWaXJ0QWRkciBpcyBub3Qg TlVMTCEiKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj5yZXR1cm4gMDs8L3A+PHA+KzwvcD48cD4rZXJyX2V4aXQ6PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmNsb3NlKGZkKTs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0dXJuIC0xOzwvcD48cD4rfTwvcD48cD4rPC9w PjxwPit2b2lkPC9wPjxwPit6eGRoX2dkbWFfcGNpX2Rldl9tdW5tYXAodm9pZCk8L3A+PHA+K3s8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGdkZXYuYmFy X3ZhW0JBUjBfSURYXSAhPSBOVUxMKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JCTwvc3Bhbj5tdW5tYXAoZ2Rldi5iYXJfdmFbQkFSMF9JRFhdLCBnZGV2LmJhcl9sZW5b QkFSMF9JRFhdKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu PmdkZXYuYmFyX3ZhW0JBUjBfSURYXSA9IE5VTEw7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5pZiAoZ2Rldi5iYXJfdmFbQkFSMl9JRFhdICE9IE5VTEwpIHs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPm11bm1hcChnZGV2LmJh cl92YVtCQVIyX0lEWF0sIGdkZXYuYmFyX2xlbltCQVIyX0lEWF0pOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+Z2Rldi5iYXJfdmFbQkFSMl9JRFhdID0gTlVM TDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4r fTwvcD48cD4rPC9wPjxwPitzdGF0aWMgaW50PC9wPjxwPit6eGRoX2dkbWFfcGNpX21zZV9lbihz dHJ1Y3QgenhkaF9wY2lfZGV2ICpkZXYpPC9wPjxwPit7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPmludCByZXQgPSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50IFJlZ1ZhbCA9IDA7PC9wPjxwPis8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0ID0genhkaF9nZG1hX2NmZ19z cGFjZV9yZWFkKGRldiwgUEFSQV9QQ0lfQ01ELCAmYW1wO1JlZ1ZhbCk7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChyZXQgIT0gMCkgezwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgIkZh aWxlZCB0byByZWFkICUwNHg6JTAyeDolMDJ4LiUwMXggcGNpIGNvbmZpZyBzcGFjZSEiLDwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJPC9zcGFuPmRldi0mZ3Q7ZG9t YWluLCBkZXYtJmd0O2J1cywgZGV2LSZndDtkZXZpZCwgZGV2LSZndDtmdW5jdGlvbik7PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gcmV0OzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKChSZWdWYWwgJmFtcDsg KDEgJmx0OyZsdDsgUENJX0NNRF9NU0VfQklUKSkgPT0gMCkgezwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+UmVnVmFsID0gUmVnVmFsIHwgKDEgJmx0OyZsdDsg UENJX0NNRF9NU0VfQklUKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQk8L3NwYW4+cmV0ID0genhkaF9nZG1hX2NmZ19zcGFjZV93cml0ZShkZXYsIFBBUkFf UENJX0NNRCwgJmFtcDtSZWdWYWwpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+aWYgKHJldCAhPSAwKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCQk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgIkZhaWxlZCB0byB3cml0ZSAlMDR4 OiUwMng6JTAyeC4lMDF4IHBjaSBjb25maWcgc3BhY2UhIiw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJCQkJCQk8L3NwYW4+ZGV2LSZndDtkb21haW4sIGRldi0mZ3Q7YnVz LDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJCTwvc3Bhbj5kZXYt Jmd0O2RldmlkLCBkZXYtJmd0O2Z1bmN0aW9uKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJCTwvc3Bhbj5yZXR1cm4gcmV0OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQk8L3NwYW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi Pgk8L3NwYW4+cmV0dXJuIHJldDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4raW50PC9wPjxwPit6 eGRoX2dkbWFfcGNpX3NjYW4odm9pZCk8L3A+PHA+K3s8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IGRpcmVudCAqZSA9IE5VTEw7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPkRJUiAqZGlyID0gTlVMTDs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Y2hhciBkaXJuYW1lW0ZJTEVf UEFUSF9MRU5dID0gezB9OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj5jaGFyIGZpbGVuYW1lW0ZJTEVfUEFUSF9MRU5dID0gezB9OzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50MTZfdCB2ZW5kb3JfaWQgPSAwOzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50MTZfdCBkZXZpY2Vf aWQgPSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51bnNp Z25lZCBsb25nIHRtcCA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPmJvb2wgZm91bmQgPSBmYWxzZTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+aW50IHJldCA9IDA7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ZGlyID0gb3BlbmRpcihQQ0lfREVWSUNFU19ESVIpOzwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAoZGlyID09IE5V TEwpIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpYREhf UE1EX0xPRyhFUlIsICJGYWlsZWQgdG8gb3BlbmRpciAlcyIsIFBDSV9ERVZJQ0VTX0RJUik7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gLTE7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj53aGlsZSAoKGUgPSByZWFk ZGlyKGRpcikpICE9IE5VTEwpIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJPC9zcGFuPmlmIChlLSZndDtkX25hbWVbMF0gPT0gJy4nKTwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmNvbnRpbnVlOzwvcD48cD4rPC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5tZW1zZXQoZGlybmFtZSwgMCwgRklM RV9QQVRIX0xFTik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bh bj5zbnByaW50ZihkaXJuYW1lLCBGSUxFX1BBVEhfTEVOLCAiJXMvJXMiLCBQQ0lfREVWSUNFU19E SVIsIGUtJmd0O2RfbmFtZSk7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJPC9zcGFuPnNucHJpbnRmKGZpbGVuYW1lLCBzaXplb2YoZmlsZW5hbWUpLCAiJXMv dmVuZG9yIiwgZGlybmFtZSk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj5yZXQgPSB6eGRoX2dkbWFfZGV2ZnNfcGFyc2UoZmlsZW5hbWUsICZhbXA7dG1wKTs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmlmIChyZXQgIT0g MCk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5nb3RvIG91 dDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ dmVuZG9yX2lkID0gKHVpbnQxNl90KXRtcDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+c25wcmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFt ZSksICIlcy9kZXZpY2UiLCBkaXJuYW1lKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJPC9zcGFuPnJldCA9IHp4ZGhfZ2RtYV9kZXZmc19wYXJzZShmaWxlbmFtZSwgJmFt cDt0bXApOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+aWYg KHJldCAhPSAwKTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFu PmdvdG8gb3V0OzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj5kZXZpY2VfaWQgPSAodWludDE2X3QpdG1wOzwvcD48cD4rPC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5pZiAoKHZlbmRvcl9pZCA9PSBaWERIX0dE TUFfVkVORE9SSUQpICZhbXA7JmFtcDsgKGRldmljZV9pZCA9PSBaWERIX0dETUFfREVWSUNFSUQp KSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+Zm91bmQg PSB0cnVlOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmJy ZWFrOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+fTwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGZvdW5kICE9IHRydWUp IHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpYREhfUE1E X0xPRyhFUlIsICJGYWlsZWQgdG8gZm91bmQgZ2RtYSBwY2kgZGV2Iik7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXQgPSAtMTs8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmdvdG8gb3V0OzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Z2Rldi52ZW5kb3JfaWQgPSB2ZW5kb3JfaWQ7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmdkZXYuZGV2aWNlX2lk ID0gZGV2aWNlX2lkOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj5tZW1jcHkoZ2Rldi5kX25hbWUsIGUtJmd0O2RfbmFtZSwgUENJX0JVRkZfTEVOKTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+bWVtY3B5KGdkZXYuZGlybmFt ZSwgZGlybmFtZSwgRklMRV9QQVRIX0xFTik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPlpYREhfUE1EX0xPRyhJTkZPLCAiRm91bmQgZ2RtYSBwY2kgZGV2ICVz IiwgZS0mZ3Q7ZF9uYW1lKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj4vKiBQYXJzZSBwY2kgYWRkciAqLzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5yZXQgPSB6eGRoX2dkbWFfcGNpX2FkZHJfcGFyc2UoZS0m Z3Q7ZF9uYW1lLCBzaXplb2YoZS0mZ3Q7ZF9uYW1lKSwgJmFtcDtnZGV2KTs8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKHJldCAhPSAwKTwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+Z290byBvdXQ7PC9wPjxwPis8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+LyogRW5hYmxlIE1TRSAq LzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5yZXQgPSB6eGRo X2dkbWFfcGNpX21zZV9lbigmYW1wO2dkZXYpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5pZiAocmV0ICE9IDApPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCTwvc3Bhbj5nb3RvIG91dDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4vKiBHZXQgYmFyMCBwaHlhZGRyIGFuZCBsZW4gKi88 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c25wcmludGYoZmls ZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIlcy9yZXNvdXJjZSIsIGRpcm5hbWUpOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5yZXQgPSB6eGRoX2dkbWFfcmVz ZnNfcGFyc2UoZmlsZW5hbWUsICZhbXA7Z2Rldik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPmlmIChyZXQgIT0gMCk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmdvdG8gb3V0OzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi8qIE1tYXAgYmFyMCB2aXJ0YWRkciAqLzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5zbnByaW50ZihmaWxlbmFt ZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIiVzL3Jlc291cmNlMCIsIGRpcm5hbWUpOzwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5yZXQgPSB6eGRoX2dkbWFfcGNpX2Rl dl9tbWFwKGZpbGVuYW1lLCAmYW1wO2dkZXYsIEJBUjBfSURYKTs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKHJldCAhPSAwKTwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+Z290byBvdXQ7PC9wPjxwPis8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+WlhESF9QTURfTE9HKElORk8sICJG b3VuZCBwY2lfc2NhbiBzdWNjZXNzIik7PC9wPjxwPis8L3A+PHA+K291dDo8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Y2xvc2VkaXIoZGlyKTs8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0dXJuIHJldDs8L3A+PHA+K308 L3A+PHA+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmF3L3p4ZGgvenhkaF9wY2kuaCBiL2RyaXZlcnMv cmF3L3p4ZGgvenhkaF9wY2kuaDwvcD48cD5uZXcgZmlsZSBtb2RlIDEwMDY0NDwvcD48cD5pbmRl eCAwMDAwMDAwMDAwLi45M2M2Yzk3NDA1PC9wPjxwPi0tLSAvZGV2L251bGw8L3A+PHA+KysrIGIv ZHJpdmVycy9yYXcvenhkaC96eGRoX3BjaS5oPC9wPjxwPkBAIC0wLDAgKzEsNDAgQEA8L3A+PHA+ Ky8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2U8L3A+PHA+KyAqIENvcHly aWdodCAyMDI0IFpURSBDb3Jwb3JhdGlvbjwvcD48cD4rICovPC9wPjxwPis8L3A+PHA+KyNpZm5k ZWYgX19aWERIX1BDSV9IX188L3A+PHA+KyNkZWZpbmUgX19aWERIX1BDSV9IX188L3A+PHA+Kzwv cD48cD4rI2lmZGVmIF9fY3BsdXNwbHVzPC9wPjxwPitleHRlcm4gIkMiIHs8L3A+PHA+KyNlbmRp ZjwvcD48cD4rPC9wPjxwPisjZGVmaW5lIEZJTEVfUEFUSF9MRU4mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOygxMDApPC9wPjxwPisjZGVmaW5lIFBDSV9CVUZGX0xFTiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICgxNik8L3A+PHA+KyNkZWZpbmUgUENJX01BWF9SRVNPVVJDRSZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAoNik8L3A+PHA+KzwvcD48cD4rc3RydWN0IHp4ZGhfcGNpX2RldiB7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQxNl90Jm5ic3A7ICZuYnNwOyB2ZW5k b3JfaWQ7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQx Nl90Jm5ic3A7ICZuYnNwOyBkZXZpY2VfaWQ7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPnVpbnQxNl90Jm5ic3A7ICZuYnNwOyBkb21haW47PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQ4X3QmbmJzcDsgJm5ic3A7ICZu YnNwO2J1czs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWlu dDhfdCZuYnNwOyAmbmJzcDsgJm5ic3A7ZGV2aWQ7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQ4X3QmbmJzcDsgJm5ic3A7ICZuYnNwO2Z1bmN0aW9uOzwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5jaGFyJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IGRpcm5hbWVbRklMRV9QQVRIX0xFTl07PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmNoYXImbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgZF9uYW1lW1BDSV9CVUZGX0xFTl07PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPnZvaWQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsqYmFyX3ZhW1BD SV9NQVhfUkVTT1VSQ0VdOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj51aW50NjRfdCZuYnNwOyAmbmJzcDsgYmFyX3BhW1BDSV9NQVhfUkVTT1VSQ0VdOzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50NjRfdCZuYnNwOyAm bmJzcDsgYmFyX2xlbltQQ0lfTUFYX1JFU09VUkNFXTs8L3A+PHA+K307PC9wPjxwPis8L3A+PHA+ K2V4dGVybiBzdHJ1Y3QgenhkaF9wY2lfZGV2IGdkZXY7PC9wPjxwPis8L3A+PHA+K3ZvaWQgenhk aF9nZG1hX3BjaV9kZXZfbXVubWFwKHZvaWQpOzwvcD48cD4raW50IHp4ZGhfZ2RtYV9wY2lfc2Nh bih2b2lkKTs8L3A+PHA+KzwvcD48cD4rI2lmZGVmIF9fY3BsdXNwbHVzPC9wPjxwPit9PC9wPjxw PisjZW5kaWY8L3A+PHA+KzwvcD48cD4rI2VuZGlmIC8qIF9fWlhESF9QQ0lfSF9fICovPC9wPjxw Pis8L3A+PHA+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmF3L3p4ZGgvenhkaF9yYXdkZXYuYyBiL2Ry aXZlcnMvcmF3L3p4ZGgvenhkaF9yYXdkZXYuYzwvcD48cD5uZXcgZmlsZSBtb2RlIDEwMDY0NDwv cD48cD5pbmRleCAwMDAwMDAwMDAwLi4zMjAxN2Y4NzQ0PC9wPjxwPi0tLSAvZGV2L251bGw8L3A+ PHA+KysrIGIvZHJpdmVycy9yYXcvenhkaC96eGRoX3Jhd2Rldi5jPC9wPjxwPkBAIC0wLDAgKzEs OTExIEBAPC9wPjxwPisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlPC9w PjxwPisgKiBDb3B5cmlnaHQgMjAyNCBaVEUgQ29ycG9yYXRpb248L3A+PHA+KyAqLzwvcD48cD4r PC9wPjxwPisjaW5jbHVkZSAmbHQ7YXNzZXJ0LmgmZ3Q7PC9wPjxwPisjaW5jbHVkZSAmbHQ7c3Rk aW8uaCZndDs8L3A+PHA+KyNpbmNsdWRlICZsdDtzdGRib29sLmgmZ3Q7PC9wPjxwPisjaW5jbHVk ZSAmbHQ7ZXJybm8uaCZndDs8L3A+PHA+KyNpbmNsdWRlICZsdDtzdGRpbnQuaCZndDs8L3A+PHA+ KyNpbmNsdWRlICZsdDtpbnR0eXBlcy5oJmd0OzwvcD48cD4rI2luY2x1ZGUgJmx0O3N0cmluZy5o Jmd0OzwvcD48cD4rI2luY2x1ZGUgJmx0O3RpbWUuaCZndDs8L3A+PHA+KyNpbmNsdWRlICZsdDtz eXMvdHlwZXMuaCZndDs8L3A+PHA+KzwvcD48cD4rI2luY2x1ZGUgJmx0O3J0ZV9ieXRlb3JkZXIu aCZndDs8L3A+PHA+KyNpbmNsdWRlICZsdDtydGVfdmVyc2lvbi5oJmd0OzwvcD48cD4rI2luY2x1 ZGUgJmx0O3J0ZV9lcnJuby5oJmd0OzwvcD48cD4rI2luY2x1ZGUgJmx0O3J0ZV9jb21tb24uaCZn dDs8L3A+PHA+KyNpbmNsdWRlICZsdDtydGVfZGVidWcuaCZndDs8L3A+PHA+KyNpbmNsdWRlICZs dDtydGVfZGV2LmgmZ3Q7PC9wPjxwPisjaW5jbHVkZSAmbHQ7cnRlX2VhbC5oJmd0OzwvcD48cD4r I2luY2x1ZGUgJmx0O3J0ZV9rdmFyZ3MuaCZndDs8L3A+PHA+KyNpbmNsdWRlICZsdDtydGVfbG9n LmgmZ3Q7PC9wPjxwPisjaW5jbHVkZSAmbHQ7cnRlX21hbGxvYy5oJmd0OzwvcD48cD4rI2luY2x1 ZGUgJmx0O3J0ZV9tZW1vcnkuaCZndDs8L3A+PHA+KyNpbmNsdWRlICZsdDtydGVfbWVtY3B5Lmgm Z3Q7PC9wPjxwPisjaW5jbHVkZSAmbHQ7cnRlX2xjb3JlLmgmZ3Q7PC9wPjxwPisjaW5jbHVkZSAm bHQ7cnRlX2N5Y2xlcy5oJmd0OzwvcD48cD4rI2luY2x1ZGUgJmx0O3J0ZV9tZW16b25lLmgmZ3Q7 PC9wPjxwPisjaW5jbHVkZSAmbHQ7cnRlX2F0b21pYy5oJmd0OzwvcD48cD4rI2luY2x1ZGUgJmx0 O3J0ZV9yYXdkZXYuaCZndDs8L3A+PHA+KyNpbmNsdWRlICZsdDtydGVfcmF3ZGV2X3BtZC5oJmd0 OzwvcD48cD4rPC9wPjxwPisjaWYgUlRFX1ZFUlNJT05fTlVNKDIyLCAxMSwgMCwgMCkgJmx0Oz0g UlRFX1ZFUlNJT048L3A+PHA+KyNpbmNsdWRlICZsdDtidXNfdmRldl9kcml2ZXIuaCZndDs8L3A+ PHA+KyNlbHNlPC9wPjxwPisjaW5jbHVkZSAmbHQ7cnRlX2J1c192ZGV2LmgmZ3Q7PC9wPjxwPisj ZW5kaWY8L3A+PHA+KzwvcD48cD4rI2luY2x1ZGUgInp4ZGhfcmF3ZGV2LmgiPC9wPjxwPisjaW5j bHVkZSAienhkaF9wY2kuaCI8L3A+PHA+KzwvcD48cD4rLyo8L3A+PHA+KyAqIFVzZXIgZGVmaW5l OjwvcD48cD4rICogZXBfaWQtYml0WzE1OjEyXSB2ZnVuY19udW0tYml0WzExOjRdIGZ1bmNfbnVt LWJpdFszOjFdIHZmdW5jX2FjdGl2ZS1iaXQwPC9wPjxwPisgKiBob3N0IGVwX2lkOjV+OCZuYnNw OyAmbmJzcDt6ZiBlcF9pZDo5PC9wPjxwPisgKi88L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1pG X1VTRVImbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzB4OTAwMCZuYnNwOyAmbmJzcDsgJm5ic3A7 IC8qIGVwNCBwZjAgKi88L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1BGX05VTV9TSElGVCZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 IDE8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1ZGX05VTV9TSElGVCZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDQ8L3A+PHA+KyNk ZWZpbmUgWlhESF9HRE1BX0VQX0lEX1NISUZUJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTI8L3A+PHA+KyNkZWZpbmUg WlhESF9HRE1BX1ZGX0VOJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTwvcD48cD4r I2RlZmluZSBaWERIX0dETUFfRVBJRF9PRkZTRVQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs1PC9wPjxwPis8L3A+PHA+ Ky8qIFJlZ2lzdGVyIG9mZnNldCAqLzwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfQkFTRV9PRkZT RVQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsweDEwMDAwMDwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfRVhUX0FERFJf T0ZGU0VUJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOzB4MjE4PC9wPjxwPisjZGVmaW5lIFpYREhfR0RNQV9TQVJfTE9XX09GRlNFVCZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMHgyMDA8L3A+ PHA+KyNkZWZpbmUgWlhESF9HRE1BX0RBUl9MT1dfT0ZGU0VUJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAweDIwNDwvcD48cD4rI2RlZmluZSBa WERIX0dETUFfU0FSX0hJR0hfT0ZGU0VUJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOzB4MjM0PC9wPjxwPisjZGVmaW5lIFpYREhfR0RNQV9EQVJf SElHSF9PRkZTRVQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7MHgyMzg8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1hGRVJTSVpFX09GRlNFVCZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsweDIw ODwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfQ09OVFJPTF9PRkZTRVQmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDB4MjMwPC9wPjxwPisjZGVm aW5lIFpYREhfR0RNQV9UQ19TVEFUVVNfT0ZGU0VUJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDB4MDwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfU1RBVFVT X0NMRUFOX09GRlNFVCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MHg4 MDwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfTExJX0xfT0ZGU0VUJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMHgyMWM8L3A+PHA+ KyNkZWZpbmUgWlhESF9HRE1BX0xMSV9IX09GRlNFVCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDB4MjIwPC9wPjxwPisjZGVmaW5l IFpYREhfR0RNQV9DSEFOX0NPTlRJTlVFX09GRlNFVCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgMHgyMjQ8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1RDX0NOVF9PRkZTRVQmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OzB4MjNjPC9wPjxwPisjZGVmaW5lIFpYREhfR0RNQV9MTElfVVNFUl9PRkZTRVQmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MHgyMjg8L3A+PHA+ KzwvcD48cD4rLyogQ29udHJvbCByZWdpc3RlciAqLzwvcD48cD4rI2RlZmluZSBaWERIX0dETUFf Q0hBTl9FTkFCTEUmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsweDE8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX0NIQU5f RElTQUJMRSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7IDA8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1NPRlRfQ0hBTiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsweDI8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1RDX0lOVFJfRU5BQkxFJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAweDEw PC9wPjxwPisjZGVmaW5lIFpYREhfR0RNQV9BTExfSU5UUl9FTkFCTEUmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MHgzMDwvcD48cD4rI2RlZmlu ZSBaWERIX0dETUFfU0JTX1NISUZUJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzYmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIHNyYyBidXJzdCBzaXplICovPC9wPjxwPisjZGVm aW5lIFpYREhfR0RNQV9TQkxfU0hJRlQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OSZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Lyogc3JjIGJ1cnN0IGxlbmd0aCAqLzwvcD48cD4r I2RlZmluZSBaWERIX0dETUFfREJTX1NISUZUJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEzJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAvKiBkZXN0IGJ1cnN0IHNpemUgKi88L3A+PHA+KyNk ZWZpbmUgWlhESF9HRE1BX0JVUlNUX1NJWkVfTUlOJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAweDEmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7LyogMSBieXRlICovPC9wPjxwPisjZGVmaW5lIFpYREhfR0RNQV9CVVJTVF9TSVpF X01FRElVTSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzB4 NCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiA0IHdvcmQgKi88L3A+PHA+KyNk ZWZpbmUgWlhESF9HRE1BX0JVUlNUX1NJWkVfTUFYJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAweDYmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7LyogMTYgd29yZCAqLzwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfREVGQVVMVF9C VVJTVF9MRU4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsw eGYmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogMTYgYmVhdHMgKi88L3A+PHA+ KyNkZWZpbmUgWlhESF9HRE1BX1RDX0NOVF9FTkFCTEUmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOygxICZsdDsmbHQ7IDI3KTwvcD48 cD4rI2RlZmluZSBaWERIX0dETUFfQ0hBTl9GT1JDRV9DTE9TRSZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoMSAmbHQ7Jmx0OyAzMSk8L3A+PHA+KzwvcD48 cD4rLyogVEMgY291bnQgJmFtcDsgRXJyb3IgaW50ZXJydXB0IHN0YXR1cyByZWdpc3RlciAqLzwv cD48cD4rI2RlZmluZSBaWERIX0dETUFfU1JDX0xMSV9FUlImbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsoMSAmbHQ7Jmx0 OyAxNik8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1NSQ19EQVRBX0VSUiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICgxICZsdDsm bHQ7IDE3KTwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfRFNUX0FERFJfRVJSJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKDEgJmx0 OyZsdDsgMTgpPC9wPjxwPisjZGVmaW5lIFpYREhfR0RNQV9FUlJfU1RBVFVTJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICgxICZsdDsmbHQ7IDE5KTwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfRVJSX0lOVFJfRU5BQkxF Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOygx ICZsdDsmbHQ7IDIwKTwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfVENfQ05UX0NMRUFOJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg KDEpPC9wPjxwPis8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX0NIQU5fU0hJRlQmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgMHg4MDwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfTElOS19FTkRfTk9ERSZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KDEgJmx0 OyZsdDsgMzApPC9wPjxwPisjZGVmaW5lIFpYREhfR0RNQV9DSEFOX0NPTlRJTlVFJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsoMSk8 L3A+PHA+KzwvcD48cD4rI2RlZmluZSBMT1czMl9NQVNLJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMHhmZmZmZmZmZjwvcD48cD4rI2RlZmluZSBMT1cxNl9N QVNLJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMHhmZmZm PC9wPjxwPis8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1dBSVRfVElNRVNfTUFYJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMDA8L3A+PHA+ KyNkZWZpbmUgWlhESF9HRE1BX1RDX0NOVF9NQVgmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMHgxMDAwMDwvcD48cD4r PC9wPjxwPisjZGVmaW5lIElEWF9UT19BRERSKGFkZHIsIGlkeCwgdCkgXDwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4oKHQpKCh1aW50OF90ICopKGFkZHIpICsg KGlkeCkgKiBzaXplb2Yoc3RydWN0IHp4ZGhfZ2RtYV9idWZmX2Rlc2MpKSk8L3A+PHA+KzwvcD48 cD4rc3RhdGljIGludCB6eGRoX2dkbWFfcXVldWVfaW5pdChzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2 LCB1aW50MTZfdCBxdWV1ZV9pZCk7PC9wPjxwPitzdGF0aWMgaW50IHp4ZGhfZ2RtYV9xdWV1ZV9m cmVlKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkKTs8L3A+PHA+Kzwv cD48cD4rY2hhciB6eGRoX2dkbWFfZHJpdmVyX25hbWVbXSA9ICJyYXdkZXZfenhkaF9nZG1hIjs8 L3A+PHA+K2NoYXIgZGV2X25hbWVbXSA9ICJ6eGRoX2dkbWEiOzwvcD48cD4rPC9wPjxwPitzdGF0 aWMgaW5saW5lIHN0cnVjdCB6eGRoX2dkbWFfcXVldWUgKjwvcD48cD4renhkaF9nZG1hX2dldF9x dWV1ZShzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCk8L3A+PHA+K3s8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IHp4ZGhf Z2RtYV9yYXdkZXYgKmdkbWFkZXYgPSB6eGRoX2dkbWFfcmF3ZGV2X2dldF9wcml2KGRldik7PC9w PjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKHF1 ZXVlX2lkICZndDs9IFpYREhfR0RNQV9UT1RBTF9DSEFOX05VTSkgezwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgInF1ZXVlIGlk ICVkIGlzIGludmFsaWQiLCBxdWV1ZV9pZCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gTlVMTDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPnJldHVybiAmYW1wOyhnZG1hZGV2LSZndDt2cXNbcXVldWVfaWRdKTs8 L3A+PHA+K308L3A+PHA+KzwvcD48cD4rdWludDwvcD48cD4renhkaF9nZG1hX3JlYWRfcmVnKHN0 cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkLCB1aW50IG9mZnNldCk8L3A+ PHA+K3s8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0 IHp4ZGhfZ2RtYV9yYXdkZXYgKmdkbWFkZXYgPSB6eGRoX2dkbWFfcmF3ZGV2X2dldF9wcml2KGRl dik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQgYWRk ciA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQg dmFsID0gMDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj5hZGRyID0gb2Zmc2V0ICsgcXVldWVfaWQgKiBaWERIX0dETUFfQ0hBTl9TSElGVDs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dmFsID0gKih1aW50ICop KGdkbWFkZXYtJmd0O2Jhc2VfYWRkciArIGFkZHIpOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnJldHVybiB2YWw7PC9wPjxwPit9PC9wPjxwPis8 L3A+PHA+K3ZvaWQ8L3A+PHA+K3p4ZGhfZ2RtYV93cml0ZV9yZWcoc3RydWN0IHJ0ZV9yYXdkZXYg KmRldiwgdWludDE2X3QgcXVldWVfaWQsIHVpbnQgb2Zmc2V0LCB1aW50IHZhbCk8L3A+PHA+K3s8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IHp4ZGhf Z2RtYV9yYXdkZXYgKmdkbWFkZXYgPSB6eGRoX2dkbWFfcmF3ZGV2X2dldF9wcml2KGRldik7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQgYWRkciA9IDA7 PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+YWRk ciA9IG9mZnNldCArIHF1ZXVlX2lkICogWlhESF9HRE1BX0NIQU5fU0hJRlQ7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPioodWludCAqKShnZG1hZGV2LSZndDti YXNlX2FkZHIgKyBhZGRyKSA9IHZhbDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4raW50PC9wPjxw Pit6eGRoX2dkbWFfZGVidWdfaW5mb19kdW1wKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQx Nl90IHF1ZXVlX2lkKTwvcD48cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj5zdHJ1Y3QgenhkaF9nZG1hX3F1ZXVlICpxdWV1ZSA9IE5VTEw7PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnN0cnVjdCB6eGRoX2dkbWFfYnVm Zl9kZXNjICpiZCA9IE5VTEw7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPnN0cnVjdCB6eGRoX2dkbWFfam9iICpqb2IgPSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50MTZfdCBpID0gMDs8L3A+PHA+KzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAoZGV2ID09IE5VTEwp PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gLUVJ TlZBTDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj5xdWV1ZSA9IHp4ZGhfZ2RtYV9nZXRfcXVldWUoZGV2LCBxdWV1ZV9pZCk7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChxdWV1ZSA9PSBOVUxMKTwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7 PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+WlhE SF9QTURfTE9HKElORk8sICIjIyNkdW1wIHN3X3JpbmcgaW5mbyMjIyIpOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5aWERIX1BNRF9MT0coSU5GTywgImZyZWVf Y250OiV1IGRlcV9jbnQ6JXUiLDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CQkJCQkJPC9zcGFuPnF1ZXVlLSZndDtzd19yaW5nLmZyZWVfY250LCBxdWV1ZS0mZ3Q7c3dfcmlu Zy5kZXFfY250KTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ WlhESF9QTURfTE9HKElORk8sICJlbnFfaWR4OiV1IGRlcV9pZHg6JXUgdXNlZF9pZHg6JXUiLDwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJPC9zcGFuPnF1ZXVlLSZn dDtzd19yaW5nLmVucV9pZHgsIHF1ZXVlLSZndDtzd19yaW5nLmRlcV9pZHgsPC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQk8L3NwYW4+cXVldWUtJmd0O3N3X3Jpbmcu dXNlZF9pZHgpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5m b3IgKGkgPSAwOyBpICZsdDsgWlhESF9HRE1BX1FVRVVFX1NJWkU7IGkrKykgezwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+aWYgKHF1ZXVlLSZndDtzd19yaW5n LmpvYltpXSAhPSBOVUxMKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CQk8L3NwYW4+am9iID0gcXVldWUtJmd0O3N3X3Jpbmcuam9iW2ldOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPlpYREhfUE1EX0xPRyhJTkZPLCAiaWR4OiVk LCBTcmNBZGRyOjB4JSJQUkl4NjQiIERzdEFkZHI6MHglIlBSSXg2NCIgbGVuOiV1Iiw8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJCQkJPC9zcGFuPmksIGpvYi0mZ3Q7 c3JjLCBqb2ItJmd0O2Rlc3QsIGpvYi0mZ3Q7bGVuKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPn08L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+fTwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPlpYREhfUE1EX0xPRyhJTkZPLCAiIyMjZHVtcCByaW5nIGluZm8jIyMiKTs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+WlhESF9QTURfTE9HKElO Rk8sICJhdmFpbF9pZHg6JXUgdGNfY250OiV1IiwgcXVldWUtJmd0O3JpbmcuYXZhaWxfaWR4LCBx dWV1ZS0mZ3Q7dGNfY250KTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+Zm9yIChpID0gMDsgaSAmbHQ7IFpYREhfR0RNQV9SSU5HX1NJWkU7IGkrKykgezwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+YmQgPSBJRFhfVE9fQURE UihxdWV1ZS0mZ3Q7cmluZy5kZXNjLCBpLCBzdHJ1Y3QgenhkaF9nZG1hX2J1ZmZfZGVzYyopOzwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+WlhESF9QTURfTE9H KElORk8sICJpZHg6JWQgU3JjOjB4JSJQUkl4NjQiIERzdDoweCUiUFJJeDY0IiBMTElfTDoweCV4 IExMSV9IOjB4JXggY3RybDoweCV4IHVzZXI6MHgleCIsPC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQkJPC9zcGFuPmksIGJkLSZndDtTcmNBZGRyX0wgfCAoKHVpbnQ2NF90 KWJkLSZndDtTcmNBZGRyX0ggJmx0OyZsdDsgMzIpLDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQkJCTwvc3Bhbj5iZC0mZ3Q7RHN0QWRkcl9MIHwgKCh1aW50NjRfdCliZC0m Z3Q7RHN0QWRkcl9IICZsdDsmbHQ7IDMyKSw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJCQk8L3NwYW4+YmQtJmd0O0xMSV9BZGRyX0wsIGJkLSZndDtMTElfQWRkcl9ILCBi ZC0mZ3Q7Q29udHJvbCwgYmQtJmd0O0V4dEFkZHIpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgk8L3NwYW4+cmV0dXJuIDA7PC9wPjxwPit9PC9wPjxwPis8L3A+PHA+K3N0YXRp YyBpbnQ8L3A+PHA+K3p4ZGhfZ2RtYV9yYXdkZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9yYXdkZXYg KmRldiw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJCTwvc3Bhbj4m bmJzcDsgX19ydGVfdW51c2VkIHJ0ZV9yYXdkZXZfb2JqX3QgZGV2X2luZm8sPC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQk8L3NwYW4+Jm5ic3A7IF9fcnRlX3VudXNl ZCBzaXplX3QgZGV2X2luZm9fc2l6ZSk8L3A+PHA+K3s8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGRldiA9PSBOVUxMKTwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7PC9wPjxwPis8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0dXJuIDA7PC9wPjxwPit9 PC9wPjxwPis8L3A+PHA+K3N0YXRpYyBpbnQ8L3A+PHA+K3p4ZGhfZ2RtYV9yYXdkZXZfY29uZmln dXJlKGNvbnN0IHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsPC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQkJCQk8L3NwYW4+Jm5ic3A7ICZuYnNwO3J0ZV9yYXdkZXZfb2JqX3Qg Y29uZmlnLDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJPC9zcGFu PiZuYnNwOyAmbmJzcDtzaXplX3QgY29uZmlnX3NpemUpPC9wPjxwPit7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnN0cnVjdCB6eGRoX2dkbWFfY29uZmlnICpn ZG1hX2NvbmZpZyA9IE5VTEw7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+aWYgKChkZXYgPT0gTlVMTCkgfHw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPihjb25maWcgPT0gTlVMTCkgfHw8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPihjb25maWdfc2l6ZSAhPSBzaXplb2Yo c3RydWN0IHp4ZGhfZ2RtYV9jb25maWcpKSk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJPC9zcGFuPnJldHVybiAtRUlOVkFMOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmdkbWFfY29uZmlnID0gKHN0cnVjdCB6eGRoX2dk bWFfY29uZmlnICopY29uZmlnOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj5pZiAoZ2RtYV9jb25maWctJmd0O21heF92cXMgIT0gWlhESF9HRE1BX1RPVEFMX0NI QU5fTlVNKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5a WERIX1BNRF9MT0coRVJSLCAiZ2RtYSBvbmx5IHN1cHBvcnQgcXVldWUgbnVtICVkIiwgWlhESF9H RE1BX1RPVEFMX0NIQU5fTlVNKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJPC9zcGFuPnJldHVybiAtRUlOVkFMOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+cmV0dXJuIDA7PC9wPjxwPit9PC9wPjxwPis8L3A+PHA+K3N0YXRpYyBpbnQ8 L3A+PHA+K3p4ZGhfZ2RtYV9yYXdkZXZfc3RhcnQoc3RydWN0IHJ0ZV9yYXdkZXYgKmRldik8L3A+ PHA+K3s8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0 IHp4ZGhfZ2RtYV9yYXdkZXYgKmdkbWFkZXYgPSBOVUxMOzwvcD48cD4rPC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChkZXYgPT0gTlVMTCk8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnJldHVybiAtRUlOVkFMOzwvcD48 cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmdkbWFkZXYg PSB6eGRoX2dkbWFfcmF3ZGV2X2dldF9wcml2KGRldik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPmdkbWFkZXYtJmd0O2RldmljZV9zdGF0ZSA9IFpYREhfR0RN QV9ERVZfUlVOTklORzs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj5yZXR1cm4gMDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4rc3RhdGljIHZvaWQ8 L3A+PHA+K3p4ZGhfZ2RtYV9yYXdkZXZfc3RvcChzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2KTwvcD48 cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5zdHJ1Y3Qg enhkaF9nZG1hX3Jhd2RldiAqZ2RtYWRldiA9IE5VTEw7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGRldiA9PSBOVUxMKTwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuOzwvcD48cD4rPC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmdkbWFkZXYgPSB6eGRoX2dk bWFfcmF3ZGV2X2dldF9wcml2KGRldik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPmdkbWFkZXYtJmd0O2RldmljZV9zdGF0ZSA9IFpYREhfR0RNQV9ERVZfU1RP UFBFRDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4rc3RhdGljIGludDwvcD48cD4renhkaF9nZG1h X3Jhd2Rldl9yZXNldChzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2KTwvcD48cD4rezwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAoZGV2ID09IE5VTEwpPC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gLUVJTlZBTDs8 L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5yZXR1 cm4gMDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4rc3RhdGljIGludDwvcD48cD4renhkaF9nZG1h X3Jhd2Rldl9jbG9zZShzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2KTwvcD48cD4rezwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5zdHJ1Y3QgenhkaF9nZG1hX3Jhd2Rl diAqZ2RtYWRldiA9IE5VTEw7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPnN0cnVjdCB6eGRoX2dkbWFfcXVldWUgKnF1ZXVlID0gTlVMTDs8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludDE2X3QgcXVldWVfaWQgPSAwOzwv cD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChk ZXYgPT0gTlVMTCk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu PnJldHVybiAtRUlOVkFMOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPmZvciAocXVldWVfaWQgPSAwOyBxdWV1ZV9pZCAmbHQ7IFpYREhfR0RNQV9U T1RBTF9DSEFOX05VTTsgcXVldWVfaWQrKykgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+cXVldWUgPSB6eGRoX2dkbWFfZ2V0X3F1ZXVlKGRldiwgcXVldWVf aWQpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+aWYgKChx dWV1ZSA9PSBOVUxMKSB8fCAocXVldWUtJmd0O2VuYWJsZSA9PSAwKSk8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5jb250aW51ZTs8L3A+PHA+KzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+enhkaF9nZG1hX3F1ZXVlX2Zy ZWUoZGV2LCBxdWV1ZV9pZCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPn08L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Z2Rt YWRldiA9IHp4ZGhfZ2RtYV9yYXdkZXZfZ2V0X3ByaXYoZGV2KTs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Z2RtYWRldi0mZ3Q7ZGV2aWNlX3N0YXRlID0gWlhE SF9HRE1BX0RFVl9TVE9QUEVEOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPnJldHVybiAwOzwvcD48cD4rfTwvcD48cD4rPC9wPjxwPitzdGF0aWMg aW50PC9wPjxwPit6eGRoX2dkbWFfcmF3ZGV2X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfcmF3ZGV2 ICpkZXYsPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQkJPC9zcGFu PiB1aW50MTZfdCBxdWV1ZV9pZCw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJCQkJCQk8L3NwYW4+IHJ0ZV9yYXdkZXZfb2JqX3QgcXVldWVfY29uZiw8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJCQk8L3NwYW4+IHNpemVfdCBjb25mX3NpemUp PC9wPjxwPit7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnN0 cnVjdCB6eGRoX2dkbWFfcmF3ZGV2ICpnZG1hZGV2ID0gTlVMTDs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZSAqcXVldWUg PSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5zdHJ1 Y3QgenhkaF9nZG1hX3F1ZXVlX2NvbmZpZyAqcWNvbmZpZyA9IE5VTEw7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnN0cnVjdCB6eGRoX2dkbWFfcmJwICpyYnAg PSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50 MTZfdCBpID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ dWludDhfdCBpc190eHEgPSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj51aW50IHNyY191c2VyID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+dWludCBkc3RfdXNlciA9IDA7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGRldiA9PSBOVUxMKTwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7PC9wPjxw Pis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKChxdWV1 ZV9jb25mID09IE5VTEwpIHx8IChjb25mX3NpemUgIT0gc2l6ZW9mKHN0cnVjdCB6eGRoX2dkbWFf cXVldWVfY29uZmlnKSkpPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwv c3Bhbj5yZXR1cm4gLUVJTlZBTDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5nZG1hZGV2ID0genhkaF9nZG1hX3Jhd2Rldl9nZXRfcHJpdihkZXYp OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xY29uZmlnID0g KHN0cnVjdCB6eGRoX2dkbWFfcXVldWVfY29uZmlnICopcXVldWVfY29uZjs8L3A+PHA+KzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5mb3IgKGkgPSAwOyBpICZs dDsgWlhESF9HRE1BX1RPVEFMX0NIQU5fTlVNOyBpKyspIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmlmIChnZG1hZGV2LSZndDt2cXNbaV0uZW5hYmxlID09 IDApPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+YnJlYWs7 PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGkgJmd0Oz0gWlhESF9HRE1B X1RPVEFMX0NIQU5fTlVNKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj5aWERIX1BNRF9MT0coRVJSLCAiRmFpbGVkIHRvIHNldHVwIHF1ZXVlLCBubyBhdmFp bCBxdWV1ZXMiKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu PnJldHVybiAtMTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ fTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1ZV9pZCA9 IGk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmICh6eGRo X2dkbWFfcXVldWVfaW5pdChkZXYsIHF1ZXVlX2lkKSAhPSAwKSB7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJSLCAiRmFpbGVkIHRv IGluaXQgcXVldWUiKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9z cGFuPnJldHVybiAtMTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1ZSA9 ICZhbXA7KGdkbWFkZXYtJmd0O3Zxc1txdWV1ZV9pZF0pOzwvcD48cD4rPC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnJicCA9IHFjb25maWctJmd0O3JicDs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKChyYnAtJmd0O3Ny YnAgIT0gMCkgJmFtcDsmYW1wOyAocmJwLSZndDtkcmJwID09IDApKSB7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5pc190eHEgPSAwOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ZHN0X3VzZXIgPSBaWERIX0dETUFfWkZf VVNFUjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnNyY191 c2VyID0gKChyYnAtJmd0O3NwZmlkICZsdDsmbHQ7IFpYREhfR0RNQV9QRl9OVU1fU0hJRlQpIHw8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj4oKHJicC0mZ3Q7 c3BvcnRpZCArIFpYREhfR0RNQV9FUElEX09GRlNFVCkgJmx0OyZsdDsgWlhESF9HRE1BX0VQX0lE X1NISUZUKSk7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ PC9zcGFuPmlmIChyYnAtJmd0O3N2ZmlkICE9IDApPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCQk8L3NwYW4+c3JjX3VzZXIgfD0gKFpYREhfR0RNQV9WRl9FTiB8PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQk8L3NwYW4+ICgocmJwLSZndDtz dmZpZCAtIDEpICZsdDsmbHQ7IFpYREhfR0RNQV9WRl9OVU1fU0hJRlQpKTs8L3A+PHA+KzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+WlhESF9QTURfTE9HKERF QlVHLCAicnhxLSZndDtxaWR4OiVkIHNldHVwIHNyY191c2VyKGVwOiVkIHBmOiVkIHZmOiVkKSBz dWNjZXNzIiw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFu PnF1ZXVlX2lkLCAodWludDhfdClyYnAtJmd0O3Nwb3J0aWQsICh1aW50OF90KXJicC0mZ3Q7c3Bm aWQsPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCTwvc3Bhbj4odWlu dDhfdClyYnAtJmd0O3N2ZmlkKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi Pgk8L3NwYW4+fSBlbHNlIGlmICgocmJwLSZndDtzcmJwID09IDApICZhbXA7JmFtcDsgKHJicC0m Z3Q7ZHJicCAhPSAwKSkgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8 L3NwYW4+aXNfdHhxID0gMTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ PC9zcGFuPnNyY191c2VyID0gWlhESF9HRE1BX1pGX1VTRVI7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5kc3RfdXNlciA9ICgocmJwLSZndDtkcGZpZCAmbHQ7 Jmx0OyBaWERIX0dETUFfUEZfTlVNX1NISUZUKSB8PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCQk8L3NwYW4+KChyYnAtJmd0O2Rwb3J0aWQgKyBaWERIX0dETUFfRVBJRF9P RkZTRVQpICZsdDsmbHQ7IFpYREhfR0RNQV9FUF9JRF9TSElGVCkpOzwvcD48cD4rPC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5pZiAocmJwLSZndDtkdmZpZCAh PSAwKTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmRzdF91 c2VyIHw9IChaWERIX0dETUFfVkZfRU4gfDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQkJCQkJPC9zcGFuPiAoKHJicC0mZ3Q7ZHZmaWQgLSAxKSAmbHQ7Jmx0OyBaWERIX0dE TUFfVkZfTlVNX1NISUZUKSk7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJPC9zcGFuPlpYREhfUE1EX0xPRyhERUJVRywgInR4cS0mZ3Q7cWlkeDolZCBzZXR1 cCBkc3RfdXNlcihlcDolZCBwZjolZCB2ZjolZCkgc3VjY2VzcyIsPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCTwvc3Bhbj5xdWV1ZV9pZCwgKHVpbnQ4X3QpcmJwLSZn dDtkcG9ydGlkLCAodWludDhfdClyYnAtJmd0O2RwZmlkLDwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQkJCQk8L3NwYW4+KHVpbnQ4X3QpcmJwLSZndDtkdmZpZCk7PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn0gZWxzZSB7PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJSLCAi RmFpbGVkIHRvIHNldHVwIHF1ZXVlLCBzcmJwL2RyYnAgaXMgaW52YWxpZCIpOzwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cXVldWUtJmd0O2lzX3R4cSA9IGlzX3R4cTs8 L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4vKiBz ZXR1cCBxdWV1ZSB1c2VyIGluZm8gKi88L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+cXVldWUtJmd0O3VzZXIgPSAoc3JjX3VzZXIgJmFtcDsgTE9XMTZfTUFTSykg fCAoZHN0X3VzZXIgJmx0OyZsdDsgMTYpOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPnp4ZGhfZ2RtYV93cml0ZV9yZWcoZGV2LCBxdWV1ZV9pZCwg WlhESF9HRE1BX0VYVF9BRERSX09GRlNFVCwgcXVldWUtJmd0O3VzZXIpOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5nZG1hZGV2LSZndDt1c2VkX251bSsrOzwv cD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnJldHVy biBxdWV1ZV9pZDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4rc3RhdGljIGludDwvcD48cD4renhk aF9nZG1hX3Jhd2Rldl9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQx Nl90IHF1ZXVlX2lkKTwvcD48cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj5zdHJ1Y3QgenhkaF9nZG1hX3F1ZXVlICpxdWV1ZSA9IE5VTEw7PC9wPjxwPis8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGRldiA9PSBO VUxMKTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJu IC1FSU5WQUw7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+cXVldWUgPSB6eGRoX2dkbWFfZ2V0X3F1ZXVlKGRldiwgcXVldWVfaWQpOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAoKHF1ZXVlID09IE5VTEwp IHx8IChxdWV1ZS0mZ3Q7ZW5hYmxlID09IDApKTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+enhkaF9nZG1hX3F1ZXVlX2ZyZWUoZGV2LCBx dWV1ZV9pZCk7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+cmV0dXJuIDA7PC9wPjxwPit9PC9wPjxwPis8L3A+PHA+K3N0YXRpYyBpbnQ8L3A+PHA+ K3p4ZGhfZ2RtYV9yYXdkZXZfZ2V0X2F0dHIoc3RydWN0IHJ0ZV9yYXdkZXYgKmRldiw8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJCTwvc3Bhbj4mbmJzcDsgX19ydGVf dW51c2VkIGNvbnN0IGNoYXIgKmF0dHJfbmFtZSw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJCQkJCTwvc3Bhbj4mbmJzcDsgdWludDY0X3QgKmF0dHJfdmFsdWUpPC9wPjxw Pit7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnN0cnVjdCB6 eGRoX2dkbWFfcmF3ZGV2ICpnZG1hZGV2ID0gTlVMTDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IHp4ZGhfZ2RtYV9hdHRyICpnZG1hX2F0dHIgPSBO VUxMOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFu PmlmICgoZGV2ID09IE5VTEwpIHx8IChhdHRyX3ZhbHVlID09IE5VTEwpKTwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7PC9wPjxwPis8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Z2RtYWRldiZuYnNw OyAmbmJzcDs9IHp4ZGhfZ2RtYV9yYXdkZXZfZ2V0X3ByaXYoZGV2KTs8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Z2RtYV9hdHRyID0gKHN0cnVjdCB6eGRoX2dk bWFfYXR0ciAqKWF0dHJfdmFsdWU7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPmdkbWFfYXR0ci0mZ3Q7bnVtX2h3X3F1ZXVlcyA9IGdkbWFkZXYtJmd0O3VzZWRf bnVtOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFu PnJldHVybiAwOzwvcD48cD4rfTwvcD48cD4rPC9wPjxwPitzdGF0aWMgaW5saW5lIHZvaWQ8L3A+ PHA+K3p4ZGhfZ2RtYV9jb250cm9sX2NhbCh1aW50ICp2YWwsIHVpbnQ4X3QgdGNfZW5hYmxlKTwv cD48cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4qdmFs ID0gKFpYREhfR0RNQV9DSEFOX0VOQUJMRSB8PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCQk8L3NwYW4+WlhESF9HRE1BX1NPRlRfQ0hBTiB8PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+KFpYREhfR0RNQV9ERUZBVUxUX0JVUlNUX0xF TiAmbHQ7Jmx0OyBaWERIX0dETUFfU0JMX1NISUZUKSB8PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+KFpYREhfR0RNQV9CVVJTVF9TSVpFX01BWCAmbHQ7Jmx0 OyBaWERIX0dETUFfU0JTX1NISUZUKSB8PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JCQk8L3NwYW4+KFpYREhfR0RNQV9CVVJTVF9TSVpFX01BWCAmbHQ7Jmx0OyBaWERIX0dE TUFfREJTX1NISUZUKSk7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+aWYgKHRjX2VuYWJsZSAhPSAwKTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQk8L3NwYW4+KnZhbCB8PSBaWERIX0dETUFfVENfQ05UX0VOQUJMRTs8L3A+ PHA+K308L3A+PHA+KzwvcD48cD4rc3RhdGljIGlubGluZSB1aW50PC9wPjxwPit6eGRoX2dkbWFf dXNlcl9nZXQoc3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZSAqcXVldWUsIHN0cnVjdCB6eGRoX2dkbWFf am9iICpqb2IpPC9wPjxwPit7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPnVpbnQgc3JjX3VzZXIgPSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj51aW50IGRzdF91c2VyID0gMDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAoKGpvYi0mZ3Q7ZmxhZ3MgJmFtcDsgWlhE SF9HRE1BX0pPQl9ESVJfTUFTSykgPT0gMCkgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+WlhESF9QTURfTE9HKERFQlVHLCAiam9iIGZsYWdzOjB4JXggZGVm YXVsdCB1c2VyOjB4JXhcbiIsPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CQkJCQkJPC9zcGFuPmpvYi0mZ3Q7ZmxhZ3MsIHF1ZXVlLSZndDt1c2VyKTs8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnJldHVybiBxdWV1ZS0mZ3Q7dXNlcjs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fSBlbHNlIGlmICgo am9iLSZndDtmbGFncyAmYW1wOyBaWERIX0dETUFfSk9CX0RJUl9UWCkgIT0gMCkgezwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+c3JjX3VzZXIgPSBaWERIX0dE TUFfWkZfVVNFUjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu PmRzdF91c2VyID0gKChqb2ItJmd0O3BmX2lkICZsdDsmbHQ7IFpYREhfR0RNQV9QRl9OVU1fU0hJ RlQpIHw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj4oKGpv Yi0mZ3Q7ZXBfaWQgKyBaWERIX0dETUFfRVBJRF9PRkZTRVQpICZsdDsmbHQ7IFpYREhfR0RNQV9F UF9JRF9TSElGVCkpOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCTwvc3Bhbj5pZiAoam9iLSZndDt2Zl9pZCAhPSAwKTwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmRzdF91c2VyIHw9IChaWERIX0dETUFfVkZfRU4gfDwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJPC9zcGFuPiAoKGpvYi0m Z3Q7dmZfaWQgLSAxKSAmbHQ7Jmx0OyBaWERIX0dETUFfVkZfTlVNX1NISUZUKSk7PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn0gZWxzZSB7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5kc3RfdXNlciA9IFpYREhfR0RNQV9a Rl9VU0VSOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+c3Jj X3VzZXIgPSAoKGpvYi0mZ3Q7cGZfaWQgJmx0OyZsdDsgWlhESF9HRE1BX1BGX05VTV9TSElGVCkg fDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPigoam9iLSZn dDtlcF9pZCArIFpYREhfR0RNQV9FUElEX09GRlNFVCkgJmx0OyZsdDsgWlhESF9HRE1BX0VQX0lE X1NISUZUKSk7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ PC9zcGFuPmlmIChqb2ItJmd0O3ZmX2lkICE9IDApPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCQk8L3NwYW4+c3JjX3VzZXIgfD0gKFpYREhfR0RNQV9WRl9FTiB8PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQk8L3NwYW4+ICgoam9iLSZndDt2 Zl9pZCAtIDEpICZsdDsmbHQ7IFpYREhfR0RNQV9WRl9OVU1fU0hJRlQpKTs8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5aWERIX1BNRF9MT0coREVCVUcsICJqb2IgZmxhZ3M6MHgl eCBlcF9pZDoldSwgcGZfaWQ6JXUsIHZmX2lkOiV1LCB1c2VyOjB4JXhcbiIsPC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQk8L3NwYW4+am9iLSZndDtmbGFncywgam9i LSZndDtlcF9pZCwgam9iLSZndDtwZl9pZCwgam9iLSZndDt2Zl9pZCw8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJCTwvc3Bhbj4oc3JjX3VzZXIgJmFtcDsgTE9XMTZf TUFTSykgfCAoZHN0X3VzZXIgJmx0OyZsdDsgMTYpKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5yZXR1cm4gKHNyY191c2VyICZhbXA7IExPVzE2 X01BU0spIHwgKGRzdF91c2VyICZsdDsmbHQ7IDE2KTs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4r c3RhdGljIGlubGluZSB2b2lkPC9wPjxwPit6eGRoX2dkbWFfZmlsbF9iZChzdHJ1Y3QgenhkaF9n ZG1hX3F1ZXVlICpxdWV1ZSwgc3RydWN0IHp4ZGhfZ2RtYV9qb2IgKmpvYik8L3A+PHA+K3s8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IHp4ZGhfZ2Rt YV9idWZmX2Rlc2MgKmJkID0gTlVMTDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+dWludCB2YWwgPSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj51aW50NjRfdCBuZXh0X2JkX2FkZHIgPSAwOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50MTZfdCBhdmFpbF9pZHggPSAwOzwvcD48 cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmF2YWlsX2lk eCA9IHF1ZXVlLSZndDtyaW5nLmF2YWlsX2lkeDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgk8L3NwYW4+YmQgPSAmYW1wOyhxdWV1ZS0mZ3Q7cmluZy5kZXNjW2F2YWlsX2lk eF0pOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5tZW1zZXQo YmQsIDAsIHNpemVvZihzdHJ1Y3QgenhkaF9nZG1hX2J1ZmZfZGVzYykpOzwvcD48cD4rPC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi8qIGRhdGEgYmQgKi88L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGpvYiAhPSBOVUxM KSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj56eGRoX2dk bWFfY29udHJvbF9jYWwoJmFtcDt2YWwsIDEpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+bmV4dF9iZF9hZGRyJm5ic3A7ICZuYnNwOz0gSURYX1RPX0FERFIo cXVldWUtJmd0O3JpbmcucmluZ19tZW0sPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JCQkJCQkJPC9zcGFuPihhdmFpbF9pZHggKyAxKSAlIFpYREhfR0RNQV9SSU5HX1NJWkUs PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQkJPC9zcGFuPnVpbnQ2 NF90KTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmJkLSZn dDtTcmNBZGRyX0wmbmJzcDsgPSBqb2ItJmd0O3NyYyAmYW1wOyBMT1czMl9NQVNLOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+YmQtJmd0O0RzdEFkZHJfTCZu YnNwOyA9IGpvYi0mZ3Q7ZGVzdCAmYW1wOyBMT1czMl9NQVNLOzwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+YmQtJmd0O1NyY0FkZHJfSCZuYnNwOyA9IChqb2It Jmd0O3NyYyAmZ3Q7Jmd0OyAzMikgJmFtcDsgTE9XMzJfTUFTSzs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmJkLSZndDtEc3RBZGRyX0gmbmJzcDsgPSAoam9i LSZndDtkZXN0ICZndDsmZ3Q7IDMyKSAmYW1wOyBMT1czMl9NQVNLOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+YmQtJmd0O1hwYXJhJm5ic3A7ICZuYnNwOyAm bmJzcDsgPSBqb2ItJmd0O2xlbjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJPC9zcGFuPmJkLSZndDtFeHRBZGRyJm5ic3A7ICZuYnNwOyA9IHp4ZGhfZ2RtYV91c2VyX2dl dChxdWV1ZSwgam9iKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9z cGFuPmJkLSZndDtMTElfQWRkcl9MID0gKG5leHRfYmRfYWRkciAmZ3Q7Jmd0OyA2KSAmYW1wOyBM T1czMl9NQVNLOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ YmQtJmd0O0xMSV9BZGRyX0ggPSBuZXh0X2JkX2FkZHIgJmd0OyZndDsgMzg7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5iZC0mZ3Q7TExJX1VzZXImbmJzcDsg Jm5ic3A7PSBaWERIX0dETUFfWkZfVVNFUjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJPC9zcGFuPmJkLSZndDtDb250cm9sJm5ic3A7ICZuYnNwOyA9IHZhbDs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fSBlbHNlIHs8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnp4ZGhfZ2RtYV9jb250cm9sX2Nh bCgmYW1wO3ZhbCwgMCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwv c3Bhbj5uZXh0X2JkX2FkZHImbmJzcDsgJm5ic3A7PSBJRFhfVE9fQUREUihxdWV1ZS0mZ3Q7cmlu Zy5yaW5nX21lbSwgYXZhaWxfaWR4LCB1aW50NjRfdCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5iZC0mZ3Q7RXh0QWRkciZuYnNwOyAmbmJzcDsgPSBxdWV1 ZS0mZ3Q7dXNlcjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu PmJkLSZndDtMTElfVXNlciZuYnNwOyAmbmJzcDs9IFpYREhfR0RNQV9aRl9VU0VSOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+YmQtJmd0O0NvbnRyb2wmbmJz cDsgJm5ic3A7ID0gdmFsOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8 L3NwYW4+YmQtJmd0O0xMSV9BZGRyX0wgPSAobmV4dF9iZF9hZGRyICZndDsmZ3Q7IDYpICZhbXA7 IExPVzMyX01BU0s7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bh bj5iZC0mZ3Q7TExJX0FkZHJfSCA9IChuZXh0X2JkX2FkZHIgJmd0OyZndDsgMzgpIHwgWlhESF9H RE1BX0xJTktfRU5EX05PREU7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj5pZiAocXVldWUtJmd0O2ZsYWcgIT0gMCkgezwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmJkID0gSURYX1RPX0FERFIocXVldWUtJmd0O3Jpbmcu ZGVzYyw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPnF1 ZXVlLSZndDtyaW5nLmxhc3RfYXZhaWxfaWR4LDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQkJCQk8L3NwYW4+c3RydWN0IHp4ZGhfZ2RtYV9idWZmX2Rlc2MqKTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5uZXh0X2JkX2FkZHIgPSBJ RFhfVE9fQUREUihxdWV1ZS0mZ3Q7cmluZy5yaW5nX21lbSw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPihxdWV1ZS0mZ3Q7cmluZy5sYXN0X2F2YWlsX2lk eCArIDEpICUgWlhESF9HRE1BX1JJTkdfU0laRSw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJCQkJPC9zcGFuPnVpbnQ2NF90KTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5iZC0mZ3Q7TExJX0FkZHJfTCZuYnNwOyA9IChuZXh0X2Jk X2FkZHIgJmd0OyZndDsgNikgJmFtcDsgTE9XMzJfTUFTSzs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5iZC0mZ3Q7TExJX0FkZHJfSCZuYnNwOyA9IG5leHRf YmRfYWRkciAmZ3Q7Jmd0OyAzODs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJCTwvc3Bhbj5ydGVfd21iKCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCQk8L3NwYW4+YmQtJmd0O0xMSV9BZGRyX0ggJmFtcDs9IH5aWERIX0dETUFfTElOS19FTkRf Tk9ERTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPn08L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPi8qIFJlY29yZCB0aGUg aW5kZXggb2YgZW1wdHkgYmQgZm9yIGR5bmFtaWMgY2hhaW5pbmcgKi88L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnF1ZXVlLSZndDtyaW5nLmxhc3RfYXZhaWxf aWR4ID0gYXZhaWxfaWR4OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+aWYgKCsrYXZhaWxfaWR4ICZndDs9IFpYREhfR0RNQV9SSU5HX1NJWkUpPC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5hdmFpbF9pZHggLT0gWlhESF9HRE1B X1JJTkdfU0laRTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj5xdWV1ZS0mZ3Q7cmluZy5hdmFpbF9pZHggPSBhdmFpbF9pZHg7PC9wPjxwPit9PC9w PjxwPis8L3A+PHA+K3N0YXRpYyBpbnQ8L3A+PHA+K3p4ZGhfZ2RtYV9yYXdkZXZfZW5xdWV1ZV9i dWZzKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCQkJCQk8L3NwYW4+X19ydGVfdW51c2VkIHN0cnVjdCBydGVfcmF3ZGV2X2J1ZiAq KmJ1ZmZlcnMsPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQk8L3Nw YW4+dWludCBjb3VudCw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJ CTwvc3Bhbj5ydGVfcmF3ZGV2X29ial90IGNvbnRleHQpPC9wPjxwPit7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnN0cnVjdCB6eGRoX2dkbWFfcmF3ZGV2ICpn ZG1hZGV2ID0gTlVMTDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+c3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZSAqcXVldWUgPSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5zdHJ1Y3QgenhkaF9nZG1hX2VucWRlcSAqZV9j b250ZXh0ID0gTlVMTDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+c3RydWN0IHp4ZGhfZ2RtYV9qb2IgKmpvYiA9IE5VTEw7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQxNl90IHF1ZXVlX2lkID0gMDs8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCB2YWwgPSAwOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50MTZfdCBpID0gMDs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludDE2X3QgZnJlZV9j bnQgPSAwOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9z cGFuPmlmIChkZXYgPT0gTlVMTCk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJPC9zcGFuPnJldHVybiAtRUlOVkFMOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmICh1bmxpa2VseSgoY291bnQgJmx0OyAxKSB8fCAoY29u dGV4dCA9PSBOVUxMKSkpPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwv c3Bhbj5yZXR1cm4gLUVJTlZBTDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5nZG1hZGV2ID0genhkaF9nZG1hX3Jhd2Rldl9nZXRfcHJpdihkZXYp OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAoZ2RtYWRl di0mZ3Q7ZGV2aWNlX3N0YXRlID09IFpYREhfR0RNQV9ERVZfU1RPUFBFRCkgezwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgImdk bWEgZGV2IGlzIHN0b3AiKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ PC9zcGFuPnJldHVybiAwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj59PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+ZV9jb250ZXh0ID0gKHN0cnVjdCB6eGRoX2dkbWFfZW5xZGVxICopY29udGV4dDs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cXVldWVfaWQgPSBlX2NvbnRl eHQtJmd0O3ZxX2lkOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj5xdWV1ZSA9IHp4ZGhfZ2RtYV9nZXRfcXVldWUoZGV2LCBxdWV1ZV9pZCk7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmICgocXVldWUgPT0gTlVMTCkgfHwg KHF1ZXVlLSZndDtlbmFibGUgPT0gMCkpPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JCTwvc3Bhbj5yZXR1cm4gLUVJTlZBTDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5mcmVlX2NudCA9IHF1ZXVlLSZndDtzd19yaW5nLmZy ZWVfY250OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAo ZnJlZV9jbnQgPT0gMCkgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8 L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgInF1ZXVlICV1IGlzIGZ1bGwsIGVucV9pZHg6JXUgZGVx X2lkeDoldSB1c2VkX2lkeDoldSIsPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCQkJCQk8L3NwYW4+Jm5ic3A7ICZuYnNwO3F1ZXVlX2lkLCBxdWV1ZS0mZ3Q7c3dfcmluZy5l bnFfaWR4LDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJPC9zcGFu PiZuYnNwOyAmbmJzcDtxdWV1ZS0mZ3Q7c3dfcmluZy5kZXFfaWR4LCBxdWV1ZS0mZ3Q7c3dfcmlu Zy51c2VkX2lkeCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bh bj5yZXR1cm4gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ fSBlbHNlIGlmIChmcmVlX2NudCAmbHQ7IGNvdW50KSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coREVCVUcsICJqb2IgbnVtICV1ICZn dDsgZnJlZV9jbnQsIGNoYW5nZSB0byAldSIsIGNvdW50LCBmcmVlX2NudCk7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5jb3VudCA9IGZyZWVfY250OzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cnRlX3NwaW5sb2NrX2xvY2so JmFtcDtxdWV1ZS0mZ3Q7ZW5xdWV1ZV9sb2NrKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4vKiBCdWlsZCBiZCBsaXN0LCB0aGUgbGFzdCBiZCBp cyBlbXB0eSBiZCAqLzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj5mb3IgKGkgPSAwOyBpICZsdDsgY291bnQ7IGkrKykgezwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+am9iID0gZV9jb250ZXh0LSZndDtqb2JbaV07PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj56eGRoX2dkbWFfZmlsbF9i ZChxdWV1ZSwgam9iKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj56eGRoX2dk bWFfZmlsbF9iZChxdWV1ZSwgTlVMTCk7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKHVubGlrZWx5KHF1ZXVlLSZndDtmbGFnID09IDApKSB7 PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj56eGRoX2dkbWFf d3JpdGVfcmVnKGRldiwgcXVldWVfaWQsIFpYREhfR0RNQV9MTElfTF9PRkZTRVQsPC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQkJPC9zcGFuPihxdWV1ZS0mZ3Q7cmlu Zy5yaW5nX21lbSAmZ3Q7Jmd0OyA2KSAmYW1wOyBMT1czMl9NQVNLKTs8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnp4ZGhfZ2RtYV93cml0ZV9yZWcoZGV2LCBx dWV1ZV9pZCwgWlhESF9HRE1BX0xMSV9IX09GRlNFVCw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJCQkJCQk8L3NwYW4+IHF1ZXVlLSZndDtyaW5nLnJpbmdfbWVtICZndDsm Z3Q7IDM4KTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPi8q IFN0YXJ0IGhhcmR3YXJlIGhhbmRsaW5nICovPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCTwvc3Bhbj56eGRoX2dkbWFfd3JpdGVfcmVnKGRldiwgcXVldWVfaWQsIFpYREhf R0RNQV9YRkVSU0laRV9PRkZTRVQsIDApOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQk8L3NwYW4+enhkaF9nZG1hX2NvbnRyb2xfY2FsKCZhbXA7dmFsLCAwKTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnp4ZGhfZ2RtYV93cml0ZV9y ZWcoZGV2LCBxdWV1ZV9pZCwgWlhESF9HRE1BX0NPTlRST0xfT0ZGU0VULCB2YWwpOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cXVldWUtJmd0O2ZsYWcgPSAx OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59IGVsc2Ugezwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+dmFsID0gWlhESF9H RE1BX0NIQU5fQ09OVElOVUU7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj56eGRoX2dkbWFfd3JpdGVfcmVnKGRldiwgcXVldWUtJmd0O3ZxX2lkLCBaWERIX0dE TUFfQ0hBTl9DT05USU5VRV9PRkZTRVQsIHZhbCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzwvcD48cD4rJm5ic3A7ICZuYnNwOyAvKiBqb2Ig ZW5xdWV1ZSAqLzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5m b3IgKGkgPSAwOyBpICZsdDsgY291bnQ7IGkrKykgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQk8L3NwYW4+cXVldWUtJmd0O3N3X3Jpbmcuam9iW3F1ZXVlLSZndDtzd19y aW5nLmVucV9pZHhdID0gZV9jb250ZXh0LSZndDtqb2JbaV07PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5pZiAoKytxdWV1ZS0mZ3Q7c3dfcmluZy5lbnFfaWR4 ICZndDs9IHF1ZXVlLSZndDtxdWV1ZV9zaXplKTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQkJPC9zcGFuPnF1ZXVlLSZndDtzd19yaW5nLmVucV9pZHggLT0gcXVldWUtJmd0 O3F1ZXVlX3NpemU7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJPC9zcGFuPmZyZWVfY250LS07PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPn08L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ cXVldWUtJmd0O3N3X3JpbmcuZnJlZV9jbnQgPSBmcmVlX2NudDs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cXVldWUtJmd0O3N3X3JpbmcucGVuZF9jbnQgKz0g Y291bnQ7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnJ0ZV9z cGlubG9ja191bmxvY2soJmFtcDtxdWV1ZS0mZ3Q7ZW5xdWV1ZV9sb2NrKTs8L3A+PHA+KzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5yZXR1cm4gY291bnQ7PC9w PjxwPit9PC9wPjxwPis8L3A+PHA+K3N0YXRpYyBpbmxpbmUgdm9pZDwvcD48cD4renhkaF9nZG1h X3VzZWRfaWR4X3VwZGF0ZShzdHJ1Y3QgenhkaF9nZG1hX3F1ZXVlICpxdWV1ZSwgdWludDE2X3Qg Y250LCB1aW50OF90IGRhdGFfYmRfZXJyKTwvcD48cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50MTZfdCBpZHggPSAwOzwvcD48cD4rPC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChxdWV1ZS0mZ3Q7c3dfcmlu Zy51c2VkX2lkeCArIGNudCAmbHQ7IHF1ZXVlLSZndDtxdWV1ZV9zaXplKTwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cXVldWUtJmd0O3N3X3JpbmcudXNlZF9p ZHggKz0gY250OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5l bHNlPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5xdWV1ZS0m Z3Q7c3dfcmluZy51c2VkX2lkeCA9IHF1ZXVlLSZndDtzd19yaW5nLnVzZWRfaWR4ICsgY250IC0g cXVldWUtJmd0O3F1ZXVlX3NpemU7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgk8L3NwYW4+aWYgKGRhdGFfYmRfZXJyID09IDEpIHs8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPi8qIFVwZGF0ZSBqb2Igc3RhdHVzLCB0aGUg bGFzdCBqb2Igc3RhdHVzIGlzIGVycm9yICovPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCTwvc3Bhbj5pZiAocXVldWUtJmd0O3N3X3JpbmcudXNlZF9pZHggPT0gMCk8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5pZHggPSBxdWV1ZS0m Z3Q7cXVldWVfc2l6ZSAtIDE7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj5lbHNlPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3Nw YW4+aWR4ID0gcXVldWUtJmd0O3N3X3JpbmcudXNlZF9pZHggLSAxOzwvcD48cD4rPC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5xdWV1ZS0mZ3Q7c3dfcmluZy5q b2JbaWR4XS0mZ3Q7c3RhdHVzID0gMTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+fTwvcD48cD4rfTwvcD48cD4rPC9wPjxwPitzdGF0aWMgaW50PC9wPjxwPit6 eGRoX2dkbWFfcmF3ZGV2X2RlcXVldWVfYnVmcyhzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2LDwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJPC9zcGFuPl9fcnRlX3VudXNl ZCBzdHJ1Y3QgcnRlX3Jhd2Rldl9idWYgKipidWZmZXJzLDwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQkJCQkJPC9zcGFuPnVpbnQgY291bnQsPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCQk8L3NwYW4+cnRlX3Jhd2Rldl9vYmpfdCBjb250ZXh0 KTwvcD48cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5z dHJ1Y3QgenhkaF9nZG1hX3F1ZXVlICpxdWV1ZSA9IE5VTEw7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnN0cnVjdCB6eGRoX2dkbWFfZW5xZGVxICplX2NvbnRl eHQgPSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51 aW50MTZfdCBxdWV1ZV9pZCA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPnVpbnQgdmFsID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+dWludDE2X3QgdGNfY250ID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludDE2X3QgZGlmZl9jbnQgPSAwOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50MTZfdCBpID0gMDs8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludDE2X3QgYmRfaWR4ID0gMDs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludDY0X3QgbmV4 dF9iZF9hZGRyID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+dWludDhfdCBkYXRhX2JkX2VyciA9IDA7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKChkZXYgPT0gTlVMTCkgfHwgKGNvbnRleHQgPT0g TlVMTCkpPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXR1 cm4gLUVJTlZBTDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj5lX2NvbnRleHQgPSAoc3RydWN0IHp4ZGhfZ2RtYV9lbnFkZXEgKiljb250ZXh0Ozwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1ZV9pZCA9IGVf Y29udGV4dC0mZ3Q7dnFfaWQ7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPnF1ZXVlID0genhkaF9nZG1hX2dldF9xdWV1ZShkZXYsIHF1ZXVlX2lkKTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKChxdWV1ZSA9PSBOVUxM KSB8fCAocXVldWUtJmd0O2VuYWJsZSA9PSAwKSk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJPC9zcGFuPnJldHVybiAtRUlOVkFMOzwvcD48cD4rPC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChxdWV1ZS0mZ3Q7c3dfcmluZy5wZW5k X2NudCA9PSAwKTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ Z290byBkZXFfam9iOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPi8qIEdldCBkYXRhIHRyYW5zbWl0IGNvdW50ICovPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnZhbCA9IHp4ZGhfZ2RtYV9yZWFkX3JlZyhkZXYs IHF1ZXVlX2lkLCBaWERIX0dETUFfVENfQ05UX09GRlNFVCk7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnRjX2NudCA9IHZhbCAmYW1wOyBMT1cxNl9NQVNLOzwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAodGNfY250ICZn dDs9IHF1ZXVlLSZndDt0Y19jbnQpPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCTwvc3Bhbj5kaWZmX2NudCA9IHRjX2NudCAtIHF1ZXVlLSZndDt0Y19jbnQ7PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmVsc2U8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmRpZmZfY250ID0gdGNfY250ICsgWlhESF9H RE1BX1RDX0NOVF9NQVggLSBxdWV1ZS0mZ3Q7dGNfY250OzwvcD48cD4rPC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnF1ZXVlLSZndDt0Y19jbnQgPSB0Y19jbnQ7 PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Lyog RGF0YSB0cmFuc21pdCBlcnJvciwgY2hhbm5lbCBzdG9wcGVkICovPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmICgodmFsICZhbXA7IFpYREhfR0RNQV9FUlJf U1RBVFVTKSAhPSAwKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwv c3Bhbj5uZXh0X2JkX2FkZHImbmJzcDsgPSB6eGRoX2dkbWFfcmVhZF9yZWcoZGV2LCBxdWV1ZV9p ZCwgWlhESF9HRE1BX0xMSV9MX09GRlNFVCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCTwvc3Bhbj5uZXh0X2JkX2FkZHIgfD0gKCh1aW50NjRfdCl6eGRoX2dkbWFfcmVh ZF9yZWcoZGV2LCBxdWV1ZV9pZCw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJCQkJCQk8L3NwYW4+WlhESF9HRE1BX0xMSV9IX09GRlNFVCkgJmx0OyZsdDsgMzIpOzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+bmV4dF9iZF9hZGRyJm5i c3A7ID0gbmV4dF9iZF9hZGRyICZsdDsmbHQ7IDY7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCTwvc3Bhbj5iZF9pZHggPSAobmV4dF9iZF9hZGRyIC0gcXVldWUtJmd0O3Jp bmcucmluZ19tZW0pIC8gc2l6ZW9mKHN0cnVjdCB6eGRoX2dkbWFfYnVmZl9kZXNjKTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmlmICgodmFsICZhbXA7IFpY REhfR0RNQV9TUkNfREFUQV9FUlIpIHx8ICh2YWwgJmFtcDsgWlhESF9HRE1BX0RTVF9BRERSX0VS UikpIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5kaWZm X2NudCsrOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmRh dGFfYmRfZXJyID0gMTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9z cGFuPn08L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpYREhf UE1EX0xPRyhJTkZPLCAicXVldWUlZCBpcyBlcnIoMHgleCkgbmV4dF9iZF9pZHg6JXUgbGxfYWRk cjoweCUiUFJJeDY0IiBkZWYgdXNlcjoweCV4Iiw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJCQkJPC9zcGFuPnF1ZXVlX2lkLCB2YWwsIGJkX2lkeCwgbmV4dF9iZF9hZGRy LCBxdWV1ZS0mZ3Q7dXNlcik7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj56eGRoX2dkbWFfZGVidWdfaW5mb19kdW1wKGRldiwgcXVldWVfaWQpOzwvcD48cD4r PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9M T0coSU5GTywgIkNsZWFuIHVwIGVycm9yIHN0YXR1cyIpOzwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+dmFsID0gWlhESF9HRE1BX0VSUl9TVEFUVVMgfCBaWERI X0dETUFfRVJSX0lOVFJfRU5BQkxFOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+enhkaF9nZG1hX3dyaXRlX3JlZyhkZXYsIHF1ZXVlX2lkLCBaWERIX0dETUFf VENfQ05UX09GRlNFVCwgdmFsKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+WlhESF9QTURfTE9HKElORk8sICJSZXN0YXJ0IGNoYW5uZWwiKTs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnp4ZGhfZ2RtYV93 cml0ZV9yZWcoZGV2LCBxdWV1ZV9pZCwgWlhESF9HRE1BX1hGRVJTSVpFX09GRlNFVCwgMCk7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj56eGRoX2dkbWFfY29u dHJvbF9jYWwoJmFtcDt2YWwsIDApOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+enhkaF9nZG1hX3dyaXRlX3JlZyhkZXYsIHF1ZXVlX2lkLCBaWERIX0dETUFf Q09OVFJPTF9PRkZTRVQsIHZhbCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPn08L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj5pZiAoZGlmZl9jbnQgIT0gMCkgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+enhkaF9nZG1hX3VzZWRfaWR4X3VwZGF0ZShxdWV1ZSwgZGlmZl9j bnQsIGRhdGFfYmRfZXJyKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ PC9zcGFuPnF1ZXVlLSZndDtzd19yaW5nLmRlcV9jbnQgKz0gZGlmZl9jbnQ7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5xdWV1ZS0mZ3Q7c3dfcmluZy5wZW5k X2NudCAtPSBkaWZmX2NudDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+fTwvcD48cD4rPC9wPjxwPitkZXFfam9iOjwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAocXVldWUtJmd0O3N3X3JpbmcuZGVxX2NudCA9PSAwKTwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIDA7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmVsc2UgaWYgKHF1ZXVl LSZndDtzd19yaW5nLmRlcV9jbnQgJmx0OyBjb3VudCk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmNvdW50ID0gcXVldWUtJmd0O3N3X3JpbmcuZGVxX2NudDs8 L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1 ZS0mZ3Q7c3dfcmluZy5kZXFfY250IC09IGNvdW50OzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmZvciAoaSA9IDA7IGkgJmx0OyBjb3VudDsgaSsr KSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5lX2NvbnRl eHQtJmd0O2pvYltpXSA9IHF1ZXVlLSZndDtzd19yaW5nLmpvYltxdWV1ZS0mZ3Q7c3dfcmluZy5k ZXFfaWR4XTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnF1 ZXVlLSZndDtzd19yaW5nLmpvYltxdWV1ZS0mZ3Q7c3dfcmluZy5kZXFfaWR4XSA9IE5VTEw7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5pZiAoKytxdWV1ZS0m Z3Q7c3dfcmluZy5kZXFfaWR4ICZndDs9IHF1ZXVlLSZndDtxdWV1ZV9zaXplKTwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPnF1ZXVlLSZndDtzd19yaW5nLmRl cV9pZHggLT0gcXVldWUtJmd0O3F1ZXVlX3NpemU7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi Pgk8L3NwYW4+cXVldWUtJmd0O3N3X3JpbmcuZnJlZV9jbnQgKz0gY291bnQ7PC9wPjxwPis8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0dXJuIGNvdW50Ozwv cD48cD4rfTwvcD48cD4rPC9wPjxwPitzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9yYXdkZXZfb3Bz IHp4ZGhfZ2RtYV9yYXdkZXZfb3BzID0gezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj4uZGV2X2luZm9fZ2V0ID0genhkaF9nZG1hX3Jhd2Rldl9pbmZvX2dldCw8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+LmRldl9jb25maWd1 cmUgPSB6eGRoX2dkbWFfcmF3ZGV2X2NvbmZpZ3VyZSw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+LmRldl9zdGFydCA9IHp4ZGhfZ2RtYV9yYXdkZXZfc3RhcnQs PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi5kZXZfc3RvcCA9 IHp4ZGhfZ2RtYV9yYXdkZXZfc3RvcCw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+LmRldl9jbG9zZSA9IHp4ZGhfZ2RtYV9yYXdkZXZfY2xvc2UsPC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi5kZXZfcmVzZXQgPSB6eGRoX2dk bWFfcmF3ZGV2X3Jlc2V0LDwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPi5xdWV1ZV9zZXR1cCA9IHp4ZGhfZ2RtYV9yYXdkZXZfcXVldWVfc2V0dXAs PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi5xdWV1ZV9yZWxl YXNlID0genhkaF9nZG1hX3Jhd2Rldl9xdWV1ZV9yZWxlYXNlLDwvcD48cD4rPC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi5hdHRyX2dldCA9IHp4ZGhfZ2RtYV9y YXdkZXZfZ2V0X2F0dHIsPC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+LmVucXVldWVfYnVmcyA9IHp4ZGhfZ2RtYV9yYXdkZXZfZW5xdWV1ZV9idWZz LDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4uZGVxdWV1ZV9i dWZzID0genhkaF9nZG1hX3Jhd2Rldl9kZXF1ZXVlX2J1ZnMsPC9wPjxwPit9OzwvcD48cD4rPC9w PjxwPitzdGF0aWMgaW50PC9wPjxwPit6eGRoX2dkbWFfcXVldWVfaW5pdChzdHJ1Y3QgcnRlX3Jh d2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCk8L3A+PHA+K3s8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Y2hhciBuYW1lW1JURV9SQVdERVZfTkFNRV9NQVhf TEVOXTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0 IHp4ZGhfZ2RtYV9xdWV1ZSAqcXVldWUgPSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj5jb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKm16ID0gTlVMTDs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCBzaXplID0g MDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCB2YWwg PSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pbnQgcmV0 ID0gMDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj5xdWV1ZSA9IHp4ZGhfZ2RtYV9nZXRfcXVldWUoZGV2LCBxdWV1ZV9pZCk7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChxdWV1ZSA9PSBOVUxMKTwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7 PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cXVl dWUtJmd0O2VuYWJsZSA9IDE7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPnF1ZXVlLSZndDt2cV9pZCZuYnNwOyA9IHF1ZXVlX2lkOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1ZS0mZ3Q7ZmxhZyZuYnNwOyAmbmJzcDs9 IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnF1ZXVlLSZn dDt0Y19jbnQgPSAwOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPi8qIEluaXQgc3dfcmluZyAqLzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5tZW1zZXQobmFtZSwgMCwgc2l6ZW9mKG5hbWUpKTs8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c25wcmludGYobmFtZSwgUlRFX1JB V0RFVl9OQU1FX01BWF9MRU4sICJnZG1hX3ZxJWRfc3dfcmluZyIsIHF1ZXVlX2lkKTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c2l6ZSA9IHF1ZXVlLSZndDtx dWV1ZV9zaXplICogc2l6ZW9mKHN0cnVjdCB6eGRoX2dkbWFfam9iICopOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1ZS0mZ3Q7c3dfcmluZy5qb2IgPSBy dGVfem1hbGxvYyhuYW1lLCBzaXplLCAwKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+aWYgKHF1ZXVlLSZndDtzd19yaW5nLmpvYiA9PSBOVUxMKSB7PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJS LCAiY2FuIG5vdCBhbGxvY2F0ZSBzd19yaW5nICVzIiwgbmFtZSk7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXQgPSAtRU5PTUVNOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+Z290byBmcmVlX3F1ZXVlOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9wPjxwPis8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+LyogQ2FjaGUgdXAgdG8gc2l6ZS0x IGpvYiBpbiB0aGUgcmluZyB0byBwcmV2ZW50IG92ZXJ3cml0aW5nIGhhcmR3YXJlIHByZWZldGNo aW5nICovPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnF1ZXVl LSZndDtzd19yaW5nLmZyZWVfY250ID0gcXVldWUtJmd0O3F1ZXVlX3NpemUgLSAxOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1ZS0mZ3Q7c3dfcmluZy5k ZXFfY250Jm5ic3A7ID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+cXVldWUtJmd0O3N3X3JpbmcucGVuZF9jbnQgPSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1ZS0mZ3Q7c3dfcmluZy5lbnFfaWR4Jm5ic3A7 ID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cXVldWUt Jmd0O3N3X3JpbmcuZGVxX2lkeCZuYnNwOyA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPnF1ZXVlLSZndDtzd19yaW5nLnVzZWRfaWR4ID0gMDs8L3A+PHA+ KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4vKiBJbml0IHJp bmcgKi88L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+bWVtc2V0 KG5hbWUsIDAsIHNpemVvZihuYW1lKSk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPnNucHJpbnRmKG5hbWUsIFJURV9SQVdERVZfTkFNRV9NQVhfTEVOLCAiZ2Rt YV92cSVkX3JpbmciLCBxdWV1ZV9pZCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPnNpemUgPSBaWERIX0dETUFfUklOR19TSVpFICogc2l6ZW9mKHN0cnVjdCB6 eGRoX2dkbWFfYnVmZl9kZXNjKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi Pgk8L3NwYW4+bXogPSBydGVfbWVtem9uZV9yZXNlcnZlX2FsaWduZWQobmFtZSwgc2l6ZSwgcnRl X3NvY2tldF9pZCgpLDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJ CTwvc3Bhbj5SVEVfTUVNWk9ORV9JT1ZBX0NPTlRJRywgc2l6ZSk7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChteiA9PSBOVUxMKSB7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5pZiAocnRlX2Vycm5vID09IEVFWElT VCk8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5teiA9IHJ0 ZV9tZW16b25lX2xvb2t1cChuYW1lKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgkJPC9zcGFuPmlmIChteiA9PSBOVUxMKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCQk8L3NwYW4+WlhESF9QTURfTE9HKEVSUiwgImNhbiBub3QgYWxsb2NhdGUg cmluZyAlcyIsIG5hbWUpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJ PC9zcGFuPnJldCA9IC1FTk9NRU07PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCQk8L3NwYW4+Z290byBmcmVlX3F1ZXVlOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQk8L3NwYW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj59PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPm1l bXNldChtei0mZ3Q7YWRkciwgMCwgc2l6ZSk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPnF1ZXVlLSZndDtyaW5nLnJpbmdfbXombmJzcDsgJm5ic3A7PSBtejs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cXVldWUtJmd0O3Jp bmcuZGVzYyZuYnNwOyAmbmJzcDsgJm5ic3A7ID0gKHN0cnVjdCB6eGRoX2dkbWFfYnVmZl9kZXNj ICopKG16LSZndDthZGRyKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+cXVldWUtJmd0O3JpbmcucmluZ19tZW0mbmJzcDsgPSBtei0mZ3Q7aW92YTs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cXVldWUtJmd0O3JpbmcuYXZh aWxfaWR4ID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ WlhESF9QTURfTE9HKElORk8sICJxdWV1ZSV1IHJpbmcgcGh5IGFkZHI6MHglIlBSSXg2NCIgdmly dCBhZGRyOiVwIiw8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJCTwv c3Bhbj5xdWV1ZV9pZCwgbXotJmd0O2lvdmEsIG16LSZndDthZGRyKTs8L3A+PHA+KzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4vKiBjbGVhbiBnZG1hIGNoYW5u ZWwgKi88L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dmFsID0g WlhESF9HRE1BX0NIQU5fRk9SQ0VfQ0xPU0U7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPnp4ZGhfZ2RtYV93cml0ZV9yZWcoZGV2LCBxdWV1ZV9pZCwgWlhESF9H RE1BX0NPTlRST0xfT0ZGU0VULCB2YWwpOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPnZhbCA9IFpYREhfR0RNQV9FUlJfSU5UUl9FTkFCTEUgfCBa WERIX0dETUFfRVJSX1NUQVRVUyB8IFpYREhfR0RNQV9UQ19DTlRfQ0xFQU47PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnp4ZGhfZ2RtYV93cml0ZV9yZWcoZGV2 LCBxdWV1ZV9pZCwgWlhESF9HRE1BX1RDX0NOVF9PRkZTRVQsIHZhbCk7PC9wPjxwPis8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dmFsID0gWlhESF9HRE1BX1pG X1VTRVI7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnp4ZGhf Z2RtYV93cml0ZV9yZWcoZGV2LCBxdWV1ZV9pZCwgWlhESF9HRE1BX0xMSV9VU0VSX09GRlNFVCwg dmFsKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj5yZXR1cm4gMDs8L3A+PHA+KzwvcD48cD4rZnJlZV9xdWV1ZTo8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+enhkaF9nZG1hX3F1ZXVlX2ZyZWUoZGV2LCBxdWV1 ZV9pZCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnJldHVy biByZXQ7PC9wPjxwPit9PC9wPjxwPis8L3A+PHA+K3N0YXRpYyBpbnQ8L3A+PHA+K3p4ZGhfZ2Rt YV9xdWV1ZV9mcmVlKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkKTwv cD48cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5zdHJ1 Y3QgenhkaF9nZG1hX3Jhd2RldiAqZ2RtYWRldiA9IE5VTEw7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnN0cnVjdCB6eGRoX2dkbWFfcXVldWUgKnF1ZXVlID0g TlVMTDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCB2 YWwgPSAwOzwvcD48cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9z cGFuPnF1ZXVlID0genhkaF9nZG1hX2dldF9xdWV1ZShkZXYsIHF1ZXVlX2lkKTs8L3A+PHA+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKHF1ZXVlID09IE5VTEwpPC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gLUVJTlZB TDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5n ZG1hZGV2ID0genhkaF9nZG1hX3Jhd2Rldl9nZXRfcHJpdihkZXYpOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5nZG1hZGV2LSZndDt1c2VkX251bS0tOzwvcD48 cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi8qIGRpc2Fi bGUgZ2RtYSBjaGFubmVsICovPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPnZhbCA9IFpYREhfR0RNQV9DSEFOX0ZPUkNFX0NMT1NFOzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj56eGRoX2dkbWFfd3JpdGVfcmVnKGRldiwgcXVl dWVfaWQsIFpYREhfR0RNQV9DT05UUk9MX09GRlNFVCwgdmFsKTs8L3A+PHA+KzwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1ZS0mZ3Q7ZW5hYmxlJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs9IDA7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnF1ZXVlLSZndDtpc190eHEmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOz0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cXVldWUtJmd0O2ZsYWcmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPnF1ZXVlLSZndDt1c2VyJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7PSAwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5xdWV1ZS0mZ3Q7dGNfY250Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDs9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPnF1ZXVlLSZndDtyaW5nLmF2YWlsX2lkeCZuYnNwOyAmbmJzcDs9IDA7PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnF1ZXVlLSZndDtzd19yaW5n LmZyZWVfY250ID0gMDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+cXVldWUtJmd0O3N3X3JpbmcuZGVxX2NudCZuYnNwOyA9IDA7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnF1ZXVlLSZndDtzd19yaW5nLnBlbmRfY250ID0g MDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cXVldWUtJmd0 O3N3X3JpbmcuZW5xX2lkeCZuYnNwOyA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPnF1ZXVlLSZndDtzd19yaW5nLmRlcV9pZHgmbmJzcDsgPSAwOzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5xdWV1ZS0mZ3Q7c3dfcmlu Zy51c2VkX2lkeCA9IDA7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+aWYgKHF1ZXVlLSZndDtzd19yaW5nLmpvYiAhPSBOVUxMKTwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cnRlX2ZyZWUocXVldWUtJmd0O3N3 X3Jpbmcuam9iKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj5pZiAocXVldWUtJmd0O3JpbmcucmluZ19teiAhPSBOVUxMKTwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+cnRlX21lbXpvbmVfZnJlZShxdWV1ZS0m Z3Q7cmluZy5yaW5nX216KTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj5yZXR1cm4gMDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4rc3RhdGljIGlu dDwvcD48cD4renhkaF9nZG1hX3Jhd2Rldl9wcm9iZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlICp2 ZGV2KTwvcD48cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj5zdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2ID0gTlVMTDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IHp4ZGhfZ2RtYV9yYXdkZXYgKmdkbWFkZXYgPSBO VUxMOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5zdHJ1Y3Qg enhkaF9nZG1hX3F1ZXVlICpxdWV1ZSA9IE5VTEw7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQ4X3QgaSA9IDA7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKHp4ZGhfZ2RtYV9wY2lfc2NhbigpICE9 IDApIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpYREhf UE1EX0xPRyhFUlIsICJGYWlsZWQgdG8gc2NhbiBnZG1hIHBjaSBkZXZpY2UhIik7PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gLTE7PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L3A+PHA+KzwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAoKGdkZXYuYmFyX3BhWzBdKSA9 PSAwKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERI X1BNRF9MT0coRVJSLCAiRW1wdHkgYmFycyAweCUiUFJJeDY0LDwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJCTwvc3Bhbj4odWludDY0X3QpZ2Rldi5iYXJfcGFbMF0p OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+enhkaF9nZG1h X3BjaV9kZXZfbXVubWFwKCk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj5yZXR1cm4gLUVOT0RFVjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj5aWERIX1BNRF9MT0coSU5GTywgIiUwNHg6JTAyeDolMDJ4LiUwMXggQmFyMCBQaHlBZGRyOiAw eCUiUFJJeDY0LDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQk8L3Nw YW4+Z2Rldi5kb21haW4sIGdkZXYuYnVzLCBnZGV2LmRldmlkLCBnZGV2LmZ1bmN0aW9uLDwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQk8L3NwYW4+KHVpbnQ2NF90KWdk ZXYuYmFyX3BhWzBdKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj5kZXYgPSBydGVfcmF3ZGV2X3BtZF9hbGxvY2F0ZShkZXZfbmFtZSwgc2l6ZW9m KHN0cnVjdCB6eGRoX2dkbWFfcmF3ZGV2KSwgcnRlX3NvY2tldF9pZCgpKTs8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aWYgKGRldiA9PSBOVUxMKSB7PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5aWERIX1BNRF9MT0coRVJS LCAiVW5hYmxlIHRvIGFsbG9jYXRlIGdkbWEgcmF3ZGV2Iik7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj56eGRoX2dkbWFfcGNpX2Rldl9tdW5tYXAoKTs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnJldHVybiAtMTs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fTwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5aWERIX1BNRF9MT0coSU5GTywgIkluaXQg JXMgb24gTlVNQSBub2RlICVkLCBkZXZfaWQgaXMgJWQiLDwvcD48cD4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQkJCQkJPC9zcGFuPmRldl9uYW1lLCBydGVfc29ja2V0X2lkKCksIGRl di0mZ3Q7ZGV2X2lkKTs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj5kZXYtJmd0O2Rldl9vcHMgPSAmYW1wO3p4ZGhfZ2RtYV9yYXdkZXZfb3BzOzwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5kZXYtJmd0O2Rldmlj ZSA9ICZhbXA7dmRldi0mZ3Q7ZGV2aWNlOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj5kZXYtJmd0O2RyaXZlcl9uYW1lID0genhkaF9nZG1hX2RyaXZlcl9uYW1l OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5nZG1hZGV2ID0g enhkaF9nZG1hX3Jhd2Rldl9nZXRfcHJpdihkZXYpOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj5nZG1hZGV2LSZndDtkZXZpY2Vfc3RhdGUgPSBaWERIX0dETUFf REVWX1NUT1BQRUQ7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFu PmdkbWFkZXYtJmd0O3Jhd2RldiA9IGRldjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+Z2RtYWRldi0mZ3Q7cXVldWVfbnVtID0gWlhESF9HRE1BX1RPVEFMX0NI QU5fTlVNOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5nZG1h ZGV2LSZndDt1c2VkX251bSA9IDA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPmdkbWFkZXYtJmd0O2Jhc2VfYWRkciA9ICh1aW50cHRyX3QpZ2Rldi5iYXJfdmFb MF0gKyBaWERIX0dETUFfQkFTRV9PRkZTRVQ7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Zm9yIChpID0gMDsgaSAmbHQ7IFpYREhfR0RNQV9UT1RB TF9DSEFOX05VTTsgaSsrKSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CTwvc3Bhbj5xdWV1ZSA9ICZhbXA7KGdkbWFkZXYtJmd0O3Zxc1tpXSk7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5xdWV1ZS0mZ3Q7ZW5hYmxlID0gMDs8L3A+ PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnF1ZXVlLSZndDtxdWV1 ZV9zaXplID0gWlhESF9HRE1BX1FVRVVFX1NJWkU7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCTwvc3Bhbj5ydGVfc3BpbmxvY2tfaW5pdCgmYW1wOyhxdWV1ZS0mZ3Q7ZW5x dWV1ZV9sb2NrKSk7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFu Pn08L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5y ZXR1cm4gMDs8L3A+PHA+K308L3A+PHA+KzwvcD48cD4rc3RhdGljIGludDwvcD48cD4renhkaF9n ZG1hX3Jhd2Rldl9yZW1vdmUoX19ydGVfdW51c2VkIHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKnZk ZXYpPC9wPjxwPit7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFu PnN0cnVjdCBydGVfcmF3ZGV2ICpkZXYgPSBOVUxMOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj5pbnQgcmV0ID0gMDs8L3A+PHA+KzwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5kZXYgPSBydGVfcmF3ZGV2X3BtZF9nZXRfbmFt ZWRfZGV2KGRldl9uYW1lKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+aWYgKGRldiA9PSBOVUxMKTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+cmV0dXJuIC1FSU5WQUw7PC9wPjxwPis8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+LyogcnRlX3Jhd2Rldl9jbG9zZSBpcyBjYWxsZWQgYnkg cG1kX3JlbGVhc2UgKi88L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+cmV0ID0gcnRlX3Jhd2Rldl9wbWRfcmVsZWFzZShkZXYpOzwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAocmV0ICE9IDApIHs8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPlpYREhfUE1EX0xPRyhFUlIsICJEZXZpY2Ug Y2xlYW51cCBmYWlsZWQiKTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ PC9zcGFuPnJldHVybiAtMTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+fTwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5aWERI X1BNRF9MT0coREVCVUcsICJyYXdkZXYgJXMgcmVtb3ZlIGRvbmUhIiwgZGV2X25hbWUpOzwvcD48 cD4rPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnJldHVybiBy ZXQ7PC9wPjxwPit9PC9wPjxwPis8L3A+PHA+K3N0YXRpYyBzdHJ1Y3QgcnRlX3ZkZXZfZHJpdmVy IHp4ZGhfZ2RtYV9wbWRfZHJ2ID0gezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj4ucHJvYmUgPSB6eGRoX2dkbWFfcmF3ZGV2X3Byb2JlLDwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4ucmVtb3ZlID0genhkaF9nZG1hX3Jhd2Rl dl9yZW1vdmU8L3A+PHA+K307PC9wPjxwPis8L3A+PHA+K1JURV9QTURfUkVHSVNURVJfVkRFVihy YXdkZXZfenhkaF9nZG1hLCB6eGRoX2dkbWFfcG1kX2Rydik7PC9wPjxwPitSVEVfTE9HX1JFR0lT VEVSX0RFRkFVTFQoenhkaF9nZG1hX3BtZF9sb2d0eXBlLCBOT1RJQ0UpOzwvcD48cD5kaWZmIC0t Z2l0IGEvZHJpdmVycy9yYXcvenhkaC96eGRoX3Jhd2Rldi5oIGIvZHJpdmVycy9yYXcvenhkaC96 eGRoX3Jhd2Rldi5oPC9wPjxwPm5ldyBmaWxlIG1vZGUgMTAwNjQ0PC9wPjxwPmluZGV4IDAwMDAw MDAwMDAuLjhmMjZiNGYwMWE8L3A+PHA+LS0tIC9kZXYvbnVsbDwvcD48cD4rKysgYi9kcml2ZXJz L3Jhdy96eGRoL3p4ZGhfcmF3ZGV2Lmg8L3A+PHA+QEAgLTAsMCArMSwxNjUgQEA8L3A+PHA+Ky8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2U8L3A+PHA+KyAqIENvcHlyaWdo dCAyMDI0IFpURSBDb3Jwb3JhdGlvbjwvcD48cD4rICovPC9wPjxwPis8L3A+PHA+KyNpZm5kZWYg X19aWERIX1JBV0RFVl9IX188L3A+PHA+KyNkZWZpbmUgX19aWERIX1JBV0RFVl9IX188L3A+PHA+ KzwvcD48cD4rI2lmZGVmIF9fY3BsdXNwbHVzPC9wPjxwPitleHRlcm4gIkMiIHs8L3A+PHA+KyNl bmRpZjwvcD48cD4rPC9wPjxwPisjaW5jbHVkZSAmbHQ7cnRlX3Jhd2Rldi5oJmd0OzwvcD48cD4r I2luY2x1ZGUgJmx0O3J0ZV9zcGlubG9jay5oJmd0OzwvcD48cD4rPC9wPjxwPitleHRlcm4gaW50 IHp4ZGhfZ2RtYV9wbWRfbG9ndHlwZTs8L3A+PHA+KzwvcD48cD4rI2RlZmluZSBaWERIX1BNRF9M T0cobGV2ZWwsIGZtdCwgYXJncy4uLikgXDwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj5ydGVfbG9nKFJURV9MT0dfICMjIGxldmVsLCB6eGRoX2dkbWFfcG1kX2xv Z3R5cGUsICIlcygpOiAiIGZtdCAiXG4iLCBfX2Z1bmNfXywgIyNhcmdzKTwvcD48cD4rPC9wPjxw PisjZGVmaW5lIFpYREhfR0RNQV9WRU5ET1JJRCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMHgxY2YyPC9w PjxwPisjZGVmaW5lIFpYREhfR0RNQV9ERVZJQ0VJRCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMHg4MDQ0 PC9wPjxwPis8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX1RPVEFMX0NIQU5fTlVNJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA1ODwvcD48cD4r I2RlZmluZSBaWERIX0dETUFfUVVFVUVfU0laRSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxNjM4NCAvKiAmZ3Q7PSA2 NSo2NCozICovPC9wPjxwPisjZGVmaW5lIFpYREhfR0RNQV9SSU5HX1NJWkUmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7MzI3Njg8L3A+PHA+KzwvcD48cD4rLyogU3RhdGVzIGlmIHRoZSBzb3VyY2UgYWRkcmVz c2VzIGlzIHBoeXNpY2FsLiAqLzwvcD48cD4rI2RlZmluZSBaWERIX0dETUFfSk9CX1NSQ19QSFkm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsoMVVMKTwvcD48cD4rPC9wPjxwPisvKiBTdGF0ZXMgaWYgdGhlIGRlc3RpbmF0 aW9uIGFkZHJlc3NlcyBpcyBwaHlzaWNhbC4gKi88L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX0pP Ql9ERVNUX1BIWSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICgxVUwgJmx0OyZsdDsgMSk8L3A+PHA+KzwvcD48cD4rLyogWkYtJmd0 O0hPU1QgKi88L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX0pPQl9ESVJfVFgmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg KDFVTCAmbHQ7Jmx0OyAyKTwvcD48cD4rPC9wPjxwPisvKiBIT1NULSZndDtaRiAqLzwvcD48cD4r I2RlZmluZSBaWERIX0dETUFfSk9CX0RJUl9SWCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoMVVMICZsdDsmbHQ7IDMp PC9wPjxwPis8L3A+PHA+KyNkZWZpbmUgWlhESF9HRE1BX0pPQl9ESVJfTUFTSyZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChaWERI X0dETUFfSk9CX0RJUl9UWCB8IFpYREhfR0RNQV9KT0JfRElSX1JYKTwvcD48cD4rPC9wPjxwPitl bnVtIHp4ZGhfZ2RtYV9kZXZpY2Vfc3RhdGUgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5aWERIX0dETUFfREVWX1JVTk5JTkcsPC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPlpYREhfR0RNQV9ERVZfU1RPUFBFRDwvcD48cD4r fTs8L3A+PHA+KzwvcD48cD4rc3RydWN0IHp4ZGhfZ2RtYV9idWZmX2Rlc2MgezwvcD48cD4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50IFNyY0FkZHJfTDs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCBEc3RBZGRyX0w7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQgWHBhcmE7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQgWllfcGFyYTs8 L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCBaWV9TcmNT dGVwOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50IFpZ X0RzdFN0ZXA7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVp bnQgRXh0QWRkcjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ dWludCBMTElfQWRkcl9MOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj51aW50IExMSV9BZGRyX0g7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPnVpbnQgQ2hDb250OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj51aW50IExMSV9Vc2VyOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj51aW50IEVyckFkZHI7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPnVpbnQgQ29udHJvbDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgk8L3NwYW4+dWludCBTcmNBZGRyX0g7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQgRHN0QWRkcl9IOzwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50IFJlc2VydmVkOzwvcD48cD4rfTs8L3A+PHA+ KzwvcD48cD4rc3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZSB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQ4X3QmbmJzcDsgJm5ic3A7ZW5hYmxlOzwvcD48cD4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50OF90Jm5ic3A7ICZuYnNw O2lzX3R4cTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWlu dDE2X3QmbmJzcDsgdnFfaWQ7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPnVpbnQxNl90Jm5ic3A7IHF1ZXVlX3NpemU7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPi8qIDA6R0RNQSBuZWVkcyB0byBiZSBjb25maWd1cmVkIHRo cm91Z2ggdGhlIEFQQiBpbnRlcmZhY2UgKi88L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+dWludDE2X3QmbmJzcDsgZmxhZzs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCZuYnNwOyAmbmJzcDsgJm5ic3A7IHVzZXI7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQxNl90Jm5ic3A7 IHRjX2NudDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cnRl X3NwaW5sb2NrX3QgZW5xdWV1ZV9sb2NrOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj5zdHJ1Y3QgezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+dWludDE2X3QgYXZhaWxfaWR4OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQk8L3NwYW4+dWludDE2X3QgbGFzdF9hdmFpbF9pZHg7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5ydGVfaW92YV90IHJpbmdfbWVtOzwv cD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+Y29uc3Qgc3RydWN0 IHJ0ZV9tZW16b25lICpyaW5nX216OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+c3RydWN0IHp4ZGhfZ2RtYV9idWZmX2Rlc2MgKmRlc2M7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn0gcmluZzs8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IHs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnVpbnQxNl90Jm5ic3A7IGZyZWVfY250OzwvcD48 cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+dWludDE2X3QmbmJzcDsg ZGVxX2NudDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnVp bnQxNl90Jm5ic3A7IHBlbmRfY250OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+dWludDE2X3QmbmJzcDsgZW5xX2lkeDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnVpbnQxNl90Jm5ic3A7IGRlcV9pZHg7PC9wPjxwPis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj51aW50MTZfdCZuYnNwOyB1c2Vk X2lkeDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnN0cnVj dCB6eGRoX2dkbWFfam9iICoqam9iOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj59IHN3X3Jpbmc7PC9wPjxwPit9OzwvcD48cD4rPC9wPjxwPitzdHJ1Y3Qgenhk aF9nZG1hX3Jhd2RldiB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9z cGFuPnN0cnVjdCBydGVfZGV2aWNlICpkZXZpY2U7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPnN0cnVjdCBydGVfcmF3ZGV2ICpyYXdkZXY7PC9wPjxwPis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnRwdHJfdCBiYXNlX2FkZHI7PC9w PjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQ4X3QgcXVldWVf bnVtOyAvKiB0b3RhbCBxdWV1ZSBudW0gKi88L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+dWludDhfdCB1c2VkX251bTsmbmJzcDsgLyogdXNlZCZuYnNwOyBxdWV1 ZSBudW0gKi88L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ZW51 bSB6eGRoX2dkbWFfZGV2aWNlX3N0YXRlIGRldmljZV9zdGF0ZTs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZSB2cXNbWlhE SF9HRE1BX1RPVEFMX0NIQU5fTlVNXTs8L3A+PHA+K307PC9wPjxwPis8L3A+PHA+K3N0cnVjdCB6 eGRoX2dkbWFfam9iIHs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw YW4+dWludDY0X3Qgc3JjOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj51aW50NjRfdCBkZXN0OzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvc3Bhbj51aW50IGxlbjs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+dWludCBmbGFnczs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8 L3NwYW4+dWludDY0X3QgY254dDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi Pgk8L3NwYW4+dWludDE2X3Qgc3RhdHVzOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj51aW50MTZfdCB2cV9pZDs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgk8L3NwYW4+dm9pZCAqdXNyX2VsZW07PC9wPjxwPis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQ4X3QgZXBfaWQ7PC9wPjxwPis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQ4X3QgcGZfaWQ7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQxNl90IHZmX2lkOzwvcD48cD4rfTs8L3A+ PHA+KzwvcD48cD4rc3RydWN0IHp4ZGhfZ2RtYV9lbnFkZXEgezwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50MTZfdCB2cV9pZDs8L3A+PHA+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+c3RydWN0IHp4ZGhfZ2RtYV9qb2IgKipqb2I7 PC9wPjxwPit9OzwvcD48cD4rPC9wPjxwPitzdHJ1Y3QgenhkaF9nZG1hX2NvbmZpZyB7PC9wPjxw Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQxNl90IG1heF9od19x dWV1ZXNfcGVyX2NvcmU7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9z cGFuPnVpbnQxNl90IG1heF92cXM7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9zcGFuPmludCBmbGVfcXVldWVfcG9vbF9jbnQ7PC9wPjxwPit9OzwvcD48cD4rPC9wPjxw PitzdHJ1Y3QgenhkaF9nZG1hX3JicCB7PC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPnVpbnQgdXNlX3VsdHJhc2hvcnQ6MTs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCBlbmFibGU6MTs8L3A+PHA+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCBkcG9ydGlkOjM7PC9wPjxwPis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQgZHBmaWQ6Mzs8L3A+PHA+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCBkdmZpZDo4OyAvKnVzaW5nIHJv dXRlIGJ5IHBvcnQgZm9yIGRlc3RpbmF0aW9uICovPC9wPjxwPis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQgZHJicDoxOzwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj51aW50IHNwb3J0aWQ6Mzs8L3A+PHA+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludCBzcGZpZDozOzwvcD48cD4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50IHN2ZmlkOjg7PC9wPjxwPis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnVpbnQgc3JicDoxOzwvcD48cD4rfTs8L3A+PHA+ KzwvcD48cD4rc3RydWN0IHp4ZGhfZ2RtYV9xdWV1ZV9jb25maWcgezwvcD48cD4rPHNwYW4gc3R5 bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50IGxjb3JlX2lkOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj51aW50IGZsYWdzOzwvcD48cD4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5zdHJ1Y3QgenhkaF9nZG1hX3JicCAqcmJw OzwvcD48cD4rfTs8L3A+PHA+KzwvcD48cD4rc3RydWN0IHp4ZGhfZ2RtYV9hdHRyIHs8L3A+PHA+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dWludDE2X3QgbnVtX2h3X3F1 ZXVlczs8L3A+PHA+K307PC9wPjxwPis8L3A+PHA+K3N0YXRpYyBpbmxpbmUgc3RydWN0IHp4ZGhf Z2RtYV9yYXdkZXYgKjwvcD48cD4renhkaF9nZG1hX3Jhd2Rldl9nZXRfcHJpdihjb25zdCBzdHJ1 Y3QgcnRlX3Jhd2RldiAqcmF3ZGV2KTwvcD48cD4rezwvcD48cD4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj5yZXR1cm4gcmF3ZGV2LSZndDtkZXZfcHJpdmF0ZTs8L3A+PHA+ K308L3A+PHA+KzwvcD48cD4rdWludCB6eGRoX2dkbWFfcmVhZF9yZWcoc3RydWN0IHJ0ZV9yYXdk ZXYgKmRldiwgdWludDE2X3QgcWlkeCwgdWludCBvZmZzZXQpOzwvcD48cD4rdm9pZCB6eGRoX2dk bWFfd3JpdGVfcmVnKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYsIHVpbnQxNl90IHFpZHgsIHVpbnQg b2Zmc2V0LCB1aW50IHZhbCk7PC9wPjxwPitpbnQgenhkaF9nZG1hX2RlYnVnX2luZm9fZHVtcChz dHJ1Y3QgcnRlX3Jhd2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCk7PC9wPjxwPis8L3A+PHA+ KyNpZmRlZiBfX2NwbHVzcGx1czwvcD48cD4rfTwvcD48cD4rI2VuZGlmPC9wPjxwPis8L3A+PHA+ KyNlbmRpZiAvKiBfX1pYREhfUkFXREVWX0hfXyAqLzwvcD48cD4tLSZuYnNwOzwvcD48cD4yLjQz LjA8L3A+PHA+PGJyPjwvcD48L2Rpdj4= --=====_003_next=====-- --=====_002_next=====-- --=====_001_next=====--