From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) by sourceware.org (Postfix) with ESMTPS id 02491385703B for ; Thu, 3 Sep 2020 15:18:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 02491385703B Received: by mail-il1-x141.google.com with SMTP id p13so2881556ils.3 for ; Thu, 03 Sep 2020 08:18:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=bAS0VMEi4HGhsg+xu93kVznJS/HjH0QR7ii3+HALTqY=; b=CLCYxRBSUmQraJC6uX/a/JcYRrT51HdsgMPfmjh36NFcJWhfcMUjoOxDMPf4DRuNJX ++gMG49JPW0Oe/BUQIxcV5Zpd6ihiqFAHpjpcaFv4PG8OdgaQQea+Pvc+opAFCo1t5OM A+2jqJdJnS7hgsbpnjos44P8sP990pKnxGVeQcbGbyluWQFkPMm65t0y2hiRpE5xVZxC dO6SCSz61Eq/y4VWf752AQ/VcuEfWDzzPzJyBpR8RXtYETabJI4tFWqWhtBd1olgYLss iuF0TeN8CpAhhxYiMQeq+9JlXhqR7SfEqSVp1tqCnWd/HeQsbTGWXTqQ2sfY+iexmxxY H1IA== X-Gm-Message-State: AOAM531leeV57rcF1RY6V6h21DixtfIl/zL1XJU4m7l/+aiu9bFb8Wiw R1dxeF1ulb93m/CG+51eX2RL21JALvfYUS6Aers= X-Google-Smtp-Source: ABdhPJwj+XUrpN/ZfZ9aUwxL1EJKIpkrNv+A0wW7yNyVfMptQUpGgPsvYVJzbD4aBoChX6GfGESjQFYBHi9aVeRgLp8= X-Received: by 2002:a92:260e:: with SMTP id n14mr2515912ile.292.1599146314384; Thu, 03 Sep 2020 08:18:34 -0700 (PDT) MIME-Version: 1.0 References: <20200903150743.gfzofhl3huifeq4x@kyukhin> In-Reply-To: <20200903150743.gfzofhl3huifeq4x@kyukhin> From: "H.J. Lu" Date: Thu, 3 Sep 2020 08:17:58 -0700 Message-ID: Subject: Re: [PATCH] Enable GCC support for AMX To: Kirill Yukhin Cc: Hongyu Wang , Uros Bizjak , GCC Patches Content-Type: multipart/mixed; boundary="000000000000036f8405ae6a4409" X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Sep 2020 15:18:40 -0000 --000000000000036f8405ae6a4409 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Sep 3, 2020 at 8:08 AM Kirill Yukhin via Gcc-patches wrote: > > Hello, > > On 06 =D0=B8=D1=8E=D0=BB 09:58, Hongyu Wang via Gcc-patches wrote: > > Hi: > > > > This patch is about to support Intel Advanced Matrix Extensions (AMX) > > which will be enabled in GLC. > > > > AMX is a new 64-bit programming paradigm consisting of two > > compo nents: a set of 2-dimensional registers (tiles) representing > > sub-arrays from a larger 2-dimensional memory image, > > and an accelerator able to operate on tiles > > > > Supported instructions are > > > > AMX-TILE:ldtilecfg/sttilecfg/tileloadd/tileloaddt1/tilezero/tilerelease > > AMX-INT8:tdpbssd/tdpbsud/tdpbusd/tdpbuud > > AMX-BF16:tdpbf16ps > > > > The intrinsics adopts constant tile register number as its input parame= ters. > > > > For detailed information, please refer to > > https://software.intel.com/content/dam/develop/public/us/en/documents/a= rchitecture-instruction-set-extensions-programming-reference.pdf > > > > Bootstrap ok, regression test on i386/x86 backend is ok. > > > > OK for master? > > I was trying to apply your patch to recent master and got > compilation error: > > g++ -std=3Dgnu++11 -fno-PIE -c -g -O2 -DIN_GCC -fno-exceptions -fn= o-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowi > ng -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-vi= rtual -pedantic -Wno-long-long -Wno-variadic-macros -Wn > o-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -I. -I/export/kyukh= in/gcc/src/gcc -I/export/kyukhin/gcc/src/gcc/. -I/expor > t/kyukhin/gcc/src/gcc/../include -I/export/kyukhin/gcc/src/gcc/../libcpp/= include -I/export/kyukhin/gcc/src/gcc/../libdecnumber > -I/export/kyukhin/gcc/src/gcc/../libdecnumber/bid -I../libdecnumber -I/ex= port/kyukhin/gcc/src/gcc/../libbacktrace -o i386-opti > ons.o -MT i386-options.o -MMD -MP -MF ./.deps/i386-options.TPo /export/ky= ukhin/gcc/src/gcc/config/i386/i386-options.c > /export/kyukhin/gcc/src/gcc/config/i386/i386-options.c: In function =E2= =80=98bool ix86_option_override_internal(bool, gcc_options*, gcc_ > options*)=E2=80=99: > /export/kyukhin/gcc/src/gcc/config/i386/i386-options.c:2263:41: error: = =E2=80=98PTA_AMX_TILE=E2=80=99 was not declared in this scope > if (((processor_alias_table[i].flags & PTA_AMX_TILE) !=3D 0) > ^ > /export/kyukhin/gcc/src/gcc/config/i386/i386-options.c:2267:41: error: = =E2=80=98PTA_AMX_INT8=E2=80=99 was not declared in this scope > if (((processor_alias_table[i].flags & PTA_AMX_INT8) !=3D 0) > ^ > /export/kyukhin/gcc/src/gcc/config/i386/i386-options.c:2271:41: error: = =E2=80=98PTA_AMX_BF16=E2=80=99 was not declared in this scope > if (((processor_alias_table[i].flags & PTA_AMX_BF16) !=3D 0) > > Could you please fix that? Here is the rebased patch against commit 3c219134152f645103f2fcd50735b177ccd76cde Author: Jonathan Wakely Date: Thu Sep 3 12:38:50 2020 +0100 libstdc++: Optimise GCD algorithms Thanks. --=20 H.J. --000000000000036f8405ae6a4409 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Enable-GCC-support-for-AMX-TILE-AMX-INT8-AMX-BF16.patch" Content-Disposition: attachment; filename="0001-Enable-GCC-support-for-AMX-TILE-AMX-INT8-AMX-BF16.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kemyco8k0 RnJvbSA3MTNjYWZiNzdhMTYzMzE2MjBhZjNlYjJjMjM4NGE3YzM4OGVjZDkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBsaXVob25ndCA8aG9uZ3Rhby5saXVAaW50ZWwuY29tPgpEYXRl OiBUaHUsIDI1IEp1bCAyMDE5IDE2OjQ5OjM2ICswODAwClN1YmplY3Q6IFtQQVRDSF0gRW5hYmxl IEdDQyBzdXBwb3J0IGZvciBBTVgtVElMRSxBTVgtSU5UOCxBTVgtQkYxNi4KCkFNWC1USUxFOmxk dGlsZWNmZy9zdHRpbGVjZmcvdGlsZWxvYWRkL3RpbGVsb2FkZHQxL3RpbGV6ZXJvL3RpbGVyZWxl YXNlCkFNWC1JTlQ4OnRkcGJzc2QvdGRwYnN1ZC90ZHBidXNkL3RkcGJ1dWQKQU1YLUJGMTY6dGRw YmYxNnBzCgpnY2MvQ2hhbmdlTG9nCgoJKiBjb21tb24vY29uZmlnL2kzODYvaTM4Ni1jb21tb24u YyAoT1BUSU9OX01BU0tfSVNBMl9BTVhfVElMRV9TRVQsCglPUFRJT05fTUFTS19JU0EyX0FNWF9J TlQ4X1NFVCwgT1BUSU9OX01BU0tfSVNBMl9BTVhfQkYxNl9TRVQsCglPUFRJT05fTUFTS19JU0Ey X0FNWF9USUxFX1VOU0VULAoJT1BUSU9OX01BU0tfSVNBMl9BTVhfSU5UOF9VTlNFVCwgT1BUSU9O X01BU0tfSVNBMl9BTVhfQkYxNl9VTlNFVCk6CglOZXcgbWFyY29zLgoJKGl4ODZfaGFuZGxlX29w dGlvbik6IEhhbmxkZSAtbWFteC10aWxlLCAtbWFteC1pbnQ4LCAtbWFteC1iZjE2LgoJKiBjb21t b24vY29uZmlnL2kzODYvaTM4Ni1jcHVpbmZvLmggKHByb2Nlc3Nvcl90eXBlcyk6IEFkZAoJRkVB VFVSRV9BTVhfVElMRSwgRkVBVFVSRV9BTVhfSU5UOCwgRkVBVFVSRV9BTVhfQkYxNi4KCSogY29t bW9uL2NvbmZpZy9pMzg2L2NwdWluZm8uaCAoWFNUQVRFX1RJTEVDRkcsCglYU1RBVEVfVElMRURB VEEsIFhDUl9BTVhfRU5BQkxFRF9NQVNLKTogTmV3IG1hY3JvLgoJKGdldF9hdmFpbGFibGVfZmVh dHVyZXMpOiBFbmFibGUgQU1YIGZlYXR1cmVzIG9ubHkgaWYKCXRoZWlyIHN0YXRlcyBhcmUgc3Vv b3JpdGVkIGJ5IE9TWFNBVkUuCgkqIGNvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWlzYXMuaDogQWRk IElTQV9OQU1FX1RBQkxFX0VOVFJZCglmb3IgYW14LXRpbGUsIGFteC1pbnQ4LCBhbXgtYmYxNi4K CSogY29uZmlnLmdjYzogQWRkIGFteHRpbGVpbnRyaW4uaCwgYW14aW50OGludHJpbi5oLAoJYW14 YmYxNmludHJpbi5oIHRvIGV4dHJhIGhlYWRlcnMuCgkqIGNvbmZpZy9pMzg2L2FteGJmMTZpbnRy aW4uaDogTmV3IGZpbGUuCgkqIGNvbmZpZy9pMzg2L2FteGludDhpbnRyaW4uaDogRGl0dG8uCgkq IGNvbmZpZy9pMzg2L2FteHRpbGVpbnRyaW4uaDogRGl0dG8uCgkqIGNvbmZpZy9pMzg2L2NwdWlk LmggKGJpdF9BTVhfQkYxNiwgYml0X0FNWF9USUxFLCBiaXRfQU1YX0lOVDgpOgoJTmV3IG1hY3Jv LgoJKiBjb25maWcvaTM4Ni9pMzg2LWMuYyAoaXg4Nl90YXJnZXRfbWFjcm9zX2ludGVybmFsKTog RGVmaW5lCglfX0FNWF9USUxFX18sIF9fQU1YX0lOVDhfXywgQU1YX0JGMTZfXy4KCSogY29uZmln L2kzODYvaTM4Ni1vcHRpb25zLmMgKGl4ODZfdGFyZ2V0X3N0cmluZyk6IEFkZAoJLW1hbXgtdGls ZSwgLW1hbXgtaW50OCwgLW1hbXgtYmYxNi4KCShpeDg2X29wdGlvbl9vdmVycmlkZV9pbnRlcm5h bCk6IEhhbmRsZSBBTVgtVElMRSwKCUFNWC1JTlQ4LCBBTVgtQkYxNi4KCSogY29uZmlnL2kzODYv aTM4Ni5oIChUQVJHRVRfQU1YX1RJTEUsIFRBUkdFVF9BTVhfVElMRV9QLAoJVEFSR0VUX0FNWF9J TlQ4LCBUQVJHRVRfQU1YX0lOVDhfUCwgVEFSR0VUX0FNWF9CRjE2X1AsCglQVEFfQU1YX1RJTEUs IFBUQV9BTVhfSU5UOCwgUFRBX0FNWF9CRjE2KTogTmV3IG1hY3Jvcy4KCSogY29uZmlnL2kzODYv aTM4Ni5vcHQ6IEFkZCAtbWFteC10aWxlLCAtbWFteC1pbnQ4LCAtbWFteC1iZjE2LgoJKiBjb25m aWcvaTM4Ni9pbW1pbnRyaW4uaDogSW5jbHVkZSBhbXh0aWxlaW50cmluLmgsCglhbXhpbnQ4aW50 cmluLmgsIGFteGJmMTZpbnRyaW4uaC4KCSogZG9jL2ludm9rZS50ZXhpOiBEb2N1bWVudCAtbWFt eC10aWxlLCAtbWFteC1pbnQ4LCAtbWFteC1iZjE2LgoJKiBkb2MvZXh0ZW5kLnRleGk6IERvY3Vt ZW50IGFteC10aWxlLCBhbXgtaW50OCwgYW14LWJmMTYuCgkqIGRvYy9zb3VyY2VidWlsZC50ZXhp ICgoRWZmZWN0aXZlLVRhcmdldCBLZXl3b3JkcywgT3RoZXIKCWhhcmR3YXJlIGF0dHJpYnV0ZXMp OiBEb2N1bWVudCBhbXhfaW50OCwgYW14X3RpbGUsIGFteF9iZjE2LgoKZ2NjL3Rlc3RzdWl0ZS9D aGFuZ2VMb2cKCgkqIGxpYi90YXJnZXQtc3VwcG9ydHMuZXhwIChjaGVja19lZmZlY3RpdmVfdGFy Z2V0X2FteF90aWxlLAoJY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9hbXhfaW50OCwKCWNoZWNrX2Vm ZmVjdGl2ZV90YXJnZXRfYW14X2JmMTYpOiBOZXcgcHJvYy4KCSogZysrLmRnL290aGVyL2kzODYt Mi5DOiBBZGQgLW1hbXgtdGlsZSwgLW1hbXgtaW50OCwgLW1hbXgtYmYxNi4KCSogZysrLmRnL290 aGVyL2kzODYtMy5DOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L3NzZS0xMi5jOiBEaXR0by4K CSogZ2NjLnRhcmdldC9pMzg2L3NzZS0xMy5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L3Nz ZS0xNC5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L3NzZS0yMi5jOiBEaXR0by4KCSogZ2Nj LnRhcmdldC9pMzg2L3NzZS0yMy5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L2Z1bmNzcGVj LTU2LmluYzogQWRkIG5ldyB0YXJnZXQgYXR0cmlidXRlLgoJKiBnY2MudGFyZ2V0L2kzODYvYW14 YmYxNi1hc21hdHQtMS5jOiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9pMzg2L2FteGludDgtYXNt YXR0LTEuYzogRGl0dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni9hbXh0aWxlLWFzbWF0dC0xLmM6IERp dHRvLgoJKiBnY2MudGFyZ2V0L2kzODYvYW14YmYxNi1hc21pbnRlbC0xLmM6IERpdHRvLgoJKiBn Y2MudGFyZ2V0L2kzODYvYW14aW50OC1hc21pbnRlbC0xLmM6IERpdHRvLgoJKiBnY2MudGFyZ2V0 L2kzODYvYW14dGlsZS1hc21pbnRlbC0xLmM6IERpdHRvLgoJKiBnY2MudGFyZ2V0L2kzODYvYW14 YmYxNi1hc21hdHQtMi5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L2FteGludDgtYXNtYXR0 LTIuYzogRGl0dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni9hbXh0aWxlLWFzbWF0dC0yLmM6IERpdHRv LgoJKiBnY2MudGFyZ2V0L2kzODYvYW14YmYxNi1hc21pbnRlbC0yLmM6IERpdHRvLgoJKiBnY2Mu dGFyZ2V0L2kzODYvYW14aW50OC1hc21pbnRlbC0yLmM6IERpdHRvLgoJKiBnY2MudGFyZ2V0L2kz ODYvYW14dGlsZS1hc21pbnRlbC0yLmM6IERpdHRvLgotLS0KIGdjYy9jb21tb24vY29uZmlnL2kz ODYvY3B1aW5mby5oICAgICAgICAgICAgICB8IDE2ICsrKysrCiBnY2MvY29tbW9uL2NvbmZpZy9p Mzg2L2kzODYtY29tbW9uLmMgICAgICAgICAgfCA0NSArKysrKysrKysrKysrCiBnY2MvY29tbW9u L2NvbmZpZy9pMzg2L2kzODYtY3B1aW5mby5oICAgICAgICAgfCAgMyArCiBnY2MvY29tbW9uL2Nv bmZpZy9pMzg2L2kzODYtaXNhcy5oICAgICAgICAgICAgfCAgMyArCiBnY2MvY29uZmlnLmdjYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogZ2NjL2NvbmZpZy9pMzg2L2Ft eGJmMTZpbnRyaW4uaCAgICAgICAgICAgICAgIHwgMjUgKysrKysrKysKIGdjYy9jb25maWcvaTM4 Ni9hbXhpbnQ4aW50cmluLmggICAgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrCiBnY2MvY29u ZmlnL2kzODYvYW14dGlsZWludHJpbi5oICAgICAgICAgICAgICAgfCA2MyArKysrKysrKysrKysr KysrKysrCiBnY2MvY29uZmlnL2kzODYvY3B1aWQuaCAgICAgICAgICAgICAgICAgICAgICAgfCAg MyArCiBnY2MvY29uZmlnL2kzODYvaTM4Ni1jLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNyAr KysKIGdjYy9jb25maWcvaTM4Ni9pMzg2LW9wdGlvbnMuYyAgICAgICAgICAgICAgICB8IDIwICsr KysrLQogZ2NjL2NvbmZpZy9pMzg2L2kzODYuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIg KysrLQogZ2NjL2NvbmZpZy9pMzg2L2kzODYub3B0ICAgICAgICAgICAgICAgICAgICAgIHwgMTQg KysrKy0KIGdjYy9jb25maWcvaTM4Ni9pbW1pbnRyaW4uaCAgICAgICAgICAgICAgICAgICB8ICA2 ICsrCiBnY2MvZG9jL2V4dGVuZC50ZXhpICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNSAr KysrKwogZ2NjL2RvYy9pbnZva2UudGV4aSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAg KysrCiBnY2MvZG9jL3NvdXJjZWJ1aWxkLnRleGkgICAgICAgICAgICAgICAgICAgICAgfCAgOSAr KysKIGdjYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kzODYtMi5DICAgICAgICAgICB8ICAzICst CiBnY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9pMzg2LTMuQyAgICAgICAgICAgfCAgMyArLQog Li4uL2djYy50YXJnZXQvaTM4Ni9hbXhiZjE2LWFzbWF0dC0xLmMgICAgICAgIHwgIDkgKysrCiAu Li4vZ2NjLnRhcmdldC9pMzg2L2FteGJmMTYtYXNtYXR0LTIuYyAgICAgICAgfCAgNCArKwogLi4u L2djYy50YXJnZXQvaTM4Ni9hbXhiZjE2LWFzbWludGVsLTEuYyAgICAgIHwgIDkgKysrCiAuLi4v Z2NjLnRhcmdldC9pMzg2L2FteGJmMTYtYXNtaW50ZWwtMi5jICAgICAgfCAgNCArKwogLi4uL2dj Yy50YXJnZXQvaTM4Ni9hbXhpbnQ4LWFzbWF0dC0xLmMgICAgICAgIHwgMTUgKysrKysKIC4uLi9n Y2MudGFyZ2V0L2kzODYvYW14aW50OC1hc21hdHQtMi5jICAgICAgICB8ICA0ICsrCiAuLi4vZ2Nj LnRhcmdldC9pMzg2L2FteGludDgtYXNtaW50ZWwtMS5jICAgICAgfCAxNSArKysrKwogLi4uL2dj Yy50YXJnZXQvaTM4Ni9hbXhpbnQ4LWFzbWludGVsLTIuYyAgICAgIHwgIDQgKysKIC4uLi9nY2Mu dGFyZ2V0L2kzODYvYW14dGlsZS1hc21hdHQtMS5jICAgICAgICB8IDI0ICsrKysrKysKIC4uLi9n Y2MudGFyZ2V0L2kzODYvYW14dGlsZS1hc21hdHQtMi5jICAgICAgICB8ICA0ICsrCiAuLi4vZ2Nj LnRhcmdldC9pMzg2L2FteHRpbGUtYXNtaW50ZWwtMS5jICAgICAgfCAyNCArKysrKysrCiAuLi4v Z2NjLnRhcmdldC9pMzg2L2FteHRpbGUtYXNtaW50ZWwtMi5jICAgICAgfCAgNCArKwogZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvZnVuY3NwZWMtNTYuaW5jIHwgIDYgKysKIGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xMi5jICAgICAgICB8ICAyICstCiBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTMuYyAgICAgICAgfCAgMiArLQogZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTE0LmMgICAgICAgIHwgIDIgKy0KIGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L3NzZS0yMi5jICAgICAgICB8ICA1ICstCiBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9zc2UtMjMuYyAgICAgICAgfCAgMyArLQogZ2NjL3Rlc3RzdWl0ZS9saWIv dGFyZ2V0LXN1cHBvcnRzLmV4cCAgICAgICAgIHwgMzMgKysrKysrKysrKwogMzggZmlsZXMgY2hh bmdlZCwgNDU4IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy9jb25maWcvaTM4Ni9hbXhiZjE2aW50cmluLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvY29uZmlnL2kzODYvYW14aW50OGludHJpbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL2Nv bmZpZy9pMzg2L2FteHRpbGVpbnRyaW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L2FteGJmMTYtYXNtYXR0LTEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteGJmMTYtYXNtYXR0LTIuYwogY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteGJmMTYtYXNtaW50 ZWwtMS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv YW14YmYxNi1hc21pbnRlbC0yLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9hbXhpbnQ4LWFzbWF0dC0xLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXhpbnQ4LWFzbWF0dC0yLmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXhpbnQ4LWFzbWludGVsLTEu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteGlu dDgtYXNtaW50ZWwtMi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvYW14dGlsZS1hc21hdHQtMS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvYW14dGlsZS1hc21hdHQtMi5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYW14dGlsZS1hc21pbnRlbC0xLmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXh0aWxlLWFz bWludGVsLTIuYwoKZGlmZiAtLWdpdCBhL2djYy9jb21tb24vY29uZmlnL2kzODYvY3B1aW5mby5o IGIvZ2NjL2NvbW1vbi9jb25maWcvaTM4Ni9jcHVpbmZvLmgKaW5kZXggMTIyMzdlMmY0NDkuLmM5 NjQ1NWNlNjRmIDEwMDY0NAotLS0gYS9nY2MvY29tbW9uL2NvbmZpZy9pMzg2L2NwdWluZm8uaAor KysgYi9nY2MvY29tbW9uL2NvbmZpZy9pMzg2L2NwdWluZm8uaApAQCAtNTA5LDE1ICs1MDksMjAg QEAgZ2V0X2F2YWlsYWJsZV9mZWF0dXJlcyAoc3RydWN0IF9fcHJvY2Vzc29yX21vZGVsICpjcHVf bW9kZWwsCiAjZGVmaW5lIFhTVEFURV9PUE1BU0sJCQkweDIwCiAjZGVmaW5lIFhTVEFURV9aTU0J CQkweDQwCiAjZGVmaW5lIFhTVEFURV9ISV9aTU0JCQkweDgwCisjZGVmaW5lIFhTVEFURV9USUxF Q0ZHCQkJMHgyMDAwMAorI2RlZmluZSBYU1RBVEVfVElMRURBVEEJCTB4NDAwMDAKIAogI2RlZmlu ZSBYQ1JfQVZYX0VOQUJMRURfTUFTSyBcCiAgIChYU1RBVEVfU1NFIHwgWFNUQVRFX1lNTSkKICNk ZWZpbmUgWENSX0FWWDUxMkZfRU5BQkxFRF9NQVNLIFwKICAgKFhTVEFURV9TU0UgfCBYU1RBVEVf WU1NIHwgWFNUQVRFX09QTUFTSyB8IFhTVEFURV9aTU0gfCBYU1RBVEVfSElfWk1NKQorI2RlZmlu ZSBYQ1JfQU1YX0VOQUJMRURfTUFTSyBcCisgIChYU1RBVEVfVElMRUNGRyB8IFhTVEFURV9USUxF REFUQSkKIAogICAvKiBDaGVjayBpZiBBVlggYW5kIEFWWDUxMiBhcmUgdXNhYmxlLiAgKi8KICAg aW50IGF2eF91c2FibGUgPSAwOwogICBpbnQgYXZ4NTEyX3VzYWJsZSA9IDA7CisgIGludCBhbXhf dXNhYmxlID0gMDsKICAgaWYgKChlY3ggJiBiaXRfT1NYU0FWRSkpCiAgICAgewogICAgICAgLyog Q2hlY2sgaWYgWE1NLCBZTU0sIE9QTUFTSywgdXBwZXIgMjU2IGJpdHMgb2YgWk1NMC1aTU0xNSBh bmQKQEAgLTUzMyw2ICs1MzgsOCBAQCBnZXRfYXZhaWxhYmxlX2ZlYXR1cmVzIChzdHJ1Y3QgX19w cm9jZXNzb3JfbW9kZWwgKmNwdV9tb2RlbCwKIAkgIGF2eDUxMl91c2FibGUgPSAoKHhjcmxvdyAm IFhDUl9BVlg1MTJGX0VOQUJMRURfTUFTSykKIAkJCSAgID09IFhDUl9BVlg1MTJGX0VOQUJMRURf TUFTSyk7CiAJfQorICAgICAgYW14X3VzYWJsZSA9ICgoeGNybG93ICYgWENSX0FNWF9FTkFCTEVE X01BU0spCisJCSAgICA9PSBYQ1JfQU1YX0VOQUJMRURfTUFTSyk7CiAgICAgfQogCiAjZGVmaW5l IHNldF9mZWF0dXJlKGYpIFwKQEAgLTY1MSw2ICs2NTgsMTUgQEAgZ2V0X2F2YWlsYWJsZV9mZWF0 dXJlcyAoc3RydWN0IF9fcHJvY2Vzc29yX21vZGVsICpjcHVfbW9kZWwsCiAJc2V0X2ZlYXR1cmUg KEZFQVRVUkVfUENPTkZJRyk7CiAgICAgICBpZiAoZWR4ICYgYml0X0lCVCkKIAlzZXRfZmVhdHVy ZSAoRkVBVFVSRV9JQlQpOworICAgICAgaWYgKGFteF91c2FibGUpCisJeworCSAgaWYgKGVkeCAm IGJpdF9BTVhfVElMRSkKKwkgICAgc2V0X2ZlYXR1cmUgKEZFQVRVUkVfQU1YX1RJTEUpOworCSAg aWYgKGVkeCAmIGJpdF9BTVhfSU5UOCkKKwkgICAgc2V0X2ZlYXR1cmUgKEZFQVRVUkVfQU1YX0lO VDgpOworCSAgaWYgKGVkeCAmIGJpdF9BTVhfQkYxNikKKwkgICAgc2V0X2ZlYXR1cmUgKEZFQVRV UkVfQU1YX0JGMTYpOworCX0KICAgICAgIGlmIChhdng1MTJfdXNhYmxlKQogCXsKIAkgIGlmIChl YnggJiBiaXRfQVZYNTEyRikKZGlmZiAtLWdpdCBhL2djYy9jb21tb24vY29uZmlnL2kzODYvaTM4 Ni1jb21tb24uYyBiL2djYy9jb21tb24vY29uZmlnL2kzODYvaTM4Ni1jb21tb24uYwppbmRleCA1 MzA1MTQ1YThjOS4uY2Q1YTQzMmQ3ODMgMTAwNjQ0Ci0tLSBhL2djYy9jb21tb24vY29uZmlnL2kz ODYvaTM4Ni1jb21tb24uYworKysgYi9nY2MvY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY29tbW9u LmMKQEAgLTEwMSw2ICsxMDEsOSBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJ TkczLiAgSWYgbm90IHNlZQogICAoT1BUSU9OX01BU0tfSVNBX1hTQVZFQyB8IE9QVElPTl9NQVNL X0lTQV9YU0FWRV9TRVQpCiAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9DTFdCX1NFVCBPUFRJT05f TUFTS19JU0FfQ0xXQgogI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0FWWDUxMlZQMklOVEVSU0VD VF9TRVQgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJWUDJJTlRFUlNFQ1QKKyNkZWZpbmUgT1BUSU9O X01BU0tfSVNBMl9BTVhfVElMRV9TRVQgT1BUSU9OX01BU0tfSVNBMl9BTVhfVElMRQorI2RlZmlu ZSBPUFRJT05fTUFTS19JU0EyX0FNWF9JTlQ4X1NFVCBPUFRJT05fTUFTS19JU0EyX0FNWF9JTlQ4 CisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQU1YX0JGMTZfU0VUIE9QVElPTl9NQVNLX0lTQTJf QU1YX0JGMTYKIAogLyogU1NFNCBpbmNsdWRlcyBib3RoIFNTRTQuMSBhbmQgU1NFNC4yLiAtbXNz ZTQgc2hvdWxkIGJlIHRoZSBzYW1lCiAgICBhcyAtbXNzZTQuMi4gICovCkBAIC0yNDYsNiArMjQ5 LDkgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUK ICNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9TRVJJQUxJWkVfVU5TRVQgT1BUSU9OX01BU0tfSVNB Ml9TRVJJQUxJWkUKICNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJWUDJJTlRFUlNFQ1Rf VU5TRVQgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJWUDJJTlRFUlNFQ1QKICNkZWZpbmUgT1BUSU9O X01BU0tfSVNBMl9UU1hMRFRSS19VTlNFVCBPUFRJT05fTUFTS19JU0EyX1RTWExEVFJLCisjZGVm aW5lIE9QVElPTl9NQVNLX0lTQTJfQU1YX1RJTEVfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9BTVhf VElMRQorI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0FNWF9JTlQ4X1VOU0VUIE9QVElPTl9NQVNL X0lTQTJfQU1YX0lOVDgKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BTVhfQkYxNl9VTlNFVCBP UFRJT05fTUFTS19JU0EyX0FNWF9CRjE2CiAKIC8qIFNTRTQgaW5jbHVkZXMgYm90aCBTU0U0LjEg YW5kIFNTRTQuMi4gIC1tbm8tc3NlNCBzaG91bGQgdGhlIHNhbWUKICAgIGFzIC1tbm8tc3NlNC4x LiAqLwpAQCAtOTMwLDYgKzkzNiw0NSBAQCBpeDg2X2hhbmRsZV9vcHRpb24gKHN0cnVjdCBnY2Nf b3B0aW9ucyAqb3B0cywKIAl9CiAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIGNhc2UgT1BUX21h bXhfdGlsZToKKyAgICAgIGlmICh2YWx1ZSkKKwl7CisJICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdz MiB8PSBPUFRJT05fTUFTS19JU0EyX0FNWF9USUxFX1NFVDsKKwkgIG9wdHMtPnhfaXg4Nl9pc2Ff ZmxhZ3MyX2V4cGxpY2l0IHw9IE9QVElPTl9NQVNLX0lTQTJfQU1YX1RJTEVfU0VUOworCX0KKyAg ICAgIGVsc2UKKwl7CisJICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzMiAmPSB+T1BUSU9OX01BU0tf SVNBMl9BTVhfVElMRV9VTlNFVDsKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyX2V4cGxpY2l0 IHw9IE9QVElPTl9NQVNLX0lTQTJfQU1YX1RJTEVfVU5TRVQ7CisJfQorICAgICAgcmV0dXJuIHRy dWU7CisKKyAgICBjYXNlIE9QVF9tYW14X2ludDg6CisgICAgICBpZiAodmFsdWUpCisJeworCSAg b3B0cy0+eF9peDg2X2lzYV9mbGFnczIgfD0gT1BUSU9OX01BU0tfSVNBMl9BTVhfSU5UOF9TRVQ7 CisJICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzMl9leHBsaWNpdCB8PSBPUFRJT05fTUFTS19JU0Ey X0FNWF9JTlQ4X1NFVDsKKwl9CisgICAgICBlbHNlCisJeworCSAgb3B0cy0+eF9peDg2X2lzYV9m bGFnczIgJj0gfk9QVElPTl9NQVNLX0lTQTJfQU1YX0lOVDhfVU5TRVQ7CisJICBvcHRzLT54X2l4 ODZfaXNhX2ZsYWdzMl9leHBsaWNpdCB8PSBPUFRJT05fTUFTS19JU0EyX0FNWF9JTlQ4X1VOU0VU OworCX0KKyAgICAgIHJldHVybiB0cnVlOworCisgICAgY2FzZSBPUFRfbWFteF9iZjE2OgorICAg ICAgaWYgKHZhbHVlKQorCXsKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyIHw9IE9QVElPTl9N QVNLX0lTQTJfQU1YX0JGMTZfU0VUOworCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGlj aXQgfD0gT1BUSU9OX01BU0tfSVNBMl9BTVhfQkYxNl9TRVQ7CisJfQorICAgICAgZWxzZQorCXsK KwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyICY9IH5PUFRJT05fTUFTS19JU0EyX0FNWF9CRjE2 X1VOU0VUOworCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGljaXQgfD0gT1BUSU9OX01B U0tfSVNBMl9BTVhfQkYxNl9VTlNFVDsKKwl9CisgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGNh c2UgT1BUX21mbWE6CiAgICAgICBpZiAodmFsdWUpCiAJewpkaWZmIC0tZ2l0IGEvZ2NjL2NvbW1v bi9jb25maWcvaTM4Ni9pMzg2LWNwdWluZm8uaCBiL2djYy9jb21tb24vY29uZmlnL2kzODYvaTM4 Ni1jcHVpbmZvLmgKaW5kZXggODRjYTk3ZTdhZGUuLjViOTRiMWYxZGY3IDEwMDY0NAotLS0gYS9n Y2MvY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY3B1aW5mby5oCisrKyBiL2djYy9jb21tb24vY29u ZmlnL2kzODYvaTM4Ni1jcHVpbmZvLmgKQEAgLTIxNiw2ICsyMTYsOSBAQCBlbnVtIHByb2Nlc3Nv cl9mZWF0dXJlcwogICBGRUFUVVJFX1hTQVZFQywKICAgRkVBVFVSRV9YU0FWRU9QVCwKICAgRkVB VFVSRV9YU0FWRVMsCisgIEZFQVRVUkVfQU1YX1RJTEUsCisgIEZFQVRVUkVfQU1YX0lOVDgsCisg IEZFQVRVUkVfQU1YX0JGMTYsCiAgIENQVV9GRUFUVVJFX01BWAogfTsKIApkaWZmIC0tZ2l0IGEv Z2NjL2NvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWlzYXMuaCBiL2djYy9jb21tb24vY29uZmlnL2kz ODYvaTM4Ni1pc2FzLmgKaW5kZXggMDhjOWRiZWNjNzYuLjNjODMwZWEwOGZmIDEwMDY0NAotLS0g YS9nY2MvY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtaXNhcy5oCisrKyBiL2djYy9jb21tb24vY29u ZmlnL2kzODYvaTM4Ni1pc2FzLmgKQEAgLTE2MCw0ICsxNjAsNyBAQCBJU0FfTkFNRVNfVEFCTEVf U1RBUlQKICAgSVNBX05BTUVTX1RBQkxFX0VOVFJZKCJ4c2F2ZW9wdCIsIEZFQVRVUkVfWFNBVkVP UFQsIFBfTk9ORSwKIAkJCSItbXhzYXZlb3B0IikKICAgSVNBX05BTUVTX1RBQkxFX0VOVFJZKCJ4 c2F2ZXMiLCBGRUFUVVJFX1hTQVZFUywgUF9OT05FLCAiLW14c2F2ZXMiKQorICBJU0FfTkFNRVNf VEFCTEVfRU5UUlkoImFteC10aWxlIiwgRkVBVFVSRV9BTVhfVElMRSwgUF9OT05FLCAiLW1hbXgt dGlsZSIpCisgIElTQV9OQU1FU19UQUJMRV9FTlRSWSgiYW14LWludDgiLCBGRUFUVVJFX0FNWF9J TlQ4LCBQX05PTkUsICItbWFteC1pbnQ4IikKKyAgSVNBX05BTUVTX1RBQkxFX0VOVFJZKCJhbXgt YmYxNiIsIEZFQVRVUkVfQU1YX0JGMTYsIFBfTk9ORSwgIi1tYW14LWJmMTYiKQogSVNBX05BTUVT X1RBQkxFX0VORApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy5nY2MgYi9nY2MvY29uZmlnLmdjYwpp bmRleCA3OTdmMGFkNWVkZC4uZDBlNTllODZhNWMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcuZ2Nj CisrKyBiL2djYy9jb25maWcuZ2NjCkBAIC00MTIsNyArNDEyLDcgQEAgaVszNDU2N104Ni0qLSop CiAJCSAgICAgICB3YWl0cGtnaW50cmluLmggY2xkZW1vdGVpbnRyaW4uaCBhdng1MTJiZjE2dmxp bnRyaW4uaAogCQkgICAgICAgYXZ4NTEyYmYxNmludHJpbi5oIGVucWNtZGludHJpbi5oIHNlcmlh bGl6ZWludHJpbi5oCiAJCSAgICAgICBhdng1MTJ2cDJpbnRlcnNlY3RpbnRyaW4uaCBhdng1MTJ2 cDJpbnRlcnNlY3R2bGludHJpbi5oCi0JCSAgICAgICB0c3hsZHRya2ludHJpbi5oIgorCQkgICAg ICAgdHN4bGR0cmtpbnRyaW4uaCBhbXh0aWxlaW50cmluLmggYW14aW50OGludHJpbi5oIGFteGJm MTZpbnRyaW4uaCIKIAk7OwogeDg2XzY0LSotKikKIAljcHVfdHlwZT1pMzg2CkBAIC00NDcsNyAr NDQ3LDcgQEAgeDg2XzY0LSotKikKIAkJICAgICAgIHdhaXRwa2dpbnRyaW4uaCBjbGRlbW90ZWlu dHJpbi5oIGF2eDUxMmJmMTZ2bGludHJpbi5oCiAJCSAgICAgICBhdng1MTJiZjE2aW50cmluLmgg ZW5xY21kaW50cmluLmggc2VyaWFsaXplaW50cmluLmgKIAkJICAgICAgIGF2eDUxMnZwMmludGVy c2VjdGludHJpbi5oIGF2eDUxMnZwMmludGVyc2VjdHZsaW50cmluLmgKLQkJICAgICAgIHRzeGxk dHJraW50cmluLmgiCisJCSAgICAgICB0c3hsZHRya2ludHJpbi5oIGFteHRpbGVpbnRyaW4uaCBh bXhpbnQ4aW50cmluLmggYW14YmYxNmludHJpbi5oIgogCTs7CiBpYTY0LSotKikKIAlleHRyYV9o ZWFkZXJzPWlhNjRpbnRyaW4uaApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2FteGJmMTZp bnRyaW4uaCBiL2djYy9jb25maWcvaTM4Ni9hbXhiZjE2aW50cmluLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRmMGUyMjYyZDUwCi0tLSAvZGV2L251bGwKKysrIGIv Z2NjL2NvbmZpZy9pMzg2L2FteGJmMTZpbnRyaW4uaApAQCAtMCwwICsxLDI1IEBACisjaWYgIWRl ZmluZWQgX0lNTUlOVFJJTl9IX0lOQ0xVREVECisjZXJyb3IgIk5ldmVyIHVzZSA8YW14YmYxNmlu dHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgorI2VuZGlm CisKKyNpZm5kZWYgX0FNWEJGMTZJTlRSSU5fSF9JTkNMVURFRAorI2RlZmluZSBfQU1YQkYxNklO VFJJTl9IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChfX0FNWF9CRjE2X18pCisjcHJhZ21hIEdD QyBwdXNoX29wdGlvbnMKKyNwcmFnbWEgR0NDIHRhcmdldCgiYW14LWJmMTYiKQorI2RlZmluZSBf X0RJU0FCTEVfQU1YX0JGMTZfXworI2VuZGlmIC8qIF9fQU1YX0JGMTZfXyAqLworCisjaWYgZGVm aW5lZChfX3g4Nl82NF9fKSAmJiBkZWZpbmVkKF9fQU1YX0JGMTZfXykKKyNkZWZpbmUgX3RpbGVf ZHBiZjE2cHMoZHN0LHNyYzEsc3JjMikJCQkJCVwKKyAgX19hc21fXyB2b2xhdGlsZVwKKyAgKCJ7 dGRwYmYxNnBzXHQlJXRtbSIjc3JjMiIsICUldG1tIiNzcmMxIiwgJSV0bW0iI2RzdCJ8dGRwYmYx NnBzXHQlJXRtbSIjZHN0IiwgJSV0bW0iI3NyYzEiLCAlJXRtbSIjc3JjMiJ9IiA6OikKKyNlbmRp ZgorCisjaWZkZWYgX19ESVNBQkxFX0FNWF9CRjE2X18KKyN1bmRlZiBfX0RJU0FCTEVfQU1YX0JG MTZfXworI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKKyNlbmRpZiAvKiBfX0RJU0FCTEVfQU1YX0JG MTZfXyAqLworCisjZW5kaWYgLyogX0FNWEJGMTZJTlRSSU5fSF9JTkNMVURFRCAqLwpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2FteGludDhpbnRyaW4uaCBiL2djYy9jb25maWcvaTM4Ni9h bXhpbnQ4aW50cmluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRi N2E1OTU4N2RjCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2FteGludDhpbnRy aW4uaApAQCAtMCwwICsxLDM3IEBACisjaWYgIWRlZmluZWQgX0lNTUlOVFJJTl9IX0lOQ0xVREVE CisjZXJyb3IgIk5ldmVyIHVzZSA8YW14aW50OGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8 aW1taW50cmluLmg+IGluc3RlYWQuIgorI2VuZGlmCisKKyNpZm5kZWYgX0FNWElOVDhJTlRSSU5f SF9JTkNMVURFRAorI2RlZmluZSBfQU1YSU5UOElOVFJJTl9IX0lOQ0xVREVECisKKyNpZiAhZGVm aW5lZChfX0FNWF9JTlQ4X18pCisjcHJhZ21hIEdDQyBwdXNoX29wdGlvbnMKKyNwcmFnbWEgR0ND IHRhcmdldCgiYW14LWludDgiKQorI2RlZmluZSBfX0RJU0FCTEVfQU1YX0lOVDhfXworI2VuZGlm IC8qIF9fQU1YX0lOVDhfXyAqLworCisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSAmJiBkZWZpbmVk KF9fQU1YX0lOVDhfXykKKyNkZWZpbmUgX3RpbGVfZHBic3NkKGRzdCxzcmMxLHNyYzIpCQkJCQlc CisgIF9fYXNtX18gdm9sYXRpbGUJCQkJCQkJXAorICAoInt0ZHBic3NkXHQlJXRtbSIjc3JjMiIs ICUldG1tIiNzcmMxIiwgJSV0bW0iI2RzdCJ8dGRwYnNzZFx0JSV0bW0iI2RzdCIsICUldG1tIiNz cmMxIiwgJSV0bW0iI3NyYzIifSIgOjopCisKKyNkZWZpbmUgX3RpbGVfZHBic3VkKGRzdCxzcmMx LHNyYzIpCQkJCQlcCisgIF9fYXNtX18gdm9sYXRpbGUJCQkJCQkJXAorICAoInt0ZHBic3VkXHQl JXRtbSIjc3JjMiIsICUldG1tIiNzcmMxIiwgJSV0bW0iI2RzdCJ8dGRwYnN1ZFx0JSV0bW0iI2Rz dCIsICUldG1tIiNzcmMxIiwgJSV0bW0iI3NyYzIifSIgOjopCisKKyNkZWZpbmUgX3RpbGVfZHBi dXNkKGRzdCxzcmMxLHNyYzIpCQkJCQlcCisgIF9fYXNtX18gdm9sYXRpbGVcCisgICgie3RkcGJ1 c2RcdCUldG1tIiNzcmMyIiwgJSV0bW0iI3NyYzEiLCAlJXRtbSIjZHN0Inx0ZHBidXNkXHQlJXRt bSIjZHN0IiwgJSV0bW0iI3NyYzEiLCAlJXRtbSIjc3JjMiJ9IiA6OikKKworI2RlZmluZSBfdGls ZV9kcGJ1dWQoZHN0LHNyYzEsc3JjMikJCQkJCVwKKyAgX19hc21fXyB2b2xhdGlsZQkJCQkJCQlc CisgICgie3RkcGJ1dWRcdCUldG1tIiNzcmMyIiwgJSV0bW0iI3NyYzEiLCAlJXRtbSIjZHN0Inx0 ZHBidXVkXHQlJXRtbSIjZHN0IiwgJSV0bW0iI3NyYzEiLCAlJXRtbSIjc3JjMiJ9IiA6OikKKyNl bmRpZgorCisjaWZkZWYgX19ESVNBQkxFX0FNWF9JTlQ4X18KKyN1bmRlZiBfX0RJU0FCTEVfQU1Y X0lOVDhfXworI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKKyNlbmRpZiAvKiBfX0RJU0FCTEVfQU1Y X0lOVDhfXyAqLworCisjZW5kaWYgLyogX0FNWElOVDhJTlRSSU5fSF9JTkNMVURFRCAqLwpkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2FteHRpbGVpbnRyaW4uaCBiL2djYy9jb25maWcvaTM4 Ni9hbXh0aWxlaW50cmluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmZlOTk1MjMyNzQzCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2FteHRpbGVp bnRyaW4uaApAQCAtMCwwICsxLDYzIEBACisjaWYgIWRlZmluZWQgX0lNTUlOVFJJTl9IX0lOQ0xV REVECisjZXJyb3IgIk5ldmVyIHVzZSA8YW14dGlsZWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVk ZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgorI2VuZGlmCisKKyNpZm5kZWYgX0FNWFRJTEVJTlRS SU5fSF9JTkNMVURFRAorI2RlZmluZSBfQU1YVElMRUlOVFJJTl9IX0lOQ0xVREVECisKKyNpZiAh ZGVmaW5lZChfX0FNWF9USUxFX18pCisjcHJhZ21hIEdDQyBwdXNoX29wdGlvbnMKKyNwcmFnbWEg R0NDIHRhcmdldCgiYW14LXRpbGUiKQorI2RlZmluZSBfX0RJU0FCTEVfQU1YX1RJTEVfXworI2Vu ZGlmIC8qIF9fQU1YX1RJTEVfXyAqLworCisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSAmJiBkZWZp bmVkKF9fQU1YX1RJTEVfXykKKworZXh0ZXJuIF9faW5saW5lIHZvaWQKK19fYXR0cmlidXRlX18o KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX3Rp bGVfbG9hZGNvbmZpZyAoY29uc3Qgdm9pZCAqX19jb25maWcpCit7CisgIF9fYXNtX18gdm9sYXRp bGUgKCJsZHRpbGVjZmdcdCVYMCIgOjogIm0iIChfX2NvbmZpZykpOworfQorCitleHRlcm4gX19p bmxpbmUgdm9pZAorX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCitfdGlsZV9zdG9yZWNvbmZpZyAodm9pZCAqX19jb25maWcp Cit7CisgIF9fYXNtX18gdm9sYXRpbGUgKCJzdHRpbGVjZmdcdCVYMCIgOiAiPW0iIChfX2NvbmZp ZykpOworfQorCitleHRlcm4gX19pbmxpbmUgdm9pZAorX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s aW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfdGlsZV9yZWxlYXNl ICh2b2lkKQoreworICBfX2FzbV9fIHZvbGF0aWxlICgidGlsZXJlbGVhc2UiIDo6KTsKK30KKwor I2RlZmluZSBfdGlsZV9sb2FkZChkc3QsYmFzZSxzdHJpZGUpCQkJCQlcCisgIF9fYXNtX18gdm9s YXRpbGUJCQkJCQkJXAorICAoInt0aWxlbG9hZGRcdCglMCwlMSwxKSwgJSV0bW0iI2RzdCJ8dGls ZWxvYWRkXHQlJXRtbSIjZHN0IiwgWyUwKyUxKjFdfSIgXAorICAgOjogInIiICgoY29uc3Qgdm9p ZCopIGJhc2UpLCAiciIgKChsb25nKSBzdHJpZGUpKQorCisjZGVmaW5lIF90aWxlX3N0cmVhbV9s b2FkZChkc3QsYmFzZSxzdHJpZGUpCQkJCVwKKyAgX19hc21fXyB2b2xhdGlsZQkJCQkJCQlcCisg ICgie3RpbGVsb2FkZHQxXHQoJTAsJTEsMSksICUldG1tIiNkc3QifHRpbGVsb2FkZHQxXHQlJXRt bSIjZHN0IiwgWyUwKyUxKjFdfSJcCisgICA6OiAiciIgKChjb25zdCB2b2lkKikgYmFzZSksICJy IiAoKGxvbmcpIHN0cmlkZSkpCisKKyNkZWZpbmUgX3RpbGVfc3RvcmVkKHNyYyxiYXNlLHN0cmlk ZSkJCQkJCVwKKyAgX19hc21fXyB2b2xhdGlsZQkJCQkJCQlcCisgICgie3RpbGVzdG9yZWRcdCUl dG1tIiNzcmMiLCAoJTAsJTEsMSl8dGlsZXN0b3JlZFx0WyUwKyUxKjFdLCAlJXRtbSIjc3JjIn0i IFwKKyAgIDo6ICJyIiAoKHZvaWQqKSBiYXNlKSwgInIiICgobG9uZykgc3RyaWRlKSkKKworI2Rl ZmluZSBfdGlsZV96ZXJvKGRzdCkJCQkJXAorICBfX2FzbV9fIHZvbGF0aWxlCQkJCVwKKyAgKCJ0 aWxlemVyb1x0JSV0bW0iI2RzdCA6OikKKworI2VuZGlmCisKKyNpZmRlZiBfX0RJU0FCTEVfQU1Y X1RJTEVfXworI3VuZGVmIF9fRElTQUJMRV9BTVhfVElMRV9fCisjcHJhZ21hIEdDQyBwb3Bfb3B0 aW9ucworI2VuZGlmIC8qIF9fRElTQUJMRV9BTVhfVElMRV9fICovCisKKyNlbmRpZiAvKiBfQU1Y VElMRUlOVFJJTl9IX0lOQ0xVREVEICovCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvY3B1 aWQuaCBiL2djYy9jb25maWcvaTM4Ni9jcHVpZC5oCmluZGV4IGJjYTYxZDYyMGRiLi40NTk4NDM0 ZmQwMiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2NwdWlkLmgKKysrIGIvZ2NjL2NvbmZp Zy9pMzg2L2NwdWlkLmgKQEAgLTEyNyw2ICsxMjcsOSBAQAogI2RlZmluZSBiaXRfUENPTkZJRwko MSA8PCAxOCkKICNkZWZpbmUgYml0X1NFUklBTElaRQkoMSA8PCAxNCkKICNkZWZpbmUgYml0X1RT WExEVFJLICAgICgxIDw8IDE2KQorI2RlZmluZSBiaXRfQU1YX0JGMTYgICAgKDEgPDwgMjIpCisj ZGVmaW5lIGJpdF9BTVhfVElMRSAgICAoMSA8PCAyNCkKKyNkZWZpbmUgYml0X0FNWF9JTlQ4ICAg ICgxIDw8IDI1KQogCiAvKiBYRkVBVFVSRV9FTkFCTEVEX01BU0sgcmVnaXN0ZXIgYml0cyAoJWVh eCA9PSAweGQsICVlY3ggPT0gMCkgKi8KICNkZWZpbmUgYml0X0JORFJFR1MgICAgICgxIDw8IDMp CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1jLmMgYi9nY2MvY29uZmlnL2kzODYv aTM4Ni1jLmMKaW5kZXggMmQ2MWEwY2U3MGEuLjZhNjhlN2NhZjA4IDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL2kzODYvaTM4Ni1jLmMKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYy5jCkBAIC01 ODgsNiArNTg4LDEzIEBAIGl4ODZfdGFyZ2V0X21hY3Jvc19pbnRlcm5hbCAoSE9TVF9XSURFX0lO VCBpc2FfZmxhZywKICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2luLCAiX19FTlFDTURfXyIpOwog ICBpZiAoaXNhX2ZsYWcyICYgT1BUSU9OX01BU0tfSVNBMl9UU1hMRFRSSykKICAgICBkZWZfb3Jf dW5kZWYgKHBhcnNlX2luLCAiX19UU1hMRFRSS19fIik7CisgIGlmIChpc2FfZmxhZzIgJiBPUFRJ T05fTUFTS19JU0EyX0FNWF9USUxFKQorICAgIGRlZl9vcl91bmRlZiAocGFyc2VfaW4sICJfX0FN WF9USUxFX18iKTsKKyAgaWYgKGlzYV9mbGFnMiAmIE9QVElPTl9NQVNLX0lTQTJfQU1YX0lOVDgp CisgICAgZGVmX29yX3VuZGVmIChwYXJzZV9pbiwgIl9fQU1YX0lOVDhfXyIpOworICBpZiAoaXNh X2ZsYWcyICYgT1BUSU9OX01BU0tfSVNBMl9BTVhfQkYxNikKKyAgICBkZWZfb3JfdW5kZWYgKHBh cnNlX2luLCAiX19BTVhfQkYxNl9fIik7CisKICAgaWYgKFRBUkdFVF9JQU1DVSkKICAgICB7CiAg ICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2luLCAiX19pYW1jdSIpOwpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9pMzg2L2kzODYtb3B0aW9ucy5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYtb3B0aW9u cy5jCmluZGV4IGI5M2MzMzgzNDZmLi5mNzliNmE4OTI3MCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9pMzg2L2kzODYtb3B0aW9ucy5jCisrKyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LW9wdGlvbnMu YwpAQCAtMjA5LDcgKzIwOSwxMCBAQCBzdGF0aWMgc3RydWN0IGl4ODZfdGFyZ2V0X29wdHMgaXNh Ml9vcHRzW10gPQogICB7ICItbWF2eDUxMmJmMTYiLAlPUFRJT05fTUFTS19JU0EyX0FWWDUxMkJG MTYgfSwKICAgeyAiLW1lbnFjbWQiLAkJT1BUSU9OX01BU0tfSVNBMl9FTlFDTUQgfSwKICAgeyAi LW1zZXJpYWxpemUiLAlPUFRJT05fTUFTS19JU0EyX1NFUklBTElaRSB9LAotICB7ICItbXRzeGxk dHJrIiwJT1BUSU9OX01BU0tfSVNBMl9UU1hMRFRSSyB9CisgIHsgIi1tdHN4bGR0cmsiLAlPUFRJ T05fTUFTS19JU0EyX1RTWExEVFJLIH0sCisgIHsgIi1tYW14LXRpbGUiLAlPUFRJT05fTUFTS19J U0EyX0FNWF9USUxFIH0sCisgIHsgIi1tYW14LWludDgiLAlPUFRJT05fTUFTS19JU0EyX0FNWF9J TlQ4IH0sCisgIHsgIi1tYW14LWJmMTYiLAlPUFRJT05fTUFTS19JU0EyX0FNWF9CRjE2IH0KIH07 CiBzdGF0aWMgc3RydWN0IGl4ODZfdGFyZ2V0X29wdHMgaXNhX29wdHNbXSA9CiB7CkBAIC0xMDMx LDYgKzEwMzQsOSBAQCBpeDg2X3ZhbGlkX3RhcmdldF9hdHRyaWJ1dGVfaW5uZXJfcCAodHJlZSBm bmRlY2wsIHRyZWUgYXJncywgY2hhciAqcF9zdHJpbmdzW10sCiAgICAgSVg4Nl9BVFRSX0lTQSAo ImVucWNtZCIsIE9QVF9tZW5xY21kKSwKICAgICBJWDg2X0FUVFJfSVNBICgic2VyaWFsaXplIiwg T1BUX21zZXJpYWxpemUpLAogICAgIElYODZfQVRUUl9JU0EgKCJ0c3hsZHRyayIsIE9QVF9tdHN4 bGR0cmspLAorICAgIElYODZfQVRUUl9JU0EgKCJhbXgtdGlsZSIsIE9QVF9tYW14X3RpbGUpLAor ICAgIElYODZfQVRUUl9JU0EgKCJhbXgtaW50OCIsIE9QVF9tYW14X2ludDgpLAorICAgIElYODZf QVRUUl9JU0EgKCJhbXgtYmYxNiIsIE9QVF9tYW14X2JmMTYpLAogCiAgICAgLyogZW51bSBvcHRp b25zICovCiAgICAgSVg4Nl9BVFRSX0VOVU0gKCJmcG1hdGg9IiwJT1BUX21mcG1hdGhfKSwKQEAg LTIyNTQsNiArMjI2MCwxOCBAQCBpeDg2X29wdGlvbl9vdmVycmlkZV9pbnRlcm5hbCAoYm9vbCBt YWluX2FyZ3NfcCwKIAkgICAgJiYgIShvcHRzLT54X2l4ODZfaXNhX2ZsYWdzMl9leHBsaWNpdAog CQkgJiBPUFRJT05fTUFTS19JU0EyX0FWWDUxMkJGMTYpKQogCSAgb3B0cy0+eF9peDg2X2lzYV9m bGFnczIgfD0gT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJCRjE2OworCWlmICgoKHByb2Nlc3Nvcl9h bGlhc190YWJsZVtpXS5mbGFncyAmIFBUQV9BTVhfVElMRSkgIT0gMCkKKwkgICAgJiYgIShvcHRz LT54X2l4ODZfaXNhX2ZsYWdzMl9leHBsaWNpdAorCQkgJiBPUFRJT05fTUFTS19JU0EyX0FNWF9U SUxFKSkKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyIHw9IE9QVElPTl9NQVNLX0lTQTJfQU1Y X1RJTEU7CisJaWYgKCgocHJvY2Vzc29yX2FsaWFzX3RhYmxlW2ldLmZsYWdzICYgUFRBX0FNWF9J TlQ4KSAhPSAwKQorCSAgICAmJiAhKG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyX2V4cGxpY2l0CisJ CSAmIE9QVElPTl9NQVNLX0lTQTJfQU1YX0lOVDgpKQorCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFn czIgfD0gT1BUSU9OX01BU0tfSVNBMl9BTVhfSU5UODsKKwlpZiAoKChwcm9jZXNzb3JfYWxpYXNf dGFibGVbaV0uZmxhZ3MgJiBQVEFfQU1YX0JGMTYpICE9IDApCisJICAgICYmICEob3B0cy0+eF9p eDg2X2lzYV9mbGFnczJfZXhwbGljaXQKKwkJICYgT1BUSU9OX01BU0tfSVNBMl9BTVhfQkYxNikp CisJICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzMiB8PSBPUFRJT05fTUFTS19JU0EyX0FNWF9CRjE2 OwogICAgICAgICBpZiAoKChwcm9jZXNzb3JfYWxpYXNfdGFibGVbaV0uZmxhZ3MgJiBQVEFfTU9W RElSSSkgIT0gMCkKICAgICAgICAgICAgICYmICEob3B0cy0+eF9peDg2X2lzYV9mbGFnc19leHBs aWNpdCAmIE9QVElPTl9NQVNLX0lTQV9NT1ZESVJJKSkKICAgICAgICAgICBvcHRzLT54X2l4ODZf aXNhX2ZsYWdzIHw9IE9QVElPTl9NQVNLX0lTQV9NT1ZESVJJOwpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9pMzg2L2kzODYuaCBiL2djYy9jb25maWcvaTM4Ni9pMzg2LmgKaW5kZXggOTJiNzQ3NWE3 YmYuLmE0NDk2NTNjYzNlIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5oCisrKyBi L2djYy9jb25maWcvaTM4Ni9pMzg2LmgKQEAgLTIwMyw2ICsyMDMsMTIgQEAgc2VlIHRoZSBmaWxl cyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2Vl CiAjZGVmaW5lIFRBUkdFVF9TRVJJQUxJWkVfUCh4KSBUQVJHRVRfSVNBMl9TRVJJQUxJWkVfUCh4 KQogI2RlZmluZSBUQVJHRVRfVFNYTERUUksJVEFSR0VUX0lTQTJfVFNYTERUUksKICNkZWZpbmUg VEFSR0VUX1RTWExEVFJLX1AoeCkgVEFSR0VUX0lTQTJfVFNYTERUUktfUCh4KQorI2RlZmluZSBU QVJHRVRfQU1YX1RJTEUgVEFSR0VUX0lTQTJfQU1YX1RJTEUKKyNkZWZpbmUgVEFSR0VUX0FNWF9U SUxFX1AoeCkgVEFSR0VUX0lTQTJfQU1YX1RJTEUoeCkKKyNkZWZpbmUgVEFSR0VUX0FNWF9JTlQ4 IFRBUkdFVF9JU0EyX0FNWF9JTlQ4CisjZGVmaW5lIFRBUkdFVF9BTVhfSU5UOF9QKHgpIFRBUkdF VF9JU0EyX0FNWF9JTlQ4KHgpCisjZGVmaW5lIFRBUkdFVF9BTVhfQkYxNiBUQVJHRVRfSVNBMl9B TVhfQkYxNgorI2RlZmluZSBUQVJHRVRfQU1YX0JGMTZfUCh4KSBUQVJHRVRfSVNBMl9BTVhfQkYx Nih4KQogCiAjZGVmaW5lIFRBUkdFVF9MUDY0CVRBUkdFVF9BQklfNjQKICNkZWZpbmUgVEFSR0VU X0xQNjRfUCh4KQlUQVJHRVRfQUJJXzY0X1AoeCkKQEAgLTI0NjYsNiArMjQ3Miw5IEBAIGNvbnN0 IHdpZGVfaW50X2JpdG1hc2sgUFRBX0VOUUNNRCAoMCwgSE9TVF9XSURFX0lOVF8xVSA8PCAxNSk7 CiBjb25zdCB3aWRlX2ludF9iaXRtYXNrIFBUQV9DTERFTU9URSAoMCwgSE9TVF9XSURFX0lOVF8x VSA8PCAxNik7CiBjb25zdCB3aWRlX2ludF9iaXRtYXNrIFBUQV9TRVJJQUxJWkUgKDAsIEhPU1Rf V0lERV9JTlRfMVUgPDwgMTcpOwogY29uc3Qgd2lkZV9pbnRfYml0bWFzayBQVEFfVFNYTERUUksg KDAsIEhPU1RfV0lERV9JTlRfMVUgPDwgMTgpOworY29uc3Qgd2lkZV9pbnRfYml0bWFzayBQVEFf QU1YX1RJTEUoMCwgSE9TVF9XSURFX0lOVF8xVSA8PCAxOSk7Citjb25zdCB3aWRlX2ludF9iaXRt YXNrIFBUQV9BTVhfSU5UOCgwLCBIT1NUX1dJREVfSU5UXzFVIDw8IDIwKTsKK2NvbnN0IHdpZGVf aW50X2JpdG1hc2sgUFRBX0FNWF9CRjE2KDAsIEhPU1RfV0lERV9JTlRfMVUgPDwgMjEpOwogCiBj b25zdCB3aWRlX2ludF9iaXRtYXNrIFBUQV9DT1JFMiA9IFBUQV82NEJJVCB8IFBUQV9NTVggfCBQ VEFfU1NFIHwgUFRBX1NTRTIKICAgfCBQVEFfU1NFMyB8IFBUQV9TU1NFMyB8IFBUQV9DWDE2IHwg UFRBX0ZYU1I7CkBAIC0yNDk5LDcgKzI1MDgsOCBAQCBjb25zdCB3aWRlX2ludF9iaXRtYXNrIFBU QV9USUdFUkxBS0UgPSBQVEFfSUNFTEFLRV9DTElFTlQgfCBQVEFfTU9WRElSSQogICB8IFBUQV9N T1ZESVI2NEIgfCBQVEFfQ0xXQiB8IFBUQV9BVlg1MTJWUDJJTlRFUlNFQ1Q7CiBjb25zdCB3aWRl X2ludF9iaXRtYXNrIFBUQV9TQVBQSElSRVJBUElEUyA9IFBUQV9DT09QRVJMQUtFIHwgUFRBX01P VkRJUkkKICAgfCBQVEFfTU9WRElSNjRCIHwgUFRBX0FWWDUxMlZQMklOVEVSU0VDVCB8IFBUQV9F TlFDTUQgfCBQVEFfQ0xERU1PVEUKLSAgfCBQVEFfUFRXUklURSB8IFBUQV9XQUlUUEtHIHwgUFRB X1NFUklBTElaRSB8IFBUQV9UU1hMRFRSSzsKKyAgfCBQVEFfUFRXUklURSB8IFBUQV9XQUlUUEtH IHwgUFRBX1NFUklBTElaRSB8IFBUQV9UU1hMRFRSSyB8IFBUQV9BTVhfVElMRQorICB8IFBUQV9B TVhfSU5UOCB8IFBUQV9BTVhfQkYxNjsKIGNvbnN0IHdpZGVfaW50X2JpdG1hc2sgUFRBX0FMREVS TEFLRSA9IFBUQV9TS1lMQUtFIHwgUFRBX0NMREVNT1RFIHwgUFRBX1BUV1JJVEUKICAgfCBQVEFf V0FJVFBLRyB8IFBUQV9TRVJJQUxJWkU7CiBjb25zdCB3aWRlX2ludF9iaXRtYXNrIFBUQV9LTkwg PSBQVEFfQlJPQURXRUxMIHwgUFRBX0FWWDUxMlBGIHwgUFRBX0FWWDUxMkVSCmRpZmYgLS1naXQg YS9nY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQKaW5k ZXggYzlmNzE5NWQ0MjMuLjkzODlkYzI0OTQ4IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYv aTM4Ni5vcHQKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYub3B0CkBAIC0xMTE0LDQgKzExMTQs MTYgQEAgU3VwcG9ydCBTRVJJQUxJWkUgYnVpbHQtaW4gZnVuY3Rpb25zIGFuZCBjb2RlIGdlbmVy YXRpb24uCiAKIG10c3hsZHRyawogVGFyZ2V0IFJlcG9ydCBNYXNrKElTQTJfVFNYTERUUkspIFZh cihpeDg2X2lzYV9mbGFnczIpIFNhdmUKLVN1cHBvcnQgVFNYTERUUksgYnVpbHQtaW4gZnVuY3Rp b25zIGFuZCBjb2RlIGdlbmVyYXRpb24uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorU3Vw cG9ydCBUU1hMRFRSSyBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIGNvZGUgZ2VuZXJhdGlvbi4KKwor bWFteC10aWxlCitUYXJnZXQgUmVwb3J0IE1hc2soSVNBMl9BTVhfVElMRSkgVmFyKGl4ODZfaXNh X2ZsYWdzMikgU2F2ZQorU3VwcG9ydCBBTVgtVElMRSBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIGNv ZGUgZ2VuZXJhdGlvbi4KKworbWFteC1pbnQ4CitUYXJnZXQgUmVwb3J0IE1hc2soSVNBMl9BTVhf SU5UOCkgVmFyKGl4ODZfaXNhX2ZsYWdzMikgU2F2ZQorU3VwcG9ydCBBTVgtSU5UOCBidWlsdC1p biBmdW5jdGlvbnMgYW5kIGNvZGUgZ2VuZXJhdGlvbi4KKworbWFteC1iZjE2CitUYXJnZXQgUmVw b3J0IE1hc2soSVNBMl9BTVhfQkYxNikgVmFyKGl4ODZfaXNhX2ZsYWdzMikgU2F2ZQorU3VwcG9y dCBBTVgtQkYxNiBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIGNvZGUgZ2VuZXJhdGlvbi4KZGlmZiAt LWdpdCBhL2djYy9jb25maWcvaTM4Ni9pbW1pbnRyaW4uaCBiL2djYy9jb25maWcvaTM4Ni9pbW1p bnRyaW4uaAppbmRleCBiNjYwZDBkOTA0MC4uNmQyNWY0NGMzMDMgMTAwNjQ0Ci0tLSBhL2djYy9j b25maWcvaTM4Ni9pbW1pbnRyaW4uaAorKysgYi9nY2MvY29uZmlnL2kzODYvaW1taW50cmluLmgK QEAgLTE0NCw2ICsxNDQsMTIgQEAKIAogI2luY2x1ZGUgPHRzeGxkdHJraW50cmluLmg+CiAKKyNp bmNsdWRlIDxhbXh0aWxlaW50cmluLmg+CisKKyNpbmNsdWRlIDxhbXhpbnQ4aW50cmluLmg+CisK KyNpbmNsdWRlIDxhbXhiZjE2aW50cmluLmg+CisKICNpbmNsdWRlIDxyZHNlZWRpbnRyaW4uaD4K IAogI2luY2x1ZGUgPHByZmNod2ludHJpbi5oPgpkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9leHRlbmQu dGV4aSBiL2djYy9kb2MvZXh0ZW5kLnRleGkKaW5kZXggM2IzN2FiYTU3OTUuLmJhOWE3YTRkNWY5 IDEwMDY0NAotLS0gYS9nY2MvZG9jL2V4dGVuZC50ZXhpCisrKyBiL2djYy9kb2MvZXh0ZW5kLnRl eGkKQEAgLTY2MjMsNiArNjYyMywyMSBAQCBFbmFibGUvZGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBv ZiB0aGUgWFNBVkVPUFQgaW5zdHJ1Y3Rpb25zLgogQGNpbmRleCBAY29kZXt0YXJnZXQoInhzYXZl cyIpfSBmdW5jdGlvbiBhdHRyaWJ1dGUsIHg4NgogRW5hYmxlL2Rpc2FibGUgdGhlIGdlbmVyYXRp b24gb2YgdGhlIFhTQVZFUyBpbnN0cnVjdGlvbnMuCiAKK0BpdGVtIGFteC10aWxlCitAaXRlbXgg bm8tYW14LXRpbGUKK0BjaW5kZXggQGNvZGV7dGFyZ2V0KCJhbXgtdGlsZSIpfSBmdW5jdGlvbiBh dHRyaWJ1dGUsIHg4NgorRW5hYmxlL2Rpc2FibGUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIEFNWC1U SUxFIGluc3RydWN0aW9ucy4KKworQGl0ZW0gYW14LWludDgKK0BpdGVteCBuby1hbXgtaW50OAor QGNpbmRleCBAY29kZXt0YXJnZXQoImFteC1pbnQ4Iil9IGZ1bmN0aW9uIGF0dHJpYnV0ZSwgeDg2 CitFbmFibGUvZGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgQU1YLUlOVDggaW5zdHJ1Y3Rp b25zLgorCitAaXRlbSBhbXgtYmYxNgorQGl0ZW14IG5vLWFteC1iZjE2CitAY2luZGV4IEBjb2Rl e3RhcmdldCgiYW14LWJmMTYiKX0gZnVuY3Rpb24gYXR0cmlidXRlLCB4ODYKK0VuYWJsZS9kaXNh YmxlIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBBTVgtQkYxNiBpbnN0cnVjdGlvbnMuCisKIEBpdGVt IGNsZAogQGl0ZW14IG5vLWNsZAogQGNpbmRleCBAY29kZXt0YXJnZXQoImNsZCIpfSBmdW5jdGlv biBhdHRyaWJ1dGUsIHg4NgpkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9pbnZva2UudGV4aSBiL2djYy9k b2MvaW52b2tlLnRleGkKaW5kZXggYmNhOGM4NTZkYzguLmE0NmUzMWY1ODYyIDEwMDY0NAotLS0g YS9nY2MvZG9jL2ludm9rZS50ZXhpCisrKyBiL2djYy9kb2MvaW52b2tlLnRleGkKQEAgLTEzNTcs NiArMTM1Nyw3IEBAIFNlZSBSUy82MDAwIGFuZCBQb3dlclBDIE9wdGlvbnMuCiAtbXZwY2xtdWxx ZHEgIC1tYXZ4NTEyYml0YWxnICAtbW1vdmRpcmkgIC1tbW92ZGlyNjRiICAtbWF2eDUxMnZwb3Bj bnRkcSBAZ29sCiAtbWF2eDUxMjRmbWFwcyAgLW1hdng1MTJ2bm5pICAtbWF2eDUxMjR2bm5pdyAg LW1wcmZjaHcgIC1tcmRwaWQgQGdvbAogLW1yZHNlZWQgIC1tc2d4IC1tYXZ4NTEydnAyaW50ZXJz ZWN0IC1tc2VyaWFsaXplIC1tdHN4bGR0cmtAZ29sCistbWFteC10aWxlIC1tYW14LWludDggLW1h bXgtYmYxNkBnb2wKIC1tY2xkZW1vdGUgIC1tbXMtYml0ZmllbGRzICAtbW5vLWFsaWduLXN0cmlu Z29wcyAgLW1pbmxpbmUtYWxsLXN0cmluZ29wcyBAZ29sCiAtbWlubGluZS1zdHJpbmdvcHMtZHlu YW1pY2FsbHkgIC1tc3RyaW5nb3Atc3RyYXRlZ3k9QHZhcnthbGd9IEBnb2wKIC1tbWVtY3B5LXN0 cmF0ZWd5PUB2YXJ7c3RyYXRlZ3l9ICAtbW1lbXNldC1zdHJhdGVneT1AdmFye3N0cmF0ZWd5fSBA Z29sCkBAIC0zMDAyMCw2ICszMDAyMSwxNSBAQCBwcmVmZXJyZWQgYWxpZ25tZW50IHRvIEBvcHRp b257LW1wcmVmZXJyZWQtc3RhY2stYm91bmRhcnk9Mn0uCiBAbmVlZCAyMDAKIEBpdGVteCAtbXNl cmlhbGl6ZQogQG9waW5kZXggbXNlcmlhbGl6ZQorQG5lZWQgMjAwCitAaXRlbXggLW1hbXgtdGls ZQorQG9waW5kZXggbWFteC10aWxlCitAbmVlZCAyMDAKK0BpdGVteCAtbWFteC1pbnQ4CitAb3Bp bmRleCBtYW14LWludDgKK0BuZWVkIDIwMAorQGl0ZW14IC1tYW14LWJmMTYKK0BvcGluZGV4IG1h bXgtYmYxNgogVGhlc2Ugc3dpdGNoZXMgZW5hYmxlIHRoZSB1c2Ugb2YgaW5zdHJ1Y3Rpb25zIGlu IHRoZSBNTVgsIFNTRSwKIFNTRTIsIFNTRTMsIFNTU0UzLCBTU0U0LCBTU0U0QSwgU1NFNC4xLCBT U0U0LjIsIEFWWCwgQVZYMiwgQVZYNTEyRiwgQVZYNTEyUEYsCiBBVlg1MTJFUiwgQVZYNTEyQ0Qs IEFWWDUxMlZMLCBBVlg1MTJCVywgQVZYNTEyRFEsIEFWWDUxMklGTUEsIEFWWDUxMlZCTUksIFNI QSwKZGlmZiAtLWdpdCBhL2djYy9kb2Mvc291cmNlYnVpbGQudGV4aSBiL2djYy9kb2Mvc291cmNl YnVpbGQudGV4aQppbmRleCA2NWIyZTU1MmI3NC4uYjYyNWYxZTlmNjggMTAwNjQ0Ci0tLSBhL2dj Yy9kb2Mvc291cmNlYnVpbGQudGV4aQorKysgYi9nY2MvZG9jL3NvdXJjZWJ1aWxkLnRleGkKQEAg LTIyNDksNiArMjI0OSwxNSBAQCBUYXJnZXQgc3VwcG9ydHMgdGhlIGV4ZWN1dGlvbiBvZiBAY29k ZXthdng1MTJmfSBpbnN0cnVjdGlvbnMuCiBAaXRlbSBhdng1MTJ2cDJpbnRlcnNlY3QKIFRhcmdl dCBzdXBwb3J0cyB0aGUgZXhlY3V0aW9uIG9mIEBjb2Rle2F2eDUxMnZwMmludGVyc2VjdH0gaW5z dHJ1Y3Rpb25zLgogCitAaXRlbSBhbXhfdGlsZQorVGFyZ2V0IHN1cHBvcnRzIHRoZSBleGVjdXRp b24gb2YgQGNvZGV7YW14LXRpbGV9IGluc3RydWN0aW9ucy4KKworQGl0ZW0gYW14X2ludDgKK1Rh cmdldCBzdXBwb3J0cyB0aGUgZXhlY3V0aW9uIG9mIEBjb2Rle2FteC1pbnQ4fSBpbnN0cnVjdGlv bnMuCisKK0BpdGVtIGFteF9iZjE2CitUYXJnZXQgc3VwcG9ydHMgdGhlIGV4ZWN1dGlvbiBvZiBA Y29kZXthbXgtYmYxNn0gaW5zdHJ1Y3Rpb25zLgorCiBAaXRlbSBjZWxsX2h3CiBUZXN0IHN5c3Rl bSBjYW4gZXhlY3V0ZSBBbHRpVmVjIGFuZCBDZWxsIFBQVSBpbnN0cnVjdGlvbnMuCiAKZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kzODYtMi5DIGIvZ2NjL3Rlc3RzdWl0 ZS9nKysuZGcvb3RoZXIvaTM4Ni0yLkMKaW5kZXggMDRkNWZlYzBmNmMuLjQ0OWYzMGRiYWNlIDEw MDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9pMzg2LTIuQworKysgYi9nY2Mv dGVzdHN1aXRlL2crKy5kZy9vdGhlci9pMzg2LTIuQwpAQCAtMSwxMSArMSwxMiBAQAogLyogeyBk Zy1kbyBjb21waWxlIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9ICovCi0vKiB7IGRn LW9wdGlvbnMgIi1PIC1wZWRhbnRpYy1lcnJvcnMgLW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAt bWF2eCAtbWF2eDIgLW1mbWE0IC1teG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1tYWJtIC1t bHpjbnQgLW1ibWkgLW1ibWkyIC1tdGJtIC1tbHdwIC1tZnNnc2Jhc2UgLW1yZHJuZCAtbWYxNmMg LW1mbWEgLW1ydG0gLW1yZHNlZWQgLW1wcmZjaHcgLW1hZHggLW1meHNyIC1teHNhdmVvcHQgLW1h dng1MTJmIC1tYXZ4NTEyZXIgLW1hdng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3 dDEgLW14c2F2ZWMgLW14c2F2ZXMgLW1jbGZsdXNob3B0ICAtbWF2eDUxMmRxIC1tYXZ4NTEyYncg LW1hdng1MTJ2bCAtbWF2eDUxMmlmbWEgLW1hdng1MTJ2Ym1pIC1tYXZ4NTEydmJtaTIgLW1hdng1 MTI0Zm1hcHMgLW1hdng1MTI0dm5uaXcgLW1hdng1MTJ2cG9wY250ZHEgLW1jbHdiIC1tbXdhaXR4 IC1tY2x6ZXJvIC1tcGt1IC1tc2d4IC1tcmRwaWQgLW1nZm5pIC1tYXZ4NTEyYml0YWxnIC1tcGNv bmZpZyAtbXdibm9pbnZkIC1tYXZ4NTEyYmYxNiAtbWVucWNtZCAtbWF2eDUxMnZwMmludGVyc2Vj dCAtbXNlcmlhbGl6ZSAtbXRzeGxkdHJrIiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PIC1wZWRh bnRpYy1lcnJvcnMgLW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAtbWF2eCAtbWF2eDIgLW1mbWE0 IC1teG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1tYWJtIC1tbHpjbnQgLW1ibWkgLW1ibWky IC1tdGJtIC1tbHdwIC1tZnNnc2Jhc2UgLW1yZHJuZCAtbWYxNmMgLW1mbWEgLW1ydG0gLW1yZHNl ZWQgLW1wcmZjaHcgLW1hZHggLW1meHNyIC1teHNhdmVvcHQgLW1hdng1MTJmIC1tYXZ4NTEyZXIg LW1hdng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3dDEgLW14c2F2ZWMgLW14c2F2 ZXMgLW1jbGZsdXNob3B0ICAtbWF2eDUxMmRxIC1tYXZ4NTEyYncgLW1hdng1MTJ2bCAtbWF2eDUx MmlmbWEgLW1hdng1MTJ2Ym1pIC1tYXZ4NTEydmJtaTIgLW1hdng1MTI0Zm1hcHMgLW1hdng1MTI0 dm5uaXcgLW1hdng1MTJ2cG9wY250ZHEgLW1jbHdiIC1tbXdhaXR4IC1tY2x6ZXJvIC1tcGt1IC1t c2d4IC1tcmRwaWQgLW1nZm5pIC1tYXZ4NTEyYml0YWxnIC1tcGNvbmZpZyAtbXdibm9pbnZkIC1t YXZ4NTEyYmYxNiAtbWVucWNtZCAtbWF2eDUxMnZwMmludGVyc2VjdCAtbXNlcmlhbGl6ZSAtbXRz eGxkdHJrIC1tYW14LXRpbGUgLW1hbXgtaW50OCAtbWFteC1iZjE2IiB9ICovCiAKIC8qIFRlc3Qg dGhhdCB7LHgsZSxwLHQscyx3LGEsYixpfW1taW50cmluLmgsIG1tM2Rub3cuaCwgZm1hNGludHJp bi5oLAogICAgeG9waW50cmluLmgsIGFibWludHJpbi5oLCBibWlpbnRyaW4uaCwgdGJtaW50cmlu LmgsIGx3cGludHJpbi5oLAogICAgcG9wY250aW50cmluLmgsIGZtYWludHJpbi5oLCBwa3VpbnRy aW4uaCwgYXZ4NTEyNGZtYXBzaW50cmluLmgsCiAgICBhdng1MTI0dm5uaXdpbnRyaW4uaCwgYXZ4 NTEydnBvcGNudGRxaW50cmluLmggZ2ZuaWludHJpbi5oCiAgICBhdng1MTJiaXRhbGdpbnRyaW4u aCwgYXZ4NTEydnAyaW50ZXJzZWN0aW50cmluLmgsIHRzeGxkdHJraW50cmluLmgsCisgICBhbXh0 aWxlaW50cmluLmgsIGFteGludDhpbnRyaW4uaCwgYW14YmYxNmludHJpbi5oLAogICAgYXZ4NTEy dnAyaW50ZXJzZWN0dmxpbnRyaW4uaCBhbmQgbW1fbWFsbG9jLmguaCBhcmUgdXNhYmxlCiAgICB3 aXRoIC1PIC1wZWRhbnRpYy1lcnJvcnMuICAqLwogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2crKy5kZy9vdGhlci9pMzg2LTMuQyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kzODYt My5DCmluZGV4IGY0MDE3MmVlOWI1Li4yOWU5ODkxOTM4NiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni0zLkMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3Ro ZXIvaTM4Ni0zLkMKQEAgLTEsMTEgKzEsMTIgQEAKIC8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdl dCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotLyogeyBkZy1vcHRpb25zICItTyAtZmtlZXAt aW5saW5lLWZ1bmN0aW9ucyAtbWFyY2g9azggLW1zc2U0YSAtbTNkbm93IC1tYXZ4IC1tYXZ4MiAt bWZtYTQgLW14b3AgLW1hZXMgLW1wY2xtdWwgLW1wb3BjbnQgLW1hYm0gLW1semNudCAtbWJtaSAt bWJtaTIgLW10Ym0gLW1sd3AgLW1mc2dzYmFzZSAtbXJkcm5kIC1tZjE2YyAtbWZtYSAtbXJ0bSAt bXJkc2VlZCAtbXByZmNodyAtbWFkeCAtbWZ4c3IgLW14c2F2ZW9wdCAtbWF2eDUxMmYgLW1hdng1 MTJlciAtbWF2eDUxMmNkIC1tYXZ4NTEycGYgLW1zaGEgLW1wcmVmZXRjaHd0MSAtbXhzYXZlYyAt bXhzYXZlcyAtbWNsZmx1c2hvcHQgLW1hdng1MTJkcSAtbWF2eDUxMmJ3IC1tYXZ4NTEydmwgLW1h dng1MTJpZm1hIC1tYXZ4NTEydmJtaSAtbWF2eDUxMnZibWkyIC1tYXZ4NTEyNGZtYXBzIC1tYXZ4 NTEyNHZubml3IC1tYXZ4NTEydnBvcGNudGRxIC1tY2x3YiAtbW13YWl0eCAtbWNsemVybyAtbXBr dSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFsZyAtbXBjb25maWcgLW13Ym5vaW52 ZCAtbWF2eDUxMmJmMTYgLW1lbnFjbWQgLW1hdng1MTJ2cDJpbnRlcnNlY3QgLW1zZXJpYWxpemUg LW10c3hsZHRyayIgfSAqLworLyogeyBkZy1vcHRpb25zICItTyAtZmtlZXAtaW5saW5lLWZ1bmN0 aW9ucyAtbWFyY2g9azggLW1zc2U0YSAtbTNkbm93IC1tYXZ4IC1tYXZ4MiAtbWZtYTQgLW14b3Ag LW1hZXMgLW1wY2xtdWwgLW1wb3BjbnQgLW1hYm0gLW1semNudCAtbWJtaSAtbWJtaTIgLW10Ym0g LW1sd3AgLW1mc2dzYmFzZSAtbXJkcm5kIC1tZjE2YyAtbWZtYSAtbXJ0bSAtbXJkc2VlZCAtbXBy ZmNodyAtbWFkeCAtbWZ4c3IgLW14c2F2ZW9wdCAtbWF2eDUxMmYgLW1hdng1MTJlciAtbWF2eDUx MmNkIC1tYXZ4NTEycGYgLW1zaGEgLW1wcmVmZXRjaHd0MSAtbXhzYXZlYyAtbXhzYXZlcyAtbWNs Zmx1c2hvcHQgLW1hdng1MTJkcSAtbWF2eDUxMmJ3IC1tYXZ4NTEydmwgLW1hdng1MTJpZm1hIC1t YXZ4NTEydmJtaSAtbWF2eDUxMnZibWkyIC1tYXZ4NTEyNGZtYXBzIC1tYXZ4NTEyNHZubml3IC1t YXZ4NTEydnBvcGNudGRxIC1tY2x3YiAtbW13YWl0eCAtbWNsemVybyAtbXBrdSAtbXNneCAtbXJk cGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFsZyAtbXBjb25maWcgLW13Ym5vaW52ZCAtbWF2eDUxMmJm MTYgLW1lbnFjbWQgLW1hdng1MTJ2cDJpbnRlcnNlY3QgLW1zZXJpYWxpemUgLW10c3hsZHRyayAt bWFteC10aWxlIC1tYW14LWludDggLW1hbXgtYmYxNiIgfSAqLwogCiAvKiBUZXN0IHRoYXQgeyx4 LGUscCx0LHMsdyxhLGIsaX1tbWludHJpbi5oLCBtbTNkbm93LmgsIGZtYTRpbnRyaW4uaCwKICAg IHhvcGludHJpbi5oLCBhYm1pbnRyaW4uaCwgYm1paW50cmluLmgsIHRibWludHJpbi5oLCBsd3Bp bnRyaW4uaCwKICAgIHBvcGNudGludHJpbi5oLCBmbWFpbnRyaW4uaCwgcGt1aW50cmluLmgsIGF2 eDUxMjRmbWFwc2ludHJpbi5oLAogICAgYXZ4NTEyNHZubml3aW50cmluLmgsIGF2eDUxMnZwb3Bj bnRkcWludHJpbi5oIGdmbmlpbnRyaW4uaAogICAgYXZ4NTEyYml0YWxnaW50cmluLmgsIGF2eDUx MnZwMmludGVyc2VjdGludHJpbi5oLCB0c3hsZHRya2ludHJpbi5oLAorICAgYW14dGlsZWludHJp bi5oLCBhbXhpbnQ4aW50cmluLmgsIGFteGJmMTZpbnRyaW4uaCwKICAgIGF2eDUxMnZwMmludGVy c2VjdHZsaW50cmluLmggYW5kIG1tX21hbGxvYy5oIGFyZSB1c2FibGUKICAgIHdpdGggLU8gLWZr ZWVwLWlubGluZS1mdW5jdGlvbnMuICAqLwogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9hbXhiZjE2LWFzbWF0dC0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9hbXhiZjE2LWFzbWF0dC0xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjk4NzU4Zjk5YTEwCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2kzODYvYW14YmYxNi1hc21hdHQtMS5jCkBAIC0wLDAgKzEsOSBAQAorLyogeyBk Zy1kbyBjb21waWxlIHsgdGFyZ2V0IHsgISBpYTMyIH0gfSB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMiAtbWFteC1iZjE2IiB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInRk cGJmMTZwc1xbIFxcdF0rXFteXG5cXSoldG1tMytcW15cblxdKiV0bW0yK1xbXlxuXF0qJXRtbTEi ICB9IH0gKi8KKyNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KKwordm9pZCBURVNUICgpCit7CisgIF90 aWxlX2RwYmYxNnBzICgxLCAyLCAzKTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L2FteGJmMTYtYXNtYXR0LTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L2FteGJmMTYtYXNtYXR0LTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uYjczMzIyNDhiYTcKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9hbXhiZjE2LWFzbWF0dC0yLmMKQEAgLTAsMCArMSw0IEBACisvKiB7IGRn LWRvIGFzc2VtYmxlIHsgdGFyZ2V0IHsgISBpYTMyIH0gfSB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMiAtbWFteC1iZjE2IiB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBh bXhfYmYxNiB9ICovCisjaW5jbHVkZSJhbXhiZjE2LWFzbWF0dC0xLmMiCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXhiZjE2LWFzbWludGVsLTEuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteGJmMTYtYXNtaW50ZWwtMS5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMmQ2MDc0Mzg3YQotLS0gL2Rldi9udWxsCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteGJmMTYtYXNtaW50ZWwtMS5jCkBA IC0wLDAgKzEsOSBAQAorLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IHsgISBpYTMyIH0gfSB9 ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWFteC1iZjE2IC1tYXNtPWludGVsIiB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInRkcGJmMTZwc1xbIFxcdF0rXFteXG5cXSol dG1tMStcW15cblxdKiV0bW0yK1xbXlxuXF0qJXRtbTMiICB9IH0gKi8KKyNpbmNsdWRlIDxpbW1p bnRyaW4uaD4KKwordm9pZCBURVNUICgpCit7CisgIF90aWxlX2RwYmYxNnBzICgxLCAyLCAzKTsK K30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteGJmMTYtYXNt aW50ZWwtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYW14YmYxNi1hc21pbnRl bC0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYwNWE0NGRmM2Y4 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYW14YmYx Ni1hc21pbnRlbC0yLmMKQEAgLTAsMCArMSw0IEBACisvKiB7IGRnLWRvIGFzc2VtYmxlIHsgdGFy Z2V0IHsgISBpYTMyIH0gfSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWFteC1iZjE2IC1t YXNtPWludGVsIiB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhbXhfYmYx NiB9ICovCisjaW5jbHVkZSJhbXhiZjE2LWFzbWludGVsLTEuYyIKZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteGludDgtYXNtYXR0LTEuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L2FteGludDgtYXNtYXR0LTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uN2FmODAxYmQyMjMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXhpbnQ4LWFzbWF0dC0xLmMKQEAgLTAsMCArMSwx NSBAQAorLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IHsgISBpYTMyIH0gfSB9ICovCisvKiB7 IGRnLW9wdGlvbnMgIi1PMiAtbWFteC1pbnQ4IiB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXIgInRkcGJzc2RcWyBcXHRdK1xbXlxuXF0qJXRtbTMrXFteXG5cXSoldG1tMitcW15c blxdKiV0bW0xIiAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInRkcGJz dWRcWyBcXHRdK1xbXlxuXF0qJXRtbTMrXFteXG5cXSoldG1tMitcW15cblxdKiV0bW0xIiAgfSB9 ICoKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidGRwYnVzZFxbIFxcdF0rXFteXG5c XSoldG1tMytcW15cblxdKiV0bW0yK1xbXlxuXF0qJXRtbTEiICB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAidGRwYnV1ZFxbIFxcdF0rXFteXG5cXSoldG1tMytcW15cblxd KiV0bW0yK1xbXlxuXF0qJXRtbTEiICB9IH0gKi8KKyNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KKwor dm9pZCBURVNUICgpCit7CisgIF90aWxlX2RwYnNzZCAoMSwgMiwgMyk7CisgIF90aWxlX2RwYnN1 ZCAoMSwgMiwgMyk7CisgIF90aWxlX2RwYnVzZCAoMSwgMiwgMyk7CisgIF90aWxlX2RwYnV1ZCAo MSwgMiwgMyk7Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9h bXhpbnQ4LWFzbWF0dC0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXhpbnQ4 LWFzbWF0dC0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMwN2M5 ZDgxM2JiCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv YW14aW50OC1hc21hdHQtMi5jCkBAIC0wLDAgKzEsNCBAQAorLyogeyBkZy1kbyBhc3NlbWJsZSB7 IHRhcmdldCB7ICEgaWEzMiB9IH0gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLW1hbXgtaW50 OCIgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYW14X2ludDggfSAqLwor I2luY2x1ZGUiYW14aW50OC1hc21hdHQtMS5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2kzODYvYW14aW50OC1hc21pbnRlbC0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9hbXhpbnQ4LWFzbWludGVsLTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uYmNmYmIzZmE1ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvaTM4Ni9hbXhpbnQ4LWFzbWludGVsLTEuYwpAQCAtMCwwICsxLDE1IEBA CisvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgeyAhIGlhMzIgfSB9IH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1tYW14LWludDggLW1hc209aW50ZWwiIH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlciAidGRwYnNzZFxbIFxcdF0rXFteXG5cXSoldG1tMStcW15cblxdKiV0 bW0yK1xbXlxuXF0qJXRtbTMiICB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ciAidGRwYnN1ZFxbIFxcdF0rXFteXG5cXSoldG1tMStcW15cblxdKiV0bW0yK1xbXlxuXF0qJXRt bTMiICB9IH0gKgorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ0ZHBidXNkXFsgXFx0 XStcW15cblxdKiV0bW0xK1xbXlxuXF0qJXRtbTIrXFteXG5cXSoldG1tMyIgIH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ0ZHBidXVkXFsgXFx0XStcW15cblxdKiV0bW0x K1xbXlxuXF0qJXRtbTIrXFteXG5cXSoldG1tMyIgIH0gfSAqLworI2luY2x1ZGUgPGltbWludHJp bi5oPgorCit2b2lkIFRFU1QgKCkKK3sKKyAgX3RpbGVfZHBic3NkICgxLCAyLCAzKTsKKyAgX3Rp bGVfZHBic3VkICgxLCAyLCAzKTsKKyAgX3RpbGVfZHBidXNkICgxLCAyLCAzKTsKKyAgX3RpbGVf ZHBidXVkICgxLCAyLCAzKTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L2FteGludDgtYXNtaW50ZWwtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvYW14aW50OC1hc21pbnRlbC0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjdlMWMxZDYzNTk0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2kzODYvYW14aW50OC1hc21pbnRlbC0yLmMKQEAgLTAsMCArMSw0IEBACisvKiB7IGRn LWRvIGFzc2VtYmxlIHsgdGFyZ2V0IHsgISBpYTMyIH0gfSB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMiAtbWFteC1pbnQ4IC1tYXNtPWludGVsIiB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0 aXZlLXRhcmdldCBhbXhfaW50OCB9ICovCisjaW5jbHVkZSJhbXhpbnQ4LWFzbWludGVsLTEuYyIK ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteHRpbGUtYXNtYXR0 LTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteHRpbGUtYXNtYXR0LTEuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTY1Nzg3MTk4MzMKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXh0aWxlLWFzbWF0 dC0xLmMKQEAgLTAsMCArMSwyNCBAQAorLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IHsgISBp YTMyIH0gfSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWFteC10aWxlICIgfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJsZHRpbGVjZmdcWyBcXHRdK1woXFteXClcblxd KlwpIiAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInN0dGlsZWNmZ1xb IFxcdF0rXChcW15cKVxuXF0qXCkiICB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciAidGlsZXJlbGVhc2UiICB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ciAidGlsZWxvYWRkXFsgXFx0XStcW15cblxdKlxcKCVcW2EtejAtOV0qXCwlXFthLXowLTlcXSpc LFxbMTI0XF1cXCkrXFteXG5cXSoldG1tXFswLTlcXSIgIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICJ0aWxlbG9hZGR0MVxbIFxcdF0rXFteXG5cXSpcXCglXFthLXowLTld KlwsJVxbYS16MC05XF0qXCxcWzEyNFxdXFwpK1xbXlxuXF0qJXRtbVxbMC05XF0iICB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidGlsZXN0b3JlZFxbIFxcdF0rXFteXG5c XSoldG1tXFswLTlcXStcW15cblxdKlxcKCVcW2EtejAtOV0qXCwlXFthLXowLTlcXSpcLFxbMTI0 XF1cXCkiICB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidGlsZXplcm9c WyBcXHRdK1xbXlxuXF0qJXRtbVxbMC05XF0iICB9IH0gKi8KKyNpbmNsdWRlIDxpbW1pbnRyaW4u aD4KKworZXh0ZXJuIGludCBhW107CitleHRlcm4gY29uc3Qgdm9pZCogYmFzZTsKK2V4dGVybiBj b25zdCBpbnQgc3RyaWRlOwordm9pZCBURVNUICgpCit7CisgIF90aWxlX2xvYWRjb25maWcgKGEp OworICBfdGlsZV9zdG9yZWNvbmZpZyAoYSk7CisgIF90aWxlX3JlbGVhc2UgKCk7CisgIF90aWxl X2xvYWRkICg1LCBiYXNlLCBzdHJpZGUpOworICBfdGlsZV9zdHJlYW1fbG9hZGQgKDQsIGJhc2Us IHN0cmlkZSk7CisgIF90aWxlX3N0b3JlZCAoMywgYmFzZSwgc3RyaWRlKTsKKyAgX3RpbGVfemVy byAoMik7Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXh0 aWxlLWFzbWF0dC0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXh0aWxlLWFz bWF0dC0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMwMGNkMGE4 ZmEyCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYW14 dGlsZS1hc21hdHQtMi5jCkBAIC0wLDAgKzEsNCBAQAorLyogeyBkZy1kbyBhc3NlbWJsZSB7IHRh cmdldCB7ICEgaWEzMiB9IH0gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLW1hbXgtdGlsZSIg fSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYW14X3RpbGUgfSAqLworI2lu Y2x1ZGUiYW14dGlsZS1hc21hdHQtMS5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2kzODYvYW14dGlsZS1hc21pbnRlbC0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9hbXh0aWxlLWFzbWludGVsLTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uODhlZjYxMmVkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9hbXh0aWxlLWFzbWludGVsLTEuYwpAQCAtMCwwICsxLDI0IEBACisv KiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgeyAhIGlhMzIgfSB9IH0gKi8KKy8qIHsgZGctb3B0 aW9ucyAiLU8yIC1tYW14LXRpbGUgLW1hc209aW50ZWwgIiB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXIgImxkdGlsZWNmZ1xbIFxcdF0iICB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlciAic3R0aWxlY2ZnXFsgXFx0XSIgIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJ0aWxlcmVsZWFzZSIgIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICJ0aWxlbG9hZGRcWyBcXHRdJXRtbVxbMC05XF0iICB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidGlsZWxvYWRkdDFcWyBcXHRdJXRtbVxbMC05 XF0iICB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidGlsZXN0b3JlZFxb IFxcdF1cW15cblxdK1xbXlxuXF0qJXRtbVxbMC05XF0iICB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlciAidGlsZXplcm9cWyBcXHRdK1xbXlxuXF0qJXRtbVxbMC05XF0iICB9 IH0gKi8KKyNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KKworZXh0ZXJuIGludCBhW107CitleHRlcm4g Y29uc3Qgdm9pZCogYmFzZTsKK2V4dGVybiBjb25zdCBpbnQgc3RyaWRlOwordm9pZCBURVNUICgp Cit7CisgIF90aWxlX2xvYWRjb25maWcgKGEpOworICBfdGlsZV9zdG9yZWNvbmZpZyAoYSk7Cisg IF90aWxlX3JlbGVhc2UgKCk7CisgIF90aWxlX2xvYWRkICg1LCBiYXNlLCBzdHJpZGUpOworICBf dGlsZV9zdHJlYW1fbG9hZGQgKDQsIGJhc2UsIHN0cmlkZSk7CisgIF90aWxlX3N0b3JlZCAoMywg YmFzZSwgc3RyaWRlKTsKKyAgX3RpbGVfemVybyAoMik7Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbXh0aWxlLWFzbWludGVsLTIuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L2FteHRpbGUtYXNtaW50ZWwtMi5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45OWRhNjNjMTE5ZQotLS0gL2Rldi9udWxsCisrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FteHRpbGUtYXNtaW50ZWwtMi5jCkBAIC0wLDAg KzEsNCBAQAorLyogeyBkZy1kbyBhc3NlbWJsZSB7IHRhcmdldCB7ICEgaWEzMiB9IH0gfSAqLwor LyogeyBkZy1vcHRpb25zICItTzIgLW1hbXgtdGlsZSAtbWFzbT1pbnRlbCIgfSAqLworLyogeyBk Zy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYW14X3RpbGUgfSAqLworI2luY2x1ZGUiYW14dGls ZS1hc21pbnRlbC0xLmMiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9mdW5jc3BlYy01Ni5pbmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9mdW5jc3Bl Yy01Ni5pbmMKaW5kZXggOTRmZmJiNjRjNzUuLjhlNjY5ZjEyMjE1IDEwMDY0NAotLS0gYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9mdW5jc3BlYy01Ni5pbmMKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvZnVuY3NwZWMtNTYuaW5jCkBAIC03MSw2ICs3MSw5IEBAIGV4 dGVybiB2b2lkIHRlc3RfdHN4bGR0cmsgKHZvaWQpCQlfX2F0dHJpYnV0ZV9fKChfX3RhcmdldF9f KCJ0c3hsZHRyayIpKSk7CiBleHRlcm4gdm9pZCB0ZXN0X2VucWNtZCAodm9pZCkJCQlfX2F0dHJp YnV0ZV9fKChfX3RhcmdldF9fKCJlbnFjbWQiKSkpOwogZXh0ZXJuIHZvaWQgdGVzdF9hdng1MTJi ZjE2ICh2b2lkKQkJX19hdHRyaWJ1dGVfXygoX190YXJnZXRfXygiYXZ4NTEyYmYxNiIpKSk7CiBl eHRlcm4gdm9pZCB0ZXN0X2F2eDUxMnZwMmludGVyc2VjdCAodm9pZCkJX19hdHRyaWJ1dGVfXygo X190YXJnZXRfXygiYXZ4NTEydnAyaW50ZXJzZWN0IikpKTsKK2V4dGVybiB2b2lkIHRlc3RfYW14 X3RpbGUgKHZvaWQpCQlfX2F0dHJpYnV0ZV9fKChfX3RhcmdldF9fKCJhbXgtdGlsZSIpKSk7Citl eHRlcm4gdm9pZCB0ZXN0X2FteF9pbnQ4ICh2b2lkKQkJX19hdHRyaWJ1dGVfXygoX190YXJnZXRf XygiYW14LWludDgiKSkpOworZXh0ZXJuIHZvaWQgdGVzdF9hbXhfYmYxNiAodm9pZCkJCV9fYXR0 cmlidXRlX18oKF9fdGFyZ2V0X18oImFteC1iZjE2IikpKTsKIAogZXh0ZXJuIHZvaWQgdGVzdF9u b19zZ3ggKHZvaWQpCQkJX19hdHRyaWJ1dGVfXygoX190YXJnZXRfXygibm8tc2d4IikpKTsKIGV4 dGVybiB2b2lkIHRlc3Rfbm9fYXZ4NTEyNGZtYXBzKHZvaWQpCQlfX2F0dHJpYnV0ZV9fKChfX3Rh cmdldF9fKCJuby1hdng1MTI0Zm1hcHMiKSkpOwpAQCAtMTQzLDYgKzE0Niw5IEBAIGV4dGVybiB2 b2lkIHRlc3Rfbm9fdHN4bGR0cmsgKHZvaWQpCQlfX2F0dHJpYnV0ZV9fKChfX3RhcmdldF9fKCJu by10c3hsZHRyayIpKSk7CiBleHRlcm4gdm9pZCB0ZXN0X25vX2VucWNtZCAodm9pZCkJCV9fYXR0 cmlidXRlX18oKF9fdGFyZ2V0X18oIm5vLWVucWNtZCIpKSk7CiBleHRlcm4gdm9pZCB0ZXN0X25v X2F2eDUxMmJmMTYgKHZvaWQpCQlfX2F0dHJpYnV0ZV9fKChfX3RhcmdldF9fKCJuby1hdng1MTJi ZjE2IikpKTsKIGV4dGVybiB2b2lkIHRlc3Rfbm9fYXZ4NTEydnAyaW50ZXJzZWN0ICh2b2lkKQlf X2F0dHJpYnV0ZV9fKChfX3RhcmdldF9fKCJuby1hdng1MTJ2cDJpbnRlcnNlY3QiKSkpOworZXh0 ZXJuIHZvaWQgdGVzdF9ub19hbXhfdGlsZSAodm9pZCkJCV9fYXR0cmlidXRlX18oKF9fdGFyZ2V0 X18oIm5vLWFteC10aWxlIikpKTsKK2V4dGVybiB2b2lkIHRlc3Rfbm9fYW14X2ludDggKHZvaWQp CQlfX2F0dHJpYnV0ZV9fKChfX3RhcmdldF9fKCJuby1hbXgtaW50OCIpKSk7CitleHRlcm4gdm9p ZCB0ZXN0X25vX2FteF9iZjE2ICh2b2lkKQkJX19hdHRyaWJ1dGVfXygoX190YXJnZXRfXygibm8t YW14LWJmMTYiKSkpOwogCiBleHRlcm4gdm9pZCB0ZXN0X2FyY2hfbm9jb25hICh2b2lkKQkJX19h dHRyaWJ1dGVfXygoX190YXJnZXRfXygiYXJjaD1ub2NvbmEiKSkpOwogZXh0ZXJuIHZvaWQgdGVz dF9hcmNoX2NvcmUyICh2b2lkKQkJX19hdHRyaWJ1dGVfXygoX190YXJnZXRfXygiYXJjaD1jb3Jl MiIpKSk7CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTIu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xMi5jCmluZGV4IGIxNjkwZDcy MDRmLi42MTE0NmIyYjMwYSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvc3NlLTEyLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEyLmMK QEAgLTMsNyArMyw3IEBACiAgICBwb3BjbnRpbnRyaW4uaCBnZm5paW50cmluLmggYW5kIG1tX21h bGxvYy5oIGFyZSB1c2FibGUKICAgIHdpdGggLU8gLXN0ZD1jODkgLXBlZGFudGljLWVycm9ycy4g ICovCiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLyogeyBkZy1vcHRpb25zICItTyAtc3RkPWM4 OSAtcGVkYW50aWMtZXJyb3JzIC1tYXJjaD1rOCAtbXNzZTRhIC1tM2Rub3cgLW1hdnggLW1hdngy IC1tZm1hNCAtbXhvcCAtbWFlcyAtbXBjbG11bCAtbXBvcGNudCAtbWFibSAtbWx6Y250IC1tYm1p IC1tYm1pMiAtbXRibSAtbWx3cCAtbWZzZ3NiYXNlIC1tcmRybmQgLW1mMTZjIC1tZm1hIC1tcnRt IC1tcmRzZWVkIC1tcHJmY2h3IC1tYWR4IC1tZnhzciAtbXhzYXZlb3B0IC1tYXZ4NTEyZiAtbWF2 eDUxMmVyIC1tYXZ4NTEyY2QgLW1hdng1MTJwZiAtbXNoYSAtbXByZWZldGNod3QxIC1teHNhdmVj IC1teHNhdmVzIC1tY2xmbHVzaG9wdCAtbWF2eDUxMmJ3IC1tYXZ4NTEyZHEgLW1hdng1MTJ2bCAt bWF2eDUxMnZibWkgLW1hdng1MTJ2Ym1pMiAtbWF2eDUxMmlmbWEgLW1hdng1MTI0Zm1hcHMgLW1h dng1MTI0dm5uaXcgLW1hdng1MTJ2cG9wY250ZHEgLW1jbHdiIC1tbXdhaXR4IC1tY2x6ZXJvIC1t cGt1IC1tc2d4IC1tcmRwaWQgLW1nZm5pIC1tYXZ4NTEyYml0YWxnIC1tcGNvbmZpZyAtbXdibm9p bnZkIC1tYXZ4NTEyYmYxNiAtbWVucWNtZCAtbWF2eDUxMnZwMmludGVyc2VjdCAtbXNlcmlhbGl6 ZSAtbXRzeGxkdHJrIiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PIC1zdGQ9Yzg5IC1wZWRhbnRp Yy1lcnJvcnMgLW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAtbWF2eCAtbWF2eDIgLW1mbWE0IC1t eG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1tYWJtIC1tbHpjbnQgLW1ibWkgLW1ibWkyIC1t dGJtIC1tbHdwIC1tZnNnc2Jhc2UgLW1yZHJuZCAtbWYxNmMgLW1mbWEgLW1ydG0gLW1yZHNlZWQg LW1wcmZjaHcgLW1hZHggLW1meHNyIC1teHNhdmVvcHQgLW1hdng1MTJmIC1tYXZ4NTEyZXIgLW1h dng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3dDEgLW14c2F2ZWMgLW14c2F2ZXMg LW1jbGZsdXNob3B0IC1tYXZ4NTEyYncgLW1hdng1MTJkcSAtbWF2eDUxMnZsIC1tYXZ4NTEydmJt aSAtbWF2eDUxMnZibWkyIC1tYXZ4NTEyaWZtYSAtbWF2eDUxMjRmbWFwcyAtbWF2eDUxMjR2bm5p dyAtbWF2eDUxMnZwb3BjbnRkcSAtbWNsd2IgLW1td2FpdHggLW1jbHplcm8gLW1wa3UgLW1zZ3gg LW1yZHBpZCAtbWdmbmkgLW1hdng1MTJiaXRhbGcgLW1wY29uZmlnIC1td2Jub2ludmQgLW1hdng1 MTJiZjE2IC1tZW5xY21kIC1tYXZ4NTEydnAyaW50ZXJzZWN0IC1tc2VyaWFsaXplIC1tdHN4bGR0 cmsgLW1hbXgtdGlsZSAtbWFteC1pbnQ4IC1tYW14LWJmMTYiIH0gKi8KIAogI2luY2x1ZGUgPHg4 NmludHJpbi5oPgogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9z c2UtMTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xMy5jCmluZGV4IDNh NjQwNDcwN2M0Li40ZDZjOWIzYTE3YSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvc3NlLTEzLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3Nl LTEzLmMKQEAgLTEsNSArMSw1IEBACiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLyogeyBkZy1v cHRpb25zICItTzIgLVdlcnJvci1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtbWFyY2g9 azggLW1zc2U0YSAtbTNkbm93IC1tYXZ4IC1tYXZ4MiAtbWZtYTQgLW14b3AgLW1hZXMgLW1wY2xt dWwgLW1wb3BjbnQgLW1hYm0gLW1semNudCAtbWJtaSAtbWJtaTIgLW10Ym0gLW1sd3AgLW1mc2dz YmFzZSAtbXJkcm5kIC1tZjE2YyAtbWZtYSAtbXJ0bSAtbXJkc2VlZCAtbXByZmNodyAtbWFkeCAt bWZ4c3IgLW14c2F2ZW9wdCAtbWF2eDUxMmYgLW1hdng1MTJlciAtbWF2eDUxMmNkIC1tYXZ4NTEy cGYgLW1zaGEgLW1wcmVmZXRjaHd0MSAtbXhzYXZlYyAtbXhzYXZlcyAtbWNsZmx1c2hvcHQgLW1h dng1MTJ2bCAtbWF2eDUxMmRxIC1tYXZ4NTEyYncgLW1hdng1MTJ2Ym1pIC1tYXZ4NTEydmJtaTIg LW1hdng1MTJpZm1hIC1tYXZ4NTEyNGZtYXBzIC1tYXZ4NTEyNHZubml3IC1tYXZ4NTEydnBvcGNu dGRxIC1tYXZ4NTEydnAyaW50ZXJzZWN0IC1tY2x3YiAtbW13YWl0eCAtbWNsemVybyAtbXBrdSAt bXNneCAtbXJkcGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFsZyAtbXBjb25maWcgLW13Ym5vaW52ZCAt bWF2eDUxMmJmMTYgLW1lbnFjbWQgLW1zZXJpYWxpemUgLW10c3hsZHRyayIgfSAqLworLyogeyBk Zy1vcHRpb25zICItTzIgLVdlcnJvci1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtbWFy Y2g9azggLW1zc2U0YSAtbTNkbm93IC1tYXZ4IC1tYXZ4MiAtbWZtYTQgLW14b3AgLW1hZXMgLW1w Y2xtdWwgLW1wb3BjbnQgLW1hYm0gLW1semNudCAtbWJtaSAtbWJtaTIgLW10Ym0gLW1sd3AgLW1m c2dzYmFzZSAtbXJkcm5kIC1tZjE2YyAtbWZtYSAtbXJ0bSAtbXJkc2VlZCAtbXByZmNodyAtbWFk eCAtbWZ4c3IgLW14c2F2ZW9wdCAtbWF2eDUxMmYgLW1hdng1MTJlciAtbWF2eDUxMmNkIC1tYXZ4 NTEycGYgLW1zaGEgLW1wcmVmZXRjaHd0MSAtbXhzYXZlYyAtbXhzYXZlcyAtbWNsZmx1c2hvcHQg LW1hdng1MTJ2bCAtbWF2eDUxMmRxIC1tYXZ4NTEyYncgLW1hdng1MTJ2Ym1pIC1tYXZ4NTEydmJt aTIgLW1hdng1MTJpZm1hIC1tYXZ4NTEyNGZtYXBzIC1tYXZ4NTEyNHZubml3IC1tYXZ4NTEydnBv cGNudGRxIC1tYXZ4NTEydnAyaW50ZXJzZWN0IC1tY2x3YiAtbW13YWl0eCAtbWNsemVybyAtbXBr dSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFsZyAtbXBjb25maWcgLW13Ym5vaW52 ZCAtbWF2eDUxMmJmMTYgLW1lbnFjbWQgLW1zZXJpYWxpemUgLW10c3hsZHRyayAtbWFteC10aWxl IC1tYW14LWludDggLW1hbXgtYmYxNiIgfSAqLwogLyogeyBkZy1hZGQtb3B0aW9ucyBiaW5kX3Bp Y19sb2NhbGx5IH0gKi8KIAogI2luY2x1ZGUgPG1tX21hbGxvYy5oPgpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTE0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9zc2UtMTQuYwppbmRleCBlZGFhMmFhOGFkNC4uODM3YjUxYzUzZTYgMTAwNjQ0 Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xNC5jCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xNC5jCkBAIC0xLDUgKzEsNSBAQAogLyogeyBk Zy1kbyBjb21waWxlIH0gKi8KLS8qIHsgZGctb3B0aW9ucyAiLU8wIC1XZXJyb3ItaW1wbGljaXQt ZnVuY3Rpb24tZGVjbGFyYXRpb24gLW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAtbWF2eCAtbWF2 eDIgLW1mbWE0IC1teG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1tYWJtIC1tbHpjbnQgLW1i bWkgLW1ibWkyIC1tdGJtIC1tbHdwIC1tZnNnc2Jhc2UgLW1yZHJuZCAtbWYxNmMgLW1mbWEgLW1y dG0gLW1yZHNlZWQgLW1wcmZjaHcgLW1hZHggLW1meHNyIC1teHNhdmVvcHQgLW1hdng1MTJmIC1t YXZ4NTEyZXIgLW1hdng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3dDEgLW14c2F2 ZWMgLW14c2F2ZXMgLW1jbGZsdXNob3B0IC1tYXZ4NTEyZHEgLW1hdng1MTJidyAtbWF2eDUxMnZs IC1tYXZ4NTEyaWZtYSAtbWF2eDUxMnZibWkgLW1hdng1MTJ2Ym1pMiAtbWF2eDUxMjRmbWFwcyAt bWF2eDUxMjR2bm5pdyAtbWF2eDUxMnZwb3BjbnRkcSAtbWNsd2IgLW1td2FpdHggLW1jbHplcm8g LW1wa3UgLW1zZ3ggLW1yZHBpZCAtbWdmbmkgLW1wY29uZmlnIC1td2Jub2ludmQgLW1hdng1MTJ2 bCAtbWF2eDUxMmJmMTYgLW1lbnFjbWQgLW1hdng1MTJ2cDJpbnRlcnNlY3QgLW1zZXJpYWxpemUg LW10c3hsZHRyayIgfSAqLworLyogeyBkZy1vcHRpb25zICItTzAgLVdlcnJvci1pbXBsaWNpdC1m dW5jdGlvbi1kZWNsYXJhdGlvbiAtbWFyY2g9azggLW1zc2U0YSAtbTNkbm93IC1tYXZ4IC1tYXZ4 MiAtbWZtYTQgLW14b3AgLW1hZXMgLW1wY2xtdWwgLW1wb3BjbnQgLW1hYm0gLW1semNudCAtbWJt aSAtbWJtaTIgLW10Ym0gLW1sd3AgLW1mc2dzYmFzZSAtbXJkcm5kIC1tZjE2YyAtbWZtYSAtbXJ0 bSAtbXJkc2VlZCAtbXByZmNodyAtbWFkeCAtbWZ4c3IgLW14c2F2ZW9wdCAtbWF2eDUxMmYgLW1h dng1MTJlciAtbWF2eDUxMmNkIC1tYXZ4NTEycGYgLW1zaGEgLW1wcmVmZXRjaHd0MSAtbXhzYXZl YyAtbXhzYXZlcyAtbWNsZmx1c2hvcHQgLW1hdng1MTJkcSAtbWF2eDUxMmJ3IC1tYXZ4NTEydmwg LW1hdng1MTJpZm1hIC1tYXZ4NTEydmJtaSAtbWF2eDUxMnZibWkyIC1tYXZ4NTEyNGZtYXBzIC1t YXZ4NTEyNHZubml3IC1tYXZ4NTEydnBvcGNudGRxIC1tY2x3YiAtbW13YWl0eCAtbWNsemVybyAt bXBrdSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAtbXBjb25maWcgLW13Ym5vaW52ZCAtbWF2eDUxMnZs IC1tYXZ4NTEyYmYxNiAtbWVucWNtZCAtbWF2eDUxMnZwMmludGVyc2VjdCAtbXNlcmlhbGl6ZSAt bXRzeGxkdHJrIC1tYW14LXRpbGUgLW1hbXgtaW50OCAtbWFteC1iZjE2IiB9ICovCiAvKiB7IGRn LWFkZC1vcHRpb25zIGJpbmRfcGljX2xvY2FsbHkgfSAqLwogCiAjaW5jbHVkZSA8bW1fbWFsbG9j Lmg+CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMjIuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0yMi5jCmluZGV4IDczNjRiMmZmMzM3 Li5mYzc1NjY5ZjQxYiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv c3NlLTIyLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTIyLmMKQEAg LTExLDYgKzExLDcgQEAKICAgIHRibWludHJpbi5oLCBsd3BpbnRyaW4uaCwgcG9wY250aW50cmlu LmgsIGZtYWludHJpbi5oLCB0c3hsZHRya2ludHJpbi5oLAogICAgYXZ4NTEyNGZtYXBzaW50cmlu LmgsIGF2eDUxMjR2bm5pd2ludHJpbi5oLCBhdng1MTJ2cG9wY250ZHFpbnRyaW4uaCwKICAgIGF2 eDUxMmJpdGFsZ2ludHJpbi5oLCBhdng1MTJ2cDJpbnRlcnNlY3RpbnRyaW4uaCwKKyAgIGFteHRp bGVpbnRyaW4uaCwgYW14aW50OGludHJpbi5oLCBhbXhiZjE2aW50cmluLmgsCiAgICBhdng1MTJ2 cDJpbnRlcnNlY3R2bGludHJpbi5oIGFuZCBtbV9tYWxsb2MuaCB0aGF0IHJlZmVyZW5jZSB0aGUg cHJvcGVyCiAgICBidWlsdGluIGZ1bmN0aW9ucy4KICAgIERlZmluaW5nIGF3YXkgImV4dGVybiIg YW5kICJfX2lubGluZSIgcmVzdWx0cyBpbiBhbGwgb2YgdGhlbSBiZWluZwpAQCAtMTAyLDcgKzEw Myw3IEBACiAKIAogI2lmbmRlZiBESUZGRVJFTlRfUFJBR01BUwotI3ByYWdtYSBHQ0MgdGFyZ2V0 ICgic3NlNGEsM2Rub3csYXZ4LGF2eDIsZm1hNCx4b3AsYWVzLHBjbG11bCxwb3BjbnQsYWJtLGx6 Y250LGJtaSxibWkyLHRibSxsd3AsZnNnc2Jhc2UscmRybmQsZjE2YyxydG0scmRzZWVkLHByZmNo dyxhZHgsZnhzcix4c2F2ZW9wdCxhdng1MTJmLGF2eDUxMmVyLGF2eDUxMmNkLGF2eDUxMnBmLHNo YSxwcmVmZXRjaHd0MSxhdng1MTJ2bCxhdng1MTJidyxhdng1MTJkcSxhdng1MTJ2Ym1pLGF2eDUx MnZibWkyLGF2eDUxMmlmbWEsYXZ4NTEyNGZtYXBzLGF2eDUxMjR2bm5pdyxhdng1MTJ2cG9wY250 ZHEsZ2ZuaSxhdng1MTJiaXRhbGcsYXZ4NTEyYmYxNixhdng1MTJ2cDJpbnRlcnNlY3Qsc2VyaWFs aXplLHRzeGxkdHJrIikKKyNwcmFnbWEgR0NDIHRhcmdldCAoInNzZTRhLDNkbm93LGF2eCxhdngy LGZtYTQseG9wLGFlcyxwY2xtdWwscG9wY250LGFibSxsemNudCxibWksYm1pMix0Ym0sbHdwLGZz Z3NiYXNlLHJkcm5kLGYxNmMscnRtLHJkc2VlZCxwcmZjaHcsYWR4LGZ4c3IseHNhdmVvcHQsYXZ4 NTEyZixhdng1MTJlcixhdng1MTJjZCxhdng1MTJwZixzaGEscHJlZmV0Y2h3dDEsYXZ4NTEydmws YXZ4NTEyYncsYXZ4NTEyZHEsYXZ4NTEydmJtaSxhdng1MTJ2Ym1pMixhdng1MTJpZm1hLGF2eDUx MjRmbWFwcyxhdng1MTI0dm5uaXcsYXZ4NTEydnBvcGNudGRxLGdmbmksYXZ4NTEyYml0YWxnLGF2 eDUxMmJmMTYsYXZ4NTEydnAyaW50ZXJzZWN0LHNlcmlhbGl6ZSx0c3hsZHRyayxhbXgtdGlsZSxh bXgtaW50OCxhbXgtYmYxNiIpCiAjZW5kaWYKIAogLyogRm9sbG93aW5nIGludHJpbnNpY3MgcmVx dWlyZSBpbW1lZGlhdGUgYXJndW1lbnRzLiAgVGhleQpAQCAtMjE5LDcgKzIyMCw3IEBAIHRlc3Rf NCAoX21tX2NtcGVzdHJ6LCBpbnQsIF9fbTEyOGksIGludCwgX19tMTI4aSwgaW50LCAxKQogCiAv KiBpbW1pbnRyaW4uaCAoQVZYL0FWWDIvUkRSTkQvRlNHU0JBU0UvRjE2Qy9SVE0vQVZYNTEyRi9T SEEpICovCiAjaWZkZWYgRElGRkVSRU5UX1BSQUdNQVMKLSNwcmFnbWEgR0NDIHRhcmdldCAoImF2 eCxhdngyLHJkcm5kLGZzZ3NiYXNlLGYxNmMscnRtLGF2eDUxMmYsYXZ4NTEyZXIsYXZ4NTEyY2Qs YXZ4NTEycGYsc2hhLGF2eDUxMnZsLGF2eDUxMmJ3LGF2eDUxMmRxLGF2eDUxMmlmbWEsYXZ4NTEy dmJtaSxhdng1MTJ2Ym1pMixhdng1MTI0Zm1hcHMsYXZ4NTEyNHZubml3LGF2eDUxMnZwb3BjbnRk cSxnZm5pLGF2eDUxMmJpdGFsZyxhdng1MTJiZjE2LGF2eDUxMnZwMmludGVyc2VjdCxzZXJpYWxp emUsdHN4bGR0cmsiKQorI3ByYWdtYSBHQ0MgdGFyZ2V0ICgiYXZ4LGF2eDIscmRybmQsZnNnc2Jh c2UsZjE2YyxydG0sYXZ4NTEyZixhdng1MTJlcixhdng1MTJjZCxhdng1MTJwZixzaGEsYXZ4NTEy dmwsYXZ4NTEyYncsYXZ4NTEyZHEsYXZ4NTEyaWZtYSxhdng1MTJ2Ym1pLGF2eDUxMnZibWkyLGF2 eDUxMjRmbWFwcyxhdng1MTI0dm5uaXcsYXZ4NTEydnBvcGNudGRxLGdmbmksYXZ4NTEyYml0YWxn LGF2eDUxMmJmMTYsYXZ4NTEydnAyaW50ZXJzZWN0LHNlcmlhbGl6ZSx0c3hsZHRyayxhbXgtdGls ZSxhbXgtaW50OCxhbXgtYmYxNiIpCiAjZW5kaWYKICNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KIHRl c3RfMSAoX2N2dHNzX3NoLCB1bnNpZ25lZCBzaG9ydCwgZmxvYXQsIDEpCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMjMuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L3NzZS0yMy5jCmluZGV4IGVhYWRlYmVmMTg3Li45Y2E3YzVkOTE5ZCAxMDA2 NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTIzLmMKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTIzLmMKQEAgLTEwLDYgKzEwLDcgQEAKICAg IHRibWludHJpbi5oLCBsd3BpbnRyaW4uaCwgcG9wY250aW50cmluLmgsIGZtYWludHJpbi5oLCB0 c3h0cmtpbnRyaW4uaCwKICAgIGF2eDUxMjRmbWFwc2ludHJpbi5oLCBhdng1MTI0dm5uaXdpbnRy aW4uaCwgYXZ4NTEydnBvcGNudGRxaW50cmluLmgsCiAgICBhdng1MTJiaXRhbGdpbnRyaW4uaCwg YXZ4NTEydnAyaW50ZXJzZWN0aW50cmluLmgsCisgICBhbXh0aWxlaW50cmluLmgsIGFteGludDhp bnRyaW4uaCwgYW14YmYxNmludHJpbi5oLAogICAgYXZ4NTEydnAyaW50ZXJzZWN0dmxpbnRyaW4u aCBhbmQgbW1fbWFsbG9jLmggdGhhdCByZWZlcmVuY2UgdGhlIHByb3BlcgogICAgYnVpbHRpbiBm dW5jdGlvbnMuCiAgICBEZWZpbmluZyBhd2F5ICJleHRlcm4iIGFuZCAiX19pbmxpbmUiIHJlc3Vs dHMgaW4gYWxsIG9mIHRoZW0gYmVpbmcKQEAgLTY5Nyw2ICs2OTgsNiBAQAogI2RlZmluZSBfX2J1 aWx0aW5faWEzMl92cGNsbXVscWRxX3YyZGkoQSwgQiwgQykgIF9fYnVpbHRpbl9pYTMyX3ZwY2xt dWxxZHFfdjJkaShBLCBCLCAxKSAKICNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBjbG11bHFkcV92 OGRpKEEsIEIsIEMpICBfX2J1aWx0aW5faWEzMl92cGNsbXVscWRxX3Y4ZGkoQSwgQiwgMSkgCiAK LSNwcmFnbWEgR0NDIHRhcmdldCAoInNzZTRhLDNkbm93LGF2eCxhdngyLGZtYTQseG9wLGFlcyxw Y2xtdWwscG9wY250LGFibSxsemNudCxibWksYm1pMix0Ym0sbHdwLGZzZ3NiYXNlLHJkcm5kLGYx NmMsZm1hLHJ0bSxyZHNlZWQscHJmY2h3LGFkeCxmeHNyLHhzYXZlb3B0LGF2eDUxMmYsYXZ4NTEy ZXIsYXZ4NTEyY2QsYXZ4NTEycGYsc2hhLHByZWZldGNod3QxLHhzYXZlYyx4c2F2ZXMsY2xmbHVz aG9wdCxhdng1MTJidyxhdng1MTJkcSxhdng1MTJ2bCxhdng1MTJ2Ym1pLGF2eDUxMmlmbWEsYXZ4 NTEyNGZtYXBzLGF2eDUxMjR2bm5pdyxhdng1MTJ2cG9wY250ZHEsY2x3Yixtd2FpdHgsY2x6ZXJv LHBrdSxzZ3gscmRwaWQsZ2ZuaSxhdng1MTJ2Ym1pMix2cGNsbXVscWRxLGF2eDUxMmJpdGFsZyxw Y29uZmlnLHdibm9pbnZkLGF2eDUxMmJmMTYsZW5xY21kLGF2eDUxMnZwMmludGVyc2VjdCxzZXJp YWxpemUsdHN4bGR0cmsiKQorI3ByYWdtYSBHQ0MgdGFyZ2V0ICgic3NlNGEsM2Rub3csYXZ4LGF2 eDIsZm1hNCx4b3AsYWVzLHBjbG11bCxwb3BjbnQsYWJtLGx6Y250LGJtaSxibWkyLHRibSxsd3As ZnNnc2Jhc2UscmRybmQsZjE2YyxmbWEscnRtLHJkc2VlZCxwcmZjaHcsYWR4LGZ4c3IseHNhdmVv cHQsYXZ4NTEyZixhdng1MTJlcixhdng1MTJjZCxhdng1MTJwZixzaGEscHJlZmV0Y2h3dDEseHNh dmVjLHhzYXZlcyxjbGZsdXNob3B0LGF2eDUxMmJ3LGF2eDUxMmRxLGF2eDUxMnZsLGF2eDUxMnZi bWksYXZ4NTEyaWZtYSxhdng1MTI0Zm1hcHMsYXZ4NTEyNHZubml3LGF2eDUxMnZwb3BjbnRkcSxj bHdiLG13YWl0eCxjbHplcm8scGt1LHNneCxyZHBpZCxnZm5pLGF2eDUxMnZibWkyLHZwY2xtdWxx ZHEsYXZ4NTEyYml0YWxnLHBjb25maWcsd2Jub2ludmQsYXZ4NTEyYmYxNixlbnFjbWQsYXZ4NTEy dnAyaW50ZXJzZWN0LHNlcmlhbGl6ZSx0c3hsZHRyayxhbXgtdGlsZSxhbXgtaW50OCxhbXgtYmYx NiIpCiAKICNpbmNsdWRlIDx4ODZpbnRyaW4uaD4KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv bGliL3RhcmdldC1zdXBwb3J0cy5leHAgYi9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9y dHMuZXhwCmluZGV4IGUxMDYyNzg2MzFmLi5jNmIyYzU2YTUxZCAxMDA2NDQKLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorKysgYi9nY2MvdGVzdHN1aXRlL2xpYi90 YXJnZXQtc3VwcG9ydHMuZXhwCkBAIC04OTc2LDYgKzg5NzYsMzkgQEAgcHJvYyBjaGVja19lZmZl Y3RpdmVfdGFyZ2V0X2F2eDUxMnZhZXMgeyB9IHsKICAgICB9ICItbXZhZXMiIF0KIH0KIAorIyBS ZXR1cm4gMSBpZiBhbXgtdGlsZSBpbnN0cnVjdGlvbnMgY2FuIGJlIGNvbXBpbGVkLgorcHJvYyBj aGVja19lZmZlY3RpdmVfdGFyZ2V0X2FteF90aWxlIHsgfSB7CisgICAgcmV0dXJuIFtjaGVja19u b19jb21waWxlcl9tZXNzYWdlcyBhbXhfdGlsZSBvYmplY3QgeworCXZvaWQKKwlmb28gKCkKKwl7 CisJICAgIF9fYXNtX18gdm9sYXRpbGUgKCJ0aWxlcmVsZWFzZSIgOjopOworCX0KKyAgICB9ICIt bWFteC10aWxlIiBdCit9CisKKyMgUmV0dXJuIDEgaWYgYW14LWludDggaW5zdHJ1Y3Rpb25zIGNh biBiZSBjb21waWxlZC4KK3Byb2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9hbXhfaW50OCB7IH0g eworICAgIHJldHVybiBbY2hlY2tfbm9fY29tcGlsZXJfbWVzc2FnZXMgYW14X2ludDggb2JqZWN0 IHsKKwl2b2lkCisJZm9vICgpCisJeworCSAgICBfX2FzbV9fIHZvbGF0aWxlICgidGRwYnNzZFx0 JSV0bW0xLCAlJXRtbTIsICUldG1tMyIgOjopOworCX0KKyAgICB9ICItbWFteC1pbnQ4IiBdCit9 CisKKyMgUmV0dXJuIDEgaWYgYW14LWJmMTYgaW5zdHJ1Y3Rpb25zIGNhbiBiZSBjb21waWxlZC4K K3Byb2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9hbXhfYmYxNiB7IH0geworICAgIHJldHVybiBb Y2hlY2tfbm9fY29tcGlsZXJfbWVzc2FnZXMgYW14X2JmMTYgb2JqZWN0IHsKKwl2b2lkCisJZm9v ICgpCisJeworCSAgICBfX2FzbV9fIHZvbGF0aWxlICgidGRwYmYxNnBzXHQlJXRtbTEsICUldG1t MiwgJSV0bW0zIiA6Oik7CisJfQorICAgIH0gIi1tYW14LWJmMTYiIF0KK30KKwogIyBSZXR1cm4g MSBpZiB2cGNsbXVscWRxIGluc3RydWN0aW9ucyBjYW4gYmUgY29tcGlsZWQuCiBwcm9jIGNoZWNr X2VmZmVjdGl2ZV90YXJnZXRfdnBjbG11bHFkcSB7IH0gewogICAgIHJldHVybiBbY2hlY2tfbm9f Y29tcGlsZXJfbWVzc2FnZXMgdnBjbG11bHFkcSBvYmplY3QgewotLSAKMi4yNi4yCgo= --000000000000036f8405ae6a4409--