From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Akib Azmain Turja via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#59793: 29.0.60; subr.elc is not compiled correctly Date: Sat, 03 Dec 2022 23:50:18 +0600 Message-ID: <87pmd0peat.fsf@disroot.org> References: <87lenpne48.fsf@163.com> <83cz90erqg.fsf@gnu.org> <87359wr08z.fsf@disroot.org> <0D6CA055-C9DD-425D-9D0B-03B555227E72@gnu.org> <87tu2cped9.fsf@disroot.org> Reply-To: Akib Azmain Turja Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32701"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Feng Shu , 59793@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Dec 03 18:52:32 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p1Wgg-0008C6-H0 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 03 Dec 2022 18:52:31 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p1WgG-0004is-S0; Sat, 03 Dec 2022 12:52:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p1WgE-0004hA-Ss for bug-gnu-emacs@gnu.org; Sat, 03 Dec 2022 12:52:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p1WgE-0002lB-K6 for bug-gnu-emacs@gnu.org; Sat, 03 Dec 2022 12:52:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p1WgE-0005eJ-EQ for bug-gnu-emacs@gnu.org; Sat, 03 Dec 2022 12:52:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Akib Azmain Turja Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 03 Dec 2022 17:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59793 X-GNU-PR-Package: emacs Original-Received: via spool by 59793-submit@debbugs.gnu.org id=B59793.167008991621702 (code B ref 59793); Sat, 03 Dec 2022 17:52:02 +0000 Original-Received: (at 59793) by debbugs.gnu.org; 3 Dec 2022 17:51:56 +0000 Original-Received: from localhost ([127.0.0.1]:52480 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1Wg8-0005dy-LV for submit@debbugs.gnu.org; Sat, 03 Dec 2022 12:51:56 -0500 Original-Received: from knopi.disroot.org ([178.21.23.139]:55022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1Wg7-0005ds-4I for 59793@debbugs.gnu.org; Sat, 03 Dec 2022 12:51:55 -0500 Original-Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 632F14134C; Sat, 3 Dec 2022 18:51:54 +0100 (CET) X-Virus-Scanned: SPAM Filter at disroot.org Original-Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ssTRfl32-ft5; Sat, 3 Dec 2022 18:51:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1670089912; bh=O3WYTRMzGyO5t1SuyGK8g5DwLSRSZNNCjkl8GWHGkcs=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=IUvUOAZy3rAQH1bVq6j9NCiepSf06K+5ix2ar0iV+LJeBLZph9m23rg4so/7U2AwS fcHS8NZhOnj3Tvr59bOkDFqJwkh+U10au0xoryl5cXRrvEoa3pSFhq6G94/DdxOf5m JZaHKUgBgPzbr29oVU+rk5DGiwdPb16lTht8oW/8ZiLimFdGq4lDuMgbzUvJ2Z1fdm Lf64RyJIchjzH3clzyOH1Znf8yodd+IBXWSfTseDO1USBji+jZ04VSS+YgpqzkILF0 YcQC7YJgRTAW/msEnEPVBG8worlntGdGwntZ1S10JoFQkesjDmlVlotvcyG+g4BNxa wURjwpTT23w7Q== In-Reply-To: <87tu2cped9.fsf@disroot.org> (Akib Azmain Turja's message of "Sat, 03 Dec 2022 23:48:50 +0600") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:249857 Archived-At: --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Akib Azmain Turja writes: [...] > I mean, the subr.elc attached in the original file. I'm also attaching > the subr.elc I got from Feng Shu on Codeberg. [...] Ah, I forgot. Now attaching. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=#9-subr.elc Content-Transfer-Encoding: base64 Content-Description: subr.elc O0VMQx0AAAAKOzs7IENvbXBpbGVkCjs7OyBpbiBFbWFjcyB2ZXJzaW9uIDMwLjAuNTAKOzs7IHdp dGggYWxsIG9wdGltaXphdGlvbnMuCgoKI0AxMzgzIFRlbGwgdGhlIGJ5dGUtY29tcGlsZXIgdGhh dCBmdW5jdGlvbiBGTiBpcyBkZWZpbmVkLCBpbiBGSUxFLgpUaGUgRklMRSBhcmd1bWVudCBpcyBu b3QgdXNlZCBieSB0aGUgYnl0ZS1jb21waWxlciwgYnV0IGJ5IHRoZQpgY2hlY2stZGVjbGFyZScg cGFja2FnZSwgd2hpY2ggY2hlY2tzIHRoYXQgRklMRSBjb250YWlucyBhCmRlZmluaXRpb24gZm9y IEZOLiAgKEZJTEUgY2FuIGJlIG5pbCwgYW5kIHRoYXQgZGlzYWJsZXMgdGhpcwpjaGVjay4pCgpG SUxFIGNhbiBiZSBlaXRoZXIgYSBMaXNwIGZpbGUgKGluIHdoaWNoIGNhc2UgdGhlICIuZWwiCmV4 dGVuc2lvbiBpcyBvcHRpb25hbCksIG9yIGEgQyBmaWxlLiAgQyBmaWxlcyBhcmUgZXhwYW5kZWQK cmVsYXRpdmUgdG8gdGhlIEVtYWNzICJzcmMvIiBkaXJlY3RvcnkuICBMaXNwIGZpbGVzIGFyZQpz ZWFyY2hlZCBmb3IgdXNpbmcgYGxvY2F0ZS1saWJyYXJ5JywgYW5kIGlmIHRoYXQgZmFpbHMgdGhl eSBhcmUKZXhwYW5kZWQgcmVsYXRpdmUgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBmaWxlIGNvbnRh aW5pbmcgdGhlCmRlY2xhcmF0aW9uLiAgQSBGSUxFIHdpdGggYW4gImV4dDoiIHByZWZpeCBpcyBh biBleHRlcm5hbCBmaWxlLgpgY2hlY2stZGVjbGFyZScgd2lsbCBjaGVjayBzdWNoIGZpbGVzIGlm IHRoZXkgYXJlIGZvdW5kLCBhbmQgc2tpcAp0aGVtIHdpdGhvdXQgZXJyb3IgaWYgdGhleSBhcmUg bm90LgoKT3B0aW9uYWwgQVJHTElTVCBzcGVjaWZpZXMgRk4ncyBhcmd1bWVudHMsIG9yIGlzIHQg dG8gbm90IHNwZWNpZnkKRk4ncyBhcmd1bWVudHMuICBBbiBvbWl0dGVkIEFSR0xJU1QgZGVmYXVs dHMgdG8gdCwgbm90IG5pbDogYSBuaWwKQVJHTElTVCBzcGVjaWZpZXMgYW4gZW1wdHkgYXJndW1l bnQgbGlzdCwgYW5kIGFuIGV4cGxpY2l0IHQKQVJHTElTVCBpcyBhIHBsYWNlaG9sZGVyIHRoYXQg YWxsb3dzIHN1cHBseWluZyBhIGxhdGVyIGFyZy4KCk9wdGlvbmFsIEZJTEVPTkxZIG5vbi1uaWwg bWVhbnMgdGhhdCBgY2hlY2stZGVjbGFyZScgd2lsbCBjaGVjawpvbmx5IHRoYXQgRklMRSBleGlz dHMsIG5vdCB0aGF0IGl0IGRlZmluZXMgRk4uICBUaGlzIGlzIGludGVuZGVkCmZvciBmdW5jdGlv biBkZWZpbml0aW9ucyB0aGF0IGBjaGVjay1kZWNsYXJlJyBkb2VzIG5vdCByZWNvZ25pemUsCmUu Zy4sIGBkZWZzdHJ1Y3QnLgoKTm90ZSB0aGF0IGZvciB0aGUgcHVycG9zZXMgb2YgYGNoZWNrLWRl Y2xhcmUnLCB0aGlzIHN0YXRlbWVudAptdXN0IGJlIHRoZSBmaXJzdCBub24td2hpdGVzcGFjZSBv biBhIGxpbmUuCgpGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIEluZm8gbm9kZSBgKGVsaXNwKURl Y2xhcmluZyBGdW5jdGlvbnMnLgoKKGZuIEZOIEZJTEUgJnJlc3QgQVJHUykfCihkZWZhbGlhcyAn ZGVjbGFyZS1mdW5jdGlvbiAnKG1hY3JvIC4gI1s2NDIgIlwzMDBcMjA3IiBbbmlsXSA0ICgjJCAu IDg4KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wyMTBcMzA0XDMwNVwzMDZcIlwy MTBcMzA0XDMwN1wzMTBcIlwyMDciIFtzZXQtYWR2ZXJ0aXNlZC1jYWxsaW5nLWNvbnZlbnRpb24g ZGVjbGFyZS1mdW5jdGlvbiAoZm4gZmlsZSAmb3B0aW9uYWwgYXJnbGlzdCBmaWxlb25seSkgbmls IGRlZmFsaWFzIG5vdCBudWxsIHN4aGFzaCBzeGhhc2gtZXF1YWxdIDQpI0A5MyBFdmFsdWF0ZSBG T1JNLCBleHBlY3RpbmcgaXQgbm90IHRvIHJldHVybi4KSWYgRk9STSBkb2VzIHJldHVybiwgc2ln bmFsIGFuIGVycm9yLgoKKGZuIEZPUk0pHwooZGVmYWxpYXMgJ25vcmV0dXJuICcobWFjcm8gLiAj WzI1NyAiXDMwMAFcMzAxQkJcMjA3IiBbcHJvZzEgKChlcnJvciAiRm9ybSBtYXJrZWQgd2l0aCBg bm9yZXR1cm4nIGRpZCByZXR1cm4iKSldIDQgKCMkIC4gMTc1NyldKSkKKHB1dCAnbm9yZXR1cm4g J2VkZWJ1Zy1mb3JtLXNwZWMgdCkjQDE1NiBFdmFsdWF0ZSBGT1JNLCBleHBlY3RpbmcgYSBjb25z dGFudCByZXR1cm4gdmFsdWUuCklmIEZPUk0gcmV0dXJucyBkaWZmZXJpbmcgdmFsdWVzIHdoZW4g cnVubmluZyB1bmRlciBUZXN0Y292ZXIsClRlc3Rjb3ZlciB3aWxsIHJhaXNlIGFuIGVycm9yLgoK KGZuIEZPUk0pHwooZGVmYWxpYXMgJzF2YWx1ZSAnKG1hY3JvIC4gI1syNTcgIlwyMDciIFtdIDIg KCMkIC4gMjAyMSldKSkKKHB1dCAnMXZhbHVlICdlZGVidWctZm9ybS1zcGVjIHQpI0AzNzcgU2V0 IHRoZSBFZGVidWcgU1BFQyB0byB1c2UgZm9yIHNleHBzIHdoaWNoIGhhdmUgU1lNQk9MIGFzIGhl YWQuCkJvdGggU1lNQk9MIGFuZCBTUEVDIGFyZSB1bmV2YWx1YXRlZC4gIFRoZSBTUEVDIGNhbiBi ZToKMCAoaW5zdHJ1bWVudCBubyBhcmd1bWVudHMpOyB0IChpbnN0cnVtZW50IGFsbCBhcmd1bWVu dHMpOwphIHN5bWJvbCAobmFtaW5nIGEgZnVuY3Rpb24gd2l0aCBhbiBFZGVidWcgc3BlY2lmaWNh dGlvbik7IG9yIGEgbGlzdC4KVGhlIGVsZW1lbnRzIG9mIHRoZSBsaXN0IGRlc2NyaWJlIHRoZSBh cmd1bWVudCB0eXBlczsgc2VlCkluZm8gbm9kZSBgKGVsaXNwKVNwZWNpZmljYXRpb24gTGlzdCcg Zm9yIGRldGFpbHMuCgooZm4gU1lNQk9MIFNQRUMpHwooZGVmYWxpYXMgJ2RlZi1lZGVidWctc3Bl YyAnKG1hY3JvIC4gI1s1MTQgIlwzMDBcMzAxA0RcMzAyXDMwMQRERlwyMDciIFtwdXQgcXVvdGUg J2VkZWJ1Zy1mb3JtLXNwZWNdIDcgKCMkIC4gMjI3NyldKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFc MzAyXDMwMyNcMzAwXDIwNyIgW2Z1bmN0aW9uLXB1dCBkZWYtZWRlYnVnLXNwZWMgbGlzcC1pbmRl bnQtZnVuY3Rpb24gMV0gNCkjQDEwNSBEZWZpbmUgYSBuZXcgRWRlYnVnIHNwZWMgZWxlbWVudCBO QU1FIGFzIHNob3J0aGFuZCBmb3IgU1BFQy4KVGhlIFNQRUMgaGFzIHRvIGJlIGEgbGlzdC4KCihm biBOQU1FIFNQRUMpHwooZGVmYWxpYXMgJ2RlZi1lZGVidWctZWxlbS1zcGVjICNbNTE0ICJcMzAw XDMwMVwzMDIEIVwiXDIwMw0AXDMwM1wzMDQhXDIxMFwyMTE6XDIwNBcAXDMwM1wzMDUCXCJcMjEw XDMwNgJcMzA3AyNcMjA3IiBbc3RyaW5nLW1hdGNoICJcXGBbJjpdIiBzeW1ib2wtbmFtZSBlcnJv ciAiRWRlYnVnIHNwZWMgbmFtZSBjYW5ub3Qgc3RhcnQgd2l0aCAnJicgb3IgJzonIiAiRWRlYnVn IHNwZWMgaGFzIHRvIGJlIGEgbGlzdDogJVMiIHB1dCBlZGVidWctZWxlbS1zcGVjXSA2ICgjJCAu IDI4NzMpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzAwXDIwNyIgW2Z1bmN0aW9u LXB1dCBkZWYtZWRlYnVnLWVsZW0tc3BlYyBsaXNwLWluZGVudC1mdW5jdGlvbiAxXSA0KSNAODEz IFJldHVybiBhbiBhbm9ueW1vdXMgZnVuY3Rpb24uClVuZGVyIGR5bmFtaWMgYmluZGluZywgYSBj YWxsIG9mIHRoZSBmb3JtIChsYW1iZGEgQVJHUyBET0NTVFJJTkcKSU5URVJBQ1RJVkUgQk9EWSkg aXMgc2VsZi1xdW90aW5nOyB0aGUgcmVzdWx0IG9mIGV2YWx1YXRpbmcgdGhlCmxhbWJkYSBleHBy ZXNzaW9uIGlzIHRoZSBleHByZXNzaW9uIGl0c2VsZi4gIFVuZGVyIGxleGljYWwKYmluZGluZywg dGhlIHJlc3VsdCBpcyBhIGNsb3N1cmUuICBSZWdhcmRsZXNzLCB0aGUgcmVzdWx0IGlzIGEKZnVu Y3Rpb24sIGkuZS4sIGl0IG1heSBiZSBzdG9yZWQgYXMgdGhlIGZ1bmN0aW9uIHZhbHVlIG9mIGEK c3ltYm9sLCBwYXNzZWQgdG8gYGZ1bmNhbGwnIG9yIGBtYXBjYXInLCBldGMuCgpBUkdTIHNob3Vs ZCB0YWtlIHRoZSBzYW1lIGZvcm0gYXMgYW4gYXJndW1lbnQgbGlzdCBmb3IgYSBgZGVmdW4nLgpE T0NTVFJJTkcgaXMgYW4gb3B0aW9uYWwgZG9jdW1lbnRhdGlvbiBzdHJpbmcuCiBJZiBwcmVzZW50 LCBpdCBzaG91bGQgZGVzY3JpYmUgaG93IHRvIGNhbGwgdGhlIGZ1bmN0aW9uLgogQnV0IGRvY3Vt ZW50YXRpb24gc3RyaW5ncyBhcmUgdXN1YWxseSBub3QgdXNlZnVsIGluIG5hbWVsZXNzIGZ1bmN0 aW9ucy4KSU5URVJBQ1RJVkUgc2hvdWxkIGJlIGEgY2FsbCB0byB0aGUgZnVuY3Rpb24gYGludGVy YWN0aXZlJywgd2hpY2ggc2VlLgpJdCBtYXkgYWxzbyBiZSBvbWl0dGVkLgpCT0RZIHNob3VsZCBi ZSBhIGxpc3Qgb2YgTGlzcCBleHByZXNzaW9ucy4KCihmbiBBUkdTIFtET0NTVFJJTkddIFtJTlRF UkFDVElWRV0gQk9EWSkfCihkZWZhbGlhcyAnbGFtYmRhICcobWFjcm8gLiAjWzEyOCAiXDMwMFwz MDECQkRcMjA3IiBbZnVuY3Rpb24gbGFtYmRhXSA0ICgjJCAuIDMzNjQpXSkpCihieXRlLWNvZGUg IlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwzMDFcMzA0XDMwNSNcMzA2XDMwMVwzMDdcMzEwI1wyMDci IFtmdW5jdGlvbi1wdXQgbGFtYmRhIGRvYy1zdHJpbmctZWx0IDIgbGlzcC1pbmRlbnQtZnVuY3Rp b24gZGVmdW4gcHV0IGVkZWJ1Zy1mb3JtLXNwZWMgKCZkZWZpbmUgbGFtYmRhLWxpc3QgbGFtYmRh LWRvYyBbJm9wdGlvbmFsICgiaW50ZXJhY3RpdmUiIGludGVyYWN0aXZlKV0gZGVmLWJvZHkpXSA2 KSNAMTk3IEV2YWwgRk9STTEsIEZPUk0yIGFuZCBCT0RZIHNlcXVlbnRpYWxseTsgcmV0dXJuIHZh bHVlIGZyb20gRk9STTIuClRoZSB2YWx1ZSBvZiBGT1JNMiBpcyBzYXZlZCBkdXJpbmcgdGhlIGV2 YWx1YXRpb24gb2YgdGhlCnJlbWFpbmluZyBhcmdzLCB3aG9zZSB2YWx1ZXMgYXJlIGRpc2NhcmRl ZC4KCihmbiBGT1JNMSBGT1JNMiAmcmVzdCBCT0RZKR8KKGRlZmFsaWFzICdwcm9nMiAnKG1hY3Jv IC4gI1s2NDIgIlwzMDADXDMwMQQEQkJFXDIwNyIgW3Byb2duIHByb2cxXSA4ICgjJCAuIDQ1MTAp XSkpCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBb ZnVuY3Rpb24tcHV0IHByb2cyIGxpc3AtaW5kZW50LWZ1bmN0aW9uIDIgcHV0IGVkZWJ1Zy1mb3Jt LXNwZWMgdF0gNSkjQDUzOCBTZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdmFyaWFibGUgVkFSIHRv IFZBTFVFLgpWQVIsIHRoZSB2YXJpYWJsZSBuYW1lLCBpcyBsaXRlcmFsIChub3QgZXZhbHVhdGVk KTsKVkFMVUUgaXMgYW4gZXhwcmVzc2lvbjogaXQgaXMgZXZhbHVhdGVkIGFuZCBpdHMgdmFsdWUg cmV0dXJuZWQuClRoZSBkZWZhdWx0IHZhbHVlIG9mIGEgdmFyaWFibGUgaXMgc2VlbiBpbiBidWZm ZXJzCnRoYXQgZG8gbm90IGhhdmUgdGhlaXIgb3duIHZhbHVlcyBmb3IgdGhlIHZhcmlhYmxlLgoK TW9yZSBnZW5lcmFsbHksIHlvdSBjYW4gdXNlIG11bHRpcGxlIHZhcmlhYmxlcyBhbmQgdmFsdWVz LCBhcyBpbgogIChzZXRxLWRlZmF1bHQgVkFSIFZBTFVFIFZBUiBWQUxVRS4uLikKVGhpcyBzZXRz IGVhY2ggVkFSJ3MgZGVmYXVsdCB2YWx1ZSB0byB0aGUgY29ycmVzcG9uZGluZyBWQUxVRS4KVGhl IFZBTFVFIGZvciB0aGUgTnRoIFZBUiBjYW4gcmVmZXIgdG8gdGhlIG5ldyBkZWZhdWx0IHZhbHVl cwpvZiBwcmV2aW91cyBWQVJzLgoKKGZuIFtWQVIgVkFMVUVdLi4uKR8KKGRlZmFsaWFzICdzZXRx LWRlZmF1bHQgJyhtYWNybyAuICNbMTI4ICJcMzAwAVwyMDMcAFwzMDFcMzAyA1wyMTFBXDI2MgVc MjQyRANcMjExQVwyNjIFXDI0MkUBQlwyNjIBXDIwMgEAXDMwMwFcMjM3QlwyMDciIFtuaWwgc2V0 LWRlZmF1bHQgcXVvdGUgcHJvZ25dIDYgKCMkIC4gNDkxOSldKSkKKHB1dCAnc2V0cS1kZWZhdWx0 ICdlZGVidWctZm9ybS1zcGVjICdzZXRxKSNANTU4IE1ha2UgZWFjaCBWQVJJQUJMRSBidWZmZXIt bG9jYWwgYW5kIGFzc2lnbiB0byBpdCB0aGUgY29ycmVzcG9uZGluZyBWQUxVRS4KClRoZSBhcmd1 bWVudHMgYXJlIHZhcmlhYmxlL3ZhbHVlIHBhaXJzICBGb3IgZWFjaCBWQVJJQUJMRSBpbiBhIHBh aXIsCm1ha2UgVkFSSUFCTEUgYnVmZmVyLWxvY2FsIGFuZCBhc3NpZ24gdG8gaXQgdGhlIGNvcnJl c3BvbmRpbmcgVkFMVUUKb2YgdGhlIHBhaXIuICBUaGUgVkFSSUFCTEVzIGFyZSBsaXRlcmFsIHN5 bWJvbHMgYW5kIHNob3VsZCBub3QgYmUgcXVvdGVkLgoKVGhlIFZBTFVFIG9mIHRoZSBOdGggcGFp ciBpcyBub3QgY29tcHV0ZWQgdW50aWwgYWZ0ZXIgdGhlIFZBUklBQkxFCm9mIHRoZSAoTi0xKXRo IHBhaXIgaXMgc2V0OyB0aHVzLCBlYWNoIFZBTFVFIGNhbiB1c2UgdGhlIG5ldyBWQUxVRXMKb2Yg VkFSSUFCTEVzIHNldCBieSBlYXJsaWVyIHBhaXJzLgoKVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUg YHNldHEtbG9jYWwnIGZvcm0gaXMgdGhlIFZBTFVFIG9mIHRoZSBsYXN0CnBhaXIuCgooZm4gW1ZB UklBQkxFIFZBTFVFXS4uLikfCihkZWZhbGlhcyAnc2V0cS1sb2NhbCAnKG1hY3JvIC4gI1sxMjgg IlwzMDABR1wzMDFcIlwzMDJVXDIwNA4AXDMwM1wzMDQhXDIxMFwzMDUBXDIwMzYAAUA5XDIwNB8A XDMwM1wzMDYDQFwiXDIxMFwzMDdcMzEwXDMxMQRAREQDQUBFAUJcMjYyAQFBQVwyNjICXDIwMg8A XDMxMgFcMjM3IVwyMDciIFttb2QgMiAwIGVycm9yICJQQUlSUyBtdXN0IGhhdmUgYW4gZXZlbiBu dW1iZXIgb2YgdmFyaWFibGUvdmFsdWUgbWVtYmVycyIgbmlsICJBdHRlbXB0aW5nIHRvIHNldCBh IG5vbi1zeW1ib2w6ICVzIiBzZXQgbWFrZS1sb2NhbC12YXJpYWJsZSBxdW90ZSBtYWNyb2V4cC1w cm9nbl0gNiAoIyQgLiA1Njc0KV0pKQoocHV0ICdzZXRxLWxvY2FsICdlZGVidWctZm9ybS1zcGVj ICdzZXRxKSNAMjAzIERlZmluZSBWQVIgYXMgYSBidWZmZXItbG9jYWwgdmFyaWFibGUgd2l0aCBk ZWZhdWx0IHZhbHVlIFZBTC4KTGlrZSBgZGVmdmFyJyBidXQgYWRkaXRpb25hbGx5IG1hcmtzIHRo ZSB2YXJpYWJsZSBhcyBiZWluZyBhdXRvbWF0aWNhbGx5CmJ1ZmZlci1sb2NhbCB3aGVyZXZlciBp dCBpcyBzZXQuCgooZm4gVkFSIFZBTCAmb3B0aW9uYWwgRE9DU1RSSU5HKR8KKGRlZmFsaWFzICdk ZWZ2YXItbG9jYWwgJyhtYWNybyAuICNbNzcwICJcMzAwXDMwMQQEBEZcMzAyXDMwMwYGRERFXDIw NyIgW3Byb2duIGRlZnZhciBtYWtlLXZhcmlhYmxlLWJ1ZmZlci1sb2NhbCBxdW90ZV0gOCAoIyQg LiA2NjI1KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wyMTBcMzA0XDMwMVwzMDVc MzA2I1wzMDRcMzAxXDMwN1wzMTAjXDMwMFwyMDciIFtwdXQgZGVmdmFyLWxvY2FsIGVkZWJ1Zy1m b3JtLXNwZWMgZGVmdmFyIGZ1bmN0aW9uLXB1dCBkb2Mtc3RyaW5nLWVsdCAzIGxpc3AtaW5kZW50 LWZ1bmN0aW9uIDJdIDUpI0A5NSBSZXR1cm4gbm9uLW5pbCBpZiBTWU1CT0wgaXMgYm91bmQgaW4g QlVGRkVSLgpBbHNvIHNlZSBgbG9jYWwtdmFyaWFibGUtcCcuCgooZm4gU1lNQk9MIEJVRkZFUikf CihkZWZhbGlhcyAnYnVmZmVyLWxvY2FsLWJvdW5kcCAjWzUxNCAiXDMwMDFcZgBcMzAxAgJcIjBc MjEwXDMwMlwyMDdcMjEwXDMwM1wyMDciIFsodm9pZC12YXJpYWJsZSkgYnVmZmVyLWxvY2FsLXZh bHVlIHQgbmlsXSA1ICgjJCAuIDcxNDUpXSkjQDI1NSBMaWtlIGBzZXRxLWxvY2FsJywgYnV0IGFs bG93IHJlc3RvcmluZyB0aGUgcHJldmlvdXMgc3RhdGUgb2YgbG9jYWxzIGxhdGVyLgpUaGlzIG1h Y3JvIHJldHVybnMgYW4gb2JqZWN0IHRoYXQgY2FuIGJlIHBhc3NlZCB0byBgYnVmZmVyLWxvY2Fs LXJlc3RvcmUtc3RhdGUnCmluIG9yZGVyIHRvIHJlc3RvcmUgdGhlIHN0YXRlIG9mIHRoZSBsb2Nh bCB2YXJpYWJsZXMgc2V0IHZpYSB0aGlzIG1hY3JvLgoKKGZuIFtWQVJJQUJMRSBWQUxVRV0uLi4p HwooZGVmYWxpYXMgJ2J1ZmZlci1sb2NhbC1zZXQtc3RhdGUgJyhtYWNybyAuICNbMTI4ICJcMzAw AUdcMzAxXCJcMzAyVVwyMDQOAFwzMDNcMzA0IVwyMTBcMzA1XDMwNlwzMDcDRERcMzEwA0JFXDIw NyIgW21vZCAyIDAgZXJyb3IgIlBBSVJTIG11c3QgaGF2ZSBhbiBldmVuIG51bWJlciBvZiB2YXJp YWJsZS92YWx1ZSBtZW1iZXJzIiBwcm9nMSBidWZmZXItbG9jYWwtc2V0LXN0YXRlLS1nZXQgcXVv dGUgc2V0cS1sb2NhbF0gNSAoIyQgLiA3Mzg1KV0pKQoocHV0ICdidWZmZXItbG9jYWwtc2V0LXN0 YXRlICdlZGVidWctZm9ybS1zcGVjICdzZXRxKSNAMTQgCgooZm4gUEFJUlMpHwooZGVmYWxpYXMg J2J1ZmZlci1sb2NhbC1zZXQtc3RhdGUtLWdldCAjWzI1NyAiXDMwMAFcMjAzKQABQFwzMDEDQCFc MjA1EgBcMzAyA0AhXDMwMQRAIVwyMDUcAANASkUBQlwyNjIBAUFBXDI2MgJcMjAyAQBcMjExXDIz N1wyMDciIFtuaWwgYm91bmRwIGxvY2FsLXZhcmlhYmxlLXBdIDYgKCMkIC4gNzk1NildKSNAMTQw IFJlc3RvcmUgdmFsdWVzIG9mIGJ1ZmZlci1sb2NhbCB2YXJpYWJsZXMgcmVjb3JkZWQgaW4gU1RB VEVTLgpTVEFURVMgc2hvdWxkIGJlIGFuIG9iamVjdCByZXR1cm5lZCBieSBgYnVmZmVyLWxvY2Fs LXNldC1zdGF0ZScuCgooZm4gU1RBVEVTKR8KKGRlZmFsaWFzICdidWZmZXItbG9jYWwtcmVzdG9y ZS1zdGF0ZSAjWzI1NyAiXDIxMVwyMTFcMjA1LABcMjExQFwyMTFcMjQyAVwyNDNcMjExXDI0MgFc MjQzXDIxMVwyNDIBXDI0MwNcMjAzHwAFAkxcMjY2B1wyMDIlAFwzMDAGBiFcMjY2BwFBXDI2Nlwy MDJcMjAyAQBcMjA3IiBba2lsbC1sb2NhbC12YXJpYWJsZV0gMTEgKCMkIC4gODE1MildKSNAMjA2 IEFkZCBORVdFTFQgdG8gdGhlIGxpc3Qgc3RvcmVkIGluIHRoZSBnZW5lcmFsaXplZCB2YXJpYWJs ZSBQTEFDRS4KVGhpcyBpcyBtb3JhbGx5IGVxdWl2YWxlbnQgdG8gKHNldGYgUExBQ0UgKGNvbnMg TkVXRUxUIFBMQUNFKSksCmV4Y2VwdCB0aGF0IFBMQUNFIGlzIGV2YWx1YXRlZCBvbmx5IG9uY2Ug KGFmdGVyIE5FV0VMVCkuCgooZm4gTkVXRUxUIFBMQUNFKR8KKGRlZmFsaWFzICdwdXNoICcobWFj cm8gLiAjWzUxNCAiXDIxMTlcMjAzDQBcMzAwAVwzMDEEBEVFXDIwN1wzMDJcMzAzIVwyMTBcMzA0 AiFcMjAzGwABXDIwMh4AXDMwNVwzMDYhXDMwNwJcMzEwXDMxMQRcIlwiAQQ9XDIwMywAXDIwN1wz MTICBURDAlwiXDIwNyIgW3NldHEgY29ucyByZXF1aXJlIG1hY3JvZXhwIG1hY3JvZXhwLWNvcHlh YmxlLXAgbWFrZS1zeW1ib2wgIngiIGd2LWdldCBtYWtlLWNsb3N1cmUgI1s1MTQgIlwyMTFcMzAx XDMwMARFIVwyMDciIFtWMCBjb25zXSA2ICJcblxuKGZuIEdFVFRFUiBTRVRURVIpIl0gbWFjcm9l eHAtbGV0Kl0gOCAoIyQgLiA4NDk0KV0pKQoocHV0ICdwdXNoICdlZGVidWctZm9ybS1zcGVjICco Zm9ybSBndi1wbGFjZSkpI0AyMjMgUmV0dXJuIHRoZSBmaXJzdCBlbGVtZW50IG9mIFBMQUNFJ3Mg dmFsdWUsIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgbGlzdC4KUExBQ0UgbXVzdCBiZSBhIGdlbmVy YWxpemVkIHZhcmlhYmxlIHdob3NlIHZhbHVlIGlzIGEgbGlzdC4KSWYgdGhlIHZhbHVlIGlzIG5p bCwgYHBvcCcgcmV0dXJucyBuaWwgYnV0IGRvZXMgbm90IGFjdHVhbGx5CmNoYW5nZSB0aGUgbGlz dC4KCihmbiBQTEFDRSkfCihkZWZhbGlhcyAncG9wICcobWFjcm8gLiAjWzI1NyAiXDMwMAE5XDIw MxMAXDMwMQJcMzAyBFwzMDMGBkRFRVwyMDIXAFwzMDQCXDMwNVwiRFwyMDciIFtjYXItc2FmZSBw cm9nMSBzZXRxIGNkciBndi1nZXQgI1s1MTQgIlwzMDACIVwyMDNcbgABXDIwMg0AXDMwMVwzMDIh XDMwMwEDXDMwNAREIUUBBD1cMjAzHABcMjA3XDMwNQIFREMCXCJcMjA3IiBbbWFjcm9leHAtY29w eWFibGUtcCBtYWtlLXN5bWJvbCAieCIgcHJvZzEgY2RyIG1hY3JvZXhwLWxldCpdIDggIlxuXG4o Zm4gR0VUVEVSIFNFVFRFUikiXV0gOCAoIyQgLiA5MDg0KV0pKQoocHV0ICdwb3AgJ2VkZWJ1Zy1m b3JtLXNwZWMgJyhndi1wbGFjZSkpI0AxODQgSWYgQ09ORCB5aWVsZHMgbm9uLW5pbCwgZG8gQk9E WSwgZWxzZSByZXR1cm4gbmlsLgpXaGVuIENPTkQgeWllbGRzIG5vbi1uaWwsIGV2YWwgQk9EWSBm b3JtcyBzZXF1ZW50aWFsbHkgYW5kIHJldHVybgp2YWx1ZSBvZiBsYXN0IG9uZSwgb3IgbmlsIGlm IHRoZXJlIGFyZSBub25lLgoKKGZuIENPTkQgJnJlc3QgQk9EWSkfCihkZWZhbGlhcyAnd2hlbiAn KG1hY3JvIC4gI1szODUgIlwzMDACXDMwMQNCRVwyMDciIFtpZiBwcm9nbl0gNiAoIyQgLiA5NjYw KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIg W2Z1bmN0aW9uLXB1dCB3aGVuIGxpc3AtaW5kZW50LWZ1bmN0aW9uIDEgcHV0IGVkZWJ1Zy1mb3Jt LXNwZWMgdF0gNSkjQDE3NiBJZiBDT05EIHlpZWxkcyBuaWwsIGRvIEJPRFksIGVsc2UgcmV0dXJu IG5pbC4KV2hlbiBDT05EIHlpZWxkcyBuaWwsIGV2YWwgQk9EWSBmb3JtcyBzZXF1ZW50aWFsbHkg YW5kIHJldHVybgp2YWx1ZSBvZiBsYXN0IG9uZSwgb3IgbmlsIGlmIHRoZXJlIGFyZSBub25lLgoK KGZuIENPTkQgJnJlc3QgQk9EWSkfCihkZWZhbGlhcyAndW5sZXNzICcobWFjcm8gLiAjWzM4NSAi XDMwMAJcMzAxA0JCQlwyMDciIFtpZiBuaWxdIDYgKCMkIC4gMTAwNDkpXSkpCihieXRlLWNvZGUg IlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IHVu bGVzcyBsaXNwLWluZGVudC1mdW5jdGlvbiAxIHB1dCBlZGVidWctZm9ybS1zcGVjIHRdIDUpI0A2 NyBSZXR1cm4gdCBpZiBPQkpFQ1QgaXMgYSBidWlsdC1pbiBwcmltaXRpdmUgZnVuY3Rpb24uCgoo Zm4gT0JKRUNUKR8KKGRlZmFsaWFzICdzdWJyLXByaW1pdGl2ZS1wICNbMjU3ICJcMzAwASFcMjA1 XG4AXDMwMQEhP1wyMDciIFtzdWJycCBzdWJyLW5hdGl2ZS1lbGlzcC1wXSAzICgjJCAuIDEwNDMz KV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBb ZnVuY3Rpb24tcHV0IHN1YnItcHJpbWl0aXZlLXAgc3BlZWQgLTEgcHV0IGJ5dGUtb3B0aW1pemVy IGJ5dGUtY29tcGlsZS1pbmxpbmUtZXhwYW5kXSA1KSNAMTQ1IFJldHVybiB0aGUgYm9vbGVhbiBl eGNsdXNpdmUtb3Igb2YgQ09ORDEgYW5kIENPTkQyLgpJZiBvbmx5IG9uZSBvZiB0aGUgYXJndW1l bnRzIGlzIG5vbi1uaWwsIHJldHVybiBpdDsgb3RoZXJ3aXNlCnJldHVybiBuaWwuCgooZm4gQ09O RDEgQ09ORDIpHwooZGVmYWxpYXMgJ3hvciAjWzUxNCAiAVwyMDQFAFwyMDdcMjExP1wyMDULAAFc MjA3IiBbXSAzICgjJCAuIDEwNzUzKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMw MFwzMDFcMzA0XDMwNSNcMzAwXDMwMVwzMDZcMzA3I1wzMTBcMzAxXDMxMVwzMTIjXDIwNyIgW2Z1 bmN0aW9uLXB1dCB4b3IgcHVyZSB0IHNpZGUtZWZmZWN0LWZyZWUgZXJyb3ItZnJlZSBzcGVlZCAt MSBwdXQgYnl0ZS1vcHRpbWl6ZXIgYnl0ZS1jb21waWxlLWlubGluZS1leHBhbmRdIDcpI0AxNjkg TG9vcCBvdmVyIGEgbGlzdC4KRXZhbHVhdGUgQk9EWSB3aXRoIFZBUiBib3VuZCB0byBlYWNoIGNh ciBmcm9tIExJU1QsIGluIHR1cm4uClRoZW4gZXZhbHVhdGUgUkVTVUxUIHRvIGdldCByZXR1cm4g dmFsdWUsIGRlZmF1bHQgbmlsLgoKKGZuIChWQVIgTElTVCBbUkVTVUxUXSkgQk9EWS4uLikfCihk ZWZhbGlhcyAnZG9saXN0ICcobWFjcm8gLiAjWzM4NSAiATpcMjA0XGYAXDMwMFwzMDFcMzAyBERc IlwyMTBcMzAzXDMwNANHXDMwNSNcMjA0HQBcMzAwXDMwNlwzMDcER0RcIlwyMTBcMzEwXDMxMSFc MzEyAQRBQERDXDMxMwNcMzEyBgdAXDMxNAYHRERDXDMxNQYIXDMxNgYJXDMxNwYLREVDXCJCQkUF QUFCQkJcMjA3IiBbc2lnbmFsIHdyb25nLXR5cGUtYXJndW1lbnQgY29uc3AgPD0gMiAzIHdyb25n LW51bWJlci1vZi1hcmd1bWVudHMgKDIgLiAzKSBtYWtlLXN5bWJvbCAidGFpbCIgbGV0IHdoaWxl IGNhciBhcHBlbmQgc2V0cSBjZHJdIDE1ICgjJCAuIDExMTcyKV0pKQooYnl0ZS1jb2RlICJcMzAw XDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCBkb2xpc3Qg bGlzcC1pbmRlbnQtZnVuY3Rpb24gMSBwdXQgZWRlYnVnLWZvcm0tc3BlYyAoKHN5bWJvbHAgZm9y bSAmb3B0aW9uYWwgZm9ybSkgYm9keSldIDUpI0AzNDEgTG9vcCBhIGNlcnRhaW4gbnVtYmVyIG9m IHRpbWVzLgpFdmFsdWF0ZSBCT0RZIHdpdGggVkFSIGJvdW5kIHRvIHN1Y2Nlc3NpdmUgaW50ZWdl cnMgcnVubmluZyBmcm9tIDAsCmluY2x1c2l2ZSwgdG8gQ09VTlQsIGV4Y2x1c2l2ZS4KCkZpbmFs bHkgUkVTVUxUIGlzIGV2YWx1YXRlZCB0byBnZXQgdGhlIHJldHVybiB2YWx1ZSAobmlsIGlmClJF U1VMVCBpcyBvbWl0dGVkKS4gIFVzaW5nIFJFU1VMVCBpcyBkZXByZWNhdGVkLCBhbmQgbWF5IHJl c3VsdAppbiBjb21waWxhdGlvbiB3YXJuaW5ncyBhYm91dCB1bnVzZWQgdmFyaWFibGVzLgoKKGZu IChWQVIgQ09VTlQgW1JFU1VMVF0pIEJPRFkuLi4pHwooZGVmYWxpYXMgJ2RvdGltZXMgJyhtYWNy byAuICNbMzg1ICIBQAJBQFwzMDBcMzAxIVwzMDBcMzAyIVwzMDMCBEQCXDMwNEJEXDMwNVwzMDYE BgZFXDMwMwYIBgZEQwZcbkJCXDMwNwYGXDMxMAYIREVGBghBQVwyMDVBAFwzMDMGBwVEQwZcbkFB QkJDQkJCXDIwNyIgW21ha2Utc3ltYm9sICJ1cHBlci1ib3VuZCIgImNvdW50ZXIiIGxldCAoMCkg d2hpbGUgPCBzZXRxIDErXSAxNSAoIyQgLiAxMTgzMildKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFc MzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2I1wyMDciIFtmdW5jdGlvbi1wdXQgZG90aW1lcyBsaXNw LWluZGVudC1mdW5jdGlvbiAxIHB1dCBlZGVidWctZm9ybS1zcGVjIGRvbGlzdF0gNSkjQDQ3NyBE byBub3QgZXZhbHVhdGUgYW55IGFyZ3VtZW50cywgYW5kIHJldHVybiBuaWwuCklmIGEgYGRlY2xh cmUnIGZvcm0gYXBwZWFycyBhcyB0aGUgZmlyc3QgZm9ybSBpbiB0aGUgYm9keSBvZiBhCmBkZWZ1 bicgb3IgYGRlZm1hY3JvJyBmb3JtLCBTUEVDUyBzcGVjaWZpZXMgdmFyaW91cyBhZGRpdGlvbmFs CmluZm9ybWF0aW9uIGFib3V0IHRoZSBmdW5jdGlvbiBvciBtYWNybzsgdGhlc2UgZ28gaW50byBl ZmZlY3QKZHVyaW5nIHRoZSBldmFsdWF0aW9uIG9mIHRoZSBgZGVmdW4nIG9yIGBkZWZtYWNybycg Zm9ybS4KClRoZSBwb3NzaWJsZSB2YWx1ZXMgb2YgU1BFQ1MgYXJlIHNwZWNpZmllZCBieQpgZGVm dW4tZGVjbGFyYXRpb25zLWFsaXN0JyBhbmQgYG1hY3JvLWRlY2xhcmF0aW9ucy1hbGlzdCcuCgpG b3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGluZm8gbm9kZSBgKGVsaXNwKURlY2xhcmUgRm9ybScu CgooZm4gJnJlc3QgU1BFQ1MpHwooZGVmYWxpYXMgJ2RlY2xhcmUgJyhtYWNybyAuICNbMTI4ICJc MzAwAUJcMzAxXDMwMlwzMDMDXCJcMzA0XDMwNQREXDMwNkJCXDMwN1wzMTAkXDIwNyIgW2RlY2xh cmUgbWFjcm9leHAtd2Fybi1hbmQtcmV0dXJuIGZvcm1hdC1tZXNzYWdlICJTdHJheSBgZGVjbGFy ZScgZm9ybTogJVMiIHByb2duIHF1b3RlIChuaWwpIG5pbCBjb21waWxlLW9ubHldIDcgKCMkIC4g MTI1MzkpXSkpI0AyMDAgRXhlY3V0ZSBCT0RZOyBpZiBhbiBlcnJvciBvY2N1cnMsIHJldHVybiBu aWwuCk90aGVyd2lzZSwgcmV0dXJuIHJlc3VsdCBvZiBsYXN0IGZvcm0gaW4gQk9EWS4KU2VlIGFs c28gYHdpdGgtZGVtb3RlZC1lcnJvcnMnIHRoYXQgZG9lcyBzb21ldGhpbmcgc2ltaWxhcgp3aXRo b3V0IHNpbGVuY2luZyBhbGwgZXJyb3JzLgoKKGZuICZyZXN0IEJPRFkpHwooZGVmYWxpYXMgJ2ln bm9yZS1lcnJvcnMgJyhtYWNybyAuICNbMTI4ICJcMzAwXDMwMVwzMDIDQlwzMDNCQkJcMjA3IiBb Y29uZGl0aW9uLWNhc2UgbmlsIHByb2duICgoZXJyb3IgbmlsKSldIDUgKCMkIC4gMTMyMzkpXSkp CihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDIxMFwzMDRcMzAxXDMwNVwzMDYjXDMwMFwy MDciIFtwdXQgaWdub3JlLWVycm9ycyBlZGVidWctZm9ybS1zcGVjIHQgZnVuY3Rpb24tcHV0IGxp c3AtaW5kZW50LWZ1bmN0aW9uIDBdIDQpI0AxODMgRXhlY3V0ZSBCT0RZOyBpZiB0aGUgZXJyb3Ig Q09ORElUSU9OIG9jY3VycywgcmV0dXJuIG5pbC4KT3RoZXJ3aXNlLCByZXR1cm4gcmVzdWx0IG9m IGxhc3QgZm9ybSBpbiBCT0RZLgoKQ09ORElUSU9OIGNhbiBhbHNvIGJlIGEgbGlzdCBvZiBlcnJv ciBjb25kaXRpb25zLgoKKGZuIENPTkRJVElPTiAmcmVzdCBCT0RZKR8KKGRlZmFsaWFzICdpZ25v cmUtZXJyb3IgJyhtYWNybyAuICNbMzg1ICJcMzAwXDMwMVwzMDIDQgRcMzAzQkZcMjA3IiBbY29u ZGl0aW9uLWNhc2UgbmlsIHByb2duIChuaWwpXSA3ICgjJCAuIDEzNzEwKV0pKQooYnl0ZS1jb2Rl ICJcMzAwXDMwMVwzMDJcMzAzI1wyMTBcMzA0XDMwMVwzMDVcMzA2I1wzMDBcMjA3IiBbcHV0IGln bm9yZS1lcnJvciBlZGVidWctZm9ybS1zcGVjIHQgZnVuY3Rpb24tcHV0IGxpc3AtaW5kZW50LWZ1 bmN0aW9uIDFdIDQpI0A3NSBOdW1iZXIgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgb2YgdGhl IG5leHQgc3ltYm9sIGNyZWF0ZWQgYnkgYGdlbnN5bScuHwooZGVmdmFyIGdlbnN5bS1jb3VudGVy IDAgKCMkIC4gMTQxNTMpKSNAMTU1IFJldHVybiBhIG5ldyB1bmludGVybmVkIHN5bWJvbC4KVGhl IG5hbWUgaXMgbWFkZSBieSBhcHBlbmRpbmcgYGdlbnN5bS1jb3VudGVyJyB0byBQUkVGSVguClBS RUZJWCBpcyBhIHN0cmluZywgYW5kIGRlZmF1bHRzIHRvICJnIi4KCihmbiAmb3B0aW9uYWwgUFJF RklYKR8KKGRlZmFsaWFzICdnZW5zeW0gI1syNTYgIghcMjExVBBcMzAxXDMwMlwzMDMEXDIwNlxm AFwzMDQEIyFcMjA3IiBbZ2Vuc3ltLWNvdW50ZXIgbWFrZS1zeW1ib2wgZm9ybWF0ICIlcyVkIiAi ZyJdIDcgKCMkIC4gMTQyNzIpXSkjQDEzNCBEbyBub3RoaW5nIGFuZCByZXR1cm4gbmlsLgpUaGlz IGZ1bmN0aW9uIGFjY2VwdHMgYW55IG51bWJlciBvZiBBUkdVTUVOVFMsIGJ1dCBpZ25vcmVzIHRo ZW0uCkFsc28gc2VlIGBhbHdheXMnLgoKKGZuICZyZXN0IEFSR1VNRU5UUykfCihkZWZhbGlhcyAn aWdub3JlICNbMTI4ICJcMzAwXDIwNyIgW25pbF0gMiAoIyQgLiAxNDU2MSkgbmlsXSkKKGJ5dGUt Y29kZSAiXDMwMFwzMDFcMzAyXDMwMSNcMzAwXDIwNyIgW2Z1bmN0aW9uLXB1dCBpZ25vcmUgY29t cGxldGlvbi1wcmVkaWNhdGVdIDQpI0AxMzIgRG8gbm90aGluZyBhbmQgcmV0dXJuIHQuClRoaXMg ZnVuY3Rpb24gYWNjZXB0cyBhbnkgbnVtYmVyIG9mIEFSR1VNRU5UUywgYnV0IGlnbm9yZXMgdGhl bS4KQWxzbyBzZWUgYGlnbm9yZScuCgooZm4gJnJlc3QgQVJHVU1FTlRTKR8KKGRlZmFsaWFzICdh bHdheXMgI1sxMjggIlwzMDBcMjA3IiBbdF0gMiAoIyQgLiAxNDg0NyldKSNANTk1IFNpZ25hbCBh biBlcnJvciwgbWFraW5nIGEgbWVzc2FnZSBieSBwYXNzaW5nIEFSR1MgdG8gYGZvcm1hdC1tZXNz YWdlJy4KRXJyb3JzIGNhdXNlIGVudHJ5IHRvIHRoZSBkZWJ1Z2dlciB3aGVuIGBkZWJ1Zy1vbi1l cnJvcicgaXMgbm9uLW5pbC4KVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiBieSBgZGVidWctaWdub3Jl ZC1lcnJvcnMnLgoKVG8gc2lnbmFsIHdpdGggTUVTU0FHRSB3aXRob3V0IGludGVycHJldGluZyBm b3JtYXQgY2hhcmFjdGVycwpsaWtlIGAlJywgYFw9YCcgYW5kIGBcPScnLCB1c2UgKGVycm9yICIl cyIgTUVTU0FHRSkuCkluIEVtYWNzLCB0aGUgY29udmVudGlvbiBpcyB0aGF0IGVycm9yIG1lc3Nh Z2VzIHN0YXJ0IHdpdGggYSBjYXBpdGFsCmxldHRlciBidXQgKmRvIG5vdCogZW5kIHdpdGggYSBw ZXJpb2QuICBQbGVhc2UgZm9sbG93IHRoaXMgY29udmVudGlvbgpmb3IgdGhlIHNha2Ugb2YgY29u c2lzdGVuY3kuCgpUbyBhbHRlciB0aGUgbG9vayBvZiB0aGUgZGlzcGxheWVkIGVycm9yIG1lc3Nh Z2VzLCB5b3UgY2FuIHVzZQp0aGUgYGNvbW1hbmQtZXJyb3ItZnVuY3Rpb24nIHZhcmlhYmxlLgoK KGZuICZyZXN0IEFSR1MpHwooZGVmYWxpYXMgJ2Vycm9yICNbMTI4ICJcMzAwXDMwMVwzMDJcMzAz BFwiQ1wiXDIwNyIgW3NpZ25hbCBlcnJvciBhcHBseSBmb3JtYXQtbWVzc2FnZV0gNiAoIyQgLiAx NTA0MCldKQooc2V0LWFkdmVydGlzZWQtY2FsbGluZy1jb252ZW50aW9uICdlcnJvciAnKHN0cmlu ZyAmcmVzdCBhcmdzKSAiMjMuMSIpI0A4MTIgU2lnbmFsIGEgdXNlciBlcnJvciwgbWFraW5nIGEg bWVzc2FnZSBieSBwYXNzaW5nIEFSR1MgdG8gYGZvcm1hdC1tZXNzYWdlJy4KVGhpcyBpcyBsaWtl IGBlcnJvcicgZXhjZXB0IHRoYXQgYSB1c2VyIGVycm9yIChvciAicGlsb3QgZXJyb3IiKSBjb21l cwpmcm9tIGFuIGluY29ycmVjdCBtYW5pcHVsYXRpb24gYnkgdGhlIHVzZXIsIG5vdCBmcm9tIGFu IGFjdHVhbCBwcm9ibGVtLgpJbiBjb250cmFzdCB3aXRoIG90aGVyIGVycm9ycywgdXNlciBlcnJv cnMgbm9ybWFsbHkgZG8gbm90IGNhdXNlCmVudHJ5IHRvIHRoZSBkZWJ1Z2dlciwgZXZlbiB3aGVu IGBkZWJ1Zy1vbi1lcnJvcicgaXMgbm9uLW5pbC4KVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiBieSBg ZGVidWctaWdub3JlZC1lcnJvcnMnLgoKVG8gc2lnbmFsIHdpdGggTUVTU0FHRSB3aXRob3V0IGlu dGVycHJldGluZyBmb3JtYXQgY2hhcmFjdGVycwpsaWtlIGAlJywgYFw9YCcgYW5kIGBcPScnLCB1 c2UgKHVzZXItZXJyb3IgIiVzIiBNRVNTQUdFKS4KSW4gRW1hY3MsIHRoZSBjb252ZW50aW9uIGlz IHRoYXQgZXJyb3IgbWVzc2FnZXMgc3RhcnQgd2l0aCBhIGNhcGl0YWwKbGV0dGVyIGJ1dCAqZG8g bm90KiBlbmQgd2l0aCBhIHBlcmlvZC4gIFBsZWFzZSBmb2xsb3cgdGhpcyBjb252ZW50aW9uCmZv ciB0aGUgc2FrZSBvZiBjb25zaXN0ZW5jeS4KClRvIGFsdGVyIHRoZSBsb29rIG9mIHRoZSBkaXNw bGF5ZWQgZXJyb3IgbWVzc2FnZXMsIHlvdSBjYW4gdXNlCnRoZSBgY29tbWFuZC1lcnJvci1mdW5j dGlvbicgdmFyaWFibGUuCgooZm4gRk9STUFUICZyZXN0IEFSR1MpHwooZGVmYWxpYXMgJ3VzZXIt ZXJyb3IgI1szODUgIlwzMDBcMzAxXDMwMlwzMDMFBSNDXCJcMjA3IiBbc2lnbmFsIHVzZXItZXJy b3IgYXBwbHkgZm9ybWF0LW1lc3NhZ2VdIDggKCMkIC4gMTU4MTYpXSkjQDI5NCBEZWZpbmUgTkFN RSBhcyBhIG5ldyBlcnJvciBzaWduYWwuCk1FU1NBR0UgaXMgYSBzdHJpbmcgdGhhdCB3aWxsIGJl IG91dHB1dCB0byB0aGUgZWNobyBhcmVhIGlmIHN1Y2ggYW4gZXJyb3IKaXMgc2lnbmFsZWQgd2l0 aG91dCBiZWluZyBjYXVnaHQgYnkgYSBgY29uZGl0aW9uLWNhc2UnLgpQQVJFTlQgaXMgZWl0aGVy IGEgc2lnbmFsIG9yIGEgbGlzdCBvZiBzaWduYWxzIGZyb20gd2hpY2ggaXQgaW5oZXJpdHMuCkRl ZmF1bHRzIHRvIGBlcnJvcicuCgooZm4gTkFNRSBNRVNTQUdFICZvcHRpb25hbCBQQVJFTlQpHwoo ZGVmYWxpYXMgJ2RlZmluZS1lcnJvciAjWzc3MCAiXDIxMVwyMDQHAFwzMDBcMjYyAVwyMTE6XDIw MxYAXDMwMVwzMDJcMzAzXDMwNARcIlwiXDIwMhsAXDIxMQFcMzA1TkJcMzA2BFwzMDVcMzA3XDMx MAYIBgZCISEjXDIxMAJcMjA1MgBcMzA2BFwzMTEFI1wyMDciIFtlcnJvciBhcHBseSBhcHBlbmQg bWFwY2FyICNbMjU3ICJcMjExAVwzMDBOXDIwNgsAXDMwMVwzMDIDXCJCXDIwNyIgW2Vycm9yLWNv bmRpdGlvbnMgZXJyb3IgIlVua25vd24gc2lnbmFsIGAlcyciXSA1ICJcblxuKGZuIFBBUkVOVCki XSBlcnJvci1jb25kaXRpb25zIHB1dCBkZWxldGUtZHVwcyBjb3B5LXNlcXVlbmNlIGVycm9yLW1l c3NhZ2VdIDExICgjJCAuIDE2NzQ4KV0pI0AxNTggUmV0dXJuIG5vbi1uaWwgaWYgT0JKRUNUIHNl ZW1zIHRvIGJlIGEgZnJhbWUgY29uZmlndXJhdGlvbi4KQW55IGxpc3Qgd2hvc2UgY2FyIGlzIGBm cmFtZS1jb25maWd1cmF0aW9uJyBpcyBhc3N1bWVkIHRvIGJlIGEgZnJhbWUKY29uZmlndXJhdGlv bi4KCihmbiBPQkpFQ1QpHwooZGVmYWxpYXMgJ2ZyYW1lLWNvbmZpZ3VyYXRpb24tcCAjWzI1NyAi XDIxMTpcMjA1CQBcMjExQFwzMDA9XDIwNyIgW2ZyYW1lLWNvbmZpZ3VyYXRpb25dIDMgKCMkIC4g MTc0MTUpXSkjQDI5NCBSZXR1cm4gYSBmdW5jdGlvbiB0aGF0IGlzIGEgcGFydGlhbCBhcHBsaWNh dGlvbiBvZiBGVU4gdG8gQVJHUy4KQVJHUyBpcyBhIGxpc3Qgb2YgdGhlIGZpcnN0IE4gYXJndW1l bnRzIHRvIHBhc3MgdG8gRlVOLgpUaGUgcmVzdWx0IGlzIGEgbmV3IGZ1bmN0aW9uIHdoaWNoIGRv ZXMgdGhlIHNhbWUgYXMgRlVOLCBleGNlcHQgdGhhdAp0aGUgZmlyc3QgTiBhcmd1bWVudHMgYXJl IGZpeGVkIGF0IHRoZSB2YWx1ZXMgd2l0aCB3aGljaCB0aGlzIGZ1bmN0aW9uCndhcyBjYWxsZWQu CgooZm4gRlVOICZyZXN0IEFSR1MpHwooZGVmYWxpYXMgJ2FwcGx5LXBhcnRpYWxseSAjWzM4NSAi XDMwMFwzMDECBCNcMjA3IiBbbWFrZS1jbG9zdXJlICNbMTI4ICJcMzAyXDMwMVwzMDNcMzAwBFwi XCJcMjA3IiBbVjAgVjEgYXBwbHkgYXBwZW5kXSA2ICJcblxuKGZuICZyZXN0IEFSR1MyKSJdXSA2 ICgjJCAuIDE3Njg0KV0pI0A0MiBSZXR1cm4gdCBpZiBOVU1CRVIgaXMgemVyby4KCihmbiBOVU1C RVIpHwooZGVmYWxpYXMgJ3plcm9wICNbMjU3ICJcMjExXDMwMFVcMjA3IiBbMF0gMyAoIyQgLiAx ODE0NildKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBcMjA3IiBbZnVuY3Rpb24t cHV0IHplcm9wIGNvbXBpbGVyLW1hY3JvIHplcm9wLS1hbm9uLWNtYWNyb10gNCkjQDE3IAoKKGZu IF8gTlVNQkVSKR8KKGRlZmFsaWFzICd6ZXJvcC0tYW5vbi1jbWFjcm8gI1s1MTQgIlwzMDBcMzAx AkVcMjA3IiBbPSAwXSA1ICgjJCAuIDE4MzQ5KV0pI0A0NiBSZXR1cm4gdCBpZiBPQkpFQ1QgaXMg YSBmaXhudW0uCgooZm4gT0JKRUNUKR8KKGRlZmFsaWFzICdmaXhudW1wICNbMjU3ICJcMjExXDI1 MFwyMDUOAAgBWFwyMDUOAFwyMTEJWFwyMDciIFttb3N0LW5lZ2F0aXZlLWZpeG51bSBtb3N0LXBv c2l0aXZlLWZpeG51bV0gMyAoIyQgLiAxODQ0NildKSNANDYgUmV0dXJuIHQgaWYgT0JKRUNUIGlz IGEgYmlnbnVtLgoKKGZuIE9CSkVDVCkfCihkZWZhbGlhcyAnYmlnbnVtcCAjWzI1NyAiXDIxMVwy NTBcMjA1CQBcMzAwASE/XDIwNyIgW2ZpeG51bXBdIDMgKCMkIC4gMTg2MTgpXSkjQDM0NCBSZXR1 cm4gVkFMVUUgd2l0aCBpdHMgYml0cyBzaGlmdGVkIGxlZnQgYnkgQ09VTlQuCklmIENPVU5UIGlz IG5lZ2F0aXZlLCBzaGlmdGluZyBpcyBhY3R1YWxseSB0byB0aGUgcmlnaHQuCkluIHRoaXMgY2Fz ZSwgaWYgVkFMVUUgaXMgYSBuZWdhdGl2ZSBmaXhudW0gdHJlYXQgaXQgYXMgdW5zaWduZWQsCmku ZS4sIHN1YnRyYWN0IDIgKiBgbW9zdC1uZWdhdGl2ZS1maXhudW0nIGZyb20gVkFMVUUgYmVmb3Jl IHNoaWZ0aW5nIGl0LgoKVGhpcyBmdW5jdGlvbiBpcyBwcm92aWRlZCBmb3IgY29tcGF0aWJpbGl0 eS4gIEluIG5ldyBjb2RlLCB1c2UgYGFzaCcKaW5zdGVhZC4KCihmbiBWQUxVRSBDT1VOVCkfCihk ZWZhbGlhcyAnbHNoICNbNTE0ICIBXDMwMldcMjAzJgBcMjExXDMwMldcMjAzJgABCFdcMjAzGQBc MzAzXDMwNAMDRFwiXDIxMFwzMDVcMzA2A1wzMDdcIglcIlwyNjICXDIxMVRcMjYyAVwzMDYCAlwi XDIwNyIgW21vc3QtbmVnYXRpdmUtZml4bnVtIG1vc3QtcG9zaXRpdmUtZml4bnVtIDAgc2lnbmFs IGFyZ3Mtb3V0LW9mLXJhbmdlIGxvZ2FuZCBhc2ggLTFdIDYgKCMkIC4gMTg3NDkpXSkKKGJ5dGUt Y29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzAwXDIwNyIgW2Z1bmN0aW9uLXB1dCBsc2ggY29tcGls ZXItbWFjcm8gbHNoLS1hbm9uLWNtYWNyb10gNCkjQDI1IAoKKGZuIEZPUk0gVkFMVUUgQ09VTlQp HwooZGVmYWxpYXMgJ2xzaC0tYW5vbi1jbWFjcm8gI1s3NzEgIlwzMDBcMzAxBFwzMDJcMzAzBgcl XDIwNyIgW21hY3JvZXhwLXdhcm4tYW5kLXJldHVybiAiYXZvaWQgYGxzaCc7IHVzZSBgYXNoJyBp bnN0ZWFkIiAoc3VzcGljaW91cyBsc2gpIHRdIDkgKCMkIC4gMTk0MTQpXSkjQDE1IAoKKGZuIEZP Uk0gWCkfCihkZWZhbGlhcyAnaW50ZXJuYWwtLWNvbXBpbGVyLW1hY3JvLWNYWHIgI1s1MTQgIgFA XDMwMAEhXDIxMUdcMzAxWlwzMDJcMzAzA1wiXDIwNCoAXDMwNAMhXDIwMyYAAks5XDIwMyYAXDMw NQNLBgZBQgVcIlwyMDdcMzA2XDMwNyFcMjA3XDIxMVwzMTBcMjI0VlwyMDNJAAEBSFwzMTE9XDIw Mz0AXDMxMlwyMDI+AFwzMTMERFwyNjIEXDIxMVNcMjYyAVwyMDIqAANcMjA3IiBbc3ltYm9sLW5h bWUgMiBzdHJpbmctbWF0Y2ggImNbYWRdK3JcXCciIGZib3VuZHAgaW50ZXJuYWwtLWNvbXBpbGVy LW1hY3JvLWNYWHIgZXJyb3IgIkNvbXBpbGVyIG1hY3JvIGZvciBjWFhyIGFwcGxpZWQgdG8gbm9u LWNYWHIgZm9ybSIgMCA5NyBjYXIgY2RyXSA4ICgjJCAuIDE5NjAwKV0pI0A0MSBSZXR1cm4gdGhl IGNhciBvZiB0aGUgY2FyIG9mIFguCgooZm4gWCkfCihkZWZhbGlhcyAnY2FhciAjWzI1NyAiXDIx MUBAXDIwNyIgW10gMiAoIyQgLiAxOTk5NyldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAz I1wzMDBcMjA3IiBbZnVuY3Rpb24tcHV0IGNhYXIgY29tcGlsZXItbWFjcm8gaW50ZXJuYWwtLWNv bXBpbGVyLW1hY3JvLWNYWHJdIDQpI0A0MSBSZXR1cm4gdGhlIGNhciBvZiB0aGUgY2RyIG9mIFgu CgooZm4gWCkfCihkZWZhbGlhcyAnY2FkciAjWzI1NyAiXDIxMUFAXDIwNyIgW10gMiAoIyQgLiAy MDIwNCldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBcMjA3IiBbZnVuY3Rpb24t cHV0IGNhZHIgY29tcGlsZXItbWFjcm8gaW50ZXJuYWwtLWNvbXBpbGVyLW1hY3JvLWNYWHJdIDQp I0A0MSBSZXR1cm4gdGhlIGNkciBvZiB0aGUgY2FyIG9mIFguCgooZm4gWCkfCihkZWZhbGlhcyAn Y2RhciAjWzI1NyAiXDIxMUBBXDIwNyIgW10gMiAoIyQgLiAyMDQxMSldKQooYnl0ZS1jb2RlICJc MzAwXDMwMVwzMDJcMzAzI1wzMDBcMjA3IiBbZnVuY3Rpb24tcHV0IGNkYXIgY29tcGlsZXItbWFj cm8gaW50ZXJuYWwtLWNvbXBpbGVyLW1hY3JvLWNYWHJdIDQpI0A0MSBSZXR1cm4gdGhlIGNkciBv ZiB0aGUgY2RyIG9mIFguCgooZm4gWCkfCihkZWZhbGlhcyAnY2RkciAjWzI1NyAiXDIxMUFBXDIw NyIgW10gMiAoIyQgLiAyMDYxOCldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBc MjA3IiBbZnVuY3Rpb24tcHV0IGNkZHIgY29tcGlsZXItbWFjcm8gaW50ZXJuYWwtLWNvbXBpbGVy LW1hY3JvLWNYWHJdIDQpI0A1OCBSZXR1cm4gdGhlIGBjYXInIG9mIHRoZSBgY2FyJyBvZiB0aGUg YGNhcicgb2YgWC4KCihmbiBYKR8KKGRlZmFsaWFzICdjYWFhciAjWzI1NyAiXDIxMUBAQFwyMDci IFtdIDIgKCMkIC4gMjA4MjUpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzAwXDIw NyIgW2Z1bmN0aW9uLXB1dCBjYWFhciBjb21waWxlci1tYWNybyBpbnRlcm5hbC0tY29tcGlsZXIt bWFjcm8tY1hYcl0gNCkjQDU4IFJldHVybiB0aGUgYGNhcicgb2YgdGhlIGBjYXInIG9mIHRoZSBg Y2RyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NhYWRyICNbMjU3ICJcMjExQUBAXDIwNyIg W10gMiAoIyQgLiAyMTA1MildKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBcMjA3 IiBbZnVuY3Rpb24tcHV0IGNhYWRyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1t YWNyby1jWFhyXSA0KSNANTggUmV0dXJuIHRoZSBgY2FyJyBvZiB0aGUgYGNkcicgb2YgdGhlIGBj YXInIG9mIFguCgooZm4gWCkfCihkZWZhbGlhcyAnY2FkYXIgI1syNTcgIlwyMTFAQUBcMjA3IiBb XSAyICgjJCAuIDIxMjc5KV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDci IFtmdW5jdGlvbi1wdXQgY2FkYXIgY29tcGlsZXItbWFjcm8gaW50ZXJuYWwtLWNvbXBpbGVyLW1h Y3JvLWNYWHJdIDQpI0A1OCBSZXR1cm4gdGhlIGBjYXInIG9mIHRoZSBgY2RyJyBvZiB0aGUgYGNk cicgb2YgWC4KCihmbiBYKR8KKGRlZmFsaWFzICdjYWRkciAjWzI1NyAiXDIxMUFBQFwyMDciIFtd IDIgKCMkIC4gMjE1MDYpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzAwXDIwNyIg W2Z1bmN0aW9uLXB1dCBjYWRkciBjb21waWxlci1tYWNybyBpbnRlcm5hbC0tY29tcGlsZXItbWFj cm8tY1hYcl0gNCkjQDU4IFJldHVybiB0aGUgYGNkcicgb2YgdGhlIGBjYXInIG9mIHRoZSBgY2Fy JyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NkYWFyICNbMjU3ICJcMjExQEBBXDIwNyIgW10g MiAoIyQgLiAyMTczMyldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBcMjA3IiBb ZnVuY3Rpb24tcHV0IGNkYWFyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNy by1jWFhyXSA0KSNANTggUmV0dXJuIHRoZSBgY2RyJyBvZiB0aGUgYGNhcicgb2YgdGhlIGBjZHIn IG9mIFguCgooZm4gWCkfCihkZWZhbGlhcyAnY2RhZHIgI1syNTcgIlwyMTFBQEFcMjA3IiBbXSAy ICgjJCAuIDIxOTYwKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtm dW5jdGlvbi1wdXQgY2RhZHIgY29tcGlsZXItbWFjcm8gaW50ZXJuYWwtLWNvbXBpbGVyLW1hY3Jv LWNYWHJdIDQpI0A1OCBSZXR1cm4gdGhlIGBjZHInIG9mIHRoZSBgY2RyJyBvZiB0aGUgYGNhcicg b2YgWC4KCihmbiBYKR8KKGRlZmFsaWFzICdjZGRhciAjWzI1NyAiXDIxMUBBQVwyMDciIFtdIDIg KCMkIC4gMjIxODcpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzAwXDIwNyIgW2Z1 bmN0aW9uLXB1dCBjZGRhciBjb21waWxlci1tYWNybyBpbnRlcm5hbC0tY29tcGlsZXItbWFjcm8t Y1hYcl0gNCkjQDU4IFJldHVybiB0aGUgYGNkcicgb2YgdGhlIGBjZHInIG9mIHRoZSBgY2RyJyBv ZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NkZGRyICNbMjU3ICJcMjExQUFBXDIwNyIgW10gMiAo IyQgLiAyMjQxNCldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBcMjA3IiBbZnVu Y3Rpb24tcHV0IGNkZGRyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNyby1j WFhyXSA0KSNANzEgUmV0dXJuIHRoZSBgY2FyJyBvZiB0aGUgYGNhcicgb2YgdGhlIGBjYXInIG9m IHRoZSBgY2FyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NhYWFhciAjWzI1NyAiXDIxMUBA QEBcMjA3IiBbXSAyICgjJCAuIDIyNjQxKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMj XDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgY2FhYWFyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1j b21waWxlci1tYWNyby1jWFhyXSA0KSNANzEgUmV0dXJuIHRoZSBgY2FyJyBvZiB0aGUgYGNhcicg b2YgdGhlIGBjYXInIG9mIHRoZSBgY2RyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NhYWFk ciAjWzI1NyAiXDIxMUFAQEBcMjA3IiBbXSAyICgjJCAuIDIyODg0KV0pCihieXRlLWNvZGUgIlwz MDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgY2FhYWRyIGNvbXBpbGVyLW1h Y3JvIGludGVybmFsLS1jb21waWxlci1tYWNyby1jWFhyXSA0KSNANzEgUmV0dXJuIHRoZSBgY2Fy JyBvZiB0aGUgYGNhcicgb2YgdGhlIGBjZHInIG9mIHRoZSBgY2FyJyBvZiBYLgoKKGZuIFgpHwoo ZGVmYWxpYXMgJ2NhYWRhciAjWzI1NyAiXDIxMUBBQEBcMjA3IiBbXSAyICgjJCAuIDIzMTI3KV0p CihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgY2Fh ZGFyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNyby1jWFhyXSA0KSNANzEg UmV0dXJuIHRoZSBgY2FyJyBvZiB0aGUgYGNhcicgb2YgdGhlIGBjZHInIG9mIHRoZSBgY2RyJyBv ZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NhYWRkciAjWzI1NyAiXDIxMUFBQEBcMjA3IiBbXSAy ICgjJCAuIDIzMzcwKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtm dW5jdGlvbi1wdXQgY2FhZGRyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNy by1jWFhyXSA0KSNANzEgUmV0dXJuIHRoZSBgY2FyJyBvZiB0aGUgYGNkcicgb2YgdGhlIGBjYXIn IG9mIHRoZSBgY2FyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NhZGFhciAjWzI1NyAiXDIx MUBAQUBcMjA3IiBbXSAyICgjJCAuIDIzNjEzKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwz MDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgY2FkYWFyIGNvbXBpbGVyLW1hY3JvIGludGVybmFs LS1jb21waWxlci1tYWNyby1jWFhyXSA0KSNANzEgUmV0dXJuIHRoZSBgY2FyJyBvZiB0aGUgYGNk cicgb2YgdGhlIGBjYXInIG9mIHRoZSBgY2RyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2Nh ZGFkciAjWzI1NyAiXDIxMUFAQUBcMjA3IiBbXSAyICgjJCAuIDIzODU2KV0pCihieXRlLWNvZGUg IlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgY2FkYWRyIGNvbXBpbGVy LW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNyby1jWFhyXSA0KSNANzEgUmV0dXJuIHRoZSBg Y2FyJyBvZiB0aGUgYGNkcicgb2YgdGhlIGBjZHInIG9mIHRoZSBgY2FyJyBvZiBYLgoKKGZuIFgp HwooZGVmYWxpYXMgJ2NhZGRhciAjWzI1NyAiXDIxMUBBQUBcMjA3IiBbXSAyICgjJCAuIDI0MDk5 KV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQg Y2FkZGFyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNyby1jWFhyXSA0KSNA NzEgUmV0dXJuIHRoZSBgY2FyJyBvZiB0aGUgYGNkcicgb2YgdGhlIGBjZHInIG9mIHRoZSBgY2Ry JyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NhZGRkciAjWzI1NyAiXDIxMUFBQUBcMjA3IiBb XSAyICgjJCAuIDI0MzQyKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDci IFtmdW5jdGlvbi1wdXQgY2FkZGRyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1t YWNyby1jWFhyXSA0KSNANzEgUmV0dXJuIHRoZSBgY2RyJyBvZiB0aGUgYGNhcicgb2YgdGhlIGBj YXInIG9mIHRoZSBgY2FyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NkYWFhciAjWzI1NyAi XDIxMUBAQEFcMjA3IiBbXSAyICgjJCAuIDI0NTg1KV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMw MlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgY2RhYWFyIGNvbXBpbGVyLW1hY3JvIGludGVy bmFsLS1jb21waWxlci1tYWNyby1jWFhyXSA0KSNANzEgUmV0dXJuIHRoZSBgY2RyJyBvZiB0aGUg YGNhcicgb2YgdGhlIGBjYXInIG9mIHRoZSBgY2RyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMg J2NkYWFkciAjWzI1NyAiXDIxMUFAQEFcMjA3IiBbXSAyICgjJCAuIDI0ODI4KV0pCihieXRlLWNv ZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgY2RhYWRyIGNvbXBp bGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNyby1jWFhyXSA0KSNANzEgUmV0dXJuIHRo ZSBgY2RyJyBvZiB0aGUgYGNhcicgb2YgdGhlIGBjZHInIG9mIHRoZSBgY2FyJyBvZiBYLgoKKGZu IFgpHwooZGVmYWxpYXMgJ2NkYWRhciAjWzI1NyAiXDIxMUBBQEFcMjA3IiBbXSAyICgjJCAuIDI1 MDcxKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1w dXQgY2RhZGFyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNyby1jWFhyXSA0 KSNANzEgUmV0dXJuIHRoZSBgY2RyJyBvZiB0aGUgYGNhcicgb2YgdGhlIGBjZHInIG9mIHRoZSBg Y2RyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NkYWRkciAjWzI1NyAiXDIxMUFBQEFcMjA3 IiBbXSAyICgjJCAuIDI1MzE0KV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwy MDciIFtmdW5jdGlvbi1wdXQgY2RhZGRyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxl ci1tYWNyby1jWFhyXSA0KSNANzEgUmV0dXJuIHRoZSBgY2RyJyBvZiB0aGUgYGNkcicgb2YgdGhl IGBjYXInIG9mIHRoZSBgY2FyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NkZGFhciAjWzI1 NyAiXDIxMUBAQUFcMjA3IiBbXSAyICgjJCAuIDI1NTU3KV0pCihieXRlLWNvZGUgIlwzMDBcMzAx XDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgY2RkYWFyIGNvbXBpbGVyLW1hY3JvIGlu dGVybmFsLS1jb21waWxlci1tYWNyby1jWFhyXSA0KSNANzEgUmV0dXJuIHRoZSBgY2RyJyBvZiB0 aGUgYGNkcicgb2YgdGhlIGBjYXInIG9mIHRoZSBgY2RyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxp YXMgJ2NkZGFkciAjWzI1NyAiXDIxMUFAQUFcMjA3IiBbXSAyICgjJCAuIDI1ODAwKV0pCihieXRl LWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgY2RkYWRyIGNv bXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNyby1jWFhyXSA0KSNANzEgUmV0dXJu IHRoZSBgY2RyJyBvZiB0aGUgYGNkcicgb2YgdGhlIGBjZHInIG9mIHRoZSBgY2FyJyBvZiBYLgoK KGZuIFgpHwooZGVmYWxpYXMgJ2NkZGRhciAjWzI1NyAiXDIxMUBBQUFcMjA3IiBbXSAyICgjJCAu IDI2MDQzKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlv bi1wdXQgY2RkZGFyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21waWxlci1tYWNyby1jWFhy XSA0KSNANzEgUmV0dXJuIHRoZSBgY2RyJyBvZiB0aGUgYGNkcicgb2YgdGhlIGBjZHInIG9mIHRo ZSBgY2RyJyBvZiBYLgoKKGZuIFgpHwooZGVmYWxpYXMgJ2NkZGRkciAjWzI1NyAiXDIxMUFBQUFc MjA3IiBbXSAyICgjJCAuIDI2Mjg2KV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMw MFwyMDciIFtmdW5jdGlvbi1wdXQgY2RkZGRyIGNvbXBpbGVyLW1hY3JvIGludGVybmFsLS1jb21w aWxlci1tYWNyby1jWFhyXSA0KSNAMjE5IFJldHVybiB0aGUgbGFzdCBsaW5rIG9mIExJU1QuICBJ dHMgY2FyIGlzIHRoZSBsYXN0IGVsZW1lbnQuCklmIExJU1QgaXMgbmlsLCByZXR1cm4gbmlsLgpJ ZiBOIGlzIG5vbi1uaWwsIHJldHVybiB0aGUgTnRoLXRvLWxhc3QgbGluayBvZiBMSVNULgpJZiBO IGlzIGJpZ2dlciB0aGFuIHRoZSBsZW5ndGggb2YgTElTVCwgcmV0dXJuIExJU1QuCgooZm4gTElT VCAmb3B0aW9uYWwgTikfCihkZWZhbGlhcyAnbGFzdCAjWzUxMyAiXDIxMVwyMDMbAFwyMTFcMzAw WVwyMDUlAFwzMDECIQEBV1wyMDMZAFwyMTECWgNcMjMzXDIwNwJcMjA3AVwyMDUlAFwzMDECIVMC XDIzM1wyMDciIFswIHNhZmUtbGVuZ3RoXSA1ICgjJCAuIDI2NTMwKV0pCihieXRlLWNvZGUgIlwz MDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgbGFzdCBzaWRlLWVmZmVjdC1m cmVlIHRdIDQpI0AxOTEgUmV0dXJuIGEgY29weSBvZiBMSVNUIHdpdGggdGhlIGxhc3QgTiBlbGVt ZW50cyByZW1vdmVkLgpJZiBOIGlzIG9taXR0ZWQgb3IgbmlsLCByZXR1cm4gYSBjb3B5IG9mIExJ U1Qgd2l0aG91dCBpdHMgbGFzdCBlbGVtZW50LgpJZiBOIGlzIHplcm8gb3IgbmVnYXRpdmUsIHJl dHVybiBMSVNULgoKKGZuIExJU1QgJm9wdGlvbmFsIE4pHwooZGVmYWxpYXMgJ2J1dGxhc3QgI1s1 MTMgIlwyMTFcMjA0BwBcMzAwXDI2MgFcMjExXDMwMVhcMjAzDwABXDIwN1wzMDICRwJaA1wiXDIw NyIgWzEgMCB0YWtlXSA1ICgjJCAuIDI2OTc2KV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwz MDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgYnV0bGFzdCBzaWRlLWVmZmVjdC1mcmVlIHRdIDQp I0AxMTYgTW9kaWZ5IExJU1QgdG8gcmVtb3ZlIHRoZSBsYXN0IE4gZWxlbWVudHMuCklmIE4gaXMg b21pdHRlZCBvciBuaWwsIHJlbW92ZSB0aGUgbGFzdCBlbGVtZW50LgoKKGZuIExJU1QgJm9wdGlv bmFsIE4pHwooZGVmYWxpYXMgJ25idXRsYXN0ICNbNTEzICIBRwFcMjA0CQBcMzAwXDI2MgIBAVdc MjA1HwABXDMwMVZcMjAzHgBcMjExUwJaA1wyMzNcMzAyXDI0MVwyMTACXDIwNyIgWzEgMCBuaWxd IDUgKCMkIC4gMjczNjYpXSkjQDI1NiBEZXN0cnVjdGl2ZWx5IHJlbW92ZSBgZXF1YWwnIGR1cGxp Y2F0ZXMgZnJvbSBMSVNULgpTdG9yZSB0aGUgcmVzdWx0IGluIExJU1QgYW5kIHJldHVybiBpdC4g IExJU1QgbXVzdCBiZSBhIHByb3BlciBsaXN0LgpPZiBzZXZlcmFsIGBlcXVhbCcgb2NjdXJyZW5j ZXMgb2YgYW4gZWxlbWVudCBpbiBMSVNULCB0aGUgZmlyc3QKb25lIGlzIGtlcHQuICBTZWUgYHNl cS11bmlxJyBmb3Igbm9uLWRlc3RydWN0aXZlIG9wZXJhdGlvbi4KCihmbiBMSVNUKR8KKGRlZmFs aWFzICdkZWxldGUtZHVwcyAjWzI1NyAiXDIxMUdcMjExXDMwMFZcMjAzQgBcMzAxXDMwMlwzMDNc MzA0BCQCXDMwNVwzMDYFQFwzMDcFI1wyMTABQVwyMTFcMjYyAlwyMDM/AFwyMTFAXDMxMAEFXCJc MjAzMQACAkFcMjQxXDI2NgJcMjAyFwBcMzA2AVwzMDcGBiNcMjEwAVwyNjIDXDIxMFwyMDIXAFwy NjYEXDIwNwFcMjExXDIwM1cAXDIxMVwzMTECQANBXCJcMjQxXDIxMFwyMTFBXDI2MgFcMjAyQwBc MjY2AlwyMDciIFsxMDAgbWFrZS1oYXNoLXRhYmxlIDp0ZXN0IGVxdWFsIDpzaXplIG5pbCBwdXRo YXNoIHQgZ2V0aGFzaCBkZWxldGVdIDEwICgjJCAuIDI3NjExKV0pI0AxNjkgRGVzdHJ1Y3RpdmVs eSByZW1vdmUgYGVxdWFsJyBjb25zZWN1dGl2ZSBkdXBsaWNhdGVzIGZyb20gTElTVC4KRmlyc3Qg YW5kIGxhc3QgZWxlbWVudHMgYXJlIGNvbnNpZGVyZWQgY29uc2VjdXRpdmUgaWYgQ0lSQ1VMQVIg aXMKbm9uLW5pbC4KCihmbiBMSVNUICZvcHRpb25hbCBDSVJDVUxBUikfCihkZWZhbGlhcyAnZGVs ZXRlLWNvbnNlY3V0aXZlLWR1cHMgI1s1MTMgIgFcMzAwAUFcMjAzIwABQAJBQFwyMzJcMjAzGQAB XDIxMUFBXDI0MVwyMTBcMjAyAgABXDI2MgEBQVwyNjICXDIwMgIAAlwyMDM3AFwyMTFcMjAzNwAB QARAXDIzMlwyMDM3AFwyMTFcMzAwXDI0MVwyMTBcMjY2AgFcMjA3IiBbbmlsXSA2ICgjJCAuIDI4 MjAzKV0pI0AxMzA3IFJldHVybiBhIHNlcXVlbmNlIG9mIG51bWJlcnMgZnJvbSBGUk9NIHRvIFRP IChib3RoIGluY2x1c2l2ZSkgYXMgYSBsaXN0LgpJTkMgaXMgdGhlIGluY3JlbWVudCB1c2VkIGJl dHdlZW4gbnVtYmVycyBpbiB0aGUgc2VxdWVuY2UgYW5kIGRlZmF1bHRzIHRvIDEuClNvLCB0aGUg TnRoIGVsZW1lbnQgb2YgdGhlIGxpc3QgaXMgKCsgRlJPTSAoKiBOIElOQykpIHdoZXJlIE4gY291 bnRzIGZyb20KemVyby4gIFRPIGlzIGluY2x1ZGVkIG9ubHkgaWYgdGhlcmUgaXMgYW4gTiBmb3Ig d2hpY2ggVE8gPSBGUk9NICsgTiAqIElOQy4KSWYgVE8gaXMgbmlsIG9yIG51bWVyaWNhbGx5IGVx dWFsIHRvIEZST00sIHJldHVybiAoRlJPTSkuCklmIElOQyBpcyBwb3NpdGl2ZSBhbmQgVE8gaXMg bGVzcyB0aGFuIEZST00sIG9yIElOQyBpcyBuZWdhdGl2ZQphbmQgVE8gaXMgbGFyZ2VyIHRoYW4g RlJPTSwgcmV0dXJuIG5pbC4KSWYgSU5DIGlzIHplcm8gYW5kIFRPIGlzIG5laXRoZXIgbmlsIG5v ciBudW1lcmljYWxseSBlcXVhbCB0bwpGUk9NLCBzaWduYWwgYW4gZXJyb3IuCgpUaGlzIGZ1bmN0 aW9uIGlzIHByaW1hcmlseSBkZXNpZ25lZCBmb3IgaW50ZWdlciBhcmd1bWVudHMuCk5ldmVydGhl bGVzcywgRlJPTSwgVE8gYW5kIElOQyBjYW4gYmUgaW50ZWdlciBvciBmbG9hdC4gIEhvd2V2ZXIs CmZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgaXMgaW5leGFjdC4gIEZvciBpbnN0YW5jZSwgZGVw ZW5kaW5nIG9uCnRoZSBtYWNoaW5lLCBpdCBtYXkgcXVpdGUgd2VsbCBoYXBwZW4gdGhhdAoobnVt YmVyLXNlcXVlbmNlIDAuNCAwLjYgMC4yKSByZXR1cm5zIHRoZSBvbmUgZWxlbWVudCBsaXN0ICgw LjQpLAp3aGVyZWFzIChudW1iZXItc2VxdWVuY2UgMC40IDAuOCAwLjIpIHJldHVybnMgYSBsaXN0 IHdpdGggdGhyZWUKZWxlbWVudHMuICBUaHVzLCBpZiBzb21lIG9mIHRoZSBhcmd1bWVudHMgYXJl IGZsb2F0cyBhbmQgb25lIHdhbnRzCnRvIG1ha2Ugc3VyZSB0aGF0IFRPIGlzIGluY2x1ZGVkLCBv bmUgbWF5IGhhdmUgdG8gZXhwbGljaXRseSB3cml0ZQpUTyBhcyAoKyBGUk9NICgqIE4gSU5DKSkg b3IgdXNlIGEgdmFyaWFibGUgd2hvc2UgdmFsdWUgd2FzCmNvbXB1dGVkIHdpdGggdGhpcyBleGFj dCBleHByZXNzaW9uLiAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiwKb2YgY291cnNlLCBhbHNvIHJl cGxhY2UgVE8gd2l0aCBhIHNsaWdodGx5IGxhcmdlciB2YWx1ZQoob3IgYSBzbGlnaHRseSBtb3Jl IG5lZ2F0aXZlIHZhbHVlIGlmIElOQyBpcyBuZWdhdGl2ZSkuCgooZm4gRlJPTSAmb3B0aW9uYWwg VE8gSU5DKR8KKGRlZmFsaWFzICdudW1iZXItc2VxdWVuY2UgI1s3NjkgIgFcMjAzXG4AAgJVXDIw Mw0AAkNcMjA3XDIxMVwyMDQUAFwzMDBcMjYyAVwyMTFcMzAxVVwyMDMeAFwzMDJcMzAzIVwyMTBc MzA0XDMwMQQDXDMwMVZcMjAzQABcMjExBVhcMjAzWQBcMjExA0JcMjYyAwFUXDI2MgIFAgVfXFxc MjYyAVwyMDInAFwyMTEFWVwyMDNZAFwyMTEDQlwyNjIDAVRcMjYyAgUCBV9cXFwyNjIBXDIwMkAA AlwyMzdcMjA3IiBbMSAwIGVycm9yICJUaGUgaW5jcmVtZW50IGNhbiBub3QgYmUgemVybyIgbmls XSA5ICgjJCAuIDI4NTcwKV0pI0AyNTIgTWFrZSBhIGNvcHkgb2YgVFJFRS4KSWYgVFJFRSBpcyBh IGNvbnMgY2VsbCwgdGhpcyByZWN1cnNpdmVseSBjb3BpZXMgYm90aCBpdHMgY2FyIGFuZCBpdHMg Y2RyLgpDb250cmFzdCB0byBgY29weS1zZXF1ZW5jZScsIHdoaWNoIGNvcGllcyBvbmx5IGFsb25n IHRoZSBjZHJzLiAgV2l0aCBzZWNvbmQKYXJndW1lbnQgVkVDUCwgdGhpcyBjb3BpZXMgdmVjdG9y cyBhcyB3ZWxsIGFzIGNvbnNlcy4KCihmbiBUUkVFICZvcHRpb25hbCBWRUNQKR8KKGRlZmFsaWFz ICdjb3B5LXRyZWUgI1s1MTMgIgE6XDIwM0cAXDMwMAI6XDIwMzEAAkADQDpcMjA0HgACXDIwMyUA XDMwMQRAIVwyMDMlAFwzMDIEQARcIlwyNjIBXDIxMQJCXDI2NlwyMDICQVwyNjIDXDIwMgYAXDIx MVwyMzcCXDIwM0QAXDMwMQQhXDIwM0QAXDMwMgQEXCJcMjAyRQADXDI0NFwyMDdcMjExXDIwM3EA XDMwMQIhXDIwM3EAXDMwMwIhXDIxMVwyNjIDR1wyMTFTXDIxMVwyNjICXDMwNFlcMjAzbwACAVwz MDIFBEgFXCJJXDIxMFwyMDJYAAJcMjA3AVwyMDciIFtuaWwgdmVjdG9ycCBjb3B5LXRyZWUgY29w eS1zZXF1ZW5jZSAwXSA4ICgjJCAuIDMwMTc3KV0pI0A1MTEgRmluZCBvYmplY3QgS0VZIGluIGEg cHNldWRvLWFsaXN0IEFMSVNULgpBTElTVCBpcyBhIGxpc3Qgb2YgY29uc2VzIG9yIG9iamVjdHMu ICBFYWNoIGVsZW1lbnQKIChvciB0aGUgZWxlbWVudCdzIGNhciwgaWYgaXQgaXMgYSBjb25zKSBp cyBjb21wYXJlZCB3aXRoIEtFWSBieQogY2FsbGluZyBURVNULCB3aXRoIHR3byBhcmd1bWVudHM6 IChpKSB0aGUgZWxlbWVudCBvciBpdHMgY2FyLAogYW5kIChpaSkgS0VZLgpJZiB0aGF0IGlzIG5v bi1uaWwsIHRoZSBlbGVtZW50IG1hdGNoZXM7IHRoZW4gYGFzc29jLWRlZmF1bHQnCiByZXR1cm5z IHRoZSBlbGVtZW50J3MgY2RyLCBpZiBpdCBpcyBhIGNvbnMsIG9yIERFRkFVTFQgaWYgdGhlCiBl bGVtZW50IGlzIG5vdCBhIGNvbnMuCgpJZiBubyBlbGVtZW50IG1hdGNoZXMsIHRoZSB2YWx1ZSBp cyBuaWwuCklmIFRFU1QgaXMgb21pdHRlZCBvciBuaWwsIGBlcXVhbCcgaXMgdXNlZC4KCihmbiBL RVkgQUxJU1QgJm9wdGlvbmFsIFRFU1QgREVGQVVMVCkfCihkZWZhbGlhcyAnYXNzb2MtZGVmYXVs dCAjWzEwMjYgIlwzMDADXDMwMAFcMjAzOwACXDIwNDsAAUAFXDIwNhIAXDMwMQE6XDIwMxwAAUBc MjAyHQABBglcIlwyMDMzAFwzMDJcMjYyBFwyMTE6XDIwMzAAXDIxMUFcMjAyMQAEXDI2MgJcMjEw AUFcMjYyAlwyMDIDAFwyMDciIFtuaWwgZXF1YWwgdF0gMTEgKCMkIC4gMzA3NTkpXSkjQDI1OCBM aWtlIGBtZW1iZXInLCBidXQgaWdub3JlIGRpZmZlcmVuY2VzIGluIGNhc2UgYW5kIHRleHQgcmVw cmVzZW50YXRpb24uCkVMVCBtdXN0IGJlIGEgc3RyaW5nLiAgVXBwZXItY2FzZSBhbmQgbG93ZXIt Y2FzZSBsZXR0ZXJzIGFyZSB0cmVhdGVkIGFzIGVxdWFsLgpVbmlieXRlIHN0cmluZ3MgYXJlIGNv bnZlcnRlZCB0byBtdWx0aWJ5dGUgZm9yIGNvbXBhcmlzb24uCk5vbi1zdHJpbmdzIGluIExJU1Qg YXJlIGlnbm9yZWQuCgooZm4gRUxUIExJU1QpHwooZGVmYWxpYXMgJ21lbWJlci1pZ25vcmUtY2Fz ZSAjWzUxNCAiXDIxMVwyMDMlAFwyMTFAO1wyMDMeAAEBQFwzMDACXDMwMVwzMDIEXDMwMVwzMDJc MzAzJgdcMzAzPVwyNjZcMjAyXDIwNCUAXDIxMUFcMjYyAVwyMDIAAFwyMDciIFtjb21wYXJlLXN0 cmluZ3MgMCBuaWwgdF0gMTIgKCMkIC4gMzE0NjMpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAy XDMwMyNcMzAwXDIwNyIgW2Z1bmN0aW9uLXB1dCBtZW1iZXItaWdub3JlLWNhc2Ugc2lkZS1lZmZl Y3QtZnJlZSB0XSA0KSNAMjA1IERlbGV0ZSBmcm9tIEFMSVNUIGFsbCBlbGVtZW50cyB3aG9zZSBj YXIgaXMgS0VZLgpDb21wYXJlIGtleXMgd2l0aCBURVNULiAgRGVmYXVsdHMgdG8gYGVxdWFsJy4K UmV0dXJuIHRoZSBtb2RpZmllZCBhbGlzdC4KRWxlbWVudHMgb2YgQUxJU1QgdGhhdCBhcmUgbm90 IGNvbnNlcyBhcmUgaWdub3JlZC4KCihmbiBLRVkgQUxJU1QgJm9wdGlvbmFsIFRFU1QpHwooZGVm YWxpYXMgJ2Fzc29jLWRlbGV0ZS1hbGwgI1s3NzAgIlwyMTFcMjA0BwBcMzAwXDI2MgEBQDpcMjAz HQBcMjExAkBABFwiXDIwMx0AAUFcMjYyAlwyMDIHAAFcMzAxAUFcMjExXDI2MgJcMjAzRQBcMjEx QDpcMjAzPwACAUBABgZcIlwyMDM/AAEBQVwyNDFcMjEwXDIwMh8AXDIxMVwyNjICXDIwMh8AXDI2 NgIBXDIwNyIgW2VxdWFsIG5pbF0gOCAoIyQgLiAzMTk5NildKSNAMTUyIERlbGV0ZSBmcm9tIEFM SVNUIGFsbCBlbGVtZW50cyB3aG9zZSBjYXIgaXMgYGVxJyB0byBLRVkuClJldHVybiB0aGUgbW9k aWZpZWQgYWxpc3QuCkVsZW1lbnRzIG9mIEFMSVNUIHRoYXQgYXJlIG5vdCBjb25zZXMgYXJlIGln bm9yZWQuCgooZm4gS0VZIEFMSVNUKR8KKGRlZmFsaWFzICdhc3NxLWRlbGV0ZS1hbGwgI1s1MTQg IlwzMDACAlwzMDEjXDIwNyIgW2Fzc29jLWRlbGV0ZS1hbGwgZXFdIDYgKCMkIC4gMzI0MTkpXSkj QDE1NiBEZWxldGUgZnJvbSBBTElTVCBhbGwgZWxlbWVudHMgd2hvc2UgY2RyIGlzIGBlcScgdG8g VkFMVUUuClJldHVybiB0aGUgbW9kaWZpZWQgYWxpc3QuCkVsZW1lbnRzIG9mIEFMSVNUIHRoYXQg YXJlIG5vdCBjb25zZXMgYXJlIGlnbm9yZWQuCgooZm4gVkFMVUUgQUxJU1QpHwooZGVmYWxpYXMg J3Jhc3NxLWRlbGV0ZS1hbGwgI1s1MTQgIlwyMTFAOlwyMDMVAFwyMTFAQQI9XDIwMxUAXDIxMUFc MjYyAVwyMDIAAFwyMTFcMzAwAUFcMjExXDI2MgJcMjAzOwBcMjExQDpcMjAzNQBcMjExQEEEPVwy MDM1AAEBQVwyNDFcMjEwXDIwMhcAXDIxMVwyNjICXDIwMhcAXDI2NgJcMjA3IiBbbmlsXSA2ICgj JCAuIDMyNjY2KV0pI0A5NjUgRmluZCB0aGUgZmlyc3QgZWxlbWVudCBvZiBBTElTVCB3aG9zZSBg Y2FyJyBlcXVhbHMgS0VZIGFuZCByZXR1cm4gaXRzIGBjZHInLgpJZiBLRVkgaXMgbm90IGZvdW5k IGluIEFMSVNULCByZXR1cm4gREVGQVVMVC4KRXF1YWxpdHkgd2l0aCBLRVkgaXMgdGVzdGVkIGJ5 IFRFU1RGTiwgZGVmYXVsdGluZyB0byBgZXEnLgoKWW91IGNhbiB1c2UgYGFsaXN0LWdldCcgaW4g InBsYWNlIGV4cHJlc3Npb25zIjsgaS5lLiwgYXMgYQpnZW5lcmFsaXplZCB2YXJpYWJsZS4gIERv aW5nIHRoaXMgd2lsbCBtb2RpZnkgYW4gZXhpc3RpbmcKYXNzb2NpYXRpb24gKG1vcmUgcHJlY2lz ZWx5LCB0aGUgZmlyc3Qgb25lIGlmIG11bHRpcGxlIGV4aXN0KSwgb3IKYWRkIGEgbmV3IGVsZW1l bnQgdG8gdGhlIGJlZ2lubmluZyBvZiBBTElTVCwgZGVzdHJ1Y3RpdmVseQptb2RpZnlpbmcgdGhl IGxpc3Qgc3RvcmVkIGluIEFMSVNULgoKRXhhbXBsZToKCiAgIChzZXRxIGZvbyBcPScoKGEgLiAw KSkpCiAgIChzZXRmIChhbGlzdC1nZXQgXD0nYSBmb28pIDEKICAgICAgICAgKGFsaXN0LWdldCBc PSdiIGZvbykgMikKCiAgIGZvbyA9PiAoKGIgLiAyKSAoYSAuIDEpKQoKCldoZW4gdXNpbmcgaXQg dG8gc2V0IGEgdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50IFJFTU9WRSBub24tbmlsCm1lYW5zIHRv IHJlbW92ZSBLRVkgZnJvbSBBTElTVCBpZiB0aGUgbmV3IHZhbHVlIGlzIGBlcWwnIHRvCkRFRkFV TFQgKG1vcmUgcHJlY2lzZWx5IHRoZSBmaXJzdCBmb3VuZCBhc3NvY2lhdGlvbiB3aWxsIGJlCmRl bGV0ZWQgZnJvbSB0aGUgYWxpc3QpLgoKRXhhbXBsZToKCiAgKHNldHEgZm9vIFw9JygoYSAuIDEp IChiIC4gMikpKQogIChzZXRmIChhbGlzdC1nZXQgXD0nYiBmb28gbmlsIFw9J3JlbW92ZSkgbmls KQoKICBmb28gPT4gKChhIC4gMSkpCgooZm4gS0VZIEFMSVNUICZvcHRpb25hbCBERUZBVUxUIFJF TU9WRSBURVNURk4pHwooZGVmYWxpYXMgJ2FsaXN0LWdldCAjWzEyODIgIlwyMTFcMjA0XG4ABARc MjM2XDIwMg8AXDMwMAUFAyNcMjExXDIwMxYAXDIxMUFcMjA3A1wyMDciIFthc3NvY10gOSAoIyQg LiAzMzAyMSldKSNAMjQyIFJldHVybiBhIGNvcHkgb2YgU0VRIHdpdGggYWxsIG9jY3VycmVuY2Vz IG9mIEVMVCByZW1vdmVkLgpTRVEgbXVzdCBiZSBhIGxpc3QsIHZlY3Rvciwgb3Igc3RyaW5nLiAg VGhlIGNvbXBhcmlzb24gaXMgZG9uZSB3aXRoIGBlcXVhbCcuCkNvbnRyYXJ5IHRvIGBkZWxldGUn LCB0aGlzIGRvZXMgbm90IHVzZSBzaWRlLWVmZmVjdHMsIGFuZCB0aGUgYXJndW1lbnQKU0VRIGlz IG5vdCBtb2RpZmllZC4KCihmbiBFTFQgU0VRKR8KKGRlZmFsaWFzICdyZW1vdmUgI1s1MTQgIlwy MTE8XDIwNFxuAFwzMDACAlwiXDIwN1wzMDACXDMwMQMhXCJcMjA3IiBbZGVsZXRlIGNvcHktc2Vx dWVuY2VdIDYgKCMkIC4gMzQxMDIpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzAw XDIwNyIgW2Z1bmN0aW9uLXB1dCByZW1vdmUgc2lkZS1lZmZlY3QtZnJlZSB0XSA0KSNAMTkxIFJl dHVybiBMSVNUIHdpdGggYWxsIG9jY3VycmVuY2VzIG9mIEVMVCByZW1vdmVkLgpUaGUgY29tcGFy aXNvbiBpcyBkb25lIHdpdGggYGVxJy4gIENvbnRyYXJ5IHRvIGBkZWxxJywgdGhpcyBkb2VzIG5v dCB1c2UKc2lkZS1lZmZlY3RzLCBhbmQgdGhlIGFyZ3VtZW50IExJU1QgaXMgbm90IG1vZGlmaWVk LgoKKGZuIEVMVCBMSVNUKR8KKGRlZmFsaWFzICdyZW1xICNbNTE0ICIBAUA9XDIwMw8AXDIxMUFc MjExXDI2MgJcMjA0AAABAT5cMjAzHABcMzAwAlwzMDEDIVwiXDIwN1wyMDciIFtkZWxxIGNvcHkt c2VxdWVuY2VdIDYgKCMkIC4gMzQ1NDApXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNc MzAwXDIwNyIgW2Z1bmN0aW9uLXB1dCByZW1xIHNpZGUtZWZmZWN0LWZyZWUgdF0gNCkjQDQxMiBD b252ZXJ0IEtFWVMgdG8gdGhlIGludGVybmFsIEVtYWNzIGtleSByZXByZXNlbnRhdGlvbi4KS0VZ UyBzaG91bGQgYmUgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdCByZXR1cm5lZCBieSBjb21tYW5kcyBz dWNoCmFzIFxbZGVzY3JpYmUta2V5XSAoYGRlc2NyaWJlLWtleScpLgoKVGhpcyBpcyB0aGUgc2Ft ZSBmb3JtYXQgdXNlZCBmb3Igc2F2aW5nIGtleWJvYXJkIG1hY3JvcyAoc2VlCmBlZG1hY3JvLW1v ZGUnKS4KCkhlcmUncyBzb21lIGV4YW1wbGUga2V5IHNlcXVlbmNlczoKCiAgICAiZiIKICAgICJD LWMgQy1jIgogICAgIkgtPGxlZnQ+IgogICAgIk0tUkVUIgogICAgIkMtTS08cmV0dXJuPiIKCkZv ciBhbiBhcHByb3hpbWF0ZSBpbnZlcnNlIG9mIHRoaXMsIHNlZSBga2V5LWRlc2NyaXB0aW9uJy4K CihmbiBLRVlTKR8KKGRlZmFsaWFzICdrYmQgI1syNTcgIlwzMDABIVwyMTFHXDMwMVlcMjAzSgBc MjExXDMwMkhcMzAzPVwyMDNKAFwyMTFcMzA0SFwzMDU9XDIwM0oAXDIxMQFHXDMwNlpIXDMwMz1c MjAzSgBcMjExAUdTSFwzMDc9XDIwM0oAXDMxMFwzMTFcMzEyA1wzMTNcIlwyMTFBQVwyNjIBXDIx MVwyMzdcMjYyAVwyMTFBQVwyNjIBXDIxMVwyMzdcMjYyAVwiXDI2MgFcMzEzXDMxNFwzMTUDXCI+ XDIwNFoAXDMxNFwzMTYCXCJcMjYwAVwyMDdcMjA3IiBba2V5LXBhcnNlIDQgMCAyNCAxIDQwIDIg NDEgYXBwbHkgdmVjdG9yIGFwcGVuZCBuaWwgbWFwY2FyICNbMjU3ICJcMjExXDI0N1wyMDUOAFwz MDABWFwyMDUOAFwyMTFcMzAxWFwyMDciIFswIDEyN10gMyAiXG5cbihmbiBDSCkiXSBpZGVudGl0 eV0gNyAoIyQgLiAzNDk0MCldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBcMzAx XDMwNFwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQga2JkIHB1cmUgdCBzaWRlLWVmZmVjdC1m cmVlXSA1KSNANTAgQmVlcCB0byB0ZWxsIHRoZSB1c2VyIHRoaXMgYmluZGluZyBpcyB1bmRlZmlu ZWQuHwooZGVmYWxpYXMgJ3VuZGVmaW5lZCAjWzAgIlwzMDQgXDIxMAhcMjAzEgBcMzA1XDMwNlwz MDdcMzEwICFcIlwyMTBcMjAyGgBcMzExXDMwNlwzMDdcMzEwICFcIlwyMTBcMzEyIFwyMTBcMzEz XDMxNAkhPlwyMDUmAFxuXDIxMRNcMjA3IiBbZGVmaW5pbmcta2JkLW1hY3JvIGxhc3QtY29tbWFu ZC1ldmVudCBjdXJyZW50LXByZWZpeC1hcmcgcHJlZml4LWFyZyBkaW5nIGVycm9yICIlcyBpcyB1 bmRlZmluZWQiIGtleS1kZXNjcmlwdGlvbiB0aGlzLXNpbmdsZS1jb21tYW5kLWtleXMgbWVzc2Fn ZSBmb3JjZS1tb2RlLWxpbmUtdXBkYXRlIGRvd24gZXZlbnQtbW9kaWZpZXJzXSA0ICgjJCAuIDM1 ODY1KSBuaWxdKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYj XDIwNyIgW2Z1bmN0aW9uLXB1dCB1bmRlZmluZWQgY29tcGxldGlvbi1wcmVkaWNhdGUgaWdub3Jl IHB1dCBzdXBwcmVzcy1rZXltYXAgdF0gNSkjQDI0NyBNYWtlIE1BUCBvdmVycmlkZSBhbGwgbm9y bWFsbHkgc2VsZi1pbnNlcnRpbmcga2V5cyB0byBiZSB1bmRlZmluZWQuCk5vcm1hbGx5LCBhcyBh biBleGNlcHRpb24sIGRpZ2l0cyBhbmQgbWludXMtc2lnbiBhcmUgc2V0IHRvIG1ha2UgcHJlZml4 IGFyZ3MsCmJ1dCBvcHRpb25hbCBzZWNvbmQgYXJnIE5PRElHSVRTIG5vbi1uaWwgdHJlYXRzIHRo ZW0gbGlrZSBvdGhlciBjaGFycy4KCihmbiBNQVAgJm9wdGlvbmFsIE5PRElHSVRTKR8KKGRlZmFs aWFzICdzdXBwcmVzcy1rZXltYXAgI1s1MTMgIlwzMDACXDMwMVwzMDIjXDIxMFwyMTFcMjA2KwBc MzAzXDMwMANcMzA0XDMwNSNcMjEwXDMwNlwyNjIBXDIxMVwzMDdYXDIwNSkAXDMwMANcMzEwAyFc MzExI1wyMTBcMjExVFwyNjIBXDIwMhQAXDI2MgFcMjA3IiBbZGVmaW5lLWtleSBbcmVtYXAgc2Vs Zi1pbnNlcnQtY29tbWFuZF0gdW5kZWZpbmVkIG5pbCAiLSIgbmVnYXRpdmUtYXJndW1lbnQgNDgg NTcgY2hhci10by1zdHJpbmcgZGlnaXQtYXJndW1lbnRdIDcgKCMkIC4gMzYzOTgpXSkjQDU1NyBD b25zdHJ1Y3QgYSBuZXcga2V5bWFwIGNvbXBvc2VkIG9mIE1BUFMgYW5kIGluaGVyaXRpbmcgZnJv bSBQQVJFTlQuCldoZW4gbG9va2luZyB1cCBhIGtleSBpbiB0aGUgcmV0dXJuZWQgbWFwLCB0aGUg a2V5IGlzIGxvb2tlZCBpbiBlYWNoCmtleW1hcCBvZiBNQVBTIGluIHR1cm4gdW50aWwgYSBiaW5k aW5nIGlzIGZvdW5kLgpJZiBubyBiaW5kaW5nIGlzIGZvdW5kIGluIE1BUFMsIHRoZSBsb29rdXAg Y29udGludWVzIGluIFBBUkVOVCwgaWYgbm9uLW5pbC4KQXMgYWx3YXlzIHdpdGgga2V5bWFwIGlu aGVyaXRhbmNlLCBhIG5pbCBiaW5kaW5nIGluIE1BUFMgb3ZlcnJpZGVzCmFueSBjb3JyZXNwb25k aW5nIGJpbmRpbmcgaW4gUEFSRU5ULCBidXQgaXQgZG9lcyBub3Qgb3ZlcnJpZGUgY29ycmVzcG9u ZGluZwpiaW5kaW5ncyBpbiBvdGhlciBrZXltYXBzIG9mIE1BUFMuCk1BUFMgY2FuIGJlIGEgbGlz dCBvZiBrZXltYXBzIG9yIGEgc2luZ2xlIGtleW1hcC4KUEFSRU5UIGlmIG5vbi1uaWwgc2hvdWxk IGJlIGEga2V5bWFwLgoKKGZuIE1BUFMgJm9wdGlvbmFsIFBBUkVOVCkfCihkZWZhbGlhcyAnbWFr ZS1jb21wb3NlZC1rZXltYXAgI1s1MTMgIlwzMDBcMzAxXDMwMgQhXDIwMw0AA0NcMjAyDgADA1wi QlwyMDciIFtrZXltYXAgYXBwZW5kIGtleW1hcHBdIDYgKCMkIC4gMzY5MzUpXSkjQDc4NCBBZGQg YmluZGluZyBpbiBLRVlNQVAgZm9yIEtFWSA9PiBERUZJTklUSU9OLCByaWdodCBhZnRlciBBRlRF UidzIGJpbmRpbmcuClRoaXMgaXMgYSBsZWdhY3kgZnVuY3Rpb247IHNlZSBga2V5bWFwLXNldC1h ZnRlcicgZm9yIHRoZQpyZWNvbW1lbmRlZCBmdW5jdGlvbiB0byB1c2UgaW5zdGVhZC4KClRoaXMg aXMgbGlrZSBgZGVmaW5lLWtleScgZXhjZXB0IHRoYXQgdGhlIGJpbmRpbmcgZm9yIEtFWSBpcyBw bGFjZWQKanVzdCBhZnRlciB0aGUgYmluZGluZyBmb3IgdGhlIGV2ZW50IEFGVEVSLCBpbnN0ZWFk IG9mIGF0IHRoZSBiZWdpbm5pbmcKb2YgdGhlIG1hcC4gIE5vdGUgdGhhdCBBRlRFUiBtdXN0IGJl IGFuIGV2ZW50IHR5cGUgKGxpa2UgS0VZKSwgTk9UIGEgY29tbWFuZAoobGlrZSBERUZJTklUSU9O KS4KCklmIEFGVEVSIGlzIHQgb3Igb21pdHRlZCwgdGhlIG5ldyBiaW5kaW5nIGdvZXMgYXQgdGhl IGVuZCBvZiB0aGUga2V5bWFwLgpBRlRFUiBzaG91bGQgYmUgYSBzaW5nbGUgZXZlbnQgdHlwZS0t YSBzeW1ib2wgb3IgYSBjaGFyYWN0ZXIsIG5vdCBhIHNlcXVlbmNlLgoKQmluZGluZ3MgYXJlIGFs d2F5cyBhZGRlZCBiZWZvcmUgYW55IGluaGVyaXRlZCBtYXAuCgpUaGUgb3JkZXIgb2YgYmluZGlu Z3MgaW4gYSBrZXltYXAgbWF0dGVycyBvbmx5IHdoZW4gaXQgaXMgdXNlZCBhcwphIG1lbnUsIHNv IHRoaXMgZnVuY3Rpb24gaXMgbm90IHVzZWZ1bCBmb3Igbm9uLW1lbnUga2V5bWFwcy4KCihmbiBL RVlNQVAgS0VZIERFRklOSVRJT04gJm9wdGlvbmFsIEFGVEVSKR8KKGRlZmFsaWFzICdkZWZpbmUt a2V5LWFmdGVyICNbMTAyNyAiXDIxMVwyMDQHAFwzMDBcMjYyAVwzMDEEIVwyMDQVAFwzMDJcMzAz XDMwMQYGRFwiXDIxMAJHXDMwNFhcMjAzXCIAAlwzMDVIXDIwMjYAXDMwNgRcMzA3XDMxMFwzMTFc MzEyXDMxMwYJXCIhXCJcIlwyNjIEAlwyMTFHU0hcMjYyAwNcMzE0XDIxMQE/XDIwNVwyMzYAAlwy MDVcMjM2AAJBQFwyNDIGBj1cMjAzVAACXDIxMUFBXDI0MVwyMTBcMzAxA0AhXDIwM18AAkBcMjYy AwJAXDI0MgQ9XDIwM20AA1wzMDA9XDIwM3oAAkFAXDMxNT1cMjA0egACQVwyMDRcMjI3AAJBQFwz MTU9XDIwM1wyMDUAXDMwMFwyNjICXDIxMVwyMDRcMjI0AAIGBgYGQgRBQlwyNDFcMjEwXDMwMFwy NjIBAkFcMjYyA1wyMDI7AFwyMDciIFt0IGtleW1hcHAgc2lnbmFsIHdyb25nLXR5cGUtYXJndW1l bnQgMSAwIGxvb2t1cC1rZXkgYXBwbHkgdmVjdG9yIGJ1dGxhc3QgbWFwY2FyIGlkZW50aXR5IG5p bCBrZXltYXBdIDEyICgjJCAuIDM3NjE2KV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMj XDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgZGVmaW5lLWtleS1hZnRlciBsaXNwLWluZGVudC1mdW5j dGlvbiBkZWZ1bl0gNCkjQDU4NiBEZWZpbmUgQ09NTUFORCBhcyBhIHByZWZpeCBjb21tYW5kLiAg Q09NTUFORCBzaG91bGQgYmUgYSBzeW1ib2wuCkEgbmV3IHNwYXJzZSBrZXltYXAgaXMgc3RvcmVk IGFzIENPTU1BTkQncyBmdW5jdGlvbiBkZWZpbml0aW9uIGFuZCBpdHMKdmFsdWUuClRoaXMgcHJl cGFyZXMgQ09NTUFORCBmb3IgdXNlIGFzIGEgcHJlZml4IGtleSdzIGJpbmRpbmcuCklmIGEgc2Vj b25kIG9wdGlvbmFsIGFyZ3VtZW50IE1BUFZBUiBpcyBnaXZlbiwgaXQgc2hvdWxkIGJlIGEgc3lt Ym9sLgpUaGUgbWFwIGlzIHRoZW4gc3RvcmVkIGFzIE1BUFZBUidzIHZhbHVlIGluc3RlYWQgb2Yg YXMgQ09NTUFORCdzCnZhbHVlOyBidXQgQ09NTUFORCBpcyBzdGlsbCBkZWZpbmVkIGFzIGEgZnVu Y3Rpb24uClRoZSB0aGlyZCBvcHRpb25hbCBhcmd1bWVudCBOQU1FLCBpZiBnaXZlbiwgc3VwcGxp ZXMgYSBtZW51IG5hbWUKc3RyaW5nIGZvciB0aGUgbWFwLiAgVGhpcyBpcyByZXF1aXJlZCB0byB1 c2UgdGhlIGtleW1hcCBhcyBhIG1lbnUuClRoaXMgZnVuY3Rpb24gcmV0dXJucyBDT01NQU5ELgoK KGZuIENPTU1BTkQgJm9wdGlvbmFsIE1BUFZBUiBOQU1FKR8KKGRlZmFsaWFzICdkZWZpbmUtcHJl Zml4LWNvbW1hbmQgI1s3NjkgIlwzMDABIQMBTVwyMTACXDIwNlxmAAMBTFwyMTADXDIwNyIgW21h a2Utc3BhcnNlLWtleW1hcF0gNiAoIyQgLiAzOTAwOCldKSNAMTE1IEltcGxlbWVudCBgbWFwLWtl eW1hcCcgd2l0aCBzb3J0aW5nLgpEb24ndCBjYWxsIHRoaXMgZnVuY3Rpb247IGl0IGlzIGZvciBp bnRlcm5hbCB1c2Ugb25seS4KCihmbiBGVU5DVElPTiBLRVlNQVApHwooZGVmYWxpYXMgJ21hcC1r ZXltYXAtc29ydGVkICNbNTE0ICJcMzAwQ1wzMDFcMzAyXDMwMwNcIgNcIlwyMTBcMjExXDMwNAJc MjQyXDMwNVwiXDI0MFwyMTBcMjExXDI0MlwyMTFcMjA1KABcMjExQAQBQAJBXCJcMjEwAUFcMjY2 XDIwMlwyMDIUAFwyMDciIFtuaWwgbWFwLWtleW1hcCBtYWtlLWNsb3N1cmUgI1s1MTQgIlwzMDAC AkJcMzAwXDI0MkJcMjQwXDIwNyIgW1YwXSA1ICJcblxuKGZuIEEgQikiXSBzb3J0ICNbNTE0ICIB QFwyNjICXDIxMUBcMjYyAQFcMjUwXDIwMxgAXDIxMVwyNTBcMjAzFgABAVdcMjA3XDMwMFwyMDdc MjExXDI1MFwyMDMfAFwzMDBcMjA3AQFcMjMxXDIwNyIgW3RdIDQgIlxuXG4oZm4gQSBCKSJdXSA4 ICgjJCAuIDM5NzEyKV0pI0A1MSBSZXR1cm4gdGhlIGJpbmRpbmcgcGFydCBvZiBhIG1lbnUtaXRl bS4KCihmbiBWQUwpHwooZGVmYWxpYXMgJ2tleW1hcC0tbWVudS1pdGVtLWJpbmRpbmcgI1syNTcg IlwyMTE6XDIwNAYAXDIwN1wyMTFAXDMwMD1cMjAzIQBcMzAxAThcMzAyAlwyMzNcMzAzAVwzMDRc IlwyMTFcMjAzHwBcMjExAyFcMjA3AlwyMDdcMjExQTpcMjAzMgBcMjExQUA7XDIwMzIAXDIxMUFB XDIwN1wyMTFAO1wyMDM7AFwyMTFBXDIwN1wyMDciIFttZW51LWl0ZW0gMiAzIHBsaXN0LWdldCA6 ZmlsdGVyXSA2ICgjJCAuIDQwMjA1KV0pI0A4OSBCdWlsZCBhIG1lbnUtaXRlbSBsaWtlIElURU0g YnV0IHdpdGggaXRzIGJpbmRpbmcgY2hhbmdlZCB0byBCSU5ESU5HLgoKKGZuIElURU0gQklORElO RykfCihkZWZhbGlhcyAna2V5bWFwLS1tZW51LWl0ZW0td2l0aC1iaW5kaW5nICNbNTE0ICIBOlwy MDQGAFwyMDcBQFwzMDA9XDIwMy0AXDMwMQIhXDI2MgIBQUFcMjExAlwyNDBcMjEwXDMwMgFBXDMw M1wiXDIwMyoAXDIxMVwzMDQCQVwzMDNcMzA1I1wyNDFcMjEwXDIxMAFcMjA3AUE6XDIwM0MAAUFA O1wyMDNDAAFAAkFAAkJCXDIwNwFAAUJcMjA3IiBbbWVudS1pdGVtIGNvcHktc2VxdWVuY2UgcGxp c3QtZ2V0IDpmaWx0ZXIgcGxpc3QtcHV0IG5pbF0gOCAoIyQgLiA0MDQ5OSldKSNANDcgTWVyZ2Ug YmluZGluZ3MgVkFMMSBhbmQgVkFMMi4KCihmbiBWQUwxIFZBTDIpHwooZGVmYWxpYXMgJ2tleW1h cC0tbWVyZ2UtYmluZGluZ3MgI1s1MTQgIlwzMDACIVwzMDACIVwzMDECIVwyMDMSAFwzMDEBIVwy MDQUAANcMjA3XDMwMgICRVwzMDEFIVwyMDMpAFwzMDEEIT9cMjA1KgADXDIwMioABFwzMDMBA1wi XDIwNyIgW2tleW1hcC0tbWVudS1pdGVtLWJpbmRpbmcga2V5bWFwcCBrZXltYXAga2V5bWFwLS1t ZW51LWl0ZW0td2l0aC1iaW5kaW5nXSA5ICgjJCAuIDQwODYzKV0pI0AyNjkgUmV0dXJuIGEgc2lt cGxlciBlcXVpdmFsZW50IGtleW1hcC4KVGhpcyByZXNvbHZlcyBpbmhlcml0YW5jZSBhbmQgcmVk ZWZpbml0aW9ucy4gIFRoZSByZXR1cm5lZCBrZXltYXAKc2hvdWxkIGJlaGF2ZSBpZGVudGljYWxs eSB0byBhIGNvcHkgb2YgS0VZTUFQIHcuci50IGBsb29rdXAta2V5JwphbmQgdXNlIGluIGFjdGl2 ZSBrZXltYXBzIGFuZCBtZW51cy4KU3Via2V5bWFwcyBtYXkgYmUgbW9kaWZpZWQgYnV0IGFyZSBu b3QgY2Fub25pY2FsaXplZC4KCihmbiBNQVApHwooZGVmYWxpYXMgJ2tleW1hcC1jYW5vbmljYWxp emUgI1syNTcgIlwzMDBDXDMwMENcMzAxAyFcMzAyBCFcMjAzGwBcMzAzXDMwNFwzMDUEBgYjBVwi XDI2MgRcMjAyBwABXDI0MlwyMDMkAFwzMDZcMjAyJQBcMzA3ASFcMjYyBAFcMjQyXDIxMVwyMDND AFwyMTFAXDMxMAYGXDMxMQNAIQNBI1wyMTABQVwyNjZcMjAyXDIwMisAXDIxMAJcMjQyA1wzMDBc MjQwXDIxMFwyMTFcMjAzXDIwMQBcMjExQFwyMTFAXDIxMQYGXDI0MlwyMzYGBgFcMjA0YQADXDIw MnMABgdcMzEyAwZcblwyNDJcIlwyNDBcMjEwAlwzMTMFQQRBXCJCBghcMjQyQlwyNDBcMjY2AwFB XDI2NlwyMDJcMjAySgBcMjEwAwNcMjQyXDI0NFwyMDciIFtuaWwga2V5bWFwLXByb21wdCBrZXlt YXBwIG1hcC1rZXltYXAgbWFrZS1jbG9zdXJlICNbNTE0ICIBOlwyMDMrAAFAAkFTVVwyMDNcIgBc MzAxAkACQlwzMDFcMjQyQlwyNDBcMjEwXDMwMQJBAkJcMzAxXDI0MkJcMjQwXDIwN1wzMDACAkJc MzAwXDI0MkJcMjQwXDIwN1wzMDECAkJcMzAxXDI0MkJcMjQwXDIwNyIgW1YwIFYxXSA1ICJcblxu KGZuIEtFWSBJVEVNKSJdIG1ha2Uta2V5bWFwIG1ha2Utc3BhcnNlLWtleW1hcCBkZWZpbmUta2V5 IHZlY3RvciBkZWxxIGtleW1hcC0tbWVyZ2UtYmluZGluZ3NdIDEzICgjJCAuIDQxMTQyKV0pCihw dXQgJ2tleWJvYXJkLXRyYW5zbGF0ZS10YWJsZSAnY2hhci10YWJsZS1leHRyYS1zbG90cyAwKSNA MjYzIFRyYW5zbGF0ZSBjaGFyYWN0ZXIgRlJPTSB0byBUTyBvbiB0aGUgY3VycmVudCB0ZXJtaW5h bC4KVGhpcyBpcyBhIGxlZ2FjeSBmdW5jdGlvbjsgc2VlIGBrZXktdHJhbnNsYXRlJyBmb3IgdGhl CnJlY29tbWVuZGVkIGZ1bmN0aW9uIHRvIHVzZSBpbnN0ZWFkLgoKVGhpcyBmdW5jdGlvbiBjcmVh dGVzIGEgYGtleWJvYXJkLXRyYW5zbGF0ZS10YWJsZScgaWYgbmVjZXNzYXJ5CmFuZCB0aGVuIG1v ZGlmaWVzIG9uZSBlbnRyeSBpbiBpdC4KCihmbiBGUk9NIFRPKR8KKGRlZmFsaWFzICdrZXlib2Fy ZC10cmFuc2xhdGUgI1s1MTQgIlwzMDEIIVwyMDQLAFwzMDJcMzAwXDMwM1wiEAgCAklcMjA3IiBb a2V5Ym9hcmQtdHJhbnNsYXRlLXRhYmxlIGNoYXItdGFibGUtcCBtYWtlLWNoYXItdGFibGUgbmls XSA1ICgjJCAuIDQyMTI3KV0pI0A2MjAgR2l2ZSBLRVkgYSBnbG9iYWwgYmluZGluZyBhcyBDT01N QU5ELgpUaGlzIGlzIGEgbGVnYWN5IGZ1bmN0aW9uOyBzZWUgYGtleW1hcC1nbG9iYWwtc2V0JyBm b3IgdGhlCnJlY29tbWVuZGVkIGZ1bmN0aW9uIHRvIHVzZSBpbnN0ZWFkLgoKQ09NTUFORCBpcyB0 aGUgY29tbWFuZCBkZWZpbml0aW9uIHRvIHVzZTsgdXN1YWxseSBpdCBpcwphIHN5bWJvbCBuYW1p bmcgYW4gaW50ZXJhY3RpdmVseS1jYWxsYWJsZSBmdW5jdGlvbi4KS0VZIGlzIGEga2V5IHNlcXVl bmNlOyBub25pbnRlcmFjdGl2ZWx5LCBpdCBpcyBhIHN0cmluZyBvciB2ZWN0b3IKb2YgY2hhcmFj dGVycyBvciBldmVudCB0eXBlcywgYW5kIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIHdpdGggY29kZXMK YWJvdmUgMTI3IChzdWNoIGFzIElTTyBMYXRpbi0xKSBjYW4gYmUgaW5jbHVkZWQgaWYgeW91IHVz ZSBhIHZlY3Rvci4KCk5vdGUgdGhhdCBpZiBLRVkgaGFzIGEgbG9jYWwgYmluZGluZyBpbiB0aGUg Y3VycmVudCBidWZmZXIsCnRoYXQgbG9jYWwgYmluZGluZyB3aWxsIGNvbnRpbnVlIHRvIHNoYWRv dyBhbnkgZ2xvYmFsIGJpbmRpbmcKdGhhdCB5b3UgbWFrZSB3aXRoIHRoaXMgZnVuY3Rpb24uCgoo Zm4gS0VZIENPTU1BTkQpHwooZGVmYWxpYXMgJ2dsb2JhbC1zZXQta2V5ICNbNTE0ICJcMzAwAiFc MjA0EgABO1wyMDQSAFwzMDFcMzAyXDMwMwREXCJcMjEwXDMwNFwzMDUgAwMjXDIwNyIgW3ZlY3Rv cnAgc2lnbmFsIHdyb25nLXR5cGUtYXJndW1lbnQgYXJyYXlwIGRlZmluZS1rZXkgY3VycmVudC1n bG9iYWwtbWFwXSA2ICgjJCAuIDQyNTQ2KSAoYnl0ZS1jb2RlICJcMzAxGFwzMDJcMzAzXDMwMVwz MDQjXDIxMVwzMDVcMzA2XDMwN1wzMTAFIVwiISlEXDIwNyIgW21lbnUtcHJvbXB0aW5nIG5pbCBy ZWFkLWtleS1zZXF1ZW5jZSAiU2V0IGtleSBnbG9iYWxseTogIiB0IHJlYWQtY29tbWFuZCBmb3Jt YXQgIlNldCBrZXkgJXMgdG8gY29tbWFuZDogIiBrZXktZGVzY3JpcHRpb25dIDcpXSkjQDU5MSBH aXZlIEtFWSBhIGxvY2FsIGJpbmRpbmcgYXMgQ09NTUFORC4KVGhpcyBpcyBhIGxlZ2FjeSBmdW5j dGlvbjsgc2VlIGBrZXltYXAtbG9jYWwtc2V0JyBmb3IgdGhlCnJlY29tbWVuZGVkIGZ1bmN0aW9u IHRvIHVzZSBpbnN0ZWFkLgoKQ09NTUFORCBpcyB0aGUgY29tbWFuZCBkZWZpbml0aW9uIHRvIHVz ZTsgdXN1YWxseSBpdCBpcwphIHN5bWJvbCBuYW1pbmcgYW4gaW50ZXJhY3RpdmVseS1jYWxsYWJs ZSBmdW5jdGlvbi4KS0VZIGlzIGEga2V5IHNlcXVlbmNlOyBub25pbnRlcmFjdGl2ZWx5LCBpdCBp cyBhIHN0cmluZyBvciB2ZWN0b3IKb2YgY2hhcmFjdGVycyBvciBldmVudCB0eXBlcywgYW5kIG5v bi1BU0NJSSBjaGFyYWN0ZXJzIHdpdGggY29kZXMKYWJvdmUgMTI3IChzdWNoIGFzIElTTyBMYXRp bi0xKSBjYW4gYmUgaW5jbHVkZWQgaWYgeW91IHVzZSBhIHZlY3Rvci4KClRoZSBiaW5kaW5nIGdv ZXMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyJ3MgbG9jYWwgbWFwLCB3aGljaCBpbiBtb3N0CmNhc2Vz IGlzIHNoYXJlZCB3aXRoIGFsbCBvdGhlciBidWZmZXJzIGluIHRoZSBzYW1lIG1ham9yIG1vZGUu CgooZm4gS0VZIENPTU1BTkQpHwooZGVmYWxpYXMgJ2xvY2FsLXNldC1rZXkgI1s1MTQgIlwzMDAg XDIxMVwyMDQOAFwzMDFcMzAyIFwyMTFcMjYyAyFcMjEwXDMwMwMhXDIwNCAAAjtcMjA0IABcMzA0 XDMwNVwzMDYFRFwiXDIxMFwzMDcBBAQjXDIwNyIgW2N1cnJlbnQtbG9jYWwtbWFwIHVzZS1sb2Nh bC1tYXAgbWFrZS1zcGFyc2Uta2V5bWFwIHZlY3RvcnAgc2lnbmFsIHdyb25nLXR5cGUtYXJndW1l bnQgYXJyYXlwIGRlZmluZS1rZXldIDcgKCMkIC4gNDM1NDcpICJLU2V0IGtleSBsb2NhbGx5OiBc bkNTZXQga2V5ICVzIGxvY2FsbHkgdG8gY29tbWFuZDogIl0pI0AyMDUgUmVtb3ZlIGdsb2JhbCBi aW5kaW5nIG9mIEtFWS4KVGhpcyBpcyBhIGxlZ2FjeSBmdW5jdGlvbjsgc2VlIGBrZXltYXAtZ2xv YmFsLXVuc2V0JyBmb3IgdGhlCnJlY29tbWVuZGVkIGZ1bmN0aW9uIHRvIHVzZSBpbnN0ZWFkLgoK S0VZIGlzIGEgc3RyaW5nIG9yIHZlY3RvciByZXByZXNlbnRpbmcgYSBzZXF1ZW5jZSBvZiBrZXlz dHJva2VzLgoKKGZuIEtFWSkfCihkZWZhbGlhcyAnZ2xvYmFsLXVuc2V0LWtleSAjWzI1NyAiXDMw MAFcMzAxXCJcMjA3IiBbZ2xvYmFsLXNldC1rZXkgbmlsXSA0ICgjJCAuIDQ0NDQ1KSAia1Vuc2V0 IGtleSBnbG9iYWxseTogIl0pI0AyMDMgUmVtb3ZlIGxvY2FsIGJpbmRpbmcgb2YgS0VZLgpUaGlz IGlzIGEgbGVnYWN5IGZ1bmN0aW9uOyBzZWUgYGtleW1hcC1sb2NhbC11bnNldCcgZm9yIHRoZQpy ZWNvbW1lbmRlZCBmdW5jdGlvbiB0byB1c2UgaW5zdGVhZC4KCktFWSBpcyBhIHN0cmluZyBvciB2 ZWN0b3IgcmVwcmVzZW50aW5nIGEgc2VxdWVuY2Ugb2Yga2V5c3Ryb2tlcy4KCihmbiBLRVkpHwoo ZGVmYWxpYXMgJ2xvY2FsLXVuc2V0LWtleSAjWzI1NyAiXDMwMCBcMjAzXG4AXDMwMQFcMzAyXCJc MjEwXDMwMlwyMDciIFtjdXJyZW50LWxvY2FsLW1hcCBsb2NhbC1zZXQta2V5IG5pbF0gNCAoIyQg LiA0NDc2OSkgImtVbnNldCBrZXkgbG9jYWxseTogIl0pI0A0NTkgUmV0dXJuIHRoZSBiaW5kaW5n IGZvciBjb21tYW5kIEtFWVMgaW4gY3VycmVudCBsb2NhbCBrZXltYXAgb25seS4KVGhpcyBpcyBh IGxlZ2FjeSBmdW5jdGlvbjsgc2VlIGBrZXltYXAtbG9jYWwtbG9va3VwJyBmb3IgdGhlCnJlY29t bWVuZGVkIGZ1bmN0aW9uIHRvIHVzZSBpbnN0ZWFkLgoKS0VZUyBpcyBhIHN0cmluZyBvciB2ZWN0 b3IsIGEgc2VxdWVuY2Ugb2Yga2V5c3Ryb2tlcy4KVGhlIGJpbmRpbmcgaXMgcHJvYmFibHkgYSBz eW1ib2wgd2l0aCBhIGZ1bmN0aW9uIGRlZmluaXRpb24uCgpJZiBvcHRpb25hbCBhcmd1bWVudCBB Q0NFUFQtREVGQVVMVCBpcyBub24tbmlsLCByZWNvZ25pemUgZGVmYXVsdApiaW5kaW5nczsgc2Vl IHRoZSBkZXNjcmlwdGlvbiBvZiBgbG9va3VwLWtleScgZm9yIG1vcmUgZGV0YWlscwphYm91dCB0 aGlzLgoKKGZuIEtFWVMgJm9wdGlvbmFsIEFDQ0VQVC1ERUZBVUxUKR8KKGRlZmFsaWFzICdsb2Nh bC1rZXktYmluZGluZyAjWzUxMyAiXDMwMCBcMjExXDIwNQsAXDMwMQEEBCNcMjA3IiBbY3VycmVu dC1sb2NhbC1tYXAgbG9va3VwLWtleV0gNyAoIyQgLiA0NTEyNildKSNANTQyIFJldHVybiB0aGUg YmluZGluZyBmb3IgY29tbWFuZCBLRVlTIGluIGN1cnJlbnQgZ2xvYmFsIGtleW1hcCBvbmx5LgpU aGlzIGlzIGEgbGVnYWN5IGZ1bmN0aW9uOyBzZWUgYGtleW1hcC1nbG9iYWwtbG9va3VwJyBmb3Ig dGhlCnJlY29tbWVuZGVkIGZ1bmN0aW9uIHRvIHVzZSBpbnN0ZWFkLgoKS0VZUyBpcyBhIHN0cmlu ZyBvciB2ZWN0b3IsIGEgc2VxdWVuY2Ugb2Yga2V5c3Ryb2tlcy4KVGhlIGJpbmRpbmcgaXMgcHJv YmFibHkgYSBzeW1ib2wgd2l0aCBhIGZ1bmN0aW9uIGRlZmluaXRpb24uClRoaXMgZnVuY3Rpb24n cyByZXR1cm4gdmFsdWVzIGFyZSB0aGUgc2FtZSBhcyB0aG9zZSBvZiBgbG9va3VwLWtleScKKHdo aWNoIHNlZSkuCgpJZiBvcHRpb25hbCBhcmd1bWVudCBBQ0NFUFQtREVGQVVMVCBpcyBub24tbmls LCByZWNvZ25pemUgZGVmYXVsdApiaW5kaW5nczsgc2VlIHRoZSBkZXNjcmlwdGlvbiBvZiBgbG9v a3VwLWtleScgZm9yIG1vcmUgZGV0YWlscwphYm91dCB0aGlzLgoKKGZuIEtFWVMgJm9wdGlvbmFs IEFDQ0VQVC1ERUZBVUxUKR8KKGRlZmFsaWFzICdnbG9iYWwta2V5LWJpbmRpbmcgI1s1MTMgIlwz MDBcMzAxIAMDI1wyMDciIFtsb29rdXAta2V5IGN1cnJlbnQtZ2xvYmFsLW1hcF0gNiAoIyQgLiA0 NTcwMyldKSNANDkgVXNlZCBpbnRlcm5hbGx5IGJ5IGBzdWJzdGl0dXRlLWtleS1kZWZpbml0aW9u Jy4fCihkZWZ2YXIga2V5LXN1YnN0aXR1dGlvbi1pbi1wcm9ncmVzcyBuaWwgKCMkIC4gNDYzNTMp KSNANTkxIFJlcGxhY2UgT0xEREVGIHdpdGggTkVXREVGIGZvciBhbnkga2V5cyBpbiBLRVlNQVAg bm93IGRlZmluZWQgYXMgT0xEREVGLgpUaGlzIGlzIGEgbGVnYWN5IGZ1bmN0aW9uOyBzZWUgYGtl eW1hcC1zdWJzdGl0dXRlJyBmb3IgdGhlCnJlY29tbWVuZGVkIGZ1bmN0aW9uIHRvIHVzZSBpbnN0 ZWFkLgoKSW4gb3RoZXIgd29yZHMsIE9MRERFRiBpcyByZXBsYWNlZCB3aXRoIE5FV0RFRiB3aGVy ZXZlciBpdCBhcHBlYXJzLgpBbHRlcm5hdGl2ZWx5LCBpZiBvcHRpb25hbCBmb3VydGggYXJndW1l bnQgT0xETUFQIGlzIHNwZWNpZmllZCwgd2UgcmVkZWZpbmUKaW4gS0VZTUFQIGFzIE5FV0RFRiB0 aG9zZSBrZXlzIHRoYXQgYXJlIGRlZmluZWQgYXMgT0xEREVGIGluIE9MRE1BUC4KCklmIHlvdSBk b24ndCBzcGVjaWZ5IE9MRE1BUCwgeW91IGNhbiB1c3VhbGx5IGdldCB0aGUgc2FtZSByZXN1bHRz CmluIGEgY2xlYW5lciB3YXkgd2l0aCBjb21tYW5kIHJlbWFwcGluZywgbGlrZSB0aGlzOgogIChk ZWZpbmUta2V5IEtFWU1BUCBbcmVtYXAgT0xEREVGXSBORVdERUYpCgooZm4gT0xEREVGIE5FV0RF RiBLRVlNQVAgJm9wdGlvbmFsIE9MRE1BUCkfCihkZWZhbGlhcyAnc3Vic3RpdHV0ZS1rZXktZGVm aW5pdGlvbiAjWzEyODMgIlwyMTFDXDIxMVwyNDJcMjA0CwBcMjExXDMwMVwyNDBcMjEwAlwyMDYQ AANcMzAyAlwyNDJcMzAzXCIBCEIYXDMwNFwzMDVcMzA2AwYGBlxuBlxmBg4mBgNcIilcMjA3IiBb a2V5LXN1YnN0aXR1dGlvbi1pbi1wcm9ncmVzcyAiIiB2Y29uY2F0IFtuaWxdIG1hcC1rZXltYXAg bWFrZS1jbG9zdXJlICNbNTE0ICJcMzAwXDMwMVwyNDJHA0lcMjEwXDMwNQFcMzA0XDMwM1wzMDBc MzAyJVwyMDciIFtWMCBWMSBWMiBWMyBWNCBzdWJzdGl0dXRlLWtleS1kZWZpbml0aW9uLWtleV0g OCAiXG5cbihmbiBDSEFSIERFRk4pIl1dIDE2ICgjJCAuIDQ2NDYyKV0pI0A0MSAKCihmbiBERUZO IE9MRERFRiBORVdERUYgUFJFRklYIEtFWU1BUCkfCihkZWZhbGlhcyAnc3Vic3RpdHV0ZS1rZXkt ZGVmaW5pdGlvbi1rZXkgI1sxMjg1ICJcMzAxXDIxMVwyMTEGB1wyNDJcMzAyPVwyMDMYAAYHXDI2 MgFcMzAzBgg4XDI2MghcMjAyOQAGB1wyNDI7XDIwMy0ABgdcMjExQVwyNjIJXDI0MgJCXDI2MgJc MjAyGAAGB1wyNDI6XDIwMzkABgdBXDI2MggGBwYHPVwyMDRWAAYHO1wyMDROAFwzMDQGCCFcMjAz dQAGBwYHXDIzMlwyMDN1AFwzMDUEBgYDXDIwM24AXDMwNgQhXDIxMUFBBlxuXDI0MFwyMTBcMjEx XDI2MgFcMjAycwAEXDIzNwYJXDI0NCNcMjA3XDMwNwYIIVwyMDZ+AAYHXDI2MgNcMzEwAyFcMjA1 XDI2MQBcMzExBAYGXCJcMjExP1wyMDZcMjMxAFwzMTIBIVwyMDZcMjMxAFwzMTABIVwyNjIBXDIw NVwyNjEAAgg+P1wyMDVcMjYxAFwzMTMGBwYHBgYGBgYJJVwyMDciIFtrZXktc3Vic3RpdHV0aW9u LWluLXByb2dyZXNzIG5pbCBtZW51LWl0ZW0gMiB2ZWN0b3JwIGRlZmluZS1rZXkgY29weS1zZXF1 ZW5jZSBpbmRpcmVjdC1mdW5jdGlvbiBrZXltYXBwIGxvb2t1cC1rZXkgbmF0bnVtcCBzdWJzdGl0 dXRlLWtleS1kZWZpbml0aW9uXSAxNCAoIyQgLiA0NzQxNCldKSNAMTE3IERlZmF1bHQga2V5bWFw IGZvciBFU0MgKG1ldGEpIGNvbW1hbmRzLgpUaGUgbm9ybWFsIGdsb2JhbCBkZWZpbml0aW9uIG9m IHRoZSBjaGFyYWN0ZXIgRVNDIGluZGlyZWN0cyB0byB0aGlzIGtleW1hcC4fCihkZWZ2YXIgZXNj LW1hcCAoYnl0ZS1jb2RlICJcMzAwIFwzMDEBXDMwMlwzMDMjXDIxMFwzMDEBXDMwNFwzMDUjXDIx MFwzMDEBXDMwNlwzMDcjXDIxMFwzMDEBXDMxMFwzMTEjXDIxMFwzMDEBXDMxMlwzMTMjXDIxMFwy MDciIFttYWtlLWtleW1hcCBkZWZpbmUta2V5ICJ1IiB1cGNhc2Utd29yZCAibCIgZG93bmNhc2Ut d29yZCAiYyIgY2FwaXRhbGl6ZS13b3JkICJ4IiBleGVjdXRlLWV4dGVuZGVkLWNvbW1hbmQgIlgi IGV4ZWN1dGUtZXh0ZW5kZWQtY29tbWFuZC1mb3ItYnVmZmVyXSA1KSAoIyQgLiA0ODAzNykpCihi eXRlLWNvZGUgIlwzMDEITVwyMTBcMzAyXDMwMVwzMDBcMzAzI1wyMDciIFtlc2MtbWFwIEVTQy1w cmVmaXggbWFrZS1vYnNvbGV0ZSAiMjguMSJdIDQpI0AzNCBLZXltYXAgZm9yIHN1YmNvbW1hbmRz IG9mIEMteCA0Lh8KKGRlZnZhciBjdGwteC00LW1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSAoIyQg LiA0ODU0MikpCihkZWZhbGlhcyAnY3RsLXgtNC1wcmVmaXggY3RsLXgtNC1tYXApI0AyOCBLZXlt YXAgZm9yIGZyYW1lIGNvbW1hbmRzLh8KKGRlZnZhciBjdGwteC01LW1hcCAobWFrZS1zcGFyc2Ut a2V5bWFwKSAoIyQgLiA0ODY3NCkpCihkZWZhbGlhcyAnY3RsLXgtNS1wcmVmaXggY3RsLXgtNS1t YXApI0AzOCBLZXltYXAgZm9yIHRhYi1iYXIgcmVsYXRlZCBjb21tYW5kcy4fCihkZWZ2YXIgdGFi LXByZWZpeC1tYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkgKCMkIC4gNDg4MDApKSNAMTEwIERlZmF1 bHQga2V5bWFwIGZvciBDLXggY29tbWFuZHMuClRoZSBub3JtYWwgZ2xvYmFsIGRlZmluaXRpb24g b2YgdGhlIGNoYXJhY3RlciBDLXggaW5kaXJlY3RzIHRvIHRoaXMga2V5bWFwLh8KKGRlZnZhciBj dGwteC1tYXAgKGJ5dGUtY29kZSAiXDMwMSBcMzAyAVwzMDNcMzA0I1wyMTBcMzAyAVwzMDVcMzA2 I1wyMTBcMzAyAVwzMDcII1wyMTBcMzAyAVwzMTBcMzExI1wyMTBcMzAyAVwzMTJcMzEzI1wyMTBc MzAyAVwzMTRcMzE1I1wyMTBcMzE2XDMxNVwzMTdcMzIwI1wyMTBcMzAyAVwzMjFcMzIyI1wyMTBc MzE2XDMyMlwzMTdcMzIwI1wyMTBcMzAyAVwzMjNcMzI0I1wyMTBcMzAyAVwzMjVcMzI2I1wyMTBc MjA3IiBbdGFiLXByZWZpeC1tYXAgbWFrZS1rZXltYXAgZGVmaW5lLWtleSAiNCIgY3RsLXgtNC1w cmVmaXggIjUiIGN0bC14LTUtcHJlZml4ICJ0IiAiYiIgc3dpdGNoLXRvLWJ1ZmZlciAiayIga2ls bC1idWZmZXIgIhUiIHVwY2FzZS1yZWdpb24gcHV0IGRpc2FibGVkIHQgIlxmIiBkb3duY2FzZS1y ZWdpb24gIjwiIHNjcm9sbC1sZWZ0ICI+IiBzY3JvbGwtcmlnaHRdIDUpICgjJCAuIDQ4OTAxKSkK KGJ5dGUtY29kZSAiXDMwMQhNXDIxMFwzMDJcMzAxXDMwMFwzMDMjXDIwNyIgW2N0bC14LW1hcCBD b250cm9sLVgtcHJlZml4IG1ha2Utb2Jzb2xldGUgIjI4LjEiXSA0KSNAMTc5IERlZmF1bHQgZ2xv YmFsIGtleW1hcCBtYXBwaW5nIEVtYWNzIGtleWJvYXJkIGlucHV0IGludG8gY29tbWFuZHMuClRo ZSB2YWx1ZSBpcyBhIGtleW1hcCB0aGF0IGlzIHVzdWFsbHkgKGJ1dCBub3QgbmVjZXNzYXJpbHkp IEVtYWNzJ3MKZ2xvYmFsIG1hcC4KClNlZSBhbHNvIGBjdXJyZW50LWdsb2JhbC1tYXAnLh8KKGRl ZnZhciBnbG9iYWwtbWFwIChieXRlLWNvZGUgIlwzMDEgXDMwMgFcMzAzXDMwNCNcMjEwXDMwMgFc MzA1XDMwNiNcMjEwXDMwMgFcMzA3XDMxMCNcMjEwXDMxMVwzMTJcMzEzXCJcMzE0XDIxMQMDXDMx NVwzMTYkXDIxMAhcMzE3PVwyMDMtAFwyMTEDA1wzMjBcMzIxJFwyMTBcMjExAwNcMzIxXDMyMiRc MjY2A1wzMDIBXDMyM1wzMjQjXDIxMFwzMDIBXDMyNVwzMjYjXDIxMFwzMDIBXDMyN1wzMzAjXDIx MFwzMDIBXDMzMVwzMzIjXDIxMFwzMDIBXDMzM1wzMzQjXDIxMFwzMDIBXDMzNVwzMzQjXDIxMFwz MDIBXDMzNlwzMzcjXDIxMFwzMDIBXDM0MFwzNDEjXDIxMFwzMDIBXDM0MlwzNDMjXDIxMFwzMDIB XDM0NFwzNDUjXDIxMFwzMDIBXDM0NlwzNDcjXDIxMFwyMDciIFtzeXN0ZW0tdHlwZSBtYWtlLWtl eW1hcCBkZWZpbmUta2V5ICIbIiBFU0MtcHJlZml4ICIYIiBDb250cm9sLVgtcHJlZml4ICIJIiBz ZWxmLWluc2VydC1jb21tYW5kIG1ha2UtdmVjdG9yIDEgbmlsICNbMTAyOCAiAQFXXDIwNRgAAlwz MDADSVwyMTBcMzAxBARcMzAyI1wyMTABVFwyNjICXDIwMgAAXDIwNyIgWzAgZGVmaW5lLWtleSBz ZWxmLWluc2VydC1jb21tYW5kXSA4ICJcblxuKGZuIE1BUCBWRUMxIEZST00gVE8pIl0gMzIgMTI3 IG1zLWRvcyAxMjggMTYwIDI1NiAiASIgYmVnaW5uaW5nLW9mLWxpbmUgIgIiIGJhY2t3YXJkLWNo YXIgIgUiIGVuZC1vZi1saW5lICIGIiBmb3J3YXJkLWNoYXIgIhoiIHN1c3BlbmQtZW1hY3MgIhga IiAiFiIgc2Nyb2xsLXVwLWNvbW1hbmQgIlwzNjYiIHNjcm9sbC1kb3duLWNvbW1hbmQgIlwyMjYi IHNjcm9sbC1vdGhlci13aW5kb3cgIlwyMDMiIGV4aXQtcmVjdXJzaXZlLWVkaXQgIh0iIGFib3J0 LXJlY3Vyc2l2ZS1lZGl0XSA4KSAoIyQgLiA0OTU3OSkpCih1c2UtZ2xvYmFsLW1hcCBnbG9iYWwt bWFwKQooZGVmY29uc3QgbGlzdGlmeS1rZXktc2VxdWVuY2UtMSAxMzQyMTc4NTYpI0A1NSBDb252 ZXJ0IGEga2V5IHNlcXVlbmNlIHRvIGEgbGlzdCBvZiBldmVudHMuCgooZm4gS0VZKR8KKGRlZmFs aWFzICdsaXN0aWZ5LWtleS1zZXF1ZW5jZSAjWzI1NyAiXDMwMAEhXDIwMwsAXDMwMQFcMzAyXCJc MjA3XDMwM1wzMDQCXCJcMjA3IiBbdmVjdG9ycCBhcHBlbmQgbmlsIG1hcGNhciAjWzI1NyAiXDIx MVwzMDFWXDIwMwsAXDMwMgEIXCJcMjA3XDIwNyIgW2xpc3RpZnkta2V5LXNlcXVlbmNlLTEgMTI3 IGxvZ3hvcl0gNCAiXG5cbihmbiBDKSJdXSA0ICgjJCAuIDUwNzI2KV0pI0A3NCBSZXR1cm4gbm9u LW5pbCBpZiBPQkpFQ1QgaXMgYW4gaW5wdXQgZXZlbnQgb3IgZXZlbnQgb2JqZWN0LgoKKGZuIE9C SkVDVCkfCihkZWZhbGlhcyAnZXZlbnRwICNbMjU3ICJcMjExXDI1MFwyMDYfAFwyMTE6XDIwMxIA XDIxMUBcMjExXDI2MgJcMjAyEwBcMjExXDIwNR8AXDIxMTlcMjA1HwBcMzAwASE/XDIwNyIgW2tl eXdvcmRwXSAzICgjJCAuIDUxMDA1KV0pI0A0NDIgUmV0dXJuIGEgbGlzdCBvZiBzeW1ib2xzIHJl cHJlc2VudGluZyB0aGUgbW9kaWZpZXIga2V5cyBpbiBldmVudCBFVkVOVC4KVGhlIGVsZW1lbnRz IG9mIHRoZSBsaXN0IG1heSBpbmNsdWRlIGBtZXRhJywgYGNvbnRyb2wnLApgc2hpZnQnLCBgaHlw ZXInLCBgc3VwZXInLCBgYWx0JywgYGNsaWNrJywgYGRvdWJsZScsIGB0cmlwbGUnLCBgZHJhZycs CmFuZCBgZG93bicuCkVWRU5UIG1heSBiZSBhbiBldmVudCBvciBhbiBldmVudCB0eXBlLiAgSWYg RVZFTlQgaXMgYSBzeW1ib2wKdGhhdCBoYXMgbmV2ZXIgYmVlbiB1c2VkIGluIGFuIGV2ZW50IHRo YXQgaGFzIGJlZW4gcmVhZCBhcyBpbnB1dAppbiB0aGUgY3VycmVudCBFbWFjcyBzZXNzaW9uLCB0 aGVuIHRoaXMgZnVuY3Rpb24gbWF5IGZhaWwgdG8gaW5jbHVkZQp0aGUgYGNsaWNrJyBtb2RpZmll ci4KCihmbiBFVkVOVCkfCihkZWZhbGlhcyAnZXZlbnQtbW9kaWZpZXJzICNbMjU3ICJcMjExATxc MjAzXG4AAUBcMjYyAVwyMTE5XDIwMxQAXDMwMAEhQVwyMDdcMzAxXDMwMgJcMzAzXCJcMzAyA1wz MDRcIlwzMDVVXDIwNCYAXDMwNkNcMjYyAlwzMDIDXDMwN1wiXDMwNVVcMjAzNQBcMjExXDMxMFdc MjAzOgBcMzExAkJcMjYyAlwzMDIDXDMxMlwiXDMwNVVcMjAzSgBcMjExAVwyMjdVXDIwNE8AXDMx MwJCXDI2MgJcMzAyA1wzMTRcIlwzMDVVXDIwNF0AXDMxNQJCXDI2MgJcMzAyA1wzMTZcIlwzMDVV XDIwNGsAXDMxNwJCXDI2MgJcMzAyA1wzMjBcIlwzMDVVXDIwNHkAXDMyMQJCXDI2MgIBXDIwNyIg W2ludGVybmFsLWV2ZW50LXN5bWJvbC1wYXJzZS1tb2RpZmllcnMgbmlsIGxvZ2FuZCAtMjY0MjQx MTUzIDEzNDIxNzcyOCAwIG1ldGEgNjcxMDg4NjQgMzIgY29udHJvbCAzMzU1NDQzMiBzaGlmdCAx Njc3NzIxNiBoeXBlciA4Mzg4NjA4IHN1cGVyIDQxOTQzMDQgYWx0XSA3ICgjJCAuIDUxMjE2KV0p I0AzMzUgUmV0dXJuIHRoZSBiYXNpYyB0eXBlIG9mIHRoZSBnaXZlbiBldmVudCAoYWxsIG1vZGlm aWVycyByZW1vdmVkKS4KVGhlIHZhbHVlIGlzIGEgcHJpbnRpbmcgY2hhcmFjdGVyIChub3QgdXBw ZXIgY2FzZSkgb3IgYSBzeW1ib2wuCkVWRU5UIG1heSBiZSBhbiBldmVudCBvciBhbiBldmVudCB0 eXBlLiAgSWYgRVZFTlQgaXMgYSBzeW1ib2wKdGhhdCBoYXMgbmV2ZXIgYmVlbiB1c2VkIGluIGFu IGV2ZW50IHRoYXQgaGFzIGJlZW4gcmVhZCBhcyBpbnB1dAppbiB0aGUgY3VycmVudCBFbWFjcyBz ZXNzaW9uLCB0aGVuIHRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiBuaWwuCgooZm4gRVZFTlQpHwoo ZGVmYWxpYXMgJ2V2ZW50LWJhc2ljLXR5cGUgI1syNTcgIlwyMTE6XDIwMwkAXDIxMUBcMjYyAVwy MTE5XDIwMxMAXDIxMVwzMDBOQFwyMDdcMzAxAVwzMDJcIlwyMTFcMzAzV1wyMDMkAFwzMDQBXDMw NVwiXDIwMiUAXDIxMVwzMDYxLQBcMjExXDIyNzBcMjA3XDIxMFwyMDciIFtldmVudC1zeW1ib2wt ZWxlbWVudHMgbG9nYW5kIDQxOTQzMDMgMzIgbG9naW9yIDY0IChlcnJvcildIDUgKCMkIC4gNTIx NjEpXSkjQDY2IFJldHVybiBub24tbmlsIGlmIE9CSkVDVCBpcyBhIG1vdXNlIG1vdmVtZW50IGV2 ZW50LgoKKGZuIE9CSkVDVCkfCihkZWZhbGlhcyAnbW91c2UtbW92ZW1lbnQtcCAjWzI1NyAiXDIx MVwyNDJcMzAwPVwyMDciIFttb3VzZS1tb3ZlbWVudF0gMyAoIyQgLiA1MjczNSldKQooYnl0ZS1j b2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1 dCBtb3VzZS1tb3ZlbWVudC1wIHNwZWVkIC0xIHB1dCBieXRlLW9wdGltaXplciBieXRlLWNvbXBp bGUtaW5saW5lLWV4cGFuZF0gNSkjQDYzIFJldHVybiBub24tbmlsIGlmIE9CSkVDVCBpcyBhIG1v dXNlIGNsaWNrIGV2ZW50LgoKKGZuIE9CSkVDVCkfCihkZWZhbGlhcyAnbW91c2UtZXZlbnQtcCAj WzI1NyAiXDMwMAEhXDMwMT5cMjA3IiBbZXZlbnQtYmFzaWMtdHlwZSAobW91c2UtMSBtb3VzZS0y IG1vdXNlLTMgbW91c2UtbW92ZW1lbnQpXSAzICgjJCAuIDUzMDM1KV0pCihkZWZhbGlhcyAnZXZl bnQtLXBvc24tYXQtcG9pbnQgI1swICJcMzAwIFwzMDEBIVwyMTFcMjA0EABcMzAyIAJcMzAzXDMw NEZcMjA3XDMwNQFcMjMzXDIxMQNcMjQwXDI2NgJcMjA3IiBbd2luZG93LXBvaW50IHBvc24tYXQt cG9pbnQgc2VsZWN0ZWQtd2luZG93ICgwIC4gMCkgMCA1XSA2XSkjQDEwODkgUmV0dXJuIHRoZSBz dGFydGluZyBwb3NpdGlvbiBvZiBFVkVOVC4KRVZFTlQgc2hvdWxkIGJlIGEgbW91c2UgY2xpY2ss IGRyYWcsIG9yIGtleSBwcmVzcyBldmVudC4gIElmCkVWRU5UIGlzIG5pbCwgdGhlIHZhbHVlIG9m IGBwb3NuLWF0LXBvaW50JyBpcyB1c2VkIGluc3RlYWQuCgpUaGUgZm9sbG93aW5nIGFjY2Vzc29y IGZ1bmN0aW9ucyBhcmUgdXNlZCB0byBhY2Nlc3MgdGhlIGVsZW1lbnRzCm9mIHRoZSBwb3NpdGlv bjoKCmBwb3NuLXdpbmRvdyc6IFRoZSB3aW5kb3cgb2YgdGhlIGV2ZW50IGVuZCwgb3IgaXRzIGZy YW1lIGlmIHRoZQpldmVudCBlbmQgcG9pbnQgYmVsb25ncyB0byBubyB3aW5kb3cuCmBwb3NuLWFy ZWEnOiBBIHN5bWJvbCBpZGVudGlmeWluZyB0aGUgYXJlYSB0aGUgZXZlbnQgb2NjdXJyZWQgaW4s Cm9yIG5pbCBpZiB0aGUgZXZlbnQgb2NjdXJyZWQgaW4gdGhlIHRleHQgYXJlYS4KYHBvc24tcG9p bnQnOiBUaGUgYnVmZmVyIHBvc2l0aW9uIG9mIHRoZSBldmVudC4KYHBvc24teC15JzogVGhlIHBp eGVsLWJhc2VkIGNvb3JkaW5hdGVzIG9mIHRoZSBldmVudC4KYHBvc24tY29sLXJvdyc6IFRoZSBl c3RpbWF0ZWQgY29sdW1uIGFuZCByb3cgY29ycmVzcG9uZGluZyB0byB0aGUKcG9zaXRpb24gb2Yg dGhlIGV2ZW50LgpgcG9zbi1hY3R1YWwtY29sLXJvdyc6IFRoZSBhY3R1YWwgY29sdW1uIGFuZCBy b3cgY29ycmVzcG9uZGluZyB0byB0aGUKcG9zaXRpb24gb2YgdGhlIGV2ZW50LgpgcG9zbi1zdHJp bmcnOiBUaGUgc3RyaW5nIG9iamVjdCBvZiB0aGUgZXZlbnQsIHdoaWNoIGlzIGVpdGhlcgpuaWwg b3IgKFNUUklORyAuIFBPU0lUSU9OKScuCmBwb3NuLWltYWdlJzogVGhlIGltYWdlIG9iamVjdCBv ZiB0aGUgZXZlbnQsIGlmIGFueS4KYHBvc24tb2JqZWN0JzogVGhlIGltYWdlIG9yIHN0cmluZyBv YmplY3Qgb2YgdGhlIGV2ZW50LCBpZiBhbnkuCmBwb3NuLXRpbWVzdGFtcCc6IFRoZSB0aW1lIHRo ZSBldmVudCBvY2N1cnJlZCwgaW4gbWlsbGlzZWNvbmRzLgoKRm9yIG1vcmUgaW5mb3JtYXRpb24s IHNlZSBJbmZvIG5vZGUgYChlbGlzcClDbGljayBFdmVudHMnLgoKKGZuIEVWRU5UKR8KKGRlZmFs aWFzICdldmVudC1zdGFydCAjWzI1NyAiXDIxMTpcMjAzCwBcMjExQUBcMjA2DQBcMzAwIFwyMDci IFtldmVudC0tcG9zbi1hdC1wb2ludF0gMiAoIyQgLiA1MzM5NyldKSNAMTYxIFJldHVybiB0aGUg ZW5kaW5nIHBvc2l0aW9uIG9mIEVWRU5ULgpFVkVOVCBzaG91bGQgYmUgYSBjbGljaywgZHJhZywg b3Iga2V5IHByZXNzIGV2ZW50LgoKU2VlIGBldmVudC1zdGFydCcgZm9yIGEgZGVzY3JpcHRpb24g b2YgdGhlIHZhbHVlIHJldHVybmVkLgoKKGZuIEVWRU5UKR8KKGRlZmFsaWFzICdldmVudC1lbmQg I1syNTcgIlwyMTE6XDIwMxYAXDMwMAE4OlwyMDMQAFwzMDBcMjAyEQBcMzAxAThcMjA2GABcMzAy IFwyMDciIFsyIDEgZXZlbnQtLXBvc24tYXQtcG9pbnRdIDMgKCMkIC4gNTQ1OTUpXSkjQDExNSBS ZXR1cm4gdGhlIG11bHRpLWNsaWNrIGNvdW50IG9mIEVWRU5ULCBhIGNsaWNrIG9yIGRyYWcgZXZl bnQuClRoZSByZXR1cm4gdmFsdWUgaXMgYSBwb3NpdGl2ZSBpbnRlZ2VyLgoKKGZuIEVWRU5UKR8K KGRlZmFsaWFzICdldmVudC1jbGljay1jb3VudCAjWzI1NyAiXDIxMTpcMjAzEABcMzAwAThcMjUw XDIwMxAAXDMwMAE4XDIwN1wzMDFcMjA3IiBbMiAxXSAzICgjJCAuIDU0ODkwKV0pCihieXRlLWNv ZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0 IGV2ZW50LWNsaWNrLWNvdW50IHNwZWVkIC0xIHB1dCBieXRlLW9wdGltaXplciBieXRlLWNvbXBp bGUtaW5saW5lLWV4cGFuZF0gNSkjQDEwNSBSZXR1cm4gdGhlIGxpbmUgY291bnQgb2YgRVZFTlQs IGEgbW91c2V3aGVlbCBldmVudC4KVGhlIHJldHVybiB2YWx1ZSBpcyBhIHBvc2l0aXZlIGludGVn ZXIuCgooZm4gRVZFTlQpHwooZGVmYWxpYXMgJ2V2ZW50LWxpbmUtY291bnQgI1syNTcgIlwyMTE6 XDIwMxAAXDMwMAE4XDI1MFwyMDMQAFwzMDABOFwyMDdcMzAxXDIwNyIgWzMgMV0gMyAoIyQgLiA1 NTI1OSldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIw NyIgW2Z1bmN0aW9uLXB1dCBldmVudC1saW5lLWNvdW50IHNwZWVkIC0xIHB1dCBieXRlLW9wdGlt aXplciBieXRlLWNvbXBpbGUtaW5saW5lLWV4cGFuZF0gNSkjQDI0NSBSZXR1cm4gbm9uLW5pbCBp ZiBPQkogYXBwZWFycyB0byBiZSBhIHZhbGlkIGBwb3NuJyBvYmplY3Qgc3BlY2lmeWluZyBhIHdp bmRvdy4KQSBgcG9zbicgb2JqZWN0IGlzIHJldHVybmVkIGZyb20gZnVuY3Rpb25zIHN1Y2ggYXMg YGV2ZW50LXN0YXJ0Jy4KSWYgT0JKIGlzIGEgdmFsaWQgYHBvc24nIG9iamVjdCwgYnV0IHNwZWNp ZmllcyBhIGZyYW1lIHJhdGhlcgp0aGFuIGEgd2luZG93LCByZXR1cm4gbmlsLgoKKGZuIE9CSikf CihkZWZhbGlhcyAncG9zbnAgI1syNTcgIlwzMDABXDI0MiFcMjA1IQBcMjExQVwyMTFcMjYyAlwy NDI6P1wyMDUhAFwyMTFBXDIxMVwyNjICXDI0MlwyNDJcMjUwXDIwNSEAXDIxMUFcMjQyXDI1MFwy MDciIFt3aW5kb3dwXSAzICgjJCAuIDU1NjE2KV0pI0AyMzQgUmV0dXJuIHRoZSB3aW5kb3cgaW4g UE9TSVRJT04uCklmIFBPU0lUSU9OIGlzIG91dHNpZGUgdGhlIGZyYW1lIHdoZXJlIHRoZSBldmVu dCB3YXMgaW5pdGlhdGVkLApyZXR1cm4gdGhhdCBmcmFtZSBpbnN0ZWFkLiAgUE9TSVRJT04gc2hv dWxkIGJlIGEgbGlzdCBvZiB0aGUgZm9ybQpyZXR1cm5lZCBieSB0aGUgYGV2ZW50LXN0YXJ0JyBh bmQgYGV2ZW50LWVuZCcgZnVuY3Rpb25zLgoKKGZuIFBPU0lUSU9OKR8KKGRlZmFsaWFzICdwb3Nu LXdpbmRvdyAjWzI1NyAiXDIxMUBcMjA3IiBbXSAyICgjJCAuIDU2MDEwKV0pCihieXRlLWNvZGUg IlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IHBv c24td2luZG93IHNwZWVkIC0xIHB1dCBieXRlLW9wdGltaXplciBieXRlLWNvbXBpbGUtaW5saW5l LWV4cGFuZF0gNSkjQDE4MiBSZXR1cm4gdGhlIHdpbmRvdyBhcmVhIHJlY29yZGVkIGluIFBPU0lU SU9OLCBvciBuaWwgZm9yIHRoZSB0ZXh0IGFyZWEuClBPU0lUSU9OIHNob3VsZCBiZSBhIGxpc3Qg b2YgdGhlIGZvcm0gcmV0dXJuZWQgYnkgdGhlIGBldmVudC1zdGFydCcKYW5kIGBldmVudC1lbmQn IGZ1bmN0aW9ucy4KCihmbiBQT1NJVElPTikfCihkZWZhbGlhcyAncG9zbi1hcmVhICNbMjU3ICJc MjExQUA6XDIwMw4AXDIxMUFAQFwyMDIRAFwyMTFBQFwyMTE5XDIwNRcAXDIxMVwyMDciIFtdIDMg KCMkIC4gNTY0NDcpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVc MzA2I1wyMDciIFtmdW5jdGlvbi1wdXQgcG9zbi1hcmVhIHNwZWVkIC0xIHB1dCBieXRlLW9wdGlt aXplciBieXRlLWNvbXBpbGUtaW5saW5lLWV4cGFuZF0gNSkjQDI1MCBSZXR1cm4gdGhlIGJ1ZmZl ciBsb2NhdGlvbiBpbiBQT1NJVElPTi4KUE9TSVRJT04gc2hvdWxkIGJlIGEgbGlzdCBvZiB0aGUg Zm9ybSByZXR1cm5lZCBieSB0aGUgYGV2ZW50LXN0YXJ0JwphbmQgYGV2ZW50LWVuZCcgZnVuY3Rp b25zLgpSZXR1cm5zIG5pbCBpZiBQT1NJVElPTiBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGFueSBi dWZmZXIgbG9jYXRpb24gKGUuZy4KYSBjbGljayBvbiBhIHNjcm9sbCBiYXIpLgoKKGZuIFBPU0lU SU9OKR8KKGRlZmFsaWFzICdwb3NuLXBvaW50ICNbMjU3ICJcMzAwAThcMjA2FgBcMjExQUBcMjEx XDI0MlwyMDYUAFwyMTFcMjUwXDIwNRQAXDIxMVwyNjIBXDIwNyIgWzVdIDMgKCMkIC4gNTY4NzAp XSkjQDgxIE1vdmUgcG9pbnQgdG8gUE9TSVRJT04uClNlbGVjdCB0aGUgY29ycmVzcG9uZGluZyB3 aW5kb3cgYXMgd2VsbC4KCihmbiBQT1NJVElPTikfCihkZWZhbGlhcyAncG9zbi1zZXQtcG9pbnQg I1syNTcgIlwzMDABXDIxMUBcMjYyASFcMjAzJwBcMzAxXDMwMgJcMjExQFwyNjIBISFcMjA0GgBc MzAzXDMwNCFcMjEwXDMwNVwzMDICXDIxMUBcMjYyASEhXDIxMFwyMDI9AFwzMDEBXDIxMUBcMjYy ASFcMjA0NQBcMzAzXDMwNCFcMjEwXDMwNQFcMjExQFwyNjIBIVwyMTBcMzA2ASFcMjQ3XDIwNUgA XDMwNgEhYlwyMDciIFtmcmFtZXAgd2luZG93cCBmcmFtZS1zZWxlY3RlZC13aW5kb3cgZXJyb3Ig IlBvc2l0aW9uIG5vdCBpbiB0ZXh0IGFyZWEgb2Ygd2luZG93IiBzZWxlY3Qtd2luZG93IHBvc24t cG9pbnRdIDUgKCMkIC4gNTcyMzUpXSkjQDIxNiBSZXR1cm4gdGhlIHggYW5kIHkgY29vcmRpbmF0 ZXMgaW4gUE9TSVRJT04uClRoZSByZXR1cm4gdmFsdWUgaGFzIHRoZSBmb3JtIChYIC4gWSksIHdo ZXJlIFggYW5kIFkgYXJlIGdpdmVuIGluCnBpeGVscy4gIFBPU0lUSU9OIHNob3VsZCBiZSBhIGxp c3Qgb2YgdGhlIGZvcm0gcmV0dXJuZWQgYnkKYGV2ZW50LXN0YXJ0JyBhbmQgYGV2ZW50LWVuZCcu CgooZm4gUE9TSVRJT04pHwooZGVmYWxpYXMgJ3Bvc24teC15ICNbMjU3ICJcMzAwAThcMjA3IiBb Ml0gMyAoIyQgLiA1NzY1NildKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAx XDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCBwb3NuLXgteSBzcGVlZCAtMSBwdXQgYnl0ZS1v cHRpbWl6ZXIgYnl0ZS1jb21waWxlLWlubGluZS1leHBhbmRdIDUpI0A2OTQgUmV0dXJuIHRoZSBu b21pbmFsIGNvbHVtbiBhbmQgcm93IGluIFBPU0lUSU9OLCBtZWFzdXJlZCBpbiBjaGFyYWN0ZXJz LgpUaGUgY29sdW1uIGFuZCByb3cgdmFsdWVzIGFyZSBhcHByb3hpbWF0aW9ucyBjYWxjdWxhdGVk IGZyb20gdGhlIHgKYW5kIHkgY29vcmRpbmF0ZXMgaW4gUE9TSVRJT04gYW5kIHRoZSBmcmFtZSdz IGRlZmF1bHQgY2hhcmFjdGVyIHdpZHRoCmFuZCBkZWZhdWx0IGxpbmUgaGVpZ2h0LCBpbmNsdWRp bmcgc3BhY2luZy4KCklmIFVTRS1XSU5ET1cgaXMgbm9uLW5pbCwgdXNlIHRoZSB0eXBpY2FsIHdp ZHRoIG9mIGEgY2hhcmFjdGVyIGluCnRoZSB3aW5kb3cgaW5kaWNhdGVkIGJ5IFBPU0lUSU9OIGlu c3RlYWQgb2YgdGhlIGZyYW1lLiAgKFRoaXMKbWFrZXMgYSBkaWZmZXJlbmNlIGlzIGEgd2luZG93 IGhhcyBhIHpvb20gbGV2ZWwuKQoKRm9yIGEgc2Nyb2xsLWJhciBldmVudCwgdGhlIHJlc3VsdCBj b2x1bW4gaXMgMCwgYW5kIHRoZSByb3cKY29ycmVzcG9uZHMgdG8gdGhlIHZlcnRpY2FsIHBvc2l0 aW9uIG9mIHRoZSBjbGljayBpbiB0aGUgc2Nyb2xsIGJhci4KClBPU0lUSU9OIHNob3VsZCBiZSBh IGxpc3Qgb2YgdGhlIGZvcm0gcmV0dXJuZWQgYnkgdGhlIGBldmVudC1zdGFydCcKYW5kIGBldmVu dC1lbmQnIGZ1bmN0aW9ucy4KCihmbiBQT1NJVElPTiAmb3B0aW9uYWwgVVNFLVdJTkRPVykfCihk ZWZhbGlhcyAncG9zbi1jb2wtcm93ICNbNTEzICIBXDMwMQE4XDI2MgECXDIxMUBcMjYyAVwzMDIB IVwyMDMVAFwyMTFcMjAyGABcMzAzASFcMzA0AiFcMjA1HwABBVwyMTFBQDpcMjAzLgBcMjExQUBA XDIwMjEAXDIxMUFAXDIxMTlcMjA1NwBcMjExXDI2NlwyMDIDXDIwND8AXDMwNVwyMDdcMjExXDMw NlwyNjdcMjAyWQBcMzA3XDMxMAYGXDMxMQUhU1wiQlwyMDdcMzEwBVwzMTIEIVwiXDMwN0JcMjA3 BVwyMDNrAARAXDMxMwMhXDI0NQVBXDMxNAQhXDI0NUJcMjA3XDMxNQMhXDIwNVwyMDIAclwzMTZc MzE3BCEhcVwyMTAIKVwyMDZcMjAyAFwzMjADXDMwMFwiXDMyMQEhXDIwM1wyMjUAXDMyMgFcMzIz BgYhXyFcMjYyAVwyMDJcMjM0AFwyMTFcMjA0XDIzNABcMzA3XDI2MgEFQFwzMjQFIVwyNDUGBkFc MzIzBgYhA1xcXDI0NUJcMjA3IiBbbGluZS1zcGFjaW5nIDIgZnJhbWVwIHdpbmRvdy1mcmFtZSB3 aW5kb3dwICgwIC4gMCkgI3MoaGFzaC10YWJsZSBzaXplIDIgdGVzdCBlcSByZWhhc2gtc2l6ZSAx LjUgcmVoYXNoLXRocmVzaG9sZCAwLjgxMjUgcHVyZWNvcHkgdCBkYXRhICh2ZXJ0aWNhbC1zY3Jv bGwtYmFyIDY5IGhvcml6b250YWwtc2Nyb2xsLWJhciA4MCkpIDAgc2Nyb2xsLWJhci1zY2FsZSB3 aW5kb3ctaGVpZ2h0IHdpbmRvdy13aWR0aCB3aW5kb3ctZm9udC13aWR0aCB3aW5kb3ctZm9udC1o ZWlnaHQgZGlzcGxheS1ncmFwaGljLXAgd2luZG93LWJ1ZmZlciBmcmFtZS1zZWxlY3RlZC13aW5k b3cgZnJhbWUtcGFyYW1ldGVyIGZsb2F0cCB0cnVuY2F0ZSBmcmFtZS1jaGFyLWhlaWdodCBmcmFt ZS1jaGFyLXdpZHRoXSAxMiAoIyQgLiA1ODA3MSldKSNANTQzIFJldHVybiB0aGUgd2luZG93IHJv dyBudW1iZXIgaW4gUE9TSVRJT04gYW5kIGNoYXJhY3RlciBudW1iZXIgaW4gdGhhdCByb3cuCgpS ZXR1cm4gbmlsIGlmIFBPU0lUSU9OIGRvZXMgbm90IGNvbnRhaW4gdGhlIGFjdHVhbCBwb3NpdGlv bjsgaW4gdGhhdCBjYXNlCmBwb3NuLWNvbC1yb3cnIGNhbiBiZSB1c2VkIHRvIGdldCBhcHByb3hp bWF0ZSB2YWx1ZXMuClBPU0lUSU9OIHNob3VsZCBiZSBhIGxpc3Qgb2YgdGhlIGZvcm0gcmV0dXJu ZWQgYnkgdGhlIGBldmVudC1zdGFydCcKYW5kIGBldmVudC1lbmQnIGZ1bmN0aW9ucy4KClRoaXMg ZnVuY3Rpb24gZG9lcyBub3QgYWNjb3VudCBmb3IgdGhlIHdpZHRoIG9uIGRpc3BsYXksIGxpa2Ug dGhlCm51bWJlciBvZiB2aXN1YWwgY29sdW1ucyB0YWtlbiBieSBhIFRBQiBvciBpbWFnZS4gIElm IHlvdSBuZWVkCnRoZSBjb29yZGluYXRlcyBvZiBQT1NJVElPTiBpbiBjaGFyYWN0ZXIgdW5pdHMs IHlvdSBzaG91bGQgdXNlCmBwb3NuLWNvbC1yb3cnLCBub3QgdGhpcyBmdW5jdGlvbi4KCihmbiBQ T1NJVElPTikfCihkZWZhbGlhcyAncG9zbi1hY3R1YWwtY29sLXJvdyAjWzI1NyAiXDMwMAE4XDIw NyIgWzZdIDMgKCMkIC4gNTk2MDIpXSkjQDE0NSBSZXR1cm4gdGhlIHRpbWVzdGFtcCBvZiBQT1NJ VElPTi4KUE9TSVRJT04gc2hvdWxkIGJlIGEgbGlzdCBvZiB0aGUgZm9ybSByZXR1cm5lZCBieSB0 aGUgYGV2ZW50LXN0YXJ0JwphbmQgYGV2ZW50LWVuZCcgZnVuY3Rpb25zLgoKKGZuIFBPU0lUSU9O KR8KKGRlZmFsaWFzICdwb3NuLXRpbWVzdGFtcCAjWzI1NyAiXDMwMAE4XDIwNyIgWzNdIDMgKCMk IC4gNjAyMjEpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2 I1wyMDciIFtmdW5jdGlvbi1wdXQgcG9zbi10aW1lc3RhbXAgc3BlZWQgLTEgcHV0IGJ5dGUtb3B0 aW1pemVyIGJ5dGUtY29tcGlsZS1pbmxpbmUtZXhwYW5kXSA1KSNAMjEyIFJldHVybiB0aGUgc3Ry aW5nIG9iamVjdCBvZiBQT1NJVElPTi4KVmFsdWUgaXMgYSBjb25zIChTVFJJTkcgLiBTVFJJTkct UE9TKSwgb3IgbmlsIGlmIG5vdCBhIHN0cmluZy4KUE9TSVRJT04gc2hvdWxkIGJlIGEgbGlzdCBv ZiB0aGUgZm9ybSByZXR1cm5lZCBieSB0aGUgYGV2ZW50LXN0YXJ0JwphbmQgYGV2ZW50LWVuZCcg ZnVuY3Rpb25zLgoKKGZuIFBPU0lUSU9OKR8KKGRlZmFsaWFzICdwb3NuLXN0cmluZyAjWzI1NyAi XDMwMAE4XDIxMTpcMjA1CQBcMjExXDIwNyIgWzRdIDMgKCMkIC4gNjA1NzcpXSkjQDIwMSBSZXR1 cm4gdGhlIGltYWdlIG9iamVjdCBvZiBQT1NJVElPTi4KVmFsdWUgaXMgYSBsaXN0IChpbWFnZSAu Li4pLCBvciBuaWwgaWYgbm90IGFuIGltYWdlLgpQT1NJVElPTiBzaG91bGQgYmUgYSBsaXN0IG9m IHRoZSBmb3JtIHJldHVybmVkIGJ5IHRoZSBgZXZlbnQtc3RhcnQnCmFuZCBgZXZlbnQtZW5kJyBm dW5jdGlvbnMuCgooZm4gUE9TSVRJT04pHwooZGVmYWxpYXMgJ3Bvc24taW1hZ2UgI1syNTcgIlwz MDABOFwyMDciIFs3XSAzICgjJCAuIDYwODcyKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwz MDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IHBvc24taW1hZ2Ugc3BlZWQg LTEgcHV0IGJ5dGUtb3B0aW1pemVyIGJ5dGUtY29tcGlsZS1pbmxpbmUtZXhwYW5kXSA1KSNAMjk1 IFJldHVybiB0aGUgb2JqZWN0IChpbWFnZSBvciBzdHJpbmcpIG9mIFBPU0lUSU9OLgpWYWx1ZSBp cyBhIGxpc3QgKGltYWdlIC4uLikgZm9yIGFuIGltYWdlIG9iamVjdCwgYSBjb25zIGNlbGwKKFNU UklORyAuIFNUUklORy1QT1MpIGZvciBhIHN0cmluZyBvYmplY3QsIGFuZCBuaWwgZm9yIGEgYnVm ZmVyIHBvc2l0aW9uLgpQT1NJVElPTiBzaG91bGQgYmUgYSBsaXN0IG9mIHRoZSBmb3JtIHJldHVy bmVkIGJ5IHRoZSBgZXZlbnQtc3RhcnQnCmFuZCBgZXZlbnQtZW5kJyBmdW5jdGlvbnMuCgooZm4g UE9TSVRJT04pHwooZGVmYWxpYXMgJ3Bvc24tb2JqZWN0ICNbMjU3ICJcMjExXDMwMAE4XDI2MgFc MjA2XGYAXDMwMQEhXDIwNyIgWzcgcG9zbi1zdHJpbmddIDQgKCMkIC4gNjEyNzYpXSkKKGJ5dGUt Y29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2I1wyMDciIFtmdW5jdGlvbi1w dXQgcG9zbi1vYmplY3Qgc3BlZWQgLTEgcHV0IGJ5dGUtb3B0aW1pemVyIGJ5dGUtY29tcGlsZS1p bmxpbmUtZXhwYW5kXSA1KSNAMzQxIFJldHVybiB0aGUgeCBhbmQgeSBjb29yZGluYXRlcyByZWxh dGl2ZSB0byB0aGUgZ2x5cGggb2Ygb2JqZWN0IG9mIFBPU0lUSU9OLgpUaGUgcmV0dXJuIHZhbHVl IGhhcyB0aGUgZm9ybSAoRFggLiBEWSksIHdoZXJlIERYIGFuZCBEWSBhcmUKZ2l2ZW4gaW4gcGl4 ZWxzLCBhbmQgdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZgp0aGUg Y2xpY2tlZCBnbHlwaCBvZiBvYmplY3QgYXQgUE9TSVRJT04uICBQT1NJVElPTiBzaG91bGQgYmUg YQpsaXN0IG9mIHRoZSBmb3JtIHJldHVybmVkIGJ5IGBldmVudC1zdGFydCcgYW5kIGBldmVudC1l bmQnLgoKKGZuIFBPU0lUSU9OKR8KKGRlZmFsaWFzICdwb3NuLW9iamVjdC14LXkgI1syNTcgIlwz MDABOFwyMDciIFs4XSAzICgjJCAuIDYxODEwKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwz MDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IHBvc24tb2JqZWN0LXgteSBz cGVlZCAtMSBwdXQgYnl0ZS1vcHRpbWl6ZXIgYnl0ZS1jb21waWxlLWlubGluZS1leHBhbmRdIDUp I0AyMDcgUmV0dXJuIHRoZSBwaXhlbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBvYmplY3Qgb2Yg UE9TSVRJT04uClRoZSByZXR1cm4gdmFsdWUgaGFzIHRoZSBmb3JtIChXSURUSCAuIEhFSUdIVCku ICBQT1NJVElPTiBzaG91bGQKYmUgYSBsaXN0IG9mIHRoZSBmb3JtIHJldHVybmVkIGJ5IGBldmVu dC1zdGFydCcgYW5kIGBldmVudC1lbmQnLgoKKGZuIFBPU0lUSU9OKR8KKGRlZmFsaWFzICdwb3Nu LW9iamVjdC13aWR0aC1oZWlnaHQgI1syNTcgIlwzMDABOFwyMDciIFs5XSAzICgjJCAuIDYyMzY0 KV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBb ZnVuY3Rpb24tcHV0IHBvc24tb2JqZWN0LXdpZHRoLWhlaWdodCBzcGVlZCAtMSBwdXQgYnl0ZS1v cHRpbWl6ZXIgYnl0ZS1jb21waWxlLWlubGluZS1leHBhbmRdIDUpI0A2MCBTdG9yZSBWQUxVRSBp biB0aGUgb2Jzb2xldGUgYHZhbHVlcycgdmFyaWFibGUuCgooZm4gVkFMVUUpHwooZGVmYWxpYXMg J3ZhbHVlcy0tc3RvcmUtdmFsdWUgI1syNTcgIlwyMTEIQhBcMjA3IiBbdmFsdWVzXSAzICgjJCAu IDYyODAxKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDIxMFwzMDBcMzA0XDMwMlwz MDMjXDIxMFwzMDBcMzA1XDMwNlwzMDcjXDIxMFwzMDBcMzEwXDMwNlwzMDcjXDIxMFwzMDBcMzEx XDMxMlwzMDcjXDIxMFwzMDBcMzEzXDMxMlwzMDcjXDIwNyIgW21ha2Utb2Jzb2xldGUgaW52b2Nh dGlvbi1kaXJlY3RvcnkgInVzZSB0aGUgdmFyaWFibGUgb2YgdGhlIHNhbWUgbmFtZS4iICIyNy4x IiBpbnZvY2F0aW9uLW5hbWUgc3RyaW5nLWFzLXVuaWJ5dGUgInVzZSBgZW5jb2RlLWNvZGluZy1z dHJpbmcnLiIgIjI2LjEiIHN0cmluZy1tYWtlLXVuaWJ5dGUgc3RyaW5nLWFzLW11bHRpYnl0ZSAi dXNlIGBkZWNvZGUtY29kaW5nLXN0cmluZycuIiBzdHJpbmctbWFrZS1tdWx0aWJ5dGVdIDQpI0A1 MCBSZXR1cm4gKGxvZyBYIDEwKSwgdGhlIGxvZyBiYXNlIDEwIG9mIFguCgooZm4gWCkfCihkZWZh bGlhcyAnbG9nMTAgI1syNTcgIlwzMDABXDMwMVwiXDIwNyIgW2xvZyAxMF0gNCAoIyQgLiA2MzMy OSldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wyMTBcMzA0XDMwNVwzMDZcMzA3I1wy MTBcMzA0XDMxMFwzMTFcMzEyI1wyMTBcMzA0XDMxM1wzMTRcMzE1I1wyMTBcMzA0XDMxNlwzMTdc MzIwI1wyMTBcMzA0XDMyMVwzMjJcMzIzI1wyMTBcMzA0XDMyNFwzMjVcMzIzI1wyMTBcMzA0XDMy NlwzMjdcMzMwI1wyMTBcMzMxXDMzMlwzMzNcMzE1I1wyMTBcMzMxXDMzNFwzMzVcMzM2I1wyMTBc MzMxXDMzN1wzMzVcMzQwI1wyMTBcMzMxXDM0MVwzNDJcMzMwI1wyMTBcMzAwXDM0M1wzMzVcMzIz I1wyMTBcMzMxXDM0NFwzNDVcMzQ2I1wyMTBcMzMxXDM0N1wzMzVcMzA3I1wyMTBcMzMxXDM1MFwz MzVcMzUxI1wyMTBcMzUyXDM1M1wzNTRcIlwyMTBcMzUyXDM1NVwzNTZcMzM1I1wyMTBcMzU3XDIx MVwyMDNcMjE1AFwyMTFAXDM1NQFOXDIwM1wyMDYAXDM1NgFOXDIwNFwyMDYAXDM2MFwzNTYCXDM1 NQROI1wyMTABQVwyNjZcMjAyXDIwMmwAXDIxMFwzMzFcMzU1XDM1NlwzNDAjXDIxMFwzMzFcMzYx XDM2MlwzMjMjXDIxMFwzNjNcMzY0XDM2NVwzMzUjXDIxMFwzMDBcMzY0XDM2NVwzMzAjXDIwNyIg W21ha2Utb2Jzb2xldGUgbG9nMTAgbG9nICIyNC40IiBzZXQtYWR2ZXJ0aXNlZC1jYWxsaW5nLWNv bnZlbnRpb24gYWxsLWNvbXBsZXRpb25zIChzdHJpbmcgY29sbGVjdGlvbiAmb3B0aW9uYWwgcHJl ZGljYXRlKSAiMjMuMSIgdW5pbnRlcm4gKG5hbWUgb2JhcnJheSkgIjIzLjMiIGluZGlyZWN0LWZ1 bmN0aW9uIChvYmplY3QpICIyNS4xIiByZWRpcmVjdC1mcmFtZS1mb2N1cyAoZnJhbWUgZm9jdXMt ZnJhbWUpICIyNC4zIiBsaWJ4bWwtcGFyc2UteG1sLXJlZ2lvbiAoc3RhcnQgZW5kICZvcHRpb25h bCBiYXNlLXVybCkgIjI3LjEiIGxpYnhtbC1wYXJzZS1odG1sLXJlZ2lvbiAoc3RhcnQgZW5kICZv cHRpb25hbCBiYXNlLXVybCkgdGltZS1jb252ZXJ0ICh0aW1lIGZvcm0pICIyOS4xIiBtYWtlLW9i c29sZXRlLXZhcmlhYmxlIGluaGliaXQtcG9pbnQtbW90aW9uLWhvb2tzICJ1c2UgYGN1cnNvci1p bnRhbmdpYmxlLW1vZGUnIG9yIGBjdXJzb3Itc2Vuc29yLW1vZGUnIGluc3RlYWQiIHJlZGlzcGxh eS1kb250LXBhdXNlIG5pbCAiMjQuNSIgb3BlcmF0aW5nLXN5c3RlbS1yZWxlYXNlICIyOC4xIiBp bmhpYml0LWNoYW5naW5nLW1hdGNoLWRhdGEgc2F2ZS1tYXRjaC1kYXRhIHJ1bi13aW5kb3ctY29u ZmlndXJhdGlvbi1jaGFuZ2UtaG9vayBjb21tYW5kLWRlYnVnLXN0YXR1cyAiZXhwZWN0IGl0IHRv IGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4iICIyNS4yIiB0cmFuc2xhdGlvbi10YWJs ZS1mb3ItaW5wdXQgeC1ndGstdXNlLXdpbmRvdy1tb3ZlICIyNi4xIiBkZWZ2YXJhbGlhcyBtZXNz YWdlcy1idWZmZXItbWF4LWxpbmVzIG1lc3NhZ2UtbG9nLW1heCBpbmhpYml0LW51bC1ieXRlLWRl dGVjdGlvbiBpbmhpYml0LW51bGwtYnl0ZS1kZXRlY3Rpb24gKHNhdmVkLXZhbHVlIHNhdmVkLXZh cmlhYmxlLWNvbW1lbnQpIHB1dCBsb2FkLWRhbmdlcm91cy1saWJyYXJpZXMgIm5vIGxvbmdlciB1 c2VkLiIgZGVmYWxpYXMgY29tcGFyZS13aW5kb3ctY29uZmlndXJhdGlvbnMgd2luZG93LWNvbmZp Z3VyYXRpb24tZXF1YWwtcF0gNykjQDMyNSBGb3JtZXIgbGltaXQgb24gc3BlY2JpbmRpbmdzLCBu b3cgd2l0aG91dCBlZmZlY3QuClRoaXMgdmFyaWFibGUgdXNlZCB0byBsaW1pdCB0aGUgc2l6ZSBv ZiB0aGUgc3BlY3BkbCBzdGFjayB3aGljaCwKYW1vbmcgb3RoZXIgdGhpbmdzLCBob2xkcyBkeW5h bWljIHZhcmlhYmxlIGJpbmRpbmdzIGFuZCBgdW53aW5kLXByb3RlY3QnCmFjdGl2YXRpb25zLiAg VG8gcHJldmVudCBydW5hd2F5IHJlY3Vyc2lvbiwgdXNlIGBtYXgtbGlzcC1ldmFsLWRlcHRoJwpp bnN0ZWFkOyBpdCB3aWxsIGluZGlyZWN0bHkgbGltaXQgdGhlIHNwZWNwZGwgc3RhY2sgc2l6ZSBh cyB3ZWxsLh8KKGRlZnZhciBtYXgtc3BlY3BkbC1zaXplIDI1MDAgKCMkIC4gNjUwNjMpKQooYnl0 ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wyMTBcMzAwXDMwNFwzMDVcMzAzI1wyMTBcMzA2XDMw N1wzMTBcIlwyMTBcMzA2XDMxMVwzMTJcIlwyMTBcMzA2XDMxM1wzMTRcIlwyMTBcMzA2XDMxNVwz MTZcIlwyMTBcMzA2XDMxN1wzMjBcIlwyMTBcMzA2XDMyMVwzMjJcIlwyMTBcMzA2XDMyM1wzMjRc IlwyMTBcMzA2XDMyNVwzMjZcIlwyMTBcMzA2XDMyN1wzMzBcIlwyMTBcMzA2XDMzMVwzMzJcIlwy MTBcMzA2XDMzM1wzMzRcIlwyMTBcMzA2XDMzNVwzMzZLXCJcMjEwXDMwNlwzMzdcMzQwS1wiXDIx MFwzMDZcMzQxXDM0MlwiXDIxMFwzMDZcMzQzXDM0NFwiXDIxMFwzMDZcMzQ1XDM0NlwiXDIxMFwz MDZcMzQ3XDM1MFwiXDIxMFwzMDZcMzUxXDM1MlwiXDIxMFwzNTNcMzUxXDM1NFwzMDMjXDIxMFwz MDZcMzU1XDM1NlwiXDIxMFwzNTNcMzU1XDM1N1wzMDMjXDIxMFwzMDZcMzYwXDM2MVwzMDIjXDIx MFwzNTNcMzYwXDM2MVwzNjIjXDIxMFwzNjNcMzY0XDM2NVwzMDJcMzY2JFwyMTBcMzYzXDM2N1wz NjVcMzAyXDM2NiRcMjA3IiBbbWFrZS1vYnNvbGV0ZS12YXJpYWJsZSBtYXgtc3BlY3BkbC1zaXpl IG5pbCAiMjkuMSIgbmF0aXZlLWNvbXAtZGVmZXJyZWQtY29tcGlsYXRpb24gaW5oaWJpdC1hdXRv bWF0aWMtbmF0aXZlLWNvbXBpbGF0aW9uIGRlZmFsaWFzIHNlbmQtc3RyaW5nIHByb2Nlc3Mtc2Vu ZC1zdHJpbmcgc2VuZC1yZWdpb24gcHJvY2Vzcy1zZW5kLXJlZ2lvbiBzdHJpbmc9IHN0cmluZy1l cXVhbCBzdHJpbmc8IHN0cmluZy1sZXNzcCBzdHJpbmc+IHN0cmluZy1ncmVhdGVycCBtb3ZlLW1h cmtlciBzZXQtbWFya2VyIHJwbGFjYSBzZXRjYXIgcnBsYWNkIHNldGNkciBiZWVwIGRpbmcgaW5k ZW50LXRvLWNvbHVtbiBpbmRlbnQtdG8gYmFja3dhcmQtZGVsZXRlLWNoYXIgZGVsZXRlLWJhY2t3 YXJkLWNoYXIgc2VhcmNoLWZvcndhcmQtcmVnZXhwIHJlLXNlYXJjaC1mb3J3YXJkIHNlYXJjaC1i YWNrd2FyZC1yZWdleHAgcmUtc2VhcmNoLWJhY2t3YXJkIGludC10by1zdHJpbmcgbnVtYmVyLXRv LXN0cmluZyBzdG9yZS1tYXRjaC1kYXRhIHNldC1tYXRjaC1kYXRhIGNobW9kIHNldC1maWxlLW1v ZGVzIG1rZGlyIG1ha2UtZGlyZWN0b3J5IHBvaW50LWF0LWVvbCBsaW5lLWVuZC1wb3NpdGlvbiBt YWtlLW9ic29sZXRlICJ1c2UgYGxpbmUtZW5kLXBvc2l0aW9uJyBvciBgcG9zLWVvbCcgaW5zdGVh ZC4iIHBvaW50LWF0LWJvbCBsaW5lLWJlZ2lubmluZy1wb3NpdGlvbiAidXNlIGBsaW5lLWJlZ2lu bmluZy1wb3NpdGlvbicgb3IgYHBvcy1ib2wnIGluc3RlYWQuIiB1c2VyLW9yaWdpbmFsLWxvZ2lu LW5hbWUgdXNlci1sb2dpbi1uYW1lICIyOC4xIiBhdXRvbG9hZCBtYWtlLWRpcmVjdG9yeS1hdXRv bG9hZHMgImF1dG9sb2FkIiB0IHVwZGF0ZS1kaXJlY3RvcnktYXV0b2xvYWRzXSA1KSNAMTQ2MiBB ZGQgdG8gdGhlIHZhbHVlIG9mIEhPT0sgdGhlIGZ1bmN0aW9uIEZVTkNUSU9OLgpGVU5DVElPTiBp cyBub3QgYWRkZWQgaWYgYWxyZWFkeSBwcmVzZW50LgoKVGhlIHBsYWNlIHdoZXJlIHRoZSBmdW5j dGlvbiBpcyBhZGRlZCBkZXBlbmRzIG9uIHRoZSBERVBUSApwYXJhbWV0ZXIuICBERVBUSCBkZWZh dWx0cyB0byAwLiAgQnkgY29udmVudGlvbiwgaXQgc2hvdWxkIGJlCmEgbnVtYmVyIGJldHdlZW4g LTEwMCBhbmQgMTAwIHdoZXJlIDEwMCBtZWFucyB0aGF0IHRoZSBmdW5jdGlvbgpzaG91bGQgYmUg YXQgdGhlIHZlcnkgZW5kIG9mIHRoZSBsaXN0LCB3aGVyZWFzIC0xMDAgbWVhbnMgdGhhdAp0aGUg ZnVuY3Rpb24gc2hvdWxkIGFsd2F5cyBjb21lIGZpcnN0LgpTaW5jZSBub3RoaW5nIGlzICJhbHdh eXMiIHRydWUsIGRvbid0IHVzZSAxMDAgbm9yIC0xMDAuCldoZW4gdHdvIGZ1bmN0aW9ucyBoYXZl IHRoZSBzYW1lIGRlcHRoLCB0aGUgbmV3IG9uZSBnZXRzIGFkZGVkIGFmdGVyIHRoZQpvbGQgb25l IGlmIGRlcHRoIGlzIHN0cmljdGx5IHBvc2l0aXZlIGFuZCBiZWZvcmUgb3RoZXJ3aXNlLgoKRm9y IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgcmVhc29ucywgYSBzeW1ib2wgb3RoZXIgdGhhbiBuaWwg aXMKaW50ZXJwcmV0ZWQgYXMgYSBERVBUSCBvZiA5MC4KClRoZSBvcHRpb25hbCBmb3VydGggYXJn dW1lbnQsIExPQ0FMLCBpZiBub24tbmlsLCBzYXlzIHRvIG1vZGlmeQp0aGUgaG9vaydzIGJ1ZmZl ci1sb2NhbCB2YWx1ZSByYXRoZXIgdGhhbiBpdHMgZ2xvYmFsIHZhbHVlLgpUaGlzIG1ha2VzIHRo ZSBob29rIGJ1ZmZlci1sb2NhbCwgYW5kIGl0IG1ha2VzIHQgYSBtZW1iZXIgb2YgdGhlCmJ1ZmZl ci1sb2NhbCB2YWx1ZS4gIFRoYXQgYWN0cyBhcyBhIGZsYWcgdG8gcnVuIHRoZSBob29rCmZ1bmN0 aW9ucyBvZiB0aGUgZ2xvYmFsIHZhbHVlIGFzIHdlbGwgYXMgaW4gdGhlIGxvY2FsIHZhbHVlLgoK SE9PSyBzaG91bGQgYmUgYSBzeW1ib2wuICBJZiBIT09LIGlzIHZvaWQsIGl0IGlzIGZpcnN0IHNl dCB0bwpuaWwuICBJZiBIT09LJ3MgdmFsdWUgaXMgYSBzaW5nbGUgZnVuY3Rpb24sIGl0IGlzIGNo YW5nZWQgdG8gYQpsaXN0IG9mIGZ1bmN0aW9ucy4KCkZVTkNUSU9OIG1heSBiZSBhbnkgdmFsaWQg ZnVuY3Rpb24sIGJ1dCBpdCdzIHJlY29tbWVuZGVkIHRvIHVzZSBhCmZ1bmN0aW9uIHN5bWJvbCBh bmQgbm90IGEgbGFtYmRhIGZvcm0uICBVc2luZyBhIHN5bWJvbCB3aWxsCmVuc3VyZSB0aGF0IHRo ZSBmdW5jdGlvbiBpcyBub3QgcmUtYWRkZWQgaWYgdGhlIGZ1bmN0aW9uIGlzCmVkaXRlZCwgYW5k IHVzaW5nIGxhbWJkYSBmb3JtcyBtYXkgYWxzbyBoYXZlIGEgbmVnYXRpdmUKcGVyZm9ybWFuY2Ug aW1wYWN0IHdoZW4gcnVubmluZyBgYWRkLWhvb2snIGFuZCBgcmVtb3ZlLWhvb2snLgoKKGZuIEhP T0sgRlVOQ1RJT04gJm9wdGlvbmFsIERFUFRIIExPQ0FMKR8KKGRlZmFsaWFzICdhZGQtaG9vayAj WzEwMjYgIlwzMDAEIVwyMDRcbgADXDMwMUxcMjEwXDMwMgQhXDIwNBUAXDMwMwRcMzAxXCJcMjEw AVwyNDdcMjA0JQABXDIwM1wiAFwzMDRcMjAyIwBcMzA1XDI2MgJcMjExXDIwMzkAXDMwNgQhXDIw NE8AXDMwNwQhXDMxMENMXDIxMFwyMDJPAFwzMDYEIVwyMDNPAANKOlwyMDNMAFwzMTAESj5cMjA0 TwBcMzEwXDI2MgFcMjExXDIwM1gAA0pcMjAyWwBcMzExBCFcMjExPFwyMDNmAFwzMTIBIVwyMDNq AFwyMTFDXDI2MgEDAVwyMzVcMjA0FwEEXDMxM04DXDMwNVVcMjA0XDMyNwBcMjExXDIwNFwyMTUA XDMxNFwzMTUhXDI2MgFcMjExXDMwMUxcMjEwXDMxNgYGXDMxMwMjXDIxMAJcMjAzXDIyNQBcMzA3 ASFcMjEwAlwyMDNcMjUwAFwyMTFcMzE3XDMyMAJcIlwzMTdcMzIxA1wiQlwyNjIBXDIwMlwyNjQA XDIxMVwzMTdcMzIyAlwiXDMxN1wzMjMDXCJCXDI2MgEFAUAgXDIzNlwyMTFcMjAzXDMwNgBcMjEx BgZcMjQxXDI2NgNcMjAyXDMyNwABQQYHBgdCXDIxMVwyNjIDA0AgQiFcMjY2A1wzMDUEV1wyMDNc MzQ2AFwzMjQCBgZDXCJcMjAyXDM1MQAEAkJcMjYyAlwyMTFcMjAzFgECXDIwM1wzNzAAXDIxMUpc MjAyXDM3MwBcMzExASFcMjExXDIwMxUBXDMyNVwzMDUGBldcMjAzCwEDXDIwMg4BXDMyNgQhXDMx N1wzMjcEXCJcIlwyNjIDXDIxMFwyMTABXDIwMzYBAzlcMjAzMgEDXDMzME5cMjAzMgEEXDMzMU5c MjA0MgFcMzE2BVwzMzFcMzMwI1wyMTAEAUxcMjA3XDMwMwUCXCJcMjA3IiBbYm91bmRwIG5pbCBk ZWZhdWx0LWJvdW5kcCBzZXQtZGVmYXVsdCA5MCAwIGxvY2FsLXZhcmlhYmxlLWlmLXNldC1wIG1h a2UtbG9jYWwtdmFyaWFibGUgdCBkZWZhdWx0LXZhbHVlIGZ1bmN0aW9ucCBob29rLS1kZXB0aC1h bGlzdCBtYWtlLXN5bWJvbCAiZGVwdGgtYWxpc3QiIHB1dCBtYWtlLWNsb3N1cmUgI1swICJcMzAw SlwyMDciIFtWMF0gMV0gI1syNTcgIlwzMDABTFwyMDciIFtWMF0gMyAiXG5cbihmbiBWNjY2KSJd ICNbMCAiXDMwMVwzMDAhXDIwNyIgW1YwIGRlZmF1bHQtdmFsdWVdIDJdICNbMjU3ICJcMzAxXDMw MAJcIlwyMDciIFtWMCBzZXQtZGVmYXVsdF0gNCAiXG5cbihmbiBWNjY2KSJdIGFwcGVuZCBzb3J0 IGNvcHktc2VxdWVuY2UgI1s1MTQgIlwzMDECXDMwMFwzMDJcMzAzXDMwNCVcMzAxAlwzMDBcMzAy XDMwM1wzMDQlV1wyMDciIFtWMCBhbGlzdC1nZXQgMCBuaWwgZXFdIDkgIlxuXG4oZm4gRjEgRjIp Il0gcGVybWFuZW50LWxvY2FsLWhvb2sgcGVybWFuZW50LWxvY2FsXSAxMiAoIyQgLiA2Njg2MCld KSNANjM4IFJlbW92ZSBmcm9tIHRoZSB2YWx1ZSBvZiBIT09LIHRoZSBmdW5jdGlvbiBGVU5DVElP Ti4KSE9PSyBzaG91bGQgYmUgYSBzeW1ib2wsIGFuZCBGVU5DVElPTiBtYXkgYmUgYW55IHZhbGlk IGZ1bmN0aW9uLiAgSWYKRlVOQ1RJT04gaXNuJ3QgdGhlIHZhbHVlIG9mIEhPT0ssIG9yLCBpZiBG VU5DVElPTiBkb2Vzbid0IGFwcGVhciBpbiB0aGUKbGlzdCBvZiBob29rcyB0byBydW4gaW4gSE9P SywgdGhlbiBub3RoaW5nIGlzIGRvbmUuICBTZWUgYGFkZC1ob29rJy4KClRoZSBvcHRpb25hbCB0 aGlyZCBhcmd1bWVudCwgTE9DQUwsIGlmIG5vbi1uaWwsIHNheXMgdG8gbW9kaWZ5CnRoZSBob29r J3MgYnVmZmVyLWxvY2FsIHZhbHVlIHJhdGhlciB0aGFuIGl0cyBkZWZhdWx0IHZhbHVlLgoKSW50 ZXJhY3RpdmVseSwgcHJvbXB0IGZvciB0aGUgdmFyaW91cyBhcmd1bWVudHMgKHNraXBwaW5nIGxv Y2FsCnVubGVzcyBIT09LIGhhcyBib3RoIGxvY2FsIGFuZCBnbG9iYWwgZnVuY3Rpb25zKS4gIElm IG11bHRpcGxlCmZ1bmN0aW9ucyBoYXZlIHRoZSBzYW1lIHJlcHJlc2VudGF0aW9uIHVuZGVyIGBw cmluYycsIHRoZSBmaXJzdApvbmUgd2lsbCBiZSByZW1vdmVkLgoKKGZuIEhPT0sgRlVOQ1RJT04g Jm9wdGlvbmFsIExPQ0FMKR8KKGRlZmFsaWFzICdyZW1vdmUtaG9vayAjWzc3MCAiXDMwMAMhXDIw NFxuAAJcMzAxTFwyMTBcMzAyAyFcMjA0FQBcMzAzA1wzMDFcIlwyMTBcMjExXDIwNR0AXDMwNAMh Pz9cMjA1XDI3NgBcMzA0AyFcMjAzNwACSjpcMjAzNABcMzA1A0o+XDIwNDcAXDMwNVwyNjIBXDIx MVwyMDNAAAJKXDIwMkMAXDMwNgMhXDMwMQE8XDIwM1AAAUBcMzA3PVwyMDNfAAEEXDIzMlwyMDNv AAFcMjYyAVwzMDFcMjYyAlwyMDJvAAMCXDIzNUBcMjExXDI2MgJcMjAzbwBcMzEwAQNcIlwyNjIC XDIxMVwyMDNcMjQ2AARcMzExTlwyMTFcMjA1XDIwNgADXDIwM1wyMDMAXDIxMUpcMjAyXDIwNgBc MzA2ASECAVwyMzZcMjExXDIwM1wyNDQABVwyMDNcMjM0AAJcMzEwAgRcIkxcMjY2BFwyMDJcMjQ2 AFwzMDMDXDMxMAMFXCJcIlwyMTBcMjY2AwJcMjA0XDI1NwBcMzAzBQNcIlwyMDcBXDMxMlwyMzJc MjAzXDI3MQBcMzEzBSFcMjA3BAJMXDI2NlwyMDJcMjA3IiBbYm91bmRwIG5pbCBkZWZhdWx0LWJv dW5kcCBzZXQtZGVmYXVsdCBsb2NhbC12YXJpYWJsZS1wIHQgZGVmYXVsdC12YWx1ZSBsYW1iZGEg cmVtcSBob29rLS1kZXB0aC1hbGlzdCAodCkga2lsbC1sb2NhbC12YXJpYWJsZV0gMTMgKCMkIC4g Njk2MDQpIChieXRlLWNvZGUgIlwzMDEgOVwyMDVcbgBcMzAyXDMwMSAhXDMwM1wzMDRcMzA1XDMw NgRcIghcMzA3XDMxMFwzMTFcMjExBggmByFcMzEyASFcMjA1MgBcMjExSlwyMDUyAFwzMTMBIT9c MjA2MgBcMzE0XDMxNVwzMTYDXCIhXDMxN1wzMjACXDIwMz0AA0pcMjAyQABcMzEzBCFcIlwzMjFc MzA0XDMxNVwzMjIFXDIwM00AXDMyM1wyMDJOAFwzMjRcIgNcMzExXDMxMFwzMTFcMzI1JgYCXDMx MVwyMTFcMzI2JQMBBEVcMjA3IiBbb2JhcnJheSB2YXJpYWJsZS1hdC1wb2ludCBzeW1ib2wtbmFt ZSBpbnRlcm4gY29tcGxldGluZy1yZWFkIGZvcm1hdC1wcm9tcHQgIkhvb2sgdmFyaWFibGUiIGJv dW5kcCB0IG5pbCBsb2NhbC12YXJpYWJsZS1wIGRlZmF1bHQtdmFsdWUgeS1vci1uLXAgZm9ybWF0 ICIlcyBoYXMgYSBidWZmZXItbG9jYWwgYmluZGluZywgdXNlIHRoYXQ/ICIgbWFwY2FyICNbMjU3 ICJcMzAxXDMwMlwzMDNcIhhcMzA0XDIxNggYXDMwNQEhKVwyMTByCHFcMjEwXDMwNiArAUJcMjA3 IiBbc3RhbmRhcmQtb3V0cHV0IGdlbmVyYXRlLW5ldy1idWZmZXIgIiAqc3RyaW5nLW91dHB1dCoi IHQgI1swICJcMzAxCCFcMjA3IiBbc3RhbmRhcmQtb3V0cHV0IGtpbGwtYnVmZmVyXSAyXSBwcmlu MSBidWZmZXItc3RyaW5nXSA0ICJcblxuKGZuIFgpIl0gYWxpc3QtZ2V0ICIlcyBob29rIHRvIHJl bW92ZTogIiAiQnVmZmVyLWxvY2FsIiAiR2xvYmFsIiBzZXQtdmFyaWFibGUtdmFsdWUtaGlzdG9y eSBzdHJpbmc9XSAxMildKSNAMzUzIEJpbmQgdmFyaWFibGVzIGFjY29yZGluZyB0byBCSU5ERVJT IHRoZW4gZXZhbCBCT0RZLgpUaGUgdmFsdWUgb2YgdGhlIGxhc3QgZm9ybSBpbiBCT0RZIGlzIHJl dHVybmVkLgpFYWNoIGVsZW1lbnQgb2YgQklOREVSUyBpcyBhIGxpc3QgKFNZTUJPTCBWQUxVRUZP Uk0pIHRoYXQgYmluZHMKU1lNQk9MIHRvIHRoZSB2YWx1ZSBvZiBWQUxVRUZPUk0uCgpUaGUgbWFp biBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBtYWNybyBhbmQgYGxldCcvYGxldConIGlzIHRoYXQK YWxsIHN5bWJvbHMgYXJlIGJvdW5kIGJlZm9yZSBhbnkgb2YgdGhlIFZBTFVFRk9STXMgYXJlIGV2 YWxsZWQuCgooZm4gQklOREVSUyAmcmVzdCBCT0RZKR8KKGRlZmFsaWFzICdsZXRyZWMgJyhtYWNy byAuICNbMzg1ICJcMzAxXDMwMgMIXCJcMjA0IwACXDIwMyMAXDMwMgNcMjExQEFAXCJcMjA0IwAC XDIxMUFcMjYyBFwyNDIBQlwyNjIBXDIwMggAAlwyMDQtAFwzMDMCIVwyMDI8AFwzMDRcMzA1XDMw NgVcIlwzMDdcMzA1XDMxMAYHXCIFXCJCQgFcMjA0QQBcMjA3XDIxMTlcMjAzWAABQVwyMDRYAFwy MTECQEA9XDIwM1gAAUBBQFwyMDdcMzExAlwyMzcCRVwyMDciIFttYWNyb2V4cGFuZC1hbGwtZW52 aXJvbm1lbnQgbmlsIG1hY3JvZXhwLS1mZ3JlcCBtYWNyb2V4cC1wcm9nbiBsZXQgbWFwY2FyIGNh ciBhcHBlbmQgI1syNTcgIlwzMDABQlwyMDciIFtzZXRxXSAzICJcblxuKGZuIEJJTkRFUikiXSBs ZXQqXSA5ICgjJCAuIDcxNjE0KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wyMTBc MzA0XDMwMVwzMDVcMzA2I1wzMDBcMjA3IiBbcHV0IGxldHJlYyBlZGVidWctZm9ybS1zcGVjIGxl dCBmdW5jdGlvbi1wdXQgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMV0gNCkjQDY0IExpa2UgYGxldCcg YnV0IHVzaW5nIGR5bmFtaWMgc2NvcGluZy4KCihmbiBCSU5ERVJTICZyZXN0IEJPRFkpHwooZGVm YWxpYXMgJ2RsZXQgJyhtYWNybyAuICNbMzg1ICJcMzAwXDMwMVwzMDJcMzAzXDMwNAYGXCJcMzAw BgYGBkJCQ1wiQkJcMjA3IiBbbGV0IChfKSBhcHBlbmQgbWFwY2FyICNbMjU3ICJcMzAwATpcMjAz CwABQFwyMDJcZgABRFwyMDciIFtkZWZ2YXJdIDMgIlxuXG4oZm4gQklOREVSKSJdXSA5ICgjJCAu IDcyNDkzKV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYj XDIwNyIgW2Z1bmN0aW9uLXB1dCBkbGV0IGxpc3AtaW5kZW50LWZ1bmN0aW9uIDEgcHV0IGVkZWJ1 Zy1mb3JtLXNwZWMgbGV0XSA1KSNAMTE2MSBSdW4gQk9EWSwgdXNpbmcgd3JhcHBlciBmdW5jdGlv bnMgZnJvbSBIT09LIHdpdGggYWRkaXRpb25hbCBBUkdTLgpIT09LIGlzIGFuIGFibm9ybWFsIGhv b2suICBFYWNoIGhvb2sgZnVuY3Rpb24gaW4gSE9PSyAid3JhcHMiCmFyb3VuZCB0aGUgcHJlY2Vk aW5nIG9uZXMsIGxpa2UgYSBzZXQgb2YgbmVzdGVkIGBhcm91bmQnIGFkdmljZXMuCgpFYWNoIGhv b2sgZnVuY3Rpb24gc2hvdWxkIGFjY2VwdCBhbiBhcmd1bWVudCBsaXN0IGNvbnNpc3Rpbmcgb2Yg YQpmdW5jdGlvbiBGVU4sIGZvbGxvd2VkIGJ5IHRoZSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBpbiBB UkdTLgoKVGhlIGZpcnN0IGhvb2sgZnVuY3Rpb24gaW4gSE9PSyBpcyBwYXNzZWQgYSBGVU4gdGhh dCwgaWYgaXQgaXMgY2FsbGVkCndpdGggYXJndW1lbnRzIEFSR1MsIHBlcmZvcm1zIEJPRFkgKGku ZS4sIHRoZSBkZWZhdWx0IG9wZXJhdGlvbikuClRoZSBGVU4gcGFzc2VkIHRvIGVhY2ggc3VjY2Vz c2l2ZSBob29rIGZ1bmN0aW9uIGlzIGRlZmluZWQgYmFzZWQKb24gdGhlIHByZWNlZGluZyBob29r IGZ1bmN0aW9uczsgaWYgY2FsbGVkIHdpdGggYXJndW1lbnRzIEFSR1MsCml0IGRvZXMgd2hhdCB0 aGUgYHdpdGgtd3JhcHBlci1ob29rJyBjYWxsIHdvdWxkIGRvIGlmIHRoZQpwcmVjZWRpbmcgaG9v ayBmdW5jdGlvbnMgd2VyZSB0aGUgb25seSBvbmVzIHByZXNlbnQgaW4gSE9PSy4KCkVhY2ggaG9v ayBmdW5jdGlvbiBtYXkgY2FsbCBpdHMgRlVOIGFyZ3VtZW50IGFzIG1hbnkgdGltZXMgYXMgaXQg d2lzaGVzLAppbmNsdWRpbmcgbmV2ZXIuICBJbiB0aGF0IGNhc2UsIHN1Y2ggYSBob29rIGZ1bmN0 aW9uIGFjdHMgdG8gcmVwbGFjZQp0aGUgZGVmYXVsdCBkZWZpbml0aW9uIGFsdG9nZXRoZXIsIGFu ZCBhbnkgcHJlY2VkaW5nIGhvb2sgZnVuY3Rpb25zLgpPZiBjb3Vyc2UsIGEgc3Vic2VxdWVudCBo b29rIGZ1bmN0aW9uIG1heSBkbyB0aGUgc2FtZSB0aGluZy4KCkVhY2ggaG9vayBmdW5jdGlvbiBk ZWZpbml0aW9uIGlzIHVzZWQgdG8gY29uc3RydWN0IHRoZSBGVU4gcGFzc2VkCnRvIHRoZSBuZXh0 IGhvb2sgZnVuY3Rpb24sIGlmIGFueS4gIFRoZSBsYXN0IChvciAib3V0ZXJtb3N0IikKRlVOIGlz IHRoZW4gY2FsbGVkIG9uY2UuCgooZm4gSE9PSyBBUkdTICZyZXN0IEJPRFkpHwooZGVmYWxpYXMg J3dpdGgtd3JhcHBlci1ob29rICcobWFjcm8gLiAjWzY0MiAiXDMwMAMDA0JCQlwyMDciIFtzdWJy LS13aXRoLXdyYXBwZXItaG9vay1uby13YXJuaW5nc10gNyAoIyQgLiA3Mjg3MildKSkKKGJ5dGUt Y29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2I1wyMTBcMzA3XDMwMVwzMTBc MzExI1wyMDciIFtmdW5jdGlvbi1wdXQgd2l0aC13cmFwcGVyLWhvb2sgbGlzcC1pbmRlbnQtZnVu Y3Rpb24gMiBwdXQgZWRlYnVnLWZvcm0tc3BlYyAoZm9ybSBzZXhwIGJvZHkpIG1ha2Utb2Jzb2xl dGUgInVzZSBhIDxmb28+LWZ1bmN0aW9uIHZhcmlhYmxlIG1vZGlmaWVkIGJ5IGBhZGQtZnVuY3Rp b24nLiIgIjI0LjQiXSA1KSNAOTEgTGlrZSAod2l0aC13cmFwcGVyLWhvb2sgSE9PSyBBUkdTIEJP RFkpLCBidXQgd2l0aG91dCB3YXJuaW5ncy4KCihmbiBIT09LIEFSR1MgJnJlc3QgQk9EWSkfCihk ZWZhbGlhcyAnc3Vici0td2l0aC13cmFwcGVyLWhvb2stbm8td2FybmluZ3MgJyhtYWNybyAuICNb NjQyICJcMzAwXDMwMSFcMzAwXDMwMiFcMzAwXDMwMyFcMzAwXDMwNCFcMzA1AVwzMDYGBgYGBgZF XDMwN1wzMTAGCURcMzA3XDMxMVwzMTJcMzEzBg1ERVwzMTQGCVwzMTUGDVwzMTYGEERFXDMxNwYN XDI1NwVcMzIwXDMxMwYORFwzMjFcMzA2BhAGEFwzMjIGEUZcMzE0Bg8GEwYTBhNcMjU3BUVcMzE2 BhFEBhBGBg1GRlwzMjBcMzA2Bg4GDkJCBlxuRUZFRENcMzE0AwZcblwyMTE5XDIwNX8AXDMwN1wz MjNcMzI0Bg5ERFwzMjVcMzI0Bg9EREVcMzI2BlxmQlwyNTcFRVwyMDciIFttYWtlLXN5bWJvbCAi ZnVucyIgImdsb2JhbCIgImFyZ3MiICJydW5yZXN0b2Zob29rIiBsZXRyZWMgbGFtYmRhIGlmIGNv bnNwIGVxIHQgY2FyIGZ1bmNhbGwgYXBwZW5kIGNkciBuaWwgYXBwbHkgYXBwbHktcGFydGlhbGx5 ICZyZXN0IGxvY2FsLXZhcmlhYmxlLXAgcXVvdGUgZGVmYXVsdC12YWx1ZSBsaXN0XSAyNiAoIyQg LiA3NDQwNildKSkKKHB1dCAnc3Vici0td2l0aC13cmFwcGVyLWhvb2stbm8td2FybmluZ3MgJ2Vk ZWJ1Zy1mb3JtLXNwZWMgJyhmb3JtIHNleHAgZGVmLWJvZHkpKSNAOTU3IEFkZCBFTEVNRU5UIHRv IHRoZSB2YWx1ZSBvZiBMSVNULVZBUiBpZiBpdCBpc24ndCB0aGVyZSB5ZXQuClRoZSB0ZXN0IGZv ciBwcmVzZW5jZSBvZiBFTEVNRU5UIGlzIGRvbmUgd2l0aCBgZXF1YWwnLCBvciB3aXRoCkNPTVBB UkUtRk4gaWYgdGhhdCdzIG5vbi1uaWwuCklmIEVMRU1FTlQgaXMgYWRkZWQsIGl0IGlzIGFkZGVk IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QsCnVubGVzcyB0aGUgb3B0aW9uYWwgYXJndW1l bnQgQVBQRU5EIGlzIG5vbi1uaWwsIGluIHdoaWNoIGNhc2UKRUxFTUVOVCBpcyBhZGRlZCBhdCB0 aGUgZW5kLgpMSVNULVZBUiBzaG91bGQgbm90IHJlZmVyIHRvIGEgbGV4aWNhbCB2YXJpYWJsZS4K ClRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIG5ldyB2YWx1ZSBvZiBMSVNULVZBUi4KClRoaXMgaXMg aGFuZHkgdG8gYWRkIHNvbWUgZWxlbWVudHMgdG8gY29uZmlndXJhdGlvbiB2YXJpYWJsZXMsCmJ1 dCBwbGVhc2UgZG8gbm90IGFidXNlIGl0IGluIEVsaXNwIGNvZGUsIHdoZXJlIHlvdSBhcmUgdXN1 YWxseQpiZXR0ZXIgb2ZmIHVzaW5nIGBwdXNoJyBvciBgY2wtcHVzaG5ldycuCgpJZiB5b3Ugd2Fu dCB0byB1c2UgYGFkZC10by1saXN0JyBvbiBhIHZhcmlhYmxlIHRoYXQgaXMgbm90CmRlZmluZWQg dW50aWwgYSBjZXJ0YWluIHBhY2thZ2UgaXMgbG9hZGVkLCB5b3Ugc2hvdWxkIHB1dCB0aGUKY2Fs bCB0byBgYWRkLXRvLWxpc3QnIGludG8gYSBob29rIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBydW4g b25seQphZnRlciBsb2FkaW5nIHRoZSBwYWNrYWdlLiAgYGV2YWwtYWZ0ZXItbG9hZCcgcHJvdmlk ZXMgb25lIHdheSB0bwpkbyB0aGlzLiAgSW4gc29tZSBjYXNlcyBvdGhlciBob29rcywgc3VjaCBh cyBtYWpvciBtb2RlIGhvb2tzLApjYW4gZG8gdGhlIGpvYi4KCihmbiBMSVNULVZBUiBFTEVNRU5U ICZvcHRpb25hbCBBUFBFTkQgQ09NUEFSRS1GTikfCihkZWZhbGlhcyAnYWRkLXRvLWxpc3QgI1sx MDI2ICJcMjExXDMwMFwyNjdcMjAyHAACBEpcMjM1XDIwMjQAAgRKPlwyMDI0AFwzMDEDBUpcIlwy MDI0AANKXDIxMVwyMDMxAAEEAkBcIlwyMDQxAFwyMTFBXDI2MgFcMjAyHgBcMjExXDI2MgFcMjAz OgADSlwyMDcDAlwyMDNIAFwzMDIFSgVDXCJcMjAyTAADBUpCTFwyMDciIFsjcyhoYXNoLXRhYmxl IHNpemUgMyB0ZXN0IGVxIHJlaGFzaC1zaXplIDEuNSByZWhhc2gtdGhyZXNob2xkIDAuODEyNSBw dXJlY29weSB0IGRhdGEgKG5pbCA2IGVxIDEzIGVxbCAyMCkpIG1lbXFsIGFwcGVuZF0gOCAoIyQg LiA3NTExMildKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBcMjA3IiBbZnVuY3Rp b24tcHV0IGFkZC10by1saXN0IGNvbXBpbGVyLW1hY3JvIGFkZC10by1saXN0LS1hbm9uLWNtYWNy b10gNCkjQDU3IAoKKGZuIEVYUCBMSVNULVZBUiBFTEVNRU5UICZvcHRpb25hbCBBUFBFTkQgQ09N UEFSRS1GTikfCihkZWZhbGlhcyAnYWRkLXRvLWxpc3QtLWFub24tY21hY3JvICNbMTI4MyAiA1wy NDJcMzAxPVwyMDMVAFwzMDIEQUAhXDIwNBUAXDMwMwIhXDIwNBcABFwyMDcDQUBcMzA0AwhcIlwz MDVcMzA2A1wiXDMwN1wzMTACBSNcMzExBgchXDIwMzMABgZcMjAyNgBcMzEyXDMxMyFcMzE0BgZc MjAzTABcMzE1XDMxNiFcMjEwXDMxNwIGB1wzMjAGXG5cMjU3BVwyMDJRAFwzMjECBgdFBgYGBlwy MDNnAFwzMjIGCFwzMjMGXG5cMzI0BghERUVcMjAybABcMzI1BAYJRUYBBgk9XDIwM3oAXDIxMVwy NjZcMjAyXDIwMlwyMDQAXDMyNgIGXG5EQwJcIlwyNjZcMjAyXDMyNyBcMjA0XDIxMgBcMjA3XDMz MFwzMzFcMzAxBEREAkVcMjA3IiBbbGV4aWNhbC1iaW5kaW5nIHF1b3RlIHNwZWNpYWwtdmFyaWFi bGUtcCBtYWNyb2V4cC1jb25zdC1wIGV2YWwgZm9ybWF0LW1lc3NhZ2UgImBhZGQtdG8tbGlzdCcg Y2FuJ3QgdXNlIGxleGljYWwgdmFyIGAlcyc7IHVzZSBgcHVzaCcgb3IgYGNsLXB1c2huZXcnIiBt YWtlLWNsb3N1cmUgI1swICJcMzAxXG5cMjM2XDIwNVxuAFwzMDNcMzAwXDMwNFwiXDIwNyIgW1Yw IFYxIGJ5dGUtY29tcGlsZS0tbGV4aWNhbC1lbnZpcm9ubWVudCBieXRlLWNvbXBpbGUtcmVwb3J0 LWVycm9yIDpmaWxsXSAzXSBtYWNyb2V4cC1jb3B5YWJsZS1wIG1ha2Utc3ltYm9sICJ4IiBpZiBy ZXF1aXJlIGNsLWxpYiBjbC1tZW1iZXIgOnRlc3QgbWVtYmVyIHNldHEgYXBwZW5kIGxpc3QgcHVz aCBtYWNyb2V4cC1sZXQqIG1hY3JvZXhwLWNvbXBpbGluZy1wIHByb2duIG1hY3JvZXhwLS1mdW5j YWxsLWlmLWNvbXBpbGVkXSAxOSAoIyQgLiA3NjUwNCldKSNANjY4IEFkZCBFTEVNRU5UIHRvIHRo ZSB2YWx1ZSBvZiBMSVNULVZBUiBpZiBpdCBpc24ndCB0aGVyZSB5ZXQuClRoZSB0ZXN0IGZvciBw cmVzZW5jZSBvZiBFTEVNRU5UIGlzIGRvbmUgd2l0aCBgZXEnLgoKVGhlIHZhbHVlIG9mIExJU1Qt VkFSIGlzIGtlcHQgb3JkZXJlZCBiYXNlZCBvbiB0aGUgT1JERVIKcGFyYW1ldGVyLgoKSWYgdGhl IHRoaXJkIG9wdGlvbmFsIGFyZ3VtZW50IE9SREVSIGlzIGEgbnVtYmVyIChpbnRlZ2VyIG9yCmZs b2F0KSwgc2V0IHRoZSBlbGVtZW50J3MgbGlzdCBvcmRlciB0byB0aGUgZ2l2ZW4gdmFsdWUuICBJ ZgpPUkRFUiBpcyBuaWwgb3Igb21pdHRlZCwgZG8gbm90IGNoYW5nZSB0aGUgbnVtZXJpYyBvcmRl ciBvZgpFTEVNRU5ULiAgSWYgT1JERVIgaGFzIGFueSBvdGhlciB2YWx1ZSwgcmVtb3ZlIHRoZSBu dW1lcmljIG9yZGVyCm9mIEVMRU1FTlQgaWYgaXQgaGFzIG9uZS4KClRoZSBsaXN0IG9yZGVyIGZv ciBlYWNoIGVsZW1lbnQgaXMgc3RvcmVkIGluIExJU1QtVkFSJ3MKYGxpc3Qtb3JkZXInIHByb3Bl cnR5LgpMSVNULVZBUiBjYW5ub3QgcmVmZXIgdG8gYSBsZXhpY2FsIHZhcmlhYmxlLgoKVGhlIHJl dHVybiB2YWx1ZSBpcyB0aGUgbmV3IHZhbHVlIG9mIExJU1QtVkFSLgoKKGZuIExJU1QtVkFSIEVM RU1FTlQgJm9wdGlvbmFsIE9SREVSKR8KKGRlZmFsaWFzICdhZGQtdG8tb3JkZXJlZC1saXN0ICNb NzcwICICXDMwME5DXDIxMVwyNDJcMjA0FgBcMzAxBFwzMDADXDMwMlwzMDNcMzA0XDMwNVwzMDYk XDI0MCNcMjEwAVwyMDMmAFwzMDcDA1wyNDdcMjA1XCIAAwNcMjQyI1wyMTACBEo+XDIwNDQAAwMF SkJMXDIxMANcMzEwBUpcMzExXDMxMgVcIlwiTFwyMDciIFtsaXN0LW9yZGVyIHB1dCBtYWtlLWhh c2gtdGFibGUgOndlYWtuZXNzIGtleSA6dGVzdCBlcSBwdXRoYXNoIHNvcnQgbWFrZS1jbG9zdXJl ICNbNTE0ICJcMzAxAlwzMDBcMjQyXCJcMzAxAlwzMDBcMjQyXCIBXDIwMxYAXDIxMVwyMDMWAAEB V1wyMDcBXDIwNyIgW1YwIGdldGhhc2hdIDYgIlxuXG4oZm4gQSBCKSJdXSAxMyAoIyQgLiA3NzM4 OSldKSNANzMzIEFkZCBORVdFTFQgdG8gdGhlIGhpc3RvcnkgbGlzdCBzdG9yZWQgaW4gdGhlIHZh cmlhYmxlIEhJU1RPUlktVkFSLgpSZXR1cm4gdGhlIG5ldyBoaXN0b3J5IGxpc3QuCklmIE1BWEVM VCBpcyBub24tbmlsLCBpdCBzcGVjaWZpZXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBoaXN0 b3J5LgpPdGhlcndpc2UsIHRoZSBtYXhpbXVtIGhpc3RvcnkgbGVuZ3RoIGlzIHRoZSB2YWx1ZSBv ZiB0aGUgYGhpc3RvcnktbGVuZ3RoJwpwcm9wZXJ0eSBvbiBzeW1ib2wgSElTVE9SWS1WQVIsIGlm IHNldCwgb3IgdGhlIHZhbHVlIG9mIHRoZSBgaGlzdG9yeS1sZW5ndGgnCnZhcmlhYmxlLiAgVGhl IHBvc3NpYmxlIHZhbHVlcyBvZiBtYXhpbXVtIGxlbmd0aCBoYXZlIHRoZSBzYW1lIG1lYW5pbmcg YXMKdGhlIHZhbHVlcyBvZiBgaGlzdG9yeS1sZW5ndGgnLgpSZW1vdmUgZHVwbGljYXRlcyBvZiBO RVdFTFQgaWYgYGhpc3RvcnktZGVsZXRlLWR1cGxpY2F0ZXMnIGlzIG5vbi1uaWwuCklmIG9wdGlv bmFsIGZvdXJ0aCBhcmcgS0VFUC1BTEwgaXMgbm9uLW5pbCwgYWRkIE5FV0VMVCB0byBoaXN0b3J5 IGV2ZW4KaWYgaXQgaXMgZW1wdHkgb3IgZHVwbGljYXRlcyB0aGUgbW9zdCByZWNlbnQgZW50cnkg aW4gdGhlIGhpc3RvcnkuCkhJU1RPUlktVkFSIGNhbm5vdCByZWZlciB0byBhIGxleGljYWwgdmFy aWFibGUuCgooZm4gSElTVE9SWS1WQVIgTkVXRUxUICZvcHRpb25hbCBNQVhFTFQgS0VFUC1BTEwp HwooZGVmYWxpYXMgJ2FkZC10by1oaXN0b3J5ICNbMTAyNiAiAVwyMDQNAANcMzAwTlwyMDYLAAhc MjYyAgNKXDMwMgE8XDIwNWMAAlwyMDQlAAQ7XDIwMyUABEdcMzAzVlwyMDVjAAJcMjA0MQABQAVc MjMyP1wyMDVjAAlcMjAzOwBcMzA0BQNcIlwyNjICBAJCXDI2MgIDXDI1MFwyMDNgAFwzMDMEWVwy MDNRAFwzMDJcMjYyAlwyMDJgAANTAlwyMzNcMjYyAVwyMTE6XDIwM2AAXDIxMVwzMDJcMjQxXDIx MAUCTFwyMDciIFtoaXN0b3J5LWxlbmd0aCBoaXN0b3J5LWRlbGV0ZS1kdXBsaWNhdGVzIG5pbCAw IGRlbGV0ZV0gOSAoIyQgLiA3ODQ0MildKSNANjIgSWYgbm9uLW5pbCwgYHJ1bi1tb2RlLWhvb2tz JyBzaG91bGQgZGVsYXkgcnVubmluZyB0aGUgaG9va3MuHwooZGVmdmFyIGRlbGF5LW1vZGUtaG9v a3MgbmlsICgjJCAuIDc5NDg4KSkjQDQ3IExpc3Qgb2YgZGVsYXllZCBtb2RlIGhvb2tzIHdhaXRp bmcgdG8gYmUgcnVuLh8KKGRlZnZhciBkZWxheWVkLW1vZGUtaG9va3MgbmlsICgjJCAuIDc5NTk3 KSkKKGJ5dGUtY29kZSAiXDMwMFwzMDEhXDIxMFwzMDJcMzAzXDMwNFwzMDUjXDIwNyIgW21ha2Ut dmFyaWFibGUtYnVmZmVyLWxvY2FsIGRlbGF5ZWQtbW9kZS1ob29rcyBwdXQgZGVsYXktbW9kZS1o b29rcyBwZXJtYW5lbnQtbG9jYWwgdF0gNCkjQDk5IExpc3Qgb2YgZGVsYXllZCA6YWZ0ZXItaG9v ayBmb3JtcyB3YWl0aW5nIHRvIGJlIHJ1bi4KVGhlc2UgZm9ybXMgY29tZSBmcm9tIGBkZWZpbmUt ZGVyaXZlZC1tb2RlJy4fCihkZWZ2YXIgZGVsYXllZC1hZnRlci1ob29rLWZ1bmN0aW9ucyBuaWwg KCMkIC4gNzk4MzEpKQoobWFrZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ2RlbGF5ZWQtYWZ0ZXIt aG9vay1mdW5jdGlvbnMpI0A2NSBOb3JtYWwgaG9vayBydW4gaW4gbWFqb3IgbW9kZSBmdW5jdGlv bnMsIGJlZm9yZSB0aGUgbW9kZSBob29rcy4fCihkZWZ2YXIgY2hhbmdlLW1ham9yLW1vZGUtYWZ0 ZXItYm9keS1ob29rIG5pbCAoIyQgLiA4MDA0OCkpI0A1OCBOb3JtYWwgaG9vayBydW4gYXQgdGhl IHZlcnkgZW5kIG9mIG1ham9yIG1vZGUgZnVuY3Rpb25zLh8KKGRlZnZhciBhZnRlci1jaGFuZ2Ut bWFqb3ItbW9kZS1ob29rIG5pbCAoIyQgLiA4MDE3NykpI0A2ODQgUnVuIG1vZGUgaG9va3MgYGRl bGF5ZWQtbW9kZS1ob29rcycgYW5kIEhPT0tTLCBvciBkZWxheSBIT09LUy4KQ2FsbCBgaGFjay1s b2NhbC12YXJpYWJsZXMnIHRvIHNldCB1cCBmaWxlIGxvY2FsIGFuZCBkaXJlY3RvcnkgbG9jYWwK dmFyaWFibGVzLgoKSWYgdGhlIHZhcmlhYmxlIGBkZWxheS1tb2RlLWhvb2tzJyBpcyBub24tbmls LCBkb2VzIG5vdCBkbyBhbnl0aGluZywKanVzdCBhZGRzIHRoZSBIT09LUyB0byB0aGUgbGlzdCBg ZGVsYXllZC1tb2RlLWhvb2tzJy4KT3RoZXJ3aXNlLCBydW5zIGhvb2tzIGluIHRoZSBzZXF1ZW5j ZTogYGNoYW5nZS1tYWpvci1tb2RlLWFmdGVyLWJvZHktaG9vaycsCmBkZWxheWVkLW1vZGUtaG9v a3MnIChpbiByZXZlcnNlIG9yZGVyKSwgSE9PS1MsIHRoZW4gcnVucwpgaGFjay1sb2NhbC12YXJp YWJsZXMnLCBydW5zIHRoZSBob29rIGBhZnRlci1jaGFuZ2UtbWFqb3ItbW9kZS1ob29rJywgYW5k CmZpbmFsbHkgZXZhbHVhdGVzIHRoZSBmdW5jdGlvbnMgaW4gYGRlbGF5ZWQtYWZ0ZXItaG9vay1m dW5jdGlvbnMnIChzZWUKYGRlZmluZS1kZXJpdmVkLW1vZGUnKS4KCk1ham9yIG1vZGUgZnVuY3Rp b25zIHNob3VsZCB1c2UgdGhpcyBpbnN0ZWFkIG9mIGBydW4taG9va3MnIHdoZW4KcnVubmluZyB0 aGVpciBGT08tbW9kZS1ob29rLgoKKGZuICZyZXN0IEhPT0tTKR8KKGRlZmFsaWFzICdydW4tbW9k ZS1ob29rcyAjWzEyOCAiCFwyMDMXAFwyMTFcMjExXDIwNRYAXDIxMUBcMjExCUIRAUFcMjY2XDIw MlwyMDIFAFwyMDcJXDIzNwFcMjQ0XDI2MgFcMzA1XDMwMiFcMjAzMwBcblwyMDMzAFwzMDZcMzAz IVwyMDQzAFwzMDdcMzAzIVwyMTBcMzEwE1wzMTERXDMxMlwzMTNcMzE0A0JcIlwyMTBcMzE1IFwy MDNTAFwzMTYxTQBcMzE3XDMyMCEwXDIxMFwyMDJTAFwzMjFcMzIyAlwiXDI2NgJcMzEzXDMyMyFc MjEwXGZcMjM3XDMxMRRcMjExXDIwNWsAXDIxMUBcMjExIFwyMTABQVwyNjZcMjAyXDIwMlsAXDIw NyIgW2RlbGF5LW1vZGUtaG9va3MgZGVsYXllZC1tb2RlLWhvb2tzIHN5bnRheC1wcm9wZXJ0aXpl LWZ1bmN0aW9uIHBhcnNlLXNleHAtbG9va3VwLXByb3BlcnRpZXMgZGVsYXllZC1hZnRlci1ob29r LWZ1bmN0aW9ucyBib3VuZHAgbG9jYWwtdmFyaWFibGUtcCBtYWtlLWxvY2FsLXZhcmlhYmxlIHQg bmlsIGFwcGx5IHJ1bi1ob29rcyBjaGFuZ2UtbWFqb3ItbW9kZS1hZnRlci1ib2R5LWhvb2sgYnVm ZmVyLWZpbGUtbmFtZSAoZGVidWcgZXJyb3IpIGhhY2stbG9jYWwtdmFyaWFibGVzIG5vLW1vZGUg bWVzc2FnZSAiRmlsZSBsb2NhbC12YXJpYWJsZXMgZXJyb3I6ICVzIiBhZnRlci1jaGFuZ2UtbWFq b3ItbW9kZS1ob29rXSA1ICgjJCAuIDgwMjk1KV0pI0AyMzYgRXhlY3V0ZSBCT0RZLCBidXQgZGVs YXkgYW55IGBydW4tbW9kZS1ob29rcycuClRoZXNlIGhvb2tzIHdpbGwgYmUgZXhlY3V0ZWQgYnkg dGhlIGZpcnN0IGZvbGxvd2luZyBjYWxsIHRvCmBydW4tbW9kZS1ob29rcycgdGhhdCBvY2N1cnMg b3V0c2lkZSBhbnkgYGRlbGF5LW1vZGUtaG9va3MnIGZvcm0uCkFmZmVjdHMgb25seSBob29rcyBy dW4gaW4gdGhlIGN1cnJlbnQgYnVmZmVyLgoKKGZuICZyZXN0IEJPRFkpHwooZGVmYWxpYXMgJ2Rl bGF5LW1vZGUtaG9va3MgJyhtYWNybyAuICNbMTI4ICJcMzAwXDMwMVwzMDJcMzAzBEJCRVwyMDci IFtwcm9nbiAobWFrZS1sb2NhbC12YXJpYWJsZSAnZGVsYXktbW9kZS1ob29rcykgbGV0ICgoZGVs YXktbW9kZS1ob29rcyB0KSldIDYgKCMkIC4gODE2NjApXSkpCihieXRlLWNvZGUgIlwzMDBcMzAx XDMwMlwzMDMjXDIxMFwzMDRcMzAxXDMwNVwzMDYjXDMwMFwyMDciIFtwdXQgZGVsYXktbW9kZS1o b29rcyBlZGVidWctZm9ybS1zcGVjIHQgZnVuY3Rpb24tcHV0IGxpc3AtaW5kZW50LWZ1bmN0aW9u IDBdIDQpI0A3MiBDaGVjayBhbmQgYnVpbGQgYSBzaW5nbGUgQklORElORyB3aXRoIFBSRVYtVkFS LgoKKGZuIEJJTkRJTkcgUFJFVi1WQVIpHwooZGVmYWxpYXMgJ2ludGVybmFsLS1idWlsZC1iaW5k aW5nICNbNTE0ICIBOVwyMDMLAAFcMjExRFwyMDIaAAFBXDIwNBkAXDMwMFwzMDEhAkBEXDIwMhoA AVwyNjICAUdcMzAyVlwyMDMqAFwzMDNcMzA0XDMwNQRCXCJcMjEwAUBcMjExXDMwNgMFQUBFRFwy MDciIFttYWtlLXN5bWJvbCAicyIgMiBzaWduYWwgZXJyb3IgImBsZXQnIGJpbmRpbmdzIGNhbiBo YXZlIG9ubHkgb25lIHZhbHVlLWZvcm0iIGFuZF0gNyAoIyQgLiA4MjIwNSldKSNANzAgQ2hlY2sg YW5kIGJ1aWxkIGNvbmRpdGlvbmFsIHZhbHVlIGZvcm1zIGZvciBCSU5ESU5HUy4KCihmbiBCSU5E SU5HUykfCihkZWZhbGlhcyAnaW50ZXJuYWwtLWJ1aWxkLWJpbmRpbmdzICNbMjU3ICJcMzAwQ1wz MDFcMzAyXDMwMwNcIgNcIlwyMDciIFt0IG1hcGNhciBtYWtlLWNsb3N1cmUgI1syNTcgIlwzMDEB XDMwMFwyNDJcIlwzMDABQFwyNDBcMjEwXDIwNyIgW1YwIGludGVybmFsLS1idWlsZC1iaW5kaW5n XSA0ICJcblxuKGZuIEJJTkRJTkcpIl1dIDYgKCMkIC4gODI1MzApXSkjQDE4NyBCaW5kIHZhcmlh YmxlcyBhY2NvcmRpbmcgdG8gVkFSTElTVCBhbmQgZXZhbHVhdGUgVEhFTiBvciBFTFNFLgpUaGlz IGlzIGxpa2UgYGlmLWxldCcgYnV0IGRvZXNuJ3QgaGFuZGxlIGEgVkFSTElTVCBvZiB0aGUgZm9y bQooU1lNQk9MIFNPTUVUSElORykgc3BlY2lhbGx5LgoKKGZuIFZBUkxJU1QgVEhFTiAmcmVzdCBF TFNFKR8KKGRlZmFsaWFzICdpZi1sZXQqICcobWFjcm8gLiAjWzY0MiAiAlwyMDMZAFwzMDBcMzAx BCFcMjExXDI2MgVcMzAyXDMwMwYGIUBABQVCQkJFXDIwN1wzMDBcMzA0A0VcMjA3IiBbbGV0KiBp bnRlcm5hbC0tYnVpbGQtYmluZGluZ3MgaWYgbGFzdCBuaWxdIDkgKCMkIC4gODI4MTEpXSkpCihi eXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVuY3Rp b24tcHV0IGlmLWxldCogbGlzcC1pbmRlbnQtZnVuY3Rpb24gMiBwdXQgZWRlYnVnLWZvcm0tc3Bl YyAoKCZyZXN0IFsmb3Igc3ltYm9scCAoc3ltYm9scCBmb3JtKSAoZm9ybSldKSBib2R5KV0gNSkj QDE5MCBCaW5kIHZhcmlhYmxlcyBhY2NvcmRpbmcgdG8gVkFSTElTVCBhbmQgY29uZGl0aW9uYWxs eSBldmFsdWF0ZSBCT0RZLgpUaGlzIGlzIGxpa2UgYHdoZW4tbGV0JyBidXQgZG9lc24ndCBoYW5k bGUgYSBWQVJMSVNUIG9mIHRoZSBmb3JtCihTWU1CT0wgU09NRVRISU5HKSBzcGVjaWFsbHkuCgoo Zm4gVkFSTElTVCAmcmVzdCBCT0RZKR8KKGRlZmFsaWFzICd3aGVuLWxldCogJyhtYWNybyAuICNb Mzg1ICJcMzAwAlwzMDEDIUVcMjA3IiBbaWYtbGV0KiBtYWNyb2V4cC1wcm9nbl0gNiAoIyQgLiA4 MzMzOSldKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2I1wy MDciIFtmdW5jdGlvbi1wdXQgd2hlbi1sZXQqIGxpc3AtaW5kZW50LWZ1bmN0aW9uIDEgcHV0IGVk ZWJ1Zy1mb3JtLXNwZWMgaWYtbGV0Kl0gNSkjQDE5OSBCaW5kIHZhcmlhYmxlcyBhY2NvcmRpbmcg dG8gVkFSTElTVCBhbmQgY29uZGl0aW9uYWxseSBldmFsdWF0ZSBCT0RZLgpMaWtlIGB3aGVuLWxl dConLCBleGNlcHQgaWYgQk9EWSBpcyBlbXB0eSBhbmQgYWxsIHRoZSBiaW5kaW5ncwphcmUgbm9u LW5pbCwgdGhlbiB0aGUgcmVzdWx0IGlzIG5vbi1uaWwuCgooZm4gVkFSTElTVCAmcmVzdCBCT0RZ KR8KKGRlZmFsaWFzICdhbmQtbGV0KiAnKG1hY3JvIC4gI1szODUgIlwzMDACXDIwMyAAXDMwMVwz MDIEIVwyMTFcMjYyBVwzMDNcMzA0BgYhQEBcMjExXDI2MgUFXDIwNhwABENCQkVcMjA3XDMwMVwz MDADXDIwNicAXDMwNUJCXDIwNyIgW25pbCBsZXQqIGludGVybmFsLS1idWlsZC1iaW5kaW5ncyB3 aGVuIGxhc3QgKHQpXSA4ICgjJCAuIDgzNzY1KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJc MzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCBhbmQtbGV0KiBsaXNwLWlu ZGVudC1mdW5jdGlvbiAxIHB1dCBlZGVidWctZm9ybS1zcGVjIGlmLWxldCpdIDUpI0A3NzggQmlu ZCB2YXJpYWJsZXMgYWNjb3JkaW5nIHRvIFNQRUMgYW5kIGV2YWx1YXRlIFRIRU4gb3IgRUxTRS4K RXZhbHVhdGUgZWFjaCBiaW5kaW5nIGluIHR1cm4sIGFzIGluIGBsZXQqJywgc3RvcHBpbmcgaWYg YQpiaW5kaW5nIHZhbHVlIGlzIG5pbC4gIElmIGFsbCBhcmUgbm9uLW5pbCByZXR1cm4gdGhlIHZh bHVlIG9mClRIRU4sIG90aGVyd2lzZSB0aGUgbGFzdCBmb3JtIGluIEVMU0UuCgpFYWNoIGVsZW1l bnQgb2YgU1BFQyBpcyBhIGxpc3QgKFNZTUJPTCBWQUxVRUZPUk0pIHRoYXQgYmluZHMKU1lNQk9M IHRvIHRoZSB2YWx1ZSBvZiBWQUxVRUZPUk0uICBBbiBlbGVtZW50IGNhbiBhZGRpdGlvbmFsbHkg YmUKb2YgdGhlIGZvcm0gKFZBTFVFRk9STSksIHdoaWNoIGlzIGV2YWx1YXRlZCBhbmQgY2hlY2tl ZCBmb3IgbmlsOwppLmUuIFNZTUJPTCBjYW4gYmUgb21pdHRlZCBpZiBvbmx5IHRoZSB0ZXN0IHJl c3VsdCBpcyBvZgppbnRlcmVzdC4gIEl0IGNhbiBhbHNvIGJlIG9mIHRoZSBmb3JtIFNZTUJPTCwg dGhlbiB0aGUgYmluZGluZyBvZgpTWU1CT0wgaXMgY2hlY2tlZCBmb3IgbmlsLgoKQXMgYSBzcGVj aWFsIGNhc2UsIGludGVycHJldHMgYSBTUEVDIG9mIHRoZSBmb3JtIChTWU1CT0wgU09NRVRISU5H KQpsaWtlICgoU1lNQk9MIFNPTUVUSElORykpLiAgVGhpcyBleGlzdHMgZm9yIGJhY2t3YXJkIGNv bXBhdGliaWxpdHkKd2l0aCBhbiBvbGQgc3ludGF4IHRoYXQgYWNjZXB0ZWQgb25seSBvbmUgYmlu ZGluZy4KCihmbiBTUEVDIFRIRU4gJnJlc3QgRUxTRSkfCihkZWZhbGlhcyAnaWYtbGV0ICcobWFj cm8gLiAjWzY0MiAiAkdcMzAwWFwyMDMRAAJAPFwyMDQRAAJDXDI2MgNcMzAxAwNcMzAyBCFGXDIw NyIgWzIgaWYtbGV0KiBtYWNyb2V4cC1wcm9nbl0gOCAoIyQgLiA4NDMwMCldKSkKKGJ5dGUtY29k ZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2I1wyMDciIFtmdW5jdGlvbi1wdXQg aWYtbGV0IGxpc3AtaW5kZW50LWZ1bmN0aW9uIDIgcHV0IGVkZWJ1Zy1mb3JtLXNwZWMgKFsmb3Ig KHN5bWJvbHAgZm9ybSkgKCZyZXN0IFsmb3Igc3ltYm9scCAoc3ltYm9scCBmb3JtKSAoZm9ybSld KV0gYm9keSldIDUpI0AyNzEgQmluZCB2YXJpYWJsZXMgYWNjb3JkaW5nIHRvIFNQRUMgYW5kIGNv bmRpdGlvbmFsbHkgZXZhbHVhdGUgQk9EWS4KRXZhbHVhdGUgZWFjaCBiaW5kaW5nIGluIHR1cm4s IHN0b3BwaW5nIGlmIGEgYmluZGluZyB2YWx1ZSBpcyBuaWwuCklmIGFsbCBhcmUgbm9uLW5pbCwg cmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgbGFzdCBmb3JtIGluIEJPRFkuCgpUaGUgdmFyaWFibGUg bGlzdCBTUEVDIGlzIHRoZSBzYW1lIGFzIGluIGBpZi1sZXQnLgoKKGZuIFNQRUMgJnJlc3QgQk9E WSkfCihkZWZhbGlhcyAnd2hlbi1sZXQgJyhtYWNybyAuICNbMzg1ICJcMzAwAlwzMDEDIUVcMjA3 IiBbaWYtbGV0IG1hY3JvZXhwLXByb2duXSA2ICgjJCAuIDg1NDA0KV0pKQooYnl0ZS1jb2RlICJc MzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCB3aGVu LWxldCBsaXNwLWluZGVudC1mdW5jdGlvbiAxIHB1dCBlZGVidWctZm9ybS1zcGVjIGlmLWxldF0g NSkjQDI1OSBCaW5kIHZhcmlhYmxlcyBhY2NvcmRpbmcgdG8gU1BFQyBhbmQgY29uZGl0aW9uYWxs eSBldmFsdWF0ZSBCT0RZLgpFdmFsdWF0ZSBlYWNoIGJpbmRpbmcgaW4gdHVybiwgc3RvcHBpbmcg aWYgYSBiaW5kaW5nIHZhbHVlIGlzIG5pbC4KSWYgYWxsIGJpbmRpbmdzIGFyZSBub24tbmlsLCBl dmFsIEJPRFkgYW5kIHJlcGVhdC4KClRoZSB2YXJpYWJsZSBsaXN0IFNQRUMgaXMgdGhlIHNhbWUg YXMgaW4gYGlmLWxldCcuCgooZm4gU1BFQyAmcmVzdCBCT0RZKR8KKGRlZmFsaWFzICd3aGlsZS1s ZXQgJyhtYWNybyAuICNbMzg1ICJcMzAwXDMwMSFcMzAyXDMwMwJEXDMwNFwzMDVcMzA2BgdcMzA3 BghCXDMxMFwzMDMGCURcMzExQkJGRUVcMjA3IiBbZ2Vuc3ltICJkb25lIiBjYXRjaCBxdW90ZSB3 aGlsZSB0IGlmLWxldCogcHJvZ24gdGhyb3cgKG5pbCldIDEzICgjJCAuIDg1OTA3KV0pKQooYnl0 ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9u LXB1dCB3aGlsZS1sZXQgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMSBwdXQgZWRlYnVnLWZvcm0tc3Bl YyBpZi1sZXRdIDUpI0AyMDYgTm9uLW5pbCBpZiBNT0RFIGlzIGRlcml2ZWQgZnJvbSBvbmUgb2Yg TU9ERVMuClVzZXMgdGhlIGBkZXJpdmVkLW1vZGUtcGFyZW50JyBwcm9wZXJ0eSBvZiB0aGUgc3lt Ym9sIHRvIHRyYWNlIGJhY2t3YXJkcy4KSWYgeW91IGp1c3Qgd2FudCB0byBjaGVjayBgbWFqb3It bW9kZScsIHVzZSBgZGVyaXZlZC1tb2RlLXAnLgoKKGZuIE1PREUgJnJlc3QgTU9ERVMpHwooZGVm YWxpYXMgJ3Byb3ZpZGVkLW1vZGUtZGVyaXZlZC1wICNbMzg1ICIBS1wyMTFcMjAzDgBcMjExOVwy MDMOAFwyMTFcMjYyA1wyMTABAT5cMjA0MAABXDMwME5cMjExS1wyMTFcMjAzJwBcMjExOVwyMDMn AFwyMTFcMjAyKAABXDIxMVwyNjIFXDI2NlwyMDJcMjA0DwABXDIwNyIgW2Rlcml2ZWQtbW9kZS1w YXJlbnRdIDYgKCMkIC4gODY0ODcpXSkjQDE1NyBOb24tbmlsIGlmIHRoZSBjdXJyZW50IG1ham9y IG1vZGUgaXMgZGVyaXZlZCBmcm9tIG9uZSBvZiBNT0RFUy4KVXNlcyB0aGUgYGRlcml2ZWQtbW9k ZS1wYXJlbnQnIHByb3BlcnR5IG9mIHRoZSBzeW1ib2wgdG8gdHJhY2UgYmFja3dhcmRzLgoKKGZu ICZyZXN0IE1PREVTKR8KKGRlZmFsaWFzICdkZXJpdmVkLW1vZGUtcCAjWzEyOCAiXDMwMVwzMDII AyNcMjA3IiBbbWFqb3ItbW9kZSBhcHBseSBwcm92aWRlZC1tb2RlLWRlcml2ZWQtcF0gNSAoIyQg LiA4Njg5NyldKQooZGVmdmFyIG1ham9yLW1vZGUtLXN1c3BlbmRlZCBuaWwgbmlsKQooYnl0ZS1j b2RlICJcMzAwXDMwMSFcMjEwXDMwMlwzMDFcMzAzXDMwNCNcMjA3IiBbbWFrZS12YXJpYWJsZS1i dWZmZXItbG9jYWwgbWFqb3ItbW9kZS0tc3VzcGVuZGVkIHB1dCBwZXJtYW5lbnQtbG9jYWwgdF0g NCkjQDQyIEV4aXQgY3VycmVudCBtYWpvciBtb2RlLCByZW1lbWJlcmluZyBpdC4fCihkZWZhbGlh cyAnbWFqb3ItbW9kZS1zdXNwZW5kICNbMCAiCFwyMDZcZgAJXDMwMj0/XDIwNVxmAAlcMzAzIFwy MTBcMzA0XDMwMCFcMjEwXDIxMVwyMTEQXDIwNyIgW21ham9yLW1vZGUtLXN1c3BlbmRlZCBtYWpv ci1tb2RlIGZ1bmRhbWVudGFsLW1vZGUga2lsbC1hbGwtbG9jYWwtdmFyaWFibGVzIG1ha2UtbG9j YWwtdmFyaWFibGVdIDMgKCMkIC4gODczMzEpXSkjQDIxMSBSZXN0b3JlIG1ham9yIG1vZGUgZWFy bGllciBzdXNwZW5kZWQgd2l0aCBgbWFqb3ItbW9kZS1zdXNwZW5kJy4KSWYgdGhlcmUgd2FzIG5v IGVhcmxpZXIgc3VzcGVuZGVkIG1ham9yIG1vZGUsIHRoZW4gZmFsbGJhY2sgdG8gYG5vcm1hbC1t b2RlJywKdGhvdWdoIHRyeWluZyB0byBhdm9pZCBBVk9JREVELU1PREVTLgoKKGZuICZvcHRpb25h bCBBVk9JREVELU1PREVTKR8KKGRlZmFsaWFzICdtYWpvci1tb2RlLXJlc3RvcmUgI1syNTYgIghc MjAzCwAIXDMwM1wzMDAhXDIxMCBcMjA3XDMwNAkhAVwyMTFcMjAzXCIAXDIxMUBcMzA1AQRcIlwy NjIDAUFcMjY2XDIwMlwyMDIPAFwyMTBcMjExXDI2MgFcMzA0XG4hAlwyMTFcMjAzPQBcMjExQFwz MDUBBFwiXDI2MgMBQVwyNjZcMjAyXDIwMioAXDIxMFwyMTFcMjYyARoZXDMwNiAqXDIwNyIgW21h am9yLW1vZGUtLXN1c3BlbmRlZCBhdXRvLW1vZGUtYWxpc3QgbWFnaWMtZmFsbGJhY2stbW9kZS1h bGlzdCBraWxsLWxvY2FsLXZhcmlhYmxlIGNvcHktc2VxdWVuY2UgcmFzc3EtZGVsZXRlLWFsbCBu b3JtYWwtbW9kZV0gOCAoIyQgLiA4NzU4NyldKSNAMzUgTGlzdCBvZiBhbGwgbWlub3IgbW9kZSBm dW5jdGlvbnMuHwooZGVmdmFyIG1pbm9yLW1vZGUtbGlzdCAnKGF1dG8tc2F2ZS1tb2RlIGF1dG8t ZmlsbC1tb2RlIGFiYnJldi1tb2RlIG92ZXJ3cml0ZS1tb2RlIHZpZXctbW9kZSBocy1taW5vci1t b2RlKSAoIyQgLiA4ODE1NSkpI0AxMDAxIFJlZ2lzdGVyIGEgbmV3IG1pbm9yIG1vZGUuCgpUaGlz IGZ1bmN0aW9uIHNob3VsZG4ndCBiZSB1c2VkIGRpcmVjdGx5IC0tIHVzZSBgZGVmaW5lLW1pbm9y LW1vZGUnCmluc3RlYWQgKHdoaWNoIHdpbGwgdGhlbiBjYWxsIHRoaXMgZnVuY3Rpb24pLgoKVE9H R0xFIGlzIGEgc3ltYm9sIHRoYXQgaXMgdGhlIG5hbWUgb2YgYSBidWZmZXItbG9jYWwgdmFyaWFi bGUgdGhhdAppcyB0b2dnbGVkIG9uIG9yIG9mZiB0byBzYXkgd2hldGhlciB0aGUgbWlub3IgbW9k ZSBpcyBhY3RpdmUgb3Igbm90LgoKTkFNRSBzcGVjaWZpZXMgd2hhdCB3aWxsIGFwcGVhciBpbiB0 aGUgbW9kZSBsaW5lIHdoZW4gdGhlIG1pbm9yIG1vZGUKaXMgYWN0aXZlLiAgTkFNRSBzaG91bGQg YmUgZWl0aGVyIGEgc3RyaW5nIHN0YXJ0aW5nIHdpdGggYSBzcGFjZSwgb3IgYQpzeW1ib2wgd2hv c2UgdmFsdWUgaXMgc3VjaCBhIHN0cmluZy4KCk9wdGlvbmFsIEtFWU1BUCBpcyB0aGUga2V5bWFw IGZvciB0aGUgbWlub3IgbW9kZSB0aGF0IHdpbGwgYmUgYWRkZWQKdG8gYG1pbm9yLW1vZGUtbWFw LWFsaXN0Jy4KCk9wdGlvbmFsIEFGVEVSIHNwZWNpZmllcyB0aGF0IFRPR0dMRSBzaG91bGQgYmUg YWRkZWQgYWZ0ZXIgQUZURVIKaW4gYG1pbm9yLW1vZGUtYWxpc3QnLgoKT3B0aW9uYWwgVE9HR0xF LUZVTiBpcyBhbiBpbnRlcmFjdGl2ZSBmdW5jdGlvbiB0byB0b2dnbGUgdGhlIG1vZGUuCkl0IGRl ZmF1bHRzIHRvIChhbmQgc2hvdWxkIGJ5IGNvbnZlbnRpb24gYmUpIFRPR0dMRS4KCklmIFRPR0dM RSBoYXMgYSBub24tbmlsIGA6aW5jbHVkZWQnIHByb3BlcnR5LCBhbiBlbnRyeSBmb3IgdGhlIG1v ZGUgaXMKaW5jbHVkZWQgaW4gdGhlIG1vZGUtbGluZSBtaW5vciBtb2RlIG1lbnUuCklmIFRPR0dM RSBoYXMgYSBgOm1lbnUtdGFnJywgdGhhdCBpcyB1c2VkIGZvciB0aGUgbWVudSBpdGVtJ3MgbGFi ZWwuCgooZm4gVE9HR0xFIE5BTUUgJm9wdGlvbmFsIEtFWU1BUCBBRlRFUiBUT0dHTEUtRlVOKR8K KGRlZmFsaWFzICdhZGQtbWlub3ItbW9kZSAjWzEyODIgIgQIPlwyMDRcbgAECEIQXDIxMVwyMDQR AARcMjYyAVwyMTEFPVwyMDQdAFwzMDUFXDMwNgMjXDIxMANcMjAzcwAECVwyMzZcMjExXDIwMzEA XDIxMQVDXDI0MVwyNjYCXDIwMnMACVwzMDcBXDIwM1AAXDIxMVwyMDRQAAQCQEA9XDIwM0kAAVwy NjIBXDIwMjMAAUFcMjYyAlwyMDIzAFwyMTFcMjAzaQBcMjExQQFcMzA3XDI0MVwyMTABBgkGCURD XDI0NAFcMjQ0XDI2NgVcMjAycwAGBwYHRAlCEVwyNjYDBFwzMTBOXDIwM1wyNzcAXDMxMVxuXDMx MgYHIVwzMTMGCFwzMTROXDIwNlwyMjYABgc7XDIwM1wyMjIABgdcMjAyXDIyNgBcMzE1BgkhBgg5 XDIwNVwyMzcABghKXDIxMRs7XDIwNVwyNjMAXDMxNlwzMTcLXCJcMjA1XDI2MwBcMzIwXDMyMVwz MjILXCJcMzIzUSlQBVwzMjRcMzI1BlxmQlwyNTcFI1wyMTACXDIwNRcBBFxmXDIzNlwyMTFcMjAz XDMyMABcMjExBFwyNDFcMjAyFQFcZlwzMDcBXDIwM1wzNTcAXDIxMVwyMDRcMzU3AAQCQEA9XDIw M1wzNTAAAVwyNjIBXDIwMlwzMjIAAUFcMjYyAlwyMDJcMzIyAFwyMTFcMjAzXG4BXDIxMUEBXDMw N1wyNDFcMjEwAQYJBghCQ1wyNDQBXDI0NFwyNjIBXDI2NlwyMDJcMjAyFQEGBwYGQlxmQlwyMTEU XDI2NlwyMDJcMjYyAVwyMDciIFttaW5vci1tb2RlLWxpc3QgbWlub3ItbW9kZS1hbGlzdCBtb2Rl LWxpbmUtbW9kZS1tZW51IG1vZGUtbmFtZSBtaW5vci1tb2RlLW1hcC1hbGlzdCBwdXQgOm1pbm9y LW1vZGUtZnVuY3Rpb24gbmlsIDppbmNsdWRlZCBkZWZpbmUta2V5IHZlY3RvciBtZW51LWl0ZW0g Om1lbnUtdGFnIHN5bWJvbC1uYW1lIHN0cmluZy1tYXRjaCAiW14gXSsiICIgKCIgbWF0Y2gtc3Ry aW5nIDAgIikiIDpidXR0b24gOnRvZ2dsZV0gMTUgKCMkIC4gODgzMTgpXSkjQDQ4IE5vbi1uaWwg aWYgT0JKRUNUIGlzIGFuIGF1dG9sb2FkLgoKKGZuIE9CSkVDVCkfCihkZWZhbGlhcyAnYXV0b2xv YWRwICNbMjU3ICJcMjExXDI0MlwzMDA9XDIwNyIgW2F1dG9sb2FkXSAzICgjJCAuIDkwMjIzKV0p CihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVu Y3Rpb24tcHV0IGF1dG9sb2FkcCBzcGVlZCAtMSBwdXQgYnl0ZS1vcHRpbWl6ZXIgYnl0ZS1jb21w aWxlLWlubGluZS1leHBhbmRdIDUpI0AxMTYgRGVmaW5lIHRoZSBwcm9wZXJ0eSBQUk9QIG9mIFNZ TUJPTCB0byBiZSBWQUwuClRoaXMgaXMgdG8gYHB1dCcgd2hhdCBgZGVmYWxpYXMnIGlzIHRvIGBm c2V0Jy4KCihmbiBTWU1CT0wgUFJPUCBWQUwpHwooZGVmYWxpYXMgJ2RlZmluZS1zeW1ib2wtcHJv cCAjWzc3MSAiXDMwMQhcMjM2XDIxMVwyMDQPAFwzMDFDXDI2MgFcMjExCEIQAgFcMjM2XDIxMVwy MDQhAANDXDI2MgEBAQNBQlwyNDFcMjEwBAFBXDIzNVwyMDQvAFwyMTEFAkFCXDI0MVwyMTBcMjY2 AlwzMDIDAwMjXDIwNyIgW2N1cnJlbnQtbG9hZC1saXN0IGRlZmluZS1zeW1ib2wtcHJvcHMgcHV0 XSA4ICgjJCAuIDkwNDg2KV0pI0AxNTMgTG9jYXRlIGEgbmF0aXZlbHktY29tcGlsZWQgRUxOLUZJ TEUgYnkgc2VhcmNoaW5nIGl0cyBsb2FkIHBhdGguClRoaXMgZnVuY3Rpb24gbG9va3MgaW4gZGly ZWN0b3JpZXMgbmFtZWQgYnkgYG5hdGl2ZS1jb21wLWVsbi1sb2FkLXBhdGgnLgoKKGZuIEVMTi1G SUxFKR8KKGRlZmFsaWFzICdsb2NhdGUtZWxuLWZpbGUgI1syNTcgIlwzMDIIXDMwMwNRCVwiXDIw NhMAXDMwMghcMzA0A1FcMzA1CSFcIlwyMDciIFtjb21wLW5hdGl2ZS12ZXJzaW9uLWRpciBuYXRp dmUtY29tcC1lbG4tbG9hZC1wYXRoIGxvY2F0ZS1maWxlLWludGVybmFsICIvIiAiL3ByZWxvYWRl ZC8iIGxhc3RdIDUgKCMkIC4gOTA4MjUpXSkjQDEwOTQgUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBm aWxlIHRoYXQgZGVmaW5lZCBTWU1CT0wuClRoZSB2YWx1ZSBpcyBub3JtYWxseSBhbiBhYnNvbHV0 ZSBmaWxlIG5hbWUuICBJdCBjYW4gYWxzbyBiZSBuaWwsCmlmIHRoZSBkZWZpbml0aW9uIGlzIG5v dCBhc3NvY2lhdGVkIHdpdGggYW55IGZpbGUuICBJZiBTWU1CT0wKc3BlY2lmaWVzIGFuIGF1dG9s b2FkZWQgZnVuY3Rpb24sIHRoZSB2YWx1ZSBjYW4gYmUgYSByZWxhdGl2ZQpmaWxlIG5hbWUgd2l0 aG91dCBleHRlbnNpb24uCgpJZiBUWVBFIGlzIG5pbCwgdGhlbiBhbnkga2luZCBvZiBTWU1CT0wn cyBkZWZpbml0aW9uIGlzIGFjY2VwdGFibGUuCklmIFRZUEUgaXMgYGRlZnVuJywgYGRlZnZhcics IG9yIGBkZWZmYWNlJywgdGhhdCBzcGVjaWZpZXMgZnVuY3Rpb24KZGVmaW5pdGlvbiwgdmFyaWFi bGUgZGVmaW5pdGlvbiwgb3IgZmFjZSBkZWZpbml0aW9uIG9ubHkuCk90aGVyd2lzZSBUWVBFIGlz IGFzc3VtZWQgdG8gYmUgYSBzeW1ib2wgcHJvcGVydHkuCgpJZiBOQVRJVkUtUCBpcyBub24tbmls LCBhbmQgU1lNQk9MIHdhcyBsb2FkZWQgZnJvbSBhIC5lbG4gZmlsZSwKdGhpcyBmdW5jdGlvbiB3 aWxsIHJldHVybiB0aGUgYWJzb2x1dGUgZmlsZSBuYW1lIG9mIHRoYXQgLmVsbiBmaWxlLAppZiBm b3VuZC4gIE5vdGUgdGhhdCBpZiB0aGUgLmVsbiBmaWxlIGlzIG9sZGVyIHRoYW4gaXRzIHNvdXJj ZSAuZWwKZmlsZSwgRW1hY3Mgd29uJ3QgbG9hZCBzdWNoIGFuIG91dGRhdGVkIC5lbG4gZmlsZSwg YW5kIHRoaXMgZnVuY3Rpb24Kd2lsbCBub3QgcmV0dXJuIGl0LiAgSWYgdGhlIC5lbG4gZmlsZSBj b3VsZG4ndCBiZSBmb3VuZCwgb3IgaXMKb3V0ZGF0ZWQsIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRo ZSBjb3JyZXNwb25kaW5nIC5lbGMgb3IgLmVsIGZpbGUKaW5zdGVhZC4KClRoaXMgZnVuY3Rpb24g b25seSB3b3JrcyBmb3Igc3ltYm9scyBkZWZpbmVkIGluIExpc3AgZmlsZXMuICBGb3IKc3ltYm9s cyB0aGF0IGFyZSBkZWZpbmVkIGluIEMgZmlsZXMsIHVzZSBgaGVscC1DLWZpbGUtbmFtZScKaW5z dGVhZC4KCihmbiBTWU1CT0wgJm9wdGlvbmFsIFRZUEUgTkFUSVZFLVApHwooZGVmYWxpYXMgJ3N5 bWJvbC1maWxlICNbNzY5ICIBXDIwM1xuAAFcMzAxPVwyMDMfAAI5XDIwMx8AAktcMjExXDI0Mlwz MDI9XDI2MgFcMjAzHwACS0FAXDIwN1wyMTFcMjAzRwABXDIwMy0AAVwzMDE9XDIwM0cAAjlcMjAz RwBcMzAzIFwyMDNHAFwzMDQDSyFcMjAzRwBcMzA1XDMwNlwzMDcFSyEhIVwyMDdcMzEwMlwyNTEA CFwyMTFcMjA1XDI0NgBcMjExQFwyMTFcMjQyAVwyNDMFXDIwM34ABVwzMTE9XDIwM2cABgYBXDIz NVwyMDJcMjI1AAUGB0IBXDIzNVwyMDRcMjMwAAYGXDMxMgYHXDMxMlwzMTMFXCJcIj5cMjAyXDIy NQAGBgFcMjM1XDIwNFwyMzAAXDMxNAYHAlwiXDIxMVwyMDVcMjIzAFwyMTFAXDMxNT0/XDI2MgFc MjAzXDIzNQBcMzE2XDMxMANcIlwyMTBcMjY2AgFBXDI2NlwyMDJcMjAyTABcMjYyATBcMjExXDIw M1wzNzUAAVwyMDNcMzc1AFwzMDMgXDIwM1wzNzUAXDMxNwEhXDMyMFwzMjEhXDIwNVwzMDcAXDMy MSBcMjA1XDMwNwBcMjExXDMyMlABXDMyM1ABXDIwM1wzMjQAXDMyNAIhXDIwNFwzNDQAXDMyNAEh XDIwM1wzNDEAXDIxMVwyMTFcMjYyA1wyMDRcMzQ0AFwzMjVcMjYyAgE7XDIwNVwzNzAAXDMyNlwz MjcDISFcMzMwAQRcIlwyMDVcMzY2AFwyMTFcMjYyAVwyNjZcMjAzXDIwNlwzNzYAXDIxMVwyMDci IFtsb2FkLWhpc3RvcnkgZGVmdW4gYXV0b2xvYWQgbmF0aXZlLWNvbXAtYXZhaWxhYmxlLXAgc3Vi ci1uYXRpdmUtZWxpc3AtcCBleHBhbmQtZmlsZS1uYW1lIG5hdGl2ZS1jb21wLXVuaXQtZmlsZSBz dWJyLW5hdGl2ZS1jb21wLXVuaXQgZm91bmQgZGVmdmFyIGFsaXN0LWdldCBkZWZpbmUtc3ltYm9s LXByb3BzIHJhc3NxIHJlcXVpcmUgdGhyb3cgZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uIGZib3Vu ZHAgemxpYi1hdmFpbGFibGUtcCAiLmVsLmd6IiAiLmVsIiBmaWxlLWV4aXN0cy1wIG5pbCBsb2Nh dGUtZWxuLWZpbGUgY29tcC1lbC10by1lbG4tcmVsLWZpbGVuYW1lIGZpbGUtbmV3ZXItdGhhbi1m aWxlLXBdIDEzICgjJCAuIDkxMTc2KV0pI0A4MjMgU2hvdyB0aGUgcHJlY2lzZSBmaWxlIG5hbWUg b2YgRW1hY3MgbGlicmFyeSBMSUJSQVJZLgpMSUJSQVJZIHNob3VsZCBiZSBhIHJlbGF0aXZlIGZp bGUgbmFtZSBvZiB0aGUgbGlicmFyeSwgYSBzdHJpbmcuCkl0IGNhbiBvbWl0IHRoZSBzdWZmaXgg KGEuay5hLiBmaWxlLW5hbWUgZXh0ZW5zaW9uKSBpZiBOT1NVRkZJWCBpcwpuaWwgKHdoaWNoIGlz IHRoZSBkZWZhdWx0LCBzZWUgYmVsb3cpLgpUaGlzIGNvbW1hbmQgc2VhcmNoZXMgdGhlIGRpcmVj dG9yaWVzIGluIGBsb2FkLXBhdGgnIGxpa2UgYFxbbG9hZC1saWJyYXJ5XScKdG8gZmluZCB0aGUg ZmlsZSB0aGF0IGBcW2xvYWQtbGlicmFyeV0gUkVUIExJQlJBUlkgUkVUJyB3b3VsZCBsb2FkLgpP cHRpb25hbCBzZWNvbmQgYXJnIE5PU1VGRklYIG5vbi1uaWwgbWVhbnMgZG9uJ3QgYWRkIHN1ZmZp eGVzIGBsb2FkLXN1ZmZpeGVzJwp0byB0aGUgc3BlY2lmaWVkIG5hbWUgTElCUkFSWS4KCklmIHRo ZSBvcHRpb25hbCB0aGlyZCBhcmcgUEFUSCBpcyBzcGVjaWZpZWQsIHRoYXQgbGlzdCBvZiBkaXJl Y3RvcmllcwppcyB1c2VkIGluc3RlYWQgb2YgYGxvYWQtcGF0aCcuCgpXaGVuIGNhbGxlZCBmcm9t IGEgcHJvZ3JhbSwgdGhlIGZpbGUgbmFtZSBpcyBub3JtYWxseSByZXR1cm5lZCBhcyBhCnN0cmlu Zy4gIFdoZW4gcnVuIGludGVyYWN0aXZlbHksIHRoZSBhcmd1bWVudCBJTlRFUkFDVElWRS1DQUxM IGlzIHQsCmFuZCB0aGUgZmlsZSBuYW1lIGlzIGRpc3BsYXllZCBpbiB0aGUgZWNobyBhcmVhLgoK KGZuIExJQlJBUlkgJm9wdGlvbmFsIE5PU1VGRklYIFBBVEggSU5URVJBQ1RJVkUtQ0FMTCkfCihk ZWZhbGlhcyAnbG9jYXRlLWxpYnJhcnkgI1sxMDI1ICJcMzAyBANcMjA2BwAIXDMwMwYGP1wyMDUQ AFwzMDQgCVwiIwFcMjAzKQBcMjExXDIwMyMAXDMwNVwzMDZcMzA3AyFcIlwyMTBcMjA3XDMwNVwz MTAGBlwiXDIxMFwyMDciIFtsb2FkLXBhdGggbG9hZC1maWxlLXJlcC1zdWZmaXhlcyBsb2NhdGUt ZmlsZSBhcHBlbmQgZ2V0LWxvYWQtc3VmZml4ZXMgbWVzc2FnZSAiTGlicmFyeSBpcyBmaWxlICVz IiBhYmJyZXZpYXRlLWZpbGUtbmFtZSAiTm8gbGlicmFyeSAlcyBpbiBzZWFyY2ggcGF0aCJdIDEw ICgjJCAuIDkzMjgyKSAoYnl0ZS1jb2RlICJcMzAwIFwzMDFcMjExXDMwMkZcMjA3IiBbcmVhZC1s aWJyYXJ5LW5hbWUgbmlsIHRdIDQpXSkjQDEwNzEgU3RhcnQgYSBwcm9ncmFtIGluIGEgc3VicHJv Y2Vzcy4gIFJldHVybiB0aGUgcHJvY2VzcyBvYmplY3QgZm9yIGl0LgpOQU1FIGlzIG5hbWUgZm9y IHByb2Nlc3MuICBJdCBpcyBtb2RpZmllZCBpZiBuZWNlc3NhcnkgdG8gbWFrZSBpdCB1bmlxdWUu CkJVRkZFUiBpcyB0aGUgYnVmZmVyIChvciBidWZmZXIgbmFtZSkgdG8gYXNzb2NpYXRlIHdpdGgg dGhlIHByb2Nlc3MuCgpQcm9jZXNzIG91dHB1dCAoYm90aCBzdGFuZGFyZCBvdXRwdXQgYW5kIHN0 YW5kYXJkIGVycm9yIHN0cmVhbXMpCmdvZXMgYXQgZW5kIG9mIEJVRkZFUiwgdW5sZXNzIHlvdSBz cGVjaWZ5IGEgZmlsdGVyIGZ1bmN0aW9uIHRvCmhhbmRsZSB0aGUgb3V0cHV0LiAgQlVGRkVSIG1h eSBhbHNvIGJlIG5pbCwgbWVhbmluZyB0aGF0IHRoaXMKcHJvY2VzcyBpcyBub3QgYXNzb2NpYXRl ZCB3aXRoIGFueSBidWZmZXIuCgpQUk9HUkFNIGlzIHRoZSBwcm9ncmFtIGZpbGUgbmFtZS4gIEl0 IGlzIHNlYXJjaGVkIGZvciBpbiBgZXhlYy1wYXRoJwood2hpY2ggc2VlKS4gIElmIG5pbCwganVz dCBhc3NvY2lhdGUgYSBwdHkgd2l0aCB0aGUgYnVmZmVyLiAgUmVtYWluaW5nCmFyZ3VtZW50cyBQ Uk9HUkFNLUFSR1MgYXJlIHN0cmluZ3MgdG8gZ2l2ZSBwcm9ncmFtIGFzIGFyZ3VtZW50cy4KCklm IHlvdSB3YW50IHRvIHNlcGFyYXRlIHN0YW5kYXJkIG91dHB1dCBmcm9tIHN0YW5kYXJkIGVycm9y LCB1c2UKYG1ha2UtcHJvY2Vzcycgb3IgaW52b2tlIHRoZSBjb21tYW5kIHRocm91Z2ggYSBzaGVs bCBhbmQgcmVkaXJlY3QKb25lIG9mIHRoZW0gdXNpbmcgdGhlIHNoZWxsIHN5bnRheC4KClRoZSBw cm9jZXNzIHJ1bnMgaW4gYGRlZmF1bHQtZGlyZWN0b3J5JyBpZiB0aGF0IGlzIGxvY2FsIChhcwpk ZXRlcm1pbmVkIGJ5IGB1bmhhbmRsZWQtZmlsZS1uYW1lLWRpcmVjdG9yeScpLCBvciAifiIKb3Ro ZXJ3aXNlLiAgSWYgeW91IHdhbnQgdG8gcnVuIGEgcHJvY2VzcyBpbiBhIHJlbW90ZSBkaXJlY3Rv cnkKdXNlIGBzdGFydC1maWxlLXByb2Nlc3MnLgoKKGZuIE5BTUUgQlVGRkVSIFBST0dSQU0gJnJl c3QgUFJPR1JBTS1BUkdTKR8KKGRlZmFsaWFzICdzdGFydC1wcm9jZXNzICNbODk5ICJcMzAwXDMw MSFcMjA0XG4AXDMwMlwzMDMhXDIxMFwzMDRcMzAxXDMwNVwzMDYGB1wzMDcGCEYFXDIwNR8AXDMx MAYGBgZCRFwiXCJcMjA3IiBbZmJvdW5kcCBtYWtlLXByb2Nlc3MgZXJyb3IgIkVtYWNzIHdhcyBj b21waWxlZCB3aXRob3V0IHN1YnByb2Nlc3Mgc3VwcG9ydCIgYXBwbHkgYXBwZW5kIDpuYW1lIDpi dWZmZXIgOmNvbW1hbmRdIDExICgjJCAuIDk0NDc5KV0pI0AzNjkgRXhlY3V0ZSBQUk9HUkFNIHdp dGggQVJHUywgcmV0dXJuaW5nIGl0cyBvdXRwdXQgYXMgYSBsaXN0IG9mIGxpbmVzLgpJZiBTVEFU VVMtSEFORExFUiBpcyBub24tbmlsLCBpdCBtdXN0IGJlIGEgZnVuY3Rpb24gd2l0aCBvbmUKYXJn dW1lbnQsIHdoaWNoIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIGV4aXQgc3RhdHVzIG9mIHRoZQpw cm9ncmFtIGJlZm9yZSB0aGUgb3V0cHV0IGlzIGNvbGxlY3RlZC4gIElmIFNUQVRVUy1IQU5ETEVS IGlzCm5pbCwgYW4gZXJyb3IgaXMgc2lnbmFsZWQgaWYgdGhlIHByb2dyYW0gcmV0dXJucyB3aXRo IGEgbm9uLXplcm8KZXhpdCBzdGF0dXMuCgooZm4gUFJPR1JBTSBTVEFUVVMtSEFORExFUiAmcmVz dCBBUkdTKR8KKGRlZmFsaWFzICdwcm9jZXNzLWxpbmVzLWhhbmRsaW5nLXN0YXR1cyAjWzY0MiAi XDMwMFwzMDFcMzAyXCJyXDIxMXFcMjEwXDMwM1wzMDQCXCJcMjE2XDMwNVwzMDYFXDMwN3BcMzA3 BgcmBgNcMjAzXCIAAwEhXDIxMFwyMDIvAFwyMTFcMzEwPVwyMDQvAFwzMTFcMzEyBgYDI1wyMTBl YlwyMTBcMzA3bVwyMDRHAFwzMTNcMzE0IFwzMTUgXCIBQlwyNjIBXDMxNnlcMjEwXDIwMjMAXDIx MVwyMzcqXDIwNyIgW2dlbmVyYXRlLW5ldy1idWZmZXIgIiAqdGVtcCoiIHQgbWFrZS1jbG9zdXJl ICNbMCAiXDMwMVwzMDAhXDIwNQkAXDMwMlwzMDAhXDIwNyIgW1YwIGJ1ZmZlci1uYW1lIGtpbGwt YnVmZmVyXSAyXSBhcHBseSBjYWxsLXByb2Nlc3MgbmlsIDAgZXJyb3IgIiVzIGV4aXRlZCB3aXRo IHN0YXR1cyAlcyIgYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIGxpbmUtYmVnaW5uaW5n LXBvc2l0aW9uIGxpbmUtZW5kLXBvc2l0aW9uIDFdIDExICgjJCAuIDk1Nzk5KV0pI0AyMDIgRXhl Y3V0ZSBQUk9HUkFNIHdpdGggQVJHUywgcmV0dXJuaW5nIGl0cyBvdXRwdXQgYXMgYSBsaXN0IG9m IGxpbmVzLgpTaWduYWwgYW4gZXJyb3IgaWYgdGhlIHByb2dyYW0gcmV0dXJucyB3aXRoIGEgbm9u LXplcm8gZXhpdCBzdGF0dXMuCkFsc28gc2VlIGBwcm9jZXNzLWxpbmVzLWlnbm9yZS1zdGF0dXMn LgoKKGZuIFBST0dSQU0gJnJlc3QgQVJHUykfCihkZWZhbGlhcyAncHJvY2Vzcy1saW5lcyAjWzM4 NSAiXDMwMFwzMDEDXDMwMgQkXDIwNyIgW2FwcGx5IHByb2Nlc3MtbGluZXMtaGFuZGxpbmctc3Rh dHVzIG5pbF0gNyAoIyQgLiA5NjY2OSldKSNAMTYzIEV4ZWN1dGUgUFJPR1JBTSB3aXRoIEFSR1Ms IHJldHVybmluZyBpdHMgb3V0cHV0IGFzIGEgbGlzdCBvZiBsaW5lcy4KVGhlIGV4aXQgc3RhdHVz IG9mIHRoZSBwcm9ncmFtIGlzIGlnbm9yZWQuCkFsc28gc2VlIGBwcm9jZXNzLWxpbmVzJy4KCihm biBQUk9HUkFNICZyZXN0IEFSR1MpHwooZGVmYWxpYXMgJ3Byb2Nlc3MtbGluZXMtaWdub3JlLXN0 YXR1cyAjWzM4NSAiXDMwMFwzMDEDXDMwMgQkXDIwNyIgW2FwcGx5IHByb2Nlc3MtbGluZXMtaGFu ZGxpbmctc3RhdHVzIGlnbm9yZV0gNyAoIyQgLiA5Njk4OCldKSNAMTg3IFJldHVybiBub24tbmls IGlmIFBST0NFU1MgaXMgYWxpdmUuCkEgcHJvY2VzcyBpcyBjb25zaWRlcmVkIGFsaXZlIGlmIGl0 cyBzdGF0dXMgaXMgYHJ1bicsIGBvcGVuJywKYGxpc3RlbicsIGBjb25uZWN0JyBvciBgc3RvcCcu ICBWYWx1ZSBpcyBuaWwgaWYgUFJPQ0VTUyBpcyBub3QgYQpwcm9jZXNzLgoKKGZuIFBST0NFU1Mp HwooZGVmYWxpYXMgJ3Byb2Nlc3MtbGl2ZS1wICNbMjU3ICJcMzAwASFcMjA1CwBcMzAxASFcMzAy PlwyMDciIFtwcm9jZXNzcCBwcm9jZXNzLXN0YXR1cyAocnVuIG9wZW4gbGlzdGVuIGNvbm5lY3Qg c3RvcCldIDMgKCMkIC4gOTcyODUpXSkjQDU3IEFzayBiZWZvcmUga2lsbGluZyBhIGJ1ZmZlciB0 aGF0IGhhcyBhIHJ1bm5pbmcgcHJvY2Vzcy4fCihkZWZhbGlhcyAncHJvY2Vzcy1raWxsLWJ1ZmZl ci1xdWVyeS1mdW5jdGlvbiAjWzAgIlwzMDBwIVwyMTE/XDIwNiAAXDMwMQEhXDMwMj4/XDIwNiAA XDMwMwEhP1wyMDYgAFwzMDRcMzA1XDMwNlwzMDdwIVwiIVwyMDciIFtnZXQtYnVmZmVyLXByb2Nl c3MgcHJvY2Vzcy1zdGF0dXMgKHJ1biBzdG9wIG9wZW4gbGlzdGVuKSBwcm9jZXNzLXF1ZXJ5LW9u LWV4aXQtZmxhZyB5ZXMtb3Itbm8tcCBmb3JtYXQgIkJ1ZmZlciAlUyBoYXMgYSBydW5uaW5nIHBy b2Nlc3M7IGtpbGwgaXQ/ICIgYnVmZmVyLW5hbWVdIDYgKCMkIC4gOTc2MTIpXSkKKGFkZC1ob29r ICdraWxsLWJ1ZmZlci1xdWVyeS1mdW5jdGlvbnMgJ3Byb2Nlc3Mta2lsbC1idWZmZXItcXVlcnkt ZnVuY3Rpb24pI0AxNDcgUmV0dXJuIHRoZSB2YWx1ZSBvZiBQUk9DRVNTJyBQUk9QTkFNRSBwcm9w ZXJ0eS4KVGhpcyBpcyB0aGUgbGFzdCB2YWx1ZSBzdG9yZWQgd2l0aCBgKHByb2Nlc3MtcHV0IFBS T0NFU1MgUFJPUE5BTUUgVkFMVUUpJy4KCihmbiBQUk9DRVNTIFBST1BOQU1FKR8KKGRlZmFsaWFz ICdwcm9jZXNzLWdldCAjWzUxNCAiXDMwMFwzMDEDIQJcIlwyMDciIFtwbGlzdC1nZXQgcHJvY2Vz cy1wbGlzdF0gNSAoIyQgLiA5ODA1NSldKSNAMTMzIENoYW5nZSBQUk9DRVNTJyBQUk9QTkFNRSBw cm9wZXJ0eSB0byBWQUxVRS4KSXQgY2FuIGJlIHJldHJpZXZlZCB3aXRoIGAocHJvY2Vzcy1nZXQg UFJPQ0VTUyBQUk9QTkFNRSknLgoKKGZuIFBST0NFU1MgUFJPUE5BTUUgVkFMVUUpHwooZGVmYWxp YXMgJ3Byb2Nlc3MtcHV0ICNbNzcxICJcMzAwA1wzMDFcMzAyBgYhBQUjXCJcMjA3IiBbc2V0LXBy b2Nlc3MtcGxpc3QgcGxpc3QtcHV0IHByb2Nlc3MtcGxpc3RdIDkgKCMkIC4gOTgyOTkpXSkjQDY4 IFJldHVybiBhbiBlc3RpbWF0ZSBvZiBFbWFjcyB2aXJ0dWFsIG1lbW9yeSB1c2FnZSwgZGl2aWRl ZCBieSAxMDI0Lh8KKGRlZmFsaWFzICdtZW1vcnktbGltaXQgI1swICIIGVwzMDJcMzAzXDMwNCAh XDIzNkFcMjA2DQBcMzA1KVwyMDciIFt0ZW1wb3JhcnktZmlsZS1kaXJlY3RvcnkgZGVmYXVsdC1k aXJlY3RvcnkgdnNpemUgcHJvY2Vzcy1hdHRyaWJ1dGVzIGVtYWNzLXBpZCAwXSAzICgjJCAuIDk4 NTU0KV0pI0AzMiBVc2VkIGludGVybmFsbHkgYnkgYHJlYWQta2V5Jy4fCihkZWZjb25zdCByZWFk LWtleS1lbXB0eS1tYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkgKCMkIC4gOTg3OTIpKSNAMzIgVXNl ZCBpbnRlcm5hbGx5IGJ5IGByZWFkLWtleScuHwooZGVmY29uc3QgcmVhZC1rZXktZnVsbC1tYXAg KGJ5dGUtY29kZSAiXDMwMCBcMzAxAVwzMDJcMzAzI1wyMTBcMzAxAVwzMDRcMzA1I1wyMTBcMjA3 IiBbbWFrZS1zcGFyc2Uta2V5bWFwIGRlZmluZS1rZXkgW3RdIGlnbm9yZSBbMjddIG5pbF0gNSkg KCMkIC4gOTg4OTIpKQooZGVmdmFyIHJlYWQta2V5LWRlbGF5IDAuMDEpI0A4NzkgUmVhZCBhIGtl eSBmcm9tIHRoZSBrZXlib2FyZC4KQ29udHJhcnkgdG8gYHJlYWQtZXZlbnQnIHRoaXMgd2lsbCBu b3QgcmV0dXJuIGEgcmF3IGV2ZW50IGJ1dCBpbnN0ZWFkIHdpbGwKb2JleSB0aGUgaW5wdXQgZGVj b2RpbmcgYW5kIHRyYW5zbGF0aW9ucyB1c3VhbGx5IGRvbmUgYnkgYHJlYWQta2V5LXNlcXVlbmNl Jy4KU28gZXNjYXBlIHNlcXVlbmNlcyBhbmQga2V5Ym9hcmQgZW5jb2RpbmcgYXJlIHRha2VuIGlu dG8gYWNjb3VudC4KV2hlbiB0aGVyZSdzIGFuIGFtYmlndWl0eSBiZWNhdXNlIHRoZSBrZXkgbG9v a3MgbGlrZSB0aGUgcHJlZml4IG9mCnNvbWUgc29ydCBvZiBlc2NhcGUgc2VxdWVuY2UsIHRoZSBh bWJpZ3VpdHkgaXMgcmVzb2x2ZWQgdmlhIGByZWFkLWtleS1kZWxheScuCgpJZiB0aGUgb3B0aW9u YWwgYXJndW1lbnQgUFJPTVBUIGlzIG5vbi1uaWwsIGRpc3BsYXkgdGhhdCBhcyBhCnByb21wdC4K CklmIHRoZSBvcHRpb25hbCBhcmd1bWVudCBESVNBQkxFLUZBTExCQUNLUyBpcyBub24tbmlsLCBh bGwKdW5ib3VuZCBmYWxsYmFja3MgdXN1YWxseSBkb25lIGJ5IGByZWFkLWtleS1zZXF1ZW5jZScg YXJlCmRpc2FibGVkIHN1Y2ggYXMgZGlzY2FyZGluZyBtb3VzZSBkb3duIGV2ZW50cy4gIFRoaXMg aXMgZ2VuZXJhbGx5CndoYXQgeW91IHdhbnQgYXMgYHJlYWQta2V5JyB0ZW1wb3JhcmlseSByZW1v dmVzIGFsbCBiaW5kaW5ncwp3aGlsZSBjYWxsaW5nIGByZWFkLWtleS1zZXF1ZW5jZScuICBJZiBu aWwgb3IgdW5zcGVjaWZpZWQsIHRoZQpvbmx5IHVuYm91bmQgZmFsbGJhY2sgZGlzYWJsZWQgaXMg ZG93bmNhc2luZyBvZiB0aGUgbGFzdCBldmVudC4KCihmbiAmb3B0aW9uYWwgUFJPTVBUIERJU0FC TEUtRkFMTEJBQ0tTKR8KKGRlZmFsaWFzICdyZWFkLWtleSAjWzUxMiAiXDMwNgFcMjAzCQAIXDIw MlxuAAlcMzA3XDMxMCBcMzExXG5cMzEyXDMxMyMCGwMcBB1cMzE0XDMxNQIEI1wyMTZcMzE2XDMx NyBcMzIwAVwzMjFcMzIyDh5cMzIzXCIjXDIxMFwzMjABXDMyNFwzMjUOHlwyMzZBXDIwNjsAXDMy Mg4eXDMyNlwiI1wyMTBcMzIwAVwzMjdcMzMwDh5cMjM2QVwyMDZNAFwzMjIOHlwzMzFcIiNcMjEw XDIxMVwyNjIBIVwyMTBcMzMyMl8AXDMzMwYHXDMwNlwzMTIjMFwyMTFcMzA3SAFHXDMzNFZcMjAz dwBcMjExXDMzNT5cMjAzdwABXDMzNEhcMjY2XDIwMlwyMDJ6AFwyMTFcMjY2XDIwMixcMjA3IiBb cmVhZC1rZXktZnVsbC1tYXAgcmVhZC1rZXktZW1wdHktbWFwIHJlYWQta2V5LWRlbGF5IGVjaG8t a2V5c3Ryb2tlcyBvdmVycmlkaW5nLWxvY2FsLW1hcCBvdmVycmlkaW5nLXRlcm1pbmFsLWxvY2Fs LW1hcCBuaWwgMCBjdXJyZW50LWdsb2JhbC1tYXAgcnVuLXdpdGgtaWRsZS10aW1lciB0ICNbMCAi XDMwMCBcMjExR1wzMDFVP1wyMDUOAFwzMDJcMzAzAlwiXDIwNyIgW3RoaXMtY29tbWFuZC1rZXlz LXZlY3RvciAwIHRocm93IHJlYWQta2V5XSA0XSBtYWtlLWNsb3N1cmUgI1swICJcMzAyXDMwMCFc MjEwXDMwM1wzMDQhXDIxMFwzMDVcMzAxIVwyMDciIFtWMCBWMSBjYW5jZWwtdGltZXIgbWVzc2Fn ZSBuaWwgdXNlLWdsb2JhbC1tYXBdIDJdIHVzZS1nbG9iYWwtbWFwIG1ha2Utc3BhcnNlLWtleW1h cCBkZWZpbmUta2V5IFttZW51LWJhcl0gbG9va3VwLWtleSBbbWVudS1iYXJdIFt0YWItYmFyXSB0 YWItYmFyIFt0YWItYmFyXSBbdG9vbC1iYXJdIHRvb2wtYmFyIFt0b29sLWJhcl0gcmVhZC1rZXkg cmVhZC1rZXktc2VxdWVuY2UtdmVjdG9yIDEgKG1vZGUtbGluZSBoZWFkZXItbGluZSBsZWZ0LWZy aW5nZSByaWdodC1mcmluZ2UpIGdsb2JhbC1tYXBdIDE1ICgjJCAuIDk5MTE0KV0pI0AxNjkgUmVh ZCBhbiBldmVudCB0aGF0IG1pZ2h0IGJlIGEgbW91c2UgZXZlbnQuCgpUaGlzIGZ1bmN0aW9uIGV4 aXN0cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpbiBjb2RlIHBhY2thZ2VkCndpdGggRW1h Y3MuICBEbyBub3QgY2FsbCBpdCBkaXJlY3RseSBpbiB5b3VyIG93biBwYWNrYWdlcy4fCihkZWZh bGlhcyAncmVhZC0tcG90ZW50aWFsLW1vdXNlLWV2ZW50ICNbMCAiCFwyMDMJAFwzMDFcMzAyXDMw M1wiXDIwN1wzMDQgXDIwNyIgW3h0ZXJtLW1vdXNlLW1vZGUgcmVhZC1rZXkgbmlsIHQgcmVhZC1l dmVudF0gMyAoIyQgLiAxMDA5NDQpXSkjQDM4IEtleW1hcCB1c2VkIHdoaWxlIHJlYWRpbmcgcGFz c3dvcmRzLh8KKGRlZnZhciByZWFkLXBhc3N3ZC1tYXAgKGJ5dGUtY29kZSAiXDMwMSBcMzAyAQhc IlwyMTBcMzAzAVwzMDRcMzA1I1wyMTBcMjA3IiBbbWluaWJ1ZmZlci1sb2NhbC1tYXAgbWFrZS1z cGFyc2Uta2V5bWFwIHNldC1rZXltYXAtcGFyZW50IGRlZmluZS1rZXkgIhUiIGRlbGV0ZS1taW5p YnVmZmVyLWNvbnRlbnRzXSA1KSAoIyQgLiAxMDEyNjApKQooZGVmYWxpYXMgJ3JlYWQtcGFzc3dv cmQtLWhpZGUtcGFzc3dvcmQgI1swICJcMzAxIFwzMDIgAVpUXDMwM1wyMTECV1wyMDUnAFwzMDQB BFxcAlQFXFxcMzA1XDMwNghcMjA2HQBcMzA3ISRcMjEwXDIxMVRcMjYyAVwyMDIIAFwyMDciIFty ZWFkLWhpZGUtY2hhciBtaW5pYnVmZmVyLXByb21wdC1lbmQgYnVmZmVyLXNpemUgMCBwdXQtdGV4 dC1wcm9wZXJ0eSBkaXNwbGF5IHN0cmluZyA0Ml0gOV0pI0A0NjggUmVhZCBhIHBhc3N3b3JkLCBw cm9tcHRpbmcgd2l0aCBQUk9NUFQsIGFuZCByZXR1cm4gaXQuCklmIG9wdGlvbmFsIENPTkZJUk0g aXMgbm9uLW5pbCwgcmVhZCB0aGUgcGFzc3dvcmQgdHdpY2UgdG8gbWFrZSBzdXJlLgpPcHRpb25h bCBERUZBVUxUIGlzIGEgZGVmYXVsdCBwYXNzd29yZCB0byB1c2UgaW5zdGVhZCBvZiBlbXB0eSBp bnB1dC4KClRoaXMgZnVuY3Rpb24gZWNob2VzIGAqJyBmb3IgZWFjaCBjaGFyYWN0ZXIgdGhhdCB0 aGUgdXNlciB0eXBlcy4KWW91IGNvdWxkIGxldC1iaW5kIGByZWFkLWhpZGUtY2hhcicgdG8gYW5v dGhlciBoaWRpbmcgY2hhcmFjdGVyLCB0aG91Z2guCgpPbmNlIHRoZSBjYWxsZXIgdXNlcyB0aGUg cGFzc3dvcmQsIGl0IGNhbiBlcmFzZSB0aGUgcGFzc3dvcmQKYnkgZG9pbmcgKGNsZWFyLXN0cmlu ZyBTVFJJTkcpLgoKKGZuIFBST01QVCAmb3B0aW9uYWwgQ09ORklSTSBERUZBVUxUKR8KKGRlZmFs aWFzICdyZWFkLXBhc3N3ZCAjWzc2OSAiAVwyMDNQAFwzMDJcMjExXDIwNE8AXDMwMwRcMzAyBCNc MzAzXDMwNFwzMDIFIwEBXDIzMlwyMDMvAFwzMDUBIVwyMDMpAAEBPVwyMDQpAFwzMDYBIVwyMTAB XDI2NlwyMDNcMjAyBQBcMzA1AiFcMjAzOQBcMzA2AiFcMjEwXDMwNQEhXDIwM0MAXDMwNgEhXDIx MFwzMDdcMzEwIVwyMTBcMzExXDMxMiFcMjY2A1wyMDIFAFwyMDdcMzAyQ1wzMTNcMzE0AlwiXDMx NVwzMTYhXDIxMVwzMTNcMzE3AwUjTVwyMTBcMzEzXDMyMAJcIlwyMTZcMzIxXDMyMgJcIlwyMTBc MzEzXDMyMwRcIlwyMTZcMzI0CFwyMDZ2AFwzMjUYGVwzMjYGBlwzMDJcMzI0BgckLFwyMDciIFty ZWFkLWhpZGUtY2hhciBlbmFibGUtcmVjdXJzaXZlLW1pbmlidWZmZXJzIG5pbCByZWFkLXBhc3N3 ZCAiQ29uZmlybSBwYXNzd29yZDogIiBhcnJheXAgY2xlYXItc3RyaW5nIG1lc3NhZ2UgIlBhc3N3 b3JkIG5vdCByZXBlYXRlZCBhY2N1cmF0ZWx5OyBwbGVhc2Ugc3RhcnQgb3ZlciIgc2l0LWZvciAx IG1ha2UtY2xvc3VyZSAjWzAgIlwzMDBwXDI0MFwyMTBcMzA2XDMwMSFcMjEwXDMwNxFcMzA2XDMw MiFcMjEwXDMxMBJcMzA2XDMwMyFcMjEwXDMwNxNcMzExXGYhXDIxMFwzMDZcMzA1IVwyMTBcMzA3 FVwzMDZcMzEyIVwyMTBcMzA3FlxuXDMwNlwzMTMhXDIxMFwzMTAWC1wzMTRcMzE1XDMxNlwzMDdc MzEwJFwyMDciIFtWMCBwb3N0LXNlbGYtaW5zZXJ0LWhvb2sgYnVmZmVyLXVuZG8tbGlzdCBzZWxl Y3QtYWN0aXZlLXJlZ2lvbnMgcmVhZC1wYXNzd2QtbWFwIGluaGliaXQtbW9kaWZpY2F0aW9uLWhv b2tzIG1ha2UtbG9jYWwtdmFyaWFibGUgbmlsIHQgdXNlLWxvY2FsLW1hcCBzaG93LXBhcmVuLW1v ZGUgaW5oaWJpdC0tcmVjb3JkLWNoYXIgYWRkLWhvb2sgcG9zdC1jb21tYW5kLWhvb2sgcmVhZC1w YXNzd29yZC0taGlkZS1wYXNzd29yZF0gNV0gbWFrZS1zeW1ib2wgIm1pbmlidWZmZXItc2V0dXAi ICNbMCAiXDMwMlwzMDNcMzAwXCJcMjEwXDMwMSBcMjA3IiBbVjAgVjEgcmVtb3ZlLWhvb2sgbWlu aWJ1ZmZlci1zZXR1cC1ob29rXSAzXSAjWzAgIlwzMDFcMzAyXDMwMFwiXDIwNyIgW1YwIHJlbW92 ZS1ob29rIG1pbmlidWZmZXItc2V0dXAtaG9va10gM10gYWRkLWhvb2sgbWluaWJ1ZmZlci1zZXR1 cC1ob29rICNbMCAiXDMwMVwzMDBcMjQyIVwyMDUZAHJcMzAwXDI0MnFcMjEwXDMwMlwzMDNcMzA0 XDMwNSNcMjEwXDMwNlwzMDchXDIxMFwzMTAgKVwyMDciIFtWMCBidWZmZXItbGl2ZS1wIHJlbW92 ZS1ob29rIGFmdGVyLWNoYW5nZS1mdW5jdGlvbnMgcmVhZC1wYXNzd29yZC0taGlkZS1wYXNzd29y ZCBsb2NhbCBraWxsLWxvY2FsLXZhcmlhYmxlIHBvc3Qtc2VsZi1pbnNlcnQtaG9vayBlcmFzZS1i dWZmZXJdIDRdIHQgNDIgcmVhZC1zdHJpbmddIDExICgjJCAuIDEwMTcyNyldKSNANTMgVGhlIGRl ZmF1bHQgaGlzdG9yeSBmb3IgdGhlIGByZWFkLW51bWJlcicgZnVuY3Rpb24uHwooZGVmdmFyIHJl YWQtbnVtYmVyLWhpc3RvcnkgbmlsICgjJCAuIDEwMzYyMCkpI0AzODEgUmVhZCBhIG51bWVyaWMg dmFsdWUgaW4gdGhlIG1pbmlidWZmZXIsIHByb21wdGluZyB3aXRoIFBST01QVC4KREVGQVVMVCBz cGVjaWZpZXMgYSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiB0aGUgdXNlciBqdXN0IHR5cGVz IFJFVC4KVGhlIHZhbHVlIG9mIERFRkFVTFQgaXMgaW5zZXJ0ZWQgaW50byBQUk9NUFQuCkhJU1Qg c3BlY2lmaWVzIGEgaGlzdG9yeSBsaXN0IHZhcmlhYmxlLiAgU2VlIGByZWFkLWZyb20tbWluaWJ1 ZmZlcicKZm9yIGRldGFpbHMgb2YgdGhlIEhJU1QgYXJndW1lbnQuCgpUaGlzIGZ1bmN0aW9uIGlz IHVzZWQgYnkgdGhlIGBpbnRlcmFjdGl2ZScgY29kZSBsZXR0ZXIgIm4iLgoKKGZuIFBST01QVCAm b3B0aW9uYWwgREVGQVVMVCBISVNUKR8KKGRlZmFsaWFzICdyZWFkLW51bWJlciAjWzc2OSAiXDMw MQI6XDIwMwsAAkBcMjAyXGYAAlwyMTFcMjAzMwBcMzAyXDMwMwYGXCJcMjAzJgBcMzA0XDMwNQgD XCJcMzA2XDIxMQYIXDMwNyVcMjAyMQBcMzEwXDMxMVwzMDUIBFwiBgdcMzA2XDIxMSVcMjYyBVwz MTIFXDMwMVwyMTFcMjExBgdcMjA2PgBcMzEzBglcMjA1WAAGCTpcMjAzVABcMzE0XDMxNVwzMTZc MzAxBg1cIlwiXDIwMlgAXDMxNQZcbiEmBlwzMTcxegBcMjExR1wzMjBVXDIwM2kAAVwyMDJxAFwy MTE7XDIwNXEAXDMyMQEhXDIxMVwyNjIEMFwyNjYCXDIwMnwAXDI2NgIBXDI0N1wyMDRcMjE0AFwz MjJcMzIzIVwyMTBcMzI0XDMwNyFcMjEwXDIwMjMAAVwyMDciIFttaW5pYnVmZmVyLWRlZmF1bHQt cHJvbXB0LWZvcm1hdCBuaWwgc3RyaW5nLW1hdGNoICJcXChcXCk6WyAJXSpcXCciIHJlcGxhY2Ut bWF0Y2ggZm9ybWF0IHQgMSByZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIlsgCV0qXFwnIiByZWFk LWZyb20tbWluaWJ1ZmZlciByZWFkLW51bWJlci1oaXN0b3J5IG1hcGNhciBudW1iZXItdG8tc3Ry aW5nIGRlbHEgKGVycm9yKSAwIHJlYWQgbWVzc2FnZSAiUGxlYXNlIGVudGVyIGEgbnVtYmVyLiIg c2l0LWZvcl0gMTYgKCMkIC4gMTAzNzI1KV0pI0A0NjIgUHJlZmVyIGByZWFkLWtleScgd2hlbiBy ZWFkaW5nIGEgY2hhcmFjdGVyIGJ5IGByZWFkLWNoYXItY2hvaWNlJy4KT3RoZXJ3aXNlLCB1c2Ug dGhlIG1pbmlidWZmZXIuCgpXaGVuIHVzaW5nIHRoZSBtaW5pYnVmZmVyLCB0aGUgdXNlciBpcyBs ZXNzIGNvbnN0cmFpbmVkLCBhbmQgY2FuCnVzZSB0aGUgbm9ybWFsIGNvbW1hbmRzIGF2YWlsYWJs ZSBpbiB0aGUgbWluaWJ1ZmZlciwgYW5kIGNhbiwgZm9yCmluc3RhbmNlLCBzd2l0Y2ggdG8gYW5v dGhlciBidWZmZXIsIGRvIHRoaW5ncyB0aGVyZSwgYW5kIHRoZW4Kc3dpdGNoIGJhY2sgYWdhaW4g dG8gdGhlIG1pbmlidWZmZXIgYmVmb3JlIGVudGVyaW5nIHRoZQpjaGFyYWN0ZXIuICBUaGlzIGlz IG5vdCBwb3NzaWJsZSB3aGVuIHVzaW5nIGByZWFkLWtleScsIGJ1dCB1c2luZwpgcmVhZC1rZXkn IG1heSBiZSBsZXNzIGNvbmZ1c2luZyB0byBzb21lIHVzZXJzLh8KKGRlZnZhciByZWFkLWNoYXIt Y2hvaWNlLXVzZS1yZWFkLWtleSBuaWwgKCMkIC4gMTA0NzQyKSkjQDM4NCBSZWFkIGFuZCByZXR1 cm4gb25lIG9mIENIQVJTLCBwcm9tcHRpbmcgZm9yIFBST01QVC4KQW55IGlucHV0IHRoYXQgaXMg bm90IG9uZSBvZiBDSEFSUyBpcyBpZ25vcmVkLgoKQnkgZGVmYXVsdCwgdGhlIG1pbmlidWZmZXIg aXMgdXNlZCB0byByZWFkIHRoZSBrZXkKbm9uLW1vZGFsbHkgKHNlZSBgcmVhZC1jaGFyLWZyb20t bWluaWJ1ZmZlcicpLiAgSWYKYHJlYWQtY2hhci1jaG9pY2UtdXNlLXJlYWQta2V5JyBpcyBub24t bmlsLCB0aGUgbW9kYWwgYHJlYWQta2V5JwpmdW5jdGlvbiBpcyB1c2VkIGluc3RlYWQgKHNlZSBg cmVhZC1jaGFyLWNob2ljZS13aXRoLXJlYWQta2V5JykuCgooZm4gUFJPTVBUIENIQVJTICZvcHRp b25hbCBJTkhJQklULUtFWUJPQVJELVFVSVQpHwooZGVmYWxpYXMgJ3JlYWQtY2hhci1jaG9pY2Ug I1s3NzAgIghcMjA0CQBcMzAxAwNcIlwyMDdcMzAyAwMDI1wyMDciIFtyZWFkLWNoYXItY2hvaWNl LXVzZS1yZWFkLWtleSByZWFkLWNoYXItZnJvbS1taW5pYnVmZmVyIHJlYWQtY2hhci1jaG9pY2Ut d2l0aC1yZWFkLWtleV0gNyAoIyQgLiAxMDUyNjYpXSkjQDQ0MCBSZWFkIGFuZCByZXR1cm4gb25l IG9mIENIQVJTLCBwcm9tcHRpbmcgZm9yIFBST01QVC4KQW55IGlucHV0IHRoYXQgaXMgbm90IG9u ZSBvZiBDSEFSUyBpcyBpZ25vcmVkLgoKSWYgb3B0aW9uYWwgYXJndW1lbnQgSU5ISUJJVC1LRVlC T0FSRC1RVUlUIGlzIG5vbi1uaWwsIGlnbm9yZQpga2V5Ym9hcmQtcXVpdCcgZXZlbnRzIHdoaWxl IHdhaXRpbmcgZm9yIGEgdmFsaWQgaW5wdXQuCgpJZiB5b3UgYmluZCB0aGUgdmFyaWFibGUgYGhl bHAtZm9ybScgdG8gYSBub24tbmlsIHZhbHVlCndoaWxlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwg dGhlbiBwcmVzc2luZyBgaGVscC1jaGFyJwpjYXVzZXMgaXQgdG8gZXZhbHVhdGUgYGhlbHAtZm9y bScgYW5kIGRpc3BsYXkgdGhlIHJlc3VsdC4KCihmbiBQUk9NUFQgQ0hBUlMgJm9wdGlvbmFsIElO SElCSVQtS0VZQk9BUkQtUVVJVCkfCihkZWZhbGlhcyAncmVhZC1jaGFyLWNob2ljZS13aXRoLXJl YWQta2V5ICNbNzcwICIBOlwyMDQJAFwzMDVcMzA2IVwyMTBcMzA3XDIxMVwyMTFcMzEwCFwzMDcB GAIZXDMxMSBcMzEyXDMxMwJcIlwyMTYFXDIwNFwyNDMAXDMxNFwzMTVcMzE2BlxmI1wyMDQvAFwz MTcGXG5cMzE2XDMyMCNcMjYyXG4GBxpcMzIxBlxuISlcMjYyBwRcMjAzSQBcMzIyXDMyM1wzMjQh IVwyMDNJAFwzMjVcMzI0IVwyMTAGBlwyNDdcMjAzGgALXDIwM2IABgZcZj1cMjAzYgBcMzEwXDI2 MgVcMzI2IFwyMDQaAAYGBgk+XDIwM3AAXDMxMFwyNjIGXDIwMhoACFwyMDNcMjAwAAYGXDMyN1Vc MjAzXDIwMABcMzA3EFwyMDIaAAYHXDIwNBoAAVwyMDRcMjI2AAYGXDMzMD1cMjAzXDIyNgBcMzEw XDI2MgJcMjAyGgAGBlwzMzE+XDIwMxoAXDMzMiBcMjEwXDIwMhoAK1wyNjYEXDMzM1wzMzQGB1wz MzUGBiEjXDIxMAJcMjA3IiBbZXhlY3V0aW5nLWtiZC1tYWNybyBjdXJzb3ItaW4tZWNoby1hcmVh IGluaGliaXQtcXVpdCBoZWxwLWZvcm0gaGVscC1jaGFyIGVycm9yICJDYWxsZWQgYHJlYWQtY2hh ci1jaG9pY2UnIHdpdGhvdXQgdmFsaWQgY2hhciBjaG9pY2VzIiBuaWwgdCBjdXJyZW50LXdpbmRv dy1jb25maWd1cmF0aW9uIG1ha2UtY2xvc3VyZSAjWzAgIlwzMDFcMzAwIVwyMDciIFtWMCBzZXQt d2luZG93LWNvbmZpZ3VyYXRpb25dIDJdIGdldC10ZXh0LXByb3BlcnR5IDAgZmFjZSBwcm9wZXJ0 aXplIG1pbmlidWZmZXItcHJvbXB0IHJlYWQta2V5IGJ1ZmZlci1saXZlLXAgZ2V0LWJ1ZmZlciAi ICpDaGFyIEhlbHAqIiBraWxsLWJ1ZmZlciBoZWxwLWZvcm0tc2hvdyAtMSAyNyAoNyAyNykga2V5 Ym9hcmQtcXVpdCBtZXNzYWdlICIlcyVzIiBjaGFyLXRvLXN0cmluZ10gMTQgKCMkIC4gMTA1ODMw KV0pI0A3NTYgUmVkaXNwbGF5LCB0aGVuIHdhaXQgZm9yIFNFQ09ORFMgc2Vjb25kcy4gIFN0b3Ag d2hlbiBpbnB1dCBpcyBhdmFpbGFibGUuClNFQ09ORFMgbWF5IGJlIGEgZmxvYXRpbmctcG9pbnQg dmFsdWUuCihPbiBvcGVyYXRpbmcgc3lzdGVtcyB0aGF0IGRvIG5vdCBzdXBwb3J0IHdhaXRpbmcg Zm9yIGZyYWN0aW9ucyBvZiBhCnNlY29uZCwgZmxvYXRpbmctcG9pbnQgdmFsdWVzIGFyZSByb3Vu ZGVkIGRvd24gdG8gdGhlIG5lYXJlc3QgaW50ZWdlci4pCgpJZiBvcHRpb25hbCBhcmcgTk9ESVNQ IGlzIHQsIGRvbid0IHJlZGlzcGxheSwganVzdCB3YWl0IGZvciBpbnB1dC4KUmVkaXNwbGF5IGRv ZXMgbm90IGhhcHBlbiBpZiBpbnB1dCBpcyBhdmFpbGFibGUgYmVmb3JlIGl0IHN0YXJ0cy4KClZh bHVlIGlzIHQgaWYgd2FpdGVkIHRoZSBmdWxsIHRpbWUgd2l0aCBubyBpbnB1dCBhcnJpdmluZywg YW5kIG5pbCBvdGhlcndpc2UuCgpBbiBvYnNvbGV0ZSwgYnV0IHN0aWxsIHN1cHBvcnRlZCBmb3Jt IGlzCihzaXQtZm9yIFNFQ09ORFMgJm9wdGlvbmFsIE1JTExJU0VDT05EUyBOT0RJU1ApCndoZXJl IHRoZSBvcHRpb25hbCBhcmcgTUlMTElTRUNPTkRTIHNwZWNpZmllcyBhbiBhZGRpdGlvbmFsIHdh aXQgcGVyaW9kLAppbiBtaWxsaXNlY29uZHM7IHRoaXMgd2FzIHVzZWZ1bCB3aGVuIEVtYWNzIHdh cyBidWlsdCB3aXRob3V0CmZsb2F0aW5nIHBvaW50IHN1cHBvcnQuCgooZm4gU0VDT05EUyAmb3B0 aW9uYWwgTk9ESVNQIE9CU09MRVRFKR8KKGRlZmFsaWFzICdzaXQtZm9yICNbNzY5ICIBXDI0N1wy MDMSAAJcMzA0A19cXFwyNjIDXDIxMVwyNjICXDIwMhkAXDIxMVwyMDMZAFwyMTFcMjYyAghcMjAz IwBcMzA1AyFcMjEwXDMwNlwyMDdcMzA3XDMwNiFcMjAzKwBcMzEwXDIwNwJcMzExWFwyMDQ1AAlc MjAzPAABXDIwNlkAXDMxMiBcMjA3AVwyMDRDAFwzMTIgXDIxMFwzMTAaXDMxM1wzMTBcMzA2BSMp XDIxMT9cMjA2VwBcMzA2AUILQhNcMzEwXDI2MgFcMjA3IiBbbm9uaW50ZXJhY3RpdmUgZGVmaW5p bmcta2JkLW1hY3JvIGlucHV0LW1ldGhvZC1mdW5jdGlvbiB1bnJlYWQtY29tbWFuZC1ldmVudHMg MC4wMDEgc2xlZXAtZm9yIHQgaW5wdXQtcGVuZGluZy1wIG5pbCAwIHJlZGlzcGxheSByZWFkLWV2 ZW50XSA3ICgjJCAuIDEwNzE2OSldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wyMTBc MzA0XDMwMVwzMDVcMzA2I1wzMDBcMjA3IiBbc2V0LWFkdmVydGlzZWQtY2FsbGluZy1jb252ZW50 aW9uIHNpdC1mb3IgKHNlY29uZHMgJm9wdGlvbmFsIG5vZGlzcCkgIjIyLjEiIGZ1bmN0aW9uLXB1 dCBjb21waWxlci1tYWNybyBzaXQtZm9yLS1hbm9uLWNtYWNyb10gNCkjQDQ3IAoKKGZuIEZPUk0g U0VDT05EUyAmb3B0aW9uYWwgTk9ESVNQIE9CU09MRVRFKR8KKGRlZmFsaWFzICdzaXQtZm9yLS1h bm9uLWNtYWNybyAjWzEwMjYgIgFcMjQ3XDIwNAsAXDIxMVwyMDQLAANcMjA3XDMwMFwzMDEFQFwz MDIGBlwzMDNcMzA0BghcMzA1QkJcMzA2QkJFBEVcMzA3I1wyMDciIFttYWNyb2V4cC13YXJuLWFu ZC1yZXR1cm4gIk9ic29sZXRlIGNhbGxpbmcgY29udmVudGlvbiBmb3IgJ3NpdC1mb3InIiArIC8g b3IgKDApICgxMDAwLjApIChvYnNvbGV0ZSBzaXQtZm9yKV0gMTMgKCMkIC4gMTA4NTE3KV0pI0Ax MzcgR2V0IGEgbmF0dXJhbCBudW1iZXIgYXJndW1lbnQsIG9wdGlvbmFsbHkgcHJvbXB0aW5nIHdp dGggUFJPTVBULgpJZiB0aGVyZSBpcyBhIG5hdHVyYWwgbnVtYmVyIGF0IHBvaW50LCB1c2UgaXQg YXMgZGVmYXVsdC4KCihmbiBQUk9NUFQpHwooZGVmYWxpYXMgJ2dvdG8tY2hhci0tcmVhZC1uYXRu dW0taW50ZXJhY3RpdmUgI1syNTcgIghcMjAzDgAIOlwyMDQOAFwzMDEIIUNcMjA3XDMwMiBcMzAz ASFcMjA1FwBcMjExXDMwNAMCYERcIkNcMjA3IiBbY3VycmVudC1wcmVmaXgtYXJnIHByZWZpeC1u dW1lcmljLXZhbHVlIG51bWJlci1hdC1wb2ludCBuYXRudW1wIHJlYWQtbnVtYmVyXSA3ICgjJCAu IDEwODgxNildKSNANjcgVGhlIGRlZmF1bHQgaGlzdG9yeSBmb3IgdGhlIGByZWFkLWNoYXItZnJv bS1taW5pYnVmZmVyJyBmdW5jdGlvbi4fCihkZWZ2YXIgcmVhZC1jaGFyLWhpc3RvcnkgbmlsICgj JCAuIDEwOTE3MCkpI0A1NCBLZXltYXAgZm9yIHRoZSBgcmVhZC1jaGFyLWZyb20tbWluaWJ1ZmZl cicgZnVuY3Rpb24uHwooZGVmdmFyIHJlYWQtY2hhci1mcm9tLW1pbmlidWZmZXItbWFwIChieXRl LWNvZGUgIlwzMDEgXDMwMgEIXCJcMjEwXDMwMwFcMzA0XDMwNSNcMjEwXDMwMwFcMzA2XDMwNyNc MjEwXDMwMwFcMzEwXDMxMSNcMjEwXDMwMwFcMzEyXDMxMyNcMjEwXDMwMwFcMzE0XDMxNSNcMjEw XDMwMwFcMzE2XDMxNyNcMjEwXDMwMwFcMzIwXDMyMSNcMjEwXDIwNyIgW21pbmlidWZmZXItbG9j YWwtbWFwIG1ha2Utc3BhcnNlLWtleW1hcCBzZXQta2V5bWFwLXBhcmVudCBkZWZpbmUta2V5IFty ZW1hcCBzZWxmLWluc2VydC1jb21tYW5kXSByZWFkLWNoYXItZnJvbS1taW5pYnVmZmVyLWluc2Vy dC1jaGFyIFtyZW1hcCBleGl0LW1pbmlidWZmZXJdIHJlYWQtY2hhci1mcm9tLW1pbmlidWZmZXIt aW5zZXJ0LW90aGVyIFtyZW1hcCByZWNlbnRlci10b3AtYm90dG9tXSBtaW5pYnVmZmVyLXJlY2Vu dGVyLXRvcC1ib3R0b20gW3JlbWFwIHNjcm9sbC11cC1jb21tYW5kXSBtaW5pYnVmZmVyLXNjcm9s bC11cC1jb21tYW5kIFtyZW1hcCBzY3JvbGwtZG93bi1jb21tYW5kXSBtaW5pYnVmZmVyLXNjcm9s bC1kb3duLWNvbW1hbmQgW3JlbWFwIHNjcm9sbC1vdGhlci13aW5kb3ddIG1pbmlidWZmZXItc2Ny b2xsLW90aGVyLXdpbmRvdyBbcmVtYXAgc2Nyb2xsLW90aGVyLXdpbmRvdy1kb3duXSBtaW5pYnVm ZmVyLXNjcm9sbC1vdGhlci13aW5kb3ctZG93bl0gNSkgKCMkIC4gMTA5Mjg2KSkKKGRlZmNvbnN0 IHJlYWQtY2hhci1mcm9tLW1pbmlidWZmZXItbWFwLWhhc2ggKG1ha2UtaGFzaC10YWJsZSA6dGVz dCAnZXF1YWwpKSNAMTQ0IEluc2VydCB0aGUgY2hhcmFjdGVyIHlvdSB0eXBlIGludG8gdGhlIG1p bmlidWZmZXIgYW5kIGV4aXQgbWluaWJ1ZmZlci4KRGlzY2FyZCBhbGwgcHJldmlvdXMgaW5wdXQg YmVmb3JlIGluc2VydGluZyBhbmQgZXhpdGluZyB0aGUgbWluaWJ1ZmZlci4fCihkZWZhbGlhcyAn cmVhZC1jaGFyLWZyb20tbWluaWJ1ZmZlci1pbnNlcnQtY2hhciAjWzAgIlwzMDEgXDIwNQ0AXDMw MiBcMjEwCGNcMjEwXDMwMyBcMjA3IiBbbGFzdC1jb21tYW5kLWV2ZW50IG1pbmlidWZmZXJwIGRl bGV0ZS1taW5pYnVmZmVyLWNvbnRlbnRzIGV4aXQtbWluaWJ1ZmZlcl0gMSAoIyQgLiAxMTAxNDAp IG5pbF0pI0AyNjcgUmVqZWN0IGEgZGlzYWxsb3dlZCBjaGFyYWN0ZXIgdHlwZWQgaW50byB0aGUg bWluaWJ1ZmZlci4KVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIHRvIGJlIGJvdW5kIHRvIGtleXMg dGhhdCB1c2VycyBhcmUgbm90CmFsbG93ZWQgdG8gdHlwZSBpbnRvIHRoZSBtaW5pYnVmZmVyLiAg V2hlbiB0aGUgdXNlciB0eXBlcyBhbnkKc3VjaCBrZXksIHRoaXMgY29tbWFuZCBkaXNjYXJkIGFs bCBtaW5pYnVmZmVyIGlucHV0IGFuZCBkaXNwbGF5cwphbiBlcnJvciBtZXNzYWdlLh8KKGRlZmFs aWFzICdyZWFkLWNoYXItZnJvbS1taW5pYnVmZmVyLWluc2VydC1vdGhlciAjWzAgIlwzMDAgXDIw NRUAXDMwMSBcMjEwXDMwMiBcMjEwXDMwMyBcMjEwXDMwNFwzMDUhXDIxMFwzMDZcMzA3IVwyMDci IFttaW5pYnVmZmVycCBkZWxldGUtbWluaWJ1ZmZlci1jb250ZW50cyBkaW5nIGRpc2NhcmQtaW5w dXQgbWluaWJ1ZmZlci1tZXNzYWdlICJXcm9uZyBhbnN3ZXIiIHNpdC1mb3IgMl0gMiAoIyQgLiAx MTA0NzgpIG5pbF0pI0A4MDMgUmVhZCBhIGNoYXJhY3RlciBmcm9tIHRoZSBtaW5pYnVmZmVyLCBw cm9tcHRpbmcgZm9yIGl0IHdpdGggUFJPTVBULgpMaWtlIGByZWFkLWNoYXInLCBidXQgdXNlcyB0 aGUgbWluaWJ1ZmZlciB0byByZWFkIGFuZCByZXR1cm4gYSBjaGFyYWN0ZXIuCk9wdGlvbmFsIGFy Z3VtZW50IENIQVJTLCBpZiBub24tbmlsLCBzaG91bGQgYmUgYSBsaXN0IG9mIGNoYXJhY3RlcnM7 CnRoZSBmdW5jdGlvbiB3aWxsIGlnbm9yZSBhbnkgaW5wdXQgdGhhdCBpcyBub3Qgb25lIG9mIENI QVJTLgpPcHRpb25hbCBhcmd1bWVudCBISVNUT1JZLCBpZiBub24tbmlsLCBzaG91bGQgYmUgYSBz eW1ib2wgdGhhdApzcGVjaWZpZXMgdGhlIGhpc3RvcnkgbGlzdCB2YXJpYWJsZSB0byB1c2UgZm9y IG5hdmlnYXRpbmcgaW4gaW5wdXQKaGlzdG9yeSB1c2luZyBcYE0tcCcgYW5kIFxgTS1uJywgd2l0 aCBcYFJFVCcgdG8gc2VsZWN0IGEgY2hhcmFjdGVyIGZyb20KaGlzdG9yeS4KSWYgeW91IGJpbmQg dGhlIHZhcmlhYmxlIGBoZWxwLWZvcm0nIHRvIGEgbm9uLW5pbCB2YWx1ZQp3aGlsZSBjYWxsaW5n IHRoaXMgZnVuY3Rpb24sIHRoZW4gcHJlc3NpbmcgYGhlbHAtY2hhcicKY2F1c2VzIGl0IHRvIGV2 YWx1YXRlIGBoZWxwLWZvcm0nIGFuZCBkaXNwbGF5IHRoZSByZXN1bHQuClRoZXJlIGlzIG5vIG5l ZWQgdG8gZXhwbGljaXRseSBhZGQgYGhlbHAtY2hhcicgdG8gQ0hBUlM7CmBoZWxwLWNoYXInIGlz IGJvdW5kIGF1dG9tYXRpY2FsbHkgdG8gYGhlbHAtZm9ybS1zaG93Jy4KCihmbiBQUk9NUFQgJm9w dGlvbmFsIENIQVJTIEhJU1RPUlkpHwooZGVmYWxpYXMgJ3JlYWQtY2hhci1mcm9tLW1pbmlidWZm ZXIgI1s3NjkgIgE6XDIwM1UAXDMwNQgJBEJEXG5cIlwyMDZWAFwzMDYgCFwzMDcCC1wiXDIxMAhc MjAzJwBcMzEwAlwzMTEJIVwzMTJcMzEzBVwiI1wyMTADXDIxMVwyMDM9AFwyMTFAXDMxMARcMzEx AyFcMzE0I1wyMTABQVwyNjZcMjAyXDIwMigAXDIxMFwzMTACXDMxNVwzMTYjXDIxMFwzMTcICQYG QkQDXG4jXDIxMAFcMjY2XDIwMlwyMDJWAAtcZhxcMzIwBFwzMjEDXDMyMQYGXDIwNmMAXDMyMiVc MjExR1wzMjNWXDIwM3EAXDIxMVwzMjNcMjM0XDIwMn0AAlwyMDN8AAJcMzI0BEpCTFwyMTBcMzI1 XDMyNlwzMjcGB1wzMzAEISMpXDIxMFwyMDciIFtoZWxwLWZvcm0gaGVscC1jaGFyIHJlYWQtY2hh ci1mcm9tLW1pbmlidWZmZXItbWFwLWhhc2ggcmVhZC1jaGFyLWZyb20tbWluaWJ1ZmZlci1tYXAg dGhpcy1jb21tYW5kIGdldGhhc2ggbWFrZS1zcGFyc2Uta2V5bWFwIHNldC1rZXltYXAtcGFyZW50 IGRlZmluZS1rZXkgdmVjdG9yIG1ha2UtY2xvc3VyZSAjWzAgIlwzMDAZXDMwMiApXDIwNyIgW1Yw IGhlbHAtZm9ybSBoZWxwLWZvcm0tc2hvd10gMSBuaWwgbmlsXSByZWFkLWNoYXItZnJvbS1taW5p YnVmZmVyLWluc2VydC1jaGFyIFtyZW1hcCBzZWxmLWluc2VydC1jb21tYW5kXSByZWFkLWNoYXIt ZnJvbS1taW5pYnVmZmVyLWluc2VydC1vdGhlciBwdXRoYXNoIHJlYWQtZnJvbS1taW5pYnVmZmVy IG5pbCB0IDAgIg0iIDEzIG1lc3NhZ2UgIiVzJXMiIGNoYXItdG8tc3RyaW5nXSAxMSAoIyQgLiAx MTA5OTcpXSkjQDUxIEhpc3RvcnkgbGlzdCBzeW1ib2wgdG8gYWRkIGB5LW9yLW4tcCcgYW5zd2Vy cyB0by4fCihkZWZ2YXIgeS1vci1uLXAtaGlzdG9yeS12YXJpYWJsZSBuaWwgKCMkIC4gMTEyNTg4 KSkjQDY1IEtleW1hcCB0aGF0IGRlZmluZXMgYWRkaXRpb25hbCBiaW5kaW5ncyBmb3IgYHktb3It bi1wJyBhbnN3ZXJzLh8KKGRlZnZhciB5LW9yLW4tcC1tYXAgKGJ5dGUtY29kZSAiXDMwMSBcMzAy AQhcIlwyMTBcMzAzXDIxMVwyMDMeAFwyMTFAXDMwNANcMzA1XDMwNgRcIlwzMDcjXDIxMAFBXDI2 NlwyMDJcMjAyCABcMjEwXDMwNAFcMzEwXDMxMSNcMjEwXDMxMlwyMTFcMjAzPABcMjExQFwzMDQD XDMwNVwzMDYEXCJcMzEzI1wyMTABQVwyNjZcMjAyXDIwMiYAXDIxMFwzMDQBXDMxNFwzMTUjXDIx MFwzMDQBXDMxNlwzMTcjXDIxMFwzMDQBXDMyMFwzMjEjXDIxMFwzMDQBXDMyMlwzMjMjXDIxMFwz MDQBXDMyNFwzMjUjXDIxMFwzMDQBXDMyNlwzMTMjXDIxMFwzMjdcMjExXDIwM3gAXDIxMUBcMzA0 A1wzMDVcMzA2BFwiXDMzMCNcMjEwAUFcMjY2XDIwMlwyMDJiAFwyMTBcMzA0AVwzMzFcMzMwI1wy MTBcMjA3IiBbbWluaWJ1ZmZlci1sb2NhbC1tYXAgbWFrZS1zcGFyc2Uta2V5bWFwIHNldC1rZXlt YXAtcGFyZW50IChhY3QgYWN0LWFuZC1zaG93IGFjdC1hbmQtZXhpdCBhdXRvbWF0aWMpIGRlZmlu ZS1rZXkgdmVjdG9yIHJlbWFwIHktb3Itbi1wLWluc2VydC15IFtyZW1hcCBza2lwXSB5LW9yLW4t cC1pbnNlcnQtbiAoYmFja3VwIHVuZG8gdW5kby1hbGwgZWRpdCBlZGl0LXJlcGxhY2VtZW50IGRl bGV0ZS1hbmQtZWRpdCBpZ25vcmUgc2VsZi1pbnNlcnQtY29tbWFuZCkgeS1vci1uLXAtaW5zZXJ0 LW90aGVyIFtyZW1hcCByZWNlbnRlcl0gbWluaWJ1ZmZlci1yZWNlbnRlci10b3AtYm90dG9tIFty ZW1hcCBzY3JvbGwtdXBdIG1pbmlidWZmZXItc2Nyb2xsLXVwLWNvbW1hbmQgW3JlbWFwIHNjcm9s bC1kb3duXSBtaW5pYnVmZmVyLXNjcm9sbC1kb3duLWNvbW1hbmQgW3JlbWFwIHNjcm9sbC1vdGhl ci13aW5kb3ddIG1pbmlidWZmZXItc2Nyb2xsLW90aGVyLXdpbmRvdyBbcmVtYXAgc2Nyb2xsLW90 aGVyLXdpbmRvdy1kb3duXSBtaW5pYnVmZmVyLXNjcm9sbC1vdGhlci13aW5kb3ctZG93biBbcmVt YXAgZXhpdF0gKGV4aXQtcHJlZml4IHF1aXQpIGFib3J0LXJlY3Vyc2l2ZS1lZGl0IFtlc2NhcGVd XSA4KSAoIyQgLiAxMTI2OTYpKSNAMTM0IEluc2VydCB0aGUgYW5zd2VyICJ5IiBhbmQgZXhpdCB0 aGUgbWluaWJ1ZmZlciBvZiBgeS1vci1uLXAnLgpEaXNjYXJkIGFsbCBwcmV2aW91cyBpbnB1dCBi ZWZvcmUgaW5zZXJ0aW5nIGFuZCBleGl0aW5nIHRoZSBtaW5pYnVmZmVyLh8KKGRlZmFsaWFzICd5 LW9yLW4tcC1pbnNlcnQteSAjWzAgIlwzMDAgXDIwNQ0AXDMwMSBcMjEwXDMwMmNcMjEwXDMwMyBc MjA3IiBbbWluaWJ1ZmZlcnAgZGVsZXRlLW1pbmlidWZmZXItY29udGVudHMgInkiIGV4aXQtbWlu aWJ1ZmZlcl0gMSAoIyQgLiAxMTM3OTcpIG5pbF0pI0AxMzQgSW5zZXJ0IHRoZSBhbnN3ZXIgIm4i IGFuZCBleGl0IHRoZSBtaW5pYnVmZmVyIG9mIGB5LW9yLW4tcCcuCkRpc2NhcmQgYWxsIHByZXZp b3VzIGlucHV0IGJlZm9yZSBpbnNlcnRpbmcgYW5kIGV4aXRpbmcgdGhlIG1pbmlidWZmZXIuHwoo ZGVmYWxpYXMgJ3ktb3Itbi1wLWluc2VydC1uICNbMCAiXDMwMCBcMjA1DQBcMzAxIFwyMTBcMzAy Y1wyMTBcMzAzIFwyMDciIFttaW5pYnVmZmVycCBkZWxldGUtbWluaWJ1ZmZlci1jb250ZW50cyAi biIgZXhpdC1taW5pYnVmZmVyXSAxICgjJCAuIDExNDA5MykgbmlsXSkjQDE4MCBIYW5kbGUgaW5z ZXJ0aW5nIG9mIG90aGVyIGFuc3dlcnMgaW4gdGhlIG1pbmlidWZmZXIgb2YgYHktb3Itbi1wJy4K RGlzcGxheSBhbiBlcnJvciBvbiB0cnlpbmcgdG8gaW5zZXJ0IGEgZGlzYWxsb3dlZCBjaGFyYWN0 ZXIuCkFsc28gZGlzY2FyZCBhbGwgcHJldmlvdXMgaW5wdXQgaW4gdGhlIG1pbmlidWZmZXIuHwoo ZGVmYWxpYXMgJ3ktb3Itbi1wLWluc2VydC1vdGhlciAjWzAgIlwzMDAgXDIwNRUAXDMwMSBcMjEw XDMwMiBcMjEwXDMwMyBcMjEwXDMwNFwzMDUhXDIxMFwzMDZcMzA3IVwyMDciIFttaW5pYnVmZmVy cCBkZWxldGUtbWluaWJ1ZmZlci1jb250ZW50cyBkaW5nIGRpc2NhcmQtaW5wdXQgbWluaWJ1ZmZl ci1tZXNzYWdlICJQbGVhc2UgYW5zd2VyIHkgb3IgbiIgc2l0LWZvciAyXSAyICgjJCAuIDExNDM4 OSkgbmlsXSkjQDQ2NCBQcmVmZXIgYHJlYWQta2V5JyB3aGVuIGFuc3dlcmluZyBhICJ5IG9yIG4i IHF1ZXN0aW9uIGJ5IGB5LW9yLW4tcCcuCk90aGVyd2lzZSwgdXNlIHRoZSBtaW5pYnVmZmVyLgoK V2hlbiB1c2luZyB0aGUgbWluaWJ1ZmZlciwgdGhlIHVzZXIgaXMgbGVzcyBjb25zdHJhaW5lZCwg YW5kIGNhbgp1c2UgdGhlIG5vcm1hbCBjb21tYW5kcyBhdmFpbGFibGUgaW4gdGhlIG1pbmlidWZm ZXIsIGFuZCBjYW4sIGZvcgppbnN0YW5jZSwgc3dpdGNoIHRvIGFub3RoZXIgYnVmZmVyLCBkbyB0 aGluZ3MgdGhlcmUsIGFuZCB0aGVuCnN3aXRjaCBiYWNrIGFnYWluIHRvIHRoZSBtaW5pYnVmZmVy IGJlZm9yZSBlbnRlcmluZyB0aGUKY2hhcmFjdGVyLiAgVGhpcyBpcyBub3QgcG9zc2libGUgd2hl biB1c2luZyBgcmVhZC1rZXknLCBidXQgdXNpbmcKYHJlYWQta2V5JyBtYXkgYmUgbGVzcyBjb25m dXNpbmcgdG8gc29tZSB1c2Vycy4fCihkZWZ2YXIgeS1vci1uLXAtdXNlLXJlYWQta2V5IG5pbCAo IyQgLiAxMTQ4MTIpKSNANjQgTm9uLW5pbCBtZWFucyB0aGUgY3VycmVudCBjb21tYW5kIHdhcyBp bnZva2VkIGZyb20gYSBUVFkgbWVudS4fCihkZWZ2YXIgZnJvbS0tdHR5LW1lbnUtcCBuaWwgKCMk IC4gMTE1MzI5KSkjQDc0IFNheSB3aGV0aGVyIHRoZSBjdXJyZW50IGNvbW1hbmQgc2hvdWxkIHBy b21wdCB0aGUgdXNlciB2aWEgYSBkaWFsb2cgYm94Lh8KKGRlZmFsaWFzICd1c2UtZGlhbG9nLWJv eC1wICNbMCAiCFwyMDUOAAk8XDIwNA0AXG5cMjA1DgALXDIwNyIgW2xhc3QtaW5wdXQtZXZlbnQg bGFzdC1ub25tZW51LWV2ZW50IGZyb20tLXR0eS1tZW51LXAgdXNlLWRpYWxvZy1ib3hdIDEgKCMk IC4gMTE1NDQxKV0pI0AxNTYxIEFzayB1c2VyIGEgInkgb3IgbiIgcXVlc3Rpb24uClJldHVybiB0 IGlmIGFuc3dlciBpcyAieSIgYW5kIG5pbCBpZiBpdCBpcyAibiIuCgpQUk9NUFQgaXMgdGhlIHN0 cmluZyB0byBkaXNwbGF5IHRvIGFzayB0aGUgcXVlc3Rpb247IGB5LW9yLW4tcCcKYWRkcyAiICh5 IG9yIG4pICIgdG8gaXQuICBJdCBkb2VzIG5vdCBuZWVkIHRvIGVuZCBpbiBzcGFjZSwgYnV0Cmlm IGl0IGRvZXMgdXAgdG8gb25lIHNwYWNlIHdpbGwgYmUgcmVtb3ZlZC4KCklmIHlvdSBiaW5kIHRo ZSB2YXJpYWJsZSBgaGVscC1mb3JtJyB0byBhIG5vbi1uaWwgdmFsdWUKd2hpbGUgY2FsbGluZyB0 aGlzIGZ1bmN0aW9uLCB0aGVuIHByZXNzaW5nIGBoZWxwLWNoYXInCmNhdXNlcyBpdCB0byBldmFs dWF0ZSBgaGVscC1mb3JtJyBhbmQgZGlzcGxheSB0aGUgcmVzdWx0LgpQUk9NUFQgaXMgYWxzbyB1 cGRhdGVkIHRvIHNob3cgYGhlbHAtY2hhcicgbGlrZSAiKHksIG4gb3IgQy1oKSAiLAp3aGVyZSBg aGVscC1jaGFyJyBpcyBhdXRvbWF0aWNhbGx5IGJvdW5kIHRvIGBoZWxwLWZvcm0tc2hvdycuCgpO byBjb25maXJtYXRpb24gb2YgdGhlIGFuc3dlciBpcyByZXF1ZXN0ZWQ7IGEgc2luZ2xlIGNoYXJh Y3RlciBpcwplbm91Z2guICBTUEMgYWxzbyBtZWFucyB5ZXMsIGFuZCBERUwgbWVhbnMgbm8uCgpU byBiZSBwcmVjaXNlLCB0aGlzIGZ1bmN0aW9uIHRyYW5zbGF0ZXMgdXNlciBpbnB1dCBpbnRvIHJl c3BvbnNlcwpieSBjb25zdWx0aW5nIHRoZSBiaW5kaW5ncyBpbiBgcXVlcnktcmVwbGFjZS1tYXAn OyBzZWUgdGhlCmRvY3VtZW50YXRpb24gb2YgdGhhdCB2YXJpYWJsZSBmb3IgbW9yZSBpbmZvcm1h dGlvbi4gIEluIHRoaXMKY2FzZSwgdGhlIHVzZWZ1bCBiaW5kaW5ncyBhcmUgYGFjdCcsIGBza2lw JywgYHJlY2VudGVyJywKYHNjcm9sbC11cCcsIGBzY3JvbGwtZG93bicsIGFuZCBgcXVpdCcuCkFu IGBhY3QnIHJlc3BvbnNlIG1lYW5zIHllcywgYW5kIGEgYHNraXAnIHJlc3BvbnNlIG1lYW5zIG5v LgpBIGBxdWl0JyByZXNwb25zZSBtZWFucyB0byBpbnZva2UgYGFib3J0LXJlY3Vyc2l2ZS1lZGl0 Jy4KSWYgdGhlIHVzZXIgZW50ZXJzIGByZWNlbnRlcicsIGBzY3JvbGwtdXAnLCBvciBgc2Nyb2xs LWRvd24nCnJlc3BvbnNlcywgcGVyZm9ybSB0aGUgcmVxdWVzdGVkIHdpbmRvdyByZWNlbnRlcmlu ZyBvciBzY3JvbGxpbmcKYW5kIGFzayBhZ2Fpbi4KClVuZGVyIGEgd2luZG93aW5nIHN5c3RlbSBh IGRpYWxvZyBib3ggd2lsbCBiZSB1c2VkIGlmIGBsYXN0LW5vbm1lbnUtZXZlbnQnCmlzIG5pbCBh bmQgYHVzZS1kaWFsb2ctYm94JyBpcyBub24tbmlsLgoKQnkgZGVmYXVsdCwgdGhpcyBmdW5jdGlv biB1c2VzIHRoZSBtaW5pYnVmZmVyIHRvIHJlYWQgdGhlIGtleS4KSWYgYHktb3Itbi1wLXVzZS1y ZWFkLWtleScgaXMgbm9uLW5pbCwgYHJlYWQta2V5JyBpcyB1c2VkCmluc3RlYWQgKHdoaWNoIG1l YW5zIHRoYXQgdGhlIHVzZXIgY2FuJ3QgY2hhbmdlIGJ1ZmZlcnMgKGFuZCB0aGUKbGlrZSkgd2hp bGUgYHktb3Itbi1wJyBpcyBydW5uaW5nKS4KCihmbiBQUk9NUFQpHwooZGVmYWxpYXMgJ3ktb3It bi1wICNbMjU3ICJcMzA2XDMwNwgYCVwyMDNJAFwyMTEDIVwyNjIDAgJcMzEwPlwyMDRFAFwzMTEB IVwyMTFcMzEyXDI2N1wyMDIrAFwzMTNcMjYyBFwyMTBcMjAyDgBcMzE0XDI2MgRcMjEwXDIwMg4A XDIxMVwzMTVcMjM1XDIwMz0AXG5cMjAzPQBcMzE2XG4hXDI2NgJcMjAyDgBcMzE3BVBcMjY2XDIw MlwyMDIOAFwyMTBcMjAyagFcMzIwIFwyMDNfAFwyMTEDXDMyMVwiXDI2MgNcMzIyXDMyMQRcMzIz QlwiXDI2MgJcMjAyagELXDIwM1wiAVwyMTEDIVwyNjIDXDMyNFwzMjEcDVwyMDN2AFwzMjVcMzI2 XDMyNyAhIVwyMTBcMzMwXDMzMQQDPlwyMDNcMjAyAAVcMjAyXDIwNgBcMzE3BgZQXDMzMlwzMzMj ISlcMzM0DjlcMzM1AyFcMzIxI1wyNjIEA1wzMzZcMjY3XDIwMlwzNzcAXDI2NgJcMjAyagFcMzA2 IFwyNjYDXDIwMhYBXDMzNzFcMjYzAFwzNDAgMFwyNjYDXDIwMhYBXDI2NgNcMjAyFgFcMjY2A1wy MDIWAVwzNDExXDMxMQBcMzQyIDBcMjY2A1wyMDIWAVwyNjYDXDIwMhYBXDI2NgNcMjAyFgFcMzQz MVwzMzcAXDM0NCAwXDI2NgNcMjAyFgFcMjY2A1wyMDIWAVwyNjYDXDIwMhYBXDM0NTFcMzY1AFwz NDYgMFwyNjYDXDIwMhYBXDI2NgNcMjAyFgFcMjY2A1wyMDIWAQNcMzQ3PlwyMDQLAVwyMTFcMzUw PVwyMDMUAVwzNTFcMzUyXDM1M1wiXDI2NgNcMjAyFgFcMjY2AlwzNTQgXDIxMFwzNTUgXDIxMFwy MDJoAFwyMDJqAVwyMTEDIVwyNjIDXDMyMR46XG5cMzU2DjsOOVwiXG5cMjAzRwFcMzU3ASFcMjYy AVwzNjABXDMzNQ48IVwzNjFcMzYyBgZcIiNcMjEwXDIxMVwyNjIBDj0ePVwzNjMFXDM1MwNcMzUz Dj5cMjA2WQFcMzIxJVwyMTFcMzY0XDIzNVwyMDNkAVwzMTNcMjAyZQFcMzE0KlwyNjIFXDI2NgMB XDMxMz0JXDIwNH8BXDM2NVwzNjYFA1wyMDN8AVwzNjdcMjAyfQFcMzcwI1wyMTApXDIwNyIgW3Jl YWwtdGhpcy1jb21tYW5kIG5vbmludGVyYWN0aXZlIGhlbHAtZm9ybSB5LW9yLW4tcC11c2UtcmVh ZC1rZXkgY3Vyc29yLWluLWVjaG8tYXJlYSBtaW5pYnVmZmVyLWF1dG8tcmFpc2UgcmVjZW50ZXIg I1s1MTMgIgFHAgFcMzAyVVwyMDQSAAMCU0hcMzAzPVwyMDMWAFwzMDRcMjAyFwBcMzA1A1wyMDMf AFwzMDRcMjAyMQBcMzA2CFwyMDMvAFwzMDdcMzEwXDMxMVwzMTIJISFcIlwyMDIwAFwzMTMhUVwy MDciIFtoZWxwLWZvcm0gaGVscC1jaGFyIDAgMzIgIiIgIiAiIHN1YnN0aXR1dGUtY29tbWFuZC1r ZXlzIGZvcm1hdCAiKFxcYHknLCBcXGBuJyBvciBcXGAlcycpICIga2V5LWRlc2NyaXB0aW9uIHZl Y3RvciAiKFxcYHknIG9yIFxcYG4nKSAiXSAxMSAiXG5cbihmbiBQUk9NUFQgJm9wdGlvbmFsIERJ QUxPRykiXSAoYWN0IHNraXApIHJlYWQtc3RyaW5nICNzKGhhc2gtdGFibGUgc2l6ZSA0IHRlc3Qg ZXF1YWwgcmVoYXNoLXNpemUgMS41IHJlaGFzaC10aHJlc2hvbGQgMC44MTI1IHB1cmVjb3B5IHQg ZGF0YSAoInkiIDI5ICJZIiAyOSAibiIgMzYgIk4iIDM2KSkgYWN0IHNraXAgKCJoIiAiSCIpIHBy aW50ICJQbGVhc2UgYW5zd2VyIHkgb3Igbi4gICIgdXNlLWRpYWxvZy1ib3gtcCB0IHgtcG9wdXAt ZGlhbG9nICgoIlllcyIgLiBhY3QpICgiTm8iIC4gc2tpcCkpIChyZWNlbnRlciBzY3JvbGwtdXAg c2Nyb2xsLWRvd24gc2Nyb2xsLW90aGVyLXdpbmRvdyBzY3JvbGwtb3RoZXItd2luZG93LWRvd24p IHJhaXNlLWZyYW1lIHdpbmRvdy1mcmFtZSBtaW5pYnVmZmVyLXdpbmRvdyByZWFkLWtleSBwcm9w ZXJ0aXplIGZhY2UgbWluaWJ1ZmZlci1wcm9tcHQgbG9va3VwLWtleSB2ZWN0b3IgI3MoaGFzaC10 YWJsZSBzaXplIDcgdGVzdCBlcSByZWhhc2gtc2l6ZSAxLjUgcmVoYXNoLXRocmVzaG9sZCAwLjgx MjUgcHVyZWNvcHkgdCBkYXRhIChza2lwIDE1NSBhY3QgMTU1IHJlY2VudGVyIDE2MCBzY3JvbGwt dXAgMTY3IHNjcm9sbC1kb3duIDE4OSBzY3JvbGwtb3RoZXItd2luZG93IDIxMSBzY3JvbGwtb3Ro ZXItd2luZG93LWRvd24gMjMzKSkgKGVycm9yKSBzY3JvbGwtdXAtY29tbWFuZCAoZXJyb3IpIHNj cm9sbC1kb3duLWNvbW1hbmQgKGVycm9yKSBzY3JvbGwtb3RoZXItd2luZG93IChlcnJvcikgc2Ny b2xsLW90aGVyLXdpbmRvdy1kb3duIChleGl0LXByZWZpeCBxdWl0KSAyNyBzaWduYWwgcXVpdCBu aWwgZGluZyBkaXNjYXJkLWlucHV0IG1ha2UtY29tcG9zZWQta2V5bWFwIGNvcHkta2V5bWFwIGRl ZmluZS1rZXkgbWFrZS1jbG9zdXJlICNbMCAiXDMwMBlcMzAyIClcMjA3IiBbVjAgaGVscC1mb3Jt IGhlbHAtZm9ybS1zaG93XSAxIG5pbCBuaWxdIHJlYWQtZnJvbS1taW5pYnVmZmVyICgieSIgIlki KSBtZXNzYWdlICIlcyVjIiAxMjEgMTEwIHF1ZXJ5LXJlcGxhY2UtbWFwIGVuYWJsZS1yZWN1cnNp dmUtbWluaWJ1ZmZlcnMgeS1vci1uLXAtbWFwIGhlbHAtY2hhciB0aGlzLWNvbW1hbmQgeS1vci1u LXAtaGlzdG9yeS12YXJpYWJsZV0gMTEgKCMkIC4gMTE1NjcyKV0pI0AzODEgTGlrZSBgcHJvZ24n IGJ1dCBwZXJmb3JtIEJPRFkgYXMgYW4gYXRvbWljIGNoYW5nZSBncm91cC4KVGhpcyBtZWFucyB0 aGF0IGlmIEJPRFkgZXhpdHMgYWJub3JtYWxseSwKYWxsIG9mIGl0cyBjaGFuZ2VzIHRvIHRoZSBj dXJyZW50IGJ1ZmZlciBhcmUgdW5kb25lLgpUaGlzIHdvcmtzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhl ciB1bmRvIGlzIGVuYWJsZWQgaW4gdGhlIGJ1ZmZlci4KClRoaXMgbWVjaGFuaXNtIGlzIHRyYW5z cGFyZW50IHRvIG9yZGluYXJ5IHVzZSBvZiB1bmRvOwppZiB1bmRvIGlzIGVuYWJsZWQgaW4gdGhl IGJ1ZmZlciBhbmQgQk9EWSBzdWNjZWVkcywgdGhlCnVzZXIgY2FuIHVuZG8gdGhlIGNoYW5nZSBu b3JtYWxseS4KCihmbiAmcmVzdCBCT0RZKR8KKGRlZmFsaWFzICdhdG9taWMtY2hhbmdlLWdyb3Vw ICcobWFjcm8gLiAjWzEyOCAiXDMwMFwzMDEhXDMwMFwzMDIhXDMwMwJcMzA0QlwzMDVcMzA2XDMw NwVcMzEwQlwyNTcFXDMxMVwzMTJcMzEzBgZEXDMxNFwzMTUGCSFcMzE2BghcMzE3QkJFRVwzMjAF XDMyMQYIRFwzMjIGCURGRUVcMjA3IiBbbWFrZS1zeW1ib2wgIi0tY2hhbmdlLWdyb3VwLWhhbmRs ZS0tIiAiLS1jaGFuZ2UtZ3JvdXAtc3VjY2Vzcy0tIiBsZXQgKChwcmVwYXJlLWNoYW5nZS1ncm91 cCkpICh1bmRvLW91dGVyLWxpbWl0IG5pbCkgKHVuZG8tbGltaXQgbW9zdC1wb3NpdGl2ZS1maXhu dW0pICh1bmRvLXN0cm9uZy1saW1pdCBtb3N0LXBvc2l0aXZlLWZpeG51bSkgKG5pbCkgdW53aW5k LXByb3RlY3QgcHJvZ24gYWN0aXZhdGUtY2hhbmdlLWdyb3VwIHByb2cxIG1hY3JvZXhwLXByb2du IHNldHEgKHQpIGlmIGFjY2VwdC1jaGFuZ2UtZ3JvdXAgY2FuY2VsLWNoYW5nZS1ncm91cF0gMTMg KCMkIC4gMTE5Njg4KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMw NVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCBhdG9taWMtY2hhbmdlLWdyb3VwIGxpc3AtaW5kZW50 LWZ1bmN0aW9uIDAgcHV0IGVkZWJ1Zy1mb3JtLXNwZWMgdF0gNSkjQDE5MyBMaWtlIGBwcm9nbicg YnV0IHBlcmZvcm0gQk9EWSB3aXRoIGFtYWxnYW1hdGVkIHVuZG8gYmFycmllcnMuCgpUaGlzIGFs bG93cyBtdWx0aXBsZSBvcGVyYXRpb25zIHRvIGJlIHVuZG9uZSBpbiBhIHNpbmdsZSBzdGVwLgpX aGVuIHVuZG8gaXMgZGlzYWJsZWQgdGhpcyBiZWhhdmVzIGxpa2UgYHByb2duJy4KCihmbiAmcmVz dCBCT0RZKR8KKGRlZmFsaWFzICd3aXRoLXVuZG8tYW1hbGdhbWF0ZSAnKG1hY3JvIC4gI1sxMjgg IlwzMDBcMzAxIVwzMDIBXDMwM0JcMzA0QlwzMDVcMzA2XDMwNwVEBgZCQlwzMDZcMzEwBgZEXDMx MQYHREVFRVwyMDciIFttYWtlLXN5bWJvbCAiLS1jaGFuZ2UtZ3JvdXAtaGFuZGxlLS0iIGxldCAo KHByZXBhcmUtY2hhbmdlLWdyb3VwKSkgKCh1bmRvLW91dGVyLWxpbWl0IG5pbCkgKHVuZG8tbGlt aXQgbW9zdC1wb3NpdGl2ZS1maXhudW0pICh1bmRvLXN0cm9uZy1saW1pdCBtb3N0LXBvc2l0aXZl LWZpeG51bSkpIHVud2luZC1wcm90ZWN0IHByb2duIGFjdGl2YXRlLWNoYW5nZS1ncm91cCBhY2Nl cHQtY2hhbmdlLWdyb3VwIHVuZG8tYW1hbGdhbWF0ZS1jaGFuZ2UtZ3JvdXBdIDEwICgjJCAuIDEy MDcxMyldKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2I1wy MDciIFtmdW5jdGlvbi1wdXQgd2l0aC11bmRvLWFtYWxnYW1hdGUgbGlzcC1pbmRlbnQtZnVuY3Rp b24gMCBwdXQgZWRlYnVnLWZvcm0tc3BlYyB0XSA1KSNAMTMwOSBSZXR1cm4gYSBoYW5kbGUgZm9y IHRoZSBjdXJyZW50IGJ1ZmZlcidzIHN0YXRlLCBmb3IgYSBjaGFuZ2UgZ3JvdXAuCklmIHlvdSBz cGVjaWZ5IEJVRkZFUiwgbWFrZSBhIGhhbmRsZSBmb3IgQlVGRkVSJ3Mgc3RhdGUgaW5zdGVhZC4K ClBhc3MgdGhlIGhhbmRsZSB0byBgYWN0aXZhdGUtY2hhbmdlLWdyb3VwJyBhZnRlcndhcmQgdG8g aW5pdGlhdGUKdGhlIGFjdHVhbCBjaGFuZ2VzIG9mIHRoZSBjaGFuZ2UgZ3JvdXAuCgpUbyBmaW5p c2ggdGhlIGNoYW5nZSBncm91cCwgY2FsbCBlaXRoZXIgYGFjY2VwdC1jaGFuZ2UtZ3JvdXAnIG9y CmBjYW5jZWwtY2hhbmdlLWdyb3VwJyBwYXNzaW5nIHRoZSBzYW1lIGhhbmRsZSBhcyBhcmd1bWVu dC4gIENhbGwKYGFjY2VwdC1jaGFuZ2UtZ3JvdXAnIHRvIGFjY2VwdCB0aGUgY2hhbmdlcyBpbiB0 aGUgZ3JvdXAgYXMgZmluYWw7CmNhbGwgYGNhbmNlbC1jaGFuZ2UtZ3JvdXAnIHRvIHVuZG8gdGhl bSBhbGwuICBZb3Ugc2hvdWxkIHVzZQpgdW53aW5kLXByb3RlY3QnIHRvIG1ha2Ugc3VyZSB0aGUg Z3JvdXAgaXMgYWx3YXlzIGZpbmlzaGVkLiAgVGhlIGNhbGwKdG8gYGFjdGl2YXRlLWNoYW5nZS1n cm91cCcgc2hvdWxkIGJlIGluc2lkZSB0aGUgYHVud2luZC1wcm90ZWN0Jy4KT25jZSB5b3UgZmlu aXNoIHRoZSBncm91cCwgZG9uJ3QgdXNlIHRoZSBoYW5kbGUgYWdhaW4tLWRvbid0IHRyeSB0bwpm aW5pc2ggdGhlIHNhbWUgZ3JvdXAgdHdpY2UuICBGb3IgYSBzaW1wbGUgZXhhbXBsZSBvZiBjb3Jy ZWN0IHVzZSwgc2VlCnRoZSBzb3VyY2UgY29kZSBvZiBgYXRvbWljLWNoYW5nZS1ncm91cCcuCgpU aGUgaGFuZGxlIHJlY29yZHMgb25seSB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4gIFRvIG1ha2UgYSBt dWx0aWJ1ZmZlcgpjaGFuZ2UgZ3JvdXAsIGNhbGwgdGhpcyBmdW5jdGlvbiBvbmNlIGZvciBlYWNo IGJ1ZmZlciB5b3Ugd2FudCB0bwpjb3ZlciwgdGhlbiB1c2UgYG5jb25jJyB0byBjb21iaW5lIHRo ZSByZXR1cm5lZCB2YWx1ZXMsIGxpa2UgdGhpczoKCiAgKG5jb25jIChwcmVwYXJlLWNoYW5nZS1n cm91cCBidWZmZXItMSkKICAgICAgICAgKHByZXBhcmUtY2hhbmdlLWdyb3VwIGJ1ZmZlci0yKSkK CllvdSBjYW4gdGhlbiBhY3RpdmF0ZSB0aGF0IG11bHRpYnVmZmVyIGNoYW5nZSBncm91cCB3aXRo IGEgc2luZ2xlCmNhbGwgdG8gYGFjdGl2YXRlLWNoYW5nZS1ncm91cCcgYW5kIGZpbmlzaCBpdCB3 aXRoIGEgc2luZ2xlIGNhbGwKdG8gYGFjY2VwdC1jaGFuZ2UtZ3JvdXAnIG9yIGBjYW5jZWwtY2hh bmdlLWdyb3VwJy4KCihmbiAmb3B0aW9uYWwgQlVGRkVSKR8KKGRlZmFsaWFzICdwcmVwYXJlLWNo YW5nZS1ncm91cCAjWzI1NiAiXDIxMVwyMDMOAFwyMTFyAXFcMjEwCClCQ1wyMDdwCEJDXDIwNyIg W2J1ZmZlci11bmRvLWxpc3RdIDMgKCMkIC4gMTIxNDQ4KV0pI0A4NCBBY3RpdmF0ZSBhIGNoYW5n ZSBncm91cCBtYWRlIHdpdGggYHByZXBhcmUtY2hhbmdlLWdyb3VwJyAod2hpY2ggc2VlKS4KCihm biBIQU5ETEUpHwooZGVmYWxpYXMgJ2FjdGl2YXRlLWNoYW5nZS1ncm91cCAjWzI1NyAiXDIxMVwy MTFcMjA1MABcMjExQHJcMjExQHFcMjEwCFwzMDE9XDIwMxcAXDMwMhBcMjAyKAAIQFwyNDJcMjQ3 XDIwMygACEBACEBAQghCECkBQVwyNjZcMjAyXDIwMgEAXDIwNyIgW2J1ZmZlci11bmRvLWxpc3Qg dCBuaWxdIDUgKCMkIC4gMTIyODc2KV0pI0AxNDggRmluaXNoIGEgY2hhbmdlIGdyb3VwIG1hZGUg d2l0aCBgcHJlcGFyZS1jaGFuZ2UtZ3JvdXAnICh3aGljaCBzZWUpLgpUaGlzIGZpbmlzaGVzIHRo ZSBjaGFuZ2UgZ3JvdXAgYnkgYWNjZXB0aW5nIGl0cyBjaGFuZ2VzIGFzIGZpbmFsLgoKKGZuIEhB TkRMRSkfCihkZWZhbGlhcyAnYWNjZXB0LWNoYW5nZS1ncm91cCAjWzI1NyAiXDIxMVwyMTFcMjA1 HQBcMjExQHJcMjExQHFcMjEwXDIxMUFcMzAxPVwyMDMVAFwzMDEQKQFBXDI2NlwyMDJcMjAyAQBc MjA3IiBbYnVmZmVyLXVuZG8tbGlzdCB0XSA1ICgjJCAuIDEyMzE1MCldKSNAMTQ2IEZpbmlzaCBh IGNoYW5nZSBncm91cCBtYWRlIHdpdGggYHByZXBhcmUtY2hhbmdlLWdyb3VwJyAod2hpY2ggc2Vl KS4KVGhpcyBmaW5pc2hlcyB0aGUgY2hhbmdlIGdyb3VwIGJ5IHJldmVydGluZyBhbGwgb2YgaXRz IGNoYW5nZXMuCgooZm4gSEFORExFKR8KKGRlZmFsaWFzICdjYW5jZWwtY2hhbmdlLWdyb3VwICNb MjU3ICJcMjExXDIxMVwyMDVlAFwyMTFAQ3JcMjExXDI0MkBxXDIxMFwyMTEBXDI0MkFcMjQwXDIx MFwyMTR+XDIxMFwyMTFcMjQyXDI0MgFcMjQyXDI0MwgZXDMwMlwzMDMCBAYGJFwyMTYCXDI0Mjpc MjAzNwACXDI0MlwzMDRcMjQwXDIxMAJcMjQyXDMwNFwyNDFcMjEwAlwyNDI6XDIwM0oAAlwyNDJc MzA1CSE9XDIwNEoAXDMwNlwzMDchXDIxMFwyMTIJPFwyMDNXAFwzMTBcMzExIVwyMTBcMjAySwAp AlwyNDIQLFwyNjYCAUFcMjY2XDIwMlwyMDIBAFwyMDciIFtidWZmZXItdW5kby1saXN0IHBlbmRp bmctdW5kby1saXN0IG1ha2UtY2xvc3VyZSAjWzAgIlwzMDJcMjQyOlwyMDUPAFwzMDJcMjQyXDMw MVwyNDBcMjEwXDMwMlwyNDJcMzAwXDI0MVwyMDciIFtWMCBWMSBWMl0gMl0gbmlsIGxhc3QgZXJy b3IgIlVuZG9pbmcgdG8gc29tZSB1bnJlbGF0ZWQgc3RhdGUiIHVuZG8tbW9yZSAxXSAxMCAoIyQg LiAxMjM0NTQpXSkjQDU2MSBNb21lbnRhcmlseSBkaXNwbGF5IFNUUklORyBpbiB0aGUgYnVmZmVy IGF0IFBPUy4KRGlzcGxheSByZW1haW5zIHVudGlsIG5leHQgZXZlbnQgaXMgaW5wdXQuCklmIFBP UyBpcyBhIG1hcmtlciwgb25seSBpdHMgcG9zaXRpb24gaXMgdXNlZDsgaXRzIGJ1ZmZlciBpcyBp Z25vcmVkLgpPcHRpb25hbCB0aGlyZCBhcmcgRVhJVC1DSEFSIGNhbiBiZSBhIGNoYXJhY3Rlciwg ZXZlbnQgb3IgZXZlbnQKZGVzY3JpcHRpb24gbGlzdC4gIEVYSVQtQ0hBUiBkZWZhdWx0cyB0byBT UEMuICBJZiB0aGUgaW5wdXQgaXMKRVhJVC1DSEFSIGl0IGlzIHN3YWxsb3dlZDsgb3RoZXJ3aXNl IGl0IGlzIHRoZW4gYXZhaWxhYmxlIGFzCmlucHV0IChhcyBhIGNvbW1hbmQgaWYgbm90aGluZyBl bHNlKS4KRGlzcGxheSBNRVNTQUdFIChvcHRpb25hbCBmb3VydGggYXJnKSBpbiB0aGUgZWNobyBh cmVhLgpJZiBNRVNTQUdFIGlzIG5pbCwgaW5zdHJ1Y3Rpb25zIHRvIHR5cGUgRVhJVC1DSEFSIGFy ZSBkaXNwbGF5ZWQgdGhlcmUuCgooZm4gU1RSSU5HIFBPUyAmb3B0aW9uYWwgRVhJVC1DSEFSIE1F U1NBR0UpHwooZGVmYWxpYXMgJ21vbWVudGFyeS1zdHJpbmctZGlzcGxheSAjWzEwMjYgIgFcMjA0 BwBcMzAxXDI2MgJcMzAyA1wyMTFcIlwzMDMFIVwzMDRcMzA1A1wiXDIxNlwyMTJcMzA2AlwzMDcD I1wyMTAEYlwyMTBgXDI2MgVcMzEwXDMxMVwzMTJcIgVYXDIwMzAAXDMxM1wzMTQgXDMxNVwyNDUh XDIxMClcMzE2A1wyMDY3AFwzMTdcMzIwBgYhXCJcMjEwXDMyMSBcMjExBT1cMjA2VQBcMjExXDMy MgYGIT1cMjA2VQBcMzIzXDMyNCAIXCJcMjExEClcMjA3IiBbdW5yZWFkLWNvbW1hbmQtZXZlbnRz IDMyIG1ha2Utb3ZlcmxheSBjb3B5LXNlcXVlbmNlIG1ha2UtY2xvc3VyZSAjWzAgIlwzMDFcMzAw IVwyMDciIFtWMCBkZWxldGUtb3ZlcmxheV0gMl0gb3ZlcmxheS1wdXQgYWZ0ZXItc3RyaW5nIHdp bmRvdy1lbmQgbmlsIHQgcmVjZW50ZXIgd2luZG93LWhlaWdodCAyIG1lc3NhZ2UgIlR5cGUgJXMg dG8gY29udGludWUgZWRpdGluZy4iIHNpbmdsZS1rZXktZGVzY3JpcHRpb24gcmVhZC1rZXkgZXZl bnQtY29udmVydC1saXN0IGFwcGVuZCB0aGlzLXNpbmdsZS1jb21tYW5kLXJhdy1rZXlzXSAxMCAo IyQgLiAxMjQxMDYpXSkjQDM3IFJldHVybiBhIGNvcHkgb2Ygb3ZlcmxheSBPLgoKKGZuIE8pHwoo ZGVmYWxpYXMgJ2NvcHktb3ZlcmxheSAjWzI1NyAiXDMwMAEhXDIwMxQAXDMwMVwzMDICIVwzMDMD IVwzMDAEISNcMjAyHwBcMzAxZWVcIlwzMDQBIVwyMTBcMjExXDI2MgFcMzA1AiFcMjExXDIwMzkA XDMwNgICXDIxMUFcMjYyBFwyNDIDXDIxMUFcMjYyBVwyNDIjXDIxMFwyMDJcIgABXDIwNyIgW292 ZXJsYXktYnVmZmVyIG1ha2Utb3ZlcmxheSBvdmVybGF5LXN0YXJ0IG92ZXJsYXktZW5kIGRlbGV0 ZS1vdmVybGF5IG92ZXJsYXktcHJvcGVydGllcyBvdmVybGF5LXB1dF0gOCAoIyQgLiAxMjUyNDgp XSkjQDU5NyBSZW1vdmUgb3ZlcmxheXMgYmV0d2VlbiBCRUcgYW5kIEVORCB0aGF0IGhhdmUgcHJv cGVydHkgTkFNRSB3aXRoIHZhbHVlIFZBTC4KT3ZlcmxheXMgbWlnaHQgYmUgbW92ZWQgYW5kL29y IHNwbGl0LiAgSWYgYW55IHRhcmdldGVkIG92ZXJsYXlzCnN0YXJ0IGJlZm9yZSBCRUcsIHRoZSBv dmVybGF5cyB3aWxsIGJlIGFsdGVyZWQgc28gdGhhdCB0aGV5IGVuZAphdCBCRUcuICBMaWtld2lz ZSwgaWYgdGhlIHRhcmdldGVkIG92ZXJsYXlzIGVuZCBhZnRlciBFTkQsIHRoZXkKd2lsbCBiZSBh bHRlcmVkIHNvIHRoYXQgdGhleSBzdGFydCBhdCBFTkQuICBPdmVybGF5cyB0aGF0IHN0YXJ0CmF0 IG9yIGFmdGVyIEJFRyBhbmQgZW5kIGJlZm9yZSBFTkQgd2lsbCBiZSByZW1vdmVkIGNvbXBsZXRl bHkuCgpCRUcgYW5kIEVORCBkZWZhdWx0IHJlc3BlY3RpdmVseSB0byB0aGUgYmVnaW5uaW5nIGFu ZCBlbmQgb2YgdGhlCmJ1ZmZlci4KVmFsdWVzIGFyZSBjb21wYXJlZCB3aXRoIGBlcScuCklmIGVp dGhlciBOQU1FIG9yIFZBTCBhcmUgc3BlY2lmaWVkLCBib3RoIHNob3VsZCBiZSBzcGVjaWZpZWQu CgooZm4gJm9wdGlvbmFsIEJFRyBFTkQgTkFNRSBWQUwpHwooZGVmYWxpYXMgJ3JlbW92ZS1vdmVy bGF5cyAjWzEwMjQgIgNcMjA0BwBlXDI2MgQCXDIwNA4AZFwyNjIDXDMwMAMhXDIxMAIEV1wyMDMe AAIEXDI2MgRcMjYyBFwyMTJcMzAxBARcIlwyMTFcMjA1XDIwNQBcMjExQFwzMDIBBVwiAz1cMjAz fgBcMzAzASEGBldcMjAzZgBcMzA0ASEFVlwyMDNaAFwzMDVcMzA2AiFcMzAzAyEGCCNcMjEwXDMw NQEGBlwzMDQEISNcMjEwXDIwMn4AXDMwNQFcMzAzAyEGCCNcMjEwXDIwMn4AXDMwNAEhBVZcMjAz egBcMzA1AQYGXDMwNAQhI1wyMTBcMjAyfgBcMzA3ASFcMjEwAUFcMjY2XDIwMlwyMDIjAClcMjA3 IiBbb3ZlcmxheS1yZWNlbnRlciBvdmVybGF5cy1pbiBvdmVybGF5LWdldCBvdmVybGF5LXN0YXJ0 IG92ZXJsYXktZW5kIG1vdmUtb3ZlcmxheSBjb3B5LW92ZXJsYXkgZGVsZXRlLW92ZXJsYXldIDEx ICgjJCAuIDEyNTU3OSldKSNANTYgTm9ybWFsIGhvb2sgcnVuIGJ5IGBzdXNwZW5kLWVtYWNzJywg YmVmb3JlIHN1c3BlbmRpbmcuHwooZGVmdmFyIHN1c3BlbmQtaG9vayBuaWwgKCMkIC4gMTI2NjE4 KSkjQDYzIE5vcm1hbCBob29rIHJ1biBieSBgc3VzcGVuZC1lbWFjcycsIGFmdGVyIEVtYWNzIGlz IGNvbnRpbnVlZC4fCihkZWZ2YXIgc3VzcGVuZC1yZXN1bWUtaG9vayBuaWwgKCMkIC4gMTI2NzE4 KSkjQDQ3IE5vcm1hbCBob29rIHJ1biBhZnRlciBsb2FkaW5nIHRoZSAucGRtcCBmaWxlLh8KKGRl ZnZhciBhZnRlci1wZHVtcC1sb2FkLWhvb2sgbmlsICgjJCAuIDEyNjgzMikpI0AxNzkgTm9ybWFs IGhvb2sgcnVuIGJ5IGB3aXRoLW91dHB1dC10by10ZW1wLWJ1ZmZlcicgYWZ0ZXIgZGlzcGxheWlu ZyB0aGUgYnVmZmVyLgpXaGVuIHRoZSBob29rIHJ1bnMsIHRoZSB0ZW1wb3JhcnkgYnVmZmVyIGlz IGN1cnJlbnQsIGFuZCB0aGUgd2luZG93IGl0CndhcyBkaXNwbGF5ZWQgaW4gaXMgc2VsZWN0ZWQu HwooZGVmdmFyIHRlbXAtYnVmZmVyLXNob3ctaG9vayBuaWwgKCMkIC4gMTI2OTMzKSkjQDE5MyBO b3JtYWwgaG9vayBydW4gYnkgYHdpdGgtb3V0cHV0LXRvLXRlbXAtYnVmZmVyJyBhdCB0aGUgc3Rh cnQuCldoZW4gdGhlIGhvb2sgcnVucywgdGhlIHRlbXBvcmFyeSBidWZmZXIgaXMgY3VycmVudC4K VGhpcyBob29rIGlzIG5vcm1hbGx5IHNldCB1cCB3aXRoIGEgZnVuY3Rpb24gdG8gcHV0IHRoZSBi dWZmZXIgaW4gSGVscAptb2RlLh8KKGRlZnZhciB0ZW1wLWJ1ZmZlci1zZXR1cC1ob29rIG5pbCAo IyQgLiAxMjcxNjYpKSNAMjMwIERpcmVjdG9yeSBiZW5lYXRoIHdoaWNoIGFkZGl0aW9uYWwgcGVy LXVzZXIgRW1hY3Mtc3BlY2lmaWMgZmlsZXMgYXJlIHBsYWNlZC4KVmFyaW91cyBwcm9ncmFtcyBp biBFbWFjcyBzdG9yZSBpbmZvcm1hdGlvbiBpbiB0aGlzIGRpcmVjdG9yeS4KTm90ZSB0aGF0IHRo aXMgc2hvdWxkIGVuZCB3aXRoIGEgZGlyZWN0b3J5IHNlcGFyYXRvci4KU2VlIGFsc28gYGxvY2F0 ZS11c2VyLWVtYWNzLWZpbGUnLh8KKGRlZnZhciB1c2VyLWVtYWNzLWRpcmVjdG9yeSBuaWwgKCMk IC4gMTI3NDE0KSkjQDUxIFJldHVybiBub24tbmlsIGlmIHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBu YXJyb3dlZC4fCihkZWZhbGlhcyAnYnVmZmVyLW5hcnJvd2VkLXAgI1swICJkZVpcMzAwIFU/XDIw NyIgW2J1ZmZlci1zaXplXSAyICgjJCAuIDEyNzY5NildKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwz MDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCBidWZmZXItbmFycm93 ZWQtcCBzcGVlZCAtMSBwdXQgYnl0ZS1vcHRpbWl6ZXIgYnl0ZS1jb21waWxlLWlubGluZS1leHBh bmRdIDUpI0A0MTcgRXhlY3V0ZSBCT0RZIHdpdGggcmVzdHJpY3Rpb25zIHNldCB0byBTVEFSVCBh bmQgRU5ELgoKVGhlIGN1cnJlbnQgcmVzdHJpY3Rpb25zLCBpZiBhbnksIGFyZSByZXN0b3JlZCB1 cG9uIHJldHVybi4KCldpdGggdGhlIG9wdGlvbmFsIDpsb2NrZWQgVEFHIGFyZ3VtZW50LCBpbnNp ZGUgQk9EWSwKYG5hcnJvdy10by1yZWdpb24nIGFuZCBgd2lkZW4nIGNhbiBiZSB1c2VkIG9ubHkg d2l0aGluIHRoZSBTVEFSVAphbmQgRU5EIGxpbWl0cywgdW5sZXNzIHRoZSByZXN0cmljdGlvbnMg YXJlIHVubG9ja2VkIGJ5IGNhbGxpbmcKYG5hcnJvd2luZy11bmxvY2snIHdpdGggVEFHLiAgU2Vl IGBuYXJyb3dpbmctbG9jaycgZm9yIGEgbW9yZQpkZXRhaWxlZCBkZXNjcmlwdGlvbi4KCihmbiBT VEFSVCBFTkQgWzpsb2NrZWQgVEFHXSBCT0RZKR8KKGRlZmFsaWFzICd3aXRoLW5hcnJvd2luZyAn KG1hY3JvIC4gI1s2NDIgIlwyMTFAXDMwMD1cMjAzFwBcMzAxAwNcMzAyXDMwMwVBQUJCBEFAXDI1 NwVcMjA3XDMwMQMDXDMwMlwzMDMFQkJGXDIwNyIgWzpsb2NrZWQgaW50ZXJuYWwtLXdpdGgtbmFy cm93aW5nIGxhbWJkYSBuaWxdIDkgKCMkIC4gMTI3OTc3KV0pKSNAODUgSGVscGVyIGZ1bmN0aW9u IGZvciBgd2l0aC1uYXJyb3dpbmcnLCB3aGljaCBzZWUuCgooZm4gU1RBUlQgRU5EIEJPRFkgJm9w dGlvbmFsIFRBRykfCihkZWZhbGlhcyAnaW50ZXJuYWwtLXdpdGgtbmFycm93aW5nICNbMTAyNyAi XDIxNAMDfVwyMTBcMjExXDIwMw0AXDMwMAEhXDIxMAEgKVwyMDciIFtuYXJyb3dpbmctbG9ja10g NiAoIyQgLiAxMjg1NzcpXSkjQDE4MCBEZXRlcm1pbmUgdGhlIGJvdW5kYXJpZXMgb2YgdGhlIGRl ZmF1bHQgdGFnLCBiYXNlZCBvbiB0ZXh0IGF0IHBvaW50LgpSZXR1cm4gYSBjb25zIGNlbGwgd2l0 aCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGZvdW5kIHRhZy4KSWYgdGhlcmUgaXMgbm8g cGxhdXNpYmxlIGRlZmF1bHQsIHJldHVybiBuaWwuHwooZGVmYWxpYXMgJ2ZpbmQtdGFnLWRlZmF1 bHQtYm91bmRzICNbMCAiXDMwMFwzMDEhXDIwNyIgW2JvdW5kcy1vZi10aGluZy1hdC1wb2ludCBz eW1ib2xdIDIgKCMkIC4gMTI4Nzg2KV0pI0AxMDggRGV0ZXJtaW5lIGRlZmF1bHQgdGFnIHRvIHNl YXJjaCBmb3IsIGJhc2VkIG9uIHRleHQgYXQgcG9pbnQuCklmIHRoZXJlIGlzIG5vIHBsYXVzaWJs ZSBkZWZhdWx0LCByZXR1cm4gbmlsLh8KKGRlZmFsaWFzICdmaW5kLXRhZy1kZWZhdWx0ICNbMCAi XDMwMCBcMjExXDIwNVxmAFwzMDEBQAJBXCJcMjA3IiBbZmluZC10YWctZGVmYXVsdC1ib3VuZHMg YnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzXSA0ICgjJCAuIDEyOTA3OCldKSNAMjM0IFJl dHVybiByZWdleHAgdGhhdCBtYXRjaGVzIHRoZSBkZWZhdWx0IHRhZyBhdCBwb2ludC4KSWYgdGhl cmUgaXMgbm8gdGFnIGF0IHBvaW50LCByZXR1cm4gbmlsLgoKV2hlbiBpbiBhIG1ham9yIG1vZGUg dGhhdCBkb2VzIG5vdCBwcm92aWRlIGl0cyBvd24KYGZpbmQtdGFnLWRlZmF1bHQtZnVuY3Rpb24n LCByZXR1cm4gYSByZWdleHAgdGhhdCBtYXRjaGVzIHRoZQpzeW1ib2wgYXQgcG9pbnQgZXhhY3Rs eS4fCihkZWZhbGlhcyAnZmluZC10YWctZGVmYXVsdC1hcy1yZWdleHAgI1swICIIXDIwNgsACVwz MDBOXDIwNgsAXDMwMiBcMjExXDIwNRMAXDMwMwEhXDIwNyIgW2ZpbmQtdGFnLWRlZmF1bHQtZnVu Y3Rpb24gbWFqb3ItbW9kZSBmaW5kLXRhZy1kZWZhdWx0IHJlZ2V4cC1xdW90ZV0gMyAoIyQgLiAx MjkzMzEpXSkjQDI0NCBSZXR1cm4gcmVnZXhwIHRoYXQgbWF0Y2hlcyB0aGUgZGVmYXVsdCB0YWcg YXQgcG9pbnQgYXMgc3ltYm9sLgpJZiB0aGVyZSBpcyBubyB0YWcgYXQgcG9pbnQsIHJldHVybiBu aWwuCgpXaGVuIGluIGEgbWFqb3IgbW9kZSB0aGF0IGRvZXMgbm90IHByb3ZpZGUgaXRzIG93bgpg ZmluZC10YWctZGVmYXVsdC1mdW5jdGlvbicsIHJldHVybiBhIHJlZ2V4cCB0aGF0IG1hdGNoZXMg dGhlCnN5bWJvbCBhdCBwb2ludCBleGFjdGx5Lh8KKGRlZmFsaWFzICdmaW5kLXRhZy1kZWZhdWx0 LWFzLXN5bWJvbC1yZWdleHAgI1swICJcMzAyIFwyMTFcMjAzGwAIXDIwNhEACVwzMDBOXDIwNhEA XDMwM1wzMDM9XDIwMxsAXDMwNFwzMDUCXCJcMjA3XDIwNyIgW2ZpbmQtdGFnLWRlZmF1bHQtZnVu Y3Rpb24gbWFqb3ItbW9kZSBmaW5kLXRhZy1kZWZhdWx0LWFzLXJlZ2V4cCBmaW5kLXRhZy1kZWZh dWx0IGZvcm1hdCAiXFxfPCVzXFxfPiJdIDQgKCMkIC4gMTI5NzQ2KV0pI0A2NzggU09VTkQgaXMg YSBsaXN0IG9mIHRoZSBmb3JtIGAoc291bmQgS0VZV09SRCBWQUxVRS4uLiknLgpUaGUgZm9sbG93 aW5nIGtleXdvcmRzIGFyZSByZWNvZ25pemVkOgoKICA6ZmlsZSBGSUxFIC0gcmVhZCBzb3VuZCBk YXRhIGZyb20gRklMRS4gIElmIEZJTEUgaXNuJ3QgYW4KYWJzb2x1dGUgZmlsZSBuYW1lLCBpdCBp cyBzZWFyY2hlZCBpbiBgZGF0YS1kaXJlY3RvcnknLgoKICA6ZGF0YSBEQVRBIC0gcmVhZCBzb3Vu ZCBkYXRhIGZyb20gc3RyaW5nIERBVEEuCgpFeGFjdGx5IG9uZSBvZiA6ZmlsZSBvciA6ZGF0YSBt dXN0IGJlIHByZXNlbnQuCgogIDp2b2x1bWUgVk9MIC0gc2V0IHZvbHVtZSB0byBWT0wuICBWT0wg bXVzdCBhbiBpbnRlZ2VyIGluIHRoZQpyYW5nZSAwLi4xMDAgb3IgYSBmbG9hdCBpbiB0aGUgcmFu Z2UgMC4uMS4wLiAgSWYgbm90IHNwZWNpZmllZCwKZG9uJ3QgY2hhbmdlIHRoZSB2b2x1bWUgc2V0 dGluZyBvZiB0aGUgc291bmQgZGV2aWNlLgoKICA6ZGV2aWNlIERFVklDRSAtIHBsYXkgc291bmQg b24gREVWSUNFLiAgSWYgbm90IHNwZWNpZmllZCwKYSBzeXN0ZW0tZGVwZW5kZW50IGRlZmF1bHQg ZGV2aWNlIG5hbWUgaXMgdXNlZC4KCk5vdGU6IDpkYXRhIGFuZCA6ZGV2aWNlIGFyZSBjdXJyZW50 bHkgbm90IHN1cHBvcnRlZCBvbiBXaW5kb3dzLgoKKGZuIFNPVU5EKR8KKGRlZmFsaWFzICdwbGF5 LXNvdW5kICNbMjU3ICJcMzAwXDMwMSFcMjAzXG4AXDMwMQEhXDIwN1wzMDJcMzAzIVwyMDciIFtm Ym91bmRwIHBsYXktc291bmQtaW50ZXJuYWwgZXJyb3IgIlRoaXMgRW1hY3MgYmluYXJ5IGxhY2tz IHNvdW5kIHN1cHBvcnQiXSAzICgjJCAuIDEzMDIzNildKSNANDE5IFF1b3RlIEFSR1VNRU5UIGZv ciBwYXNzaW5nIGFzIGFyZ3VtZW50IHRvIGFuIGluZmVyaW9yIHNoZWxsLgoKVGhpcyBmdW5jdGlv biBpcyBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhlIHN5bnRheCBvZiB5b3VyIHN5c3RlbSdzCnN0 YW5kYXJkIHNoZWxsLCBhbmQgbWlnaHQgcHJvZHVjZSBpbmNvcnJlY3QgcmVzdWx0cyB3aXRoIHVu dXN1YWwgc2hlbGxzLgpTZWUgSW5mbyBub2RlIGAoZWxpc3ApU2VjdXJpdHkgQ29uc2lkZXJhdGlv bnMnLgoKSWYgdGhlIG9wdGlvbmFsIFBPU0lYIGFyZ3VtZW50IGlzIG5vbi1uaWwsIEFSR1VNRU5U IGlzIHF1b3RlZAphY2NvcmRpbmcgdG8gUE9TSVggc2hlbGwgcXVvdGluZyBydWxlcywgcmVnYXJk bGVzcyBvZiB0aGUKc3lzdGVtJ3Mgc2hlbGwuCgooZm4gQVJHVU1FTlQgJm9wdGlvbmFsIFBPU0lY KR8KKGRlZmFsaWFzICdzaGVsbC1xdW90ZS1hcmd1bWVudCAjWzUxMyAiXDIxMVwyMDRKAAhcMzAx PVwyMDNKAFwzMDJcMzAzXDMwNFwzMDVcMzA2BgZcIlwyMDMdAFwzMDNcMjI1BUdXXDIwM0AAXDMw NVwzMDcGBgQjXDIwM0AAXDMwM1wyMjRcMjYyAQIFAwNPXDMxMAYHBFwyMTFUT1JcMjYyA1wyMTFU XDI2MgJcMjAyHQBcMzExAwYGBFwzMDRPXDMxMVJcMjA3XDIxMVwyMDR6AAhcMzEyPVwyMDN6AFwz MTMgXDIwM3oAXDMxNFwzMTVcMzE2XDMxNFwzMTdcMzIwBgcjI1wyNjICXDMwNVwzMjEDXCJcMjAz dQBcMzIyXDMxNFwzMjNcMzI0BSNcMzIyUVwyMDdcMzExAlwzMTFRXDIwNwFcMzAyXDIzMlwyMDNc MjAyAFwzMjVcMjA3XDMyNlwzMjdcMzMwXDMxNFwzMzFcMzMyBgcjI1wyMDciIFtzeXN0ZW0tdHlw ZSBtcy1kb3MgIiIgMCBuaWwgc3RyaW5nLW1hdGNoICJbXlwiXSIgIltcIl0iICJcXCIgIlwiIiB3 aW5kb3dzLW50IHczMi1zaGVsbC1kb3Mtc2VtYW50aWNzIHJlcGxhY2UtcmVnZXhwLWluLXN0cmlu ZyAiXFwoXFxcXCpcXCkkIiAiXFwxXFwxIiAiXFwoXFxcXCpcXClcIiIgIlxcMVxcMVxcXFxcIiIg IlslIVwiXSIgIl5cIiIgIlxcKFslISgpXCI8PiZ8Xl1cXCkiICJeXFwxIiAiJyciIHN0cmluZy1y ZXBsYWNlICJcbiIgIidcbiciICJbXi0wLTlhLXpBLVpfLi9cbl0iICJcXFxcXFwmIl0gMTEgKCMk IC4gMTMxMDgzKV0pI0A1MyBSZXR1cm4gYSBsaXN0IG9mIGNoYXJhY3RlcnMgaW4gU1RSSU5HLgoK KGZuIFNUUklORykfCihkZWZhbGlhcyAnc3RyaW5nLXRvLWxpc3QgI1syNTcgIlwzMDABXDMwMVwi XDIwNyIgW2FwcGVuZCBuaWxdIDQgKCMkIC4gMTMyMjAwKV0pCihieXRlLWNvZGUgIlwzMDBcMzAx XDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IHN0cmluZy10by1s aXN0IHNwZWVkIC0xIHB1dCBieXRlLW9wdGltaXplciBieXRlLWNvbXBpbGUtaW5saW5lLWV4cGFu ZF0gNSkjQDU1IFJldHVybiBhIHZlY3RvciBvZiBjaGFyYWN0ZXJzIGluIFNUUklORy4KCihmbiBT VFJJTkcpHwooZGVmYWxpYXMgJ3N0cmluZy10by12ZWN0b3IgI1syNTcgIlwzMDABIVwyMDciIFt2 Y29uY2F0XSAzICgjJCAuIDEzMjQ3OCldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wz MDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCBzdHJpbmctdG8tdmVjdG9yIHNwZWVk IC0xIHB1dCBieXRlLW9wdGltaXplciBieXRlLWNvbXBpbGUtaW5saW5lLWV4cGFuZF0gNSkjQDc2 IFJldHVybiB0IGlmIE9CSkVDVCBpcyBhIHN0cmluZyBvciBuaWwuCk90aGVyd2lzZSwgcmV0dXJu IG5pbC4KCihmbiBPQkpFQ1QpHwooZGVmYWxpYXMgJ3N0cmluZy1vci1udWxsLXAgI1syNTcgIlwy MTE7XDIwNgcAXDIxMT9cMjA3IiBbXSAyICgjJCAuIDEzMjc1NCldKSNANjIgUmV0dXJuIHQgaWYg T0JKRUNUIGlzIG5pbCBvciBhIGxpc3Qgb2Ygc3RyaW5ncy4KCihmbiBPQkpFQ1QpHwooZGVmYWxp YXMgJ2xpc3Qtb2Ytc3RyaW5ncy1wICNbMjU3ICJcMjExOlwyMDMSAFwyMTFAO1wyMDMSAFwyMTFB XDI2MgFcMjAyAABcMjExP1wyMDciIFtdIDIgKCMkIC4gMTMyOTEyKV0pCihieXRlLWNvZGUgIlwz MDBcMzAxXDMwMlwzMDMjXDMwMFwzMDFcMzA0XDMwNSNcMzAwXDIwNyIgW2Z1bmN0aW9uLXB1dCBs aXN0LW9mLXN0cmluZ3MtcCBwdXJlIHQgc2lkZS1lZmZlY3QtZnJlZSBlcnJvci1mcmVlXSA1KSNA MTEwIFJldHVybiB0IGlmIE9CSkVDVCBpcyBvbmUgb2YgdGhlIHR3byBjYW5vbmljYWwgYm9vbGVh biB2YWx1ZXM6IHQgb3IgbmlsLgpPdGhlcndpc2UsIHJldHVybiBuaWwuCgooZm4gT0JKRUNUKR8K KGRlZmFsaWFzICdib29sZWFucCAjWzI1NyAiXDIxMVwzMDA+XDIwNQcAXDMwMVwyMDciIFsobmls IHQpIHRdIDMgKCMkIC4gMTMzMjEzKV0pI0A2MyBOb24tbmlsIGlmIGFuZCBvbmx5IGlmIE9CSkVD VCBpcyBhIHNwZWNpYWwgZm9ybS4KCihmbiBPQkpFQ1QpHwooZGVmYWxpYXMgJ3NwZWNpYWwtZm9y bS1wICNbMjU3ICJcMjExOVwyMDMQAFwzMDABIVwyMDMQAFwzMDEBIVwyNjIBXDMwMgEhXDIwNRwA XDMwMwEhQVwzMDQ9XDIwNyIgW2Zib3VuZHAgaW5kaXJlY3QtZnVuY3Rpb24gc3VicnAgc3Vici1h cml0eSB1bmV2YWxsZWRdIDMgKCMkIC4gMTMzNDA5KV0pI0A2MiBOb24tbmlsIGlmIGFuZCBvbmx5 IGlmIE9CSkVDVCBpcyBhIHZhbGlkIHBsaXN0LgoKKGZuIE9CSkVDVCkfCihkZWZhbGlhcyAncGxp c3RwICNbMjU3ICJcMzAwASFcMjExXDIwNVxmAFwyMTFcMzAxXDI0NlwzMDJVXDIwNyIgW3Byb3Bl ci1saXN0LXAgMiAwXSA0ICgjJCAuIDEzMzY0NildKSNANTYgTm9uLW5pbCBpZiBhbmQgb25seSBp ZiBPQkpFQ1QgaXMgYSBtYWNyby4KCihmbiBPQkpFQ1QpHwooZGVmYWxpYXMgJ21hY3JvcCAjWzI1 NyAiXDMwMAEhXDIxMTpcMjA1HgBcMjExQFwzMDE9XDIwNh4AXDIxMVwyMTFcMjQyXDMwMj1cMjYy AVwyMDUeAFwzMDMBOFwzMDQ+XDIwNyIgW2luZGlyZWN0LWZ1bmN0aW9uIG1hY3JvIGF1dG9sb2Fk IDQgKG1hY3JvIHQpXSA1ICgjJCAuIDEzMzgxNSldKSNAMTU4IFJldHVybiBub24tbmlsIGlmIE9C SkVDVCBpcyBhIGZ1bmN0aW9uIHRoYXQgaGFzIGJlZW4gY29tcGlsZWQuCkRvZXMgbm90IGRpc3Rp bmd1aXNoIGJldHdlZW4gZnVuY3Rpb25zIGltcGxlbWVudGVkIGluIG1hY2hpbmUgY29kZQpvciBi eXRlLWNvZGUuCgooZm4gT0JKRUNUKR8KKGRlZmFsaWFzICdjb21waWxlZC1mdW5jdGlvbi1wICNb MjU3ICJcMzAwASFcMjA2CQBcMzAxASFcMjA3IiBbc3VicnAgYnl0ZS1jb2RlLWZ1bmN0aW9uLXBd IDMgKCMkIC4gMTM0MDQ0KV0pI0A4MSBSZXR1cm4gdGhlIGZpZWxkIGF0IHBvc2l0aW9uIFBPUywg dGFraW5nIHN0aWNraW5lc3MgZXRjIGludG8gYWNjb3VudC4KCihmbiBQT1MpHwooZGVmYWxpYXMg J2ZpZWxkLWF0LXBvcyAjWzI1NyAiXDMwMFwzMDECIVwzMDJcIlwyMTFcMzAzPVwyMDMUAFwzMDBc MzA0AyFTXDMwMlwiXDIwN1wyMDciIFtnZXQtY2hhci1wcm9wZXJ0eSBmaWVsZC1iZWdpbm5pbmcg ZmllbGQgYm91bmRhcnkgZmllbGQtZW5kXSA1ICgjJCAuIDEzNDMxNSldKSNANDQyIFJldHVybiB0 aGUgU0hBLTEgKFNlY3VyZSBIYXNoIEFsZ29yaXRobSkgb2YgYW4gT0JKRUNULgpPQkpFQ1QgaXMg ZWl0aGVyIGEgc3RyaW5nIG9yIGEgYnVmZmVyLiAgT3B0aW9uYWwgYXJndW1lbnRzIFNUQVJUIGFu ZApFTkQgYXJlIGNoYXJhY3RlciBwb3NpdGlvbnMgc3BlY2lmeWluZyB3aGljaCBwb3J0aW9uIG9m IE9CSkVDVCBmb3IKY29tcHV0aW5nIHRoZSBoYXNoLiAgSWYgQklOQVJZIGlzIG5vbi1uaWwsIHJl dHVybiBhIHN0cmluZyBpbiBiaW5hcnkKZm9ybS4KCk5vdGUgdGhhdCBTSEEtMSBpcyBub3QgY29s bGlzaW9uIHJlc2lzdGFudCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkCmZvciBhbnl0aGluZyBzZWN1 cml0eS1yZWxhdGVkLiAgU2VlIGBzZWN1cmUtaGFzaCcgZm9yCmFsdGVybmF0aXZlcy4KCihmbiBP QkpFQ1QgJm9wdGlvbmFsIFNUQVJUIEVORCBCSU5BUlkpHwooZGVmYWxpYXMgJ3NoYTEgI1sxMDI1 ICJcMzAwXDMwMQUFBQUlXDIwNyIgW3NlY3VyZS1oYXNoIHNoYTFdIDEwICgjJCAuIDEzNDU2OSld KSNAMjQxIFJldHVybiB0aGUgdmFsdWUgb2YgcHJvcGVydHkgUFJPUCBvZiBmdW5jdGlvbiBGLgpJ ZiBBVVRPTE9BRCBpcyBub24tbmlsIGFuZCBGIGlzIGF1dG9sb2FkZWQsIHRyeSB0byBsb2FkIGl0 CmluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBzZXQgUFJPUC4gIElmIEFVVE9MT0FEIGlzIGBtYWNy bycsIGRvIGl0IG9ubHkKaWYgaXQncyBhbiBhdXRvbG9hZGVkIG1hY3JvLgoKKGZuIEYgUFJPUCAm b3B0aW9uYWwgQVVUT0xPQUQpHwooZGVmYWxpYXMgJ2Z1bmN0aW9uLWdldCAjWzc3MCAiXDMwMAM5 XDIwMz4AAwNOXDIxMVwyNjICXDIwND4AXDMwMQQhXDIwMz4AA0sCXDIwMzcAXDIxMVwyMTFcMjQy XDMwMj1cMjYyAVwyMDM3AFwyMTFcMzAzAgYHBgZcMzA0PVwyMDUyAFwzMDQjXDIzMlwyMDM6AFwy MTFcMjYyBVwyMTBcMjAyAQBcMjA3IiBbbmlsIGZib3VuZHAgYXV0b2xvYWQgYXV0b2xvYWQtZG8t bG9hZCBtYWNyb10gMTEgKCMkIC4gMTM1MDk3KV0pI0AyMTIgUHJvY2VzcyB0ZXh0IHByb3BlcnRp ZXMgYmV0d2VlbiBTVEFSVCBhbmQgRU5ELCBpbnNlcnRlZCBmb3IgYSBgeWFuaycuClBlcmZvcm0g dGhlIGhhbmRsaW5nIHNwZWNpZmllZCBieSBgeWFuay1oYW5kbGVkLXByb3BlcnRpZXMnLCB0aGVu CnJlbW92ZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCBieSBgeWFuay1leGNsdWRlZC1wcm9wZXJ0aWVz Jy4KCihmbiBTVEFSVCBFTkQpHwooZGVmYWxpYXMgJ3JlbW92ZS15YW5rLWV4Y2x1ZGVkLXByb3Bl cnRpZXMgI1s1MTQgIlwzMDMYCVwyMTFcMjAzNABcMjExQFwyMTFAAUEFXDIxMQYGV1wyMDMrAFwz MDQBBFwiXDMwNQIFXDMwNgZcbiQDAgQDI1wyMTBcMjY2XDIwMlwyMDIOAFwyNjYDAUFcMjY2XDIw MlwyMDIDAFwyMTBcblwzMDM9XDIwM0MAXDMwNwICXDMwNiNcMjAySABcMzEwAgJcbiMpXDIwNyIg W2luaGliaXQtcmVhZC1vbmx5IHlhbmstaGFuZGxlZC1wcm9wZXJ0aWVzIHlhbmstZXhjbHVkZWQt cHJvcGVydGllcyB0IGdldC10ZXh0LXByb3BlcnR5IG5leHQtc2luZ2xlLXByb3BlcnR5LWNoYW5n ZSBuaWwgc2V0LXRleHQtcHJvcGVydGllcyByZW1vdmUtbGlzdC1vZi10ZXh0LXByb3BlcnRpZXNd IDEzICgjJCAuIDEzNTU4MildKSNAMzExIEluc2VydCBTVFJJTkcgYXQgcG9pbnQgZm9yIHRoZSBg eWFuaycgY29tbWFuZC4KClRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgaW5zZXJ0JywgZXhjZXB0IGl0 IGhvbm9ycyB0aGUgdmFyaWFibGVzCmB5YW5rLWhhbmRsZWQtcHJvcGVydGllcycgYW5kIGB5YW5r LWV4Y2x1ZGVkLXByb3BlcnRpZXMnLCBhbmQgdGhlCmB5YW5rLWhhbmRsZXInIHRleHQgcHJvcGVy dHksIGluIHRoZSB3YXkgdGhhdCBgeWFuaycgZG9lcy4KCkl0IGFsc28gcnVucyB0aGUgc3RyaW5n IHRocm91Z2ggYHlhbmstdHJhbnNmb3JtLWZ1bmN0aW9ucycuCgooZm4gU1RSSU5HKR8KKGRlZmFs aWFzICdpbnNlcnQtZm9yLXlhbmsgI1syNTcgIlwyMTFDXDMwMFwzMDFcMzAyXDMwMwRcIlwiXDIx MFwzMDRcMzA1XDMwNlwzMDcEXDI0MiNcMjExXDI2MgJcMjAzKgBcMzEwAlwyNDJcMzA2A08hXDIx MAFcMjExXDI0MgJcMzA0T1wyNDBcMjEwXDIwMgsAXDIxMFwzMTABXDI0MiFcMjA3IiBbcnVuLWhv b2std3JhcHBlZCB5YW5rLXRyYW5zZm9ybS1mdW5jdGlvbnMgbWFrZS1jbG9zdXJlICNbMjU3ICJc MzAwAVwzMDBcMjQyIVwyNDBcMjEwXDMwMVwyMDciIFtWMCBuaWxdIDQgIlxuXG4oZm4gRikiXSBu aWwgbmV4dC1zaW5nbGUtcHJvcGVydHktY2hhbmdlIDAgeWFuay1oYW5kbGVyIGluc2VydC1mb3It eWFuay0xXSA3ICgjJCAuIDEzNjE5OCldKSNANTUgSGVscGVyIGZvciBgaW5zZXJ0LWZvci15YW5r Jywgd2hpY2ggc2VlLgoKKGZuIFNUUklORykfCihkZWZhbGlhcyAnaW5zZXJ0LWZvci15YW5rLTEg I1syNTcgIlwyMTE7XDIwNVxuAFwzMDNcMzA0XDMwNQMjXDIxMUFAXDIwNhEAAWAIGFwzMDZcMzA3 EQNAXDIwMyQAA0ADIVwyMTBcMjAyJwACY1wyMTBgXDI2MgFcMzA3EFwzMTAEOFwyMDQ3AFwzMTEC AlwiXDIxMFwyMTECVlwyMDNMAFwzMTIBUyFcMjAzTABcMzEzAVMCXDMxNFwzMDckXDIxMAlcMzA3 PVwyMDNWAFwzMTUEOBFcMzE2BDhcMjA1YQBcMzE2BDhcMjExEilcMjA3IiBbaW5oaWJpdC1yZWFk LW9ubHkgeWFuay11bmRvLWZ1bmN0aW9uIHRoaXMtY29tbWFuZCBnZXQtdGV4dC1wcm9wZXJ0eSAw IHlhbmstaGFuZGxlciBuaWwgdCAyIHJlbW92ZS15YW5rLWV4Y2x1ZGVkLXByb3BlcnRpZXMgdGV4 dC1wcm9wZXJ0aWVzLWF0IHB1dC10ZXh0LXByb3BlcnR5IHJlYXItbm9uc3RpY2t5IDMgNF0gMTAg KCMkIC4gMTM2ODg3KV0pI0AyODYgSW5zZXJ0IGJlZm9yZSBwb2ludCBhIHN1YnN0cmluZyBvZiBC VUZGRVIsIHdpdGhvdXQgdGV4dCBwcm9wZXJ0aWVzLgpCVUZGRVIgbWF5IGJlIGEgYnVmZmVyIG9y IGEgYnVmZmVyIG5hbWUuCkFyZ3VtZW50cyBTVEFSVCBhbmQgRU5EIGFyZSBjaGFyYWN0ZXIgcG9z aXRpb25zIHNwZWNpZnlpbmcgdGhlIHN1YnN0cmluZy4KVGhleSBkZWZhdWx0IHRvIHRoZSB2YWx1 ZXMgb2YgKHBvaW50LW1pbikgYW5kIChwb2ludC1tYXgpIGluIEJVRkZFUi4KCihmbiBCVUZGRVIg Jm9wdGlvbmFsIFNUQVJUIEVORCkfCihkZWZhbGlhcyAnaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmct bm8tcHJvcGVydGllcyAjWzc2OSAiYFwzMDEEBAQjXDIxMFwzMDIYXDMwMwFgXDMwNCMpXDIwNyIg W2luaGliaXQtcmVhZC1vbmx5IGluc2VydC1idWZmZXItc3Vic3RyaW5nIHQgc2V0LXRleHQtcHJv cGVydGllcyBuaWxdIDggKCMkIC4gMTM3MzkxKV0pI0A0MDEgSW5zZXJ0IGJlZm9yZSBwb2ludCBh IHBhcnQgb2YgQlVGRkVSLCBzdHJpcHBpbmcgc29tZSB0ZXh0IHByb3BlcnRpZXMuCkJVRkZFUiBt YXkgYmUgYSBidWZmZXIgb3IgYSBidWZmZXIgbmFtZS4KQXJndW1lbnRzIFNUQVJUIGFuZCBFTkQg YXJlIGNoYXJhY3RlciBwb3NpdGlvbnMgc3BlY2lmeWluZyB0aGUgc3Vic3RyaW5nLgpUaGV5IGRl ZmF1bHQgdG8gdGhlIHZhbHVlcyBvZiAocG9pbnQtbWluKSBhbmQgKHBvaW50LW1heCkgaW4gQlVG RkVSLgpCZWZvcmUgaW5zZXJ0aW9uLCBwcm9jZXNzIHRleHQgcHJvcGVydGllcyBhY2NvcmRpbmcg dG8KYHlhbmstaGFuZGxlZC1wcm9wZXJ0aWVzJyBhbmQgYHlhbmstZXhjbHVkZWQtcHJvcGVydGll cycuCgooZm4gQlVGRkVSICZvcHRpb25hbCBTVEFSVCBFTkQpHwooZGVmYWxpYXMgJ2luc2VydC1i dWZmZXItc3Vic3RyaW5nLWFzLXlhbmsgI1s3NjkgImBcMzAwBAQEI1wyMTBcMzAxAWBcIlwyMDci IFtpbnNlcnQtYnVmZmVyLXN1YnN0cmluZyByZW1vdmUteWFuay1leGNsdWRlZC1wcm9wZXJ0aWVz XSA4ICgjJCAuIDEzNzg2MildKSNAMjA4IEluc2VydCB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJl bnQgYnVmZmVyIGludG8gQlVGRkVSLgpJZiBTVEFSVC9FTkQsIG9ubHkgaW5zZXJ0IHRoYXQgcmVn aW9uIGZyb20gdGhlIGN1cnJlbnQgYnVmZmVyLgpQb2ludCBpbiBCVUZGRVIgd2lsbCBiZSBwbGFj ZWQgYWZ0ZXIgdGhlIGluc2VydGVkIHRleHQuCgooZm4gQlVGRkVSICZvcHRpb25hbCBTVEFSVCBF TkQpHwooZGVmYWxpYXMgJ2luc2VydC1pbnRvLWJ1ZmZlciAjWzc2OSAicHIDcVwyMTBcMzAwAQQE IylcMjA3IiBbaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmddIDggKCMkIC4gMTM4NDIxKV0pI0AzMzYg UmVwbGFjZSBTVFJJTkcgd2l0aCBSRVBMQUNFTUVOVCBpbiB0aGUgcmVnaW9uIGZyb20gU1RBUlQg dG8gRU5ELgpUaGUgbnVtYmVyIG9mIHJlcGxhY2VkIG9jY3VycmVuY2VzIGFyZSByZXR1cm5lZCwg b3IgbmlsIGlmIFNUUklORwpkb2Vzbid0IGV4aXN0IGluIHRoZSByZWdpb24uCgpJZiBTVEFSVCBp cyBuaWwsIHVzZSB0aGUgY3VycmVudCBwb2ludC4gIElmIEVORCBpcyBuaWwsIHVzZSBgcG9pbnQt bWF4Jy4KCkNvbXBhcmlzb25zIGFuZCByZXBsYWNlbWVudHMgYXJlIGRvbmUgd2l0aCBmaXhlZCBj YXNlLgoKKGZuIFNUUklORyBSRVBMQUNFTUVOVCAmb3B0aW9uYWwgU1RBUlQgRU5EKR8KKGRlZmFs aWFzICdyZXBsYWNlLXN0cmluZy1pbi1yZWdpb24gI1sxMDI2ICIBXDIwMxEAAWVXXDIwMxQAXDMw MVwzMDIhXDIxMFwyMDIUAGBcMjYyAlwyMTFcMjAzJQBcMjExZFZcMjAzKABcMzAxXDMwMyFcMjEw XDIwMigAZFwyNjIBXDIxMgFiXDIxMFwyMTQBAX1cMjEwXDMwNFwzMDUYXDMwNgVcMzA1XDMwNyNc MjAzTABcMzA0XDIyNFwzMDRcMjI1fFwyMTADY1wyMTBcMjExVFwyNjIBXDIwMjQAXDIxMVwzMDRV P1wyMDVUAFwyMTErXDIwNyIgW2Nhc2UtZm9sZC1zZWFyY2ggZXJyb3IgIlN0YXJ0IGJlZm9yZSBz dGFydCBvZiBidWZmZXIiICJFbmQgYWZ0ZXIgZW5kIG9mIGJ1ZmZlciIgMCBuaWwgc2VhcmNoLWZv cndhcmQgdF0gOSAoIyQgLiAxMzg3MzgpXSkjQDYxNyBSZXBsYWNlIFJFR0VYUCB3aXRoIFJFUExB Q0VNRU5UIGluIHRoZSByZWdpb24gZnJvbSBTVEFSVCB0byBFTkQuClRoZSBudW1iZXIgb2YgcmVw bGFjZWQgb2NjdXJyZW5jZXMgYXJlIHJldHVybmVkLCBvciBuaWwgaWYgUkVHRVhQCmRvZXNuJ3Qg ZXhpc3QgaW4gdGhlIHJlZ2lvbi4KCklmIFNUQVJUIGlzIG5pbCwgdXNlIHRoZSBjdXJyZW50IHBv aW50LiAgSWYgRU5EIGlzIG5pbCwgdXNlIGBwb2ludC1tYXgnLgoKQ29tcGFyaXNvbnMgYW5kIHJl cGxhY2VtZW50cyBhcmUgZG9uZSB3aXRoIGZpeGVkIGNhc2UuCgpSRVBMQUNFTUVOVCBjYW4gdXNl IHRoZSBmb2xsb3dpbmcgc3BlY2lhbCBlbGVtZW50czoKCiAgYFwmJyBpbiBORVdURVhUIG1lYW5z IHN1YnN0aXR1dGUgb3JpZ2luYWwgbWF0Y2hlZCB0ZXh0LgogIGBcTicgbWVhbnMgc3Vic3RpdHV0 ZSB3aGF0IG1hdGNoZWQgdGhlIE50aCBgXCguLi5cKScuCiAgICAgICBJZiBOdGggcGFyZW5zIGRp ZG4ndCBtYXRjaCwgc3Vic3RpdHV0ZSBub3RoaW5nLgogIGBcXCcgbWVhbnMgaW5zZXJ0IG9uZSBg XCcuCiAgYFw/JyBpcyB0cmVhdGVkIGxpdGVyYWxseS4KCihmbiBSRUdFWFAgUkVQTEFDRU1FTlQg Jm9wdGlvbmFsIFNUQVJUIEVORCkfCihkZWZhbGlhcyAncmVwbGFjZS1yZWdleHAtaW4tcmVnaW9u ICNbMTAyNiAiAVwyMDMRAAFlV1wyMDMUAFwzMDFcMzAyIVwyMTBcMjAyFABgXDI2MgJcMjExXDIw MyUAXDIxMWRWXDIwMygAXDMwMVwzMDMhXDIxMFwyMDIoAGRcMjYyAVwyMTIBYlwyMTBcMjE0AQF9 XDIxMFwzMDRcMzA1GFwzMDYFXDMwNVwzMDcjXDIwM0gAXDMxMARcMzA3XCJcMjEwXDIxMVRcMjYy AVwyMDI0AFwyMTFcMzA0VT9cMjA1UABcMjExK1wyMDciIFtjYXNlLWZvbGQtc2VhcmNoIGVycm9y ICJTdGFydCBiZWZvcmUgc3RhcnQgb2YgYnVmZmVyIiAiRW5kIGFmdGVyIGVuZCBvZiBidWZmZXIi IDAgbmlsIHJlLXNlYXJjaC1mb3J3YXJkIHQgcmVwbGFjZS1tYXRjaF0gOSAoIyQgLiAxMzk0NTQp XSkjQDE3NiBJZiBgZm9udC1sb2NrLWRlZmF1bHRzJyBpcyBuaWwsIGFwcGx5IEZBQ0UgYXMgYSBg ZmFjZScgcHJvcGVydHkuClNUQVJUIGFuZCBFTkQgZGVub3RlIHRoZSBzdGFydCBhbmQgZW5kIG9m IHRoZSB0ZXh0IHRvIGFjdCBvbi4KRG8gbm90aGluZyBpZiBGQUNFIGlzIG5pbC4KCihmbiBGQUNF IFNUQVJUIEVORCkfCihkZWZhbGlhcyAneWFuay1oYW5kbGUtZm9udC1sb2NrLWZhY2UtcHJvcGVy dHkgI1s3NzEgIgJcMjA1EAAIP1wyMDUQAFwzMDECAlwzMDIGBiRcMjA3IiBbZm9udC1sb2NrLWRl ZmF1bHRzIHB1dC10ZXh0LXByb3BlcnR5IGZhY2VdIDggKCMkIC4gMTQwNDU2KV0pI0A5NSBBcHBs eSBwcm9wZXJ0eSBjYXRlZ29yeSBDQVRFR09SWSdzIHByb3BlcnRpZXMgYmV0d2VlbiBTVEFSVCBh bmQgRU5ELgoKKGZuIENBVEVHT1JZIFNUQVJUIEVORCkfCihkZWZhbGlhcyAneWFuay1oYW5kbGUt Y2F0ZWdvcnktcHJvcGVydHkgI1s3NzEgIgJcMjA1KgABXDIxMQJXXDIwNSgAXDMwMAFcMzAxBCNc MzAyAiFcMzAzAwNcMzA0BgkhI1wyMTBcMzA1AwMDI1wyMTABXDI2NlwyMDNcMjAyBQBcMjYyAVwy MDciIFtuZXh0LXByb3BlcnR5LWNoYW5nZSBuaWwgdGV4dC1wcm9wZXJ0aWVzLWF0IHNldC10ZXh0 LXByb3BlcnRpZXMgc3ltYm9sLXBsaXN0IGFkZC10ZXh0LXByb3BlcnRpZXNdIDExICgjJCAuIDE0 MDc4NildKSNANDg0IFN0YXJ0IGEgcHJvZ3JhbSBpbiBhIHN1YnByb2Nlc3MuICBSZXR1cm4gdGhl IHByb2Nlc3Mgb2JqZWN0IGZvciBpdC4KTkFNRSBpcyBuYW1lIGZvciBwcm9jZXNzLiAgSXQgaXMg bW9kaWZpZWQgaWYgbmVjZXNzYXJ5IHRvIG1ha2UgaXQgdW5pcXVlLgpCVUZGRVIgaXMgdGhlIGJ1 ZmZlciAob3IgYnVmZmVyIG5hbWUpIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9jZXNzLgogUHJv Y2VzcyBvdXRwdXQgZ29lcyBhdCBlbmQgb2YgdGhhdCBidWZmZXIsIHVubGVzcyB5b3Ugc3BlY2lm eQogYW4gb3V0cHV0IHN0cmVhbSBvciBmaWx0ZXIgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBvdXRw dXQuCiBCVUZGRVIgbWF5IGJlIGFsc28gbmlsLCBtZWFuaW5nIHRoYXQgdGhpcyBwcm9jZXNzIGlz IG5vdCBhc3NvY2lhdGVkCiB3aXRoIGFueSBidWZmZXIuCkNPTU1BTkQgaXMgdGhlIHNoZWxsIGNv bW1hbmQgdG8gcnVuLgoKKGZuIE5BTUUgQlVGRkVSIENPTU1BTkQpHwooZGVmYWxpYXMgJ3N0YXJ0 LXByb2Nlc3Mtc2hlbGwtY29tbWFuZCAjWzc3MSAiXDMwMgMDCAkFJVwyMDciIFtzaGVsbC1maWxl LW5hbWUgc2hlbGwtY29tbWFuZC1zd2l0Y2ggc3RhcnQtcHJvY2Vzc10gOSAoIyQgLiAxNDExNDUp XSkjQDE2OSBTdGFydCBhIHByb2dyYW0gaW4gYSBzdWJwcm9jZXNzLiAgUmV0dXJuIHRoZSBwcm9j ZXNzIG9iamVjdCBmb3IgaXQuClNpbWlsYXIgdG8gYHN0YXJ0LXByb2Nlc3Mtc2hlbGwtY29tbWFu ZCcsIGJ1dCBjYWxscyBgc3RhcnQtZmlsZS1wcm9jZXNzJy4KCihmbiBOQU1FIEJVRkZFUiBDT01N QU5EKR8KKGRlZmFsaWFzICdzdGFydC1maWxlLXByb2Nlc3Mtc2hlbGwtY29tbWFuZCAjWzc3MSAi XDMwMFwzMDFcMzAyAwUGByQhXDIwNyIgW3dpdGgtY29ubmVjdGlvbi1sb2NhbC12YXJpYWJsZXMt MSBtYWtlLWNsb3N1cmUgI1swICJcMzA1XDMwMlwzMDELXGZcMzAwJVwyMDciIFtWMCBWMSBWMiBz aGVsbC1maWxlLW5hbWUgc2hlbGwtY29tbWFuZC1zd2l0Y2ggc3RhcnQtZmlsZS1wcm9jZXNzXSA2 XV0gOSAoIyQgLiAxNDE3NjcpXSkjQDEyNDQgRXhlY3V0ZSB0aGUgc2hlbGwgY29tbWFuZCBDT01N QU5EIHN5bmNocm9ub3VzbHkgaW4gc2VwYXJhdGUgcHJvY2Vzcy4KVGhlIHJlbWFpbmluZyBhcmd1 bWVudHMgYXJlIG9wdGlvbmFsLgpUaGUgcHJvZ3JhbSdzIGlucHV0IGNvbWVzIGZyb20gZmlsZSBJ TkZJTEUgKG5pbCBtZWFucyBgL2Rldi9udWxsJykuCkluc2VydCBvdXRwdXQgaW4gQlVGRkVSIGJl Zm9yZSBwb2ludDsgdCBtZWFucyBjdXJyZW50IGJ1ZmZlcjsKIG5pbCBmb3IgQlVGRkVSIG1lYW5z IGRpc2NhcmQgaXQ7IDAgbWVhbnMgZGlzY2FyZCBhbmQgZG9uJ3Qgd2FpdC4KQlVGRkVSIGNhbiBh bHNvIGhhdmUgdGhlIGZvcm0gKFJFQUwtQlVGRkVSIFNUREVSUi1GSUxFKTsgaW4gdGhhdCBjYXNl LApSRUFMLUJVRkZFUiBzYXlzIHdoYXQgdG8gZG8gd2l0aCBzdGFuZGFyZCBvdXRwdXQsIGFzIGFi b3ZlLAp3aGlsZSBTVERFUlItRklMRSBzYXlzIHdoYXQgdG8gZG8gd2l0aCBzdGFuZGFyZCBlcnJv ciBpbiB0aGUgY2hpbGQuClNUREVSUi1GSUxFIG1heSBiZSBuaWwgKGRpc2NhcmQgc3RhbmRhcmQg ZXJyb3Igb3V0cHV0KSwKdCAobWl4IGl0IHdpdGggb3JkaW5hcnkgb3V0cHV0KSwgb3IgYSBmaWxl IG5hbWUgc3RyaW5nLgoKRm91cnRoIGFyZyBESVNQTEFZIG5vbi1uaWwgbWVhbnMgcmVkaXNwbGF5 IGJ1ZmZlciBhcyBvdXRwdXQgaXMgaW5zZXJ0ZWQuCldpbGRjYXJkcyBhbmQgcmVkaXJlY3Rpb24g YXJlIGhhbmRsZWQgYXMgdXN1YWwgaW4gdGhlIHNoZWxsLgoKSWYgQlVGRkVSIGlzIDAsIGBjYWxs LXByb2Nlc3Mtc2hlbGwtY29tbWFuZCcgcmV0dXJucyBpbW1lZGlhdGVseSB3aXRoIHZhbHVlIG5p bC4KT3RoZXJ3aXNlIGl0IHdhaXRzIGZvciBDT01NQU5EIHRvIHRlcm1pbmF0ZSBhbmQgcmV0dXJu cyBhIG51bWVyaWMgZXhpdApzdGF0dXMgb3IgYSBzaWduYWwgZGVzY3JpcHRpb24gc3RyaW5nLgpJ ZiB5b3UgcXVpdCwgdGhlIHByb2Nlc3MgaXMga2lsbGVkIHdpdGggU0lHSU5ULCBvciBTSUdLSUxM IGlmIHlvdSBxdWl0IGFnYWluLgoKQW4gb2xkIGNhbGxpbmcgY29udmVudGlvbiBhY2NlcHRlZCBh bnkgbnVtYmVyIG9mIGFyZ3VtZW50cyBhZnRlciBESVNQTEFZLAp3aGljaCB3ZXJlIGp1c3QgY29u Y2F0ZW5hdGVkIHRvIENPTU1BTkQuICBUaGlzIGlzIHN0aWxsIHN1cHBvcnRlZCBidXQgc3Ryb25n bHkKZGlzY291cmFnZWQuCgooZm4gQ09NTUFORCAmb3B0aW9uYWwgSU5GSUxFIEJVRkZFUiBESVNQ TEFZICZyZXN0IEFSR1MpHwooZGVmYWxpYXMgJ2NhbGwtcHJvY2Vzcy1zaGVsbC1jb21tYW5kICNb MTE1MyAiXDMwMggFBQUJXDMwM1wzMDQGXGYGCUJcMzA1IyYGXDIwNyIgW3NoZWxsLWZpbGUtbmFt ZSBzaGVsbC1jb21tYW5kLXN3aXRjaCBjYWxsLXByb2Nlc3MgbWFwY29uY2F0IGlkZW50aXR5ICIg Il0gMTUgKCMkIC4gMTQyMTg1KV0pCihzZXQtYWR2ZXJ0aXNlZC1jYWxsaW5nLWNvbnZlbnRpb24g J2NhbGwtcHJvY2Vzcy1zaGVsbC1jb21tYW5kICcoY29tbWFuZCAmb3B0aW9uYWwgaW5maWxlIGJ1 ZmZlciBkaXNwbGF5KSAiMjQuNSIpI0AxNzYgUHJvY2VzcyBmaWxlcyBzeW5jaHJvbm91c2x5IGlu IGEgc2VwYXJhdGUgcHJvY2Vzcy4KU2ltaWxhciB0byBgY2FsbC1wcm9jZXNzLXNoZWxsLWNvbW1h bmQnLCBidXQgY2FsbHMgYHByb2Nlc3MtZmlsZScuCgooZm4gQ09NTUFORCAmb3B0aW9uYWwgSU5G SUxFIEJVRkZFUiBESVNQTEFZICZyZXN0IEFSR1MpHwooZGVmYWxpYXMgJ3Byb2Nlc3MtZmlsZS1z aGVsbC1jb21tYW5kICNbMTE1MyAiXDMwMFwzMDFcMzAyAwUGBwYJBgsmBiFcMjA3IiBbd2l0aC1j b25uZWN0aW9uLWxvY2FsLXZhcmlhYmxlcy0xIG1ha2UtY2xvc3VyZSAjWzAgIlwzMDYNXDMwM1wz MDJcMzAxDlxuXDMwN1wzMTBcMzA0XDMwMEJcMzExIyYGXDIwNyIgW1YwIFYxIFYyIFYzIFY0IHNo ZWxsLWZpbGUtbmFtZSBwcm9jZXNzLWZpbGUgbWFwY29uY2F0IGlkZW50aXR5ICIgIiBzaGVsbC1j b21tYW5kLXN3aXRjaF0gMTBdXSAxMyAoIyQgLiAxNDM3MjQpXSkKKHNldC1hZHZlcnRpc2VkLWNh bGxpbmctY29udmVudGlvbiAncHJvY2Vzcy1maWxlLXNoZWxsLWNvbW1hbmQgJyhjb21tYW5kICZv cHRpb25hbCBpbmZpbGUgYnVmZmVyIGRpc3BsYXkpICIyNC41IikjQDEwMjMgU2VuZCB0ZXh0IGZy b20gU1RBUlQgdG8gRU5EIGFzIGlucHV0IHRvIGFuIGluZmVyaW9yIHNoZWxsIHJ1bm5pbmcgQ09N TUFORC4KRGVsZXRlIHRoZSB0ZXh0IGlmIGZvdXJ0aCBhcmcgREVMRVRFIGlzIG5vbi1uaWwuCgpJ bnNlcnQgb3V0cHV0IGluIEJVRkZFUiBiZWZvcmUgcG9pbnQ7IHQgbWVhbnMgY3VycmVudCBidWZm ZXI7IG5pbCBmb3IKIEJVRkZFUiBtZWFucyBkaXNjYXJkIGl0OyAwIG1lYW5zIGRpc2NhcmQgYW5k IGRvbid0IHdhaXQ7IGFuZCBgKDpmaWxlCiBGSUxFKScsIHdoZXJlIEZJTEUgaXMgYSBmaWxlIG5h bWUgc3RyaW5nLCBtZWFucyB0aGF0IGl0IHNob3VsZCBiZQogd3JpdHRlbiB0byB0aGF0IGZpbGUg KGlmIHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzIGl0IGlzIG92ZXJ3cml0dGVuKS4KQlVGRkVSIGNh biBhbHNvIGhhdmUgdGhlIGZvcm0gKFJFQUwtQlVGRkVSIFNUREVSUi1GSUxFKTsgaW4gdGhhdCBj YXNlLApSRUFMLUJVRkZFUiBzYXlzIHdoYXQgdG8gZG8gd2l0aCBzdGFuZGFyZCBvdXRwdXQsIGFz IGFib3ZlLAp3aGlsZSBTVERFUlItRklMRSBzYXlzIHdoYXQgdG8gZG8gd2l0aCBzdGFuZGFyZCBl cnJvciBpbiB0aGUgY2hpbGQuClNUREVSUi1GSUxFIG1heSBiZSBuaWwgKGRpc2NhcmQgc3RhbmRh cmQgZXJyb3Igb3V0cHV0KSwKdCAobWl4IGl0IHdpdGggb3JkaW5hcnkgb3V0cHV0KSwgb3IgYSBm aWxlIG5hbWUgc3RyaW5nLgoKSWYgQlVGRkVSIGlzIDAsIGBjYWxsLXNoZWxsLXJlZ2lvbicgcmV0 dXJucyBpbW1lZGlhdGVseSB3aXRoIHZhbHVlIG5pbC4KT3RoZXJ3aXNlIGl0IHdhaXRzIGZvciBD T01NQU5EIHRvIHRlcm1pbmF0ZQphbmQgcmV0dXJucyBhIG51bWVyaWMgZXhpdCBzdGF0dXMgb3Ig YSBzaWduYWwgZGVzY3JpcHRpb24gc3RyaW5nLgpJZiB5b3UgcXVpdCwgdGhlIHByb2Nlc3MgaXMg a2lsbGVkIHdpdGggU0lHSU5ULCBvciBTSUdLSUxMIGlmIHlvdSBxdWl0IGFnYWluLgoKKGZuIFNU QVJUIEVORCBDT01NQU5EICZvcHRpb25hbCBERUxFVEUgQlVGRkVSKR8KKGRlZmFsaWFzICdjYWxs LXNoZWxsLXJlZ2lvbiAjWzEyODMgIlwzMDIFBQgFBVwzMDMJBlxuJghcMjA3IiBbc2hlbGwtZmls ZS1uYW1lIHNoZWxsLWNvbW1hbmQtc3dpdGNoIGNhbGwtcHJvY2Vzcy1yZWdpb24gbmlsXSAxNCAo IyQgLiAxNDQzMTIpXSkjQDIwNiBFdmFsdWF0ZSBCT0RZIHdpdGggbW91c2UgbW92ZW1lbnQgZXZl bnRzIGVuYWJsZWQuCldpdGhpbiBhIGB0cmFjay1tb3VzZScgZm9ybSwgbW91c2UgbW90aW9uIGdl bmVyYXRlcyBpbnB1dCBldmVudHMgdGhhdAogeW91IGNhbiByZWFkIHdpdGggYHJlYWQtZXZlbnQn LgpOb3JtYWxseSwgbW91c2UgbW90aW9uIGlzIGlnbm9yZWQuCgooZm4gJnJlc3QgQk9EWSkfCihk ZWZhbGlhcyAndHJhY2stbW91c2UgJyhtYWNybyAuICNbMTI4ICJcMzAwXDMwMVwzMDIDQkJEXDIw NyIgW2ludGVybmFsLS10cmFjay1tb3VzZSBsYW1iZGEgbmlsXSA1ICgjJCAuIDE0NTQ4NCldKSkK KGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMjEwXDMwNFwzMDFcMzA1XDMwNiNcMzAwXDIw NyIgW3B1dCB0cmFjay1tb3VzZSBlZGVidWctZm9ybS1zcGVjIChkZWYtYm9keSkgZnVuY3Rpb24t cHV0IGxpc3AtaW5kZW50LWZ1bmN0aW9uIDBdIDQpI0AyNTUgRXhlY3V0ZSB0aGUgZm9ybXMgaW4g Qk9EWSB3aXRoIEJVRkZFUi1PUi1OQU1FIHRlbXBvcmFyaWx5IGN1cnJlbnQuCkJVRkZFUi1PUi1O QU1FIG11c3QgYmUgYSBidWZmZXIgb3IgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgYnVmZmVyLgpU aGUgdmFsdWUgcmV0dXJuZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSBsYXN0IGZvcm0gaW4gQk9EWS4g IFNlZQphbHNvIGB3aXRoLXRlbXAtYnVmZmVyJy4KCihmbiBCVUZGRVItT1ItTkFNRSAmcmVzdCBC T0RZKR8KKGRlZmFsaWFzICd3aXRoLWN1cnJlbnQtYnVmZmVyICcobWFjcm8gLiAjWzM4NSAiXDMw MFwzMDEDRAJCQlwyMDciIFtzYXZlLWN1cnJlbnQtYnVmZmVyIHNldC1idWZmZXJdIDUgKCMkIC4g MTQ1OTU2KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYj XDIwNyIgW2Z1bmN0aW9uLXB1dCB3aXRoLWN1cnJlbnQtYnVmZmVyIGxpc3AtaW5kZW50LWZ1bmN0 aW9uIDEgcHV0IGVkZWJ1Zy1mb3JtLXNwZWMgdF0gNSkjQDE1IAoKKGZuIFdJTkRPVykfCihkZWZh bGlhcyAnaW50ZXJuYWwtLWJlZm9yZS13aXRoLXNlbGVjdGVkLXdpbmRvdyAjWzI1NyAiXDMwMAEh AVwzMDEgXDMwMiADPT9cMjA1EQBcMzAzAyFcMzAyIAQ9P1wyMDUcAFwzMDQEIUZcMjA3IiBbd2lu ZG93LWZyYW1lIHNlbGVjdGVkLXdpbmRvdyBzZWxlY3RlZC1mcmFtZSBmcmFtZS1zZWxlY3RlZC13 aW5kb3cgdHR5LXRvcC1mcmFtZV0gNyAoIyQgLiAxNDY0NzApXSkjQDE0IAoKKGZuIFNUQVRFKR8K KGRlZmFsaWFzICdpbnRlcm5hbC0tYWZ0ZXItd2l0aC1zZWxlY3RlZC13aW5kb3cgI1syNTcgIlwz MDBcMzAxAjghXDIwMycAXDMwMlwzMDECOFwzMDNcIlwyMTBcMzA0XDMwNQI4IVwyMDMnAFwzMDYg XDMwNQI4PVwyMDQnAFwzMDdcMzA1AjhcMzAzXCJcMjEwXDMwMAFBQCFcMjA1NQBcMzAyAUFAXDMw M1wiXDIwNyIgW3dpbmRvdy1saXZlLXAgMiBzZWxlY3Qtd2luZG93IG5vcmVjb3JkIGZyYW1lLWxp dmUtcCAzIHR0eS10b3AtZnJhbWUgc2VsZWN0LWZyYW1lXSA0ICgjJCAuIDE0NjcwNCldKSNAMjIx IENyZWF0ZSBhbmQgcmV0dXJuIGEgYnVmZmVyIHdpdGggYSBuYW1lIGJhc2VkIG9uIE5BTUUuCkNo b29zZSB0aGUgYnVmZmVyJ3MgbmFtZSB1c2luZyBgZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lJy4K U2VlIGBnZXQtYnVmZmVyLWNyZWF0ZScgZm9yIHRoZSBtZWFuaW5nIG9mIElOSElCSVQtQlVGRkVS LUhPT0tTLgoKKGZuIE5BTUUgJm9wdGlvbmFsIElOSElCSVQtQlVGRkVSLUhPT0tTKR8KKGRlZmFs aWFzICdnZW5lcmF0ZS1uZXctYnVmZmVyICNbNTEzICJcMzAwXDMwMQMhAlwiXDIwNyIgW2dldC1i dWZmZXItY3JlYXRlIGdlbmVyYXRlLW5ldy1idWZmZXItbmFtZV0gNSAoIyQgLiAxNDcwMDQpXSkj QDc1OSBFeGVjdXRlIHRoZSBmb3JtcyBpbiBCT0RZIHdpdGggV0lORE9XIGFzIHRoZSBzZWxlY3Rl ZCB3aW5kb3cuClRoZSB2YWx1ZSByZXR1cm5lZCBpcyB0aGUgdmFsdWUgb2YgdGhlIGxhc3QgZm9y bSBpbiBCT0RZLgoKVGhpcyBtYWNybyBzYXZlcyBhbmQgcmVzdG9yZXMgdGhlIHNlbGVjdGVkIHdp bmRvdywgYXMgd2VsbCBhcyB0aGUKc2VsZWN0ZWQgd2luZG93IG9mIGVhY2ggZnJhbWUuICBJdCBk b2VzIG5vdCBjaGFuZ2UgdGhlIG9yZGVyIG9mCnJlY2VudGx5IHNlbGVjdGVkIHdpbmRvd3MuICBJ ZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB3aW5kb3cgb2YKc29tZSBmcmFtZSBpcyBubyBsb25n ZXIgbGl2ZSBhdCB0aGUgZW5kIG9mIEJPRFksIHRoYXQgZnJhbWUncwpzZWxlY3RlZCB3aW5kb3cg aXMgbGVmdCBhbG9uZS4gIElmIHRoZSBzZWxlY3RlZCB3aW5kb3cgaXMgbm8KbG9uZ2VyIGxpdmUs IHRoZW4gd2hhdGV2ZXIgd2luZG93IGlzIHNlbGVjdGVkIGF0IHRoZSBlbmQgb2YgQk9EWQpyZW1h aW5zIHNlbGVjdGVkLgoKVGhpcyBtYWNybyB1c2VzIGBzYXZlLWN1cnJlbnQtYnVmZmVyJyB0byBz YXZlIGFuZCByZXN0b3JlIHRoZQpjdXJyZW50IGJ1ZmZlciwgc2luY2Ugb3RoZXJ3aXNlIGl0cyBu b3JtYWwgb3BlcmF0aW9uIGNvdWxkCnBvdGVudGlhbGx5IG1ha2UgYSBkaWZmZXJlbnQgYnVmZmVy IGN1cnJlbnQuICBJdCBkb2VzIG5vdCBhbHRlcgp0aGUgYnVmZmVyIGxpc3Qgb3JkZXJpbmcuCgoo Zm4gV0lORE9XICZyZXN0IEJPRFkpHwooZGVmYWxpYXMgJ3dpdGgtc2VsZWN0ZWQtd2luZG93ICco bWFjcm8gLiAjWzM4NSAiXDMwMFwzMDFcMzAyBEREQ1wzMDNcMzA0XDMwNVwzMDYGBkJCXDMwN0JC REVcMjA3IiBbbGV0IHNhdmUtc2VsZWN0ZWQtd2luZG93LS1zdGF0ZSBpbnRlcm5hbC0tYmVmb3Jl LXdpdGgtc2VsZWN0ZWQtd2luZG93IHNhdmUtY3VycmVudC1idWZmZXIgdW53aW5kLXByb3RlY3Qg cHJvZ24gKHNlbGVjdC13aW5kb3cgKGNhciBzYXZlLXNlbGVjdGVkLXdpbmRvdy0tc3RhdGUpICdu b3JlY29yZCkgKChpbnRlcm5hbC0tYWZ0ZXItd2l0aC1zZWxlY3RlZC13aW5kb3cgc2F2ZS1zZWxl Y3RlZC13aW5kb3ctLXN0YXRlKSldIDkgKCMkIC4gMTQ3MzUwKV0pKQooYnl0ZS1jb2RlICJcMzAw XDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCB3aXRoLXNl bGVjdGVkLXdpbmRvdyBsaXNwLWluZGVudC1mdW5jdGlvbiAxIHB1dCBlZGVidWctZm9ybS1zcGVj IHRdIDUpI0AyOTIgRXhlY3V0ZSB0aGUgZm9ybXMgaW4gQk9EWSB3aXRoIEZSQU1FIGFzIHRoZSBz ZWxlY3RlZCBmcmFtZS4KVGhlIHZhbHVlIHJldHVybmVkIGlzIHRoZSB2YWx1ZSBvZiB0aGUgbGFz dCBmb3JtIGluIEJPRFkuCgpUaGlzIG1hY3JvIHNhdmVzIGFuZCByZXN0b3JlcyB0aGUgc2VsZWN0 ZWQgZnJhbWUsIGFuZCBjaGFuZ2VzIHRoZQpvcmRlciBvZiBuZWl0aGVyIHRoZSByZWNlbnRseSBz ZWxlY3RlZCB3aW5kb3dzIG5vciB0aGUgYnVmZmVycyBpbgp0aGUgYnVmZmVyIGxpc3QuCgooZm4g RlJBTUUgJnJlc3QgQk9EWSkfCihkZWZhbGlhcyAnd2l0aC1zZWxlY3RlZC1mcmFtZSAnKG1hY3Jv IC4gI1szODUgIlwzMDBcMzAxIVwzMDBcMzAyIVwzMDMCXDMwNEICXDMwNUJEXDMwNlwzMDdcMzEw BghcMzExQkIGB0JCXDMxMlwzMTMGB0RcMzEwBghcMzE0QkJFXDMxMlwzMTUGB0RcMzE2BghERUZF XDIwNyIgW21ha2Utc3ltYm9sICJvbGQtZnJhbWUiICJvbGQtYnVmZmVyIiBsZXQgKChzZWxlY3Rl ZC1mcmFtZSkpICgoY3VycmVudC1idWZmZXIpKSB1bndpbmQtcHJvdGVjdCBwcm9nbiBzZWxlY3Qt ZnJhbWUgKCdub3JlY29yZCkgd2hlbiBmcmFtZS1saXZlLXAgKCdub3JlY29yZCkgYnVmZmVyLWxp dmUtcCBzZXQtYnVmZmVyXSAxMyAoIyQgLiAxNDg2MTEpXSkpCihieXRlLWNvZGUgIlwzMDBcMzAx XDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IHdpdGgtc2VsZWN0 ZWQtZnJhbWUgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMSBwdXQgZWRlYnVnLWZvcm0tc3BlYyB0XSA1 KSNANTkwIEV4ZWN1dGUgQk9EWSwgdGhlbiByZXN0b3JlIHByZXZpb3VzIHdpbmRvdyBjb25maWd1 cmF0aW9uLgpUaGlzIG1hY3JvIHNhdmVzIHRoZSB3aW5kb3cgY29uZmlndXJhdGlvbiBvbiB0aGUg c2VsZWN0ZWQgZnJhbWUsCmV4ZWN1dGVzIEJPRFksIHRoZW4gY2FsbHMgYHNldC13aW5kb3ctY29u ZmlndXJhdGlvbicgdG8gcmVzdG9yZQp0aGUgc2F2ZWQgd2luZG93IGNvbmZpZ3VyYXRpb24uICBU aGUgcmV0dXJuIHZhbHVlIGlzIHRoZSBsYXN0CmZvcm0gaW4gQk9EWS4gIFRoZSB3aW5kb3cgY29u ZmlndXJhdGlvbiBpcyBhbHNvIHJlc3RvcmVkIGlmIEJPRFkKZXhpdHMgbm9ubG9jYWxseS4KCkJF V0FSRTogTW9zdCB1c2VzIG9mIHRoaXMgbWFjcm8gaW50cm9kdWNlIGJ1Z3MuCkUuZy4gaXQgc2hv dWxkIG5vdCBiZSB1c2VkIHRvIHRyeSBhbmQgcHJldmVudCBzb21lIGNvZGUgZnJvbSBvcGVuaW5n CmEgbmV3IHdpbmRvdywgc2luY2UgdGhhdCB3aW5kb3cgbWF5IHNvbWV0aW1lcyBhcHBlYXIgaW4g YW5vdGhlciBmcmFtZSwKaW4gd2hpY2ggY2FzZSBgc2F2ZS13aW5kb3ctZXhjdXJzaW9uJyBjYW5u b3QgaGVscC4KCihmbiAmcmVzdCBCT0RZKR8KKGRlZmFsaWFzICdzYXZlLXdpbmRvdy1leGN1cnNp b24gJyhtYWNybyAuICNbMTI4ICJcMzAwXDMwMSFcMzAyAVwzMDNCQ1wzMDRcMzA1BUJcMzA2BURF RVwyMDciIFttYWtlLXN5bWJvbCAid2NvbmZpZyIgbGV0ICgoY3VycmVudC13aW5kb3ctY29uZmln dXJhdGlvbikpIHVud2luZC1wcm90ZWN0IHByb2duIHNldC13aW5kb3ctY29uZmlndXJhdGlvbl0g OCAoIyQgLiAxNDk0MDQpXSkpCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFc MzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IHNhdmUtd2luZG93LWV4Y3Vyc2lvbiBsaXNwLWlu ZGVudC1mdW5jdGlvbiAwIHB1dCBlZGVidWctZm9ybS1zcGVjIHRdIDUpI0A2NiBJbnRlcm5hbCBm dW5jdGlvbiBmb3IgYHdpdGgtb3V0cHV0LXRvLXRlbXAtYnVmZmVyJy4KCihmbiBCVUZGRVIpHwoo ZGVmYWxpYXMgJ2ludGVybmFsLXRlbXAtb3V0cHV0LWJ1ZmZlci1zaG93ICNbMjU3ICJyXDIxMXFc MjEwXDMwNFwzMDUhXDIxMGViKVwyMTAIXDIwMxcACAEhXDIxMFwyMDJ1AHJcMjExcVwyMTAJXDMw Nj1cMjA0KwAJXDMwNz1cMjAzLwBcblwyMDMvAFwzMTBcMjAyMAAJGVwzMTEBISlcMjExXDIwNTwA XDMxMgEhAVwyMDNyAFwyMTFcMzEzID1cMjA0SwBcMzE0ASFcMjEwARNcMzE1AlwzMTZcIlwyMTBc MzE3AmVcMzEwI1wyMTBcMzIwAmVcIlwyMTBcMzIxAiFyXDMyMlwzMjMCXCJcMjE2XDMyNAFAXDMy NVwiXDIxMFwzMjZcMzI3ISpcMjY2AilcMjY2AlwzMDVcMjA3IiBbdGVtcC1idWZmZXItc2hvdy1m dW5jdGlvbiB3aW5kb3ctY29tYmluYXRpb24tbGltaXQgdGVtcC1idWZmZXItcmVzaXplLW1vZGUg bWluaWJ1ZmZlci1zY3JvbGwtd2luZG93IHNldC1idWZmZXItbW9kaWZpZWQtcCBuaWwgdGVtcC1i dWZmZXIgdGVtcC1idWZmZXItcmVzaXplIHQgZGlzcGxheS1idWZmZXIgd2luZG93LWZyYW1lIHNl bGVjdGVkLWZyYW1lIG1ha2UtZnJhbWUtdmlzaWJsZSBzZXQtd2luZG93LWhzY3JvbGwgMCBzZXQt d2luZG93LXN0YXJ0IHNldC13aW5kb3ctcG9pbnQgaW50ZXJuYWwtLWJlZm9yZS13aXRoLXNlbGVj dGVkLXdpbmRvdyBtYWtlLWNsb3N1cmUgI1swICJcMzAxXDMwMCFcMjA3IiBbVjAgaW50ZXJuYWwt LWFmdGVyLXdpdGgtc2VsZWN0ZWQtd2luZG93XSAyXSBzZWxlY3Qtd2luZG93IG5vcmVjb3JkIHJ1 bi1ob29rcyB0ZW1wLWJ1ZmZlci1zaG93LWhvb2tdIDcgKCMkIC4gMTUwMzU2KV0pI0AxNjc1IEJp bmQgYHN0YW5kYXJkLW91dHB1dCcgdG8gYnVmZmVyIEJVRk5BTUUsIGV2YWwgQk9EWSwgdGhlbiBz aG93IHRoYXQgYnVmZmVyLgoKVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1hY3JvIG1lYW50IGZvciBk aXNwbGF5aW5nIGhlbHAgYnVmZmVycyBhbmQKdGhlIGxpa2UuICBJdCBlbXB0aWVzIHRoZSBCVUZO QU1FIGJ1ZmZlciBiZWZvcmUgZXZhbHVhdGluZyBCT0RZCmFuZCBkaXNhYmxlcyB1bmRvIGluIHRo YXQgYnVmZmVyLgoKSXQgZG9lcyBub3QgbWFrZSB0aGUgYnVmZmVyIGN1cnJlbnQgZm9yIEJPRFku ICBJbnN0ZWFkIGl0IGJpbmRzCmBzdGFuZGFyZC1vdXRwdXQnIHRvIHRoYXQgYnVmZmVyLCBzbyB0 aGF0IG91dHB1dCBnZW5lcmF0ZWQgd2l0aApgcHJpbjEnIGFuZCBzaW1pbGFyIGZ1bmN0aW9ucyBp biBCT0RZIGdvZXMgaW50byB0aGUgYnVmZmVyLgoKQXQgdGhlIGVuZCBvZiBCT0RZLCB0aGlzIG1h cmtzIGJ1ZmZlciBCVUZOQU1FIHVubW9kaWZpZWQgYW5kIGRpc3BsYXlzCml0IGluIGEgd2luZG93 LCBidXQgZG9lcyBub3Qgc2VsZWN0IGl0LiAgVGhlIG5vcm1hbCB3YXkgdG8gZG8gdGhpcyBpcwpi eSBjYWxsaW5nIGBkaXNwbGF5LWJ1ZmZlcicsIHRoZW4gcnVubmluZyBgdGVtcC1idWZmZXItc2hv dy1ob29rJy4KSG93ZXZlciwgaWYgYHRlbXAtYnVmZmVyLXNob3ctZnVuY3Rpb24nIGlzIG5vbi1u aWwsIGl0IGNhbGxzIHRoYXQKZnVuY3Rpb24gaW5zdGVhZCAoYW5kIGRvZXMgbm90IHJ1biBgdGVt cC1idWZmZXItc2hvdy1ob29rJykuICBUaGUKZnVuY3Rpb24gZ2V0cyBvbmUgYXJndW1lbnQsIHRo ZSBidWZmZXIgdG8gZGlzcGxheS4KClRoZSByZXR1cm4gdmFsdWUgb2YgYHdpdGgtb3V0cHV0LXRv LXRlbXAtYnVmZmVyJyBpcyB0aGUgdmFsdWUgb2YgdGhlCmxhc3QgZm9ybSBpbiBCT0RZLiAgSWYg Qk9EWSBkb2VzIG5vdCBmaW5pc2ggbm9ybWFsbHksIHRoZSBidWZmZXIKQlVGTkFNRSBpcyBub3Qg ZGlzcGxheWVkLgoKVGhpcyBydW5zIHRoZSBob29rIGB0ZW1wLWJ1ZmZlci1zZXR1cC1ob29rJyBi ZWZvcmUgQk9EWSwKd2l0aCB0aGUgYnVmZmVyIEJVRk5BTUUgdGVtcG9yYXJpbHkgY3VycmVudC4g IEl0IHJ1bnMgdGhlIGhvb2sKYHRlbXAtYnVmZmVyLXNob3ctaG9vaycgYWZ0ZXIgZGlzcGxheWlu ZyBidWZmZXIgQlVGTkFNRSwgd2l0aCB0aGF0CmJ1ZmZlciB0ZW1wb3JhcmlseSBjdXJyZW50LCBh bmQgdGhlIHdpbmRvdyB0aGF0IHdhcyB1c2VkIHRvIGRpc3BsYXkgaXQKdGVtcG9yYXJpbHkgc2Vs ZWN0ZWQuICBCdXQgaXQgZG9lc24ndCBydW4gYHRlbXAtYnVmZmVyLXNob3ctaG9vaycKaWYgaXQg dXNlcyBgdGVtcC1idWZmZXItc2hvdy1mdW5jdGlvbicuCgpCeSBkZWZhdWx0LCB0aGUgc2V0dXAg aG9vayBwdXRzIHRoZSBidWZmZXIgaW50byBIZWxwIG1vZGUgYmVmb3JlIHJ1bm5pbmcgQk9EWS4K SWYgQk9EWSBkb2VzIG5vdCBjaGFuZ2UgdGhlIG1ham9yIG1vZGUsIHRoZSBzaG93IGhvb2sgbWFr ZXMgdGhlIGJ1ZmZlcgpyZWFkLW9ubHksIGFuZCBzY2FucyBpdCBmb3IgZnVuY3Rpb24gYW5kIHZh cmlhYmxlIG5hbWVzIHRvIG1ha2UgdGhlbSBpbnRvCmNsaWNrYWJsZSBjcm9zcy1yZWZlcmVuY2Vz LgoKU2VlIHRoZSByZWxhdGVkIGZvcm0gYHdpdGgtdGVtcC1idWZmZXItd2luZG93Jy4KCihmbiBC VUZOQU1FICZyZXN0IEJPRFkpHwooZGVmYWxpYXMgJ3dpdGgtb3V0cHV0LXRvLXRlbXAtYnVmZmVy ICcobWFjcm8gLiAjWzM4NSAiXDMwMFwzMDEhXDMwMFwzMDIhXDMwMwJcMzA0QgJcMzA1XDMwNgYI RFwzMDdcMzEwXDMxMVwzMTJcMzEzBgtFXDMxNEJCQkJFRFwzMTUEREVcMzA3XDMxNgYGQlwzMTcF REVFXDIwNyIgW21ha2Utc3ltYm9sICJvbGQtZGlyIiAiYnVmIiBsZXQqIChkZWZhdWx0LWRpcmVj dG9yeSkgd2l0aC1jdXJyZW50LWJ1ZmZlciBnZXQtYnVmZmVyLWNyZWF0ZSBwcm9nMSAoY3VycmVu dC1idWZmZXIpIChraWxsLWFsbC1sb2NhbC12YXJpYWJsZXMpIHNldHEgZGVmYXVsdC1kaXJlY3Rv cnkgKChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKSAoc2V0cSBidWZmZXItZmlsZS1uYW1lIG5p bCkgKHNldHEgYnVmZmVyLXVuZG8tbGlzdCB0KSAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkg KGluaGliaXQtbW9kaWZpY2F0aW9uLWhvb2tzIHQpKSAoZXJhc2UtYnVmZmVyKSAocnVuLWhvb2tz ICd0ZW1wLWJ1ZmZlci1zZXR1cC1ob29rKSkpIHN0YW5kYXJkLW91dHB1dCBwcm9nbiBpbnRlcm5h bC10ZW1wLW91dHB1dC1idWZmZXItc2hvd10gMTUgKCMkIC4gMTUxMjE5KV0pKQoocHV0ICd3aXRo LW91dHB1dC10by10ZW1wLWJ1ZmZlciAnZWRlYnVnLWZvcm0tc3BlYyB0KSNAMjk4IENyZWF0ZSBh IG5ldyBidWZmZXIsIGV2YWx1YXRlIEJPRFkgdGhlcmUsIGFuZCB3cml0ZSB0aGUgYnVmZmVyIHRv IEZJTEUuClRoZSB2YWx1ZSByZXR1cm5lZCBpcyB0aGUgdmFsdWUgb2YgdGhlIGxhc3QgZm9ybSBp biBCT0RZLgpUaGUgYnVmZmVyIGRvZXMgbm90IHJ1biB0aGUgaG9va3MgYGtpbGwtYnVmZmVyLWhv b2snLApga2lsbC1idWZmZXItcXVlcnktZnVuY3Rpb25zJywgYW5kIGBidWZmZXItbGlzdC11cGRh dGUtaG9vaycuClNlZSBhbHNvIGB3aXRoLXRlbXAtYnVmZmVyJy4KCihmbiBGSUxFICZyZXN0IEJP RFkpHwooZGVmYWxpYXMgJ3dpdGgtdGVtcC1maWxlICcobWFjcm8gLiAjWzM4NSAiXDMwMFwzMDEh XDMwMFwzMDIhXDMwMwIFRAJcMzA0QkRcMzA1XDMwNlwzMDcFBghCQlwzMDcGBlwzMTBcMzExXDIx MQYLXDMxMkJCQkJFRVwzMTNcMzE0BgZEXDMxNQYHREVFRVwyMDciIFttYWtlLXN5bWJvbCAidGVt cC1maWxlIiAidGVtcC1idWZmZXIiIGxldCAoKGdlbmVyYXRlLW5ldy1idWZmZXIgIiAqdGVtcCBm aWxlKiIgdCkpIHVud2luZC1wcm90ZWN0IHByb2cxIHdpdGgtY3VycmVudC1idWZmZXIgd3JpdGUt cmVnaW9uIG5pbCAobmlsIDApIGFuZCBidWZmZXItbmFtZSBraWxsLWJ1ZmZlcl0gMTYgKCMkIC4g MTUzNTUwKV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYj XDIwNyIgW2Z1bmN0aW9uLXB1dCB3aXRoLXRlbXAtZmlsZSBsaXNwLWluZGVudC1mdW5jdGlvbiAx IHB1dCBlZGVidWctZm9ybS1zcGVjIHRdIDUpI0A0MjggRGlzcGxheSBNRVNTQUdFIHRlbXBvcmFy aWx5IGlmIG5vbi1uaWwgd2hpbGUgQk9EWSBpcyBldmFsdWF0ZWQuClRoZSBvcmlnaW5hbCBtZXNz YWdlIGlzIHJlc3RvcmVkIHRvIHRoZSBlY2hvIGFyZWEgYWZ0ZXIgQk9EWSBoYXMgZmluaXNoZWQu ClRoZSB2YWx1ZSByZXR1cm5lZCBpcyB0aGUgdmFsdWUgb2YgdGhlIGxhc3QgZm9ybSBpbiBCT0RZ LgpNRVNTQUdFIGlzIHdyaXR0ZW4gdG8gdGhlIG1lc3NhZ2UgbG9nIGJ1ZmZlciBpZiBgbWVzc2Fn ZS1sb2ctbWF4JyBpcyBub24tbmlsLgpJZiBNRVNTQUdFIGlzIG5pbCwgdGhlIGVjaG8gYXJlYSBh bmQgbWVzc2FnZSBsb2cgYnVmZmVyIGFyZSB1bmNoYW5nZWQuClVzZSBhIE1FU1NBR0Ugb2YgIiIg dG8gdGVtcG9yYXJpbHkgY2xlYXIgdGhlIGVjaG8gYXJlYS4KCihmbiBNRVNTQUdFICZyZXN0IEJP RFkpHwooZGVmYWxpYXMgJ3dpdGgtdGVtcC1tZXNzYWdlICcobWFjcm8gLiAjWzM4NSAiXDMwMFwz MDEhXDMwMFwzMDIhXDMwMwEFRANDRFwzMDRcMzA1XDMwNgVcMzA3BghcMzEwQkJcMzExXDMxMgYJ RUYGB0JCXDMxMwVcMzE0BghcMzExXDMxMgYLRVwzMTVCQkJFRUVcMjA3IiBbbWFrZS1zeW1ib2wg ImN1cnJlbnQtbWVzc2FnZSIgIndpdGgtdGVtcC1tZXNzYWdlIiBsZXQgdW53aW5kLXByb3RlY3Qg cHJvZ24gd2hlbiBzZXRxICgoY3VycmVudC1tZXNzYWdlKSkgbWVzc2FnZSAiJXMiIGFuZCBpZiAo KG1lc3NhZ2UgbmlsKSldIDE1ICgjJCAuIDE1NDMzMildKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFc MzAyXDMwMyNcMjEwXDMwNFwzMDFcMzA1XDMwNiNcMzAwXDIwNyIgW3B1dCB3aXRoLXRlbXAtbWVz c2FnZSBlZGVidWctZm9ybS1zcGVjIHQgZnVuY3Rpb24tcHV0IGxpc3AtaW5kZW50LWZ1bmN0aW9u IDFdIDQpI0AyNTQgQ3JlYXRlIGEgdGVtcG9yYXJ5IGJ1ZmZlciwgYW5kIGV2YWx1YXRlIEJPRFkg dGhlcmUgbGlrZSBgcHJvZ24nLgpUaGUgYnVmZmVyIGRvZXMgbm90IHJ1biB0aGUgaG9va3MgYGtp bGwtYnVmZmVyLWhvb2snLApga2lsbC1idWZmZXItcXVlcnktZnVuY3Rpb25zJywgYW5kIGBidWZm ZXItbGlzdC11cGRhdGUtaG9vaycuClNlZSBhbHNvIGB3aXRoLXRlbXAtZmlsZScgYW5kIGB3aXRo LW91dHB1dC10by1zdHJpbmcnLgoKKGZuICZyZXN0IEJPRFkpHwooZGVmYWxpYXMgJ3dpdGgtdGVt cC1idWZmZXIgJyhtYWNybyAuICNbMTI4ICJcMzAwXDMwMSFcMzAyAVwzMDNCQ1wzMDQDXDMwNVwz MDYGB0JcMzA3XDMxMAYIRFwzMTEGCURFRUVFXDIwNyIgW21ha2Utc3ltYm9sICJ0ZW1wLWJ1ZmZl ciIgbGV0ICgoZ2VuZXJhdGUtbmV3LWJ1ZmZlciAiICp0ZW1wKiIgdCkpIHdpdGgtY3VycmVudC1i dWZmZXIgdW53aW5kLXByb3RlY3QgcHJvZ24gYW5kIGJ1ZmZlci1uYW1lIGtpbGwtYnVmZmVyXSAx MiAoIyQgLiAxNTUyMjMpXSkpCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFc MzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IHdpdGgtdGVtcC1idWZmZXIgbGlzcC1pbmRlbnQt ZnVuY3Rpb24gMCBwdXQgZWRlYnVnLWZvcm0tc3BlYyB0XSA1KSNANTg1IEV4ZWN1dGUgQk9EWSwg cHJldGVuZGluZyBpdCBkb2VzIG5vdCBtb2RpZnkgdGhlIGJ1ZmZlci4KVGhpcyBtYWNybyBpcyB0 eXBpY2FsbHkgdXNlZCBhcm91bmQgbW9kaWZpY2F0aW9ucyBvZgp0ZXh0IHByb3BlcnRpZXMgdGhh dCBkbyBub3QgcmVhbGx5IGFmZmVjdCB0aGUgYnVmZmVyJ3MgY29udGVudC4KSWYgQk9EWSBwZXJm b3JtcyByZWFsIG1vZGlmaWNhdGlvbnMgdG8gdGhlIGJ1ZmZlcidzIHRleHQsIG90aGVyCnRoYW4g Y29zbWV0aWMgb25lcywgdW5kbyBkYXRhIG1heSBiZWNvbWUgY29ycnVwdGVkLgoKVGhpcyBtYWNy byB3aWxsIHJ1biBCT0RZIG5vcm1hbGx5LCBidXQgZG9lc24ndCBjb3VudCBpdHMgYnVmZmVyCm1v ZGlmaWNhdGlvbnMgYXMgYmVpbmcgYnVmZmVyIG1vZGlmaWNhdGlvbnMuICBUaGlzIGFmZmVjdHMg dGhpbmdzCmxpa2UgYGJ1ZmZlci1tb2RpZmllZC1wJywgY2hlY2tpbmcgd2hldGhlciB0aGUgZmls ZSBpcyBsb2NrZWQgYnkKc29tZW9uZSBlbHNlLCBydW5uaW5nIGJ1ZmZlciBtb2RpZmljYXRpb24g aG9va3MsIGFuZCBvdGhlciB0aGluZ3MKb2YgdGhhdCBuYXR1cmUuCgooZm4gJnJlc3QgQk9EWSkf CihkZWZhbGlhcyAnd2l0aC1zaWxlbnQtbW9kaWZpY2F0aW9ucyAnKG1hY3JvIC4gI1sxMjggIlwz MDBcMzAxIVwzMDIBXDMwM0JcMzA0QlwzMDVcMzA2BUJcMzA3XDMxMFwzMTEGB0RcMzEyBghcMzEz QkJFXDMxNAYHREVFRVwyMDciIFttYWtlLXN5bWJvbCAibW9kaWZpZWQiIGxldCogKChidWZmZXIt bW9kaWZpZWQtcCkpICgoYnVmZmVyLXVuZG8tbGlzdCB0KSAoaW5oaWJpdC1yZWFkLW9ubHkgdCkg KGluaGliaXQtbW9kaWZpY2F0aW9uLWhvb2tzIHQpKSB1bndpbmQtcHJvdGVjdCBwcm9nbiB3aGVu IG9yIG5vdCBlcSAoJ2F1dG9zYXZlZCkgcmVzdG9yZS1idWZmZXItbW9kaWZpZWQtcF0gMTIgKCMk IC4gMTU1ODgxKV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wyMTBcMzA0XDMwMVwz MDVcMzA2I1wzMDBcMjA3IiBbcHV0IHdpdGgtc2lsZW50LW1vZGlmaWNhdGlvbnMgZWRlYnVnLWZv cm0tc3BlYyB0IGZ1bmN0aW9uLXB1dCBsaXNwLWluZGVudC1mdW5jdGlvbiAwXSA0KSNAOTEgRXhl Y3V0ZSBCT0RZLCByZXR1cm4gdGhlIHRleHQgaXQgc2VudCB0byBgc3RhbmRhcmQtb3V0cHV0Jywg YXMgYSBzdHJpbmcuCgooZm4gJnJlc3QgQk9EWSkfCihkZWZhbGlhcyAnd2l0aC1vdXRwdXQtdG8t c3RyaW5nICcobWFjcm8gLiAjWzEyOCAiXDMwMFwzMDFcMzAyXDMwM1wzMDBcMzA0BgZCQlwzMDVC QlwzMDZCQkVcMjA3IiBbbGV0ICgoc3RhbmRhcmQtb3V0cHV0IChnZW5lcmF0ZS1uZXctYnVmZmVy ICIgKnN0cmluZy1vdXRwdXQqIiB0KSkpIHVud2luZC1wcm90ZWN0IHByb2duICgoc3RhbmRhcmQt b3V0cHV0IHN0YW5kYXJkLW91dHB1dCkpICgod2l0aC1jdXJyZW50LWJ1ZmZlciBzdGFuZGFyZC1v dXRwdXQgKGJ1ZmZlci1zdHJpbmcpKSkgKChraWxsLWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQpKV0g OCAoIyQgLiAxNTY5NzUpXSkpCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFc MzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IHdpdGgtb3V0cHV0LXRvLXN0cmluZyBsaXNwLWlu ZGVudC1mdW5jdGlvbiAwIHB1dCBlZGVidWctZm9ybS1zcGVjIHRdIDUpI0AyODkgRXhlY3V0ZSBC T0RZLCBhbGxvd2luZyBxdWl0cyB0byB0ZXJtaW5hdGUgQk9EWSBidXQgbm90IGVzY2FwZSBmdXJ0 aGVyLgpXaGVuIGEgcXVpdCB0ZXJtaW5hdGVzIEJPRFksIGB3aXRoLWxvY2FsLXF1aXQnIHJldHVy bnMgbmlsIGJ1dApyZXF1ZXN0cyBhbm90aGVyIHF1aXQuICBUaGF0IHF1aXQgd2lsbCBiZSBwcm9j ZXNzZWQgYXMgc29vbiBhcyBxdWl0dGluZwppcyBhbGxvd2VkIG9uY2UgYWdhaW4uICAoSW1tZWRp YXRlbHksIGlmIGBpbmhpYml0LXF1aXQnIGlzIG5pbC4pCgooZm4gJnJlc3QgQk9EWSkfCihkZWZh bGlhcyAnd2l0aC1sb2NhbC1xdWl0ICcobWFjcm8gLiAjWzEyOCAiXDMwMFwzMDFcMzAyXDMwMwRC QlwzMDRCQkJcMjA3IiBbY29uZGl0aW9uLWNhc2UgbmlsIGxldCAoKGluaGliaXQtcXVpdCBuaWwp KSAoKHF1aXQgKHNldHEgcXVpdC1mbGFnIHQpIChldmFsICcoaWdub3JlIG5pbCkgdCkpKV0gNiAo IyQgLiAxNTc1MzkpXSkpCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDIxMFwzMDRcMzAx XDMwNVwzMDYjXDMwMFwyMDciIFtwdXQgd2l0aC1sb2NhbC1xdWl0IGVkZWJ1Zy1mb3JtLXNwZWMg dCBmdW5jdGlvbi1wdXQgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMF0gNCkjQDI2MCBFeGVjdXRlIEJP RFkgb25seSBhcyBsb25nIGFzIHRoZXJlJ3Mgbm8gcGVuZGluZyBpbnB1dC4KSWYgaW5wdXQgYXJy aXZlcywgdGhhdCBlbmRzIHRoZSBleGVjdXRpb24gb2YgQk9EWSwKYW5kIGB3aGlsZS1uby1pbnB1 dCcgcmV0dXJucyB0LiAgUXVpdHRpbmcgbWFrZXMgaXQgcmV0dXJuIG5pbC4KSWYgQk9EWSBmaW5p c2hlcywgYHdoaWxlLW5vLWlucHV0JyByZXR1cm5zIHdoYXRldmVyIHZhbHVlIEJPRFkgcHJvZHVj ZWQuCgooZm4gJnJlc3QgQk9EWSkfCihkZWZhbGlhcyAnd2hpbGUtbm8taW5wdXQgJyhtYWNybyAu ICNbMTI4ICJcMzAwXDMwMSFcMzAyXDMwM1wzMDQDRFwzMDVcMzA2XDMwNAYGRERcMzA3QlwzMTBc MzExXDMxMlwzMTNcMzE0BgtCRUVcMzE1QkJCRURcMjA3IiBbbWFrZS1zeW1ib2wgImlucHV0IiB3 aXRoLWxvY2FsLXF1aXQgY2F0Y2ggcXVvdGUgbGV0IHRocm93LW9uLWlucHV0ICh2YWwpIHNldHEg dmFsIG9yIChpbnB1dC1wZW5kaW5nLXApIHByb2duICgoY29uZCAoKGVxIHF1aXQtZmxhZyB0aHJv dy1vbi1pbnB1dCkgKHNldHEgcXVpdC1mbGFnIG5pbCkgdCkgKHF1aXQtZmxhZyBuaWwpICh0IHZh bCkpKV0gMTMgKCMkIC4gMTU4MTY1KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wy MTBcMzA0XDMwMVwzMDVcMzA2I1wzMDBcMjA3IiBbcHV0IHdoaWxlLW5vLWlucHV0IGVkZWJ1Zy1m b3JtLXNwZWMgdCBmdW5jdGlvbi1wdXQgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMF0gNCkjQDIxMiBM aWtlIGBjb25kaXRpb24tY2FzZScgZXhjZXB0IHRoYXQgaXQgZG9lcyBub3QgcHJldmVudCBkZWJ1 Z2dpbmcuCk1vcmUgc3BlY2lmaWNhbGx5IGlmIGBkZWJ1Zy1vbi1lcnJvcicgaXMgc2V0IHRoZW4g dGhlIGRlYnVnZ2VyIHdpbGwgYmUgaW52b2tlZApldmVuIGlmIHRoaXMgY2F0Y2hlcyB0aGUgc2ln bmFsLgoKKGZuIFZBUiBCT0RZRk9STSAmcmVzdCBIQU5ETEVSUykfCihkZWZhbGlhcyAnY29uZGl0 aW9uLWNhc2UtdW5sZXNzLWRlYnVnICcobWFjcm8gLiAjWzY0MiAiXDMwMAMDXDMwMVwzMDIFXCJC QkJcMjA3IiBbY29uZGl0aW9uLWNhc2UgbWFwY2FyICNbMjU3ICJcMzAwAUA8XDIwM1xmAAFAXDIw Mg8AAUBDQgFBQlwyMDciIFtkZWJ1Z10gMyAiXG5cbihmbiBIQU5ETEVSKSJdXSA5ICgjJCAuIDE1 ODkxNSldKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMjEwXDMwNFwzMDFcMzA1XDMw NiNcMzAwXDIwNyIgW3B1dCBjb25kaXRpb24tY2FzZS11bmxlc3MtZGVidWcgZWRlYnVnLWZvcm0t c3BlYyBjb25kaXRpb24tY2FzZSBmdW5jdGlvbi1wdXQgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMl0g NCkjQDQyMCBSdW4gQk9EWSBhbmQgZGVtb3RlIGFueSBlcnJvcnMgdG8gc2ltcGxlIG1lc3NhZ2Vz LgpGT1JNQVQgaXMgYSBzdHJpbmcgcGFzc2VkIHRvIGBtZXNzYWdlJyB0byBmb3JtYXQgYW55IGVy cm9yIG1lc3NhZ2UuCkl0IHNob3VsZCBjb250YWluIGEgc2luZ2xlICUtc2VxdWVuY2U7IGUuZy4s ICJFcnJvcjogJVMiLgoKSWYgYGRlYnVnLW9uLWVycm9yJyBpcyBub24tbmlsLCBydW4gQk9EWSB3 aXRob3V0IGNhdGNoaW5nIGl0cyBlcnJvcnMuClRoaXMgaXMgdG8gYmUgdXNlZCBhcm91bmQgY29k ZSB0aGF0IGlzIG5vdCBleHBlY3RlZCB0byBzaWduYWwgYW4gZXJyb3IKYnV0IHRoYXQgc2hvdWxk IGJlIHJvYnVzdCBpbiB0aGUgdW5leHBlY3RlZCBjYXNlIHRoYXQgYW4gZXJyb3IgaXMgc2lnbmFs ZWQuCgooZm4gRk9STUFUICZyZXN0IEJPRFkpHwooZGVmYWxpYXMgJ3dpdGgtZGVtb3RlZC1lcnJv cnMgJyhtYWNybyAuICNbMzg1ICJcMzAwXDMwMSEBAztcMjAzEQACXDIwMxEAA1wyMDIbAANcMjAz GgADA0JcMjYyA1wzMDJcMzAzA1wzMDQGBiFcMzA1XDMwNgUGCEVcMzA3QkJGAgU9XDIwMzIAXDIw N1wzMTBcMzExAlwzMTJcMjExBgYlXDIwNyIgW21ha2Utc3ltYm9sICJlcnIiICJFcnJvcjogJVMi IGNvbmRpdGlvbi1jYXNlLXVubGVzcy1kZWJ1ZyBtYWNyb2V4cC1wcm9nbiBlcnJvciBtZXNzYWdl IChuaWwpIG1hY3JvZXhwLXdhcm4tYW5kLXJldHVybiAiTWlzc2luZyBmb3JtYXQgYXJndW1lbnQi IG5pbF0gMTIgKCMkIC4gMTU5NDk0KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wy MTBcMzA0XDMwMVwzMDVcMzA2I1wzMDBcMjA3IiBbcHV0IHdpdGgtZGVtb3RlZC1lcnJvcnMgZWRl YnVnLWZvcm0tc3BlYyB0IGZ1bmN0aW9uLXB1dCBsaXNwLWluZGVudC1mdW5jdGlvbiAxXSA0KSNA NTE0IEV4ZWN1dGUgQk9EWSwgYnV0IGRvbid0IGNhbGwgdGhlIGFmdGVyLWNoYW5nZSBmdW5jdGlv bnMgdGlsbCB0aGUgZW5kLgpJZiBCT0RZIG1ha2VzIGNoYW5nZXMgaW4gdGhlIGJ1ZmZlciwgdGhl eSBhcmUgcmVjb3JkZWQKYW5kIHRoZSBmdW5jdGlvbnMgb24gYGFmdGVyLWNoYW5nZS1mdW5jdGlv bnMnIGFyZSBjYWxsZWQgc2V2ZXJhbCB0aW1lcwp3aGVuIEJPRFkgaXMgZmluaXNoZWQuClRoZSBy ZXR1cm4gdmFsdWUgaXMgdGhlIHZhbHVlIG9mIHRoZSBsYXN0IGZvcm0gaW4gQk9EWS4KCklmIGBi ZWZvcmUtY2hhbmdlLWZ1bmN0aW9ucycgaXMgbm9uLW5pbCwgdGhlbiBjYWxscyB0byB0aGUgYWZ0 ZXItY2hhbmdlCmZ1bmN0aW9ucyBjYW4ndCBiZSBkZWZlcnJlZCwgc28gaW4gdGhhdCBjYXNlIHRo aXMgbWFjcm8gaGFzIG5vIGVmZmVjdC4KCkRvIG5vdCBhbHRlciBgYWZ0ZXItY2hhbmdlLWZ1bmN0 aW9ucycgb3IgYGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zJwppbiBCT0RZLgoKKGZuICZyZXN0IEJP RFkpHwooZGVmYWxpYXMgJ2NvbWJpbmUtYWZ0ZXItY2hhbmdlLWNhbGxzICcobWFjcm8gLiAjWzEy OCAiXDMwMFwzMDFcMzAyA0JCXDMwM0JCXDIwNyIgW3Vud2luZC1wcm90ZWN0IGxldCAoKGNvbWJp bmUtYWZ0ZXItY2hhbmdlLWNhbGxzIHQpKSAoKGNvbWJpbmUtYWZ0ZXItY2hhbmdlLWV4ZWN1dGUp KV0gNSAoIyQgLiAxNjA0MDIpXSkpCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwz MDFcMzA1XDMwNiNcMjA3IiBbZnVuY3Rpb24tcHV0IGNvbWJpbmUtYWZ0ZXItY2hhbmdlLWNhbGxz IGxpc3AtaW5kZW50LWZ1bmN0aW9uIDAgcHV0IGVkZWJ1Zy1mb3JtLXNwZWMgdF0gNSkjQDUxIE5v bi1uaWwgd2hlbiBgY29tYmluZS1jaGFuZ2UtY2FsbHMtMScgaXMgcnVubmluZy4fCihkZWZ2YXIg dW5kby0tY29tYmluaW5nLWNoYW5nZS1jYWxscyBuaWwgKCMkIC4gMTYxMjUxKSkjQDk0NyBFdmFs dWF0ZSBCT0RZLCBydW5uaW5nIHRoZSBjaGFuZ2UgaG9va3MganVzdCBvbmNlLCBmb3IgcmVnaW9u IChCRUcgRU5EKS4KCkZpcnN0bHksIGBiZWZvcmUtY2hhbmdlLWZ1bmN0aW9ucycgaXMgaW52b2tl ZCBmb3IgdGhlIHJlZ2lvbgooQkVHIEVORCksIHRoZW4gQk9EWSAoYSBmdW5jdGlvbikgaXMgZXZh bHVhdGVkIHdpdGgKYGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zJyBhbmQgYGFmdGVyLWNoYW5nZS1m dW5jdGlvbnMnIGJvdW5kIHRvCm5pbCwgdGhlbiBmaW5hbGx5IGBhZnRlci1jaGFuZ2UtZnVuY3Rp b25zJyBpcyBpbnZva2VkIG9uIHRoZQp1cGRhdGVkIHJlZ2lvbiAoQkVHIE5FVy1FTkQpIHdpdGgg YSBjYWxjdWxhdGVkIE9MRC1MRU4gYXJndW1lbnQuCklmIGBpbmhpYml0LW1vZGlmaWNhdGlvbi1o b29rcycgaXMgaW5pdGlhbGx5IG5vbi1uaWwsIHRoZSBjaGFuZ2UKaG9va3MgYXJlIG5vdCBydW4u CgpUaGUgcmVzdWx0IG9mIGBjb21iaW5lLWNoYW5nZS1jYWxscy0xJyBpcyB0aGUgdmFsdWUgcmV0 dXJuZWQgYnkKQk9EWS4gIEJPRFkgbXVzdCBub3QgbWFrZSBhIGRpZmZlcmVudCBidWZmZXIgY3Vy cmVudCwgZXhjZXB0CnRlbXBvcmFyaWx5LiAgSXQgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyB0 byB0aGUgYnVmZmVyIG91dHNpZGUKdGhlIHNwZWNpZmllZCByZWdpb24uICBJdCBtdXN0IG5vdCBj aGFuZ2UKYGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zJyBvciBgYWZ0ZXItY2hhbmdlLWZ1bmN0aW9u cycuCgpBZGRpdGlvbmFsbHksIHRoZSBidWZmZXIgbW9kaWZpY2F0aW9ucyBvZiBCT0RZIGFyZSBy ZWNvcmRlZCBvbgp0aGUgYnVmZmVyJ3MgdW5kbyBsaXN0IGFzIGEgc2luZ2xlIChhcHBseSAuLi4p IGVudHJ5IGNvbnRhaW5pbmcKdGhlIGZ1bmN0aW9uIGB1bmRvLS13cmFwLWFuZC1ydW4tcHJpbWl0 aXZlLXVuZG8nLgoKKGZuIEJFRyBFTkQgQk9EWSkfCihkZWZhbGlhcyAnY29tYmluZS1jaGFuZ2Ut Y2FsbHMtMSAjWzc3MSAiXDMwNQMhXDIwMwsAXDMwNgMhXDI2MgNcMzA1AiFcMjAzFgBcMzA2AiFc MjYyAghcMzA3A1wzMTBcIlwzMTEJXDIwMycAAyBcMjYyAVwyMDJcMzMyAFwzMTAZXG5cMjA0NQBc MzEyXDMwMwYHBgcjXDIxMAtcZlwzMTNcMzAzIVwzMTNcMzA0IVwzMTRcMzE1AgQGBgYIJVwyMTZc MzE2XDMwMyFcMjEwXDMxNwQ+XDIwNVIAXDMyMBNcMzE2XDMwNCFcMjEwXDMxMRQGByApXDI2Nlwy MDUIXDMxMD1cMjA0XDMwNwBcMzIxBQNaBgdcMzA2BSFcMzIyBlxuXDMwNgYIIQhcMjU3CAhcMjEx BT1cMjA0XDMwNQBcMjExQQU9XDIwNFwyNjAAXDIxMUFcMjAzXDI2MABcMjExQTpcMjAzXDI1MQBc MjExQUA6XDIwM1wyNTEAXDIxMUFAQFwzMTA9XDIwM1wyNTEAXDIxMUFcMjExXDI2MgZcMjA0XDI2 MABcMjExQVwyNjIBXDIwMn8AXDIxMUFcMjA0XDI3MQBcMzIzXDMyNCFcMjEwXDIxMVwzMTFcMjQx XDIxMAEIQlwyMTEQBVwyNDFcMjEwXDI2NgJcblwyMDRcMzMxAFwzMTJcMzA0BgdcMzA2BSEGCAZc blokXDIxMCkBXDMxMVwyMTFcMjIzXDIxMFwyMDciIFtidWZmZXItdW5kby1saXN0IHVuZG8tLWNv bWJpbmluZy1jaGFuZ2UtY2FsbHMgaW5oaWJpdC1tb2RpZmljYXRpb24taG9va3MgYmVmb3JlLWNo YW5nZS1mdW5jdGlvbnMgYWZ0ZXItY2hhbmdlLWZ1bmN0aW9ucyBtYXJrZXJwIG1hcmtlci1wb3Np dGlvbiBjb3B5LW1hcmtlciB0IG5pbCBydW4taG9vay13aXRoLWFyZ3MgbG9jYWwtdmFyaWFibGUt cCBtYWtlLWNsb3N1cmUgI1swICJcMzAxXDIwMwkAXDMwMxRcMjAyDQBcMzA2XDMwNCFcMjEwXDMw MFwyMDMVAFwzMDJcMjExFVwyMDdcMzA2XDMwNSFcMjA3IiBbVjAgVjEgVjIgVjMgYmVmb3JlLWNo YW5nZS1mdW5jdGlvbnMgYWZ0ZXItY2hhbmdlLWZ1bmN0aW9ucyBraWxsLWxvY2FsLXZhcmlhYmxl XSAyXSBtYWtlLWxvY2FsLXZhcmlhYmxlIHN5bnRheC1wcHNzLWZsdXNoLWNhY2hlIChzeW50YXgt cHBzcy1mbHVzaC1jYWNoZSkgYXBwbHkgdW5kby0td3JhcC1hbmQtcnVuLXByaW1pdGl2ZS11bmRv IG1lc3NhZ2UgImNvbWJpbmUtY2hhbmdlLWNhbGxzOiBidWZmZXItdW5kby1saXN0IGJyb2tlbiJd IDE3ICgjJCAuIDE2MTM2MyldKSNAMTAxMyBFdmFsdWF0ZSBCT0RZLCBydW5uaW5nIHRoZSBjaGFu Z2UgaG9va3MganVzdCBvbmNlLgoKQk9EWSBpcyBhIHNlcXVlbmNlIG9mIExpc3AgZm9ybXMgdG8g ZXZhbHVhdGUuICBCRUcgYW5kIEVORCBib3VuZAp0aGUgcmVnaW9uIHRoZSBjaGFuZ2UgaG9va3Mg d2lsbCBiZSBydW4gZm9yLgoKRmlyc3RseSwgYGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zJyBpcyBp bnZva2VkIGZvciB0aGUgcmVnaW9uCihCRUcgRU5EKSwgdGhlbiB0aGUgQk9EWSBmb3JtcyBhcmUg ZXZhbHVhdGVkIHdpdGgKYGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zJyBhbmQgYGFmdGVyLWNoYW5n ZS1mdW5jdGlvbnMnIGJvdW5kIHRvCm5pbCwgYW5kIGZpbmFsbHkgYGFmdGVyLWNoYW5nZS1mdW5j dGlvbnMnIGlzIGludm9rZWQgb24gdGhlCnVwZGF0ZWQgcmVnaW9uLiAgVGhlIGNoYW5nZSBob29r cyBhcmUgbm90IHJ1biBpZgpgaW5oaWJpdC1tb2RpZmljYXRpb24taG9va3MnIGlzIGluaXRpYWxs eSBub24tbmlsLgoKVGhlIHJlc3VsdCBvZiBgY29tYmluZS1jaGFuZ2UtY2FsbHMnIGlzIHRoZSB2 YWx1ZSByZXR1cm5lZCBieSB0aGUKbGFzdCBvZiB0aGUgQk9EWSBmb3JtcyB0byBiZSBldmFsdWF0 ZWQuICBCT0RZIG1heSBub3QgbWFrZSBhCmRpZmZlcmVudCBidWZmZXIgY3VycmVudCwgZXhjZXB0 IHRlbXBvcmFyaWx5LiAgQk9EWSBtYXkgbm90CmNoYW5nZSB0aGUgYnVmZmVyIG91dHNpZGUgdGhl IHNwZWNpZmllZCByZWdpb24uICBJdCBtdXN0IG5vdApjaGFuZ2UgYGJlZm9yZS1jaGFuZ2UtZnVu Y3Rpb25zJyBvciBgYWZ0ZXItY2hhbmdlLWZ1bmN0aW9ucycuCgpBZGRpdGlvbmFsbHksIHRoZSBi dWZmZXIgbW9kaWZpY2F0aW9ucyBvZiBCT0RZIGFyZSByZWNvcmRlZCBvbgp0aGUgYnVmZmVyJ3Mg dW5kbyBsaXN0IGFzIGEgc2luZ2xlIChhcHBseSAuLi4pIGVudHJ5IGNvbnRhaW5pbmcKdGhlIGZ1 bmN0aW9uIGB1bmRvLS13cmFwLWFuZC1ydW4tcHJpbWl0aXZlLXVuZG8nLgoKKGZuIEJFRyBFTkQg JnJlc3QgQk9EWSkfCihkZWZhbGlhcyAnY29tYmluZS1jaGFuZ2UtY2FsbHMgJyhtYWNybyAuICNb NjQyICJcMzAwAwNcMzAxXDMwMgVCQkZcMjA3IiBbY29tYmluZS1jaGFuZ2UtY2FsbHMtMSBsYW1i ZGEgbmlsXSA5ICgjJCAuIDE2MzQ0NSldKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNc MjEwXDMwNFwzMDFcMzA1XDMwNiNcMzAwXDIwNyIgW3B1dCBjb21iaW5lLWNoYW5nZS1jYWxscyBl ZGVidWctZm9ybS1zcGVjIChmb3JtIGZvcm0gZGVmLWJvZHkpIGZ1bmN0aW9uLXB1dCBsaXNwLWlu ZGVudC1mdW5jdGlvbiAyXSA0KSNANTg3IENhbGwgYHByaW1pdGl2ZS11bmRvJyBvbiB0aGUgdW5k byBlbGVtZW50cyBpbiBMSVNULgoKVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBjYWxs ZWQgcHVyZWx5IGJ5IGB1bmRvJyBhcyB0aGUKZnVuY3Rpb24gaW4gYW4gKGFwcGx5IERFTFRBIEJF RyBFTkQgRlVOTkFNRSAuIEFSR1MpIHVuZG8KZWxlbWVudC4gIEl0IGludm9rZXMgYGJlZm9yZS1j aGFuZ2UtZnVuY3Rpb25zJyBhbmQKYGFmdGVyLWNoYW5nZS1mdW5jdGlvbnMnIG9uY2UgZWFjaCBm b3IgdGhlIGVudGlyZSByZWdpb24gKEJFRwpFTkQpIHJhdGhlciB0aGFuIG9uY2UgZm9yIGVhY2gg aW5kaXZpZHVhbCBjaGFuZ2UuCgpBZGRpdGlvbmFsbHkgdGhlIGZyZXNoICJyZWRvIiBlbGVtZW50 cyB3aGljaCBhcmUgZ2VuZXJhdGVkIG9uCmBidWZmZXItdW5kby1saXN0JyB3aWxsIHRoZW1zZWx2 ZXMgYmUgImVuY2xvc2VkIiBpbgpgdW5kby0td3JhcC1hbmQtcnVuLXByaW1pdGl2ZS11bmRvJy4K ClVuZG8gZWxlbWVudHMgb2YgdGhpcyBmb3JtIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIG1hY3JvCmBj b21iaW5lLWNoYW5nZS1jYWxscycuCgooZm4gQkVHIEVORCBMSVNUKR8KKGRlZmFsaWFzICd1bmRv LS13cmFwLWFuZC1ydW4tcHJpbWl0aXZlLXVuZG8gI1s3NzEgIlwyMTFDXDMwMAQEXDMwMVwzMDIF XCIjXDIwNyIgW2NvbWJpbmUtY2hhbmdlLWNhbGxzLTEgbWFrZS1jbG9zdXJlICNbMCAiXDMwMFwy NDJcMjA1EABcMzAwXDMwMVwzMDJcMzAwXDI0MlwiXDI0MFwyMTBcMjAyAABcMjA3IiBbVjAgcHJp bWl0aXZlLXVuZG8gMV0gNF1dIDEwICgjJCAuIDE2NDc1NSldKSNAMTQ2IEV4ZWN1dGUgdGhlIGZv cm1zIGluIEJPRFkgd2l0aCBUQUJMRSBhcyB0aGUgY3VycmVudCBjYXNlIHRhYmxlLgpUaGUgdmFs dWUgcmV0dXJuZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSBsYXN0IGZvcm0gaW4gQk9EWS4KCihmbiBU QUJMRSAmcmVzdCBCT0RZKR8KKGRlZmFsaWFzICd3aXRoLWNhc2UtdGFibGUgJyhtYWNybyAuICNb Mzg1ICJcMzAwXDMwMSFcMzAwXDMwMiFcMzAzAlwzMDRCAlwzMDVCRFwzMDZcMzA3XDMxMAYIRAYH QkJcMzExBVwzMTAGCERFRUVcMjA3IiBbbWFrZS1zeW1ib2wgInRhYmxlIiAiYnVmZmVyIiBsZXQg KChjdXJyZW50LWNhc2UtdGFibGUpKSAoKGN1cnJlbnQtYnVmZmVyKSkgdW53aW5kLXByb3RlY3Qg cHJvZ24gc2V0LWNhc2UtdGFibGUgd2l0aC1jdXJyZW50LWJ1ZmZlcl0gMTIgKCMkIC4gMTY1NTcx KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIg W2Z1bmN0aW9uLXB1dCB3aXRoLWNhc2UtdGFibGUgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMSBwdXQg ZWRlYnVnLWZvcm0tc3BlYyB0XSA1KSNAMTM1IEV4ZWN1dGUgQk9EWSB3aXRoIGRlZmF1bHQgZmls ZSBwZXJtaXNzaW9ucyB0ZW1wb3JhcmlseSBzZXQgdG8gTU9ERVMuCk1PREVTIGlzIGFzIGZvciBg c2V0LWRlZmF1bHQtZmlsZS1tb2RlcycuCgooZm4gTU9ERVMgJnJlc3QgQk9EWSkfCihkZWZhbGlh cyAnd2l0aC1maWxlLW1vZGVzICcobWFjcm8gLiAjWzM4NSAiXDMwMFwzMDEhXDMwMgFcMzAzQkNc MzA0XDMwNVwzMDYGB0QGBkJCXDMwNgVERUVcMjA3IiBbbWFrZS1zeW1ib2wgInVtYXNrIiBsZXQg KChkZWZhdWx0LWZpbGUtbW9kZXMpKSB1bndpbmQtcHJvdGVjdCBwcm9nbiBzZXQtZGVmYXVsdC1m aWxlLW1vZGVzXSA5ICgjJCAuIDE2NjEyNildKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMw MyNcMzA0XDMwMVwzMDVcMzA2I1wyMDciIFtmdW5jdGlvbi1wdXQgd2l0aC1maWxlLW1vZGVzIGxp c3AtaW5kZW50LWZ1bmN0aW9uIDEgcHV0IGVkZWJ1Zy1mb3JtLXNwZWMgdF0gNSkjQDE2MyBFeGVj dXRlIEJPRFkgd2l0aCBgZGVmYXVsdC1kaXJlY3RvcnknIGJvdW5kIHRvIGFuIGV4aXN0aW5nIGRp cmVjdG9yeS4KSWYgYGRlZmF1bHQtZGlyZWN0b3J5JyBpcyBhbHJlYWR5IGFuIGV4aXN0aW5nIGRp cmVjdG9yeSwgaXQncyBub3QgY2hhbmdlZC4KCihmbiAmcmVzdCBCT0RZKR8KKGRlZmFsaWFzICd3 aXRoLWV4aXN0aW5nLWRpcmVjdG9yeSAnKG1hY3JvIC4gI1sxMjggIlwzMDBcMzAxAkJCXDIwNyIg W2xldCAoKGRlZmF1bHQtZGlyZWN0b3J5IChzZXEtZmluZCAobGFtYmRhIChkaXIpIChhbmQgZGly IChmaWxlLWV4aXN0cy1wIGRpcikpKSAobGlzdCBkZWZhdWx0LWRpcmVjdG9yeSAoZXhwYW5kLWZp bGUtbmFtZSAifi8iKSB0ZW1wb3JhcnktZmlsZS1kaXJlY3RvcnkgKGdldGVudiAiVE1QRElSIikg Ii90bXAvIikgIi8iKSkpXSA0ICgjJCAuIDE2NjYwNyldKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFc MzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2I1wyMDciIFtmdW5jdGlvbi1wdXQgd2l0aC1leGlzdGlu Zy1kaXJlY3RvcnkgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMCBwdXQgZWRlYnVnLWZvcm0tc3BlYyB0 XSA1KSNAMzkxIEV4ZWN1dGUgdGhlIEJPRFkgZm9ybXMsIHJlc3RvcmluZyB0aGUgZ2xvYmFsIHZh bHVlIG9mIHRoZSBtYXRjaCBkYXRhLgpUaGUgdmFsdWUgcmV0dXJuZWQgaXMgdGhlIHZhbHVlIG9m IHRoZSBsYXN0IGZvcm0gaW4gQk9EWS4KTk9URTogVGhlIGNvbnZlbnRpb24gaW4gRWxpc3AgaXMg dGhhdCBhbnkgZnVuY3Rpb24sIGV4Y2VwdCBmb3IgYSBmZXcKZXhjZXB0aW9ucyBsaWtlIGNhci9h c3NvYy8rL2dvdG8tY2hhciwgY2FuIGNsb2JiZXIgdGhlIG1hdGNoIGRhdGEsCnNvIGBzYXZlLW1h dGNoLWRhdGEnIHNob3VsZCBub3JtYWxseSBiZSB1c2VkIHRvIHNhdmUgKnlvdXIqIG1hdGNoIGRh dGEKcmF0aGVyIHRoYW4geW91ciBjYWxsZXIncyBtYXRjaCBkYXRhLgoKKGZuICZyZXN0IEJPRFkp HwooZGVmYWxpYXMgJ3NhdmUtbWF0Y2gtZGF0YSAnKG1hY3JvIC4gI1sxMjggIlwzMDBcMzAxIVwz MDIBXDMwM0RDXDMwNFwzMDUFQlwzMDYFXDMwN0VFRVwyMDciIFttYWtlLXN5bWJvbCAic2F2ZWQt bWF0Y2gtZGF0YSIgbGV0IChtYXRjaC1kYXRhKSB1bndpbmQtcHJvdGVjdCBwcm9nbiBzZXQtbWF0 Y2gtZGF0YSB0XSA5ICgjJCAuIDE2NzE5MSldKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMw MyNcMzA0XDMwMVwzMDVcMzA2I1wyMDciIFtmdW5jdGlvbi1wdXQgc2F2ZS1tYXRjaC1kYXRhIGxp c3AtaW5kZW50LWZ1bmN0aW9uIDAgcHV0IGVkZWJ1Zy1mb3JtLXNwZWMgdF0gNSkjQDk2NyBSZXR1 cm4gdGhlIHN0cmluZyBvZiB0ZXh0IG1hdGNoZWQgYnkgdGhlIHByZXZpb3VzIHNlYXJjaCBvciBy ZWdleHAgb3BlcmF0aW9uLgpOVU0gc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgdGhlIHBhcmVudGhl c2l6ZWQgc3ViLWV4cHJlc3Npb24gaW4gdGhlIGxhc3QKcmVnZXhwIHdob3NlIG1hdGNoIHRvIHJl dHVybi4gIFplcm8gbWVhbnMgcmV0dXJuIHRoZSB0ZXh0IG1hdGNoZWQgYnkgdGhlCmVudGlyZSBy ZWdleHAgb3IgdGhlIHdob2xlIHN0cmluZy4KClRoZSByZXR1cm4gdmFsdWUgaXMgbmlsIGlmIE5V TXRoIHBhaXIgZGlkbid0IG1hdGNoIGFueXRoaW5nLCBvciBpZiB0aGVyZQp3ZXJlIGZld2VyIHRo YW4gTlVNIHN1Yi1leHByZXNzaW9ucyBpbiB0aGUgcmVnZXhwIHVzZWQgaW4gdGhlIHNlYXJjaC4K ClNUUklORyBzaG91bGQgYmUgZ2l2ZW4gaWYgdGhlIGxhc3Qgc2VhcmNoIHdhcyBieSBgc3RyaW5n LW1hdGNoJwpvbiBTVFJJTkcuICBJZiBTVFJJTkcgaXMgbmlsLCB0aGUgY3VycmVudCBidWZmZXIg c2hvdWxkIGJlIHRoZQpzYW1lIGJ1ZmZlciBhcyB0aGUgb25lIGluIHdoaWNoIHRoZSBzZWFyY2gv bWF0Y2ggd2FzIHBlcmZvcm1lZC4KCk5vdGUgdGhhdCBtYW55IGZ1bmN0aW9ucyBpbiBFbWFjcyBt b2RpZnkgdGhlIG1hdGNoIGRhdGEsIHNvIHRoaXMKZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCAi Y2xvc2UiIHRvIHRoZSBmdW5jdGlvbiB0aGF0IGRpZCB0aGUKcmVnZXhwIHNlYXJjaC4gIEluIHBh cnRpY3VsYXIsIHNheWluZyAoZm9yIGluc3RhbmNlKQpgTS06IChsb29raW5nLWF0ICJbMC05XSIp IFJFVCcgZm9sbG93ZWQgYnkgYE0tOiAobWF0Y2gtc3RyaW5nIDApIFJFVCcKaW50ZXJhY3RpdmVs eSBpcyBzZWxkb20gbWVhbmluZ2Z1bCwgc2luY2UgdGhlIEVtYWNzIGNvbW1hbmQgbG9vcAptYXkg bW9kaWZ5IHRoZSBtYXRjaCBkYXRhLgoKKGZuIE5VTSAmb3B0aW9uYWwgU1RSSU5HKR8KKGRlZmFs aWFzICdtYXRjaC1zdHJpbmcgI1s1MTMgIgFcMjI0XDIwNRUAXDIxMVwyMDMQAFwyMTECXDIyNANc MjI1T1wyMDcBXDIyNAJcMjI1e1wyMDciIFtdIDUgKCMkIC4gMTY3OTE4KV0pCihieXRlLWNvZGUg IlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgbWF0Y2gtc3RyaW5nIHNp ZGUtZWZmZWN0LWZyZWUgdF0gNCkjQDQ4NiBSZXR1cm4gc3RyaW5nIG9mIHRleHQgbWF0Y2hlZCBi eSBsYXN0IHNlYXJjaCwgd2l0aG91dCB0ZXh0IHByb3BlcnRpZXMuCk5VTSBzcGVjaWZpZXMgd2hp Y2ggcGFyZW50aGVzaXplZCBleHByZXNzaW9uIGluIHRoZSBsYXN0IHJlZ2V4cC4KIFZhbHVlIGlz IG5pbCBpZiBOVU10aCBwYWlyIGRpZG4ndCBtYXRjaCwgb3IgdGhlcmUgd2VyZSBsZXNzIHRoYW4g TlVNIHBhaXJzLgpaZXJvIG1lYW5zIHRoZSBlbnRpcmUgdGV4dCBtYXRjaGVkIGJ5IHRoZSB3aG9s ZSByZWdleHAgb3Igd2hvbGUgc3RyaW5nLgpTVFJJTkcgc2hvdWxkIGJlIGdpdmVuIGlmIHRoZSBs YXN0IHNlYXJjaCB3YXMgYnkgYHN0cmluZy1tYXRjaCcgb24gU1RSSU5HLgpJZiBTVFJJTkcgaXMg bmlsLCB0aGUgY3VycmVudCBidWZmZXIgc2hvdWxkIGJlIHRoZSBzYW1lIGJ1ZmZlcgp0aGUgc2Vh cmNoL21hdGNoIHdhcyBwZXJmb3JtZWQgaW4uCgooZm4gTlVNICZvcHRpb25hbCBTVFJJTkcpHwoo ZGVmYWxpYXMgJ21hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzICNbNTEzICIBXDIyNFwyMDUXAFwy MTFcMjAzEQBcMzAwAQNcMjI0BFwyMjUjXDIwN1wzMDECXDIyNANcMjI1XCJcMjA3IiBbc3Vic3Ry aW5nLW5vLXByb3BlcnRpZXMgYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzXSA2ICgjJCAu IDE2OTA4OCldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBcMjA3IiBbZnVuY3Rp b24tcHV0IG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIHNpZGUtZWZmZWN0LWZyZWUgdF0gNCkj QDM0MiBSZXR1cm4gUkVQTEFDRU1FTlQgYXMgaXQgd2lsbCBiZSBpbnNlcnRlZCBieSBgcmVwbGFj ZS1tYXRjaCcuCkluIG90aGVyIHdvcmRzLCBhbGwgYmFjay1yZWZlcmVuY2VzIGluIHRoZSBmb3Jt IGBcJicgYW5kIGBcTicKYXJlIHN1YnN0aXR1dGVkIHdpdGggYWN0dWFsIHN0cmluZ3MgbWF0Y2hl ZCBieSB0aGUgbGFzdCBzZWFyY2guCk9wdGlvbmFsIEZJWEVEQ0FTRSwgTElURVJBTCwgU1RSSU5H IGFuZCBTVUJFWFAgaGF2ZSB0aGUgc2FtZQptZWFuaW5nIGFzIGZvciBgcmVwbGFjZS1tYXRjaCcu CgooZm4gUkVQTEFDRU1FTlQgJm9wdGlvbmFsIEZJWEVEQ0FTRSBMSVRFUkFMIFNUUklORyBTVUJF WFApHwooZGVmYWxpYXMgJ21hdGNoLXN1YnN0aXR1dGUtcmVwbGFjZW1lbnQgI1sxMjgxICJcMzAw XDMwMQNcIlwzMDIgXDMwM1wzMDQCXCJcMjE2XDMwNVwzMDFcMjI0WyFcMjEwXDMwNgYHBgcGBwUG ByUpXDIwNyIgW21hdGNoLXN0cmluZyAwIG1hdGNoLWRhdGEgbWFrZS1jbG9zdXJlICNbMCAiXDMw MVwzMDBcMzAyXCJcMjA3IiBbVjAgc2V0LW1hdGNoLWRhdGEgdF0gM10gbWF0Y2gtZGF0YS0tdHJh bnNsYXRlIHJlcGxhY2UtbWF0Y2hdIDEzICgjJCAuIDE2OTg2NSldKSNANjU1IFJldHVybiBub24t bmlsIGlmIHRleHQgYmVmb3JlIHBvaW50IG1hdGNoZXMgcmVndWxhciBleHByZXNzaW9uIFJFR0VY UC4KTGlrZSBgbG9va2luZy1hdCcgZXhjZXB0IG1hdGNoZXMgYmVmb3JlIHBvaW50LCBhbmQgaXMg c2xvd2VyLgpMSU1JVCBpZiBub24tbmlsIHNwZWVkcyB1cCB0aGUgc2VhcmNoIGJ5IHNwZWNpZnlp bmcgYSBtaW5pbXVtCnN0YXJ0aW5nIHBvc2l0aW9uLCB0byBhdm9pZCBjaGVja2luZyBtYXRjaGVz IHRoYXQgd291bGQgc3RhcnQKYmVmb3JlIExJTUlULgoKSWYgR1JFRURZIGlzIG5vbi1uaWwsIGV4 dGVuZCB0aGUgbWF0Y2ggYmFja3dhcmRzIGFzIGZhciBhcwpwb3NzaWJsZSwgc3RvcHBpbmcgd2hl biBhIHNpbmdsZSBhZGRpdGlvbmFsIHByZXZpb3VzIGNoYXJhY3RlcgpjYW5ub3QgYmUgcGFydCBv ZiBhIG1hdGNoIGZvciBSRUdFWFAuICBXaGVuIHRoZSBtYXRjaCBpcwpleHRlbmRlZCwgaXRzIHN0 YXJ0aW5nIHBvc2l0aW9uIGlzIGFsbG93ZWQgdG8gb2NjdXIgYmVmb3JlCkxJTUlULgoKQXMgYSBn ZW5lcmFsIHJlY29tbWVuZGF0aW9uLCB0cnkgdG8gYXZvaWQgdXNpbmcgYGxvb2tpbmctYmFjaycK d2hlcmV2ZXIgcG9zc2libGUsIHNpbmNlIGl0IGlzIHNsb3cuCgooZm4gUkVHRVhQICZvcHRpb25h bCBMSU1JVCBHUkVFRFkpHwooZGVmYWxpYXMgJ2xvb2tpbmctYmFjayAjWzc2OSAiYFwyMTJcMzAw XDMwMQVcMzAyUQRcMzAzI1wyMDUOAGApAlwyMDNIAFwyMTFcMjAzSABcMjE0ZQJ9XDIxMFwyMTFl VlwyMDM7AFwyMTJcMjExYlwyMTBcMzA0dVwyMTBcMzA1XDMwMQYGXDMwNlEhKVwyMDM7AFwyMTFT XDI2MgFcMjAyHABcMjEyXDIxMWJcMjEwXDMwNVwzMDEGBlwzMDZRISpcMjEwXDIxMT8/XDIwNyIg W3JlLXNlYXJjaC1iYWNrd2FyZCAiXFwoPzoiICJcXClcXD0iIHQgLTEgbG9va2luZy1hdCAiXFwp XFwnIl0gOSAoIyQgLiAxNzA0NzYpXSkKKHNldC1hZHZlcnRpc2VkLWNhbGxpbmctY29udmVudGlv biAnbG9va2luZy1iYWNrICcocmVnZXhwIGxpbWl0ICZvcHRpb25hbCBncmVlZHkpICIyNS4xIikj QDg4IFNhbWUgYXMgYGxvb2tpbmctYXQnIGV4Y2VwdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNo YW5nZSB0aGUgbWF0Y2ggZGF0YS4KCihmbiBSRUdFWFApHwooZGVmYWxpYXMgJ2xvb2tpbmctYXQt cCAjWzI1NyAiXDMwMAFcMzAxXCJcMjA3IiBbbG9va2luZy1hdCB0XSA0ICgjJCAuIDE3MTUxNyld KQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1 bmN0aW9uLXB1dCBsb29raW5nLWF0LXAgc3BlZWQgLTEgcHV0IGJ5dGUtb3B0aW1pemVyIGJ5dGUt Y29tcGlsZS1pbmxpbmUtZXhwYW5kXSA1KSNAMTEzIFNhbWUgYXMgYHN0cmluZy1tYXRjaCcgZXhj ZXB0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hhbmdlIHRoZSBtYXRjaCBkYXRhLgoKKGZuIFJF R0VYUCBTVFJJTkcgJm9wdGlvbmFsIFNUQVJUKR8KKGRlZmFsaWFzICdzdHJpbmctbWF0Y2gtcCAj Wzc3MCAiXDMwMAMDA1wzMDEkXDIwNyIgW3N0cmluZy1tYXRjaCB0XSA4ICgjJCAuIDE3MTgyOSld KQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1 bmN0aW9uLXB1dCBzdHJpbmctbWF0Y2gtcCBzcGVlZCAtMSBwdXQgYnl0ZS1vcHRpbWl6ZXIgYnl0 ZS1jb21waWxlLWlubGluZS1leHBhbmRdIDUpI0A0MDIgUmV0dXJuIG5vbi1uaWwgaWYgUE9TIGlz IGluIGEgbm9ybWFsIHN1YnJlZ2V4cCBjb250ZXh0IGluIFJFR0VYUC4KQSBzdWJyZWdleHAgY29u dGV4dCBpcyBvbmUgd2hlcmUgYSBzdWItcmVnZXhwIGNhbiBhcHBlYXIuCkEgbm9uLXN1YnJlZ2V4 cCBjb250ZXh0IGlzIGZvciBleGFtcGxlIHdpdGhpbiBicmFja2V0cywgb3Igd2l0aGluIGEKcmVw ZXRpdGlvbiBib3VuZHMgb3BlcmF0b3IgYFw9XHsuLi5cfScsIG9yIHJpZ2h0IGFmdGVyIGEgYFwn LgpJZiBTVEFSVCBpcyBub24tbmlsLCBpdCBzaG91bGQgYmUgYSBwb3NpdGlvbiBpbiBSRUdFWFAs IHNtYWxsZXIKdGhhbiBQT1MsIGFuZCBrbm93biB0byBiZSBpbiBhIHN1YnJlZ2V4cCBjb250ZXh0 LgoKKGZuIFJFR0VYUCBQT1MgJm9wdGlvbmFsIFNUQVJUKR8KKGRlZmFsaWFzICdzdWJyZWdleHAt Y29udGV4dC1wICNbNzcwICJcMzAwMRMAXDMwMQMCXDIwNgsAXDMwMgRPXDMwM1wiXDIxMFwzMDQw XDIwN1wyMTFBQFwzMDVcMjM1P1wyMDciIFsoaW52YWxpZC1yZWdleHApIHN0cmluZy1tYXRjaCAw ICIiIHQgKCJVbm1hdGNoZWQgWyBvciBbXiIgIlVubWF0Y2hlZCBcXHsiICJUcmFpbGluZyBiYWNr c2xhc2giKV0gNyAoIyQgLiAxNzIxNzMpXSkjQDI5MCBUaGUgZGVmYXVsdCB2YWx1ZSBvZiBzZXBh cmF0b3JzIGZvciBgc3BsaXQtc3RyaW5nJy4KCkEgcmVnZXhwIG1hdGNoaW5nIHN0cmluZ3Mgb2Yg d2hpdGVzcGFjZS4gIE1heSBiZSBsb2NhbGUtZGVwZW5kZW50CihhcyB5ZXQgdW5pbXBsZW1lbnRl ZCkuICBTaG91bGQgbm90IG1hdGNoIG5vbi1icmVha2luZyBzcGFjZXMuCgpXYXJuaW5nOiBiaW5k aW5nIHRoaXMgdG8gYSBkaWZmZXJlbnQgdmFsdWUgYW5kIHVzaW5nIGl0IGFzIGRlZmF1bHQgaXMK bGlrZWx5IHRvIGhhdmUgdW5kZXNpcmVkIHNlbWFudGljcy4fCihkZWZjb25zdCBzcGxpdC1zdHJp bmctZGVmYXVsdC1zZXBhcmF0b3JzICJbIFxmCVxuDQtdKyIgKCMkIC4gMTcyNzk5KSkjQDE2NTcg U3BsaXQgU1RSSU5HIGludG8gc3Vic3RyaW5ncyBib3VuZGVkIGJ5IG1hdGNoZXMgZm9yIFNFUEFS QVRPUlMuCgpUaGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgU1RSSU5HLCBhbmQgZWFjaCBtYXRjaCBm b3IgU0VQQVJBVE9SUywgYXJlCnNwbGl0dGluZyBwb2ludHMuICBUaGUgc3Vic3RyaW5ncyBtYXRj aGluZyBTRVBBUkFUT1JTIGFyZSByZW1vdmVkLCBhbmQKdGhlIHN1YnN0cmluZ3MgYmV0d2VlbiB0 aGUgc3BsaXR0aW5nIHBvaW50cyBhcmUgY29sbGVjdGVkIGFzIGEgbGlzdCwKd2hpY2ggaXMgcmV0 dXJuZWQuCgpJZiBTRVBBUkFUT1JTIGlzIG5vbi1uaWwsIGl0IHNob3VsZCBiZSBhIHJlZ3VsYXIg ZXhwcmVzc2lvbiBtYXRjaGluZyB0ZXh0CnRoYXQgc2VwYXJhdGVzLCBidXQgaXMgbm90IHBhcnQg b2YsIHRoZSBzdWJzdHJpbmdzLiAgSWYgbmlsIGl0IGRlZmF1bHRzIHRvCmBzcGxpdC1zdHJpbmct ZGVmYXVsdC1zZXBhcmF0b3JzJywgbm9ybWFsbHkgIlsgXGZcdFxuXHJcdl0rIiwgYW5kCk9NSVQt TlVMTFMgaXMgZm9yY2VkIHRvIHQuCgpJZiBPTUlULU5VTExTIGlzIHQsIHplcm8tbGVuZ3RoIHN1 YnN0cmluZ3MgYXJlIG9taXR0ZWQgZnJvbSB0aGUgbGlzdCAoc28KdGhhdCBmb3IgdGhlIGRlZmF1 bHQgdmFsdWUgb2YgU0VQQVJBVE9SUyBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlCmFy ZSBlZmZlY3RpdmVseSB0cmltbWVkKS4gIElmIG5pbCwgYWxsIHplcm8tbGVuZ3RoIHN1YnN0cmlu Z3MgYXJlIHJldGFpbmVkLAp3aGljaCBjb3JyZWN0bHkgcGFyc2VzIENTViBmb3JtYXQsIGZvciBl eGFtcGxlLgoKSWYgVFJJTSBpcyBub24tbmlsLCBpdCBzaG91bGQgYmUgYSByZWd1bGFyIGV4cHJl c3Npb24gdG8gbWF0Y2gKdGV4dCB0byB0cmltIGZyb20gdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9m IGVhY2ggc3Vic3RyaW5nLiAgSWYgdHJpbW1pbmcKbWFrZXMgdGhlIHN1YnN0cmluZyBlbXB0eSwg aXQgaXMgdHJlYXRlZCBhcyBudWxsLgoKSWYgeW91IHdhbnQgdG8gdHJpbSB3aGl0ZXNwYWNlIGZy b20gdGhlIHN1YnN0cmluZ3MsIHRoZSByZWxpYWJseSBjb3JyZWN0CndheSBpcyB1c2luZyBUUklN LiAgTWFraW5nIFNFUEFSQVRPUlMgbWF0Y2ggdGhhdCB3aGl0ZXNwYWNlIGdpdmVzIGluY29ycmVj dApyZXN1bHRzIHdoZW4gdGhlcmUgaXMgd2hpdGVzcGFjZSBhdCB0aGUgc3RhcnQgb3IgZW5kIG9m IFNUUklORy4gIElmIHlvdQpzZWUgc3VjaCBjYWxscyB0byBgc3BsaXQtc3RyaW5nJywgcGxlYXNl IGZpeCB0aGVtLgoKTm90ZSB0aGF0IHRoZSBlZmZlY3Qgb2YgYChzcGxpdC1zdHJpbmcgU1RSSU5H KScgaXMgdGhlIHNhbWUgYXMKYChzcGxpdC1zdHJpbmcgU1RSSU5HIHNwbGl0LXN0cmluZy1kZWZh dWx0LXNlcGFyYXRvcnMgdCknLiAgSW4gdGhlIHJhcmUKY2FzZSB0aGF0IHlvdSB3aXNoIHRvIHJl dGFpbiB6ZXJvLWxlbmd0aCBzdWJzdHJpbmdzIHdoZW4gc3BsaXR0aW5nIG9uCndoaXRlc3BhY2Us IHVzZSBgKHNwbGl0LXN0cmluZyBTVFJJTkcgc3BsaXQtc3RyaW5nLWRlZmF1bHQtc2VwYXJhdG9y cyknLgoKTW9kaWZpZXMgdGhlIG1hdGNoIGRhdGE7IHVzZSBgc2F2ZS1tYXRjaC1kYXRhJyBpZiBu ZWNlc3NhcnkuCgooZm4gU1RSSU5HICZvcHRpb25hbCBTRVBBUkFUT1JTIE9NSVQtTlVMTFMgVFJJ TSkfCihkZWZhbGlhcyAnc3BsaXQtc3RyaW5nICNbMTAyNSAiAlwyMDMIAAFcMjAyCQBcMzAxPwNc MjA2DwAIXDMwMlwzMDNDXDMwM0NcMzAzXDIxMUNcMzA0XDMwNQYHBg0FXDIwMzgABghcMzAyXDIy NFVcMjAzOAAGCAYPR1dcMjAzOAAGCFRcMjAyOgAGCCNcMjAzagAFBlxmR1dcMjAzagBcMzAxXDI2 MgMEBgZcMjQwXDIxMANcMzAyXDIyNFwyNDBcMjEwXDMwMlwyMjVcMjYyBlwyMTEGXGYGXG4GXG4G CAYIBgcmBlwyMTBcMjAyGAAEBgZcMjQwXDIxMAMGXGZHXDI0MFwyMTBcMjExBlxmBlxuBlxuBggG CAYHJgZcMjEwAVwyNDJcMjM3XDIwNyIgW3NwbGl0LXN0cmluZy1kZWZhdWx0LXNlcGFyYXRvcnMg dCAwIG5pbCAjWzE1NDIgIgRcMjAzGABcMzAwBQYHBVwyNDIjXDIxMQRcMjQyPVwyMDMXAANcMzAx XDIyNVwyNDBcMjEwXDIxMANcMjA0JAACXDI0MgJcMjQyV1wyMDVbAAUDXDI0MgNcMjQyTwVcMjAz SABcMzAwBgZcMzAyUAJcMzAxI1wyMTFcMjAzRwBcMjExAkdXXDIwM0cAAVwzMDECT1wyNjICXDIx MARcMjA0UwBcMjExR1wzMDFWXDIwNVkAAQEDXDI0MkJcMjQwXDI2MgFcMjA3IiBbc3RyaW5nLW1h dGNoIDAgIlxcJyJdIDExICJcblxuKGZuIFNUUklORyBUUklNIEtFRVAtTlVMTFMgVEhJUy1TVEFS VCBUSElTLUVORCBMSVNUKSJdIHN0cmluZy1tYXRjaF0gMTkgKCMkIC4gMTczMTY2KV0pCihkZWZh bGlhcyAnc3RyaW5nLXNwbGl0ICdzcGxpdC1zdHJpbmcpI0AzODcgQ29uY2F0ZW5hdGUgdGhlIFNU UklOR1MsIGFkZGluZyB0aGUgU0VQQVJBVE9SIChkZWZhdWx0ICIgIikuClRoaXMgdHJpZXMgdG8g cXVvdGUgdGhlIHN0cmluZ3MgdG8gYXZvaWQgYW1iaWd1aXR5IHN1Y2ggdGhhdAogIChzcGxpdC1z dHJpbmctYW5kLXVucXVvdGUgKGNvbWJpbmUtYW5kLXF1b3RlLXN0cmluZ3Mgc3RycykpID09IHN0 cnMKT25seSBzb21lIFNFUEFSQVRPUnMgd2lsbCB3b3JrIHByb3Blcmx5LgoKTm90ZSB0aGF0IHRo aXMgaXMgbm90IGludGVuZGVkIHRvIHByb3RlY3QgU1RSSU5HUyBmcm9tCmludGVycHJldGF0aW9u IGJ5IHNoZWxscywgdXNlIGBzaGVsbC1xdW90ZS1hcmd1bWVudCcgZm9yIHRoYXQuCgooZm4gU1RS SU5HUyAmb3B0aW9uYWwgU0VQQVJBVE9SKR8KKGRlZmFsaWFzICdjb21iaW5lLWFuZC1xdW90ZS1z dHJpbmdzICNbNTEzICJcMjExXDIwNgUAXDMwMFwzMDFcMzAyAiFQXDMwM1wzMDRcMzA1A1wiBQQj XDIwNyIgWyIgIiAiW1xcXCJdXFx8IiByZWdleHAtcXVvdGUgbWFwY29uY2F0IG1ha2UtY2xvc3Vy ZSAjWzI1NyAiXDMwMVwzMDACXCJcMjAzEABcMzAyXDMwM1wzMDRcMzA1BCNcMzAyUVwyMDdcMjA3 IiBbVjAgc3RyaW5nLW1hdGNoICJcIiIgcmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJbXFxcIl0i ICJcXFxcXFwmIl0gNiAiXG5cbihmbiBTVFIpIl1dIDggKCMkIC4gMTc1NTQyKV0pI0AyNDUgU3Bs aXQgdGhlIFNUUklORyBpbnRvIGEgbGlzdCBvZiBzdHJpbmdzLgpJdCB1bmRlcnN0YW5kcyBFbWFj cyBMaXNwIHF1b3Rpbmcgd2l0aGluIFNUUklORywgc3VjaCB0aGF0CiAgKHNwbGl0LXN0cmluZy1h bmQtdW5xdW90ZSAoY29tYmluZS1hbmQtcXVvdGUtc3RyaW5ncyBzdHJzKSkgPT0gc3RycwpUaGUg U0VQQVJBVE9SIHJlZ2V4cCBkZWZhdWx0cyB0byAiXHMtKyIuCgooZm4gU1RSSU5HICZvcHRpb25h bCBTRVBBUkFUT1IpHwooZGVmYWxpYXMgJ3NwbGl0LXN0cmluZy1hbmQtdW5xdW90ZSAjWzUxMyAi XDIxMVwyMDYFAFwzMDBcMzAxXDMwMgRcIlwyMTFcMjA0EwBcMzAzBANcMzA0I1wyMDdcMzA1AVwz MDY9P1wyMDUjAFwzMDMFXDMwNgRPBFwzMDQjXDMwNwYGBFwiXDIxMUBcMzEwBggDQVwzMTFPBgdc IkJcMjYyAVwiXDIwNyIgWyJcXHMtKyIgc3RyaW5nLXNlYXJjaCAiXCIiIHNwbGl0LXN0cmluZyB0 IGFwcGVuZCAwIHJlYWQtZnJvbS1zdHJpbmcgc3BsaXQtc3RyaW5nLWFuZC11bnF1b3RlIG5pbF0g MTIgKCMkIC4gMTc2MjQxKV0pI0AxNzQgUmVwbGFjZSBGUk9NQ0hBUiB3aXRoIFRPQ0hBUiBpbiBT VFJJTkcgZWFjaCB0aW1lIGl0IG9jY3Vycy4KVW5sZXNzIG9wdGlvbmFsIGFyZ3VtZW50IElOUExB Q0UgaXMgbm9uLW5pbCwgcmV0dXJuIGEgbmV3IHN0cmluZy4KCihmbiBGUk9NQ0hBUiBUT0NIQVIg U1RSSU5HICZvcHRpb25hbCBJTlBMQUNFKR8KKGRlZmFsaWFzICdzdWJzdC1jaGFyLWluLXN0cmlu ZyAjWzEwMjcgIgFHAVwyMDNcbgACXDIwMg0AXDMwMAMhAVwzMDFWXDIwMykAAVNcMjYyAlwyMTEC SAYGPVwyMDMNAFwyMTECBgZJXDIxMFwyMDINAFwyMDciIFtjb3B5LXNlcXVlbmNlIDBdIDkgKCMk IC4gMTc2NzgxKV0pI0AxMDggUmVwbGFjZSBGUk9NLVNUUklORyB3aXRoIFRPLVNUUklORyBpbiBJ Ti1TVFJJTkcgZWFjaCB0aW1lIGl0IG9jY3Vycy4KCihmbiBGUk9NLVNUUklORyBUTy1TVFJJTkcg SU4tU1RSSU5HKR8KKGRlZmFsaWFzICdzdHJpbmctcmVwbGFjZSAjWzc3MSAiAlwzMDBcMjMyXDIw MwsAXDMwMVwzMDJcMzAzXCJcMjEwXDMwNFwzMDVcMjExXDMwNgYGBQUjXDIxMVwyNjICXDIwMzcA AgFVXDIwNCgAAwMCTwJCXDI2MgIEAkJcMjYyAlwyMTEGBkdcXFwyNjIDXDIwMg4AAVwyMDQ9AANc MjA3AgRHVVwyMDRMAAMDXDMwNU8CQlwyNjICXDMwN1wzMTADXDIzN1wiXDIwNyIgWyIiIHNpZ25h bCB3cm9uZy1sZW5ndGgtYXJndW1lbnQgKDApIDAgbmlsIHN0cmluZy1zZWFyY2ggYXBwbHkgY29u Y2F0XSAxMCAoIyQgLiAxNzcxMTcpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzAw XDMwMVwzMDRcMzAzI1wzMDBcMjA3IiBbZnVuY3Rpb24tcHV0IHN0cmluZy1yZXBsYWNlIHB1cmUg dCBzaWRlLWVmZmVjdC1mcmVlXSA1KSNAMTAyMSBSZXBsYWNlIGFsbCBtYXRjaGVzIGZvciBSRUdF WFAgd2l0aCBSRVAgaW4gU1RSSU5HLgoKUmV0dXJuIGEgbmV3IHN0cmluZyBjb250YWluaW5nIHRo ZSByZXBsYWNlbWVudHMuCgpPcHRpb25hbCBhcmd1bWVudHMgRklYRURDQVNFLCBMSVRFUkFMIGFu ZCBTVUJFWFAgYXJlIGxpa2UgdGhlCmFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWVzIG9mIGZ1 bmN0aW9uIGByZXBsYWNlLW1hdGNoJy4gIElmIFNUQVJUCmlzIG5vbi1uaWwsIHN0YXJ0IHJlcGxh Y2VtZW50cyBhdCB0aGF0IGluZGV4IGluIFNUUklORywgYW5kIG9taXQKdGhlIGZpcnN0IFNUQVJU IGNoYXJhY3RlcnMgb2YgU1RSSU5HIGZyb20gdGhlIHJldHVybiB2YWx1ZS4KClJFUCBpcyBlaXRo ZXIgYSBzdHJpbmcgdXNlZCBhcyB0aGUgTkVXVEVYVCBhcmcgb2YgYHJlcGxhY2UtbWF0Y2gnIG9y IGEKZnVuY3Rpb24uICBJZiBpdCBpcyBhIGZ1bmN0aW9uLCBpdCBpcyBjYWxsZWQgd2l0aCB0aGUg YWN0dWFsIHRleHQgb2YgZWFjaAptYXRjaCwgYW5kIGl0cyB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBy ZXBsYWNlbWVudCB0ZXh0LiAgV2hlbiBSRVAgaXMgY2FsbGVkLAp0aGUgbWF0Y2ggZGF0YSBhcmUg dGhlIHJlc3VsdCBvZiBtYXRjaGluZyBSRUdFWFAgYWdhaW5zdCBhIHN1YnN0cmluZwpvZiBTVFJJ TkcsIHRoZSBzYW1lIHN1YnN0cmluZyB0aGF0IGlzIHRoZSBhY3R1YWwgdGV4dCBvZiB0aGUgbWF0 Y2ggd2hpY2gKaXMgcGFzc2VkIHRvIFJFUCBhcyBpdHMgYXJndW1lbnQuCgpUbyByZXBsYWNlIG9u bHkgdGhlIGZpcnN0IG1hdGNoIChpZiBhbnkpLCBtYWtlIFJFR0VYUCBtYXRjaCB1cCB0byBcXD0n CmFuZCByZXBsYWNlIGEgc3ViLWV4cHJlc3Npb24sIGUuZy4KICAocmVwbGFjZS1yZWdleHAtaW4t c3RyaW5nICJcXChmb29cXCkuKlxcXD0nIiAiYmFyIiAiIGZvbyBmb28iIG5pbCBuaWwgMSkKICAg ID0+ICIgYmFyIGZvbyIKCihmbiBSRUdFWFAgUkVQIFNUUklORyAmb3B0aW9uYWwgRklYRURDQVNF IExJVEVSQUwgU1VCRVhQIFNUQVJUKR8KKGRlZmFsaWFzICdyZXBsYWNlLXJlZ2V4cC1pbi1zdHJp bmcgI1sxNzk1ICIERwFcMjA2BwBcMzAwXDMwMVwyMTFcMjExXDIxMVwzMDIgXDMwM1wzMDQCXCJc MjE2BQYHV1wyMDN0AFwzMDUGDgYNBggjXDIwM3QAXDMwMFwyMjRcMjYyA1wzMDBcMjI1XDI2MgIB A1VcMjAzOQAGBgNUXlwyNjICXDMwNgNbIVwyMTAGCwMDT1wyNjIEXDMwNwYNO1wyMDNRAAYNXDIw MlkABg1cMzEwXDMwMAYHXCIhBlxmBlxmBgcGDSUGXGYGBwVPBgZCQlwyNjIFAVwyNjIGXDIwMhIA BgsGBgYITwVCXDI2MgVcMzExXDMxMgYGXDIzN1wiKVwyMDciIFswIG5pbCBtYXRjaC1kYXRhIG1h a2UtY2xvc3VyZSAjWzAgIlwzMDFcMzAwXDMwMlwiXDIwNyIgW1YwIHNldC1tYXRjaC1kYXRhIHRd IDNdIHN0cmluZy1tYXRjaCBtYXRjaC1kYXRhLS10cmFuc2xhdGUgcmVwbGFjZS1tYXRjaCBtYXRj aC1zdHJpbmcgYXBwbHkgY29uY2F0XSAyMCAoIyQgLiAxNzc2NDEpXSkjQDE4MSBMaWtlIGBzdHJp bmctZXF1YWwnLCBidXQgY2FzZS1pbnNlbnNpdGl2ZS4KVXBwZXItY2FzZSBhbmQgbG93ZXItY2Fz ZSBsZXR0ZXJzIGFyZSB0cmVhdGVkIGFzIGVxdWFsLgpVbmlieXRlIHN0cmluZ3MgYXJlIGNvbnZl cnRlZCB0byBtdWx0aWJ5dGUgZm9yIGNvbXBhcmlzb24uCgooZm4gU1RSSU5HMSBTVFJJTkcyKR8K KGRlZmFsaWFzICdzdHJpbmctZXF1YWwtaWdub3JlLWNhc2UgI1s1MTQgIlwzMDACXDMwMVwzMDIE XDMwMVwzMDJcMzAzJgdcMzAzPVwyMDciIFtjb21wYXJlLXN0cmluZ3MgMCBuaWwgdF0gMTAgKCMk IC4gMTc5MTQxKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwzMDFcMzA0XDMw MyNcMzAwXDMwMVwzMDVcMzA2I1wzMDdcMzAxXDMxMFwzMTEjXDIwNyIgW2Z1bmN0aW9uLXB1dCBz dHJpbmctZXF1YWwtaWdub3JlLWNhc2UgcHVyZSB0IHNpZGUtZWZmZWN0LWZyZWUgc3BlZWQgLTEg cHV0IGJ5dGUtb3B0aW1pemVyIGJ5dGUtY29tcGlsZS1pbmxpbmUtZXhwYW5kXSA3KSNAMTg3IFJl dHVybiBub24tbmlsIGlmIFBSRUZJWCBpcyBhIHByZWZpeCBvZiBTVFJJTkcuCklmIElHTk9SRS1D QVNFIGlzIG5vbi1uaWwsIHRoZSBjb21wYXJpc29uIGlzIGRvbmUgd2l0aG91dCBwYXlpbmcgYXR0 ZW50aW9uCnRvIGNhc2UgZGlmZmVyZW5jZXMuCgooZm4gUFJFRklYIFNUUklORyAmb3B0aW9uYWwg SUdOT1JFLUNBU0UpHwooZGVmYWxpYXMgJ3N0cmluZy1wcmVmaXgtcCAjWzc3MCAiAkdcMjExA0dW P1wyMDUZAFwzMDAEXDMwMQMGBlwzMDEGBgYIJgdcMzAyPVwyMDciIFtjb21wYXJlLXN0cmluZ3Mg MCB0XSAxMiAoIyQgLiAxNzk2NjIpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzAw XDMwMVwzMDRcMzAzI1wzMDBcMjA3IiBbZnVuY3Rpb24tcHV0IHN0cmluZy1wcmVmaXgtcCBwdXJl IHQgc2lkZS1lZmZlY3QtZnJlZV0gNSkjQDE4NyBSZXR1cm4gbm9uLW5pbCBpZiBTVUZGSVggaXMg YSBzdWZmaXggb2YgU1RSSU5HLgpJZiBJR05PUkUtQ0FTRSBpcyBub24tbmlsLCB0aGUgY29tcGFy aXNvbiBpcyBkb25lIHdpdGhvdXQgcGF5aW5nCmF0dGVudGlvbiB0byBjYXNlIGRpZmZlcmVuY2Vz LgoKKGZuIFNVRkZJWCBTVFJJTkcgJm9wdGlvbmFsIElHTk9SRS1DQVNFKR8KKGRlZmFsaWFzICdz dHJpbmctc3VmZml4LXAgI1s3NzAgIgFHA0daXDIxMVwzMDBZXDIwNRkAXDMwMQRcMzAyXDIxMQYG BVwzMDIGCCYHXDMwMz1cMjA3IiBbMCBjb21wYXJlLXN0cmluZ3MgbmlsIHRdIDEyICgjJCAuIDE4 MDA5MildKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wzMDBcMzAxXDMwNFwzMDMjXDMw MFwyMDciIFtmdW5jdGlvbi1wdXQgc3RyaW5nLXN1ZmZpeC1wIHB1cmUgdCBzaWRlLWVmZmVjdC1m cmVlXSA1KSNANTYyIFJldHVybiBhIHN0cmluZyB0aGF0IGNhbiBiZSBzYWZlbHkgaW5zZXJ0ZWQg aW4gbGVmdC10by1yaWdodCB0ZXh0LgoKTm9ybWFsbHksIGluc2VydGluZyBhIHN0cmluZyB3aXRo IHJpZ2h0LXRvLWxlZnQgKFJUTCkgc2NyaXB0IGludG8KYSBidWZmZXIgbWF5IGNhdXNlIHNvbWUg c3Vic2VxdWVudCB0ZXh0IHRvIGJlIGRpc3BsYXllZCBhcyBwYXJ0Cm9mIHRoZSBSVEwgc2VnbWVu dCAodXN1YWxseSB0aGlzIGFmZmVjdHMgcHVuY3R1YXRpb24gY2hhcmFjdGVycykuClRoaXMgZnVu Y3Rpb24gcmV0dXJucyBhIHN0cmluZyB0aGF0IGRpc3BsYXlzIGFzIFNUUiBidXQgZm9yY2VzCnN1 YnNlcXVlbnQgdGV4dCB0byBiZSBkaXNwbGF5ZWQgYXMgbGVmdC10by1yaWdodC4KCklmIFNUUiBj b250YWlucyBhbnkgUlRMIGNoYXJhY3RlciwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgc3RyaW5n CmNvbnNpc3Rpbmcgb2YgU1RSIGZvbGxvd2VkIGJ5IGFuIGludmlzaWJsZSBsZWZ0LXRvLXJpZ2h0 IG1hcmsKKExSTSkgY2hhcmFjdGVyLiAgT3RoZXJ3aXNlLCBpdCByZXR1cm5zIFNUUi4KCihmbiBT VFIpHwooZGVmYWxpYXMgJ2JpZGktc3RyaW5nLW1hcmstbGVmdC10by1yaWdodCAjWzI1NyAiXDIx MTtcMjA0XGYAXDMwMFwzMDFcMzAyA0RcIlwyMTBcMzAzXDMwNAJcIlwyMDMdAFwyMTFcMzA1XDMw NlwzMDchXDMxMFwzMTEjUFwyMDdcMjA3IiBbc2lnbmFsIHdyb25nLXR5cGUtYXJndW1lbnQgc3Ry aW5ncCBzdHJpbmctbWF0Y2ggIlxcY1IiIHByb3BlcnRpemUgc3RyaW5nIDgyMDYgaW52aXNpYmxl IHRdIDYgKCMkIC4gMTgwNTMyKV0pI0AxODAgUmV0dXJuIG5vbi1uaWwgaWYgU1RSSU5HMSBpcyBn cmVhdGVyIHRoYW4gU1RSSU5HMiBpbiBsZXhpY29ncmFwaGljIG9yZGVyLgpDYXNlIGlzIHNpZ25p ZmljYW50LgpTeW1ib2xzIGFyZSBhbHNvIGFsbG93ZWQ7IHRoZWlyIHByaW50IG5hbWVzIGFyZSB1 c2VkIGluc3RlYWQuCgooZm4gU1RSSU5HMSBTVFJJTkcyKR8KKGRlZmFsaWFzICdzdHJpbmctZ3Jl YXRlcnAgI1s1MTQgIlwyMTECXDIzMVwyMDciIFtdIDQgKCMkIC4gMTgxMzQ0KV0pI0AxMjIgRm9y bSBhIHJlZ2V4cCB0byBmaW5kIEZJTEUgaW4gYGxvYWQtaGlzdG9yeScuCkZJTEUsIGEgc3RyaW5n LCBpcyBkZXNjcmliZWQgaW4gdGhlIGZ1bmN0aW9uIGBldmFsLWFmdGVyLWxvYWQnLgoKKGZuIEZJ TEUpHwooZGVmYWxpYXMgJ2xvYWQtaGlzdG9yeS1yZWdleHAgI1syNTcgIlwzMDIBIVwyMDMLAFwz MDMBIVwyNjIBXDMwMgEhXDIwMxUAXDMwNFwyMDIWAFwzMDVcMzA2AiFcMzA3AyFcMjAzIwBcMzEw XDIwMisAXDMxMVwzMTJcMzA2CFwzMTMjXDMxNFFcMzExXDMxMlwzMDYJXDMxMyNcMzE1XDI2MAZc MjA3IiBbbG9hZC1zdWZmaXhlcyBqa2EtY29tcHItbG9hZC1zdWZmaXhlcyBmaWxlLW5hbWUtYWJz b2x1dGUtcCBmaWxlLXRydWVuYW1lICJcXGAiICJcXChcXGBcXHwvXFwpIiByZWdleHAtcXVvdGUg ZmlsZS1uYW1lLWV4dGVuc2lvbiAiIiAiXFwoIiBtYXBjb25jYXQgIlxcfCIgIlxcKT8iICJcXCk/ XFwnIl0gOSAoIyQgLiAxODE1OTkpXSkjQDExNyBHZXQgdGhlIGZpcnN0IGVsdCBvZiBgbG9hZC1o aXN0b3J5JyB3aG9zZSBjYXIgbWF0Y2hlcyBGSUxFLVJFR0VYUC4KUmV0dXJuIG5pbCBpZiB0aGVy ZSBpc24ndCBvbmUuCgooZm4gRklMRS1SRUdFWFApHwooZGVmYWxpYXMgJ2xvYWQtaGlzdG9yeS1m aWxlbmFtZS1lbGVtZW50ICNbMjU3ICIIXDIxMVwyMDUHAFwyMTFAXDMwMSBcMzAyXDMwMwJcIlwy MTYCXDIwMy4AAUBcMjAzHwBcMzA0BANAXCJcMjA0LgACQVwyNjIDAlwyMDUpAAJAXDI2MgJcMjAy DgApXDIxMFwyMDciIFtsb2FkLWhpc3RvcnkgbWF0Y2gtZGF0YSBtYWtlLWNsb3N1cmUgI1swICJc MzAxXDMwMFwzMDJcIlwyMDciIFtWMCBzZXQtbWF0Y2gtZGF0YSB0XSAzXSBzdHJpbmctbWF0Y2hd IDcgKCMkIC4gMTgyMDg3KV0pI0AxNTYzIEFycmFuZ2UgdGhhdCBpZiBGSUxFIGlzIGxvYWRlZCwg Rk9STSB3aWxsIGJlIHJ1biBpbW1lZGlhdGVseSBhZnRlcndhcmRzLgpJZiBGSUxFIGlzIGFscmVh ZHkgbG9hZGVkLCBldmFsdWF0ZSBGT1JNIHJpZ2h0IG5vdy4KRk9STSBjYW4gYmUgYW4gRWxpc3Ag ZXhwcmVzc2lvbiAoaW4gd2hpY2ggY2FzZSBpdCdzIHBhc3NlZCB0byBgZXZhbCcpLApvciBhIGZ1 bmN0aW9uIChpbiB3aGljaCBjYXNlIGl0J3MgcGFzc2VkIHRvIGBmdW5jYWxsJyB3aXRoIG5vIGFy Z3VtZW50KS4KCklmIGEgbWF0Y2hpbmcgZmlsZSBpcyBsb2FkZWQgYWdhaW4sIEZPUk0gd2lsbCBi ZSBldmFsdWF0ZWQgYWdhaW4uCgpJZiBGSUxFIGlzIGEgc3RyaW5nLCBpdCBtYXkgYmUgZWl0aGVy IGFuIGFic29sdXRlIG9yIGEgcmVsYXRpdmUgZmlsZQpuYW1lLCBhbmQgbWF5IGhhdmUgYW4gZXh0 ZW5zaW9uIChlLmcuICIuZWwiKSBvciBtYXkgbGFjayBvbmUsIGFuZAphZGRpdGlvbmFsbHkgbWF5 IG9yIG1heSBub3QgaGF2ZSBhbiBleHRlbnNpb24gZGVub3RpbmcgYSBjb21wcmVzc2VkCmZvcm1h dCAoZS5nLiAiLmd6IikuCgpXaGVuIEZJTEUgaXMgYWJzb2x1dGUsIHRoaXMgZmlyc3QgY29udmVy dHMgaXQgdG8gYSB0cnVlIG5hbWUgYnkgY2hhc2luZwpzeW1ib2xpYyBsaW5rcy4gIE9ubHkgYSBm aWxlIG9mIHRoaXMgbmFtZSAoc2VlIG5leHQgcGFyYWdyYXBoIHJlZ2FyZGluZwpleHRlbnNpb25z KSB3aWxsIHRyaWdnZXIgdGhlIGV2YWx1YXRpb24gb2YgRk9STS4gIFdoZW4gRklMRSBpcyByZWxh dGl2ZSwKYSBmaWxlIHdob3NlIGFic29sdXRlIHRydWUgbmFtZSBlbmRzIGluIEZJTEUgd2lsbCB0 cmlnZ2VyIGV2YWx1YXRpb24uCgpXaGVuIEZJTEUgbGFja3MgYW4gZXh0ZW5zaW9uLCBhIGZpbGUg bmFtZSB3aXRoIGFueSBleHRlbnNpb24gd2lsbCB0cmlnZ2VyCmV2YWx1YXRpb24uICBPdGhlcndp c2UsIGl0cyBleHRlbnNpb24gbXVzdCBtYXRjaCBGSUxFJ3MuICBBIGZ1cnRoZXIKZXh0ZW5zaW9u IGZvciBhIGNvbXByZXNzZWQgZm9ybWF0IChlLmcuICIuZ3oiKSBvbiBGSUxFIHdpbGwgbm90IGFm ZmVjdAp0aGlzIG5hbWUgbWF0Y2hpbmcuCgpBbHRlcm5hdGl2ZWx5LCBGSUxFIGNhbiBiZSBhIGZl YXR1cmUgKGkuZS4gYSBzeW1ib2wpLCBpbiB3aGljaCBjYXNlIEZPUk0KaXMgZXZhbHVhdGVkIGF0 IHRoZSBlbmQgb2YgYW55IGZpbGUgdGhhdCBgcHJvdmlkZSdzIHRoaXMgZmVhdHVyZS4KSWYgdGhl IGZlYXR1cmUgaXMgcHJvdmlkZWQgd2hlbiBldmFsdWF0aW5nIGNvZGUgbm90IGFzc29jaWF0ZWQg d2l0aCBhCmZpbGUsIEZPUk0gaXMgZXZhbHVhdGVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBwcm92 aWRlIHN0YXRlbWVudC4KClVzdWFsbHkgRklMRSBpcyBqdXN0IGEgbGlicmFyeSBuYW1lIGxpa2Ug ImZvbnQtbG9jayIgb3IgYSBmZWF0dXJlIG5hbWUKbGlrZSBgZm9udC1sb2NrJy4KClRoaXMgZnVu Y3Rpb24gbWFrZXMgb3IgYWRkcyB0byBhbiBlbnRyeSBvbiBgYWZ0ZXItbG9hZC1hbGlzdCcuCgpT ZWUgYWxzbyBgd2l0aC1ldmFsLWFmdGVyLWxvYWQnLgoKKGZuIEZJTEUgRk9STSkfCihkZWZhbGlh cyAnZXZhbC1hZnRlci1sb2FkICNbNTE0ICIBO1wyMDMQAFwzMDJcMzAzAyEhXDIxMVwyNjIDXDIw MhEAAVwzMDQBCFwiXDMwNQMhXDIwMx8AAlwyMDImAFwzMDZcMzA3XDMxMAVFCVwiAVwyMDQyAAJD XDI2MgIBCEIQBDtcMjAzPQBcMzExAyFcMjAyQABcMzEyBSFcMjA1RQBcMjExIAM5XDIwNE4AAVwy MDJSAFwzMTNcMzE0A1wiXDIxMQRBXDIzNVwyMDReAAMBQ1wyNDRcMjEwXDIxMFwyMDciIFthZnRl ci1sb2FkLWFsaXN0IGxleGljYWwtYmluZGluZyBwdXJlY29weSBsb2FkLWhpc3RvcnktcmVnZXhw IGFzc29jIGZ1bmN0aW9ucCBldmFsIGxhbWJkYSBuaWwgbG9hZC1oaXN0b3J5LWZpbGVuYW1lLWVs ZW1lbnQgZmVhdHVyZXAgbWFrZS1jbG9zdXJlICNbMCAiCVwyMDQHAFwzMDAgXDIwNwlcMzAyXDMw MyFcMjExXDMwNFwzMDUDBVwzMDAkTVwyMTBcMzA2XDMwNwJcMzEwI1wyMDciIFtWMCBsb2FkLWZp bGUtbmFtZSBtYWtlLXN5bWJvbCAiZXZhbC1hZnRlci1sb2FkLWhlbHBlciIgbWFrZS1jbG9zdXJl ICNbMjU3ICJcMjExXDMwMVwyMzJcMjA1DQBcMzAzXDMwNFwzMDBcIlwyMTBcMzAyIFwyMDciIFtW MCBWMSBWMiByZW1vdmUtaG9vayBhZnRlci1sb2FkLWZ1bmN0aW9uc10gNCAiXG5cbihmbiBGSUxF KSJdIGFkZC1ob29rIGFmdGVyLWxvYWQtZnVuY3Rpb25zIGFwcGVuZF0gOF1dIDkgKCMkIC4gMTgy NDgyKV0pCihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwzMDFcMzA0XDMwNSNcMzAw XDIwNyIgW2Z1bmN0aW9uLXB1dCBldmFsLWFmdGVyLWxvYWQgbGlzcC1pbmRlbnQtZnVuY3Rpb24g MSBjb21waWxlci1tYWNybyBldmFsLWFmdGVyLWxvYWQtLWFub24tY21hY3JvXSA1KSNAMjQgCgoo Zm4gV0hPTEUgRklMRSBGT1JNKR8KKGRlZmFsaWFzICdldmFsLWFmdGVyLWxvYWQtLWFub24tY21h Y3JvICNbNzcxICJcMjExXDI0MlwzMDA9XDIwMxEAXDMwMQJcMzAyXDMwMwRBQEVFXDIwNwJcMjA3 IiBbcXVvdGUgZXZhbC1hZnRlci1sb2FkIGxhbWJkYSBuaWxdIDggKCMkIC4gMTg0OTA1KV0pI0Ay NjYgRXhlY3V0ZSBCT0RZIGFmdGVyIEZJTEUgaXMgbG9hZGVkLgpGSUxFIGlzIG5vcm1hbGx5IGEg ZmVhdHVyZSBuYW1lLCBidXQgaXQgY2FuIGFsc28gYmUgYSBmaWxlIG5hbWUsCmluIGNhc2UgdGhh dCBmaWxlIGRvZXMgbm90IHByb3ZpZGUgYW55IGZlYXR1cmUuICBTZWUgYGV2YWwtYWZ0ZXItbG9h ZCcKZm9yIG1vcmUgZGV0YWlscyBhYm91dCB0aGUgZGlmZmVyZW50IGZvcm1zIG9mIEZJTEUgYW5k IHRoZWlyIHNlbWFudGljcy4KCihmbiBGSUxFICZyZXN0IEJPRFkpHwooZGVmYWxpYXMgJ3dpdGgt ZXZhbC1hZnRlci1sb2FkICcobWFjcm8gLiAjWzM4NSAiXDMwMAJcMzAxXDMwMgRCQkVcMjA3IiBb ZXZhbC1hZnRlci1sb2FkIGxhbWJkYSBuaWxdIDcgKCMkIC4gMTg1MDgyKV0pKQooYnl0ZS1jb2Rl ICJcMzAwXDMwMVwzMDJcMzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCB3 aXRoLWV2YWwtYWZ0ZXItbG9hZCBsaXNwLWluZGVudC1mdW5jdGlvbiAxIHB1dCBlZGVidWctZm9y bS1zcGVjIChmb3JtIGRlZi1ib2R5KV0gNSkjQDEzNyBTcGVjaWFsIGhvb2sgcnVuIGFmdGVyIGxv YWRpbmcgYSBmaWxlLgpFYWNoIGZ1bmN0aW9uIHRoZXJlIGlzIGNhbGxlZCB3aXRoIGEgc2luZ2xl IGFyZ3VtZW50LCB0aGUgYWJzb2x1dGUKbmFtZSBvZiB0aGUgZmlsZSBqdXN0IGxvYWRlZC4fCihk ZWZ2YXIgYWZ0ZXItbG9hZC1mdW5jdGlvbnMgbmlsICgjJCAuIDE4NTYyNCkpI0AyMDIgRXZhbHVh dGUgYWxsIGBldmFsLWFmdGVyLWxvYWQnIGZvcm1zLCBpZiBhbnksIGZvciBBQlMtRklMRS4KQUJT LUZJTEUsIGEgc3RyaW5nLCBzaG91bGQgYmUgdGhlIGFic29sdXRlIHRydWUgbmFtZSBvZiBhIGZp bGUganVzdCBsb2FkZWQuClRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGRpcmVjdGx5IGZyb20gdGhl IEMgY29kZS4KCihmbiBBQlMtRklMRSkfCihkZWZhbGlhcyAnZG8tYWZ0ZXItbG9hZC1ldmFsdWF0 aW9uICNbMjU3ICIIXDIxMVwyMDMpAFwyMTFAXDIxMUA7XDIwM1wiAFwyMTFAA1wzMDVcMzA2AwMD XDMwNyRcMjY2XDIwM1wyMDNcIgBcMzEwXDMxMQJBXCJcMjEwAUFcMjY2XDIwMlwyMDIBAFwyMTBc MzEyAVwzMDVcMzA2AwMDXDMwNyRcMjY2XDIwM1wyMDNcMjI1AFwzMTMBIVwzMTQBXDMxNVwzMDZc MzE2BVwiTwlcIlwzMTdcMzIwAlwiXDMyMVwzMjJcMzIzIVwyMDNXAFwzMjNcMzI0BFwiXDIwM1wy MjMAXDMyNVwzMDIhXDIwM1wyMDAAXG5cMjAzXDIwMABcbjtcMjAzdwBcMzEyXDMyNlxuC1wiXDMw NVwzMDYDAwNcMzA3JFwyNjZcMjAzXDIwNFwyMjMAXDMyN1wzMzADXCJcMjY2BVwyMDJcMjI1AFxm XDIwM1wyMTQAXDIxMQIhXDI2NgVcMjAyXDIyNQBcMzMxXDMxNVwzMDUDBSRcMjEwXDI2NgRcMzMy XDMzMwJcIlwyMDciIFthZnRlci1sb2FkLWFsaXN0IG9iYXJyYXkgYnl0ZS1jb21waWxlLWN1cnJl bnQtZmlsZSBieXRlLWNvbXBpbGUtcm9vdC1kaXIgbm9uaW50ZXJhY3RpdmUgbmlsIHN0cmluZy1t YXRjaCB0IG1hcGMgZnVuY2FsbCAiL29ic29sZXRlL1teL10qXFwnIiBmaWxlLW5hbWUtbm9uZGly ZWN0b3J5IGludGVybiAwICJcXC5lbGM/XFw+IiBmb3JtYXQgIlBhY2thZ2UgJXMgaXMgZGVwcmVj YXRlZCIgI1syNTcgIlwzMDBcMzAxAlwiXDIwNyIgW21lc3NhZ2UgIiVzIl0gNCAiXG5cbihmbiBN U0cpIl0gZmJvdW5kcCBieXRlLWNvbXBpbGUtd2FybmluZy1lbmFibGVkLXAgb2Jzb2xldGUgYm91 bmRwIGV4cGFuZC1maWxlLW5hbWUgYnl0ZS1jb21waWxlLXdhcm4gIiVzIiBydW4td2l0aC1pZGxl LXRpbWVyIHJ1bi1ob29rLXdpdGgtYXJncyBhZnRlci1sb2FkLWZ1bmN0aW9uc10gMTMgKCMkIC4g MTg1ODE0KV0pI0AxMDMgRGlzcGxheSBkZWxheWVkIHdhcm5pbmdzIGZyb20gYGRlbGF5ZWQtd2Fy bmluZ3MtbGlzdCcuClVzZWQgZnJvbSBgZGVsYXllZC13YXJuaW5ncy1ob29rJyAod2hpY2ggc2Vl KS4fCihkZWZhbGlhcyAnZGlzcGxheS1kZWxheWVkLXdhcm5pbmdzICNbMCAiCFwyMzdcMjExXDIw MxQAXDIxMUBcMzAxXDMwMgJcIlwyMTABQVwyNjZcMjAyXDIwMgIAXDIxMFwzMDNcMjExEFwyMDci IFtkZWxheWVkLXdhcm5pbmdzLWxpc3QgYXBwbHkgZGlzcGxheS13YXJuaW5nIG5pbF0gNSAoIyQg LiAxODY5MTgpXSkjQDE1NiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGBkZWxheWVkLXdhcm5pbmdz LWxpc3QnLgpDb2xsYXBzZSBpZGVudGljYWwgYWRqYWNlbnQgd2FybmluZ3MgaW50byBvbmUgKHBs dXMgY291bnQpLgpVc2VkIGZyb20gYGRlbGF5ZWQtd2FybmluZ3MtaG9vaycgKHdoaWNoIHNlZSku HwooZGVmYWxpYXMgJ2NvbGxhcHNlLWRlbGF5ZWQtd2FybmluZ3MgI1swICJcMzAxXDMwMlwyMTEI XDIwMzwACFwyMTFBEFwyNDJcMjYyAVwyMTEIQFwyMzJcMjAzHAACVFwyNjIDXDIwMgMAAlwzMDFW XDIwMzQAXDIxMVwzMDNcMzA0A0FABgYjAkFBQlwyNDFcMjEwXDMwMVwyNjIDXDIxMQJCXDI2MgJc MjAyAwABXDIzN1wyMTEQXDIwNyIgW2RlbGF5ZWQtd2FybmluZ3MtbGlzdCAxIG5pbCBmb3JtYXQg IiVzIFslZCB0aW1lc10iXSA4ICgjJCAuIDE4NzIwNSldKSNAMjIxIE5vcm1hbCBob29rIHJ1biB0 byBwcm9jZXNzIGFuZCBkaXNwbGF5IGRlbGF5ZWQgd2FybmluZ3MuCkJ5IGRlZmF1bHQsIHRoaXMg aG9vayBjb250YWlucyBmdW5jdGlvbnMgdG8gY29uc29saWRhdGUgdGhlCndhcm5pbmdzIGxpc3Rl ZCBpbiBgZGVsYXllZC13YXJuaW5ncy1saXN0JywgZGlzcGxheSB0aGVtLCBhbmQgc2V0CmBkZWxh eWVkLXdhcm5pbmdzLWxpc3QnIGJhY2sgdG8gbmlsLh8KKGRlZnZhciBkZWxheWVkLXdhcm5pbmdz LWhvb2sgJyhjb2xsYXBzZS1kZWxheWVkLXdhcm5pbmdzIGRpc3BsYXktZGVsYXllZC13YXJuaW5n cykgKCMkIC4gMTg3NjI3KSkjQDE2NiBEaXNwbGF5IGEgZGVsYXllZCB3YXJuaW5nLgpBc2lkZSBm cm9tIGdvaW5nIHRocm91Z2ggYGRlbGF5ZWQtd2FybmluZ3MtbGlzdCcsIHRoaXMgaXMgZXF1aXZh bGVudAp0byBgZGlzcGxheS13YXJuaW5nJy4KCihmbiBUWVBFIE1FU1NBR0UgJm9wdGlvbmFsIExF VkVMIEJVRkZFUi1OQU1FKR8KKGRlZmFsaWFzICdkZWxheS13YXJuaW5nICNbMTAyNiAiAwMDA0YI QlwyMTEQXDIwNyIgW2RlbGF5ZWQtd2FybmluZ3MtbGlzdF0gOCAoIyQgLiAxODc5NTIpXSkjQDQy OSBBZGQgRUxFTUVOVCB0byBgYnVmZmVyLWludmlzaWJpbGl0eS1zcGVjJy4KU2VlIGRvY3VtZW50 YXRpb24gZm9yIGBidWZmZXItaW52aXNpYmlsaXR5LXNwZWMnIGZvciB0aGUga2luZCBvZiBlbGVt ZW50cwp0aGF0IGNhbiBiZSBhZGRlZC4KCklmIGBidWZmZXItaW52aXNpYmlsaXR5LXNwZWMnIGlz bid0IGEgbGlzdCBiZWZvcmUgY2FsbGluZyB0aGlzCmZ1bmN0aW9uLCBgYnVmZmVyLWludmlzaWJp bGl0eS1zcGVjJyB3aWxsIGFmdGVyd2FyZHMgYmUgYSBsaXN0CndpdGggdGhlIHZhbHVlIGAodCBF TEVNRU5UKScuICBUaGlzIG1lYW5zIHRoYXQgaWYgdGV4dCBleGlzdHMKdGhhdCBpbnZpc2liaWxp dHkgdmFsdWVzIHRoYXQgYXJlbid0IGVpdGhlciB0IG9yIEVMRU1FTlQsIHRoYXQKdGV4dCB3aWxs IGJlY29tZSB2aXNpYmxlLgoKKGZuIEVMRU1FTlQpHwooZGVmYWxpYXMgJ2FkZC10by1pbnZpc2li aWxpdHktc3BlYyAjWzI1NyAiCFwzMDE9XDIwMwkAXDMwMUMQXDIxMQhCXDIxMRBcMjA3IiBbYnVm ZmVyLWludmlzaWJpbGl0eS1zcGVjIHRdIDMgKCMkIC4gMTg4MjE2KV0pI0AzMDIgUmVtb3ZlIEVM RU1FTlQgZnJvbSBgYnVmZmVyLWludmlzaWJpbGl0eS1zcGVjJy4KSWYgYGJ1ZmZlci1pbnZpc2li aWxpdHktc3BlYycgaXNuJ3QgYSBsaXN0IGJlZm9yZSBjYWxsaW5nIHRoaXMKZnVuY3Rpb24sIGl0 IHdpbGwgYmUgbWFkZSBpbnRvIGEgbGlzdCBjb250YWluaW5nIGp1c3QgdCBhcyB0aGUKb25seSBs aXN0IG1lbWJlci4gIFRoaXMgbWVhbnMgdGhhdCBpZiB0ZXh0IGV4aXN0cyB3aXRoIG5vbi10Cmlu dmlzaWJpbGl0eSB2YWx1ZXMsIHRoYXQgdGV4dCB3aWxsIGJlY29tZSB2aXNpYmxlLgoKKGZuIEVM RU1FTlQpHwooZGVmYWxpYXMgJ3JlbW92ZS1mcm9tLWludmlzaWJpbGl0eS1zcGVjICNbMjU3ICII OlwyMDNcZgBcMzAxAQhcIlwyMDIOAFwzMDJDXDIxMRBcMjA3IiBbYnVmZmVyLWludmlzaWJpbGl0 eS1zcGVjIGRlbGV0ZSB0XSA0ICgjJCAuIDE4ODc3NSldKSNAMjUxIEV2YWx1YXRlIEJPRFkgd2l0 aCBzeW50YXggdGFibGUgb2YgY3VycmVudCBidWZmZXIgc2V0IHRvIFRBQkxFLgpUaGUgc3ludGF4 IHRhYmxlIG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBzYXZlZCwgQk9EWSBpcyBldmFsdWF0ZWQs IGFuZCB0aGUKc2F2ZWQgdGFibGUgaXMgcmVzdG9yZWQsIGV2ZW4gaW4gY2FzZSBvZiBhbiBhYm5v cm1hbCBleGl0LgpWYWx1ZSBpcyB3aGF0IEJPRFkgcmV0dXJucy4KCihmbiBUQUJMRSAmcmVzdCBC T0RZKR8KKGRlZmFsaWFzICd3aXRoLXN5bnRheC10YWJsZSAnKG1hY3JvIC4gI1szODUgIlwzMDBc MzAxIVwzMDBcMzAyIVwzMDMCXDMwNEICXDMwNUJEXDMwNlwzMDdcMzEwBghEBgdCQlwzMTFcMzEy BgZEXDMxMAYIREVFRVwyMDciIFttYWtlLXN5bWJvbCAidGFibGUiICJidWZmZXIiIGxldCAoKHN5 bnRheC10YWJsZSkpICgoY3VycmVudC1idWZmZXIpKSB1bndpbmQtcHJvdGVjdCBwcm9nbiBzZXQt c3ludGF4LXRhYmxlIHNhdmUtY3VycmVudC1idWZmZXIgc2V0LWJ1ZmZlcl0gMTIgKCMkIC4gMTg5 MjIzKV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJcMzAzI1wyMTBcMzA0XDMwMVwzMDVcMzA2 I1wzMDBcMjA3IiBbcHV0IHdpdGgtc3ludGF4LXRhYmxlIGVkZWJ1Zy1mb3JtLXNwZWMgdCBmdW5j dGlvbi1wdXQgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMV0gNCkjQDE1OSBSZXR1cm4gYSBuZXcgc3lu dGF4IHRhYmxlLgpDcmVhdGUgYSBzeW50YXggdGFibGUgdGhhdCBpbmhlcml0cyBmcm9tIE9MRFRB QkxFIChpZiBub24tbmlsKSBvcgpmcm9tIGBzdGFuZGFyZC1zeW50YXgtdGFibGUnIG90aGVyd2lz ZS4KCihmbiAmb3B0aW9uYWwgT0xEVEFCTEUpHwooZGVmYWxpYXMgJ21ha2Utc3ludGF4LXRhYmxl ICNbMjU2ICJcMzAwXDMwMVwzMDJcIlwzMDMBA1wyMDZcZgBcMzA0IFwiXDIxMFwyMDciIFttYWtl LWNoYXItdGFibGUgc3ludGF4LXRhYmxlIG5pbCBzZXQtY2hhci10YWJsZS1wYXJlbnQgc3RhbmRh cmQtc3ludGF4LXRhYmxlXSA1ICgjJCAuIDE4OTkwOCldKSNAMTMxIFJldHVybiB0aGUgcmF3IHN5 bnRheCBkZXNjcmlwdG9yIGZvciB0aGUgY2hhciBhZnRlciBQT1MuCklmIFBPUyBpcyBvdXRzaWRl IHRoZSBidWZmZXIncyBhY2Nlc3NpYmxlIHBvcnRpb24sIHJldHVybiBuaWwuCgooZm4gUE9TKR8K KGRlZmFsaWFzICdzeW50YXgtYWZ0ZXIgI1syNTcgIlwyMTFlV1wyMDYJAFwyMTFkWT9cMjA1KQAI XDIwNRUAXDMwMQFcMzAyXCJcMjExOlwyMDMeAFwyMTFcMjAyJwBcMjExXDIwNiQAXDMwMiACZkhc MjYyAVwyMDciIFtwYXJzZS1zZXhwLWxvb2t1cC1wcm9wZXJ0aWVzIGdldC1jaGFyLXByb3BlcnR5 IHN5bnRheC10YWJsZV0gNCAoIyQgLiAxOTAyNDkpXSkjQDI4OSBSZXR1cm4gdGhlIGNvZGUgZm9y IHRoZSBzeW50YXggY2xhc3MgZGVzY3JpYmVkIGJ5IFNZTlRBWC4KClNZTlRBWCBzaG91bGQgYmUg YSByYXcgc3ludGF4IGRlc2NyaXB0b3I7IHRoZSByZXR1cm4gdmFsdWUgaXMgYQppbnRlZ2VyIHRo YXQgZW5jb2RlcyB0aGUgY29ycmVzcG9uZGluZyBzeW50YXggY2xhc3MuICBTZWUgSW5mbwpub2Rl IGAoZWxpc3ApU3ludGF4IFRhYmxlIEludGVybmFscycgZm9yIGEgbGlzdCBvZiBjb2Rlcy4KCklm IFNZTlRBWCBpcyBuaWwsIHJldHVybiBuaWwuCgooZm4gU1lOVEFYKR8KKGRlZmFsaWFzICdzeW50 YXgtY2xhc3MgI1syNTcgIlwyMTFcMjA1CQBcMzAwAUBcMzAxXCJcMjA3IiBbbG9nYW5kIDY1NTM1 XSA0ICgjJCAuIDE5MDU4OSldKSNAMTI4IFVzZWQgaW4gYGZvcndhcmQtd29yZC1zdHJpY3RseScg YW5kIGBiYWNrd2FyZC13b3JkLXN0cmljdGx5Jwp0byBjb3VudGVybWFuZCB0aGUgZWZmZWN0IG9m IGBmaW5kLXdvcmQtYm91bmRhcnktZnVuY3Rpb24tdGFibGUnLh8KKGRlZnZhciB3b3JkLW1vdmUt ZW1wdHktY2hhci10YWJsZSBuaWwgKCMkIC4gMTkwOTc1KSkjQDQ3MSBNb3ZlIHBvaW50IGZvcndh cmQgQVJHIHdvcmRzIChiYWNrd2FyZCBpZiBBUkcgaXMgbmVnYXRpdmUpLgpJZiBBUkcgaXMgb21p dHRlZCBvciBuaWwsIG1vdmUgcG9pbnQgZm9yd2FyZCBvbmUgd29yZC4KTm9ybWFsbHkgcmV0dXJu cyB0LgpJZiBhbiBlZGdlIG9mIHRoZSBidWZmZXIgb3IgYSBmaWVsZCBib3VuZGFyeSBpcyByZWFj aGVkLCBwb2ludCBpcyBsZWZ0IHRoZXJlCmFuZCB0aGUgZnVuY3Rpb24gcmV0dXJucyBuaWwuICBG aWVsZCBib3VuZGFyaWVzIGFyZSBub3Qgbm90aWNlZCBpZgpgaW5oaWJpdC1maWVsZC10ZXh0LW1v dGlvbicgaXMgbm9uLW5pbC4KClRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgZm9yd2FyZC13b3JkJywg YnV0IGl0IGlzIG5vdCBhZmZlY3RlZApieSBgZmluZC13b3JkLWJvdW5kYXJ5LWZ1bmN0aW9uLXRh YmxlJy4gIEl0IGlzIGFsc28gbm90IGludGVyYWN0aXZlLgoKKGZuICZvcHRpb25hbCBBUkcpHwoo ZGVmYWxpYXMgJ2ZvcndhcmQtd29yZC1zdHJpY3RseSAjWzI1NiAiXDMwMgghXDIwM1xuAAhcMjAy DwBcMzAzXDMwNCFcMjExEBlcMjExXDIwNhUAXDMwNXYpXDIwNyIgW3dvcmQtbW92ZS1lbXB0eS1j aGFyLXRhYmxlIGZpbmQtd29yZC1ib3VuZGFyeS1mdW5jdGlvbi10YWJsZSBjaGFyLXRhYmxlLXAg bWFrZS1jaGFyLXRhYmxlIG5pbCAxXSAzICgjJCAuIDE5MTE2MildKSNAMzEwIE1vdmUgYmFja3dh cmQgdW50aWwgZW5jb3VudGVyaW5nIHRoZSBiZWdpbm5pbmcgb2YgYSB3b3JkLgpXaXRoIGFyZ3Vt ZW50IEFSRywgZG8gdGhpcyB0aGF0IG1hbnkgdGltZXMuCklmIEFSRyBpcyBvbWl0dGVkIG9yIG5p bCwgbW92ZSBwb2ludCBiYWNrd2FyZCBvbmUgd29yZC4KClRoaXMgZnVuY3Rpb24gaXMgbGlrZSBg Zm9yd2FyZC13b3JkJywgYnV0IGl0IGlzIG5vdCBhZmZlY3RlZApieSBgZmluZC13b3JkLWJvdW5k YXJ5LWZ1bmN0aW9uLXRhYmxlJy4gIEl0IGlzIGFsc28gbm90IGludGVyYWN0aXZlLgoKKGZuICZv cHRpb25hbCBBUkcpHwooZGVmYWxpYXMgJ2JhY2t3YXJkLXdvcmQtc3RyaWN0bHkgI1syNTYgIlwz MDIIIVwyMDNcbgAIXDIwMg8AXDMwM1wzMDQhXDIxMRAZXDIxMVwyMDYVAFwzMDVbdilcMjA3IiBb d29yZC1tb3ZlLWVtcHR5LWNoYXItdGFibGUgZmluZC13b3JkLWJvdW5kYXJ5LWZ1bmN0aW9uLXRh YmxlIGNoYXItdGFibGUtcCBtYWtlLWNoYXItdGFibGUgbmlsIDFdIDMgKCMkIC4gMTkxODUxKV0p I0AyNzMgTW92ZSBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBuZXh0IHNlcXVlbmNlIG9mIHdoaXRl c3BhY2UgY2hhcnMuCkVhY2ggc3VjaCBzZXF1ZW5jZSBtYXkgYmUgYSBzaW5nbGUgbmV3bGluZSwg b3IgYSBzZXF1ZW5jZSBvZgpjb25zZWN1dGl2ZSBzcGFjZSBhbmQvb3IgdGFiIGNoYXJhY3RlcnMu CldpdGggcHJlZml4IGFyZ3VtZW50IEFSRywgZG8gaXQgQVJHIHRpbWVzIGlmIHBvc2l0aXZlLCBv ciBtb3ZlCmJhY2t3YXJkcyBBUkcgdGltZXMgaWYgbmVnYXRpdmUuCgooZm4gQVJHKR8KKGRlZmFs aWFzICdmb3J3YXJkLXdoaXRlc3BhY2UgI1syNTcgIlwzMDABIVwyMDMNAFwzMDFcMzAyXDMwM1wz MDQEJFwyMDdcMjExXDMwNVdcMjA1LgBcMzA2XDMwMlwzMDNcMzA0I1wyMDMnAFwzMDVcMjI0Zlwz MDc9XDIwNCcAXDMxMFwzMDN4XDIxMFwyMTFUXDI2MgFcMjAyDQBcMjA3IiBbbmF0bnVtcCByZS1z ZWFyY2gtZm9yd2FyZCAiWyAJXStcXHxcbiIgbmlsIG1vdmUgMCByZS1zZWFyY2gtYmFja3dhcmQg MTAgIiAJIl0gNiAoIyQgLiAxOTIzODEpICJecCJdKSNAMjgzIE1vdmUgcG9pbnQgdG8gdGhlIG5l eHQgcG9zaXRpb24gdGhhdCBpcyB0aGUgZW5kIG9mIGEgc3ltYm9sLgpBIHN5bWJvbCBpcyBhbnkg c2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGFyZSBpbiBlaXRoZXIgdGhlCndvcmQgY29uc3Rp dHVlbnQgb3Igc3ltYm9sIGNvbnN0aXR1ZW50IHN5bnRheCBjbGFzcy4KV2l0aCBwcmVmaXggYXJn dW1lbnQgQVJHLCBkbyBpdCBBUkcgdGltZXMgaWYgcG9zaXRpdmUsIG9yIG1vdmUKYmFja3dhcmRz IEFSRyB0aW1lcyBpZiBuZWdhdGl2ZS4KCihmbiBBUkcpHwooZGVmYWxpYXMgJ2ZvcndhcmQtc3lt Ym9sICNbMjU3ICJcMzAwASFcMjAzDQBcMzAxXDMwMlwzMDNcMzA0BCRcMjA3XDIxMVwzMDVXXDIw NSYAXDMwNlwzMDJcMzAzXDMwNCNcMjAzHwBcMzA3XDMxMCFcMjEwXDIxMVRcMjYyAVwyMDINAFwy MDciIFtuYXRudW1wIHJlLXNlYXJjaC1mb3J3YXJkICJcXChcXHN3XFx8XFxzX1xcKSsiIG5pbCBt b3ZlIDAgcmUtc2VhcmNoLWJhY2t3YXJkIHNraXAtc3ludGF4LWJhY2t3YXJkICJ3XyJdIDYgKCMk IC4gMTkyOTI1KSAiXnAiXSkjQDE3NiBNb3ZlIHBvaW50IHBhc3QgYWxsIGNoYXJhY3RlcnMgd2l0 aCB0aGUgc2FtZSBzeW50YXggY2xhc3MuCldpdGggcHJlZml4IGFyZ3VtZW50IEFSRywgZG8gaXQg QVJHIHRpbWVzIGlmIHBvc2l0aXZlLCBvciBtb3ZlCmJhY2t3YXJkcyBBUkcgdGltZXMgaWYgbmVn YXRpdmUuCgooZm4gJm9wdGlvbmFsIEFSRykfCihkZWZhbGlhcyAnZm9yd2FyZC1zYW1lLXN5bnRh eCAjWzI1NiAiXDIxMVwyMDQHAFwzMDBcMjYyAVwyMTFcMzAxV1wyMDMdAFwzMDJcMzAzYFNmeiEh XDIxMFwyMTFUXDI2MgFcMjAyBwBcMjExXDMwMVZcMjA1MgBcMzA0XDMwM1wzMDVmeiEhXDIxMFwy MTFTXDI2MgFcMjAyHQBcMjA3IiBbMSAwIHNraXAtc3ludGF4LWJhY2t3YXJkIGNoYXItdG8tc3Ry aW5nIHNraXAtc3ludGF4LWZvcndhcmQgbmlsXSA0ICgjJCAuIDE5MzQ4MSkgIl5wIl0pCihkZWZ2 YXIgdGV4dC1jbG9uZS0tbWFpbnRhaW5pbmcgbmlsKSNAMTc1IFByb3BhZ2F0ZSB0aGUgY2hhbmdl cyBtYWRlIHVuZGVyIHRoZSBvdmVybGF5IE9MMSB0byB0aGUgb3RoZXIgY2xvbmVzLgpUaGlzIGlz IHVzZWQgb24gdGhlIGBtb2RpZmljYXRpb24taG9va3MnIHByb3BlcnR5IG9mIHRleHQgY2xvbmVz LgoKKGZuIE9MMSBBRlRFUiBCRUcgRU5EICZvcHRpb25hbCBMRU4pHwooZGVmYWxpYXMgJ3RleHQt Y2xvbmUtLW1haW50YWluICNbMTI4NCAiA1wyMDUIAQg/XDIwNQgBCT9cMjA1CAFcMzAyBSFcMjA1 CAFcMzAzBVwzMDRcIlwyMDMfAFwzMDVcMjAyIABcMzA2A1wzMDIGByECXFxdXDI2MgQCXDMwNwYH IQJaXlwyNjIDAwNYXDIwNQYBXDIxMlwzMDMGBlwzMTBcIlwyMDNcMjQ1AFwzMDIGBiEBXFxcMzA3 BgchAloBYlwyMTBcMzExIFwzMTJcMzEzAlwiXDIxNlwzMTRcMzAzBlxuXDMxMFwiA1wzMTUjXDIw NGsAAlwyNjIGXDIwMlwyNDIAXDMwNlwyMjUCV1wyMDNcMjA2AAVcMzA2XDIyNV5cMjYyBlwzMTYG CVwzMDIGCyFcMzA2XDIyNQYHXFwjXDIxMFwzMDZcMjI0A1ZcMjAzXDI0MgBcMzA2XDIyNAYHXVwy NjIHXDMxNgYJXDMwNlwyMjQGBlpcMzA3BlxmISNcMjEwKVwyNjYDA1wzMDIGByFaXDMwNwYHIQRa BQV7XDMxNVwyMTEZXDMwMwZcblwzMTdcIlwyMTFcMjAzXDM3MQBcMjExQFwzMDcBIQZcZgI9XDIw NFwzNjEAXDIxMVwyMDNcMzYxAFwzMjBcMjYyBFwzMDICIQYHXFxcMzA3AyEGB1piXDIxMFwyMTFg VlwyMDRcMzYwAFwyMTIFYylcMjEwXDIxMWB8XDIxMFwyMTBcMjEwAUFcMjY2XDIwMlwyMDJcMjc0 AFwyMTBcMjExXDIwNQIBXDMyMQZcbiEpXDI2NlwyMDQpXDI2MgFcMjA3IiBbdW5kby1pbi1wcm9n cmVzcyB0ZXh0LWNsb25lLS1tYWludGFpbmluZyBvdmVybGF5LXN0YXJ0IG92ZXJsYXktZ2V0IHRl eHQtY2xvbmUtc3ByZWFkcCAxIDAgb3ZlcmxheS1lbmQgdGV4dC1jbG9uZS1zeW50YXggbWF0Y2gt ZGF0YSBtYWtlLWNsb3N1cmUgI1swICJcMzAxXDMwMFwzMDJcIlwyMDciIFtWMCBzZXQtbWF0Y2gt ZGF0YSB0XSAzXSByZS1zZWFyY2gtZm9yd2FyZCB0IG1vdmUtb3ZlcmxheSB0ZXh0LWNsb25lcyBu aWwgZGVsZXRlLW92ZXJsYXldIDE2ICgjJCAuIDE5Mzk1MSldKSNANjI2IENyZWF0ZSBhIHRleHQg Y2xvbmUgb2YgU1RBUlQuLi5FTkQgYXQgcG9pbnQuClRleHQgY2xvbmVzIGFyZSBjaHVua3Mgb2Yg dGV4dCB0aGF0IGFyZSBhdXRvbWF0aWNhbGx5IGtlcHQgaWRlbnRpY2FsOgpjaGFuZ2VzIGRvbmUg dG8gb25lIG9mIHRoZSBjbG9uZXMgd2lsbCBiZSBpbW1lZGlhdGVseSBwcm9wYWdhdGVkIHRvIHRo ZSBvdGhlci4KClRoZSBidWZmZXIncyBjb250ZW50IGF0IHBvaW50IGlzIGFzc3VtZWQgdG8gYmUg YWxyZWFkeSBpZGVudGljYWwgdG8KdGhlIG9uZSBiZXR3ZWVuIFNUQVJUIGFuZCBFTkQuCklmIFNZ TlRBWCBpcyBwcm92aWRlZCBpdCdzIGEgcmVnZXhwIHRoYXQgZGVzY3JpYmVzIHRoZSBwb3NzaWJs ZSB0ZXh0IG9mCnRoZSBjbG9uZXM7IHRoZSBjbG9uZSB3aWxsIGJlIHNocnVuayBvciBraWxsZWQg aWYgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0Cml0cyB0ZXh0IG1hdGNoZXMgdGhlIHJlZ2V4cC4K SWYgU1BSRUFEUCBpcyBub24tbmlsIGl0IGluZGljYXRlcyB0aGF0IHRleHQgaW5zZXJ0ZWQgYmVm b3JlL2FmdGVyIHRoZQpjbG9uZSBzaG91bGQgYmUgaW5jb3Jwb3JhdGVkIGluIHRoZSBjbG9uZS4K CihmbiBTVEFSVCBFTkQgJm9wdGlvbmFsIFNQUkVBRFAgU1lOVEFYKR8KKGRlZmFsaWFzICd0ZXh0 LWNsb25lLWNyZWF0ZSAjWzEwMjYgImADBVpcXAJcMjAzEwBvXDIwNBMABGVYXDIwMxcAXDMwMFwy MDIYAFwzMDEDXDIwMygAAWRZXDIwNCgABWRZXDIwMywAXDMwMFwyMDItAFwzMDFcMzAyBgcDWgYH A1xcXDMwM1wzMDQkXDMwMmAEWgUEXFxcMzAzXDMwNCQBAURcMzA1A1wzMDZcMzA3I1wyMTAGB1wy MDNXAFwzMDUDXDMxMFwzMDQjXDIxMAYGXDIwM2MAXDMwNQNcMzExBgkjXDIxMFwzMDUDXDMxMlwz MDQjXDIxMFwzMDUDXDMxMwMjXDIxMFwzMDUCXDMwNlwzMTQjXDIxMAYHXDIwM1wyMDAAXDMwNQJc MzEwXDMwNCNcMjEwBgZcMjAzXDIxNABcMzA1AlwzMTEGCSNcMjEwXDMwNQJcMzEyXDMwNCNcMjEw XDMwNQJcMzEzAyNcMjA3IiBbMCAxIG1ha2Utb3ZlcmxheSBuaWwgdCBvdmVybGF5LXB1dCBtb2Rp ZmljYXRpb24taG9va3MgKHRleHQtY2xvbmUtLW1haW50YWluKSB0ZXh0LWNsb25lLXNwcmVhZHAg dGV4dC1jbG9uZS1zeW50YXggZXZhcG9yYXRlIHRleHQtY2xvbmVzICh0ZXh0LWNsb25lLS1tYWlu dGFpbildIDE0ICgjJCAuIDE5NTA0MCldKSNAMTM1OCBEZWZpbmUgYSBzeW1ib2wgdG8gaWRlbnRp ZnkgYSBtYWlsLXNlbmRpbmcgcGFja2FnZSBmb3IgYG1haWwtdXNlci1hZ2VudCcuCgpTWU1CT0wg Y2FuIGJlIGFueSBMaXNwIHN5bWJvbC4gIEl0cyBmdW5jdGlvbiBkZWZpbml0aW9uIGFuZC9vcgp2 YWx1ZSBhcyBhIHZhcmlhYmxlIGRvIG5vdCBtYXR0ZXIgZm9yIHRoaXMgdXNhZ2U7IHdlIHVzZSBv bmx5IGNlcnRhaW4KcHJvcGVydGllcyBvbiBpdHMgcHJvcGVydHkgbGlzdCwgdG8gZW5jb2RlIHRo ZSByZXN0IG9mIHRoZSBhcmd1bWVudHMuCgpDT01QT1NFRlVOQyBpcyBwcm9ncmFtIGNhbGxhYmxl IGZ1bmN0aW9uIHRoYXQgY29tcG9zZXMgYW4gb3V0Z29pbmcKbWFpbCBtZXNzYWdlIGJ1ZmZlci4g IFRoaXMgZnVuY3Rpb24gc2hvdWxkIHNldCB1cCB0aGUgYmFzaWNzIG9mIHRoZQpidWZmZXIgd2l0 aG91dCByZXF1aXJpbmcgdXNlciBpbnRlcmFjdGlvbi4gIEl0IHNob3VsZCBwb3B1bGF0ZSB0aGUK c3RhbmRhcmQgbWFpbCBoZWFkZXJzLCBsZWF2aW5nIHRoZSBgdG86JyBhbmQgYHN1YmplY3Q6JyBo ZWFkZXJzIGJsYW5rCmJ5IGRlZmF1bHQuCgpDT01QT1NFRlVOQyBzaG91bGQgYWNjZXB0IHNldmVy YWwgb3B0aW9uYWwgYXJndW1lbnRzLS10aGUgc2FtZQphcmd1bWVudHMgdGhhdCBgY29tcG9zZS1t YWlsJyB0YWtlcy4gIFNlZSB0aGF0IGZ1bmN0aW9uJ3MgZG9jdW1lbnRhdGlvbi4KClNFTkRGVU5D IGlzIHRoZSBjb21tYW5kIGEgdXNlciB3b3VsZCBydW4gdG8gc2VuZCB0aGUgbWVzc2FnZS4KCk9w dGlvbmFsIEFCT1JURlVOQyBpcyB0aGUgY29tbWFuZCBhIHVzZXIgd291bGQgcnVuIHRvIGFib3J0 IHRoZQptZXNzYWdlLiAgRm9yIG1haWwgcGFja2FnZXMgdGhhdCBkb24ndCBoYXZlIGEgc2VwYXJh dGUgYWJvcnQgZnVuY3Rpb24sCnRoaXMgY2FuIGJlIGBraWxsLWJ1ZmZlcicgKHRoZSBlcXVpdmFs ZW50IG9mIG9taXR0aW5nIHRoaXMgYXJndW1lbnQpLgoKT3B0aW9uYWwgSE9PS1ZBUiBpcyBhIGhv b2sgdmFyaWFibGUgdGhhdCBnZXRzIHJ1biBiZWZvcmUgdGhlIG1lc3NhZ2UKaXMgYWN0dWFsbHkg c2VudC4gIENhbGxlcnMgdGhhdCB1c2UgdGhlIGBtYWlsLXVzZXItYWdlbnQnIG1heQppbnN0YWxs IGEgaG9vayBmdW5jdGlvbiB0ZW1wb3JhcmlseSBvbiB0aGlzIGhvb2sgdmFyaWFibGUuCklmIEhP T0tWQVIgaXMgbmlsLCBgbWFpbC1zZW5kLWhvb2snIGlzIHVzZWQuCgpUaGUgcHJvcGVydGllcyB1 c2VkIG9uIFNZTUJPTCBhcmUgYGNvbXBvc2VmdW5jJywgYHNlbmRmdW5jJywKYGFib3J0ZnVuYycs IGFuZCBgaG9va3ZhcicuCgooZm4gU1lNQk9MIENPTVBPU0VGVU5DIFNFTkRGVU5DICZvcHRpb25h bCBBQk9SVEZVTkMgSE9PS1ZBUikfCihkZWZhbGlhcyAnZGVmaW5lLW1haWwtdXNlci1hZ2VudCAj WzEyODMgIlwzMDAFXDMwMQYGI1wyMTBcMzAwBVwzMDIFI1wyMTBcMzAwBVwzMDMEXDIwNhUAXDMw NCNcMjEwXDMwMAVcMzA1A1wyMDYfAFwzMDYjXDIwNyIgW3B1dCBjb21wb3NlZnVuYyBzZW5kZnVu YyBhYm9ydGZ1bmMga2lsbC1idWZmZXIgaG9va3ZhciBtYWlsLXNlbmQtaG9va10gOSAoIyQgLiAx OTYyMjYpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzAwXDIwNyIgW2Z1bmN0aW9u LXB1dCBkZWZpbmUtbWFpbC11c2VyLWFnZW50IGxpc3AtaW5kZW50LWZ1bmN0aW9uIGRlZnVuXSA0 KSNAMTc2IENvbGxlY3QgYWxsIGZyYW1lcyBvZiBjdXJyZW50IGJhY2t0cmFjZSBpbnRvIGEgbGlz dC4KSWYgbm9uLW5pbCwgQkFTRSBzaG91bGQgYmUgYSBmdW5jdGlvbiwgYW5kIGZyYW1lcyBiZWZv cmUgaXRzCm5lYXJlc3QgYWN0aXZhdGlvbiBmcmFtZSBhcmUgZGlzY2FyZGVkLgoKKGZuICZvcHRp b25hbCBCQVNFKR8KKGRlZmFsaWFzICdiYWNrdHJhY2UtZnJhbWVzICNbMjU2ICJcMzAwQ1wzMDFc MzAyXDMwMwNcIgNcMjA2XGYAXDMwNFwiXDIxMFwyMTFcMjQyXDIzN1wyMDciIFtuaWwgbWFwYmFj a3RyYWNlIG1ha2UtY2xvc3VyZSAjWzEyOCAiXDMwMAFcMzAwXDI0MkJcMjQwXDIwNyIgW1YwXSA0 ICJcblxuKGZuICZyZXN0IEZSQU1FKSJdIGJhY2t0cmFjZS1mcmFtZXNdIDYgKCMkIC4gMTk3OTEx KV0pI0A2NTUgUmV0dXJuIHRoZSBmdW5jdGlvbiBhbmQgYXJndW1lbnRzIE5GUkFNRVMgdXAgZnJv bSBjdXJyZW50IGV4ZWN1dGlvbiBwb2ludC4KSWYgbm9uLW5pbCwgQkFTRSBzaG91bGQgYmUgYSBm dW5jdGlvbiwgYW5kIE5GUkFNRVMgY291bnRzIGZyb20gaXRzCm5lYXJlc3QgYWN0aXZhdGlvbiBm cmFtZS4KSWYgdGhlIGZyYW1lIGhhcyBub3QgZXZhbHVhdGVkIHRoZSBhcmd1bWVudHMgeWV0IChv ciBpcyBhIHNwZWNpYWwgZm9ybSksCnRoZSB2YWx1ZSBpcyAobmlsIEZVTkNUSU9OIEFSRy1GT1JN Uy4uLikuCklmIHRoZSBmcmFtZSBoYXMgZXZhbHVhdGVkIGl0cyBhcmd1bWVudHMgYW5kIGNhbGxl ZCBpdHMgZnVuY3Rpb24gYWxyZWFkeSwKdGhlIHZhbHVlIGlzICh0IEZVTkNUSU9OIEFSRy1WQUxV RVMuLi4pLgpBICZyZXN0IGFyZyBpcyByZXByZXNlbnRlZCBhcyB0aGUgdGFpbCBvZiB0aGUgbGlz dCBBUkctVkFMVUVTLgpGVU5DVElPTiBpcyB3aGF0ZXZlciB3YXMgc3VwcGxpZWQgYXMgY2FyIG9m IGV2YWx1YXRlZCBsaXN0LApvciBhIGxhbWJkYSBleHByZXNzaW9uIGZvciBtYWNybyBjYWxscy4K SWYgTkZSQU1FUyBpcyBtb3JlIHRoYW4gdGhlIG51bWJlciBvZiBmcmFtZXMsIHRoZSB2YWx1ZSBp cyBuaWwuCgooZm4gTkZSQU1FUyAmb3B0aW9uYWwgQkFTRSkfCihkZWZhbGlhcyAnYmFja3RyYWNl LWZyYW1lICNbNTEzICJcMzAwXDMwMQMDXDIwNggAXDMwMiNcMjA3IiBbYmFja3RyYWNlLWZyYW1l LS1pbnRlcm5hbCAjWzEwMjggIgMDA0JCXDIwNyIgW10gNyAiXG5cbihmbiBFVkFMRCBGVU5DIEFS R1MgXykiXSBiYWNrdHJhY2UtZnJhbWVdIDYgKCMkIC4gMTk4MzEyKV0pI0AzNjcgU3BlY2lhbCBo b29rIGNhbGxlZCB0byBza2lwIHNwZWNpYWwgZnJhbWVzIGluIGBjYWxsZWQtaW50ZXJhY3RpdmVs eS1wJy4KVGhlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHdpdGggMyBhcmd1bWVudHM6IChJIEZSQU1F MSBGUkFNRTIpLAp3aGVyZSBGUkFNRTEgaXMgYSAiY3VycmVudCBmcmFtZSIsIEZSQU1FMiBpcyB0 aGUgbmV4dCBmcmFtZSwKSSBpcyB0aGUgaW5kZXggb2YgdGhlIGZyYW1lIGFmdGVyIEZSQU1FMi4g IEl0IHNob3VsZCByZXR1cm4gbmlsCmlmIHRob3NlIGZyYW1lcyBkb24ndCBzZWVtIHNwZWNpYWwg YW5kIG90aGVyd2lzZSwgaXQgc2hvdWxkIHJldHVybgp0aGUgbnVtYmVyIG9mIGZyYW1lcyB0byBz a2lwIChtaW51cyAxKS4fCihkZWZ2YXIgY2FsbGVkLWludGVyYWN0aXZlbHktcC1mdW5jdGlvbnMg bmlsICgjJCAuIDE5OTE0OSkpCihkZWZjb25zdCBpbnRlcm5hbC0tZnVuY2FsbC1pbnRlcmFjdGl2 ZWx5IChzeW1ib2wtZnVuY3Rpb24gJ2Z1bmNhbGwtaW50ZXJhY3RpdmVseSkpI0AxNDI0IFJldHVy biB0IGlmIHRoZSBjb250YWluaW5nIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYnkgYGNhbGwtaW50ZXJh Y3RpdmVseScuCklmIEtJTkQgaXMgYGludGVyYWN0aXZlJywgdGhlbiByZXR1cm4gdCBvbmx5IGlm IHRoZSBjYWxsIHdhcyBtYWRlCmludGVyYWN0aXZlbHkgYnkgdGhlIHVzZXIsIGkuZS4gbm90IGlu IGBub25pbnRlcmFjdGl2ZScgbW9kZSBub3IKd2hlbiBgZXhlY3V0aW5nLWtiZC1tYWNybycuCklm IEtJTkQgaXMgYGFueScsIG9uIHRoZSBvdGhlciBoYW5kLCBpdCB3aWxsIHJldHVybiB0IGZvciBh bnkga2luZCBvZgppbnRlcmFjdGl2ZSBjYWxsLCBpbmNsdWRpbmcgYmVpbmcgY2FsbGVkIGFzIHRo ZSBiaW5kaW5nIG9mIGEga2V5IG9yCmZyb20gYSBrZXlib2FyZCBtYWNybywgZXZlbiBpbiBgbm9u aW50ZXJhY3RpdmUnIG1vZGUuCgpUaGlzIGZ1bmN0aW9uIGlzIHZlcnkgYnJpdHRsZSwgaXQgbWF5 IGZhaWwgdG8gcmV0dXJuIHRoZSBpbnRlbmRlZCByZXN1bHQgd2hlbgp0aGUgY29kZSBpcyBkZWJ1 Z2dlZCwgYWR2aXNlZCwgb3IgaW5zdHJ1bWVudGVkIGluIHNvbWUgZm9ybS4gIFNvbWUgbWFjcm9z IGFuZApzcGVjaWFsIGZvcm1zIChzdWNoIGFzIGBjb25kaXRpb24tY2FzZScpIG1heSBhbHNvIHNv bWV0aW1lcyB3cmFwIHRoZWlyIGJvZGllcwppbiBhIGBsYW1iZGEnLCBzbyBhbnkgY2FsbCB0byBg Y2FsbGVkLWludGVyYWN0aXZlbHktcCcgZnJvbSB0aG9zZSBib2RpZXMgd2lsbAppbmRpY2F0ZSB3 aGV0aGVyIHRoYXQgbGFtYmRhIChyYXRoZXIgdGhhbiB0aGUgc3Vycm91bmRpbmcgZnVuY3Rpb24p IHdhcyBjYWxsZWQKaW50ZXJhY3RpdmVseS4KCkluc3RlYWQgb2YgdXNpbmcgdGhpcyBmdW5jdGlv biwgaXQgaXMgY2xlYW5lciBhbmQgbW9yZSByZWxpYWJsZSB0byBnaXZlIHlvdXIKZnVuY3Rpb24g YW4gZXh0cmEgb3B0aW9uYWwgYXJndW1lbnQgd2hvc2UgYGludGVyYWN0aXZlJyBzcGVjIHNwZWNp Zmllcwpub24tbmlsIHVuY29uZGl0aW9uYWxseSAoInAiIGlzIGEgZ29vZCB3YXkgdG8gZG8gdGhp cyksIG9yIHZpYQoobm90IChvciBleGVjdXRpbmcta2JkLW1hY3JvIG5vbmludGVyYWN0aXZlKSku CgpUaGUgb25seSBrbm93biBwcm9wZXIgdXNlIG9mIGBpbnRlcmFjdGl2ZScgZm9yIEtJTkQgaXMg aW4gZGVjaWRpbmcKd2hldGhlciB0byBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlLCBvciBob3cg dG8gZGlzcGxheSBpdC4gIElmIHlvdSdyZQp0aGlua2luZyBvZiB1c2luZyBpdCBmb3IgYW55IG90 aGVyIHB1cnBvc2UsIGl0IGlzIHF1aXRlIGxpa2VseSB0aGF0CnlvdSdyZSBtYWtpbmcgYSBtaXN0 YWtlLiAgVGhpbms6IHdoYXQgZG8geW91IHdhbnQgdG8gZG8gd2hlbiB0aGUKY29tbWFuZCBpcyBj YWxsZWQgZnJvbSBhIGtleWJvYXJkIG1hY3JvPwoKKGZuICZvcHRpb25hbCBLSU5EKR8KKGRlZmFs aWFzICdjYWxsZWQtaW50ZXJhY3RpdmVseS1wICNbMjU2ICJcMjExXDMwMz1cMjA1CwAIXDIwNgsA CT9cMjA1EQFcMzA0Q1wzMDVDXDMwNUNcMzA2XDIxMQQEBCNcMjEwXDIxMQQEBCNcMjEwAlwyNDJc MjAzLQACXDI0MkBcMjAzHAACXDI0MkFAXDMwNz5cMjA0HABcMzEwXDMxMQVcMjQyBVwyNDIFXDI0 MiRcMjExXDMxMlwyNjdcMjAyTQBcMzA1XDIwMloAXDMxM1wyMDJaAARcMjExXDI0MgJcXFNcMjQw XDIxMAEFBQUjXDI2MgFcMjA0HAACXDI0MgJcMjQyQlwyMTE6XDIwNQ0BXDIxMVwyNDJcMjExOlwy MDNcMzQ0AFwyMTFcMjQzXDIxMTpcMjAzXDI3MABcMjExXDI0MlwzMTQBIVwzMTUBIVwyMDVcMjA2 AFwzMTYBIT9cMjYyAT9cMjA1XDI2MwADXDI0M1wyMTE6XDIwNVwyNjEAXDIxMVwyNDJcMjExXDMx Mz1cMjA1XDI1NwABXDI0M1wyMTE6XDIwNVwyNTUAXDIxMVwyNDJcblwzMTQCIT0/P1wyNjIBXDI2 MgFcMjYyAVwyNjIBXDI2MgFcMjAyXDMzNwACXDI0M1wyMTE6XDIwNVwzMzUAXDIxMVwyNDJcMjEx XDMxMz1cMjA1XDMzMwABXDI0M1wyMTE6XDIwNVwzMzEAXDIxMVwyNDJcblwzMTQCIT0/P1wyNjIB XDI2MgFcMjYyAVwyNjIBXDI2MgFcMjAyCwEBXDI0M1wyMTE6XDIwNQkBXDIxMVwyNDJcMjExXDMx Mz1cMjA1BwEBXDI0M1wyMTE6XDIwNQUBXDIxMVwyNDJcblwzMTQCIT0/P1wyNjIBXDI2MgFcMjYy AVwyNjIBXDI2MgFcMjYyAVwyNjZcMjA0XDIwNyIgW2V4ZWN1dGluZy1rYmQtbWFjcm8gbm9uaW50 ZXJhY3RpdmUgaW50ZXJuYWwtLWZ1bmNhbGwtaW50ZXJhY3RpdmVseSBpbnRlcmFjdGl2ZSAxIG5p bCAjWzc3MSAiAQFcMjQyXDI0MFwyMTBcMjExXDMwMARcMjQyXDMwMVwiXDI0MFwyMTACXDIxMVwy NDJUXDI0MFwyMDciIFtiYWNrdHJhY2UtZnJhbWUgY2FsbGVkLWludGVyYWN0aXZlbHktcF0gNyAi XG5cbihmbiBJIEZSQU1FIE5FWFRGUkFNRSkiXSAoaW50ZXJhY3RpdmUtcCAnYnl0ZS1jb2RlKSBy dW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyBjYWxsZWQtaW50ZXJhY3RpdmVseS1wLWZ1 bmN0aW9ucyAjcyhoYXNoLXRhYmxlIHNpemUgMiB0ZXN0IGVxIHJlaGFzaC1zaXplIDEuNSByZWhh c2gtdGhyZXNob2xkIDAuODEyNSBwdXJlY29weSB0IGRhdGEgKG5pbCA2OSAwIDczKSkgdCBpbmRp cmVjdC1mdW5jdGlvbiBzdWJycCBzdWJyLW5hdGl2ZS1lbGlzcC1wXSAxNiAoIyQgLiAxOTk2NjYp XSkKKHNldC1hZHZlcnRpc2VkLWNhbGxpbmctY29udmVudGlvbiAnY2FsbGVkLWludGVyYWN0aXZl bHktcCAnKGtpbmQpICIyMy4xIikjQDk2MCBSZXR1cm4gdCBpZiB0aGUgY29udGFpbmluZyBmdW5j dGlvbiB3YXMgcnVuIGRpcmVjdGx5IGJ5IHVzZXIgaW5wdXQuClRoaXMgbWVhbnMgdGhhdCB0aGUg ZnVuY3Rpb24gd2FzIGNhbGxlZCB3aXRoIGBjYWxsLWludGVyYWN0aXZlbHknCih3aGljaCBpbmNs dWRlcyBiZWluZyBjYWxsZWQgYXMgdGhlIGJpbmRpbmcgb2YgYSBrZXkpCmFuZCBpbnB1dCBpcyBj dXJyZW50bHkgY29taW5nIGZyb20gdGhlIGtleWJvYXJkIChub3QgYSBrZXlib2FyZCBtYWNybyks CmFuZCBFbWFjcyBpcyBub3QgcnVubmluZyBpbiBiYXRjaCBtb2RlIChgbm9uaW50ZXJhY3RpdmUn IGlzIG5pbCkuCgpUaGUgb25seSBrbm93biBwcm9wZXIgdXNlIG9mIGBpbnRlcmFjdGl2ZS1wJyBp cyBpbiBkZWNpZGluZyB3aGV0aGVyIHRvCmRpc3BsYXkgYSBoZWxwZnVsIG1lc3NhZ2UsIG9yIGhv dyB0byBkaXNwbGF5IGl0LiAgSWYgeW91J3JlIHRoaW5raW5nCm9mIHVzaW5nIGl0IGZvciBhbnkg b3RoZXIgcHVycG9zZSwgaXQgaXMgcXVpdGUgbGlrZWx5IHRoYXQgeW91J3JlCm1ha2luZyBhIG1p c3Rha2UuICBUaGluazogd2hhdCBkbyB5b3Ugd2FudCB0byBkbyB3aGVuIHRoZSBjb21tYW5kIGlz CmNhbGxlZCBmcm9tIGEga2V5Ym9hcmQgbWFjcm8gb3IgaW4gYmF0Y2ggbW9kZT8KClRvIHRlc3Qg d2hldGhlciB5b3VyIGZ1bmN0aW9uIHdhcyBjYWxsZWQgd2l0aCBgY2FsbC1pbnRlcmFjdGl2ZWx5 JywKZWl0aGVyIChpKSBhZGQgYW4gZXh0cmEgb3B0aW9uYWwgYXJndW1lbnQgYW5kIGdpdmUgaXQg YW4gYGludGVyYWN0aXZlJwpzcGVjIHRoYXQgc3BlY2lmaWVzIG5vbi1uaWwgdW5jb25kaXRpb25h bGx5IChzdWNoIGFzICJwIik7IG9yIChpaSkKdXNlIGBjYWxsZWQtaW50ZXJhY3RpdmVseS1wJy4K ClRvIHRlc3Qgd2hldGhlciBhIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgaW50ZXJhY3RpdmVseSwg dXNlCmBjb21tYW5kcCcuHwooZGVmYWxpYXMgJ2ludGVyYWN0aXZlLXAgI1swICJcMzAwXDMwMSFc MjA3IiBbY2FsbGVkLWludGVyYWN0aXZlbHktcCBpbnRlcmFjdGl2ZV0gMiAoIyQgLiAyMDIzNzYp XSkKKG1ha2Utb2Jzb2xldGUgJ2ludGVyYWN0aXZlLXAgJ2NhbGxlZC1pbnRlcmFjdGl2ZWx5LXAg IjIzLjIiKSNAMjIgCgooZm4gS0VZTUFQIFNZTUJPTCkfCihkZWZhbGlhcyAnaW50ZXJuYWwtcHVz aC1rZXltYXAgI1s1MTQgIlwyMTFKAgE+P1wyMDUoAFwzMDACSj5cMjA0XCIAXDMwMVwzMDIDSlwi XDI2MgFcMjExXDMwMAJBQlwyNDFcMjEwAQFMXDIxMFwyMTEDAkFCXDI0MVwyMDciIFthZGQta2V5 bWFwLXdpdG5lc3MgbWFrZS1jb21wb3NlZC1rZXltYXAgbmlsXSA2ICgjJCAuIDIwMzUwMildKSNA MjIgCgooZm4gS0VZTUFQIFNZTUJPTCkfCihkZWZhbGlhcyAnaW50ZXJuYWwtcG9wLWtleW1hcCAj WzUxNCAiXDIxMUoCAT5cMjAzEABcMjExXDMwMAQDQVwiXDI0MVwyMTBcMjExQUFcMjExXDIwMx0A XDMwMQEhXDIwNSgAAUFAXDMwMj1cMjA1KAACAUxcMjA3IiBbZGVscSBrZXltYXBwIGFkZC1rZXlt YXAtd2l0bmVzc10gNyAoIyQgLiAyMDM3MjEpXSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMw MyNcMjEwXDMwNFwzMDFcMzAyXDMwNSNcMjA3IiBbZGVmYWxpYXMgc2V0LXRlbXBvcmFyeS1vdmVy bGF5LW1hcCBzZXQtdHJhbnNpZW50LW1hcCBuaWwgbWFrZS1vYnNvbGV0ZSAiMjQuNCJdIDQpI0Ay NTEgVGltZW91dCBpbiBzZWNvbmRzIGZvciBkZWFjdGl2YXRpb24gb2YgYSB0cmFuc2llbnQga2V5 bWFwLgpJZiB0aGlzIGlzIGEgbnVtYmVyLCBpdCBzcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBpZGxl IHRpbWUKYWZ0ZXIgd2hpY2ggdG8gZGVhY3RpdmF0ZSB0aGUga2V5bWFwIHNldCBieSBgc2V0LXRy YW5zaWVudC1tYXAnLAp0aHVzIG92ZXJyaWRpbmcgdGhlIHZhbHVlIG9mIHRoZSBUSU1FT1VUIGFy Z3VtZW50IHRvIHRoYXQgZnVuY3Rpb24uHwooZGVmdmFyIHNldC10cmFuc2llbnQtbWFwLXRpbWVv dXQgbmlsICgjJCAuIDIwNDA2MykpI0A0MCBUaW1lciBmb3IgYHNldC10cmFuc2llbnQtbWFwLXRp bWVvdXQnLh8KKGRlZnZhciBzZXQtdHJhbnNpZW50LW1hcC10aW1lciBuaWwgKCMkIC4gMjA0Mzcx KSkjQDE1MzkgU2V0IE1BUCBhcyBhIHRlbXBvcmFyeSBrZXltYXAgdGFraW5nIHByZWNlZGVuY2Ug b3ZlciBvdGhlciBrZXltYXBzLgpOb3JtYWxseSwgTUFQIGlzIHVzZWQgb25seSBvbmNlLCB0byBs b29rIHVwIHRoZSB2ZXJ5IG5leHQga2V5LgpIb3dldmVyLCBpZiB0aGUgb3B0aW9uYWwgYXJndW1l bnQgS0VFUC1QUkVEIGlzIHQsIE1BUCBzdGF5cwphY3RpdmUgaWYgYSBrZXkgZnJvbSBNQVAgaXMg dXNlZC4gIEtFRVAtUFJFRCBjYW4gYWxzbyBiZSBhCmZ1bmN0aW9uIG9mIG5vIGFyZ3VtZW50czog aXQgaXMgY2FsbGVkIGZyb20gYHByZS1jb21tYW5kLWhvb2snIGFuZAppZiBpdCByZXR1cm5zIG5v bi1uaWwsIHRoZW4gTUFQIHN0YXlzIGFjdGl2ZS4KCk9wdGlvbmFsIGFyZyBPTi1FWElULCBpZiBu b24tbmlsLCBzcGVjaWZpZXMgYSBmdW5jdGlvbiB0aGF0IGlzCmNhbGxlZCwgd2l0aCBubyBhcmd1 bWVudHMsIGFmdGVyIE1BUCBpcyBkZWFjdGl2YXRlZC4KCk9wdGlvbmFsIGFyZyBNRVNTQUdFLCBp ZiBub24tbmlsLCByZXF1ZXN0cyBkaXNwbGF5IG9mIGFuIGluZm9ybWF0aXZlCm1lc3NhZ2UgYWZ0 ZXIgYWN0aXZhdGluZyB0aGUgdHJhbnNpZW50IG1hcC4gIElmIE1FU1NBR0UgaXMgYSBzdHJpbmcs Cml0IHNwZWNpZmllcyB0aGUgZm9ybWF0IHN0cmluZyBmb3IgdGhlIG1lc3NhZ2UgdG8gZGlzcGxh eSwgYW5kIHRoZSAlawpzcGVjaWZpZXIgaW4gdGhlIHN0cmluZyBpcyByZXBsYWNlZCB3aXRoIHRo ZSBsaXN0IG9mIGtleXMgZnJvbSB0aGUKdHJhbnNpZW50IG1hcC4gIEFueSBvdGhlciBub24tbmls IHZhbHVlIG9mIE1FU1NBR0UgbWVhbnMgdG8gdXNlIHRoZQptZXNzYWdlIGZvcm1hdCBzdHJpbmcg IlJlcGVhdCB3aXRoICVrIi4gIFVwb24gZGVhY3RpdmF0aW5nIHRoZSBtYXAsCnRoZSBkaXNwbGF5 ZWQgbWVzc2FnZSB3aWxsIGJlIGNsZWFyZWQgb3V0LgoKT3B0aW9uYWwgYXJnIFRJTUVPVVQsIGlm IG5vbi1uaWwsIHNob3VsZCBiZSBhIG51bWJlciBzcGVjaWZ5aW5nIHRoZQpudW1iZXIgb2Ygc2Vj b25kcyBvZiBpZGxlIHRpbWUgYWZ0ZXIgd2hpY2ggdGhlIG1hcCBpcyBkZWFjdGl2YXRlZC4KVGhl IHZhcmlhYmxlIGBzZXQtdHJhbnNpZW50LW1hcC10aW1lb3V0JywgaWYgbm9uLW5pbCwgb3ZlcnJp ZGVzIHRoZQp2YWx1ZSBvZiBUSU1FT1VULgoKVGhpcyBmdW5jdGlvbiB1c2VzIGBvdmVycmlkaW5n LXRlcm1pbmFsLWxvY2FsLW1hcCcsIHdoaWNoIHRha2VzIHByZWNlZGVuY2UKb3ZlciBhbGwgb3Ro ZXIga2V5bWFwcy4gIEFzIHVzdWFsLCBpZiBubyBtYXRjaCBmb3IgYSBrZXkgaXMgZm91bmQgaW4g TUFQLAp0aGUgbm9ybWFsIGtleSBsb29rdXAgc2VxdWVuY2UgdGhlbiBjb250aW51ZXMuCgpUaGlz IHJldHVybnMgYW4gImV4aXQgZnVuY3Rpb24iLCB3aGljaCBjYW4gYmUgY2FsbGVkIHdpdGggbm8g YXJndW1lbnQKdG8gZGVhY3RpdmF0ZSB0aGlzIHRyYW5zaWVudCBtYXAsIHJlZ2FyZGxlc3Mgb2Yg S0VFUC1QUkVELgoKKGZuIE1BUCAmb3B0aW9uYWwgS0VFUC1QUkVEIE9OLUVYSVQgTUVTU0FHRSBU SU1FT1VUKR8KKGRlZmFsaWFzICdzZXQtdHJhbnNpZW50LW1hcCAjWzEyODEgIghcMjA2BQBcMjEx AlwyMDUrAFwzMDJDXDMwM1wzMDRcMzA1A1wiBghcIlwyMTBcMzA2BDtcMjAzHgAEXDIwMh8AXDMw N1wzMTBcMzExXDMxMgVcMjQyXDMxMyNCQ1wiXDI2MgFcMzE0XDMxNSFcMzA0XDMxNgIEBgkGXGYl AVwzMDRcMzE3AwYGBlxmBg4lTVwyMTBcMzIwXDMyMQNcIlwyMTBcMzIyBglcMzIzXCJcMjEwA1wy MDNhAAlcMjAzWwBcMzI0CSFcMjEwXDMyNQRcMzAyAyMRAlwyMDNqAFwzMjZcMzI3BFwiXDIxMFwy MDciIFtzZXQtdHJhbnNpZW50LW1hcC10aW1lb3V0IHNldC10cmFuc2llbnQtbWFwLXRpbWVyIG5p bCBtYXAta2V5bWFwIG1ha2UtY2xvc3VyZSAjWzUxNCAiXDIxMVwyMDVcbgBcMzAwAlwzMDBcMjQy QlwyNDBcMjA3IiBbVjBdIDUgIlxuXG4oZm4gS0VZIENNRCkiXSBmb3JtYXQtc3BlYyAiUmVwZWF0 IHdpdGggJWsiIDEwNyBtYXBjb25jYXQgI1syNTcgIlwzMDBcMzAxXDMwMlwzMDNcMzA0BSEhXCIh XDIwNyIgW3N1YnN0aXR1dGUtY29tbWFuZC1rZXlzIGZvcm1hdCAiXFxgJXMnIiBrZXktZGVzY3Jp cHRpb24gdmVjdG9yXSA3ICJcblxuKGZuIEtFWSkiXSAiLCAiIG1ha2Utc3ltYm9sICJjbGVhci10 cmFuc2llbnQtbWFwIiAjWzAgIlwzMDVcMzAzXDMwNlwiXDIxMFwzMDdcMzEwXDMwMFwiXDIxMFwz MDFcMjAzEgBcMzExXDMxMiFcMjEwXGZcMjAzGgBcMzEzXGYhXDIxMFwzMDJcMjA1IABcMzAyIFwy MDciIFtWMCBWMSBWMiBWMyBzZXQtdHJhbnNpZW50LW1hcC10aW1lciBpbnRlcm5hbC1wb3Ata2V5 bWFwIG92ZXJyaWRpbmctdGVybWluYWwtbG9jYWwtbWFwIHJlbW92ZS1ob29rIHByZS1jb21tYW5k LWhvb2sgbWVzc2FnZSAiIiBjYW5jZWwtdGltZXJdIDNdICNbMCAiXDMwNjFVAFwzMDJcMjAzUQBc MzAzXGZBQD1cMjA0GABcMzAzXGZBQT5cMjA0RgBcMzAyXDMwNz1cMjAzQQBcMzEwXDMwM1wzMTEg XCJcMjExXDIwMzUAXDIxMTlcMjAzNQBcMzEyASFcMjA2MwBcMjExXDI2MgFcMjExXDIwNTwADQE9 XDI2MgFcMjAyQwBcMzAyIFwyMDNRAFwzMDFcMjA1UwBcMzEzXDMxNFwzMDFcIlwyMDJTAFwzMDAg MFwyMDdcMzEzXDMxNQJcIlwyMTBcMzE2XDIwNyIgW1YwIFYxIFYyIFYzIG92ZXJyaWRpbmctdGVy bWluYWwtbG9jYWwtbWFwIHRoaXMtY29tbWFuZCAoZGVidWcgZXJyb3IpIHQgbG9va3VwLWtleSB0 aGlzLWNvbW1hbmQta2V5cy12ZWN0b3IgY29tbWFuZC1yZW1hcHBpbmcgbWVzc2FnZSAiJXMiICJz ZXQtdHJhbnNpZW50LW1hcCBQQ0g6ICVTIiBuaWxdIDRdIGFkZC1ob29rIHByZS1jb21tYW5kLWhv b2sgaW50ZXJuYWwtcHVzaC1rZXltYXAgb3ZlcnJpZGluZy10ZXJtaW5hbC1sb2NhbC1tYXAgY2Fu Y2VsLXRpbWVyIHJ1bi13aXRoLWlkbGUtdGltZXIgbWVzc2FnZSAiJXMiXSAxNiAoIyQgLiAyMDQ0 NjgpXSkjQDcxNyBSZXBvcnQgcHJvZ3Jlc3Mgb2YgYW4gb3BlcmF0aW9uIGluIHRoZSBlY2hvIGFy ZWEuClJFUE9SVEVSIHNob3VsZCBiZSB0aGUgcmVzdWx0IG9mIGEgY2FsbCB0byBgbWFrZS1wcm9n cmVzcy1yZXBvcnRlcicuCgpJZiBSRVBPUlRFUiBpcyBhIG51bWVyaWNhbCBwcm9ncmVzcyByZXBv cnRlci0tLWkuZS4gaWYgaXQgd2FzCiBtYWRlIHVzaW5nIG5vbi1uaWwgTUlOLVZBTFVFIGFuZCBN QVgtVkFMVUUgYXJndW1lbnRzIHRvCiBgbWFrZS1wcm9ncmVzcy1yZXBvcnRlcictLS10aGVuIFZB TFVFIHNob3VsZCBiZSBhIG51bWJlciBiZXR3ZWVuCiBNSU4tVkFMVUUgYW5kIE1BWC1WQUxVRS4K Ck9wdGlvbmFsIGFyZ3VtZW50IFNVRkZJWCBpcyBhIHN0cmluZyB0byBiZSBkaXNwbGF5ZWQgYWZ0 ZXIKUkVQT1JURVIncyBtYWluIG1lc3NhZ2UgYW5kIHByb2dyZXNzIHRleHQuICBJZiBSRVBPUlRF UiBpcyBhCm5vbi1udW1lcmljYWwgcmVwb3J0ZXIsIHRoZW4gVkFMVUUgc2hvdWxkIGJlIG5pbCwg b3IgYSBzdHJpbmcgdG8KdXNlIGluc3RlYWQgb2YgU1VGRklYLgoKVGhpcyBmdW5jdGlvbiBpcyBy ZWxhdGl2ZWx5IGluZXhwZW5zaXZlLiAgSWYgdGhlIGNoYW5nZSBzaW5jZQpsYXN0IHVwZGF0ZSBp cyB0b28gc21hbGwgb3IgaW5zdWZmaWNpZW50IHRpbWUgaGFzIHBhc3NlZCwgaXQgZG9lcwpub3Ro aW5nLgoKKGZuIFJFUE9SVEVSICZvcHRpb25hbCBWQUxVRSBTVUZGSVgpHwooZGVmYWxpYXMgJ3By b2dyZXNzLXJlcG9ydGVyLXVwZGF0ZSAjWzc2OSAiAVwyNDdcMjAzXGYAAQNAWVwyMDURAFwzMDAD AwMjXDIwNyIgW3Byb2dyZXNzLXJlcG9ydGVyLWRvLXVwZGF0ZV0gNyAoIyQgLiAyMDc0MzQpXSkK KGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2I1wyMDciIFtmdW5j dGlvbi1wdXQgcHJvZ3Jlc3MtcmVwb3J0ZXItdXBkYXRlIHNwZWVkIC0xIHB1dCBieXRlLW9wdGlt aXplciBieXRlLWNvbXBpbGUtaW5saW5lLWV4cGFuZF0gNSkjQDEyMDQgUmV0dXJuIHByb2dyZXNz IHJlcG9ydGVyIG9iamVjdCBmb3IgdXNlIHdpdGggYHByb2dyZXNzLXJlcG9ydGVyLXVwZGF0ZScu CgpNRVNTQUdFIGlzIHNob3duIGluIHRoZSBlY2hvIGFyZWEsIHdpdGggYSBzdGF0dXMgaW5kaWNh dG9yCmFwcGVuZGVkIHRvIHRoZSBlbmQuICBXaGVuIHlvdSBjYWxsIGBwcm9ncmVzcy1yZXBvcnRl ci1kb25lJywgdGhlCndvcmQgImRvbmUiIGlzIHByaW50ZWQgYWZ0ZXIgdGhlIE1FU1NBR0UuICBZ b3UgY2FuIGNoYW5nZSB0aGUKTUVTU0FHRSBvZiBhbiBleGlzdGluZyBwcm9ncmVzcyByZXBvcnRl ciBieSBjYWxsaW5nCmBwcm9ncmVzcy1yZXBvcnRlci1mb3JjZS11cGRhdGUnLgoKTUlOLVZBTFVF IGFuZCBNQVgtVkFMVUUsIGlmIG5vbi1uaWwsIGFyZSBzdGFydGluZyAoMCUgY29tcGxldGUpCmFu ZCBmaW5hbCAoMTAwJSBjb21wbGV0ZSkgc3RhdGVzIG9mIG9wZXJhdGlvbjsgdGhlIGxhdHRlciBz aG91bGQKYmUgbGFyZ2VyLiAgSW4gdGhpcyBjYXNlLCB0aGUgc3RhdHVzIG1lc3NhZ2Ugc2hvd3Mg dGhlIHBlcmNlbnRhZ2UKcHJvZ3Jlc3MuCgpJZiBNSU4tVkFMVUUgYW5kL29yIE1BWC1WQUxVRSBp cyBvbWl0dGVkIG9yIG5pbCwgdGhlIHN0YXR1cwptZXNzYWdlIHNob3dzIGEgInNwaW5uaW5nIiwg bm9uLW51bWVyaWMgaW5kaWNhdG9yLgoKT3B0aW9uYWwgQ1VSUkVOVC1WQUxVRSBpcyB0aGUgaW5p dGlhbCBwcm9ncmVzczsgdGhlIGRlZmF1bHQgaXMKTUlOLVZBTFVFLgpPcHRpb25hbCBNSU4tQ0hB TkdFIGlzIHRoZSBtaW5pbWFsIGNoYW5nZSBpbiBwZXJjZW50cyB0byByZXBvcnQ7CnRoZSBkZWZh dWx0IGlzIDElLgpDVVJSRU5ULVZBTFVFIGFuZCBNSU4tQ0hBTkdFIGRvIG5vdCBoYXZlIGFueSBl ZmZlY3QgaWYgTUlOLVZBTFVFCmFuZC9vciBNQVgtVkFMVUUgYXJlIG5pbC4KCk9wdGlvbmFsIE1J Ti1USU1FIHNwZWNpZmllcyB0aGUgbWluaW11bSBpbnRlcnZhbCB0aW1lIGJldHdlZW4KZWNobyBh cmVhIHVwZGF0ZXMgKGRlZmF1bHQgaXMgMC4yIHNlY29uZHMuKSAgSWYgdGhlIE9TIGlzIG5vdApj YXBhYmxlIG9mIG1lYXN1cmluZyBmcmFjdGlvbnMgb2Ygc2Vjb25kcywgdGhpcyBwYXJhbWV0ZXIg aXMKZWZmZWN0aXZlbHkgcm91bmRlZCB1cC4KCihmbiBNRVNTQUdFICZvcHRpb25hbCBNSU4tVkFM VUUgTUFYLVZBTFVFIENVUlJFTlQtVkFMVUUgTUlOLUNIQU5HRSBNSU4tVElNRSkfCihkZWZhbGlh cyAnbWFrZS1wcm9ncmVzcy1yZXBvcnRlciAjWzE1MzcgIlwzMDBcMzAxBgdcIlwyMDMNAAVcMzAy UFwyNjIGXDIxMVwyMDQUAFwzMDNcMjYyAQRcMjA2GQBcMzA0XDMwNQJcMzA2WVwyMDVcIgBcMzA3 IAYHBgcGXG4GB1wyMDM2AAYHXDMxMF5cMzExXVwyMDI3AFwzMTEGB1wzMTImB0JcMjExBFwyMDZE AAYGXDMxMgFcMjQ3XDIwM1EAAQNAWVwyMDVWAFwzMTMDAwMjXDI2NgRcMjA3IiBbc3RyaW5nLW1h dGNoICJbWzphbG51bTpdXVxcJyIgIi4uLiIgMC4yIDAgdmVjdG9yIDAuMDIgZmxvYXQtdGltZSA1 MCAxIG5pbCBwcm9ncmVzcy1yZXBvcnRlci1kby11cGRhdGVdIDE1ICgjJCAuIDIwODQzNCldKSNA MjU1IFJlcG9ydCBwcm9ncmVzcyBvZiBhbiBvcGVyYXRpb24gaW4gdGhlIGVjaG8gYXJlYSB1bmNv bmRpdGlvbmFsbHkuCgpSRVBPUlRFUiwgVkFMVUUsIGFuZCBTVUZGSVggYXJlIHRoZSBzYW1lIGFz IGluIGBwcm9ncmVzcy1yZXBvcnRlci11cGRhdGUnLgpORVctTUVTU0FHRSwgaWYgbm9uLW5pbCwg c2V0cyBhIG5ldyBtZXNzYWdlIGZvciB0aGUgcmVwb3J0ZXIuCgooZm4gUkVQT1JURVIgJm9wdGlv bmFsIFZBTFVFIE5FVy1NRVNTQUdFIFNVRkZJWCkfCihkZWZhbGlhcyAncHJvZ3Jlc3MtcmVwb3J0 ZXItZm9yY2UtdXBkYXRlICNbMTAyNSAiA0ECXDIwMwsAXDIxMVwzMDAESVwyMTBcMjExXDMwMUhc MjAzFwBcMjExXDMwMVwzMDIgSVwyMTBcMzAzBQUEI1wyMDciIFszIDAgZmxvYXQtdGltZSBwcm9n cmVzcy1yZXBvcnRlci1kby11cGRhdGVdIDkgKCMkIC4gMjA5OTkyKV0pI0A1MSBDaGFyYWN0ZXJz IHRvIHVzZSBmb3IgcHVsc2luZyBwcm9ncmVzcyByZXBvcnRlcnMuHwooZGVmdmFyIHByb2dyZXNz LXJlcG9ydGVyLS1wdWxzZS1jaGFyYWN0ZXJzIFsiLSIgIlxcIiAifCIgIi8iXSAoIyQgLiAyMTA0 MzQpKSNANDAgCgooZm4gUkVQT1JURVIgVkFMVUUgJm9wdGlvbmFsIFNVRkZJWCkfCihkZWZhbGlh cyAncHJvZ3Jlc3MtcmVwb3J0ZXItZG8tdXBkYXRlICNbNzcwICICQVwyMTFcMzAySAFcMzAzSAJc MzA0SANcMzA1SAM/XDIwNiMAXDMwNgRcMzA3XCJcMjA1IwAEXDMwMgUGB1wzMTBIXFxJA1wyMDNc MjM2AAJcMjAzXDIzNgACBFpcMzExXDI0NQMFVVwyMDM6AFwzMDJcMjAyQwBcMzEyBgkGBloCXDI0 NSEGXG4GBgIFXDIwM1MABlxuXDMxM0hcMjAyVABcMzAzXFwEX1xcBgZeXDI0MFwyMTAGCVwyNTBc MjAzbAAGXG5cMzE0BlxmQCFcMjQwXDIxMAJcMjA1XDIzNQAGCFwyMDN/AAYHXDMxNQZcbklcMjEw XDIwMlwyMTEABgdcMzE1SFwyMDZcMjA3AFwzMTZcMjYyCVwyMTFcMzAyVlwyMDNcMjI3AFwzMTdc MzIwBQMGXGYkXDIwN1wzMTdcMzIxBQYLI1wyMDdcMjExXDIwNVwzNDIABgdcMjAzXDI2MAAGBlwy MDRcMjYwAAYHXDI2MgcGBlwyMDNcMjc2AAVcMzE1BghJXDIxMFwyMDJcMzA3AAVcMzE1SFwyMDZc MzA1AFwzMTZcMjYyB1wzMjIGCUBUXDMxM1wiXDMwNxgJAUgGXG4CXDI0MFwyMTBcMzE3XDMyMwUD BlxmJClcMjY2XDIwMlwyMDciIFttZXNzYWdlLWxvZy1tYXggcHJvZ3Jlc3MtcmVwb3J0ZXItLXB1 bHNlLWNoYXJhY3RlcnMgMCAxIDIgMyB0aW1lLWxlc3MtcCBuaWwgNSAxMDAuMCB0cnVuY2F0ZSA0 IGNlaWxpbmcgNiAiIiBtZXNzYWdlICIlcyVkJSUgJXMiICIlcyAlcyIgbW9kICIlcyAlcyAlcyJd IDE2ICgjJCAuIDIxMDU2NyldKSNANzkgUHJpbnQgcmVwb3J0ZXIncyBtZXNzYWdlIGZvbGxvd2Vk IGJ5IHdvcmQgImRvbmUiIGluIGVjaG8gYXJlYS4KCihmbiBSRVBPUlRFUikfCihkZWZhbGlhcyAn cHJvZ3Jlc3MtcmVwb3J0ZXItZG9uZSAjWzI1NyAiXDMwMFwzMDECQVwzMDJIXCJcMjA3IiBbbWVz c2FnZSAiJXNkb25lIiAzXSA1ICgjJCAuIDIxMTMyMyldKSNANjk1IExvb3AgYSBjZXJ0YWluIG51 bWJlciBvZiB0aW1lcyBhbmQgcmVwb3J0IHByb2dyZXNzIGluIHRoZSBlY2hvIGFyZWEuCkV2YWx1 YXRlIEJPRFkgd2l0aCBWQVIgYm91bmQgdG8gc3VjY2Vzc2l2ZSBpbnRlZ2VycyBydW5uaW5nIGZy b20KMCwgaW5jbHVzaXZlLCB0byBDT1VOVCwgZXhjbHVzaXZlLiAgVGhlbiBldmFsdWF0ZSBSRVNV TFQgdG8gZ2V0CnRoZSByZXR1cm4gdmFsdWUgKG5pbCBpZiBSRVNVTFQgaXMgb21pdHRlZCkuCgpS RVBPUlRFUi1PUi1NRVNTQUdFIGlzIGEgcHJvZ3Jlc3MgcmVwb3J0ZXIgb2JqZWN0IG9yIGEgc3Ry aW5nLiAgSW4gdGhlIGxhdHRlcgpjYXNlLCB1c2UgdGhpcyBzdHJpbmcgdG8gY3JlYXRlIGEgcHJv Z3Jlc3MgcmVwb3J0ZXIuCgpBdCBlYWNoIGl0ZXJhdGlvbiwgcHJpbnQgdGhlIHJlcG9ydGVyIG1l c3NhZ2UgZm9sbG93ZWQgYnkgcHJvZ3Jlc3MKcGVyY2VudGFnZSBpbiB0aGUgZWNobyBhcmVhLiAg QWZ0ZXIgdGhlIGxvb3AgaXMgZmluaXNoZWQsCnByaW50IHRoZSByZXBvcnRlciBtZXNzYWdlIGZv bGxvd2VkIGJ5IHRoZSB3b3JkICJkb25lIi4KClRoaXMgbWFjcm8gaXMgYSBjb252ZW5pZW5jZSB3 cmFwcGVyIGFyb3VuZCBgbWFrZS1wcm9ncmVzcy1yZXBvcnRlcicgYW5kIGZyaWVuZHMuCgooZm4g KFZBUiBDT1VOVCBbUkVTVUxUXSkgUkVQT1JURVItT1ItTUVTU0FHRSBCT0RZLi4uKR8KKGRlZmFs aWFzICdkb3RpbWVzLXdpdGgtcHJvZ3Jlc3MtcmVwb3J0ZXIgJyhtYWNybyAuICNbNjQyICJcMzAw XDMwMSFcMzAwXDMwMiFcMzAzAgVEAgYHQUBERFwzMDRcMzA1BURcMzA2BgZcMzA3BghcMzEwBglG RUVcMzExBghABURcMzEyBghcMzEzBglcMzE0Bg5AREVDXCJCQlwzMTUGBkRcMzE2XDMxMgYLQUFc MzE3XCJCXDI1NwZcMjA3IiBbbWFrZS1zeW1ib2wgIi0tZG90aW1lcy1wcmVwLS0iICItLWRvdGlt ZXMtZW5kLS0iIGxldCB3aGVuIHN0cmluZ3Agc2V0cSBtYWtlLXByb2dyZXNzLXJlcG9ydGVyIDAg ZG90aW1lcyBhcHBlbmQgcHJvZ3Jlc3MtcmVwb3J0ZXItdXBkYXRlIDErIHByb2dyZXNzLXJlcG9y dGVyLWRvbmUgb3IgKG5pbCldIDE2ICgjJCAuIDIxMTUxMCldKSkKKGJ5dGUtY29kZSAiXDMwMFwz MDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVcMzA2I1wyMDciIFtmdW5jdGlvbi1wdXQgZG90aW1lcy13 aXRoLXByb2dyZXNzLXJlcG9ydGVyIGxpc3AtaW5kZW50LWZ1bmN0aW9uIDIgcHV0IGVkZWJ1Zy1m b3JtLXNwZWMgKChzeW1ib2xwIGZvcm0gJm9wdGlvbmFsIGZvcm0pIGZvcm0gYm9keSldIDUpI0A1 NDAgTG9vcCBvdmVyIGEgbGlzdCBhbmQgcmVwb3J0IHByb2dyZXNzIGluIHRoZSBlY2hvIGFyZWEu CkV2YWx1YXRlIEJPRFkgd2l0aCBWQVIgYm91bmQgdG8gZWFjaCBjYXIgZnJvbSBMSVNULCBpbiB0 dXJuLgpUaGVuIGV2YWx1YXRlIFJFU1VMVCB0byBnZXQgcmV0dXJuIHZhbHVlLCBkZWZhdWx0IG5p bC4KClJFUE9SVEVSLU9SLU1FU1NBR0UgaXMgYSBwcm9ncmVzcyByZXBvcnRlciBvYmplY3Qgb3Ig YSBzdHJpbmcuICBJbiB0aGUgbGF0dGVyCmNhc2UsIHVzZSB0aGlzIHN0cmluZyB0byBjcmVhdGUg YSBwcm9ncmVzcyByZXBvcnRlci4KCkF0IGVhY2ggaXRlcmF0aW9uLCBwcmludCB0aGUgcmVwb3J0 ZXIgbWVzc2FnZSBmb2xsb3dlZCBieSBwcm9ncmVzcwpwZXJjZW50YWdlIGluIHRoZSBlY2hvIGFy ZWEuICBBZnRlciB0aGUgbG9vcCBpcyBmaW5pc2hlZCwKcHJpbnQgdGhlIHJlcG9ydGVyIG1lc3Nh Z2UgZm9sbG93ZWQgYnkgdGhlIHdvcmQgImRvbmUiLgoKKGZuIChWQVIgTElTVCBbUkVTVUxUXSkg UkVQT1JURVItT1ItTUVTU0FHRSBCT0RZLi4uKR8KKGRlZmFsaWFzICdkb2xpc3Qtd2l0aC1wcm9n cmVzcy1yZXBvcnRlciAnKG1hY3JvIC4gI1s2NDIgIlwzMDBcMzAxIVwzMDBcMzAyIVwzMDBcMzAz IVwzMDQDBgZEA1wzMDVCAwYJQUBERVwzMDZcMzA3BgZEXDMxMAYHXDMxMQYJXDMxMlwzMTMGXG5E RkVFXDMxNAYJQAVEXDMxNQYJXDMxNgZcblwzMTAGC1wzMTcGDURFRUNcIkJCXDMyMAYHRFwzMjFc MzE1BlxmQUFcMzIyXCJCXDI1NwZcMjA3IiBbbWFrZS1zeW1ib2wgIi0tZG9saXN0LXByb2dyZXNz LXJlcG9ydGVyLS0iICItLWRvbGlzdC1jb3VudC0tIiAiLS1kb2xpc3QtbGlzdC0tIiBsZXQgKDAp IHdoZW4gc3RyaW5ncCBzZXRxIG1ha2UtcHJvZ3Jlc3MtcmVwb3J0ZXIgMCBsZW5ndGggZG9saXN0 IGFwcGVuZCBwcm9ncmVzcy1yZXBvcnRlci11cGRhdGUgMSsgcHJvZ3Jlc3MtcmVwb3J0ZXItZG9u ZSBvciAobmlsKV0gMTkgKCMkIC4gMjEyNzg0KV0pKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJc MzAzI1wzMDRcMzAxXDMwNVwzMDYjXDIwNyIgW2Z1bmN0aW9uLXB1dCBkb2xpc3Qtd2l0aC1wcm9n cmVzcy1yZXBvcnRlciBsaXNwLWluZGVudC1mdW5jdGlvbiAyIHB1dCBlZGVidWctZm9ybS1zcGVj ICgoc3ltYm9scCBmb3JtICZvcHRpb25hbCBmb3JtKSBmb3JtIGJvZHkpXSA1KSNAMTIyIFNwZWNp ZnkgdGhlIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHRoZSB2ZXJzaW9uIGVsZW1lbnRzLgoKVXN1 YWxseSB0aGUgc2VwYXJhdG9yIGlzICIuIiwgYnV0IGl0IGNhbiBiZSBhbnkgb3RoZXIgc3RyaW5n Lh8KKGRlZmNvbnN0IHZlcnNpb24tc2VwYXJhdG9yICIuIiAoIyQgLiAyMTM5NzMpKSNAOTgzIFNw ZWNpZnkgYXNzb2NpYXRpb24gYmV0d2VlbiBub24tbnVtZXJpYyB2ZXJzaW9uIGFuZCBpdHMgcHJp b3JpdHkuCgpUaGlzIGFzc29jaWF0aW9uIGlzIHVzZWQgdG8gaGFuZGxlIHZlcnNpb24gc3RyaW5n IGxpa2UgIjEuMHByZTIiLAoiMC45YWxwaGExIiwgZXRjLiAgSXQncyB1c2VkIGJ5IGB2ZXJzaW9u LXRvLWxpc3QnICh3aGljaCBzZWUpIHRvIGNvbnZlcnQgdGhlCm5vbi1udW1lcmljIHBhcnQgb2Yg YSB2ZXJzaW9uIHN0cmluZyB0byBhbiBpbnRlZ2VyLiAgRm9yIGV4YW1wbGU6CgogICBTdHJpbmcg VmVyc2lvbiAgICBJbnRlZ2VyIExpc3QgVmVyc2lvbgogICAiMC45c25hcHNob3QiICAgICAoMCAg OSAtNCkKICAgIjEuMC1naXQiICAgICAgICAgKDEgIDAgLTQpCiAgICIxLjAuY3ZzIiAgICAgICAg ICgxICAwIC00KQogICAiMS4wcHJlMiIgICAgICAgICAoMSAgMCAtMSAyKQogICAiMS4wUFJFMiIg ICAgICAgICAoMSAgMCAtMSAyKQogICAiMjIuOGJldGEzIiAgICAgICAoMjIgOCAtMiAzKQogICAi MjIuOCBCZXRhMyIgICAgICAoMjIgOCAtMiAzKQogICAiMC45YWxwaGExIiAgICAgICAoMCAgOSAt MyAxKQogICAiMC45QWxwaEExIiAgICAgICAoMCAgOSAtMyAxKQogICAiMC45IGFscGhhIiAgICAg ICAoMCAgOSAtMykKCkVhY2ggZWxlbWVudCBoYXMgdGhlIGZvbGxvd2luZyBmb3JtOgoKICAgKFJF R0VYUCAuIFBSSU9SSVRZKQoKV2hlcmU6CgpSRUdFWFAJCXJlZ2V4cCB1c2VkIHRvIG1hdGNoIG5v bi1udW1lcmljIHBhcnQgb2YgYSB2ZXJzaW9uIHN0cmluZy4KCQlJdCBzaG91bGQgYmVnaW4gd2l0 aCB0aGUgYF4nIGFuY2hvciBhbmQgZW5kIHdpdGggYSBgJCcgdG8KCQlwcmV2ZW50IGZhbHNlIGhp dHMuICBMZXR0ZXItY2FzZSBpcyBpZ25vcmVkIHdoaWxlIG1hdGNoaW5nCgkJUkVHRVhQLgoKUFJJ T1JJVFkJYSBuZWdhdGl2ZSBpbnRlZ2VyIHNwZWNpZnlpbmcgbm9uLW51bWVyaWMgcHJpb3JpdHkg b2YgUkVHRVhQLh8KKGRlZmNvbnN0IHZlcnNpb24tcmVnZXhwLWFsaXN0ICcoKCJeWy0uXysgXT9z bmFwc2hvdCQiIC4gLTQpICgiXlstLl8rXSQiIC4gLTQpICgiXlstLl8rIF0/XFwoY3ZzXFx8Z2l0 XFx8YnpyXFx8c3ZuXFx8aGdcXHxkYXJjc1xcKSQiIC4gLTQpICgiXlstLl8rIF0/dW5rbm93biQi IC4gLTQpICgiXlstLl8rIF0/YWxwaGEkIiAuIC0zKSAoIl5bLS5fKyBdP2JldGEkIiAuIC0yKSAo Il5bLS5fKyBdP1xcKHByZVxcfHJjXFwpJCIgLiAtMSkpICgjJCAuIDIxNDE0NykpI0AxMDkzIENv bnZlcnQgdmVyc2lvbiBzdHJpbmcgVkVSIGludG8gYSBsaXN0IG9mIGludGVnZXJzLgoKVGhlIHZl cnNpb24gc3ludGF4IGlzIGdpdmVuIGJ5IHRoZSBmb2xsb3dpbmcgRUJORjoKCiAgIFZFUlNJT04g Ojo9IE5VTUJFUiAoIFNFUEFSQVRPUiBOVU1CRVIgKSouCgogICBOVU1CRVIgOjo9ICgwfDF8Mnwz fDR8NXw2fDd8OHw5KSsuCgogICBTRVBBUkFUT1IgOjo9IGB2ZXJzaW9uLXNlcGFyYXRvcicgKHdo aWNoIHNlZSkKCSAgICAgICB8IGB2ZXJzaW9uLXJlZ2V4cC1hbGlzdCcgKHdoaWNoIHNlZSkuCgpU aGUgTlVNQkVSIHBhcnQgaXMgb3B0aW9uYWwgaWYgU0VQQVJBVE9SIGlzIGEgbWF0Y2ggZm9yIGFu IGVsZW1lbnQKaW4gYHZlcnNpb24tcmVnZXhwLWFsaXN0Jy4KCkV4YW1wbGVzIG9mIHZhbGlkIHZl cnNpb24gc3ludGF4OgoKICAgMS4wcHJlMiAgIDEuMC43LjUgICAyMi44YmV0YTMgICAwLjlhbHBo YTEgICA2LjkuMzBCZXRhICAgMi40LnNuYXBzaG90ICAgLjUKCkV4YW1wbGVzIG9mIGludmFsaWQg dmVyc2lvbiBzeW50YXg6CgogICAxLjBwcmVwcmUyICAgMS4wLi43LjUgICAyMi44WDMgICBhbHBo YTMuMgoKRXhhbXBsZXMgb2YgdmVyc2lvbiBjb252ZXJzaW9uOgoKICAgVmVyc2lvbiBTdHJpbmcg ICAgVmVyc2lvbiBhcyBhIExpc3Qgb2YgSW50ZWdlcnMKICAgIi41IiAgICAgICAgICAgICAgKDAg NSkKICAgIjAuOSBhbHBoYSIgICAgICAgKDAgIDkgLTMpCiAgICIwLjlBbHBoQTEiICAgICAgICgw ICA5IC0zIDEpCiAgICIwLjlzbmFwc2hvdCIgICAgICgwICA5IC00KQogICAiMS4wLWdpdCIgICAg ICAgICAoMSAgMCAtNCkKICAgIjEuMC43LjUiICAgICAgICAgKDEgIDAgIDcgNSkKICAgIjEuMC5j dnMiICAgICAgICAgKDEgIDAgLTQpCiAgICIxLjBQUkUyIiAgICAgICAgICgxICAwIC0xIDIpCiAg ICIxLjBwcmUyIiAgICAgICAgICgxICAwIC0xIDIpCiAgICIyMi44IEJldGEzIiAgICAgICgyMiA4 IC0yIDMpCiAgICIyMi44YmV0YTMiICAgICAgICgyMiA4IC0yIDMpCgpTZWUgZG9jdW1lbnRhdGlv biBmb3IgYHZlcnNpb24tc2VwYXJhdG9yJyBhbmQgYHZlcnNpb24tcmVnZXhwLWFsaXN0Jy4KCihm biBWRVIpHwooZGVmYWxpYXMgJ3ZlcnNpb24tdG8tbGlzdCAjWzI1NyAiXDIxMTtcMjA0CQBcMzAz XDMwNCFcMjEwXDIxMUcIR1lcMjAzIABcMjExXDMwNQhHTwhcMjMwXDIwMyAAXDMwNgFQXDI2MgFc MzA3AVwzMTBcMzExAwMDXDMxMiRcMjY2XDIwM1wyMDQzAFwzMDNcMzEzAlwiXDIxMFwzMTQgXDMx NVwzMTYCXCJcMjE2XDMwNVwzMTJcMzEwXDIxMVwyMTEDGVwzMTFcMzE3BggGByNcMjExXDI2MgNc MjAzXDMzMAABBVVcMjAzXDMzMABcMzIwBgcGBlwzMDVcMjI1TyEDQlwyNjIDXDMwNVwyMjVcMjYy BVwzMTFcMzIxBggGByNcMjExXDI2MgNcMjAzQQABBVVcMjAzQQAGBgVcMzA1XDIyNU9cMjYyAlwz MDVcMjI1XDI2MgUBCFwyMzBcMjA0QQBcblwyNjIBXDIxMVwyMDNcMjQxAFwzMTEBQEADXCJcMjA0 XDI0MQBcMjExQVwyNjIBXDIwMlwyMTUAXDIxMVwyMDNcMjU3AFwyMTFAQQNCXDI2MgNcMjAyQQBc MzExXDMyMgNcIlwyMDNcMzE3AAQGB0dVXDIwM1wzMTcAXDMyM1wzMjQDXCJcMjI3XDMwNUhcMzI1 WlQDQlwyNjIDXDIwMkEAXDMwM1wzMjYGCFwiXDIxMFwyMDJBAAJcMjM3KVwyNjZcMjA1KVwyMDci IFt2ZXJzaW9uLXNlcGFyYXRvciBjYXNlLWZvbGQtc2VhcmNoIHZlcnNpb24tcmVnZXhwLWFsaXN0 IGVycm9yICJWZXJzaW9uIG11c3QgYmUgYSBzdHJpbmciIDAgIjAiICJeWzAtOV0iIG5pbCBzdHJp bmctbWF0Y2ggdCAiSW52YWxpZCB2ZXJzaW9uIHN5bnRheDogYCVzJyAobXVzdCBzdGFydCB3aXRo IGEgbnVtYmVyKSIgbWF0Y2gtZGF0YSBtYWtlLWNsb3N1cmUgI1swICJcMzAxXDMwMFwzMDJcIlwy MDciIFtWMCBzZXQtbWF0Y2gtZGF0YSB0XSAzXSAiWzAtOV0rIiBzdHJpbmctdG8tbnVtYmVyICJb XjAtOV0rIiAiXlstLl8rIF0/XFwoW2EtekEtWl1cXCkkIiBtYXRjaC1zdHJpbmcgMSA5NyAiSW52 YWxpZCB2ZXJzaW9uIHN5bnRheDogYCVzJyJdIDExICgjJCAuIDIxNTQwMSldKSNAMzQ4IFJldHVy biB0IGlmIEwxLCBhIGxpc3Qgc3BlY2lmaWNhdGlvbiBvZiBhIHZlcnNpb24sIGlzIGxvd2VyIHRo YW4gTDIuCgpOb3RlIHRoYXQgYSB2ZXJzaW9uIHNwZWNpZmllZCBieSB0aGUgbGlzdCAoMSkgaXMg ZXF1YWwgdG8gKDEgMCksCigxIDAgMCksICgxIDAgMCAwKSwgZXRjLiAgVGhhdCBpcywgdGhlIHRy YWlsaW5nIHplcm9zIGFyZSBpbnNpZ25pZmljYW50LgpBbHNvLCBhIHZlcnNpb24gZ2l2ZW4gYnkg dGhlIGxpc3QgKDEpIGlzIGhpZ2hlciB0aGFuICgxIC0xKSwgd2hpY2ggaW4KdHVybiBpcyBoaWdo ZXIgdGhhbiAoMSAtMiksIHdoaWNoIGlzIGhpZ2hlciB0aGFuICgxIC0zKS4KCihmbiBMMSBMMikf CihkZWZhbGlhcyAndmVyc2lvbi1saXN0LTwgI1s1MTQgIgFcMjAzGwBcMjExXDIwMxsAAUABQFVc MjAzGwABQVwyNjICXDIxMUFcMjYyAVwyMDIAAAFcMjAzKQBcMjExXDIwMykAAUABQFdcMjA3AVwy MDQzAFwyMTFcMjA0MwBcMzAwXDIwNwFcMjAzPQBcMzAxAiFcMzAyV1wyMDdcMzAyXDMwMQIhV1wy MDciIFtuaWwgdmVyc2lvbi1saXN0LW5vdC16ZXJvIDBdIDUgKCMkIC4gMjE3NDUwKV0pI0AzNDYg UmV0dXJuIHQgaWYgTDEsIGEgbGlzdCBzcGVjaWZpY2F0aW9uIG9mIGEgdmVyc2lvbiwgaXMgZXF1 YWwgdG8gTDIuCgpOb3RlIHRoYXQgYSB2ZXJzaW9uIHNwZWNpZmllZCBieSB0aGUgbGlzdCAoMSkg aXMgZXF1YWwgdG8gKDEgMCksCigxIDAgMCksICgxIDAgMCAwKSwgZXRjLiAgVGhhdCBpcywgdGhl IHRyYWlsaW5nIHplcm9zIGFyZSBpbnNpZ25pZmljYW50LgpBbHNvLCBhIHZlcnNpb24gZ2l2ZW4g YnkgdGhlIGxpc3QgKDEpIGlzIGhpZ2hlciB0aGFuICgxIC0xKSwgd2hpY2ggaW4KdHVybiBpcyBo aWdoZXIgdGhhbiAoMSAtMiksIHdoaWNoIGlzIGhpZ2hlciB0aGFuICgxIC0zKS4KCihmbiBMMSBM MikfCihkZWZhbGlhcyAndmVyc2lvbi1saXN0LT0gI1s1MTQgIgFcMjAzGwBcMjExXDIwMxsAAUAB QFVcMjAzGwABQVwyNjICXDIxMUFcMjYyAVwyMDIAAAFcMjAzJQBcMjExXDIwMyUAXDMwMFwyMDcB XDIwNC4AXDIxMT9cMjA2PQABXDIwMzgAXDMwMQIhXDMwMlVcMjA3XDMwMQEhXDMwMlVcMjA3IiBb bmlsIHZlcnNpb24tbGlzdC1ub3QtemVybyAwXSA0ICgjJCAuIDIxODAyNSldKSNAMzE2IFJldHVy biB0IGlmIEwxLCBhIGxpc3Qgc3BlY2lmaWNhdGlvbiBvZiBhIHZlcnNpb24sIGlzIGxvd2VyIG9y IGVxdWFsIHRvIEwyLgoKTm90ZSB0aGF0IGludGVnZXIgbGlzdCAoMSkgaXMgZXF1YWwgdG8gKDEg MCksICgxIDAgMCksICgxIDAgMCAwKSwKZXRjLiAgVGhhdCBpcywgdGhlIHRyYWlsaW5nIHplcm9l cyBhcmUgaW5zaWduaWZpY2FudC4gIEFsc28sIGludGVnZXIKbGlzdCAoMSkgaXMgZ3JlYXRlciB0 aGFuICgxIC0xKSB3aGljaCBpcyBncmVhdGVyIHRoYW4gKDEgLTIpCndoaWNoIGlzIGdyZWF0ZXIg dGhhbiAoMSAtMykuCgooZm4gTDEgTDIpHwooZGVmYWxpYXMgJ3ZlcnNpb24tbGlzdC08PSAjWzUx NCAiAVwyMDMbAFwyMTFcMjAzGwABQAFAVVwyMDMbAAFBXDI2MgJcMjExQVwyNjIBXDIwMgAAAVwy MDMpAFwyMTFcMjAzKQABQAFAV1wyMDcBXDIwNDIAXDIxMT9cMjA2QQABXDIwMzwAXDMwMAIhXDMw MVhcMjA3XDMwMVwzMDACIVhcMjA3IiBbdmVyc2lvbi1saXN0LW5vdC16ZXJvIDBdIDUgKCMkIC4g MjE4NTkwKV0pI0AxNDEgUmV0dXJuIHRoZSBmaXJzdCBub24temVybyBlbGVtZW50IG9mIExTVCwg d2hpY2ggaXMgYSBsaXN0IG9mIGludGVnZXJzLgoKSWYgYWxsIExTVCBlbGVtZW50cyBhcmUgemVy b3Mgb3IgTFNUIGlzIG5pbCwgcmV0dXJuIHplcm8uCgooZm4gTFNUKR8KKGRlZmFsaWFzICd2ZXJz aW9uLWxpc3Qtbm90LXplcm8gI1syNTcgIlwyMTFcMjAzEgBcMjExQFwzMDBVXDIwMxIAXDIxMUFc MjYyAVwyMDIAAFwyMTFcMjAzGQBcMjExQFwyMDdcMzAwXDIwNyIgWzBdIDMgKCMkIC4gMjE5MTIz KV0pI0A0MDIgUmV0dXJuIHQgaWYgdmVyc2lvbiBWMSBpcyBsb3dlciAob2xkZXIpIHRoYW4gVjIu CgpOb3RlIHRoYXQgdmVyc2lvbiBzdHJpbmcgIjEiIGlzIGVxdWFsIHRvICIxLjAiLCAiMS4wLjAi LCAiMS4wLjAuMCIsCmV0Yy4gIFRoYXQgaXMsIHRoZSB0cmFpbGluZyAiLjAicyBhcmUgaW5zaWdu aWZpY2FudC4gIEFsc28sIHZlcnNpb24Kc3RyaW5nICIxIiBpcyBoaWdoZXIgKG5ld2VyKSB0aGFu ICIxcHJlIiwgd2hpY2ggaXMgaGlnaGVyIHRoYW4gIjFiZXRhIiwKd2hpY2ggaXMgaGlnaGVyIHRo YW4gIjFhbHBoYSIsIHdoaWNoIGlzIGhpZ2hlciB0aGFuICIxc25hcHNob3QiLgpBbHNvLCAiLUdJ VCIsICItQ1ZTIiBhbmQgIi1OTk4iIGFyZSB0cmVhdGVkIGFzIHNuYXBzaG90IHZlcnNpb25zLgoK KGZuIFYxIFYyKR8KKGRlZmFsaWFzICd2ZXJzaW9uPCAjWzUxNCAiXDMwMFwzMDEDIVwzMDEDIVwi XDIwNyIgW3ZlcnNpb24tbGlzdC08IHZlcnNpb24tdG8tbGlzdF0gNiAoIyQgLiAyMTk0MDIpXSkj QDQxNCBSZXR1cm4gdCBpZiB2ZXJzaW9uIFYxIGlzIGxvd2VyIChvbGRlcikgdGhhbiBvciBlcXVh bCB0byBWMi4KCk5vdGUgdGhhdCB2ZXJzaW9uIHN0cmluZyAiMSIgaXMgZXF1YWwgdG8gIjEuMCIs ICIxLjAuMCIsICIxLjAuMC4wIiwKZXRjLiAgVGhhdCBpcywgdGhlIHRyYWlsaW5nICIuMCJzIGFy ZSBpbnNpZ25pZmljYW50LiAgQWxzbywgdmVyc2lvbgpzdHJpbmcgIjEiIGlzIGhpZ2hlciAobmV3 ZXIpIHRoYW4gIjFwcmUiLCB3aGljaCBpcyBoaWdoZXIgdGhhbiAiMWJldGEiLAp3aGljaCBpcyBo aWdoZXIgdGhhbiAiMWFscGhhIiwgd2hpY2ggaXMgaGlnaGVyIHRoYW4gIjFzbmFwc2hvdCIuCkFs c28sICItR0lUIiwgIi1DVlMiIGFuZCAiLU5OTiIgYXJlIHRyZWF0ZWQgYXMgc25hcHNob3QgdmVy c2lvbnMuCgooZm4gVjEgVjIpHwooZGVmYWxpYXMgJ3ZlcnNpb248PSAjWzUxNCAiXDMwMFwzMDED IVwzMDEDIVwiXDIwNyIgW3ZlcnNpb24tbGlzdC08PSB2ZXJzaW9uLXRvLWxpc3RdIDYgKCMkIC4g MjE5OTExKV0pI0AzOTIgUmV0dXJuIHQgaWYgdmVyc2lvbiBWMSBpcyBlcXVhbCB0byBWMi4KCk5v dGUgdGhhdCB2ZXJzaW9uIHN0cmluZyAiMSIgaXMgZXF1YWwgdG8gIjEuMCIsICIxLjAuMCIsICIx LjAuMC4wIiwKZXRjLiAgVGhhdCBpcywgdGhlIHRyYWlsaW5nICIuMCJzIGFyZSBpbnNpZ25pZmlj YW50LiAgQWxzbywgdmVyc2lvbgpzdHJpbmcgIjEiIGlzIGhpZ2hlciAobmV3ZXIpIHRoYW4gIjFw cmUiLCB3aGljaCBpcyBoaWdoZXIgdGhhbiAiMWJldGEiLAp3aGljaCBpcyBoaWdoZXIgdGhhbiAi MWFscGhhIiwgd2hpY2ggaXMgaGlnaGVyIHRoYW4gIjFzbmFwc2hvdCIuCkFsc28sICItR0lUIiwg Ii1DVlMiIGFuZCAiLU5OTiIgYXJlIHRyZWF0ZWQgYXMgc25hcHNob3QgdmVyc2lvbnMuCgooZm4g VjEgVjIpHwooZGVmYWxpYXMgJ3ZlcnNpb249ICNbNTE0ICJcMzAwXDMwMQMhXDMwMQMhXCJcMjA3 IiBbdmVyc2lvbi1saXN0LT0gdmVyc2lvbi10by1saXN0XSA2ICgjJCAuIDIyMDQzNCldKSNAMjA1 IEFsaXN0IGdpdmluZyB0aGUgdmVyc2lvbiBvZiBlYWNoIHZlcnNpb25lZCBidWlsdGluIHBhY2th Z2UuCkkuZS4gZWFjaCBlbGVtZW50IG9mIHRoZSBsaXN0IGlzIG9mIHRoZSBmb3JtIChOQU1FIC4g VkVSU0lPTikgd2hlcmUKTkFNRSBpcyB0aGUgcGFja2FnZSBuYW1lIGFzIGEgc3ltYm9sLCBhbmQg VkVSU0lPTiBpcyBpdHMgdmVyc2lvbgphcyBhIGxpc3QuHwooZGVmdmFyIHBhY2thZ2UtLWJ1aWx0 aW4tdmVyc2lvbnMgKGJ5dGUtY29kZSAiXDMwMVwzMDJcMzAzCCFCQyFcMjA3IiBbZW1hY3MtdmVy c2lvbiBwdXJlY29weSBlbWFjcyB2ZXJzaW9uLXRvLWxpc3RdIDQpICgjJCAuIDIyMDkzMykpI0A2 NSBSZXR1cm4gcGFja2FnZSBkZXNjcmlwdGlvbiBmaWxlIG5hbWUgZm9yIHBhY2thZ2UgRElSLgoK KGZuIERJUikfCihkZWZhbGlhcyAncGFja2FnZS0tZGVzY3JpcHRpb24tZmlsZSAjWzI1NyAiXDMw MFwzMDECISFcMzAyXDMwMwJcIlwyMDMTAFwzMDRcMzA1AlwiXDIwMhQAXDIxMVwyNjIBXDMwNlBc MjA3IiBbZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBkaXJlY3RvcnktZmlsZS1uYW1lIHN0cmluZy1t YXRjaCAiXFwoW14uXS4qP1xcKS1cXChbMC05XStcXCg/OlsuXVswLTldK1xcfFxcKD86cHJlXFx8 YmV0YVxcfGFscGhhXFwpWzAtOV0rXFwpKlxcKSIgbWF0Y2gtc3RyaW5nIDEgIi1wa2cuZWwiXSA1 ICgjJCAuIDIyMTI3NildKSNAMTQyIEludm9rZSBCT0RZIHdpdGggTVVURVggaGVsZCwgcmVsZWFz aW5nIE1VVEVYIHdoZW4gZG9uZS4KVGhpcyBpcyB0aGUgc2ltcGxlc3Qgc2FmZSB3YXkgdG8gYWNx dWlyZSBhbmQgcmVsZWFzZSBhIG11dGV4LgoKKGZuIE1VVEVYICZyZXN0IEJPRFkpHwooZGVmYWxp YXMgJ3dpdGgtbXV0ZXggJyhtYWNybyAuICNbMzg1ICJcMzAwXDMwMSFcMzAyAQREQ1wzMDMDRFwz MDRcMzA1BgZCXDMwNgYGREVGXDIwNyIgW21ha2Utc3ltYm9sICJtdXRleCIgbGV0IG11dGV4LWxv Y2sgdW53aW5kLXByb3RlY3QgcHJvZ24gbXV0ZXgtdW5sb2NrXSAxMCAoIyQgLiAyMjE2MzgpXSkp CihieXRlLWNvZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwNFwzMDFcMzA1XDMwNiNcMjA3IiBbZnVu Y3Rpb24tcHV0IHdpdGgtbXV0ZXggbGlzcC1pbmRlbnQtZnVuY3Rpb24gMSBwdXQgZWRlYnVnLWZv cm0tc3BlYyB0XSA1KSNAMjY4IFNob3cgYWxsIHN5bWJvbHMgd2hvc2UgbmFtZXMgY29udGFpbiBt YXRjaCBmb3IgUkVHRVhQLgpJZiBvcHRpb25hbCAybmQgYXJnIFBSRURJQ0FURSBpcyBub24tbmls LCAoZnVuY2FsbCBQUkVESUNBVEUgU1lNQk9MKSBpcyBkb25lCmZvciBlYWNoIHN5bWJvbCBhbmQg YSBzeW1ib2wgaXMgbWVudGlvbmVkIG9ubHkgaWYgdGhhdCByZXR1cm5zIG5vbi1uaWwuClJldHVy biBsaXN0IG9mIHN5bWJvbHMgZm91bmQuCgooZm4gUkVHRVhQICZvcHRpb25hbCBQUkVESUNBVEUp HwooZGVmYWxpYXMgJ2Fwcm9wb3MtaW50ZXJuYWwgI1s1MTMgIlwzMDBDXDMwMVwzMDJcMzAzAwUG ByQhXDIxMFwzMDQBXDI0MlwzMDVcIlwyMDciIFtuaWwgbWFwYXRvbXMgbWFrZS1jbG9zdXJlICNb MjU3ICJcMzAzXDMwMlwzMDQDIVwiXDIwNRkAXDMwMVwyMDMTAFwzMDEBIVwyMDUZAFwzMDABXDMw MFwyNDJCXDI0MFwyMDciIFtWMCBWMSBWMiBzdHJpbmctbWF0Y2ggc3ltYm9sLW5hbWVdIDUgIlxu XG4oZm4gU1lNQk9MKSJdIHNvcnQgc3RyaW5nLWxlc3NwXSA5ICgjJCAuIDIyMjA5MSldKSNANjMx IEhhc2ggdGFibGUgbWFwcGluZyBwcmVmaXhlcyB0byB0aGUgZmlsZXMgaW4gd2hpY2ggdGhleSdy ZSB1c2VkLgpUaGlzIGNhbiBiZSB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgZmV0Y2ggbm90LXlldC1s b2FkZWQgZGVmaW5pdGlvbnMuCk1vcmUgc3BlY2lmaWNhbGx5LCBpZiB0aGVyZSBpcyBhIHZhbHVl IG9mIHRoZSBmb3JtIChGSUxFUy4uLikgZm9yCmEgc3RyaW5nIFBSRUZJWCBpdCBtZWFucyB0aGF0 IHRoZSBGSUxFUyBkZWZpbmUgdmFyaWFibGVzIG9yIGZ1bmN0aW9ucwp3aXRoIG5hbWVzIHRoYXQg c3RhcnQgd2l0aCBQUkVGSVguCgpOb3RlIHRoYXQgaXQgZG9lcyBub3QgaW1wbHkgdGhhdCBhbGwg ZGVmaW5pdGlvbnMgc3RhcnRpbmcgd2l0aCBQUkVGSVggY2FuCmJlIGZvdW5kIGluIHRob3NlIGZp bGVzLiAgRS5nLiBpZiBwcmVmaXggaXMgImdudXMtYXJ0aWNsZS0iIHRoZXJlIG1pZ2h0CnN0aWxs IGJlIGRlZmluaXRpb25zIG9mIHRoZSBmb3JtICJnbnVzLWFydGljbGUtdG90by10aXRpIiBpbiBv dGhlciBmaWxlcywKd2hpY2ggd291bGQgcHJlc3VtYWJseSBhcHBlYXIgaW4gdGhpcyB0YWJsZSB1 bmRlciBhbm90aGVyIHByZWZpeCBzdWNoIGFzCiJnbnVzLSIgb3IgImdudXMtYXJ0aWNsZS10b3Rv LSIuHwooZGVmdmFyIGRlZmluaXRpb24tcHJlZml4ZXMgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAn ZXF1YWwpICgjJCAuIDIyMjY0MykpI0A1NSBSZWdpc3RlciB0aGF0IEZJTEUgdXNlcyBQUkVGSVhF Uy4KCihmbiBGSUxFIFBSRUZJWEVTKR8KKGRlZmFsaWFzICdyZWdpc3Rlci1kZWZpbml0aW9uLXBy ZWZpeGVzICNbNTE0ICJcMjExXDIxMVwyMDUZAFwyMTFAXDMwMQEFXDMwMgQIXCJCCCNcMjEwAUFc MjY2XDIwMlwyMDIBAFwyMDciIFtkZWZpbml0aW9uLXByZWZpeGVzIHB1dGhhc2ggZ2V0aGFzaF0g MTAgKCMkIC4gMjIzMzUyKV0pI0AyMiBTZXBhcmF0b3IgZm9yIG1lbnVzLh8KKGRlZmNvbnN0IG1l bnUtYmFyLXNlcGFyYXRvciAnKCItLSIpICgjJCAuIDIyMzU3NykpCihieXRlLWNvZGUgIlwzMDBc MzAxXDMwMlwzMDMgISFAIVwyMDMQAFwzMDRcMzA1IVwyMTBcMzAwXDIwNyIgW2hhc2gtdGFibGUt cCByZWFkLWZyb20tc3RyaW5nIHByaW4xLXRvLXN0cmluZyBtYWtlLWhhc2gtdGFibGUgcHJvdmlk ZSBoYXNodGFibGUtcHJpbnQtcmVhZGFibGVdIDQpI0AzMDEgUHJvZHVjZSB0aGUgY2Fub25pY2Fs IGZpbGUgbmFtZSBmb3IgRklMRSBmcm9tIGl0cyBNU1lTIGZvcm0uCgpPbiBzeXN0ZW1zIG90aGVy IHRoYW4gTVMtV2luZG93cywganVzdCByZXR1cm5zIEZJTEUuCk9uIE1TLVdpbmRvd3MsIGNvbnZl cnRzIC9kL2Zvby9iYXIgZm9ybSBvZiBmaWxlIG5hbWVzCnBhc3NlZCBieSBNU1lTIE1ha2UgaW50 byBkOi9mb28vYmFyIHRoYXQgRW1hY3MgY2FuIGdyb2suCgpUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl ZCBmcm9tIGxpc3AvTWFrZWZpbGUgYW5kIGxlaW0vTWFrZWZpbGUuCgooZm4gRklMRSkfCihkZWZh bGlhcyAndW5tc3lzLS1maWxlLW5hbWUgI1syNTcgIghcMzAxPVwyMDMZAFwzMDJcMzAzAlwiXDIw MxkAXDIxMVwzMDRcMzA1T1wzMDYCXDMwNVwzMDdPUVwyNjIBXDIwNyIgW3N5c3RlbS10eXBlIHdp bmRvd3MtbnQgc3RyaW5nLW1hdGNoICJcXGAvW2EtekEtWl0vIiAxIDIgIjoiIG5pbF0gNiAoIyQg LiAyMjM4MTgpXSkjQDI5MCBSZXR1cm4gYSAiZmxhdHRlbmVkIiBjb3B5IG9mIFRSRUUuCkluIG90 aGVyIHdvcmRzLCByZXR1cm4gYSBsaXN0IG9mIHRoZSBub24tbmlsIHRlcm1pbmFsIG5vZGVzLCBv cgpsZWF2ZXMsIG9mIHRoZSB0cmVlIG9mIGNvbnMgY2VsbHMgcm9vdGVkIGF0IFRSRUUuICBMZWF2 ZXMgaW4gdGhlCnJldHVybmVkIGxpc3QgYXJlIGluIHRoZSBzYW1lIG9yZGVyIGFzIGluIFRSRUUu CgooZmxhdHRlbi10cmVlIFw9JygxICgyIC4gMykgbmlsICg0IDUgKDYpKSA3KSkKPT4gKDEgMiAz IDQgNSA2IDcpCgooZm4gVFJFRSkfCihkZWZhbGlhcyAnZmxhdHRlbi10cmVlICNbMjU3ICJcMzAw ATpcMjAzKwABXDIxMUFcMjYyA1wyNDJcMjExOlwyMDMeAFwyMTFBA0JcMjYyA1wyMTFAXDI2MgFc MjAyXGYAXDIxMVwyMDMnAFwyMTECQlwyNjICXDIxMFwyMDIBAAFcMjAzNAABAUJcMjYyAVwyMTFc MjM3XDIwNyIgW25pbF0gNSAoIyQgLiAyMjQzMTIpXSkKKGRlZmFsaWFzICdmbGF0dGVuLWxpc3Qg J2ZsYXR0ZW4tdHJlZSkjQDExMiBUcmltIFNUUklORyBvZiBsZWFkaW5nIHN0cmluZyBtYXRjaGlu ZyBSRUdFWFAuCgpSRUdFWFAgZGVmYXVsdHMgdG8gIlsgXHRcblxyXSsiLgoKKGZuIFNUUklORyAm b3B0aW9uYWwgUkVHRVhQKR8KKGRlZmFsaWFzICdzdHJpbmctdHJpbS1sZWZ0ICNbNTEzICJcMzAw XDMwMQJcMjA2BwBcMzAyXDMwM1EDXCJcMjAzFAABXDMwNFwyMjVcMzA1T1wyMDcBXDIwNyIgW3N0 cmluZy1tYXRjaCAiXFxgXFwoPzoiICJbIAlcbg1dKyIgIlxcKSIgMCBuaWxdIDYgKCMkIC4gMjI0 ODI4KV0pI0AxMTQgVHJpbSBTVFJJTkcgb2YgdHJhaWxpbmcgc3RyaW5nIG1hdGNoaW5nIFJFR0VY UC4KClJFR0VYUCBkZWZhdWx0cyB0byAgIlsgXHRcblxyXSsiLgoKKGZuIFNUUklORyAmb3B0aW9u YWwgUkVHRVhQKR8KKGRlZmFsaWFzICdzdHJpbmctdHJpbS1yaWdodCAjWzUxMyAiXDMwMAFcMjA2 BgBcMzAxXDMwMlECXDMwM1wzMDQDAwNcMzA1JFwyNjZcMjAzXDIxMVwyMDMbAAJcMzA2Ak9cMjA3 AlwyMDciIFsiXFwoPzoiICJbIAlcbg1dKyIgIlxcKVxcJyIgbmlsIHN0cmluZy1tYXRjaCB0IDBd IDEwICgjJCAuIDIyNTEwNSldKSNAMTc1IFRyaW0gU1RSSU5HIG9mIGxlYWRpbmcgYW5kIHRyYWls aW5nIHN0cmluZ3MgbWF0Y2hpbmcgVFJJTS1MRUZUIGFuZCBUUklNLVJJR0hULgoKVFJJTS1MRUZU IGFuZCBUUklNLVJJR0hUIGRlZmF1bHQgdG8gIlsgXHRcblxyXSsiLgoKKGZuIFNUUklORyAmb3B0 aW9uYWwgVFJJTS1MRUZUIFRSSU0tUklHSFQpHwooZGVmYWxpYXMgJ3N0cmluZy10cmltICNbNzY5 ICJcMzAwXDMwMQQDXCIDXCJcMjA3IiBbc3RyaW5nLXRyaW0tbGVmdCBzdHJpbmctdHJpbS1yaWdo dF0gNyAoIyQgLiAyMjU0MDMpXSkjQDYwIFN0YW5kYXJkIHJlZ2V4cCBndWFyYW50ZWVkIG5vdCB0 byBtYXRjaCBhbnkgc3RyaW5nIGF0IGFsbC4fCihkZWZjb25zdCByZWdleHAtdW5tYXRjaGFibGUg IlxcYGFcXGAiICgjJCAuIDIyNTY4OCkpI0AyODYgUnVuIEhPT0ssIGNhdGNoaW5nIGVycm9ycywg YW5kIHF1ZXJ5aW5nIHRoZSB1c2VyIGFib3V0IHdoZXRoZXIgdG8gY29udGludWUuCklmIGEgZnVu Y3Rpb24gaW4gSE9PSyBzaWduYWxzIGFuIGVycm9yLCB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVk CndoZXRoZXIgdG8gY29udGludWUgb3Igbm90LiAgSWYgdGhlIHVzZXIgZG9lc24ndCByZXNwb25k LApldmFsdWF0aW9uIHdpbGwgY29udGludWUgaWYgdGhlIHVzZXIgZG9lc24ndCByZXNwb25kIHdp dGhpbiBmaXZlCnNlY29uZHMuCgooZm4gSE9PSykfCihkZWZhbGlhcyAncnVuLWhvb2stcXVlcnkt ZXJyb3Itd2l0aC10aW1lb3V0ICNbMjU3ICJcMzAwAVwzMDFcIlwyMDciIFtydW4taG9vay13cmFw cGVkICNbMjU3ICJcMzAwMQsAXDIxMSAwXDIxMFwyMDIcAFwzMDFcMzAyXDMwMwNcIlwzMDRcMzA1 Iz9cMjA1GgBcMzA2ASFcMjY2AlwzMDdcMjA3IiBbKGVycm9yKSB5LW9yLW4tcC13aXRoLXRpbWVv dXQgZm9ybWF0ICJFcnJvciAlczsgY29udGludWU/IiA1IHQgZXJyb3IgbmlsXSA2ICJcblxuKGZu IEZVTikiXV0gNCAoIyQgLiAyMjU4MDcpXSkjQDIxMSBGaWxsIHN0cmluZyBTVFIgdG8gYGZpbGwt Y29sdW1uJy4KVGhpcyBpcyBpbnRlbmRlZCBmb3IgdmVyeSBzaW1wbGUgZmlsbGluZyB3aGlsZSBi b290c3RyYXBwaW5nCkVtYWNzIGl0c2VsZiwgYW5kIGRvZXMgbm90IHN1cHBvcnQgYWxsIHRoZSBj dXN0b21pemF0aW9uIG9wdGlvbnMKb2YgZmlsbC5lbCAoZm9yIGV4YW1wbGUgYGZpbGwtcmVnaW9u JykuCgooZm4gU1RSKR8KKGRlZmFsaWFzICdpbnRlcm5hbC0tZmlsbC1zdHJpbmctc2luZ2xlLWxp bmUgI1syNTcgIlwyMTFHCFdcMjAzCABcMjA3CAFHXgFcMzAxAk8CAlwzMDJPXDMwM1wzMDQDXCJc MjAzJwBcMzA1XDMwNlwzMDJcMjExBVwzMDclXDI2MgJcMjAyVABcMzAzXDMxMAJcIlwyMDM8AAFc MzA2UFwyNjICXDMxMVwzMDcCXCJcMjYyAVwyMDJUAFwzMDNcMzEyA1wiXDIwM1QAXDMxMVwzMTMD XCIBUFwyNjIBXDMwNVwzMDZcMzAyXDIxMQVcMzA3JVwyNjICAVwzMTQCIVBcMjA3IiBbZmlsbC1j b2x1bW4gMCBuaWwgc3RyaW5nLW1hdGNoICJcXCggXFwpJCIgcmVwbGFjZS1tYXRjaCAiXG4iIDEg Il4gXFwoLipcXCkiIG1hdGNoLXN0cmluZyAiLipcXCggXFwoLitcXClcXCkkIiAyIGludGVybmFs LS1maWxsLXN0cmluZy1zaW5nbGUtbGluZV0gMTAgKCMkIC4gMjI2Mzc5KV0pI0AzMzQgRm9ybWF0 IGEgc2luZ2xlIGxpbmUgZnJvbSBhIGRvY3VtZW50YXRpb24gc3RyaW5nIG91dCBvZiBTVFJJTkcg YW5kIE9CSkVDVFMuClNpZ25hbCBhbiBlcnJvciBpZiBTVFJJTkcgY29udGFpbnMgYSBuZXdsaW5l LgpUaGlzIGlzIGludGVuZGVkIGZvciBpbnRlcm5hbCB1c2Ugb25seS4gIEF2b2lkIHVzaW5nIHRo aXMgZm9yIHRoZQpmaXJzdCBsaW5lIG9mIGEgZG9jc3RyaW5nOyB0aGUgZmlyc3QgbGluZSBzaG91 bGQgYmUgYSBjb21wbGV0ZQpzZW50ZW5jZSAoc2VlIEluZm8gbm9kZSBgKGVsaXNwKSBEb2N1bWVu dGF0aW9uIFRpcHMnKS4KCihmbiBTVFJJTkcgJnJlc3QgT0JKRUNUUykfCihkZWZhbGlhcyAnaW50 ZXJuYWwtLWZvcm1hdC1kb2NzdHJpbmctbGluZSAjWzM4NSAiXDMwMFwzMDEDXCJcMjAzXGYAXDMw MlwzMDMDXCJcMjEwXDMwNFwzMDVcMzA2BAQjIVwyMDciIFtzdHJpbmctbWF0Y2ggIlxuIiBlcnJv ciAiVW5hYmxlIHRvIGZpbGwgc3RyaW5nIGNvbnRhaW5pbmcgbmV3bGluZTogJVMiIGludGVybmFs LS1maWxsLXN0cmluZy1zaW5nbGUtbGluZSBhcHBseSBmb3JtYXRdIDcgKCMkIC4gMjI3MDI1KV0p I0A0OSBSZXR1cm4gbm9uLW5pbCBpZiBFbWFjcyBoYXMgbGliamFuc3NvbiBzdXBwb3J0Lh8KKGRl ZmFsaWFzICdqc29uLWF2YWlsYWJsZS1wICNbMCAiXDMwMFwzMDEhXDIwNREAXDMwMjEPAFwzMDMw XDIxMFwzMDRcMjA3XDIxMFwzMDVcMjA3IiBbZmJvdW5kcCBqc29uLXNlcmlhbGl6ZSAoanNvbi11 bmF2YWlsYWJsZSkgInRydWUiIHQgbmlsXSAyICgjJCAuIDIyNzYwNildKSNAMTU2IFJldHVybiBP QkpFQ1QgYXMgYSBsaXN0LgpJZiBPQkpFQ1QgaXMgYWxyZWFkeSBhIGxpc3QsIHJldHVybiBPQkpF Q1QgaXRzZWxmLiAgSWYgaXQncwpub3QgYSBsaXN0LCByZXR1cm4gYSBvbmUtZWxlbWVudCBsaXN0 IGNvbnRhaW5pbmcgT0JKRUNULgoKKGZuIE9CSkVDVCkfCihkZWZhbGlhcyAnZW5zdXJlLWxpc3Qg I1syNTcgIlwyMTE8XDIwMwYAXDIwN1wyMTFDXDIwNyIgW10gMiAoIyQgLiAyMjc4MjEpXSkjQDI1 MiBMaWtlIGBwcm9nbicsIGJ1dCBkaXNwbGF5IE1FU1NBR0UgaWYgQk9EWSB0YWtlcyBsb25nZXIg dGhhbiBUSU1FT1VUIHNlY29uZHMuClRoZSBNRVNTQUdFIGZvcm0gd2lsbCBiZSBldmFsdWF0ZWQg aW1tZWRpYXRlbHksIGJ1dCB0aGUgcmVzdWx0aW5nCnN0cmluZyB3aWxsIGJlIGRpc3BsYXllZCBv bmx5IGlmIEJPRFkgdGFrZXMgbG9uZ2VyIHRoYW4gVElNRU9VVCBzZWNvbmRzLgoKKGZuICh0aW1l b3V0IG1lc3NhZ2UpICZyZXN0IGJvZHkpHwooZGVmYWxpYXMgJ3dpdGgtZGVsYXllZC1tZXNzYWdl ICcobWFjcm8gLiAjWzM4NSAiXDMwMAJAA0FAXDMwMVwzMDIFQkJGXDIwNyIgW2Z1bmNhbGwtd2l0 aC1kZWxheWVkLW1lc3NhZ2UgbGFtYmRhIG5pbF0gOCAoIyQgLiAyMjgwNTkpXSkpCihieXRlLWNv ZGUgIlwzMDBcMzAxXDMwMlwzMDMjXDMwMFwyMDciIFtmdW5jdGlvbi1wdXQgd2l0aC1kZWxheWVk LW1lc3NhZ2UgbGlzcC1pbmRlbnQtZnVuY3Rpb24gMV0gNCkjQDI2NiBSZXR1cm4gbmlsIGlmIEZV TkMgaXMgbm90IGEgZnVuY3Rpb24gYWxpYXMuCklmIEZVTkMgaXMgYSBmdW5jdGlvbiBhbGlhcywg cmV0dXJuIHRoZSBmdW5jdGlvbiBhbGlhcyBjaGFpbi4KCklmIHRoZSBmdW5jdGlvbiBhbGlhcyBj aGFpbiBjb250YWlucyBsb29wcywgYW4gZXJyb3Igd2lsbCBiZQpzaWduYWxlZC4gIElmIE5PRVJS T1IsIHRoZSBub24tbG9vcCBwYXJ0cyBvZiB0aGUgY2hhaW4gaXMgcmV0dXJuZWQuCgooZm4gRlVO QyAmb3B0aW9uYWwgTk9FUlJPUikfCihkZWZhbGlhcyAnZnVuY3Rpb24tYWxpYXMtcCAjWzUxMyAi XDMwMAJcMzAxMkAAAzlcMjAzPgADS1wyMTFcMjYyBVwyMDM+AAM5XDIwMz4AAwI+XDIwNCQAAwE9 XDIwMzYAAlwyMDMwAFwzMDJcMzAxA1wiXDIxMFwyMDI2AFwzMDNcMzA0AkNcIlwyMTADAkJcMjYy AlwyMDIGAAEwXDIzN1wyMDciIFtuaWwgbG9vcCB0aHJvdyBzaWduYWwgY3ljbGljLWZ1bmN0aW9u LWluZGlyZWN0aW9uXSA3ICgjJCAuIDIyODU1NCldKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwzMDJc MzAzI1wzMDBcMjA3IiBbZnVuY3Rpb24tcHV0IGZ1bmN0aW9uLWFsaWFzLXAgc2lkZS1lZmZlY3Qt ZnJlZSB0XSA0KSNAMjcwIFNheSB3aGV0aGVyIE9CSkVDVCBoYXMgYSByZWFkYWJsZSBzeW50YXgu ClRoaXMgbWVhbnMgdGhhdCBPQkpFQ1QgY2FuIGJlIHByaW50ZWQgb3V0IGFuZCB0aGVuIHJlYWQg YmFjawphZ2FpbiBieSB0aGUgTGlzcCByZWFkZXIuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgbmls IGlmIE9CSkVDVCBpcwp1bnJlYWRhYmxlLCBhbmQgdGhlIHByaW50ZWQgcmVwcmVzZW50YXRpb24g KGZyb20gYHByaW4xJykgb2YKT0JKRUNUIGlmIGl0IGlzIHJlYWRhYmxlLgoKKGZuIE9CSkVDVCkf CihkZWZhbGlhcyAncmVhZGFibGVwICNbMjU3ICJcMzAxMgsAXDMwMhhcMzAzASEpMFwyMDciIFtw cmludC11bnJlYWRhYmxlLWZ1bmN0aW9uIHVucmVhZGFibGUgI1s1MTQgIlwzMDBcMzAxXDMwMlwi XDIwNyIgW3Rocm93IHVucmVhZGFibGUgbmlsXSA1ICJcblxuKGZuIE9CSkVDVCBFU0NBUEUpIl0g cHJpbjEtdG8tc3RyaW5nXSAzICgjJCAuIDIyOTE1NildKQooYnl0ZS1jb2RlICJcMzAwXDMwMVwz MDJcMzAzI1wzMDBcMjA3IiBbZnVuY3Rpb24tcHV0IHJlYWRhYmxlcCBzaWRlLWVmZmVjdC1mcmVl IGVycm9yLWZyZWVdIDQpI0AyNiBEZWxldGUgdGhlIGN1cnJlbnQgbGluZS4fCihkZWZhbGlhcyAn ZGVsZXRlLWxpbmUgI1swICJcMzAwIFwzMDBcMzAxIXxcMjA3IiBbcG9zLWJvbCAyXSAzICgjJCAu IDIyOTczMCldKSNANDU5IEVuc3VyZSB0aGF0IHRoZXJlIGFyZSBMSU5FUyBudW1iZXIgb2YgZW1w dHkgbGluZXMgYmVmb3JlIHBvaW50LgpJZiBMSU5FUyBpcyBuaWwgb3Igb21pdHRlZCwgZW5zdXJl IHRoYXQgdGhlcmUgaXMgYSBzaW5nbGUgZW1wdHkKbGluZSBiZWZvcmUgcG9pbnQuCgpJZiBjYWxs ZWQgaW50ZXJhY3RpdmVseSwgTElORVMgaXMgZ2l2ZW4gYnkgdGhlIHByZWZpeCBhcmd1bWVudC4K CklmIHRoZXJlIGFyZSBtb3JlIHRoYW4gTElORVMgZW1wdHkgbGluZXMgYmVmb3JlIHBvaW50LCB0 aGUgbnVtYmVyCm9mIGVtcHR5IGxpbmVzIGlzIHJlZHVjZWQgdG8gTElORVMuCgpJZiBwb2ludCBp cyBub3QgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUsIGEgbmV3bGluZSBjaGFyYWN0ZXIKaXMg aW5zZXJ0ZWQgYmVmb3JlIGFkanVzdGluZyB0aGUgbnVtYmVyIG9mIGVtcHR5IGxpbmVzLgoKKGZu ICZvcHRpb25hbCBMSU5FUykfCihkZWZhbGlhcyAnZW5zdXJlLWVtcHR5LWxpbmVzICNbMjU2ICJu XDIwNAcAXDMwMGNcMjEwXDIxMVwyMDZcZgBcMzAxXDIxMlwzMDJcMzAzXDMwNFwzMDUjXDIwMxsA YFwzMDZcXFwyMDIcAGUpYAFaAlZcMjAzLwBgYGADWgRaWnxcMjA3YAFaAldcMjA1QABcMzA3AmAD WlpcMzEwXCJjXDIwNyIgWyJcbiIgMSByZS1zZWFyY2gtYmFja3dhcmQgIlteXG5dIiBuaWwgdCAy IG1ha2Utc3RyaW5nIDEwXSA3ICgjJCAuIDIyOTg0MCkgInAiXSkjQDIxNiBTcGxpdCBTVFJJTkcg aW50byBhIGxpc3Qgb2YgbGluZXMuCklmIE9NSVQtTlVMTFMsIGVtcHR5IGxpbmVzIHdpbGwgYmUg cmVtb3ZlZCBmcm9tIHRoZSByZXN1bHRzLgpJZiBLRUVQLU5FV0xJTkVTLCBkb24ndCBzdHJpcCB0 cmFpbGluZyBuZXdsaW5lcyBmcm9tIHRoZSByZXN1bHQKbGluZXMuCgooZm4gU1RSSU5HICZvcHRp b25hbCBPTUlULU5VTExTIEtFRVAtTkVXTElORVMpHwooZGVmYWxpYXMgJ3N0cmluZy1saW5lcyAj Wzc2OSAiAlwzMDBcMjMyXDIwMw4AAT9cMjA1dABcMzAwQ1wyMDdcMzAxXDMwMlwyMTEFR1dcMjAz cABcMzAzXDMwNAYGAyNcMjExXDIwM1MABFwyMDMrAAEBVVwyMDRMAAUCBVwyMDM2AAJUXDIwMjcA Ak8EXDIwM0YABVwyMDNGAFwyMTFcMzA0XDIzMlwyMDRLAFwyMTEEQlwyNjIEXDIxMFwyMTFUXDI2 NlwyMDJcMjAyEAABXDMwMlVcMjAzYQAFA0JcMjYyA1wyMDJpAAUCXDMwMU8DQlwyNjIDBUdcMjY2 XDIwMlwyMDIQAAFcMjM3XDI2NlwyMDJcMjA3IiBbIiIgbmlsIDAgc3RyaW5nLXNlYXJjaCAiXG4i XSA5ICgjJCAuIDIzMDU1MildKSNAOTg0IFJldHVybiBub24tbmlsIGlmIEJVRkZFUi1PUi1OQU1F IG1hdGNoZXMgQ09ORElUSU9OLgpDT05ESVRJT04gaXMgZWl0aGVyOgotIHRoZSBzeW1ib2wgdCwg dG8gYWx3YXlzIG1hdGNoLAotIHRoZSBzeW1ib2wgbmlsLCB3aGljaCBuZXZlciBtYXRjaGVzLAot IGEgcmVndWxhciBleHByZXNzaW9uLCB0byBtYXRjaCBhIGJ1ZmZlciBuYW1lLAotIGEgcHJlZGlj YXRlIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBidWZmZXIgb2JqZWN0IGFuZCBBUkcgYXMKICBhcmd1 bWVudHMsIGFuZCByZXR1cm5zIG5vbi1uaWwgaWYgdGhlIGJ1ZmZlciBtYXRjaGVzLAotIGEgY29u cy1jZWxsLCB3aGVyZSB0aGUgY2FyIGRlc2NyaWJlcyBob3cgdG8gaW50ZXJwcmV0IHRoZSBjZHIu CiAgVGhlIGNhciBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CiAgKiBgZGVyaXZlZC1tb2Rl JzogdGhlIGJ1ZmZlciBtYXRjaGVzIGlmIHRoZSBidWZmZXIncyBtYWpvciBtb2RlCiAgICBpcyBk ZXJpdmVkIGZyb20gdGhlIG1ham9yIG1vZGUgaW4gdGhlIGNvbnMtY2VsbCdzIGNkci4KICAqIGBt YWpvci1tb2RlJzogdGhlIGJ1ZmZlciBtYXRjaGVzIGlmIHRoZSBidWZmZXIncyBtYWpvciBtb2Rl CiAgICBpcyBlcSB0byB0aGUgY29ucy1jZWxsJ3MgY2RyLiAgUHJlZmVyIHVzaW5nIGBkZXJpdmVk LW1vZGUnCiAgICBpbnN0ZWFkIHdoZW4gYm90aCBjYW4gd29yay4KICAqIGBub3QnOiB0aGUgY2Ry IGlzIGludGVycHJldGVkIGFzIGEgbmVnYXRpb24gb2YgYSBjb25kaXRpb24uCiAgKiBgYW5kJzog dGhlIGNkciBpcyBhIGxpc3Qgb2YgcmVjdXJzaXZlIGNvbmRpdGlvbnMsIHRoYXQgYWxsIGhhdmUK ICAgIHRvIGJlIG1ldC4KICAqIGBvcic6IHRoZSBjZHIgaXMgYSBsaXN0IG9mIHJlY3Vyc2l2ZSBj b25kaXRpb24sIG9mIHdoaWNoIGF0CiAgICBsZWFzdCBvbmUgaGFzIHRvIGJlIG1ldC4KCihmbiBD T05ESVRJT04gQlVGRkVSLU9SLU5BTUUgJm9wdGlvbmFsIEFSRykfCihkZWZhbGlhcyAnYnVmZmVy LW1hdGNoLXAgI1s3NzAgIlwzMDACIVwzMDFDXDIxMVwzMDJcMzAzAwUGByRcMjQwXDIxMFwyMTFc MjQyBUMhXDIwNyIgW2dldC1idWZmZXIgbmlsIG1ha2UtY2xvc3VyZSAjWzI1NyAiXDMwMzJcMjc3 AFwyMTFcMjExXDIwNVwyNzQAXDIxMUBcMjExXDMwND1cMjA0XDI2MABcMjExO1wyMDMmAFwyMTFc MzA1XDMwMSFcMzA2XDMwNwMDA1wzMDQkXDI2NlwyMDNcMjAyXDI1NQBcMzEwASFcMjAzQgBcMzEx ASFBXDMxMj1cMjAzOwBcMjExXDMwMSFcMjAyXDI1NQBcMjExXDMwMVwzMDJcIlwyMDJcMjU1AFwy MTE6XDIwM1wyNjUAXDIxMVwyNDJcMjExXDMxM1wyNjdcMjAyXDI1MgABXDI0M1wzMTRcMzE1XDMw MVwiAT1cMjYyAVwyMDJcMjUzAAFcMjQzXDMxNlwzMTRcMzE1XDMwMVwiAlwiXDI2MgFcMjAyXDI1 MwABXDI0M1wzMDBcMjQyASE/XDI2MgFcMjAyXDI1MwABXDI0M1wzMDBcMjQyASFcMjYyAVwyMDJc MjUzAAFcMjQzXDMxNzJcMjQ1AFwyMTFcMjExXDIwM1wyNDIAXDIxMUBcMzAwXDI0MgFDIVwyMDRc MjMzAFwzMjBcMzE3XDMwNlwiXDIxMAFBXDI2NlwyMDJcMjAyXDIxMABcMjEwXDMwNDBcMjYyAVwy MDJcMjUzAFwzMDZcMjYyAVwyMDNcMjY1AFwzMjBcMzAzXDMwNFwiXDIxMAFBXDI2NlwyMDJcMjAy BQBcMjYyATBcMjA3IiBbVjAgVjEgVjIgbWF0Y2ggdCBidWZmZXItbmFtZSBuaWwgc3RyaW5nLW1h dGNoIGZ1bmN0aW9ucCBmdW5jLWFyaXR5IDEgI3MoaGFzaC10YWJsZSBzaXplIDUgdGVzdCBlcSBy ZWhhc2gtc2l6ZSAxLjUgcmVoYXNoLXRocmVzaG9sZCAwLjgxMjUgcHVyZWNvcHkgdCBkYXRhICht YWpvci1tb2RlIDc5IGRlcml2ZWQtbW9kZSA5MiBub3QgMTA2IG9yIDExOCBhbmQgMTI5KSkgYnVm ZmVyLWxvY2FsLXZhbHVlIG1ham9yLW1vZGUgcHJvdmlkZWQtbW9kZS1kZXJpdmVkLXAgZmFpbCB0 aHJvd10gMTEgIlxuXG4oZm4gQ09ORElUSU9OUykiXV0gMTEgKCMkIC4gMjMxMTAzKV0pI0AzNDEg UmV0dXJuIGEgbGlzdCBvZiBidWZmZXJzIHRoYXQgbWF0Y2ggQ09ORElUSU9OLgpTZWUgYGJ1ZmZl ci1tYXRjaC1wJyBmb3IgZGV0YWlscyBvbiBDT05ESVRJT04uICBCeSBkZWZhdWx0IGFsbApidWZm ZXJzIGFyZSBjaGVja2VkLCB0aGlzIGNhbiBiZSByZXN0cmljdGVkIGJ5IHBhc3NpbmcgYW4Kb3B0 aW9uYWwgYXJndW1lbnQgQlVGRkVSUywgc2V0IHRvIGEgbGlzdCBvZiBidWZmZXJzIHRvIGNoZWNr LgpBUkcgaXMgcGFzc2VkIHRvIGBidWZmZXItbWF0Y2gnLCBmb3IgcHJlZGljYXRlIGNvbmRpdGlv bnMgaW4KQ09ORElUSU9OLgoKKGZuIENPTkRJVElPTiAmb3B0aW9uYWwgQlVGRkVSUyBBUkcpHwoo ZGVmYWxpYXMgJ21hdGNoLWJ1ZmZlcnMgI1s3NjkgIlwzMDACXDIwNgcAXDMwMSBcMjExXDIwMyUA XDIxMUBcMzAyBgZcMzAzAyEGBiNcMjAzHgBcMjExA0JcMjYyAwFBXDI2NlwyMDJcMjAyBwBcMjEw XDIwNyIgW25pbCBidWZmZXItbGlzdCBidWZmZXItbWF0Y2gtcCBnZXQtYnVmZmVyXSAxMCAoIyQg LiAyMzMwNzMpXSkjQDE4MCBSZXR1cm4gdGhlIHZhbHVlIG9mIENPREUgYW5kIHN0YXNoIGl0IGlu IFBMQUNFLgpJZiBQTEFDRSdzIHZhbHVlIGlzIG5vbi1uaWwsIHRoZW4gZG9uJ3QgYm90aGVyIGV2 YWx1YXRpbmcgQ09ERQphbmQgcmV0dXJuIHRoZSB2YWx1ZSBmb3VuZCBpbiBQTEFDRSBpbnN0ZWFk LgoKKGZuIFBMQUNFICZyZXN0IENPREUpHwooZGVmYWxpYXMgJ3dpdGgtbWVtb2l6YXRpb24gJyht YWNybyAuICNbMzg1ICJcMzAwAlwzMDFcMzAyBFwiXCJcMjA3IiBbZ3YtZ2V0IG1ha2UtY2xvc3Vy ZSAjWzUxNCAiXDMwMQJcMzAyXDMwMCFcMzAzASFcMjAzDwBcMjExXDIwMhIAXDMwNFwzMDUhXDMw NgUCIQJFAQM9XDIwMyQAXDIxMVwyNjZcMjAzXDIwMi0AXDMwNwIEREMCXCJcMjY2XDIwM0VcMjA3 IiBbVjAgb3IgbWFjcm9leHAtcHJvZ24gbWFjcm9leHAtY29uc3QtcCBtYWtlLXN5bWJvbCAidmFs IiBwcm9nbiBtYWNyb2V4cC1sZXQqXSAxMCAiXG5cbihmbiBHRVRURVIgU0VUVEVSKSJdXSA3ICgj JCAuIDIzMzYwMyldKSkKKGJ5dGUtY29kZSAiXDMwMFwzMDFcMzAyXDMwMyNcMzA0XDMwMVwzMDVc MzA2I1wyMDciIFtmdW5jdGlvbi1wdXQgd2l0aC1tZW1vaXphdGlvbiBsaXNwLWluZGVudC1mdW5j dGlvbiAxIHB1dCBlZGVidWctZm9ybS1zcGVjIChndi1wbGFjZSBib2R5KV0gNSkK --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable =2D-=20 Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5 Fediverse: akib@hostux.social Codeberg: akib emailselfdefense.fsf.org | "Nothing can be secure without encryption." --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEyVTKmrtL6kNBe3FRVTX89U2IYWsFAmOLjFsACgkQVTX89U2I YWv1PQ/+KrE81e3auXIrx2LGqYlYOlIBQUBpC8dPZ7XZJ3qZSqkyKv+1obwa2WLj 8vH0Mcp3aGA8regkk+tvY9veYqjUfFmYICsalA9ixtGlzWo08ztHDpeBnhd4VGnr 2LRYG2DoYD4tjyyPux1o0+N+7g9eMHOeA24KOPM/yglncdLZD0luLG3fjXXlC6xw X4TpAMmjnJyFVW9gaNGQCev7HfVMLJye48VOWSCkp1XMHDkcTR5nzns/UPml7f/0 xQx8C0/MqFyjUasdHWsk4+Dcz5pbyE8boLme2fA6FxipELwEywZsu7q7o/YOfm/Z qQJVsa78TY5LQWuM0Y+vA0Si4G4W3VhqEVU0g/qTQAeOFZdaSulwYphges83YoiI wBf+Uo/MKl1AogDzgqym67f9FWgICPht3b1gRmqGi7O2M8eryuuDJVe5fM8ZAOVq gmdTZpsBsz+3T5BnoVNxjafl5cxJZWnCzZfhqHwY8uj7juZcUip3yXDpaAj6JCLk IUZgtm/T/0vSzEG+BNuwr6WeL58ZodsvVFQiXafZ0jWQDvxKa0uR5An3K1ipl0aN tsF1NH3dLFVXEuj2m/CQ1aqk39amOQGUwca3reXfFYAxiu0fhaWKK/LcZMrmtHmE lz1R7codUuN6mZuladjXeeFNFrH0RWFFj/7YrQ19l/2qVfUiPyk= =k+Pv -----END PGP SIGNATURE----- --==-=-=--