From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jon Smirl Subject: Rage128/Radeon framebuffer updates Date: Fri, 15 Aug 2003 18:24:48 -0700 (PDT) Sender: linux-fbdev-devel-admin@lists.sourceforge.net Message-ID: <20030816012448.22328.qmail@web14902.mail.yahoo.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0-76664040-1060997088=:21824" Return-path: Received: from web14902.mail.yahoo.com ([216.136.225.54]) by sc8-sf-list1.sourceforge.net with smtp (Exim 3.31-VA-mm2 #1 (Debian)) id 19npoG-0004rL-00 for ; Fri, 15 Aug 2003 18:24:48 -0700 Errors-To: linux-fbdev-devel-admin@lists.sourceforge.net List-Help: List-Post: List-Subscribe: , List-Id: List-Unsubscribe: , List-Archive: To: fb-devel , dri-devel --0-76664040-1060997088=:21824 Content-Type: text/plain; charset=us-ascii Content-Id: Content-Disposition: inline linux/pci_ids.h just had a check-in which caused a big merge conflict with my patch. I have tried to sort it out. Please check Radeon PCI IDs and chip families in radeonfb driver. It is important that the PCI IDs of secondary devices be marked as such. This patch merges Rage128 and Radeon changes into a single patch. It is against current 2.5 bk r1.1188. ===== Jon Smirl jonsmirl@yahoo.com __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com --0-76664040-1060997088=:21824 Content-Type: application/octet-stream; name="ati.patch" Content-Transfer-Encoding: base64 Content-Description: ati.patch Content-Disposition: attachment; filename="ati.patch" ZGlmZiAtTnJ1IGEvZHJpdmVycy9pZGUvcGNpL2FsaW0xNXgzLmMgYi9kcml2 ZXJzL2lkZS9wY2kvYWxpbTE1eDMuYwotLS0gYS9kcml2ZXJzL2lkZS9wY2kv YWxpbTE1eDMuYwlGcmkgQXVnIDE1IDIxOjE5OjAyIDIwMDMKKysrIGIvZHJp dmVycy9pZGUvcGNpL2FsaW0xNXgzLmMJRnJpIEF1ZyAxNSAyMToxOTowMiAy MDAzCkBAIC04NjAsNyArODYwLDcgQEAKIHsKIAlpZGVfcGNpX2RldmljZV90 ICpkID0gJmFsaTE1eDNfY2hpcHNldHNbaWQtPmRyaXZlcl9kYXRhXTsKIAkK LQlpZihwY2lfZmluZF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9E RVZJQ0VfSURfQVRJX1JBREVPTl9JR1AsIE5VTEwpKQorCWlmKHBjaV9maW5k X2RldmljZShQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElf UlMxMDAsIE5VTEwpKQogCQlwcmludGsoS0VSTl9FUlIgIldhcm5pbmc6IEFU SSBSYWRlb24gSUdQIE5vcnRoYnJpZGdlIGlzIG5vdCB5ZXQgZnVsbHkgdGVz dGVkLlxuIik7CiAKICNpZiBkZWZpbmVkKENPTkZJR19TUEFSQzY0KQpkaWZm IC1OcnUgYS9kcml2ZXJzL3ZpZGVvL2F0eS9hdHkxMjhmYi5jIGIvZHJpdmVy cy92aWRlby9hdHkvYXR5MTI4ZmIuYwotLS0gYS9kcml2ZXJzL3ZpZGVvL2F0 eS9hdHkxMjhmYi5jCUZyaSBBdWcgMTUgMjE6MTk6MDIgMjAwMworKysgYi9k cml2ZXJzL3ZpZGVvL2F0eS9hdHkxMjhmYi5jCUZyaSBBdWcgMTUgMjE6MTk6 MDIgMjAwMwpAQCAtMjQsNiArMjQsMTAgQEAKICAqCQkgIFBhdWwgTXVuZHQg CiAgKgkJICAJLSBQQ0kgaG90cGx1ZwogICoKKyAqCQkgIEpvbiBTbWlybCA8 am9uc21pcmxAeWFob28uY29tPgorICogCQkJLSBQQ0kgSUQgdXBkYXRlCisg KiAJCQktIHJlcGxhY2UgUk9NIEJJT1Mgc2VhcmNoCisgKgogICogIEJhc2Vk IG9mZiBvZiBHZWVydCdzIGF0eWZiLmMgYW5kIHZmYi5jLgogICoKICAqICBU T0RPOgpAQCAtNDMsNiArNDcsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvY29u ZmlnLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8 bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwu aD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4 L3N0cmluZy5oPgpAQCAtMTM2LDggKzE0MSwyNSBAQAogLyogQ2hpcCBnZW5l cmF0aW9ucyAqLwogZW51bSB7CiAJcmFnZV8xMjgsCisJcmFnZV8xMjhfcGNp LAogCXJhZ2VfMTI4X3BybywKLQlyYWdlX00zCisJcmFnZV8xMjhfcHJvX3Bj aSwKKwlyYWdlX00zLAorCXJhZ2VfTTNfcGNpLAorCXJhZ2VfTTQsCisJcmFn ZV8xMjhfdWx0cmEsCit9OworCisvKiBNdXN0IG1hdGNoIGFib3ZlIGVudW0g Ki8KK3N0YXRpYyBjb25zdCBjaGFyICpyMTI4X2ZhbWlseVtdIF9fZGV2aW5p dGRhdGEgPSB7CisJIkFHUCIsCisJIlBDSSIsCisJIlBSTyBBR1AiLAorCSJQ Uk8gUENJIiwKKwkiTTMgQUdQIiwKKwkiTTMgUENJIiwKKwkiTTQgQUdQIiwK KwkiVWx0cmEgQUdQIiwKIH07CiAKIC8qCkBAIC0xNDksMzIgKzE3MSwxMDAg QEAKIAogLyogc3VwcG9ydGVkIFJhZ2UxMjggY2hpcHNldHMgKi8KIHN0YXRp YyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBhdHkxMjhfcGNpX3RibFtdID0gewot CXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0Ux MjhfUkUsCi0JICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdl XzEyOCB9LAotCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURf QVRJX1JBR0UxMjhfUkYsCi0JICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAw LCAwLCByYWdlXzEyOCB9LAotCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9E RVZJQ0VfSURfQVRJX1JBR0UxMjhfUkksCi0JICBQQ0lfQU5ZX0lELCBQQ0lf QU5ZX0lELCAwLCAwLCByYWdlXzEyOCB9LAotCXsgUENJX1ZFTkRPUl9JRF9B VEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfUkssCi0JICBQQ0lfQU5Z X0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEyOCB9LAotCXsgUENJX1ZF TkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfUkwsCi0J ICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEyOCB9LAot CXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JhZ2Ux MjhfUEQsCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9B VElfUkFHRTEyOF9MRSwKKwkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAs IDAsIHJhZ2VfTTNfcGNpIH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJ X0RFVklDRV9JRF9BVElfUkFHRTEyOF9MRiwKKwkgIFBDSV9BTllfSUQsIFBD SV9BTllfSUQsIDAsIDAsIHJhZ2VfTTMgfSwKKwl7IFBDSV9WRU5ET1JfSURf QVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X01GLAorCSAgUENJX0FO WV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgcmFnZV9NNCB9LAorCXsgUENJX1ZF TkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfTUwsCisJ ICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlX000IH0sCisJ eyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFHRTEy OF9QQSwKKwkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHJhZ2Vf MTI4X3BybyB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0Vf SURfQVRJX1JBR0UxMjhfUEIsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCByYWdlXzEyOF9wcm8gfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJ LCBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1BDLAorCSAgUENJX0FOWV9J RCwgUENJX0FOWV9JRCwgMCwgMCwgcmFnZV8xMjhfcHJvIH0sCisJeyBQQ0lf VkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9QRCwK KwkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHJhZ2VfMTI4X3By b19wY2kgfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X1BFLAogCSAgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwg MCwgMCwgcmFnZV8xMjhfcHJvIH0sCiAJeyBQQ0lfVkVORE9SX0lEX0FUSSwg UENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9QRiwKIAkgIFBDSV9BTllfSUQs IFBDSV9BTllfSUQsIDAsIDAsIHJhZ2VfMTI4X3BybyB9LAotCXsgUENJX1ZF TkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfUFIsCisJ eyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFHRTEy OF9QRywKKwkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHJhZ2Vf MTI4X3BybyB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0Vf SURfQVRJX1JBR0UxMjhfUEgsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCByYWdlXzEyOF9wcm8gfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJ LCBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1BJLAorCSAgUENJX0FOWV9J RCwgUENJX0FOWV9JRCwgMCwgMCwgcmFnZV8xMjhfcHJvIH0sCisJeyBQQ0lf VkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9QSiwK KwkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHJhZ2VfMTI4X3By byB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJ X1JBR0UxMjhfUEssCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAw LCByYWdlXzEyOF9wcm8gfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lf REVWSUNFX0lEX0FUSV9SQUdFMTI4X1BMLAorCSAgUENJX0FOWV9JRCwgUENJ X0FOWV9JRCwgMCwgMCwgcmFnZV8xMjhfcHJvIH0sCisJeyBQQ0lfVkVORE9S X0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9QTSwKKwkgIFBD SV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHJhZ2VfMTI4X3BybyB9LAor CXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0Ux MjhfUE4sCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdl XzEyOF9wcm8gfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNF X0lEX0FUSV9SQUdFMTI4X1BPLAogCSAgUENJX0FOWV9JRCwgUENJX0FOWV9J RCwgMCwgMCwgcmFnZV8xMjhfcHJvIH0sCiAJeyBQQ0lfVkVORE9SX0lEX0FU SSwgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9QUCwKKwkgIFBDSV9BTllf SUQsIFBDSV9BTllfSUQsIDAsIDAsIHJhZ2VfMTI4X3Byb19wY2kgfSwKKwl7 IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4 X1BRLAogCSAgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgcmFnZV8x MjhfcHJvIH0sCi0JeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9J RF9BVElfUkFHRTEyOF9VMywKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lf REVWSUNFX0lEX0FUSV9SQUdFMTI4X1BSLAorCSAgUENJX0FOWV9JRCwgUENJ X0FOWV9JRCwgMCwgMCwgcmFnZV8xMjhfcHJvX3BjaSB9LAorCXsgUENJX1ZF TkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfUFMsCiAJ ICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEyOF9wcm8g fSwKLQl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9S QUdFMTI4X1UxLAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0Vf SURfQVRJX1JBR0UxMjhfUFQsCiAJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCByYWdlXzEyOF9wcm8gfSwKLQl7IFBDSV9WRU5ET1JfSURfQVRJ LCBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X0xFLAotCSAgUENJX0FOWV9J RCwgUENJX0FOWV9JRCwgMCwgMCwgcmFnZV9NMyB9LAotCXsgUENJX1ZFTkRP Ul9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfTEYsCi0JICBQ Q0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlX00zIH0sCisJeyBQ Q0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9Q VSwKKwkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHJhZ2VfMTI4 X3BybyB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURf QVRJX1JBR0UxMjhfUFYsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAw LCAwLCByYWdlXzEyOF9wcm8gfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQ Q0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1BXLAorCSAgUENJX0FOWV9JRCwg UENJX0FOWV9JRCwgMCwgMCwgcmFnZV8xMjhfcHJvIH0sCisJeyBQQ0lfVkVO RE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9QWCwKKwkg IFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHJhZ2VfMTI4X3BybyB9 LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JB R0UxMjhfUkUsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBy YWdlXzEyOF9wY2kgfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVW SUNFX0lEX0FUSV9SQUdFMTI4X1JGLAorCSAgUENJX0FOWV9JRCwgUENJX0FO WV9JRCwgMCwgMCwgcmFnZV8xMjggfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJ LCBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1JHLAorCSAgUENJX0FOWV9J RCwgUENJX0FOWV9JRCwgMCwgMCwgcmFnZV8xMjggfSwKKwl7IFBDSV9WRU5E T1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1JLLAorCSAg UENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgcmFnZV8xMjhfcGNpIH0s CisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFH RTEyOF9STCwKKwkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHJh Z2VfMTI4IH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9J RF9BVElfUkFHRTEyOF9TRSwKKwkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQs IDAsIDAsIHJhZ2VfMTI4IH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJ X0RFVklDRV9JRF9BVElfUkFHRTEyOF9TRiwKKwkgIFBDSV9BTllfSUQsIFBD SV9BTllfSUQsIDAsIDAsIHJhZ2VfMTI4X3BjaSB9LAorCXsgUENJX1ZFTkRP Ul9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfU0csCisJICBQ Q0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEyOCB9LAorCXsg UENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhf U0gsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEy OCB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJ X1JBR0UxMjhfU0ssCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAw LCByYWdlXzEyOCB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJ Q0VfSURfQVRJX1JBR0UxMjhfU0wsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5Z X0lELCAwLCAwLCByYWdlXzEyOCB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEks IFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfU00sCisJICBQQ0lfQU5ZX0lE LCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEyOCB9LAorCXsgUENJX1ZFTkRP Ul9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfU04sCisJICBQ Q0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEyOCB9LAorCXsg UENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhf VEYsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEy OF91bHRyYSB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0Vf SURfQVRJX1JBR0UxMjhfVEwsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCByYWdlXzEyOF91bHRyYSB9LAorCXsgUENJX1ZFTkRPUl9JRF9B VEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfVFIsCisJICBQQ0lfQU5Z X0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEyOF91bHRyYSB9LAorCXsg UENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhf VFMsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEy OF91bHRyYSB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0Vf SURfQVRJX1JBR0UxMjhfVFQsCisJICBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCByYWdlXzEyOF91bHRyYSB9LAorCXsgUENJX1ZFTkRPUl9JRF9B VEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfVFUsCisJICBQQ0lfQU5Z X0lELCBQQ0lfQU5ZX0lELCAwLCAwLCByYWdlXzEyOF91bHRyYSB9LAogCXsg MCwgfQogfTsKIApAQCAtMjUwLDE0ICszNDAsNyBAQAogCS5hY2NlbAkJPSBG Ql9BQ0NFTF9BVElfUkFHRTEyOCwKIH07CiAKLSNpZmRlZiBNT0RVTEUKIHN0 YXRpYyBjaGFyICptb2RlIF9faW5pdGRhdGEgPSBOVUxMOwotI2lmZGVmIENP TkZJR19NVFJSCi1zdGF0aWMgaW50ICBub210cnIgX19pbml0ZGF0YSA9IDA7 Ci0jZW5kaWYgLyogQ09ORklHX01UUlIgKi8KLSNlbmRpZiAvKiBNT0RVTEUg Ki8KLQotc3RhdGljIGNoYXIgKm1vZGVfb3B0aW9uIF9faW5pdGRhdGEgPSBO VUxMOwogCiAjaWZkZWYgQ09ORklHX1BQQ19QTUFDCiBzdGF0aWMgaW50IGRl ZmF1bHRfdm1vZGUgX19pbml0ZGF0YSA9IFZNT0RFXzEwMjRfNzY4XzYwOwpA QCAtMzc0LDcgKzQ1Nyw3IEBACiAjaWYgIWRlZmluZWQoQ09ORklHX1BQQykg JiYgIWRlZmluZWQoX19zcGFyY19fKQogc3RhdGljIHZvaWQgX19pbml0IGF0 eTEyOF9nZXRfcGxsaW5mbyhzdHJ1Y3QgYXR5MTI4ZmJfcGFyICpwYXIsCiAJ CQkJICAgICAgdm9pZCAqYmlvcyk7Ci1zdGF0aWMgdm9pZCBfX2luaXQgKmF0 eTEyOF9tYXBfUk9NKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKK3N0YXRpYyB2 b2lkIF9faW5pdCAqYXR5MTI4X21hcF9ST00oc3RydWN0IHBjaV9kZXYgKnBk ZXYsIGNvbnN0IHN0cnVjdCBhdHkxMjhmYl9wYXIgKnBhcik7CiBzdGF0aWMg dm9pZCBfX2luaXQgYXR5MTI4X3VubWFwX1JPTShzdHJ1Y3QgcGNpX2RldiAq ZGV2LCB2b2lkICogcm9tKTsKICNlbmRpZgogc3RhdGljIHZvaWQgYXR5MTI4 X3RpbWluZ3Moc3RydWN0IGF0eTEyOGZiX3BhciAqcGFyKTsKQEAgLTE0MTAs NjEgKzE0OTMsNiBAQAogCXJldHVybiAwOwogfQogCi1pbnQgX19pbml0Ci1h dHkxMjhmYl9zZXR1cChjaGFyICpvcHRpb25zKQotewotCWNoYXIgKnRoaXNf b3B0OwotCi0JaWYgKCFvcHRpb25zIHx8ICEqb3B0aW9ucykKLQkJcmV0dXJu IDA7Ci0KLQl3aGlsZSAoKHRoaXNfb3B0ID0gc3Ryc2VwKCZvcHRpb25zLCAi LCIpKSAhPSBOVUxMKSB7Ci0jaWZkZWYgQ09ORklHX1BNQUNfUEJPT0sKLQkJ aWYgKCFzdHJuY21wKHRoaXNfb3B0LCAibGNkOiIsIDQpKSB7Ci0JCQlkZWZh dWx0X2xjZF9vbiA9IHNpbXBsZV9zdHJ0b3VsKHRoaXNfb3B0KzQsIE5VTEws IDApOwotCQkJY29udGludWU7Ci0JCX0gZWxzZSBpZiAoIXN0cm5jbXAodGhp c19vcHQsICJjcnQ6IiwgNCkpIHsKLQkJCWRlZmF1bHRfY3J0X29uID0gc2lt cGxlX3N0cnRvdWwodGhpc19vcHQrNCwgTlVMTCwgMCk7Ci0JCQljb250aW51 ZTsKLQkJfQotI2VuZGlmCi0jaWZkZWYgQ09ORklHX01UUlIKLQkJaWYoIXN0 cm5jbXAodGhpc19vcHQsICJub210cnIiLCA2KSkgewotCQkJbXRyciA9IDA7 Ci0JCQljb250aW51ZTsKLQkJfQotI2VuZGlmCi0jaWZkZWYgQ09ORklHX1BQ Q19QTUFDCi0JCS8qIHZtb2RlIGFuZCBjbW9kZSBkZXByZWNhdGVkICovCi0J CWlmICghc3RybmNtcCh0aGlzX29wdCwgInZtb2RlOiIsIDYpKSB7Ci0JCQl1 bnNpZ25lZCBpbnQgdm1vZGUgPSBzaW1wbGVfc3RydG91bCh0aGlzX29wdCs2 LCBOVUxMLCAwKTsKLQkJCWlmICh2bW9kZSA+IDAgJiYgdm1vZGUgPD0gVk1P REVfTUFYKQotCQkJCWRlZmF1bHRfdm1vZGUgPSB2bW9kZTsKLQkJCWNvbnRp bnVlOwotCQl9IGVsc2UgaWYgKCFzdHJuY21wKHRoaXNfb3B0LCAiY21vZGU6 IiwgNikpIHsKLQkJCXVuc2lnbmVkIGludCBjbW9kZSA9IHNpbXBsZV9zdHJ0 b3VsKHRoaXNfb3B0KzYsIE5VTEwsIDApOwotCQkJc3dpdGNoIChjbW9kZSkg ewotCQkJY2FzZSAwOgotCQkJY2FzZSA4OgotCQkJCWRlZmF1bHRfY21vZGUg PSBDTU9ERV84OwotCQkJCWJyZWFrOwotCQkJY2FzZSAxNToKLQkJCWNhc2Ug MTY6Ci0JCQkJZGVmYXVsdF9jbW9kZSA9IENNT0RFXzE2OwotCQkJCWJyZWFr OwotCQkJY2FzZSAyNDoKLQkJCWNhc2UgMzI6Ci0JCQkJZGVmYXVsdF9jbW9k ZSA9IENNT0RFXzMyOwotCQkJCWJyZWFrOwotCQkJfQotCQkJY29udGludWU7 Ci0JCX0KLSNlbmRpZiAvKiBDT05GSUdfUFBDX1BNQUMgKi8KLQkJbW9kZV9v cHRpb24gPSB0aGlzX29wdDsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KIAogLyoK ICAqICBJbml0aWFsaXNhdGlvbgpAQCAtMTQ3Niw3ICsxNTA0LDcgQEAKIAlz dHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsK IAlzdHJ1Y3QgYXR5MTI4ZmJfcGFyICpwYXIgPSBpbmZvLT5wYXI7CiAJc3Ry dWN0IGZiX3Zhcl9zY3JlZW5pbmZvIHZhcjsKLQljaGFyIHZpZGVvX2NhcmRb MjVdOworCWNoYXIgdmlkZW9fY2FyZFtERVZJQ0VfTkFNRV9TSVpFXTsKIAl1 OCBjaGlwX3JldjsKIAl1MzIgZGFjOwogCkBAIC0xNDg2LDQzICsxNTE0LDEz IEBACiAJLyogR2V0IHRoZSBjaGlwIHJldmlzaW9uICovCiAJY2hpcF9yZXYg PSAoYXR5X2xkX2xlMzIoQ09ORklHX0NOVEwpID4+IDE2KSAmIDB4MUY7CiAK LQlzd2l0Y2ggKHBkZXYtPmRldmljZSkgewotCQljYXNlIFBDSV9ERVZJQ0Vf SURfQVRJX1JBR0UxMjhfUkU6Ci0JCQlzdHJjcHkodmlkZW9fY2FyZCwgIlJh Z2UxMjggUkUgKFBDSSkiKTsKLQkJCWJyZWFrOwotCQljYXNlIFBDSV9ERVZJ Q0VfSURfQVRJX1JBR0UxMjhfUkY6Ci0JCQlzdHJjcHkodmlkZW9fY2FyZCwg IlJhZ2UxMjggUkYgKEFHUCkiKTsKLQkJCWJyZWFrOwotCQljYXNlIFBDSV9E RVZJQ0VfSURfQVRJX1JBR0UxMjhfUks6Ci0JCQlzdHJjcHkodmlkZW9fY2Fy ZCwgIlJhZ2UxMjggUksgKFBDSSkiKTsKLQkJCWJyZWFrOwotCQljYXNlIFBD SV9ERVZJQ0VfSURfQVRJX1JBR0UxMjhfUkw6Ci0JCQlzdHJjcHkodmlkZW9f Y2FyZCwgIlJhZ2UxMjggUkwgKEFHUCkiKTsKLQkJCWJyZWFrOwotCQljYXNl IFBDSV9ERVZJQ0VfSURfQVRJX1JhZ2UxMjhfUEQ6Ci0JCQlzdHJjcHkodmlk ZW9fY2FyZCwgIlJhZ2UxMjggUHJvIFBEIChQQ0kpIik7Ci0JCQlicmVhazsK LQkJY2FzZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1BGOgotCQkJc3Ry Y3B5KHZpZGVvX2NhcmQsICJSYWdlMTI4IFBybyBQRiAoQUdQKSIpOwotCQkJ YnJlYWs7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9QUjoK LQkJCXN0cmNweSh2aWRlb19jYXJkLCAiUmFnZTEyOCBQcm8gUFIgKFBDSSki KTsKLQkJCWJyZWFrOwotCQljYXNlIFBDSV9ERVZJQ0VfSURfQVRJX1JBR0Ux MjhfVTM6Ci0JCQlzdHJjcHkodmlkZW9fY2FyZCwgIlJhZ2UxMjggUHJvIFRS IChBR1ApIik7Ci0JCQlicmVhazsKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0FU SV9SQUdFMTI4X1UxOgotCQkJc3RyY3B5KHZpZGVvX2NhcmQsICJSYWdlMTI4 IFBybyBURiAoQUdQKSIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgUENJX0RFVklD RV9JRF9BVElfUkFHRTEyOF9MRToKLQkJCXN0cmNweSh2aWRlb19jYXJkLCAi UmFnZSBNb2JpbGl0eSBNMyAoUENJKSIpOwotCQkJYnJlYWs7Ci0JCWNhc2Ug UENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9MRjoKLQkJCXN0cmNweSh2aWRl b19jYXJkLCAiUmFnZSBNb2JpbGl0eSBNMyAoQUdQKSIpOwotCQkJYnJlYWs7 Ci0JCWRlZmF1bHQ6Ci0JCQlyZXR1cm4gLUVOT0RFVjsKLQl9CisJc3RyY3B5 KHZpZGVvX2NhcmQsICJSYWdlMTI4IFhYICIpOworCXZpZGVvX2NhcmRbOF0g PSBlbnQtPmRldmljZSA+PiA4OworCXZpZGVvX2NhcmRbOV0gPSBlbnQtPmRl dmljZSAmIDB4RkY7CisJICAgIAorCS8qIHJhbmdlIGNoZWNrIHRvIG1ha2Ug c3VyZSAqLworCWlmIChlbnQtPmRyaXZlcl9kYXRhIDwgKHNpemVvZihyMTI4 X2ZhbWlseSkvc2l6ZW9mKGNoYXIgKikpKQorCSAgICBzdHJuY2F0KHZpZGVv X2NhcmQsIHIxMjhfZmFtaWx5W2VudC0+ZHJpdmVyX2RhdGFdLCBzaXplb2Yo dmlkZW9fY2FyZCkpOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiYXR5MTI4ZmI6 ICVzIFtjaGlwIHJldiAweCV4XSAiLCB2aWRlb19jYXJkLCBjaGlwX3Jldik7 CiAKQEAgLTE1MzYsMTcgKzE1MzQsMTcgQEAKIAkvKiBmaWxsIGluIGluZm8g Ki8KIAlpbmZvLT5mYm9wcyA9ICZhdHkxMjhmYl9vcHM7CiAJaW5mby0+Zmxh Z3MgPSBGQklORk9fRkxBR19ERUZBVUxUOwotCisJCiAjaWZkZWYgQ09ORklH X1BNQUNfUEJPT0sKIAlwYXItPmxjZF9vbiA9IGRlZmF1bHRfbGNkX29uOwog CXBhci0+Y3J0X29uID0gZGVmYXVsdF9jcnRfb247CiAjZW5kaWYKLQorCQog CXZhciA9IGRlZmF1bHRfdmFyOwogI2lmZGVmIENPTkZJR19QUENfUE1BQwog CWlmIChfbWFjaGluZSA9PSBfTUFDSF9QbWFjKSB7Ci0JCWlmIChtb2RlX29w dGlvbikgewotCQkJaWYgKCFtYWNfZmluZF9tb2RlKCZ2YXIsIGluZm8sIG1v ZGVfb3B0aW9uLCA4KSkKKwkJaWYgKG1vZGUpIHsKKwkJCWlmICghbWFjX2Zp bmRfbW9kZSgmdmFyLCBpbmZvLCBtb2RlLCA4KSkKIAkJCQl2YXIgPSBkZWZh dWx0X3ZhcjsKIAkJfSBlbHNlIHsKIAkJCWlmIChkZWZhdWx0X3Ztb2RlIDw9 IDAgfHwgZGVmYXVsdF92bW9kZSA+IFZNT0RFX01BWCkKQEAgLTE1NzUsOCAr MTU3MywxMiBAQAogCQkJaWYgKG1hY2hpbmVfaXNfY29tcGF0aWJsZSgiUG93 ZXJCb29rMywyIikpCiAJCQkJZGVmYXVsdF92bW9kZSA9IFZNT0RFXzExNTJf NzY4XzYwOwogCQotCQkJaWYgKGRlZmF1bHRfY21vZGUgPCBDTU9ERV84IHx8 IGRlZmF1bHRfY21vZGUgPiBDTU9ERV8zMikKLQkJCQlkZWZhdWx0X2Ntb2Rl ID0gQ01PREVfODsKKwkJCWlmIChkZWZhdWx0X2Ntb2RlID4gMTYpIAorCQkJ ICAgIGRlZmF1bHRfY21vZGUgPSBDTU9ERV8zMjsKKwkJCWVsc2UgaWYgKGRl ZmF1bHRfY21vZGUgPiA4KSAKKwkJCSAgICBkZWZhdWx0X2Ntb2RlID0gQ01P REVfMTY7CisJCQllbHNlIAorCQkJICAgIGRlZmF1bHRfY21vZGUgPSBDTU9E RV84OwogCiAJCQlpZiAobWFjX3Ztb2RlX3RvX3ZhcihkZWZhdWx0X3Ztb2Rl LCBkZWZhdWx0X2Ntb2RlLCAmdmFyKSkKIAkJCQl2YXIgPSBkZWZhdWx0X3Zh cjsKQEAgLTE1ODQsOSArMTU4NiwxMCBAQAogCX0gZWxzZQogI2VuZGlmIC8q IENPTkZJR19QUENfUE1BQyAqLwogCXsKLQkJaWYgKGZiX2ZpbmRfbW9kZSgm dmFyLCBpbmZvLCBtb2RlX29wdGlvbiwgTlVMTCwgMCwKLQkJCQkgJmRlZmF1 bHRtb2RlLCA4KSA9PSAwKQotCQkJdmFyID0gZGVmYXVsdF92YXI7CisJCWlm IChtb2RlKQorCQkJaWYgKGZiX2ZpbmRfbW9kZSgmdmFyLCBpbmZvLCBtb2Rl LCBOVUxMLCAKKwkJCQkJIDAsICZkZWZhdWx0bW9kZSwgOCkgPT0gMCkKKwkJ CQl2YXIgPSBkZWZhdWx0X3ZhcjsKIAl9CiAKIAl2YXIuYWNjZWxfZmxhZ3Mg Jj0gfkZCX0FDQ0VMRl9URVhUOwpAQCAtMTYxNCw3ICsxNjE3LDcgQEAKIAl2 YXIuYWN0aXZhdGUgPSBGQl9BQ1RJVkFURV9OT1c7CiAKIAlhdHkxMjhfaW5p dF9lbmdpbmUocGFyKTsKLQorCQogCWlmIChyZWdpc3Rlcl9mcmFtZWJ1ZmZl cihpbmZvKSA8IDApCiAJCXJldHVybiAwOwogCkBAIC0xNzE2LDcgKzE3MTks NyBAQAogCX0KIAogI2lmICFkZWZpbmVkKENPTkZJR19QUEMpICYmICFkZWZp bmVkKF9fc3BhcmNfXykKLQlpZiAoIShiaW9zID0gYXR5MTI4X21hcF9ST00o cGRldikpKQorCWlmICghKGJpb3MgPSBhdHkxMjhfbWFwX1JPTShwZGV2LCBw YXIpKSkKIAkJcHJpbnRrKEtFUk5fSU5GTyAiYXR5MTI4ZmI6IEJJT1Mgbm90 IGxvY2F0ZWQsIGd1ZXNzaW5nIHRpbWluZ3MuXG4iKTsKIAllbHNlIHsKIAkJ cHJpbnRrKEtFUk5fSU5GTyAiYXR5MTI4ZmI6IFJhZ2UxMjggQklPUyBsb2Nh dGVkIGF0ICVseFxuIiwKQEAgLTE3NzYsOCArMTc3OSw2IEBACiAKIAlyZWxl YXNlX21lbV9yZWdpb24ocGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDApLAog CQkJICAgcGNpX3Jlc291cmNlX2xlbihwZGV2LCAwKSk7Ci0JcmVsZWFzZV9t ZW1fcmVnaW9uKHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAxKSwKLQkJCSAg IHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMSkpOwogCXJlbGVhc2VfbWVtX3Jl Z2lvbihwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMiksCiAJCQkgICBwY2lf cmVzb3VyY2VfbGVuKHBkZXYsIDIpKTsKICNpZmRlZiBDT05GSUdfUE1BQ19Q Qk9PSwpAQCAtMTc5MCwzMyArMTc5MSw0NyBAQAogCiAvKiBQUEMgYW5kIFNw YXJjIGNhbm5vdCByZWFkIHZpZGVvIFJPTSAqLwogI2lmICFkZWZpbmVkKENP TkZJR19QUEMpICYmICFkZWZpbmVkKF9fc3BhcmNfXykKLXN0YXRpYyB2b2lk ICogX19pbml0IGF0eTEyOF9tYXBfUk9NKHN0cnVjdCBwY2lfZGV2ICpkZXYp CitzdGF0aWMgdm9pZCAqIF9faW5pdCBhdHkxMjhfbWFwX1JPTShzdHJ1Y3Qg cGNpX2RldiAqZGV2LCBjb25zdCBzdHJ1Y3QgYXR5MTI4ZmJfcGFyICpwYXIp CiB7CiAJLy8gSWYgdGhpcyBpcyBhIHByaW1hcnkgY2FyZCwgdGhlcmUgaXMg YSBzaGFkb3cgY29weSBvZiB0aGUKIAkvLyBST00gc29tZXdoZXJlIGluIHRo ZSBmaXJzdCBtZWcuIFdlIHdpbGwganVzdCBpZ25vcmUgdGhlIGNvcHkKIAkv LyBhbmQgdXNlIHRoZSBST00gZGlyZWN0bHkuCiAJCisgICAgCS8qIEZpeCBm cm9tIEFUSSBmb3IgcHJvYmxlbSB3aXRoIFJhZ2UxMjggaGFyZHdhcmUgbm90 IGxlYXZpbmcgUk9NIGVuYWJsZWQgKi8KKyAgICAJdW5zaWduZWQgaW50IHRl bXA7CisJdGVtcCA9IGF0eV9sZF9sZTMyKFJBR0UxMjhfTVBQX1RCX0NPTkZJ Ryk7CisJdGVtcCAmPSAweDAwZmZmZmZmdTsKKwl0ZW1wIHw9IDB4MDQgPDwg MjQ7CisJYXR5X3N0X2xlMzIoUkFHRTEyOF9NUFBfVEJfQ09ORklHLCB0ZW1w KTsKKwl0ZW1wID0gYXR5X2xkX2xlMzIoUkFHRTEyOF9NUFBfVEJfQ09ORklH KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKIAkvLyBubyBuZWVkIHRvIHNlYXJjaCBm b3IgdGhlIFJPTSwganVzdCBhc2sgdGhlIGNhcmQgd2hlcmUgaXQgaXMuCiAJ c3RydWN0IHJlc291cmNlICpyID0gJmRldi0+cmVzb3VyY2VbUENJX1JPTV9S RVNPVVJDRV07Ci0JdW5zaWduZWQgY2hhciAqYWRkcjsKKwl2b2lkICpyb207 CiAJCiAJLy8gYXNzaWduIHRoZSBST00gYW4gYWRkcmVzcyBpZiBpdCBkb2Vz bid0IGhhdmUgb25lCiAJaWYgKHItPnN0YXJ0ID09IDApCiAJCXBjaV9hc3Np Z25fcmVzb3VyY2UoZGV2LCBQQ0lfUk9NX1JFU09VUkNFKTsKIAkKIAkvLyBl bmFibGUgaWYgbmVlZGVkCi0JaWYgKCEoci0+ZmxhZ3MgJiBQQ0lfUk9NX0FE RFJFU1NfRU5BQkxFKSkKKwlpZiAoIShyLT5mbGFncyAmIFBDSV9ST01fQURE UkVTU19FTkFCTEUpKSB7CiAJCXBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2 LCBkZXYtPnJvbV9iYXNlX3JlZywgci0+c3RhcnQgfCBQQ0lfUk9NX0FERFJF U1NfRU5BQkxFKTsKKwkJci0+ZmxhZ3MgfD0gUENJX1JPTV9BRERSRVNTX0VO QUJMRTsKKwl9CiAJCi0JYWRkciA9IGlvcmVtYXAoci0+c3RhcnQsIHItPmVu ZCAtIHItPnN0YXJ0ICsgMSk7CisJcm9tID0gaW9yZW1hcChyLT5zdGFydCwg ci0+ZW5kIC0gci0+c3RhcnQgKyAxKTsKKwlpZiAoIXJvbSkgeworCQlwcmlu dGsoS0VSTl9FUlIgImF0eTEyOGZiOiBST00gZmFpbGVkIHRvIG1hcFxuIik7 CisJCXJldHVybiBOVUxMOworCX0KIAkKIAkvLyBWZXJ5IHNpbXBsZSB0ZXN0 IHRvIG1ha2Ugc3VyZSBpdCBhcHBlYXJlZAotCWlmIChhZGRyICYmICgqYWRk ciAhPSAweDU1KSkgewotCQlwcmludGsoImF0eTEyOGZiOiBJbnZhbGlkIFJP TSBzaWduYXR1cmUgJXhcbiIsICphZGRyKTsKLQkJaW91bm1hcChhZGRyKTsK KwlpZiAocmVhZGIocm9tKSAhPSAweDU1KSB7CisJCXByaW50ayhLRVJOX0VS UiAiYXR5MTI4ZmI6IEludmFsaWQgUk9NIHNpZ25hdHVyZSAleCBzaG91bGQg YmUgMHg1NVxuIiwgcmVhZGIocm9tKSk7CisJCWF0eTEyOF91bm1hcF9ST00o ZGV2LCByb20pOwogCQlyZXR1cm4gTlVMTDsKIAl9Ci0JcmV0dXJuICh2b2lk ICopYWRkcjsKKwlyZXR1cm4gcm9tOwogfQogCiBzdGF0aWMgdm9pZCBfX2lu aXQgYXR5MTI4X3VubWFwX1JPTShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB2b2lk ICogcm9tKQpAQCAtMTgyNiwxMCArMTg0MSwxMiBAQAogCQogCWlvdW5tYXAo cm9tKTsKIAkKLQlyLT5mbGFncyAmPSAhUENJX1JPTV9BRERSRVNTX0VOQUJM RTsKKwlyLT5mbGFncyAmPSB+UENJX1JPTV9BRERSRVNTX0VOQUJMRTsKIAly LT5lbmQgLT0gci0+c3RhcnQ7CiAJci0+c3RhcnQgPSAwOworCS8qIFRoaXMg d2lsbCBkaXNhYmxlIGFuZCBzZXQgYWRkcmVzcyB0byB1bmFzc2lnbmVkICov CiAJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIGRldi0+cm9tX2Jhc2Vf cmVnLCAwKTsKKwlyZWxlYXNlX3Jlc291cmNlKHIpOwogfQogCiBzdGF0aWMg dm9pZCBfX2luaXQKQEAgLTIzMzksMTMgKzIzNTYsMzAgQEAKIAlwY2lfdW5y ZWdpc3Rlcl9kcml2ZXIoJmF0eTEyOGZiX2RyaXZlcik7CiB9CiAKKyNpZmRl ZiBNT0RVTEUKK21vZHVsZV9pbml0KGF0eTEyOGZiX2luaXQpOworbW9kdWxl X2V4aXQoYXR5MTI4ZmJfZXhpdCk7CisjZW5kaWYKKwogTU9EVUxFX0FVVEhP UigiKGMpMTk5OS0yMDAzIEJyYWQgRG91Z2xhcyA8YnJhZEBuZXJ1by5jb20+ Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkZCRGV2IGRyaXZlciBmb3IgQVRJ IFJhZ2UxMjggLyBQcm8gY2FyZHMiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwi KTsKLU1PRFVMRV9QQVJNKG1vZGUsICJzIik7Cittb2R1bGVfcGFyYW0obW9k ZSwgY2hhcnAsIDApOwogTU9EVUxFX1BBUk1fREVTQyhtb2RlLCAiU3BlY2lm eSByZXNvbHV0aW9uIGFzIFwiPHhyZXM+eDx5cmVzPlstPGJwcD5dW0A8cmVm cmVzaD5dXCIgIik7CiAjaWZkZWYgQ09ORklHX01UUlIKLU1PRFVMRV9QQVJN KG5vbXRyciwgImkiKTsKLU1PRFVMRV9QQVJNX0RFU0Mobm9tdHJyLCAiRGlz YWJsZSBNVFJSIHN1cHBvcnQgKDAgb3IgMT1kaXNhYmxlZCkgKGRlZmF1bHQ9 MCkiKTsKK21vZHVsZV9wYXJhbV9uYW1lZChub210cnIsIG10cnIsIGludmJv b2wsIDApOworTU9EVUxFX1BBUk1fREVTQyhtdHJyLCAiYm9vbDogRGlzYWJs ZSBNVFJSIHN1cHBvcnQgKDAgb3IgMT1kaXNhYmxlZCkgKGRlZmF1bHQ9MCki KTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19QUENfUE1BQworbW9kdWxlX3Bh cmFtX25hbWVkKHZtb2RlLCBkZWZhdWx0X3Ztb2RlLCBpbnQsIDApOworTU9E VUxFX1BBUk1fREVTQyhkZWZhdWx0X3Ztb2RlLCAiRGVwcmVjYXRlZDogdmlk ZW8gbW9kZSBpbnQiKTsKK21vZHVsZV9wYXJhbV9uYW1lZChjbW9kZSwgZGVm YXVsdF9jbW9kZSwgaW50LCAwKTsKK01PRFVMRV9QQVJNX0RFU0MoZGVmYXVs dF9jbW9kZSwgIkRlcHJlY2F0ZWQ6IGNvbG9yIG1vZGUgaW50Iik7CisjZW5k aWYKKyNpZmRlZiBDT05GSUdfUE1BQ19QQk9PSworbW9kdWxlX3BhcmFtX25h bWVkKGxjZCwgZGVmYXVsdF9sY2Rfb24sIGJvb2wsIDApOworTU9EVUxFX1BB Uk1fREVTQyhkZWZhdWx0X2xjZF9vbiwgImJvb2w6IERlZmF1bHQgTENEIG9u Iik7Cittb2R1bGVfcGFyYW1fbmFtZWQoY3J0LCBkZWZhdWx0X2NydF9vbiwg Ym9vbCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKGRlZmF1bHRfY3J0X29uLCAi Ym9vbDogRGVmYXVsdCBDUlQgb24iKTsKICNlbmRpZgogCmRpZmYgLU5ydSBh L2RyaXZlcnMvdmlkZW8vcmFkZW9uZmIuYyBiL2RyaXZlcnMvdmlkZW8vcmFk ZW9uZmIuYwotLS0gYS9kcml2ZXJzL3ZpZGVvL3JhZGVvbmZiLmMJRnJpIEF1 ZyAxNSAyMToxOTowMiAyMDAzCisrKyBiL2RyaXZlcnMvdmlkZW8vcmFkZW9u ZmIuYwlGcmkgQXVnIDE1IDIxOjE5OjAyIDIwMDMKQEAgLTIzLDYgKzIzLDkg QEAKICAqCTIwMDItMDYtMDMJTVRSUiBzdXBwb3J0LCBQZXRlciBIb3J0b24s IDAuMS41CiAgKgkyMDAyLTA5LTIxCXJ2MjUwLCByMzAwLCBtOSBpbml0aWFs IHN1cHBvcnQsCiAgKgkJCWFkZGVkIG1pcnJvciBvcHRpb24sIDAuMS42Cisg KiAJMjAwMy0wOC0xMglhZGRlZCBhIGJ1bmNoIG1vcmUgUENJIElEcyBmb3Ig dmFyaW91cyBSYWRlb25zCisgKgkJCWNvbnZlcnRlZCBtb2R1bGUgcGFyYW1z IHRvIDIuNiBzY2hlbWUKKyAqCQkJSm9uIFNtaXJsIDxqb25zbWlybEB5YWhv by5jb20+CiAgKgogICoJU3BlY2lhbCB0aGFua3MgdG8gQVRJIERldlJlbCB0 ZWFtIGZvciB0aGVpciBoYXJkd2FyZSBkb25hdGlvbnMuCiAgKgpAQCAtMzQs NiArMzcsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CiAjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxl cGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRl IDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpA QCAtOTEsODkgKzk1LDQxIEBACiAvLyBYWFgKICN1bmRlZiBDT05GSUdfUE1B Q19QQk9PSwogCi0KLWVudW0gcmFkZW9uX2NoaXBzIHsKLQlSQURFT05fUUQs Ci0JUkFERU9OX1FFLAotCVJBREVPTl9RRiwKLQlSQURFT05fUUcsCi0JUkFE RU9OX1FZLAotCVJBREVPTl9RWiwKLQlSQURFT05fTFcsCi0JUkFERU9OX0xY LAotCVJBREVPTl9MWSwKLQlSQURFT05fTFosCi0JUkFERU9OX1FMLAotCVJB REVPTl9RTiwKLQlSQURFT05fUU8sCi0JUkFERU9OX1FsLAotCVJBREVPTl9C QiwKLQlSQURFT05fUVcsCi0JUkFERU9OX1FYLAotCVJBREVPTl9JZCwKLQlS QURFT05fSWUsCi0JUkFERU9OX0lmLAotCVJBREVPTl9JZywKLQlSQURFT05f TGQsCi0JUkFERU9OX0xlLAotCVJBREVPTl9MZiwKLQlSQURFT05fTGcsCi0J UkFERU9OX05ELAotCVJBREVPTl9ORSwKLQlSQURFT05fTkYsCi0JUkFERU9O X05HLAotCVJBREVPTl9RTQotfTsKLQogZW51bSByYWRlb25fYXJjaCB7Cisg ICAgICAgIFJBREVPTl9JR1AsCiAJUkFERU9OX1IxMDAsCiAJUkFERU9OX1JW MTAwLAogCVJBREVPTl9SMjAwLAogCVJBREVPTl9SVjIwMCwKIAlSQURFT05f UlYyNTAsCiAJUkFERU9OX1IzMDAsCisJUkFERU9OX1JTMzAwLAorCVJBREVP Tl9SMzUwLAogCVJBREVPTl9NNiwKIAlSQURFT05fTTcsCi0JUkFERU9OX005 CisJUkFERU9OX005LAorCVJBREVPTl9SMjAwX1NFQywKKwlSQURFT05fUlYy NTBfU0VDLAorCVJBREVPTl9SMzAwX1NFQywKKwlSQURFT05fUjM1MF9TRUMs CisJUkFERU9OX005X1NFQywKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgcmFkZW9u X2NoaXBfaW5mbyB7Ci0JY29uc3QgY2hhciAqbmFtZTsKLQl1bnNpZ25lZCBj aGFyIGFyY2g7Ci19IHJhZGVvbl9jaGlwX2luZm9bXSBfX2RldmluaXRkYXRh ID0gewotCXsgIlFEIiwgUkFERU9OX1IxMDAgfSwKLQl7ICJRRSIsIFJBREVP Tl9SMTAwIH0sCi0JeyAiUUYiLCBSQURFT05fUjEwMCB9LAotCXsgIlFHIiwg UkFERU9OX1IxMDAgfSwKLQl7ICJWRSBRWSIsIFJBREVPTl9SVjEwMCB9LAot CXsgIlZFIFFaIiwgUkFERU9OX1JWMTAwIH0sCi0JeyAiTTcgTFciLCBSQURF T05fTTcgfSwKLQl7ICJNNyBMWCIsIFJBREVPTl9NNyB9LAotCXsgIk02IExZ IiwgUkFERU9OX002IH0sCi0JeyAiTTYgTFoiLCBSQURFT05fTTYgfSwKLQl7 ICI4NTAwIFFMIiwgUkFERU9OX1IyMDAgfSwKLQl7ICI4NTAwIFFOIiwgUkFE RU9OX1IyMDAgfSwKLQl7ICI4NTAwIFFPIiwgUkFERU9OX1IyMDAgfSwKLQl7 ICI4NTAwIFFsIiwgUkFERU9OX1IyMDAgfSwKLQl7ICI4NTAwIEJCIiwgUkFE RU9OX1IyMDAgfSwKLQl7ICI3NTAwIFFXIiwgUkFERU9OX1JWMjAwIH0sCi0J eyAiNzUwMCBRWCIsIFJBREVPTl9SVjIwMCB9LAotCXsgIjkwMDAgSWQiLCBS QURFT05fUlYyNTAgfSwKLQl7ICI5MDAwIEllIiwgUkFERU9OX1JWMjUwIH0s Ci0JeyAiOTAwMCBJZiIsIFJBREVPTl9SVjI1MCB9LAotCXsgIjkwMDAgSWci LCBSQURFT05fUlYyNTAgfSwKLQl7ICJNOSBMZCIsIFJBREVPTl9NOSB9LAot CXsgIk05IExlIiwgUkFERU9OX005IH0sCi0JeyAiTTkgTGYiLCBSQURFT05f TTkgfSwKLQl7ICJNOSBMZyIsIFJBREVPTl9NOSB9LAotCXsgIjk3MDAgTkQi LCBSQURFT05fUjMwMCB9LAotCXsgIjk3MDAgTkUiLCBSQURFT05fUjMwMCB9 LAotCXsgIjk3MDAgTkYiLCBSQURFT05fUjMwMCB9LAotCXsgIjk3MDAgTkci LCBSQURFT05fUjMwMCB9LAotCXsgIjkxMDAgUU0iLCBSQURFT05fUjIwMCB9 CitzdGF0aWMgY29uc3QgY2hhciAqcmFkZW9uX2ZhbWlseVtdIF9fZGV2aW5p dGRhdGEgPSB7CisJIklHUCIsCisJIlIxMDAiLAorCSJWRSBSVjEwMCIsCisJ Ijg1MDAgUjIwMCIsCisJIjc1MDAgUlYyMDAiLAorCSI5MDAwIFJWMjUwIiwK KwkiOTcwMCBSMzAwIiwKKwkiOTcwMCBSUzMwMCIsCisJIjk4MDAgUjM1MCIs CisJIk1vYmlsaXR5IE02IiwKKwkiTW9iaWxpdHkgTTciLAorCSJNb2JpbGl0 eSBNOSIsCiB9OwotCi0KKwkJICAgIAogZW51bSByYWRlb25fbW9udHlwZQog ewogCU1UX05PTkUsCkBAIC0xODYsMzYgKzE0Miw2NyBAQAogCiAKIHN0YXRp YyBzdHJ1Y3QgcGNpX2RldmljZV9pZCByYWRlb25mYl9wY2lfdGFibGVbXSA9 IHsKLQl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9S QURFT05fUUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVP Tl9RRH0sCi0JeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9B VElfUkFERU9OX1FFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBS QURFT05fUUV9LAotCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0Vf SURfQVRJX1JBREVPTl9RRiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwg MCwgUkFERU9OX1FGfSwKLQl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVW SUNFX0lEX0FUSV9SQURFT05fUUcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQs IDAsIDAsIFJBREVPTl9RR30sCi0JeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJ X0RFVklDRV9JRF9BVElfUkFERU9OX1FZLCBQQ0lfQU5ZX0lELCBQQ0lfQU5Z X0lELCAwLCAwLCBSQURFT05fUVl9LAotCXsgUENJX1ZFTkRPUl9JRF9BVEks IFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9RWiwgUENJX0FOWV9JRCwgUENJ X0FOWV9JRCwgMCwgMCwgUkFERU9OX1FafSwKLQl7IFBDSV9WRU5ET1JfSURf QVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTFcsIFBDSV9BTllfSUQs IFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9MV30sCi0JeyBQQ0lfVkVORE9S X0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0xYLCBQQ0lfQU5Z X0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fTFh9LAotCXsgUENJX1ZF TkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9MWSwgUENJ X0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX0xZfSwKLQl7IFBD SV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTFos IFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9MWn0sCi0J eyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9O X1FMLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUUx9 LAotCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JB REVPTl9RTiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9O X1FOfSwKLQl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FU SV9SQURFT05fUU8sIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJB REVPTl9RT30sCi0JeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9J RF9BVElfUkFERU9OX1FsLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAw LCBSQURFT05fUWx9LAotCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJ Q0VfSURfQVRJX1JBREVPTl9CQiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwg MCwgMCwgUkFERU9OX0JCfSwKLQl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lf REVWSUNFX0lEX0FUSV9SQURFT05fUVcsIFBDSV9BTllfSUQsIFBDSV9BTllf SUQsIDAsIDAsIFJBREVPTl9RV30sCi0JeyBQQ0lfVkVORE9SX0lEX0FUSSwg UENJX0RFVklDRV9JRF9BVElfUkFERU9OX1FYLCBQQ0lfQU5ZX0lELCBQQ0lf QU5ZX0lELCAwLCAwLCBSQURFT05fUVh9LAotCXsgUENJX1ZFTkRPUl9JRF9B VEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9JZCwgUENJX0FOWV9JRCwg UENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX0lkfSwKLQl7IFBDSV9WRU5ET1Jf SURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fSWUsIFBDSV9BTllf SUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9JZX0sCi0JeyBQQ0lfVkVO RE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0lmLCBQQ0lf QU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fSWZ9LAotCXsgUENJ X1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9JZywg UENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX0lnfSwKLQl7 IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05f TGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9MZH0s Ci0JeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFE RU9OX0xlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05f TGV9LAotCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJ X1JBREVPTl9MZiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFE RU9OX0xmfSwKLQl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lE X0FUSV9SQURFT05fTGcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAs IFJBREVPTl9MZ30sCi0JeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklD RV9JRF9BVElfUkFERU9OX05ELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAw LCAwLCBSQURFT05fTkR9LAotCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9E RVZJQ0VfSURfQVRJX1JBREVPTl9ORSwgUENJX0FOWV9JRCwgUENJX0FOWV9J RCwgMCwgMCwgUkFERU9OX05FfSwKLQl7IFBDSV9WRU5ET1JfSURfQVRJLCBQ Q0lfREVWSUNFX0lEX0FUSV9SQURFT05fTkYsIFBDSV9BTllfSUQsIFBDSV9B TllfSUQsIDAsIDAsIFJBREVPTl9ORn0sCi0JeyBQQ0lfVkVORE9SX0lEX0FU SSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX05HLCBQQ0lfQU5ZX0lELCBQ Q0lfQU5ZX0lELCAwLCAwLCBSQURFT05fTkd9LAotCXsgUENJX1ZFTkRPUl9J RF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9RTSwgUENJX0FOWV9J RCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX1FNfSwKKwl7IFBDSV9WRU5E T1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fQTYsIFBDSV9B TllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9JR1B9LAorCXsgUENJ X1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9BNywg UENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX0lHUH0sCisJ eyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9O X0FELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUjMw MH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElf UkFERU9OX0FFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURF T05fUjMwMH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9J RF9BVElfUkFERU9OX0FGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAw LCBSQURFT05fUjMwMH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RF VklDRV9JRF9BVElfUkFERU9OX0FHLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCBSQURFT05fUjMwMH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwg UENJX0RFVklDRV9JRF9BVElfUkFERU9OX0FkLCBQQ0lfQU5ZX0lELCBQQ0lf QU5ZX0lELCAwLCAwLCBSQURFT05fUjMwMF9TRUN9LAorCXsgUENJX1ZFTkRP Ul9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9CNywgUENJX0FO WV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX0lHUH0sCisJeyBQQ0lf VkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0JCLCBQ Q0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUjIwMH0sCisJ eyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9O X0M2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fSUdQ fSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9S QURFT05fQzcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVP Tl9JR1B9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURf QVRJX1JBREVPTl9ENywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwg UkFERU9OX0lHUH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklD RV9JRF9BVElfUkFERU9OX0lkLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAw LCAwLCBSQURFT05fUlYyNTB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBD SV9ERVZJQ0VfSURfQVRJX1JBREVPTl9JZSwgUENJX0FOWV9JRCwgUENJX0FO WV9JRCwgMCwgMCwgUkFERU9OX1JWMjUwfSwKKwl7IFBDSV9WRU5ET1JfSURf QVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fSWYsIFBDSV9BTllfSUQs IFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9SVjI1MH0sCisJeyBQQ0lfVkVO RE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0lnLCBQQ0lf QU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUlYyNTB9LAorCXsg UENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9J biwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX1JWMjUw X1NFQ30sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9B VElfUkFERU9OX0xXLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBS QURFT05fTTd9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0Vf SURfQVRJX1JBREVPTl9MWCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwg MCwgUkFERU9OX003fSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVW SUNFX0lEX0FUSV9SQURFT05fTFksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQs IDAsIDAsIFJBREVPTl9NNn0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJ X0RFVklDRV9JRF9BVElfUkFERU9OX0xaLCBQQ0lfQU5ZX0lELCBQQ0lfQU5Z X0lELCAwLCAwLCBSQURFT05fTTZ9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEks IFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9MZCwgUENJX0FOWV9JRCwgUENJ X0FOWV9JRCwgMCwgMCwgUkFERU9OX005fSwKKwl7IFBDSV9WRU5ET1JfSURf QVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTGUsIFBDSV9BTllfSUQs IFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9NOX0sCisJeyBQQ0lfVkVORE9S X0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0xmLCBQQ0lfQU5Z X0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fTTl9LAorCXsgUENJX1ZF TkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9MZywgUENJ X0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX005fSwKKwl7IFBD SV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTG4s IFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9NOV9TRUN9 LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JB REVPTl9ORCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9O X1IzMDB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURf QVRJX1JBREVPTl9ORSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwg UkFERU9OX1IzMDB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJ Q0VfSURfQVRJX1JBREVPTl9ORiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwg MCwgMCwgUkFERU9OX1IzMDB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBD SV9ERVZJQ0VfSURfQVRJX1JBREVPTl9ORywgUENJX0FOWV9JRCwgUENJX0FO WV9JRCwgMCwgMCwgUkFERU9OX1IzMDB9LAorCXsgUENJX1ZFTkRPUl9JRF9B VEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9OSCwgUENJX0FOWV9JRCwg UENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX1IzNTB9LAorCXsgUENJX1ZFTkRP Ul9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9OZCwgUENJX0FO WV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX1IzMDBfU0VDfSwKKwl7 IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05f TmUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9SMzAw X1NFQ30sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9B VElfUkFERU9OX05mLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBS QURFT05fUjMwMF9TRUN9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9E RVZJQ0VfSURfQVRJX1JBREVPTl9OZywgUENJX0FOWV9JRCwgUENJX0FOWV9J RCwgMCwgMCwgUkFERU9OX1IzMDBfU0VDfSwKKwl7IFBDSV9WRU5ET1JfSURf QVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTmgsIFBDSV9BTllfSUQs IFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9SMzUwX1NFQ30sCisJeyBQQ0lf VkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX1FELCBQ Q0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUjEwMH0sCisJ eyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9O X1FFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUjEw MH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElf UkFERU9OX1FGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURF T05fUjEwMH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9J RF9BVElfUkFERU9OX1FHLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAw LCBSQURFT05fUjEwMH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RF VklDRV9JRF9BVElfUkFERU9OX1FILCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCBSQURFT05fUjIwMH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwg UENJX0RFVklDRV9JRF9BVElfUkFERU9OX1FJLCBQQ0lfQU5ZX0lELCBQQ0lf QU5ZX0lELCAwLCAwLCBSQURFT05fUjIwMH0sCisJeyBQQ0lfVkVORE9SX0lE X0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX1FKLCBQQ0lfQU5ZX0lE LCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUjIwMH0sCisJeyBQQ0lfVkVO RE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX1FLLCBQQ0lf QU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUjIwMH0sCisJeyBQ Q0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX1FM LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUjIwMH0s CisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFE RU9OX1FNLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05f UjIwMH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9B VElfUkFERU9OX1FOLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBS QURFT05fUjIwMH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklD RV9JRF9BVElfUkFERU9OX1FPLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAw LCAwLCBSQURFT05fUjIwMH0sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJ X0RFVklDRV9JRF9BVElfUkFERU9OX1FXLCBQQ0lfQU5ZX0lELCBQQ0lfQU5Z X0lELCAwLCAwLCBSQURFT05fUlYyMDB9LAorCXsgUENJX1ZFTkRPUl9JRF9B VEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9RWCwgUENJX0FOWV9JRCwg UENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX1JWMjAwfSwKKwl7IFBDSV9WRU5E T1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fUVksIFBDSV9B TllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9SVjEwMH0sCisJeyBQ Q0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX1Fa LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUlYxMDB9 LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JB REVPTl9RaCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9O X1IyMDBfU0VDfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNF X0lEX0FUSV9SQURFT05fUWksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAs IDAsIFJBREVPTl9SMjAwX1NFQ30sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwg UENJX0RFVklDRV9JRF9BVElfUkFERU9OX1FqLCBQQ0lfQU5ZX0lELCBQQ0lf QU5ZX0lELCAwLCAwLCBSQURFT05fUjIwMF9TRUN9LAorCXsgUENJX1ZFTkRP Ul9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9RaywgUENJX0FO WV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUkFERU9OX1IyMDBfU0VDfSwKKwl7 IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05f UWwsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFJBREVPTl9SMjAw X1NFQ30sCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9B VElfUkFERU9OX1g0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBS QURFT05fUlMzMDB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJ Q0VfSURfQVRJX1JBREVPTl9YNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwg MCwgMCwgUkFERU9OX1JTMzAwfSwKKwl7IFBDSV9WRU5ET1JfSURfQVRJLCBQ Q0lfREVWSUNFX0lEX0FUSV9SQURFT05fWDYsIFBDSV9BTllfSUQsIFBDSV9B TllfSUQsIDAsIDAsIFJBREVPTl9SUzMwMH0sCisJeyBQQ0lfVkVORE9SX0lE X0FUSSwgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX1g3LCBQQ0lfQU5ZX0lE LCBQQ0lfQU5ZX0lELCAwLCAwLCBSQURFT05fUlMzMDB9LAogCXsgMCwgfQog fTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCByYWRlb25mYl9wY2lfdGFi bGUpOwpAQCAtMzUwLDcgKzMzNyw3IEBACiAJc3RydWN0IHJhZGVvbl9yZWdz IHN0YXRlOwogCXN0cnVjdCByYWRlb25fcmVncyBpbml0X3N0YXRlOwogCi0J Y2hhciBuYW1lWzMyXTsKKwljaGFyIG5hbWVbREVWSUNFX05BTUVfU0laRV07 CiAJY2hhciByYW1fdHlwZVsxMl07CiAKIAl1bnNpZ25lZCBsb25nIG1taW9f YmFzZV9waHlzOwpAQCAtNjc5LDEyICs2NjYsMTQgQEAKICAqLwogICAgICAg ICAKIHN0YXRpYyBjaGFyICptb2RlX29wdGlvbiBfX2luaXRkYXRhOwotc3Rh dGljIGNoYXIgbm9hY2NlbCA9IDE7Ci1zdGF0aWMgY2hhciBtaXJyb3IgPSAw Oworc3RhdGljIGludCBub2FjY2VsID0gMTsKK3N0YXRpYyBpbnQgbWlycm9y ID0gMDsKIHN0YXRpYyBpbnQgcGFuZWxfeXJlcyBfX2luaXRkYXRhID0gMDsK LXN0YXRpYyBjaGFyIGZvcmNlX2RmcCBfX2luaXRkYXRhID0gMDsKK3N0YXRp YyBpbnQgZm9yY2VfZGZwIF9faW5pdGRhdGEgPSAwOwogc3RhdGljIHN0cnVj dCByYWRlb25mYl9pbmZvICpib2FyZF9saXN0ID0gTlVMTDsKLXN0YXRpYyBj aGFyIG5vbXRyciBfX2luaXRkYXRhID0gMDsKKyNpZmRlZiBDT05GSUdfTVRS Ugorc3RhdGljIGludCBub210cnIgX19pbml0ZGF0YSA9IDA7CisjZW5kaWYK IAogLyoKICAqIHByb3RvdHlwZXMKQEAgLTY5OCw3ICs2ODcsMTAgQEAKIHN0 YXRpYyBpbnQgX19kZXZpbml0IHJhZGVvbl9zZXRfZmJpbmZvIChzdHJ1Y3Qg cmFkZW9uZmJfaW5mbyAqcmluZm8pOwogc3RhdGljIGludCBfX2RldmluaXQg cmFkZW9uX2luaXRfZGlzcCAoc3RydWN0IHJhZGVvbmZiX2luZm8gKnJpbmZv KTsKIHN0YXRpYyBpbnQgcmFkZW9uX2luaXRfZGlzcF92YXIgKHN0cnVjdCBy YWRlb25mYl9pbmZvICpyaW5mbywgc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZv ICp2YXIpOwotc3RhdGljIGNoYXIgKnJhZGVvbl9maW5kX3JvbShzdHJ1Y3Qg cmFkZW9uZmJfaW5mbyAqcmluZm8pOworI2lmIGRlZmluZWQoX19pMzg2X18p CitzdGF0aWMgdm9pZCBfX2luaXQgKnJhZGVvbl9tYXBfUk9NKHN0cnVjdCBy YWRlb25mYl9pbmZvICpyaW5mbywgc3RydWN0IHBjaV9kZXYgKnBkZXYpOwor c3RhdGljIHZvaWQgX19pbml0IHJhZGVvbl91bm1hcF9ST00oc3RydWN0IHBj aV9kZXYgKmRldiwgdm9pZCAqIHJvbSk7CisjZW5kaWYKIHN0YXRpYyB2b2lk IHJhZGVvbl9nZXRfcGxsaW5mbyhzdHJ1Y3QgcmFkZW9uZmJfaW5mbyAqcmlu Zm8sIGNoYXIgKmJpb3Nfc2VnKTsKIHN0YXRpYyB2b2lkIHJhZGVvbl9nZXRf bW9uaW5mbyAoc3RydWN0IHJhZGVvbmZiX2luZm8gKnJpbmZvKTsKIHN0YXRp YyBpbnQgcmFkZW9uX2dldF9kZnBpbmZvIChzdHJ1Y3QgcmFkZW9uZmJfaW5m byAqcmluZm8pOwpAQCAtNzMxLDc0ICs3MjMsNjUgQEAKICNlbmRpZiAvKiBD T05GSUdfUFBDX09GICovCiAKIAotc3RhdGljIGNoYXIgKnJhZGVvbl9maW5k X3JvbShzdHJ1Y3QgcmFkZW9uZmJfaW5mbyAqcmluZm8pCi17ICAgICAgIAog I2lmIGRlZmluZWQoX19pMzg2X18pCi0gICAgICAgIHUzMiAgc2Vnc3RhcnQ7 Ci0gICAgICAgIGNoYXIgKnJvbV9iYXNlOwotICAgICAgICBjaGFyICpyb207 Ci0gICAgICAgIGludCAgc3RhZ2U7Ci0gICAgICAgIGludCAgaSxqOyAgICAg ICAKLSAgICAgICAgY2hhciBhdHlfcm9tX3NpZ1tdID0gIjc2MTI5NTUyMCI7 Ci0gICAgICAgIGNoYXIgKnJhZGVvbl9zaWdbXSA9IHsKLSAgICAgICAgICAi Ukc2IiwKLSAgICAgICAgICAiUkFERU9OIgotICAgICAgICB9OwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0g ICAgICAgIGZvcihzZWdzdGFydD0weDAwMGMwMDAwOyBzZWdzdGFydDwweDAw MGYwMDAwOyBzZWdzdGFydCs9MHgwMDAwMTAwMCkgewotICAgICAgICAgICAg ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgc3RhZ2UgPSAxOwotICAg ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHJvbV9iYXNlID0gKGNo YXIgKilpb3JlbWFwKHNlZ3N0YXJ0LCAweDEwMDApOwotCi0gICAgICAgICAg ICAgICAgaWYgKCgqcm9tX2Jhc2UgPT0gMHg1NSkgJiYgKCgoKihyb21fYmFz ZSArIDEpKSAmIDB4ZmYpID09IDB4YWEpKQotICAgICAgICAgICAgICAgICAg ICAgICAgc3RhZ2UgPSAyOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoc3RhZ2UgIT0gMikg ewotICAgICAgICAgICAgICAgICAgICAgICAgaW91bm1hcChyb21fYmFzZSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcm9tID0gcm9tX2Jhc2U7 Ci0gICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBmb3Ig KGkgPSAwOyAoaSA8IDEyOCAtIHN0cmxlbihhdHlfcm9tX3NpZykpICYmIChz dGFnZSAhPSAzKTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp ZiAoYXR5X3JvbV9zaWdbMF0gPT0gKnJvbSkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKHN0cm5jbXAoYXR5X3JvbV9zaWcsIHJvbSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cmxlbihhdHlfcm9tX3NpZykpID09IDApCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhZ2UgPSAzOwotICAgICAg ICAgICAgICAgICAgICAgICAgcm9tKys7Ci0gICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgIGlmIChzdGFnZSAhPSAzKSB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICBpb3VubWFwKHJvbV9iYXNlKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICByb20gPSByb21fYmFzZTsKLSAgICAgICAgCi0gICAg ICAgICAgICAgICAgZm9yIChpID0gMDsgKGkgPCA1MTIpICYmIChzdGFnZSAh PSA0KTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvcihqID0gMDtq IDwgc2l6ZW9mKHJhZGVvbl9zaWcpL3NpemVvZihjaGFyICopO2orKykgewot ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJhZGVvbl9zaWdbal1bMF0g PT0gKnJvbSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KHN0cm5jbXAocmFkZW9uX3NpZ1tqXSwgcm9tLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4ocmFkZW9uX3Np Z1tqXSkpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdGFnZSA9IDQ7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIAot ICAgICAgICAgICAgICAgICAgICAgICAgcm9tKys7Ci0gICAgICAgICAgICAg ICAgfSAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoc3RhZ2UgIT0gNCkg ewotICAgICAgICAgICAgICAgICAgICAgICAgaW91bm1hcChyb21fYmFzZSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg ICAgICAgICB9ICAgICAgIAotICAgICAgICAgICAgICAgIAotICAgICAgICAg ICAgICAgIHJldHVybiByb21fYmFzZTsKLSAgICAgICAgfQotI2VuZGlmICAg ICAgICAgIAotICAgICAgICByZXR1cm4gTlVMTDsKK3N0YXRpYyB2b2lkICog X19pbml0IHJhZGVvbl9tYXBfUk9NKHN0cnVjdCByYWRlb25mYl9pbmZvICpy aW5mbywgc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwkvLyBJZiB0aGlzIGlz IGEgcHJpbWFyeSBjYXJkLCB0aGVyZSBpcyBhIHNoYWRvdyBjb3B5IG9mIHRo ZQorCS8vIFJPTSBzb21ld2hlcmUgaW4gdGhlIGZpcnN0IG1lZy4gV2Ugd2ls bCBqdXN0IGlnbm9yZSB0aGUgY29weQorCS8vIGFuZCB1c2UgdGhlIFJPTSBk aXJlY3RseS4KKyAgICAKKyAgICAJLyogRml4IGZyb20gQVRJIGZvciBwcm9i bGVtIHdpdGggUmFkZW9uIGhhcmR3YXJlIG5vdCBsZWF2aW5nIFJPTSBlbmFi bGVkICovCisgICAgCXVuc2lnbmVkIGludCB0ZW1wOworCXRlbXAgPSBJTlJF RyhSQURFT05fTVBQX1RCX0NPTkZJRyk7CisJdGVtcCAmPSAweDAwZmZmZmZm dTsKKwl0ZW1wIHw9IDB4MDQgPDwgMjQ7CisJT1VUUkVHKFJBREVPTl9NUFBf VEJfQ09ORklHLCB0ZW1wKTsKKwl0ZW1wID0gSU5SRUcoUkFERU9OX01QUF9U Ql9DT05GSUcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCS8vIG5vIG5lZWQgdG8g c2VhcmNoIGZvciB0aGUgUk9NLCBqdXN0IGFzayB0aGUgY2FyZCB3aGVyZSBp dCBpcy4KKwlzdHJ1Y3QgcmVzb3VyY2UgKnIgPSAmZGV2LT5yZXNvdXJjZVtQ Q0lfUk9NX1JFU09VUkNFXTsKKwl2b2lkICpyb207CisJCisJLy8gYXNzaWdu IHRoZSBST00gYW4gYWRkcmVzcyBpZiBpdCBkb2Vzbid0IGhhdmUgb25lCisJ aWYgKHItPnN0YXJ0ID09IDApCisJCXBjaV9hc3NpZ25fcmVzb3VyY2UoZGV2 LCBQQ0lfUk9NX1JFU09VUkNFKTsKKwkKKwkvLyBlbmFibGUgaWYgbmVlZGVk CisJaWYgKCEoci0+ZmxhZ3MgJiBQQ0lfUk9NX0FERFJFU1NfRU5BQkxFKSkg eworCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgZGV2LT5yb21fYmFz ZV9yZWcsIHItPnN0YXJ0IHwgUENJX1JPTV9BRERSRVNTX0VOQUJMRSk7CisJ CXItPmZsYWdzIHw9IFBDSV9ST01fQUREUkVTU19FTkFCTEU7CisJfQorCQor CXJvbSA9IGlvcmVtYXAoci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsg MSk7CisJaWYgKCFyb20pIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJyYWRlb25m YjogUk9NIGZhaWxlZCB0byBtYXBcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9 CisJCisJLy8gVmVyeSBzaW1wbGUgdGVzdCB0byBtYWtlIHN1cmUgaXQgYXBw ZWFyZWQKKwlpZiAocmVhZGIocm9tKSAhPSAweDU1KSB7CisJCXByaW50ayhL RVJOX0VSUiAicmFkZW9uZmI6IEludmFsaWQgUk9NIHNpZ25hdHVyZSAleCBz aG91bGQgYmUgMHg1NVxuIiwgcmVhZGIocm9tKSk7CisJCXJhZGVvbl91bm1h cF9ST00oZGV2LCByb20pOworCQlyZXR1cm4gTlVMTDsKKwl9CisJcmV0dXJu IHJvbTsKIH0KIAotCi0KK3N0YXRpYyB2b2lkIF9faW5pdCByYWRlb25fdW5t YXBfUk9NKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHZvaWQgKiByb20pCit7CisJ Ly8gbGVhdmUgaXQgZGlzYWJsZWQgYW5kIHVuYXNzaWduZWQKKwlzdHJ1Y3Qg cmVzb3VyY2UgKnIgPSAmZGV2LT5yZXNvdXJjZVtQQ0lfUk9NX1JFU09VUkNF XTsKKwkKKwlpb3VubWFwKHJvbSk7CisJCisJci0+ZmxhZ3MgJj0gflBDSV9S T01fQUREUkVTU19FTkFCTEU7CisJci0+ZW5kIC09IHItPnN0YXJ0OworCXIt PnN0YXJ0ID0gMDsKKwkvKiBUaGlzIHdpbGwgZGlzYWJsZSBhbmQgc2V0IGFk ZHJlc3MgdG8gdW5hc3NpZ25lZCAqLworCXBjaV93cml0ZV9jb25maWdfZHdv cmQoZGV2LCBkZXYtPnJvbV9iYXNlX3JlZywgMCk7CisJcmVsZWFzZV9yZXNv dXJjZShyKTsKK30KKyNlbmRpZiAgICAgICAgICAKIAogc3RhdGljIHZvaWQg cmFkZW9uX2dldF9wbGxpbmZvKHN0cnVjdCByYWRlb25mYl9pbmZvICpyaW5m bywgY2hhciAqYmlvc19zZWcpCiB7CkBAIC0xMDgxLDEyICsxMDY0LDEyIEBA CiAJCXJldHVybiAwOwogCiAJaWYgKCEoZnBiaW9zc3RhcnQgPSByaW5mby0+ Ymlvc19zZWcgKyByZWFkdyhyaW5mby0+Ymlvc19zZWcgKyAweDQ4KSkpIHsK LQkJcHJpbnRrKCJyYWRlb25mYjogRmFpbGVkIHRvIGRldGVjdCBERlAgcGFu ZWwgaW5mbyB1c2luZyBCSU9TXG4iKTsKKwkJcHJpbnRrKEtFUk5fRVJSICJy YWRlb25mYjogRmFpbGVkIHRvIGRldGVjdCBERlAgcGFuZWwgaW5mbyB1c2lu ZyBCSU9TXG4iKTsKIAkJcmV0dXJuIDA7CiAJfQogCiAJaWYgKCEodG1wID0g cmluZm8tPmJpb3Nfc2VnICsgcmVhZHcoZnBiaW9zc3RhcnQgKyAweDQwKSkp IHsKLQkJcHJpbnRrKCJyYWRlb25mYjogRmFpbGVkIHRvIGRldGVjdCBERlAg cGFuZWwgaW5mbyB1c2luZyBCSU9TXG4iKTsKKwkJcHJpbnRrKEtFUk5fRVJS ICJyYWRlb25mYjogRmFpbGVkIHRvIGRldGVjdCBERlAgcGFuZWwgaW5mbyB1 c2luZyBCSU9TXG4iKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC0xMTcyLDcg KzExNTUsNyBAQAogCQkJCXJpbmZvLT5wYW5lbF94cmVzID0gMTYwMDsKIAkJ CQlicmVhazsKIAkJCWRlZmF1bHQ6Ci0JCQkJcHJpbnRrKCJyYWRlb25mYjog RmFpbGVkIHRvIGRldGVjdCBERlAgcGFuZWwgc2l6ZVxuIik7CisJCQkJcHJp bnRrKEtFUk5fRVJSICJyYWRlb25mYjogRmFpbGVkIHRvIGRldGVjdCBERlAg cGFuZWwgc2l6ZVxuIik7CiAJCQkJcmV0dXJuIDA7CiAJCX0KIApAQCAtMjc5 NCwxMCArMjc3NywyMSBAQAogCQkJCSAgY29uc3Qgc3RydWN0IHBjaV9kZXZp Y2VfaWQgKmVudCkKIHsKIAlzdHJ1Y3QgcmFkZW9uZmJfaW5mbyAqcmluZm87 Ci0Jc3RydWN0IHJhZGVvbl9jaGlwX2luZm8gKnJjaSA9ICZyYWRlb25fY2hp cF9pbmZvW2VudC0+ZHJpdmVyX2RhdGFdOwogCXUzMiB0bXA7CiAKIAlSVFJB Q0UoInJhZGVvbmZiX3BjaV9yZWdpc3RlciBCRUdJTlxuIik7CisJCisJLyog VGhlIGRyaXZlciBhY2tub3dsZWRnZXMgb3duaW5nIHNlY29uZGFyeSBkZXZp Y2VzIGJ1dCB0aGV5IGFyZSBoYW5kbGVkIGJ5IHByaW1hcnkgKi8KKwlzd2l0 Y2ggKGVudC0+ZHJpdmVyX2RhdGEpIHsKKwljYXNlIFJBREVPTl9SMjAwX1NF QzoKKwljYXNlIFJBREVPTl9SVjI1MF9TRUM6CisJY2FzZSBSQURFT05fUjMw MF9TRUM6CisJY2FzZSBSQURFT05fUjM1MF9TRUM6CisJY2FzZSBSQURFT05f TTlfU0VDOgorCQlyZXR1cm4gMDsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9 CiAKIAkvKiBFbmFibGUgZGV2aWNlIGluIFBDSSBjb25maWcgKi8KIAlpZiAo cGNpX2VuYWJsZV9kZXZpY2UocGRldikgIT0gMCkgewpAQCAtMjgwNywxNSAr MjgwMSwyMyBAQAogCiAJcmluZm8gPSBrbWFsbG9jIChzaXplb2YgKHN0cnVj dCByYWRlb25mYl9pbmZvKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFyaW5mbykg ewotCQlwcmludGsgKCJyYWRlb25mYjogY291bGQgbm90IGFsbG9jYXRlIG1l bW9yeVxuIik7CisJCXByaW50ayAoS0VSTl9FUlIgInJhZGVvbmZiOiBjb3Vs ZCBub3QgYWxsb2NhdGUgbWVtb3J5XG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7 CiAJfQogCiAJbWVtc2V0IChyaW5mbywgMCwgc2l6ZW9mIChzdHJ1Y3QgcmFk ZW9uZmJfaW5mbykpOwotCS8vaW5mbyA9ICZyaW5mby0+aW5mbzsKKwogCXJp bmZvLT5wZGV2ID0gcGRldjsKLQlzdHJjcHkocmluZm8tPm5hbWUsIHJjaS0+ bmFtZSk7Ci0JcmluZm8tPmFyY2ggPSByY2ktPmFyY2g7CisJCisJc3RyY3B5 KHJpbmZvLT5uYW1lLCAiQVRJIFJhZGVvbiBYWCAiKTsKKwlyaW5mby0+bmFt ZVsxMV0gPSBlbnQtPmRldmljZSA+PiA4OworCXJpbmZvLT5uYW1lWzEyXSA9 IGVudC0+ZGV2aWNlICYgMHhGRjsKKwkJCisJLyogcmFuZ2UgY2hlY2sgdG8g bWFrZSBzdXJlICovCisJaWYgKGVudC0+ZHJpdmVyX2RhdGEgPCAoc2l6ZW9m KHJhZGVvbl9mYW1pbHkpL3NpemVvZihjaGFyICopKSkKKwkgICAgc3RybmNh dChyaW5mby0+bmFtZSwgcmFkZW9uX2ZhbWlseVtlbnQtPmRyaXZlcl9kYXRh XSwgc2l6ZW9mKHJpbmZvLT5uYW1lKSk7CisJCisJcmluZm8tPmFyY2ggPSBl bnQtPmRyaXZlcl9kYXRhOwogCiAJLyogU2V0IGJhc2UgYWRkcnMgKi8KIAly aW5mby0+ZmJfYmFzZV9waHlzID0gcGNpX3Jlc291cmNlX3N0YXJ0IChwZGV2 LCAwKTsKQEAgLTI4MjQsMzAgKzI4MjYsMjEgQEAKIAkvKiByZXF1ZXN0IHRo ZSBtZW0gcmVnaW9ucyAqLwogCWlmICghcmVxdWVzdF9tZW1fcmVnaW9uIChy aW5mby0+ZmJfYmFzZV9waHlzLAogCQkJCSBwY2lfcmVzb3VyY2VfbGVuKHBk ZXYsIDApLCAicmFkZW9uZmIiKSkgewotCQlwcmludGsgKCJyYWRlb25mYjog Y2Fubm90IHJlc2VydmUgRkIgcmVnaW9uXG4iKTsKLQkJa2ZyZWUgKHJpbmZv KTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCXByaW50ayAoS0VSTl9FUlIgInJh ZGVvbmZiOiBjYW5ub3QgcmVzZXJ2ZSBGQiByZWdpb25cbiIpOworCQlnb3Rv IGZyZWVfcmluZm87CiAJfQogCiAJaWYgKCFyZXF1ZXN0X21lbV9yZWdpb24g KHJpbmZvLT5tbWlvX2Jhc2VfcGh5cywKIAkJCQkgcGNpX3Jlc291cmNlX2xl bihwZGV2LCAyKSwgInJhZGVvbmZiIikpIHsKLQkJcHJpbnRrICgicmFkZW9u ZmI6IGNhbm5vdCByZXNlcnZlIE1NSU8gcmVnaW9uXG4iKTsKLQkJcmVsZWFz ZV9tZW1fcmVnaW9uIChyaW5mby0+ZmJfYmFzZV9waHlzLAotCQkJCSAgICBw Y2lfcmVzb3VyY2VfbGVuKHBkZXYsIDApKTsKLQkJa2ZyZWUgKHJpbmZvKTsK LQkJcmV0dXJuIC1FTk9ERVY7CisJCXByaW50ayAoS0VSTl9FUlIgInJhZGVv bmZiOiBjYW5ub3QgcmVzZXJ2ZSBNTUlPIHJlZ2lvblxuIik7CisJCWdvdG8g cmVsZWFzZV9mYjsKIAl9CiAKIAkvKiBtYXAgdGhlIHJlZ2lvbnMgKi8KIAly aW5mby0+bW1pb19iYXNlID0gKHVuc2lnbmVkIGxvbmcpIGlvcmVtYXAgKHJp bmZvLT5tbWlvX2Jhc2VfcGh5cywgUkFERU9OX1JFR1NJWkUpOwogCWlmICgh cmluZm8tPm1taW9fYmFzZSkgewotCQlwcmludGsgKCJyYWRlb25mYjogY2Fu bm90IG1hcCBNTUlPXG4iKTsKLQkJcmVsZWFzZV9tZW1fcmVnaW9uIChyaW5m by0+bW1pb19iYXNlX3BoeXMsCi0JCQkJICAgIHBjaV9yZXNvdXJjZV9sZW4o cGRldiwgMikpOwotCQlyZWxlYXNlX21lbV9yZWdpb24gKHJpbmZvLT5mYl9i YXNlX3BoeXMsCi0JCQkJICAgIHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMCkp OwotCQlrZnJlZSAocmluZm8pOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJcHJp bnRrIChLRVJOX0VSUiAicmFkZW9uZmI6IGNhbm5vdCBtYXAgTU1JT1xuIik7 CisJCWdvdG8gcmVsZWFzZV9tbWlvOwogCX0KIAogCXJpbmZvLT5jaGlwc2V0 ID0gcGRldi0+ZGV2aWNlOwpAQCAtMjkyNCw3ICsyOTE3LDcgQEAKIAkJCWJy ZWFrOwogCX0KIAotCXJpbmZvLT5iaW9zX3NlZyA9IHJhZGVvbl9maW5kX3Jv bShyaW5mbyk7CisJcmluZm8tPmJpb3Nfc2VnID0gcmFkZW9uX21hcF9ST00o cmluZm8sIHBkZXYpOwogCXJhZGVvbl9nZXRfcGxsaW5mbyhyaW5mbywgcmlu Zm8tPmJpb3Nfc2VnKTsKIAogCS8qCkBAIC0yOTY2LDI2ICsyOTU5LDE0IEBA CiAJaWYgKChyaW5mby0+ZHZpRGlzcF90eXBlID09IE1UX0RGUCkgfHwgKHJp bmZvLT5kdmlEaXNwX3R5cGUgPT0gTVRfTENEKSB8fAogCSAgICAocmluZm8t PmNydERpc3BfdHlwZSA9PSBNVF9ERlApKSB7CiAJCWlmICghcmFkZW9uX2dl dF9kZnBpbmZvKHJpbmZvKSkgewotCQkJaW91bm1hcCAoKHZvaWQqKXJpbmZv LT5tbWlvX2Jhc2UpOwotCQkJcmVsZWFzZV9tZW1fcmVnaW9uIChyaW5mby0+ bW1pb19iYXNlX3BoeXMsCi0JCQkJCSAgICBwY2lfcmVzb3VyY2VfbGVuKHBk ZXYsIDIpKTsKLQkJCXJlbGVhc2VfbWVtX3JlZ2lvbiAocmluZm8tPmZiX2Jh c2VfcGh5cywKLQkJCQkJICAgIHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMCkp OwotCQkJa2ZyZWUgKHJpbmZvKTsKLQkJCXJldHVybiAtRU5PREVWOworCQkJ Z290byB1bm1hcF9yb207CiAJCX0KIAl9CiAKIAlyaW5mby0+ZmJfYmFzZSA9 ICh1bnNpZ25lZCBsb25nKSBpb3JlbWFwIChyaW5mby0+ZmJfYmFzZV9waHlz LCByaW5mby0+dmlkZW9fcmFtKTsKIAlpZiAoIXJpbmZvLT5mYl9iYXNlKSB7 Ci0JCXByaW50ayAoInJhZGVvbmZiOiBjYW5ub3QgbWFwIEZCXG4iKTsKLQkJ aW91bm1hcCAoKHZvaWQqKXJpbmZvLT5tbWlvX2Jhc2UpOwotCQlyZWxlYXNl X21lbV9yZWdpb24gKHJpbmZvLT5tbWlvX2Jhc2VfcGh5cywKLQkJCQkgICAg cGNpX3Jlc291cmNlX2xlbihwZGV2LCAyKSk7Ci0JCXJlbGVhc2VfbWVtX3Jl Z2lvbiAocmluZm8tPmZiX2Jhc2VfcGh5cywKLQkJCQkgICAgcGNpX3Jlc291 cmNlX2xlbihwZGV2LCAwKSk7Ci0JCWtmcmVlIChyaW5mbyk7Ci0JCXJldHVy biAtRU5PREVWOworCQlwcmludGsgKEtFUk5fRVJSICJyYWRlb25mYjogY2Fu bm90IG1hcCBGQlxuIik7CisJCWdvdG8gdW5tYXBfcm9tOwogCX0KIAogCS8q IEkgU0hPVUxEIEZJWCBUSEFUIENSQVAgISBJIHNob3VsZCBwcm9iYWJseSBt aW1taWMgWEZyZWUgRFJJCkBAIC0zMDM1LDE1ICszMDE2LDggQEAKIAlib2Fy ZF9saXN0ID0gcmluZm87CiAKIAlpZiAocmVnaXN0ZXJfZnJhbWVidWZmZXIg KChzdHJ1Y3QgZmJfaW5mbyAqKSByaW5mbykgPCAwKSB7Ci0JCXByaW50ayAo InJhZGVvbmZiOiBjb3VsZCBub3QgcmVnaXN0ZXIgZnJhbWVidWZmZXJcbiIp OwotCQlpb3VubWFwICgodm9pZCopcmluZm8tPmZiX2Jhc2UpOwotCQlpb3Vu bWFwICgodm9pZCopcmluZm8tPm1taW9fYmFzZSk7Ci0JCXJlbGVhc2VfbWVt X3JlZ2lvbiAocmluZm8tPm1taW9fYmFzZV9waHlzLAotCQkJCSAgICBwY2lf cmVzb3VyY2VfbGVuKHBkZXYsIDIpKTsKLQkJcmVsZWFzZV9tZW1fcmVnaW9u IChyaW5mby0+ZmJfYmFzZV9waHlzLAotCQkJCSAgICBwY2lfcmVzb3VyY2Vf bGVuKHBkZXYsIDApKTsKLQkJa2ZyZWUgKHJpbmZvKTsKLQkJcmV0dXJuIC1F Tk9ERVY7CisJCXByaW50ayAoS0VSTl9FUlIgInJhZGVvbmZiOiBjb3VsZCBu b3QgcmVnaXN0ZXIgZnJhbWVidWZmZXJcbiIpOworCQlnb3RvIHVubWFwX2Zi OwogCX0KIAogI2lmZGVmIENPTkZJR19NVFJSCkBAIC0zMDY1LDcgKzMwMzks NyBAQAogCX0KICNlbmRpZgogCi0JcHJpbnRrICgicmFkZW9uZmI6IEFUSSBS YWRlb24gJXMgJXMgJWQgTUJcbiIsIHJpbmZvLT5uYW1lLCByaW5mby0+cmFt X3R5cGUsCisJcHJpbnRrICgicmFkZW9uZmI6ICVzICVzICVkIE1CXG4iLCBy aW5mby0+bmFtZSwgcmluZm8tPnJhbV90eXBlLAogCQkocmluZm8tPnZpZGVv X3JhbS8oMTAyNCoxMDI0KSkpOwogCiAJaWYgKHJpbmZvLT5oYXNDUlRDMikg ewpAQCAtMzA3OCw5ICszMDUyLDI0IEBACiAJCQlHRVRfTU9OX05BTUUocmlu Zm8tPmNydERpc3BfdHlwZSkpOwogCX0KIAorCXJhZGVvbl91bm1hcF9ST00o cGRldiwgcmluZm8tPmJpb3Nfc2VnKTsKIAlSVFJBQ0UoInJhZGVvbmZiX3Bj aV9yZWdpc3RlciBFTkRcbiIpOwogCiAJcmV0dXJuIDA7Cit1bm1hcF9mYjoK Kwlpb3VubWFwICgodm9pZCopcmluZm8tPmZiX2Jhc2UpOwordW5tYXBfcm9t OgkKKwlyYWRlb25fdW5tYXBfUk9NKHBkZXYsIHJpbmZvLT5iaW9zX3NlZyk7 CisJaW91bm1hcCAoKHZvaWQqKXJpbmZvLT5tbWlvX2Jhc2UpOworcmVsZWFz ZV9tbWlvOgorCXJlbGVhc2VfbWVtX3JlZ2lvbiAocmluZm8tPm1taW9fYmFz ZV9waHlzLAorCQkJICAgIHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMikpOwor cmVsZWFzZV9mYjoJCisJcmVsZWFzZV9tZW1fcmVnaW9uIChyaW5mby0+ZmJf YmFzZV9waHlzLAorCQkJICAgIHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMCkp OworZnJlZV9yaW5mbzoJCisJa2ZyZWUgKHJpbmZvKTsKKwlyZXR1cm4gLUVO T0RFVjsKIH0KIAogCkBAIC0zMTM3LDQwICszMTI2LDI1IEBACiAJcGNpX3Vu cmVnaXN0ZXJfZHJpdmVyICgmcmFkZW9uZmJfZHJpdmVyKTsKIH0KIAotCi1p bnQgX19pbml0IHJhZGVvbmZiX3NldHVwIChjaGFyICpvcHRpb25zKQotewot ICAgICAgICBjaGFyICp0aGlzX29wdDsKLQotICAgICAgICBpZiAoIW9wdGlv bnMgfHwgISpvcHRpb25zKQotICAgICAgICAgICAgICAgIHJldHVybiAwOwot IAotCXdoaWxlICgodGhpc19vcHQgPSBzdHJzZXAgKCZvcHRpb25zLCAiLCIp KSAhPSBOVUxMKSB7Ci0JCWlmICghKnRoaXNfb3B0KQotCQkJY29udGludWU7 Ci0gICAgICAgICAgICAgICAgaWYgKCFzdHJuY21wKHRoaXNfb3B0LCAibm9h Y2NlbCIsIDcpKSB7Ci0JCQlub2FjY2VsID0gMTsKLSAgICAgICAgICAgICAg ICB9IGVsc2UgaWYgKCFzdHJuY21wKHRoaXNfb3B0LCAibWlycm9yIiwgNikp IHsKLQkJCW1pcnJvciA9IDE7Ci0JCX0gZWxzZSBpZiAoIXN0cm5jbXAodGhp c19vcHQsICJkZnAiLCAzKSkgewotCQkJZm9yY2VfZGZwID0gMTsKLQkJfSBl bHNlIGlmICghc3RybmNtcCh0aGlzX29wdCwgInBhbmVsX3lyZXM6IiwgMTEp KSB7Ci0JCQlwYW5lbF95cmVzID0gc2ltcGxlX3N0cnRvdWwoKHRoaXNfb3B0 KzExKSwgTlVMTCwgMCk7Ci0JCX0gZWxzZSBpZiAoIXN0cm5jbXAodGhpc19v cHQsICJub210cnIiLCA2KSkgewotCQkJbm9tdHJyID0gMTsKLSAgICAgICAg ICAgICAgICB9IGVsc2UKLQkJCW1vZGVfb3B0aW9uID0gdGhpc19vcHQ7Ci0g ICAgICAgIH0KLQotCXJldHVybiAwOwotfQotCiAjaWZkZWYgTU9EVUxFCiBt b2R1bGVfaW5pdChyYWRlb25mYl9pbml0KTsKIG1vZHVsZV9leGl0KHJhZGVv bmZiX2V4aXQpOwogI2VuZGlmCiAKLQogTU9EVUxFX0FVVEhPUigiQW5pIEpv c2hpIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oImZyYW1lYnVmZmVyIGRyaXZl ciBmb3IgQVRJIFJhZGVvbiBjaGlwc2V0Iik7CiBNT0RVTEVfTElDRU5TRSgi R1BMIik7Cittb2R1bGVfcGFyYW0obm9hY2NlbCwgYm9vbCwgMCk7CitNT0RV TEVfUEFSTV9ERVNDKG5vYWNjZWwsICJib29sOiBkaXNhYmxlIGFjY2VsZXJh dGlvbiIpOworbW9kdWxlX3BhcmFtKG1pcnJvciwgYm9vbCwgMCk7CitNT0RV TEVfUEFSTV9ERVNDKG1pcnJvciwgImJvb2w6IG1pcnJvciB0aGUgZGlzcGxh eSB0byBib3RoIG1vbml0b3JzIik7Cittb2R1bGVfcGFyYW0oZm9yY2VfZGZw LCBib29sLCAwKTsKK01PRFVMRV9QQVJNX0RFU0MoZm9yY2VfZGZwLCAiYm9v bDogZm9yY2UgZGlzcGxheSB0byBkZnAiKTsKKyNpZmRlZiBDT05GSUdfTVRS UgorbW9kdWxlX3BhcmFtKG5vbXRyciwgYm9vbCwgMCk7CitNT0RVTEVfUEFS TV9ERVNDKG5vbXRyciwgImJvb2w6IGRpc2FibGUgdXNlIG9mIE1UUlIgcmVn aXN0ZXJzIik7CisjZW5kaWYKK21vZHVsZV9wYXJhbShwYW5lbF95cmVzLCBp bnQsIDApOworTU9EVUxFX1BBUk1fREVTQyhmb3JjZV9kZnAsICJpbnQ6IHNl dCBwYW5lbCB5cmVzIik7Cittb2R1bGVfcGFyYW0obW9kZV9vcHRpb24sIGNo YXJwLCAwKTsKK01PRFVMRV9QQVJNX0RFU0MobW9kZV9vcHRpb24sICJTcGVj aWZ5IHJlc29sdXRpb24gYXMgXCI8eHJlcz54PHlyZXM+Wy08YnBwPl1bQDxy ZWZyZXNoPl1cIiAiKTsKZGlmZiAtTnJ1IGEvaW5jbHVkZS9saW51eC9wY2lf aWRzLmggYi9pbmNsdWRlL2xpbnV4L3BjaV9pZHMuaAotLS0gYS9pbmNsdWRl L2xpbnV4L3BjaV9pZHMuaAlGcmkgQXVnIDE1IDIxOjE5OjAyIDIwMDMKKysr IGIvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgJRnJpIEF1ZyAxNSAyMToxOTow MiAyMDAzCkBAIC0xODIsOCArMTgyLDIxIEBACiAjZGVmaW5lIFBDSV9ERVZJ Q0VfSURfTFNJXzYzQzgxNQkweDEwMDAKIAogI2RlZmluZSBQQ0lfVkVORE9S X0lEX0FUSQkJMHgxMDAyCi0vKiBNYWNoNjQgKi8KKy8qIFJhZGVvbiAqLwor I2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fQTYJMHg0MTM2Cisj ZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9BNwkweDQxMzcKKyNk ZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0FECTB4NDE0NAorI2Rl ZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fQUUJMHg0MTQ1CisjZGVm aW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9BRgkweDQxNDYKKyNkZWZp bmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0FHCTB4NDE0NwogI2RlZmlu ZSBQQ0lfREVWSUNFX0lEX0FUSV82ODgwMAkJMHg0MTU4CisjZGVmaW5lIFBD SV9ERVZJQ0VfSURfQVRJX1JBREVPTl9BZAkweDQxNjQKKyNkZWZpbmUgUENJ X0RFVklDRV9JRF9BVElfUkFERU9OX0I3CTB4NDIzNworI2RlZmluZSBQQ0lf REVWSUNFX0lEX0FUSV9SQURFT05fQkIJMHg0MjQyCisjZGVmaW5lIFBDSV9E RVZJQ0VfSURfQVRJX1JBREVPTl9DNgkweDQzMzYKKyNkZWZpbmUgUENJX0RF VklDRV9JRF9BVElfUkFERU9OX0M3CTB4NDMzNworI2RlZmluZSBQQ0lfREVW SUNFX0lEX0FUSV9SQURFT05fRDcJMHg0MzM3CisvKiBNYWNoNjQgKi8KICNk ZWZpbmUgUENJX0RFVklDRV9JRF9BVElfMjE1Q1QyMjIJMHg0MzU0CiAjZGVm aW5lIFBDSV9ERVZJQ0VfSURfQVRJXzIxMDg4OENYCTB4NDM1OAogI2RlZmlu ZSBQQ0lfREVWSUNFX0lEX0FUSV8yMTVFVDIyMgkweDQ1NTQKQEAgLTIwMCw2 ICsyMTMsMTMgQEAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfMjE1X0lX CTB4NDc1NwogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV8yMTVfSVoJMHg0 NzVBCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJXzIxMDg4OEdYCTB4NDc1 OAorLyogUmFkZW9uIFJWMjUwICg5MDAwKSAqLworI2RlZmluZSBQQ0lfREVW SUNFX0lEX0FUSV9SQURFT05fSWQJMHg0OTY0CisjZGVmaW5lIFBDSV9ERVZJ Q0VfSURfQVRJX1JBREVPTl9JZQkweDQ5NjUKKyNkZWZpbmUgUENJX0RFVklD RV9JRF9BVElfUkFERU9OX0lmCTB4NDk2NgorI2RlZmluZSBQQ0lfREVWSUNF X0lEX0FUSV9SQURFT05fSWcJMHg0OTY3CisjZGVmaW5lIFBDSV9ERVZJQ0Vf SURfQVRJX1JBREVPTl9JbgkweDQ5NmUKKy8qIE1hY2g2NCAvIFJhZ2UgKi8K ICNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfMjE1X0xCCTB4NGM0MgogI2Rl ZmluZSBQQ0lfREVWSUNFX0lEX0FUSV8yMTVfTEQJMHg0YzQ0CiAjZGVmaW5l IFBDSV9ERVZJQ0VfSURfQVRJXzIxNV9MRwkweDRjNDcKQEAgLTIwOSwxNSAr MjI5LDQwIEBACiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJXzIxNV9MUgkw eDRjNTIKICNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfMjE1X0xTCTB4NGM1 MwogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV8yNjRfTFQJMHg0YzU0Ci0v KiBSYWRlb24gTTQgKi8KLSNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFE RU9OX0xFCTB4NGQ0NQotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURF T05fTEYJMHg0ZDQ2CisvKiBSYWRlb24gTTcgKi8KKyNkZWZpbmUgUENJX0RF VklDRV9JRF9BVElfUkFERU9OX0xXCTB4NGM1NworI2RlZmluZSBQQ0lfREVW SUNFX0lEX0FUSV9SQURFT05fTFgJMHg0YzU4CisvKiBSYWRlb24gTTYgKi8K KyNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0xZCTB4NGM1OQor I2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTFoJMHg0YzVhCisj ZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9MZAkweDRjNjQKKyNk ZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0xlCTB4NGM2NQorI2Rl ZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTGYJMHg0YzY2CisjZGVm aW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9MZwkweDRjNjcKKyNkZWZp bmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0xuCTB4NGM2ZQorLyogUmFn ZTEyOCBNMyAqLworI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4 X0xFCTB4NGM0NQorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4 X0xGCTB4NGM0NgorLyogUmFnZTEyOCBNNCAqLworI2RlZmluZSBQQ0lfREVW SUNFX0lEX0FUSV9SQUdFMTI4X01GCTB4NGQ0NgorI2RlZmluZSBQQ0lfREVW SUNFX0lEX0FUSV9SQUdFMTI4X01MCTB4NGQ0YworLyogUmFkZW9uIFIzMDAg KDk3MDApICovCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9O RAkweDRlNDQKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX05F CTB4NGU0NQorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTkYJ MHg0ZTQ2CisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9ORwkw eDRlNDcKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX05ICTB4 NGU0OAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTmQJMHg0 ZTY0CisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9OZQkweDRl NjUKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX05mCTB4NGU2 NgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTmcJMHg0ZTY3 CisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9OaAkweDRlNjgK IC8qIFJhZ2UxMjggUHJvIEdMICovCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JhZ2UxMjhfUEEJMHg1MDQxCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JhZ2UxMjhfUEIJMHg1MDQyCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JhZ2UxMjhfUEMJMHg1MDQzCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JhZ2UxMjhfUEQJMHg1MDQ0Ci0jZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JhZ2UxMjhfUEUJMHg1MDQ1CisjZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JBR0UxMjhfUEEJMHg1MDQxCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JBR0UxMjhfUEIJMHg1MDQyCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JBR0UxMjhfUEMJMHg1MDQzCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JBR0UxMjhfUEQJMHg1MDQ0CisjZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JBR0UxMjhfUEUJMHg1MDQ1CiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JBR0UxMjhfUEYJMHg1MDQ2CiAvKiBSYWdlMTI4IFBybyBWUiAqLwog I2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1BHCTB4NTA0NwpA QCAtMjQ0LDc4ICsyODksNjAgQEAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9B VElfUkFERU9OX1FFCTB4NTE0NQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FU SV9SQURFT05fUUYJMHg1MTQ2CiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJ X1JBREVPTl9RRwkweDUxNDcKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElf UkFERU9OX1FICTB4NTE0OAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9S QURFT05fUUkJMHg1MTQ5CisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JB REVPTl9RSgkweDUxNGEKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFE RU9OX1FLCTB4NTE0YgogLyogUmFkZW9uIFIyMDAgKDg1MDApICovCiAjZGVm aW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9RTAkweDUxNGMKKyNkZWZp bmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX1FNCTB4NTE0ZAogI2RlZmlu ZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fUU4JMHg1MTRlCiAjZGVmaW5l IFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9RTwkweDUxNGYKLSNkZWZpbmUg UENJX0RFVklDRV9JRF9BVElfUkFERU9OX1FsCTB4NTE2YwotI2RlZmluZSBQ Q0lfREVWSUNFX0lEX0FUSV9SQURFT05fQkIJMHg0MjQyCiAvKiBSYWRlb24g UlYyMDAgKDc1MDApICovCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JB REVPTl9RVwkweDUxNTcKICNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFE RU9OX1FYCTB4NTE1OAotLyogUmFkZW9uIE5WLTEwMCAqLwotI2RlZmluZSBQ Q0lfREVWSUNFX0lEX0FUSV9SQURFT05fTjEJMHg1MTU5Ci0jZGVmaW5lIFBD SV9ERVZJQ0VfSURfQVRJX1JBREVPTl9OMgkweDUxNWEKIC8qIFJhZGVvbiBS VjEwMCAoVkUpICovCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVP Tl9RWQkweDUxNTkKICNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9O X1FaCTB4NTE1YQotLyogUmFkZW9uIFJWMjUwICg5MDAwKSAqLwotI2RlZmlu ZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fSWQJMHg0OTY0Ci0jZGVmaW5l IFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9JZQkweDQ5NjUKLSNkZWZpbmUg UENJX0RFVklDRV9JRF9BVElfUkFERU9OX0lmCTB4NDk2NgotI2RlZmluZSBQ Q0lfREVWSUNFX0lEX0FUSV9SQURFT05fSWcJMHg0OTY3Ci0jZGVmaW5lIFBD SV9ERVZJQ0VfSURfQVRJX1JBREVPTl9RTQkweDUxNGQKLS8qIFJhZGVvbiBS MzAwICg5NzAwKSAqLwotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURF T05fTkQJMHg0ZTQ0Ci0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVP Tl9ORQkweDRlNDUKLSNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9O X05GCTB4NGU0NgotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05f TkcJMHg0ZTQ3Ci0vKiBSYWRlb24gTTYgKi8KLSNkZWZpbmUgUENJX0RFVklD RV9JRF9BVElfUkFERU9OX0xZCTB4NGM1OQotI2RlZmluZSBQQ0lfREVWSUNF X0lEX0FUSV9SQURFT05fTFoJMHg0YzVhCi0vKiBSYWRlb24gTTcgKi8KLSNk ZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0xXCTB4NGM1NwotI2Rl ZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTFgJMHg0YzU4Ci0jZGVm aW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9MZAkweDQ5NjQKLSNkZWZp bmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX0xlCTB4NDk2NQotI2RlZmlu ZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fTGYJMHg0OTY2Ci0jZGVmaW5l IFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9MZwkweDQ5NjcKLS8qIFJhZGVv biAqLwotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fUkEJMHg1 MTQ0Ci0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JBREVPTl9SQgkweDUx NDUKLSNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFERU9OX1JDCTB4NTE0 NgotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQURFT05fUkQJMHg1MTQ3 Ci0vKiBSYWdlMTI4IEdMICovCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJ X1JBREVPTl9RaAkweDUxNjgKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElf UkFERU9OX1FpCTB4NTE2OQorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9S QURFT05fUWoJMHg1MTZhCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJX1JB REVPTl9RawkweDUxNmIKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFE RU9OX1FsCTB4NTE2YworLyogUmFnZTEyOCBWUiAqLwogI2RlZmluZSBQQ0lf REVWSUNFX0lEX0FUSV9SQUdFMTI4X1JFCTB4NTI0NQogI2RlZmluZSBQQ0lf REVWSUNFX0lEX0FUSV9SQUdFMTI4X1JGCTB4NTI0NgotI2RlZmluZSBQQ0lf REVWSUNFX0lEX0FUSV9SQUdFMTI4X1JHCTB4NTM0YgotI2RlZmluZSBQQ0lf REVWSUNFX0lEX0FUSV9SQUdFMTI4X1JICTB4NTM0YwotI2RlZmluZSBQQ0lf REVWSUNFX0lEX0FUSV9SQUdFMTI4X1JJCTB4NTM0ZAotLyogUmFnZTEyOCBW UiAqLworI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1JHCTB4 NTI0NwogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1JLCTB4 NTI0YgogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1JMCTB4 NTI0YwotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1JNCTB4 NTM0NQotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1JOCTB4 NTM0NgotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1JPCTB4 NTM0NwotLyogUmFnZTEyOCBNMyAqLwotI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X0xFCTB4NGM0NQotI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X0xGCTB4NGM0NgorI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X1NFCTB4NTM0NQorI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X1NGCTB4NTM0NgorI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X1NHCTB4NTM0NworI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X1NICTB4NTM0OAorI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X1NLCTB4NTM0YgorI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X1NMCTB4NTM0YworI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X1NNCTB4NTM0ZAorI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQUdFMTI4X1NOCTB4NTM0ZQogLyogUmFnZTEyOCBQcm8gVWx0cmEg Ki8KLSNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9VMQkweDU0 NDYKLSNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9VMgkweDU0 NEMKLSNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfUkFHRTEyOF9VMwkweDU0 NTIKLS8qIE1hY2g2NCBWVCAqLwotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FU SV8yNjRWVAkJMHg1NjU0Ci0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVRJXzI2 NFZVCQkweDU2NTUKLSNkZWZpbmUgUENJX0RFVklDRV9JRF9BVElfMjY0VlYJ CTB4NTY1NgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1RG CTB4NTQ0NgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1RM CTB4NTQ0QworI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1RS CTB4NTQ1MgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1RT CTB4NTQ1MworI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1RU CTB4NTQ1NAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FUSV9SQUdFMTI4X1RV CTB4NTQ1NQorLyogUmFkZW9uIFJTMzAwICovCisjZGVmaW5lIFBDSV9ERVZJ Q0VfSURfQVRJX1JBREVPTl9YMAkweDU4MzAKKyNkZWZpbmUgUENJX0RFVklD RV9JRF9BVElfUkFERU9OX1gxCTB4NTgzMQorI2RlZmluZSBQQ0lfREVWSUNF X0lEX0FUSV9SQURFT05fWDIJMHg1ODMyCisjZGVmaW5lIFBDSV9ERVZJQ0Vf SURfQVRJX1JBREVPTl9YMwkweDU4MzMKKyNkZWZpbmUgUENJX0RFVklDRV9J RF9BVElfUkFERU9OX1g0CTB4NTgzNAorI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SQURFT05fWDUJMHg1ODM1CisjZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JBREVPTl9YNgkweDU4MzYKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9B VElfUkFERU9OX1g3CTB4NTgzNwogLyogUmFkZW9uSUdQICovCiAjZGVmaW5l IFBDSV9ERVZJQ0VfSURfQVRJX1JTMTAwCQkweGNhYjAKICNkZWZpbmUgUENJ X0RFVklDRV9JRF9BVElfUlMyMDAJCTB4Y2FiMgogI2RlZmluZSBQQ0lfREVW SUNFX0lEX0FUSV9SUzI1MAkJMHhjYWIzCi0jZGVmaW5lIFBDSV9ERVZJQ0Vf SURfQVRJX1JTMzAwXzEwMAkweDU4MzAKLSNkZWZpbmUgUENJX0RFVklDRV9J RF9BVElfUlMzMDBfMTMzCTB4NTgzMQotI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FUSV9SUzMwMF8xNjYJMHg1ODMyCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURf QVRJX1JTMzAwXzIwMAkweDU4MzMKIAogI2RlZmluZSBQQ0lfVkVORE9SX0lE X1ZMU0kJCTB4MTAwNAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX1ZMU0lfODJD NTkyCTB4MDAwNQpkaWZmIC1OcnUgYS9pbmNsdWRlL3ZpZGVvL2F0eTEyOC5o IGIvaW5jbHVkZS92aWRlby9hdHkxMjguaAotLS0gYS9pbmNsdWRlL3ZpZGVv L2F0eTEyOC5oCUZyaSBBdWcgMTUgMjE6MTk6MDIgMjAwMworKysgYi9pbmNs dWRlL3ZpZGVvL2F0eTEyOC5oCUZyaSBBdWcgMTUgMjE6MTk6MDIgMjAwMwpA QCAtNDE2LDQgKzQxNiw3IEBACiAKICNkZWZpbmUgUE1JX1BNU0NSX1JFRwkJ CQkweDYwCiAKKy8qIHVzZWQgYnkgQVRJIGJ1ZyBmaXggZm9yIGhhcmR3YXJl IFJPTSAqLworI2RlZmluZSBSQUdFMTI4X01QUF9UQl9DT05GSUcgICAgICAg ICAgICAJMHgwMWMwCisKICNlbmRpZgkJCQkvKiBSRUdfUkFHRTEyOF9IICov CmRpZmYgLU5ydSBhL2luY2x1ZGUvdmlkZW8vcmFkZW9uLmggYi9pbmNsdWRl L3ZpZGVvL3JhZGVvbi5oCi0tLSBhL2luY2x1ZGUvdmlkZW8vcmFkZW9uLmgJ RnJpIEF1ZyAxNSAyMToxOTowMiAyMDAzCisrKyBiL2luY2x1ZGUvdmlkZW8v cmFkZW9uLmgJRnJpIEF1ZyAxNSAyMToxOTowMiAyMDAzCkBAIC04NzIsNSAr ODcyLDggQEAKIAogI2RlZmluZSBHVUlfQUNUSVZFCQkJMHg4MDAwMDAwMAog CisvKiB1c2VkIGJ5IEFUSSBidWcgZml4IGZvciBoYXJkd2FyZSBST00gKi8K KyNkZWZpbmUgUkFERU9OX01QUF9UQl9DT05GSUcgICAgICAgICAgICAweDAx YzAKKwogI2VuZGlmCS8qIF9SQURFT05fSCAqLwogCg== --0-76664040-1060997088=:21824-- ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01