From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by sourceware.org (Postfix) with ESMTPS id 45E363858D1E for ; Sat, 30 Mar 2024 18:54:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 45E363858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 45E363858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::102a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711824902; cv=none; b=SmyIpiSLR2egBwYdtgErdL0Lb6qmmApYiSEOQhz11hnJ1CJtHE9WEZdsHAnMbuwdtwOW3PwSRmseuCRfdFi1zI/zOwSkbCxzSH38v5rxLsYGTRc5p/Tv5Cd6fwN4Z+dAMhXHLaSVmH81GX2WgMyxvEUsjhxxt1229WKF7b2bkNI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711824902; c=relaxed/simple; bh=SzfGL8Ypu+mlcqta3uitgDDqH+V3COK1rgE7K5B5N0s=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=W3tErFz76sbLtatKdUkaMYCK4neGBWYFw6mHiGXEYOrQ1oiYZcsZLxWSPtHzhO3R5TTG9uq9DodQ/R0bmtiSHD8BZPuX9oGcKKdmHCbIEjBOHCZLpSIFS7qWlHVW2q3xAteRCExQsuunUdbRJgkmWvbpGrZz+AD+vGF+m5DFQtw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-29f749b6667so2062234a91.0 for ; Sat, 30 Mar 2024 11:54:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711824898; x=1712429698; darn=sourceware.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Y8nygf5iwC8pD8h+1Ns9Gd0FgCmO9Nv2K6LLk7kiiFc=; b=gfLbz0yHYr5uIRziQ9Y2YhFeR0RWtaI3vfz5kNVfvuEIGzjWeII0km5/RtLTl4zZvc OrvPTT+pInqVnxwCWm6QhPLUaHF0ivWykLKAfdEqBlDEdZlnMz/jCPLawNWuize1mOnP ZEHHiyQuXw8wnVy72ygjRkaF7xyamKDKfsoWO2vxdmZoO4shVPAER23a6ux4AS65ol+Y Sn72ZqLtqHGAsRARQmHGyzSftUU4Wbj9JNTKWyRTPVXd/YPgGZ+iBMqvIiWKN+ARqykI hAfDmnyCFo7GxhzQi09l9oldSMINHVn3xKi0s4x+WG+Cpu7RJTeEGKTOU4vMjIcyQqge 2QOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711824898; x=1712429698; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Y8nygf5iwC8pD8h+1Ns9Gd0FgCmO9Nv2K6LLk7kiiFc=; b=WDpyBreoz8zc0cz9PPD+Ap1GElYNY3of61WcOZokEl7+BT+9AbtOX64LyLUnfpmGo8 JNHr9nofNBD7i+fiSgiV+k2Hh6sHxXAphDEZu9S3bIM6NzeApnj07LSHPwqwC3GwRw+Y gSJ32+cPYDPhw7FKrz6iHppZE3CrPsrlIFvd8RJfLZpxouR7+9sO6cKJh4aCBEXk4/cV pksHDZLSLWQ9VXRsR60MEnIOBLRHXbI3YY9EEUNRkC8JZx0TD08UGBOGUmL6UOiYDGLO tKxJlJsUTnzhrPdOCQM9+g5mEBp0kbCWGrbb9ZXfy9iQsYRrUHx1OCnDd0kMW2MY2PSh DCWw== X-Forwarded-Encrypted: i=1; AJvYcCWuqYm3Rwz0D2igHLi3MAMHDw4E18QOG/Ob8xosF3FIj/GGSmC9PjY+UxUsbx6/6ztOcMt2qnn74424v+DXK9pgS90y+E4T4bx5 X-Gm-Message-State: AOJu0YyLczsMvneDXYxn14SnzvPCAKklKbK++8knETvK1x4Ov7MSXm6Z UKIAhHp0SvCNFF5lcHQIDOHzxOjVsuhnSWNK7JrbnERoRuEaqIV5XmW0L/r0nSqEshI2pOMDPn7 8827N//xNS9U3GBeGDxS6gRsnWlc= X-Google-Smtp-Source: AGHT+IGiylWkay63us0wnnXMyNqgu7mEZ4iiN8en3TN/2nASW0YORmrnsLpFEq8EOcExfGtxneit+/BLbZ1Me9PpIIA= X-Received: by 2002:a17:90a:d506:b0:29f:cd7d:2371 with SMTP id t6-20020a17090ad50600b0029fcd7d2371mr4825426pju.32.1711824898053; Sat, 30 Mar 2024 11:54:58 -0700 (PDT) MIME-Version: 1.0 References: <877cw3kn65.fsf@oldenburg.str.redhat.com> In-Reply-To: From: Girish Joshi Date: Sun, 31 Mar 2024 00:24:46 +0530 Message-ID: Subject: Re: [PATCH] manual: scripts/documented.sh updated To: Joe Simmons-Talbott Cc: Florian Weimer , Girish Joshi via Libc-alpha Content-Type: multipart/mixed; boundary="000000000000f778e90614e54aeb" X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00,CONTENT_AFTER_HTML_WEAK,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,URIBL_BLACK autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000f778e90614e54aeb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks Joe, I've updated the script. It's just that the output now does not contain the addresses and the T/W info about the symbol is not present. Do we need that info about each symbol in the output? Thanks! Girish Joshi girishjoshi.io On Sat, Mar 11, 2023 at 8:18=E2=80=AFPM Joe Simmons-Talbott wrote: > > On Sun, Mar 05, 2023 at 11:44:22AM +0530, Girish Joshi via Libc-alpha wro= te: > > Hi Florian, > > Thanks for the review. > > Turns out `diff` was not working with the given input files, this > > patch fixes that. > > I'm not sure if there is a list of people who volunteered to document > > some specific functions. > > So that comment from the output html is removed. > > > > Thanks! > > Girish Joshi > > > > On Mon, Feb 27, 2023 at 11:26=E2=80=AFPM Florian Weimer wrote: > > > > > > * Girish Joshi via Libc-alpha: > > > > > > > Hello, > > > > As per the Missing Functions section of master Todo list[1], > > > > scripts/documented.sh needs to be updated. > > > > > > > > Could someone please review this patch? > > > > It removes the reference to linuxthreads/*.taxi files from the scri= pt > > > > and removes the individual email address from the output. > > > > > > The script still doesn't seem to work, probably because the symbol na= mes > > > are not extract properly: > > > > > > 43120 T _dl_mcount_wrapper 43140 T _dl_mcount_wrapper_c 43320= W clogf 43320 W clogf32 > > > 435c0 T _dl_find_object 43740 T realpath 43770 T quick= _exit 43790 T _IO_vfscanf > > > 437c0 T _pthread_cleanup_pus 437d0 T _pthread_cleanup_pop 437d0= W cprojf 437d0 W cprojf32 > > > > > > _dl_find_object is documented. > > > > > > _IO_vfscanf should be recognized as an alias of vfscanf, but this is > > > more of an RFE than a bug fix. > > > > > > Thanks, > > > Florian > > > > > > From 5148c65ac07688dc5c3ee79a9b0f054232d64df3 Mon Sep 17 00:00:00 2001 > > From: Girish Joshi > > Date: Sun, 5 Mar 2023 11:15:00 +0530 > > Subject: [PATCH] manual: scripts/documented.sh updated > > > > References for linuxthreads are removed from scripts/documented.sh. > > Also removed the individual email address from the html output. > > > > Fixed the steps to retrive undocumented functions > > --- > > scripts/documented.sh | 44 +++++++++++++++++++++++++++++++------------ > > 1 file changed, 32 insertions(+), 12 deletions(-) > > mode change 100644 =3D> 100755 scripts/documented.sh > > > > diff --git a/scripts/documented.sh b/scripts/documented.sh > > old mode 100644 > > new mode 100755 > > index 7d1ffd4a92..dda6a32283 > > --- a/scripts/documented.sh > > +++ b/scripts/documented.sh > > @@ -1,9 +1,15 @@ > > #!/bin/sh > > bindir=3D$1 > > > > -VERSION=3D1.0 > > +# usage: scripts/documented.sh > > +# for example: > > +# scripts/documented.sh $HOME/build/glibc > > > > -grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi | > > +VERSION=3D1.1 > > + > > +# Collect the documented functions from manual/*.texi files. > > + > > +grep -E -h @deftypefu?nx? manual/*.texi | > > sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:= ]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\(= {[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' | > > sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d'= | > > sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' | > > @@ -12,9 +18,12 @@ sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/= ^__fsetlocking$/d' | > > sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' | > > sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' | > > sed -e '/^alloca$/d' | > > +sed -r '/^\s*$/d' | > > sort -u > DOCUMENTED > > > > -nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/l= ibrt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/c= rypt/libcrypt.so $bindir/login/libutil.so | > > + > > +# extract the exported symbols from the libraries. > > +nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/l= ibrt.so $bindir/nptl/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/lib= crypt.so $bindir/login/libutil.so | > > grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" | > > sed 's/\(@.*\)//' | > > cut -b 12- | > > You can change this to 'cut -v 20-' and avoid the extra > AVAILABLE_WITHOUT_OFFSET part. > > Thanks, > Joe > > @@ -25,6 +34,9 @@ sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e = '/^_seterr_reply$/d' | > > sed -e '/^_nss/d' -e '/^_setjmp$/d' | > > sort -u > AVAILABLE > > > > +# remove offset details from nm output > > +cat AVAILABLE | cut -b 9- | sort -u > AVAILABLE_WITHOUT_OFFSET > > + > > cat < > > > > > @@ -39,9 +51,7 @@ cat < > which are not yet documented in the manual. This list is > > automatically created and therefore might contain errors. Please > > check the latest manual (available from the CVS archive) before > > - starting to work. It might also be good to let me know in > > - advanace on which functions you intend to work to avoid > > - duplication.

