From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 793D0FA3737 for ; Tue, 5 Nov 2019 09:07:08 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4DD6920869 for ; Tue, 5 Nov 2019 09:07:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="YkCof1d/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4DD6920869 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=cyphar.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=/KBP78Z2nLs537fWDaQK3unMD4YLhwttJhEt1jwoWYo=; b=YkCof1d/d8rfKY c1AIKd28/02hqMEozNrTgIn9cOaACeM20flmhKnhMPfps7Yr9axnrK3/dOFC+uRIf5b5O4w3oSUyH SmRzRQpaFE5qoDqD3WCfusCNfJ+/QOnCohlGhz35xH6nexRBSlwI3gfPtnKgd0fqUv+qCJZT1x/d/ 8hq+eMh++P9mx+hNAO6YAzBqRjT46s/UM3z0Ncabn2nh2H/tPDMAP4NPwDtohKzS798Sl9YI18UjD DxGbOlQ+b6S1ZBxWoLMDfqQNTUwoOZ4KVTJX+p3QKGU5B+thzzK0Bi/B6zJj+Ho71gZTT6vfECeCy edKswAk16I+9A+0UXNKg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iRunr-00084H-Fb; Tue, 05 Nov 2019 09:07:07 +0000 Received: from mout-p-101.mailbox.org ([2001:67c:2050::465:101]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iRunm-00082t-TA for linux-arm-kernel@lists.infradead.org; Tue, 05 Nov 2019 09:07:06 +0000 Received: from smtp2.mailbox.org (smtp2.mailbox.org [IPv6:2001:67c:2050:105:465:1:2:0]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by mout-p-101.mailbox.org (Postfix) with ESMTPS id 476kLl07fQzKmZ4; Tue, 5 Nov 2019 10:06:55 +0100 (CET) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp2.mailbox.org ([80.241.60.241]) by spamfilter05.heinlein-hosting.de (spamfilter05.heinlein-hosting.de [80.241.56.123]) (amavisd-new, port 10030) with ESMTP id nHElvH1ovOoI; Tue, 5 Nov 2019 10:06:48 +0100 (CET) From: Aleksa Sarai To: Al Viro , Jeff Layton , "J. Bruce Fields" , Arnd Bergmann , David Howells , Shuah Khan , Shuah Khan , Ingo Molnar , Peter Zijlstra Subject: [PATCH v15 0/9] open: introduce openat2(2) syscall Date: Tue, 5 Nov 2019 20:05:44 +1100 Message-Id: <20191105090553.6350-1-cyphar@cyphar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191105_010703_248317_AB85C85B X-CRM114-Status: GOOD ( 22.84 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Alexander Shishkin , Rasmus Villemoes , Alexei Starovoitov , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, sparclinux@vger.kernel.org, Jiri Olsa , linux-arch@vger.kernel.org, linux-s390@vger.kernel.org, Tycho Andersen , Aleksa Sarai , linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-xtensa@linux-xtensa.org, Kees Cook , Jann Horn , linuxppc-dev@lists.ozlabs.org, Aleksa Sarai , Andy Lutomirski , Namhyung Kim , David Drysdale , Christian Brauner , libc-alpha@sourceware.org, linux-parisc@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-api@vger.kernel.org, Chanho Min , Oleg Nesterov , Eric Biederman , linux-alpha@vger.kernel.org, linux-fsdevel@vger.kernel.org, Andrew Morton , Linus Torvalds , containers@lists.linux-foundation.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhpcyBwYXRjaHNldCBpcyBiZWluZyBkZXZlbG9wZWQgaGVyZToKICA8aHR0cHM6Ly9naXRodWIu Y29tL2N5cGhhci9saW51eC90cmVlL29wZW5hdDIvbWFzdGVyPgoKUGF0Y2ggY2hhbmdlbG9nOgog djE1OgogICogRml4IGNvZGUgc3R5bGUgZm9yIExPT0tVUF9JTl9ST09UIGhhbmRsaW5nIGluIHBh dGhfaW5pdCgpLiBbTGludXMgVG9ydmFsZHNdCiAgKiBTcGxpdCBvdXQgcGF0Y2hlcyBmb3IgZWFj aCBpbmRpdmlkdWFsIExPT0tVUCBmbGFnLgogICogUmV3b3JkIGNvbW1pdCBtZXNzYWdlcyB0byBn aXZlIG1vcmUgYmFja2dyb3VuZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKICAgIHNlcmllcywgYXMg d2VsbCBhcyBtZW50aW9uIHRoZSBzZW1hbnRpY3Mgb2YgZWFjaCBmbGFnIGluIG1vcmUgZGV0YWls LgogdjE0OiA8aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDE5MTAxMDA1NDE0MC44NDgz LTEtY3lwaGFyQGN5cGhhci5jb20vPgogICAgICA8aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGtt bC8yMDE5MTAyNjE4NTcwMC4xMDcwOC0xLWN5cGhhckBjeXBoYXIuY29tPgogdjEzOiA8aHR0cHM6 Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDE5MDkzMDE4MzMxNi4xMDE5MC0xLWN5cGhhckBjeXBo YXIuY29tLz4KIHYxMjogPGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAxOTA5MDQyMDE5 MzMuMTA3MzYtMS1jeXBoYXJAY3lwaGFyLmNvbS8+CiB2MTE6IDxodHRwczovL2xvcmUua2VybmVs Lm9yZy9sa21sLzIwMTkwODIwMDMzNDA2LjI5Nzk2LTEtY3lwaGFyQGN5cGhhci5jb20vPgogICAg ICA8aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDE5MDcyODAxMDIwNy45NzgxLTEtY3lw aGFyQGN5cGhhci5jb20vPgogdjEwOiA8aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDE5 MDcxOTE2NDIyNS4yNzA4My0xLWN5cGhhckBjeXBoYXIuY29tLz4KIHYwOTogPGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL2xrbWwvMjAxOTA3MDYxNDU3MzcuNTI5OS0xLWN5cGhhckBjeXBoYXIuY29t Lz4KIHYwODogPGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAxOTA1MjAxMzMzMDUuMTE5 MjUtMS1jeXBoYXJAY3lwaGFyLmNvbS8+CiB2MDc6IDxodHRwczovL2xvcmUua2VybmVsLm9yZy9s a21sLzIwMTkwNTA3MTY0MzE3LjEzNTYyLTEtY3lwaGFyQGN5cGhhci5jb20vPgogdjA2OiA8aHR0 cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDE5MDUwNjE2NTQzOS45MTU1LTEtY3lwaGFyQGN5 cGhhci5jb20vPgogdjA1OiA8aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDE5MDMyMDE0 MzcxNy4yNTIzLTEtY3lwaGFyQGN5cGhhci5jb20vPgogdjA0OiA8aHR0cHM6Ly9sb3JlLmtlcm5l bC5vcmcvbGttbC8yMDE4MTExMjE0MjY1NC4zNDEtMS1jeXBoYXJAY3lwaGFyLmNvbS8+CiB2MDM6 IDxodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMTgxMDA5MDcwMjMwLjEyODg0LTEtY3lw aGFyQGN5cGhhci5jb20vPgogdjAyOiA8aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDE4 MTAwOTA2NTMwMC4xMTA1My0xLWN5cGhhckBjeXBoYXIuY29tLz4KIHYwMTogPGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL2xrbWwvMjAxODA5MjkxMDM0NTMuMTIwMjUtMS1jeXBoYXJAY3lwaGFyLmNv bS8+CgpGb3IgYSB2ZXJ5IGxvbmcgdGltZSwgZXh0ZW5kaW5nIG9wZW5hdCgyKSB3aXRoIG5ldyBm ZWF0dXJlcyBoYXMgYmVlbgppbmNyZWRpYmx5IGZydXN0cmF0aW5nLiBUaGlzIHN0ZW1zIGZyb20g dGhlIGZhY3QgdGhhdCBvcGVuYXQoMikgaXMKcG9zc2libHkgdGhlIG1vc3QgZmFtb3VzIGNvdW50 ZXItZXhhbXBsZSB0byB0aGUgbWFudHJhICJkb24ndCBzaWxlbnRseQphY2NlcHQgZ2FyYmFnZSBm cm9tIHVzZXJzcGFjZSIgLS0gaXQgZG9lc24ndCBjaGVjayB3aGV0aGVyIHVua25vd24gZmxhZ3MK YXJlIHByZXNlbnRbMV0uCgpUaGlzIG1lYW5zIHRoYXQgKGdlbmVyYWxseSkgdGhlIGFkZGl0aW9u IG9mIG5ldyBmbGFncyB0byBvcGVuYXQoMikgaGFzCmJlZW4gZnJhdWdodCB3aXRoIGJhY2t3YXJk cy1jb21wYXRpYmlsaXR5IGlzc3VlcyAoT19UTVBGSUxFIGhhcyB0byBiZQpkZWZpbmVkIGFzIF9f T19UTVBGSUxFfE9fRElSRUNUT1JZfFtPX1JEV1Igb3IgT19XUk9OTFldIHRvIGVuc3VyZSBvbGQK a2VybmVscyBnYXZlIGVycm9ycywgc2luY2UgaXQncyBpbnNlY3VyZSB0byBzaWxlbnRseSBpZ25v cmUgdGhlCmZsYWdbMl0pLiBBbGwgbmV3IHNlY3VyaXR5LXJlbGF0ZWQgZmxhZ3MgdGhlcmVmb3Jl IGhhdmUgYSB0b3VnaCByb2FkIHRvCmJlaW5nIGFkZGVkIHRvIG9wZW5hdCgyKS4KCkZ1cnRoZXJt b3JlLCB0aGUgbmVlZCBmb3Igc29tZSBzb3J0IG9mIGNvbnRyb2wgb3ZlciBWRlMncyBwYXRoIHJl c29sdXRpb24gKHRvCmF2b2lkIG1hbGljaW91cyBwYXRocyByZXN1bHRpbmcgaW4gaW5hZHZlcnRl bnQgYnJlYWtvdXRzKSBoYXMgYmVlbiBhIHZlcnkKbG9uZy1zdGFuZGluZyBkZXNpcmUgb2YgbWFu eSB1c2Vyc3BhY2UgYXBwbGljYXRpb25zLiBUaGlzIHBhdGNoc2V0IGlzIGEgcmV2aXZhbApvZiBB bCBWaXJvJ3Mgb2xkIEFUX05PX0pVTVBTWzNdIHBhdGNoc2V0ICh3aGljaCB3YXMgYSB2YXJpYW50 IG9mIERhdmlkCkRyeXNkYWxlJ3MgT19CRU5FQVRIIHBhdGNoc2V0WzRdIHdoaWNoIHdhcyBhIHNw aW4tb2ZmIG9mIHRoZSBDYXBzaWN1bQpwcm9qZWN0WzVdKSB3aXRoIGEgZmV3IGFkZGl0aW9ucyBh bmQgY2hhbmdlcyBtYWRlIGJhc2VkIG9uIHRoZSBwcmV2aW91cwpkaXNjdXNzaW9uIHdpdGhpbiBb Nl0gYXMgd2VsbCBhcyBvdGhlcnMgSSBmZWx0IHdlcmUgdXNlZnVsLgoKSW4gbGluZSB3aXRoIHRo ZSBjb25jbHVzaW9ucyBvZiB0aGUgb3JpZ2luYWwgZGlzY3Vzc2lvbiBvZiBBVF9OT19KVU1QUywg dGhlCmZsYWcgaGFzIGJlZW4gc3BsaXQgdXAgaW50byBzZXBhcmF0ZSBmbGFncy4gSG93ZXZlciwg aW5zdGVhZCBvZiBiZWluZyBhbgpvcGVuYXQoMikgZmxhZyBpdCBpcyBwcm92aWRlZCB0aHJvdWdo IGEgbmV3IHN5c2NhbGwgb3BlbmF0MigyKSB3aGljaCBwcm92aWRlcwpzZXZlcmFsIG90aGVyIGlt cHJvdmVtZW50cyB0byB0aGUgb3BlbmF0KDIpIGludGVyZmFjZSAoc2VlIHRoZSBwYXRjaApkZXNj cmlwdGlvbiBmb3IgbW9yZSBkZXRhaWxzKS4gVGhlIGZvbGxvd2luZyBuZXcgTE9PS1VQXyogZmxh Z3MgYXJlIGFkZGVkOgoKICAqIExPT0tVUF9OT19YREVWIGJsb2NrcyBhbGwgbW91bnRwb2ludCBj cm9zc2luZ3MgKHVwd2FyZHMsIGRvd253YXJkcywKICAgIG9yIHRocm91Z2ggYWJzb2x1dGUgbGlu a3MpLiBBYnNvbHV0ZSBwYXRobmFtZXMgYWxvbmUgaW4gb3BlbmF0KDIpIGRvIG5vdAogICAgdHJp Z2dlciB0aGlzLiBNYWdpYy1saW5rIHRyYXZlcnNhbCB3aGljaCBpbXBsaWVzIGEgdmZzbW91bnQg anVtcCBpcyBhbHNvCiAgICBibG9ja2VkICh0aG91Z2ggbWFnaWMtbGluayBqdW1wcyBvbiB0aGUg c2FtZSB2ZnNtb3VudCBhcmUgcGVybWl0dGVkKS4KCiAgKiBMT09LVVBfTk9fTUFHSUNMSU5LUyBi bG9ja3MgcmVzb2x1dGlvbiB0aHJvdWdoIC9wcm9jLyRwaWQvZmQtc3R5bGUKICAgIGxpbmtzLiBU aGlzIGlzIGRvbmUgYnkgYmxvY2tpbmcgdGhlIHVzYWdlIG9mIG5kX2p1bXBfbGluaygpIGR1cmlu ZwogICAgcmVzb2x1dGlvbiBpbiBhIGZpbGVzeXN0ZW0uIFRoZSB0ZXJtICJtYWdpYy1saW5rcyIg aXMgdXNlZCB0byBtYXRjaAogICAgd2l0aCB0aGUgb25seSByZWZlcmVuY2UgdG8gdGhlc2UgbGlu a3MgaW4gRG9jdW1lbnRhdGlvbi8sIGJ1dCBJJ20KICAgIGhhcHB5IHRvIGNoYW5nZSB0aGUgbmFt ZS4KCiAgICBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCB0byB0aGUg c2NvcGUgb2YKICAgIH5MT09LVVBfRk9MTE9XIGluIHRoYXQgaXQgYXBwbGllcyB0byBhbGwgcGF0 aCBjb21wb25lbnRzLiBIb3dldmVyLAogICAgeW91IGNhbiBkbyBvcGVuYXQyKE5PX0ZPTExPV3xO T19NQUdJQ0xJTktTKSBvbiBhIG1hZ2ljLWxpbmsgYW5kIGl0CiAgICB3aWxsICpub3QqIGZhaWwg KGFzc3VtaW5nIHRoYXQgbm8gcGFyZW50IGNvbXBvbmVudCB3YXMgYQogICAgbWFnaWMtbGluayks IGFuZCB5b3Ugd2lsbCBoYXZlIGFuIGZkIGZvciB0aGUgbWFnaWMtbGluay4KCiAgICBJbiBvcmRl ciB0byBjb3JyZWN0bHkgZGV0ZWN0IG1hZ2ljLWxpbmtzLCB0aGUgaW50cm9kdWN0aW9uIG9mIGEg bmV3CiAgICBMT09LVVBfTUFHSUNMSU5LX0pVTVBFRCBzdGF0ZSBmbGFnIHdhcyByZXF1aXJlZC4K CiAgKiBMT09LVVBfQkVORUFUSCBkaXNhbGxvd3MgZXNjYXBlcyB0byBvdXRzaWRlIHRoZSBzdGFy dGluZyBkaXJmZCdzCiAgICB0cmVlLCB1c2luZyB0ZWNobmlxdWVzIHN1Y2ggYXMgIi4uIiBvciBh YnNvbHV0ZSBsaW5rcy4gQWJzb2x1dGUKICAgIHBhdGhzIGluIG9wZW5hdCgyKSBhcmUgYWxzbyBk aXNhbGxvd2VkLiBDb25jZXB0dWFsbHkgdGhpcyBmbGFnIGlzIHRvCiAgICBlbnN1cmUgeW91ICJz dGF5IGJlbG93IiBhIGNlcnRhaW4gcG9pbnQgaW4gdGhlIGZpbGVzeXN0ZW0gdHJlZSAtLQogICAg YnV0IHRoaXMgcmVxdWlyZXMgc29tZSBhZGRpdGlvbmFsIHRvIHByb3RlY3QgYWdhaW5zdCB2YXJp b3VzIHJhY2VzCiAgICB0aGF0IHdvdWxkIGFsbG93IGVzY2FwZSB1c2luZyAiLi4iLgoKICAgIEN1 cnJlbnRseSBMT09LVVBfQkVORUFUSCBpbXBsaWVzIExPT0tVUF9OT19NQUdJQ0xJTktTLCBiZWNh dXNlIGl0CiAgICBjYW4gdHJpdmlhbGx5IGJlYW0geW91IGFyb3VuZCB0aGUgZmlsZXN5c3RlbSAo YnJlYWtpbmcgdGhlCiAgICBwcm90ZWN0aW9uKS4gSW4gZnV0dXJlLCB0aGVyZSBtaWdodCBiZSBz aW1pbGFyIHNhZmV0eSBjaGVja3MgZG9uZSBhcwogICAgaW4gTE9PS1VQX0lOX1JPT1QsIGJ1dCB0 aGF0IHJlcXVpcmVzIG1vcmUgZGlzY3Vzc2lvbi4KCkluIGFkZGl0aW9uLCB0d28gbmV3IGZsYWdz IGFyZSBhZGRlZCB0aGF0IGV4cGFuZCBvbiB0aGUgYWJvdmUgaWRlYXM6CgogICogTE9PS1VQX05P X1NZTUxJTktTIGRvZXMgd2hhdCBpdCBzYXlzIG9uIHRoZSB0aW4uIE5vIHN5bWxpbmsKICAgIHJl c29sdXRpb24gaXMgYWxsb3dlZCBhdCBhbGwsIGluY2x1ZGluZyBtYWdpYy1saW5rcy4gSnVzdCBh cyB3aXRoCiAgICBMT09LVVBfTk9fTUFHSUNMSU5LUyB0aGlzIGNhbiBzdGlsbCBiZSB1c2VkIHdp dGggTk9GT0xMT1cgdG8gb3BlbiBhbgogICAgZmQgZm9yIHRoZSBzeW1saW5rIGFzIGxvbmcgYXMg bm8gcGFyZW50IHBhdGggaGFkIGEgc3ltbGluawogICAgY29tcG9uZW50LgoKICAqIExPT0tVUF9J Tl9ST09UIGlzIGFuIGV4dGVuc2lvbiBvZiBMT09LVVBfQkVORUFUSCB0aGF0LCByYXRoZXIgdGhh bgogICAgYmxvY2tpbmcgYXR0ZW1wdHMgdG8gbW92ZSBwYXN0IHRoZSByb290LCBmb3JjZXMgYWxs IHN1Y2ggbW92ZW1lbnRzCiAgICB0byBiZSBzY29wZWQgdG8gdGhlIHN0YXJ0aW5nIHBvaW50LiBU aGlzIHByb3ZpZGVzIGNocm9vdCgyKS1saWtlCiAgICBwcm90ZWN0aW9uIGJ1dCB3aXRob3V0IHRo ZSBjb3N0IG9mIGEgY2hyb290KDIpIGZvciBlYWNoIGZpbGVzeXN0ZW0KICAgIG9wZXJhdGlvbiwg YXMgd2VsbCBhcyBiZWluZyBzYWZlIGFnYWluc3QgcmFjZSBhdHRhY2tzIHRoYXQgY2hyb290KDIp CiAgICBpcyBub3QuCgogICAgSWYgYSByYWNlIGlzIGRldGVjdGVkIChhcyB3aXRoIExPT0tVUF9C RU5FQVRIKSB0aGVuIGFuIGVycm9yIGlzCiAgICBnZW5lcmF0ZWQsIGFuZCBzaW1pbGFyIHRvIExP T0tVUF9CRU5FQVRIIGl0IGlzIG5vdCBwZXJtaXR0ZWQgdG8gY3Jvc3MKICAgIG1hZ2ljLWxpbmtz IHdpdGggTE9PS1VQX0lOX1JPT1QuCgogICAgVGhlIHByaW1hcnkgbmVlZCBmb3IgdGhpcyBpcyBm cm9tIGNvbnRhaW5lciBydW50aW1lcywgd2hpY2gKICAgIGN1cnJlbnRseSBuZWVkIHRvIGRvIHN5 bWxpbmsgc2NvcGluZyBpbiB1c2Vyc3BhY2VbN10gd2hlbiBvcGVuaW5nCiAgICBwYXRocyBpbiBh IHBvdGVudGlhbGx5IG1hbGljaW91cyBjb250YWluZXIuIFRoZXJlIGlzIGEgbG9uZyBsaXN0IG9m CiAgICBDVkVzIHRoYXQgY291bGQgaGF2ZSBiZW5lIG1pdGlnYXRlZCBieSBoYXZpbmcgUkVTT0xW RV9USElTX1JPT1QKICAgIChzdWNoIGFzIENWRS0yMDE3LTEwMDIxMDEsIENWRS0yMDE3LTEwMDIx MDIsIENWRS0yMDE4LTE1NjY0LCBhbmQKICAgIENWRS0yMDE5LTU3MzYsIGp1c3QgdG8gbmFtZSBh IGZldykuCgpJbiBvcmRlciB0byBtYWtlIGFsbCBvZiB0aGUgYWJvdmUgbW9yZSB1c2FibGUsIEkn bSB3b3JraW5nIG9uCmxpYnBhdGhyc1s4XSB3aGljaCBpcyBhIEMtZnJpZW5kbHkgbGlicmFyeSBm b3Igc2FmZSBwYXRoIHJlc29sdXRpb24uIEl0CmZlYXR1cmVzIGEgdXNlcnNwYWNlLWVtdWxhdGVk IGJhY2tlbmQgaWYgdGhlIGtlcm5lbCBkb2Vzbid0IHN1cHBvcnQKb3BlbmF0MigyKS4gSG9wZWZ1 bGx5IHdlIGNhbiBnZXQgdXNlcnNwYWNlIHRvIHN3aXRjaCB0byB1c2luZyBpdCwgYW5kCnRodXMg Z2V0IG9wZW5hdDIoMikgc3VwcG9ydCBmb3IgZnJlZSBvbmNlIGl0J3MgcmVhZHkuCgpGdXR1cmUg d29yayB3b3VsZCBpbmNsdWRlIGltcGxlbWVudGluZyB0aGluZ3MgbGlrZSBSRVNPTFZFX05PX0FV VE9NT1VOVCBhbmQKcG9zc2libHkgYSBSRVNPTFZFX05PX1JFTU9URSAodG8gYWxsb3cgcHJvZ3Jh bXMgdG8gYmUgc3VyZSB0aGV5IGRvbid0IGhpdCBEb1Nlcwp0aG91Z2ggc3RhbGUgTkZTIGhhbmRs ZXMpLgoKWzFdOiBodHRwczovL2x3bi5uZXQvQXJ0aWNsZXMvNTg4NDQ0LwpbMl06IGh0dHBzOi8v bG9yZS5rZXJuZWwub3JnL2xrbWwvQ0ErNTVhRnl5eEpMMUx5WFplQnNmMnlwcmlyYWo1dXQxWGtO RHN1blJCcWdWalpVXzZRQG1haWwuZ21haWwuY29tClszXTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvbGttbC8yMDE3MDQyOTIyMDQxNC5HVDI5NjIyQFplbklWLmxpbnV4Lm9yZy51awpbNF06IGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMTQxNTA5NDg4NC0xODM0OS0xLWdpdC1zZW5kLWVt YWlsLWRyeXNkYWxlQGdvb2dsZS5jb20KWzVdOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21s LzE0MDQxMjQwOTYtMjE0NDUtMS1naXQtc2VuZC1lbWFpbC1kcnlzZGFsZUBnb29nbGUuY29tCls2 XTogaHR0cHM6Ly9sd24ubmV0L0FydGljbGVzLzcyMzA1Ny8KWzddOiBodHRwczovL2dpdGh1Yi5j b20vY3lwaGFyL2ZpbGVwYXRoLXNlY3VyZWpvaW4KWzhdOiBodHRwczovL2dpdGh1Yi5jb20vb3Bl blNVU0UvbGlicGF0aHJzCgpUaGUgY3VycmVudCBkcmFmdCBvZiB0aGUgb3BlbmF0MigyKSBtYW4t cGFnZSBpcyBpbmNsdWRlZCBiZWxvdy4KCi0tODwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT1BFTkFUMigy KSAgICAgICAgICAgICAgICAgICAgICAgICAgTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCAgICAg ICAgICAgICAgICAgICAgICAgICAgT1BFTkFUMigyKQoKTkFNRQogICAgICAgb3BlbmF0MiAtIG9w ZW4gYW5kIHBvc3NpYmx5IGNyZWF0ZSBhIGZpbGUgKGV4dGVuZGVkKQoKU1lOT1BTSVMKICAgICAg ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICAgICAgICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogICAg ICAgI2luY2x1ZGUgPGZjbnRsLmg+CgogICAgICAgaW50IG9wZW5hdDIoaW50IGRpcmZkLCBjb25z dCBjaGFyICpwYXRobmFtZSwgc3RydWN0IG9wZW5faG93ICpob3csIHNpemVfdCBzaXplKTsKCiAg ICAgICBOb3RlOiBUaGVyZSBpcyBubyBnbGliYyB3cmFwcGVyIGZvciB0aGlzIHN5c3RlbSBjYWxs OyBzZWUgTk9URVMuCgpERVNDUklQVElPTgogICAgICAgVGhlICBvcGVuYXQyKCkgIHN5c3RlbSAg Y2FsbCAgb3BlbnMgdGhlIGZpbGUgc3BlY2lmaWVkIGJ5IHBhdGhuYW1lLiAgSWYgdGhlIHNwZWNp ZmllZCBmaWxlCiAgICAgICBkb2VzIG5vdCBleGlzdCwgaXQgbWF5IG9wdGlvbmFsbHkgKGlmIE9f Q1JFQVQgaXMgc3BlY2lmaWVkIGluICBob3cuZmxhZ3MpICBiZSAgY3JlYXRlZCAgYnkKICAgICAg IG9wZW5hdDIoKS4KCiAgICAgICBBcyAgd2l0aCBvcGVuYXQoMiksIGlmIHBhdGhuYW1lIGlzIHJl bGF0aXZlLCB0aGVuIGl0IGlzIGludGVycHJldGVkIHJlbGF0aXZlIHRvIHRoZSBkaXJlYy0KICAg ICAgIHRvcnkgcmVmZXJyZWQgdG8gYnkgdGhlIGZpbGUgZGVzY3JpcHRvciBkaXJmZCAob3IgdGhl IGN1cnJlbnQgIHdvcmtpbmcgIGRpcmVjdG9yeSAgb2YgIHRoZQogICAgICAgY2FsbGluZyAgcHJv Y2VzcywgIGlmIGRpcmZkIGlzIHRoZSBzcGVjaWFsIHZhbHVlIEFUX0ZEQ1dELikgIElmIHBhdGhu YW1lIGlzIGFic29sdXRlLCB0aGVuCiAgICAgICBkaXJmZCBpcyBpZ25vcmVkICh1bmxlc3MgaG93 LnJlc29sdmUgY29udGFpbnMgUkVTT0xWRV9JTl9ST09ULCBpbiB3aGljaCBjYXNlICBwYXRobmFt ZSAgaXMKICAgICAgIHJlc29sdmVkIHJlbGF0aXZlIHRvIGRpcmZkLikKCiAgICAgICBUaGUgIG9w ZW5hdDIoKSAgc3lzdGVtICBjYWxsICBpcyAgYW4gZXh0ZW5zaW9uIG9mIG9wZW5hdCgyKSBhbmQg cHJvdmlkZXMgYSBzdXBlcnNldCBvZiBpdHMKICAgICAgIGZ1bmN0aW9uYWxpdHkuICBSYXRoZXIg dGhhbiB0YWtpbmcgYSBzaW5nbGUgZmxhZyBhcmd1bWVudCwgYW4gZXh0ZW5zaWJsZSAgc3RydWN0 dXJlICAoaG93KQogICAgICAgaXMgIHBhc3NlZCAgaW5zdGVhZCAgdG8gIGFsbG93ICBmb3IgIGZ1 dHVyZSBleHRlbnNpb25zLiAgc2l6ZSBtdXN0IGJlIHNldCB0byBzaXplb2Yoc3RydWN0CiAgICAg ICBvcGVuX2hvdyksIHRvIGZhY2lsaXRhdGUgZnV0dXJlIGV4dGVuc2lvbnMgKHNlZSB0aGUgIkV4 dGVuc2liaWxpdHkiIHNlY3Rpb24gb2YgIHRoZSAgTk9URVMKICAgICAgIGZvciBtb3JlIGRldGFp bCBvbiBob3cgZXh0ZW5zaW9ucyBhcmUgaGFuZGxlZC4pCgogICBUaGUgb3Blbl9ob3cgc3RydWN0 dXJlCiAgICAgICBUaGUgZm9sbG93aW5nIHN0cnVjdHVyZSBpbmRpY2F0ZXMgaG93IHBhdGhuYW1l IHNob3VsZCBiZSBvcGVuZWQsIGFuZCBhY3RzIGFzIGEgc3VwZXJzZXQgb2YKICAgICAgIHRoZSBm bGFnIGFuZCBtb2RlIGFyZ3VtZW50cyB0byBvcGVuYXQoMikuCgogICAgICAgICAgIHN0cnVjdCBv cGVuX2hvdyB7CiAgICAgICAgICAgICAgIF9fYWxpZ25lZF91NjQgZmxhZ3M7ICAgICAgICAgLyog T18qIGZsYWdzLiAqLwogICAgICAgICAgICAgICBfX3UxNiAgICAgICAgIG1vZGU7ICAgICAgICAg IC8qIE1vZGUgZm9yIE9fe0NSRUFULFRNUEZJTEV9LiAqLwogICAgICAgICAgICAgICBfX3UxNiAg ICAgICAgIF9fcGFkZGluZ1szXTsgIC8qIE11c3QgYmUgemVyb2VkLiAqLwogICAgICAgICAgICAg ICBfX2FsaWduZWRfdTY0IHJlc29sdmU7ICAgICAgIC8qIFJFU09MVkVfKiBmbGFncy4gKi8KICAg ICAgICAgICB9OwoKICAgICAgIEFueSBmdXR1cmUgZXh0ZW5zaW9ucyB0byBvcGVuYXQyKCkgd2ls bCBiZSBpbXBsZW1lbnRlZCBhcyBuZXcgZmllbGRzIGFwcGVuZGVkIHRvIHRoZSBhYm92ZQogICAg ICAgc3RydWN0dXJlIChvciB0aHJvdWdoIHJldXNlIG9mIHByZS1leGlzdGluZyBwYWRkaW5nIHNw YWNlKSwgd2l0aCB0aGUgemVybyB2YWx1ZSBvZiB0aGUgbmV3CiAgICAgICBmaWVsZHMgYWN0aW5n IGFzIHRob3VnaCB0aGUgZXh0ZW5zaW9uIHdlcmUgbm90IHByZXNlbnQuCgogICAgICAgVGhlIG1l YW5pbmcgb2YgZWFjaCBmaWVsZCBpcyBhcyBmb2xsb3dzOgoKICAgICAgICAgICAgICBmbGFncwog ICAgICAgICAgICAgICAgICAgICBUaGUgZmlsZSBjcmVhdGlvbiBhbmQgc3RhdHVzIGZsYWdzIHRv IHVzZSBmb3IgdGhpcyBvcGVyYXRpb24uICAgQWxsICBvZiAgdGhlCiAgICAgICAgICAgICAgICAg ICAgIE9fKiBmbGFncyBkZWZpbmVkIGZvciBvcGVuYXQoMikgYXJlIHZhbGlkIG9wZW5hdDIoKSBm bGFnIHZhbHVlcy4KCiAgICAgICAgICAgICAgICAgICAgIFVubGlrZSBvcGVuYXQoMiksIGl0IGlz IGFuIGVycm9yIHRvIHByb3ZpZGUgb3BlbmF0MigpIHVua25vd24gb3IgY29uZmxpY3RpbmcKICAg ICAgICAgICAgICAgICAgICAgZmxhZ3MgaW4gZmxhZ3MuCgogICAgICAgICAgICAgIG1vZGUKICAg ICAgICAgICAgICAgICAgICAgRmlsZSBtb2RlIGZvciB0aGUgbmV3IGZpbGUsIHdpdGggaWRlbnRp Y2FsIHNlbWFudGljcyB0byB0aGUgbW9kZSBhcmd1bWVudCB0bwogICAgICAgICAgICAgICAgICAg ICBvcGVuYXQoMikuICAgSG93ZXZlciwgIHVubGlrZSBvcGVuYXQoMiksIGl0IGlzIGFuIGVycm9y IHRvIHByb3ZpZGUgb3BlbmF0MigpCiAgICAgICAgICAgICAgICAgICAgIHdpdGggYSBtb2RlIHdo aWNoIGNvbnRhaW5zIGJpdHMgb3RoZXIgdGhhbiAwNzc3LgoKICAgICAgICAgICAgICAgICAgICAg SXQgaXMgYW4gZXJyb3IgdG8gcHJvdmlkZSBvcGVuYXQyKCkgYSBub24temVybyBtb2RlIGlmIGZs YWdzIGRvZXMgIG5vdCAgY29uLQogICAgICAgICAgICAgICAgICAgICB0YWluIE9fQ1JFQVQgb3Ig T19UTVBGSUxFLgoKICAgICAgICAgICAgICByZXNvbHZlCiAgICAgICAgICAgICAgICAgICAgIENo YW5nZSAgaG93ICB0aGUgIGNvbXBvbmVudHMgIG9mIHBhdGhuYW1lIHdpbGwgYmUgcmVzb2x2ZWQg KHNlZSBwYXRoX3Jlc29sdS0KICAgICAgICAgICAgICAgICAgICAgdGlvbig3KSBmb3IgYmFja2dy b3VuZCBpbmZvcm1hdGlvbi4pICBUaGUgcHJpbWFyeSB1c2UgY2FzZSBmb3IgIHRoZXNlICBmbGFn cwogICAgICAgICAgICAgICAgICAgICBpcyAgdG8gIGFsbG93IHRydXN0ZWQgcHJvZ3JhbXMgdG8g cmVzdHJpY3QgaG93IHVudHJ1c3RlZCBwYXRocyAob3IgcGF0aHMgaW4tCiAgICAgICAgICAgICAg ICAgICAgIHNpZGUgdW50cnVzdGVkIGRpcmVjdG9yaWVzKSBhcmUgcmVzb2x2ZWQuICBUaGUgZnVs bCBsaXN0IG9mIHJlc29sdmUgZmxhZ3MgaXMKICAgICAgICAgICAgICAgICAgICAgZ2l2ZW4gYmVs b3cuCgogICAgICAgICAgICAgICAgICAgICBSRVNPTFZFX05PX1hERVYKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERpc2FsbG93ICB0cmF2ZXJzYWwgb2YgbW91bnQgcG9pbnRzIGR1cmluZyBw YXRoIHJlc29sdXRpb24gKGluY2x1ZGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxs IGJpbmQgbW91bnRzKS4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBvZiB0aGlz IGZsYWcgYXJlIGVuY291cmFnZWQgdG8gbWFrZSBpdHMgdXNlICBjb25maWd1cmFibGUgICh1bi0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlc3MgIGl0IGlzIHVzZWQgZm9yIGEgc3BlY2lm aWMgc2VjdXJpdHkgcHVycG9zZSksIGFzIGJpbmQgbW91bnRzIGFyZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmVyeSB3aWRlbHkgdXNlZCBieSBlbmQtdXNlcnMuICBTZXR0aW5nIHRoaXMg ZmxhZyBpbmRpc2NyaW1uYXRlbHkgZm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGwg IHVzZXMgIG9mICBvcGVuYXQyKCkgbWF5IHJlc3VsdCBpbiBzcHVyaW91cyBlcnJvcnMgb24gcHJl dmlvdXNseS0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uYWwgc3lzdGVtcy4K CiAgICAgICAgICAgICAgICAgICAgIFJFU09MVkVfTk9fU1lNTElOS1MKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERpc2FsbG93IHJlc29sdXRpb24gb2Ygc3ltYm9saWMgbGlua3MgZHVyaW5n IHBhdGggIHJlc29sdXRpb24uICAgVGhpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0 aW9uIGltcGxpZXMgUkVTT0xWRV9OT19NQUdJQ0xJTktTLgoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIHRoZSB0cmFpbGluZyBjb21wb25lbnQgaXMgYSBzeW1ib2xpYyBsaW5rLCBhbmQg ZmxhZ3MgY29udGFpbnMgYm90aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT19QQVRIIGFu ZCBPX05PRk9MTE9XLCB0aGVuIGFuIE9fUEFUSCBmaWxlIGRlc2NyaXB0b3IgcmVmZXJlbmNpbmcg dGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xpYyBsaW5rIHdpbGwgYmUgcmV0 dXJuZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgIG9mICB0aGlzIGZsYWcg YXJlIGVuY291cmFnZWQgdG8gbWFrZSBpdHMgdXNlIGNvbmZpZ3VyYWJsZSAodW4tCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXNzIGl0IGlzIHVzZWQgZm9yIGEgc3BlY2lmaWMgc2VjdXJp dHkgcHVycG9zZSksIGFzICBzeW1ib2xpYyAgbGlua3MKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFyZSB2ZXJ5IHdpZGVseSB1c2VkIGJ5IGVuZC11c2Vycy4gIFNldHRpbmcgdGhpcyBmbGFn IGluZGlzY3JpbW5hdGVseQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCB1c2Vz IG9mIG9wZW5hdDIoKSBtYXkgcmVzdWx0IGluICBzcHVyaW91cyAgZXJyb3JzICBvbiAgcHJldmkt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXNseS1mdW5jdGlvbmFsIHN5c3RlbXMuCgog ICAgICAgICAgICAgICAgICAgICBSRVNPTFZFX05PX01BR0lDTElOS1MKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERpc2FsbG93IGFsbCBtYWdpYyBsaW5rIHJlc29sdXRpb24gZHVyaW5nIHBh dGggcmVzb2x1dGlvbi4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAgdGhlICB0cmFp bGluZyAgY29tcG9uZW50IGlzIGEgbWFnaWMgbGluaywgYW5kIGZsYWdzIGNvbnRhaW5zIGJvdGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9fUEFUSCBhbmQgT19OT0ZPTExPVywgdGhlbiBh biBPX1BBVEggZmlsZSBkZXNjcmlwdG9yIHJlZmVyZW5jaW5nIHRoZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWFnaWMgbGluayB3aWxsIGJlIHJldHVybmVkLgoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1hZ2ljLWxpbmtzICBhcmUgIHN5bWJvbGljICBsaW5rLWxpa2UgIG9iamVj dHMgIHRoYXQgYXJlIG1vc3Qgbm90YWJseQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91 bmQgICBpbiAgIHByb2MoNSkgICAoZXhhbXBsZXMgICAgaW5jbHVkZSAgICAvcHJvYy9bcGlkXS9l eGUgICAgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvcHJvYy9bcGlkXS9mZC8qLikg ICBEdWUgdG8gdGhlIHBvdGVudGlhbCBkYW5nZXIgb2YgdW5rbm93aW5nbHkgb3Blbi0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGluZyB0aGVzZSBtYWdpYyBsaW5rcywgaXQgbWF5IGJlICBw cmVmZXJhYmxlICBmb3IgIHVzZXJzICB0byAgZGlzYWJsZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGhlaXIgcmVzb2x1dGlvbiBlbnRpcmVseSAoc2VlIHN5bWJvbGljbGluayg3KSBmb3Ig bW9yZSBkZXRhaWxzLikKCiAgICAgICAgICAgICAgICAgICAgIFJFU09MVkVfQkVORUFUSAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRG8gIG5vdCBwZXJtaXQgdGhlIHBhdGggcmVzb2x1dGlv biB0byBzdWNjZWVkIGlmIGFueSBjb21wb25lbnQgb2YgdGhlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXNvbHV0aW9uIGlzIG5vdCBhIGRlc2NlbmRhbnQgb2YgdGhlIGRpcmVjdG9yeSBp bmRpY2F0ZWQgIGJ5ICBkaXJmZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcmVz dWx0cyBpbiBhYnNvbHV0ZSBzeW1ib2xpYyBsaW5rcyAoYW5kIGFic29sdXRlIHZhbHVlcyBvZiBw YXRoLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSkgdG8gYmUgcmVqZWN0ZWQuCgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVudGx5LCB0aGlzIGZsYWcgYWxzbyBkaXNh YmxlcyBtYWdpYyBsaW5rICByZXNvbHV0aW9uLiAgIEhvd2V2ZXIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aGlzICBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuICBUaGUgY2FsbGVyIHNo b3VsZCBleHBsaWNpdGx5IHNwZWNpZnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU09M VkVfTk9fTUFHSUNMSU5LUyB0byBlbnN1cmUgdGhhdCBtYWdpYyBsaW5rcyBhcmUgbm90IHJlc29s dmVkLgoKICAgICAgICAgICAgICAgICAgICAgUkVTT0xWRV9JTl9ST09UCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUcmVhdCBkaXJmZCBhcyB0aGUgcm9vdCBkaXJlY3Rvcnkgd2hpbGUgcmVz b2x2aW5nIHBhdGhuYW1lIChhcyB0aG91Z2gKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo ZSB1c2VyIGNhbGxlZCBjaHJvb3QoMikgd2l0aCBkaXJmZCBhcyB0aGUgYXJndW1lbnQuKSAgQWJz b2x1dGUgc3ltLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9saWMgbGlua3MgYW5kICIu LiIgcGF0aCBjb21wb25lbnRzIHdpbGwgYmUgIHNjb3BlZCAgdG8gIGRpcmZkLiAgIElmCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSBpcyBhbiBhYnNvbHV0ZSBwYXRoLCBpdCBp cyBhbHNvIHRyZWF0ZWQgcmVsYXRpdmUgdG8gZGlyZmQuCgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSG93ZXZlciwgIHVubGlrZSAgY2hyb290KDIpICh3aGljaCBjaGFuZ2VzIHRoZSBmaWxl c3lzdGVtIHJvb3QgcGVybWEtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZW50bHkgZm9y IGEgcHJvY2VzcyksIFJFU09MVkVfSU5fUk9PVCAgYWxsb3dzICBhICBwcm9ncmFtICB0byAgZWZm aS0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpZW50bHkgIHJlc3RyaWN0ICBwYXRoICBy ZXNvbHV0aW9uICBmb3Igb25seSBjZXJ0YWluIG9wZXJhdGlvbnMuICBJdAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgYWxzbyBoYXMgc2V2ZXJhbCBoYXJkZW5pbmcgZmVhdHVyZXMgKHN1Y2gg ZGV0ZWN0aW5nICBlc2NhcGUgIGF0dGVtcHRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBk dXJpbmcgLi4gIHJlc29sdXRpb24pIHdoaWNoIGNocm9vdCgyKSBkb2VzIG5vdC4KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDdXJyZW50bHksICB0aGlzICBmbGFnIGFsc28gZGlzYWJsZXMg bWFnaWMgbGluayByZXNvbHV0aW9uLiAgSG93ZXZlciwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRoaXMgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiAgVGhlIGNhbGxlciBzaG91bGQgZXhw bGljaXRseSAgc3BlY2lmeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVTT0xWRV9OT19N QUdJQ0xJTktTIHRvIGVuc3VyZSB0aGF0IG1hZ2ljIGxpbmtzIGFyZSBub3QgcmVzb2x2ZWQuCgog ICAgICAgICAgICAgICAgICAgICBJdCBpcyBhbiBlcnJvciB0byBwcm92aWRlIG9wZW5hdDIoKSB1 bmtub3duIGZsYWdzIGluIHJlc29sdmUuCgpSRVRVUk4gVkFMVUUKICAgICAgIE9uIHN1Y2Nlc3Ms IGEgbmV3IGZpbGUgZGVzY3JpcHRvciBpcyByZXR1cm5lZC4gIE9uIGVycm9yLCAtMSBpcyByZXR1 cm5lZCwgYW5kIGVycm5vIGlzIHNldAogICAgICAgYXBwcm9wcmlhdGVseS4KCkVSUk9SUwogICAg ICAgVGhlIHNldCBvZiBlcnJvcnMgcmV0dXJuZWQgYnkgb3BlbmF0MigpIGluY2x1ZGVzIGFsbCBv ZiB0aGUgZXJyb3JzIHJldHVybmVkIGJ5ICBvcGVuYXQoMiksCiAgICAgICBhcyB3ZWxsIGFzIHRo ZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBlcnJvcnM6CgogICAgICAgRUlOVkFMIEFuIHVua25vd24g ZmxhZyBvciBpbnZhbGlkIHZhbHVlIHdhcyBzcGVjaWZpZWQgaW4gaG93LgoKICAgICAgIEVJTlZB TCBtb2RlIGlzIG5vbi16ZXJvLCBidXQgZmxhZ3MgZG9lcyBub3QgY29udGFpbiBPX0NSRUFUIG9y IE9fVE1QRklMRS4KCiAgICAgICBFSU5WQUwgc2l6ZSB3YXMgc21hbGxlciB0aGFuIGFueSBrbm93 biB2ZXJzaW9uIG9mIHN0cnVjdCBvcGVuX2hvdy4KCiAgICAgICBFMkJJRyAgQW4gIGV4dGVuc2lv biAgd2FzIHNwZWNpZmllZCBpbiBob3csIHdoaWNoIHRoZSBjdXJyZW50IGtlcm5lbCBkb2VzIG5v dCBzdXBwb3J0IChzZWUKICAgICAgICAgICAgICB0aGUgIkV4dGVuc2liaWxpdHkiIHNlY3Rpb24g b2YgdGhlIE5PVEVTIGZvciBtb3JlIGRldGFpbCBvbiBob3cgZXh0ZW5zaW9ucyBhcmUgaGFuLQog ICAgICAgICAgICAgIGRsZWQuKQoKICAgICAgIEVBR0FJTiByZXNvbHZlICBjb250YWlucyAgZWl0 aGVyICBSRVNPTFZFX0lOX1JPT1Qgb3IgUkVTT0xWRV9CRU5FQVRILCBhbmQgdGhlIGtlcm5lbCBj b3VsZAogICAgICAgICAgICAgIG5vdCBlbnN1cmUgdGhhdCBhICIuLiIgY29tcG9uZW50IGRpZG4n dCBlc2NhcGUgKGR1ZSB0byBhIHJhY2UgY29uZGl0aW9uICBvciAgcG90ZW4tCiAgICAgICAgICAg ICAgdGlhbCBhdHRhY2suKSAgQ2FsbGVycyBtYXkgY2hvb3NlIHRvIHJldHJ5IHRoZSBvcGVuYXQy KCkgY2FsbC4KCiAgICAgICBFWERFViAgcmVzb2x2ZSAgY29udGFpbnMgZWl0aGVyIFJFU09MVkVf SU5fUk9PVCBvciBSRVNPTFZFX0JFTkVBVEgsIGFuZCBhbiBlc2NhcGUgZnJvbSB0aGUKICAgICAg ICAgICAgICByb290IGR1cmluZyBwYXRoIHJlc29sdXRpb24gd2FzIGRldGVjdGVkLgoKICAgICAg IEVYREVWICByZXNvbHZlIGNvbnRhaW5zIFJFU09MVkVfTk9fWERFViwgYW5kIGEgcGF0aCBjb21w b25lbnQgYXR0ZW1wdGVkIHRvIGNyb3NzICBhICBtb3VudAogICAgICAgICAgICAgIHBvaW50LgoK ICAgICAgIEVMT09QICByZXNvbHZlIGNvbnRhaW5zIFJFU09MVkVfTk9fU1lNTElOS1MsIGFuZCBv bmUgb2YgdGhlIHBhdGggY29tcG9uZW50cyB3YXMgYSBzeW1ib2xpYwogICAgICAgICAgICAgIGxp bmsgKG9yIG1hZ2ljIGxpbmspLgoKICAgICAgIEVMT09QICByZXNvbHZlIGNvbnRhaW5zIFJFU09M VkVfTk9fTUFHSUNMSU5LUywgYW5kIG9uZSBvZiB0aGUgcGF0aCBjb21wb25lbnRzIHdhcyBhICBt YWdpYwogICAgICAgICAgICAgIGxpbmsuCgpWRVJTSU9OUwogICAgICAgb3BlbmF0MigpIHdhcyBh ZGRlZCB0byBMaW51eCBpbiBrZXJuZWwgNS5GT08uCgpDT05GT1JNSU5HIFRPCiAgICAgICBUaGlz IHN5c3RlbSBjYWxsIGlzIExpbnV4LXNwZWNpZmljLgoKICAgICAgIFRoZSBzZW1hbnRpY3Mgb2Yg UkVTT0xWRV9CRU5FQVRIIHdlcmUgbW9kZWxsZWQgYWZ0ZXIgRnJlZUJTRCdzIE9fQkVORUFUSC4K Ck5PVEVTCiAgICAgICBHbGliYyBkb2VzIG5vdCBwcm92aWRlIGEgd3JhcHBlciBmb3IgdGhpcyBz eXN0ZW0gY2FsbDsgY2FsbCBpdCB1c2luZyBzeXN0ZW1jYWxsKDIpLgoKICAgRXh0ZW5zaWJpbGl0 eQogICAgICAgSW4gb3JkZXIgdG8gYWxsb3cgZm9yIHN0cnVjdCBvcGVuX2hvdyB0byBiZSBleHRl bmRlZCBpbiBmdXR1cmUga2VybmVsIHJldmlzaW9ucywgb3BlbmF0MigpCiAgICAgICByZXF1aXJl cyB1c2Vyc3BhY2UgdG8gc3BlY2lmeSB0aGUgc2l6ZSBvZiBzdHJ1Y3Qgb3Blbl9ob3cgc3RydWN0 dXJlIHRoZXkgYXJlIHBhc3NpbmcuICAgQnkKICAgICAgIHByb3ZpZGluZyAgdGhpcyAgaW5mb3Jt YXRpb24sICBpdCAgaXMgcG9zc2libGUgZm9yIG9wZW5hdDIoKSB0byBwcm92aWRlIGJvdGggZm9y d2FyZHMtIGFuZAogICAgICAgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkg4oCUIHdpdGggc2l6ZSBh Y3RpbmcgYXMgYW4gaW1wbGljaXQgdmVyc2lvbiBudW1iZXIgKGJlY2F1c2UgbmV3ICBleC0KICAg ICAgIHRlbnNpb24gIGZpZWxkcyB3aWxsIGFsd2F5cyBiZSBhcHBlbmRlZCwgdGhlIHNpemUgd2ls bCBhbHdheXMgaW5jcmVhc2UuKSAgVGhpcyBleHRlbnNpYmlsLQogICAgICAgaXR5ICBkZXNpZ24g IGlzICB2ZXJ5ICBzaW1pbGFyICB0byAgIG90aGVyICAgc3lzdGVtICAgY2FsbHMgICBzdWNoICAg YXMgICBwZXJmX3NldGF0dHIoMiksCiAgICAgICBwZXJmX2V2ZW50X29wZW4oMiksIGFuZCBjbG9u ZSgzKS4KCiAgICAgICBJZiAgd2UgbGV0IHVzaXplIGJlIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1 cmUgYWNjb3JkaW5nIHRvIHVzZXJzcGFjZSBhbmQga3NpemUgYmUgdGhlIHNpemUKICAgICAgIG9m IHRoZSBzdHJ1Y3R1cmUgd2hpY2ggdGhlIGtlcm5lbCBzdXBwb3J0cywgdGhlbiB0aGVyZSBhcmUg b25seSB0aHJlZSBjYXNlcyB0byBjb25zaWRlcjoKCiAgICAgICAgICAgICAgKiAgSWYga3NpemUg ZXF1YWxzIHVzaXplLCB0aGVuIHRoZXJlIGlzIG5vIHZlcnNpb24gbWlzbWF0Y2ggYW5kICBob3cg IGNhbiAgYmUgIHVzZWQKICAgICAgICAgICAgICAgICB2ZXJiYXRpbS4KCiAgICAgICAgICAgICAg KiAgSWYgIGtzaXplICBpcyAgbGFyZ2VyIHRoYW4gdXNpemUsIHRoZW4gdGhlcmUgYXJlIHNvbWUg ZXh0ZW5zaW9ucyB0aGUga2VybmVsIHN1cC0KICAgICAgICAgICAgICAgICBwb3J0cyB3aGljaCB0 aGUgdXNlcnNwYWNlIHByb2dyYW0gaXMgdW5hd2FyZSBvZi4gIEJlY2F1c2UgIGFsbCAgZXh0ZW5z aW9ucyAgbXVzdAogICAgICAgICAgICAgICAgIGhhdmUgdGhlaXIgemVybyB2YWx1ZXMgYmUgYSBu by1vcCwgdGhlIGtlcm5lbCB0cmVhdHMgYWxsIG9mIHRoZSBleHRlbnNpb24gZmllbGRzCiAgICAg ICAgICAgICAgICAgbm90IHNldCBieSB1c2Vyc3BhY2UgdG8gaGF2ZSB6ZXJvIHZhbHVlcy4gIFRo aXMgIHByb3ZpZGVzICBiYWNrd2FyZHMtY29tcGF0aWJpbC0KICAgICAgICAgICAgICAgICBpdHku CgogICAgICAgICAgICAgICogIElmICBrc2l6ZSAgaXMgIHNtYWxsZXIgIHRoYW4gIHVzaXplLCAg dGhlbiAgdGhlcmUgIGFyZSBzb21lIGV4dGVuc2lvbnMgd2hpY2ggdGhlCiAgICAgICAgICAgICAg ICAgdXNlcnNwYWNlIHByb2dyYW0gaXMgYXdhcmUgb2YgYnV0IHRoZSBrZXJuZWwgZG9lcyBub3Qg c3VwcG9ydC4gIEJlY2F1c2UgYWxsICBleC0KICAgICAgICAgICAgICAgICB0ZW5zaW9ucyAgbXVz dCAgaGF2ZSAgdGhlaXIgemVybyB2YWx1ZXMgYmUgYSBuby1vcCwgdGhlIGtlcm5lbCBjYW4gc2Fm ZWx5IGlnbm9yZQogICAgICAgICAgICAgICAgIHRoZSB1bnN1cHBvcnRlZCBleHRlbnNpb24gZmll bGRzIGlmIHRoZXkgYXJlIGFsbC16ZXJvLiAgSWYgYW55ICB1bnN1cHBvcnRlZCAgZXgtCiAgICAg ICAgICAgICAgICAgdGVuc2lvbiAgZmllbGRzICBhcmUgIG5vbi16ZXJvLCAgdGhlbiAgLTEgaXMg cmV0dXJuZWQgYW5kIGVycm5vIGlzIHNldCB0byBFMkJJRy4KICAgICAgICAgICAgICAgICBUaGlz IHByb3ZpZGVzIGZvcndhcmRzLWNvbXBhdGliaWxpdHkuCgogICAgICAgVGhlcmVmb3JlLCBtb3N0 IHVzZXJzcGFjZSBwcm9ncmFtcyB3aWxsIG5vdCBuZWVkIHRvIGhhdmUgYW55IHNwZWNpYWwgIGhh bmRsaW5nICBvZiAgZXh0ZW4tCiAgICAgICBzaW9ucy4gICBIb3dldmVyLCAgaWYgIGEgdXNlcnNw YWNlIHByb2dyYW0gd2lzaGVzIHRvIGRldGVybWluZSB3aGF0IGV4dGVuc2lvbnMgdGhlIHJ1bm5p bmcKICAgICAgIGtlcm5lbCBzdXBwb3J0cywgdGhleSBtYXkgY29uZHVjdCBhIGJpbmFyeSBzZWFy Y2ggb24gc2l6ZSAodG8gZmluZCB0aGUgbGFyZ2VzdCB2YWx1ZSB3aGljaAogICAgICAgZG9lc24n dCBwcm9kdWNlIGFuIGVycm9yIG9mIEUyQklHLikKClNFRSBBTFNPCiAgICAgICBvcGVuYXQoMiks IHBhdGhfcmVzb2x1dGlvbig3KSwgc3ltbGluayg3KQoKTGludXggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAyMDE5LTExLTA1ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT1BFTkFUMigyKQotLTg8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBbGVrc2EgU2FyYWkgKDkp OgogIG5hbWVpOiBMT09LVVBfTk9fU1lNTElOS1M6IGJsb2NrIHN5bWxpbmsgcmVzb2x1dGlvbgog IG5hbWVpOiBMT09LVVBfTk9fTUFHSUNMSU5LUzogYmxvY2sgbWFnaWMtbGluayByZXNvbHV0aW9u CiAgbmFtZWk6IExPT0tVUF9OT19YREVWOiBibG9jayBtb3VudHBvaW50IGNyb3NzaW5nCiAgbmFt ZWk6IExPT0tVUF9CRU5FQVRIOiBPX0JFTkVBVEgtbGlrZSBzY29wZWQgcmVzb2x1dGlvbgogIG5h bWVpOiBMT09LVVBfSU5fUk9PVDogY2hyb290LWxpa2Ugc2NvcGVkIHJlc29sdXRpb24KICBuYW1l aTogTE9PS1VQX3tJTl9ST09ULEJFTkVBVEh9OiBwZXJtaXQgbGltaXRlZCAiLi4iIHJlc29sdXRp b24KICBvcGVuOiBpbnRyb2R1Y2Ugb3BlbmF0MigyKSBzeXNjYWxsCiAgc2VsZnRlc3RzOiBhZGQg b3BlbmF0MigyKSBzZWxmdGVzdHMKICBEb2N1bWVudGF0aW9uOiBwYXRoLWxvb2t1cDogbWVudGlv biBMT09LVVBfTUFHSUNMSU5LX0pVTVBFRAoKIENSRURJVFMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgNCArLQogRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wYXRo LWxvb2t1cC5yc3QgICAgIHwgIDE4ICstCiBhcmNoL2FscGhhL2tlcm5lbC9zeXNjYWxscy9zeXNj YWxsLnRibCAgICAgICAgfCAgIDEgKwogYXJjaC9hcm0vdG9vbHMvc3lzY2FsbC50YmwgICAgICAg ICAgICAgICAgICAgIHwgICAxICsKIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vdW5pc3RkLmggICAg ICAgICAgICAgICB8ICAgMiArLQogYXJjaC9hcm02NC9pbmNsdWRlL2FzbS91bmlzdGQzMi5oICAg ICAgICAgICAgIHwgICAyICsKIGFyY2gvaWE2NC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymwg ICAgICAgICB8ICAgMSArCiBhcmNoL202OGsva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsICAg ICAgICAgfCAgIDEgKwogYXJjaC9taWNyb2JsYXplL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRi bCAgIHwgICAxICsKIGFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbF9uMzIudGJsICAg ICB8ICAgMSArCiBhcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibCAgICAg fCAgIDEgKwogYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX28zMi50YmwgICAgIHwg ICAxICsKIGFyY2gvcGFyaXNjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibCAgICAgICB8ICAg MSArCiBhcmNoL3Bvd2VycGMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsICAgICAgfCAgIDEg KwogYXJjaC9zMzkwL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibCAgICAgICAgIHwgICAxICsK IGFyY2gvc2gva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsICAgICAgICAgICB8ICAgMSArCiBh cmNoL3NwYXJjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibCAgICAgICAgfCAgIDEgKwogYXJj aC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50YmwgICAgICAgIHwgICAxICsKIGFyY2gv eDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfNjQudGJsICAgICAgICB8ICAgMSArCiBhcmNoL3h0 ZW5zYS9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwgICAgICAgfCAgIDEgKwogZnMvbmFtZWku YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTc2ICsrKysrLQogZnMvb3Bl bi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQ5ICsrKy0tCiBpbmNs dWRlL2xpbnV4L2ZjbnRsLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIGluY2x1 ZGUvbGludXgvbmFtZWkuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArCiBpbmNsdWRl L2xpbnV4L3N5c2NhbGxzLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogaW5jbHVkZS91 YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oICAgICAgICAgICAgIHwgICA1ICstCiBpbmNsdWRlL3Vh cGkvbGludXgvZmNudGwuaCAgICAgICAgICAgICAgICAgICAgfCAgNDEgKysKIHRvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL01ha2VmaWxlICAgICAgICAgICAgICB8ICAgMSArCiB0b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9vcGVuYXQyLy5naXRpZ25vcmUgICAgfCAgIDEgKwogdG9vbHMvdGVzdGluZy9z ZWxmdGVzdHMvb3BlbmF0Mi9NYWtlZmlsZSAgICAgIHwgICA4ICsKIHRvb2xzL3Rlc3Rpbmcvc2Vs ZnRlc3RzL29wZW5hdDIvaGVscGVycy5jICAgICB8IDEwOSArKysrCiB0b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9vcGVuYXQyL2hlbHBlcnMuaCAgICAgfCAxMDcgKysrKwogLi4uL3Rlc3Rpbmcvc2Vs ZnRlc3RzL29wZW5hdDIvb3BlbmF0Ml90ZXN0LmMgIHwgMzE2ICsrKysrKysrKysrCiAuLi4vc2Vs ZnRlc3RzL29wZW5hdDIvcmVuYW1lX2F0dGFja190ZXN0LmMgICAgfCAxNjAgKysrKysrCiAuLi4v dGVzdGluZy9zZWxmdGVzdHMvb3BlbmF0Mi9yZXNvbHZlX3Rlc3QuYyAgfCA1MjMgKysrKysrKysr KysrKysrKysrCiAzNSBmaWxlcyBjaGFuZ2VkLCAxNTkxIGluc2VydGlvbnMoKyksIDczIGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL29wZW5h dDIvLmdpdGlnbm9yZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L29wZW5hdDIvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9vcGVuYXQyL2hlbHBlcnMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL29wZW5hdDIvaGVscGVycy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvb3BlbmF0Mi9vcGVuYXQyX3Rlc3QuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL29wZW5hdDIvcmVuYW1lX2F0dGFja190ZXN0LmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9vcGVuYXQyL3Jlc29sdmVf dGVzdC5jCgoKYmFzZS1jb21taXQ6IGE5OWQ4MDgwYWFmMzU4ZDVkMjM1ODEyNDRlNWRhMjNiMzVl MzQwYjkKLS0gCjIuMjMuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK