From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Date: Tue, 6 Feb 2024 16:02:32 -0800 Message-ID: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------kf40TWkKs0Hp0Bo9JkxrEbjG" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5265"; mail-complaints-to="usenet@ciao.gmane.io" To: 68963@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Feb 07 01:04:12 2024 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 1rXVQ9-00016A-RT for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 07 Feb 2024 01:04:10 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rXVPq-0000wn-AQ; Tue, 06 Feb 2024 19:03:50 -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 1rXVPo-0000wa-Q3 for bug-gnu-emacs@gnu.org; Tue, 06 Feb 2024 19:03:48 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rXVPo-0004Rf-Hg for bug-gnu-emacs@gnu.org; Tue, 06 Feb 2024 19:03:48 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rXVQ1-0003Em-US for bug-gnu-emacs@gnu.org; Tue, 06 Feb 2024 19:04:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Feb 2024 00:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.170726418812374 (code B ref -1); Wed, 07 Feb 2024 00:04:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 7 Feb 2024 00:03:08 +0000 Original-Received: from localhost ([127.0.0.1]:55368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXVP8-0003DT-68 for submit@debbugs.gnu.org; Tue, 06 Feb 2024 19:03:08 -0500 Original-Received: from lists.gnu.org ([2001:470:142::17]:53010) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXVP4-0003Cy-OE for submit@debbugs.gnu.org; Tue, 06 Feb 2024 19:03: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 1rXVOl-0000kk-Oa for bug-gnu-emacs@gnu.org; Tue, 06 Feb 2024 19:02:44 -0500 Original-Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rXVOf-0004Mb-2n for bug-gnu-emacs@gnu.org; Tue, 06 Feb 2024 19:02:42 -0500 Original-Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-5cdbc4334edso4875006a12.3 for ; Tue, 06 Feb 2024 16:02:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707264155; x=1707868955; darn=gnu.org; h=subject:from:to:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=sQed+nERYSyH8xcNwE7loqstrEblFZoI6Rs93rZB2gk=; b=DaiMy/gQ+VmYFzGDuGn5NZbnJ8CVRoou8Irs7xS0Dl6cJ4qhMkOSoZ0w+QEPImpWvK pDNo1LyhOSvUq2IVz3R0T5qTubWeoRxBQIeTsjwlwL6gwkpvKZa3sY7yf8w3ygRdt2OI RMeQvz8172Rd190lDq5uLA2YobrIa8H0Jek/vfO7oaN/KA6aa9LuJ5OZKryyVCUXOfL3 64G3I5+X3pl4SkY3KaJusQ3vm8V1LTcZjQArXu4Uk8yV/Rw/JL3qrHd2pbE9nQx26gVV YFBUeNwFo9K71Ai5VL8PvBwLmoJD53hq2e0rwFIte9HfazDWO3qdBLXfM3OPztuBoi6I jysA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707264155; x=1707868955; h=subject:from:to:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sQed+nERYSyH8xcNwE7loqstrEblFZoI6Rs93rZB2gk=; b=D5LtmtSh9gXR2i7ymuE5ZH9gME66rYthQm3+VSBSfnuhFLUMLNufPQYH1ivjXP+Qtr 7BUBoarnfP3CYsLyyD7LoQq+aB9/hIrcKKcVQ4KdypK9uM7cT8L47hlI29iN6YX6qANR DcGETC/EPAvDSREkxyCj0b7sEVxz2SB79QiXEbtATVfbaMDsLS/5zdQEPUdJnmU/9eDc iytsT8Pxt741iclaJYoSpZjHuBeCcKxDA76h/TMNcnWYmiAhbPg7YxQBuXTeAXeqdh6y ZKl/upUzDjmHIDbHgM2eHk3GRkAhKycXFE4UKP9y1W9FqVxEckwGtmHOpYDK6l3t0dfp zqRw== X-Gm-Message-State: AOJu0YyqxLnqHqftFHI8a6cAbeillnqBV6MYxxrwIBdBfeyPVbMxVq28 4OMUCKEHQ59UWJ6OGz8d1cFo3P0BOmTKiAIdH9n9bgaygma8LNIcdbb7/p7M X-Google-Smtp-Source: AGHT+IHtt5gLOsW1125UoszV3q1CdlARHKKd3f8+6xvOy+13LrWJtvin2M3uZiyOQYOOzlGMFdmiUw== X-Received: by 2002:a17:90b:3508:b0:296:3ca5:df7b with SMTP id ls8-20020a17090b350800b002963ca5df7bmr1065662pjb.40.1707264155067; Tue, 06 Feb 2024 16:02:35 -0800 (PST) Original-Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id sm16-20020a17090b2e5000b00296aa266ffesm129267pjb.31.2024.02.06.16.02.33 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Feb 2024 16:02:34 -0800 (PST) X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::533; envelope-from=jporterbugs@gmail.com; helo=mail-pg1-x533.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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:279528 Archived-At: This is a multi-part message in MIME format. --------------kf40TWkKs0Hp0Bo9JkxrEbjG Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Currently, the Eshell manual lists all the built-in commands in one section, which can make it hard to find the commands related to the topic you care about. Here's a patch to split this into subsections of various (loosely-defined) topics. I welcome any suggestions about the division or the name of the subsections. For example, I split them into "Commands for Directories" and "Commands for Files", but an alternate scheme could be "Commands for Files and Directories" and "Commands for Changing the Current Directory". Here's how I split the commands up in the patch, so you don't have to read through a huge diff: # Commands for Directories cd, dirs, du, ls, mkdir, popd, pushd, pwd, rmdir # Commands for Files cat, cp, diff, ln, mv, rm # Commands for Searching grep, agrep, egrep, fgrep, rgrep, glimpse, info, locate, man, occur # Commands for Variables env, export, set, setq, unset # Commands for Using Other Commands ., addpath, alias, compile, jobs, kill, source, time, wait, which # Miscellaneous Commands basename, clear, clear-scrollback, date, dirname, echo, eshell-debug, exit, history, listify, make, printnl, umask, whoami --------------kf40TWkKs0Hp0Bo9JkxrEbjG Content-Type: text/plain; charset=UTF-8; name="0001-Split-Eshell-built-in-commands-documentation-into-su.patch" Content-Disposition: attachment; filename*0="0001-Split-Eshell-built-in-commands-documentation-into-su.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkZmYzOGI5MzMwNTFiOWE5YTQ5NjgxNDA5M2I1OTg0NjYyY2MyMjU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgNiBGZWIgMjAyNCAxNTo1MzoxNyAtMDgwMApTdWJqZWN0OiBbUEFU Q0hdIFNwbGl0IEVzaGVsbCBidWlsdC1pbiBjb21tYW5kcyBkb2N1bWVudGF0aW9uIGludG8g c3Vic2VjdGlvbnMKCiogZG9jL21pc2MvZXNoZWxsLnRleGkgKEJ1aWx0LWlucyk6IE1vdmUg YnVpbHQtaW4gY29tbWFuZHMgdG8uLi4KKENvbW1hbmRzIGZvciBEaXJlY3RvcmllcywgQ29t bWFuZHMgZm9yIEZpbGVzLCBDb21tYW5kcyBmb3IgU2VhcmNoaW5nKQooQ29tbWFuZHMgZm9y IFZhcmlhYmxlcywgQ29tbWFuZHMgZm9yIFVzaW5nIE90aGVyIENvbW1hbmRzKQooTWlzY2Vs bGFuZW91cyBDb21tYW5kcyk6IC4uLiB0aGVzZS4KLS0tCiBkb2MvbWlzYy9lc2hlbGwudGV4 aSB8IDkyNSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgNDg0IGluc2VydGlvbnMoKyksIDQ0MSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50ZXhp CmluZGV4IDVkM2U1YzdkYmQ2Li5jM2Q5ZWVhZTUwMyAxMDA2NDQKLS0tIGEvZG9jL21pc2Mv ZXNoZWxsLnRleGkKKysrIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKQEAgLTQ3OSw0NSArNDc5 LDE5IEBAIEJ1aWx0LWlucwogQSBmZXcgY29tbWFuZHMgYXJlIHdyYXBwZXJzIGZvciBtb3Jl IG5pY2hlIEVtYWNzIGZlYXR1cmVzLCBhbmQgY2FuIGJlCiBsb2FkZWQgYXMgcGFydCBvZiB0 aGUgZXNoZWxsLXh0cmEgbW9kdWxlLiAgQHhyZWZ7RXh0ZW5zaW9uIG1vZHVsZXN9LgogCi1A dGFibGUgQGNvZGUKLQotQGl0ZW0gLiBAdmFye2ZpbGV9IFtAdmFye2FyZ3VtZW50fV1AZG90 c3t9Ci1AY21pbmRleCAuCi1Tb3VyY2UgYW4gRXNoZWxsIHNjcmlwdCBuYW1lZCBAdmFye2Zp bGV9IGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LAotcGFzc2luZyBhbnkgQHZhcnthcmd1 bWVudHN9IHRvIHRoZSBzY3JpcHQgKEBweHJlZntTY3JpcHRzfSkuICBUaGlzIGlzCi1ub3Qg dG8gYmUgY29uZnVzZWQgd2l0aCB0aGUgY29tbWFuZCBAY29tbWFuZHtzb3VyY2V9LCB3aGlj aCBzb3VyY2VzIGEKLWZpbGUgaW4gYSBzdWJzaGVsbCBlbnZpcm9ubWVudC4KLQotQGl0ZW0g YWRkcGF0aAotQGl0ZW14IGFkZHBhdGggWy1iXSBAdmFye2RpcmVjdG9yeX1AZG90c3t9Ci1A Y21pbmRleCBhZGRwYXRoCi1BZGRzIGVhY2ggc3BlY2lmaWVkIEB2YXJ7ZGlyZWN0b3J5fSB0 byB0aGUgQGNvZGV7JFBBVEh9IGVudmlyb25tZW50Ci12YXJpYWJsZS4gIEJ5IGRlZmF1bHQs IHRoaXMgYWRkcyB0aGUgZGlyZWN0b3JpZXMgdG8gdGhlIGVuZCBvZgotQGNvZGV7JFBBVEh9 LCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5lOyBi eQotcGFzc2luZyBAY29kZXstYn0gb3IgQGNvZGV7LS1iZWdpbn0sIEVzaGVsbCB3aWxsIGlu c3RlYWQgYWRkIHRoZQotZGlyZWN0b3JpZXMgdG8gdGhlIGJlZ2lubmluZy4KLQotV2l0aCBu byBkaXJlY3RvcmllcywgcHJpbnQgdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgY3VycmVudGx5 IHN0b3JlZCBpbgotQGNvZGV7JFBBVEh9LgotCi1AaXRlbSBhbGlhcwotQGl0ZW14IGFsaWFz IEB2YXJ7bmFtZX0gW0B2YXJ7Y29tbWFuZH1dCi1AY21pbmRleCBhbGlhcwotRGVmaW5lIGFu IGFsaWFzIG5hbWVkIEB2YXJ7bmFtZX0gYW5kIGV4cGFuZGluZyB0byBAdmFye2NvbW1hbmR9 LAotYWRkaW5nIGl0IHRvIHRoZSBhbGlhc2VzIGZpbGUgKEBweHJlZntBbGlhc2VzfSkuICBJ ZiBAdmFye2NvbW1hbmR9IGlzCi1vbWl0dGVkLCBkZWxldGUgdGhlIGFsaWFzIG5hbWVkIEB2 YXJ7bmFtZX0uICBXaXRoIG5vIGFyZ3VtZW50cyBhdCBhbGwsCi1saXN0IGFsbCB0aGUgY3Vy cmVudGx5LWRlZmluZWQgYWxpYXNlcy4KLQotQGl0ZW0gYmFzZW5hbWUgQHZhcntmaWxlbmFt ZX0KLUBjbWluZGV4IGJhc2VuYW1lCi1SZXR1cm4gQHZhcntmaWxlbmFtZX0gd2l0aG91dCBp dHMgZGlyZWN0b3J5LgorQG1lbnUKKyogQ29tbWFuZHMgZm9yIERpcmVjdG9yaWVzOjoKKyog Q29tbWFuZHMgZm9yIEZpbGVzOjoKKyogQ29tbWFuZHMgZm9yIFNlYXJjaGluZzo6CisqIENv bW1hbmRzIGZvciBWYXJpYWJsZXM6OgorKiBDb21tYW5kcyBmb3IgVXNpbmcgT3RoZXIgQ29t bWFuZHM6OgorKiBNaXNjZWxsYW5lb3VzIENvbW1hbmRzOjoKKyogRGVmaW5pbmcgTmV3IEJ1 aWx0LWluIENvbW1hbmRzOjoKK0BlbmQgbWVudQogCi1AaXRlbSBjYXQgQHZhcntmaWxlfUBk b3Rze30KLUBjbWluZGV4IGNhdAotQ29uY2F0ZW5hdGUgdGhlIGNvbnRlbnRzIG9mIEB2YXJ7 ZmlsZX1zIHRvIHN0YW5kYXJkIG91dHB1dC4gIElmIGluIGEKLXBpcGVsaW5lLCBvciBpZiBh bnkgb2YgdGhlIGZpbGVzIGlzIG5vdCBhIHJlZ3VsYXIgZmlsZSwgZGlyZWN0b3J5LCBvcgot c3ltbGluaywgdGhlbiB0aGlzIGNvbW1hbmQgcmV2ZXJ0cyB0byB0aGUgc3lzdGVtJ3MgZGVm aW5pdGlvbiBvZgotQGNvbW1hbmR7Y2F0fS4KK0Bub2RlIENvbW1hbmRzIGZvciBEaXJlY3Rv cmllcworQHN1YnNlY3Rpb24gQ29tbWFuZHMgZm9yIERpcmVjdG9yaWVzCitAdGFibGUgQGNv ZGUKIAogQGl0ZW0gY2QKIEBpdGVteCBjZCBAdmFye2RpcmVjdG9yeX0KQEAgLTU1OCwxMDQg KzUzMiw2IEBAIEJ1aWx0LWlucwogQGNvZGV7ZXNoZWxsLWxpc3QtZmlsZXMtYWZ0ZXItY2R9 IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuIEBjb21tYW5ke2xzfQogaXMgY2FsbGVkIHdpdGgg YW55IHJlbWFpbmluZyBhcmd1bWVudHMgYWZ0ZXIgY2hhbmdpbmcgZGlyZWN0b3JpZXMuCiAK LUBpdGVtIGNsZWFyIFtAdmFye3Njcm9sbGJhY2t9XQotQGNtaW5kZXggY2xlYXIKLVNjcm9s bHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBFc2hlbGwgd2luZG93IG91dCBvZiBzaWdodCwgbGVh dmluZyBhCi1ibGFuayB3aW5kb3cuICBJZiBAdmFye3Njcm9sbGJhY2t9IGlzIG5vbi1AY29k ZXtuaWx9LCB0aGUgc2Nyb2xsYmFjawotY29udGVudHMgYXJlIGNsZWFyZWQgaW5zdGVhZCwg YXMgd2l0aCBAY29tbWFuZHtjbGVhci1zY3JvbGxiYWNrfS4KLQotQGl0ZW0gY2xlYXItc2Ny b2xsYmFjawotQGNtaW5kZXggY2xlYXItc2Nyb2xsYmFjawotQ2xlYXIgdGhlIHNjcm9sbGJh Y2sgY29udGVudHMgb2YgdGhlIEVzaGVsbCB3aW5kb3cuICBVbmxpa2UgdGhlCi1jb21tYW5k IEBjb21tYW5ke2NsZWFyfSwgdGhpcyBjb21tYW5kIGRlbGV0ZXMgY29udGVudCBpbiB0aGUg RXNoZWxsCi1idWZmZXIuCi0KLUBpdGVtIGNvbXBpbGUgWy1wIHwgLWldIFstbSBAdmFye21v ZGUtbmFtZX1dIEB2YXJ7Y29tbWFuZH1AZG90c3t9Ci1AY21pbmRleCBjb21waWxlCi1SdW4g YW4gZXh0ZXJuYWwgY29tbWFuZCwgc2VuZGluZyBpdHMgb3V0cHV0IHRvIGEgY29tcGlsYXRp b24gYnVmZmVyIGlmCi10aGUgY29tbWFuZCB3b3VsZCBvdXRwdXQgdG8gdGhlIHNjcmVlbiBh bmQgaXMgbm90IHBhcnQgb2YgYSBwaXBlbGluZQotb3Igc3ViY29tbWFuZC4KLQotV2l0aCB0 aGUgQGNvZGV7LXB9IG9yIEBjb2Rley0tcGxhaW59IG9wdGlvbnMsIGFsd2F5cyBzZW5kIHRo ZSBvdXRwdXQKLXRvIHRoZSBFc2hlbGwgYnVmZmVyOyBzaW1pbGFybHksIHdpdGggQGNvZGV7 LWl9IG9yCi1AY29kZXstLWludGVyYWN0aXZlfSwgYWx3YXlzIHNlbmQgdGhlIG91dHB1dCB0 byBhIGNvbXBpbGF0aW9uIGJ1ZmZlci4KLVlvdSBjYW4gYWxzbyBzZXQgdGhlIG1vZGUgb2Yg dGhlIGNvbXBpbGF0aW9uIGJ1ZmZlciB3aXRoIEBjb2Rley1tCi1AdmFye21vZGUtbmFtZX19 IG9yIEBjb2Rley0tbW9kZSBAdmFye21vZGUtbmFtZX19LgotCi1AY29tbWFuZHtjb21waWxl fSBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gZGVmaW5pbmcgYWxpYXNlcywgc28KLXRo YXQgaW50ZXJhY3RpdmVseSwgdGhlIG91dHB1dCBzaG93cyB1cCBpbiBhIGNvbXBpbGF0aW9u IGJ1ZmZlciwgYnV0Ci15b3UgY2FuIHN0aWxsIHBpcGUgdGhlIG91dHB1dCBlbHNld2hlcmUg aWYgZGVzaXJlZC4gIEZvciBleGFtcGxlLCBpZgoteW91IGhhdmUgYSBncmVwLWxpa2UgY29t bWFuZCBvbiB5b3VyIHN5c3RlbSwgeW91IG1pZ2h0IGRlZmluZSBhbiBhbGlhcwotZm9yIGl0 IGxpa2Ugc286IEBzYW1we2FsaWFzIG15Z3JlcCAnY29tcGlsZSAtLW1vZGU9Z3JlcC1tb2Rl IC0tIG15Z3JlcAotJConfS4KLQotQGl0ZW0gY3AgW0B2YXJ7b3B0aW9ufUBkb3Rze31dIEB2 YXJ7c291cmNlfSBAdmFye2Rlc3R9Ci1AaXRlbSBjcCBbQHZhcntvcHRpb259QGRvdHN7fV0g QHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KLUBjbWluZGV4IGNwCi1Db3B5 IHRoZSBmaWxlIEB2YXJ7c291cmNlfSB0byBAdmFye2Rlc3R9IG9yIEB2YXJ7c291cmNlfSBp bnRvCi1AdmFye2RpcmVjdG9yeX0uCi0KLUB2aW5kZXggZXNoZWxsLWNwLW92ZXJ3cml0ZS1m aWxlcwotQHZpbmRleCBlc2hlbGwtY3AtaW50ZXJhY3RpdmUtcXVlcnkKLUlmIEBjb2Rle2Vz aGVsbC1jcC1vdmVyd3JpdGUtZmlsZXN9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuCi1AY29t bWFuZHtjcH0gd2lsbCBvdmVyd3JpdGUgZmlsZXMgd2l0aG91dCB3YXJuaW5nLiAgSWYKLUBj b2Rle2VzaGVsbC1jcC1pbnRlcmFjdGl2ZS1xdWVyeX0gaXMgbm9uLUBjb2Rle25pbH0sIHRo ZW4KLUBjb21tYW5ke2NwfSB3aWxsIGFzayBiZWZvcmUgb3ZlcndyaXRpbmcgYW55dGhpbmcu Ci0KLUBjb21tYW5ke2NwfSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKLQotQHRh YmxlIEBhc2lzCi0KLUBpdGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hcmNoaXZlfQotRXF1aXZh bGVudCB0byBAY29kZXstLW5vLWRlcmVmZXJlbmNlIC0tcHJlc2VydmUgLS1yZWN1cnNpdmV9 LgotCi1AaXRlbSBAY29kZXstZH0sIEBjb2Rley0tbm8tZGVyZWZlcmVuY2V9Ci1Eb24ndCBk ZXJlZmVyZW5jZSBzeW1ib2xpYyBsaW5rcyB3aGVuIGNvcHlpbmc7IGluc3RlYWQsIGNvcHkg dGhlIGxpbmsKLWl0c2VsZi4KLQotQGl0ZW0gQGNvZGV7LWZ9LCBAY29kZXstLWZvcmNlfQot TmV2ZXIgcHJvbXB0IGZvciBjb25maXJtYXRpb24gYmVmb3JlIGNvcHlpbmcgYSBmaWxlLgot Ci1AaXRlbSBAY29kZXstaX0sIEBjb2Rley0taW50ZXJhY3RpdmV9Ci1Qcm9tcHQgZm9yIGNv bmZpcm1hdGlvbiBiZWZvcmUgY29weWluZyBhIGZpbGUgaWYgdGhlIHRhcmdldCBhbHJlYWR5 Ci1leGlzdHMuCi0KLUBpdGVtIEBjb2Rley1ufSwgQGNvZGV7LS1wcmV2aWV3fQotUnVuIHRo ZSBjb21tYW5kLCBidXQgZG9uJ3QgY29weSBhbnl0aGluZy4gIFRoaXMgaXMgdXNlZnVsIGlm IHlvdQotd2FudCB0byBwcmV2aWV3IHdoYXQgd291bGQgYmUgcmVtb3ZlZCB3aGVuIGNhbGxp bmcgQGNvbW1hbmR7Y3B9LgotCi1AaXRlbSBAY29kZXstcH0sIEBjb2Rley0tcHJlc2VydmV9 Ci1BdHRlbXB0IHRvIHByZXNlcnZlIGZpbGUgYXR0cmlidXRlcyB3aGVuIGNvcHlpbmcuCi0K LUBpdGVtIEBjb2Rley1yfSwgQGNvZGV7LVJ9LCBAY29kZXstLXJlY3Vyc2l2ZX0KLUNvcHkg YW55IHNwZWNpZmllZCBkaXJlY3RvcmllcyBhbmQgdGhlaXIgY29udGVudHMgcmVjdXJzaXZl bHkuCi0KLUBpdGVtIEBjb2Rley12fSwgQGNvZGV7LS12ZXJib3NlfQotUHJpbnQgdGhlIG5h bWUgb2YgZWFjaCBmaWxlIGJlZm9yZSBjb3B5aW5nIGl0LgotCi1AZW5kIHRhYmxlCi0KLUBp dGVtIGRhdGUgW0B2YXJ7c3BlY2lmaWVkLXRpbWV9IFtAdmFye3pvbmV9XV0KLUBjbWluZGV4 IGRhdGUKLVByaW50IHRoZSBjdXJyZW50IGxvY2FsIHRpbWUgYXMgYSBodW1hbi1yZWFkYWJs ZSBzdHJpbmcuICBUaGlzIGNvbW1hbmQKLWlzIGFuIGFsaWFzIHRvIHRoZSBFbWFjcyBMaXNw IGZ1bmN0aW9uIEBjb2Rle2N1cnJlbnQtdGltZS1zdHJpbmd9Ci0oQHB4cmVme1RpbWUgb2Yg RGF5LCwsIGVsaXNwLCBHTlUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfSkuCi0KLUBp dGVtIGRpZmYgW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7b2xkfSBAdmFye25ld30KLUBj bWluZGV4IGRpZmYKLUNvbXBhcmUgdGhlIGZpbGVzIEB2YXJ7b2xkfSBhbmQgQHZhcntuZXd9 IHVzaW5nIEVtYWNzJ3MgaW50ZXJuYWwKLUBjb2Rle2RpZmZ9IChub3QgdG8gYmUgY29uZnVz ZWQgd2l0aCBAY29kZXtlZGlmZn0pLiAgQHhyZWZ7Q29tcGFyaW5nCi1GaWxlcywgLCAsIGVt YWNzLCBUaGUgR05VIEVtYWNzIE1hbnVhbH0uCi0KLUB2aW5kZXggZXNoZWxsLXBsYWluLWRp ZmYtYmVoYXZpb3IKLUlmIEBjb2Rle2VzaGVsbC1wbGFpbi1kaWZmLWJlaGF2aW9yfSBpcyBu b24tQGNvZGV7bmlsfSwgdGhlbiB0aGlzCi1jb21tYW5kIGRvZXMgbm90IHVzZSBFbWFjcydz IGludGVybmFsIEBjb2Rle2RpZmZ9LiAgVGhpcyBpcyB0aGUgc2FtZQotYXMgdXNpbmcgQHNh bXB7YWxpYXMgZGlmZiAnKmRpZmYgJEBAKid9LgotCi1AaXRlbSBkaXJuYW1lIEB2YXJ7Zmls ZW5hbWV9Ci1AY21pbmRleCBkaXJuYW1lCi1SZXR1cm4gdGhlIGRpcmVjdG9yeSBjb21wb25l bnQgb2YgQHZhcntmaWxlbmFtZX0uCi0KIEBpdGVtIGRpcnMKIEBjbWluZGV4IGRpcnMKIFBy aW50cyB0aGUgZGlyZWN0b3J5IHN0YWNrLiAgRGlyZWN0b3JpZXMgY2FuIGJlIGFkZGVkIG9y IHJlbW92ZWQgZnJvbQpAQCAtNzExLDIzNSArNTg3LDU4IEBAIEJ1aWx0LWlucwogCiBAZW5k IHRhYmxlCiAKLUBpdGVtIGVjaG8gWy1uIHwgLU5dIFtAdmFye2FyZ31dQGRvdHN7fQotQGNt aW5kZXggZWNobwotUHJpbnRzIHRoZSB2YWx1ZSBvZiBlYWNoIEB2YXJ7YXJnfS4gIEJ5IGRl ZmF1bHQsIHRoaXMgcHJpbnRzIGluIGEKLUxpc3AtZnJpZW5kbHkgZmFzaGlvbiAoc28gdGhh dCB0aGUgdmFsdWUgaXMgdXNlZnVsIHRvIGEgTGlzcCBjb21tYW5kCi11c2luZyB0aGUgcmVz dWx0IG9mIEBjb21tYW5ke2VjaG99IGFzIGFuIGFyZ3VtZW50KS4gIElmIGEgc2luZ2xlCi1h cmd1bWVudCBpcyBwYXNzZWQsIEBjb21tYW5ke2VjaG99IHByaW50cyB0aGF0OyBpZiBtdWx0 aXBsZSBhcmd1bWVudHMKLWFyZSBwYXNzZWQsIGl0IHByaW50cyBhIGxpc3Qgb2YgYWxsIHRo ZSBhcmd1bWVudHM7IG90aGVyd2lzZSwgaXQKLXByaW50cyB0aGUgZW1wdHkgc3RyaW5nLgot Ci1AdmluZGV4IGVzaGVsbC1wbGFpbi1lY2hvLWJlaGF2aW9yCi1JZiBAY29kZXtlc2hlbGwt cGxhaW4tZWNoby1iZWhhdmlvcn0gaXMgbm9uLUBjb2Rle25pbH0sIEBjb21tYW5ke2VjaG99 Ci13aWxsIHRyeSB0byBiZWhhdmUgbW9yZSBsaWtlIGEgcGxhaW4gc2hlbGwncyBAY29tbWFu ZHtlY2hvfSwgcHJpbnRpbmcKLWVhY2ggYXJndW1lbnQgYXMgYSBzdHJpbmcsIHNlcGFyYXRl ZCBieSBhIHNwYWNlLgotCi1Zb3UgY2FuIGNvbnRyb2wgd2hldGhlciBAY29tbWFuZHtlY2hv fSBvdXRwdXRzIGEgdHJhaWxpbmcgbmV3bGluZQotdXNpbmcgQGNvZGV7LW59IHRvIGRpc2Fi bGUgdGhlIHRyYWlsaW5nIG5ld2xpbmUgKHRoZSBkZWZhdWx0IGJlaGF2aW9yKQotb3IgQGNv ZGV7LU59IHRvIGVuYWJsZSBpdCAodGhlIGRlZmF1bHQgd2hlbgotQGNvZGV7ZXNoZWxsLXBs YWluLWVjaG8tYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtuaWx9KS4KK0BpdGVtIGxzIFtAdmFy e29wdGlvbn1dQGRvdHN7fSBbQHZhcntmaWxlfV1AZG90c3t9CitAY21pbmRleCBscworTGlz dCBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIEB2YXJ7ZmlsZX0sIGluY2x1ZGluZyB0aGUgY29u dGVudHMgb2YgYW55CitzcGVjaWZpZWQgZGlyZWN0b3JpZXMuICBJZiBAdmFye2ZpbGV9IGlz IHVuc3BlY2lmaWVkLCBsaXN0IHRoZQorY29udGVudHMgb2YgdGhlIGN1cnJlbnQgZGlyZWN0 b3J5LgogCi1AaXRlbSBlbnYgW0B2YXJ7dmFyfT1AdmFye3ZhbHVlfV1AZG90c3t9IFtAdmFy e2NvbW1hbmR9XUBkb3Rze30KLUBjbWluZGV4IGVudgotV2l0aCBubyBhcmd1bWVudHMsIHBy aW50IHRoZSBjdXJyZW50IGVudmlyb25tZW50IHZhcmlhYmxlcy4gIElmIHlvdQotcGFzcyBh cmd1bWVudHMgdG8gdGhpcyBjb21tYW5kLCB0aGVuIEBjb21tYW5ke2Vudn0gd2lsbCBleGVj dXRlIHRoZQotYXJndW1lbnRzIGFzIGEgY29tbWFuZC4gIElmIHlvdSBwYXNzIGFueSBpbml0 aWFsIGFyZ3VtZW50cyBvZiB0aGUgZm9ybQotQHNhbXB7QHZhcnt2YXJ9PUB2YXJ7dmFsdWV9 fSwgQGNvbW1hbmR7ZW52fSB3aWxsIGZpcnN0IHNldCBAdmFye3Zhcn0KLXRvIEB2YXJ7dmFs dWV9IGJlZm9yZSBydW5uaW5nIHRoZSBjb21tYW5kLgorQHZpbmRleCBlc2hlbGwtbHMtaW5p dGlhbC1hcmdzCitUaGUgdXNlciBvcHRpb24gQGNvZGV7ZXNoZWxsLWxzLWluaXRpYWwtYXJn c30gY29udGFpbnMgYSBsaXN0IG9mCithcmd1bWVudHMgdG8gaW5jbHVkZSB3aXRoIGFueSBj YWxsIHRvIEBjb21tYW5ke2xzfS4gIEZvciBleGFtcGxlLCB5b3UKK2NhbiBpbmNsdWRlIHRo ZSBvcHRpb24gQG9wdGlvbnstaH0gdG8gYWx3YXlzIHVzZSBhIG1vcmUgaHVtYW4tcmVhZGFi bGUKK2Zvcm1hdC4KIAotQGl0ZW0gZXNoZWxsLWRlYnVnIFtlcnJvciB8IGZvcm0gfCBwcm9j ZXNzXUBkb3Rze30KLUBjbWluZGV4IGVzaGVsbC1kZWJ1ZwotVG9nZ2xlIGRlYnVnZ2luZyBp bmZvcm1hdGlvbiBmb3IgRXNoZWxsIGl0c2VsZi4gIFlvdSBjYW4gcGFzcyB0aGlzCi1jb21t YW5kIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOgorQHZpbmRleCBl c2hlbGwtbHMtdXNlLWNvbG9ycworSWYgQGNvZGV7ZXNoZWxsLWxzLXVzZS1jb2xvcnN9IGlz IG5vbi1AY29kZXtuaWx9LCB0aGUgY29udGVudHMgb2YgYQorZGlyZWN0b3J5IGlzIGNvbG9y LWNvZGVkIGFjY29yZGluZyB0byBmaWxlIHR5cGUgYW5kIHN0YXR1cy4gIFRoZXNlCitjb2xv cnMgYW5kIHRoZSByZWdleHBzIHVzZWQgdG8gaWRlbnRpZnkgdGhlaXIgY29ycmVzcG9uZGlu ZyBmaWxlcyBjYW4KK2JlIGN1c3RvbWl6ZWQgdmlhIEB3e0BrYmR7TS14IGN1c3RvbWl6ZS1n cm91cCBAa2V5e1JFVH0gZXNoZWxsLWxzCitAa2V5e1JFVH19fS4KIAotQGl0ZW1pemUgQGJ1 bGxldAorQGNvbW1hbmR7bHN9IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKIAot QGl0ZW0KLUBjb2Rle2Vycm9yfSwgdG8gZW5hYmxlL2Rpc2FibGUgRXNoZWxsIHRyYXBwaW5n IGVycm9ycyB3aGVuCi1ldmFsdWF0aW5nIGNvbW1hbmRzOworQHRhYmxlIEBhc2lzCiAKLUBp dGVtCi1AY29kZXtmb3JtfSwgdG8gc2hvdy9oaWRlIEVzaGVsbCBjb21tYW5kIGZvcm0gbWFu aXB1bGF0aW9uIGluIHRoZQotYnVmZmVyIEBjb2Rleyplc2hlbGwgbGFzdCBjbWQqfTsgb3IK K0BpdGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hbGx9CitMaXN0IGFsbCBmaWxlcywgaW5jbHVk aW5nIG9uZXMgc3RhcnRpbmcgd2l0aCBAc2FtcHsufS4KIAotQGl0ZW0KLUBjb2Rle3Byb2Nl c3N9LCB0byBzaG93L2hpZGUgZXh0ZXJuYWwgcHJvY2VzcyBldmVudHMgaW4gdGhlIGJ1ZmZl cgotQGNvZGV7KmVzaGVsbCBsYXN0IGNtZCp9LgorQGl0ZW0gQGNvZGV7LUF9LCBAY29kZXst LWFsbW9zdC1hbGx9CitMaWtlIEBjb2Rley0tYWxsfSwgYnV0IGRvbid0IGxpc3QgdGhlIGN1 cnJlbnQgZGlyZWN0b3J5IChAZmlsZXsufSkgb3IKK3RoZSBwYXJlbnQgZGlyZWN0b3J5IChA ZmlsZXsuLn0pLgogCi1AZW5kIGl0ZW1pemUKK0BpdGVtIEBjb2Rley1jfSwgQGNvZGV7LS1i eS1jdGltZX0KK1NvcnQgZmlsZXMgYnkgbGFzdCBzdGF0dXMgY2hhbmdlIHRpbWUsIHdpdGgg bmV3ZXN0IGZpbGVzIGZpcnN0LgogCi1AaXRlbSBleGl0Ci1AY21pbmRleCBleGl0Ci1Admlu ZGV4IGVzaGVsbC1raWxsLW9uLWV4aXQKLUV4aXQgRXNoZWxsIGFuZCBzYXZlIHRoZSBoaXN0 b3J5LiAgQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGtpbGxzIHRoZQotRXNoZWxsIGJ1ZmZl ciwgYnV0IGlmIEBjb2Rle2VzaGVsbC1raWxsLW9uLWV4aXR9IGlzIEBjb2Rle25pbH0sIHRo ZW4KLXRoZSBidWZmZXIgaXMgbWVyZWx5IGJ1cmllZCBpbnN0ZWFkLgorQGl0ZW0gQGNvZGV7 LUN9CitMaXN0IGVudHJpZXMgYnkgY29sdW1ucy4KIAotQGl0ZW0gZXhwb3J0IFtAdmFye25h bWV9PUB2YXJ7dmFsdWV9XUBkb3Rze30KLUBjbWluZGV4IGV4cG9ydAotU2V0IGVudmlyb25t ZW50IHZhcmlhYmxlcyB1c2luZyBpbnB1dCBsaWtlIEJhc2gncyBAY29tbWFuZHtleHBvcnR9 LCBhcwotaW4gQHNhbXB7ZXhwb3J0IEB2YXJ7dmFyMX09QHZhcnt2YWwxfSBAdmFye3ZhcjJ9 PUB2YXJ7dmFsMn0gQGRvdHN7fX0uCitAaXRlbSBAY29kZXstZH0sIEBjb2Rley0tZGlyZWN0 b3J5fQorTGlzdCBkaXJlY3RvcnkgZW50cmllcyBpbnN0ZWFkIG9mIHRoZWlyIGNvbnRlbnRz LgogCi1AaXRlbSBncmVwIFtAdmFye2FyZ31dQGRvdHN7fQotQGNtaW5kZXggZ3JlcAotQGl0 ZW14IGFncmVwIFtAdmFye2FyZ31dQGRvdHN7fQotQGNtaW5kZXggYWdyZXAKLUBpdGVteCBl Z3JlcCBbQHZhcnthcmd9XUBkb3Rze30KLUBjbWluZGV4IGVncmVwCi1AaXRlbXggZmdyZXAg W0B2YXJ7YXJnfV1AZG90c3t9Ci1AY21pbmRleCBmZ3JlcAotQGl0ZW14IHJncmVwIFtAdmFy e2FyZ31dQGRvdHN7fQotQGNtaW5kZXggcmdyZXAKLUBpdGVteCBnbGltcHNlIFtAdmFye2Fy Z31dQGRvdHN7fQotQGNtaW5kZXggZ2xpbXBzZQotVGhlIEBjb21tYW5ke2dyZXB9IGNvbW1h bmRzIGFyZSBjb21wYXRpYmxlIHdpdGggR05VIEBjb21tYW5ke2dyZXB9LAotYnV0IG9wZW4g YSBjb21waWxhdGlvbiBidWZmZXIgaW4gQGNvZGV7Z3JlcC1tb2RlfSBpbnN0ZWFkLgotQHhy ZWZ7R3JlcCBTZWFyY2hpbmcsICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9Lgor QGl0ZW0gQGNvZGV7LWh9LCBAY29kZXstLWh1bWFuLXJlYWRhYmxlfQorUHJpbnQgc2l6ZXMg aW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCB3aXRoIGJpbmFyeSBwcmVmaXhlcyAoc28gMSBL QiBpcworMTAyNCBieXRlcykuCiAKLUB2aW5kZXggZXNoZWxsLXBsYWluLWdyZXAtYmVoYXZp b3IKLUlmIEBjb2Rle2VzaGVsbC1wbGFpbi1ncmVwLWJlaGF2aW9yfSBpcyBub24tQGNvZGV7 bmlsfSwgdGhlbiB0aGVzZQotY29tbWFuZHMgZG8gbm90IHVzZSBvcGVuIGEgY29tcGlsYXRp b24gYnVmZmVyLCBpbnN0ZWFkIHByaW50aW5nIG91dHB1dAotdG8gRXNoZWxsJ3MgYnVmZmVy LiAgVGhpcyBpcyB0aGUgc2FtZSBhcyB1c2luZyBAc2FtcHthbGlhcyBncmVwICcqZ3JlcAot JEBAKid9LCB0aG91Z2ggdGhpcyBzZXR0aW5nIGFwcGxpZXMgdG8gYWxsIG9mIHRoZSBidWls dC1pbiBjb21tYW5kcwotZm9yIHdoaWNoIHlvdSB3b3VsZCBuZWVkIHRvIGNyZWF0ZSBhIHNl cGFyYXRlIGFsaWFzLgorQGl0ZW0gQGNvZGV7LUh9LCBAY29kZXstLXNpfQorUHJpbnQgc2l6 ZXMgaW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCB3aXRoIGRlY2ltYWwgcHJlZml4ZXMgKHNv IDEgS0IKK2lzIDEwMDAgYnl0ZXMpLgogCi1AaXRlbSBoaXN0b3J5IFtAdmFye259XQotQGl0 ZW14IGhpc3RvcnkgWy1hcnddIFtAdmFye2ZpbGVuYW1lfV0KLUBjbWluZGV4IGhpc3RvcnkK LVByaW50cyBFc2hlbGwncyBpbnB1dCBoaXN0b3J5LiAgV2l0aCBhIG51bWVyaWMgYXJndW1l bnQgQHZhcntufSwgdGhpcwotY29tbWFuZCBwcmludHMgdGhlIEB2YXJ7bn0gbW9zdCByZWNl bnQgaXRlbXMgaW4gdGhlIGhpc3RvcnkuCi1BbHRlcm5hdGVseSwgeW91IGNhbiBzcGVjaWZ5 IHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKK0BpdGVtIEBjb2Rley1JQHZhcntwYXR0ZXJufX0s IEBjb2Rley0taWdub3JlPUB2YXJ7cGF0dGVybn19CitEb24ndCBsaXN0IGRpcmVjdG9yeSBl bnRyaWVzIG1hdGNoaW5nIEB2YXJ7cGF0dGVybn0uCiAKLUB0YWJsZSBAYXNpcwotCi1AaXRl bSBAY29kZXstYX0sIEBjb2Rley0tYXBwZW5kfQotQXBwZW5kIG5ldyBoaXN0b3J5IGl0ZW1z IHRvIHRoZSBoaXN0b3J5IGZpbGUuCi0KLUBpdGVtIEBjb2Rley1yfSwgQGNvZGV7LS1yZWFk fQotUmVhZCBoaXN0b3J5IGl0ZW1zIGZyb20gdGhlIGhpc3RvcnkgZmlsZSBhbmQgYXBwZW5k IHRoZW0gdG8gdGhlCi1jdXJyZW50IHNoZWxsJ3MgaGlzdG9yeS4KLQotQGl0ZW0gQGNvZGV7 LXd9LCBAY29kZXstLXdyaXRlfQotV3JpdGUgdGhlIGN1cnJlbnQgaGlzdG9yeSBsaXN0IHRv IHRoZSBoaXN0b3J5IGZpbGUuCi0KLUBlbmQgdGFibGUKLQotQGl0ZW0gaW5mbyBbQHZhcntt YW51YWx9IFtAdmFye2l0ZW19XUBkb3Rze31dCi1AY21pbmRleCBpbmZvCi1Ccm93c2UgdGhl IGF2YWlsYWJsZSBJbmZvIGRvY3VtZW50YXRpb24uICBXaXRoIG5vIGFyZ3VtZW50cywgYnJv d3NlCi10aGUgdG9wLWxldmVsIG1lbnUuICBPdGhlcndpc2UsIHNob3cgdGhlIG1hbnVhbCBm b3IgQHZhcnttYW51YWx9LAotc2VsZWN0aW5nIHRoZSBtZW51IGVudHJ5IGZvciBAdmFye2l0 ZW19LgotCi1UaGlzIGNvbW1hbmQgaXMgdGhlIHNhbWUgYXMgdGhlIGV4dGVybmFsIEBjb21t YW5ke2luZm99IGNvbW1hbmQsIGJ1dAotdXNlcyBFbWFjcydzIGludGVybmFsIEluZm8gcmVh ZGVyLiAgQHhyZWZ7TWlzYyBIZWxwLCAsICwgZW1hY3MsIFRoZQotR05VIEVtYWNzIE1hbnVh bH0uCi0KLUBpdGVtIGpvYnMKLUBjbWluZGV4IGpvYnMKLUxpc3Qgc3VicHJvY2Vzc2VzIG9m IHRoZSBFbWFjcyBwcm9jZXNzLCBpZiBhbnksIHVzaW5nIHRoZSBmdW5jdGlvbgotQGNvZGV7 bGlzdC1wcm9jZXNzZXN9LgotCi1AaXRlbSBraWxsIFstQHZhcntzaWduYWx9XSBbQHZhcntw aWR9IHwgQHZhcntwcm9jZXNzfV0KLUBjbWluZGV4IGtpbGwKLUtpbGwgcHJvY2Vzc2VzLiAg VGFrZXMgYSBQSUQgb3IgYSBwcm9jZXNzIG9iamVjdCBhbmQgYW4gb3B0aW9uYWwKLUB2YXJ7 c2lnbmFsfSBzcGVjaWZpZXIgd2hpY2ggY2FuIGVpdGhlciBiZSBhIG51bWJlciBvciBhIHNp Z25hbCBuYW1lLgotCi1AaXRlbSBsaXN0aWZ5IFtAdmFye2FyZ31dQGRvdHN7fQotQGNtaW5k ZXggbGlzdGlmeQotUmV0dXJuIHRoZSBhcmd1bWVudHMgYXMgYSBzaW5nbGUgbGlzdC4gIFdp dGggYSBzaW5nbGUgYXJndW1lbnQsIHJldHVybgotaXQgYXMtaXMgaWYgaXQncyBhbHJlYWR5 IGEgbGlzdCwgb3Igb3RoZXJ3aXNlIHdyYXAgaXQgaW4gYSBsaXN0LiAgV2l0aAotbXVsdGlw bGUgYXJndW1lbnRzLCByZXR1cm4gYSBsaXN0IG9mIGFsbCBvZiB0aGVtLgotCi1AaXRlbSBs biBbQHZhcntvcHRpb259XUBkb3Rze30gQHZhcnt0YXJnZXR9IFtAdmFye2xpbmstbmFtZX1d Ci1AaXRlbXggbG4gW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7dGFyZ2V0fUBkb3Rze30g QHZhcntkaXJlY3Rvcnl9Ci1AY21pbmRleCBsbgotQ3JlYXRlIGEgbGluayB0byB0aGUgc3Bl Y2lmaWVkIEB2YXJ7dGFyZ2V0fSBuYW1lZCBAdmFye2xpbmstbmFtZX0gb3IKLWNyZWF0ZSBs aW5rcyB0byBtdWx0aXBsZSBAdmFye3RhcmdldHN9IGluIEB2YXJ7ZGlyZWN0b3J5fS4KLQot QHZpbmRleCBlc2hlbGwtbG4tb3ZlcndyaXRlLWZpbGVzCi1AdmluZGV4IGVzaGVsbC1sbi1p bnRlcmFjdGl2ZS1xdWVyeQotSWYgQGNvZGV7ZXNoZWxsLWxuLW92ZXJ3cml0ZS1maWxlc30g aXMgbm9uLUBjb2Rle25pbH0sIEBjb21tYW5ke2xufQotd2lsbCBvdmVyd3JpdGUgZmlsZXMg d2l0aG91dCB3YXJuaW5nLiAgSWYKLUBjb2Rle2VzaGVsbC1sbi1pbnRlcmFjdGl2ZS1xdWVy eX0gaXMgbm9uLUBjb2Rle25pbH0sIHRoZW4KLUBjb21tYW5ke2xufSB3aWxsIGFzayBiZWZv cmUgb3ZlcndyaXRpbmcgZmlsZXMuCi0KLUBjb21tYW5ke2xufSBhY2NlcHRzIHRoZSBmb2xs b3dpbmcgb3B0aW9uczoKLQotQHRhYmxlIEBhc2lzCi0KLUBpdGVtIEBjb2Rley1mfSwgQGNv ZGV7LS1mb3JjZX0KLU5ldmVyIHByb21wdCBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBsaW5r aW5nIGEgdGFyZ2V0LgotCi1AaXRlbSBAY29kZXstaX0sIEBjb2Rley0taW50ZXJhY3RpdmV9 Ci1Qcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgbGlua2luZyB0byBhbiBpdGVtIGlm IHRoZSBzb3VyY2UKLWFscmVhZHkgZXhpc3RzLgotCi1AaXRlbSBAY29kZXstbn0sIEBjb2Rl ey0tcHJldmlld30KLVJ1biB0aGUgY29tbWFuZCwgYnV0IGRvbid0IG1vdmUgYW55dGhpbmcu ICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UKLXdhbnQgdG8gcHJldmlldyB3aGF0IHdvdWxkIGJl IGxpbmtlZCB3aGVuIGNhbGxpbmcgQGNvbW1hbmR7bG59LgotCi1AaXRlbSBAY29kZXstc30s IEBjb2Rley0tc3ltYm9saWN9Ci1NYWtlIHN5bWJvbGljIGxpbmtzIGluc3RlYWQgb2YgaGFy ZCBsaW5rcy4KLQotQGl0ZW0gQGNvZGV7LXZ9LCBAY29kZXstLXZlcmJvc2V9Ci1QcmludCB0 aGUgbmFtZSBvZiBlYWNoIGZpbGUgYmVmb3JlIGxpbmtpbmcgaXQuCi0KLUBlbmQgdGFibGUK LQotQGl0ZW0gbG9jYXRlIEB2YXJ7YXJnfUBkb3Rze30KLUBjbWluZGV4IGxvY2F0ZQotQWxp YXMgdG8gRW1hY3MncyBAY29kZXtsb2NhdGV9IGZ1bmN0aW9uLCB3aGljaCBzaW1wbHkgcnVu cyB0aGUgZXh0ZXJuYWwKLUBjb21tYW5ke2xvY2F0ZX0gY29tbWFuZCBhbmQgcGFyc2VzIHRo ZSByZXN1bHRzLgotQHhyZWZ7RGlyZWQgYW5kIEZpbmQsICwgLCBlbWFjcywgVGhlIEdOVSBF bWFjcyBNYW51YWx9LgotCi1AdmluZGV4IGVzaGVsbC1wbGFpbi1sb2NhdGUtYmVoYXZpb3IK LUlmIEBjb2Rle2VzaGVsbC1wbGFpbi1sb2NhdGUtYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtu aWx9LCB0aGVuIEVtYWNzJ3MKLWludGVybmFsIEBjb2Rle2xvY2F0ZX0gaXMgbm90IHVzZWQu ICBUaGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nCi1Ac2FtcHthbGlhcyBsb2NhdGUgJypsb2Nh dGUgJEBAKid9LgotCi1AaXRlbSBscyBbQHZhcntvcHRpb259XUBkb3Rze30gW0B2YXJ7Zmls ZX1dQGRvdHN7fQotQGNtaW5kZXggbHMKLUxpc3QgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBA dmFye2ZpbGV9LCBpbmNsdWRpbmcgdGhlIGNvbnRlbnRzIG9mIGFueQotc3BlY2lmaWVkIGRp cmVjdG9yaWVzLiAgSWYgQHZhcntmaWxlfSBpcyB1bnNwZWNpZmllZCwgbGlzdCB0aGUKLWNv bnRlbnRzIG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KLQotQHZpbmRleCBlc2hlbGwtbHMt aW5pdGlhbC1hcmdzCi1UaGUgdXNlciBvcHRpb24gQGNvZGV7ZXNoZWxsLWxzLWluaXRpYWwt YXJnc30gY29udGFpbnMgYSBsaXN0IG9mCi1hcmd1bWVudHMgdG8gaW5jbHVkZSB3aXRoIGFu eSBjYWxsIHRvIEBjb21tYW5ke2xzfS4gIEZvciBleGFtcGxlLCB5b3UKLWNhbiBpbmNsdWRl IHRoZSBvcHRpb24gQG9wdGlvbnstaH0gdG8gYWx3YXlzIHVzZSBhIG1vcmUgaHVtYW4tcmVh ZGFibGUKLWZvcm1hdC4KLQotQHZpbmRleCBlc2hlbGwtbHMtdXNlLWNvbG9ycwotSWYgQGNv ZGV7ZXNoZWxsLWxzLXVzZS1jb2xvcnN9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGUgY29udGVu dHMgb2YgYQotZGlyZWN0b3J5IGlzIGNvbG9yLWNvZGVkIGFjY29yZGluZyB0byBmaWxlIHR5 cGUgYW5kIHN0YXR1cy4gIFRoZXNlCi1jb2xvcnMgYW5kIHRoZSByZWdleHBzIHVzZWQgdG8g aWRlbnRpZnkgdGhlaXIgY29ycmVzcG9uZGluZyBmaWxlcyBjYW4KLWJlIGN1c3RvbWl6ZWQg dmlhIEB3e0BrYmR7TS14IGN1c3RvbWl6ZS1ncm91cCBAa2V5e1JFVH0gZXNoZWxsLWxzCi1A a2V5e1JFVH19fS4KLQotQGNvbW1hbmR7bHN9IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgb3B0 aW9uczoKLQotQHRhYmxlIEBhc2lzCi0KLUBpdGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hbGx9 Ci1MaXN0IGFsbCBmaWxlcywgaW5jbHVkaW5nIG9uZXMgc3RhcnRpbmcgd2l0aCBAc2FtcHsu fS4KLQotQGl0ZW0gQGNvZGV7LUF9LCBAY29kZXstLWFsbW9zdC1hbGx9Ci1MaWtlIEBjb2Rl ey0tYWxsfSwgYnV0IGRvbid0IGxpc3QgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IChAZmlsZXsu fSkgb3IKLXRoZSBwYXJlbnQgZGlyZWN0b3J5IChAZmlsZXsuLn0pLgotCi1AaXRlbSBAY29k ZXstY30sIEBjb2Rley0tYnktY3RpbWV9Ci1Tb3J0IGZpbGVzIGJ5IGxhc3Qgc3RhdHVzIGNo YW5nZSB0aW1lLCB3aXRoIG5ld2VzdCBmaWxlcyBmaXJzdC4KLQotQGl0ZW0gQGNvZGV7LUN9 Ci1MaXN0IGVudHJpZXMgYnkgY29sdW1ucy4KLQotQGl0ZW0gQGNvZGV7LWR9LCBAY29kZXst LWRpcmVjdG9yeX0KLUxpc3QgZGlyZWN0b3J5IGVudHJpZXMgaW5zdGVhZCBvZiB0aGVpciBj b250ZW50cy4KLQotQGl0ZW0gQGNvZGV7LWh9LCBAY29kZXstLWh1bWFuLXJlYWRhYmxlfQot UHJpbnQgc2l6ZXMgaW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCB3aXRoIGJpbmFyeSBwcmVm aXhlcyAoc28gMSBLQiBpcwotMTAyNCBieXRlcykuCi0KLUBpdGVtIEBjb2Rley1IfSwgQGNv ZGV7LS1zaX0KLVByaW50IHNpemVzIGluIGh1bWFuLXJlYWRhYmxlIGZvcm1hdCwgd2l0aCBk ZWNpbWFsIHByZWZpeGVzIChzbyAxIEtCCi1pcyAxMDAwIGJ5dGVzKS4KLQotQGl0ZW0gQGNv ZGV7LUlAdmFye3BhdHRlcm59fSwgQGNvZGV7LS1pZ25vcmU9QHZhcntwYXR0ZXJufX0KLURv bid0IGxpc3QgZGlyZWN0b3J5IGVudHJpZXMgbWF0Y2hpbmcgQHZhcntwYXR0ZXJufS4KLQot QGl0ZW0gQGNvZGV7LWt9LCBAY29kZXstLWtpbG9ieXRlc30KLVByaW50IHNpemVzIGFzIDEw MjQtYnl0ZSBraWxvYnl0ZXMuCitAaXRlbSBAY29kZXsta30sIEBjb2Rley0ta2lsb2J5dGVz fQorUHJpbnQgc2l6ZXMgYXMgMTAyNC1ieXRlIGtpbG9ieXRlcy4KIAogQHZpbmRleCBlc2hl bGwtbHMtZGF0ZS1mb3JtYXQKIEBpdGVtIEBjb2Rley1sfQpAQCAtOTkwLDYwICs2ODksMTEg QEAgQnVpbHQtaW5zCiAKIEBlbmQgdGFibGUKIAotQGl0ZW0gbWFrZSBbQHZhcnthcmd9XUBk b3Rze30KLUBjbWluZGV4IG1ha2UKLVJ1biBAY29tbWFuZHttYWtlfSB0aHJvdWdoIEBjb2Rl e2NvbXBpbGV9IHdoZW4gcnVuIGFzeW5jaHJvbm91c2x5Ci0oZS5nLiwgQHNhbXB7bWFrZSAm fSkuICBAeHJlZntDb21waWxhdGlvbiwgLCAsIGVtYWNzLCBUaGUgR05VIEVtYWNzCi1NYW51 YWx9LiAgT3RoZXJ3aXNlIGNhbGwgdGhlIGV4dGVybmFsIEBjb21tYW5ke21ha2V9IGNvbW1h bmQuCi0KLUBpdGVtIG1hbiBbQHZhcnthcmd9XUBkb3Rze30KLUBjbWluZGV4IG1hbgotRGlz cGxheSBNYW4gcGFnZXMgdXNpbmcgdGhlIEVtYWNzIEBjb2Rle21hbn0gY29tbWFuZC4KLUB4 cmVme01hbiBQYWdlLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MgTWFudWFsfS4KLQogQGl0 ZW0gbWtkaXIgWy1wXSBAdmFye2RpcmVjdG9yeX1AZG90c3t9CiBAY21pbmRleCBta2Rpcgog TWFrZSBuZXcgZGlyZWN0b3JpZXMuICBXaXRoIEBjb2Rley1wfSBvciBAY29kZXstLXBhcmVu dHN9LAogYXV0b21hdGljYWxseSBtYWtlIGFueSBuZWNlc3NhcnkgcGFyZW50IGRpcmVjdG9y aWVzIGFzIHdlbGwuCiAKLUBpdGVtIG12IFtAdmFye29wdGlvbn1dQGRvdHN7fSBAdmFye3Nv dXJjZX0gQHZhcntkZXN0fQotQGl0ZW14IG12IFtAdmFye29wdGlvbn1dQGRvdHN7fSBAdmFy e3NvdXJjZX1AZG90c3t9IEB2YXJ7ZGlyZWN0b3J5fQotQGNtaW5kZXggbXYKLVJlbmFtZSB0 aGUgZmlsZSBAdmFye3NvdXJjZX0gdG8gQHZhcntkZXN0fSBvciBtb3ZlIEB2YXJ7c291cmNl fSBpbnRvCi1AdmFye2RpcmVjdG9yeX0uCi0KLUB2aW5kZXggZXNoZWxsLW12LW92ZXJ3cml0 ZS1maWxlcwotQHZpbmRleCBlc2hlbGwtbXYtaW50ZXJhY3RpdmUtcXVlcnkKLUlmIEBjb2Rl e2VzaGVsbC1tdi1vdmVyd3JpdGUtZmlsZXN9IGlzIG5vbi1AY29kZXtuaWx9LCBAY29tbWFu ZHttdn0KLXdpbGwgb3ZlcndyaXRlIGZpbGVzIHdpdGhvdXQgd2FybmluZy4gIElmCi1AY29k ZXtlc2hlbGwtbXYtaW50ZXJhY3RpdmUtcXVlcnl9IGlzIG5vbi1AY29kZXtuaWx9LCBAY29t bWFuZHttdn0KLXdpbGwgcHJvbXB0IGJlZm9yZSBvdmVyd3JpdGluZyBhbnl0aGluZy4KLQot QGNvbW1hbmR7bXZ9IGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgotCi1AdGFibGUg QGFzaXMKLQotQGl0ZW0gQGNvZGV7LWZ9LCBAY29kZXstLWZvcmNlfQotTmV2ZXIgcHJvbXB0 IGZvciBjb25maXJtYXRpb24gYmVmb3JlIG1vdmluZyBhbiBpdGVtLgotCi1AaXRlbSBAY29k ZXstaX0sIEBjb2Rley0taW50ZXJhY3RpdmV9Ci1Qcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBi ZWZvcmUgbW92aW5nIGFuIGl0ZW0gaWYgdGhlIHRhcmdldCBhbHJlYWR5Ci1leGlzdHMuCi0K LUBpdGVtIEBjb2Rley1ufSwgQGNvZGV7LS1wcmV2aWV3fQotUnVuIHRoZSBjb21tYW5kLCBi dXQgZG9uJ3QgbW92ZSBhbnl0aGluZy4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdQotd2FudCB0 byBwcmV2aWV3IHdoYXQgd291bGQgYmUgbW92ZWQgd2hlbiBjYWxsaW5nIEBjb21tYW5ke212 fS4KLQotQGl0ZW0gQGNvZGV7LXZ9LCBAY29kZXstLXZlcmJvc2V9Ci1QcmludCB0aGUgbmFt ZSBvZiBlYWNoIGl0ZW0gYmVmb3JlIG1vdmluZyBpdC4KLQotQGVuZCB0YWJsZQotCi1AaXRl bSBvY2N1ciBAdmFye3JlZ2V4cH0gW0B2YXJ7bmxpbmVzfV0KLUBjbWluZGV4IG9jY3VyCi1B bGlhcyB0byBFbWFjcydzIEBjb2Rle29jY3VyfS4KLUB4cmVme090aGVyIFJlcGVhdGluZyBT ZWFyY2gsICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9LgotCiBAaXRlbSBwb3Bk CiBAaXRlbSBwb3BkICtAdmFye259CiBAY21pbmRleCBwb3BkCkBAIC0xMDYyLDEwICs3MTIs NiBAQCBCdWlsdC1pbnMKIAogQGVuZCB0YWJsZQogCi1AaXRlbSBwcmludG5sIFtAdmFye2Fy Z31dQGRvdHN7fQotQGNtaW5kZXggcHJpbnRubAotUHJpbnQgYWxsIHRoZSBAdmFye2FyZ31z IHNlcGFyYXRlZCBieSBuZXdsaW5lcy4KLQogQGl0ZW0gcHVzaGQKIEBpdGVteCBwdXNoZCBA dmFye2RpcmVjdG9yeX0KIEBpdGVteCBwdXNoZCArQHZhcntufQpAQCAtMTEwMiw0NCArNzQ4 LDI2MiBAQCBCdWlsdC1pbnMKIEBjbWluZGV4IHB3ZAogUHJpbnRzIHRoZSBjdXJyZW50IHdv cmtpbmcgZGlyZWN0b3J5LgogCi1AaXRlbSBybSBbQHZhcntvcHRpb259XUBkb3Rze30gQHZh cntpdGVtfUBkb3Rze30KLUBjbWluZGV4IHJtCi1SZW1vdmVzIGZpbGVzLCBidWZmZXJzLCBw cm9jZXNzZXMsIG9yIEVtYWNzIExpc3Agc3ltYm9scywgZGVwZW5kaW5nIG9uCi10aGUgdHlw ZSBvZiBlYWNoIEB2YXJ7aXRlbX0uCitAaXRlbSBybWRpciBAdmFye2RpcmVjdG9yeX1AZG90 c3t9CitAY21pbmRleCBybWRpcgorUmVtb3ZlcyBkaXJlY3RvcmllcyBpZiB0aGV5IGFyZSBl bXB0eS4KIAotQHZpbmRleCBlc2hlbGwtcm0taW50ZXJhY3RpdmUtcXVlcnkKLUB2aW5kZXgg ZXNoZWxsLXJtLXJlbW92ZXMtZGlyZWN0b3JpZXMKLUlmIEBjb2Rle2VzaGVsbC1ybS1pbnRl cmFjdGl2ZS1xdWVyeX0gaXMgbm9uLUBjb2Rle25pbH0sIEBjb21tYW5ke3JtfQotd2lsbCBw cm9tcHQgYmVmb3JlIHJlbW92aW5nIGFueXRoaW5nLiAgSWYKLUBjb2Rle2VzaGVsbC1ybS1y ZW1vdmVzLWRpcmVjdG9yaWVzfSBpcyBub24tQGNvZGV7bmlsfSwgdGhlbgotQGNvbW1hbmR7 cm19IGNhbiBhbHNvIHJlbW92ZSBkaXJlY3Rvcmllcy4gIE90aGVyd2lzZSwgQGNvbW1hbmR7 cm1kaXJ9Ci1pcyByZXF1aXJlZC4KK0BlbmQgdGFibGUKIAotQGNvbW1hbmR7cm19IGFjY2Vw dHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorQG5vZGUgQ29tbWFuZHMgZm9yIEZpbGVzCitA c3Vic2VjdGlvbiBDb21tYW5kcyBmb3IgRmlsZXMKK0B0YWJsZSBAY29kZQorCitAaXRlbSBj YXQgQHZhcntmaWxlfUBkb3Rze30KK0BjbWluZGV4IGNhdAorQ29uY2F0ZW5hdGUgdGhlIGNv bnRlbnRzIG9mIEB2YXJ7ZmlsZX1zIHRvIHN0YW5kYXJkIG91dHB1dC4gIElmIGluIGEKK3Bp cGVsaW5lLCBvciBpZiBhbnkgb2YgdGhlIGZpbGVzIGlzIG5vdCBhIHJlZ3VsYXIgZmlsZSwg ZGlyZWN0b3J5LCBvcgorc3ltbGluaywgdGhlbiB0aGlzIGNvbW1hbmQgcmV2ZXJ0cyB0byB0 aGUgc3lzdGVtJ3MgZGVmaW5pdGlvbiBvZgorQGNvbW1hbmR7Y2F0fS4KKworQGl0ZW0gY3Ag W0B2YXJ7b3B0aW9ufUBkb3Rze31dIEB2YXJ7c291cmNlfSBAdmFye2Rlc3R9CitAaXRlbSBj cCBbQHZhcntvcHRpb259QGRvdHN7fV0gQHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVj dG9yeX0KK0BjbWluZGV4IGNwCitDb3B5IHRoZSBmaWxlIEB2YXJ7c291cmNlfSB0byBAdmFy e2Rlc3R9IG9yIEB2YXJ7c291cmNlfSBpbnRvCitAdmFye2RpcmVjdG9yeX0uCisKK0B2aW5k ZXggZXNoZWxsLWNwLW92ZXJ3cml0ZS1maWxlcworQHZpbmRleCBlc2hlbGwtY3AtaW50ZXJh Y3RpdmUtcXVlcnkKK0lmIEBjb2Rle2VzaGVsbC1jcC1vdmVyd3JpdGUtZmlsZXN9IGlzIG5v bi1AY29kZXtuaWx9LCB0aGVuCitAY29tbWFuZHtjcH0gd2lsbCBvdmVyd3JpdGUgZmlsZXMg d2l0aG91dCB3YXJuaW5nLiAgSWYKK0Bjb2Rle2VzaGVsbC1jcC1pbnRlcmFjdGl2ZS1xdWVy eX0gaXMgbm9uLUBjb2Rle25pbH0sIHRoZW4KK0Bjb21tYW5ke2NwfSB3aWxsIGFzayBiZWZv cmUgb3ZlcndyaXRpbmcgYW55dGhpbmcuCisKK0Bjb21tYW5ke2NwfSBhY2NlcHRzIHRoZSBm b2xsb3dpbmcgb3B0aW9uczoKIAogQHRhYmxlIEBhc2lzCiAKK0BpdGVtIEBjb2Rley1hfSwg QGNvZGV7LS1hcmNoaXZlfQorRXF1aXZhbGVudCB0byBAY29kZXstLW5vLWRlcmVmZXJlbmNl IC0tcHJlc2VydmUgLS1yZWN1cnNpdmV9LgorCitAaXRlbSBAY29kZXstZH0sIEBjb2Rley0t bm8tZGVyZWZlcmVuY2V9CitEb24ndCBkZXJlZmVyZW5jZSBzeW1ib2xpYyBsaW5rcyB3aGVu IGNvcHlpbmc7IGluc3RlYWQsIGNvcHkgdGhlIGxpbmsKK2l0c2VsZi4KKwogQGl0ZW0gQGNv ZGV7LWZ9LCBAY29kZXstLWZvcmNlfQotTmV2ZXIgcHJvbXB0IGZvciBjb25maXJtYXRpb24g YmVmb3JlIHJlbW92aW5nIGFuIGl0ZW0uCitOZXZlciBwcm9tcHQgZm9yIGNvbmZpcm1hdGlv biBiZWZvcmUgY29weWluZyBhIGZpbGUuCiAKIEBpdGVtIEBjb2Rley1pfSwgQGNvZGV7LS1p bnRlcmFjdGl2ZX0KLVByb21wdCBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSByZW1vdmluZyBl YWNoIGl0ZW0uCitQcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgY29weWluZyBhIGZp bGUgaWYgdGhlIHRhcmdldCBhbHJlYWR5CitleGlzdHMuCiAKIEBpdGVtIEBjb2Rley1ufSwg QGNvZGV7LS1wcmV2aWV3fQotUnVuIHRoZSBjb21tYW5kLCBidXQgZG9uJ3QgcmVtb3ZlIGFu eXRoaW5nLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91Ci13YW50IHRvIHByZXZpZXcgd2hhdCB3 b3VsZCBiZSByZW1vdmVkIHdoZW4gY2FsbGluZyBAY29tbWFuZHtybX0uCitSdW4gdGhlIGNv bW1hbmQsIGJ1dCBkb24ndCBjb3B5IGFueXRoaW5nLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91 Cit3YW50IHRvIHByZXZpZXcgd2hhdCB3b3VsZCBiZSByZW1vdmVkIHdoZW4gY2FsbGluZyBA Y29tbWFuZHtjcH0uCisKK0BpdGVtIEBjb2Rley1wfSwgQGNvZGV7LS1wcmVzZXJ2ZX0KK0F0 dGVtcHQgdG8gcHJlc2VydmUgZmlsZSBhdHRyaWJ1dGVzIHdoZW4gY29weWluZy4KIAogQGl0 ZW0gQGNvZGV7LXJ9LCBAY29kZXstUn0sIEBjb2Rley0tcmVjdXJzaXZlfQotUmVtb3ZlIGFu eSBzcGVjaWZpZWQgZGlyZWN0b3JpZXMgYW5kIHRoZWlyIGNvbnRlbnRzIHJlY3Vyc2l2ZWx5 LgorQ29weSBhbnkgc3BlY2lmaWVkIGRpcmVjdG9yaWVzIGFuZCB0aGVpciBjb250ZW50cyBy ZWN1cnNpdmVseS4KIAogQGl0ZW0gQGNvZGV7LXZ9LCBAY29kZXstLXZlcmJvc2V9Ci1Qcmlu dCB0aGUgbmFtZSBvZiBlYWNoIGl0ZW0gYmVmb3JlIHJlbW92aW5nIGl0LgorUHJpbnQgdGhl IG5hbWUgb2YgZWFjaCBmaWxlIGJlZm9yZSBjb3B5aW5nIGl0LgogCiBAZW5kIHRhYmxlCiAK LUBpdGVtIHJtZGlyIEB2YXJ7ZGlyZWN0b3J5fUBkb3Rze30KLUBjbWluZGV4IHJtZGlyCi1S ZW1vdmVzIGRpcmVjdG9yaWVzIGlmIHRoZXkgYXJlIGVtcHR5LgorQGl0ZW0gZGlmZiBbQHZh cntvcHRpb259XUBkb3Rze30gQHZhcntvbGR9IEB2YXJ7bmV3fQorQGNtaW5kZXggZGlmZgor Q29tcGFyZSB0aGUgZmlsZXMgQHZhcntvbGR9IGFuZCBAdmFye25ld30gdXNpbmcgRW1hY3Mn cyBpbnRlcm5hbAorQGNvZGV7ZGlmZn0gKG5vdCB0byBiZSBjb25mdXNlZCB3aXRoIEBjb2Rl e2VkaWZmfSkuICBAeHJlZntDb21wYXJpbmcKK0ZpbGVzLCAsICwgZW1hY3MsIFRoZSBHTlUg RW1hY3MgTWFudWFsfS4KKworQHZpbmRleCBlc2hlbGwtcGxhaW4tZGlmZi1iZWhhdmlvcgor SWYgQGNvZGV7ZXNoZWxsLXBsYWluLWRpZmYtYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtuaWx9 LCB0aGVuIHRoaXMKK2NvbW1hbmQgZG9lcyBub3QgdXNlIEVtYWNzJ3MgaW50ZXJuYWwgQGNv ZGV7ZGlmZn0uICBUaGlzIGlzIHRoZSBzYW1lCithcyB1c2luZyBAc2FtcHthbGlhcyBkaWZm ICcqZGlmZiAkQEAqJ30uCisKK0BpdGVtIGxuIFtAdmFye29wdGlvbn1dQGRvdHN7fSBAdmFy e3RhcmdldH0gW0B2YXJ7bGluay1uYW1lfV0KK0BpdGVteCBsbiBbQHZhcntvcHRpb259XUBk b3Rze30gQHZhcnt0YXJnZXR9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KK0BjbWluZGV4IGxu CitDcmVhdGUgYSBsaW5rIHRvIHRoZSBzcGVjaWZpZWQgQHZhcnt0YXJnZXR9IG5hbWVkIEB2 YXJ7bGluay1uYW1lfSBvcgorY3JlYXRlIGxpbmtzIHRvIG11bHRpcGxlIEB2YXJ7dGFyZ2V0 c30gaW4gQHZhcntkaXJlY3Rvcnl9LgorCitAdmluZGV4IGVzaGVsbC1sbi1vdmVyd3JpdGUt ZmlsZXMKK0B2aW5kZXggZXNoZWxsLWxuLWludGVyYWN0aXZlLXF1ZXJ5CitJZiBAY29kZXtl c2hlbGwtbG4tb3ZlcndyaXRlLWZpbGVzfSBpcyBub24tQGNvZGV7bmlsfSwgQGNvbW1hbmR7 bG59Cit3aWxsIG92ZXJ3cml0ZSBmaWxlcyB3aXRob3V0IHdhcm5pbmcuICBJZgorQGNvZGV7 ZXNoZWxsLWxuLWludGVyYWN0aXZlLXF1ZXJ5fSBpcyBub24tQGNvZGV7bmlsfSwgdGhlbgor QGNvbW1hbmR7bG59IHdpbGwgYXNrIGJlZm9yZSBvdmVyd3JpdGluZyBmaWxlcy4KKworQGNv bW1hbmR7bG59IGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorCitAdGFibGUgQGFz aXMKKworQGl0ZW0gQGNvZGV7LWZ9LCBAY29kZXstLWZvcmNlfQorTmV2ZXIgcHJvbXB0IGZv ciBjb25maXJtYXRpb24gYmVmb3JlIGxpbmtpbmcgYSB0YXJnZXQuCisKK0BpdGVtIEBjb2Rl ey1pfSwgQGNvZGV7LS1pbnRlcmFjdGl2ZX0KK1Byb21wdCBmb3IgY29uZmlybWF0aW9uIGJl Zm9yZSBsaW5raW5nIHRvIGFuIGl0ZW0gaWYgdGhlIHNvdXJjZQorYWxyZWFkeSBleGlzdHMu CisKK0BpdGVtIEBjb2Rley1ufSwgQGNvZGV7LS1wcmV2aWV3fQorUnVuIHRoZSBjb21tYW5k LCBidXQgZG9uJ3QgbW92ZSBhbnl0aGluZy4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdQord2Fu dCB0byBwcmV2aWV3IHdoYXQgd291bGQgYmUgbGlua2VkIHdoZW4gY2FsbGluZyBAY29tbWFu ZHtsbn0uCisKK0BpdGVtIEBjb2Rley1zfSwgQGNvZGV7LS1zeW1ib2xpY30KK01ha2Ugc3lt Ym9saWMgbGlua3MgaW5zdGVhZCBvZiBoYXJkIGxpbmtzLgorCitAaXRlbSBAY29kZXstdn0s IEBjb2Rley0tdmVyYm9zZX0KK1ByaW50IHRoZSBuYW1lIG9mIGVhY2ggZmlsZSBiZWZvcmUg bGlua2luZyBpdC4KKworQGVuZCB0YWJsZQorCitAaXRlbSBtdiBbQHZhcntvcHRpb259XUBk b3Rze30gQHZhcntzb3VyY2V9IEB2YXJ7ZGVzdH0KK0BpdGVteCBtdiBbQHZhcntvcHRpb259 XUBkb3Rze30gQHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KK0BjbWluZGV4 IG12CitSZW5hbWUgdGhlIGZpbGUgQHZhcntzb3VyY2V9IHRvIEB2YXJ7ZGVzdH0gb3IgbW92 ZSBAdmFye3NvdXJjZX0gaW50bworQHZhcntkaXJlY3Rvcnl9LgorCitAdmluZGV4IGVzaGVs bC1tdi1vdmVyd3JpdGUtZmlsZXMKK0B2aW5kZXggZXNoZWxsLW12LWludGVyYWN0aXZlLXF1 ZXJ5CitJZiBAY29kZXtlc2hlbGwtbXYtb3ZlcndyaXRlLWZpbGVzfSBpcyBub24tQGNvZGV7 bmlsfSwgQGNvbW1hbmR7bXZ9Cit3aWxsIG92ZXJ3cml0ZSBmaWxlcyB3aXRob3V0IHdhcm5p bmcuICBJZgorQGNvZGV7ZXNoZWxsLW12LWludGVyYWN0aXZlLXF1ZXJ5fSBpcyBub24tQGNv ZGV7bmlsfSwgQGNvbW1hbmR7bXZ9Cit3aWxsIHByb21wdCBiZWZvcmUgb3ZlcndyaXRpbmcg YW55dGhpbmcuCisKK0Bjb21tYW5ke212fSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9u czoKKworQHRhYmxlIEBhc2lzCisKK0BpdGVtIEBjb2Rley1mfSwgQGNvZGV7LS1mb3JjZX0K K05ldmVyIHByb21wdCBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBtb3ZpbmcgYW4gaXRlbS4K KworQGl0ZW0gQGNvZGV7LWl9LCBAY29kZXstLWludGVyYWN0aXZlfQorUHJvbXB0IGZvciBj b25maXJtYXRpb24gYmVmb3JlIG1vdmluZyBhbiBpdGVtIGlmIHRoZSB0YXJnZXQgYWxyZWFk eQorZXhpc3RzLgorCitAaXRlbSBAY29kZXstbn0sIEBjb2Rley0tcHJldmlld30KK1J1biB0 aGUgY29tbWFuZCwgYnV0IGRvbid0IG1vdmUgYW55dGhpbmcuICBUaGlzIGlzIHVzZWZ1bCBp ZiB5b3UKK3dhbnQgdG8gcHJldmlldyB3aGF0IHdvdWxkIGJlIG1vdmVkIHdoZW4gY2FsbGlu ZyBAY29tbWFuZHttdn0uCisKK0BpdGVtIEBjb2Rley12fSwgQGNvZGV7LS12ZXJib3NlfQor UHJpbnQgdGhlIG5hbWUgb2YgZWFjaCBpdGVtIGJlZm9yZSBtb3ZpbmcgaXQuCisKK0BlbmQg dGFibGUKKworQGl0ZW0gcm0gW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7aXRlbX1AZG90 c3t9CitAY21pbmRleCBybQorUmVtb3ZlcyBmaWxlcywgYnVmZmVycywgcHJvY2Vzc2VzLCBv ciBFbWFjcyBMaXNwIHN5bWJvbHMsIGRlcGVuZGluZyBvbgordGhlIHR5cGUgb2YgZWFjaCBA dmFye2l0ZW19LgorCitAdmluZGV4IGVzaGVsbC1ybS1pbnRlcmFjdGl2ZS1xdWVyeQorQHZp bmRleCBlc2hlbGwtcm0tcmVtb3Zlcy1kaXJlY3RvcmllcworSWYgQGNvZGV7ZXNoZWxsLXJt LWludGVyYWN0aXZlLXF1ZXJ5fSBpcyBub24tQGNvZGV7bmlsfSwgQGNvbW1hbmR7cm19Cit3 aWxsIHByb21wdCBiZWZvcmUgcmVtb3ZpbmcgYW55dGhpbmcuICBJZgorQGNvZGV7ZXNoZWxs LXJtLXJlbW92ZXMtZGlyZWN0b3JpZXN9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuCitAY29t bWFuZHtybX0gY2FuIGFsc28gcmVtb3ZlIGRpcmVjdG9yaWVzLiAgT3RoZXJ3aXNlLCBAY29t bWFuZHtybWRpcn0KK2lzIHJlcXVpcmVkLgorCitAY29tbWFuZHtybX0gYWNjZXB0cyB0aGUg Zm9sbG93aW5nIG9wdGlvbnM6CisKK0B0YWJsZSBAYXNpcworCitAaXRlbSBAY29kZXstZn0s IEBjb2Rley0tZm9yY2V9CitOZXZlciBwcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUg cmVtb3ZpbmcgYW4gaXRlbS4KKworQGl0ZW0gQGNvZGV7LWl9LCBAY29kZXstLWludGVyYWN0 aXZlfQorUHJvbXB0IGZvciBjb25maXJtYXRpb24gYmVmb3JlIHJlbW92aW5nIGVhY2ggaXRl bS4KKworQGl0ZW0gQGNvZGV7LW59LCBAY29kZXstLXByZXZpZXd9CitSdW4gdGhlIGNvbW1h bmQsIGJ1dCBkb24ndCByZW1vdmUgYW55dGhpbmcuICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UK K3dhbnQgdG8gcHJldmlldyB3aGF0IHdvdWxkIGJlIHJlbW92ZWQgd2hlbiBjYWxsaW5nIEBj b21tYW5ke3JtfS4KKworQGl0ZW0gQGNvZGV7LXJ9LCBAY29kZXstUn0sIEBjb2Rley0tcmVj dXJzaXZlfQorUmVtb3ZlIGFueSBzcGVjaWZpZWQgZGlyZWN0b3JpZXMgYW5kIHRoZWlyIGNv bnRlbnRzIHJlY3Vyc2l2ZWx5LgorCitAaXRlbSBAY29kZXstdn0sIEBjb2Rley0tdmVyYm9z ZX0KK1ByaW50IHRoZSBuYW1lIG9mIGVhY2ggaXRlbSBiZWZvcmUgcmVtb3ZpbmcgaXQuCisK K0BlbmQgdGFibGUKKworQGVuZCB0YWJsZQorCitAbm9kZSBDb21tYW5kcyBmb3IgU2VhcmNo aW5nCitAc3Vic2VjdGlvbiBDb21tYW5kcyBmb3IgU2VhcmNoaW5nCitAdGFibGUgQGNvZGUK KworQGl0ZW0gZ3JlcCBbQHZhcnthcmd9XUBkb3Rze30KK0BjbWluZGV4IGdyZXAKK0BpdGVt eCBhZ3JlcCBbQHZhcnthcmd9XUBkb3Rze30KK0BjbWluZGV4IGFncmVwCitAaXRlbXggZWdy ZXAgW0B2YXJ7YXJnfV1AZG90c3t9CitAY21pbmRleCBlZ3JlcAorQGl0ZW14IGZncmVwIFtA dmFye2FyZ31dQGRvdHN7fQorQGNtaW5kZXggZmdyZXAKK0BpdGVteCByZ3JlcCBbQHZhcnth cmd9XUBkb3Rze30KK0BjbWluZGV4IHJncmVwCitAaXRlbXggZ2xpbXBzZSBbQHZhcnthcmd9 XUBkb3Rze30KK0BjbWluZGV4IGdsaW1wc2UKK1RoZSBAY29tbWFuZHtncmVwfSBjb21tYW5k cyBhcmUgY29tcGF0aWJsZSB3aXRoIEdOVSBAY29tbWFuZHtncmVwfSwKK2J1dCBvcGVuIGEg Y29tcGlsYXRpb24gYnVmZmVyIGluIEBjb2Rle2dyZXAtbW9kZX0gaW5zdGVhZC4KK0B4cmVm e0dyZXAgU2VhcmNoaW5nLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MgTWFudWFsfS4KKwor QHZpbmRleCBlc2hlbGwtcGxhaW4tZ3JlcC1iZWhhdmlvcgorSWYgQGNvZGV7ZXNoZWxsLXBs YWluLWdyZXAtYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuIHRoZXNlCitjb21t YW5kcyBkbyBub3QgdXNlIG9wZW4gYSBjb21waWxhdGlvbiBidWZmZXIsIGluc3RlYWQgcHJp bnRpbmcgb3V0cHV0Cit0byBFc2hlbGwncyBidWZmZXIuICBUaGlzIGlzIHRoZSBzYW1lIGFz IHVzaW5nIEBzYW1we2FsaWFzIGdyZXAgJypncmVwCiskQEAqJ30sIHRob3VnaCB0aGlzIHNl dHRpbmcgYXBwbGllcyB0byBhbGwgb2YgdGhlIGJ1aWx0LWluIGNvbW1hbmRzCitmb3Igd2hp Y2ggeW91IHdvdWxkIG5lZWQgdG8gY3JlYXRlIGEgc2VwYXJhdGUgYWxpYXMuCisKK0BpdGVt IGluZm8gW0B2YXJ7bWFudWFsfSBbQHZhcntpdGVtfV1AZG90c3t9XQorQGNtaW5kZXggaW5m bworQnJvd3NlIHRoZSBhdmFpbGFibGUgSW5mbyBkb2N1bWVudGF0aW9uLiAgV2l0aCBubyBh cmd1bWVudHMsIGJyb3dzZQordGhlIHRvcC1sZXZlbCBtZW51LiAgT3RoZXJ3aXNlLCBzaG93 IHRoZSBtYW51YWwgZm9yIEB2YXJ7bWFudWFsfSwKK3NlbGVjdGluZyB0aGUgbWVudSBlbnRy eSBmb3IgQHZhcntpdGVtfS4KKworVGhpcyBjb21tYW5kIGlzIHRoZSBzYW1lIGFzIHRoZSBl eHRlcm5hbCBAY29tbWFuZHtpbmZvfSBjb21tYW5kLCBidXQKK3VzZXMgRW1hY3MncyBpbnRl cm5hbCBJbmZvIHJlYWRlci4gIEB4cmVme01pc2MgSGVscCwgLCAsIGVtYWNzLCBUaGUKK0dO VSBFbWFjcyBNYW51YWx9LgorCitAaXRlbSBsb2NhdGUgQHZhcnthcmd9QGRvdHN7fQorQGNt aW5kZXggbG9jYXRlCitBbGlhcyB0byBFbWFjcydzIEBjb2Rle2xvY2F0ZX0gZnVuY3Rpb24s IHdoaWNoIHNpbXBseSBydW5zIHRoZSBleHRlcm5hbAorQGNvbW1hbmR7bG9jYXRlfSBjb21t YW5kIGFuZCBwYXJzZXMgdGhlIHJlc3VsdHMuCitAeHJlZntEaXJlZCBhbmQgRmluZCwgLCAs IGVtYWNzLCBUaGUgR05VIEVtYWNzIE1hbnVhbH0uCisKK0B2aW5kZXggZXNoZWxsLXBsYWlu LWxvY2F0ZS1iZWhhdmlvcgorSWYgQGNvZGV7ZXNoZWxsLXBsYWluLWxvY2F0ZS1iZWhhdmlv cn0gaXMgbm9uLUBjb2Rle25pbH0sIHRoZW4gRW1hY3MncworaW50ZXJuYWwgQGNvZGV7bG9j YXRlfSBpcyBub3QgdXNlZC4gIFRoaXMgaXMgdGhlIHNhbWUgYXMgdXNpbmcKK0BzYW1we2Fs aWFzIGxvY2F0ZSAnKmxvY2F0ZSAkQEAqJ30uCisKK0BpdGVtIG1hbiBbQHZhcnthcmd9XUBk b3Rze30KK0BjbWluZGV4IG1hbgorRGlzcGxheSBNYW4gcGFnZXMgdXNpbmcgdGhlIEVtYWNz IEBjb2Rle21hbn0gY29tbWFuZC4KK0B4cmVme01hbiBQYWdlLCAsICwgZW1hY3MsIFRoZSBH TlUgRW1hY3MgTWFudWFsfS4KKworQGl0ZW0gb2NjdXIgQHZhcntyZWdleHB9IFtAdmFye25s aW5lc31dCitAY21pbmRleCBvY2N1cgorQWxpYXMgdG8gRW1hY3MncyBAY29kZXtvY2N1cn0u CitAeHJlZntPdGhlciBSZXBlYXRpbmcgU2VhcmNoLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1h Y3MgTWFudWFsfS4KKworQGVuZCB0YWJsZQorCitAbm9kZSBDb21tYW5kcyBmb3IgVmFyaWFi bGVzCitAc3Vic2VjdGlvbiBDb21tYW5kcyBmb3IgVmFyaWFibGVzCitAdGFibGUgQGNvZGUK KworQGl0ZW0gZW52IFtAdmFye3Zhcn09QHZhcnt2YWx1ZX1dQGRvdHN7fSBbQHZhcntjb21t YW5kfV1AZG90c3t9CitAY21pbmRleCBlbnYKK1dpdGggbm8gYXJndW1lbnRzLCBwcmludCB0 aGUgY3VycmVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICBJZiB5b3UKK3Bhc3MgYXJndW1l bnRzIHRvIHRoaXMgY29tbWFuZCwgdGhlbiBAY29tbWFuZHtlbnZ9IHdpbGwgZXhlY3V0ZSB0 aGUKK2FyZ3VtZW50cyBhcyBhIGNvbW1hbmQuICBJZiB5b3UgcGFzcyBhbnkgaW5pdGlhbCBh cmd1bWVudHMgb2YgdGhlIGZvcm0KK0BzYW1we0B2YXJ7dmFyfT1AdmFye3ZhbHVlfX0sIEBj b21tYW5ke2Vudn0gd2lsbCBmaXJzdCBzZXQgQHZhcnt2YXJ9Cit0byBAdmFye3ZhbHVlfSBi ZWZvcmUgcnVubmluZyB0aGUgY29tbWFuZC4KKworQGl0ZW0gZXhwb3J0IFtAdmFye25hbWV9 PUB2YXJ7dmFsdWV9XUBkb3Rze30KK0BjbWluZGV4IGV4cG9ydAorU2V0IGVudmlyb25tZW50 IHZhcmlhYmxlcyB1c2luZyBpbnB1dCBsaWtlIEJhc2gncyBAY29tbWFuZHtleHBvcnR9LCBh cworaW4gQHNhbXB7ZXhwb3J0IEB2YXJ7dmFyMX09QHZhcnt2YWwxfSBAdmFye3ZhcjJ9PUB2 YXJ7dmFsMn0gQGRvdHN7fX0uCiAKIEBpdGVtIHNldCBbQHZhcnt2YXJ9IEB2YXJ7dmFsdWV9 XUBkb3Rze30KIEBjbWluZGV4IHNldApAQCAtMTE1NCw2ICsxMDE4LDc0IEBAIEJ1aWx0LWlu cwogU2V0IHZhcmlhYmxlIHZhbHVlcywgdXNpbmcgdGhlIGZ1bmN0aW9uIEBjb2Rle3NldHF9 IGxpa2UgYSBjb21tYW5kCiAoQHB4cmVme1NldHRpbmcgVmFyaWFibGVzLCwsIGVsaXNwLCBH TlUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfSkuCiAKK0BpdGVtIHVuc2V0IFtAdmFy e3Zhcn1dQGRvdHN7fQorQGNtaW5kZXggdW5zZXQKK1Vuc2V0IG9uZSBvciBtb3JlIHZhcmlh Ymxlcy4gIEFzIHdpdGggQGNvbW1hbmR7c2V0fSwgdGhlIHZhbHVlIG9mCitAdmFye3Zhcn0g Y2FuIGJlIGEgc3ltYm9sLCBpbiB3aGljaCBjYXNlIGl0IHJlZmVycyB0byBhIExpc3AgdmFy aWFibGUsCitvciBhIHN0cmluZywgcmVmZXJyaW5nIHRvIGFuIGVudmlyb25tZW50IHZhcmlh YmxlLgorCitAZW5kIHRhYmxlCisKK0Bub2RlIENvbW1hbmRzIGZvciBVc2luZyBPdGhlciBD b21tYW5kcworQHN1YnNlY3Rpb24gQ29tbWFuZHMgZm9yIFVzaW5nIE90aGVyIENvbW1hbmRz CitAdGFibGUgQGNvZGUKKworQGl0ZW0gLiBAdmFye2ZpbGV9IFtAdmFye2FyZ3VtZW50fV1A ZG90c3t9CitAY21pbmRleCAuCitTb3VyY2UgYW4gRXNoZWxsIHNjcmlwdCBuYW1lZCBAdmFy e2ZpbGV9IGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LAorcGFzc2luZyBhbnkgQHZhcnth cmd1bWVudHN9IHRvIHRoZSBzY3JpcHQgKEBweHJlZntTY3JpcHRzfSkuICBUaGlzIGlzCitu b3QgdG8gYmUgY29uZnVzZWQgd2l0aCB0aGUgY29tbWFuZCBAY29tbWFuZHtzb3VyY2V9LCB3 aGljaCBzb3VyY2VzIGEKK2ZpbGUgaW4gYSBzdWJzaGVsbCBlbnZpcm9ubWVudC4KKworQGl0 ZW0gYWRkcGF0aAorQGl0ZW14IGFkZHBhdGggWy1iXSBAdmFye2RpcmVjdG9yeX1AZG90c3t9 CitAY21pbmRleCBhZGRwYXRoCitBZGRzIGVhY2ggc3BlY2lmaWVkIEB2YXJ7ZGlyZWN0b3J5 fSB0byB0aGUgQGNvZGV7JFBBVEh9IGVudmlyb25tZW50Cit2YXJpYWJsZS4gIEJ5IGRlZmF1 bHQsIHRoaXMgYWRkcyB0aGUgZGlyZWN0b3JpZXMgdG8gdGhlIGVuZCBvZgorQGNvZGV7JFBB VEh9LCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5l OyBieQorcGFzc2luZyBAY29kZXstYn0gb3IgQGNvZGV7LS1iZWdpbn0sIEVzaGVsbCB3aWxs IGluc3RlYWQgYWRkIHRoZQorZGlyZWN0b3JpZXMgdG8gdGhlIGJlZ2lubmluZy4KKworV2l0 aCBubyBkaXJlY3RvcmllcywgcHJpbnQgdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgY3VycmVu dGx5IHN0b3JlZCBpbgorQGNvZGV7JFBBVEh9LgorCitAaXRlbSBhbGlhcworQGl0ZW14IGFs aWFzIEB2YXJ7bmFtZX0gW0B2YXJ7Y29tbWFuZH1dCitAY21pbmRleCBhbGlhcworRGVmaW5l IGFuIGFsaWFzIG5hbWVkIEB2YXJ7bmFtZX0gYW5kIGV4cGFuZGluZyB0byBAdmFye2NvbW1h bmR9LAorYWRkaW5nIGl0IHRvIHRoZSBhbGlhc2VzIGZpbGUgKEBweHJlZntBbGlhc2VzfSku ICBJZiBAdmFye2NvbW1hbmR9IGlzCitvbWl0dGVkLCBkZWxldGUgdGhlIGFsaWFzIG5hbWVk IEB2YXJ7bmFtZX0uICBXaXRoIG5vIGFyZ3VtZW50cyBhdCBhbGwsCitsaXN0IGFsbCB0aGUg Y3VycmVudGx5LWRlZmluZWQgYWxpYXNlcy4KKworQGl0ZW0gY29tcGlsZSBbLXAgfCAtaV0g Wy1tIEB2YXJ7bW9kZS1uYW1lfV0gQHZhcntjb21tYW5kfUBkb3Rze30KK0BjbWluZGV4IGNv bXBpbGUKK1J1biBhbiBleHRlcm5hbCBjb21tYW5kLCBzZW5kaW5nIGl0cyBvdXRwdXQgdG8g YSBjb21waWxhdGlvbiBidWZmZXIgaWYKK3RoZSBjb21tYW5kIHdvdWxkIG91dHB1dCB0byB0 aGUgc2NyZWVuIGFuZCBpcyBub3QgcGFydCBvZiBhIHBpcGVsaW5lCitvciBzdWJjb21tYW5k LgorCitXaXRoIHRoZSBAY29kZXstcH0gb3IgQGNvZGV7LS1wbGFpbn0gb3B0aW9ucywgYWx3 YXlzIHNlbmQgdGhlIG91dHB1dAordG8gdGhlIEVzaGVsbCBidWZmZXI7IHNpbWlsYXJseSwg d2l0aCBAY29kZXstaX0gb3IKK0Bjb2Rley0taW50ZXJhY3RpdmV9LCBhbHdheXMgc2VuZCB0 aGUgb3V0cHV0IHRvIGEgY29tcGlsYXRpb24gYnVmZmVyLgorWW91IGNhbiBhbHNvIHNldCB0 aGUgbW9kZSBvZiB0aGUgY29tcGlsYXRpb24gYnVmZmVyIHdpdGggQGNvZGV7LW0KK0B2YXJ7 bW9kZS1uYW1lfX0gb3IgQGNvZGV7LS1tb2RlIEB2YXJ7bW9kZS1uYW1lfX0uCisKK0Bjb21t YW5ke2NvbXBpbGV9IGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBkZWZpbmluZyBhbGlh c2VzLCBzbwordGhhdCBpbnRlcmFjdGl2ZWx5LCB0aGUgb3V0cHV0IHNob3dzIHVwIGluIGEg Y29tcGlsYXRpb24gYnVmZmVyLCBidXQKK3lvdSBjYW4gc3RpbGwgcGlwZSB0aGUgb3V0cHV0 IGVsc2V3aGVyZSBpZiBkZXNpcmVkLiAgRm9yIGV4YW1wbGUsIGlmCit5b3UgaGF2ZSBhIGdy ZXAtbGlrZSBjb21tYW5kIG9uIHlvdXIgc3lzdGVtLCB5b3UgbWlnaHQgZGVmaW5lIGFuIGFs aWFzCitmb3IgaXQgbGlrZSBzbzogQHNhbXB7YWxpYXMgbXlncmVwICdjb21waWxlIC0tbW9k ZT1ncmVwLW1vZGUgLS0gbXlncmVwCiskKid9LgorCitAaXRlbSBqb2JzCitAY21pbmRleCBq b2JzCitMaXN0IHN1YnByb2Nlc3NlcyBvZiB0aGUgRW1hY3MgcHJvY2VzcywgaWYgYW55LCB1 c2luZyB0aGUgZnVuY3Rpb24KK0Bjb2Rle2xpc3QtcHJvY2Vzc2VzfS4KKworQGl0ZW0ga2ls bCBbLUB2YXJ7c2lnbmFsfV0gW0B2YXJ7cGlkfSB8IEB2YXJ7cHJvY2Vzc31dCitAY21pbmRl eCBraWxsCitLaWxsIHByb2Nlc3Nlcy4gIFRha2VzIGEgUElEIG9yIGEgcHJvY2VzcyBvYmpl Y3QgYW5kIGFuIG9wdGlvbmFsCitAdmFye3NpZ25hbH0gc3BlY2lmaWVyIHdoaWNoIGNhbiBl aXRoZXIgYmUgYSBudW1iZXIgb3IgYSBzaWduYWwgbmFtZS4KKwogQGl0ZW0gc291cmNlIEB2 YXJ7ZmlsZX0gW0B2YXJ7YXJndW1lbnR9XUBkb3Rze30KIEBjbWluZGV4IHNvdXJjZQogU291 cmNlIGFuIEVzaGVsbCBzY3JpcHQgbmFtZWQgQHZhcntmaWxlfSBpbiBhIHN1YnNoZWxsIGVu dmlyb25tZW50LApAQCAtMTE2NSwyMCArMTA5Nyw2IEBAIEJ1aWx0LWlucwogQGNtaW5kZXgg dGltZQogU2hvdyB0aGUgdGltZSBlbGFwc2VkIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIEB2 YXJ7Y29tbWFuZH0uCiAKLUBpdGVtIHVtYXNrIFstU10KLUBpdGVteCB1bWFzayBAdmFye21v ZGV9Ci1AY21pbmRleCB1bWFzawotVmlldyB0aGUgZGVmYXVsdCBmaWxlIHBlcm1pc3Npb25z IGZvciBuZXdseSBjcmVhdGVkIGZpbGVzIGFuZAotZGlyZWN0b3JpZXMuICBJZiB5b3UgcGFz cyBAY29kZXstU30gb3IgQGNvZGV7LS1zeW1ib2xpY30sIHZpZXcgdGhlCi1tb2RlIHN5bWJv bGljYWxseS4gIFdpdGggQHZhcnttb2RlfSwgc2V0IHRoZSBkZWZhdWx0IHBlcm1pc3Npb25z IHRvCi10aGlzIHZhbHVlLgotCi1AaXRlbSB1bnNldCBbQHZhcnt2YXJ9XUBkb3Rze30KLUBj bWluZGV4IHVuc2V0Ci1VbnNldCBvbmUgb3IgbW9yZSB2YXJpYWJsZXMuICBBcyB3aXRoIEBj b21tYW5ke3NldH0sIHRoZSB2YWx1ZSBvZgotQHZhcnt2YXJ9IGNhbiBiZSBhIHN5bWJvbCwg aW4gd2hpY2ggY2FzZSBpdCByZWZlcnMgdG8gYSBMaXNwIHZhcmlhYmxlLAotb3IgYSBzdHJp bmcsIHJlZmVycmluZyB0byBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KLQogQGl0ZW0gd2Fp dCBbQHZhcntwcm9jZXNzfV1AZG90c3t9CiBAY21pbmRleCB3YWl0CiBXYWl0IHVudGlsIGVh Y2ggc3BlY2lmaWVkIEB2YXJ7cHJvY2Vzc30gaGFzIGV4aXRlZC4KQEAgLTExODgsNiArMTEw NiwxMzAgQEAgQnVpbHQtaW5zCiBGb3IgZWFjaCBAdmFye2NvbW1hbmR9LCBpZGVudGlmeSB3 aGF0IGtpbmQgb2YgY29tbWFuZCBpdCBpcyBhbmQgaXRzCiBsb2NhdGlvbi4KIAorQGVuZCB0 YWJsZQorCitAbm9kZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzCitAc3Vic2VjdGlvbiBNaXNj ZWxsYW5lb3VzIENvbW1hbmRzCitAdGFibGUgQGNvZGUKKworQGl0ZW0gYmFzZW5hbWUgQHZh cntmaWxlbmFtZX0KK0BjbWluZGV4IGJhc2VuYW1lCitSZXR1cm4gQHZhcntmaWxlbmFtZX0g d2l0aG91dCBpdHMgZGlyZWN0b3J5LgorCitAaXRlbSBjbGVhciBbQHZhcntzY3JvbGxiYWNr fV0KK0BjbWluZGV4IGNsZWFyCitTY3JvbGxzIHRoZSBjb250ZW50cyBvZiB0aGUgRXNoZWxs IHdpbmRvdyBvdXQgb2Ygc2lnaHQsIGxlYXZpbmcgYQorYmxhbmsgd2luZG93LiAgSWYgQHZh cntzY3JvbGxiYWNrfSBpcyBub24tQGNvZGV7bmlsfSwgdGhlIHNjcm9sbGJhY2sKK2NvbnRl bnRzIGFyZSBjbGVhcmVkIGluc3RlYWQsIGFzIHdpdGggQGNvbW1hbmR7Y2xlYXItc2Nyb2xs YmFja30uCisKK0BpdGVtIGNsZWFyLXNjcm9sbGJhY2sKK0BjbWluZGV4IGNsZWFyLXNjcm9s bGJhY2sKK0NsZWFyIHRoZSBzY3JvbGxiYWNrIGNvbnRlbnRzIG9mIHRoZSBFc2hlbGwgd2lu ZG93LiAgVW5saWtlIHRoZQorY29tbWFuZCBAY29tbWFuZHtjbGVhcn0sIHRoaXMgY29tbWFu ZCBkZWxldGVzIGNvbnRlbnQgaW4gdGhlIEVzaGVsbAorYnVmZmVyLgorCitAaXRlbSBkYXRl IFtAdmFye3NwZWNpZmllZC10aW1lfSBbQHZhcnt6b25lfV1dCitAY21pbmRleCBkYXRlCitQ cmludCB0aGUgY3VycmVudCBsb2NhbCB0aW1lIGFzIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5n LiAgVGhpcyBjb21tYW5kCitpcyBhbiBhbGlhcyB0byB0aGUgRW1hY3MgTGlzcCBmdW5jdGlv biBAY29kZXtjdXJyZW50LXRpbWUtc3RyaW5nfQorKEBweHJlZntUaW1lIG9mIERheSwsLCBl bGlzcCwgR05VIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1hbnVhbH0pLgorCitAaXRlbSBkaXJu YW1lIEB2YXJ7ZmlsZW5hbWV9CitAY21pbmRleCBkaXJuYW1lCitSZXR1cm4gdGhlIGRpcmVj dG9yeSBjb21wb25lbnQgb2YgQHZhcntmaWxlbmFtZX0uCisKK0BpdGVtIGVjaG8gWy1uIHwg LU5dIFtAdmFye2FyZ31dQGRvdHN7fQorQGNtaW5kZXggZWNobworUHJpbnRzIHRoZSB2YWx1 ZSBvZiBlYWNoIEB2YXJ7YXJnfS4gIEJ5IGRlZmF1bHQsIHRoaXMgcHJpbnRzIGluIGEKK0xp c3AtZnJpZW5kbHkgZmFzaGlvbiAoc28gdGhhdCB0aGUgdmFsdWUgaXMgdXNlZnVsIHRvIGEg TGlzcCBjb21tYW5kCit1c2luZyB0aGUgcmVzdWx0IG9mIEBjb21tYW5ke2VjaG99IGFzIGFu IGFyZ3VtZW50KS4gIElmIGEgc2luZ2xlCithcmd1bWVudCBpcyBwYXNzZWQsIEBjb21tYW5k e2VjaG99IHByaW50cyB0aGF0OyBpZiBtdWx0aXBsZSBhcmd1bWVudHMKK2FyZSBwYXNzZWQs IGl0IHByaW50cyBhIGxpc3Qgb2YgYWxsIHRoZSBhcmd1bWVudHM7IG90aGVyd2lzZSwgaXQK K3ByaW50cyB0aGUgZW1wdHkgc3RyaW5nLgorCitAdmluZGV4IGVzaGVsbC1wbGFpbi1lY2hv LWJlaGF2aW9yCitJZiBAY29kZXtlc2hlbGwtcGxhaW4tZWNoby1iZWhhdmlvcn0gaXMgbm9u LUBjb2Rle25pbH0sIEBjb21tYW5ke2VjaG99Cit3aWxsIHRyeSB0byBiZWhhdmUgbW9yZSBs aWtlIGEgcGxhaW4gc2hlbGwncyBAY29tbWFuZHtlY2hvfSwgcHJpbnRpbmcKK2VhY2ggYXJn dW1lbnQgYXMgYSBzdHJpbmcsIHNlcGFyYXRlZCBieSBhIHNwYWNlLgorCitZb3UgY2FuIGNv bnRyb2wgd2hldGhlciBAY29tbWFuZHtlY2hvfSBvdXRwdXRzIGEgdHJhaWxpbmcgbmV3bGlu ZQordXNpbmcgQGNvZGV7LW59IHRvIGRpc2FibGUgdGhlIHRyYWlsaW5nIG5ld2xpbmUgKHRo ZSBkZWZhdWx0IGJlaGF2aW9yKQorb3IgQGNvZGV7LU59IHRvIGVuYWJsZSBpdCAodGhlIGRl ZmF1bHQgd2hlbgorQGNvZGV7ZXNoZWxsLXBsYWluLWVjaG8tYmVoYXZpb3J9IGlzIG5vbi1A Y29kZXtuaWx9KS4KKworQGl0ZW0gZXNoZWxsLWRlYnVnIFtlcnJvciB8IGZvcm0gfCBwcm9j ZXNzXUBkb3Rze30KK0BjbWluZGV4IGVzaGVsbC1kZWJ1ZworVG9nZ2xlIGRlYnVnZ2luZyBp bmZvcm1hdGlvbiBmb3IgRXNoZWxsIGl0c2VsZi4gIFlvdSBjYW4gcGFzcyB0aGlzCitjb21t YW5kIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOgorCitAaXRlbWl6 ZSBAYnVsbGV0CisKK0BpdGVtCitAY29kZXtlcnJvcn0sIHRvIGVuYWJsZS9kaXNhYmxlIEVz aGVsbCB0cmFwcGluZyBlcnJvcnMgd2hlbgorZXZhbHVhdGluZyBjb21tYW5kczsKKworQGl0 ZW0KK0Bjb2Rle2Zvcm19LCB0byBzaG93L2hpZGUgRXNoZWxsIGNvbW1hbmQgZm9ybSBtYW5p cHVsYXRpb24gaW4gdGhlCitidWZmZXIgQGNvZGV7KmVzaGVsbCBsYXN0IGNtZCp9OyBvcgor CitAaXRlbQorQGNvZGV7cHJvY2Vzc30sIHRvIHNob3cvaGlkZSBleHRlcm5hbCBwcm9jZXNz IGV2ZW50cyBpbiB0aGUgYnVmZmVyCitAY29kZXsqZXNoZWxsIGxhc3QgY21kKn0uCisKK0Bl bmQgaXRlbWl6ZQorCitAaXRlbSBleGl0CitAY21pbmRleCBleGl0CitAdmluZGV4IGVzaGVs bC1raWxsLW9uLWV4aXQKK0V4aXQgRXNoZWxsIGFuZCBzYXZlIHRoZSBoaXN0b3J5LiAgQnkg ZGVmYXVsdCwgdGhpcyBjb21tYW5kIGtpbGxzIHRoZQorRXNoZWxsIGJ1ZmZlciwgYnV0IGlm IEBjb2Rle2VzaGVsbC1raWxsLW9uLWV4aXR9IGlzIEBjb2Rle25pbH0sIHRoZW4KK3RoZSBi dWZmZXIgaXMgbWVyZWx5IGJ1cmllZCBpbnN0ZWFkLgorCitAaXRlbSBoaXN0b3J5IFtAdmFy e259XQorQGl0ZW14IGhpc3RvcnkgWy1hcnddIFtAdmFye2ZpbGVuYW1lfV0KK0BjbWluZGV4 IGhpc3RvcnkKK1ByaW50cyBFc2hlbGwncyBpbnB1dCBoaXN0b3J5LiAgV2l0aCBhIG51bWVy aWMgYXJndW1lbnQgQHZhcntufSwgdGhpcworY29tbWFuZCBwcmludHMgdGhlIEB2YXJ7bn0g bW9zdCByZWNlbnQgaXRlbXMgaW4gdGhlIGhpc3RvcnkuCitBbHRlcm5hdGVseSwgeW91IGNh biBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKworQHRhYmxlIEBhc2lzCisKK0Bp dGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hcHBlbmR9CitBcHBlbmQgbmV3IGhpc3RvcnkgaXRl bXMgdG8gdGhlIGhpc3RvcnkgZmlsZS4KKworQGl0ZW0gQGNvZGV7LXJ9LCBAY29kZXstLXJl YWR9CitSZWFkIGhpc3RvcnkgaXRlbXMgZnJvbSB0aGUgaGlzdG9yeSBmaWxlIGFuZCBhcHBl bmQgdGhlbSB0byB0aGUKK2N1cnJlbnQgc2hlbGwncyBoaXN0b3J5LgorCitAaXRlbSBAY29k ZXstd30sIEBjb2Rley0td3JpdGV9CitXcml0ZSB0aGUgY3VycmVudCBoaXN0b3J5IGxpc3Qg dG8gdGhlIGhpc3RvcnkgZmlsZS4KKworQGVuZCB0YWJsZQorCitAaXRlbSBsaXN0aWZ5IFtA dmFye2FyZ31dQGRvdHN7fQorQGNtaW5kZXggbGlzdGlmeQorUmV0dXJuIHRoZSBhcmd1bWVu dHMgYXMgYSBzaW5nbGUgbGlzdC4gIFdpdGggYSBzaW5nbGUgYXJndW1lbnQsIHJldHVybgor aXQgYXMtaXMgaWYgaXQncyBhbHJlYWR5IGEgbGlzdCwgb3Igb3RoZXJ3aXNlIHdyYXAgaXQg aW4gYSBsaXN0LiAgV2l0aAorbXVsdGlwbGUgYXJndW1lbnRzLCByZXR1cm4gYSBsaXN0IG9m IGFsbCBvZiB0aGVtLgorCitAaXRlbSBtYWtlIFtAdmFye2FyZ31dQGRvdHN7fQorQGNtaW5k ZXggbWFrZQorUnVuIEBjb21tYW5ke21ha2V9IHRocm91Z2ggQGNvZGV7Y29tcGlsZX0gd2hl biBydW4gYXN5bmNocm9ub3VzbHkKKyhlLmcuLCBAc2FtcHttYWtlICZ9KS4gIEB4cmVme0Nv bXBpbGF0aW9uLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MKK01hbnVhbH0uICBPdGhlcndp c2UgY2FsbCB0aGUgZXh0ZXJuYWwgQGNvbW1hbmR7bWFrZX0gY29tbWFuZC4KKworQGl0ZW0g cHJpbnRubCBbQHZhcnthcmd9XUBkb3Rze30KK0BjbWluZGV4IHByaW50bmwKK1ByaW50IGFs bCB0aGUgQHZhcnthcmd9cyBzZXBhcmF0ZWQgYnkgbmV3bGluZXMuCisKK0BpdGVtIHVtYXNr IFstU10KK0BpdGVteCB1bWFzayBAdmFye21vZGV9CitAY21pbmRleCB1bWFzaworVmlldyB0 aGUgZGVmYXVsdCBmaWxlIHBlcm1pc3Npb25zIGZvciBuZXdseSBjcmVhdGVkIGZpbGVzIGFu ZAorZGlyZWN0b3JpZXMuICBJZiB5b3UgcGFzcyBAY29kZXstU30gb3IgQGNvZGV7LS1zeW1i b2xpY30sIHZpZXcgdGhlCittb2RlIHN5bWJvbGljYWxseS4gIFdpdGggQHZhcnttb2RlfSwg c2V0IHRoZSBkZWZhdWx0IHBlcm1pc3Npb25zIHRvCit0aGlzIHZhbHVlLgorCiBAaXRlbSB3 aG9hbWkKIEBjbWluZGV4IHdob2FtaQogUHJpbnQgdGhlIGN1cnJlbnQgdXNlci4gIFRoaXMg RXNoZWxsIHZlcnNpb24gb2YgQGNvbW1hbmR7d2hvYW1pfSBpcwpAQCAtMTE5NSw3ICsxMjM3 LDggQEAgQnVpbHQtaW5zCiBhc3NvY2lhdGVkIHdpdGggdGhhdCBjb25uZWN0aW9uLgogQGVu ZCB0YWJsZQogCi1Ac3Vic2VjdGlvbiBEZWZpbmluZyBuZXcgYnVpbHQtaW4gY29tbWFuZHMK K0Bub2RlIERlZmluaW5nIE5ldyBCdWlsdC1pbiBDb21tYW5kcworQHN1YnNlY3Rpb24gRGVm aW5pbmcgTmV3IEJ1aWx0LWluIENvbW1hbmRzCiBXaGlsZSBFc2hlbGwgY2FuIHJ1biBMaXNw IGZ1bmN0aW9ucyBkaXJlY3RseSBhcyBjb21tYW5kcywgaXQgbWF5IGJlCiBtb3JlIGNvbnZl bmllbnQgdG8gcHJvdmlkZSBhIHNwZWNpYWwgYnVpbHQtaW4gY29tbWFuZCBmb3IKIEVzaGVs bC4gIEJ1aWx0LWluIGNvbW1hbmRzIGFyZSBqdXN0IG9yZGluYXJ5IExpc3AgZnVuY3Rpb25z IGRlc2lnbmVkCi0tIAoyLjI1LjEKCg== --------------kf40TWkKs0Hp0Bo9JkxrEbjG--