> > + starting to work.

> > > >

A few comments:

> > > > @@ -52,15 +62,23 @@ cat < >
  • Similarly for the LFS functions (those ending in 64).
  • > > > > > > -

    The function sombody already volunteered to document are marked > > - with a reference to the person.

    > > > >
    > > EOF > > > > n=3D0 > > -diff -y --width=3D60 --suppress-common-lines DOCUMENTED AVAILABLE | > > -expand | cut -b 33- | sed '/^[[:space:]]*$/d' | > > + > > +# get the list of undocumented functions > > +grep -Fvx -f DOCUMENTED AVAILABLE_WITHOUT_OFFSET > UNDOCUMENTED_WITHOU= T_OFFSET > > + > > +# get undocumented functions with offset info > > +for func in `cat UNDOCUMENTED_WITHOUT_OFFSET` > > +do > > + grep " $func$" AVAILABLE >> UNDOCUMENTED > > +done > > + > > +diff -y --width=3D120 --suppress-common-lines DOCUMENTED UNDOCUMENTED = | > > +expand | cut -b 61- | sed '/^[[:space:]]*$/d' | > > while read name; do > > line=3D"$line > > " > > @@ -95,8 +113,10 @@ cat < >
    $name
    > > > >
    > > -
    Ulrich Drepper<= /address> > > -Generated on $(date) with documented.sh version $VERSION > > + Generated on $(date) with documented.sh version $VERSION > > > > > > EOF > > + > > +# cleanup the files > > +rm -rf UNDOCUMENTED_WITHOUT_OFFSET AVAILABLE_WITHOUT_OFFSET AVAILABLE > > -- > > 2.39.2 > > > --000000000000f778e90614e54aeb Content-Type: text/x-patch; charset="US-ASCII"; name="0001-manual-scripts-documented.sh-updated.patch" Content-Disposition: attachment; filename="0001-manual-scripts-documented.sh-updated.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_luegajgk0 RnJvbSBhNTY0ZjFhZmVlMWUxZjVmNzRhNTg1Mjg4MmU4YzU4MmNmMGFlOTdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHaXJpc2ggSm9zaGkgPGdpcmlzaDk0NkBnbWFpbC5jb20+CkRh dGU6IFN1biwgMzEgTWFyIDIwMjQgMDA6MTc6MzQgKzA1MzAKU3ViamVjdDogW1BBVENIXSBtYW51 YWw6IHNjcmlwdHMvZG9jdW1lbnRlZC5zaCB1cGRhdGVkCgpSZWZlcmVuY2VzIGZvciBsaW51eHRo cmVhZHMgYXJlIHJlbW92ZWQgZnJvbSBzY3JpcHRzL2RvY3VtZW50ZWQuc2guCkZpeGVkIHRoZSBz dGVwcyB0byByZXRyaXZlIHVuZG9jdW1lbnRlZCBmdW5jdGlvbnMKCkFsc28gcmVtb3ZlZCB0aGUg aW5kaXZpZHVhbCBlbWFpbCBhZGRyZXNzIGZyb20gdGhlIGh0bWwgb3V0cHV0LgoKU2lnbmVkLW9m Zi1ieTogR2lyaXNoIEpvc2hpIDxnaXJpc2g5NDZAZ21haWwuY29tPgotLS0KIHNjcmlwdHMvZG9j dW1lbnRlZC5zaCB8IDQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCiBtb2Rl IGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IHNjcmlwdHMvZG9jdW1lbnRlZC5zaAoKZGlmZiAtLWdp dCBhL3NjcmlwdHMvZG9jdW1lbnRlZC5zaCBiL3NjcmlwdHMvZG9jdW1lbnRlZC5zaApvbGQgbW9k ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDI0YmI3YjNlNTQuLjM3MmEyOGViZjAKLS0t IGEvc2NyaXB0cy9kb2N1bWVudGVkLnNoCisrKyBiL3NjcmlwdHMvZG9jdW1lbnRlZC5zaApAQCAt MSw5ICsxLDE1IEBACiAjIS9iaW4vc2gKIGJpbmRpcj0kMQogCi1WRVJTSU9OPTEuMAorIyB1c2Fn ZTogc2NyaXB0cy9kb2N1bWVudGVkLnNoIDxwYXRoIHRvIGdsaWJjIGJ1aWxkIGRpcmVjdG9yeT4K KyMgZm9yIGV4YW1wbGU6CisjIHNjcmlwdHMvZG9jdW1lbnRlZC5zaCAkSE9NRS9idWlsZC9nbGli YwogCi1ncmVwIC1FIC1oIEBkZWZ0eXBlZnU/bng/ICoudGV4aSAuLi9saW51eHRocmVhZHMvKi50 ZXhpIHwKK1ZFUlNJT049MS4xCisKKyMgQ29sbGVjdCB0aGUgZG9jdW1lbnRlZCBmdW5jdGlvbnMg ZnJvbSBtYW51YWwvKi50ZXhpIGZpbGVzLgorCitncmVwIC1FIC1oIEBkZWZ0eXBlZnU/bng/IG1h bnVhbC8qLnRleGkgfAogc2VkIC1lICdzL0BkZWZ0eXBlZnVueCpbWzpzcGFjZTpdXSpcKHtbXntd Kn1cfFtbOmFsbnVtOl1fXSpcKVtbOnNwYWNlOl1dKlwoW1s6YWxudW06XV9dKlwpLiovXDIvJyAt ZSAncy9AZGVmdHlwZWZuIHtbXn1dKmZ1bmN0aW9ufSpbWzpzcGFjZTpdXSpcKHtbXntdKn1cfFtb OmFsbnVtOl1fXSpcKVtbOnNwYWNlOl1dKlwoW1s6YWxudW06XV9dKlwpLiovXDIvJyAtZSAnL15A L2QnIHwKIHNlZCAtZSAnL15vYnN0YWNrXy9kJyAtZSAnL15cKFtsZl1cfFwpc3RhdFwoXHw2NFwp JC9kJyAtZSAnL15ta25vZCQvZCcgfAogc2VkIC1lICcvXnNpZ25iaXQkL2QnIC1lICcvXnNpZ3Nl dGptcCQvZCcgfApAQCAtMTIsMTIgKzE4LDE0IEBAIHNlZCAtZSAnL15fX2Z3cml0aW5nJC9kJyAt ZSAnL15fX2Z3cml0YWJsZSQvZCcgLWUgJy9eX19mc2V0bG9ja2luZyQvZCcgfAogc2VkIC1lICcv Xl9fZnJlYWRpbmckL2QnIC1lICcvXl9fZnJlYWRhYmxlJC9kJyAtZSAnL15fX2ZwdXJnZSQvZCcg fAogc2VkIC1lICcvXl9fZnBlbmRpbmckL2QnIC1lICcvXl9fZmxiZiQvZCcgLWUgJy9eX19mYnVm c2l6ZSQvZCcgfAogc2VkIC1lICcvXmFsbG9jYSQvZCcgfAorc2VkIC1yICcvXlxzKiQvZCcgfAog c29ydCAtdSA+IERPQ1VNRU5URUQKIAotbm0gLS1leHRlcm4gLS1kZWZpbmUgJGJpbmRpci9saWJj LnNvICRiaW5kaXIvbWF0aC9saWJtLnNvICRiaW5kaXIvcnQvbGlicnQuc28gJGJpbmRpci9saW51 eHRocmVhZHMvbGlicHRocmVhZC5zbyAkYmluZGlyL2RsZmNuL2xpYmRsLnNvICRiaW5kaXIvbG9n aW4vbGlidXRpbC5zbyB8CisjIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5bWJvbHMgZnJvbSB0aGUg bGlicmFyaWVzLgorbm0gLS1leHRlcm4gLS1kZWZpbmUgJGJpbmRpci9saWJjLnNvICRiaW5kaXIv bWF0aC9saWJtLnNvICRiaW5kaXIvcnQvbGlicnQuc28gJGJpbmRpci9ucHRsL2xpYnB0aHJlYWQu c28gJGJpbmRpci9kbGZjbi9saWJkbC5zbyAkYmluZGlyL2xvZ2luL2xpYnV0aWwuc28gfAogZ3Jl cCAtRSAiIFtUV10gKFtbOmFscGhhOl1dfF9bWzphbHBoYTpdXSkiIHwKIHNlZCAncy9cKEAuKlwp Ly8nIHwKLWN1dCAtYiAxMi0gfAorY3V0IC1iIDIwLSB8CiBzZWQgLWUgJy9eX0lPL2QnIC1lICcv Xl9kbC9kJyAtZSAnL15fcHRocmVhZC9kJyAtZSAnL15fb2JzdGFjay9kJyB8CiBzZWQgLWUgJy9e X2FyZ3AvZCcgLWUgJy9eX2F1dGhlbnRpY2F0ZSQvZCcgLWUgJy9eX2Vudmlyb24kL2QnIHwKIHNl ZCAtZSAnL15fZXJybm8kL2QnIC1lICcvXl9oX2Vycm5vJC9kJyAtZSAnL15fbG9uZ2ptcCQvZCcg fApAQCAtMzksOSArNDcsNyBAQCBjYXQgPDxFT0YKICAgICB3aGljaCBhcmUgbm90IHlldCBkb2N1 bWVudGVkIGluIHRoZSBtYW51YWwuICBUaGlzIGxpc3QgaXMKICAgICBhdXRvbWF0aWNhbGx5IGNy ZWF0ZWQgYW5kIHRoZXJlZm9yZSBtaWdodCBjb250YWluIGVycm9ycy4gIFBsZWFzZQogICAgIGNo ZWNrIHRoZSBsYXRlc3QgbWFudWFsIChhdmFpbGFibGUgZnJvbSB0aGUgQ1ZTIGFyY2hpdmUpIGJl Zm9yZQotICAgIHN0YXJ0aW5nIHRvIHdvcmsuICBJdCBtaWdodCBhbHNvIGJlIGdvb2QgdG8gbGV0 IG1lIGtub3cgaW4KLSAgICBhZHZhbmFjZSBvbiB3aGljaCBmdW5jdGlvbnMgeW91IGludGVuZCB0 byB3b3JrIHRvIGF2b2lkCi0gICAgZHVwbGljYXRpb24uPC9wPgorICAgIHN0YXJ0aW5nIHRvIHdv cmsuPC9wPgogCiAgICAgPHA+QSBmZXcgY29tbWVudHM6PC9wPgogCkBAIC01MiwxNSArNTgsMjIg QEAgY2F0IDw8RU9GCiAgICAgICA8bGk+U2ltaWxhcmx5IGZvciB0aGUgTEZTIGZ1bmN0aW9ucyAo dGhvc2UgZW5kaW5nIGluIDY0KS48L2xpPgogICAgIDwvdWw+CiAKLSAgICA8cD5UaGUgZnVuY3Rp b24gc29tYm9keSBhbHJlYWR5IHZvbHVudGVlcmVkIHRvIGRvY3VtZW50IGFyZSBtYXJrZWQKLSAg ICB3aXRoIGEgcmVmZXJlbmNlIHRvIHRoZSBwZXJzb24uPC9wPgogCiAgICAgPGNlbnRlcj48dGFi bGU+CiBFT0YKIAogbj0wCi1kaWZmIC15IC0td2lkdGg9NjAgLS1zdXBwcmVzcy1jb21tb24tbGlu ZXMgRE9DVU1FTlRFRCBBVkFJTEFCTEUgfAotZXhwYW5kIHwgY3V0IC1iIDMzLSB8IHNlZCAnL15b WzpzcGFjZTpdXSokL2QnIHwKKyMgZ2V0IHRoZSBsaXN0IG9mIHVuZG9jdW1lbnRlZCBmdW5jdGlv bnMKK2dyZXAgLUZ2eCAtZiBET0NVTUVOVEVEIEFWQUlMQUJMRT4gVU5ET0NVTUVOVEVEX1dJVEhP VVRfT0ZGU0VUCisKKyMgZ2V0IHVuZG9jdW1lbnRlZCBmdW5jdGlvbnMgd2l0aCBvZmZzZXQgaW5m bworZm9yIGZ1bmMgaW4gYGNhdCBVTkRPQ1VNRU5URURfV0lUSE9VVF9PRkZTRVRgCitkbworICBn cmVwICIkZnVuYyQiIEFWQUlMQUJMRSA+PiBVTkRPQ1VNRU5URUQKK2RvbmUKKworZGlmZiAteSAt LXdpZHRoPTEyMCAtLXN1cHByZXNzLWNvbW1vbi1saW5lcyBET0NVTUVOVEVEIFVORE9DVU1FTlRF RCB8CitleHBhbmQgfCBjdXQgLWIgNjEtIHwgc2VkICcvXltbOnNwYWNlOl1dKiQvZCcgfAogd2hp bGUgcmVhZCBuYW1lOyBkbwogICBsaW5lPSIkbGluZQogPHRkPjx0dD4kbmFtZTwvdHQ+PC90ZD4i CkBAIC05NSw4ICsxMDgsMTAgQEAgY2F0IDw8RU9GCiAgICAgPC90YWJsZT48L2NlbnRlcj4KIAog ICAgIDxocj4KLSAgICA8YWRkcmVzcz48YSBocmVmPSJtYWlsdG86ZHJlcHBlckByZWRoYXQuY29t Ij5VbHJpY2ggRHJlcHBlcjwvYT48L2FkZHJlc3M+Ci1HZW5lcmF0ZWQgb24gJChkYXRlKSB3aXRo IGRvY3VtZW50ZWQuc2ggdmVyc2lvbiAkVkVSU0lPTgorICAgIEdlbmVyYXRlZCBvbiAkKGRhdGUp IHdpdGggZG9jdW1lbnRlZC5zaCB2ZXJzaW9uICRWRVJTSU9OCiAgIDwvYm9keT4KIDwvaHRtbD4K IEVPRgorCisjIGNsZWFudXAgdGhlIGZpbGVzCitybSAtcmYgVU5ET0NVTUVOVEVEX1dJVEhPVVRf T0ZGU0VUIFVORE9DVU1FTlRFRCBBVkFJTEFCTEUgRE9DVU1FTlRFRAotLSAKMi40My4wCgo= --000000000000f778e90614e54aeb--