From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JQoO5-0005Dw-DO for qemu-devel@nongnu.org; Sun, 17 Feb 2008 13:37:17 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JQoO3-0005DU-OA for qemu-devel@nongnu.org; Sun, 17 Feb 2008 13:37:17 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JQoO3-0005DR-Iz for qemu-devel@nongnu.org; Sun, 17 Feb 2008 13:37:15 -0500 Received: from fk-out-0910.google.com ([209.85.128.184]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JQoO2-00039r-Pu for qemu-devel@nongnu.org; Sun, 17 Feb 2008 13:37:15 -0500 Received: by fk-out-0910.google.com with SMTP id 18so2749148fkq.2 for ; Sun, 17 Feb 2008 10:37:13 -0800 (PST) Message-ID: Date: Sun, 17 Feb 2008 20:37:12 +0200 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2794_30447935.1203273432859" Subject: [Qemu-devel] [PATCH, RFC] Sparc32/64 code generator for TCG Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fabrice Bellard Cc: qemu-devel ------=_Part_2794_30447935.1203273432859 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, I implemented first pieces of Sparc32/64 code generator. It can't run any programs as goto_tb indirect method is broken. What is it supposed to do? Any other comments are welcome. For example, I added a call for prelude output. ------=_Part_2794_30447935.1203273432859 Content-Type: text/x-diff; name=tcg_sparc.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fcrxunl3 Content-Disposition: attachment; filename=tcg_sparc.diff SW5kZXg6IHFlbXUvdGNnL3NwYXJjL3RjZy10YXJnZXQuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdGNnL3NwYXJj L3RjZy10YXJnZXQuYwkyMDA4LTAyLTE3IDE4OjIyOjUxLjAwMDAwMDAwMCArMDAwMApAQCAtMCww ICsxLDM1NCBAQAorLyoKKyAqIFRpbnkgQ29kZSBHZW5lcmF0b3IgZm9yIFFFTVUKKyAqCisgKiBD b3B5cmlnaHQgKGMpIDIwMDggRmFicmljZSBCZWxsYXJkCisgKgorICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEg Y29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp bGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKyAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKKyAq IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj ZW5zZSwgYW5kL29yIHNlbGwKKyAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt aXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs dWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m dHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICog RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4g Tk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG Uk9NLAorICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorICogVEhFIFNPRlRXQVJFLgorICovCisKK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3QgdGNnX3RhcmdldF9yZWdfbmFtZXNbVENHX1RBUkdFVF9OQl9S RUdTXSA9IHsKKyAgICAiJWcwIiwKKyAgICAiJWcxIiwKKyAgICAiJWcyIiwKKyAgICAiJWczIiwK KyAgICAiJWc0IiwKKyAgICAiJWc1IiwKKyAgICAiJWc2IiwKKyAgICAiJWc3IiwKKyAgICAiJW8w IiwKKyAgICAiJW8xIiwKKyAgICAiJW8yIiwKKyAgICAiJW8zIiwKKyAgICAiJW80IiwKKyAgICAi JW81IiwKKyAgICAiJW82IiwKKyAgICAiJW83IiwKKyAgICAiJWwwIiwKKyAgICAiJWwxIiwKKyAg ICAiJWwyIiwKKyAgICAiJWwzIiwKKyAgICAiJWw0IiwKKyAgICAiJWw1IiwKKyAgICAiJWw2IiwK KyAgICAiJWw3IiwKKyAgICAiJWkwIiwKKyAgICAiJWkxIiwKKyAgICAiJWkyIiwKKyAgICAiJWkz IiwKKyAgICAiJWk0IiwKKyAgICAiJWk1IiwKKyAgICAiJWk2IiwKKyAgICAiJWk3IiwKK307CisK K3N0YXRpYyBjb25zdCBpbnQgdGNnX3RhcmdldF9yZWdfYWxsb2Nfb3JkZXJbVENHX1RBUkdFVF9O Ql9SRUdTXSA9IHsKKyAgICBUQ0dfUkVHX0wwLAorICAgIFRDR19SRUdfTDEsCisgICAgVENHX1JF R19MMiwKKyAgICBUQ0dfUkVHX0wzLAorICAgIFRDR19SRUdfTDQsCisgICAgVENHX1JFR19MNSwK KyAgICBUQ0dfUkVHX0w2LAorICAgIFRDR19SRUdfTDcsCisgICAgVENHX1JFR19JMCwKKyAgICBU Q0dfUkVHX0kxLAorICAgIFRDR19SRUdfSTIsCisgICAgVENHX1JFR19JMywKKyAgICBUQ0dfUkVH X0k0LAorICAgIFRDR19SRUdfSTUsCit9OworCitzdGF0aWMgY29uc3QgaW50IHRjZ190YXJnZXRf Y2FsbF9pYXJnX3JlZ3NbNl0gPSB7CisgICAgVENHX1JFR19PMCwKKyAgICBUQ0dfUkVHX08xLAor ICAgIFRDR19SRUdfTzIsCisgICAgVENHX1JFR19PMywKKyAgICBUQ0dfUkVHX080LAorICAgIFRD R19SRUdfTzUsCit9OworCitzdGF0aWMgY29uc3QgaW50IHRjZ190YXJnZXRfY2FsbF9vYXJnX3Jl Z3NbMl0gPSB7CisgICAgVENHX1JFR19PMCwKKyAgICBUQ0dfUkVHX08xLAorfTsKKworc3RhdGlj IHZvaWQgcGF0Y2hfcmVsb2ModWludDhfdCAqY29kZV9wdHIsIGludCB0eXBlLAorICAgICAgICAg ICAgICAgICAgICAgICAgdGNnX3RhcmdldF9sb25nIHZhbHVlKQoreworICAgIHN3aXRjaCAodHlw ZSkgeworICAgIGNhc2UgUl9TUEFSQ18zMjoKKyAgICAgICAgaWYgKHZhbHVlICE9ICh1aW50MzJf dCl2YWx1ZSkKKyAgICAgICAgICAgIHRjZ19hYm9ydCgpOworICAgICAgICAqKHVpbnQzMl90ICop Y29kZV9wdHIgPSB2YWx1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg dGNnX2Fib3J0KCk7CisgICAgfQorfQorCisvKiBtYXhpbXVtIG51bWJlciBvZiByZWdpc3RlciB1 c2VkIGZvciBpbnB1dCBmdW5jdGlvbiBhcmd1bWVudHMgKi8KK3N0YXRpYyBpbmxpbmUgaW50IHRj Z190YXJnZXRfZ2V0X2NhbGxfaWFyZ19yZWdzX2NvdW50KGludCBmbGFncykKK3sKKyAgICByZXR1 cm4gNjsKK30KKworLyogcGFyc2UgdGFyZ2V0IHNwZWNpZmljIGNvbnN0cmFpbnRzICovCitzdGF0 aWMgaW50IHRhcmdldF9wYXJzZV9jb25zdHJhaW50KFRDR0FyZ0NvbnN0cmFpbnQgKmN0LCBjb25z dCBjaGFyICoqcGN0X3N0cikKK3sKKyAgICBjb25zdCBjaGFyICpjdF9zdHI7CisKKyAgICBjdF9z dHIgPSAqcGN0X3N0cjsKKyAgICBzd2l0Y2ggKGN0X3N0clswXSkgeworICAgIGNhc2UgJ3InOgor ICAgIGNhc2UgJ0wnOiAvKiBxZW11X2xkL3N0IGNvbnN0cmFpbnQgKi8KKyAgICAgICAgY3QtPmN0 IHw9IFRDR19DVF9SRUc7CisgICAgICAgIHRjZ19yZWdzZXRfc2V0MzIoY3QtPnUucmVncywgMCwg MHhmZmZmZmZmZik7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy biAtMTsKKyAgICB9CisgICAgY3Rfc3RyKys7CisgICAgKnBjdF9zdHIgPSBjdF9zdHI7CisgICAg cmV0dXJuIDA7Cit9CisKKy8qIHRlc3QgaWYgYSBjb25zdGFudCBtYXRjaGVzIHRoZSBjb25zdHJh aW50ICovCitzdGF0aWMgaW5saW5lIGludCB0Y2dfdGFyZ2V0X2NvbnN0X21hdGNoKHRjZ190YXJn ZXRfbG9uZyB2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IFRDR0FyZ0NvbnN0cmFpbnQgKmFyZ19jdCkKK3sKKyAgICBpbnQgY3Q7CisKKyAgICBjdCA9 IGFyZ19jdC0+Y3Q7CisgICAgaWYgKGN0ICYgVENHX0NUX0NPTlNUKQorICAgICAgICByZXR1cm4g MTsKKyAgICBlbHNlIGlmICgoY3QgJiBUQ0dfQ1RfQ09OU1RfUzMyKSAmJiB2YWwgPT0gKGludDMy X3QpdmFsKQorICAgICAgICByZXR1cm4gMTsKKyAgICBlbHNlIGlmICgoY3QgJiBUQ0dfQ1RfQ09O U1RfVTMyKSAmJiB2YWwgPT0gKHVpbnQzMl90KXZhbCkKKyAgICAgICAgcmV0dXJuIDE7CisgICAg ZWxzZQorICAgICAgICByZXR1cm4gMDsKK30KKworI2RlZmluZSBJTlNOX09QKHgpICAoKHgpIDw8 IDMwKQorI2RlZmluZSBJTlNOX09QMih4KSAoKHgpIDw8IDIyKQorI2RlZmluZSBJTlNOX09QMyh4 KSAoKHgpIDw8IDE5KQorI2RlZmluZSBJTlNOX09QRih4KSAoKHgpIDw8IDUpCisjZGVmaW5lIElO U05fUkQoeCkgICgoeCkgPDwgMjUpCisjZGVmaW5lIElOU05fUlMxKHgpICgoeCkgPDwgMTQpCisj ZGVmaW5lIElOU05fUlMyKHgpICh4KQorCisjZGVmaW5lIElOU05fSU1NMTMoeCkgKCgxIDw8IDEz KSB8ICh4KSkKKworI2RlZmluZSBJTlNOX0NPTkQoeCwgYSkgKCgoeCkgPDwgMjUpIHwgKChhKSA8 PCAyOSkKKworI2RlZmluZSBBUklUSF9BREQgIChJTlNOX09QKDIpIHwgSU5TTl9PUDMoMHgwMCkp CisjZGVmaW5lIEFSSVRIX0FORCAgKElOU05fT1AoMikgfCBJTlNOX09QMygweDAxKSkKKyNkZWZp bmUgQVJJVEhfT1IgICAoSU5TTl9PUCgyKSB8IElOU05fT1AzKDB4MDIpKQorI2RlZmluZSBBUklU SF9YT1IgIChJTlNOX09QKDIpIHwgSU5TTl9PUDMoMHgwMykpCisjZGVmaW5lIEFSSVRIX1NVQiAg KElOU05fT1AoMikgfCBJTlNOX09QMygweDA4KSkKKyNkZWZpbmUgQVJJVEhfQUREWCAoSU5TTl9P UCgyKSB8IElOU05fT1AzKDB4MTApKQorI2RlZmluZSBBUklUSF9TVUJYIChJTlNOX09QKDIpIHwg SU5TTl9PUDMoMHgwYykpCisKKyNkZWZpbmUgU0hJRlRfU0xMICAoSU5TTl9PUCgyKSB8IElOU05f T1AzKDB4MjUpKQorI2RlZmluZSBTSElGVF9TUkwgIChJTlNOX09QKDIpIHwgSU5TTl9PUDMoMHgy NikpCisjZGVmaW5lIFNISUZUX1NSQSAgKElOU05fT1AoMikgfCBJTlNOX09QMygweDI3KSkKKwor I2RlZmluZSBKTVBMICAgICAgIChJTlNOX09QKDIpIHwgSU5TTl9PUDMoMHgzOCkpCisjZGVmaW5l IFNBVkUgICAgICAgKElOU05fT1AoMikgfCBJTlNOX09QMygweDNjKSkKKyNkZWZpbmUgUkVTVE9S RSAgICAoSU5TTl9PUCgyKSB8IElOU05fT1AzKDB4M2QpKQorI2RlZmluZSBTRVRISSAgICAgIChJ TlNOX09QKDApIHwgSU5TTl9PUDIoMHg0KSkKKyNkZWZpbmUgQ0FMTCAgICAgICBJTlNOX09QKDEp CisjZGVmaW5lIExEVVcgICAgICAgKElOU05fT1AoMykgfCBJTlNOX09QMygweDAwKSkKKworc3Rh dGljIGlubGluZSB2b2lkIHRjZ19vdXRfbW92KFRDR0NvbnRleHQgKnMsIGludCByZXQsIGludCBh cmcpCit7CisgICAgdGNnX291dDMyKHMsIEFSSVRIX09SIHwgSU5TTl9SRChyZXQpIHwgSU5TTl9S UzEoYXJnKSB8CisgICAgICAgICAgICAgIElOU05fUlMyKFRDR19SRUdfRzApKTsKK30KKworc3Rh dGljIGlubGluZSB2b2lkIHRjZ19vdXRfbW92aShUQ0dDb250ZXh0ICpzLCBUQ0dUeXBlIHR5cGUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXQsIHRjZ190YXJnZXRfbG9u ZyBhcmcpCit7CisgICAgaWYgKGFyZyA9PSAoYXJnICYgMHgzZmYpKQorICAgICAgICB0Y2dfb3V0 MzIocywgQVJJVEhfT1IgfCBJTlNOX1JEKHJldCkgfCBJTlNOX1JTMihUQ0dfUkVHX0cwKSB8Cisg ICAgICAgICAgICAgICAgICBJTlNOX0lNTTEzKGFyZykpOworICAgIGVsc2UgeworICAgICAgICB0 Y2dfb3V0MzIocywgU0VUSEkgfCBJTlNOX1JEKHJldCkgfCAoKGFyZyAmIDB4ZmZmZmZjMDApID4+ IDEwKSk7CisgICAgICAgIHRjZ19vdXQzMihzLCBBUklUSF9PUiB8IElOU05fUkQocmV0KSB8IElO U05fUlMxKHJldCkgfAorICAgICAgICAgICAgICAgICAgSU5TTl9JTU0xMyhhcmcgJiAweDNmZikp OworICAgIH0KK30KKworc3RhdGljIGlubGluZSB2b2lkIHRjZ19vdXRfbGRfcmF3KFRDR0NvbnRl eHQgKnMsIGludCByZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGNnX3Rh cmdldF9sb25nIGFyZykKK3sKKyAgICB0Y2dfb3V0MzIocywgU0VUSEkgfCBJTlNOX1JEKHJldCkg fCAoKGFyZyAmIDB4ZmZmZmZjMDApID4+IDEwKSk7CisgICAgdGNnX291dDMyKHMsIExEVVcgfCBJ TlNOX1JEKHJldCkgfCBJTlNOX1JTMShyZXQpIHwKKyAgICAgICAgICAgICAgSU5TTl9JTU0xMyhh cmcgJiAweDNmZikpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdGNnX291dF9sZChUQ0dDb250 ZXh0ICpzLCBpbnQgcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFyZzEs IHRjZ190YXJnZXRfbG9uZyBhcmcyKQoreworICAgIGZwcmludGYoc3RkZXJyLCAidW5pbXBsZW1l bnRlZCBsZFxuIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCB0Y2dfb3V0X3N0KFRDR0NvbnRl eHQgKnMsIGludCBhcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYXJnMSwg dGNnX3RhcmdldF9sb25nIGFyZzIpCit7CisgICAgZnByaW50ZihzdGRlcnIsICJ1bmltcGxlbWVu dGVkIHN0XG4iKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHRjZ19vdXRfYWRkaShUQ0dDb250 ZXh0ICpzLCBpbnQgcmVnLCB0Y2dfdGFyZ2V0X2xvbmcgdmFsKQoreworICAgIGlmICh2YWwgIT0g MCkKKyAgICAgICAgOworICAgIGZwcmludGYoc3RkZXJyLCAidW5pbXBsZW1lbnRlZCBhZGRpXG4i KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHRjZ19vdXRfbm9wKFRDR0NvbnRleHQgKnMpCit7 CisgICAgdGNnX291dDMyKHMsIFNFVEhJIHwgSU5TTl9SRChUQ0dfUkVHX0cwKSB8IDApOworfQor CitzdGF0aWMgaW5saW5lIHZvaWQgdGNnX3RhcmdldF9wcmVsdWRlKFRDR0NvbnRleHQgKnMpCit7 CisgICAgdGNnX291dDMyKHMsIFNBVkUgfCBJTlNOX1JEKFRDR19SRUdfTzYpIHwgSU5TTl9SUzEo VENHX1JFR19PNikgfAorICAgICAgICAgICAgICBJTlNOX0lNTTEzKDB4M2Y0MCkpOworfQorCitz dGF0aWMgaW5saW5lIHZvaWQgdGNnX291dF9vcChUQ0dDb250ZXh0ICpzLCBpbnQgb3BjLCBjb25z dCBUQ0dBcmcgKmFyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQg KmNvbnN0X2FyZ3MpCit7CisgICAgc3dpdGNoIChvcGMpIHsKKyAgICBjYXNlIElOREVYX29wX2V4 aXRfdGI6CisgICAgICAgIHRjZ19vdXQzMihzLCBTRVRISSB8IElOU05fUkQoVENHX1JFR19JMCkg fAorICAgICAgICAgICAgICAgICAgKChhcmdzWzBdICYgMHhmZmZmZmMwMCkgPj4gMTApKTsKKyAg ICAgICAgdGNnX291dDMyKHMsIEpNUEwgfCBJTlNOX1JEKFRDR19SRUdfRzApIHwgSU5TTl9SUzEo VENHX1JFR19JNykgfAorICAgICAgICAgICAgICAgICAgSU5TTl9JTU0xMyg4KSk7CisgICAgICAg IHRjZ19vdXQzMihzLCBSRVNUT1JFIHwgSU5TTl9SRChUQ0dfUkVHX08wKSB8IElOU05fUlMxKFRD R19SRUdfSTApIHwKKyAgICAgICAgICAgICAgICAgIElOU05fSU1NMTMoYXJnc1swXSAmIDB4M2Zm KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSU5ERVhfb3BfZ290b190YjoKKyAgICAgICAg aWYgKHMtPnRiX2ptcF9vZmZzZXQpIHsKKyAgICAgICAgICAgIC8qIGRpcmVjdCBqdW1wIG1ldGhv ZCAqLworICAgICAgICAgICAgdGNnX291dDMyKHMsIENBTEwgfCAwKTsKKyAgICAgICAgICAgIHMt PnRiX2ptcF9vZmZzZXRbYXJnc1swXV0gPSBzLT5jb2RlX3B0ciAtIHMtPmNvZGVfYnVmOworICAg ICAgICAgICAgdGNnX291dF9ub3Aocyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAv KiBpbmRpcmVjdCBqdW1wIG1ldGhvZCAqLworICAgICAgICAgICAgdGNnX291dF9sZF9yYXcocywg VENHX1JFR19PNywgKHRjZ190YXJnZXRfbG9uZykocy0+dGJfbmV4dCArIGFyZ3NbMF0pKTsKKyAg ICAgICAgICAgIHRjZ19vdXQzMihzLCBKTVBMIHwgSU5TTl9SRChUQ0dfUkVHX083KSB8IElOU05f UlMxKFRDR19SRUdfTzcpIHwKKyAgICAgICAgICAgICAgICAgICAgICBJTlNOX1JEKFRDR19SRUdf RzApKTsKKyAgICAgICAgICAgIHRjZ19vdXRfbm9wKHMpOworICAgICAgICB9CisgICAgICAgIHMt PnRiX25leHRfb2Zmc2V0W2FyZ3NbMF1dID0gcy0+Y29kZV9wdHIgLSBzLT5jb2RlX2J1ZjsKKyAg ICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1bmtu b3duIG9wY29kZSAweCV4XG4iLCBvcGMpOworICAgICAgICB0Y2dfYWJvcnQoKTsKKyAgICB9Cit9 CisKK3N0YXRpYyBjb25zdCBUQ0dUYXJnZXRPcERlZiBzcGFyY19vcF9kZWZzW10gPSB7CisgICAg eyBJTkRFWF9vcF9leGl0X3RiLCB7IH0gfSwKKyAgICB7IElOREVYX29wX2dvdG9fdGIsIHsgfSB9 LAorICAgIHsgSU5ERVhfb3BfY2FsbCwgeyAicmkiIH0gfSwKKyAgICB7IElOREVYX29wX2ptcCwg eyAicmkiIH0gfSwKKyAgICB7IElOREVYX29wX2JyLCB7IH0gfSwKKworICAgIHsgSU5ERVhfb3Bf bW92X2kzMiwgeyAiciIsICJyIiB9IH0sCisgICAgeyBJTkRFWF9vcF9tb3ZpX2kzMiwgeyAiciIg fSB9LAorICAgIHsgSU5ERVhfb3BfbGQ4dV9pMzIsIHsgInIiLCAiciIgfSB9LAorICAgIHsgSU5E RVhfb3BfbGQ4c19pMzIsIHsgInIiLCAiciIgfSB9LAorICAgIHsgSU5ERVhfb3BfbGQxNnVfaTMy LCB7ICJyIiwgInIiIH0gfSwKKyAgICB7IElOREVYX29wX2xkMTZzX2kzMiwgeyAiciIsICJyIiB9 IH0sCisgICAgeyBJTkRFWF9vcF9sZF9pMzIsIHsgInIiLCAiciIgfSB9LAorICAgIHsgSU5ERVhf b3Bfc3Q4X2kzMiwgeyAiciIsICJyIiB9IH0sCisgICAgeyBJTkRFWF9vcF9zdDE2X2kzMiwgeyAi ciIsICJyIiB9IH0sCisgICAgeyBJTkRFWF9vcF9zdF9pMzIsIHsgInIiLCAiciIgfSB9LAorCisg ICAgeyBJTkRFWF9vcF9hZGRfaTMyLCB7ICJyIiwgIjAiLCAicmkiIH0gfSwKKyAgICB7IElOREVY X29wX211bF9pMzIsIHsgInIiLCAiMCIsICJyaSIgfSB9LAorICAgIHsgSU5ERVhfb3BfZGl2Ml9p MzIsIHsgInIiLCAiciIsICIwIiwgIjEiLCAiciIgfSB9LAorICAgIHsgSU5ERVhfb3BfZGl2dTJf aTMyLCB7ICJyIiwgInIiLCAiMCIsICIxIiwgInIiIH0gfSwKKyAgICB7IElOREVYX29wX3N1Yl9p MzIsIHsgInIiLCAiMCIsICJyaSIgfSB9LAorICAgIHsgSU5ERVhfb3BfYW5kX2kzMiwgeyAiciIs ICIwIiwgInJpIiB9IH0sCisgICAgeyBJTkRFWF9vcF9vcl9pMzIsIHsgInIiLCAiMCIsICJyaSIg fSB9LAorICAgIHsgSU5ERVhfb3BfeG9yX2kzMiwgeyAiciIsICIwIiwgInJpIiB9IH0sCisKKyAg ICB7IElOREVYX29wX3NobF9pMzIsIHsgInIiLCAiMCIsICJyIiB9IH0sCisgICAgeyBJTkRFWF9v cF9zaHJfaTMyLCB7ICJyIiwgIjAiLCAiciIgfSB9LAorICAgIHsgSU5ERVhfb3Bfc2FyX2kzMiwg eyAiciIsICIwIiwgInIiIH0gfSwKKworICAgIHsgSU5ERVhfb3BfYnJjb25kX2kzMiwgeyAiciIs ICJyaSIgfSB9LAorCisgICAgeyBJTkRFWF9vcF9xZW11X2xkOHUsIHsgInIiLCAiTCIgfSB9LAor ICAgIHsgSU5ERVhfb3BfcWVtdV9sZDhzLCB7ICJyIiwgIkwiIH0gfSwKKyAgICB7IElOREVYX29w X3FlbXVfbGQxNnUsIHsgInIiLCAiTCIgfSB9LAorICAgIHsgSU5ERVhfb3BfcWVtdV9sZDE2cywg eyAiciIsICJMIiB9IH0sCisgICAgeyBJTkRFWF9vcF9xZW11X2xkMzJ1LCB7ICJyIiwgIkwiIH0g fSwKKyAgICB7IElOREVYX29wX3FlbXVfbGQzMnMsIHsgInIiLCAiTCIgfSB9LAorCisgICAgeyBJ TkRFWF9vcF9xZW11X3N0OCwgeyAiTCIsICJMIiB9IH0sCisgICAgeyBJTkRFWF9vcF9xZW11X3N0 MTYsIHsgIkwiLCAiTCIgfSB9LAorICAgIHsgSU5ERVhfb3BfcWVtdV9zdDMyLCB7ICJMIiwgIkwi IH0gfSwKKworICAgIHsgLTEgfSwKK307CisKK3ZvaWQgdGNnX3RhcmdldF9pbml0KFRDR0NvbnRl eHQgKnMpCit7CisgICAgdGNnX3JlZ3NldF9zZXQzMih0Y2dfdGFyZ2V0X2F2YWlsYWJsZV9yZWdz W1RDR19UWVBFX0kzMl0sIDAsIDB4ZmZmZmZmZmYpOworICAgIHRjZ19yZWdzZXRfc2V0MzIodGNn X3RhcmdldF9hdmFpbGFibGVfcmVnc1tUQ0dfVFlQRV9JNjRdLCAwLCAweGZmZmZmZmZmKTsKKyAg ICB0Y2dfcmVnc2V0X3NldDMyKHRjZ190YXJnZXRfY2FsbF9jbG9iYmVyX3JlZ3MsIDAsCisgICAg ICAgICAgICAgICAgICAgICAoMSA8PCBUQ0dfUkVHX08wKSB8CisgICAgICAgICAgICAgICAgICAg ICAoMSA8PCBUQ0dfUkVHX08xKSB8CisgICAgICAgICAgICAgICAgICAgICAoMSA8PCBUQ0dfUkVH X08yKSB8CisgICAgICAgICAgICAgICAgICAgICAoMSA8PCBUQ0dfUkVHX08zKSB8CisgICAgICAg ICAgICAgICAgICAgICAoMSA8PCBUQ0dfUkVHX080KSB8CisgICAgICAgICAgICAgICAgICAgICAo MSA8PCBUQ0dfUkVHX081KSB8CisgICAgICAgICAgICAgICAgICAgICAoMSA8PCBUQ0dfUkVHX082 KSB8CisgICAgICAgICAgICAgICAgICAgICAoMSA8PCBUQ0dfUkVHX083KSk7CisKKyAgICB0Y2df cmVnc2V0X2NsZWFyKHMtPnJlc2VydmVkX3JlZ3MpOworICAgIHRjZ19yZWdzZXRfc2V0X3JlZyhz LT5yZXNlcnZlZF9yZWdzLCBUQ0dfUkVHX0cwKTsKKyNpZmRlZiBIT1NUX1NPTEFSSVMKKyAgICB0 Y2dfcmVnc2V0X3NldF9yZWcocy0+cmVzZXJ2ZWRfcmVncywgVENHX1JFR19HMik7CisgICAgdGNn X3JlZ3NldF9zZXRfcmVnKHMtPnJlc2VydmVkX3JlZ3MsIFRDR19SRUdfRzMpOworICAgIHRjZ19y ZWdzZXRfc2V0X3JlZyhzLT5yZXNlcnZlZF9yZWdzLCBUQ0dfUkVHX0c0KTsKKyAgICB0Y2dfcmVn c2V0X3NldF9yZWcocy0+cmVzZXJ2ZWRfcmVncywgVENHX1JFR19HNSk7CisgICAgdGNnX3JlZ3Nl dF9zZXRfcmVnKHMtPnJlc2VydmVkX3JlZ3MsIFRDR19SRUdfRzYpOworI2VsaWYgZGVmaW5lZChf X3NwYXJjX3Y5X18pCisgICAgdGNnX3JlZ3NldF9zZXRfcmVnKHMtPnJlc2VydmVkX3JlZ3MsIFRD R19SRUdfRzEpOworICAgIHRjZ19yZWdzZXRfc2V0X3JlZyhzLT5yZXNlcnZlZF9yZWdzLCBUQ0df UkVHX0c0KTsKKyAgICB0Y2dfcmVnc2V0X3NldF9yZWcocy0+cmVzZXJ2ZWRfcmVncywgVENHX1JF R19HNSk7CisgICAgdGNnX3JlZ3NldF9zZXRfcmVnKHMtPnJlc2VydmVkX3JlZ3MsIFRDR19SRUdf RzcpOworI2Vsc2UKKyAgICB0Y2dfcmVnc2V0X3NldF9yZWcocy0+cmVzZXJ2ZWRfcmVncywgVENH X1JFR19HNik7CisgICAgdGNnX3JlZ3NldF9zZXRfcmVnKHMtPnJlc2VydmVkX3JlZ3MsIFRDR19S RUdfRzEpOworICAgIHRjZ19yZWdzZXRfc2V0X3JlZyhzLT5yZXNlcnZlZF9yZWdzLCBUQ0dfUkVH X0cyKTsKKyAgICB0Y2dfcmVnc2V0X3NldF9yZWcocy0+cmVzZXJ2ZWRfcmVncywgVENHX1JFR19H Myk7CisjZW5kaWYKKyAgICB0Y2dfcmVnc2V0X3NldF9yZWcocy0+cmVzZXJ2ZWRfcmVncywgVENH X1JFR19JNik7CisgICAgdGNnX3JlZ3NldF9zZXRfcmVnKHMtPnJlc2VydmVkX3JlZ3MsIFRDR19S RUdfSTcpOworICAgIHRjZ19yZWdzZXRfc2V0X3JlZyhzLT5yZXNlcnZlZF9yZWdzLCBUQ0dfUkVH X082KTsKKyAgICB0Y2dfcmVnc2V0X3NldF9yZWcocy0+cmVzZXJ2ZWRfcmVncywgVENHX1JFR19P Nyk7CisgICAgdGNnX2FkZF90YXJnZXRfYWRkX29wX2RlZnMoc3BhcmNfb3BfZGVmcyk7Cit9Cklu ZGV4OiBxZW11L3RjZy9zcGFyYy90Y2ctdGFyZ2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3RjZy9zcGFyYy90 Y2ctdGFyZ2V0LmgJMjAwOC0wMi0xNyAxNTo0NToyMy4wMDAwMDAwMDAgKzAwMDAKQEAgLTAsMCAr MSwxMTIgQEAKKy8qCisgKiBUaW55IENvZGUgR2VuZXJhdG9yIGZvciBRRU1VCisgKgorICogQ29w eXJpZ2h0IChjKSAyMDA4IEZhYnJpY2UgQmVsbGFyZAorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNv cHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCisgKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCisgKiB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu c2UsIGFuZC9vciBzZWxsCisgKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk ZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3 YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5P IEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP TSwKKyAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIgREVBTElOR1MgSU4KKyAqIFRIRSBTT0ZUV0FSRS4KKyAqLworI2RlZmluZSBU Q0dfVEFSR0VUX1NQQVJDIDEKKworI2lmIGRlZmluZWQoX19zcGFyY192OV9fKQorI2RlZmluZSBU Q0dfVEFSR0VUX1JFR19CSVRTIDY0CisjZWxzZQorI2RlZmluZSBUQ0dfVEFSR0VUX1JFR19CSVRT IDMyCisjZW5kaWYKKworI2RlZmluZSBUQ0dfVEFSR0VUX1dPUkRTX0JJR0VORElBTgorCisjZGVm aW5lIFRDR19UQVJHRVRfTkJfUkVHUyAzMgorCitlbnVtIHsKKyAgICBUQ0dfUkVHX0cwID0gMCwK KyAgICBUQ0dfUkVHX0cxLAorICAgIFRDR19SRUdfRzIsCisgICAgVENHX1JFR19HMywKKyAgICBU Q0dfUkVHX0c0LAorICAgIFRDR19SRUdfRzUsCisgICAgVENHX1JFR19HNiwKKyAgICBUQ0dfUkVH X0c3LAorICAgIFRDR19SRUdfTzAsCisgICAgVENHX1JFR19PMSwKKyAgICBUQ0dfUkVHX08yLAor ICAgIFRDR19SRUdfTzMsCisgICAgVENHX1JFR19PNCwKKyAgICBUQ0dfUkVHX081LAorICAgIFRD R19SRUdfTzYsCisgICAgVENHX1JFR19PNywKKyAgICBUQ0dfUkVHX0wwLAorICAgIFRDR19SRUdf TDEsCisgICAgVENHX1JFR19MMiwKKyAgICBUQ0dfUkVHX0wzLAorICAgIFRDR19SRUdfTDQsCisg ICAgVENHX1JFR19MNSwKKyAgICBUQ0dfUkVHX0w2LAorICAgIFRDR19SRUdfTDcsCisgICAgVENH X1JFR19JMCwKKyAgICBUQ0dfUkVHX0kxLAorICAgIFRDR19SRUdfSTIsCisgICAgVENHX1JFR19J MywKKyAgICBUQ0dfUkVHX0k0LAorICAgIFRDR19SRUdfSTUsCisgICAgVENHX1JFR19JNiwKKyAg ICBUQ0dfUkVHX0k3LAorfTsKKworI2RlZmluZSBUQ0dfQ1RfQ09OU1RfUzMyIDB4MTAwCisjZGVm aW5lIFRDR19DVF9DT05TVF9VMzIgMHgyMDAKKworLyogdXNlZCBmb3IgZnVuY3Rpb24gY2FsbCBn ZW5lcmF0aW9uICovCisjZGVmaW5lIFRDR19SRUdfQ0FMTF9TVEFDSyBUQ0dfUkVHX082CisjZGVm aW5lIFRDR19UQVJHRVRfU1RBQ0tfQUxJR04gMTYKKworI2RlZmluZSBUQ0dfVEFSR0VUX1BSRUxV REUKKworLyogb3B0aW9uYWwgaW5zdHJ1Y3Rpb25zICovCisvLyNkZWZpbmUgVENHX1RBUkdFVF9I QVNfYnN3YXBfaTMyCisvLyNkZWZpbmUgVENHX1RBUkdFVF9IQVNfYnN3YXBfaTY0CisKKy8qIE5v dGU6IG11c3QgYmUgc3luY2VkIHdpdGggZHluZ2VuLWV4ZWMuaCAqLworI2lmZGVmIEhPU1RfU09M QVJJUworI2RlZmluZSBUQ0dfQVJFRzAgVENHX1JFR19HMgorI2RlZmluZSBUQ0dfQVJFRzEgVENH X1JFR19HMworI2RlZmluZSBUQ0dfQVJFRzIgVENHX1JFR19HNAorI2RlZmluZSBUQ0dfQVJFRzMg VENHX1JFR19HNQorI2RlZmluZSBUQ0dfQVJFRzQgVENHX1JFR19HNgorI2VsaWYgZGVmaW5lZChf X3NwYXJjX3Y5X18pCisjZGVmaW5lIFRDR19BUkVHMCBUQ0dfUkVHX0cxCisjZGVmaW5lIFRDR19B UkVHMSBUQ0dfUkVHX0c0CisjZGVmaW5lIFRDR19BUkVHMiBUQ0dfUkVHX0c1CisjZGVmaW5lIFRD R19BUkVHMyBUQ0dfUkVHX0c3CisjZWxzZQorI2RlZmluZSBUQ0dfQVJFRzAgVENHX1JFR19HNgor I2RlZmluZSBUQ0dfQVJFRzEgVENHX1JFR19HMQorI2RlZmluZSBUQ0dfQVJFRzIgVENHX1JFR19H MgorI2RlZmluZSBUQ0dfQVJFRzMgVENHX1JFR19HMworI2VuZGlmCisKK3N0YXRpYyBpbmxpbmUg dm9pZCBmbHVzaF9pY2FjaGVfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9u ZyBzdG9wKQoreworICAgIHVuc2lnbmVkIGxvbmcgcDsKKworICAgIHAgPSBzdGFydCAmIH4oOFVM IC0gMVVMKTsKKyAgICBzdG9wID0gKHN0b3AgKyAoOFVMIC0gMVVMKSkgJiB+KDhVTCAtIDFVTCk7 CisKKyAgICBmb3IgKDsgcCA8IHN0b3A7IHAgKz0gOCkKKyAgICAgICAgX19hc21fXyBfX3ZvbGF0 aWxlX18oImZsdXNoXHQlMCIgOiA6ICJyIiAocCkpOworfQpJbmRleDogcWVtdS9NYWtlZmlsZS50 YXJnZXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL01ha2VmaWxlLnRhcmdldAkyMDA4LTAyLTE3 IDEyOjEwOjU0LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9NYWtlZmlsZS50YXJnZXQJMjAwOC0w Mi0xNyAxMjoxMzoyOC4wMDAwMDAwMDAgKzAwMDAKQEAgLTE3Nyw2ICsxNzcsOSBAQAogIyBUQ0cg Y29kZSBnZW5lcmF0b3IKIExJQk9CSlMrPSB0Y2cvdGNnLm8gdGNnL3RjZy1keW5nZW4ubyB0Y2cv dGNnLXJ1bnRpbWUubwogQ1BQRkxBR1MrPS1JJChTUkNfUEFUSCkvdGNnIC1JJChTUkNfUEFUSCkv dGNnLyQoQVJDSCkKK2lmZXEgKCQoQVJDSCksc3BhcmM2NCkKK0NQUEZMQUdTKz0tSSQoU1JDX1BB VEgpL3RjZy9zcGFyYworZW5kaWYKIGlmZGVmIENPTkZJR19TT0ZURkxPQVQKIExJQk9CSlMrPWZw dS9zb2Z0ZmxvYXQubwogZWxzZQpJbmRleDogcWVtdS9jcHUtZXhlYy5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHFlbXUub3JpZy9jcHUtZXhlYy5jCTIwMDgtMDItMTcgMTQ6MzQ6NTQuMDAwMDAwMDAwICswMDAw CisrKyBxZW11L2NwdS1leGVjLmMJMjAwOC0wMi0xNyAxNDozNDoyNy4wMDAwMDAwMDAgKzAwMDAK QEAgLTY0OSwxNiArNjQ5LDcgQEAKICAgICAgICAgICAgICAgICBlbnYtPmN1cnJlbnRfdGIgPSB0 YjsKICAgICAgICAgICAgICAgICAvKiBleGVjdXRlIHRoZSBnZW5lcmF0ZWQgY29kZSAqLwogICAg ICAgICAgICAgICAgIGdlbl9mdW5jID0gKHZvaWQgKil0Y19wdHI7Ci0jaWYgZGVmaW5lZChfX3Nw YXJjX18pCi0gICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oImNhbGwJJTBcblx0 IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3YJJSVvNywlJWkwIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLyogbm8gb3V0cHV0cyAqLwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogInIiIChnZW5fZnVuYykKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJpMCIsICJpMSIsICJpMiIsICJp MyIsICJpNCIsICJpNSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi bzAiLCAibzEiLCAibzIiLCAibzMiLCAibzQiLCAibzUiLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImwwIiwgImwxIiwgImwyIiwgImwzIiwgImw0IiwgImw1IiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsNiIsICJsNyIpOwotI2VsaWYg ZGVmaW5lZChfX2FybV9fKQorI2lmIGRlZmluZWQoX19hcm1fXykKICAgICAgICAgICAgICAgICBh c20gdm9sYXRpbGUgKCJtb3YgcGMsICUwXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIuZ2xvYmFsIGV4ZWNfbG9vcFxuXHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiZXhlY19sb29wOlxuXHQiCkluZGV4OiBxZW11L3RjZy90Y2cuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBx ZW11Lm9yaWcvdGNnL3RjZy5jCTIwMDgtMDItMTcgMTU6NDQ6NDcuMDAwMDAwMDAwICswMDAwCisr KyBxZW11L3RjZy90Y2cuYwkyMDA4LTAyLTE3IDE1OjU2OjA4LjAwMDAwMDAwMCArMDAwMApAQCAt MTY4NSw2ICsxNjg1LDExIEBACiAgICAgbWFjcm9fb3BfaW5kZXggPSAtMTsKICAgICBhcmdzID0g Z2VuX29wcGFyYW1fYnVmOwogICAgIG9wX2luZGV4ID0gMDsKKworI2lmZGVmIFRDR19UQVJHRVRf UFJFTFVERQorICAgIHRjZ190YXJnZXRfcHJlbHVkZShzKTsKKyNlbmRpZgorCiAgICAgZm9yKDs7 KSB7CiAgICAgICAgIG9wYyA9IGdlbl9vcGNfYnVmW29wX2luZGV4XTsKICNpZmRlZiBDT05GSUdf UFJPRklMRVIK ------=_Part_2794_30447935.1203273432859--