From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Corwin Brust Newsgroups: gmane.emacs.devel Subject: Re: [External] : Editions to the Widget Manual Date: Mon, 21 Aug 2023 11:52:44 -0500 Message-ID: References: <4776bb96-16d4-6d77-d7a8-4fc949070bf5@gmail.com> <70eee807-7791-0778-36cc-27a76803815b@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000c5860b060371b5ce" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6550"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel To: Drew Adams Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Aug 21 18:54:14 2023 Return-path: Envelope-to: ged-emacs-devel@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 1qY8AN-0001bK-3e for ged-emacs-devel@m.gmane-mx.org; Mon, 21 Aug 2023 18:54:13 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qY89Q-0003JZ-LK; Mon, 21 Aug 2023 12:53:12 -0400 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 1qY89K-0003JO-8z for emacs-devel@gnu.org; Mon, 21 Aug 2023 12:53:06 -0400 Original-Received: from mail-ot1-f46.google.com ([209.85.210.46]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qY89B-0003NH-Gi for emacs-devel@gnu.org; Mon, 21 Aug 2023 12:53:06 -0400 Original-Received: by mail-ot1-f46.google.com with SMTP id 46e09a7af769-6bcb15aa074so1929981a34.0 for ; Mon, 21 Aug 2023 09:52:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692636776; x=1693241576; 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=jYY4mbn9fsnf4MCES/D45iONBcwXjY2X89xFhIC2cmU=; b=HwV7rGYLNxN2ouiYut2O5g6pJoU6lURNpxBSqdhQ3voEVrHk5BcoZhIF4lduU23h1b e8FOPF4zDQS5ob0wU9LJ0fdvMesWbsylBb0ezyJC7VDm3dfXqdNXSEykBbszr1rIBkdF ZC00wp9eNnjzcI5pQDPJpqjYmQK01rpNJeSeYLfH6+l2+kbDcx+HHHCs4jb/dPQKIAup Qz8VdZQSbM3yrb27RTabpMw6JHM41e/c3sZ+ZGMHQHqIjz7iX5hapP27Ca/RjJrH66Rr Pa1lsK5VKzOKRAq5SJGJmjPnav6AW1HVuHw9giOG9jnKUk9fO1XMqr+/RDl8BmUaxR8n bczQ== X-Gm-Message-State: AOJu0YzTZvDYC/piVddXpNFxsDZ48ystFjvgw6K3K9PpulMAhP8sRp2X CGitLrJIE526XuuZIGJ5a3lTbZGfp9RhXa9BNNZmNYAX5KI= X-Google-Smtp-Source: AGHT+IHvOfbQFkcCCK56E31GtZzEInFKk63b8UJqjWHV+i6tN0VSgAXeNft7y+3l41cviGyZ0iNekqtGpY32dDj2uPA= X-Received: by 2002:a9d:460f:0:b0:6bd:9fe2:a62a with SMTP id y15-20020a9d460f000000b006bd9fe2a62amr3991549ote.7.1692636776060; Mon, 21 Aug 2023 09:52:56 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=209.85.210.46; envelope-from=mplscorwin@gmail.com; helo=mail-ot1-f46.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, OBFU_TEXT_ATTACH=0.691, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:309088 Archived-At: --000000000000c5860b060371b5ce Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Aug 21, 2023 at 10:42=E2=80=AFAM Drew Adams = wrote: > > Even a plain-text diff/patch would be more helpful I've attached plain text versions (makeinfo --plaintext) with and without the patch as well as a diff -u contrasting them. hth --000000000000c5860b060371b5ce Content-Type: text/plain; charset="UTF-8"; name="widget.orig_texi.txt" Content-Disposition: attachment; filename="widget.orig_texi.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lll47ie21 VGhlIEVtYWNzIFdpZGdldCBMaWJyYXJ5CjEgSW50cm9kdWN0aW9uCjIgVXNlciBJbnRlcmZhY2UK ICAyLjEgRWRpdGFibGUgVGV4dCBGaWVsZHMKICAyLjIgQnV0dG9ucwogIDIuMyBOYXZpZ2F0aW9u CjMgUHJvZ3JhbW1pbmcgRXhhbXBsZQo0IFNldHRpbmcgVXAgdGhlIEJ1ZmZlcgo1IEJhc2ljIFR5 cGVzCiAgNS4xIFRoZSDigJhsaW5r4oCZIFdpZGdldAogIDUuMiBUaGUg4oCYdXJsLWxpbmvigJkg V2lkZ2V0CiAgNS4zIFRoZSDigJhpbmZvLWxpbmvigJkgV2lkZ2V0CiAgNS40IFRoZSDigJhwdXNo LWJ1dHRvbuKAmSBXaWRnZXQKICA1LjUgVGhlIOKAmGVkaXRhYmxlLWZpZWxk4oCZIFdpZGdldAog IDUuNiBUaGUg4oCYdGV4dOKAmSBXaWRnZXQKICA1LjcgVGhlIOKAmG1lbnUtY2hvaWNl4oCZIFdp ZGdldAogIDUuOCBUaGUg4oCYcmFkaW8tYnV0dG9uLWNob2ljZeKAmSBXaWRnZXQKICA1LjkgVGhl IOKAmGl0ZW3igJkgV2lkZ2V0CiAgNS4xMCBUaGUg4oCYY2hvaWNlLWl0ZW3igJkgV2lkZ2V0CiAg NS4xMSBUaGUg4oCYdG9nZ2xl4oCZIFdpZGdldAogIDUuMTIgVGhlIOKAmGNoZWNrYm944oCZIFdp ZGdldAogIDUuMTMgVGhlIOKAmGNoZWNrbGlzdOKAmSBXaWRnZXQKICA1LjE0IFRoZSDigJhlZGl0 YWJsZS1saXN04oCZIFdpZGdldAogIDUuMTUgVGhlIOKAmGdyb3Vw4oCZIFdpZGdldAo2IFNleHAg VHlwZXMKICA2LjEgVGhlIENvbnN0YW50IFdpZGdldHMKICA2LjIgR2VuZXJpYyBTZXhwIFdpZGdl dAogIDYuMyBBdG9taWMgU2V4cCBXaWRnZXRzCiAgNi40IENvbXBvc2l0ZSBTZXhwIFdpZGdldHMK NyBQcm9wZXJ0aWVzCjggRGVmaW5pbmcgTmV3IFdpZGdldHMKOSBXaWRnZXQgQnJvd3NlcgoxMCBX aWRnZXQgTWlub3IgTW9kZQoxMSBVdGlsaXRpZXMKMTIgV2lzaGxpc3QKQXBwZW5kaXggQSBHTlUg RnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UKSW5kZXgKVGhlIEVtYWNzIFdpZGdldCBMaWJyYXJ5 CioqKioqKioqKioqKioqKioqKioqKioqKgoKQ29weXJpZ2h0IMKpIDIwMDDigJMyMDIzIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoKICAgICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8g Y29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKICAgICBkb2N1bWVudCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwKICAgICBWZXJz aW9uIDEuMyBvciBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUKICAgICBGb3VuZGF0aW9uOyB3aXRoIG5vIEludmFyaWFudCBTZWN0aW9ucywgd2l0aCB0aGUg RnJvbnQtQ292ZXIgVGV4dHMKICAgICBiZWluZyDigJxBIEdOVSBNYW51YWzigJ0sIGFuZCB3aXRo IHRoZSBCYWNrLUNvdmVyIFRleHRzIGFzIGluIChhKQogICAgIGJlbG93LiAgQSBjb3B5IG9mIHRo ZSBsaWNlbnNlIGlzIGluY2x1ZGVkIGluIHRoZSBzZWN0aW9uIGVudGl0bGVkCiAgICAg4oCcR05V IEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNl4oCdLgoKICAgICAoYSkgVGhlIEZTRuKAmXMgQmFj ay1Db3ZlciBUZXh0IGlzOiDigJxZb3UgaGF2ZSB0aGUgZnJlZWRvbSB0byBjb3B5IGFuZAogICAg IG1vZGlmeSB0aGlzIEdOVSBtYW51YWwu4oCdCgoxIEludHJvZHVjdGlvbgoqKioqKioqKioqKioq KgoKTW9zdCBncmFwaGljYWwgdXNlciBpbnRlcmZhY2UgdG9vbGtpdHMgcHJvdmlkZSBhIG51bWJl ciBvZiBzdGFuZGFyZCB1c2VyCmludGVyZmFjZSBjb250cm9scyAoc29tZXRpbWVzIGtub3duIGFz IOKAnHdpZGdldHPigJ0gb3Ig4oCcZ2FkZ2V0c+KAnSkuICBFbWFjcwpkb2VzbuKAmXQgcmVhbGx5 IHN1cHBvcnQgYW55dGhpbmcgbGlrZSB0aGlzLCBleGNlcHQgZm9yIGFuIGluY3JlZGlibHkKcG93 ZXJmdWwgdGV4dCDigJx3aWRnZXQu4oCdIE9uIHRoZSBvdGhlciBoYW5kLCBFbWFjcyBkb2VzIHBy b3ZpZGUgdGhlCm5lY2Vzc2FyeSBwcmltaXRpdmVzIHRvIGltcGxlbWVudCBtYW55IG90aGVyIHdp ZGdldHMgd2l0aGluIGEgdGV4dApidWZmZXIuICBUaGUg4oCYd2lkZ2V04oCZIHBhY2thZ2Ugc2lt cGxpZmllcyB0aGlzIHRhc2suCgogICBUaGUgYmFzaWMgd2lkZ2V0cyBhcmU6CgrigJhsaW5r4oCZ CiAgICAgQXJlYXMgb2YgdGV4dCB3aXRoIGFuIGFzc29jaWF0ZWQgYWN0aW9uLiAgSW50ZW5kZWQg Zm9yIGh5cGVydGV4dAogICAgIGxpbmtzIGVtYmVkZGVkIGluIHRleHQuCuKAmHB1c2gtYnV0dG9u 4oCZCiAgICAgTGlrZSBsaW5rLCBidXQgaW50ZW5kZWQgZm9yIHN0YW5kLWFsb25lIGJ1dHRvbnMu CuKAmGVkaXRhYmxlLWZpZWxk4oCZCiAgICAgQW4gZWRpdGFibGUgdGV4dCBmaWVsZC4gIEl0IGNh biBiZSBlaXRoZXIgdmFyaWFibGUgb3IgZml4ZWQgbGVuZ3RoLgrigJhtZW51LWNob2ljZeKAmQog ICAgIEFsbG93cyB0aGUgdXNlciB0byBjaG9vc2Ugb25lIG9mIG11bHRpcGxlIG9wdGlvbnMgZnJv bSBhIG1lbnUsIGVhY2gKICAgICBvcHRpb24gaXMgaXRzZWxmIGEgd2lkZ2V0LiAgT25seSB0aGUg c2VsZWN0ZWQgb3B0aW9uIHdpbGwgYmUKICAgICB2aXNpYmxlIGluIHRoZSBidWZmZXIuCuKAmHJh ZGlvLWJ1dHRvbi1jaG9pY2XigJkKICAgICBBbGxvd3MgdGhlIHVzZXIgdG8gY2hvb3NlIG9uZSBv ZiBtdWx0aXBsZSBvcHRpb25zIGJ5IGFjdGl2YXRpbmcKICAgICByYWRpbyBidXR0b25zLiAgVGhl IG9wdGlvbnMgYXJlIGltcGxlbWVudGVkIGFzIHdpZGdldHMuICBBbGwKICAgICBvcHRpb25zIHdp bGwgYmUgdmlzaWJsZSBpbiB0aGUgYnVmZmVyLgrigJhpdGVt4oCZCiAgICAgQSBzaW1wbGUgY29u c3RhbnQgd2lkZ2V0IGludGVuZGVkIHRvIGJlIHVzZWQgaW4gdGhlIOKAmG1lbnUtY2hvaWNl4oCZ CiAgICAgYW5kIOKAmHJhZGlvLWJ1dHRvbi1jaG9pY2XigJkgd2lkZ2V0cy4K4oCYY2hvaWNlLWl0 ZW3igJkKICAgICBBIGJ1dHRvbiBpdGVtIG9ubHkgaW50ZW5kZWQgZm9yIHVzZSBpbiBjaG9pY2Vz LiAgV2hlbiBpbnZva2VkLCB0aGUKICAgICB1c2VyIHdpbGwgYmUgYXNrZWQgdG8gc2VsZWN0IGFu b3RoZXIgb3B0aW9uIGZyb20gdGhlIGNob2ljZSB3aWRnZXQuCuKAmHRvZ2dsZeKAmQogICAgIEEg c2ltcGxlIOKAmG9u4oCZL+KAmG9mZuKAmSBzd2l0Y2guCuKAmGNoZWNrYm944oCZCiAgICAgQSBj aGVja2JveCAo4oCYWyBd4oCZL+KAmFtYXeKAmSkuCuKAmGVkaXRhYmxlLWxpc3TigJkKICAgICBD cmVhdGUgYW4gZWRpdGFibGUgbGlzdC4gIFRoZSB1c2VyIGNhbiBpbnNlcnQgb3IgZGVsZXRlIGl0 ZW1zIGluCiAgICAgdGhlIGxpc3QuICBFYWNoIGxpc3QgaXRlbSBpcyBpdHNlbGYgYSB3aWRnZXQu CgogICBOb3csIG9mIHdoYXQgcG9zc2libGUgdXNlIGNhbiBzdXBwb3J0IGZvciB3aWRnZXRzIGJl IGluIGEgdGV4dAplZGl0b3I/ICBJ4oCZbSBnbGFkIHlvdSBhc2tlZC4gIFRoZSBhbnN3ZXIgaXMg dGhhdCB3aWRnZXRzIGFyZSB1c2VmdWwgZm9yCmltcGxlbWVudGluZyBmb3Jtcy4gIEEg4oCcZm9y beKAnSBpbiBFbWFjcyBpcyBhIGJ1ZmZlciB3aGVyZSB0aGUgdXNlciBpcwpzdXBwb3NlZCB0byBm aWxsIG91dCBhIG51bWJlciBvZiBmaWVsZHMsIGVhY2ggb2Ygd2hpY2ggaGFzIGEgc3BlY2lmaWMK bWVhbmluZy4gIFRoZSB1c2VyIGlzIG5vdCBzdXBwb3NlZCB0byBjaGFuZ2Ugb3IgZGVsZXRlIGFu eSBvZiB0aGUgdGV4dApiZXR3ZWVuIHRoZSBmaWVsZHMuICBFeGFtcGxlcyBvZiBmb3JtcyBpbiBF bWFjcyBhcmUgdGhlIOKAmGZvcm1z4oCZIHBhY2thZ2UKKG9mIGNvdXJzZSksIHRoZSBjdXN0b21p emUgYnVmZmVycywgdGhlIG1haWwgYW5kIG5ld3MgY29tcG9zZSBtb2RlcywgYW5kCnRoZSBIVE1M IGZvcm0gc3VwcG9ydCBpbiB0aGUg4oCYdzPigJkgYnJvd3Nlci4KCiAgIFRoZSBhZHZhbnRhZ2Vz IGZvciBhIHByb2dyYW1tZXIgb2YgdXNpbmcgdGhlIOKAmHdpZGdldOKAmSBwYWNrYWdlIHRvCmlt cGxlbWVudCBmb3JtcyBhcmU6CgogIDEuIE1vcmUgY29tcGxleCBmaWVsZHMgdGhhbiBqdXN0IGVk aXRhYmxlIHRleHQgYXJlIHN1cHBvcnRlZC4KICAyLiBZb3UgY2FuIGdpdmUgdGhlIHVzZXJzIGlt bWVkaWF0ZSBmZWVkYmFjayBpZiB0aGV5IGVudGVyIGludmFsaWQKICAgICBkYXRhIGluIGEgdGV4 dCBmaWVsZCwgYW5kIHNvbWV0aW1lcyBwcmV2ZW50IGVudGVyaW5nIGludmFsaWQgZGF0YS4KICAz LiBZb3UgY2FuIGhhdmUgZml4ZWQgc2l6ZWQgZmllbGRzLCB0aHVzIGFsbG93aW5nIG11bHRpcGxl IGZpZWxkcyB0bwogICAgIGJlIGxpbmVkIHVwIGluIGNvbHVtbnMuCiAgNC4gSXQgaXMgc2ltcGxl IHRvIHF1ZXJ5IG9yIHNldCB0aGUgdmFsdWUgb2YgYSBmaWVsZC4KICA1LiBFZGl0aW5nIGhhcHBl bnMgaW4gdGhlIGJ1ZmZlciwgbm90IGluIHRoZSBtaW5pLWJ1ZmZlci4KICA2LiBQYWNrYWdlcyB1 c2luZyB0aGUgbGlicmFyeSBnZXQgYSB1bmlmb3JtIGxvb2ssIG1ha2luZyB0aGVtIGVhc2llcgog ICAgIGZvciB0aGUgdXNlciB0byBsZWFybi4KICA3LiBBcyBzdXBwb3J0IGZvciBlbWJlZGRlZCBn cmFwaGljcyBpbXByb3ZlLCB0aGUgd2lkZ2V0IGxpYnJhcnkgd2lsbAogICAgIGJlIGV4dGVuZGVk IHRvIHVzZSB0aGUgR1VJIGZlYXR1cmVzLiAgVGhpcyBtZWFucyB0aGF0IHlvdXIgY29kZQogICAg IHVzaW5nIHRoZSB3aWRnZXQgbGlicmFyeSB3aWxsIGFsc28gdXNlIHRoZSBuZXcgZ3JhcGhpYyBm ZWF0dXJlcwogICAgIGF1dG9tYXRpY2FsbHkuCgoyIFVzZXIgSW50ZXJmYWNlCioqKioqKioqKioq KioqKioKCkEgZm9ybSBjb25zaXN0cyBvZiByZWFkIG9ubHkgdGV4dCBmb3IgZG9jdW1lbnRhdGlv biBhbmQgc29tZSBmaWVsZHMsCndoZXJlIGVhY2ggZmllbGQgY29udGFpbnMgdHdvIHBhcnRzLCBh IHRhZyBhbmQgYSB2YWx1ZS4gIFRoZSB0YWdzIGFyZQp1c2VkIHRvIGlkZW50aWZ5IHRoZSBmaWVs ZHMsIHNvIHRoZSBkb2N1bWVudGF0aW9uIGNhbiByZWZlciB0byB0aGUg4oCYZm9vCmZpZWxk4oCZ LCBtZWFuaW5nIHRoZSBmaWVsZCB0YWdnZWQgd2l0aCDigJhGb2/igJkuICBIZXJlIGlzIGFuIGV4 YW1wbGUgZm9ybToKCiAgICAgSGVyZSBpcyBzb21lIGRvY3VtZW50YXRpb24uCgogICAgIE5hbWU6 IE15IE5hbWUgICAgICpDaG9vc2UqOiBUaGlzIG9wdGlvbgogICAgIEFkZHJlc3M6ICBTb21lIFBs YWNlCiAgICAgSW4gc29tZSBDaXR5CiAgICAgU29tZSBjb3VudHJ5LgoKICAgICBTZWUgYWxzbyBf b3RoZXIgd29ya18gZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogICAgIE51bWJlcnM6IGNvdW50IHRv IHRocmVlIGJlbG93CiAgICAgW0lOU10gW0RFTF0gT25lCiAgICAgW0lOU10gW0RFTF0gRWgsIHR3 bz8KICAgICBbSU5TXSBbREVMXSBGaXZlIQogICAgIFtJTlNdCgogICAgIFNlbGVjdCBtdWx0aXBs ZToKCiAgICAgW1hdIFRoaXMKICAgICBbIF0gVGhhdAogICAgIFtYXSBUaHVzCgogICAgIFNlbGVj dCBvbmU6CgogICAgICgqKSBPbmUKICAgICAoICkgQW5vdGhlciBPbmUuCiAgICAgKCApIEEgRmlu YWwgT25lLgoKICAgICBbQXBwbHkgRm9ybV0gW1Jlc2V0IEZvcm1dCgogICBUaGUgdG9wIGxldmVs IHdpZGdldHMgaW4gdGhpcyBleGFtcGxlIGFyZSB0YWdnZWQg4oCYTmFtZeKAmSwg4oCYQ2hvb3Nl 4oCZLArigJhBZGRyZXNz4oCZLCDigJhfb3RoZXIgd29ya1/igJksIOKAmE51bWJlcnPigJksIOKA mFNlbGVjdCBtdWx0aXBsZeKAmSwg4oCYU2VsZWN0IG9uZeKAmSwK4oCYW0FwcGx5IEZvcm1d4oCZ LCBhbmQg4oCYW1Jlc2V0IEZvcm1d4oCZLiAgVGhlcmUgYXJlIGJhc2ljYWxseSB0d28gdGhpbmdz IHRoZQp1c2VyIGNhbiBkbyB3aXRoaW4gYSBmb3JtLCBuYW1lbHkgZWRpdGluZyB0aGUgZWRpdGFi bGUgdGV4dCBmaWVsZHMgYW5kCmFjdGl2YXRpbmcgdGhlIGJ1dHRvbnMuCgoyLjEgRWRpdGFibGUg VGV4dCBGaWVsZHMKPT09PT09PT09PT09PT09PT09PT09PT09CgpJbiB0aGUgZXhhbXBsZSwgdGhl IHZhbHVlIGZvciB0aGUg4oCYTmFtZeKAmSBpcyBtb3N0IGxpa2VseSBkaXNwbGF5ZWQgaW4gYW4K ZWRpdGFibGUgdGV4dCBmaWVsZCwgYW5kIHNvIGFyZSB2YWx1ZXMgZm9yIGVhY2ggb2YgdGhlIG1l bWJlcnMgb2YgdGhlCuKAmE51bWJlcnPigJkgbGlzdC4gIEFsbCB0aGUgbm9ybWFsIEVtYWNzIGVk aXRpbmcgb3BlcmF0aW9ucyBhcmUgYXZhaWxhYmxlCmZvciBlZGl0aW5nIHRoZXNlIGZpZWxkcy4g IFRoZSBvbmx5IHJlc3RyaWN0aW9uIGlzIHRoYXQgZWFjaCBjaGFuZ2UgeW91Cm1ha2UgbXVzdCBi ZSBjb250YWluZWQgd2l0aGluIGEgc2luZ2xlIGVkaXRhYmxlIHRleHQgZmllbGQuICBGb3IKZXhh bXBsZSwgY2FwaXRhbGl6aW5nIGFsbCB0ZXh0IGZyb20gdGhlIG1pZGRsZSBvZiBvbmUgZmllbGQg dG8gdGhlCm1pZGRsZSBvZiBhbm90aGVyIGZpZWxkIGlzIHByb2hpYml0ZWQuCgogICBFZGl0YWJs ZSB0ZXh0IGZpZWxkcyBhcmUgY3JlYXRlZCBieSB0aGUg4oCYZWRpdGFibGUtZmllbGTigJkgd2lk Z2V0LgoKICAgKldhcm5pbmc6KiBJbiBhbiDigJhlZGl0YWJsZS1maWVsZOKAmSB3aWRnZXQsIHRo ZSBlZGl0YWJsZSBmaWVsZCBtdXN0IG5vdApiZSBhZGphY2VudCB0byBhbm90aGVyIHdpZGdldOKA lHRoYXQgd29u4oCZdCB3b3JrLiAgWW91IG11c3QgcHV0IHNvbWUgdGV4dAppbiBiZXR3ZWVuLiAg RWl0aGVyIG1ha2UgdGhpcyB0ZXh0IHBhcnQgb2YgdGhlIOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdp ZGdldAppdHNlbGYsIG9yIGluc2VydCBpdCB3aXRoIOKAmHdpZGdldC1pbnNlcnTigJkuCgogICBU aGUg4oCYOmZvcm1hdOKAmSBrZXl3b3JkIGlzIHVzZWZ1bCBmb3IgZ2VuZXJhdGluZyB0aGUgbmVj ZXNzYXJ5IHRleHQ7CmZvciBpbnN0YW5jZSwgaWYgeW91IGdpdmUgaXQgYSB2YWx1ZSBvZiDigJgi TmFtZTogJXYgIuKAmSwgdGhlIOKAmE5hbWU6IOKAmSBwYXJ0CndpbGwgcHJvdmlkZSB0aGUgbmVj ZXNzYXJ5IHNlcGFyYXRpbmcgdGV4dCBiZWZvcmUgdGhlIGZpZWxkIGFuZCB0aGUKdHJhaWxpbmcg c3BhY2Ugd2lsbCBwcm92aWRlIHRoZSBzZXBhcmF0aW5nIHRleHQgYWZ0ZXIgdGhlIGZpZWxkLiAg SWYgeW91CmRvbuKAmXQgaW5jbHVkZSB0aGUg4oCYOnNpemXigJkga2V5d29yZCwgdGhlIGZpZWxk IHdpbGwgZXh0ZW5kIHRvIHRoZSBlbmQgb2YKdGhlIGxpbmUsIGFuZCB0aGUgdGVybWluYXRpbmcg bmV3bGluZSB3aWxsIHByb3ZpZGUgc2VwYXJhdGlvbiBhZnRlci4KCiAgICpXYXJuaW5nOiogSW4g YW4g4oCYZWRpdGFibGUtZmllbGTigJkgd2lkZ2V0LCB0aGUg4oCYJXbigJkgZXNjYXBlIG11c3Qg YmUKcHJlY2VkZWQgYnkgc29tZSBvdGhlciB0ZXh0IGluIHRoZSDigJg6Zm9ybWF04oCZIHN0cmlu ZyAoaWYgc3BlY2lmaWVkKS4KCiAgIFRoZSBlZGl0aW5nIHRleHQgZmllbGRzIGFyZSBoaWdobGln aHRlZCB3aXRoIHRoZSDigJh3aWRnZXQtZmllbGQtZmFjZeKAmQpmYWNlLCBtYWtpbmcgdGhlbSBl YXN5IHRvIGZpbmQuCgogLS0gRmFjZTogd2lkZ2V0LWZpZWxkLWZhY2UKICAgICBGYWNlIHVzZWQg Zm9yIG90aGVyIGVkaXRpbmcgZmllbGRzLgoKMi4yIEJ1dHRvbnMKPT09PT09PT09PT0KClNvbWUg cG9ydGlvbnMgb2YgdGhlIGJ1ZmZlciBoYXZlIGFuIGFzc29jaWF0ZWQg4oCcYWN0aW9u4oCdLCB3 aGljaCBjYW4gYmUK4oCcaW52b2tlZOKAnSBieSBhIHN0YW5kYXJkIGtleSBvciBtb3VzZSBjb21t YW5kLiAgVGhlc2UgcG9ydGlvbnMgYXJlIGNhbGxlZArigJxidXR0b25z4oCdLiAgVGhlIGRlZmF1 bHQgY29tbWFuZHMgZm9yIGFjdGl2YXRpbmcgYSBidXR0b24gYXJlOgoK4oCYPFJFVD7igJkKICAg ICAgLS0gQ29tbWFuZDogd2lkZ2V0LWJ1dHRvbi1wcmVzcyBQT1MgJm9wdGlvbmFsIEVWRU5UCiAg ICAgICAgICBJbnZva2UgdGhlIGJ1dHRvbiBhdCBQT1MsIGRlZmF1bHRpbmcgdG8gcG9pbnQuICBJ ZiBwb2ludCBpcwogICAgICAgICAgbm90IGxvY2F0ZWQgb24gYSBidXR0b24sIGludm9rZSB0aGUg YmluZGluZyBpbgogICAgICAgICAg4oCYd2lkZ2V0LWdsb2JhbC1tYXDigJkgKGJ5IGRlZmF1bHQg dGhlIGdsb2JhbCBtYXApLgoK4oCYbW91c2UtMuKAmQogICAgICAtLSBDb21tYW5kOiB3aWRnZXQt YnV0dG9uLWNsaWNrIEVWRU5UCiAgICAgICAgICBJbnZva2UgdGhlIGJ1dHRvbiBhdCB0aGUgbG9j YXRpb24gb2YgdGhlIG1vdXNlIHBvaW50ZXIuICBJZgogICAgICAgICAgdGhlIG1vdXNlIHBvaW50 ZXIgaXMgbG9jYXRlZCBpbiBhbiBlZGl0YWJsZSB0ZXh0IGZpZWxkLCBpbnZva2UKICAgICAgICAg IHRoZSBiaW5kaW5nIGluIOKAmHdpZGdldC1nbG9iYWwtbWFw4oCZIChieSBkZWZhdWx0IHRoZSBn bG9iYWwKICAgICAgICAgIG1hcCkuCgogICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQga2lu ZCBvZiBidXR0b25zLCBhbGwgb2Ygd2hpY2ggYXJlIHByZXNlbnQKaW4gdGhlIGV4YW1wbGU6Cgpf VGhlIE9wdGlvbiBGaWVsZCBUYWdzXwogICAgIFdoZW4geW91IGludm9rZSBvbmUgb2YgdGhlc2Ug YnV0dG9ucywgeW91IHdpbGwgYmUgYXNrZWQgdG8gY2hvb3NlCiAgICAgYmV0d2VlbiBhIG51bWJl ciBvZiBkaWZmZXJlbnQgb3B0aW9ucy4gIFRoaXMgaXMgaG93IHlvdSBlZGl0IGFuCiAgICAgb3B0 aW9uIGZpZWxkLiAgT3B0aW9uIGZpZWxkcyBhcmUgY3JlYXRlZCBieSB0aGUg4oCYbWVudS1jaG9p Y2XigJkKICAgICB3aWRnZXQuICBJbiB0aGUgZXhhbXBsZSwg4oCYQ2hvb3Nl4oCZIGlzIGFuIG9w dGlvbiBmaWVsZCB0YWcuCl9UaGUg4oCYW0lOU13igJkgYW5kIOKAmFtERUxd4oCZIGJ1dHRvbnNf CiAgICAgQWN0aXZhdGluZyB0aGVzZSB3aWxsIGluc2VydCBvciBkZWxldGUgZWxlbWVudHMgZnJv bSBhbiBlZGl0YWJsZQogICAgIGxpc3QuICBUaGUgbGlzdCBpcyBjcmVhdGVkIGJ5IHRoZSDigJhl ZGl0YWJsZS1saXN04oCZIHdpZGdldC4KX0VtYmVkZGVkIEJ1dHRvbnNfCiAgICAgVGhlIOKAmF9v dGhlciB3b3JrX+KAmSBpcyBhbiBleGFtcGxlIG9mIGFuIGVtYmVkZGVkIGJ1dHRvbi4gIEVtYmVk ZGVkCiAgICAgYnV0dG9ucyBhcmUgbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgZmllbGRzLCBidXQg Y2FuIHNlcnZlIGFueQogICAgIHB1cnBvc2UsIHN1Y2ggYXMgaW1wbGVtZW50aW5nIGh5cGVydGV4 dCByZWZlcmVuY2VzLiAgVGhleSBhcmUKICAgICB1c3VhbGx5IGNyZWF0ZWQgYnkgdGhlIOKAmGxp bmvigJkgd2lkZ2V0LgpfVGhlIOKAmFsgXeKAmSBhbmQg4oCYW1hd4oCZIGJ1dHRvbnNfCiAgICAg QWN0aXZhdGluZyBvbmUgb2YgdGhlc2Ugd2lsbCBjb252ZXJ0IGl0IHRvIHRoZSBvdGhlci4gIFRo aXMgaXMKICAgICB1c2VmdWwgZm9yIGltcGxlbWVudGluZyBtdWx0aXBsZS1jaG9pY2UgZmllbGRz LiAgWW91IGNhbiBjcmVhdGUKICAgICB0aGVtIHdpdGggdGhlIOKAmGNoZWNrYm944oCZIHdpZGdl dC4KX1RoZSDigJgoICnigJkgYW5kIOKAmCgqKeKAmSBidXR0b25zXwogICAgIE9ubHkgb25lIHJh ZGlvIGJ1dHRvbiBpbiBhIOKAmHJhZGlvLWJ1dHRvbi1jaG9pY2XigJkgd2lkZ2V0IGNhbiBiZQog ICAgIHNlbGVjdGVkIGF0IGFueSB0aW1lLiAgV2hlbiB5b3UgaW52b2tlIG9uZSBvZiB0aGUgdW5z ZWxlY3RlZCByYWRpbwogICAgIGJ1dHRvbnMsIGl0IHdpbGwgYmUgc2VsZWN0ZWQgYW5kIHRoZSBw cmV2aW91cyBzZWxlY3RlZCByYWRpbyBidXR0b24KICAgICB3aWxsIGJlY29tZSB1bnNlbGVjdGVk LgpfVGhlIOKAmFtBcHBseSBGb3JtXeKAmSBhbmQg4oCYW1Jlc2V0IEZvcm1d4oCZIGJ1dHRvbnNf CiAgICAgVGhlc2UgYXJlIGV4cGxpY2l0IGJ1dHRvbnMgbWFkZSB3aXRoIHRoZSDigJhwdXNoLWJ1 dHRvbuKAmSB3aWRnZXQuICBUaGUKICAgICBtYWluIGRpZmZlcmVuY2UgZnJvbSB0aGUg4oCYbGlu a+KAmSB3aWRnZXQgaXMgdGhhdCB0aGUgYnV0dG9ucyB3aWxsIGJlCiAgICAgZGlzcGxheWVkIGFz IEdVSSBidXR0b25zIHdoZW4gcG9zc2libGUuCgogICBUbyBtYWtlIHRoZW0gZWFzaWVyIHRvIGxv Y2F0ZSwgYnV0dG9ucyBhcmUgZW1waGFzaXplZCBpbiB0aGUgYnVmZmVyLgoKIC0tIEZhY2U6IHdp ZGdldC1idXR0b24tZmFjZQogICAgIEZhY2UgdXNlZCBmb3IgYnV0dG9ucy4KCiAtLSBVc2VyIE9w dGlvbjogd2lkZ2V0LW1vdXNlLWZhY2UKICAgICBGYWNlIHVzZWQgZm9yIGhpZ2hsaWdodGluZyBh IGJ1dHRvbiB3aGVuIHRoZSBtb3VzZSBwb2ludGVyIG1vdmVzCiAgICAgYWNyb3NzIGl0LgoKMi4z IE5hdmlnYXRpb24KPT09PT09PT09PT09PT0KCllvdSBjYW4gdXNlIGFsbCB0aGUgbm9ybWFsIEVt YWNzIGNvbW1hbmRzIHRvIG1vdmUgYXJvdW5kIGluIGEgZm9ybQpidWZmZXIsIHBsdXMgeW91IHdp bGwgaGF2ZSB0aGVzZSBhZGRpdGlvbmFsIGNvbW1hbmRzOgoK4oCYPFRBQj7igJkKICAgICAgLS0g Q29tbWFuZDogd2lkZ2V0LWZvcndhcmQgJm9wdGlvbmFsIGNvdW50CiAgICAgICAgICBNb3ZlIHBv aW50IENPVU5UIGJ1dHRvbnMgb3IgZWRpdGluZyBmaWVsZHMgZm9yd2FyZC4K4oCYTS08VEFCPuKA mQrigJhTLTxUQUI+4oCZCiAgICAgIC0tIENvbW1hbmQ6IHdpZGdldC1iYWNrd2FyZCAmb3B0aW9u YWwgY291bnQKICAgICAgICAgIE1vdmUgcG9pbnQgQ09VTlQgYnV0dG9ucyBvciBlZGl0aW5nIGZp ZWxkcyBiYWNrd2FyZC4KCjMgUHJvZ3JhbW1pbmcgRXhhbXBsZQoqKioqKioqKioqKioqKioqKioq KioKCkhlcmUgaXMgdGhlIGNvZGUgdG8gaW1wbGVtZW50IHRoZSB1c2VyIGludGVyZmFjZSBleGFt cGxlICgqbm90ZSBVc2VyCkludGVyZmFjZTo6KS4KCiAgICAgKHJlcXVpcmUgJ3dpZGdldCkKCiAg ICAgKGV2YWwtd2hlbi1jb21waWxlCiAgICAgICAocmVxdWlyZSAnd2lkLWVkaXQpKQoKICAgICAo ZGVmdmFyIHdpZGdldC1leGFtcGxlLXJlcGVhdCkKCiAgICAgKGRlZnVuIHdpZGdldC1leGFtcGxl ICgpCiAgICAgICAiQ3JlYXRlIHRoZSB3aWRnZXRzIGZyb20gdGhlIFdpZGdldCBtYW51YWwuIgog ICAgICAgKGludGVyYWN0aXZlKQogICAgICAgKHN3aXRjaC10by1idWZmZXIgIipXaWRnZXQgRXhh bXBsZSoiKQogICAgICAgKGtpbGwtYWxsLWxvY2FsLXZhcmlhYmxlcykKICAgICAgIChtYWtlLWxv Y2FsLXZhcmlhYmxlICd3aWRnZXQtZXhhbXBsZS1yZXBlYXQpCiAgICAgICAobGV0ICgoaW5oaWJp dC1yZWFkLW9ubHkgdCkpCiAgICAgICAgIChlcmFzZS1idWZmZXIpKQogICAgICAgKHJlbW92ZS1v dmVybGF5cykKICAgICAgICh3aWRnZXQtaW5zZXJ0ICJIZXJlIGlzIHNvbWUgZG9jdW1lbnRhdGlv bi5cblxuIikKICAgICAgICh3aWRnZXQtY3JlYXRlICdlZGl0YWJsZS1maWVsZAogICAgICAgICAg ICAgICAgICAgICAgOnNpemUgMTMKICAgICAgICAgICAgICAgICAgICAgIDpmb3JtYXQgIk5hbWU6 ICV2ICIgOyBUZXh0IGFmdGVyIHRoZSBmaWVsZCEKICAgICAgICAgICAgICAgICAgICAgICJNeSBO YW1lIikKICAgICAgICh3aWRnZXQtY3JlYXRlICdtZW51LWNob2ljZQogICAgICAgICAgICAgICAg ICAgICAgOnRhZyAiQ2hvb3NlIgogICAgICAgICAgICAgICAgICAgICAgOnZhbHVlICJUaGlzIgog ICAgICAgICAgICAgICAgICAgICAgOmhlbHAtZWNobyAiQ2hvb3NlIG1lLCBwbGVhc2UhIgogICAg ICAgICAgICAgICAgICAgICAgOm5vdGlmeSAobGFtYmRhICh3aWRnZXQgJnJlc3QgaWdub3JlKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZXNzYWdlICIlcyBpcyBhIGdvb2QgY2hv aWNlISIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lkZ2V0LXZh bHVlIHdpZGdldCkpKQogICAgICAgICAgICAgICAgICAgICAgJyhpdGVtIDp0YWcgIlRoaXMgb3B0 aW9uIiA6dmFsdWUgIlRoaXMiKQogICAgICAgICAgICAgICAgICAgICAgJyhjaG9pY2UtaXRlbSAi VGhhdCBvcHRpb24iKQogICAgICAgICAgICAgICAgICAgICAgJyhlZGl0YWJsZS1maWVsZCA6bWVu dS10YWcgIk5vIG9wdGlvbiIgIlRodXMgb3B0aW9uIikpCiAgICAgICAod2lkZ2V0LWNyZWF0ZSAn ZWRpdGFibGUtZmllbGQKICAgICAgICAgICAgICAgICAgICAgIDpmb3JtYXQgIkFkZHJlc3M6ICV2 IgogICAgICAgICAgICAgICAgICAgICAgIlNvbWUgUGxhY2VcbkluIHNvbWUgQ2l0eVxuU29tZSBj b3VudHJ5LiIpCiAgICAgICAod2lkZ2V0LWluc2VydCAiXG5TZWUgYWxzbyAiKQogICAgICAgKHdp ZGdldC1jcmVhdGUgJ2xpbmsKICAgICAgICAgICAgICAgICAgICAgIDpub3RpZnkgKGxhbWJkYSAo JnJlc3QgaWdub3JlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aWRnZXQtdmFs dWUtc2V0IHdpZGdldC1leGFtcGxlLXJlcGVhdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICcoIkVuIiAiVG8iICJUcmUiKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAod2lkZ2V0LXNldHVwKSkKICAgICAgICAgICAgICAgICAgICAgICJv dGhlciB3b3JrIikKICAgICAgICh3aWRnZXQtaW5zZXJ0CiAgICAgICAgICIgZm9yIG1vcmUgaW5m b3JtYXRpb24uXG5cbk51bWJlcnM6IGNvdW50IHRvIHRocmVlIGJlbG93XG4iKQogICAgICAgKHNl dHEgd2lkZ2V0LWV4YW1wbGUtcmVwZWF0CiAgICAgICAgICAgICAod2lkZ2V0LWNyZWF0ZSAnZWRp dGFibGUtbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgOmVudHJ5LWZvcm1hdCAiJWkg JWQgJXYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bm90aWZ5CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGFtYmRhICh3aWRnZXQgJnJlc3QgaWdub3JlKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGV0ICgob2xkICh3aWRnZXQtZ2V0IHdpZGdldAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc6ZXhhbXBsZS1sZW5n dGgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV3IChsZW5ndGggKHdp ZGdldC12YWx1ZSB3aWRnZXQpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVu bGVzcyAoZXEgb2xkIG5ldykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aWRn ZXQtcHV0IHdpZGdldCAnOmV4YW1wbGUtbGVuZ3RoIG5ldykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtZXNzYWdlICJZb3UgY2FuIGNvdW50IHRvICVkLiIgbmV3KSkpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgOnZhbHVlICcoIk9uZSIgIkVoLCB0d28/IiAiRml2ZSEi KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhlZGl0YWJsZS1maWVsZCA6dmFsdWUgInRo cmVlIikpKQogICAgICAgKHdpZGdldC1pbnNlcnQgIlxuXG5TZWxlY3QgbXVsdGlwbGU6XG5cbiIp CiAgICAgICAod2lkZ2V0LWNyZWF0ZSAnY2hlY2tib3ggdCkKICAgICAgICh3aWRnZXQtaW5zZXJ0 ICIgVGhpc1xuIikKICAgICAgICh3aWRnZXQtY3JlYXRlICdjaGVja2JveCBuaWwpCiAgICAgICAo d2lkZ2V0LWluc2VydCAiIFRoYXRcbiIpCiAgICAgICAod2lkZ2V0LWNyZWF0ZSAnY2hlY2tib3gK ICAgICAgICAgICAgICAgICAgICAgIDpub3RpZnkgKGxhbWJkYSAoJnJlc3QgaWdub3JlKSAobWVz c2FnZSAiVGlja2xlIikpCiAgICAgICAgICAgICAgICAgICAgICB0KQogICAgICAgKHdpZGdldC1p bnNlcnQgIiBUaHVzXG5cblNlbGVjdCBvbmU6XG5cbiIpCiAgICAgICAod2lkZ2V0LWNyZWF0ZSAn cmFkaW8tYnV0dG9uLWNob2ljZQogICAgICAgICAgICAgICAgICAgICAgOnZhbHVlICJPbmUiCiAg ICAgICAgICAgICAgICAgICAgICA6bm90aWZ5IChsYW1iZGEgKHdpZGdldCAmcmVzdCBpZ25vcmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lc3NhZ2UgIllvdSBzZWxlY3RlZCAl cyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lkZ2V0LXZhbHVl IHdpZGdldCkpKQogICAgICAgICAgICAgICAgICAgICAgJyhpdGVtICJPbmUiKSAnKGl0ZW0gIkFu b3RoZXIgT25lLiIpCiAgICAgICAgICAgICAgICAgICAgICAnKGl0ZW0gIkEgRmluYWwgT25lLiIp KQogICAgICAgKHdpZGdldC1pbnNlcnQgIlxuIikKICAgICAgICh3aWRnZXQtY3JlYXRlICdwdXNo LWJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgOm5vdGlmeSAobGFtYmRhICgmcmVzdCBpZ25v cmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmICg9IChsZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aWRnZXQtdmFsdWUgd2lkZ2V0LWV4 YW1wbGUtcmVwZWF0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lc3NhZ2UgIkNvbmdyYXR1bGF0 aW9uISIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IgIlRocmVlIHdh cyB0aGUgY291bnQhIikpKQogICAgICAgICAgICAgICAgICAgICAgIkFwcGx5IEZvcm0iKQogICAg ICAgKHdpZGdldC1pbnNlcnQgIiAiKQogICAgICAgKHdpZGdldC1jcmVhdGUgJ3B1c2gtYnV0dG9u CiAgICAgICAgICAgICAgICAgICAgICA6bm90aWZ5IChsYW1iZGEgKCZyZXN0IGlnbm9yZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lkZ2V0LWV4YW1wbGUpKQogICAgICAgICAg ICAgICAgICAgICAgIlJlc2V0IEZvcm0iKQogICAgICAgKHdpZGdldC1pbnNlcnQgIlxuIikKICAg ICAgICh1c2UtbG9jYWwtbWFwIHdpZGdldC1rZXltYXApCiAgICAgICAod2lkZ2V0LXNldHVwKSkK CjQgU2V0dGluZyBVcCB0aGUgQnVmZmVyCioqKioqKioqKioqKioqKioqKioqKioqCgpXaWRnZXRz IGFyZSBjcmVhdGVkIHdpdGgg4oCYd2lkZ2V0LWNyZWF0ZeKAmSwgd2hpY2ggcmV0dXJucyBhIOKA nHdpZGdldOKAnQpvYmplY3QuICBUaGlzIG9iamVjdCBjYW4gYmUgcXVlcmllZCBhbmQgbWFuaXB1 bGF0ZWQgYnkgb3RoZXIgd2lkZ2V0CmZ1bmN0aW9ucywgdW50aWwgaXQgaXMgZGVsZXRlZCB3aXRo IOKAmHdpZGdldC1kZWxldGXigJkuICBBZnRlciB0aGUgd2lkZ2V0cwpoYXZlIGJlZW4gY3JlYXRl ZCwg4oCYd2lkZ2V0LXNldHVw4oCZIG11c3QgYmUgY2FsbGVkIHRvIGVuYWJsZSB0aGVtLgoKIC0t IEZ1bmN0aW9uOiB3aWRnZXQtY3JlYXRlIHR5cGUgWyBrZXl3b3JkIGFyZ3VtZW50IF0uLi4KICAg ICBDcmVhdGUgYW5kIHJldHVybiBhIHdpZGdldCBvZiB0eXBlIFRZUEUuICBUaGUgc3ludGF4IGZv ciB0aGUgVFlQRQogICAgIGFyZ3VtZW50IGlzIGRlc2NyaWJlZCBpbiAqbm90ZSBCYXNpYyBUeXBl czo6LgoKICAgICBUaGUga2V5d29yZCBhcmd1bWVudHMgY2FuIGJlIHVzZWQgdG8gb3ZlcndyaXRl IHRoZSBrZXl3b3JkCiAgICAgYXJndW1lbnRzIHRoYXQgYXJlIHBhcnQgb2YgVFlQRS4KCiAtLSBG dW5jdGlvbjogd2lkZ2V0LWRlbGV0ZSB3aWRnZXQKICAgICBEZWxldGUgV0lER0VUIGFuZCByZW1v dmUgaXQgZnJvbSB0aGUgYnVmZmVyLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtc2V0dXAKICAgICBT ZXQgdXAgYSBidWZmZXIgdG8gc3VwcG9ydCB3aWRnZXRzLgoKICAgICBUaGlzIHNob3VsZCBiZSBj YWxsZWQgYWZ0ZXIgY3JlYXRpbmcgYWxsIHRoZSB3aWRnZXRzIGFuZCBiZWZvcmUKICAgICBhbGxv d2luZyB0aGUgdXNlciB0byBlZGl0IHRoZW0uCgogICBJZiB5b3Ugd2FudCB0byBpbnNlcnQgdGV4 dCBvdXRzaWRlIHRoZSB3aWRnZXRzIGluIHRoZSBmb3JtLCB0aGUKcmVjb21tZW5kZWQgd2F5IHRv IGRvIHRoYXQgaXMgd2l0aCDigJh3aWRnZXQtaW5zZXJ04oCZLgoKIC0tIEZ1bmN0aW9uOiB3aWRn ZXQtaW5zZXJ0CiAgICAgSW5zZXJ0IHRoZSBhcmd1bWVudHMsIGVpdGhlciBzdHJpbmdzIG9yIGNo YXJhY3RlcnMsIGF0IHBvaW50LiAgVGhlCiAgICAgaW5zZXJ0ZWQgdGV4dCB3aWxsIGJlIHJlYWQt b25seS4KCiAgIFRoZXJlIGlzIGEgc3RhbmRhcmQgd2lkZ2V0IGtleW1hcCB3aGljaCB5b3UgbWln aHQgZmluZCB1c2VmdWwuCgogLS0gQ29uc3Q6IHdpZGdldC1rZXltYXAKICAgICA8VEFCPiBhbmQg 4oCYQy08VEFCPuKAmSBhcmUgYm91bmQgdG8g4oCYd2lkZ2V0LWZvcndhcmTigJkgYW5kCiAgICAg 4oCYd2lkZ2V0LWJhY2t3YXJk4oCZLCByZXNwZWN0aXZlbHkuICA8UkVUPiBhbmQg4oCYbW91c2Ut MuKAmSBhcmUgYm91bmQgdG8KICAgICDigJh3aWRnZXQtYnV0dG9uLXByZXNz4oCZIGFuZCDigJh3 aWRnZXQtYnV0dG9uLWNsaWNr4oCZLgoKIC0tIFZhcmlhYmxlOiB3aWRnZXQtZ2xvYmFsLW1hcAog ICAgIEtleW1hcCB1c2VkIGJ5IOKAmHdpZGdldC1idXR0b24tcHJlc3PigJkgYW5kIOKAmHdpZGdl dC1idXR0b24tY2xpY2vigJkgd2hlbgogICAgIG5vdCBvbiBhIGJ1dHRvbi4gIEJ5IGRlZmF1bHQg dGhpcyBpcyDigJhnbG9iYWwtbWFw4oCZLgoKNSBCYXNpYyBUeXBlcwoqKioqKioqKioqKioqCgpU aGlzIGlzIHRoZSBnZW5lcmFsIHN5bnRheCBvZiBhIHR5cGUgc3BlY2lmaWNhdGlvbjoKCiAgICAg TkFNRSA6Oj0gKE5BTUUgW0tFWVdPUkQgQVJHVU1FTlRdLi4uIEFSR1MpCiAgICAgICAgICB8ICAg TkFNRQoKICAgV2hlcmUsIE5BTUUgaXMgYSB3aWRnZXQgbmFtZSwgS0VZV09SRCBpcyB0aGUgbmFt ZSBvZiBhIHByb3BlcnR5LApBUkdVTUVOVCBpcyB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5LCBh bmQgQVJHUyBhcmUgaW50ZXJwcmV0ZWQgaW4gYQp3aWRnZXQgc3BlY2lmaWMgd2F5LgoKICAgVGhl IGZvbGxvd2luZyBrZXl3b3JkIGFyZ3VtZW50cyBhcHBseSB0byBhbGwgd2lkZ2V0czoKCuKAmDp2 YWx1ZeKAmQogICAgIFRoZSBpbml0aWFsIHZhbHVlIGZvciB3aWRnZXRzIG9mIHRoaXMgdHlwZS4g IFR5cGljYWxseSwgYSB3aWRnZXQKICAgICByZXByZXNlbnRzIGl0cyB2YWx1ZSBpbiB0d28gZm9y bWF0czogZXh0ZXJuYWwgYW5kIGludGVybmFsLiAgVGhlCiAgICAgZXh0ZXJuYWwgZm9ybWF0IGlz IHRoZSB2YWx1ZSBhcyB0aGUgcmVzdCBvZiBFbWFjcyBzZWVzIGl0LCBhbmQgdGhlCiAgICAgaW50 ZXJuYWwgZm9ybWF0IGlzIGEgcmVwcmVzZW50YXRpb24gdGhhdCB0aGUgd2lkZ2V0IGRlZmluZXMg YW5kCiAgICAgdXNlcyBpbiBhIHdpZGdldCBzcGVjaWZpYyB3YXkuCgogICAgIEJvdGggZm9ybWF0 cyBtaWdodCBiZSB0aGUgc2FtZSBmb3IgY2VydGFpbiB3aWRnZXRzIGFuZCBtaWdodCBkaWZmZXIK ICAgICBmb3Igb3RoZXJzLCBhbmQgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIGFib3V0IHdoaWNoIGZv cm1hdCB0aGUgdmFsdWUKICAgICBzdG9yZWQgaW4gdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eSBo YXMuICBIb3dldmVyLCB3aGVuIGNyZWF0aW5nIGEKICAgICB3aWRnZXQgb3IgZGVmaW5pbmcgYSBu ZXcgb25lICgqbm90ZSBEZWZpbmluZyBOZXcgV2lkZ2V0czo6KSwgdGhlCiAgICAg4oCYOnZhbHVl 4oCZIHNob3VsZCBiZSBpbiB0aGUgZXh0ZXJuYWwgZm9ybWF0LgoK4oCYOmZvcm1hdOKAmQogICAg IFRoaXMgc3RyaW5nIHdpbGwgYmUgaW5zZXJ0ZWQgaW4gdGhlIGJ1ZmZlciB3aGVuIHlvdSBjcmVh dGUgYQogICAgIHdpZGdldC4gIFRoZSBmb2xsb3dpbmcg4oCYJeKAmSBlc2NhcGVzIGFyZSBhdmFp bGFibGU6CgogICAgIOKAmCVb4oCZCiAgICAg4oCYJV3igJkKICAgICAgICAgIFRoZSB0ZXh0IGlu c2lkZSB3aWxsIGJlIG1hcmtlZCBhcyBhIGJ1dHRvbi4KCiAgICAgICAgICBCeSBkZWZhdWx0LCB0 aGUgdGV4dCB3aWxsIGJlIHNob3duIGluIOKAmHdpZGdldC1idXR0b24tZmFjZeKAmSwKICAgICAg ICAgIGFuZCBzdXJyb3VuZGVkIGJ5IGJyYWNrZXRzLgoKICAgICAgICAgICAtLSBVc2VyIE9wdGlv bjogd2lkZ2V0LWJ1dHRvbi1wcmVmaXgKICAgICAgICAgICAgICAgU3RyaW5nIHRvIHByZWZpeCBi dXR0b25zLgoKICAgICAgICAgICAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LWJ1dHRvbi1zdWZmaXgK ICAgICAgICAgICAgICAgU3RyaW5nIHRvIHN1ZmZpeCBidXR0b25zLgoKICAgICDigJgle+KAmQog ICAgIOKAmCV94oCZCiAgICAgICAgICBUaGUgdGV4dCBpbnNpZGUgd2lsbCBiZSBkaXNwbGF5ZWQg d2l0aCB0aGUgZmFjZSBzcGVjaWZpZWQgYnkKICAgICAgICAgIOKAmDpzYW1wbGUtZmFjZeKAmS4K CiAgICAg4oCYJXbigJkKICAgICAgICAgIFRoaXMgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBi dWZmZXIgcmVwcmVzZW50YXRpb24gb2YgdGhlCiAgICAgICAgICB3aWRnZXTigJlzIHZhbHVlLiAg V2hhdCB0aGlzIGlzIGRlcGVuZHMgb24gdGhlIHdpZGdldCB0eXBlLgoKICAgICAgICAgICpXYXJu aW5nOiogSW4gYW4g4oCYZWRpdGFibGUtZmllbGTigJkgd2lkZ2V0LCB0aGUg4oCYJXbigJkgZXNj YXBlIG11c3QKICAgICAgICAgIGJlIHByZWNlZGVkIGJ5IHNvbWUgb3RoZXIgdGV4dCBpbiB0aGUg Zm9ybWF0IHN0cmluZyAoaWYKICAgICAgICAgIHNwZWNpZmllZCkuCgogICAgIOKAmCVk4oCZCiAg ICAgICAgICBJbnNlcnQgdGhlIHN0cmluZyBzcGVjaWZpZWQgYnkg4oCYOmRvY+KAmSBoZXJlLgoK ICAgICDigJglaOKAmQogICAgICAgICAgTGlrZSDigJglZOKAmSwgd2l0aCB0aGUgZm9sbG93aW5n IG1vZGlmaWNhdGlvbnM6IElmIHRoZQogICAgICAgICAgZG9jdW1lbnRhdGlvbiBzdHJpbmcgaXMg bW9yZSB0aGFuIG9uZSBsaW5lLCBpdCB3aWxsIGFkZCBhCiAgICAgICAgICBidXR0b24gd2hpY2gg d2lsbCB0b2dnbGUgYmV0d2VlbiBzaG93aW5nIG9ubHkgdGhlIGZpcnN0IGxpbmUsCiAgICAgICAg ICBhbmQgc2hvd2luZyB0aGUgZnVsbCB0ZXh0LiAgRnVydGhlcm1vcmUsIGlmIHRoZXJlIGlzIG5v IOKAmDpkb2PigJkKICAgICAgICAgIHByb3BlcnR5IGluIHRoZSB3aWRnZXQsIGl0IHdpbGwgaW5z dGVhZCBleGFtaW5lIHRoZQogICAgICAgICAg4oCYOmRvY3VtZW50YXRpb24tcHJvcGVydHnigJkg cHJvcGVydHkuICBJZiBpdCBpcyBhIGxhbWJkYQogICAgICAgICAgZXhwcmVzc2lvbiwgaXQgd2ls bCBiZSBjYWxsZWQgd2l0aCB0aGUgd2lkZ2V04oCZcyB2YWx1ZSBhcyBhbgogICAgICAgICAgYXJn dW1lbnQsIGFuZCB0aGUgcmVzdWx0IHdpbGwgYmUgdXNlZCBhcyB0aGUgZG9jdW1lbnRhdGlvbgog ICAgICAgICAgdGV4dC4KCiAgICAg4oCYJXTigJkKICAgICAgICAgIEluc2VydCB0aGUgc3RyaW5n IHNwZWNpZmllZCBieSDigJg6dGFn4oCZIGhlcmUsIG9yIHRoZSDigJhwcmluY+KAmQogICAgICAg ICAgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlIGlmIHRoZXJlIGlzIG5vIHRhZy4KCiAgICAg 4oCYJSXigJkKICAgICAgICAgIEluc2VydCBhIGxpdGVyYWwg4oCYJeKAmS4KCuKAmDpidXR0b24t ZmFjZeKAmQogICAgIEZhY2UgdXNlZCB0byBoaWdobGlnaHQgdGV4dCBpbnNpZGUgJVsgJV0gaW4g dGhlIGZvcm1hdC4KCuKAmDpidXR0b24tcHJlZml44oCZCuKAmDpidXR0b24tc3VmZml44oCZCiAg ICAgVGV4dCBhcm91bmQgJVsgJV0gaW4gdGhlIGZvcm1hdC4KCiAgICAgVGhlc2UgY2FuIGJlCiAg ICAgX25pbF8KICAgICAgICAgIE5vIHRleHQgaXMgaW5zZXJ0ZWQuCgogICAgIF9hIHN0cmluZ18K ICAgICAgICAgIFRoZSBzdHJpbmcgaXMgaW5zZXJ0ZWQgbGl0ZXJhbGx5LgoKICAgICBfYSBzeW1i b2xfCiAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIHN5bWJvbCBpcyBleHBhbmRlZCBhY2NvcmRp bmcgdG8gdGhpcyB0YWJsZS4KCuKAmDpkb2PigJkKICAgICBUaGUgc3RyaW5nIGluc2VydGVkIGJ5 IHRoZSDigJglZOKAmSBlc2NhcGUgaW4gdGhlIGZvcm1hdCBzdHJpbmcuCgrigJg6dGFn4oCZCiAg ICAgVGhlIHN0cmluZyBpbnNlcnRlZCBieSB0aGUg4oCYJXTigJkgZXNjYXBlIGluIHRoZSBmb3Jt YXQgc3RyaW5nLgoK4oCYOnRhZy1nbHlwaOKAmQogICAgIE5hbWUgb2YgaW1hZ2UgdG8gdXNlIGlu c3RlYWQgb2YgdGhlIHN0cmluZyBzcGVjaWZpZWQgYnkg4oCYOnRhZ+KAmSBvbgogICAgIEVtYWNz ZW4gdGhhdCBzdXBwb3J0cyBpdC4KCuKAmDpoZWxwLWVjaG/igJkKICAgICBTcGVjaWZpZXMgaG93 IHRvIGRpc3BsYXkgYSBtZXNzYWdlIHdoZW5ldmVyIHlvdSBtb3ZlIHRvIHRoZSB3aWRnZXQKICAg ICB3aXRoIGVpdGhlciDigJh3aWRnZXQtZm9yd2FyZOKAmSBvciDigJh3aWRnZXQtYmFja3dhcmTi gJkgb3IgbW92ZSB0aGUgbW91c2UKICAgICBvdmVyIGl0ICh1c2luZyB0aGUgc3RhbmRhcmQg4oCY aGVscC1lY2hv4oCZIG1lY2hhbmlzbSkuICBUaGUgYXJndW1lbnQKICAgICBpcyBlaXRoZXIgYSBz dHJpbmcgdG8gZGlzcGxheSwgYSBmdW5jdGlvbiBvZiBvbmUgYXJndW1lbnQsIHRoZQogICAgIHdp ZGdldCwgd2hpY2ggc2hvdWxkIHJldHVybiBhIHN0cmluZyB0byBkaXNwbGF5LCBvciBhIGZvcm0g dGhhdAogICAgIGV2YWx1YXRlcyB0byBzdWNoIGEgc3RyaW5nLgoK4oCYOmZvbGxvdy1saW5r4oCZ CiAgICAgU3BlY2lmaWVzIGhvdyB0byBpbnRlcnByZXQgYSA8bW91c2UtMT4gY2xpY2sgb24gdGhl IHdpZGdldC4gICpOb3RlCiAgICAgRGVmaW5pbmcgQ2xpY2thYmxlIFRleHQ6IChlbGlzcClDbGlj a2FibGUgVGV4dC4KCuKAmDppbmRlbnTigJkKICAgICBBbiBpbnRlZ2VyIGluZGljYXRpbmcgdGhl IGFic29sdXRlIG51bWJlciBvZiBzcGFjZXMgdG8gaW5kZW50CiAgICAgY2hpbGRyZW4gb2YgdGhp cyB3aWRnZXQuCgrigJg6b2Zmc2V04oCZCiAgICAgQW4gaW50ZWdlciBpbmRpY2F0aW5nIGhvdyBt YW55IGV4dHJhIHNwYWNlcyB0byBhZGQgdG8gdGhlIHdpZGdldOKAmXMKICAgICBncmFuZGNoaWxk cmVuIGNvbXBhcmVkIHRvIHRoaXMgd2lkZ2V0LgoK4oCYOmV4dHJhLW9mZnNldOKAmQogICAgIEFu IGludGVnZXIgaW5kaWNhdGluZyBob3cgbWFueSBleHRyYSBzcGFjZXMgdG8gYWRkIHRvIHRoZSB3 aWRnZXTigJlzCiAgICAgY2hpbGRyZW4gY29tcGFyZWQgdG8gdGhpcyB3aWRnZXQuCgrigJg6bm90 aWZ54oCZCiAgICAgQSBmdW5jdGlvbiBjYWxsZWQgZWFjaCB0aW1lIHRoZSB3aWRnZXQgb3IgYSBu ZXN0ZWQgd2lkZ2V0IGlzCiAgICAgY2hhbmdlZC4gIFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0 aCB0d28gb3IgdGhyZWUgYXJndW1lbnRzLiAgVGhlCiAgICAgZmlyc3QgYXJndW1lbnQgaXMgdGhl IHdpZGdldCBpdHNlbGYsIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlCiAgICAgd2lkZ2V0IHRo YXQgd2FzIGNoYW5nZWQsIGFuZCB0aGUgdGhpcmQgYXJndW1lbnQgaXMgdGhlIGV2ZW50CiAgICAg bGVhZGluZyB0byB0aGUgY2hhbmdlLCBpZiBhbnkuCgrigJg6bWVudS10YWfigJkKICAgICBUYWcg dXNlZCBpbiB0aGUgbWVudSB3aGVuIHRoZSB3aWRnZXQgaXMgdXNlZCBhcyBhbiBvcHRpb24gaW4g YQogICAgIOKAmG1lbnUtY2hvaWNl4oCZIHdpZGdldC4KCuKAmDptZW51LXRhZy1nZXTigJkKICAg ICBGdW5jdGlvbiB1c2VkIGZvciBmaW5kaW5nIHRoZSB0YWcgd2hlbiB0aGUgd2lkZ2V0IGlzIHVz ZWQgYXMgYW4KICAgICBvcHRpb24gaW4gYSDigJhtZW51LWNob2ljZeKAmSB3aWRnZXQuICBCeSBk ZWZhdWx0LCB0aGUgdGFnIHVzZWQgd2lsbCBiZQogICAgIGVpdGhlciB0aGUg4oCYOm1lbnUtdGFn 4oCZIG9yIOKAmDp0YWfigJkgcHJvcGVydHkgaWYgcHJlc2VudCwgb3IgdGhlCiAgICAg4oCYcHJp bmPigJkgcmVwcmVzZW50YXRpb24gb2YgdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eSBpZiBub3Qu CgrigJg6bWF0Y2jigJkKICAgICBTaG91bGQgYmUgYSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0d28g YXJndW1lbnRzLCB0aGUgd2lkZ2V0IGFuZCBhbgogICAgIGV4dGVybmFsIHZhbHVlLCBhbmQgc2hv dWxkIHJldHVybiBub24t4oCYbmls4oCZIGlmIHRoZSB3aWRnZXQgY2FuCiAgICAgcmVwcmVzZW50 IHRoZSBzcGVjaWZpZWQgdmFsdWUuCgrigJg6dmFsaWRhdGXigJkKICAgICBBIGZ1bmN0aW9uIHdo aWNoIHRha2VzIGEgd2lkZ2V0IGFzIGFuIGFyZ3VtZW50LCBhbmQgcmV0dXJucyDigJhuaWzigJkK ICAgICBpZiB0aGUgd2lkZ2V04oCZcyBjdXJyZW50IHZhbHVlIGlzIHZhbGlkIGZvciB0aGUgd2lk Z2V0LiAgT3RoZXJ3aXNlCiAgICAgaXQgc2hvdWxkIHJldHVybiB0aGUgd2lkZ2V0IGNvbnRhaW5p bmcgdGhlIGludmFsaWQgZGF0YSwgYW5kIHNldAogICAgIHRoYXQgd2lkZ2V04oCZcyDigJg6ZXJy b3LigJkgcHJvcGVydHkgdG8gYSBzdHJpbmcgZXhwbGFpbmluZyB0aGUgZXJyb3IuCgogICAgIFRo ZSBmb2xsb3dpbmcgcHJlZGVmaW5lZCBmdW5jdGlvbiBjYW4gYmUgdXNlZDoKCiAgICAgIC0tIEZ1 bmN0aW9uOiB3aWRnZXQtY2hpbGRyZW4tdmFsaWRhdGUgd2lkZ2V0CiAgICAgICAgICBBbGwgdGhl IOKAmDpjaGlsZHJlbuKAmSBvZiBXSURHRVQgbXVzdCBiZSB2YWxpZC4KCuKAmDp0YWItb3JkZXLi gJkKICAgICBTcGVjaWZ5IHRoZSBvcmRlciBpbiB3aGljaCB3aWRnZXRzIGFyZSB0cmF2ZXJzZWQg d2l0aAogICAgIOKAmHdpZGdldC1mb3J3YXJk4oCZIG9yIOKAmHdpZGdldC1iYWNrd2FyZOKAmS4g IFRoaXMgaXMgb25seSBwYXJ0aWFsbHkKICAgICBpbXBsZW1lbnRlZC4KCiAgICAgICBhLiBXaWRn ZXRzIHdpdGggdGFiYmluZyBvcmRlciDigJgtMeKAmSBhcmUgaWdub3JlZC4KCiAgICAgICBiLiAo VW5pbXBsZW1lbnRlZCkgV2hlbiBvbiBhIHdpZGdldCB3aXRoIHRhYmJpbmcgb3JkZXIgTiwgZ28g dG8KICAgICAgICAgIHRoZSBuZXh0IHdpZGdldCBpbiB0aGUgYnVmZmVyIHdpdGggdGFiYmluZyBv cmRlciBOKzEgb3Ig4oCYbmls4oCZLAogICAgICAgICAgd2hpY2hldmVyIGNvbWVzIGZpcnN0LgoK ICAgICAgIGMuIFdoZW4gb24gYSB3aWRnZXQgd2l0aCBubyB0YWJiaW5nIG9yZGVyIHNwZWNpZmll ZCwgZ28gdG8gdGhlCiAgICAgICAgICBuZXh0IHdpZGdldCBpbiB0aGUgYnVmZmVyIHdpdGggYSBw b3NpdGl2ZSB0YWJiaW5nIG9yZGVyLCBvcgogICAgICAgICAg4oCYbmls4oCZCgrigJg6cGFyZW50 4oCZCiAgICAgVGhlIHBhcmVudCBvZiBhIG5lc3RlZCB3aWRnZXQgKGUuZy4sIGEg4oCYbWVudS1j aG9pY2XigJkgaXRlbSBvciBhbgogICAgIGVsZW1lbnQgb2YgYSDigJhlZGl0YWJsZS1saXN04oCZ IHdpZGdldCkuCgrigJg6c2libGluZy1hcmdz4oCZCiAgICAgVGhpcyBrZXl3b3JkIGlzIG9ubHkg dXNlZCBmb3IgbWVtYmVycyBvZiBhIOKAmHJhZGlvLWJ1dHRvbi1jaG9pY2XigJkgb3IKICAgICDi gJhjaGVja2xpc3TigJkuICBUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbGlzdCBvZiBleHRyYSBrZXl3 b3JkCiAgICAgYXJndW1lbnRzLCB3aGljaCB3aWxsIGJlIHVzZWQgd2hlbiBjcmVhdGluZyB0aGUg 4oCYcmFkaW8tYnV0dG9u4oCZIG9yCiAgICAg4oCYY2hlY2tib3jigJkgYXNzb2NpYXRlZCB3aXRo IHRoaXMgaXRlbS4KCiAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LWltYWdlLWRpcmVjdG9yeQogICAg IERpcmVjdG9yeSB3aGVyZSBXaWRnZXQgc2hvdWxkIGxvb2sgZm9yIGltYWdlcy4gIFdpZGdldCB3 aWxsIGxvb2sKICAgICBoZXJlIGZvciBhIGZpbGUgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIHNwZWNp ZmllZCBmb3IgdGhlIGltYWdlLCB3aXRoCiAgICAgZWl0aGVyIGEg4oCYLnhwbeKAmSAoaWYgc3Vw cG9ydGVkKSBvciDigJgueGJt4oCZIGV4dGVuc2lvbi4KCiAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0 LWltYWdlLWVuYWJsZQogICAgIElmIG5vbi3igJhuaWzigJksIGFsbG93IGltYWdlcyB0byBhcHBl YXIgb24gZGlzcGxheXMgd2hlcmUgdGhleSBhcmUKICAgICBzdXBwb3J0ZWQuCgo1LjEgVGhlIOKA mGxpbmvigJkgV2lkZ2V0Cj09PT09PT09PT09PT09PT09PT09PQoKU3ludGF4OgoKICAgICBUWVBF IDo6PSAobGluayBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIFsgVkFMVUUgXSkKCiAgIFRoZSBWQUxV RSwgaWYgcHJlc2VudCwgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSDigJg6dmFsdWXigJkgcHJv cGVydHkuClRoZSB2YWx1ZSBzaG91bGQgYmUgYSBzdHJpbmcsIHdoaWNoIHdpbGwgYmUgaW5zZXJ0 ZWQgaW4gdGhlIGJ1ZmZlci4KCiAgIEJ5IGRlZmF1bHQgdGhlIGxpbmsgd2lsbCBiZSBzaG93biBp biBicmFja2V0cy4KCiAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LWxpbmstcHJlZml4CiAgICAgU3Ry aW5nIHRvIHByZWZpeCBsaW5rcy4KCiAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LWxpbmstc3VmZml4 CiAgICAgU3RyaW5nIHRvIHN1ZmZpeCBsaW5rcy4KCjUuMiBUaGUg4oCYdXJsLWxpbmvigJkgV2lk Z2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT0KClN5bnRheDoKCiAgICAgVFlQRSA6Oj0gKHVy bC1saW5rIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgVVJMKQoKICAgV2hlbiB0aGlzIGxpbmsgaXMg aW52b2tlZCwgdGhlIFdXVyBicm93c2VyIHNwZWNpZmllZCBieQrigJhicm93c2UtdXJsLWJyb3dz ZXItZnVuY3Rpb27igJkgd2lsbCBiZSBjYWxsZWQgd2l0aCBVUkwuCgo1LjMgVGhlIOKAmGluZm8t bGlua+KAmSBXaWRnZXQKPT09PT09PT09PT09PT09PT09PT09PT09PT0KClN5bnRheDoKCiAgICAg VFlQRSA6Oj0gKGluZm8tbGluayBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIEFERFJFU1MpCgogICBX aGVuIHRoaXMgbGluayBpcyBpbnZva2VkLCB0aGUgYnVpbHQtaW4gSW5mbyByZWFkZXIgaXMgc3Rh cnRlZCBvbgpBRERSRVNTLgoKNS40IFRoZSDigJhwdXNoLWJ1dHRvbuKAmSBXaWRnZXQKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PQoKU3ludGF4OgoKICAgICBUWVBFIDo6PSAocHVzaC1idXR0 b24gW0tFWVdPUkQgQVJHVU1FTlRdLi4uICBbIFZBTFVFIF0pCgogICBUaGUgVkFMVUUsIGlmIHBy ZXNlbnQsIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl4oCZIHByb3BlcnR5LgpU aGUgdmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nLCB3aGljaCB3aWxsIGJlIGluc2VydGVkIGluIHRo ZSBidWZmZXIuCgogICBCeSBkZWZhdWx0IHRoZSB0YWcgd2lsbCBiZSBzaG93biBpbiBicmFja2V0 cy4KCiAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LXB1c2gtYnV0dG9uLXByZWZpeAogICAgIFN0cmlu ZyB0byBwcmVmaXggcHVzaCBidXR0b25zLgoKIC0tIFVzZXIgT3B0aW9uOiB3aWRnZXQtcHVzaC1i dXR0b24tc3VmZml4CiAgICAgU3RyaW5nIHRvIHN1ZmZpeCBwdXNoIGJ1dHRvbnMuCgo1LjUgVGhl IOKAmGVkaXRhYmxlLWZpZWxk4oCZIFdpZGdldAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CgpTeW50YXg6CgogICAgIFRZUEUgOjo9IChlZGl0YWJsZS1maWVsZCBbS0VZV09SRCBBUkdV TUVOVF0uLi4gWyBWQUxVRSBdKQoKICAgVGhlIFZBTFVFLCBpZiBwcmVzZW50LCBpcyB1c2VkIHRv IGluaXRpYWxpemUgdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eS4KVGhlIHZhbHVlIHNob3VsZCBi ZSBhIHN0cmluZywgd2hpY2ggd2lsbCBiZSBpbnNlcnRlZCBpbiB0aGUgZmllbGQuICBUaGlzCndp ZGdldCB3aWxsIG1hdGNoIGFsbCBzdHJpbmcgdmFsdWVzLgoKICAgVGhlIGZvbGxvd2luZyBleHRy YSBwcm9wZXJ0aWVzIGFyZSByZWNvZ25pemVkOgoK4oCYOnNpemXigJkKICAgICBUaGUgd2lkdGgg b2YgdGhlIGVkaXRhYmxlIGZpZWxkLgogICAgIEJ5IGRlZmF1bHQgdGhlIGZpZWxkIHdpbGwgcmVh Y2ggdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4KCuKAmDp2YWx1ZS1mYWNl4oCZCiAgICAgRmFjZSB1 c2VkIGZvciBoaWdobGlnaHRpbmcgdGhlIGVkaXRhYmxlIGZpZWxkLiAgRGVmYXVsdCBpcwogICAg IOKAmHdpZGdldC1maWVsZC1mYWNl4oCZLCBzZWUgKm5vdGUgVXNlciBJbnRlcmZhY2U6Oi4KCuKA mDpzZWNyZXTigJkKICAgICBDaGFyYWN0ZXIgdXNlZCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4gIFlv dSBjYW4gc2V0IHRoaXMgdG8sIGUuZy4sCiAgICAg4oCYPyrigJkgaWYgdGhlIGZpZWxkIGNvbnRh aW5zIGEgcGFzc3dvcmQgb3Igb3RoZXIgc2VjcmV0IGluZm9ybWF0aW9uLgogICAgIEJ5IGRlZmF1 bHQsIHRoaXMgaXMg4oCYbmls4oCZLCBhbmQgdGhlIHZhbHVlIGlzIG5vdCBzZWNyZXQuCgrigJg6 dmFsaWQtcmVnZXhw4oCZCiAgICAgQnkgZGVmYXVsdCB0aGUg4oCYOnZhbGlkYXRl4oCZIGZ1bmN0 aW9uIHdpbGwgbWF0Y2ggdGhlIGNvbnRlbnQgb2YgdGhlCiAgICAgZmllbGQgd2l0aCB0aGUgdmFs dWUgb2YgdGhpcyBhdHRyaWJ1dGUuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyDigJgiIuKAmQogICAg IHdoaWNoIG1hdGNoZXMgZXZlcnl0aGluZy4KCuKAmDprZXltYXDigJkKICAgICBLZXltYXAgdXNl ZCBpbiB0aGUgZWRpdGFibGUgZmllbGQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcwogICAgIOKAmHdp ZGdldC1maWVsZC1rZXltYXDigJksIHdoaWNoIGFsbG93cyB5b3UgdG8gdXNlIGFsbCB0aGUgbm9y bWFsCiAgICAgZWRpdGluZyBjb21tYW5kcywgZXZlbiBpZiB0aGUgYnVmZmVy4oCZcyBtYWpvciBt b2RlIHN1cHByZXNzZXMgc29tZQogICAgIG9mIHRoZW0uICBQcmVzc2luZyA8UkVUPiBpbnZva2Vz IHRoZSBmdW5jdGlvbiBzcGVjaWZpZWQgYnkKICAgICDigJg6YWN0aW9u4oCZLgoKNS42IFRoZSDi gJh0ZXh04oCZIFdpZGdldAo9PT09PT09PT09PT09PT09PT09PT0KClRoaXMgaXMganVzdCBsaWtl IOKAmGVkaXRhYmxlLWZpZWxk4oCZLCBidXQgaW50ZW5kZWQgZm9yIG11bHRpbGluZSB0ZXh0CmZp ZWxkcy4gIFRoZSBkZWZhdWx0IOKAmDprZXltYXDigJkgaXMg4oCYd2lkZ2V0LXRleHQta2V5bWFw 4oCZLCB3aGljaCBkb2VzIG5vdApyZWJpbmQgdGhlIDxSRVQ+IGtleS4KCjUuNyBUaGUg4oCYbWVu dS1jaG9pY2XigJkgV2lkZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClN5bnRheDoK CiAgICAgVFlQRSA6Oj0gKG1lbnUtY2hvaWNlIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiBUWVBFIC4u LiApCgogICBUaGUgVFlQRSBhcmd1bWVudCByZXByZXNlbnRzIGVhY2ggcG9zc2libGUgY2hvaWNl LiAgVGhlIHdpZGdldOKAmXMKdmFsdWUgd2lsbCBiZSB0aGF0IG9mIHRoZSBjaG9zZW4gVFlQRSBh cmd1bWVudC4gIFRoaXMgd2lkZ2V0IHdpbGwgbWF0Y2gKYW55IHZhbHVlIG1hdGNoaW5nIGF0IGxl YXN0IG9uZSBvZiB0aGUgc3BlY2lmaWVkIFRZUEUgYXJndW1lbnRzLgoK4oCYOnZvaWTigJkKICAg ICBXaWRnZXQgdHlwZSB1c2VkIGFzIGEgZmFsbGJhY2sgd2hlbiB0aGUgdmFsdWUgZG9lcyBub3Qg bWF0Y2ggYW55IG9mCiAgICAgdGhlIHNwZWNpZmllZCBUWVBFIGFyZ3VtZW50cy4KCuKAmDpjYXNl LWZvbGTigJkKICAgICBTZXQgdGhpcyB0byDigJhuaWzigJkgaWYgeW91IGRvbuKAmXQgd2FudCB0 byBpZ25vcmUgY2FzZSB3aGVuIHByb21wdGluZwogICAgIGZvciBhIGNob2ljZSB0aHJvdWdoIHRo ZSBtaW5pYnVmZmVyLgoK4oCYOmNoaWxkcmVu4oCZCiAgICAgQSBsaXN0IHdob3NlIENBUiBpcyB0 aGUgd2lkZ2V0IHJlcHJlc2VudGluZyB0aGUgY3VycmVudGx5IGNob3NlbgogICAgIHR5cGUgaW4g dGhlIGJ1ZmZlci4KCuKAmDpjaG9pY2XigJkKICAgICBUaGUgY3VycmVudCBjaG9zZW4gdHlwZS4K CuKAmDphcmdz4oCZCiAgICAgVGhlIGxpc3Qgb2YgdHlwZXMuCgo1LjggVGhlIOKAmHJhZGlvLWJ1 dHRvbi1jaG9pY2XigJkgV2lkZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQoKU3ludGF4OgoKICAgICBUWVBFIDo6PSAocmFkaW8tYnV0dG9uLWNob2ljZSBbS0VZV09SRCBB UkdVTUVOVF0uLi4gIFRZUEUgLi4uICkKCiAgIFRoZSBjb21wb25lbnQgdHlwZXMgc3BlY2lmeSB0 aGUgY2hvaWNlcywgd2l0aCBvbmUgcmFkaW8gYnV0dG9uIGZvcgplYWNoLiAgVGhlIHdpZGdldOKA mXMgdmFsdWUgd2lsbCBiZSB0aGF0IG9mIHRoZSBjaG9zZW4gVFlQRSBhcmd1bWVudC4KVGhpcyB3 aWRnZXQgbWF0Y2hlcyBhbnkgdmFsdWUgdGhhdCBtYXRjaGVzIGF0IGxlYXN0IG9uZSBvZiB0aGUg c3BlY2lmaWVkClRZUEUgYXJndW1lbnRzLgoKICAgVGhlIGZvbGxvd2luZyBleHRyYSBwcm9wZXJ0 aWVzIGFyZSByZWNvZ25pemVkLgoK4oCYOmVudHJ5LWZvcm1hdOKAmQogICAgIFRoaXMgc3RyaW5n IHdpbGwgYmUgaW5zZXJ0ZWQgZm9yIGVhY2ggZW50cnkgaW4gdGhlIGxpc3QuICBUaGUKICAgICBm b2xsb3dpbmcg4oCYJeKAmSBlc2NhcGVzIGFyZSBhdmFpbGFibGU6CiAgICAg4oCYJXbigJkKICAg ICAgICAgIFJlcGxhY2Ugd2l0aCB0aGUgYnVmZmVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBUWVBF IHdpZGdldC4KICAgICDigJglYuKAmQogICAgICAgICAgUmVwbGFjZSB3aXRoIHRoZSByYWRpbyBi dXR0b24uCiAgICAg4oCYJSXigJkKICAgICAgICAgIEluc2VydCBhIGxpdGVyYWwg4oCYJeKAmS4K CuKAmDpidXR0b24tYXJnc+KAmQogICAgIEEgbGlzdCBvZiBrZXl3b3JkcyB0byBwYXNzIHRvIHRo ZSByYWRpbyBidXR0b25zLiAgVXNlZnVsIGZvcgogICAgIHNldHRpbmcsIGUuZy4sIHRoZSDigJg6 aGVscC1lY2hv4oCZIGZvciBlYWNoIGJ1dHRvbi4KCuKAmDpidXR0b25z4oCZCiAgICAgVGhlIHdp ZGdldHMgcmVwcmVzZW50aW5nIHRoZSByYWRpbyBidXR0b25zLgoK4oCYOmNoaWxkcmVu4oCZCiAg ICAgVGhlIHdpZGdldHMgcmVwcmVzZW50aW5nIGVhY2ggdHlwZS4KCuKAmDpjaG9pY2XigJkKICAg ICBUaGUgY3VycmVudCBjaG9zZW4gdHlwZQoK4oCYOmFyZ3PigJkKICAgICBUaGUgbGlzdCBvZiB0 eXBlcy4KCiAgIFlvdSBjYW4gYWRkIGV4dHJhIHJhZGlvIGJ1dHRvbiBpdGVtcyB0byBhIOKAmHJh ZGlvLWJ1dHRvbi1jaG9pY2XigJkKd2lkZ2V0IGFmdGVyIGl0IGhhcyBiZWVuIGNyZWF0ZWQgd2l0 aCB0aGUgZnVuY3Rpb24K4oCYd2lkZ2V0LXJhZGlvLWFkZC1pdGVt4oCZLgoKIC0tIEZ1bmN0aW9u OiB3aWRnZXQtcmFkaW8tYWRkLWl0ZW0gd2lkZ2V0IHR5cGUKICAgICBBZGQgdG8g4oCYcmFkaW8t YnV0dG9uLWNob2ljZeKAmSB3aWRnZXQgV0lER0VUIGEgbmV3IHJhZGlvIGJ1dHRvbiBpdGVtCiAg ICAgb2YgdHlwZSBUWVBFLgoKICAgUGxlYXNlIG5vdGUgdGhhdCBzdWNoIGl0ZW1zIGFkZGVkIGFm dGVyIHRoZSDigJhyYWRpby1idXR0b24tY2hvaWNl4oCZCndpZGdldCBoYXMgYmVlbiBjcmVhdGVk IHdpbGwgKm5vdCogYmUgcHJvcGVybHkgZGVzdHJ1Y3RlZCB3aGVuIHlvdSBjYWxsCuKAmHdpZGdl dC1kZWxldGXigJkuCgo1LjkgVGhlIOKAmGl0ZW3igJkgV2lkZ2V0Cj09PT09PT09PT09PT09PT09 PT09PQoKU3ludGF4OgoKICAgICBJVEVNIDo6PSAoaXRlbSBbS0VZV09SRCBBUkdVTUVOVF0uLi4g VkFMVUUpCgogICBUaGUgVkFMVUUsIGlmIHByZXNlbnQsIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0 aGUg4oCYOnZhbHVl4oCZIHByb3BlcnR5LgpUaGUgdmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nLCB3 aGljaCB3aWxsIGJlIGluc2VydGVkIGluIHRoZSBidWZmZXIuClRoaXMgd2lkZ2V0IHdpbGwgb25s eSBtYXRjaCB0aGUgc3BlY2lmaWVkIHZhbHVlLgoKNS4xMCBUaGUg4oCYY2hvaWNlLWl0ZW3igJkg V2lkZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpTeW50YXg6CgogICAgIElURU0g Ojo9IChjaG9pY2UtaXRlbSBbS0VZV09SRCBBUkdVTUVOVF0uLi4gVkFMVUUpCgogICBUaGUgVkFM VUUsIGlmIHByZXNlbnQsIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl4oCZIHBy b3BlcnR5LgpUaGUgdmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nLCB3aGljaCB3aWxsIGJlIGluc2Vy dGVkIGluIHRoZSBidWZmZXIgYXMgYQpidXR0b24uICBBY3RpdmF0aW5nIHRoZSBidXR0b24gb2Yg YSDigJhjaG9pY2UtaXRlbeKAmSBpcyBlcXVpdmFsZW50IHRvCmFjdGl2YXRpbmcgdGhlIHBhcmVu dCB3aWRnZXQuICBUaGlzIHdpZGdldCB3aWxsIG9ubHkgbWF0Y2ggdGhlIHNwZWNpZmllZAp2YWx1 ZS4KCjUuMTEgVGhlIOKAmHRvZ2dsZeKAmSBXaWRnZXQKPT09PT09PT09PT09PT09PT09PT09PT09 CgpTeW50YXg6CgogICAgIFRZUEUgOjo9ICh0b2dnbGUgW0tFWVdPUkQgQVJHVU1FTlRdLi4uKQoK ICAgVGhlIHdpZGdldCBoYXMgdHdvIHBvc3NpYmxlIHN0YXRlcywg4oCYb27igJkgYW5kIOKAmG9m ZuKAmSwgd2hpY2ggY29ycmVzcG9uZAp0byBhIOKAmHTigJkgb3Ig4oCYbmls4oCZIHZhbHVlLCBy ZXNwZWN0aXZlbHkuCgogICBUaGUgZm9sbG93aW5nIGV4dHJhIHByb3BlcnRpZXMgYXJlIHJlY29n bml6ZWQ6CgrigJg6b27igJkKICAgICBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIOKAmG9u4oCZ IHN0YXRlLiAgQnkgZGVmYXVsdCB0aGUgc3RyaW5nIOKAmG9u4oCZLgrigJg6b2Zm4oCZCiAgICAg QSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSDigJhvZmbigJkgc3RhdGUuICBCeSBkZWZhdWx0IHRo ZSBzdHJpbmcKICAgICDigJhvZmbigJkuCuKAmDpvbi1nbHlwaOKAmQogICAgIE5hbWUgb2YgYSBn bHlwaCB0byBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIOKAmDpvbuKAmSB0ZXh0IHN0cmluZywgb24K ICAgICBlbWFjc2VuIHRoYXQgc3VwcG9ydHMgdGhpcy4K4oCYOm9mZi1nbHlwaOKAmQogICAgIE5h bWUgb2YgYSBnbHlwaCB0byBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIOKAmDpvZmbigJkgdGV4dCBz dHJpbmcsIG9uCiAgICAgZW1hY3NlbiB0aGF0IHN1cHBvcnRzIHRoaXMuCgo1LjEyIFRoZSDigJhj aGVja2JveOKAmSBXaWRnZXQKPT09PT09PT09PT09PT09PT09PT09PT09PT0KClRoaXMgd2lkZ2V0 IGhhcyB0d28gcG9zc2libGUgc3RhdGVzLCDigJhzZWxlY3RlZOKAmSBhbmQg4oCYdW5zZWxlY3Rl ZOKAmSwgd2hpY2gKY29ycmVzcG9uZHMgdG8gYSDigJh04oCZIG9yIOKAmG5pbOKAmSB2YWx1ZS4K CiAgIFN5bnRheDoKCiAgICAgVFlQRSA6Oj0gKGNoZWNrYm94IFtLRVlXT1JEIEFSR1VNRU5UXS4u LikKCjUuMTMgVGhlIOKAmGNoZWNrbGlzdOKAmSBXaWRnZXQKPT09PT09PT09PT09PT09PT09PT09 PT09PT09CgpTeW50YXg6CgogICAgIFRZUEUgOjo9IChjaGVja2xpc3QgW0tFWVdPUkQgQVJHVU1F TlRdLi4uICBUWVBFIC4uLiApCgogICBUaGUgVFlQRSBhcmd1bWVudHMgcmVwcmVzZW50IGVhY2gg Y2hlY2tsaXN0IGl0ZW0uICBUaGUgd2lkZ2V04oCZcyB2YWx1ZQp3aWxsIGJlIGEgbGlzdCBjb250 YWluaW5nIHRoZSB2YWx1ZXMgb2YgYWxsIGNoZWNrZWQgVFlQRSBhcmd1bWVudHMuICBUaGUKY2hl Y2tsaXN0IHdpZGdldCB3aWxsIG1hdGNoIGEgbGlzdCB3aG9zZSBlbGVtZW50cyBhbGwgbWF0Y2gg YXQgbGVhc3Qgb25lCm9mIHRoZSBzcGVjaWZpZWQgVFlQRSBhcmd1bWVudHMuCgogICBUaGUgZm9s bG93aW5nIGV4dHJhIHByb3BlcnRpZXMgYXJlIHJlY29nbml6ZWQ6CgrigJg6ZW50cnktZm9ybWF0 4oCZCiAgICAgVGhpcyBzdHJpbmcgd2lsbCBiZSBpbnNlcnRlZCBmb3IgZWFjaCBlbnRyeSBpbiB0 aGUgbGlzdC4gIFRoZQogICAgIGZvbGxvd2luZyDigJgl4oCZIGVzY2FwZXMgYXJlIGF2YWlsYWJs ZToKICAgICDigJglduKAmQogICAgICAgICAgUmVwbGFjZWQgd2l0aCB0aGUgYnVmZmVyIHJlcHJl c2VudGF0aW9uIG9mIHRoZSBUWVBFIHdpZGdldC4KICAgICDigJglYuKAmQogICAgICAgICAgUmVw bGFjZSB3aXRoIHRoZSBjaGVja2JveC4KICAgICDigJglJeKAmQogICAgICAgICAgSW5zZXJ0IGEg bGl0ZXJhbCDigJgl4oCZLgoK4oCYOmdyZWVkeeKAmQogICAgIFVzdWFsbHkgYSBjaGVja2xpc3Qg d2lsbCBvbmx5IG1hdGNoIGlmIHRoZSBpdGVtcyBhcmUgaW4gdGhlIGV4YWN0CiAgICAgc2VxdWVu Y2UgZ2l2ZW4gaW4gdGhlIHNwZWNpZmljYXRpb24uICBCeSBzZXR0aW5nIOKAmDpncmVlZHnigJkg dG8KICAgICBub24t4oCYbmls4oCZLCBpdCB3aWxsIGFsbG93IHRoZSBpdGVtcyB0byBjb21lIGlu IGFueSBzZXF1ZW5jZS4KICAgICBIb3dldmVyLCBpZiB5b3UgZXh0cmFjdCB0aGUgdmFsdWUgdGhl eSB3aWxsIGJlIGluIHRoZSBzZXF1ZW5jZQogICAgIGdpdmVuIGluIHRoZSBjaGVja2xpc3QsIGku ZS4sIHRoZSBvcmlnaW5hbCBzZXF1ZW5jZSBpcyBmb3Jnb3R0ZW4uCgrigJg6YnV0dG9uLWFyZ3Pi gJkKICAgICBBIGxpc3Qgb2Yga2V5d29yZHMgdG8gcGFzcyB0byB0aGUgY2hlY2tib3hlcy4gIFVz ZWZ1bCBmb3Igc2V0dGluZywKICAgICBlLmcuLCB0aGUg4oCYOmhlbHAtZWNob+KAmSBmb3IgZWFj aCBjaGVja2JveC4KCuKAmDpidXR0b25z4oCZCiAgICAgVGhlIHdpZGdldHMgcmVwcmVzZW50aW5n IHRoZSBjaGVja2JveGVzLgoK4oCYOmNoaWxkcmVu4oCZCiAgICAgVGhlIHdpZGdldHMgcmVwcmVz ZW50aW5nIGVhY2ggdHlwZS4KCuKAmDphcmdz4oCZCiAgICAgVGhlIGxpc3Qgb2YgdHlwZXMuCgo1 LjE0IFRoZSDigJhlZGl0YWJsZS1saXN04oCZIFdpZGdldAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CgpTeW50YXg6CgogICAgIFRZUEUgOjo9IChlZGl0YWJsZS1saXN0IFtLRVlXT1JE IEFSR1VNRU5UXS4uLiBUWVBFKQoKICAgVGhlIHZhbHVlIGlzIGEgbGlzdCwgd2hlcmUgZWFjaCBt ZW1iZXIgcmVwcmVzZW50cyBvbmUgd2lkZ2V0IG9mIHR5cGUKVFlQRS4KCiAgIFRoZSBmb2xsb3dp bmcgZXh0cmEgcHJvcGVydGllcyBhcmUgcmVjb2duaXplZDoKCuKAmDplbnRyeS1mb3JtYXTigJkK ICAgICBUaGlzIHN0cmluZyB3aWxsIGJlIGluc2VydGVkIGZvciBlYWNoIGVudHJ5IGluIHRoZSBs aXN0LiAgVGhlCiAgICAgZm9sbG93aW5nIOKAmCXigJkgZXNjYXBlcyBhcmUgYXZhaWxhYmxlOgog ICAgIOKAmCV24oCZCiAgICAgICAgICBUaGlzIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgYnVm ZmVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZQogICAgICAgICAgVFlQRSB3aWRnZXQuCiAgICAg4oCY JWnigJkKICAgICAgICAgIEluc2VydCB0aGUgW0lOU10gYnV0dG9uLgogICAgIOKAmCVk4oCZCiAg ICAgICAgICBJbnNlcnQgdGhlIFtERUxdIGJ1dHRvbi4KICAgICDigJglJeKAmQogICAgICAgICAg SW5zZXJ0IGEgbGl0ZXJhbCDigJgl4oCZLgoK4oCYOmluc2VydC1idXR0b24tYXJnc+KAmQogICAg IEEgbGlzdCBvZiBrZXl3b3JkIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBpbnNlcnQgYnV0dG9u cy4KCuKAmDpkZWxldGUtYnV0dG9uLWFyZ3PigJkKICAgICBBIGxpc3Qgb2Yga2V5d29yZCBhcmd1 bWVudHMgdG8gcGFzcyB0byB0aGUgZGVsZXRlIGJ1dHRvbnMuCgrigJg6YXBwZW5kLWJ1dHRvbi1h cmdz4oCZCiAgICAgQSBsaXN0IG9mIGtleXdvcmQgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIHRy YWlsaW5nIGluc2VydCBidXR0b24uCgrigJg6YnV0dG9uc+KAmQogICAgIFRoZSB3aWRnZXRzIHJl cHJlc2VudGluZyB0aGUgaW5zZXJ0IGFuZCBkZWxldGUgYnV0dG9ucy4KCuKAmDpjaGlsZHJlbuKA mQogICAgIFRoZSB3aWRnZXRzIHJlcHJlc2VudGluZyB0aGUgZWxlbWVudHMgb2YgdGhlIGxpc3Qu CgrigJg6YXJnc+KAmQogICAgIExpc3Qgd2hvc2UgQ0FSIGlzIHRoZSB0eXBlIG9mIHRoZSBsaXN0 IGVsZW1lbnRzLgoKNS4xNSBUaGUg4oCYZ3JvdXDigJkgV2lkZ2V0Cj09PT09PT09PT09PT09PT09 PT09PT09CgpUaGlzIHdpZGdldCBzaW1wbHkgZ3JvdXAgb3RoZXIgd2lkZ2V0cyB0b2dldGhlci4K CiAgIFN5bnRheDoKCiAgICAgVFlQRSA6Oj0gKGdyb3VwIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiBU WVBFLi4uKQoKICAgVGhlIHZhbHVlIGlzIGEgbGlzdCwgd2l0aCBvbmUgbWVtYmVyIGZvciBlYWNo IFRZUEUuCgo2IFNleHAgVHlwZXMKKioqKioqKioqKioqCgpBIG51bWJlciBvZiB3aWRnZXRzIGZv ciBlZGl0aW5nIOKAnHMtZXhwcmVzc2lvbnPigJ0gKExpc3AgdHlwZXMpLCBzZXhwIGZvcgpzaG9y dCwgYXJlIGFsc28gYXZhaWxhYmxlLiAgVGhlc2UgYmFzaWNhbGx5IGZhbGwgaW4gc2V2ZXJhbCBj YXRlZ29yaWVzCmRlc2NyaWJlZCBpbiB0aGlzIHNlY3Rpb24uCgo2LjEgVGhlIENvbnN0YW50IFdp ZGdldHMKPT09PT09PT09PT09PT09PT09PT09PT09CgpUaGUg4oCYY29uc3TigJkgd2lkZ2V0IGNh biBjb250YWluIGFueSBMaXNwIGV4cHJlc3Npb24sIGJ1dCB0aGUgdXNlciBpcwpwcm9oaWJpdGVk IGZyb20gZWRpdGluZyBpdCwgd2hpY2ggaXMgbWFpbmx5IHVzZWZ1bCBhcyBhIGNvbXBvbmVudCBv ZiBvbmUKb2YgdGhlIGNvbXBvc2l0ZSB3aWRnZXRzLgoKICAgVGhlIHN5bnRheCBmb3IgdGhlIOKA mGNvbnN04oCZIHdpZGdldCBpczoKCiAgICAgVFlQRSA6Oj0gKGNvbnN0IFtLRVlXT1JEIEFSR1VN RU5UXS4uLiAgWyBWQUxVRSBdKQoKICAgVGhlIFZBTFVFLCBpZiBwcmVzZW50LCBpcyB1c2VkIHRv IGluaXRpYWxpemUgdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eQphbmQgY2FuIGJlIGFueSBzLWV4 cHJlc3Npb24uCgogLS0gV2lkZ2V0OiBjb25zdAogICAgIFRoaXMgd2lsbCBkaXNwbGF5IGFueSB2 YWxpZCBzLWV4cHJlc3Npb24gaW4gYW4gaW1tdXRhYmxlIHBhcnQgb2YKICAgICB0aGUgYnVmZmVy LgoKICAgVGhlcmUgYXJlIHR3byB2YXJpYXRpb25zIG9mIHRoZSDigJhjb25zdOKAmSB3aWRnZXQs IG5hbWVseQrigJh2YXJpYWJsZS1pdGVt4oCZIGFuZCDigJhmdW5jdGlvbi1pdGVt4oCZLiAgVGhl c2Ugc2hvdWxkIGNvbnRhaW4gYSBzeW1ib2wgd2l0aAphIHZhcmlhYmxlIG9yIGZ1bmN0aW9uIGJp bmRpbmcuICBUaGUgbWFqb3IgZGlmZmVyZW5jZSBmcm9tIHRoZSDigJhjb25zdOKAmQp3aWRnZXQg aXMgdGhhdCB0aGV5IHdpbGwgYWxsb3cgdGhlIHVzZXIgdG8gc2VlIHRoZSB2YXJpYWJsZSBvciBm dW5jdGlvbgpkb2N1bWVudGF0aW9uIGZvciB0aGUgc3ltYm9sLgoKIC0tIFdpZGdldDogdmFyaWFi bGUtaXRlbQogICAgIEFuIGltbXV0YWJsZSBzeW1ib2wgdGhhdCBpcyBib3VuZCBhcyBhIHZhcmlh YmxlLgoKIC0tIFdpZGdldDogZnVuY3Rpb24taXRlbQogICAgIEFuIGltbXV0YWJsZSBzeW1ib2wg dGhhdCBpcyBib3VuZCBhcyBhIGZ1bmN0aW9uLgoKNi4yIEdlbmVyaWMgU2V4cCBXaWRnZXQKPT09 PT09PT09PT09PT09PT09PT09PT0KClRoZSDigJhzZXhw4oCZIHdpZGdldCBjYW4gY29udGFpbiBh bnkgTGlzcCBleHByZXNzaW9uLCBhbmQgYWxsb3dzIHRoZSB1c2VyCnRvIGVkaXQgaXQgaW5saW5l IGluIHRoZSBidWZmZXIuCgogICBUaGUgc3ludGF4IGZvciB0aGUg4oCYc2V4cOKAmSB3aWRnZXQg aXM6CgogICAgIFRZUEUgOjo9IChzZXhwIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgWyBWQUxVRSBd KQoKIC0tIFdpZGdldDogc2V4cAogICAgIFRoaXMgd2lsbCBhbGxvdyB5b3UgdG8gZWRpdCBhbnkg dmFsaWQgcy1leHByZXNzaW9uIGluIGFuIGVkaXRhYmxlCiAgICAgYnVmZmVyIGZpZWxkLgoKICAg ICBUaGUg4oCYc2V4cOKAmSB3aWRnZXQgdGFrZXMgdGhlIHNhbWUga2V5d29yZCBhcmd1bWVudHMg YXMgdGhlCiAgICAg4oCYZWRpdGFibGUtZmllbGTigJkgd2lkZ2V0LiAgKk5vdGUgZWRpdGFibGUt ZmllbGQ6Oi4KCjYuMyBBdG9taWMgU2V4cCBXaWRnZXRzCj09PT09PT09PT09PT09PT09PT09PT09 CgpUaGUgYXRvbXMgYXJlIHMtZXhwcmVzc2lvbnMgdGhhdCBkbyBub3QgY29uc2lzdCBvZiBvdGhl ciBzLWV4cHJlc3Npb25zLgpGb3IgZXhhbXBsZSwgYSBzdHJpbmcsIGEgZmlsZSBuYW1lLCBvciBh IHN5bWJvbCBhcmUgYXRvbXMsIHdoaWxlIGEgbGlzdAppcyBhIGNvbXBvc2l0ZSB0eXBlLiAgWW91 IGNhbiBlZGl0IHRoZSB2YWx1ZSBvZiBhbiBhdG9tIHdpdGggdGhlCmZvbGxvd2luZyB3aWRnZXRz LgoKICAgVGhlIHN5bnRheCBmb3IgYWxsIHRoZSBhdG9tcyBhcmU6CgogICAgIFRZUEUgOjo9IChD T05TVFJVQ1QgW0tFWVdPUkQgQVJHVU1FTlRdLi4uICBbIFZBTFVFIF0pCgogICBUaGUgVkFMVUUs IGlmIHByZXNlbnQsIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl4oCZIHByb3Bl cnR5CmFuZCBtdXN0IGJlIGFuIGV4cHJlc3Npb24gb2YgdGhlIHNhbWUgdHlwZSBhcyB0aGUgd2lk Z2V0LiAgVGhhdCBpcywgdGhlCnN0cmluZyB3aWRnZXQgY2FuIG9ubHkgYmUgaW5pdGlhbGl6ZWQg d2l0aCBhIHN0cmluZy4KCiAgIEFsbCB0aGUgYXRvbSB3aWRnZXRzIHRha2UgdGhlIHNhbWUga2V5 d29yZCBhcmd1bWVudHMgYXMgdGhlCuKAmGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdldC4gICpOb3Rl IGVkaXRhYmxlLWZpZWxkOjouCgogLS0gV2lkZ2V0OiBzdHJpbmcKICAgICBBbGxvd3MgeW91IHRv IGVkaXQgYSBzdHJpbmcgaW4gYW4gZWRpdGFibGUgZmllbGQuCgogLS0gV2lkZ2V0OiByZWdleHAK ICAgICBBbGxvd3MgeW91IHRvIGVkaXQgYSByZWd1bGFyIGV4cHJlc3Npb24gaW4gYW4gZWRpdGFi bGUgZmllbGQuCgogLS0gV2lkZ2V0OiBjaGFyYWN0ZXIKICAgICBBbGxvd3MgeW91IHRvIGVudGVy IGEgY2hhcmFjdGVyIGluIGFuIGVkaXRhYmxlIGZpZWxkLgoKIC0tIFdpZGdldDogZmlsZQogICAg IEFsbG93cyB5b3UgdG8gZWRpdCBhIGZpbGUgbmFtZSBpbiBhbiBlZGl0YWJsZSBmaWVsZC4KCiAg ICAgS2V5d29yZHM6CiAgICAg4oCYOm11c3QtbWF0Y2jigJkKICAgICAgICAgIElmIHRoaXMgaXMg c2V0IHRvIG5vbi3igJhuaWzigJksIG9ubHkgZXhpc3RpbmcgZmlsZSBuYW1lcyB3aWxsIGJlCiAg ICAgICAgICBhbGxvd2VkIGluIHRoZSBtaW5pYnVmZmVyLgoKIC0tIFdpZGdldDogZGlyZWN0b3J5 CiAgICAgQWxsb3dzIHlvdSB0byBlZGl0IGEgZGlyZWN0b3J5IG5hbWUgaW4gYW4gZWRpdGFibGUg ZmllbGQuICBTaW1pbGFyCiAgICAgdG8gdGhlIOKAmGZpbGXigJkgd2lkZ2V0LgoKIC0tIFdpZGdl dDogc3ltYm9sCiAgICAgQWxsb3dzIHlvdSB0byBlZGl0IGEgTGlzcCBzeW1ib2wgaW4gYW4gZWRp dGFibGUgZmllbGQuCgogLS0gV2lkZ2V0OiBmdW5jdGlvbgogICAgIEFsbG93cyB5b3UgdG8gZWRp dCBhIGxhbWJkYSBleHByZXNzaW9uLCBvciBhIGZ1bmN0aW9uIG5hbWUgd2l0aAogICAgIGNvbXBs ZXRpb24uCgogLS0gV2lkZ2V0OiB2YXJpYWJsZQogICAgIEFsbG93cyB5b3UgdG8gZWRpdCBhIHZh cmlhYmxlIG5hbWUsIHdpdGggY29tcGxldGlvbi4KCiAtLSBXaWRnZXQ6IGludGVnZXIKICAgICBB bGxvd3MgeW91IHRvIGVkaXQgYW4gaW50ZWdlciBpbiBhbiBlZGl0YWJsZSBmaWVsZC4KCiAtLSBX aWRnZXQ6IG51bWJlcgogICAgIEFsbG93cyB5b3UgdG8gZWRpdCBhIG51bWJlciBpbiBhbiBlZGl0 YWJsZSBmaWVsZC4KCiAtLSBXaWRnZXQ6IGJvb2xlYW4KICAgICBBbGxvd3MgeW91IHRvIGVkaXQg YSBib29sZWFuLiAgSW4gTGlzcCB0aGlzIG1lYW5zIGEgdmFyaWFibGUgd2hpY2gKICAgICBpcyBl aXRoZXIg4oCYbmls4oCZIG1lYW5pbmcgZmFsc2UsIG9yIG5vbi3igJhuaWzigJkgbWVhbmluZyB0 cnVlLgoKNi40IENvbXBvc2l0ZSBTZXhwIFdpZGdldHMKPT09PT09PT09PT09PT09PT09PT09PT09 PT0KClRoZSBzeW50YXggZm9yIHRoZSBjb21wb3NpdGUgd2lkZ2V0IGNvbnN0cnVjdCBpczoKCiAg ICAgVFlQRSA6Oj0gKENPTlNUUlVDVCBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIENPTVBPTkVOVC4u LikKCndoZXJlIGVhY2ggQ09NUE9ORU5UIG11c3QgYmUgYSB3aWRnZXQgdHlwZS4gIEVhY2ggY29t cG9uZW50IHdpZGdldCB3aWxsCmJlIGRpc3BsYXllZCBpbiB0aGUgYnVmZmVyLCBhbmQgd2lsbCBi ZSBlZGl0YWJsZSBieSB0aGUgdXNlci4KCiAtLSBXaWRnZXQ6IGNvbnMKICAgICBUaGUgdmFsdWUg b2YgYSDigJhjb25z4oCZIHdpZGdldCBtdXN0IGJlIGEgY29ucy1jZWxsIHdob3NlIENBUiBhbmQg Q0RSCiAgICAgaGF2ZSB0d28gc3BlY2lmaWVkIHR5cGVzLiAgSXQgdXNlcyB0aGlzIHN5bnRheDoK CiAgICAgICAgICBUWVBFIDo6PSAoY29ucyBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIENBUi1UWVBF IENEUi1UWVBFKQoKIC0tIFdpZGdldDogY2hvaWNlCiAgICAgVGhlIHZhbHVlIG1hdGNoZWQgYnkg YSDigJhjaG9pY2XigJkgd2lkZ2V0IG11c3QgaGF2ZSBvbmUgb2YgYSBmaXhlZCBzZXQKICAgICBv ZiB0eXBlcy4gIFRoZSB3aWRnZXTigJlzIHN5bnRheCBpcyBhcyBmb2xsb3dzOgoKICAgICAgICAg IFRZUEUgOjo9IChjaG9pY2UgW0tFWVdPUkQgQVJHVU1FTlRdLi4uICBUWVBFIC4uLiApCgogICAg IFRoZSB2YWx1ZSBvZiBhIOKAmGNob2ljZeKAmSB3aWRnZXQgY2FuIGJlIGFueXRoaW5nIHRoYXQg bWF0Y2hlcyBhbnkgb2YKICAgICB0aGUgVFlQRVMuCgogLS0gV2lkZ2V0OiBsaXN0CiAgICAgVGhl IHZhbHVlIG9mIGEg4oCYbGlzdOKAmSB3aWRnZXQgbXVzdCBiZSBhIGxpc3Qgd2hvc2UgZWxlbWVu dCB0eXBlcwogICAgIG1hdGNoIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50IHR5cGVzOgoKICAgICAg ICAgIFRZUEUgOjo9IChsaXN0IFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgQ09NUE9ORU5ULVRZUEUu Li4pCgogICAgIFRodXMsIOKAmChsaXN0IHN0cmluZyBudW1iZXIp4oCZIG1hdGNoZXMgbGlzdHMg b2YgdHdvIGVsZW1lbnRzLCB0aGUKICAgICBmaXJzdCBiZWluZyBhIHN0cmluZyBhbmQgdGhlIHNl Y29uZCBiZWluZyBhIG51bWJlci4KCiAtLSBXaWRnZXQ6IHZlY3RvcgogICAgIFRoZSDigJh2ZWN0 b3LigJkgd2lkZ2V0IGlzIGxpa2UgdGhlIOKAmGxpc3TigJkgd2lkZ2V0IGJ1dCBtYXRjaGVzIHZl Y3RvcnMKICAgICBpbnN0ZWFkIG9mIGxpc3RzLiAgVGh1cywg4oCYKHZlY3RvciBzdHJpbmcgbnVt YmVyKeKAmSBtYXRjaGVzIHZlY3RvcnMKICAgICBvZiB0d28gZWxlbWVudHMsIHRoZSBmaXJzdCBi ZWluZyBhIHN0cmluZyBhbmQgdGhlIHNlY29uZCBiZWluZyBhCiAgICAgbnVtYmVyLgoKICAgVGhl IGFib3ZlIHN1ZmZpY2UgZm9yIHNwZWNpZnlpbmcgZml4ZWQgc2l6ZSBsaXN0cyBhbmQgdmVjdG9y cy4gIFRvCmdldCB2YXJpYWJsZSBsZW5ndGggbGlzdHMgYW5kIHZlY3RvcnMsIHlvdSBjYW4gdXNl IGEg4oCYY2hvaWNl4oCZLCDigJhzZXTigJksIG9yCuKAmHJlcGVhdOKAmSB3aWRnZXQgdG9nZXRo ZXIgd2l0aCB0aGUg4oCYOmlubGluZeKAmSBrZXl3b3JkLiAgSWYgYW55IGNvbXBvbmVudApvZiBh IGNvbXBvc2l0ZSB3aWRnZXQgaGFzIHRoZSDigJg6aW5saW5l4oCZIGtleXdvcmQgc2V0LCBpdHMg dmFsdWUgbXVzdCBiZSBhCmxpc3Qgd2hpY2ggd2lsbCB0aGVuIGJlIHNwbGljZWQgaW50byB0aGUg Y29tcG9zaXRlLiAgRm9yIGV4YW1wbGUsIHRvCnNwZWNpZnkgYSBsaXN0IHdob3NlIGZpcnN0IGVs ZW1lbnQgbXVzdCBiZSBhIGZpbGUgbmFtZSwgYW5kIHdob3NlCnJlbWFpbmluZyBlbGVtZW50cyBz aG91bGQgZWl0aGVyIGJlIHRoZSBzeW1ib2wg4oCYdOKAmSBvciB0d28gc3RyaW5ncyAoZmlsZQpu YW1lcyksIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgd2lkZ2V0IHNwZWNpZmljYXRpb246Cgog ICAgIChsaXN0IGZpbGUKICAgICAgICAgICAoY2hvaWNlIChjb25zdCB0KQogICAgICAgICAgICAg ICAgICAgKGxpc3QgOmlubGluZSB0CiAgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWUgKCJm b28iICJiYXIiKQogICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHN0cmluZykpKQoKICAg VGhlIHZhbHVlIG9mIGEgd2lkZ2V0IG9mIHRoaXMgdHlwZSB3aWxsIGVpdGhlciBoYXZlIHRoZSBm b3JtIOKAmChmaWxlCnQp4oCZIG9yIOKAmChmaWxlIFNUUklORyBTVFJJTkcp4oCZLgoKICAgVGhp cyBjb25jZXB0IG9mIOKAmDppbmxpbmXigJkgbWF5IGJlIGhhcmQgdG8gdW5kZXJzdGFuZC4gIEl0 IHdhcwpjZXJ0YWlubHkgaGFyZCB0byBpbXBsZW1lbnQsIHNvIGluc3RlYWQgb2YgY29uZnVzaW5n IHlvdSBtb3JlIGJ5IHRyeWluZwp0byBleHBsYWluIGl0IGhlcmUsIEnigJlsbCBqdXN0IHN1Z2dl c3QgeW91IG1lZGl0YXRlIG92ZXIgaXQgZm9yIGEgd2hpbGUuCgogLS0gV2lkZ2V0OiBzZXQKICAg ICBTcGVjaWZpZXMgYSB0eXBlIHdob3NlIHZhbHVlcyBhcmUgdGhlIGxpc3RzIHdob3NlIGVsZW1l bnRzIGFsbAogICAgIGJlbG9uZyB0byBhIGdpdmVuIHNldC4gIFRoZSBvcmRlciBvZiBlbGVtZW50 cyBvZiB0aGUgbGlzdCBpcyBub3QKICAgICBzaWduaWZpY2FudC4gIEhlcmXigJlzIHRoZSBzeW50 YXg6CgogICAgICAgICAgVFlQRSA6Oj0gKHNldCBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIFBFUk1J VFRFRC1FTEVNRU5UIC4uLiApCgogICAgIFVzZSDigJhjb25zdOKAmSB0byBzcGVjaWZ5IGVhY2gg cGVybWl0dGVkIGVsZW1lbnQsIGxpa2UgdGhpczog4oCYKHNldAogICAgIChjb25zdCBhKSAoY29u c3QgYikp4oCZLgoKIC0tIFdpZGdldDogcmVwZWF0CiAgICAgU3BlY2lmaWVzIGEgbGlzdCBvZiBh bnkgbnVtYmVyIG9mIGVsZW1lbnRzIHRoYXQgZml0IGEgY2VydGFpbiB0eXBlLgoKICAgICAgICAg IFRZUEUgOjo9IChyZXBlYXQgW0tFWVdPUkQgQVJHVU1FTlRdLi4uICBUWVBFKQoKNyBQcm9wZXJ0 aWVzCioqKioqKioqKioqKgoKWW91IGNhbiBleGFtaW5lIG9yIHNldCB0aGUgdmFsdWUgb2YgYSB3 aWRnZXQgYnkgdXNpbmcgdGhlIHdpZGdldCBvYmplY3QKdGhhdCB3YXMgcmV0dXJuZWQgYnkg4oCY d2lkZ2V0LWNyZWF0ZeKAmS4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LXZhbHVlIHdpZGdldAogICAg IFJldHVybiB0aGUgY3VycmVudCB2YWx1ZSBjb250YWluZWQgaW4gV0lER0VULiAgSXQgaXMgYW4g ZXJyb3IgdG8KICAgICBjYWxsIHRoaXMgZnVuY3Rpb24gb24gYW4gdW5pbml0aWFsaXplZCB3aWRn ZXQuCgogLS0gRnVuY3Rpb246IHdpZGdldC12YWx1ZS1zZXQgd2lkZ2V0IHZhbHVlCiAgICAgU2V0 IHRoZSB2YWx1ZSBjb250YWluZWQgaW4gV0lER0VUIHRvIFZBTFVFLiAgSXQgaXMgYW4gZXJyb3Ig dG8gY2FsbAogICAgIHRoaXMgZnVuY3Rpb24gd2l0aCBhbiBpbnZhbGlkIFZBTFVFLgoKICAgKklt cG9ydGFudDoqIFlvdSBfbXVzdF8gY2FsbCDigJh3aWRnZXQtc2V0dXDigJkgYWZ0ZXIgbW9kaWZ5 aW5nIHRoZSB2YWx1ZQpvZiBhIHdpZGdldCBiZWZvcmUgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBl ZGl0IHRoZSB3aWRnZXQgYWdhaW4uICBJdCBpcwplbm91Z2ggdG8gY2FsbCDigJh3aWRnZXQtc2V0 dXDigJkgb25jZSBpZiB5b3UgbW9kaWZ5IG11bHRpcGxlIHdpZGdldHMuICBUaGlzCmlzIGN1cnJl bnRseSBvbmx5IG5lY2Vzc2FyeSBpZiB0aGUgd2lkZ2V0IGNvbnRhaW5zIGFuIGVkaXRpbmcgZmll bGQsIGJ1dAptYXkgYmUgbmVjZXNzYXJ5IGZvciBvdGhlciB3aWRnZXRzIGluIHRoZSBmdXR1cmUu CgogICBJZiB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzIHRvIGFzc29jaWF0ZSBzb21lIGluZm9ybWF0 aW9uIHdpdGggdGhlCndpZGdldCBvYmplY3RzLCBmb3IgZXhhbXBsZSBhIHJlZmVyZW5jZSB0byB0 aGUgaXRlbSBiZWluZyBlZGl0ZWQsIGl0IGNhbgpiZSBkb25lIHdpdGgg4oCYd2lkZ2V0LXB1dOKA mSBhbmQg4oCYd2lkZ2V0LWdldOKAmS4gIFRoZSBwcm9wZXJ0eSBuYW1lcyBtdXN0CmJlZ2luIHdp dGggYSDigJg64oCZLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtcHV0IHdpZGdldCBwcm9wZXJ0eSB2 YWx1ZQogICAgIEluIFdJREdFVCBzZXQgUFJPUEVSVFkgdG8gVkFMVUUuICBQUk9QRVJUWSBzaG91 bGQgYmUgYSBzeW1ib2wsCiAgICAgd2hpbGUgVkFMVUUgY2FuIGJlIGFueXRoaW5nLgoKIC0tIEZ1 bmN0aW9uOiB3aWRnZXQtZ2V0IHdpZGdldCBwcm9wZXJ0eQogICAgIEluIFdJREdFVCByZXR1cm4g dGhlIHZhbHVlIGZvciBQUk9QRVJUWS4gIFBST1BFUlRZIHNob3VsZCBiZSBhCiAgICAgc3ltYm9s LCB0aGUgdmFsdWUgaXMgd2hhdCB3YXMgbGFzdCBzZXQgYnkg4oCYd2lkZ2V0LXB1dOKAmSBmb3IK ICAgICBQUk9QRVJUWS4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LW1lbWJlciB3aWRnZXQgcHJvcGVy dHkKICAgICBOb24t4oCYbmls4oCZIGlmIFdJREdFVCBoYXMgYSB2YWx1ZSAoZXZlbiDigJhuaWzi gJkpIGZvciBwcm9wZXJ0eSBQUk9QRVJUWS4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LWFwcGx5IHdp ZGdldCBwcm9wZXJ0eSAmcmVzdCBhcmdzCiAgICAgQXBwbHkgdGhlIHZhbHVlIG9mIFBST1BFUlRZ IHRvIFdJREdFVCwgcGFzc2luZyBBUkdTIGFzIGFkZGl0aW9uYWwKICAgICBhcmd1bWVudHMgdG8g dGhlIGZ1bmN0aW9uLiAgUmV0dXJuIHRoZSByZXN1bHQgb2YgdGhhdCBmdW5jdGlvbgogICAgIGNh bGwuCgogICBPY2Nhc2lvbmFsbHkgaXQgY2FuIGJlIHVzZWZ1bCB0byBrbm93IHdoaWNoIGtpbmQg b2Ygd2lkZ2V0IHlvdSBoYXZlLAppLmUuLCB0aGUgbmFtZSBvZiB0aGUgd2lkZ2V0IHR5cGUgeW91 IGdhdmUgd2hlbiB0aGUgd2lkZ2V0IHdhcyBjcmVhdGVkLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQt dHlwZSB3aWRnZXQKICAgICBSZXR1cm4gdGhlIG5hbWUgb2YgV0lER0VULCBhIHN5bWJvbC4KCiAg IFdpZGdldHMgY2FuIGJlIGluIHR3byBzdGF0ZXM6IGFjdGl2ZSwgd2hpY2ggbWVhbnMgdGhleSBh cmUgbW9kaWZpYWJsZQpieSB0aGUgdXNlciwgb3IgaW5hY3RpdmUsIHdoaWNoIG1lYW5zIHRoZXkg Y2Fubm90IGJlIG1vZGlmaWVkIGJ5IHRoZQp1c2VyLiAgWW91IGNhbiBxdWVyeSBvciBzZXQgdGhl IHN0YXRlIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOgoKICAgICA7OyBFeGFtaW5lIGlmIFdJREdF VCBpcyBhY3RpdmUgb3Igbm90LgogICAgIChpZiAod2lkZ2V0LWFwcGx5IFdJREdFVCA6YWN0aXZl KQogICAgICAgICAobWVzc2FnZSAiV2lkZ2V0IGlzIGFjdGl2ZS4iKQogICAgICAgKG1lc3NhZ2Ug IldpZGdldCBpcyBpbmFjdGl2ZS4iKQoKICAgICA7OyBNYWtlIFdJREdFVCBpbmFjdGl2ZS4KICAg ICAod2lkZ2V0LWFwcGx5IFdJREdFVCA6ZGVhY3RpdmF0ZSkKCiAgICAgOzsgTWFrZSBXSURHRVQg YWN0aXZlLgogICAgICh3aWRnZXQtYXBwbHkgV0lER0VUIDphY3RpdmF0ZSkKCiAgIEEgd2lkZ2V0 IGlzIGluYWN0aXZlIGlmIGl0LCBvciBhbnkgb2YgaXRzIGFuY2VzdG9ycyAoZm91bmQgYnkKZm9s bG93aW5nIHRoZSDigJg6cGFyZW504oCZIGxpbmspLCBoYXZlIGJlZW4gZGVhY3RpdmF0ZWQuICBU byBtYWtlIHN1cmUgYQp3aWRnZXQgaXMgcmVhbGx5IGFjdGl2ZSwgeW91IG11c3QgdGhlcmVmb3Jl IGFjdGl2YXRlIGJvdGggaXQgYW5kIGFsbCBpdHMKYW5jZXN0b3JzLgoKICAgICAod2hpbGUgd2lk Z2V0CiAgICAgICAod2lkZ2V0LWFwcGx5IHdpZGdldCA6YWN0aXZhdGUpCiAgICAgICAoc2V0cSB3 aWRnZXQgKHdpZGdldC1nZXQgd2lkZ2V0IDpwYXJlbnQpKSkKCiAgIFlvdSBjYW4gY2hlY2sgaWYg YSB3aWRnZXQgaGFzIGJlZW4gbWFkZSBpbmFjdGl2ZSBieSBleGFtaW5pbmcgdGhlCnZhbHVlIG9m IHRoZSDigJg6aW5hY3RpdmXigJkga2V5d29yZC4gIElmIHRoaXMgaXMgbm9uLeKAmG5pbOKAmSwg dGhlIHdpZGdldAppdHNlbGYgaGFzIGJlZW4gZGVhY3RpdmF0ZWQuICBUaGlzIGlzIGRpZmZlcmVu dCBmcm9tIHVzaW5nIHRoZSDigJg6YWN0aXZl4oCZCmtleXdvcmQsIGluIHRoYXQgdGhlIGxhdHRl ciB0ZWxscyB5b3UgaWYgdGhlIHdpZGdldCAqb3IqIGFueSBvZiBpdHMKYW5jZXN0b3JzIGhhdmUg YmVlbiBkZWFjdGl2YXRlZC4gIERvIG5vdCBhdHRlbXB0IHRvIHNldCB0aGUg4oCYOmluYWN0aXZl 4oCZCmtleXdvcmQgZGlyZWN0bHkuICBVc2UgdGhlIOKAmDphY3RpdmF0ZeKAmSDigJg6ZGVhY3Rp dmF0ZeKAmSBrZXl3b3JkcyBpbnN0ZWFkLgoKOCBEZWZpbmluZyBOZXcgV2lkZ2V0cwoqKioqKioq KioqKioqKioqKioqKioqCgpZb3UgY2FuIGRlZmluZSBzcGVjaWFsaXplZCB3aWRnZXRzIHdpdGgg 4oCYZGVmaW5lLXdpZGdldOKAmS4gIEl0IGFsbG93cyB5b3UKdG8gY3JlYXRlIGEgc2hvcnRoYW5k IGZvciBtb3JlIGNvbXBsZXggd2lkZ2V0cywgaW5jbHVkaW5nIHNwZWNpZnlpbmcKY29tcG9uZW50 IHdpZGdldHMgYW5kIG5ldyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGtleXdvcmQgYXJndW1lbnRz LgoKIC0tIEZ1bmN0aW9uOiBkZWZpbmUtd2lkZ2V0IG5hbWUgY2xhc3MgZG9jICZyZXN0IGFyZ3MK ICAgICBEZWZpbmUgYSBuZXcgd2lkZ2V0IHR5cGUgbmFtZWQgTkFNRSBmcm9tIOKAmGNsYXNz4oCZ LgoKICAgICBOQU1FIGFuZCBjbGFzcyBzaG91bGQgYm90aCBiZSBzeW1ib2xzLCDigJhjbGFzc+KA mSBzaG91bGQgYmUgb25lIG9mIHRoZQogICAgIGV4aXN0aW5nIHdpZGdldCB0eXBlcy4KCiAgICAg VGhlIHRoaXJkIGFyZ3VtZW50IERPQyBpcyBhIGRvY3VtZW50YXRpb24gc3RyaW5nIGZvciB0aGUg d2lkZ2V0LgoKICAgICBBZnRlciB0aGUgbmV3IHdpZGdldCBoYXMgYmVlbiBkZWZpbmVkLCB0aGUg Zm9sbG93aW5nIHR3byBjYWxscyB3aWxsCiAgICAgY3JlYXRlIGlkZW50aWNhbCB3aWRnZXRzOgoK ICAgICAgICDigKIgICAgICAod2lkZ2V0LWNyZWF0ZSBOQU1FKQoKICAgICAgICDigKIgICAgICAo YXBwbHkgd2lkZ2V0LWNyZWF0ZSBDTEFTUyBBUkdTKQoKICAgVXNpbmcg4oCYZGVmaW5lLXdpZGdl dOKAmSBqdXN0IHN0b3JlcyB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgd2lkZ2V0IHR5cGUKaW4gdGhl IOKAmHdpZGdldC10eXBl4oCZIHByb3BlcnR5IG9mIE5BTUUsIHdoaWNoIGlzIHdoYXQg4oCYd2lk Z2V0LWNyZWF0ZeKAmQp1c2VzLgoKICAgSWYgeW91IG9ubHkgd2FudCB0byBzcGVjaWZ5IGRlZmF1 bHRzIGZvciBrZXl3b3JkcyB3aXRoIG5vIGNvbXBsZXgKY29udmVyc2lvbnMsIHlvdSBjYW4gdXNl IOKAmGlkZW50aXR54oCZIGFzIHlvdXIgY29udmVyc2lvbiBmdW5jdGlvbi4KCiAgIFRoZSBmb2xs b3dpbmcgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgdXNlZnVsIHdoZW4gZGVmaW5p bmcKbmV3IHdpZGdldHM6CuKAmDpjb252ZXJ0LXdpZGdldOKAmQogICAgIEZ1bmN0aW9uIHRvIGNv bnZlcnQgYSB3aWRnZXQgdHlwZSBiZWZvcmUgY3JlYXRpbmcgYSB3aWRnZXQgb2YgdGhhdAogICAg IHR5cGUuICBJdCB0YWtlcyBhIHdpZGdldCB0eXBlIGFzIGFuIGFyZ3VtZW50LCBhbmQgcmV0dXJu cyB0aGUKICAgICBjb252ZXJ0ZWQgd2lkZ2V0IHR5cGUuICBXaGVuIGEgd2lkZ2V0IGlzIGNyZWF0 ZWQsIHRoaXMgZnVuY3Rpb24gaXMKICAgICBjYWxsZWQgZm9yIHRoZSB3aWRnZXQgdHlwZSBhbmQg YWxsIHRoZSB3aWRnZXTigJlzIHBhcmVudCB0eXBlcywgbW9zdAogICAgIGRlcml2ZWQgZmlyc3Qu CgogICAgIFRoZSBmb2xsb3dpbmcgcHJlZGVmaW5lZCBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgaGVy ZToKCiAgICAgIC0tIEZ1bmN0aW9uOiB3aWRnZXQtdHlwZXMtY29udmVydC13aWRnZXQgd2lkZ2V0 CiAgICAgICAgICBDb252ZXJ0IOKAmDphcmdz4oCZIGFzIHdpZGdldCB0eXBlcyBpbiBXSURHRVQu CgogICAgICAtLSBGdW5jdGlvbjogd2lkZ2V0LXZhbHVlLWNvbnZlcnQtd2lkZ2V0IHdpZGdldAog ICAgICAgICAgSW5pdGlhbGl6ZSDigJg6dmFsdWXigJkgZnJvbSDigJg6YXJnc+KAmSBpbiBXSURH RVQuCgrigJg6Y29weeKAmQogICAgIEZ1bmN0aW9uIHRvIGRlZXAgY29weSBhIHdpZGdldCB0eXBl LiAgSXQgdGFrZXMgYSBzaGFsbG93IGNvcHkgb2YKICAgICB0aGUgd2lkZ2V0IHR5cGUgYXMgYW4g YXJndW1lbnQgKG1hZGUgYnkg4oCYY29weS1zZXF1ZW5jZeKAmSksIGFuZAogICAgIHJldHVybnMg YSBkZWVwIGNvcHkuICBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIGF2b2lkIGhhdmluZwogICAg IGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgY29tYmluZWQgd2lkZ2V0cyBzaGFyZSBuZXN0ZWQgYXR0 cmlidXRlcy4KCiAgICAgVGhlIGZvbGxvd2luZyBwcmVkZWZpbmVkIGZ1bmN0aW9ucyBjYW4gYmUg dXNlZCBoZXJlOgoKICAgICAgLS0gRnVuY3Rpb246IHdpZGdldC10eXBlcy1jb3B5IHdpZGdldAog ICAgICAgICAgQ29weSDigJg6YXJnc+KAmSBhcyB3aWRnZXQgdHlwZXMgaW4gV0lER0VULgoK4oCY OnZhbHVlLXRvLWludGVybmFs4oCZCiAgICAgRnVuY3Rpb24gdG8gY29udmVydCB0aGUgdmFsdWUg dG8gdGhlIGludGVybmFsIGZvcm1hdC4gIFRoZSBmdW5jdGlvbgogICAgIHRha2VzIHR3byBhcmd1 bWVudHMsIGEgd2lkZ2V0IGFuZCBhbiBleHRlcm5hbCB2YWx1ZSwgYW5kIHJldHVybnMKICAgICB0 aGUgaW50ZXJuYWwgdmFsdWUuICBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIHRoZSBwcmVzZW50 IOKAmDp2YWx1ZeKAmQogICAgIHdoZW4gdGhlIHdpZGdldCBpcyBjcmVhdGVkLCBhbmQgb24gYW55 IHZhbHVlIHNldCBsYXRlciB3aXRoCiAgICAg4oCYd2lkZ2V0LXZhbHVlLXNldOKAmS4KCuKAmDp2 YWx1ZS10by1leHRlcm5hbOKAmQogICAgIEZ1bmN0aW9uIHRvIGNvbnZlcnQgdGhlIHZhbHVlIHRv IHRoZSBleHRlcm5hbCBmb3JtYXQuICBUaGUgZnVuY3Rpb24KICAgICB0YWtlcyB0d28gYXJndW1l bnRzLCBhIHdpZGdldCBhbmQgYW4gaW50ZXJuYWwgdmFsdWUsIGFuZCByZXR1cm5zCiAgICAgdGhl IGV4dGVybmFsIHZhbHVlLgoK4oCYOmNyZWF0ZeKAmQogICAgIEZ1bmN0aW9uIHRvIGNyZWF0ZSBh IHdpZGdldCBmcm9tIHNjcmF0Y2guICBUaGUgZnVuY3Rpb24gdGFrZXMgb25lCiAgICAgYXJndW1l bnQsIGEgd2lkZ2V0IHR5cGUsIGFuZCBjcmVhdGVzIGEgd2lkZ2V0IG9mIHRoYXQgdHlwZSwgaW5z ZXJ0cwogICAgIGl0IGluIHRoZSBidWZmZXIsIGFuZCByZXR1cm5zIGEgd2lkZ2V0IG9iamVjdC4K CuKAmDpkZWxldGXigJkKICAgICBGdW5jdGlvbiB0byBkZWxldGUgYSB3aWRnZXQuICBUaGUgZnVu Y3Rpb24gdGFrZXMgb25lIGFyZ3VtZW50LCBhCiAgICAgd2lkZ2V0LCBhbmQgc2hvdWxkIHJlbW92 ZSBhbGwgdHJhY2VzIG9mIHRoZSB3aWRnZXQgZnJvbSB0aGUgYnVmZmVyLgoKICAgICBUaGUgZGVm YXVsdCB2YWx1ZSBpczoKCiAgICAgIC0tIEZ1bmN0aW9uOiB3aWRnZXQtZGVmYXVsdC1kZWxldGUg d2lkZ2V0CiAgICAgICAgICBSZW1vdmUgV0lER0VUIGZyb20gdGhlIGJ1ZmZlci4gIERlbGV0ZSBh bGwg4oCYOmNoaWxkcmVu4oCZIGFuZAogICAgICAgICAg4oCYOmJ1dHRvbnPigJkgaW4gV0lER0VU LgoKICAgICBJbiBtb3N0IGNhc2VzIHlvdSBzaG91bGQgbm90IGNoYW5nZSB0aGlzIHZhbHVlLCBi dXQgaW5zdGVhZCB1c2UKICAgICDigJg6dmFsdWUtZGVsZXRl4oCZIHRvIG1ha2UgYW55IGFkZGl0 aW9uYWwgY2xlYW51cC4KCuKAmDp2YWx1ZS1jcmVhdGXigJkKICAgICBGdW5jdGlvbiB0byBleHBh bmQgdGhlIOKAmCV24oCZIGVzY2FwZSBpbiB0aGUgZm9ybWF0IHN0cmluZy4gIEl0IHdpbGwKICAg ICBiZSBjYWxsZWQgd2l0aCB0aGUgd2lkZ2V0IGFzIGl0cyBhcmd1bWVudCBhbmQgc2hvdWxkIGlu c2VydCBhCiAgICAgcmVwcmVzZW50YXRpb24gb2YgdGhlIHdpZGdldOKAmXMgdmFsdWUgaW4gdGhl IGJ1ZmZlci4KCiAgICAgTmVzdGVkIHdpZGdldHMgc2hvdWxkIGJlIGxpc3RlZCBpbiDigJg6Y2hp bGRyZW7igJkgb3Ig4oCYOmJ1dHRvbnPigJkgdG8KICAgICBtYWtlIHN1cmUgdGhleSBhcmUgYXV0 b21hdGljYWxseSBkZWxldGVkLgoK4oCYOnZhbHVlLWRlbGV0ZeKAmQogICAgIFNob3VsZCByZW1v dmUgdGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB3aWRnZXTigJlzIHZhbHVlIGZyb20gdGhlCiAg ICAgYnVmZmVyLiAgSXQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgd2lkZ2V0IGFzIGl0cyBhcmd1 bWVudC4gIEl0CiAgICAgZG9lc27igJl0IGhhdmUgdG8gcmVtb3ZlIHRoZSB0ZXh0LCBidXQgaXQg c2hvdWxkIHJlbGVhc2UgbWFya2VycyBhbmQKICAgICBkZWxldGUgbmVzdGVkIHdpZGdldHMgaWYg dGhlc2UgYXJlIG5vdCBsaXN0ZWQgaW4g4oCYOmNoaWxkcmVu4oCZIG9yCiAgICAg4oCYOmJ1dHRv bnPigJkuCgrigJg6dmFsdWUtZ2V04oCZCiAgICAgRnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUgdmFs dWUgb2YgYSB3aWRnZXQsIGFzIGl0IGlzIGRpc3BsYXllZCBpbgogICAgIHRoZSBidWZmZXIuCgog ICAgIFRoZSBmb2xsb3dpbmcgcHJlZGVmaW5lZCBmdW5jdGlvbiBjYW4gYmUgdXNlZCBoZXJlOgoK ICAgICAgLS0gRnVuY3Rpb246IHdpZGdldC12YWx1ZS12YWx1ZS1nZXQgd2lkZ2V0CiAgICAgICAg ICBSZXR1cm4gdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eSBvZiBXSURHRVQuCgrigJg6Zm9ybWF0 LWhhbmRsZXLigJkKICAgICBGdW5jdGlvbiB0byBoYW5kbGUgdW5rbm93biDigJgl4oCZIGVzY2Fw ZXMgaW4gdGhlIGZvcm1hdCBzdHJpbmcuICBJdAogICAgIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhl IHdpZGdldCBhbmQgdGhlIGNoYXJhY3RlciB0aGF0IGZvbGxvd3MgdGhlCiAgICAg4oCYJeKAmSBh cyBhcmd1bWVudHMuICBZb3UgY2FuIHNldCB0aGlzIHRvIGFsbG93IHlvdXIgd2lkZ2V0IHRvIGhh bmRsZQogICAgIG5vbi1zdGFuZGFyZCBlc2NhcGVzLgoKICAgICBZb3Ugc2hvdWxkIGVuZCB1cCBj YWxsaW5nIOKAmHdpZGdldC1kZWZhdWx0LWZvcm1hdC1oYW5kbGVy4oCZIHRvIGhhbmRsZQogICAg IHVua25vd24gZXNjYXBlIHNlcXVlbmNlcywgd2hpY2ggd2lsbCBoYW5kbGUgdGhlIOKAmCVo4oCZ IGFuZCBhbnkgZnV0dXJlCiAgICAgZXNjYXBlIHNlcXVlbmNlcywgYXMgd2VsbCBhcyBnaXZlIGFu IGVycm9yIGZvciB1bmtub3duIGVzY2FwZXMuCgrigJg6YWN0aW9u4oCZCiAgICAgRnVuY3Rpb24g dG8gaGFuZGxlIHVzZXIgaW5pdGlhdGVkIGV2ZW50cy4gIEJ5IGRlZmF1bHQsIOKAmDpub3RpZnni gJkKICAgICB0aGUgcGFyZW50LgoKICAgICBUaGUgZm9sbG93aW5nIHByZWRlZmluZWQgZnVuY3Rp b24gY2FuIGJlIHVzZWQgaGVyZToKCiAgICAgIC0tIEZ1bmN0aW9uOiB3aWRnZXQtcGFyZW50LWFj dGlvbiB3aWRnZXQgJm9wdGlvbmFsIGV2ZW50CiAgICAgICAgICBUZWxsIOKAmDpwYXJlbnTigJkg b2YgV0lER0VUIHRvIGhhbmRsZSB0aGUg4oCYOmFjdGlvbuKAmS4gIE9wdGlvbmFsCiAgICAgICAg ICBFVkVOVCBpcyB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGFjdGlvbi4KCuKAmDpwcm9t cHQtdmFsdWXigJkKICAgICBGdW5jdGlvbiB0byBwcm9tcHQgZm9yIGEgdmFsdWUgaW4gdGhlIG1p bmlidWZmZXIuICBUaGUgZnVuY3Rpb24KICAgICBzaG91bGQgdGFrZSBmb3VyIGFyZ3VtZW50cywg V0lER0VULCBQUk9NUFQsIFZBTFVFLCBhbmQgVU5CT1VORCBhbmQKICAgICBzaG91bGQgcmV0dXJu IGEgdmFsdWUgZm9yIHdpZGdldCBlbnRlcmVkIGJ5IHRoZSB1c2VyLiAgUFJPTVBUIGlzCiAgICAg dGhlIHByb21wdCB0byB1c2UuICBWQUxVRSBpcyB0aGUgZGVmYXVsdCB2YWx1ZSB0byB1c2UsIHVu bGVzcwogICAgIFVOQk9VTkQgaXMgbm9uLeKAmG5pbOKAmSwgaW4gd2hpY2ggY2FzZSB0aGVyZSBp cyBubyBkZWZhdWx0IHZhbHVlLiAgVGhlCiAgICAgZnVuY3Rpb24gc2hvdWxkIHJlYWQgdGhlIHZh bHVlIHVzaW5nIHRoZSBtZXRob2QgbW9zdCBuYXR1cmFsIGZvcgogICAgIHRoaXMgd2lkZ2V0LCBh bmQgZG9lcyBub3QgaGF2ZSB0byBjaGVjayB0aGF0IGl0IG1hdGNoZXMuCgogICBJZiB5b3Ugd2Fu dCB0byBkZWZpbmUgYSBuZXcgd2lkZ2V0IGZyb20gc2NyYXRjaCwgdXNlIHRoZSDigJhkZWZhdWx0 4oCZCndpZGdldCBhcyBpdHMgYmFzZS4KCiAtLSBXaWRnZXQ6IGRlZmF1bHQKICAgICBXaWRnZXQg dXNlZCBhcyBhIGJhc2UgZm9yIG90aGVyIHdpZGdldHMuCgogICAgIEl0IHByb3ZpZGVzIG1vc3Qg b2YgdGhlIGZ1bmN0aW9uYWxpdHkgdGhhdCBpcyByZWZlcnJlZCB0byBhcyDigJxieQogICAgIGRl ZmF1bHTigJ0gaW4gdGhpcyB0ZXh0LgoKOSBXaWRnZXQgQnJvd3NlcgoqKioqKioqKioqKioqKioq CgpUaGVyZSBpcyBhIHNlcGFyYXRlIHBhY2thZ2UgdG8gYnJvd3NlIHdpZGdldHMuICBUaGlzIGlz IGludGVuZGVkIHRvIGhlbHAKcHJvZ3JhbW1lcnMgd2hvIHdhbnQgdG8gZXhhbWluZSB0aGUgY29u dGVudCBvZiBhIHdpZGdldC4gIFRoZSBicm93c2VyCnNob3dzIHRoZSB2YWx1ZSBvZiBlYWNoIGtl eXdvcmQsIGJ1dCB1c2VzIGxpbmtzIGZvciBjZXJ0YWluIGtleXdvcmRzCnN1Y2ggYXMg4oCYOnBh cmVudOKAmSwgd2hpY2ggYXZvaWRzIHByaW50aW5nIGN5Y2xpYyBzdHJ1Y3R1cmVzLgoKIC0tIENv bW1hbmQ6IHdpZGdldC1icm93c2UgV0lER0VUCiAgICAgQ3JlYXRlIGEgd2lkZ2V0IGJyb3dzZXIg Zm9yIFdJREdFVC4gIFdoZW4gY2FsbGVkIGludGVyYWN0aXZlbHksCiAgICAgcHJvbXB0IGZvciBX SURHRVQuCgogLS0gQ29tbWFuZDogd2lkZ2V0LWJyb3dzZS1vdGhlci13aW5kb3cgV0lER0VUCiAg ICAgQ3JlYXRlIGEgd2lkZ2V0IGJyb3dzZXIgZm9yIFdJREdFVCBhbmQgc2hvdyBpdCBpbiBhbm90 aGVyIHdpbmRvdy4KICAgICBXaGVuIGNhbGxlZCBpbnRlcmFjdGl2ZWx5LCBwcm9tcHQgZm9yIFdJ REdFVC4KCiAtLSBDb21tYW5kOiB3aWRnZXQtYnJvd3NlLWF0IFBPUwogICAgIENyZWF0ZSBhIHdp ZGdldCBicm93c2VyIGZvciB0aGUgd2lkZ2V0IGF0IFBPUy4gIFdoZW4gY2FsbGVkCiAgICAgaW50 ZXJhY3RpdmVseSwgdXNlIHRoZSBwb3NpdGlvbiBvZiBwb2ludC4KCjEwIFdpZGdldCBNaW5vciBN b2RlCioqKioqKioqKioqKioqKioqKioqCgpUaGVyZSBpcyBhIG1pbm9yIG1vZGUgZm9yIG1hbmlw dWxhdGluZyB3aWRnZXRzIGluIG1ham9yIG1vZGVzIHRoYXQgZG9u4oCZdApwcm92aWRlIGFueSBz dXBwb3J0IGZvciB3aWRnZXRzIHRoZW1zZWx2ZXMuICBUaGlzIGlzIG1vc3RseSBpbnRlbmRlZCB0 bwpiZSB1c2VmdWwgZm9yIHByb2dyYW1tZXJzIGRvaW5nIGV4cGVyaW1lbnRzLgoKIC0tIENvbW1h bmQ6IHdpZGdldC1taW5vci1tb2RlCiAgICAgVG9nZ2xlIG1pbm9yIG1vZGUgZm9yIHRyYXZlcnNp bmcgd2lkZ2V0cy4gIFdpdGggYXJnLCB0dXJuIHdpZGdldAogICAgIG1vZGUgb24gaWYgYW5kIG9u bHkgaWYgYXJnIGlzIHBvc2l0aXZlLgoKIC0tIFZhcmlhYmxlOiB3aWRnZXQtbWlub3ItbW9kZS1r ZXltYXAKICAgICBLZXltYXAgdXNlZCBpbiDigJh3aWRnZXQtbWlub3ItbW9kZeKAmS4KCjExIFV0 aWxpdGllcwoqKioqKioqKioqKioKCiAtLSBGdW5jdGlvbjogd2lkZ2V0LXByb21wdC12YWx1ZSB3 aWRnZXQgcHJvbXB0IFsgdmFsdWUgdW5ib3VuZCBdCiAgICAgUHJvbXB0IGZvciBhIHZhbHVlIG1h dGNoaW5nIFdJREdFVCwgdXNpbmcgUFJPTVBULiAgVGhlIGN1cnJlbnQKICAgICB2YWx1ZSBpcyBh c3N1bWVkIHRvIGJlIFZBTFVFLCB1bmxlc3MgVU5CT1VORCBpcyBub24t4oCYbmls4oCZLgoKIC0t IEZ1bmN0aW9uOiB3aWRnZXQtZ2V0LXNpYmxpbmcgd2lkZ2V0CiAgICAgR2V0IHRoZSBpdGVtIHdo aWNoIFdJREdFVCBpcyBhc3N1bWVkIHRvIHRvZ2dsZS4gIFRoaXMgaXMgb25seQogICAgIG1lYW5p bmdmdWwgZm9yIHJhZGlvIGJ1dHRvbnMgb3IgY2hlY2tib3hlcyBpbiBhIGxpc3QuCgogLS0gRnVu Y3Rpb246IHdpZGdldC1jaG9vc2UgdGl0bGUgaXRlbXMgJm9wdGlvbmFsIGV2ZW50CiAgICAgUHJv bXB0IHRoZSB1c2VyIHRvIGNob29zZSBhbiBpdGVtIGZyb20gYSBsaXN0IG9mIG9wdGlvbnMuCgog ICAgIFRJVExFIGlzIHRoZSBuYW1lIG9mIHRoZSBsaXN0IG9mIG9wdGlvbnMuICBJVEVNUyBzaG91 bGQgYmUgYSBtZW51LAogICAgIHdpdGggaXRzIGl0ZW1zIGluIHRoZSBzaW1wbGUgZm9ybWF0IG9y IGluIHRoZSBleHRlbmRlZCBmb3JtYXQuCiAgICAgKk5vdGUgRGVmaW5pbmcgTWVudXM6IChlbGlz cClEZWZpbmluZyBNZW51cy4gIEluZGVwZW5kZW50bHkgb2YgdGhlCiAgICAgZm9ybWF0LCB5b3Ug ZG9u4oCZdCBoYXZlIHRvIHByb3ZpZGUgYSB0aXRsZSBmb3IgdGhlIG1lbnUsIGp1c3QgcGFzcwog ICAgIHRoZSBkZXNpcmVkIHRpdGxlIGluIFRJVExFLiAgVGhlIG9wdGlvbmFsIEVWRU5UIGlzIGFu IGlucHV0IGV2ZW50LgogICAgIElmIEVWRU5UIGlzIGEgbW91c2UgZXZlbnQgYW5kIHRoZSBudW1i ZXIgb2YgZWxlbWVudHMgaW4gSVRFTVMgaXMKICAgICBsZXNzIHRoYW4gdGhlIHVzZXIgb3B0aW9u IOKAmHdpZGdldC1tZW51LW1heC1zaXpl4oCZLCB0aGVuCiAgICAg4oCYd2lkZ2V0LWNob29zZeKA mSB1c2VzIGEgcG9wdXAgbWVudSB0byBwcm9tcHQgdGhlIHVzZXIuICBPdGhlcndpc2UsCiAgICAg 4oCYd2lkZ2V0LWNob29zZeKAmSB1c2VzIHRoZSBtaW5pYnVmZmVyLgoKICAgICBXaGVuIElURU1T IGlzIGEga2V5bWFwIG1lbnUsIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyB0aGUgc3ltYm9sIGluCiAg ICAgdGhlIGtleSB2ZWN0b3IsIGFzIGluIHRoZSBhcmd1bWVudCBvZiDigJhkZWZpbmUta2V54oCZ ICgqbm90ZQogICAgIChlbGlzcClDaGFuZ2luZyBLZXkgQmluZGluZ3M6OikuICBXaGVuIElURU1T IGlzIGEgbGlzdCB3aG9zZQogICAgIHNlbGVjdGFibGUgaXRlbXMgYXJlIG9mIHRoZSBmb3JtIChO QU1FIC4gIFZBTFVFKSAoaS5lLiwgdGhlCiAgICAgc2ltcGxpZmllZCBmb3JtYXQpLCB0aGVuIHRo ZSByZXR1cm4gdmFsdWUgaXMgdGhlIFZBTFVFIG9mIHRoZQogICAgIGNob3NlbiBlbGVtZW50LgoK MTIgV2lzaGxpc3QKKioqKioqKioqKioKCiAgIOKAoiBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8g YWRkIG9yIHJlbW92ZSBpdGVtcyBmcm9tIGEgbGlzdCB3aXRoIOKAmEMta+KAmQogICAgIGFuZCDi gJhDLW/igJkgKHN1Z2dlc3RlZCBieSBSTVMpLgoKICAg4oCiIFRoZSDigJhbSU5TXeKAmSBhbmQg 4oCYW0RFTF3igJkgYnV0dG9ucyBzaG91bGQgYmUgcmVwbGFjZWQgYnkgYSBzaW5nbGUgZGFzaAog ICAgICjigJgt4oCZKS4gIFRoZSBkYXNoIHNob3VsZCBiZSBhIGJ1dHRvbiB0aGF0LCB3aGVuIGlu dm9rZWQsIGFza3MKICAgICB3aGV0aGVyIHlvdSB3YW50IHRvIGFkZCBvciBkZWxldGUgYW4gaXRl bSAoUk1TIHdhbnRlZCB0byBnaXQgcmlkIG9mCiAgICAgdGhlIHVnbHkgYnV0dG9ucywgdGhlIGRh c2ggaXMgbXkgaWRlYSkuCgogICDigKIgVGhlIOKAmG1lbnUtY2hvaWNl4oCZIHRhZyBzaG91bGQg YmUgcHJldHRpZXIsIHNvbWV0aGluZyBsaWtlIHRoZQogICAgIGFiYnJldmlhdGVkIG1lbnVzIGlu IE9wZW4gTG9vay4KCiAgIOKAoiBGaW5pc2gg4oCYOnRhYi1vcmRlcuKAmS4KCiAgIOKAoiBNYWtl IGluZGVudGF0aW9uIHdvcmsgd2l0aCBnbHlwaHMgYW5kIHByb3BvcnRpb25hbCBmb250cy4KCiAg IOKAoiBBZGQgY29tbWFuZHMgdG8gc2hvdyBvdmVydmlldyBvZiBvYmplY3QgYW5kIGNsYXNzIGhp ZXJhcmNoaWVzIHRvCiAgICAgdGhlIGJyb3dzZXIuCgogICDigKIgRmluZCBhIHdheSB0byBkaXNh YmxlIG1vdXNlIGhpZ2hsaWdodCBmb3IgaW5hY3RpdmUgd2lkZ2V0cy4KCiAgIOKAoiBGaW5kIGEg d2F5IHRvIG1ha2UgZ2x5cGhzIGxvb2sgaW5hY3RpdmUuCgogICDigKIgQWRkIOKAmHByb3BlcnR5 LWxpc3TigJkgd2lkZ2V0LgoKICAg4oCiIEFkZCDigJhhc3NvY2lhdGlvbi1saXN04oCZIHdpZGdl dC4KCiAgIOKAoiBBZGQg4oCYa2V5LWJpbmRpbmfigJkgd2lkZ2V0LgoKICAg4oCiIEFkZCDigJh3 aWRnZXTigJkgd2lkZ2V0IGZvciBlZGl0aW5nIHdpZGdldCBzcGVjaWZpY2F0aW9ucy4KCiAgIOKA oiBGaW5kIGNsZWFuIHdheSB0byBpbXBsZW1lbnQgdmFyaWFibGUgbGVuZ3RoIGxpc3QuICBTZWUK ICAgICDigJhUZVgtcHJpbnRlci1saXN04oCZIGZvciBhbiBleHBsYW5hdGlvbi4KCiAgIOKAoiDi gJhDLWjigJkgaW4g4oCYd2lkZ2V0LXByb21wdC12YWx1ZeKAmSBzaG91bGQgZ2l2ZSB0eXBlIHNw ZWNpZmljIGhlbHAuCgogICDigKIgQWRkIGEg4oCYbWFpbHRv4oCZIHdpZGdldC4KCkFwcGVuZGl4 IEEgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlCioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCgogICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDEuMywgMyBO b3ZlbWJlciAyMDA4CgogICAgIENvcHlyaWdodCDCqSAyMDAwLCAyMDAxLCAyMDAyLCAyMDA3LCAy MDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICAgIDxodHRwczovL2ZzZi5vcmcv PgoKICAgICBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJi YXRpbSBjb3BpZXMKICAgICBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBp dCBpcyBub3QgYWxsb3dlZC4KCiAgMC4gUFJFQU1CTEUKCiAgICAgVGhlIHB1cnBvc2Ugb2YgdGhp cyBMaWNlbnNlIGlzIHRvIG1ha2UgYSBtYW51YWwsIHRleHRib29rLCBvciBvdGhlcgogICAgIGZ1 bmN0aW9uYWwgYW5kIHVzZWZ1bCBkb2N1bWVudCDigJxmcmVl4oCdIGluIHRoZSBzZW5zZSBvZiBm cmVlZG9tOiB0bwogICAgIGFzc3VyZSBldmVyeW9uZSB0aGUgZWZmZWN0aXZlIGZyZWVkb20gdG8g Y29weSBhbmQgcmVkaXN0cmlidXRlIGl0LAogICAgIHdpdGggb3Igd2l0aG91dCBtb2RpZnlpbmcg aXQsIGVpdGhlciBjb21tZXJjaWFsbHkgb3IKICAgICBub25jb21tZXJjaWFsbHkuICBTZWNvbmRh cmlseSwgdGhpcyBMaWNlbnNlIHByZXNlcnZlcyBmb3IgdGhlCiAgICAgYXV0aG9yIGFuZCBwdWJs aXNoZXIgYSB3YXkgdG8gZ2V0IGNyZWRpdCBmb3IgdGhlaXIgd29yaywgd2hpbGUgbm90CiAgICAg YmVpbmcgY29uc2lkZXJlZCByZXNwb25zaWJsZSBmb3IgbW9kaWZpY2F0aW9ucyBtYWRlIGJ5IG90 aGVycy4KCiAgICAgVGhpcyBMaWNlbnNlIGlzIGEga2luZCBvZiDigJxjb3B5bGVmdOKAnSwgd2hp Y2ggbWVhbnMgdGhhdCBkZXJpdmF0aXZlCiAgICAgd29ya3Mgb2YgdGhlIGRvY3VtZW50IG11c3Qg dGhlbXNlbHZlcyBiZSBmcmVlIGluIHRoZSBzYW1lIHNlbnNlLgogICAgIEl0IGNvbXBsZW1lbnRz IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2hpY2ggaXMgYSBjb3B5bGVmdAogICAg IGxpY2Vuc2UgZGVzaWduZWQgZm9yIGZyZWUgc29mdHdhcmUuCgogICAgIFdlIGhhdmUgZGVzaWdu ZWQgdGhpcyBMaWNlbnNlIGluIG9yZGVyIHRvIHVzZSBpdCBmb3IgbWFudWFscyBmb3IKICAgICBm cmVlIHNvZnR3YXJlLCBiZWNhdXNlIGZyZWUgc29mdHdhcmUgbmVlZHMgZnJlZSBkb2N1bWVudGF0 aW9uOiBhCiAgICAgZnJlZSBwcm9ncmFtIHNob3VsZCBjb21lIHdpdGggbWFudWFscyBwcm92aWRp bmcgdGhlIHNhbWUgZnJlZWRvbXMKICAgICB0aGF0IHRoZSBzb2Z0d2FyZSBkb2VzLiAgQnV0IHRo aXMgTGljZW5zZSBpcyBub3QgbGltaXRlZCB0bwogICAgIHNvZnR3YXJlIG1hbnVhbHM7IGl0IGNh biBiZSB1c2VkIGZvciBhbnkgdGV4dHVhbCB3b3JrLCByZWdhcmRsZXNzCiAgICAgb2Ygc3ViamVj dCBtYXR0ZXIgb3Igd2hldGhlciBpdCBpcyBwdWJsaXNoZWQgYXMgYSBwcmludGVkIGJvb2suICBX ZQogICAgIHJlY29tbWVuZCB0aGlzIExpY2Vuc2UgcHJpbmNpcGFsbHkgZm9yIHdvcmtzIHdob3Nl IHB1cnBvc2UgaXMKICAgICBpbnN0cnVjdGlvbiBvciByZWZlcmVuY2UuCgogIDEuIEFQUExJQ0FC SUxJVFkgQU5EIERFRklOSVRJT05TCgogICAgIFRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIGFueSBt YW51YWwgb3Igb3RoZXIgd29yaywgaW4gYW55IG1lZGl1bSwKICAgICB0aGF0IGNvbnRhaW5zIGEg bm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBzYXlpbmcgaXQgY2FuCiAgICAg YmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4gIFN1Y2ggYSBu b3RpY2UKICAgICBncmFudHMgYSB3b3JsZC13aWRlLCByb3lhbHR5LWZyZWUgbGljZW5zZSwgdW5s aW1pdGVkIGluIGR1cmF0aW9uLAogICAgIHRvIHVzZSB0aGF0IHdvcmsgdW5kZXIgdGhlIGNvbmRp dGlvbnMgc3RhdGVkIGhlcmVpbi4gIFRoZQogICAgIOKAnERvY3VtZW504oCdLCBiZWxvdywgcmVm ZXJzIHRvIGFueSBzdWNoIG1hbnVhbCBvciB3b3JrLiAgQW55IG1lbWJlcgogICAgIG9mIHRoZSBw dWJsaWMgaXMgYSBsaWNlbnNlZSwgYW5kIGlzIGFkZHJlc3NlZCBhcyDigJx5b3XigJ0uICBZb3Ug YWNjZXB0CiAgICAgdGhlIGxpY2Vuc2UgaWYgeW91IGNvcHksIG1vZGlmeSBvciBkaXN0cmlidXRl IHRoZSB3b3JrIGluIGEgd2F5CiAgICAgcmVxdWlyaW5nIHBlcm1pc3Npb24gdW5kZXIgY29weXJp Z2h0IGxhdy4KCiAgICAgQSDigJxNb2RpZmllZCBWZXJzaW9u4oCdIG9mIHRoZSBEb2N1bWVudCBt ZWFucyBhbnkgd29yayBjb250YWluaW5nIHRoZQogICAgIERvY3VtZW50IG9yIGEgcG9ydGlvbiBv ZiBpdCwgZWl0aGVyIGNvcGllZCB2ZXJiYXRpbSwgb3Igd2l0aAogICAgIG1vZGlmaWNhdGlvbnMg YW5kL29yIHRyYW5zbGF0ZWQgaW50byBhbm90aGVyIGxhbmd1YWdlLgoKICAgICBBIOKAnFNlY29u ZGFyeSBTZWN0aW9u4oCdIGlzIGEgbmFtZWQgYXBwZW5kaXggb3IgYSBmcm9udC1tYXR0ZXIgc2Vj dGlvbgogICAgIG9mIHRoZSBEb2N1bWVudCB0aGF0IGRlYWxzIGV4Y2x1c2l2ZWx5IHdpdGggdGhl IHJlbGF0aW9uc2hpcCBvZiB0aGUKICAgICBwdWJsaXNoZXJzIG9yIGF1dGhvcnMgb2YgdGhlIERv Y3VtZW50IHRvIHRoZSBEb2N1bWVudOKAmXMgb3ZlcmFsbAogICAgIHN1YmplY3QgKG9yIHRvIHJl bGF0ZWQgbWF0dGVycykgYW5kIGNvbnRhaW5zIG5vdGhpbmcgdGhhdCBjb3VsZAogICAgIGZhbGwg ZGlyZWN0bHkgd2l0aGluIHRoYXQgb3ZlcmFsbCBzdWJqZWN0LiAgKFRodXMsIGlmIHRoZSBEb2N1 bWVudAogICAgIGlzIGluIHBhcnQgYSB0ZXh0Ym9vayBvZiBtYXRoZW1hdGljcywgYSBTZWNvbmRh cnkgU2VjdGlvbiBtYXkgbm90CiAgICAgZXhwbGFpbiBhbnkgbWF0aGVtYXRpY3MuKSAgVGhlIHJl bGF0aW9uc2hpcCBjb3VsZCBiZSBhIG1hdHRlciBvZgogICAgIGhpc3RvcmljYWwgY29ubmVjdGlv biB3aXRoIHRoZSBzdWJqZWN0IG9yIHdpdGggcmVsYXRlZCBtYXR0ZXJzLCBvcgogICAgIG9mIGxl Z2FsLCBjb21tZXJjaWFsLCBwaGlsb3NvcGhpY2FsLCBldGhpY2FsIG9yIHBvbGl0aWNhbCBwb3Np dGlvbgogICAgIHJlZ2FyZGluZyB0aGVtLgoKICAgICBUaGUg4oCcSW52YXJpYW50IFNlY3Rpb25z 4oCdIGFyZSBjZXJ0YWluIFNlY29uZGFyeSBTZWN0aW9ucyB3aG9zZQogICAgIHRpdGxlcyBhcmUg ZGVzaWduYXRlZCwgYXMgYmVpbmcgdGhvc2Ugb2YgSW52YXJpYW50IFNlY3Rpb25zLCBpbiB0aGUK ICAgICBub3RpY2UgdGhhdCBzYXlzIHRoYXQgdGhlIERvY3VtZW50IGlzIHJlbGVhc2VkIHVuZGVy IHRoaXMgTGljZW5zZS4KICAgICBJZiBhIHNlY3Rpb24gZG9lcyBub3QgZml0IHRoZSBhYm92ZSBk ZWZpbml0aW9uIG9mIFNlY29uZGFyeSB0aGVuIGl0CiAgICAgaXMgbm90IGFsbG93ZWQgdG8gYmUg ZGVzaWduYXRlZCBhcyBJbnZhcmlhbnQuICBUaGUgRG9jdW1lbnQgbWF5CiAgICAgY29udGFpbiB6 ZXJvIEludmFyaWFudCBTZWN0aW9ucy4gIElmIHRoZSBEb2N1bWVudCBkb2VzIG5vdCBpZGVudGlm eQogICAgIGFueSBJbnZhcmlhbnQgU2VjdGlvbnMgdGhlbiB0aGVyZSBhcmUgbm9uZS4KCiAgICAg VGhlIOKAnENvdmVyIFRleHRz4oCdIGFyZSBjZXJ0YWluIHNob3J0IHBhc3NhZ2VzIG9mIHRleHQg dGhhdCBhcmUKICAgICBsaXN0ZWQsIGFzIEZyb250LUNvdmVyIFRleHRzIG9yIEJhY2stQ292ZXIg VGV4dHMsIGluIHRoZSBub3RpY2UKICAgICB0aGF0IHNheXMgdGhhdCB0aGUgRG9jdW1lbnQgaXMg cmVsZWFzZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQQogICAgIEZyb250LUNvdmVyIFRleHQgbWF5 IGJlIGF0IG1vc3QgNSB3b3JkcywgYW5kIGEgQmFjay1Db3ZlciBUZXh0IG1heQogICAgIGJlIGF0 IG1vc3QgMjUgd29yZHMuCgogICAgIEEg4oCcVHJhbnNwYXJlbnTigJ0gY29weSBvZiB0aGUgRG9j dW1lbnQgbWVhbnMgYSBtYWNoaW5lLXJlYWRhYmxlIGNvcHksCiAgICAgcmVwcmVzZW50ZWQgaW4g YSBmb3JtYXQgd2hvc2Ugc3BlY2lmaWNhdGlvbiBpcyBhdmFpbGFibGUgdG8gdGhlCiAgICAgZ2Vu ZXJhbCBwdWJsaWMsIHRoYXQgaXMgc3VpdGFibGUgZm9yIHJldmlzaW5nIHRoZSBkb2N1bWVudAog ICAgIHN0cmFpZ2h0Zm9yd2FyZGx5IHdpdGggZ2VuZXJpYyB0ZXh0IGVkaXRvcnMgb3IgKGZvciBp bWFnZXMgY29tcG9zZWQKICAgICBvZiBwaXhlbHMpIGdlbmVyaWMgcGFpbnQgcHJvZ3JhbXMgb3Ig KGZvciBkcmF3aW5ncykgc29tZSB3aWRlbHkKICAgICBhdmFpbGFibGUgZHJhd2luZyBlZGl0b3Is IGFuZCB0aGF0IGlzIHN1aXRhYmxlIGZvciBpbnB1dCB0byB0ZXh0CiAgICAgZm9ybWF0dGVycyBv ciBmb3IgYXV0b21hdGljIHRyYW5zbGF0aW9uIHRvIGEgdmFyaWV0eSBvZiBmb3JtYXRzCiAgICAg c3VpdGFibGUgZm9yIGlucHV0IHRvIHRleHQgZm9ybWF0dGVycy4gIEEgY29weSBtYWRlIGluIGFu IG90aGVyd2lzZQogICAgIFRyYW5zcGFyZW50IGZpbGUgZm9ybWF0IHdob3NlIG1hcmt1cCwgb3Ig YWJzZW5jZSBvZiBtYXJrdXAsIGhhcwogICAgIGJlZW4gYXJyYW5nZWQgdG8gdGh3YXJ0IG9yIGRp c2NvdXJhZ2Ugc3Vic2VxdWVudCBtb2RpZmljYXRpb24gYnkKICAgICByZWFkZXJzIGlzIG5vdCBU cmFuc3BhcmVudC4gIEFuIGltYWdlIGZvcm1hdCBpcyBub3QgVHJhbnNwYXJlbnQgaWYKICAgICB1 c2VkIGZvciBhbnkgc3Vic3RhbnRpYWwgYW1vdW50IG9mIHRleHQuICBBIGNvcHkgdGhhdCBpcyBu b3QKICAgICDigJxUcmFuc3BhcmVudOKAnSBpcyBjYWxsZWQg4oCcT3BhcXVl4oCdLgoKICAgICBF eGFtcGxlcyBvZiBzdWl0YWJsZSBmb3JtYXRzIGZvciBUcmFuc3BhcmVudCBjb3BpZXMgaW5jbHVk ZSBwbGFpbgogICAgIEFTQ0lJIHdpdGhvdXQgbWFya3VwLCBUZXhpbmZvIGlucHV0IGZvcm1hdCwg TGFUZVggaW5wdXQgZm9ybWF0LAogICAgIFNHTUwgb3IgWE1MIHVzaW5nIGEgcHVibGljbHkgYXZh aWxhYmxlIERURCwgYW5kIHN0YW5kYXJkLWNvbmZvcm1pbmcKICAgICBzaW1wbGUgSFRNTCwgUG9z dFNjcmlwdCBvciBQREYgZGVzaWduZWQgZm9yIGh1bWFuIG1vZGlmaWNhdGlvbi4KICAgICBFeGFt cGxlcyBvZiB0cmFuc3BhcmVudCBpbWFnZSBmb3JtYXRzIGluY2x1ZGUgUE5HLCBYQ0YgYW5kIEpQ Ry4KICAgICBPcGFxdWUgZm9ybWF0cyBpbmNsdWRlIHByb3ByaWV0YXJ5IGZvcm1hdHMgdGhhdCBj YW4gYmUgcmVhZCBhbmQKICAgICBlZGl0ZWQgb25seSBieSBwcm9wcmlldGFyeSB3b3JkIHByb2Nl c3NvcnMsIFNHTUwgb3IgWE1MIGZvciB3aGljaAogICAgIHRoZSBEVEQgYW5kL29yIHByb2Nlc3Np bmcgdG9vbHMgYXJlIG5vdCBnZW5lcmFsbHkgYXZhaWxhYmxlLCBhbmQKICAgICB0aGUgbWFjaGlu ZS1nZW5lcmF0ZWQgSFRNTCwgUG9zdFNjcmlwdCBvciBQREYgcHJvZHVjZWQgYnkgc29tZSB3b3Jk CiAgICAgcHJvY2Vzc29ycyBmb3Igb3V0cHV0IHB1cnBvc2VzIG9ubHkuCgogICAgIFRoZSDigJxU aXRsZSBQYWdl4oCdIG1lYW5zLCBmb3IgYSBwcmludGVkIGJvb2ssIHRoZSB0aXRsZSBwYWdlIGl0 c2VsZiwKICAgICBwbHVzIHN1Y2ggZm9sbG93aW5nIHBhZ2VzIGFzIGFyZSBuZWVkZWQgdG8gaG9s ZCwgbGVnaWJseSwgdGhlCiAgICAgbWF0ZXJpYWwgdGhpcyBMaWNlbnNlIHJlcXVpcmVzIHRvIGFw cGVhciBpbiB0aGUgdGl0bGUgcGFnZS4gIEZvcgogICAgIHdvcmtzIGluIGZvcm1hdHMgd2hpY2gg ZG8gbm90IGhhdmUgYW55IHRpdGxlIHBhZ2UgYXMgc3VjaCwg4oCcVGl0bGUKICAgICBQYWdl4oCd IG1lYW5zIHRoZSB0ZXh0IG5lYXIgdGhlIG1vc3QgcHJvbWluZW50IGFwcGVhcmFuY2Ugb2YgdGhl CiAgICAgd29ya+KAmXMgdGl0bGUsIHByZWNlZGluZyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBib2R5 IG9mIHRoZSB0ZXh0LgoKICAgICBUaGUg4oCccHVibGlzaGVy4oCdIG1lYW5zIGFueSBwZXJzb24g b3IgZW50aXR5IHRoYXQgZGlzdHJpYnV0ZXMgY29waWVzCiAgICAgb2YgdGhlIERvY3VtZW50IHRv IHRoZSBwdWJsaWMuCgogICAgIEEgc2VjdGlvbiDigJxFbnRpdGxlZCBYWVrigJ0gbWVhbnMgYSBu YW1lZCBzdWJ1bml0IG9mIHRoZSBEb2N1bWVudAogICAgIHdob3NlIHRpdGxlIGVpdGhlciBpcyBw cmVjaXNlbHkgWFlaIG9yIGNvbnRhaW5zIFhZWiBpbiBwYXJlbnRoZXNlcwogICAgIGZvbGxvd2lu ZyB0ZXh0IHRoYXQgdHJhbnNsYXRlcyBYWVogaW4gYW5vdGhlciBsYW5ndWFnZS4gIChIZXJlIFhZ WgogICAgIHN0YW5kcyBmb3IgYSBzcGVjaWZpYyBzZWN0aW9uIG5hbWUgbWVudGlvbmVkIGJlbG93 LCBzdWNoIGFzCiAgICAg4oCcQWNrbm93bGVkZ2VtZW50c+KAnSwg4oCcRGVkaWNhdGlvbnPigJ0s IOKAnEVuZG9yc2VtZW50c+KAnSwgb3Ig4oCcSGlzdG9yeeKAnS4pCiAgICAgVG8g4oCcUHJlc2Vy dmUgdGhlIFRpdGxl4oCdIG9mIHN1Y2ggYSBzZWN0aW9uIHdoZW4geW91IG1vZGlmeSB0aGUKICAg ICBEb2N1bWVudCBtZWFucyB0aGF0IGl0IHJlbWFpbnMgYSBzZWN0aW9uIOKAnEVudGl0bGVkIFhZ WuKAnSBhY2NvcmRpbmcKICAgICB0byB0aGlzIGRlZmluaXRpb24uCgogICAgIFRoZSBEb2N1bWVu dCBtYXkgaW5jbHVkZSBXYXJyYW50eSBEaXNjbGFpbWVycyBuZXh0IHRvIHRoZSBub3RpY2UKICAg ICB3aGljaCBzdGF0ZXMgdGhhdCB0aGlzIExpY2Vuc2UgYXBwbGllcyB0byB0aGUgRG9jdW1lbnQu ICBUaGVzZQogICAgIFdhcnJhbnR5IERpc2NsYWltZXJzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGlu Y2x1ZGVkIGJ5IHJlZmVyZW5jZSBpbgogICAgIHRoaXMgTGljZW5zZSwgYnV0IG9ubHkgYXMgcmVn YXJkcyBkaXNjbGFpbWluZyB3YXJyYW50aWVzOiBhbnkgb3RoZXIKICAgICBpbXBsaWNhdGlvbiB0 aGF0IHRoZXNlIFdhcnJhbnR5IERpc2NsYWltZXJzIG1heSBoYXZlIGlzIHZvaWQgYW5kCiAgICAg aGFzIG5vIGVmZmVjdCBvbiB0aGUgbWVhbmluZyBvZiB0aGlzIExpY2Vuc2UuCgogIDIuIFZFUkJB VElNIENPUFlJTkcKCiAgICAgWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBEb2N1bWVu dCBpbiBhbnkgbWVkaXVtLCBlaXRoZXIKICAgICBjb21tZXJjaWFsbHkgb3Igbm9uY29tbWVyY2lh bGx5LCBwcm92aWRlZCB0aGF0IHRoaXMgTGljZW5zZSwgdGhlCiAgICAgY29weXJpZ2h0IG5vdGlj ZXMsIGFuZCB0aGUgbGljZW5zZSBub3RpY2Ugc2F5aW5nIHRoaXMgTGljZW5zZQogICAgIGFwcGxp ZXMgdG8gdGhlIERvY3VtZW50IGFyZSByZXByb2R1Y2VkIGluIGFsbCBjb3BpZXMsIGFuZCB0aGF0 IHlvdQogICAgIGFkZCBubyBvdGhlciBjb25kaXRpb25zIHdoYXRzb2V2ZXIgdG8gdGhvc2Ugb2Yg dGhpcyBMaWNlbnNlLiAgWW91CiAgICAgbWF5IG5vdCB1c2UgdGVjaG5pY2FsIG1lYXN1cmVzIHRv IG9ic3RydWN0IG9yIGNvbnRyb2wgdGhlIHJlYWRpbmcKICAgICBvciBmdXJ0aGVyIGNvcHlpbmcg b2YgdGhlIGNvcGllcyB5b3UgbWFrZSBvciBkaXN0cmlidXRlLiAgSG93ZXZlciwKICAgICB5b3Ug bWF5IGFjY2VwdCBjb21wZW5zYXRpb24gaW4gZXhjaGFuZ2UgZm9yIGNvcGllcy4gIElmIHlvdQog ICAgIGRpc3RyaWJ1dGUgYSBsYXJnZSBlbm91Z2ggbnVtYmVyIG9mIGNvcGllcyB5b3UgbXVzdCBh bHNvIGZvbGxvdyB0aGUKICAgICBjb25kaXRpb25zIGluIHNlY3Rpb24gMy4KCiAgICAgWW91IG1h eSBhbHNvIGxlbmQgY29waWVzLCB1bmRlciB0aGUgc2FtZSBjb25kaXRpb25zIHN0YXRlZCBhYm92 ZSwKICAgICBhbmQgeW91IG1heSBwdWJsaWNseSBkaXNwbGF5IGNvcGllcy4KCiAgMy4gQ09QWUlO RyBJTiBRVUFOVElUWQoKICAgICBJZiB5b3UgcHVibGlzaCBwcmludGVkIGNvcGllcyAob3IgY29w aWVzIGluIG1lZGlhIHRoYXQgY29tbW9ubHkKICAgICBoYXZlIHByaW50ZWQgY292ZXJzKSBvZiB0 aGUgRG9jdW1lbnQsIG51bWJlcmluZyBtb3JlIHRoYW4gMTAwLCBhbmQKICAgICB0aGUgRG9jdW1l bnTigJlzIGxpY2Vuc2Ugbm90aWNlIHJlcXVpcmVzIENvdmVyIFRleHRzLCB5b3UgbXVzdAogICAg IGVuY2xvc2UgdGhlIGNvcGllcyBpbiBjb3ZlcnMgdGhhdCBjYXJyeSwgY2xlYXJseSBhbmQgbGVn aWJseSwgYWxsCiAgICAgdGhlc2UgQ292ZXIgVGV4dHM6IEZyb250LUNvdmVyIFRleHRzIG9uIHRo ZSBmcm9udCBjb3ZlciwgYW5kCiAgICAgQmFjay1Db3ZlciBUZXh0cyBvbiB0aGUgYmFjayBjb3Zl ci4gIEJvdGggY292ZXJzIG11c3QgYWxzbyBjbGVhcmx5CiAgICAgYW5kIGxlZ2libHkgaWRlbnRp ZnkgeW91IGFzIHRoZSBwdWJsaXNoZXIgb2YgdGhlc2UgY29waWVzLiAgVGhlCiAgICAgZnJvbnQg Y292ZXIgbXVzdCBwcmVzZW50IHRoZSBmdWxsIHRpdGxlIHdpdGggYWxsIHdvcmRzIG9mIHRoZSB0 aXRsZQogICAgIGVxdWFsbHkgcHJvbWluZW50IGFuZCB2aXNpYmxlLiAgWW91IG1heSBhZGQgb3Ro ZXIgbWF0ZXJpYWwgb24gdGhlCiAgICAgY292ZXJzIGluIGFkZGl0aW9uLiAgQ29weWluZyB3aXRo IGNoYW5nZXMgbGltaXRlZCB0byB0aGUgY292ZXJzLCBhcwogICAgIGxvbmcgYXMgdGhleSBwcmVz ZXJ2ZSB0aGUgdGl0bGUgb2YgdGhlIERvY3VtZW50IGFuZCBzYXRpc2Z5IHRoZXNlCiAgICAgY29u ZGl0aW9ucywgY2FuIGJlIHRyZWF0ZWQgYXMgdmVyYmF0aW0gY29weWluZyBpbiBvdGhlciByZXNw ZWN0cy4KCiAgICAgSWYgdGhlIHJlcXVpcmVkIHRleHRzIGZvciBlaXRoZXIgY292ZXIgYXJlIHRv byB2b2x1bWlub3VzIHRvIGZpdAogICAgIGxlZ2libHksIHlvdSBzaG91bGQgcHV0IHRoZSBmaXJz dCBvbmVzIGxpc3RlZCAoYXMgbWFueSBhcyBmaXQKICAgICByZWFzb25hYmx5KSBvbiB0aGUgYWN0 dWFsIGNvdmVyLCBhbmQgY29udGludWUgdGhlIHJlc3Qgb250bwogICAgIGFkamFjZW50IHBhZ2Vz LgoKICAgICBJZiB5b3UgcHVibGlzaCBvciBkaXN0cmlidXRlIE9wYXF1ZSBjb3BpZXMgb2YgdGhl IERvY3VtZW50CiAgICAgbnVtYmVyaW5nIG1vcmUgdGhhbiAxMDAsIHlvdSBtdXN0IGVpdGhlciBp bmNsdWRlIGEgbWFjaGluZS1yZWFkYWJsZQogICAgIFRyYW5zcGFyZW50IGNvcHkgYWxvbmcgd2l0 aCBlYWNoIE9wYXF1ZSBjb3B5LCBvciBzdGF0ZSBpbiBvciB3aXRoCiAgICAgZWFjaCBPcGFxdWUg Y29weSBhIGNvbXB1dGVyLW5ldHdvcmsgbG9jYXRpb24gZnJvbSB3aGljaCB0aGUgZ2VuZXJhbAog ICAgIG5ldHdvcmstdXNpbmcgcHVibGljIGhhcyBhY2Nlc3MgdG8gZG93bmxvYWQgdXNpbmcgcHVi bGljLXN0YW5kYXJkCiAgICAgbmV0d29yayBwcm90b2NvbHMgYSBjb21wbGV0ZSBUcmFuc3BhcmVu dCBjb3B5IG9mIHRoZSBEb2N1bWVudCwgZnJlZQogICAgIG9mIGFkZGVkIG1hdGVyaWFsLiAgSWYg eW91IHVzZSB0aGUgbGF0dGVyIG9wdGlvbiwgeW91IG11c3QgdGFrZQogICAgIHJlYXNvbmFibHkg cHJ1ZGVudCBzdGVwcywgd2hlbiB5b3UgYmVnaW4gZGlzdHJpYnV0aW9uIG9mIE9wYXF1ZQogICAg IGNvcGllcyBpbiBxdWFudGl0eSwgdG8gZW5zdXJlIHRoYXQgdGhpcyBUcmFuc3BhcmVudCBjb3B5 IHdpbGwKICAgICByZW1haW4gdGh1cyBhY2Nlc3NpYmxlIGF0IHRoZSBzdGF0ZWQgbG9jYXRpb24g dW50aWwgYXQgbGVhc3Qgb25lCiAgICAgeWVhciBhZnRlciB0aGUgbGFzdCB0aW1lIHlvdSBkaXN0 cmlidXRlIGFuIE9wYXF1ZSBjb3B5IChkaXJlY3RseSBvcgogICAgIHRocm91Z2ggeW91ciBhZ2Vu dHMgb3IgcmV0YWlsZXJzKSBvZiB0aGF0IGVkaXRpb24gdG8gdGhlIHB1YmxpYy4KCiAgICAgSXQg aXMgcmVxdWVzdGVkLCBidXQgbm90IHJlcXVpcmVkLCB0aGF0IHlvdSBjb250YWN0IHRoZSBhdXRo b3JzIG9mCiAgICAgdGhlIERvY3VtZW50IHdlbGwgYmVmb3JlIHJlZGlzdHJpYnV0aW5nIGFueSBs YXJnZSBudW1iZXIgb2YgY29waWVzLAogICAgIHRvIGdpdmUgdGhlbSBhIGNoYW5jZSB0byBwcm92 aWRlIHlvdSB3aXRoIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZiB0aGUKICAgICBEb2N1bWVudC4KCiAg NC4gTU9ESUZJQ0FUSU9OUwoKICAgICBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgYSBNb2Rp ZmllZCBWZXJzaW9uIG9mIHRoZSBEb2N1bWVudAogICAgIHVuZGVyIHRoZSBjb25kaXRpb25zIG9m IHNlY3Rpb25zIDIgYW5kIDMgYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91CiAgICAgcmVsZWFzZSB0 aGUgTW9kaWZpZWQgVmVyc2lvbiB1bmRlciBwcmVjaXNlbHkgdGhpcyBMaWNlbnNlLCB3aXRoIHRo ZQogICAgIE1vZGlmaWVkIFZlcnNpb24gZmlsbGluZyB0aGUgcm9sZSBvZiB0aGUgRG9jdW1lbnQs IHRodXMgbGljZW5zaW5nCiAgICAgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gb2YgdGhl IE1vZGlmaWVkIFZlcnNpb24gdG8gd2hvZXZlcgogICAgIHBvc3Nlc3NlcyBhIGNvcHkgb2YgaXQu ICBJbiBhZGRpdGlvbiwgeW91IG11c3QgZG8gdGhlc2UgdGhpbmdzIGluCiAgICAgdGhlIE1vZGlm aWVkIFZlcnNpb246CgogICAgICAgQS4gVXNlIGluIHRoZSBUaXRsZSBQYWdlIChhbmQgb24gdGhl IGNvdmVycywgaWYgYW55KSBhIHRpdGxlCiAgICAgICAgICBkaXN0aW5jdCBmcm9tIHRoYXQgb2Yg dGhlIERvY3VtZW50LCBhbmQgZnJvbSB0aG9zZSBvZiBwcmV2aW91cwogICAgICAgICAgdmVyc2lv bnMgKHdoaWNoIHNob3VsZCwgaWYgdGhlcmUgd2VyZSBhbnksIGJlIGxpc3RlZCBpbiB0aGUKICAg ICAgICAgIEhpc3Rvcnkgc2VjdGlvbiBvZiB0aGUgRG9jdW1lbnQpLiAgWW91IG1heSB1c2UgdGhl IHNhbWUgdGl0bGUKICAgICAgICAgIGFzIGEgcHJldmlvdXMgdmVyc2lvbiBpZiB0aGUgb3JpZ2lu YWwgcHVibGlzaGVyIG9mIHRoYXQKICAgICAgICAgIHZlcnNpb24gZ2l2ZXMgcGVybWlzc2lvbi4K CiAgICAgICBCLiBMaXN0IG9uIHRoZSBUaXRsZSBQYWdlLCBhcyBhdXRob3JzLCBvbmUgb3IgbW9y ZSBwZXJzb25zIG9yCiAgICAgICAgICBlbnRpdGllcyByZXNwb25zaWJsZSBmb3IgYXV0aG9yc2hp cCBvZiB0aGUgbW9kaWZpY2F0aW9ucyBpbgogICAgICAgICAgdGhlIE1vZGlmaWVkIFZlcnNpb24s IHRvZ2V0aGVyIHdpdGggYXQgbGVhc3QgZml2ZSBvZiB0aGUKICAgICAgICAgIHByaW5jaXBhbCBh dXRob3JzIG9mIHRoZSBEb2N1bWVudCAoYWxsIG9mIGl0cyBwcmluY2lwYWwKICAgICAgICAgIGF1 dGhvcnMsIGlmIGl0IGhhcyBmZXdlciB0aGFuIGZpdmUpLCB1bmxlc3MgdGhleSByZWxlYXNlIHlv dQogICAgICAgICAgZnJvbSB0aGlzIHJlcXVpcmVtZW50LgoKICAgICAgIEMuIFN0YXRlIG9uIHRo ZSBUaXRsZSBwYWdlIHRoZSBuYW1lIG9mIHRoZSBwdWJsaXNoZXIgb2YgdGhlCiAgICAgICAgICBN b2RpZmllZCBWZXJzaW9uLCBhcyB0aGUgcHVibGlzaGVyLgoKICAgICAgIEQuIFByZXNlcnZlIGFs bCB0aGUgY29weXJpZ2h0IG5vdGljZXMgb2YgdGhlIERvY3VtZW50LgoKICAgICAgIEUuIEFkZCBh biBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGZvciB5b3VyIG1vZGlmaWNhdGlvbnMKICAg ICAgICAgIGFkamFjZW50IHRvIHRoZSBvdGhlciBjb3B5cmlnaHQgbm90aWNlcy4KCiAgICAgICBG LiBJbmNsdWRlLCBpbW1lZGlhdGVseSBhZnRlciB0aGUgY29weXJpZ2h0IG5vdGljZXMsIGEgbGlj ZW5zZQogICAgICAgICAgbm90aWNlIGdpdmluZyB0aGUgcHVibGljIHBlcm1pc3Npb24gdG8gdXNl IHRoZSBNb2RpZmllZAogICAgICAgICAgVmVyc2lvbiB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBM aWNlbnNlLCBpbiB0aGUgZm9ybSBzaG93biBpbgogICAgICAgICAgdGhlIEFkZGVuZHVtIGJlbG93 LgoKICAgICAgIEcuIFByZXNlcnZlIGluIHRoYXQgbGljZW5zZSBub3RpY2UgdGhlIGZ1bGwgbGlz dHMgb2YgSW52YXJpYW50CiAgICAgICAgICBTZWN0aW9ucyBhbmQgcmVxdWlyZWQgQ292ZXIgVGV4 dHMgZ2l2ZW4gaW4gdGhlIERvY3VtZW504oCZcwogICAgICAgICAgbGljZW5zZSBub3RpY2UuCgog ICAgICAgSC4gSW5jbHVkZSBhbiB1bmFsdGVyZWQgY29weSBvZiB0aGlzIExpY2Vuc2UuCgogICAg ICAgSS4gUHJlc2VydmUgdGhlIHNlY3Rpb24gRW50aXRsZWQg4oCcSGlzdG9yeeKAnSwgUHJlc2Vy dmUgaXRzIFRpdGxlLAogICAgICAgICAgYW5kIGFkZCB0byBpdCBhbiBpdGVtIHN0YXRpbmcgYXQg bGVhc3QgdGhlIHRpdGxlLCB5ZWFyLCBuZXcKICAgICAgICAgIGF1dGhvcnMsIGFuZCBwdWJsaXNo ZXIgb2YgdGhlIE1vZGlmaWVkIFZlcnNpb24gYXMgZ2l2ZW4gb24gdGhlCiAgICAgICAgICBUaXRs ZSBQYWdlLiAgSWYgdGhlcmUgaXMgbm8gc2VjdGlvbiBFbnRpdGxlZCDigJxIaXN0b3J54oCdIGlu IHRoZQogICAgICAgICAgRG9jdW1lbnQsIGNyZWF0ZSBvbmUgc3RhdGluZyB0aGUgdGl0bGUsIHll YXIsIGF1dGhvcnMsIGFuZAogICAgICAgICAgcHVibGlzaGVyIG9mIHRoZSBEb2N1bWVudCBhcyBn aXZlbiBvbiBpdHMgVGl0bGUgUGFnZSwgdGhlbiBhZGQKICAgICAgICAgIGFuIGl0ZW0gZGVzY3Jp YmluZyB0aGUgTW9kaWZpZWQgVmVyc2lvbiBhcyBzdGF0ZWQgaW4gdGhlCiAgICAgICAgICBwcmV2 aW91cyBzZW50ZW5jZS4KCiAgICAgICBKLiBQcmVzZXJ2ZSB0aGUgbmV0d29yayBsb2NhdGlvbiwg aWYgYW55LCBnaXZlbiBpbiB0aGUgRG9jdW1lbnQKICAgICAgICAgIGZvciBwdWJsaWMgYWNjZXNz IHRvIGEgVHJhbnNwYXJlbnQgY29weSBvZiB0aGUgRG9jdW1lbnQsIGFuZAogICAgICAgICAgbGlr ZXdpc2UgdGhlIG5ldHdvcmsgbG9jYXRpb25zIGdpdmVuIGluIHRoZSBEb2N1bWVudCBmb3IKICAg ICAgICAgIHByZXZpb3VzIHZlcnNpb25zIGl0IHdhcyBiYXNlZCBvbi4gIFRoZXNlIG1heSBiZSBw bGFjZWQgaW4gdGhlCiAgICAgICAgICDigJxIaXN0b3J54oCdIHNlY3Rpb24uICBZb3UgbWF5IG9t aXQgYSBuZXR3b3JrIGxvY2F0aW9uIGZvciBhIHdvcmsKICAgICAgICAgIHRoYXQgd2FzIHB1Ymxp c2hlZCBhdCBsZWFzdCBmb3VyIHllYXJzIGJlZm9yZSB0aGUgRG9jdW1lbnQKICAgICAgICAgIGl0 c2VsZiwgb3IgaWYgdGhlIG9yaWdpbmFsIHB1Ymxpc2hlciBvZiB0aGUgdmVyc2lvbiBpdCByZWZl cnMKICAgICAgICAgIHRvIGdpdmVzIHBlcm1pc3Npb24uCgogICAgICAgSy4gRm9yIGFueSBzZWN0 aW9uIEVudGl0bGVkIOKAnEFja25vd2xlZGdlbWVudHPigJ0gb3Ig4oCcRGVkaWNhdGlvbnPigJ0s CiAgICAgICAgICBQcmVzZXJ2ZSB0aGUgVGl0bGUgb2YgdGhlIHNlY3Rpb24sIGFuZCBwcmVzZXJ2 ZSBpbiB0aGUgc2VjdGlvbgogICAgICAgICAgYWxsIHRoZSBzdWJzdGFuY2UgYW5kIHRvbmUgb2Yg ZWFjaCBvZiB0aGUgY29udHJpYnV0b3IKICAgICAgICAgIGFja25vd2xlZGdlbWVudHMgYW5kL29y IGRlZGljYXRpb25zIGdpdmVuIHRoZXJlaW4uCgogICAgICAgTC4gUHJlc2VydmUgYWxsIHRoZSBJ bnZhcmlhbnQgU2VjdGlvbnMgb2YgdGhlIERvY3VtZW50LCB1bmFsdGVyZWQKICAgICAgICAgIGlu IHRoZWlyIHRleHQgYW5kIGluIHRoZWlyIHRpdGxlcy4gIFNlY3Rpb24gbnVtYmVycyBvciB0aGUK ICAgICAgICAgIGVxdWl2YWxlbnQgYXJlIG5vdCBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHNlY3Rp b24gdGl0bGVzLgoKICAgICAgIE0uIERlbGV0ZSBhbnkgc2VjdGlvbiBFbnRpdGxlZCDigJxFbmRv cnNlbWVudHPigJ0uICBTdWNoIGEgc2VjdGlvbgogICAgICAgICAgbWF5IG5vdCBiZSBpbmNsdWRl ZCBpbiB0aGUgTW9kaWZpZWQgVmVyc2lvbi4KCiAgICAgICBOLiBEbyBub3QgcmV0aXRsZSBhbnkg ZXhpc3Rpbmcgc2VjdGlvbiB0byBiZSBFbnRpdGxlZAogICAgICAgICAg4oCcRW5kb3JzZW1lbnRz 4oCdIG9yIHRvIGNvbmZsaWN0IGluIHRpdGxlIHdpdGggYW55IEludmFyaWFudAogICAgICAgICAg U2VjdGlvbi4KCiAgICAgICBPLiBQcmVzZXJ2ZSBhbnkgV2FycmFudHkgRGlzY2xhaW1lcnMuCgog ICAgIElmIHRoZSBNb2RpZmllZCBWZXJzaW9uIGluY2x1ZGVzIG5ldyBmcm9udC1tYXR0ZXIgc2Vj dGlvbnMgb3IKICAgICBhcHBlbmRpY2VzIHRoYXQgcXVhbGlmeSBhcyBTZWNvbmRhcnkgU2VjdGlv bnMgYW5kIGNvbnRhaW4gbm8KICAgICBtYXRlcmlhbCBjb3BpZWQgZnJvbSB0aGUgRG9jdW1lbnQs IHlvdSBtYXkgYXQgeW91ciBvcHRpb24gZGVzaWduYXRlCiAgICAgc29tZSBvciBhbGwgb2YgdGhl c2Ugc2VjdGlvbnMgYXMgaW52YXJpYW50LiAgVG8gZG8gdGhpcywgYWRkIHRoZWlyCiAgICAgdGl0 bGVzIHRvIHRoZSBsaXN0IG9mIEludmFyaWFudCBTZWN0aW9ucyBpbiB0aGUgTW9kaWZpZWQgVmVy c2lvbuKAmXMKICAgICBsaWNlbnNlIG5vdGljZS4gIFRoZXNlIHRpdGxlcyBtdXN0IGJlIGRpc3Rp bmN0IGZyb20gYW55IG90aGVyCiAgICAgc2VjdGlvbiB0aXRsZXMuCgogICAgIFlvdSBtYXkgYWRk IGEgc2VjdGlvbiBFbnRpdGxlZCDigJxFbmRvcnNlbWVudHPigJ0sIHByb3ZpZGVkIGl0IGNvbnRh aW5zCiAgICAgbm90aGluZyBidXQgZW5kb3JzZW1lbnRzIG9mIHlvdXIgTW9kaWZpZWQgVmVyc2lv biBieSB2YXJpb3VzCiAgICAgcGFydGllc+KAlGZvciBleGFtcGxlLCBzdGF0ZW1lbnRzIG9mIHBl ZXIgcmV2aWV3IG9yIHRoYXQgdGhlIHRleHQgaGFzCiAgICAgYmVlbiBhcHByb3ZlZCBieSBhbiBv cmdhbml6YXRpb24gYXMgdGhlIGF1dGhvcml0YXRpdmUgZGVmaW5pdGlvbiBvZgogICAgIGEgc3Rh bmRhcmQuCgogICAgIFlvdSBtYXkgYWRkIGEgcGFzc2FnZSBvZiB1cCB0byBmaXZlIHdvcmRzIGFz IGEgRnJvbnQtQ292ZXIgVGV4dCwKICAgICBhbmQgYSBwYXNzYWdlIG9mIHVwIHRvIDI1IHdvcmRz IGFzIGEgQmFjay1Db3ZlciBUZXh0LCB0byB0aGUgZW5kIG9mCiAgICAgdGhlIGxpc3Qgb2YgQ292 ZXIgVGV4dHMgaW4gdGhlIE1vZGlmaWVkIFZlcnNpb24uICBPbmx5IG9uZSBwYXNzYWdlCiAgICAg b2YgRnJvbnQtQ292ZXIgVGV4dCBhbmQgb25lIG9mIEJhY2stQ292ZXIgVGV4dCBtYXkgYmUgYWRk ZWQgYnkgKG9yCiAgICAgdGhyb3VnaCBhcnJhbmdlbWVudHMgbWFkZSBieSkgYW55IG9uZSBlbnRp dHkuICBJZiB0aGUgRG9jdW1lbnQKICAgICBhbHJlYWR5IGluY2x1ZGVzIGEgY292ZXIgdGV4dCBm b3IgdGhlIHNhbWUgY292ZXIsIHByZXZpb3VzbHkgYWRkZWQKICAgICBieSB5b3Ugb3IgYnkgYXJy YW5nZW1lbnQgbWFkZSBieSB0aGUgc2FtZSBlbnRpdHkgeW91IGFyZSBhY3Rpbmcgb24KICAgICBi ZWhhbGYgb2YsIHlvdSBtYXkgbm90IGFkZCBhbm90aGVyOyBidXQgeW91IG1heSByZXBsYWNlIHRo ZSBvbGQKICAgICBvbmUsIG9uIGV4cGxpY2l0IHBlcm1pc3Npb24gZnJvbSB0aGUgcHJldmlvdXMg cHVibGlzaGVyIHRoYXQgYWRkZWQKICAgICB0aGUgb2xkIG9uZS4KCiAgICAgVGhlIGF1dGhvcihz KSBhbmQgcHVibGlzaGVyKHMpIG9mIHRoZSBEb2N1bWVudCBkbyBub3QgYnkgdGhpcwogICAgIExp Y2Vuc2UgZ2l2ZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGVpciBuYW1lcyBmb3IgcHVibGljaXR5IGZv ciBvciB0bwogICAgIGFzc2VydCBvciBpbXBseSBlbmRvcnNlbWVudCBvZiBhbnkgTW9kaWZpZWQg VmVyc2lvbi4KCiAgNS4gQ09NQklOSU5HIERPQ1VNRU5UUwoKICAgICBZb3UgbWF5IGNvbWJpbmUg dGhlIERvY3VtZW50IHdpdGggb3RoZXIgZG9jdW1lbnRzIHJlbGVhc2VkIHVuZGVyCiAgICAgdGhp cyBMaWNlbnNlLCB1bmRlciB0aGUgdGVybXMgZGVmaW5lZCBpbiBzZWN0aW9uIDQgYWJvdmUgZm9y CiAgICAgbW9kaWZpZWQgdmVyc2lvbnMsIHByb3ZpZGVkIHRoYXQgeW91IGluY2x1ZGUgaW4gdGhl IGNvbWJpbmF0aW9uIGFsbAogICAgIG9mIHRoZSBJbnZhcmlhbnQgU2VjdGlvbnMgb2YgYWxsIG9m IHRoZSBvcmlnaW5hbCBkb2N1bWVudHMsCiAgICAgdW5tb2RpZmllZCwgYW5kIGxpc3QgdGhlbSBh bGwgYXMgSW52YXJpYW50IFNlY3Rpb25zIG9mIHlvdXIKICAgICBjb21iaW5lZCB3b3JrIGluIGl0 cyBsaWNlbnNlIG5vdGljZSwgYW5kIHRoYXQgeW91IHByZXNlcnZlIGFsbAogICAgIHRoZWlyIFdh cnJhbnR5IERpc2NsYWltZXJzLgoKICAgICBUaGUgY29tYmluZWQgd29yayBuZWVkIG9ubHkgY29u dGFpbiBvbmUgY29weSBvZiB0aGlzIExpY2Vuc2UsIGFuZAogICAgIG11bHRpcGxlIGlkZW50aWNh bCBJbnZhcmlhbnQgU2VjdGlvbnMgbWF5IGJlIHJlcGxhY2VkIHdpdGggYSBzaW5nbGUKICAgICBj b3B5LiAgSWYgdGhlcmUgYXJlIG11bHRpcGxlIEludmFyaWFudCBTZWN0aW9ucyB3aXRoIHRoZSBz YW1lIG5hbWUKICAgICBidXQgZGlmZmVyZW50IGNvbnRlbnRzLCBtYWtlIHRoZSB0aXRsZSBvZiBl YWNoIHN1Y2ggc2VjdGlvbiB1bmlxdWUKICAgICBieSBhZGRpbmcgYXQgdGhlIGVuZCBvZiBpdCwg aW4gcGFyZW50aGVzZXMsIHRoZSBuYW1lIG9mIHRoZQogICAgIG9yaWdpbmFsIGF1dGhvciBvciBw dWJsaXNoZXIgb2YgdGhhdCBzZWN0aW9uIGlmIGtub3duLCBvciBlbHNlIGEKICAgICB1bmlxdWUg bnVtYmVyLiAgTWFrZSB0aGUgc2FtZSBhZGp1c3RtZW50IHRvIHRoZSBzZWN0aW9uIHRpdGxlcyBp bgogICAgIHRoZSBsaXN0IG9mIEludmFyaWFudCBTZWN0aW9ucyBpbiB0aGUgbGljZW5zZSBub3Rp Y2Ugb2YgdGhlCiAgICAgY29tYmluZWQgd29yay4KCiAgICAgSW4gdGhlIGNvbWJpbmF0aW9uLCB5 b3UgbXVzdCBjb21iaW5lIGFueSBzZWN0aW9ucyBFbnRpdGxlZAogICAgIOKAnEhpc3RvcnnigJ0g aW4gdGhlIHZhcmlvdXMgb3JpZ2luYWwgZG9jdW1lbnRzLCBmb3JtaW5nIG9uZSBzZWN0aW9uCiAg ICAgRW50aXRsZWQg4oCcSGlzdG9yeeKAnTsgbGlrZXdpc2UgY29tYmluZSBhbnkgc2VjdGlvbnMg RW50aXRsZWQKICAgICDigJxBY2tub3dsZWRnZW1lbnRz4oCdLCBhbmQgYW55IHNlY3Rpb25zIEVu dGl0bGVkIOKAnERlZGljYXRpb25z4oCdLiAgWW91CiAgICAgbXVzdCBkZWxldGUgYWxsIHNlY3Rp b25zIEVudGl0bGVkIOKAnEVuZG9yc2VtZW50cy7igJ0KCiAgNi4gQ09MTEVDVElPTlMgT0YgRE9D VU1FTlRTCgogICAgIFlvdSBtYXkgbWFrZSBhIGNvbGxlY3Rpb24gY29uc2lzdGluZyBvZiB0aGUg RG9jdW1lbnQgYW5kIG90aGVyCiAgICAgZG9jdW1lbnRzIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGlj ZW5zZSwgYW5kIHJlcGxhY2UgdGhlIGluZGl2aWR1YWwKICAgICBjb3BpZXMgb2YgdGhpcyBMaWNl bnNlIGluIHRoZSB2YXJpb3VzIGRvY3VtZW50cyB3aXRoIGEgc2luZ2xlIGNvcHkKICAgICB0aGF0 IGlzIGluY2x1ZGVkIGluIHRoZSBjb2xsZWN0aW9uLCBwcm92aWRlZCB0aGF0IHlvdSBmb2xsb3cg dGhlCiAgICAgcnVsZXMgb2YgdGhpcyBMaWNlbnNlIGZvciB2ZXJiYXRpbSBjb3B5aW5nIG9mIGVh Y2ggb2YgdGhlIGRvY3VtZW50cwogICAgIGluIGFsbCBvdGhlciByZXNwZWN0cy4KCiAgICAgWW91 IG1heSBleHRyYWN0IGEgc2luZ2xlIGRvY3VtZW50IGZyb20gc3VjaCBhIGNvbGxlY3Rpb24sIGFu ZAogICAgIGRpc3RyaWJ1dGUgaXQgaW5kaXZpZHVhbGx5IHVuZGVyIHRoaXMgTGljZW5zZSwgcHJv dmlkZWQgeW91IGluc2VydAogICAgIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgaW50byB0aGUgZXh0 cmFjdGVkIGRvY3VtZW50LCBhbmQgZm9sbG93IHRoaXMKICAgICBMaWNlbnNlIGluIGFsbCBvdGhl ciByZXNwZWN0cyByZWdhcmRpbmcgdmVyYmF0aW0gY29weWluZyBvZiB0aGF0CiAgICAgZG9jdW1l bnQuCgogIDcuIEFHR1JFR0FUSU9OIFdJVEggSU5ERVBFTkRFTlQgV09SS1MKCiAgICAgQSBjb21w aWxhdGlvbiBvZiB0aGUgRG9jdW1lbnQgb3IgaXRzIGRlcml2YXRpdmVzIHdpdGggb3RoZXIKICAg ICBzZXBhcmF0ZSBhbmQgaW5kZXBlbmRlbnQgZG9jdW1lbnRzIG9yIHdvcmtzLCBpbiBvciBvbiBh IHZvbHVtZSBvZiBhCiAgICAgc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtLCBpcyBjYWxs ZWQgYW4g4oCcYWdncmVnYXRl4oCdIGlmIHRoZQogICAgIGNvcHlyaWdodCByZXN1bHRpbmcgZnJv bSB0aGUgY29tcGlsYXRpb24gaXMgbm90IHVzZWQgdG8gbGltaXQgdGhlCiAgICAgbGVnYWwgcmln aHRzIG9mIHRoZSBjb21waWxhdGlvbuKAmXMgdXNlcnMgYmV5b25kIHdoYXQgdGhlIGluZGl2aWR1 YWwKICAgICB3b3JrcyBwZXJtaXQuICBXaGVuIHRoZSBEb2N1bWVudCBpcyBpbmNsdWRlZCBpbiBh biBhZ2dyZWdhdGUsIHRoaXMKICAgICBMaWNlbnNlIGRvZXMgbm90IGFwcGx5IHRvIHRoZSBvdGhl ciB3b3JrcyBpbiB0aGUgYWdncmVnYXRlIHdoaWNoCiAgICAgYXJlIG5vdCB0aGVtc2VsdmVzIGRl cml2YXRpdmUgd29ya3Mgb2YgdGhlIERvY3VtZW50LgoKICAgICBJZiB0aGUgQ292ZXIgVGV4dCBy ZXF1aXJlbWVudCBvZiBzZWN0aW9uIDMgaXMgYXBwbGljYWJsZSB0byB0aGVzZQogICAgIGNvcGll cyBvZiB0aGUgRG9jdW1lbnQsIHRoZW4gaWYgdGhlIERvY3VtZW50IGlzIGxlc3MgdGhhbiBvbmUg aGFsZgogICAgIG9mIHRoZSBlbnRpcmUgYWdncmVnYXRlLCB0aGUgRG9jdW1lbnTigJlzIENvdmVy IFRleHRzIG1heSBiZSBwbGFjZWQKICAgICBvbiBjb3ZlcnMgdGhhdCBicmFja2V0IHRoZSBEb2N1 bWVudCB3aXRoaW4gdGhlIGFnZ3JlZ2F0ZSwgb3IgdGhlCiAgICAgZWxlY3Ryb25pYyBlcXVpdmFs ZW50IG9mIGNvdmVycyBpZiB0aGUgRG9jdW1lbnQgaXMgaW4gZWxlY3Ryb25pYwogICAgIGZvcm0u ICBPdGhlcndpc2UgdGhleSBtdXN0IGFwcGVhciBvbiBwcmludGVkIGNvdmVycyB0aGF0IGJyYWNr ZXQKICAgICB0aGUgd2hvbGUgYWdncmVnYXRlLgoKICA4LiBUUkFOU0xBVElPTgoKICAgICBUcmFu c2xhdGlvbiBpcyBjb25zaWRlcmVkIGEga2luZCBvZiBtb2RpZmljYXRpb24sIHNvIHlvdSBtYXkK ICAgICBkaXN0cmlidXRlIHRyYW5zbGF0aW9ucyBvZiB0aGUgRG9jdW1lbnQgdW5kZXIgdGhlIHRl cm1zIG9mIHNlY3Rpb24KICAgICA0LiAgUmVwbGFjaW5nIEludmFyaWFudCBTZWN0aW9ucyB3aXRo IHRyYW5zbGF0aW9ucyByZXF1aXJlcyBzcGVjaWFsCiAgICAgcGVybWlzc2lvbiBmcm9tIHRoZWly IGNvcHlyaWdodCBob2xkZXJzLCBidXQgeW91IG1heSBpbmNsdWRlCiAgICAgdHJhbnNsYXRpb25z IG9mIHNvbWUgb3IgYWxsIEludmFyaWFudCBTZWN0aW9ucyBpbiBhZGRpdGlvbiB0byB0aGUKICAg ICBvcmlnaW5hbCB2ZXJzaW9ucyBvZiB0aGVzZSBJbnZhcmlhbnQgU2VjdGlvbnMuICBZb3UgbWF5 IGluY2x1ZGUgYQogICAgIHRyYW5zbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgYW5kIGFsbCB0aGUg bGljZW5zZSBub3RpY2VzIGluIHRoZQogICAgIERvY3VtZW50LCBhbmQgYW55IFdhcnJhbnR5IERp c2NsYWltZXJzLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvCiAgICAgaW5jbHVkZSB0aGUgb3JpZ2lu YWwgRW5nbGlzaCB2ZXJzaW9uIG9mIHRoaXMgTGljZW5zZSBhbmQgdGhlCiAgICAgb3JpZ2luYWwg dmVyc2lvbnMgb2YgdGhvc2Ugbm90aWNlcyBhbmQgZGlzY2xhaW1lcnMuICBJbiBjYXNlIG9mIGEK ICAgICBkaXNhZ3JlZW1lbnQgYmV0d2VlbiB0aGUgdHJhbnNsYXRpb24gYW5kIHRoZSBvcmlnaW5h bCB2ZXJzaW9uIG9mCiAgICAgdGhpcyBMaWNlbnNlIG9yIGEgbm90aWNlIG9yIGRpc2NsYWltZXIs IHRoZSBvcmlnaW5hbCB2ZXJzaW9uIHdpbGwKICAgICBwcmV2YWlsLgoKICAgICBJZiBhIHNlY3Rp b24gaW4gdGhlIERvY3VtZW50IGlzIEVudGl0bGVkIOKAnEFja25vd2xlZGdlbWVudHPigJ0sCiAg ICAg4oCcRGVkaWNhdGlvbnPigJ0sIG9yIOKAnEhpc3RvcnnigJ0sIHRoZSByZXF1aXJlbWVudCAo c2VjdGlvbiA0KSB0bwogICAgIFByZXNlcnZlIGl0cyBUaXRsZSAoc2VjdGlvbiAxKSB3aWxsIHR5 cGljYWxseSByZXF1aXJlIGNoYW5naW5nIHRoZQogICAgIGFjdHVhbCB0aXRsZS4KCiAgOS4gVEVS TUlOQVRJT04KCiAgICAgWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBk aXN0cmlidXRlIHRoZSBEb2N1bWVudAogICAgIGV4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQg dW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQKICAgICBvdGhlcndpc2UgdG8gY29weSwg bW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIGl0IGlzIHZvaWQsCiAgICAgYW5kIHdp bGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNl LgoKICAgICBIb3dldmVyLCBpZiB5b3UgY2Vhc2UgYWxsIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vu c2UsIHRoZW4geW91cgogICAgIGxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhv bGRlciBpcyByZWluc3RhdGVkIChhKQogICAgIHByb3Zpc2lvbmFsbHksIHVubGVzcyBhbmQgdW50 aWwgdGhlIGNvcHlyaWdodCBob2xkZXIgZXhwbGljaXRseSBhbmQKICAgICBmaW5hbGx5IHRlcm1p bmF0ZXMgeW91ciBsaWNlbnNlLCBhbmQgKGIpIHBlcm1hbmVudGx5LCBpZiB0aGUKICAgICBjb3B5 cmlnaHQgaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21l CiAgICAgcmVhc29uYWJsZSBtZWFucyBwcmlvciB0byA2MCBkYXlzIGFmdGVyIHRoZSBjZXNzYXRp b24uCgogICAgIE1vcmVvdmVyLCB5b3VyIGxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJp Z2h0IGhvbGRlciBpcwogICAgIHJlaW5zdGF0ZWQgcGVybWFuZW50bHkgaWYgdGhlIGNvcHlyaWdo dCBob2xkZXIgbm90aWZpZXMgeW91IG9mIHRoZQogICAgIHZpb2xhdGlvbiBieSBzb21lIHJlYXNv bmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKICAgICByZWNlaXZl ZCBub3RpY2Ugb2YgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSAoZm9yIGFueSB3b3JrKSBmcm9t CiAgICAgdGhhdCBjb3B5cmlnaHQgaG9sZGVyLCBhbmQgeW91IGN1cmUgdGhlIHZpb2xhdGlvbiBw cmlvciB0byAzMCBkYXlzCiAgICAgYWZ0ZXIgeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgog ICAgIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5v dCB0ZXJtaW5hdGUKICAgICB0aGUgbGljZW5zZXMgb2YgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZl ZCBjb3BpZXMgb3IgcmlnaHRzIGZyb20geW91CiAgICAgdW5kZXIgdGhpcyBMaWNlbnNlLiAgSWYg eW91ciByaWdodHMgaGF2ZSBiZWVuIHRlcm1pbmF0ZWQgYW5kIG5vdAogICAgIHBlcm1hbmVudGx5 IHJlaW5zdGF0ZWQsIHJlY2VpcHQgb2YgYSBjb3B5IG9mIHNvbWUgb3IgYWxsIG9mIHRoZQogICAg IHNhbWUgbWF0ZXJpYWwgZG9lcyBub3QgZ2l2ZSB5b3UgYW55IHJpZ2h0cyB0byB1c2UgaXQuCgog IDEwLiBGVVRVUkUgUkVWSVNJT05TIE9GIFRISVMgTElDRU5TRQoKICAgICBUaGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIG5ldywgcmV2aXNlZCB2ZXJzaW9ucyBvZgogICAg IHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBT dWNoIG5ldwogICAgIHZlcnNpb25zIHdpbGwgYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHBy ZXNlbnQgdmVyc2lvbiwgYnV0IG1heQogICAgIGRpZmZlciBpbiBkZXRhaWwgdG8gYWRkcmVzcyBu ZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuICBTZWUKICAgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgoKICAgICBFYWNoIHZlcnNpb24gb2YgdGhlIExpY2Vuc2UgaXMgZ2l2ZW4gYSBk aXN0aW5ndWlzaGluZyB2ZXJzaW9uCiAgICAgbnVtYmVyLiAgSWYgdGhlIERvY3VtZW50IHNwZWNp ZmllcyB0aGF0IGEgcGFydGljdWxhciBudW1iZXJlZAogICAgIHZlcnNpb24gb2YgdGhpcyBMaWNl bnNlIOKAnG9yIGFueSBsYXRlciB2ZXJzaW9u4oCdIGFwcGxpZXMgdG8gaXQsIHlvdQogICAgIGhh dmUgdGhlIG9wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGVpdGhl ciBvZgogICAgIHRoYXQgc3BlY2lmaWVkIHZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24g dGhhdCBoYXMgYmVlbgogICAgIHB1Ymxpc2hlZCAobm90IGFzIGEgZHJhZnQpIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUKICAgICBEb2N1bWVudCBkb2VzIG5vdCBzcGVj aWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlLCB5b3UgbWF5CiAgICAgY2hvb3Nl IGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkIChub3QgYXMgYSBkcmFmdCkgYnkgdGhlIEZyZWUK ICAgICBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIERvY3VtZW50IHNwZWNpZmllcyB0aGF0 IGEgcHJveHkgY2FuCiAgICAgZGVjaWRlIHdoaWNoIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGlzIExp Y2Vuc2UgY2FuIGJlIHVzZWQsIHRoYXQKICAgICBwcm94eeKAmXMgcHVibGljIHN0YXRlbWVudCBv ZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseQogICAgIGF1dGhvcml6ZXMgeW91 IHRvIGNob29zZSB0aGF0IHZlcnNpb24gZm9yIHRoZSBEb2N1bWVudC4KCiAgMTEuIFJFTElDRU5T SU5HCgogICAgIOKAnE1hc3NpdmUgTXVsdGlhdXRob3IgQ29sbGFib3JhdGlvbiBTaXRl4oCdIChv ciDigJxNTUMgU2l0ZeKAnSkgbWVhbnMgYW55CiAgICAgV29ybGQgV2lkZSBXZWIgc2VydmVyIHRo YXQgcHVibGlzaGVzIGNvcHlyaWdodGFibGUgd29ya3MgYW5kIGFsc28KICAgICBwcm92aWRlcyBw cm9taW5lbnQgZmFjaWxpdGllcyBmb3IgYW55Ym9keSB0byBlZGl0IHRob3NlIHdvcmtzLiAgQQog ICAgIHB1YmxpYyB3aWtpIHRoYXQgYW55Ym9keSBjYW4gZWRpdCBpcyBhbiBleGFtcGxlIG9mIHN1 Y2ggYSBzZXJ2ZXIuCiAgICAgQSDigJxNYXNzaXZlIE11bHRpYXV0aG9yIENvbGxhYm9yYXRpb27i gJ0gKG9yIOKAnE1NQ+KAnSkgY29udGFpbmVkIGluIHRoZQogICAgIHNpdGUgbWVhbnMgYW55IHNl dCBvZiBjb3B5cmlnaHRhYmxlIHdvcmtzIHRodXMgcHVibGlzaGVkIG9uIHRoZSBNTUMKICAgICBz aXRlLgoKICAgICDigJxDQy1CWS1TQeKAnSBtZWFucyB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBBdHRy aWJ1dGlvbi1TaGFyZSBBbGlrZSAzLjAKICAgICBsaWNlbnNlIHB1Ymxpc2hlZCBieSBDcmVhdGl2 ZSBDb21tb25zIENvcnBvcmF0aW9uLCBhIG5vdC1mb3ItcHJvZml0CiAgICAgY29ycG9yYXRpb24g d2l0aCBhIHByaW5jaXBhbCBwbGFjZSBvZiBidXNpbmVzcyBpbiBTYW4gRnJhbmNpc2NvLAogICAg IENhbGlmb3JuaWEsIGFzIHdlbGwgYXMgZnV0dXJlIGNvcHlsZWZ0IHZlcnNpb25zIG9mIHRoYXQg bGljZW5zZQogICAgIHB1Ymxpc2hlZCBieSB0aGF0IHNhbWUgb3JnYW5pemF0aW9uLgoKICAgICDi gJxJbmNvcnBvcmF0ZeKAnSBtZWFucyB0byBwdWJsaXNoIG9yIHJlcHVibGlzaCBhIERvY3VtZW50 LCBpbiB3aG9sZSBvcgogICAgIGluIHBhcnQsIGFzIHBhcnQgb2YgYW5vdGhlciBEb2N1bWVudC4K CiAgICAgQW4gTU1DIGlzIOKAnGVsaWdpYmxlIGZvciByZWxpY2Vuc2luZ+KAnSBpZiBpdCBpcyBs aWNlbnNlZCB1bmRlciB0aGlzCiAgICAgTGljZW5zZSwgYW5kIGlmIGFsbCB3b3JrcyB0aGF0IHdl cmUgZmlyc3QgcHVibGlzaGVkIHVuZGVyIHRoaXMKICAgICBMaWNlbnNlIHNvbWV3aGVyZSBvdGhl ciB0aGFuIHRoaXMgTU1DLCBhbmQgc3Vic2VxdWVudGx5CiAgICAgaW5jb3Jwb3JhdGVkIGluIHdo b2xlIG9yIGluIHBhcnQgaW50byB0aGUgTU1DLCAoMSkgaGFkIG5vIGNvdmVyCiAgICAgdGV4dHMg b3IgaW52YXJpYW50IHNlY3Rpb25zLCBhbmQgKDIpIHdlcmUgdGh1cyBpbmNvcnBvcmF0ZWQgcHJp b3IKICAgICB0byBOb3ZlbWJlciAxLCAyMDA4LgoKICAgICBUaGUgb3BlcmF0b3Igb2YgYW4gTU1D IFNpdGUgbWF5IHJlcHVibGlzaCBhbiBNTUMgY29udGFpbmVkIGluIHRoZQogICAgIHNpdGUgdW5k ZXIgQ0MtQlktU0Egb24gdGhlIHNhbWUgc2l0ZSBhdCBhbnkgdGltZSBiZWZvcmUgQXVndXN0IDEs CiAgICAgMjAwOSwgcHJvdmlkZWQgdGhlIE1NQyBpcyBlbGlnaWJsZSBmb3IgcmVsaWNlbnNpbmcu CgpBRERFTkRVTTogSG93IHRvIHVzZSB0aGlzIExpY2Vuc2UgZm9yIHlvdXIgZG9jdW1lbnRzCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClRvIHVz ZSB0aGlzIExpY2Vuc2UgaW4gYSBkb2N1bWVudCB5b3UgaGF2ZSB3cml0dGVuLCBpbmNsdWRlIGEg Y29weSBvZgp0aGUgTGljZW5zZSBpbiB0aGUgZG9jdW1lbnQgYW5kIHB1dCB0aGUgZm9sbG93aW5n IGNvcHlyaWdodCBhbmQgbGljZW5zZQpub3RpY2VzIGp1c3QgYWZ0ZXIgdGhlIHRpdGxlIHBhZ2U6 CgogICAgICAgQ29weXJpZ2h0IChDKSAgWUVBUiAgWU9VUiBOQU1FLgogICAgICAgUGVybWlzc2lv biBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzIGRvY3Vt ZW50CiAgICAgICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24g TGljZW5zZSwgVmVyc2lvbiAxLjMKICAgICAgIG9yIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOwogICAgICAgd2l0aCBubyBJbnZhcmlh bnQgU2VjdGlvbnMsIG5vIEZyb250LUNvdmVyIFRleHRzLCBhbmQgbm8gQmFjay1Db3ZlcgogICAg ICAgVGV4dHMuICBBIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rp b24gZW50aXRsZWQgYGBHTlUKICAgICAgIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlJycuCgog ICBJZiB5b3UgaGF2ZSBJbnZhcmlhbnQgU2VjdGlvbnMsIEZyb250LUNvdmVyIFRleHRzIGFuZCBC YWNrLUNvdmVyClRleHRzLCByZXBsYWNlIHRoZSDigJx3aXRoLi4uVGV4dHMu4oCdIGxpbmUgd2l0 aCB0aGlzOgoKICAgICAgICAgd2l0aCB0aGUgSW52YXJpYW50IFNlY3Rpb25zIGJlaW5nIExJU1Qg VEhFSVIgVElUTEVTLCB3aXRoCiAgICAgICAgIHRoZSBGcm9udC1Db3ZlciBUZXh0cyBiZWluZyBM SVNULCBhbmQgd2l0aCB0aGUgQmFjay1Db3ZlciBUZXh0cwogICAgICAgICBiZWluZyBMSVNULgoK ICAgSWYgeW91IGhhdmUgSW52YXJpYW50IFNlY3Rpb25zIHdpdGhvdXQgQ292ZXIgVGV4dHMsIG9y IHNvbWUgb3RoZXIKY29tYmluYXRpb24gb2YgdGhlIHRocmVlLCBtZXJnZSB0aG9zZSB0d28gYWx0 ZXJuYXRpdmVzIHRvIHN1aXQgdGhlCnNpdHVhdGlvbi4KCiAgIElmIHlvdXIgZG9jdW1lbnQgY29u dGFpbnMgbm9udHJpdmlhbCBleGFtcGxlcyBvZiBwcm9ncmFtIGNvZGUsIHdlCnJlY29tbWVuZCBy ZWxlYXNpbmcgdGhlc2UgZXhhbXBsZXMgaW4gcGFyYWxsZWwgdW5kZXIgeW91ciBjaG9pY2Ugb2Yg ZnJlZQpzb2Z0d2FyZSBsaWNlbnNlLCBzdWNoIGFzIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSwgdG8gcGVybWl0CnRoZWlyIHVzZSBpbiBmcmVlIHNvZnR3YXJlLgoKSW5kZXgKKioqKioK ClRoaXMgaXMgYW4gYWxwaGFiZXRpY2FsIGxpc3Rpbmcgb2YgYWxsIGNvbmNlcHRzLCBmdW5jdGlv bnMsIGNvbW1hbmRzLAp2YXJpYWJsZXMsIGFuZCB3aWRnZXRzIGRlc2NyaWJlZCBpbiB0aGlzIG1h bnVhbC4KCiogTWVudToKCiogYWN0aW9uIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAg RGVmaW5pbmcgTmV3IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxMzMzKQoqIGFjdGl2YXRlIGEgd2lkZ2V0 OiAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBQcm9wZXJ0aWVzLiAgKGxpbmUgMTE4MSkKKiBh Y3RpdmUgd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgUHJvcGVydGllcy4g IChsaW5lIDExODEpCiogYXBwZW5kLWJ1dHRvbi1hcmdzIGtleXdvcmQ6ICAgICAgICAgICAgZWRp dGFibGUtbGlzdC4gICAgICAobGluZSAgOTE5KQoqIGFyZ3Mga2V5d29yZDogICAgICAgICAgICAg ICAgICAgICAgICAgIG1lbnUtY2hvaWNlLiAgICAgICAgKGxpbmUgIDczMSkKKiBhcmdzIGtleXdv cmQgPDE+OiAgICAgICAgICAgICAgICAgICAgICByYWRpby1idXR0b24tY2hvaWNlLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgIDc3MSkKKiBhcmdzIGtleXdvcmQgPDI+OiAgICAgICAgICAgICAgICAgICAgICBjaGVja2xp c3QuICAgICAgICAgIChsaW5lICA4ODUpCiogYXJncyBrZXl3b3JkIDwzPjogICAgICAgICAgICAg ICAgICAgICAgZWRpdGFibGUtbGlzdC4gICAgICAobGluZSAgOTI4KQoqIGF0b21pYyBzZXhwIHdp ZGdldDogICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgIDk5OSkK KiBiYXNpYyB3aWRnZXRzOiAgICAgICAgICAgICAgICAgICAgICAgICBJbnRyb2R1Y3Rpb24uICAg ICAgIChsaW5lICAgNjMpCiogYm9vbGVhbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXRvbXMuICAgICAgICAgICAgICAobGluZSAxMDUyKQoqIGJyb3dzZS11cmwtYnJvd3Nlci1mdW5j dGlvbiwgYW5kIHVybC1saW5rIHdpZGdldDogdXJsLWxpbmsuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjI5KQoqIGJ1 dHRvbiB3aWRnZXRzOiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIgSW50ZXJmYWNlLiAgICAg KGxpbmUgIDIwMCkKKiBidXR0b24tYXJncyBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICByYWRp by1idXR0b24tY2hvaWNlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDc1OCkKKiBidXR0b24tYXJncyBrZXl3b3JkIDwx PjogICAgICAgICAgICAgICBjaGVja2xpc3QuICAgICAgICAgIChsaW5lICA4NzUpCiogYnV0dG9u LWZhY2Uga2V5d29yZDogICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGlu ZSAgNDg2KQoqIGJ1dHRvbi1wcmVmaXgga2V5d29yZDogICAgICAgICAgICAgICAgIEJhc2ljIFR5 cGVzLiAgICAgICAgKGxpbmUgIDQ4OSkKKiBidXR0b24tc3VmZml4IGtleXdvcmQ6ICAgICAgICAg ICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA0ODkpCiogYnV0dG9ucyBrZXl3b3Jk OiAgICAgICAgICAgICAgICAgICAgICAgcmFkaW8tYnV0dG9uLWNob2ljZS4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA3 NjIpCiogYnV0dG9ucyBrZXl3b3JkIDwxPjogICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0LiAg ICAgICAgICAobGluZSAgODc5KQoqIGJ1dHRvbnMga2V5d29yZCA8Mj46ICAgICAgICAgICAgICAg ICAgIGVkaXRhYmxlLWxpc3QuICAgICAgKGxpbmUgIDkyMikKKiBjYXNlLWZvbGQga2V5d29yZDog ICAgICAgICAgICAgICAgICAgICBtZW51LWNob2ljZS4gICAgICAgIChsaW5lICA3MjApCiogY2hh cmFjdGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAgICAo bGluZSAxMDIxKQoqIGNoZWNrYm94IHdpZGdldDogICAgICAgICAgICAgICAgICAgICAgIGNoZWNr Ym94LiAgICAgICAgICAgKGxpbmUgIDgzNykKKiBjaGVja2xpc3Qgd2lkZ2V0OiAgICAgICAgICAg ICAgICAgICAgICBjaGVja2xpc3QuICAgICAgICAgIChsaW5lICA4NDcpCiogY2hpbGRyZW4ga2V5 d29yZDogICAgICAgICAgICAgICAgICAgICAgbWVudS1jaG9pY2UuICAgICAgICAobGluZSAgNzI0 KQoqIGNoaWxkcmVuIGtleXdvcmQgPDE+OiAgICAgICAgICAgICAgICAgIHJhZGlvLWJ1dHRvbi1j aG9pY2UuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgNzY1KQoqIGNoaWxkcmVuIGtleXdvcmQgPDI+OiAgICAgICAgICAg ICAgICAgIGNoZWNrbGlzdC4gICAgICAgICAgKGxpbmUgIDg4MikKKiBjaGlsZHJlbiBrZXl3b3Jk IDwzPjogICAgICAgICAgICAgICAgICBlZGl0YWJsZS1saXN0LiAgICAgIChsaW5lICA5MjUpCiog Y2hvaWNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9zaXRlLiAgICAgICAg ICAobGluZSAxMDcyKQoqIGNob2ljZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIG1l bnUtY2hvaWNlLiAgICAgICAgKGxpbmUgIDcyOCkKKiBjaG9pY2Uga2V5d29yZCA8MT46ICAgICAg ICAgICAgICAgICAgICByYWRpby1idXR0b24tY2hvaWNlLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDc2OCkKKiBjaG9p Y2UtaXRlbSB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICBjaG9pY2UtaXRlbS4gICAgICAgIChs aW5lICA4MDApCiogY29tcG9zaXRlIHNleHAgd2lkZ2V0czogICAgICAgICAgICAgICAgY29tcG9z aXRlLiAgICAgICAgICAobGluZSAxMDU5KQoqIGNvbnM6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXBvc2l0ZS4gICAgICAgICAgKGxpbmUgMTA2NikKKiBjb25zdDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdGFudHMuICAgICAgICAgIChsaW5lICA5NjMp CiogY29uc3RhbnQgd2lkZ2V0czogICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLiAgICAg ICAgICAobGluZSAgOTUyKQoqIGNvbnZlcnQtd2lkZ2V0IGtleXdvcmQ6ICAgICAgICAgICAgICAg IERlZmluaW5nIE5ldyBXaWRnZXRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTI0MykKKiBjb3B5IGtleXdvcmQ6ICAg ICAgICAgICAgICAgICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEy NTgpCiogY3JlYXRlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgRGVmaW5pbmcgTmV3 IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAxMjgxKQoqIGRlYWN0aXZhdGUgYSB3aWRnZXQ6ICAgICAgICAg ICAgICAgICAgIFdpZGdldCBQcm9wZXJ0aWVzLiAgKGxpbmUgMTE4MSkKKiBkZWZhdWx0OiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l IDEzNTUpCiogZGVmaW5lLXdpZGdldDogICAgICAgICAgICAgICAgICAgICAgICAgRGVmaW5pbmcg TmV3IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAxMjE5KQoqIGRlZmluaW5nIG5ldyB3aWRnZXRzOiAgICAg ICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTIxNSkKKiBkZWxl dGUga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lIDEyODYpCiogZGVsZXRlLWJ1dHRvbi1hcmdzIGtleXdvcmQ6ICAgICAgICAgICAg ZWRpdGFibGUtbGlzdC4gICAgICAobGluZSAgOTE2KQoqIGRpcmVjdG9yeTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMTAzMikKKiBkb2Mga2V5 d29yZDogICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5l ICA1MDMpCiogZWRpdGFibGUtZmllbGQgd2lkZ2V0OiAgICAgICAgICAgICAgICAgZWRpdGFibGUt ZmllbGQuICAgICAobGluZSAgNjYzKQoqIGVkaXRhYmxlLWxpc3Qgd2lkZ2V0OiAgICAgICAgICAg ICAgICAgIGVkaXRhYmxlLWxpc3QuICAgICAgKGxpbmUgIDg5MSkKKiBlbWJlZGRlZCBidXR0b25z OiAgICAgICAgICAgICAgICAgICAgICBVc2VyIEludGVyZmFjZS4gICAgIChsaW5lICAyMjcpCiog ZW50cnktZm9ybWF0IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgcmFkaW8tYnV0dG9uLWNob2lj ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICA3NDgpCiogZW50cnktZm9ybWF0IGtleXdvcmQgPDE+OiAgICAgICAgICAg ICAgY2hlY2tsaXN0LiAgICAgICAgICAobGluZSAgODU4KQoqIGVudHJ5LWZvcm1hdCBrZXl3b3Jk IDwyPjogICAgICAgICAgICAgIGVkaXRhYmxlLWxpc3QuICAgICAgKGxpbmUgIDkwMCkKKiBleGFt cGxlIG9mIHVzaW5nIHdpZGdldHM6ICAgICAgICAgICAgICBQcm9ncmFtbWluZyBFeGFtcGxlLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDI3MykKKiBleHRlcm5hbCBmb3JtYXQ6ICAgICAgICAgICAgICAgICAgICAgICBC YXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA0MjIpCiogZXh0cmEtb2Zmc2V0IGtleXdvcmQ6ICAg ICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNTMzKQoqIGZpbGU6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUg MTAyNCkKKiBmb2xsb3ctbGluayBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICBCYXNpYyBUeXBl cy4gICAgICAgIChsaW5lICA1MjEpCiogZm9ybWF0IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAg ICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNDM1KQoqIGZvcm1hdC1oYW5kbGVyIGtl eXdvcmQ6ICAgICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTMy MykKKiBmdW5jdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAg ICAgICAgIChsaW5lIDEwMzkpCiogZnVuY3Rpb24taXRlbTogICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3RhbnRzLiAgICAgICAgICAobGluZSAgOTc2KQoqIGdlbmVyaWMgc2V4cCB3aWRnZXQ6 ICAgICAgICAgICAgICAgICAgIGdlbmVyaWMuICAgICAgICAgICAgKGxpbmUgIDk4MikKKiBncmVl ZHkga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3QuICAgICAgICAgIChs aW5lICA4NjgpCiogZ3JvdXAgd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAu ICAgICAgICAgICAgICAobGluZSAgOTM0KQoqIGhlbHAtZWNobyBrZXl3b3JkOiAgICAgICAgICAg ICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDUxMykKKiBpbmFjdGl2ZSB3aWRn ZXQ6ICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgUHJvcGVydGllcy4gIChsaW5lIDExODEp CiogaW5kZW50IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAg ICAgICAobGluZSAgNTI1KQoqIGluZm8tbGluayB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICAg IGluZm8tbGluay4gICAgICAgICAgKGxpbmUgIDYzNSkKKiBpbnNlcnQtYnV0dG9uLWFyZ3Mga2V5 d29yZDogICAgICAgICAgICBlZGl0YWJsZS1saXN0LiAgICAgIChsaW5lICA5MTMpCiogaW50ZWdl cjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAgICAobGlu ZSAxMDQ2KQoqIGludGVybmFsIGZvcm1hdDogICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIFR5 cGVzLiAgICAgICAgKGxpbmUgIDQyMikKKiBpdGVtIHdpZGdldDogICAgICAgICAgICAgICAgICAg ICAgICAgICBpdGVtLiAgICAgICAgICAgICAgIChsaW5lICA3ODkpCioga2V5bWFwIGtleXdvcmQ6 ICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGFibGUtZmllbGQuICAgICAobGluZSAgNjkxKQoq IGtleXdvcmQgYXJndW1lbnRzOiAgICAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAg ICAgKGxpbmUgIDQyMCkKKiBsaW5rIHdpZGdldDogICAgICAgICAgICAgICAgICAgICAgICAgICBs aW5rLiAgICAgICAgICAgICAgIChsaW5lICA2MDcpCiogbGlzdDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAxMDgxKQoqIG1hdGNoIGtl eXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUg IDU1NCkKKiBtZW51LWNob2ljZSB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICBtZW51LWNob2lj ZS4gICAgICAgIChsaW5lICA3MDgpCiogbWVudS10YWcga2V5d29yZDogICAgICAgICAgICAgICAg ICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNTQ0KQoqIG1lbnUtdGFnLWdldCBrZXl3 b3JkOiAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDU0OCkKKiBt b3VzZS0yIChvbiBidXR0b24gd2lkZ2V0cyk6ICAgICAgICAgICBVc2VyIEludGVyZmFjZS4gICAg IChsaW5lICAyMTApCiogbXVzdC1tYXRjaCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgYXRv bXMuICAgICAgICAgICAgICAobGluZSAxMDI4KQoqIG5ldyB3aWRnZXRzOiAgICAgICAgICAgICAg ICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTIxNSkKKiBub3Rp Znkga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChs aW5lICA1MzcpCiogbnVtYmVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbXMu ICAgICAgICAgICAgICAobGluZSAxMDQ5KQoqIG9mZi1nbHlwaCBrZXl3b3JkOiAgICAgICAgICAg ICAgICAgICAgIHRvZ2dsZS4gICAgICAgICAgICAgKGxpbmUgIDgyOSkKKiBvZmZzZXQga2V5d29y ZDogICAgICAgICAgICAgICAgICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA1Mjkp Ciogb24tZ2x5cGgga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLiAgICAgICAg ICAgICAobGluZSAgODI2KQoqIG9wdGlvbiBmaWVsZCB0YWc6ICAgICAgICAgICAgICAgICAgICAg IFVzZXIgSW50ZXJmYWNlLiAgICAgKGxpbmUgIDIyMCkKKiBwYXJlbnQga2V5d29yZDogICAgICAg ICAgICAgICAgICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA1ODUpCiogcHJvbXB0 LXZhbHVlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgRGVmaW5pbmcgTmV3IFdpZGdldHMuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAxMzQzKQoqIHByb3BlcnRpZXMgb2Ygd2lkZ2V0czogICAgICAgICAgICAgICAgIFdp ZGdldCBQcm9wZXJ0aWVzLiAgKGxpbmUgMTEzNikKKiBwdXNoLWJ1dHRvbiB3aWRnZXQ6ICAgICAg ICAgICAgICAgICAgICBwdXNoLWJ1dHRvbi4gICAgICAgIChsaW5lICA2NDUpCiogcmFkaW8tYnV0 dG9uLWNob2ljZSB3aWRnZXQ6ICAgICAgICAgICAgcmFkaW8tYnV0dG9uLWNob2ljZS4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICA3MzcpCiogcmVnZXhwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbXMu ICAgICAgICAgICAgICAobGluZSAxMDE4KQoqIHJlcGVhdDogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXBvc2l0ZS4gICAgICAgICAgKGxpbmUgMTEyOCkKKiBzZWNyZXQga2V5d29y ZDogICAgICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5lICA2ODEp Ciogc2V0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9zaXRlLiAgICAg ICAgICAobGluZSAxMTE4KQoqIHNleHA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdlbmVyaWMuICAgICAgICAgICAgKGxpbmUgIDk4OSkKKiBzZXhwIHR5cGVzOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTZXhwIFR5cGVzLiAgICAgICAgIChsaW5lICA5NDUpCiogc2libGlu Zy1hcmdzIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGlu ZSAgNTg5KQoqIHNpemUga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRhYmxl LWZpZWxkLiAgICAgKGxpbmUgIDY3MykKKiBzdHJpbmc6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDEwMTUpCiogc3ltYm9sOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAxMDM2KQoq IHRhYi1vcmRlciBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAg ICAgKGxpbmUgIDU3MCkKKiB0YWcga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICAgICBC YXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA1MDYpCiogdGFnLWdseXBoIGtleXdvcmQ6ICAgICAg ICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNTA5KQoqIHRleHQgd2lk Z2V0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQuICAgICAgICAgICAgICAgKGxpbmUg IDcwMSkKKiB0b2RvOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgV2lz aGxpc3QuICAgIChsaW5lIDE0MjkpCiogdG9nZ2xlIHdpZGdldDogICAgICAgICAgICAgICAgICAg ICAgICAgdG9nZ2xlLiAgICAgICAgICAgICAobGluZSAgODEzKQoqIHVybC1saW5rIHdpZGdldDog ICAgICAgICAgICAgICAgICAgICAgIHVybC1saW5rLiAgICAgICAgICAgKGxpbmUgIDYyNSkKKiB1 dGlsaXR5IGZ1bmN0aW9ucyBmb3Igd2lkZ2V0czogICAgICAgICBVdGlsaXRpZXMuICAgICAgICAg IChsaW5lIDEzOTgpCiogdmFsaWQtcmVnZXhwIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgZWRp dGFibGUtZmllbGQuICAgICAobGluZSAgNjg2KQoqIHZhbGlkYXRlIGtleXdvcmQ6ICAgICAgICAg ICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDU1OSkKKiB2YWx1ZSBrZXl3 b3JkOiAgICAgICAgICAgICAgICAgICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA0 MjIpCiogdmFsdWUtY3JlYXRlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgRGVmaW5pbmcgTmV3 IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAxMjk5KQoqIHZhbHVlLWRlbGV0ZSBrZXl3b3JkOiAgICAgICAg ICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTMwNykKKiB2YWx1ZS1m YWNlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5l ICA2NzcpCiogdmFsdWUtZ2V0IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgRGVmaW5pbmcg TmV3IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAxMzE0KQoqIHZhbHVlLXRvLWV4dGVybmFsIGtleXdvcmQ6 ICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTI3NikKKiB2YWx1 ZS10by1pbnRlcm5hbCBrZXl3b3JkOiAgICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lIDEyNjkpCiogdmFyaWFibGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXRvbXMuICAgICAgICAgICAgICAobGluZSAxMDQzKQoqIHZhcmlhYmxlLWl0ZW06ICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0YW50cy4gICAgICAgICAgKGxpbmUgIDk3MykKKiB2ZWN0b3I6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb3NpdGUuICAgICAgICAgIChsaW5l IDEwOTApCiogdm9pZCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudS1jaG9p Y2UuICAgICAgICAobGluZSAgNzE2KQoqIHdpZGdldCBicm93c2VyOiAgICAgICAgICAgICAgICAg ICAgICAgIFdpZGdldCBCcm93c2VyLiAgICAgKGxpbmUgMTM2NCkKKiB3aWRnZXQgYnV0dG9uczog ICAgICAgICAgICAgICAgICAgICAgICBVc2VyIEludGVyZmFjZS4gICAgIChsaW5lICAyMDApCiog d2lkZ2V0IGxpYnJhcnksIHdoeSB1c2UgaXQ6ICAgICAgICAgICAgSW50cm9kdWN0aW9uLiAgICAg ICAobGluZSAgMTAzKQoqIHdpZGdldCBtaW5vciBtb2RlOiAgICAgICAgICAgICAgICAgICAgIFdp ZGdldCBNaW5vciBNb2RlLiAgKGxpbmUgMTM4NCkKKiB3aWRnZXQgcHJvcGVydGllczogICAgICAg ICAgICAgICAgICAgICBXaWRnZXQgUHJvcGVydGllcy4gIChsaW5lIDExMzYpCiogd2lkZ2V0LWFw cGx5OiAgICAgICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IFByb3BlcnRpZXMuICAobGluZSAx MTcwKQoqIHdpZGdldC1iYWNrd2FyZDogICAgICAgICAgICAgICAgICAgICAgIFVzZXIgSW50ZXJm YWNlLiAgICAgKGxpbmUgIDI2NykKKiB3aWRnZXQtYnJvd3NlOiAgICAgICAgICAgICAgICAgICAg ICAgICBXaWRnZXQgQnJvd3Nlci4gICAgIChsaW5lIDEzNjkpCiogd2lkZ2V0LWJyb3dzZS1hdDog ICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEJyb3dzZXIuICAgICAobGluZSAxMzc3KQoqIHdp ZGdldC1icm93c2Utb3RoZXItd2luZG93OiAgICAgICAgICAgIFdpZGdldCBCcm93c2VyLiAgICAg KGxpbmUgMTM3MykKKiB3aWRnZXQtYnV0dG9uLWNsaWNrOiAgICAgICAgICAgICAgICAgICBVc2Vy IEludGVyZmFjZS4gICAgIChsaW5lICAyMTEpCiogd2lkZ2V0LWJ1dHRvbi1jbGljayA8MT46ICAg ICAgICAgICAgICAgU2V0dGluZyBVcCB0aGUgQnVmZmVyLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDM5OSkKKiB3aWRn ZXQtYnV0dG9uLWZhY2U6ICAgICAgICAgICAgICAgICAgICBVc2VyIEludGVyZmFjZS4gICAgIChs aW5lICAyNDkpCiogd2lkZ2V0LWJ1dHRvbi1wcmVmaXg6ICAgICAgICAgICAgICAgICAgQmFzaWMg VHlwZXMuICAgICAgICAobGluZSAgNDQ2KQoqIHdpZGdldC1idXR0b24tcHJlc3M6ICAgICAgICAg ICAgICAgICAgIFVzZXIgSW50ZXJmYWNlLiAgICAgKGxpbmUgIDIwNSkKKiB3aWRnZXQtYnV0dG9u LXByZXNzIDwxPjogICAgICAgICAgICAgICBTZXR0aW5nIFVwIHRoZSBCdWZmZXIuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgMzk5KQoqIHdpZGdldC1idXR0b24tc3VmZml4OiAgICAgICAgICAgICAgICAgIEJhc2ljIFR5 cGVzLiAgICAgICAgKGxpbmUgIDQ0OSkKKiB3aWRnZXQtY2hpbGRyZW4tdmFsaWRhdGU6ICAgICAg ICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA1NjcpCiogd2lkZ2V0LWNob29zZTog ICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0aWVzLiAgICAgICAgICAobGluZSAxNDA2KQoq IHdpZGdldC1jcmVhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgVXAgdGhlIEJ1 ZmZlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICAzNzQpCiogd2lkZ2V0LWRlZmF1bHQtZGVsZXRlOiAgICAgICAgICAg ICAgICAgRGVmaW5pbmcgTmV3IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxMjkyKQoqIHdpZGdldC1kZWZh dWx0LWZvcm1hdC1oYW5kbGVyOiAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgMTMyOSkKKiB3aWRnZXQtZGVsZXRlOiAgICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5n IFVwIHRoZSBCdWZmZXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgMzgxKQoqIHdpZGdldC1maWVsZC1mYWNlOiAgICAg ICAgICAgICAgICAgICAgIFVzZXIgSW50ZXJmYWNlLiAgICAgKGxpbmUgIDE5NCkKKiB3aWRnZXQt ZmllbGQta2V5bWFwOiAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5l ICA2OTEpCiogd2lkZ2V0LWZvcndhcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgVXNlciBJbnRl cmZhY2UuICAgICAobGluZSAgMjYzKQoqIHdpZGdldC1nZXQ6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFdpZGdldCBQcm9wZXJ0aWVzLiAgKGxpbmUgMTE2MikKKiB3aWRnZXQtZ2V0LXNpYmxp bmc6ICAgICAgICAgICAgICAgICAgICBVdGlsaXRpZXMuICAgICAgICAgIChsaW5lIDE0MDIpCiog d2lkZ2V0LWdsb2JhbC1tYXA6ICAgICAgICAgICAgICAgICAgICAgU2V0dGluZyBVcCB0aGUgQnVm ZmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDQwNCkKKiB3aWRnZXQtaW1hZ2UtZGlyZWN0b3J5OiAgICAgICAgICAg ICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA1OTUpCiogd2lkZ2V0LWltYWdlLWVuYWJs ZTogICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNjAwKQoqIHdp ZGdldC1pbnNlcnQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgVXAgdGhlIEJ1ZmZl ci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICAzOTMpCiogd2lkZ2V0LWtleW1hcDogICAgICAgICAgICAgICAgICAgICAg ICAgU2V0dGluZyBVcCB0aGUgQnVmZmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDM5OSkKKiB3aWRnZXQtbGluay1w cmVmaXg6ICAgICAgICAgICAgICAgICAgICBsaW5rLiAgICAgICAgICAgICAgIChsaW5lICA2MTYp Ciogd2lkZ2V0LWxpbmstc3VmZml4OiAgICAgICAgICAgICAgICAgICAgbGluay4gICAgICAgICAg ICAgICAobGluZSAgNjE5KQoqIHdpZGdldC1tZW1iZXI6ICAgICAgICAgICAgICAgICAgICAgICAg IFdpZGdldCBQcm9wZXJ0aWVzLiAgKGxpbmUgMTE2NykKKiB3aWRnZXQtbWlub3ItbW9kZTogICAg ICAgICAgICAgICAgICAgICBXaWRnZXQgTWlub3IgTW9kZS4gIChsaW5lIDEzODgpCiogd2lkZ2V0 LW1pbm9yLW1vZGUta2V5bWFwOiAgICAgICAgICAgICAgV2lkZ2V0IE1pbm9yIE1vZGUuICAobGlu ZSAxMzkyKQoqIHdpZGdldC1tb3VzZS1mYWNlOiAgICAgICAgICAgICAgICAgICAgIFVzZXIgSW50 ZXJmYWNlLiAgICAgKGxpbmUgIDI1MikKKiB3aWRnZXQtcGFyZW50LWFjdGlvbjogICAgICAgICAg ICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEzMzkpCiogd2lkZ2V0LXBy b21wdC12YWx1ZTogICAgICAgICAgICAgICAgICAgVXRpbGl0aWVzLiAgICAgICAgICAobGluZSAx Mzk4KQoqIHdpZGdldC1wdXNoLWJ1dHRvbi1wcmVmaXg6ICAgICAgICAgICAgIHB1c2gtYnV0dG9u LiAgICAgICAgKGxpbmUgIDY1NCkKKiB3aWRnZXQtcHVzaC1idXR0b24tc3VmZml4OiAgICAgICAg ICAgICBwdXNoLWJ1dHRvbi4gICAgICAgIChsaW5lICA2NTcpCiogd2lkZ2V0LXB1dDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IFByb3BlcnRpZXMuICAobGluZSAxMTU4KQoqIHdp ZGdldC1yYWRpby1hZGQtaXRlbTogICAgICAgICAgICAgICAgIHJhZGlvLWJ1dHRvbi1jaG9pY2Uu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgNzc4KQoqIHdpZGdldC1zZXR1cDogICAgICAgICAgICAgICAgICAgICAgICAg IFNldHRpbmcgVXAgdGhlIEJ1ZmZlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzODQpCiogd2lkZ2V0LXRleHQta2V5 bWFwOiAgICAgICAgICAgICAgICAgICAgdGV4dC4gICAgICAgICAgICAgICAobGluZSAgNzAxKQoq IHdpZGdldC10eXBlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBQcm9wZXJ0aWVz LiAgKGxpbmUgMTE3OCkKKiB3aWRnZXQtdHlwZXMtY29udmVydC13aWRnZXQ6ICAgICAgICAgICBE ZWZpbmluZyBOZXcgV2lkZ2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEyNTIpCiogd2lkZ2V0LXR5cGVzLWNvcHk6 ICAgICAgICAgICAgICAgICAgICAgRGVmaW5pbmcgTmV3IFdpZGdldHMuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxMjY2 KQoqIHdpZGdldC12YWx1ZTogICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBQcm9wZXJ0 aWVzLiAgKGxpbmUgMTEzOSkKKiB3aWRnZXQtdmFsdWUtY29udmVydC13aWRnZXQ6ICAgICAgICAg ICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEyNTUpCiogd2lkZ2V0LXZhbHVlLXNl dDogICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IFByb3BlcnRpZXMuICAobGluZSAxMTQzKQoq IHdpZGdldC12YWx1ZS12YWx1ZS1nZXQ6ICAgICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRn ZXRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgMTMyMCkKKiB3aWRnZXRzLCBiYXNpYyB0eXBlczogICAgICAgICAgICAg ICAgICBJbnRyb2R1Y3Rpb24uICAgICAgIChsaW5lICAgNjMpCiogd2lkZ2V0cywgcHJvZ3JhbW1p bmcgZXhhbXBsZTogICAgICAgICAgUHJvZ3JhbW1pbmcgRXhhbXBsZS4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyNzMp Cgo= --000000000000c5860b060371b5ce Content-Type: application/octet-stream; name="widget.txt.patch" Content-Disposition: attachment; filename="widget.txt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lll47idj0 LS0tIHdpZGdldC5vcmlnX3RleGkudHh0CTIwMjMtMDgtMjEgMTE6NDU6MTkuMTQxMDYwNjAwIC0w NTAwCisrKyB3aWRnZXQudGV4aS50eHQJMjAyMy0wOC0yMSAxMTo0Mzo0MC44NDc1NjEyMDAgLTA1 MDAKQEAgLTUsMzQgKzUsNDYgQEAKICAgMi4yIEJ1dHRvbnMKICAgMi4zIE5hdmlnYXRpb24KIDMg UHJvZ3JhbW1pbmcgRXhhbXBsZQotNCBTZXR0aW5nIFVwIHRoZSBCdWZmZXIKLTUgQmFzaWMgVHlw ZXMKLSAgNS4xIFRoZSDigJhsaW5r4oCZIFdpZGdldAotICA1LjIgVGhlIOKAmHVybC1saW5r4oCZ IFdpZGdldAotICA1LjMgVGhlIOKAmGluZm8tbGlua+KAmSBXaWRnZXQKLSAgNS40IFRoZSDigJhw dXNoLWJ1dHRvbuKAmSBXaWRnZXQKLSAgNS41IFRoZSDigJhlZGl0YWJsZS1maWVsZOKAmSBXaWRn ZXQKLSAgNS42IFRoZSDigJh0ZXh04oCZIFdpZGdldAotICA1LjcgVGhlIOKAmG1lbnUtY2hvaWNl 4oCZIFdpZGdldAotICA1LjggVGhlIOKAmHJhZGlvLWJ1dHRvbi1jaG9pY2XigJkgV2lkZ2V0Ci0g IDUuOSBUaGUg4oCYaXRlbeKAmSBXaWRnZXQKLSAgNS4xMCBUaGUg4oCYY2hvaWNlLWl0ZW3igJkg V2lkZ2V0Ci0gIDUuMTEgVGhlIOKAmHRvZ2dsZeKAmSBXaWRnZXQKLSAgNS4xMiBUaGUg4oCYY2hl Y2tib3jigJkgV2lkZ2V0Ci0gIDUuMTMgVGhlIOKAmGNoZWNrbGlzdOKAmSBXaWRnZXQKLSAgNS4x NCBUaGUg4oCYZWRpdGFibGUtbGlzdOKAmSBXaWRnZXQKLSAgNS4xNSBUaGUg4oCYZ3JvdXDigJkg V2lkZ2V0Ci02IFNleHAgVHlwZXMKLSAgNi4xIFRoZSBDb25zdGFudCBXaWRnZXRzCi0gIDYuMiBH ZW5lcmljIFNleHAgV2lkZ2V0Ci0gIDYuMyBBdG9taWMgU2V4cCBXaWRnZXRzCi0gIDYuNCBDb21w b3NpdGUgU2V4cCBXaWRnZXRzCi03IFByb3BlcnRpZXMKLTggRGVmaW5pbmcgTmV3IFdpZGdldHMK LTkgV2lkZ2V0IEJyb3dzZXIKLTEwIFdpZGdldCBNaW5vciBNb2RlCi0xMSBVdGlsaXRpZXMKLTEy IFdpc2hsaXN0Cis0IFdpZGdldHMgQmFzaWNzCis1IFNldHRpbmcgVXAgdGhlIEJ1ZmZlcgorNiBX b3JraW5nIHdpdGggV2lkZ2V0cworNyBXaWRnZXRzIGFuZCB0aGUgQnVmZmVyCis4IFdpZGdldCBH YWxsZXJ5CisgIDguMSBCYXNpYyBUeXBlcworICAgIDguMS4xIFRoZSDigJhpdGVt4oCZIFdpZGdl dAorICAgIDguMS4yIFRoZSDigJhsaW5r4oCZIFdpZGdldAorICAgIDguMS4zIFRoZSDigJh1cmwt bGlua+KAmSBXaWRnZXQKKyAgICA4LjEuNCBUaGUg4oCYaW5mby1saW5r4oCZIFdpZGdldAorICAg IDguMS41IFRoZSDigJhmdW5jdGlvbi1saW5r4oCZIFdpZGdldAorICAgIDguMS42IFRoZSDigJh2 YXJpYWJsZS1saW5r4oCZIFdpZGdldAorICAgIDguMS43IFRoZSDigJhmYWNlLWxpbmvigJkgV2lk Z2V0CisgICAgOC4xLjggVGhlIOKAmGZpbGUtbGlua+KAmSBXaWRnZXQKKyAgICA4LjEuOSBUaGUg 4oCYZW1hY3MtbGlicmFyeS1saW5r4oCZIFdpZGdldAorICAgIDguMS4xMCBUaGUg4oCYZW1hY3Mt Y29tbWVudGFyeS1saW5r4oCZIFdpZGdldAorICAgIDguMS4xMSBUaGUg4oCYcHVzaC1idXR0b27i gJkgV2lkZ2V0CisgICAgOC4xLjEyIFRoZSDigJhlZGl0YWJsZS1maWVsZOKAmSBXaWRnZXQKKyAg ICA4LjEuMTMgVGhlIOKAmHRleHTigJkgV2lkZ2V0CisgICAgOC4xLjE0IFRoZSDigJhtZW51LWNo b2ljZeKAmSBXaWRnZXQKKyAgICA4LjEuMTUgVGhlIOKAmHJhZGlvLWJ1dHRvbi1jaG9pY2XigJkg V2lkZ2V0CisgICAgOC4xLjE2IFRoZSDigJhjaG9pY2UtaXRlbeKAmSBXaWRnZXQKKyAgICA4LjEu MTcgVGhlIOKAmHRvZ2dsZeKAmSBXaWRnZXQKKyAgICA4LjEuMTggVGhlIOKAmHJhZGlvLWJ1dHRv bi10b2dnbGXigJkgV2lkZ2V0CisgICAgOC4xLjE5IFRoZSDigJhjaGVja2JveOKAmSBXaWRnZXQK KyAgICA4LjEuMjAgVGhlIOKAmGNoZWNrbGlzdOKAmSBXaWRnZXQKKyAgICA4LjEuMjEgVGhlIOKA mGVkaXRhYmxlLWxpc3TigJkgV2lkZ2V0CisgICAgOC4xLjIyIFRoZSDigJhncm91cOKAmSBXaWRn ZXQKKyAgICA4LjEuMjMgVGhlIOKAmGRvY3VtZW50YXRpb24tc3RyaW5n4oCZIFdpZGdldAorICA4 LjIgU2V4cCBUeXBlcworICAgIDguMi4xIFRoZSBDb25zdGFudCBXaWRnZXRzCisgICAgOC4yLjIg R2VuZXJpYyBTZXhwIFdpZGdldAorICAgIDguMi4zIEF0b21pYyBTZXhwIFdpZGdldHMKKyAgICA4 LjIuNCBDb21wb3NpdGUgU2V4cCBXaWRnZXRzCis5IERlZmluaW5nIE5ldyBXaWRnZXRzCisxMCBJ bnNwZWN0aW5nIFdpZGdldHMKKzExIFdpZGdldCBNaW5vciBNb2RlCisxMiBVdGlsaXRpZXMKKzEz IEN1c3RvbWl6YXRpb24KKzE0IFdpc2hsaXN0CiBBcHBlbmRpeCBBIEdOVSBGcmVlIERvY3VtZW50 YXRpb24gTGljZW5zZQogSW5kZXgKIFRoZSBFbWFjcyBXaWRnZXQgTGlicmFyeQpAQCAtNTcsNyAr NjksNyBAQAogTW9zdCBncmFwaGljYWwgdXNlciBpbnRlcmZhY2UgdG9vbGtpdHMgcHJvdmlkZSBh IG51bWJlciBvZiBzdGFuZGFyZCB1c2VyCiBpbnRlcmZhY2UgY29udHJvbHMgKHNvbWV0aW1lcyBr bm93biBhcyDigJx3aWRnZXRz4oCdIG9yIOKAnGdhZGdldHPigJ0pLiAgRW1hY3MKIGRvZXNu4oCZ dCByZWFsbHkgc3VwcG9ydCBhbnl0aGluZyBsaWtlIHRoaXMsIGV4Y2VwdCBmb3IgYW4gaW5jcmVk aWJseQotcG93ZXJmdWwgdGV4dCDigJx3aWRnZXQu4oCdIE9uIHRoZSBvdGhlciBoYW5kLCBFbWFj cyBkb2VzIHByb3ZpZGUgdGhlCitwb3dlcmZ1bCB0ZXh0IOKAnHdpZGdldOKAnS4gIE9uIHRoZSBv dGhlciBoYW5kLCBFbWFjcyBkb2VzIHByb3ZpZGUgdGhlCiBuZWNlc3NhcnkgcHJpbWl0aXZlcyB0 byBpbXBsZW1lbnQgbWFueSBvdGhlciB3aWRnZXRzIHdpdGhpbiBhIHRleHQKIGJ1ZmZlci4gIFRo ZSDigJh3aWRnZXTigJkgcGFja2FnZSBzaW1wbGlmaWVzIHRoaXMgdGFzay4KIApAQCAtNzEsMTMg KzgzLDE0IEBACiDigJhlZGl0YWJsZS1maWVsZOKAmQogICAgICBBbiBlZGl0YWJsZSB0ZXh0IGZp ZWxkLiAgSXQgY2FuIGJlIGVpdGhlciB2YXJpYWJsZSBvciBmaXhlZCBsZW5ndGguCiDigJhtZW51 LWNob2ljZeKAmQotICAgICBBbGxvd3MgdGhlIHVzZXIgdG8gY2hvb3NlIG9uZSBvZiBtdWx0aXBs ZSBvcHRpb25zIGZyb20gYSBtZW51LCBlYWNoCi0gICAgIG9wdGlvbiBpcyBpdHNlbGYgYSB3aWRn ZXQuICBPbmx5IHRoZSBzZWxlY3RlZCBvcHRpb24gd2lsbCBiZQorICAgICBBbGxvd3MgdGhlIHVz ZXIgdG8gY2hvb3NlIG9uZSBvZiBtdWx0aXBsZSBvcHRpb25zIGZyb20gYSBtZW51LAorICAgICB3 aGVyZSBlYWNoIG9wdGlvbiBpcyBpdHNlbGYgYSB3aWRnZXQuICBPbmx5IHRoZSBzZWxlY3RlZCBv cHRpb24gaXMKICAgICAgdmlzaWJsZSBpbiB0aGUgYnVmZmVyLgog4oCYcmFkaW8tYnV0dG9uLWNo b2ljZeKAmQogICAgICBBbGxvd3MgdGhlIHVzZXIgdG8gY2hvb3NlIG9uZSBvZiBtdWx0aXBsZSBv cHRpb25zIGJ5IGFjdGl2YXRpbmcKICAgICAgcmFkaW8gYnV0dG9ucy4gIFRoZSBvcHRpb25zIGFy ZSBpbXBsZW1lbnRlZCBhcyB3aWRnZXRzLiAgQWxsCi0gICAgIG9wdGlvbnMgd2lsbCBiZSB2aXNp YmxlIGluIHRoZSBidWZmZXIuCisgICAgIG9wdGlvbnMgYXJlIHZpc2libGUgaW4gdGhlIGJ1ZmZl ciwgd2l0aCB0aGUgc2VsZWN0ZWQgb25lIG1hcmtlZCBhcworICAgICBjaG9zZW4uCiDigJhpdGVt 4oCZCiAgICAgIEEgc2ltcGxlIGNvbnN0YW50IHdpZGdldCBpbnRlbmRlZCB0byBiZSB1c2VkIGlu IHRoZSDigJhtZW51LWNob2ljZeKAmQogICAgICBhbmQg4oCYcmFkaW8tYnV0dG9uLWNob2ljZeKA mSB3aWRnZXRzLgpAQCAtMTc0LDExICsxODcsNiBAQAogCiAgICBFZGl0YWJsZSB0ZXh0IGZpZWxk cyBhcmUgY3JlYXRlZCBieSB0aGUg4oCYZWRpdGFibGUtZmllbGTigJkgd2lkZ2V0LgogCi0gICAq V2FybmluZzoqIEluIGFuIOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdldCwgdGhlIGVkaXRhYmxl IGZpZWxkIG11c3Qgbm90Ci1iZSBhZGphY2VudCB0byBhbm90aGVyIHdpZGdldOKAlHRoYXQgd29u 4oCZdCB3b3JrLiAgWW91IG11c3QgcHV0IHNvbWUgdGV4dAotaW4gYmV0d2Vlbi4gIEVpdGhlciBt YWtlIHRoaXMgdGV4dCBwYXJ0IG9mIHRoZSDigJhlZGl0YWJsZS1maWVsZOKAmSB3aWRnZXQKLWl0 c2VsZiwgb3IgaW5zZXJ0IGl0IHdpdGgg4oCYd2lkZ2V0LWluc2VydOKAmS4KLQogICAgVGhlIOKA mDpmb3JtYXTigJkga2V5d29yZCBpcyB1c2VmdWwgZm9yIGdlbmVyYXRpbmcgdGhlIG5lY2Vzc2Fy eSB0ZXh0OwogZm9yIGluc3RhbmNlLCBpZiB5b3UgZ2l2ZSBpdCBhIHZhbHVlIG9mIOKAmCJOYW1l OiAldiAi4oCZLCB0aGUg4oCYTmFtZTog4oCZIHBhcnQKIHdpbGwgcHJvdmlkZSB0aGUgbmVjZXNz YXJ5IHNlcGFyYXRpbmcgdGV4dCBiZWZvcmUgdGhlIGZpZWxkIGFuZCB0aGUKQEAgLTE4NiwzNCAr MTk0LDE4IEBACiBkb27igJl0IGluY2x1ZGUgdGhlIOKAmDpzaXpl4oCZIGtleXdvcmQsIHRoZSBm aWVsZCB3aWxsIGV4dGVuZCB0byB0aGUgZW5kIG9mCiB0aGUgbGluZSwgYW5kIHRoZSB0ZXJtaW5h dGluZyBuZXdsaW5lIHdpbGwgcHJvdmlkZSBzZXBhcmF0aW9uIGFmdGVyLgogCi0gICAqV2Fybmlu ZzoqIEluIGFuIOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdldCwgdGhlIOKAmCV24oCZIGVzY2Fw ZSBtdXN0IGJlCi1wcmVjZWRlZCBieSBzb21lIG90aGVyIHRleHQgaW4gdGhlIOKAmDpmb3JtYXTi gJkgc3RyaW5nIChpZiBzcGVjaWZpZWQpLgotCiAgICBUaGUgZWRpdGluZyB0ZXh0IGZpZWxkcyBh cmUgaGlnaGxpZ2h0ZWQgd2l0aCB0aGUg4oCYd2lkZ2V0LWZpZWxkLWZhY2XigJkKIGZhY2UsIG1h a2luZyB0aGVtIGVhc3kgdG8gZmluZC4KIAotIC0tIEZhY2U6IHdpZGdldC1maWVsZC1mYWNlCi0g ICAgIEZhY2UgdXNlZCBmb3Igb3RoZXIgZWRpdGluZyBmaWVsZHMuCi0KIDIuMiBCdXR0b25zCiA9 PT09PT09PT09PQogCiBTb21lIHBvcnRpb25zIG9mIHRoZSBidWZmZXIgaGF2ZSBhbiBhc3NvY2lh dGVkIOKAnGFjdGlvbuKAnSwgd2hpY2ggY2FuIGJlCiDigJxpbnZva2Vk4oCdIGJ5IGEgc3RhbmRh cmQga2V5IG9yIG1vdXNlIGNvbW1hbmQuICBUaGVzZSBwb3J0aW9ucyBhcmUgY2FsbGVkCi3igJxi dXR0b25z4oCdLiAgVGhlIGRlZmF1bHQgY29tbWFuZHMgZm9yIGFjdGl2YXRpbmcgYSBidXR0b24g YXJlOgotCi3igJg8UkVUPuKAmQotICAgICAgLS0gQ29tbWFuZDogd2lkZ2V0LWJ1dHRvbi1wcmVz cyBQT1MgJm9wdGlvbmFsIEVWRU5UCi0gICAgICAgICAgSW52b2tlIHRoZSBidXR0b24gYXQgUE9T LCBkZWZhdWx0aW5nIHRvIHBvaW50LiAgSWYgcG9pbnQgaXMKLSAgICAgICAgICBub3QgbG9jYXRl ZCBvbiBhIGJ1dHRvbiwgaW52b2tlIHRoZSBiaW5kaW5nIGluCi0gICAgICAgICAg4oCYd2lkZ2V0 LWdsb2JhbC1tYXDigJkgKGJ5IGRlZmF1bHQgdGhlIGdsb2JhbCBtYXApLgotCi3igJhtb3VzZS0y 4oCZCi0gICAgICAtLSBDb21tYW5kOiB3aWRnZXQtYnV0dG9uLWNsaWNrIEVWRU5UCi0gICAgICAg ICAgSW52b2tlIHRoZSBidXR0b24gYXQgdGhlIGxvY2F0aW9uIG9mIHRoZSBtb3VzZSBwb2ludGVy LiAgSWYKLSAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBpcyBsb2NhdGVkIGluIGFuIGVkaXRh YmxlIHRleHQgZmllbGQsIGludm9rZQotICAgICAgICAgIHRoZSBiaW5kaW5nIGluIOKAmHdpZGdl dC1nbG9iYWwtbWFw4oCZIChieSBkZWZhdWx0IHRoZSBnbG9iYWwKLSAgICAgICAgICBtYXApLgor 4oCcYnV0dG9uc+KAnS4gIFRoZSBkZWZhdWx0IGNvbW1hbmRzIGZvciBhY3RpdmF0aW5nIGEgYnV0 dG9uIGFyZQor4oCYd2lkZ2V0LWJ1dHRvbi1wcmVzc+KAmSBhbmQg4oCYd2lkZ2V0LWJ1dHRvbi1j bGlja+KAmS4gIFRoZSB1c2VyIHR5cGljYWxseQoraW50ZXJhY3RzIHdpdGggdGhlIGJ1dHRvbnMg d2l0aCBhIGtleSwgbGlrZSA8UkVUPiwgb3Igd2l0aCB0aGUgbW91c2UKK2J1dHRvbnMuCiAKICAg IFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBraW5kIG9mIGJ1dHRvbnMsIGFsbCBvZiB3aGlj aCBhcmUgcHJlc2VudAogaW4gdGhlIGV4YW1wbGU6CkBAIC0yNDUsMjggKzIzNywxNiBAQAogICAg ICBtYWluIGRpZmZlcmVuY2UgZnJvbSB0aGUg4oCYbGlua+KAmSB3aWRnZXQgaXMgdGhhdCB0aGUg YnV0dG9ucyB3aWxsIGJlCiAgICAgIGRpc3BsYXllZCBhcyBHVUkgYnV0dG9ucyB3aGVuIHBvc3Np YmxlLgogCi0gICBUbyBtYWtlIHRoZW0gZWFzaWVyIHRvIGxvY2F0ZSwgYnV0dG9ucyBhcmUgZW1w aGFzaXplZCBpbiB0aGUgYnVmZmVyLgotCi0gLS0gRmFjZTogd2lkZ2V0LWJ1dHRvbi1mYWNlCi0g ICAgIEZhY2UgdXNlZCBmb3IgYnV0dG9ucy4KLQotIC0tIFVzZXIgT3B0aW9uOiB3aWRnZXQtbW91 c2UtZmFjZQotICAgICBGYWNlIHVzZWQgZm9yIGhpZ2hsaWdodGluZyBhIGJ1dHRvbiB3aGVuIHRo ZSBtb3VzZSBwb2ludGVyIG1vdmVzCi0gICAgIGFjcm9zcyBpdC4KKyAgIFRvIG1ha2UgdGhlbSBl YXNpZXIgdG8gbG9jYXRlLCBidXR0b25zIGFyZSBlbXBoYXNpemVkIGluIHRoZSBidWZmZXIKK3dp dGggYSBkaXN0aW5jdGl2ZSBmYWNlLCBsaWtlIOKAmHdpZGdldC1idXR0b24tZmFjZeKAmSBvcgor 4oCYd2lkZ2V0LW1vdXNlLWZhY2XigJkuCiAKIDIuMyBOYXZpZ2F0aW9uCiA9PT09PT09PT09PT09 PQogCiBZb3UgY2FuIHVzZSBhbGwgdGhlIG5vcm1hbCBFbWFjcyBjb21tYW5kcyB0byBtb3ZlIGFy b3VuZCBpbiBhIGZvcm0KLWJ1ZmZlciwgcGx1cyB5b3Ugd2lsbCBoYXZlIHRoZXNlIGFkZGl0aW9u YWwgY29tbWFuZHM6Ci0KLeKAmDxUQUI+4oCZCi0gICAgICAtLSBDb21tYW5kOiB3aWRnZXQtZm9y d2FyZCAmb3B0aW9uYWwgY291bnQKLSAgICAgICAgICBNb3ZlIHBvaW50IENPVU5UIGJ1dHRvbnMg b3IgZWRpdGluZyBmaWVsZHMgZm9yd2FyZC4KLeKAmE0tPFRBQj7igJkKLeKAmFMtPFRBQj7igJkK LSAgICAgIC0tIENvbW1hbmQ6IHdpZGdldC1iYWNrd2FyZCAmb3B0aW9uYWwgY291bnQKLSAgICAg ICAgICBNb3ZlIHBvaW50IENPVU5UIGJ1dHRvbnMgb3IgZWRpdGluZyBmaWVsZHMgYmFja3dhcmQu CitidWZmZXIsIHBsdXMgeW91IHdpbGwgaGF2ZSB0aGVzZSBhZGRpdGlvbmFsIGNvbW1hbmRzIHRv IG5hdmlnYXRlIGZyb20KK3dpZGdldCB0byB3aWRnZXQ6IOKAmHdpZGdldC1mb3J3YXJk4oCZIGFu ZCDigJh3aWRnZXQtYmFja3dhcmTigJkuCiAKIDMgUHJvZ3JhbW1pbmcgRXhhbXBsZQogKioqKioq KioqKioqKioqKioqKioqCkBAIC0zNjQsNjggKzM0NCw0NzQgQEAKICAgICAgICAodXNlLWxvY2Fs LW1hcCB3aWRnZXQta2V5bWFwKQogICAgICAgICh3aWRnZXQtc2V0dXApKQogCi00IFNldHRpbmcg VXAgdGhlIEJ1ZmZlcgotKioqKioqKioqKioqKioqKioqKioqKioKKzQgV2lkZ2V0cyBCYXNpY3MK KyoqKioqKioqKioqKioqKioKIAotV2lkZ2V0cyBhcmUgY3JlYXRlZCB3aXRoIOKAmHdpZGdldC1j cmVhdGXigJksIHdoaWNoIHJldHVybnMgYSDigJx3aWRnZXTigJ0KLW9iamVjdC4gIFRoaXMgb2Jq ZWN0IGNhbiBiZSBxdWVyaWVkIGFuZCBtYW5pcHVsYXRlZCBieSBvdGhlciB3aWRnZXQKLWZ1bmN0 aW9ucywgdW50aWwgaXQgaXMgZGVsZXRlZCB3aXRoIOKAmHdpZGdldC1kZWxldGXigJkuICBBZnRl ciB0aGUgd2lkZ2V0cwotaGF2ZSBiZWVuIGNyZWF0ZWQsIOKAmHdpZGdldC1zZXR1cOKAmSBtdXN0 IGJlIGNhbGxlZCB0byBlbmFibGUgdGhlbS4KLQotIC0tIEZ1bmN0aW9uOiB3aWRnZXQtY3JlYXRl IHR5cGUgWyBrZXl3b3JkIGFyZ3VtZW50IF0uLi4KLSAgICAgQ3JlYXRlIGFuZCByZXR1cm4gYSB3 aWRnZXQgb2YgdHlwZSBUWVBFLiAgVGhlIHN5bnRheCBmb3IgdGhlIFRZUEUKLSAgICAgYXJndW1l bnQgaXMgZGVzY3JpYmVkIGluICpub3RlIEJhc2ljIFR5cGVzOjouCitUaGUgV2lkZ2V0IExpYnJh cnkgZGVhbHMgd2l0aCB3aWRnZXRzIG9iamVjdHMuICBBIHdpZGdldCBvYmplY3QgaGFzCitwcm9w ZXJ0aWVzIHdob3NlIHZhbHVlIG1heSBiZSBhbnl0aGluZywgYmUgaXQgbnVtYmVycywgc3RyaW5n cywgc3ltYm9scywKK2Z1bmN0aW9ucywgZXRjLiAgVGhvc2UgcHJvcGVydGllcyBhcmUgcmVmZXJy ZWQgdG8gYXMga2V5d29yZHMgYW5kIGFyZQorcmVzcG9uc2libGUgZm9yIHRoZSB3YXkgYSB3aWRn ZXQgaXMgcmVwcmVzZW50ZWQgaW4gYSBidWZmZXIsIGFuZCBjb250cm9sCit0aGUgd2F5IGEgdXNl ciBvciBhIHByb2dyYW0gY2FuIGludGVyYWN0IHdpdGggaXQuCisKKyAgIFRoZSBsaWJyYXJ5IGRl ZmluZXMgc2V2ZXJhbCB3aWRnZXQgdHlwZXMsIGFuZCBnaXZlcyB5b3UgYSB3YXkgdG8KK2RlZmlu ZSBuZXcgdHlwZXMgYXMgd2VsbC4gIEluIGFkZGl0aW9uLCB3aWRnZXRzIGNhbiBkZXJpdmUgZnJv bSBvdGhlcgordHlwZXMsIGNyZWF0aW5nIGEgc29ydCBvZiB3aWRnZXQgaW5oZXJpdGFuY2UuICBJ biBmYWN0LCBhbGwgd2lkZ2V0cworZGVmaW5lZCBpbiB0aGUgV2lkZ2V0IExpYnJhcnkgc2hhcmUg YSBjb21tb24gcGFyZW50LCB0aGUg4oCcZGVmYXVsdOKAnQord2lkZ2V0LiAgSW4gdGhpcyBtYW51 YWwsIHdoZW4gd2UgdGFsayBhYm91dCBhIGRlZmF1bHQgYmVoYXZpb3IsIHdlCit1c3VhbGx5IG1l YW4gdGhlIGJlaGF2aW9yIGFzIGRlZmluZWQgYnkgdGhpcyDigJhkZWZhdWx04oCZIHdpZGdldC4g ICpOb3RlCitXaWRnZXQgR2FsbGVyeTo6LCBmb3IgYSBkZXNjcmlwdGlvbiBvZiBlYWNoIGRlZmlu ZWQgd2lkZ2V0LgorCisgICBEZWZpbmluZyBhIG5ldyB0eXBlIHRoYXQgZGVyaXZlcyBmcm9tIGEg cHJldmlvdXMgb25lIGlzIG5vdCBtYW5kYXRvcnkKK3RvIGNyZWF0ZSB3aWRnZXRzIHRoYXQgd29y ayB2ZXJ5IGRpZmZlcmVudCBmcm9tIGEgc3BlY2lmaWVkIHR5cGUuICBXaGVuCitjcmVhdGluZyBh IHdpZGdldCwgeW91IGNhbiBvdmVycmlkZSBhbnkgZGVmYXVsdCBwcm9wZXJ0eSwgaW5jbHVkaW5n CitmdW5jdGlvbnMsIHRoYXQgY29udHJvbCB0aGUgd2lkZ2V0LiAgVGhhdCBpcywgeW91IGNhbiBz cGVjaWFsaXplIGEKK3dpZGdldCBvbiBjcmVhdGlvbiwgd2l0aG91dCBoYXZpbmcgdG8gZGVmaW5l IGl0IGFzIGEgbmV3IHR5cGUgb2Ygd2lkZ2V0LgorCisgICBJbiBhZGRpdGlvbiB0byB0aGUgZnVu Y3Rpb24gZm9yIGRlZmluaW5nIGEgd2lkZ2V0LCB0aGlzIGxpYnJhcnkKK3Byb3ZpZGVzIGZ1bmN0 aW9ucyB0byBjcmVhdGUgd2lkZ2V0cywgcXVlcnkgYW5kIGNoYW5nZSBpdHMgcHJvcGVydGllcywK K3Jlc3BvbmQgdG8gdXNlciBldmVudHMgYW5kIGRlc3Ryb3kgdGhlbS4gIFRoZSBmb2xsb3dpbmcg c2VjdGlvbnMKK2Rlc2NyaWJlIHRoZW0uCisKKyAgIE9uZSBpbXBvcnRhbnQgcHJvcGVydHkgb2Yg YSB3aWRnZXQgaXMgaXRzIOKAnHZhbHVl4oCdLiAgQWxsIHdpZGdldHMgbWF5CitoYXZlIGEgdmFs dWUsIHdoaWNoIGlzIHN0b3JlZCBpbiBhIHNvLWNhbGxlZCDigJxpbnRlcm5hbCBmb3JtYXTigJ0u ICBGb3IgdGhlCityZXN0IG9mIEVtYWNzLCB0aGUgd2lkZ2V0IHByZXNlbnRzIGl0cyB2YWx1ZSBp biBhIHNvLWNhbGxlZCDigJxleHRlcm5hbAorZm9ybWF04oCdLiAgQm90aCBmb3JtYXRzIGNhbiBi ZSBlcXVhbCBvciBkaWZmZXJlbnQsIGFuZCBlYWNoIHdpZGdldCBpcworcmVzcG9uc2libGUgZm9y IGRlZmluaW5nIGhvdyB0aGUgY29udmVyc2lvbiBiZXR3ZWVuIGVhY2ggZm9ybWF0IHNob3VsZAor aGFwcGVuLgorCisgICBUaGUgdmFsdWUgcHJvcGVydHkgaXMgYW4gaW1wb3J0YW50IHByb3BlcnR5 IGZvciBhbG1vc3QgYWxsIHdpZGdldHMsCithbmQgcGVyaGFwcyBtb3JlIGltcG9ydGFudCBmb3Ig 4oCYZWRpdGFibGUtZmllbGTigJkgd2lkZ2V0cy4gIFRoaXMgdHlwZSBvZgord2lkZ2V0cyBhbGxv dyB0aGUgdXNlciB0byBlZGl0IHRoZW0gdmlhIHRoZSB1c3VhbCBlZGl0aW5nIGNvbW1hbmRzIGlu CitFbWFjcy4gIFRoZXkgY2FuIGFsc28gYmUgZWRpdGVkIHByb2dyYW1tYXRpY2FsbHkuICAqSW1w b3J0YW50OiogWW91CitfbXVzdF8gY2FsbCDigJh3aWRnZXQtc2V0dXDigJkgYWZ0ZXIgbW9kaWZ5 aW5nIHRoZSB2YWx1ZSBvZiBhIHdpZGdldCBiZWZvcmUKK3RoZSB1c2VyIGlzIGFsbG93ZWQgdG8g ZWRpdCB0aGUgd2lkZ2V0IGFnYWluLiAgSXQgaXMgZW5vdWdoIHRvIGNhbGwKK+KAmHdpZGdldC1z ZXR1cOKAmSBvbmNlIGlmIHlvdSBtb2RpZnkgbXVsdGlwbGUgd2lkZ2V0cy4gIFRoaXMgaXMgY3Vy cmVudGx5Citvbmx5IG5lY2Vzc2FyeSBpZiB0aGUgd2lkZ2V0IGNvbnRhaW5zIGFuIGVkaXRpbmcg ZmllbGQsIGJ1dCBtYXkgYmUKK25lY2Vzc2FyeSBmb3Igb3RoZXIgd2lkZ2V0cyBpbiB0aGUgZnV0 dXJlLgogCi0gICAgIFRoZSBrZXl3b3JkIGFyZ3VtZW50cyBjYW4gYmUgdXNlZCB0byBvdmVyd3Jp dGUgdGhlIGtleXdvcmQKLSAgICAgYXJndW1lbnRzIHRoYXQgYXJlIHBhcnQgb2YgVFlQRS4KKyAg IElmIHlvdXIgYXBwbGljYXRpb24gbmVlZHMgdG8gYXNzb2NpYXRlIHNvbWUgaW5mb3JtYXRpb24g d2l0aCB0aGUKK3dpZGdldCBvYmplY3RzLCBmb3IgZXhhbXBsZSBhIHJlZmVyZW5jZSB0byB0aGUg aXRlbSBiZWluZyBlZGl0ZWQsIGl0IGNhbgorYmUgZG9uZSB3aXRoIHRoZSDigJh3aWRnZXQtcHV0 4oCZIGFuZCDigJh3aWRnZXQtZ2V04oCZIGZ1bmN0aW9ucy4gIFRoZSBwcm9wZXJ0eQorbmFtZXMs IGFzIHNob3duLCBhcmUga2V5d29yZHMsIHNvIHRoZXkgbXVzdCBiZWdpbiB3aXRoIGEg4oCYOuKA mS4KIAotIC0tIEZ1bmN0aW9uOiB3aWRnZXQtZGVsZXRlIHdpZGdldAotICAgICBEZWxldGUgV0lE R0VUIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgYnVmZmVyLgorNSBTZXR0aW5nIFVwIHRoZSBCdWZm ZXIKKyoqKioqKioqKioqKioqKioqKioqKioqCisKK1RvIHNob3cgdGhlIHdpZGdldHMgaW4gYSBi dWZmZXIsIHlvdSBoYXZlIHRvIGNyZWF0ZSB0aGVtLiAgV2lkZ2V0CitjcmVhdGlvbiBpcyBhY3R1 YWxseSBhIHR3by1zdGVwIHByb2Nlc3M6IGNvbnZlcnNpb24gYW5kIGNyZWF0aW9uIHBlciBzZS4K K1dpdGggc2ltcGxlIHByb2plY3RzLCB1c3VhbGx5IHRoZSBjb252ZXJzaW9uIHN0ZXAgaXNu4oCZ dCByZWFsbHkKK2ltcG9ydGFudCwgYW5kIHlvdSBvbmx5IGNhcmUgYWJvdXQgd2lkZ2V0IGNyZWF0 aW9uLCBzbyBmZWVsIGZyZWUgdG8gc2tpcAordGhlIGNvbnZlcnNpb24gZGVzY3JpcHRpb24gdW50 aWwgeW91IHJlYWxseSBuZWVkIHRvIGtub3cgaXQuCisKKyAgIFdpZGdldCBjb252ZXJzaW9uIGlz IHRoZSBwcm9jZXNzIHRoYXQgaW52b2x2ZXMgdGFraW5nIGEgd2lkZ2V0CitzcGVjaWZpY2F0aW9u IGFuZCB0cmFuc2Zvcm1pbmcgaXQgaW50byBhIOKAnHdpZGdldOKAnSBvYmplY3QsIHN1aXRhYmxl IHRvIGJlCitjcmVhdGVkLCBxdWVyaWVkIGFuZCBtYW5pcHVsYXRlZCB3aXRoIG90aGVyIHdpZGdl dCBmdW5jdGlvbnMuICBXaWRnZXQKK2NyZWF0aW9uIGlzIHRoZSBwcm9jZXNzIHRoYXQgdGFrZXMg YSB3aWRnZXQgb2JqZWN0IGFuZCBhY3R1YWxseSBpbnNlcnRzCitpdCBpbiB0aGUgYnVmZmVyLgor CisgICBUaGUgc2ltcGxlc3QgZnVuY3Rpb24gdG8gY3JlYXRlIGEgd2lkZ2V0IGlzIOKAmHdpZGdl dC1jcmVhdGXigJksIHdoaWNoCitnZXRzIGEgd2lkZ2V0IHNwZWNpZmljYXRpb24gYW5kIHJldHVy bnMgYSB3aWRnZXQgb2JqZWN0LgorCisgLS0gRnVuY3Rpb246IHdpZGdldC1jcmVhdGUgdHlwZSBb IGtleXdvcmQgYXJndW1lbnQgXS4uLiBhcmdzCisgICAgIENyZWF0ZSBhbmQgcmV0dXJuIGEgd2lk Z2V0IG9mIHR5cGUgVFlQRSwgY29udmVydGluZyBpdC4KKworICAgICBUWVBFIGlzIGEgc3ltYm9s IHRoYXQgc3BlY2lmaWVzIGEgd2lkZ2V0IHR5cGUuICBLRVlXT1JEIG1heSBiZSBvbmUKKyAgICAg b2YgdGhlIHByb3BlcnRpZXMgc3VwcG9ydGVkIGJ5IHRoZSB3aWRnZXQgdHlwZSwgYW5kIEFSR1VN RU5UCisgICAgIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGF0IHByb3BlcnR5LiAgVGhlc2Uga2V5 d29yZCBhcmd1bWVudHMgY2FuCisgICAgIGJlIHVzZWQgdG8gb3ZlcndyaXRlIHRoZSBrZXl3b3Jk IGFyZ3VtZW50cyB0aGF0IGFyZSBwYXJ0IG9mIFRZUEUgYnkKKyAgICAgZGVmYXVsdCwgYXMgd2Vs bCBhcyB0byBwcm92aWRlIG90aGVyIHByb3BlcnRpZXMgbm90IHByZXNlbnQgaW4gVFlQRQorICAg ICBieSBkZWZhdWx0LiAgQVJHUyBob2xkcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciB0aGUg Y3JlYXRpb24gb2YKKyAgICAgVFlQRSBhbmQgZWFjaCB3aWRnZXQgdHlwZSBpcyByZXNwb25zaWJs ZSBmb3IgaGFuZGxpbmcgdGhhdAorICAgICBpbmZvcm1hdGlvbiBpbiBhIHNwZWNpZmljIHdheS4K KworICAgICBUaGUgc3ludGF4IGZvciB0aGUgVFlQRSBhcmd1bWVudCBpcyBkZXNjcmliZWQgaW4g Km5vdGUgV2lkZ2V0CisgICAgIEdhbGxlcnk6OiwgYW5kIGluIG1vcmUgZGV0YWlsIGluIGV2ZXJ5 IHdpZGdldCB3aGVyZSBpdOKAmXMgcmVsZXZhbnQuCisKKyAgIFRoZXJlIGFyZSBvdGhlciBmdW5j dGlvbnMgZm9yIGNyZWF0aW5nIHdpZGdldHMsIHVzZWZ1bCB3aGVuIHlvdSB3b3JrCit3aXRoIGNv bXBvc2l0ZSB3aWRnZXRzLiAgVGhhdCBpcywgd2lkZ2V0cyB0aGF0IGFyZSBwYXJ0IG9mIG90aGVy Cit3aWRnZXRzLgorCisgLS0gRnVuY3Rpb246IHdpZGdldC1jcmVhdGUtY2hpbGQtYW5kLWNvbnZl cnQgcGFyZW50IHR5cGUgJnJlc3QgYXJncworICAgICBDcmVhdGUgYSB3aWRnZXQgb2YgdHlwZSBU WVBFIGFzIGEgY2hpbGQgb2YgUEFSRU5ULgorCisgICAgIEJlZm9yZSBjcmVhdGluZyBpdCwgY29u dmVydHMgVFlQRSB1c2luZyB0aGUga2V5d29yZCBhcmd1bWVudHMKKyAgICAgcHJvdmlkZWQgaW4g QVJHUy4gIEFkZHMgdGhlIOKAmDppbmRlbnTigJkgcHJvcGVydHksIHVubGVzcyBpdCBpcworICAg ICBhbHJlYWR5IHByZXNlbnQsIGFuZCBzZXRzIGl0IHRvIHRoZSBzdW0gb2YgdGhlIHZhbHVlcyBv Zjog4oCYOmluZGVudOKAmQorICAgICBhbmQg4oCYOm9mZnNldOKAmSBmcm9tIFBBUkVOVCBhbmQg 4oCYOmV4dHJhLW9mZnNldOKAmSBmcm9tIFRZUEUuCisKKyAgICAgUmV0dXJucyBhIHdpZGdldCBv YmplY3QsIHdpdGggdGhlIHByb3BlcnR5IOKAmDpwYXJlbnTigJkgc2V0IHRvIFBBUkVOVC4KKwor IC0tIEZ1bmN0aW9uOiB3aWRnZXQtY3JlYXRlLWNoaWxkIHBhcmVudCB0eXBlCisgICAgIENyZWF0 ZSBhIHdpZGdldCBvZiB0eXBlIFRZUEUgYXMgYSBjaGlsZCBvZiBQQVJFTlQuCisKKyAgICAgVGhp cyBmdW5jdGlvbiBpcyBsaWtlIOKAmHdpZGdldC1jcmVhdGUtY2hpbGQtYW5kLWNvbnZlcnTigJkg YnV0IGl0CisgICAgIGRvZXNu4oCZdCBjb252ZXJ0IFRZUEUsIHNvIGl0IGV4cGVjdHMgYW4gYWxy ZWFkeSBjb252ZXJ0ZWQgd2lkZ2V0LgorCisgLS0gRnVuY3Rpb246IHdpZGdldC1jcmVhdGUtY2hp bGQtdmFsdWUgcGFyZW50IHR5cGUgdmFsdWUKKyAgICAgQ3JlYXRlIGEgd2lkZ2V0IG9mIHR5cGUg VFlQRSBhcyBhIGNoaWxkIG9mIFBBUkVOVCB3aXRoIHZhbHVlIFZBTFVFLgorCisgICAgIFRoaXMg ZnVuY3Rpb24gaXMgbGlrZSDigJh3aWRnZXQtY3JlYXRlLWNoaWxk4oCZLCBidXQgaXQgbGV0cyB5 b3UKKyAgICAgc3BlY2lmeSBhIHZhbHVlIGZvciB0aGUgd2lkZ2V0LgorCisgICAgIENvbnZlcnRz IFZBTFVFIHRvIHRoZSBpbnRlcm5hbCBmb3JtYXQsIGFzIHNwZWNpZmllZCBieSBUWVBFLCBhbmQK KyAgICAgc3RvcmVzIGl0IGludG8gdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eSBvZiBUWVBFLiAg VGhhdCBtZWFucywgVkFMVUUKKyAgICAgc2hvdWxkIGJlIGluIHRoZSBleHRlcm5hbCBmb3JtYXQs IGFzIHNwZWNpZmllZCBieSBUWVBFLgorCisgICBBbGwgdGhlc2UgY3JlYXRpbmcgZnVuY3Rpb25z IGRlc2NyaWJlZCBoZXJlIHVzZSB0aGUgZnVuY3Rpb24gc3RvcmVkCitpbiB0aGUg4oCYOmNyZWF0 ZeKAmSBwcm9wZXJ0eS4gIFNvLCB0byBtb2RpZnkgdGhlIGNyZWF0aW9uIGxvZ2ljIGZvciBhCit3 aWRnZXQsIHlvdSBjYW4gcHJvdmlkZSBhIGRpZmZlcmVudCDigJg6Y3JlYXRl4oCZIGZ1bmN0aW9u LgorCisgICBXaGVuIHlvdeKAmXJlIGRvbmUgY3JlYXRpbmcgd2lkZ2V0cyBhbmQgeW914oCZcmUg cmVhZHkgZm9yIHRoZSB1c2VyIHRvCitpbnRlcmFjdCB3aXRoIHRoZSBidWZmZXIsIHVzZSB0aGUg ZnVuY3Rpb24g4oCYd2lkZ2V0LXNldHVw4oCZLgogCiAgLS0gRnVuY3Rpb246IHdpZGdldC1zZXR1 cAotICAgICBTZXQgdXAgYSBidWZmZXIgdG8gc3VwcG9ydCB3aWRnZXRzLgorICAgICBTZXR1cCB0 aGUgY3VycmVudCBidWZmZXIsIHNvIHRoYXQgZWRpdGFibGUgd2lkZ2V0cyBjYW4gYmUgZWRpdGVk LgogCiAgICAgIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBhZnRlciBjcmVhdGluZyBhbGwgdGhlIHdp ZGdldHMgYW5kIGJlZm9yZQogICAgICBhbGxvd2luZyB0aGUgdXNlciB0byBlZGl0IHRoZW0uCiAK LSAgIElmIHlvdSB3YW50IHRvIGluc2VydCB0ZXh0IG91dHNpZGUgdGhlIHdpZGdldHMgaW4gdGhl IGZvcm0sIHRoZQotcmVjb21tZW5kZWQgd2F5IHRvIGRvIHRoYXQgaXMgd2l0aCDigJh3aWRnZXQt aW5zZXJ04oCZLgorICAgQXMgbWVudGlvbmVkLCBhbGwgdGhlc2UgZnVuY3Rpb25zIHJldHVybiBh IHdpZGdldCBvYmplY3QuICBUaGF0Cit3aWRnZXQgb2JqZWN0IGNhbiBiZSBxdWVyaWVkIGFuZCBt YW5pcHVsYXRlZCB3aXRoIHdpZGdldCBmdW5jdGlvbnMgdGhhdAordGFrZSB3aWRnZXRzIGFzIGFy Z3VtZW50cywgdW50aWwgZGVsZXRpbmcgaXQgd2l0aCB0aGUgd2lkZ2V0cyBmdW5jdGlvbnMKK2F2 YWlsYWJsZSB0byBkZWxldGUgd2lkZ2V0cy4gIEV2ZW4gaWYgeW91IGRvbuKAmXQgc2F2ZSB0aGUg cmV0dXJuZWQgd2lkZ2V0CitvYmplY3QsIHlvdSBzdGlsbCBjYW4gaW50ZXJhY3QgcHJvZ3JhbW1h dGljYWxseSB3aXRoIHRoZSB3aWRnZXQuICAqTm90ZQorV29ya2luZyB3aXRoIFdpZGdldHM6Oi4K KworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtZGVsZXRlIHdpZGdldAorICAgICBEZWxldGUgdGhlIHdp ZGdldCBXSURHRVQgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBidWZmZXIuCisKKyAtLSBGdW5jdGlv bjogd2lkZ2V0LWNoaWxkcmVuLXZhbHVlLWRlbGV0ZSB3aWRnZXQKKyAgICAgRGVsZXRlIGFsbCBj aGlsZHJlbiBhbmQgYnV0dG9ucyBpbiB3aWRnZXQgV0lER0VULgorCisgICAgIFRoaXMgZnVuY3Rp b24gZG9lcyBub3QgZGVsZXRlIFdJREdFVCBpdHNlbGYsIG9ubHkgdGhlIHdpZGdldHMKKyAgICAg c3RvcmVkIGluIHRoZSDigJg6Y2hpbGRyZW7igJkgYW5kIOKAmDpidXR0b25z4oCZIHByb3BlcnRp ZXMuICBJdCBhbHNvIHNldHMKKyAgICAgdGhvc2UgcHJvcGVydGllcyB0byDigJhuaWzigJkuCisK KyAgIEFzIHdpdGggdGhlIGNyZWF0aW9uIG1lY2hhbmlzbSwgdGhlIGZ1bmN0aW9uIHN0b3JlZCBp biDigJg6ZGVsZXRl4oCZCitjb250cm9scyB0aGUgZGVsZXRpb24gbWVjaGFuaXNtIGZvciBhIHdp ZGdldC4KKworICAgQWRkaXRpb25hbGx5LCB0aGUgbGlicmFyeSBwcm92aWRlcyBhIHdheSB0byBt YWtlIGEgY29weSBvZiBhIHdpZGdldC4KKworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtY29weSB3aWRn ZXQKKyAgICAgTWFrZXMgYSBjb3B5IG9mIHdpZGdldCBXSURHRVQgYW5kIHJldHVybnMgaXQuCisK KyAgICAgSXQgdXNlcyB0aGUgZnVuY3Rpb24gc3RvcmVkIGluIHRoZSDigJg6Y29weeKAmSBwcm9w ZXJ0eSBvZiBXSURHRVQgYW5kCisgICAgIHJldHVybnMgdGhlIHdpZGdldCB0aGF0IHRoYXQgZnVu Y3Rpb24gcmV0dXJucy4KKworICAgQXMgZGlzY3Vzc2VkLCB0aGVyZSBpcyBhIGNvbnZlcnNpb24g c3RlcCB3aGVuIGNyZWF0aW5nIGEgd2lkZ2V0LiAgVG8KK2RvIHRoZSBjb252ZXJzaW9uIHdpdGhv dXQgYWN0dWFsbHkgY3JlYXRpbmcgdGhlIHdpZGdldCwgeW91IGNhbiB1c2UgdGhlCivigJh3aWRn ZXQtY29udmVydOKAmSBmdW5jdGlvbi4KKworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtY29udmVydCB0 eXBlICZyZXN0IGFyZ3MKKyAgICAgQ29udmVydCBUWVBFIHRvIGEgd2lkZ2V0IG9iamVjdCwgdXNp bmcga2V5d29yZCBhcmd1bWVudHMgQVJHUy4KKworICAgICBSZXR1cm5zIGEgd2lkZ2V0IG9iamVj dCwgc3VpdGFibGUgZm9yIGNyZWF0aW9uLiAgSXQgY2FsbHMgdGhlCisgICAgIGZ1bmN0aW9uIHN0 b3JlZCBpbiB0aGUg4oCYOmNvbnZlcnQtd2lkZ2V04oCZIHByb3BlcnR5LCBhZnRlciBwdXR0aW5n CisgICAgIGludG8gdGhlIOKAmDphcmdz4oCZIHByb3BlcnR5IHRoZSBhcmd1bWVudHMgdGhhdCB0 aGUgd2lkZ2V0IGluIHF1ZXN0aW9uCisgICAgIG5lZWRzLiAgSWYgVFlQRSBoYXMgYSDigJg6dmFs dWXigJkgcHJvcGVydHksIGVpdGhlciBvcmlnaW5hbGx5IG9yIGFmdGVyCisgICAgIGRvaW5nIHRo ZSBjb252ZXJzaW9uLCB0aGlzIGZ1bmN0aW9uIGNvbnZlcnRzIHRoZSB2YWx1ZSBzdG9yZWQgaW4K KyAgICAg4oCYOnZhbHVl4oCZIHRvIHRoZSBpbnRlcm5hbCBmb3JtYXQsIGFuZCBzdG9yZXMgaXQg aW50byDigJg6dmFsdWXigJkuCisKKyAgIEFwYXJ0IGZyb20gb25seSBjcmVhdGluZyB3aWRnZXRz IGluIHRoZSBidWZmZXIsIEl04oCZcyB1c2VmdWwgdG8gaGF2ZQorcGxhaW4gdGV4dC4gIEZvciBp bnNlcnRpbmcgdGV4dCwgdGhlIHJlY29tbWVuZGVkIHdheSBpcyB3aXRoIHRoZQor4oCYd2lkZ2V0 LWluc2VydOKAmSBmdW5jdGlvbi4KKworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtaW5zZXJ0ICZyZXN0 IGFyZ3MKKyAgICAgSW5zZXJ0IEFSR1MsIGVpdGhlciBzdHJpbmdzIG9yIGNoYXJhY3RlcnMsIGF0 IHBvaW50LgorCisgICAgIFVzZXMg4oCYaW5zZXJ04oCZIHRvIHBlcmZvcm0gdGhlIGluc2VydGlv biwgcGFzc2luZyBBUkdTIGFzIGFyZ3VtZW50LgorICAgICAqTm90ZSAoZWxpc3ApSW5zZXJ0aW9u OjosIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEFSR1MuCisKKyAgICAgVGhlIHJlc3VsdGlu ZyB0ZXh0IHdpbGwgYmUgcmVhZC1vbmx5LgorCis2IFdvcmtpbmcgd2l0aCBXaWRnZXRzCisqKioq KioqKioqKioqKioqKioqKioqCisKK1RoaXMgc2VjdGlvbiBjb3ZlcnMgdGhlIG1vcmUgaW1wb3J0 YW50IGZ1bmN0aW9ucyBuZWVkZWQgdG8gcXVlcnkgYW5kCittYW5pcHVsYXRlIHdpZGdldHMgaW4g YSBnZW5lcmljIHdheS4gIFdpZGdldHMgbWF5IGhhdmUgYWRkaXRpb25hbAorZnVuY3Rpb25zIGZv ciBpbnRlcmFjdGluZyB3aXRoIHRoZW0sIHRob3NlIGFyZSBkZXNjcmliZWQgaW4gdGhlCitkZXNj cmlwdGlvbiBmb3IgZWFjaCB3aWRnZXQuICAqTm90ZSBXaWRnZXQgR2FsbGVyeTo6LgorCisgLS0g RnVuY3Rpb246IHdpZGdldHAgd2lkZ2V0CisgICAgIE5vbi3igJhuaWzigJkgaWYgV0lER0VUIGlz IGEgd2lkZ2V0LgorCisgLS0gRnVuY3Rpb246IHdpZGdldC10eXBlIHdpZGdldAorICAgICBSZXR1 cm4gdGhlIHR5cGUgb2Ygd2lkZ2V0IFdJREdFVCwgYSBzeW1ib2wuCisKKyAgICAgVGhpcyBmdW5j dGlvbiBpcyB1c2VmdWwgdG8gZmluZCBvdXQgd2hpY2gga2luZCBvZiB3aWRnZXQgV0lER0VUCisg ICAgIHJlcHJlc2VudHMsIGkuZS4sIHRoZSBuYW1lIG9mIHRoZSB3aWRnZXQgdHlwZSB3aGVuIHRo ZSB3aWRnZXQgd2FzCisgICAgIGNyZWF0ZWQuCisKKyAtLSBGdW5jdGlvbjogd2lkZ2V0LW1lbWJl ciB3aWRnZXQgcHJvcGVydHkKKyAgICAgTm9uLeKAmG5pbOKAmSBpZiB3aWRnZXQgV0lER0VUIGhh cyBhIHZhbHVlIChldmVuIOKAmG5pbOKAmSkgZm9yIHByb3BlcnR5CisgICAgIFBST1BFUlRZLgor CisgLS0gRnVuY3Rpb246IHdpZGdldC1nZXQgd2lkZ2V0IHByb3BlcnR5CisgICAgIEZvciB3aWRn ZXQgV0lER0VULCByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBQUk9QRVJUWS4KKwor ICAgICBQUk9QRVJUWSBzaG91bGQgYmUgYSBrZXl3b3JkLCBhbmQgdGhlIHZhbHVlIGlzIHdoYXQg d2FzIGxhc3Qgc2V0IGJ5CisgICAgIOKAmHdpZGdldC1wdXTigJkgZm9yIFBST1BFUlRZLgorCisg LS0gRnVuY3Rpb246IHdpZGdldC1wdXQgd2lkZ2V0IHByb3BlcnR5IHZhbHVlCisgICAgIEZvciB3 aWRnZXQgV0lER0VULCBzZXQgdGhlIHByb3BlcnR5IFBST1BFUlRZIHRvIFZBTFVFLiAgUFJPUEVS VFkKKyAgICAgc2hvdWxkIGJlIGEga2V5d29yZCwgd2hpbGUgVkFMVUUgY2FuIGJlIGFueXRoaW5n LgorCisgLS0gRnVuY3Rpb246IHdpZGdldC1hdCAmb3B0aW9uYWwgcG9zCisgICAgIFJldHVybiB0 aGUgd2lkZ2V0IGF0IHBvc2l0aW9uIFBPUywgb3IgYXQgcG9pbnQgaWYgUE9TIGlzIOKAmG5pbOKA mS4KKworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtZmllbGQtYXQgcG9zCisgICAgIFJldHVybiB0aGUg d2lkZ2V0IGZpZWxkIGF0IHBvc2l0aW9uIFBPUywgb3Ig4oCYbmls4oCZIGlmIHRoZXJlIGlzIG5v bmUuCisKKyAtLSBGdW5jdGlvbjogd2lkZ2V0LWFwcGx5IHdpZGdldCBwcm9wZXJ0eSAmcmVzdCBh cmdzCisgICAgIEFwcGx5IHRoZSBmdW5jdGlvbiBzdG9yZWQgaW4gUFJPUEVSVFkgdG8gV0lER0VU LCBwYXNzaW5nIEFSR1MgYXMKKyAgICAgYWRkaXRpb25hbCBhcmd1bWVudHMgdG8gdGhlIGZ1bmN0 aW9uLgorCisgICAgIFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGF0IGZ1bmN0aW9uIGNhbGwuCisK KyAtLSBGdW5jdGlvbjogd2lkZ2V0LXZhbHVlIHdpZGdldAorICAgICBSZXR1cm4gdGhlIGN1cnJl bnQgdmFsdWUgY29udGFpbmVkIGluIFdJREdFVC4KKworICAgICBOb3RlIHRoYXQgdGhlIHZhbHVl IHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gbWlnaHQgZGlmZmVyIGZyb20KKyAgICAgd2hhdOKA mXMgc3RvcmVkIGluIHRoZSDigJg6dmFsdWXigJkgcHJvcGVydHkgb2YgV0lER0VULiAgVGhpcyBp cyBiZWNhdXNlCisgICAgIHRoaXMgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIGN1cnJlbnQgdmFsdWUg b2YgV0lER0VUIGZyb20gdGhlIGJ1ZmZlciwKKyAgICAgdGFraW5nIGVkaXRpb25zIGludG8gYWNj b3VudC4KKworICAgICBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgaW4gdGhlIGV4dGVybmFsIGZvcm1h dCwgYWZ0ZXIgZ2V0dGluZyBpdCB3aXRoCisgICAgIHRoZSDigJg6dmFsdWUtZ2V04oCZIGZ1bmN0 aW9uLgorCisgICAgIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBvbiBhbiB1 bmluaXRpYWxpemVkIHdpZGdldC4KKworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtdmFsdWUtc2V0IHdp ZGdldCB2YWx1ZQorICAgICBTZXQgdGhlIHZhbHVlIGNvbnRhaW5lZCBpbiBXSURHRVQgdG8gVkFM VUUuCisKKyAgICAgQ29udmVydHMgVkFMVUUgdG8gdGhlIGludGVybmFsIGZvcm1hdCwgYW5kIHRo ZW4gc2V0cyBpdCBieSBhcHBseWluZworICAgICB0aGUg4oCYOnZhbHVlLXNldOKAmSBmdW5jdGlv bi4KKworICAgICBJdCBpcyBhbiBlcnJvciB0byBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCBhbiBp bnZhbGlkIFZBTFVFLCB0aGF0CisgICAgIGlzLCBhIHZhbHVlIHRoYXQgV0lER0VUIGNhbm5vdCBy ZXByZXNlbnQuCisKKyAtLSBGdW5jdGlvbjogd2lkZ2V0LWRlZmF1bHQtZ2V0IHdpZGdldAorICAg ICBSZXR1cm4gdGhlIGRlZmF1bHQgZXh0ZXJuYWwgdmFsdWUgb2Ygd2lkZ2V0IFdJREdFVC4KKwor ICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0aGUgb25lIHN0b3JlZCBpbiDigJg6dmFsdWXigJkg b3IgdGhlIHJlc3VsdCBvZgorICAgICBhcHBseWluZyB0aGUg4oCYOmRlZmF1bHQtZ2V04oCZIGZ1 bmN0aW9uIHRvIHRoZSBhcmd1bWVudHMgb2YgV0lER0VULCBhcworICAgICBzdG9yZWQgaW4g4oCY OmFyZ3PigJkuICBBIHZhbHVlIG9mIOKAmG5pbOKAmSBpcyBpZ25vcmVkIGJ5IGRlZmF1bHQsIHNv IGluCisgICAgIG9yZGVyIGZvciBhIHdpZGdldCB0byByZXNwZWN0IOKAmG5pbOKAmSBhcyBhIHZh bHVlLCBpdCBoYXMgdG8gb3ZlcnJpZGUKKyAgICAgdGhlIOKAmDpkZWZhdWx0LWdldOKAmSBmdW5j dGlvbi4KKworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtdHlwZS1kZWZhdWx0LWdldCB3aWRnZXQKKyAg ICAgQ29udmVydCB0aGUg4oCYOnR5cGXigJkgYXR0cmlidXRlIGluIFdJREdFVCBhbmQgcmV0dXJu IGl0cyBkZWZhdWx0CisgICAgIHZhbHVlLgorCisgLS0gRnVuY3Rpb246IHdpZGdldC1jaGlsZC12 YWx1ZS1nZXQgd2lkZ2V0CisgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IG1lbWJl ciBvZiDigJg6Y2hpbGRyZW7igJkgaW4gV0lER0VULgorCisgLS0gRnVuY3Rpb246IHdpZGdldC1j aGlsZC12YWx1ZS1pbmxpbmUgd2lkZ2V0CisgICAgIFJldHVybiB0aGUgaW5saW5lIHZhbHVlIG9m IHRoZSBmaXJzdCBtZW1iZXIgb2Yg4oCYOmNoaWxkcmVu4oCZIGluCisgICAgIFdJREdFVC4KKwor ICAgICBUaGUgaW5saW5lIHZhbHVlIGlzIHdoYXRldmVyIHRoZSBmdW5jdGlvbiBzdG9yZWQgaW4g 4oCYOnZhbHVlLWlubGluZeKAmQorICAgICByZXR1cm5zLgorCisgLS0gRnVuY3Rpb246IHdpZGdl dC10eXBlLXZhbHVlLWNyZWF0ZSB3aWRnZXQKKyAgICAgQ3JlYXRlIGEgY2hpbGQgd2lkZ2V0IGZv ciBXSURHRVQsIG9mIHR5cGUgc3RvcmVkIGluIOKAmDp0eXBl4oCZLgorCisgICAgIENyZWF0ZXMg dGhlIGNoaWxkIHdpZGdldCB0YWtpbmcgdGhlIHZhbHVlIGZyb20gdGhlIOKAmDp2YWx1ZeKAmQor ICAgICBwcm9wZXJ0eSBhbmQgc3RvcmVzIHRoZSBuZXdseSBjcmVhdGVkIHdpZGdldCBpbiB0aGUg 4oCYOmNoaWxkcmVu4oCZCisgICAgIHByb3BlcnR5IG9mIFdJREdFVC4KKworICAgICBUaGUgdmFs dWUgc3RvcmVkIGluIOKAmDp0eXBl4oCZIHNob3VsZCBiZSBhbiB1bmNvbnZlcnRlZCB3aWRnZXQg dHlwZS4KIAotIC0tIEZ1bmN0aW9uOiB3aWRnZXQtaW5zZXJ0Ci0gICAgIEluc2VydCB0aGUgYXJn dW1lbnRzLCBlaXRoZXIgc3RyaW5ncyBvciBjaGFyYWN0ZXJzLCBhdCBwb2ludC4gIFRoZQotICAg ICBpbnNlcnRlZCB0ZXh0IHdpbGwgYmUgcmVhZC1vbmx5LgorIC0tIEZ1bmN0aW9uOiB3aWRnZXQt dmFsdWUtY29udmVydC13aWRnZXQgd2lkZ2V0CisgICAgIEluaXRpYWxpemVzIHRoZSDigJg6dmFs dWXigJkgcHJvcGVydHkgb2YgV0lER0VUIGZyb20g4oCYOmFyZ3PigJkuCiAKLSAgIFRoZXJlIGlz IGEgc3RhbmRhcmQgd2lkZ2V0IGtleW1hcCB3aGljaCB5b3UgbWlnaHQgZmluZCB1c2VmdWwuCisg ICAgIFNldHMg4oCYOmFyZ3PigJkgdG8g4oCYbmls4oCZIGFuZCByZXR1cm5zIHRoZSBtb2RpZmll ZCB3aWRnZXQgV0lER0VULgorCisgLS0gRnVuY3Rpb246IHdpZGdldC12YWx1ZS12YWx1ZS1nZXQg d2lkZ2V0CisgICAgIFJldHVybiB0aGUgdmFsdWUgc3RvcmVkIGluIOKAmDp2YWx1ZeKAmSBmb3Ig d2lkZ2V0IFdJREdFVC4KKworICAgICBUaGlzIGlzIGRpZmZlcmVudCB0byBnZXR0aW5nIHRoZSBj dXJyZW50IHZhbHVlIGZvciBXSURHRVQgd2l0aAorICAgICDigJh3aWRnZXQtdmFsdWXigJksIHNp bmNlIHRoYXQgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIHZhbHVlIGZyb20gdGhlCisgICAgIGJ1ZmZl ci4KKworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtYXBwbHktYWN0aW9uIHdpZGdldCAmb3B0aW9uYWwg ZXZlbnQKKyAgICAgQXBwbHkgdGhlIGZ1bmN0aW9uIHN0b3JlZCBpbiDigJg6YWN0aW9u4oCZIHRv IFdJREdFVCwgaW4gcmVzcG9uc2UgdG8KKyAgICAgRVZFTlQuCisKKyAgICAgSXQgaXMgYW4gZXJy b3IgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGggYW4gaW5hY3RpdmUgd2lkZ2V0LgorCisgLS0g RnVuY3Rpb246IHdpZGdldC1wYXJlbnQtYWN0aW9uIHdpZGdldCAmb3B0aW9uYWwgZXZlbnQKKyAg ICAgVGVsbCDigJg6cGFyZW504oCZIG9mIFdJREdFVCB0byBoYW5kbGUgRVZFTlQuCisKKyAgICAg T3B0aW9uYWwgRVZFTlQgaXMgdGhlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBhY3Rpb24uCisK KyAtLSBGdW5jdGlvbjogd2lkZ2V0LWNoaWxkLXZhbGlkYXRlIHdpZGdldAorICAgICBDaGVjayB0 aGF0IHRoZSBmaXJzdCBtZW1iZXIgb2Yg4oCYOmNoaWxkcmVu4oCZIGluIFdJREdFVCBpcyB2YWxp ZC4KKworICAgICBUbyBiZSB2YWxpZCBtZWFucyB0aGF0IHRoZSB3aWRnZXQgdmFsdWUgcGFzc2Vz IHRoZSBjaGVja3MgdGhhdCB0aGUKKyAgICAgZnVuY3Rpb24gc3RvcmVkIGluIOKAmDp2YWxpZGF0 ZeKAmSBtYWtlcy4KKworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtY2hpbGRyZW4tdmFsaWRhdGUgd2lk Z2V0CisgICAgIENoZWNrIHRoYXQgYWxsIOKAmDpjaGlsZHJlbuKAmSBpbiBXSURHRVQgYXJlIHZh bGlkLgorCisgICAgIFJldHVybnMg4oCYbmls4oCZIG9uIHN1Y2Nlc3MsIG9yIHRoZSBmaXJzdCBj aGlsZCB0aGF0IGlzbuKAmXQgdmFsaWQuCisKKyAtLSBGdW5jdGlvbjogd2lkZ2V0LXR5cGUtbWF0 Y2ggd2lkZ2V0IHZhbHVlCisgICAgIFJldHVybiBub24t4oCYbmls4oCZIGlmIFZBTFVFIG1hdGNo ZXMgdGhlIHZhbHVlIGZvciB0aGUg4oCYOnR5cGXigJkgd2lkZ2V0LgorCisgICAgIEFzIHdpdGgg dGhlIG90aGVyIHR5cGUgZnVuY3Rpb25zLCB0aGUgd2lkZ2V0IHN0b3JlZCBpbiDigJg6dHlwZeKA mQorICAgICBzaG91bGQgYmUgYW4gdW5jb252ZXJ0ZWQgd2lkZ2V0LgorCisgLS0gRnVuY3Rpb246 IHdpZGdldC10eXBlcy1jb3B5IHdpZGdldAorICAgICBDb3B5IHRoZSDigJg6YXJnc+KAmSB2YWx1 ZSBpbiBXSURHRVQgYW5kIHN0b3JlIHRoZW0gaW4g4oCYOmFyZ3PigJkuCisKKyAgICAgTWFrZXMg dGhlIGNvcGllcyBieSBjYWxsaW5nIOKAmHdpZGdldC1jb3B54oCZIG9uIGVhY2ggZWxlbWVudCBw cmVzZW50CisgICAgIGluIOKAmDphcmdz4oCZLiAgUmV0dXJucyB0aGUgbW9kaWZpZWQgd2lkZ2V0 IFdJREdFVC4KKworIC0tIEZ1bmN0aW9uOiB3aWRnZXQtdHlwZXMtY29udmVydC13aWRnZXQgd2lk Z2V0CisgICAgIENvbnZlcnQgdGhlIOKAmDphcmdz4oCZIHZhbHVlIGluIFdJREdFVCBhbmQgc3Rv cmUgdGhlbSBpbiDigJhhcmdz4oCZLgorCisgICAgIFJldHVybnMgdGhlIG1vZGlmaWVkIHdpZGdl dCBXSURHRVQuCisKKzcgV2lkZ2V0cyBhbmQgdGhlIEJ1ZmZlcgorKioqKioqKioqKioqKioqKioq KioqKioqCisKK1RoaXMgY2hhcHRlciBkZXNjcmliZXMgY29tbWFuZHMgdGhhdCBhcmUgc3BlY2lm aWMgdG8gYnVmZmVycyB0aGF0Citjb250YWluIHdpZGdldHMuCiAKICAtLSBDb25zdDogd2lkZ2V0 LWtleW1hcAotICAgICA8VEFCPiBhbmQg4oCYQy08VEFCPuKAmSBhcmUgYm91bmQgdG8g4oCYd2lk Z2V0LWZvcndhcmTigJkgYW5kCi0gICAgIOKAmHdpZGdldC1iYWNrd2FyZOKAmSwgcmVzcGVjdGl2 ZWx5LiAgPFJFVD4gYW5kIOKAmG1vdXNlLTLigJkgYXJlIGJvdW5kIHRvCi0gICAgIOKAmHdpZGdl dC1idXR0b24tcHJlc3PigJkgYW5kIOKAmHdpZGdldC1idXR0b24tY2xpY2vigJkuCisgICAgIEtl eW1hcCBjb250YWluaW5nIHVzZWZ1bCBiaW5kaW5ncyBmb3IgYnVmZmVycyBjb250YWluaW5nIHdp ZGdldHMuCisKKyAgICAgQmluZHMgPFRBQj4gYW5kIOKAmEMtPFRBQj7igJkgdG8g4oCYd2lkZ2V0 LWZvcndhcmTigJkgYW5kCisgICAgIOKAmHdpZGdldC1iYWNrd2FyZOKAmSwgcmVzcGVjdGl2ZWx5 LiAgSXQgYWxzbyBiaW5kcyA8UkVUPiB0bworICAgICDigJh3aWRnZXQtYnV0dG9uLXByZXNz4oCZ IGFuZCDigJhkb3duLW1vdXNlLTHigJkgYW5kIOKAmGRvd24tbW91c2UtMuKAmSB0bworICAgICDi gJh3aWRnZXQtYnV0dG9uLWNsaWNr4oCZLgorCisgICBUaGVyZeKAmXMgYWxzbyBhIGtleW1hcCBm b3IgZXZlbnRzIHRoYXQgdGhlIHdpZGdldCBsaWJyYXJ5IGRvZXNu4oCZdCBuZWVkCit0byBoYW5k bGUuCiAKICAtLSBWYXJpYWJsZTogd2lkZ2V0LWdsb2JhbC1tYXAKICAgICAgS2V5bWFwIHVzZWQg Ynkg4oCYd2lkZ2V0LWJ1dHRvbi1wcmVzc+KAmSBhbmQg4oCYd2lkZ2V0LWJ1dHRvbi1jbGlja+KA mSB3aGVuCiAgICAgIG5vdCBvbiBhIGJ1dHRvbi4gIEJ5IGRlZmF1bHQgdGhpcyBpcyDigJhnbG9i YWwtbWFw4oCZLgogCi01IEJhc2ljIFR5cGVzCi0qKioqKioqKioqKioqCisgICBJbiBhZGRpdGlv biB0byB0aGVzZSB0d28ga2V5bWFwcywgZWFjaCB3aWRnZXQgbWlnaHQgZGVmaW5lIGEga2V5bWFw CitvZiBpdHMgb3duLCBhY3RpdmUgd2hlbiBldmVudHMgaGFwcGVuIGF0IHRoYXQgd2lkZ2V0Lgor CisgICBUaGUgZm9sbG93aW5nIG5hdmlnYXRpb24gY29tbWFuZHMgYXJlIGF2YWlsYWJsZToKKwor 4oCYPFRBQj7igJkKKyAgICAgIC0tIENvbW1hbmQ6IHdpZGdldC1mb3J3YXJkICZvcHRpb25hbCBj b3VudAorICAgICAgICAgIE1vdmUgcG9pbnQgQ09VTlQgYnV0dG9ucyBvciBlZGl0aW5nIGZpZWxk cyBmb3J3YXJkLgor4oCYTS08VEFCPuKAmQor4oCYUy08VEFCPuKAmQorICAgICAgLS0gQ29tbWFu ZDogd2lkZ2V0LWJhY2t3YXJkICZvcHRpb25hbCBjb3VudAorICAgICAgICAgIE1vdmUgcG9pbnQg Q09VTlQgYnV0dG9ucyBvciBlZGl0aW5nIGZpZWxkcyBiYWNrd2FyZC4KKworICAgV2hlbiBlZGl0 aW5nIGFuIOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdldCwgdGhlIGZvbGxvd2luZyBjb21tYW5k cyBhcmUKK2F2YWlsYWJsZToKKwor4oCYPEMtZT7igJkKKyAgICAgIC0tIENvbW1hbmQ6IHdpZGdl dC1lbmQtb2YtbGluZQorICAgICAgICAgIE1vdmUgcG9pbnQgdG8gdGhlIGVuZCBvZiBmaWVsZCBv ciBlbmQgb2YgbGluZSwgd2hpY2hldmVyIGlzCisgICAgICAgICAgZmlyc3QuCisKK+KAmEMta+KA mQorICAgICAgLS0gQ29tbWFuZDogd2lkZ2V0LWtpbGwtbGluZQorICAgICAgICAgIEtpbGwgdG8g ZW5kIG9mIGZpZWxkIG9yIGVuZCBvZiBsaW5lLCB3aGljaGV2ZXIgaXMgZmlyc3QuCisKK+KAmE0t VEFC4oCZCisgICAgICAtLSBDb21tYW5kOiB3aWRnZXQtY29tcGxldGUKKyAgICAgICAgICBDb21w bGV0ZSB0aGUgY29udGVudCBvZiB0aGUgZWRpdGFibGUgZmllbGQgYXQgcG9pbnQuCisKK+KAmEMt beKAmQorICAgICAgLS0gQ29tbWFuZDogd2lkZ2V0LWZpZWxkLWFjdGl2YXRlCisgICAgICAgICAg SW52b2tlIHRoZSBlZGl0YWJsZSBmaWVsZCBhdCBwb2ludC4KKworICAgVGhlIGZvbGxvd2luZyB0 d28gYXJlIGNvbW1hbmRzIHRoYXQgY2FuIGV4ZWN1dGUgd2lkZ2V0IGFjdGlvbnMuCivigJg8UkVU PuKAmQorICAgICAgLS0gQ29tbWFuZDogd2lkZ2V0LWJ1dHRvbi1wcmVzcyBQT1MgJm9wdGlvbmFs IEVWRU5UCisgICAgICAgICAgSW52b2tlIHRoZSBidXR0b24gYXQgUE9TLCBkZWZhdWx0aW5nIHRv IHBvaW50LgogCi1UaGlzIGlzIHRoZSBnZW5lcmFsIHN5bnRheCBvZiBhIHR5cGUgc3BlY2lmaWNh dGlvbjoKKyAgICAgICAgICBJbnZvY2F0aW9uIG1lYW5zIHRvIHJ1biB0aGUgZnVuY3Rpb24gc3Rv cmVkIGluIHRoZSDigJg6YWN0aW9u4oCZCisgICAgICAgICAgcHJvcGVydHkuCisKKyAgICAgICAg ICBJZiBwb2ludCBpcyBub3QgbG9jYXRlZCBvbiBhIGJ1dHRvbiwgaW52b2tlIHRoZSBiaW5kaW5n IGluCisgICAgICAgICAg4oCYd2lkZ2V0LWdsb2JhbC1tYXDigJkgKGJ5IGRlZmF1bHQgdGhlIGds b2JhbCBtYXApLgorCivigJhtb3VzZS0y4oCZCisgICAgICAtLSBDb21tYW5kOiB3aWRnZXQtYnV0 dG9uLWNsaWNrIEVWRU5UCisgICAgICAgICAgSW52b2tlIHRoZSBidXR0b24gYXQgdGhlIGxvY2F0 aW9uIG9mIHRoZSBtb3VzZSBwb2ludGVyLgorCisgICAgICAgICAgSWYgdGhlIG1vdXNlIHBvaW50 ZXIgaXMgbG9jYXRlZCBpbiBhbiBlZGl0YWJsZSB0ZXh0IGZpZWxkLAorICAgICAgICAgIGludm9r ZSB0aGUgYmluZGluZyBpbiDigJh3aWRnZXQtZ2xvYmFsLW1hcOKAmSAoYnkgZGVmYXVsdCB0aGUK KyAgICAgICAgICBnbG9iYWwgbWFwKS4KKworICAgICAgICAgIEluIGNhc2UgdGhlIG1vdXNlLWNs aWNrIGlzIG9uIGEgd2lkZ2V0LCBjYWxscyB0aGUgZnVuY3Rpb24KKyAgICAgICAgICBzdG9yZWQg aW4gdGhlIOKAmDptb3VzZS1kb3duLWFjdGlvbuKAmSBwcm9wZXJ0eS4KKworOCBXaWRnZXQgR2Fs bGVyeQorKioqKioqKioqKioqKioqKgorCitBbGwgd2lkZ2V0cyBjYW4gYmUgY3JlYXRlZCBmcm9t IGEgdHlwZSBzcGVjaWZpY2F0aW9uLiAgVGhlIGdlbmVyYWwKK3N5bnRheCBvZiBhIHR5cGUgc3Bl Y2lmaWNhdGlvbiBpczoKIAogICAgICBOQU1FIDo6PSAoTkFNRSBbS0VZV09SRCBBUkdVTUVOVF0u Li4gQVJHUykKICAgICAgICAgICB8ICAgTkFNRQogCi0gICBXaGVyZSwgTkFNRSBpcyBhIHdpZGdl dCBuYW1lLCBLRVlXT1JEIGlzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHksCi1BUkdVTUVOVCBpcyB0 aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5LCBhbmQgQVJHUyBhcmUgaW50ZXJwcmV0ZWQgaW4gYQot d2lkZ2V0IHNwZWNpZmljIHdheS4KKyAgIFdoZXJlIE5BTUUgaXMgYSB3aWRnZXQgbmFtZSwgYXMg ZGVmaW5lZCB3aXRoIOKAmGRlZmluZS13aWRnZXTigJksIEtFWVdPUkQKK2lzIHRoZSBuYW1lIG9m IGEgcHJvcGVydHkgYW5kIEFSR1VNRU5UIGlzIHRoZSB2YWx1ZSBmb3IgdGhhdCBwcm9wZXJ0eSwK K2FuZCBBUkdTIGFyZSBpbnRlcnByZXRlZCBpbiBhIHdpZGdldCBzcGVjaWZpYyB3YXkuICAqTm90 ZSBEZWZpbmluZyBOZXcKK1dpZGdldHM6Oi4KKworICAgVGhlIG1vc3QgYmFzaWMgd2lkZ2V0IGlu IHRoZSBXaWRnZXQgTGlicmFyeSBpcyB0aGUg4oCcZGVmYXVsdOKAnSB3aWRnZXQuCitJdCBwcm92 aWRlcyB0aGUgYmFzaWMgYmVoYXZpb3IgZm9yIGFsbCBvdGhlciB3aWRnZXRzLCBhbmQgYWxsIGl0 cworcHJvcGVydGllcyBhcmUgcHJlc2VudCBieSBkZWZhdWx0IGluIGRlcml2ZWQgd2lkZ2V0cy4g IFlvdeKAmXJlIHNlbGRvbSAoaWYKK2V2ZXIpIGdvaW5nIHRvIGVmZmVjdGl2ZWx5IGNyZWF0ZSBh IGRlZmF1bHQgd2lkZ2V0LCBidXQgaGVyZSB3ZSBkZXNjcmliZQoraXRzIHByb3BlcnRpZXMgYW5k IGJlaGF2aW9yLCBzbyB0aGF0IHdlIGNhbiBkZXNjcmliZSBvdGhlciB3aWRnZXRzIG9ubHkKK2J5 IG1lbnRpb25pbmcgdGhlIHByb3BlcnRpZXMgYW5kIGJlaGF2aW9yIHRob3NlIG90aGVyIHdpZGdl dHMKK3NwZWNpYWxpemUuCisKKyAtLSBXaWRnZXQ6IGRlZmF1bHQKKyAgICAgV2lkZ2V0IHVzZWQg YXMgYSBiYXNlIGZvciBvdGhlciB3aWRnZXRzLgorCisgICAgIEl0IHByb3ZpZGVzIG1vc3Qgb2Yg dGhlIGZ1bmN0aW9uYWxpdHkgdGhhdCBpcyByZWZlcnJlZCB0byBhcyDigJxieQorICAgICBkZWZh dWx04oCdIGluIHRoaXMgdGV4dC4gIElmIHlvdSB3YW50IHRvIGRlZmluZSBhIG5ldyB3aWRnZXQg ZnJvbQorICAgICBzY3JhdGNoLCB1c2UgdGhlIOKAmGRlZmF1bHTigJkgd2lkZ2V0IGFzIGl0cyBi YXNlLgogCiAgICBUaGUgZm9sbG93aW5nIGtleXdvcmQgYXJndW1lbnRzIGFwcGx5IHRvIGFsbCB3 aWRnZXRzOgogCivigJg6Y3JlYXRl4oCZCisgICAgIEZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHdpZGdl dCBmcm9tIHNjcmF0Y2guCisKKyAgICAgVGhlIGZ1bmN0aW9uIHRha2VzIG9uZSBhcmd1bWVudCwg YSB3aWRnZXQgdHlwZSwgYW5kIGNyZWF0ZXMgYQorICAgICB3aWRnZXQgb2YgdGhhdCB0eXBlLCBp bnNlcnRzIGl0IGluIHRoZSBidWZmZXIsIGFuZCByZXR1cm5zIGEgd2lkZ2V0CisgICAgIG9iamVj dC4KKworICAgICBCeSBkZWZhdWx0LCBpdCBpbnNlcnRzIHRoZSB3aWRnZXQgYXQgcG9pbnQsIHVz aW5nIHRoZSBmb3JtYXQKKyAgICAgcHJvdmlkZWQgaW4gdGhlIOKAmDpmb3JtYXTigJkgcHJvcGVy dHkuCisKK+KAmDpkZWxldGXigJkKKyAgICAgRnVuY3Rpb24gdG8gZGVsZXRlIGEgd2lkZ2V0Lgor CisgICAgIFRoZSBmdW5jdGlvbiBzaG91bGQgdGFrZSBvbmUgYXJndW1lbnQsIGEgd2lkZ2V0LCBh bmQgc2hvdWxkIHJlbW92ZQorICAgICBhbGwgdHJhY2VzIG9mIHRoZSB3aWRnZXQgZnJvbSB0aGUg YnVmZmVyLgorCisgICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzOgorCisgICAgICAtLSBGdW5jdGlv bjogd2lkZ2V0LWRlZmF1bHQtZGVsZXRlIHdpZGdldAorICAgICAgICAgIFJlbW92ZSBXSURHRVQg ZnJvbSB0aGUgYnVmZmVyLiAgRGVsZXRlIGFsbCDigJg6Y2hpbGRyZW7igJkgYW5kCisgICAgICAg ICAg4oCYOmJ1dHRvbnPigJkgaW4gV0lER0VULgorCisgICAgIEluIG1vc3QgY2FzZXMgeW91IHNo b3VsZCBub3QgY2hhbmdlIHRoaXMgdmFsdWUsIGJ1dCBpbnN0ZWFkIHVzZQorICAgICDigJg6dmFs dWUtZGVsZXRl4oCZIHRvIG1ha2UgYW55IGFkZGl0aW9uYWwgY2xlYW51cC4KKwog4oCYOnZhbHVl 4oCZCi0gICAgIFRoZSBpbml0aWFsIHZhbHVlIGZvciB3aWRnZXRzIG9mIHRoaXMgdHlwZS4gIFR5 cGljYWxseSwgYSB3aWRnZXQKLSAgICAgcmVwcmVzZW50cyBpdHMgdmFsdWUgaW4gdHdvIGZvcm1h dHM6IGV4dGVybmFsIGFuZCBpbnRlcm5hbC4gIFRoZQotICAgICBleHRlcm5hbCBmb3JtYXQgaXMg dGhlIHZhbHVlIGFzIHRoZSByZXN0IG9mIEVtYWNzIHNlZXMgaXQsIGFuZCB0aGUKLSAgICAgaW50 ZXJuYWwgZm9ybWF0IGlzIGEgcmVwcmVzZW50YXRpb24gdGhhdCB0aGUgd2lkZ2V0IGRlZmluZXMg YW5kCi0gICAgIHVzZXMgaW4gYSB3aWRnZXQgc3BlY2lmaWMgd2F5LgorICAgICBUaGUgaW5pdGlh bCB2YWx1ZSBmb3Igd2lkZ2V0cyBvZiB0aGlzIHR5cGUuCisKKyAgICAgVHlwaWNhbGx5LCBhIHdp ZGdldCByZXByZXNlbnRzIGl0cyB2YWx1ZSBpbiB0d28gZm9ybWF0czogZXh0ZXJuYWwKKyAgICAg YW5kIGludGVybmFsLiAgVGhlIGV4dGVybmFsIGZvcm1hdCBpcyB0aGUgdmFsdWUgYXMgdGhlIHJl c3Qgb2YKKyAgICAgRW1hY3Mgc2VlcyBpdCwgYW5kIHRoZSBpbnRlcm5hbCBmb3JtYXQgaXMgYSBy ZXByZXNlbnRhdGlvbiB0aGF0IHRoZQorICAgICB3aWRnZXQgZGVmaW5lcyBhbmQgdXNlcyBpbiBh IHdpZGdldCBzcGVjaWZpYyB3YXkuCiAKICAgICAgQm90aCBmb3JtYXRzIG1pZ2h0IGJlIHRoZSBz YW1lIGZvciBjZXJ0YWluIHdpZGdldHMgYW5kIG1pZ2h0IGRpZmZlcgogICAgICBmb3Igb3RoZXJz LCBhbmQgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIGFib3V0IHdoaWNoIGZvcm1hdCB0aGUgdmFsdWUK QEAgLTQzMyw2ICs4MTksNTkgQEAKICAgICAgd2lkZ2V0IG9yIGRlZmluaW5nIGEgbmV3IG9uZSAo Km5vdGUgRGVmaW5pbmcgTmV3IFdpZGdldHM6OiksIHRoZQogICAgICDigJg6dmFsdWXigJkgc2hv dWxkIGJlIGluIHRoZSBleHRlcm5hbCBmb3JtYXQuCiAKK+KAmDp2YWx1ZS10by1pbnRlcm5hbOKA mQorICAgICBGdW5jdGlvbiB0byBjb252ZXJ0IHRoZSB2YWx1ZSB0byB0aGUgaW50ZXJuYWwgZm9y bWF0LgorCisgICAgIFRoZSBmdW5jdGlvbiB0YWtlcyB0d28gYXJndW1lbnRzLCBhIHdpZGdldCBh bmQgYW4gZXh0ZXJuYWwgdmFsdWUsCisgICAgIGFuZCByZXR1cm5zIHRoZSBpbnRlcm5hbCB2YWx1 ZS4gIFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgb24gdGhlCisgICAgIHByZXNlbnQg4oCYOnZhbHVl 4oCZIHdoZW4gdGhlIHdpZGdldCBpcyBjcmVhdGVkLCBhbmQgb24gYW55IHZhbHVlIHNldAorICAg ICBsYXRlciB3aXRoIOKAmHdpZGdldC12YWx1ZS1zZXTigJkuCisKK+KAmDp2YWx1ZS10by1leHRl cm5hbOKAmQorICAgICBGdW5jdGlvbiB0byBjb252ZXJ0IHRoZSB2YWx1ZSB0byB0aGUgZXh0ZXJu YWwgZm9ybWF0LgorCisgICAgIFRoZSBmdW5jdGlvbiB0YWtlcyB0d28gYXJndW1lbnRzLCBhIHdp ZGdldCBhbmQgYW4gaW50ZXJuYWwgdmFsdWUsCisgICAgIGFuZCByZXR1cm5zIHRoZSB2YWx1ZSBp biB0aGUgZXh0ZXJuYWwgZm9ybWF0LgorCivigJg6dmFsdWUtY3JlYXRl4oCZCisgICAgIEZ1bmN0 aW9uIHRvIGV4cGFuZCB0aGUg4oCYJXbigJkgZXNjYXBlIGluIHRoZSBmb3JtYXQgc3RyaW5nLgor CisgICAgIEl0IHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIHdpZGdldCBhcyBpdHMgYXJndW1lbnQg YW5kIHNob3VsZCBpbnNlcnQKKyAgICAgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgd2lkZ2V04oCZ cyB2YWx1ZSBpbiB0aGUgYnVmZmVyLgorCivigJg6dmFsdWUtZGVsZXRl4oCZCisgICAgIEEgZnVu Y3Rpb24gdGhhdCBzaG91bGQgcmVtb3ZlIHRoZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgd2lkZ2V0 4oCZcworICAgICB2YWx1ZSBmcm9tIHRoZSBidWZmZXIuCisKKyAgICAgSXQgd2lsbCBiZSBjYWxs ZWQgd2l0aCB0aGUgd2lkZ2V0IGFzIGl0cyBhcmd1bWVudC4gIEl0IGRvZXNu4oCZdCBoYXZlCisg ICAgIHRvIHJlbW92ZSB0aGUgdGV4dCwgYnV0IGl0IHNob3VsZCByZWxlYXNlIG1hcmtlcnMgYW5k IGRlbGV0ZSBuZXN0ZWQKKyAgICAgd2lkZ2V0cyBpZiB0aGVzZSBhcmUgbm90IGxpc3RlZCBpbiDi gJg6Y2hpbGRyZW7igJkgb3Ig4oCYOmJ1dHRvbnPigJkuCisKKyAgICAgQnkgZGVmYXVsdCwgaXTi gJlzIGEgbm8tb3AuCisKK+KAmDp2YWx1ZS1nZXTigJkKKyAgICAgRnVuY3Rpb24gdG8gZXh0cmFj dCB0aGUgdmFsdWUgb2YgYSB3aWRnZXQsIGFzIGl0IGlzIGRpc3BsYXllZCBpbgorICAgICB0aGUg YnVmZmVyLgorCivigJg6dmFsdWUtc2V04oCZCisgICAgIEZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB3 aWRnZXQgYW5kIGEgdmFsdWUgYXMgYXJndW1lbnRzLCBhbmQKKyAgICAgcmVjcmVhdGVzIGl0Lgor CisgICAgIFRoZSB2YWx1ZSBtdXN0IGFscmVhZHkgYmUgaW4gdGhlIGludGVybmFsIGZvcm1hdCBm b3Igd2lkZ2V0LiAgQnkKKyAgICAgZGVmYXVsdCwgaXQgZGVsZXRlcyB0aGUgd2lkZ2V0IHdpdGgg dGhlIOKAmDpkZWxldGXigJkgZnVuY3Rpb24gYW5kCisgICAgIGNyZWF0ZXMgaXQgYWdhaW4gd2l0 aCB0aGUg4oCYOmNyZWF0ZeKAmSBmdW5jdGlvbi4KKwor4oCYOnZhbHVlLWlubGluZeKAmQorICAg ICBGdW5jdGlvbiB0aGF0IHRha2VzIGEgd2lkZ2V0IGFuZCByZXR1cm5zIGl0cyB2YWx1ZSwgaW5s aW5lZC4KKworICAgICBJbmxpbmVkIG1lYW5zIHRoYXQgaWYgdGhlIHdpZGdldCBpcyBub3QgaW5s aW5lIChpLmUuLCBpdHMg4oCYOmlubGluZeKAmQorICAgICBwcm9wZXJ0eSBpcyDigJhuaWzigJkp LCB0aGUgcmV0dXJuIHZhbHVlIGlzIHdyYXBwZWQgaW4gYSBsaXN0LgorCivigJg6ZGVmYXVsdC1n ZXTigJkKKyAgICAgRnVuY3Rpb24gdGhhdCB0YWtlcyBhIHdpZGdldCBhbmQgcmV0dXJucyBpdHMg ZGVmYXVsdCB2YWx1ZS4KKworICAgICBCeSBkZWZhdWx0LCBpdCBqdXN0IHJldHVybnMgdGhlIHZh bHVlIHN0b3JlZCBpbiDigJg6dmFsdWXigJkuCisKIOKAmDpmb3JtYXTigJkKICAgICAgVGhpcyBz dHJpbmcgd2lsbCBiZSBpbnNlcnRlZCBpbiB0aGUgYnVmZmVyIHdoZW4geW91IGNyZWF0ZSBhCiAg ICAgIHdpZGdldC4gIFRoZSBmb2xsb3dpbmcg4oCYJeKAmSBlc2NhcGVzIGFyZSBhdmFpbGFibGU6 CkBAIC00NDQsMTIgKzg4Myw2IEBACiAgICAgICAgICAgQnkgZGVmYXVsdCwgdGhlIHRleHQgd2ls bCBiZSBzaG93biBpbiDigJh3aWRnZXQtYnV0dG9uLWZhY2XigJksCiAgICAgICAgICAgYW5kIHN1 cnJvdW5kZWQgYnkgYnJhY2tldHMuCiAKLSAgICAgICAgICAgLS0gVXNlciBPcHRpb246IHdpZGdl dC1idXR0b24tcHJlZml4Ci0gICAgICAgICAgICAgICBTdHJpbmcgdG8gcHJlZml4IGJ1dHRvbnMu Ci0KLSAgICAgICAgICAgLS0gVXNlciBPcHRpb246IHdpZGdldC1idXR0b24tc3VmZml4Ci0gICAg ICAgICAgICAgICBTdHJpbmcgdG8gc3VmZml4IGJ1dHRvbnMuCi0KICAgICAg4oCYJXvigJkKICAg ICAg4oCYJX3igJkKICAgICAgICAgICBUaGUgdGV4dCBpbnNpZGUgd2lsbCBiZSBkaXNwbGF5ZWQg d2l0aCB0aGUgZmFjZSBzcGVjaWZpZWQgYnkKQEAgLTQ1OSwxMCArODkyLDYgQEAKICAgICAgICAg ICBUaGlzIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgYnVmZmVyIHJlcHJlc2VudGF0aW9uIG9m IHRoZQogICAgICAgICAgIHdpZGdldOKAmXMgdmFsdWUuICBXaGF0IHRoaXMgaXMgZGVwZW5kcyBv biB0aGUgd2lkZ2V0IHR5cGUuCiAKLSAgICAgICAgICAqV2FybmluZzoqIEluIGFuIOKAmGVkaXRh YmxlLWZpZWxk4oCZIHdpZGdldCwgdGhlIOKAmCV24oCZIGVzY2FwZSBtdXN0Ci0gICAgICAgICAg YmUgcHJlY2VkZWQgYnkgc29tZSBvdGhlciB0ZXh0IGluIHRoZSBmb3JtYXQgc3RyaW5nIChpZgot ICAgICAgICAgIHNwZWNpZmllZCkuCi0KICAgICAg4oCYJWTigJkKICAgICAgICAgICBJbnNlcnQg dGhlIHN0cmluZyBzcGVjaWZpZWQgYnkg4oCYOmRvY+KAmSBoZXJlLgogCkBAIC00ODksNiArOTE4 LDExIEBACiAKIOKAmDpidXR0b24tcHJlZml44oCZCiDigJg6YnV0dG9uLXN1ZmZpeOKAmQorICAg ICBTdHJpbmdzIHVzZWQgYXMgcHJlZml4IGFuZCBzdWZmaXggZm9yIHdpZGdldHMgdGhhdCBhcmUg YnV0dG9ucy4KKworICAgICBCeSBkZWZhdWx0LCB0aGUgdmFsdWVzIGFyZSDigJh3aWRnZXQtYnV0 dG9uLXByZWZpeOKAmSBhbmQKKyAgICAg4oCYd2lkZ2V0LWJ1dHRvbi1zdWZmaXjigJkuCisKICAg ICAgVGV4dCBhcm91bmQgJVsgJV0gaW4gdGhlIGZvcm1hdC4KIAogICAgICBUaGVzZSBjYW4gYmUK QEAgLTUxNCwxMCArOTQ4LDExIEBACiDigJg6aGVscC1lY2hv4oCZCiAgICAgIFNwZWNpZmllcyBo b3cgdG8gZGlzcGxheSBhIG1lc3NhZ2Ugd2hlbmV2ZXIgeW91IG1vdmUgdG8gdGhlIHdpZGdldAog ICAgICB3aXRoIGVpdGhlciDigJh3aWRnZXQtZm9yd2FyZOKAmSBvciDigJh3aWRnZXQtYmFja3dh cmTigJkgb3IgbW92ZSB0aGUgbW91c2UKLSAgICAgb3ZlciBpdCAodXNpbmcgdGhlIHN0YW5kYXJk IOKAmGhlbHAtZWNob+KAmSBtZWNoYW5pc20pLiAgVGhlIGFyZ3VtZW50Ci0gICAgIGlzIGVpdGhl ciBhIHN0cmluZyB0byBkaXNwbGF5LCBhIGZ1bmN0aW9uIG9mIG9uZSBhcmd1bWVudCwgdGhlCi0g ICAgIHdpZGdldCwgd2hpY2ggc2hvdWxkIHJldHVybiBhIHN0cmluZyB0byBkaXNwbGF5LCBvciBh IGZvcm0gdGhhdAotICAgICBldmFsdWF0ZXMgdG8gc3VjaCBhIHN0cmluZy4KKyAgICAgb3ZlciBp dCAodXNpbmcgdGhlIHN0YW5kYXJkIOKAmGhlbHAtZWNob+KAmSBtZWNoYW5pc20pLgorCisgICAg IFRoZSB2YWx1ZSBpcyBlaXRoZXIgYSBzdHJpbmcgdG8gZGlzcGxheSwgb3IgYSBmdW5jdGlvbiBv ZiBvbmUKKyAgICAgYXJndW1lbnQsIHRoZSB3aWRnZXQuICBJZiBhIGZ1bmN0aW9uLCBpdCBzaG91 bGQgcmV0dXJuIGEgc3RyaW5nIHRvCisgICAgIGRpc3BsYXksIG9yIGEgZm9ybSB0aGF0IGV2YWx1 YXRlcyB0byBzdWNoIGEgc3RyaW5nLgogCiDigJg6Zm9sbG93LWxpbmvigJkKICAgICAgU3BlY2lm aWVzIGhvdyB0byBpbnRlcnByZXQgYSA8bW91c2UtMT4gY2xpY2sgb24gdGhlIHdpZGdldC4gICpO b3RlCkBAIC01MjUsNyArOTYwLDEyIEBACiAKIOKAmDppbmRlbnTigJkKICAgICAgQW4gaW50ZWdl ciBpbmRpY2F0aW5nIHRoZSBhYnNvbHV0ZSBudW1iZXIgb2Ygc3BhY2VzIHRvIGluZGVudAotICAg ICBjaGlsZHJlbiBvZiB0aGlzIHdpZGdldC4KKyAgICAgY2hpbGRyZW4gb2YgdGhpcyB3aWRnZXQu ICBJdHMgdmFsdWUgbWlnaHQgYmUg4oCYbmls4oCZIHRvbywgd2hpY2gKKyAgICAgY29ycmVzcG9u ZHMgdG8gYSB2YWx1ZSBvZiAwLgorCisgICAgIFRoZSBkZWZhdWx0IOKAmDpjcmVhdGXigJkgZnVu Y3Rpb25zIGFuZCB0aGUgZnVuY3Rpb25zIHRoYXQgY3JlYXRlIHRoZQorICAgICB2YWx1ZSBwZXIg c2UgdXNlIHRoaXMgcHJvcGVydHkgYXMgYSBydWRpbWVudGFyeSBsYXlvdXQgbWVjaGFuaXNtCisg ICAgIGZvciB0aGUgd2lkZ2V0cy4KIAog4oCYOm9mZnNldOKAmQogICAgICBBbiBpbnRlZ2VyIGlu ZGljYXRpbmcgaG93IG1hbnkgZXh0cmEgc3BhY2VzIHRvIGFkZCB0byB0aGUgd2lkZ2V04oCZcwpA QCAtNTM1LDIyICs5NzUsMTcgQEAKICAgICAgQW4gaW50ZWdlciBpbmRpY2F0aW5nIGhvdyBtYW55 IGV4dHJhIHNwYWNlcyB0byBhZGQgdG8gdGhlIHdpZGdldOKAmXMKICAgICAgY2hpbGRyZW4gY29t cGFyZWQgdG8gdGhpcyB3aWRnZXQuCiAKLeKAmDpub3RpZnnigJkKLSAgICAgQSBmdW5jdGlvbiBj YWxsZWQgZWFjaCB0aW1lIHRoZSB3aWRnZXQgb3IgYSBuZXN0ZWQgd2lkZ2V0IGlzCi0gICAgIGNo YW5nZWQuICBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggdHdvIG9yIHRocmVlIGFyZ3VtZW50 cy4gIFRoZQotICAgICBmaXJzdCBhcmd1bWVudCBpcyB0aGUgd2lkZ2V0IGl0c2VsZiwgdGhlIHNl Y29uZCBhcmd1bWVudCBpcyB0aGUKLSAgICAgd2lkZ2V0IHRoYXQgd2FzIGNoYW5nZWQsIGFuZCB0 aGUgdGhpcmQgYXJndW1lbnQgaXMgdGhlIGV2ZW50Ci0gICAgIGxlYWRpbmcgdG8gdGhlIGNoYW5n ZSwgaWYgYW55LgotCiDigJg6bWVudS10YWfigJkKICAgICAgVGFnIHVzZWQgaW4gdGhlIG1lbnUg d2hlbiB0aGUgd2lkZ2V0IGlzIHVzZWQgYXMgYW4gb3B0aW9uIGluIGEKICAgICAg4oCYbWVudS1j aG9pY2XigJkgd2lkZ2V0LgogCiDigJg6bWVudS10YWctZ2V04oCZCi0gICAgIEZ1bmN0aW9uIHVz ZWQgZm9yIGZpbmRpbmcgdGhlIHRhZyB3aGVuIHRoZSB3aWRnZXQgaXMgdXNlZCBhcyBhbgotICAg ICBvcHRpb24gaW4gYSDigJhtZW51LWNob2ljZeKAmSB3aWRnZXQuICBCeSBkZWZhdWx0LCB0aGUg dGFnIHVzZWQgd2lsbCBiZQotICAgICBlaXRoZXIgdGhlIOKAmDptZW51LXRhZ+KAmSBvciDigJg6 dGFn4oCZIHByb3BlcnR5IGlmIHByZXNlbnQsIG9yIHRoZQotICAgICDigJhwcmluY+KAmSByZXBy ZXNlbnRhdGlvbiBvZiB0aGUg4oCYOnZhbHVl4oCZIHByb3BlcnR5IGlmIG5vdC4KKyAgICAgRnVu Y3Rpb24gdGhhdCB0YWtlcyBhIHdpZGdldCBhbmQgcmV0dXJucyB0aGUgdGFnIHdoZW4gdGhlIHdp ZGdldCBpcworICAgICB1c2VkIGFzIGFuIG9wdGlvbiBpbiBhIOKAmG1lbnUtY2hvaWNl4oCZIHdp ZGdldC4KKworICAgICBCeSBkZWZhdWx0LCB0aGUgdGFnIHVzZWQgd2lsbCBiZSBlaXRoZXIgdGhl IOKAmDptZW51LXRhZ+KAmSBvciDigJg6dGFn4oCZCisgICAgIHByb3BlcnR5IGlmIHByZXNlbnQs IG9yIHRoZSDigJhwcmluY+KAmSByZXByZXNlbnRhdGlvbiBvZiB0aGUg4oCYOnZhbHVl4oCZCisg ICAgIHByb3BlcnR5IGlmIG5vdC4KIAog4oCYOm1hdGNo4oCZCiAgICAgIFNob3VsZCBiZSBhIGZ1 bmN0aW9uIGNhbGxlZCB3aXRoIHR3byBhcmd1bWVudHMsIHRoZSB3aWRnZXQgYW5kIGFuCkBAIC01 NTksMjAgKzk5NCwxOCBAQAogCiDigJg6dmFsaWRhdGXigJkKICAgICAgQSBmdW5jdGlvbiB3aGlj aCB0YWtlcyBhIHdpZGdldCBhcyBhbiBhcmd1bWVudCwgYW5kIHJldHVybnMg4oCYbmls4oCZCi0g ICAgIGlmIHRoZSB3aWRnZXTigJlzIGN1cnJlbnQgdmFsdWUgaXMgdmFsaWQgZm9yIHRoZSB3aWRn ZXQuICBPdGhlcndpc2UKLSAgICAgaXQgc2hvdWxkIHJldHVybiB0aGUgd2lkZ2V0IGNvbnRhaW5p bmcgdGhlIGludmFsaWQgZGF0YSwgYW5kIHNldAotICAgICB0aGF0IHdpZGdldOKAmXMg4oCYOmVy cm9y4oCZIHByb3BlcnR5IHRvIGEgc3RyaW5nIGV4cGxhaW5pbmcgdGhlIGVycm9yLgorICAgICBp ZiB0aGUgd2lkZ2V04oCZcyBjdXJyZW50IHZhbHVlIGlzIHZhbGlkIGZvciB0aGUgd2lkZ2V0Lgog Ci0gICAgIFRoZSBmb2xsb3dpbmcgcHJlZGVmaW5lZCBmdW5jdGlvbiBjYW4gYmUgdXNlZDoKKyAg ICAgT3RoZXJ3aXNlLCBpdCBzaG91bGQgcmV0dXJuIHRoZSB3aWRnZXQgY29udGFpbmluZyB0aGUg aW52YWxpZCBkYXRhLAorICAgICBhbmQgc2V0IHRoYXQgd2lkZ2V04oCZcyDigJg6ZXJyb3LigJkg cHJvcGVydHkgdG8gYSBzdHJpbmcgZXhwbGFpbmluZyB0aGUKKyAgICAgZXJyb3IuCiAKLSAgICAg IC0tIEZ1bmN0aW9uOiB3aWRnZXQtY2hpbGRyZW4tdmFsaWRhdGUgd2lkZ2V0Ci0gICAgICAgICAg QWxsIHRoZSDigJg6Y2hpbGRyZW7igJkgb2YgV0lER0VUIG11c3QgYmUgdmFsaWQuCisgICAgIEJ5 IGRlZmF1bHQsIGl0IGFsd2F5cyByZXR1cm5zIOKAmG5pbOKAmS4KIAog4oCYOnRhYi1vcmRlcuKA mQogICAgICBTcGVjaWZ5IHRoZSBvcmRlciBpbiB3aGljaCB3aWRnZXRzIGFyZSB0cmF2ZXJzZWQg d2l0aAogICAgICDigJh3aWRnZXQtZm9yd2FyZOKAmSBvciDigJh3aWRnZXQtYmFja3dhcmTigJku ICBUaGlzIGlzIG9ubHkgcGFydGlhbGx5CiAgICAgIGltcGxlbWVudGVkLgotCiAgICAgICAgYS4g V2lkZ2V0cyB3aXRoIHRhYmJpbmcgb3JkZXIg4oCYLTHigJkgYXJlIGlnbm9yZWQuCiAKICAgICAg ICBiLiAoVW5pbXBsZW1lbnRlZCkgV2hlbiBvbiBhIHdpZGdldCB3aXRoIHRhYmJpbmcgb3JkZXIg TiwgZ28gdG8KQEAgLTU5MywxMzQgKzEwMjYsNTA4IEBACiAgICAgIGFyZ3VtZW50cywgd2hpY2gg d2lsbCBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgdGhlIOKAmHJhZGlvLWJ1dHRvbuKAmSBvcgogICAg ICDigJhjaGVja2JveOKAmSBhc3NvY2lhdGVkIHdpdGggdGhpcyBpdGVtLgogCi0gLS0gVXNlciBP cHRpb246IHdpZGdldC1pbWFnZS1kaXJlY3RvcnkKLSAgICAgRGlyZWN0b3J5IHdoZXJlIFdpZGdl dCBzaG91bGQgbG9vayBmb3IgaW1hZ2VzLiAgV2lkZ2V0IHdpbGwgbG9vawotICAgICBoZXJlIGZv ciBhIGZpbGUgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIHNwZWNpZmllZCBmb3IgdGhlIGltYWdlLCB3 aXRoCi0gICAgIGVpdGhlciBhIOKAmC54cG3igJkgKGlmIHN1cHBvcnRlZCkgb3Ig4oCYLnhibeKA mSBleHRlbnNpb24uCivigJg6Y29tcGxldGlvbnMtZnVuY3Rpb27igJkKKyAgICAgRnVuY3Rpb24g dGhhdCB0YWtlcyBhIHdpZGdldCBhbmQgcmV0dXJucyBjb21wbGV0aW9uIGRhdGEgZm9yIHRoYXQK KyAgICAgd2lkZ2V0LCBsaWtlIOKAmGNvbXBsZXRpb24tYXQtcG9pbnQtZnVuY3Rpb25z4oCZIHdv dWxkLiAgKk5vdGUKKyAgICAgKGVsaXNwKUNvbXBsZXRpb246Oi4gIEl04oCZcyB1c2VkIGJ5IOKA mGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdldHMgdG8KKyAgICAgcHJvdmlkZSBjb21wbGV0aW9ucy4K KworICAgICBCeSBkZWZhdWx0LCBpdCBsb29rcyBpbnRvIHRoZSBwcm9wZXJ0eSDigJg6Y29tcGxl dGlvbnPigJksIHdoaWNoIHNob3VsZAorICAgICBiZSBhIGNvbXBsZXRpb24gdGFibGUuICBJZiDi gJg6Y29tcGxldGlvbnPigJkgaXMg4oCYbmls4oCZLCB0aGVuIGl0IGNhbGxzCisgICAgIHRoZSBm dW5jdGlvbiBzdG9yZWQgZWl0aGVyIGluIHRoZSDigJg6Y29tcGxldGXigJkgb3IKKyAgICAg4oCY OmNvbXBsZXRlLWZ1bmN0aW9u4oCZIHByb3BlcnR5LgogCi0gLS0gVXNlciBPcHRpb246IHdpZGdl dC1pbWFnZS1lbmFibGUKLSAgICAgSWYgbm9uLeKAmG5pbOKAmSwgYWxsb3cgaW1hZ2VzIHRvIGFw cGVhciBvbiBkaXNwbGF5cyB3aGVyZSB0aGV5IGFyZQotICAgICBzdXBwb3J0ZWQuCivigJg6Zm9y bWF0LWhhbmRsZXLigJkKKyAgICAgRnVuY3Rpb24gdG8gaGFuZGxlIHVua25vd24g4oCYJeKAmSBl c2NhcGVzIGluIHRoZSBmb3JtYXQgc3RyaW5nLgorCisgICAgIEl0IHRha2VzIGEgd2lkZ2V0IGFu ZCB0aGUgY2hhcmFjdGVyIHRoYXQgZm9sbG93cyB0aGUg4oCYJeKAmSBhcworICAgICBhcmd1bWVu dHMuICBZb3UgY2FuIHNldCB0aGlzIHRvIGFsbG93IHlvdXIgd2lkZ2V0IHRvIGhhbmRsZQorICAg ICBub24tc3RhbmRhcmQgZXNjYXBlcyBpbiB5b3VyIG93biBzcGVjaWFsaXplZCB3aWRnZXRzLgor CisgICAgIFlvdSBzaG91bGQgZW5kIHVwIGNhbGxpbmcg4oCYd2lkZ2V0LWRlZmF1bHQtZm9ybWF0 LWhhbmRsZXLigJkgdG8gaGFuZGxlCisgICAgIHVua25vd24gZXNjYXBlIHNlcXVlbmNlcywgd2hp Y2ggd2lsbCBoYW5kbGUgdGhlIOKAmCVo4oCZIGFuZCBhbnkgZnV0dXJlCisgICAgIGVzY2FwZSBz ZXF1ZW5jZXMsIGFzIHdlbGwgYXMgZ2l2ZSBhbiBlcnJvciBmb3IgdW5rbm93biBlc2NhcGVzLgor CivigJg6YnV0dG9uLWZhY2UtZ2V04oCZCisgICAgIEZ1bmN0aW9uIHRvIHJldHVybiB0aGUgZmFj ZSB1c2VkIHRvIGZvbnRpZnkgYSB3aWRnZXQgYnV0dG9uLgorCisgICAgIFRha2VzIGEgd2lkZ2V0 IGFuZCByZXR1cm5zIGFuIGFwcHJvcHJpYXRlIGZhY2UgZm9yIHRoZSB3aWRnZXQuICBCeQorICAg ICBkZWZhdWx0LCBpdCBlaXRoZXIgcmV0dXJucyB0aGUgZmFjZSBzdG9yZWQgaW4gdGhlIOKAmDpi dXR0b24tZmFjZeKAmQorICAgICBwcm9wZXJ0eSwgb3IgY2FsbHMgdGhlIOKAmDpidXR0b24tZmFj ZS1nZXTigJkgZnVuY3Rpb24gZnJvbSB0aGUgcGFyZW50CisgICAgIG9mIHRoZSB3aWRnZXQsIGlm IGl0IGhhcyBvbmUuCisKK+KAmDptb3VzZS1mYWNlLWdldOKAmQorICAgICBGdW5jdGlvbiB0byBy ZXR1cm4gdGhlIGZhY2UgdXNlZCB0byBmb250aWZ5IGEgd2lkZ2V0IHdoZW4gdGhlIG1vdXNlCisg ICAgIHBvaW50ZXIgaG92ZXJzIG92ZXIgaXQuCisKKyAgICAgVGFrZXMgYSB3aWRnZXQgYW5kIHJl dHVybnMgYW4gYXBwcm9wcmlhdGUgZmFjZS4gIEJ5IGRlZmF1bHQsIGl0CisgICAgIGVpdGhlciBy ZXR1cm5zIHRoZSBmYWNlIHN0b3JlZCBpbiB0aGUg4oCYOm1vdXNlLWZhY2XigJkgcHJvcGVydHks IG9yCisgICAgIGNhbGxzIHRoZSDigJg6YnV0dG9uLWZhY2UtZ2V04oCZIGZ1bmN0aW9uIGZyb20g dGhlIHBhcmVudCBvZiB0aGUKKyAgICAgd2lkZ2V0LCBpZiBpdCBoYXMgb25lLgorCivigJg6Y29w eeKAmQorICAgICBGdW5jdGlvbiB0byBkZWVwIGNvcHkgYSB3aWRnZXQgdHlwZS4KKworICAgICBJ dCB0YWtlcyBhIHNoYWxsb3cgY29weSBvZiB0aGUgd2lkZ2V0IHR5cGUgYXMgYW4gYXJndW1lbnQg KG1hZGUgYnkKKyAgICAg4oCYY29weS1zZXF1ZW5jZeKAmSksIGFuZCByZXR1cm5zIGEgZGVlcCBj b3B5LiAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcworICAgICB0byBhdm9pZCBoYXZpbmcgZGlmZmVy ZW50IGluc3RhbmNlcyBvZiBjb21iaW5lZCB3aWRnZXRzIHNoYXJlCisgICAgIG5lc3RlZCBhdHRy aWJ1dGVzLgorCisgICAgIEl0cyB2YWx1ZSBieSBkZWZhdWx0IGlzIOKAmGlkZW50aXR54oCZLgor CivigJg6YWN0aXZl4oCZCisgICAgIEZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB3aWRnZXQgYW5kIHJl dHVybnMg4oCYdOKAmSBpZiBpdCBpcyBhY3RpdmUuCisKKyAgICAgQSB3aWRnZXQgbWlnaHQgYmUg ZWZmZWN0aXZlbHkgYWx3YXlzIGFjdGl2ZSwgaWYgaXRzCisgICAgIOKAmDphbHdheXMtYWN0aXZl 4oCZIHByb3BlcnR5IGlzIOKAmHTigJkuCisKKyAgICAgV2lkZ2V0cyBjYW4gYmUgaW4gdHdvIHN0 YXRlczogYWN0aXZlLCB3aGljaCBtZWFucyB0aGV5IGFyZQorICAgICBtb2RpZmlhYmxlIGJ5IHRo ZSB1c2VyLCBvciBpbmFjdGl2ZSwgd2hpY2ggbWVhbnMgdGhleSBjYW5ub3QgYmUKKyAgICAgbW9k aWZpZWQgYnkgdGhlIHVzZXIuICBZb3UgY2FuIHF1ZXJ5IG9yIHNldCB0aGUgc3RhdGUgd2l0aCB0 aGUKKyAgICAgZm9sbG93aW5nIGNvZGU6CisKKyAgICAgICAgICA7OyBFeGFtaW5lIGlmIFdJREdF VCBpcyBhY3RpdmUgb3Igbm90LgorICAgICAgICAgIChpZiAod2lkZ2V0LWFwcGx5IFdJREdFVCA6 YWN0aXZlKQorICAgICAgICAgICAgICAobWVzc2FnZSAiV2lkZ2V0IGlzIGFjdGl2ZS4iKQorICAg ICAgICAgICAgKG1lc3NhZ2UgIldpZGdldCBpcyBpbmFjdGl2ZS4iKQorCisgICAgICAgICAgOzsg TWFrZSBXSURHRVQgaW5hY3RpdmUuCisgICAgICAgICAgKHdpZGdldC1hcHBseSBXSURHRVQgOmRl YWN0aXZhdGUpCisKKyAgICAgICAgICA7OyBNYWtlIFdJREdFVCBhY3RpdmUuCisgICAgICAgICAg KHdpZGdldC1hcHBseSBXSURHRVQgOmFjdGl2YXRlKQorCisgICAgIEEgd2lkZ2V0IGlzIGluYWN0 aXZlIGlmIGl0LCBvciBhbnkgb2YgaXRzIGFuY2VzdG9ycyAoZm91bmQgYnkKKyAgICAgZm9sbG93 aW5nIHRoZSDigJg6cGFyZW504oCZIGxpbmspLCBoYXZlIGJlZW4gZGVhY3RpdmF0ZWQuICBUbyBt YWtlIHN1cmUKKyAgICAgYSB3aWRnZXQgaXMgcmVhbGx5IGFjdGl2ZSwgeW91IG11c3QgdGhlcmVm b3JlIGFjdGl2YXRlIGJvdGggaXQgYW5kCisgICAgIGFsbCBpdHMgYW5jZXN0b3JzLgorCisgICAg ICAgICAgKHdoaWxlIHdpZGdldAorICAgICAgICAgICAgKHdpZGdldC1hcHBseSB3aWRnZXQgOmFj dGl2YXRlKQorICAgICAgICAgICAgKHNldHEgd2lkZ2V0ICh3aWRnZXQtZ2V0IHdpZGdldCA6cGFy ZW50KSkpCisKKyAgICAgWW91IGNhbiBjaGVjayBpZiBhIHdpZGdldCBoYXMgYmVlbiBtYWRlIGlu YWN0aXZlIGJ5IGV4YW1pbmluZyB0aGUKKyAgICAgdmFsdWUgb2YgdGhlIOKAmDppbmFjdGl2ZeKA mSBrZXl3b3JkLiAgSWYgdGhpcyBpcyBub24t4oCYbmls4oCZLCB0aGUgd2lkZ2V0CisgICAgIGl0 c2VsZiBoYXMgYmVlbiBkZWFjdGl2YXRlZC4gIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gdXNpbmcg dGhlCisgICAgIOKAmDphY3RpdmXigJkga2V5d29yZCwgaW4gdGhhdCB0aGUgbGF0dGVyIHRlbGxz IHlvdSBpZiB0aGUgd2lkZ2V0ICpvcioKKyAgICAgYW55IG9mIGl0cyBhbmNlc3RvcnMgaGF2ZSBi ZWVuIGRlYWN0aXZhdGVkLiAgRG8gbm90IGF0dGVtcHQgdG8gc2V0CisgICAgIHRoZSDigJg6aW5h Y3RpdmXigJkga2V5d29yZCBkaXJlY3RseS4gIFVzZSB0aGUg4oCYOmFjdGl2YXRl4oCZCisgICAg IOKAmDpkZWFjdGl2YXRl4oCZIGZ1bmN0aW9ucyBpbnN0ZWFkLgorCivigJg6YWN0aXZhdGXigJkK KyAgICAgRnVuY3Rpb24gdGhhdCB0YWtlcyBhIHdpZGdldCBhbmQgbWFrZXMgaXQgYWN0aXZlIGZv ciB1c2VyCisgICAgIG1vZGlmaWNhdGlvbnMuCisKK+KAmDpkZWFjdGl2YXRl4oCZCisgICAgIEZ1 bmN0aW9uIHRoYXQgdGFrZXMgYSB3aWRnZXQgYW5kIG1ha2VzIGl0IGluYWN0aXZlIGZvciB1c2Vy CisgICAgIG1vZGlmaWNhdGlvbnMuCisKK+KAmDphY3Rpb27igJkKKyAgICAgRnVuY3Rpb24gdGhh dCB0YWtlcyBhIHdpZGdldCBhbmQgb3B0aW9uYWxseSBhbiBldmVudCwgYW5kIGhhbmRsZXMgYQor ICAgICB1c2VyIGluaXRpYXRlZCBldmVudC4KKworICAgICBCeSBkZWZhdWx0LCB1c2VzIHRoZSDi gJg6bm90aWZ54oCZIGZ1bmN0aW9uIHRvIG5vdGlmeSB0aGUgd2lkZ2V04oCZcworICAgICBwYXJl bnQgYWJvdXQgdGhlIGV2ZW50LgorCivigJg6bW91c2UtZG93bi1hY3Rpb27igJkKKyAgICAgRnVu Y3Rpb24gdGhhdCB0YWtlcyBhIHdpZGdldCBhbmQgb3B0aW9uYWxseSBhbiBldmVudCwgYW5kIGhh bmRsZXMgYQorICAgICBtb3VzZSBjbGljayBvbiB0aGUgd2lkZ2V0LgorCisgICAgIEJ5IGRlZmF1 bHQsIGl0IGRvZXMgbm90aGluZy4KKwor4oCYOm5vdGlmeeKAmQorICAgICBBIGZ1bmN0aW9uIGNh bGxlZCBlYWNoIHRpbWUgdGhlIHdpZGdldCBvciBhIG5lc3RlZCB3aWRnZXQgaXMKKyAgICAgY2hh bmdlZC4KKworICAgICBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggdHdvIG9yIHRocmVlIGFy Z3VtZW50cy4gIFRoZSBmaXJzdAorICAgICBhcmd1bWVudCBpcyB0aGUgd2lkZ2V0IGl0c2VsZiwg dGhlIHNlY29uZCBhcmd1bWVudCBpcyB0aGUgd2lkZ2V0CisgICAgIHRoYXQgd2FzIGNoYW5nZWQs IGFuZCB0aGUgdGhpcmQgYXJndW1lbnQgaXMgdGhlIGV2ZW50IGxlYWRpbmcgdG8KKyAgICAgdGhl IGNoYW5nZSwgaWYgYW55LgorCisgICAgIEJ5IGRlZmF1bHQsIGl0IHBhc3NlcyB0aGUgbm90aWZp Y2F0aW9uIHRvIHRoZSB3aWRnZXTigJlzIHBhcmVudC4KKwor4oCYOnByb21wdC12YWx1ZeKAmQor ICAgICBGdW5jdGlvbiB0byBwcm9tcHQgZm9yIGEgdmFsdWUgaW4gdGhlIG1pbmlidWZmZXIuCisK KyAgICAgVGhlIGZ1bmN0aW9uIHNob3VsZCB0YWtlIGZvdXIgYXJndW1lbnRzLCBhIHdpZGdldCwg YSBwcm9tcHQgKGEKKyAgICAgc3RyaW5nKSwgYSB2YWx1ZSBhbmQgYSBib29sZWFuLCBhbmQgc2hv dWxkIHJldHVybiBhIHZhbHVlIGZvciB0aGUKKyAgICAgd2lkZ2V0LCBlbnRlcmVkIGJ5IHRoZSB1 c2VyLgorCisgICAgIFRoZSBwcm9tcHQgaXMgdGhlIHByb21wdCB0byB1c2UuICBUaGUgdmFsdWUg aXMgdGhlIGRlZmF1bHQgdmFsdWUgdG8KKyAgICAgdXNlLCB1bmxlc3MgdGhlIGZvdXJ0aGEgYXJn dW1lbnQgaXMgbm9uLeKAmG5pbOKAmSwgaW4gd2hpY2ggY2FzZSB0aGVyZQorICAgICBpcyBubyBk ZWZhdWx0IHZhbHVlLgorCisgICAgIFRoZSBmdW5jdGlvbiBzaG91bGQgcmVhZCB0aGUgdmFsdWUg dXNpbmcgdGhlIG1ldGhvZCBtb3N0IG5hdHVyYWwKKyAgICAgZm9yIHRoaXMgd2lkZ2V0LCBhbmQg ZG9lcyBub3QgaGF2ZSB0byBjaGVjayB0aGF0IGl0IG1hdGNoZXMuCisKKzguMSBCYXNpYyBUeXBl cworPT09PT09PT09PT09PT09CisKKzguMS4xIFRoZSDigJhpdGVt4oCZIFdpZGdldAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKworU3ludGF4OgorCisgICAgIFRZUEUgOjo9IChpdGVtIFtLRVlX T1JEIEFSR1VNRU5UXS4uLiBWQUxVRSkKIAotNS4xIFRoZSDigJhsaW5r4oCZIFdpZGdldAotPT09 PT09PT09PT09PT09PT09PT09CisgICBBIHVzZWZ1bCB3aWRnZXQgdGhhdCBob2xkcyBhIGNvbnN0 YW50IHZhbHVlLCBhbmQgY2FuIGJlIGluY2x1ZGVkIGluCitvdGhlciB3aWRnZXRzLiAgSXRzIHN1 cGVyIGlzIHRoZSDigJhkZWZhdWx04oCZIHdpZGdldC4KKworICAgQXMgY2FuIGJlIHNlZW4gaW4g dGhlIHN5bnRheCwgdGhlIOKAmGl0ZW3igJkgd2lkZ2V0IGlzIG9uZSBvZiB0aGUgd2lkZ2V0Cit0 aGF0IGhhbmRsZXMgdGhlIEFSR1MgYXJndW1lbnQgdG8g4oCYd2lkZ2V0LWNyZWF0ZeKAmSBpbiBh IHNwZWNpZmljIHdheS4gIElmCitwcmVzZW50LCBWQUxVRSBpcyB1c2VkIHRvIGluaXRpYWxpemUg dGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eS4gIFdoZW4KK2NyZWF0ZWQsIGl0IGluc2VydHMgdGhl IHZhbHVlIGFzIGEgc3RyaW5nIGluIHRoZSBidWZmZXIuCisKKyAgIEJ5IGRlZmF1bHQsIGl0IGhh cyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CisKK+KAmDpjb252ZXJ0LXdpZGdldOKAmQorICAg ICBUaGUgZnVuY3Rpb24gdGhhdCBhbGxvd3MgaXQgdG8gaGFuZGxlIFZBTFVFLgorCivigJg6dmFs dWUtY3JlYXRl4oCZCisgICAgIFByaW50cyB0aGUgcmVwcmVzZW50YXRpb24gb2Yg4oCYOnZhbHVl 4oCZIGluIHRoZSBidWZmZXIuCisKK+KAmDp2YWx1ZS1nZXTigJkKKyAgICAgUmV0dXJucyB0aGUg dmFsdWUgc3RvcmVkIGluIOKAmDp2YWx1ZeKAmS4KKwor4oCYOm1hdGNo4oCZCisgICAgIEEgdmFs dWUgbWF0Y2hlcyB0aGUg4oCYaXRlbeKAmSB3aWRnZXQgaWYgaXTigJlzIOKAmGVxdWFs4oCZIHRv IGl0cyDigJg6dmFsdWXigJkuCisKK+KAmDptYXRjaC1pbmxpbmXigJkKKyAgICAgSW5saW5lIHZh bHVlcyBtYXRjaCB0aGUg4oCYaXRlbeKAmSB3aWRnZXQgaWYg4oCYOnZhbHVl4oCZIGlzIGEgc3Vi bGlzdCBvZgorICAgICB2YWx1ZXMuCisKK+KAmDphY3Rpb27igJkKKyAgICAgVGhlIOKAmGl0ZW3i gJkgd2lkZ2V0IG5vdGlmaWVzIGl0c2VsZiBvZiBhbiBldmVudC4KKwor4oCYOmZvcm1hdOKAmQor ICAgICBCeSBkZWZhdWx0LCB0aGUg4oCYaXRlbeKAmSB3aWRnZXQgaW5zZXJ0cyBpdHMgdGFnIGlu IHRoZSBidWZmZXIuCisKKzguMS4yIFRoZSDigJhsaW5r4oCZIFdpZGdldAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIAogU3ludGF4OgogCiAgICAgIFRZUEUgOjo9IChsaW5rIFtLRVlXT1JEIEFS R1VNRU5UXS4uLiAgWyBWQUxVRSBdKQogCisgICBBIHdpZGdldCB0byByZXByZXNlbnQgYW4gZW1i ZWRkZWQgbGluay4gIEl0cyBzdXBlciBpcyB0aGUg4oCYaXRlbeKAmQord2lkZ2V0LgorCiAgICBU aGUgVkFMVUUsIGlmIHByZXNlbnQsIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl 4oCZIHByb3BlcnR5LgogVGhlIHZhbHVlIHNob3VsZCBiZSBhIHN0cmluZywgd2hpY2ggd2lsbCBi ZSBpbnNlcnRlZCBpbiB0aGUgYnVmZmVyLgogCi0gICBCeSBkZWZhdWx0IHRoZSBsaW5rIHdpbGwg YmUgc2hvd24gaW4gYnJhY2tldHMuCisgICBCeSBkZWZhdWx0LCBpdCBoYXMgdGhlIGZvbGxvd2lu ZyBwcm9wZXJ0aWVzOgogCi0gLS0gVXNlciBPcHRpb246IHdpZGdldC1saW5rLXByZWZpeAotICAg ICBTdHJpbmcgdG8gcHJlZml4IGxpbmtzLgor4oCYOmJ1dHRvbi1wcmVmaXjigJkKKyAgICAgVGhl IHZhbHVlIG9mIOKAmHdpZGdldC1saW5rLXByZWZpeOKAmS4KIAotIC0tIFVzZXIgT3B0aW9uOiB3 aWRnZXQtbGluay1zdWZmaXgKLSAgICAgU3RyaW5nIHRvIHN1ZmZpeCBsaW5rcy4KK+KAmDpidXR0 b24tc3VmZml44oCZCisgICAgIFRoZSB2YWx1ZSBvZiDigJh3aWRnZXQtbGluay1zdWZmaXjigJku CisKK+KAmDprZXltYXDigJkKKyAgICAgQSBjdXN0b20ga2V5bWFwIGZvciB0aGUgbGluayB3aWRn ZXQsIHNvIHRoYXQgaXQgY2FuIHJlc3BvbmQgdG8KKyAgICAgbW91c2UgY2xpY2tzLgorCivigJg6 Zm9sbG93LWxpbmvigJkKKyAgICAgVGhpcyBwcm9wZXJ0eSBhbGxvd3MgdGhlIGxpbmsgdG8gcmVz cGVjdCB0aGUgdmFsdWUgb2YKKyAgICAg4oCYbW91c2UtMS1jbGljay1mb2xsb3dzLWxpbmvigJku ICAqTm90ZSAoZWxpc3ApQ2xpY2thYmxlIFRleHQ6Oi4KKwor4oCYOmZvcm1hdOKAmQorICAgICBC dXR0b25pemVzIHRoZSBsaW5rLCB0byBtYWtlIGl0IGNsaWNrYWJsZS4KKworICAgICBJZiB5b3Ug b3ZlcnJpZGUgdGhpcyBwcm9wZXJ0eSwgeW91IHNob3VsZCBtYWtlIHN1cmUgdG8gcHJvdmlkZSB0 aGUKKyAgICAg4oCYJVvigJkgYW5kIOKAmCVd4oCZIGVzY2FwZSBzZXF1ZW5jZXMsIHNvIHRoYXQg dGhlIGxpbmsgaXMgY2xpY2thYmxlLgorCisgICBCeSBkZWZhdWx0IHRoZSBsaW5rIHdpbGwgYmUg c2hvd24gaW4gYnJhY2tldHMuCiAKLTUuMiBUaGUg4oCYdXJsLWxpbmvigJkgV2lkZ2V0Ci09PT09 PT09PT09PT09PT09PT09PT09PT09Cis4LjEuMyBUaGUg4oCYdXJsLWxpbmvigJkgV2lkZ2V0Cist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogU3ludGF4OgogCiAgICAgIFRZUEUgOjo9ICh1 cmwtbGluayBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIFVSTCkKIAotICAgV2hlbiB0aGlzIGxpbmsg aXMgaW52b2tlZCwgdGhlIFdXVyBicm93c2VyIHNwZWNpZmllZCBieQot4oCYYnJvd3NlLXVybC1i cm93c2VyLWZ1bmN0aW9u4oCZIHdpbGwgYmUgY2FsbGVkIHdpdGggVVJMLgorICAgQSB3aWRnZXQg dG8gcmVwcmVzZW50IGEgbGluayB0byBhIHdlYiBwYWdlLiAgSXRzIHN1cGVyIGlzIHRoZSDigJhs aW5r4oCZCit3aWRnZXQuCisKKyAgIEl0IG92ZXJyaWRlcyB0aGUg4oCYOmFjdGlvbuKAmSBwcm9w ZXJ0eSB0byBvcGVuIHVwIHRoZSBVUkwgc3BlY2lmaWVkLgogCi01LjMgVGhlIOKAmGluZm8tbGlu a+KAmSBXaWRnZXQKLT09PT09PT09PT09PT09PT09PT09PT09PT09Cis4LjEuNCBUaGUg4oCYaW5m by1saW5r4oCZIFdpZGdldAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBTeW50YXg6 CiAKICAgICAgVFlQRSA6Oj0gKGluZm8tbGluayBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIEFERFJF U1MpCiAKLSAgIFdoZW4gdGhpcyBsaW5rIGlzIGludm9rZWQsIHRoZSBidWlsdC1pbiBJbmZvIHJl YWRlciBpcyBzdGFydGVkIG9uCi1BRERSRVNTLgorICAgQSB3aWRnZXQgdG8gcmVwcmVzZW50IGEg bGluayB0byBhbiBpbmZvIGZpbGUuICBJdHMgc3VwZXIgaXMgdGhlCivigJhsaW5r4oCZIHdpZGdl dC4KKworICAgSXQgb3ZlcnJpZGVzIHRoZSDigJg6YWN0aW9u4oCZIHByb3BlcnR5LCB0byBhIGZ1 bmN0aW9uIHRvIHN0YXJ0IHRoZQorYnVpbHQtaW4gSW5mbyByZWFkZXIgb24gQUREUkVTUywgd2hl biBpbnZva2VkLgogCi01LjQgVGhlIOKAmHB1c2gtYnV0dG9u4oCZIFdpZGdldAotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorOC4xLjUgVGhlIOKAmGZ1bmN0aW9uLWxpbmvigJkgV2lkZ2V0 CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTeW50YXg6CisKKyAgICAgVFlQ RSA6Oj0gKGZ1bmN0aW9uLWxpbmsgW0tFWVdPUkQgQVJHVU1FTlRdLi4uICBGVU5DVElPTikKKwor ICAgQSB3aWRnZXQgdG8gcmVwcmVzZW50IGEgbGluayB0byBhbiBFbWFjcyBmdW5jdGlvbi4gIEl0 cyBzdXBlciBpcyB0aGUKK+KAmGxpbmvigJkgd2lkZ2V0LgorCisgICBJdCBvdmVycmlkZXMgdGhl IOKAmDphY3Rpb27igJkgcHJvcGVydHksIHRvIGEgZnVuY3Rpb24gdG8gZGVzY3JpYmUKK0ZVTkNU SU9OLgorCis4LjEuNiBUaGUg4oCYdmFyaWFibGUtbGlua+KAmSBXaWRnZXQKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1N5bnRheDoKKworICAgICBUWVBFIDo6PSAodmFyaWFi bGUtbGluayBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIFZBUikKKworICAgQSB3aWRnZXQgdG8gcmVw cmVzZW50IGEgbGluayB0byBhbiBFbWFjcyB2YXJpYWJsZS4gIEl0cyBzdXBlciBpcyB0aGUKK+KA mGxpbmvigJkgd2lkZ2V0LgorCisgICBJdCBvdmVycmlkZXMgdGhlIOKAmDphY3Rpb27igJkgcHJv cGVydHksIHRvIGEgZnVuY3Rpb24gdG8gZGVzY3JpYmUgVkFSLgorCis4LjEuNyBUaGUg4oCYZmFj ZS1saW5r4oCZIFdpZGdldAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTeW50YXg6 CisKKyAgICAgVFlQRSA6Oj0gKGZhY2UtbGluayBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIEZBQ0Up CisKKyAgIEEgd2lkZ2V0IHRvIHJlcHJlc2VudCBhIGxpbmsgdG8gYW4gRW1hY3MgZmFjZS4gIEl0 cyBzdXBlciBpcyB0aGUKK+KAmGxpbmvigJkgd2lkZ2V0LgorCisgICBJdCBvdmVycmlkZXMgdGhl IOKAmDphY3Rpb27igJkgcHJvcGVydHksIHRvIGEgZnVuY3Rpb24gdG8gZGVzY3JpYmUgRkFDRS4K KworOC4xLjggVGhlIOKAmGZpbGUtbGlua+KAmSBXaWRnZXQKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKworU3ludGF4OgorCisgICAgIFRZUEUgOjo9IChmaWxlLWxpbmsgW0tFWVdPUkQg QVJHVU1FTlRdLi4uICBGSUxFKQorCisgICBBIHdpZGdldCB0byByZXByZXNlbnQgYSBsaW5rIHRv IGEgZmlsZS4gIEl0cyBzdXBlciBpcyB0aGUg4oCYbGlua+KAmQord2lkZ2V0LgorCisgICBJdCBv dmVycmlkZXMgdGhlIOKAmDphY3Rpb27igJkgcHJvcGVydHksIHRvIGEgZnVuY3Rpb24gdG8gZmlu ZCB0aGUgZmlsZQorRklMRS4KKworOC4xLjkgVGhlIOKAmGVtYWNzLWxpYnJhcnktbGlua+KAmSBX aWRnZXQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU3ludGF4Ogor CisgICAgIFRZUEUgOjo9IChlbWFjcy1saWJyYXJ5LWxpbmsgW0tFWVdPUkQgQVJHVU1FTlRdLi4u ICBGSUxFKQorCisgICBBIHdpZGdldCB0byByZXByZXNlbnQgYSBsaW5rIHRvIGFuIEVtYWNzIExp c3AgZmlsZS4gIEl0cyBzdXBlciBpcyB0aGUKK+KAmGxpbmvigJkgd2lkZ2V0LgorCisgICBJdCBv dmVycmlkZXMgdGhlIOKAmDphY3Rpb27igJkgcHJvcGVydHksIHRvIGEgZnVuY3Rpb24gdG8gZmlu ZCB0aGUgZmlsZQorRklMRS4KKworOC4xLjEwIFRoZSDigJhlbWFjcy1jb21tZW50YXJ5LWxpbmvi gJkgV2lkZ2V0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitT eW50YXg6CisKKyAgICAgVFlQRSA6Oj0gKGVtYWNzLWNvbW1lbnRhcnktbGluayBbS0VZV09SRCBB UkdVTUVOVF0uLi4gIEZJTEUpCisKKyAgIEEgd2lkZ2V0IHRvIHJlcHJlc2VudCBhIGxpbmsgdG8g dGhlIENvbW1lbnQgc2VjdGlvbiBvZiBhbiBFbWFjcyBMaXNwCitmaWxlLiAgSXRzIHN1cGVyIGlz IHRoZSDigJhsaW5r4oCZIHdpZGdldC4KKworICAgSXQgb3ZlcnJpZGVzIHRoZSDigJg6YWN0aW9u 4oCZIHByb3BlcnR5LCB0byBhIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGZpbGUKK0ZJTEUgYW5kIHB1 dCBwb2ludCBpbiB0aGUgQ29tbWVudCBzZWN0aW9uLgorCis4LjEuMTEgVGhlIOKAmHB1c2gtYnV0 dG9u4oCZIFdpZGdldAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBTeW50YXg6 CiAKICAgICAgVFlQRSA6Oj0gKHB1c2gtYnV0dG9uIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgWyBW QUxVRSBdKQogCisgICBBIHdpZGdldCB0aGF0IGFjdHMgYXMgYSBwdXNoYWJsZSBidXR0b24uICBJ dHMgc3VwZXIgaXMgdGhlIOKAmGl0ZW3igJkKK3dpZGdldC4KKwogICAgVGhlIFZBTFVFLCBpZiBw cmVzZW50LCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eS4K IFRoZSB2YWx1ZSBzaG91bGQgYmUgYSBzdHJpbmcsIHdoaWNoIHdpbGwgYmUgaW5zZXJ0ZWQgaW4g dGhlIGJ1ZmZlci4KIAotICAgQnkgZGVmYXVsdCB0aGUgdGFnIHdpbGwgYmUgc2hvd24gaW4gYnJh Y2tldHMuCisgICBCeSBkZWZhdWx0LCBpdCBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgor 4oCYOmJ1dHRvbi1wcmVmaXjigJkKKyAgICAgVGhlIGVtcHR5IHN0cmluZy4KIAotIC0tIFVzZXIg T3B0aW9uOiB3aWRnZXQtcHVzaC1idXR0b24tcHJlZml4Ci0gICAgIFN0cmluZyB0byBwcmVmaXgg cHVzaCBidXR0b25zLgor4oCYOmJ1dHRvbi1zdWZmaXjigJkKKyAgICAgVGhlIGVtcHR5IHN0cmlu Zy4KIAotIC0tIFVzZXIgT3B0aW9uOiB3aWRnZXQtcHVzaC1idXR0b24tc3VmZml4Ci0gICAgIFN0 cmluZyB0byBzdWZmaXggcHVzaCBidXR0b25zLgor4oCYOnZhbHVlLWNyZWF0ZeKAmQorICAgICBJ bnNlcnRzIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIOKAnG9u4oCdIGFuZCDigJxvZmbigJ0gc3Rh dGVzIGZvciB0aGUgcHVzaAorICAgICBidXR0b24uCisKKyAgICAgVGhlIHJlcHJlc2VudGF0aW9u IG1pZ2h0IGJlIGFuIGltYWdlLCBzdG9yZWQgaW4gdGhlIOKAmDp0YWctZ2x5cGjigJkKKyAgICAg cHJvcGVydHksIG9yIHRleHQuICBJZiBpdCBpcyB0ZXh0LCBpdCBtaWdodCBiZSB0aGUgdmFsdWUg b2YgdGhlCisgICAgIOKAmDp0YWfigJkgcHJvcGVydHksIG9yIHRoZSDigJg6dmFsdWXigJkgb2Yg dGhlIHdpZGdldCwgc3Vycm91bmRlZCB3aXRoCisgICAgIOKAmHdpZGdldC1wdXNoLWJ1dHRvbi1w cmVmaXjigJkgYW5kIOKAmHdpZGdldC1wdXNoLWJ1dHRvbi1zdWZmaXjigJkuICAqTm90ZQorICAg ICBDdXN0b21pemF0aW9uOjouCiAKLTUuNSBUaGUg4oCYZWRpdGFibGUtZmllbGTigJkgV2lkZ2V0 Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CivigJg6Zm9ybWF04oCZCisgICAgIEJ1 dHRvbml6ZXMgdGhlIHdpZGdldCwgdG8gbWFrZSBpdCBjbGlja2FibGUuCisKKzguMS4xMiBUaGUg 4oCYZWRpdGFibGUtZmllbGTigJkgV2lkZ2V0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAKIFN5bnRheDoKIAogICAgICBUWVBFIDo6PSAoZWRpdGFibGUtZmllbGQgW0tFWVdP UkQgQVJHVU1FTlRdLi4uIFsgVkFMVUUgXSkKIAorICAgQSB3aWRnZXQgdGhhdCBjYW4gYmUgZWRp dGVkIGJ5IHRoZSB1c2VyLiAgSXRzIHN1cGVyIGlzIHRoZSDigJhkZWZhdWx04oCZCit3aWRnZXQu CisKICAgIFRoZSBWQUxVRSwgaWYgcHJlc2VudCwgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSDi gJg6dmFsdWXigJkgcHJvcGVydHkuCi1UaGUgdmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nLCB3aGlj aCB3aWxsIGJlIGluc2VydGVkIGluIHRoZSBmaWVsZC4gIFRoaXMKLXdpZGdldCB3aWxsIG1hdGNo IGFsbCBzdHJpbmcgdmFsdWVzLgorVGhlIHZhbHVlIHNob3VsZCBiZSBhIHN0cmluZywgd2hpY2gg d2lsbCBiZSBpbnNlcnRlZCBpbiB0aGUgZmllbGQuICBJZgorbm90IHByZXNlbnQsIOKAmDp2YWx1 ZeKAmSBpcyB0aGUgZW1wdHkgc3RyaW5nLgogCi0gICBUaGUgZm9sbG93aW5nIGV4dHJhIHByb3Bl cnRpZXMgYXJlIHJlY29nbml6ZWQ6CisgICAqV2FybmluZzoqIEluIGFuIOKAmGVkaXRhYmxlLWZp ZWxk4oCZIHdpZGdldCwgdGhlIGVkaXRhYmxlIGZpZWxkIG11c3Qgbm90CitiZSBhZGphY2VudCB0 byBhbm90aGVyIHdpZGdldOKAlHRoYXQgd29u4oCZdCB3b3JrLiAgWW91IG11c3QgcHV0IHNvbWUg dGV4dAoraW4gYmV0d2Vlbi4gIEVpdGhlciBtYWtlIHRoaXMgdGV4dCBwYXJ0IG9mIHRoZSDigJhl ZGl0YWJsZS1maWVsZOKAmSB3aWRnZXQKK2l0c2VsZiwgb3IgaW5zZXJ0IGl0IHdpdGgg4oCYd2lk Z2V0LWluc2VydOKAmS4KKworICAgVGhpcyB3aWRnZXQgZWl0aGVyIG92ZXJyaWRlcyBvciBhZGRz IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKKwor4oCYOmNvbnZlcnQtd2lkZ2V04oCZCisgICAg IEp1c3QgbGlrZSB0aGUg4oCYaXRlbeKAmSB3aWRnZXQsIHRoaXMgZnVuY3Rpb24gYWxsb3dzIGl0 IHRvIGluaXRpYWxpemUKKyAgICAg4oCYOnZhbHVl4oCZIGZyb20gVkFMVUUuCisKK+KAmDprZXlt YXDigJkKKyAgICAgS2V5bWFwIHVzZWQgaW4gdGhlIGVkaXRhYmxlIGZpZWxkLgorCisgICAgIFRo ZSBkZWZhdWx0IHZhbHVlIGlzIOKAmHdpZGdldC1maWVsZC1rZXltYXDigJksIHdoaWNoIGFsbG93 cyB0aGUgdXNlcgorICAgICB0byB1c2UgYWxsIHRoZSBub3JtYWwgZWRpdGluZyBjb21tYW5kcywg ZXZlbiBpZiB0aGUgYnVmZmVy4oCZcyBtYWpvcgorICAgICBtb2RlIHN1cHByZXNzZXMgc29tZSBv ZiB0aGVtLiAgUHJlc3NpbmcgPFJFVD4gaW52b2tlcyB0aGUgZnVuY3Rpb24KKyAgICAgc3BlY2lm aWVkIGJ5IOKAmDphY3Rpb27igJkuCisKK+KAmDpmb3JtYXTigJkKKyAgICAgQnkgZGVmYXVsdCwg aXQgc3BlY2lmaWVzIHRvIGluc2VydCBvbmx5IHRoZSB3aWRnZXTigJlzIHZhbHVlLgorCisgICAg ICpXYXJuaW5nOiogSW4gYW4g4oCYZWRpdGFibGUtZmllbGTigJkgd2lkZ2V0LCB0aGUg4oCYJXbi gJkgZXNjYXBlIG11c3QgYmUKKyAgICAgcHJlY2VkZWQgYnkgc29tZSBvdGhlciB0ZXh0IGluIHRo ZSDigJg6Zm9ybWF04oCZIHN0cmluZyAoaWYgc3BlY2lmaWVkKS4KIAog4oCYOnNpemXigJkKICAg ICAgVGhlIHdpZHRoIG9mIHRoZSBlZGl0YWJsZSBmaWVsZC4KKwogICAgICBCeSBkZWZhdWx0IHRo ZSBmaWVsZCB3aWxsIHJlYWNoIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCiAKIOKAmDp2YWx1ZS1m YWNl4oCZCi0gICAgIEZhY2UgdXNlZCBmb3IgaGlnaGxpZ2h0aW5nIHRoZSBlZGl0YWJsZSBmaWVs ZC4gIERlZmF1bHQgaXMKLSAgICAg4oCYd2lkZ2V0LWZpZWxkLWZhY2XigJksIHNlZSAqbm90ZSBV c2VyIEludGVyZmFjZTo6LgorICAgICBGYWNlIHVzZWQgZm9yIGhpZ2hsaWdodGluZyB0aGUgZWRp dGFibGUgZmllbGQuCisKKyAgICAgRGVmYXVsdCBpcyDigJh3aWRnZXQtZmllbGQtZmFjZeKAmSwg Km5vdGUgVXNlciBJbnRlcmZhY2U6Oi4KIAog4oCYOnNlY3JldOKAmQotICAgICBDaGFyYWN0ZXIg dXNlZCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4gIFlvdSBjYW4gc2V0IHRoaXMgdG8sIGUuZy4sCi0g ICAgIOKAmD8q4oCZIGlmIHRoZSBmaWVsZCBjb250YWlucyBhIHBhc3N3b3JkIG9yIG90aGVyIHNl Y3JldCBpbmZvcm1hdGlvbi4KLSAgICAgQnkgZGVmYXVsdCwgdGhpcyBpcyDigJhuaWzigJksIGFu ZCB0aGUgdmFsdWUgaXMgbm90IHNlY3JldC4KKyAgICAgQ2hhcmFjdGVyIHVzZWQgdG8gZGlzcGxh eSB0aGUgdmFsdWUuCisKKyAgICAgWW91IGNhbiBzZXQgdGhpcyB0bywgZS5nLiwg4oCYPyrigJkg aWYgdGhlIGZpZWxkIGNvbnRhaW5zIGEgcGFzc3dvcmQgb3IKKyAgICAgb3RoZXIgc2VjcmV0IGlu Zm9ybWF0aW9uLiAgQnkgZGVmYXVsdCwgdGhpcyBpcyDigJhuaWzigJksIGFuZCB0aGUgdmFsdWUK KyAgICAgaXMgbm90IHNlY3JldC4KIAog4oCYOnZhbGlkLXJlZ2V4cOKAmQogICAgICBCeSBkZWZh dWx0IHRoZSDigJg6dmFsaWRhdGXigJkgZnVuY3Rpb24gd2lsbCBtYXRjaCB0aGUgY29udGVudCBv ZiB0aGUKLSAgICAgZmllbGQgd2l0aCB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUuICBUaGUg ZGVmYXVsdCB2YWx1ZSBpcyDigJgiIuKAmQotICAgICB3aGljaCBtYXRjaGVzIGV2ZXJ5dGhpbmcu CisgICAgIGZpZWxkIHdpdGggdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlLgorCisgICAgIFRo ZSBkZWZhdWx0IHZhbHVlIGlzIOKAmCIi4oCZIHdoaWNoIG1hdGNoZXMgZXZlcnl0aGluZy4KKwor 4oCYOnZhbGlkYXRl4oCZCisgICAgIFJldHVybnMg4oCYbmls4oCZIGlmIHRoZSBjdXJyZW50IHZh bHVlIG9mIHRoZSB3aWRnZXQgbWF0Y2hlcyB0aGUKKyAgICAg4oCYOnZhbGlkLXJlZ2V4cOKAmSB2 YWx1ZS4KKwor4oCYOnByb21wdC1pbnRlcm5hbOKAmQorICAgICBBIGZ1bmN0aW9uIHRvIHJlYWQg YSB2YWx1ZSBmb3Igd2lkZ2V0LCB1c2VkIGJ5IHRoZSDigJg6cHJvbXB0LXZhbHVl4oCZCisgICAg IGZ1bmN0aW9uLgorCivigJg6cHJvbXB0LWhpc3RvcnnigJkKKyAgICAgQSB2YXJpYWJsZSB0aGF0 IGhvbGRzIHRoZSBoaXN0b3J5IG9mIGZpZWxkIG1pbmlidWZmZXIgZWRpdHMuCisKK+KAmDpwcm9t cHQtdmFsdWXigJkKKyAgICAgQSBmdW5jdGlvbiB0aGF0IHVzZXMgdGhlIOKAmDpwcm9tcHQtaW50 ZXJuYWzigJkgZnVuY3Rpb24gYW5kIHRoZQorICAgICDigJg6cHJvbXB0LWhpc3RvcnnigJkgdmFs dWUgdG8gcHJvbXB0IGZvciBhIHN0cmluZywgYW5kIHJldHVuIHRoZSB1c2VyCisgICAgIHJlc3Bv bnNlIGluIHRoZSBleHRlcm5hbCBmb3JtYXQuCisKK+KAmDphY3Rpb27igJkKKyAgICAgV2hlbiBp bnZva2VkLCBtb3ZlcyBwb2ludCB0byB0aGUgbmV4dCBmaWVsZC4KKwor4oCYOnZhbHVlLWNyZWF0 ZeKAmQorICAgICBGdW5jdGlvbiB0aGF0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgdGhlIHdpZGdl dCwgcmVzcGVjdGluZyBpdHMKKyAgICAg4oCYOnNpemXigJkgYW5kIOKAmDp2YWx1ZeKAmS4KKwor 4oCYOnZhbHVlLXNldOKAmQorICAgICBGdW5jdGlvbiB0byB1c2UgdG8gbW9kaWZ5IHByb2dyYW1h dGljYWxseSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUKKyAgICAgd2lkZ2V0LgorCivigJg6dmFs dWUtZGVsZXRl4oCZCisgICAgIEZ1bmN0aW9uIHRoYXQgcmVtb3ZlcyB0aGUgd2lkZ2V0IHNvIGl0 IGNhbm5vdCBiZSBlZGl0ZWQgYW55bW9yZS4KKwor4oCYOnZhbHVlLWdldOKAmQorICAgICBGdW5j dGlvbiB0byByZXR1cm4gdGhlIGN1cnJlbnQgdGV4dCBpbiB0aGUgd2lkZ2V0LgorCisgICAgIEl0 IHRha2VzIGFuIG9wdGlvbmFsIGFyZ3VtZW50LCBOTy1UUlVOQ0FURS4gIElmIE5PLVRSVU5DQVRF IGlzIG5pbCwKKyAgICAgdHJ1bmNhdGVzIHRyYWlsaW5nIHNwYWNlcy4KKwor4oCYOm1hdGNo4oCZ CisgICAgIEZ1bmN0aW9uIHRoYXQgbWFrZXMgdGhlIHdpZGdldCBtYXRjaCBhbnkgc3RyaW5nIHZh bHVlLgorCis4LjEuMTMgVGhlIOKAmHRleHTigJkgV2lkZ2V0CistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKworU3ludGF4OgorCisgICAgIFRZUEUgOjo9ICh0ZXh0IFtLRVlXT1JEIEFSR1VNRU5U XS4uLiBbIFZBTFVFIF0pCisKKyAgIEEgd2lkZ2V0IGp1c3QgbGlrZSB0aGUg4oCYZWRpdGFibGUt ZmllbGTigJkgd2lkZ2V0LCBidXQgaW50ZW5kZWQgZm9yCittdWx0aWxpbmUgdGV4dCBmaWVsZHMu ICBJdHMgc3VwZXIgaXMgdGhlIOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdldC4KKworICAgSXQg b3ZlcnJpZGVzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKKwor4oCYOmZvcm1hdOKAmQorICAg ICBCeSBkZWZhdWx0LCBwcmludHMgYSB0YWcgYW5kIHRoZSB2YWx1ZS4KIAog4oCYOmtleW1hcOKA mQotICAgICBLZXltYXAgdXNlZCBpbiB0aGUgZWRpdGFibGUgZmllbGQuICBUaGUgZGVmYXVsdCB2 YWx1ZSBpcwotICAgICDigJh3aWRnZXQtZmllbGQta2V5bWFw4oCZLCB3aGljaCBhbGxvd3MgeW91 IHRvIHVzZSBhbGwgdGhlIG5vcm1hbAotICAgICBlZGl0aW5nIGNvbW1hbmRzLCBldmVuIGlmIHRo ZSBidWZmZXLigJlzIG1ham9yIG1vZGUgc3VwcHJlc3NlcyBzb21lCi0gICAgIG9mIHRoZW0uICBQ cmVzc2luZyA8UkVUPiBpbnZva2VzIHRoZSBmdW5jdGlvbiBzcGVjaWZpZWQgYnkKLSAgICAg4oCY OmFjdGlvbuKAmS4KLQotNS42IFRoZSDigJh0ZXh04oCZIFdpZGdldAotPT09PT09PT09PT09PT09 PT09PT09Ci0KLVRoaXMgaXMganVzdCBsaWtlIOKAmGVkaXRhYmxlLWZpZWxk4oCZLCBidXQgaW50 ZW5kZWQgZm9yIG11bHRpbGluZSB0ZXh0Ci1maWVsZHMuICBUaGUgZGVmYXVsdCDigJg6a2V5bWFw 4oCZIGlzIOKAmHdpZGdldC10ZXh0LWtleW1hcOKAmSwgd2hpY2ggZG9lcyBub3QKLXJlYmluZCB0 aGUgPFJFVD4ga2V5LgorICAgICBUaGUgZGVmYXVsdCBpcyDigJh3aWRnZXQtdGV4dC1rZXltYXDi gJksIHdoaWNoIGRvZXMgbm90IHJlYmluZCB0aGUKKyAgICAgPFJFVD4ga2V5LgogCi01LjcgVGhl IOKAmG1lbnUtY2hvaWNl4oCZIFdpZGdldAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PQor OC4xLjE0IFRoZSDigJhtZW51LWNob2ljZeKAmSBXaWRnZXQKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIAogU3ludGF4OgogCiAgICAgIFRZUEUgOjo9IChtZW51LWNob2ljZSBbS0VZ V09SRCBBUkdVTUVOVF0uLi4gVFlQRSAuLi4gKQogCisgICBBIHdpZGdldCB0byByZXByZXNlbnQg YSBtZW51IG9mIG9wdGlvbnMuICBJdHMgc3VwZXIgaXMgdGhlIOKAmGRlZmF1bHTigJkKK3dpZGdl dC4KKwogICAgVGhlIFRZUEUgYXJndW1lbnQgcmVwcmVzZW50cyBlYWNoIHBvc3NpYmxlIGNob2lj ZS4gIFRoZSB3aWRnZXTigJlzCi12YWx1ZSB3aWxsIGJlIHRoYXQgb2YgdGhlIGNob3NlbiBUWVBF IGFyZ3VtZW50LiAgVGhpcyB3aWRnZXQgd2lsbCBtYXRjaAotYW55IHZhbHVlIG1hdGNoaW5nIGF0 IGxlYXN0IG9uZSBvZiB0aGUgc3BlY2lmaWVkIFRZUEUgYXJndW1lbnRzLgordmFsdWUgd2lsbCBi ZSB0aGF0IG9mIHRoZSBjaG9zZW4gVFlQRSBhcmd1bWVudC4KKworICAgSXQgZWl0aGVyIG92ZXJy aWRlcyBvciBhZGRzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKKwor4oCYOmNvbnZlcnQtd2lk Z2V04oCZCisgICAgIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBjYXJlIG9mIGNvbnZlcnRpbmcgZWFj aCBwb3NzaWJsZSBjaG9pY2UuCisKK+KAmDpjb3B54oCZCisgICAgIEEgZnVuY3Rpb24gdG8gY29w eSBlYWNoIHBvc3NpYmxlIGNob2ljZS4KKwor4oCYOmZvcm1hdOKAmQorICAgICBCeSBkZWZhdWx0 LCBidXR0b25pemUgdGhlIHRhZyBhbmQgc2hvdyB0aGUgdmFsdWUuCiAKIOKAmDp2b2lk4oCZCiAg ICAgIFdpZGdldCB0eXBlIHVzZWQgYXMgYSBmYWxsYmFjayB3aGVuIHRoZSB2YWx1ZSBkb2VzIG5v dCBtYXRjaCBhbnkgb2YKICAgICAgdGhlIHNwZWNpZmllZCBUWVBFIGFyZ3VtZW50cy4KIAorICAg ICBCeSBkZWZhdWx0IHRoaXMgaXMgYW4g4oCYaXRlbeKAmSB3aWRnZXQuCisKIOKAmDpjYXNlLWZv bGTigJkKLSAgICAgU2V0IHRoaXMgdG8g4oCYbmls4oCZIGlmIHlvdSBkb27igJl0IHdhbnQgdG8g aWdub3JlIGNhc2Ugd2hlbiBwcm9tcHRpbmcKLSAgICAgZm9yIGEgY2hvaWNlIHRocm91Z2ggdGhl IG1pbmlidWZmZXIuCisgICAgIElmIOKAmG5pbOKAmSBkb27igJl0IGlnbm9yZSBjYXNlIHdoZW4g cHJvbXB0aW5nIGZvciBhIGNob2ljZSB0aHJvdWdoIHRoZQorICAgICBtaW5pYnVmZmVyLgorCisg ICAgIEJ5IGRlZmF1bHQsIGl0cyB2YWx1ZSBpcyDigJh04oCZLgogCiDigJg6Y2hpbGRyZW7igJkK ICAgICAgQSBsaXN0IHdob3NlIENBUiBpcyB0aGUgd2lkZ2V0IHJlcHJlc2VudGluZyB0aGUgY3Vy cmVudGx5IGNob3NlbgpAQCAtNzMyLDE5ICsxNTM5LDc3IEBACiDigJg6YXJnc+KAmQogICAgICBU aGUgbGlzdCBvZiB0eXBlcy4KIAotNS44IFRoZSDigJhyYWRpby1idXR0b24tY2hvaWNl4oCZIFdp ZGdldAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CivigJg6dmFsdWUtY3Jl YXRl4oCZCisgICAgIFRoZSBmdW5jdGlvbiB0aGF0IGluc2VydHMgdGhlIGN1cnJlbnQgdmFsdWUg Zm9yIHRoZSB3aWRnZXQuCisKKyAgICAgSXQgaW5zZXJ0cyB0aGUgZmlyc3QgY2hvaWNlIHRoYXQg bWF0Y2hlcywgYXMgd2l0aCB0aGUg4oCYOm1hdGNo4oCZCisgICAgIGZ1bmN0aW9uLCB0aGUgdmFs dWUgb2YgdGhlIHdpZGdldC4KKwor4oCYOnZhbHVlLWdldOKAmQorICAgICBSZXR1cm5zIHRoZSB2 YWx1ZSBvZiB0aGUgZmlyc3QgY2hpbGQgZm9yIHRoZSB3aWRnZXQgKHNlZSB0aGUKKyAgICAgZGVz Y3JpcHRpb24gZm9yIOKAmDpjaGlsZHJlbuKAmSBhYm92ZSkuCisKK+KAmDp2YWx1ZS1pbmxpbmXi gJkKKyAgICAgUmV0dXJucyB0aGUgaW5saW5lIHZhbHVlIG9mIHRoZSBmaXJzdCBjaGlsZCBmb3Ig dGhlIHdpZGdldC4KKwor4oCYOmRlZmF1bHQtZ2V04oCZCisgICAgIFRoZSBkZWZhdWx0IHZhbHVl IGZvciB0aGlzIHdpZGdldCBpcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlCisgICAgIGZpcnN0 IGNob2ljZSwgaW4gY2FzZSDigJg6dmFsdWXigJkgaXMgbWlzc2luZy4KKworICAgICBUaGlzIG1l YW5zIHRoYXQgaWYgeW91IHdhbnQgYSBzcGVjaWZpYyBkZWZhdWx0IHZhbHVlIGZvciB0aGUKKyAg ICAg4oCYbWVudS1jaG9pY2XigJkgd2lkZ2V0LCB5b3Ugc2hvdWxkIGVpdGhlciBwYXNzIGEg4oCY OnZhbHVl4oCZIHByb3BlcnR5CisgICAgIHdoZW4gY3JlYXRpbmcgaXQsIG9yIGFycmFuZ2UgdGhl IGNob2ljZXMgc28gdGhhdCB0aGUgZmlyc3Qgb25lIGNhbgorICAgICBob2xkIHlvdXIgZGVzaXJl ZCBkZWZhdWx0IHZhbHVlLgorCivigJg6bW91c2UtZG93bi1hY3Rpb27igJkKKyAgICAgQSBmdW5j dGlvbiB0aGF0IHRha2VzIGNhcmUgb2Ygc2hvd2luZyBhIG1lbnUsIGlmIHBvc3NpYmxlIGFuZAor ICAgICBkZXNpcmVkLgorCivigJg6YWN0aW9u4oCZCisgICAgIEEgZnVuY3Rpb24gdGhhdCB0YWtl cyBjYXJlIG9mIGdldHRpbmcgYSBuZXcgY2hvaWNlIGZvciB0aGUgd2lkZ2V0LgorCisgICAgIERl cGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIGNob2ljZXMgYXZhaWxhYmxlLCBpdCBtYXkgc2hvdyBh IG1lbnUgb3IKKyAgICAganVzdCB0b2dnbGUgdGhlIGNob2ljZXMsIG9yIGV2ZW4gZG8gbm90aGlu ZyBhdCBhbGwuCisKKyAgICAgQWZ0ZXIgZ2V0dGluZyB0aGUgY2hvaWNlLCBpdCByZWNyZWF0ZXMg dGhlIHdpZGdldCBhbmQgbm90aWZpZXMgaXQuCisKK+KAmDp2YWxpZGF0ZeKAmQorICAgICBSZXR1 cm5zIOKAmG5pbOKAmSBpZiB0aGUgd2lkZ2V04oCZcyB2YWx1ZSBpcyBhIHZhbGlkIGNob2ljZS4K Kwor4oCYOm1hdGNo4oCZCisgICAgIFRoaXMgd2lkZ2V0IHdpbGwgbWF0Y2ggYW55IHZhbHVlIG1h dGNoaW5nIGF0IGxlYXN0IG9uZSBvZiB0aGUKKyAgICAgc3BlY2lmaWVkIFRZUEUgYXJndW1lbnRz LgorCivigJg6bWF0Y2gtaW5saW5l4oCZCisgICAgIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIG5v bi3igJhuaWzigJkgaWYgdGhlIHZhbHVlcyBtYXRjaCB0aGUgd2lkZ2V0LAorICAgICB0YWtpbmcg aW50byBhY2NvdW50IHRoZSDigJg6aW5saW5l4oCZIHByb3BlcnR5LgorCis4LjEuMTUgVGhlIOKA mHJhZGlvLWJ1dHRvbi1jaG9pY2XigJkgV2lkZ2V0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIAogU3ludGF4OgogCiAgICAgIFRZUEUgOjo9IChyYWRpby1idXR0b24t Y2hvaWNlIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgVFlQRSAuLi4gKQogCi0gICBUaGUgY29tcG9u ZW50IHR5cGVzIHNwZWNpZnkgdGhlIGNob2ljZXMsIHdpdGggb25lIHJhZGlvIGJ1dHRvbiBmb3IK KyAgIEEgd2lkZ2V0IHRvIHJlcHJlc2VudCBhIGNob2ljZSBmcm9tIG11bHRpcGxlIG9wdGlvbnMu ICBJdHMgc3VwZXIgaXMKK3RoZSDigJhkZWZhdWx04oCZIHdpZGdldC4KKworICAgVGhlIGNvbXBv bmVudCBUWVBFUyBzcGVjaWZ5IHRoZSBjaG9pY2VzLCB3aXRoIG9uZSByYWRpbyBidXR0b24gZm9y CiBlYWNoLiAgVGhlIHdpZGdldOKAmXMgdmFsdWUgd2lsbCBiZSB0aGF0IG9mIHRoZSBjaG9zZW4g VFlQRSBhcmd1bWVudC4KLVRoaXMgd2lkZ2V0IG1hdGNoZXMgYW55IHZhbHVlIHRoYXQgbWF0Y2hl cyBhdCBsZWFzdCBvbmUgb2YgdGhlIHNwZWNpZmllZAotVFlQRSBhcmd1bWVudHMuCiAKLSAgIFRo ZSBmb2xsb3dpbmcgZXh0cmEgcHJvcGVydGllcyBhcmUgcmVjb2duaXplZC4KKyAgIEl0IG92ZXJy aWRlcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CisKK+KAmDpjb252ZXJ0LXdpZGdldOKAmQor ICAgICBBcyBvdGhlciBjb21wb3NpdGUgd2lkZ2V0cywgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGNh cmUgb2YKKyAgICAgY29udmVydGluZyBlYWNoIGF2YWlsYWJsZSBjaG9pY2UuCisKK+KAmDpjb3B5 4oCZCisgICAgIEEgZnVuY3Rpb24gdG8gY29weSBlYWNoIGF2YWlsYWJsZSBjaG9pY2UuCisKK+KA mDphY3Rpb27igJkKKyAgICAgQSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiBhbnkgcmFkaW8gYnV0 dG9uIHdhcyBwcmVzc2VkIGFuZAorICAgICBhY3RpdmF0ZXMgdGhlIHByZXNzZWQgb25lLCBwb3Nz aWJseSBkZWFjdGl2YXRpbmcgYW4gb2xkIG9uZS4gIFRoZW4sCisgICAgIGl0IG5vdGlmaWVzIGl0 c2VsZi4KIAog4oCYOmVudHJ5LWZvcm1hdOKAmQogICAgICBUaGlzIHN0cmluZyB3aWxsIGJlIGlu c2VydGVkIGZvciBlYWNoIGVudHJ5IGluIHRoZSBsaXN0LiAgVGhlCkBAIC03NTYsNiArMTYyMSw5 IEBACiAgICAgIOKAmCUl4oCZCiAgICAgICAgICAgSW5zZXJ0IGEgbGl0ZXJhbCDigJgl4oCZLgog CivigJg6Zm9ybWF04oCZCisgICAgIEJ5IGRlZmF1bHQsIGl0IGluc2VydHMgaXRzIHZhbHVlLgor CiDigJg6YnV0dG9uLWFyZ3PigJkKICAgICAgQSBsaXN0IG9mIGtleXdvcmRzIHRvIHBhc3MgdG8g dGhlIHJhZGlvIGJ1dHRvbnMuICBVc2VmdWwgZm9yCiAgICAgIHNldHRpbmcsIGUuZy4sIHRoZSDi gJg6aGVscC1lY2hv4oCZIGZvciBlYWNoIGJ1dHRvbi4KQEAgLTc2NywxMSArMTYzNSwzNyBAQAog ICAgICBUaGUgd2lkZ2V0cyByZXByZXNlbnRpbmcgZWFjaCB0eXBlLgogCiDigJg6Y2hvaWNl4oCZ Ci0gICAgIFRoZSBjdXJyZW50IGNob3NlbiB0eXBlCisgICAgIFRoZSBjdXJyZW50IGNob3NlbiB0 eXBlLgogCiDigJg6YXJnc+KAmQogICAgICBUaGUgbGlzdCBvZiB0eXBlcy4KIAor4oCYOnZhbHVl LWNyZWF0ZeKAmQorICAgICBBIGZ1bmN0aW9uIHRvIGluc2VydCBhbGwgYXZhaWxhYmxlIGNob2lj ZXMuCisKK+KAmDp2YWx1ZS1nZXTigJkKKyAgICAgUmV0dXJucyB0aGUgdmFsdWUgZm9yIHRoZSBj aG9zZW4gd2lkZ2V0LgorCivigJg6dmFsdWUtc2V04oCZCisgICAgIEEgZnVuY3Rpb24gdG8gc2V0 IHRoZSB2YWx1ZSB0byBvbmUgb2YgaXRzIGF2YWlsYWJsZSBvcHRpb25zLgorCivigJg6dmFsdWUt aW5saW5l4oCZCisgICAgIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBpbmxpbmUgdmFsdWUg b2YgdGhlIGNoaWxkIHdpZGdldC4KKwor4oCYOm9mZnNldOKAmQorICAgICBCeSBkZWZhdWx0LCB0 aGlzIHdpZGdldCBoYXMgYW4gb2Zmc2V0IG9mIDQuCisKK+KAmDp2YWxpZGF0ZeKAmQorICAgICBU aGUgd2lkZ2V0IHZhbGlkYXRlcyBpZiB0aGUgY3VycmVudCB2YWx1ZSBpcyB2YWxpZCBmb3Igb25l IG9mIGl0cworICAgICBjaGlsZHJlbi4KKwor4oCYOm1hdGNo4oCZCisgICAgIFRoaXMgd2lkZ2V0 IG1hdGNoZXMgYW55IHZhbHVlIHRoYXQgbWF0Y2hlcyBhdCBsZWFzdCBvbmUgb2YgdGhlCisgICAg IHNwZWNpZmllZCBUWVBFIGFyZ3VtZW50cy4KKwor4oCYOm1hdGNoLWlubGluZeKAmQorICAgICBM aWtlIHRoZSDigJg6bWF0Y2jigJkgZnVuY3Rpb24sIGJ1dCB0YWtpbmcgaW50byBhY2NvdW50IGlu bGluZSB2YWx1ZXMuCisKICAgIFlvdSBjYW4gYWRkIGV4dHJhIHJhZGlvIGJ1dHRvbiBpdGVtcyB0 byBhIOKAmHJhZGlvLWJ1dHRvbi1jaG9pY2XigJkKIHdpZGdldCBhZnRlciBpdCBoYXMgYmVlbiBj cmVhdGVkIHdpdGggdGhlIGZ1bmN0aW9uCiDigJh3aWRnZXQtcmFkaW8tYWRkLWl0ZW3igJkuCkBA IC03ODQsNzcgKzE2NzgsMTcyIEBACiB3aWRnZXQgaGFzIGJlZW4gY3JlYXRlZCB3aWxsICpub3Qq IGJlIHByb3Blcmx5IGRlc3RydWN0ZWQgd2hlbiB5b3UgY2FsbAog4oCYd2lkZ2V0LWRlbGV0ZeKA mS4KIAotNS45IFRoZSDigJhpdGVt4oCZIFdpZGdldAotPT09PT09PT09PT09PT09PT09PT09Cis4 LjEuMTYgVGhlIOKAmGNob2ljZS1pdGVt4oCZIFdpZGdldAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogCiBTeW50YXg6CiAKLSAgICAgSVRFTSA6Oj0gKGl0ZW0gW0tFWVdPUkQgQVJH VU1FTlRdLi4uIFZBTFVFKQorICAgICBJVEVNIDo6PSAoY2hvaWNlLWl0ZW0gW0tFWVdPUkQgQVJH VU1FTlRdLi4uIFZBTFVFKQogCi0gICBUaGUgVkFMVUUsIGlmIHByZXNlbnQsIGlzIHVzZWQgdG8g aW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl4oCZIHByb3BlcnR5LgotVGhlIHZhbHVlIHNob3VsZCBi ZSBhIHN0cmluZywgd2hpY2ggd2lsbCBiZSBpbnNlcnRlZCBpbiB0aGUgYnVmZmVyLgotVGhpcyB3 aWRnZXQgd2lsbCBvbmx5IG1hdGNoIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICBBIHdpZGdldCB0 byByZXByZXNlbnQgYSBjaG9pY2UgaW4gYSDigJhtZW51LWNob2ljZeKAmSB3aWRnZXQuICBJdHMg c3VwZXIKK2lzIHRoZSDigJhpdGVt4oCZIHdpZGdldC4KIAotNS4xMCBUaGUg4oCYY2hvaWNlLWl0 ZW3igJkgV2lkZ2V0Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgVGhlIFZBTFVF LCBpZiBwcmVzZW50LCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIOKAmDp2YWx1ZeKAmSBwcm9w ZXJ0eS4KIAotU3ludGF4OgorICAgSXQgb3ZlcnJpZGVzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGll czoKIAotICAgICBJVEVNIDo6PSAoY2hvaWNlLWl0ZW0gW0tFWVdPUkQgQVJHVU1FTlRdLi4uIFZB TFVFKQor4oCYOmFjdGlvbuKAmQorICAgICBBY3RpdmF0aW5nIHRoZSBidXR0b24gb2YgYSDigJhj aG9pY2UtaXRlbeKAmSBpcyBlcXVpdmFsZW50IHRvCisgICAgIGFjdGl2YXRpbmcgdGhlIHBhcmVu dCB3aWRnZXQuCiAKLSAgIFRoZSBWQUxVRSwgaWYgcHJlc2VudCwgaXMgdXNlZCB0byBpbml0aWFs aXplIHRoZSDigJg6dmFsdWXigJkgcHJvcGVydHkuCi1UaGUgdmFsdWUgc2hvdWxkIGJlIGEgc3Ry aW5nLCB3aGljaCB3aWxsIGJlIGluc2VydGVkIGluIHRoZSBidWZmZXIgYXMgYQotYnV0dG9uLiAg QWN0aXZhdGluZyB0aGUgYnV0dG9uIG9mIGEg4oCYY2hvaWNlLWl0ZW3igJkgaXMgZXF1aXZhbGVu dCB0bwotYWN0aXZhdGluZyB0aGUgcGFyZW50IHdpZGdldC4gIFRoaXMgd2lkZ2V0IHdpbGwgb25s eSBtYXRjaCB0aGUgc3BlY2lmaWVkCi12YWx1ZS4KK+KAmDpmb3JtYXTigJkKKyAgICAgQnkgZGVm YXVsdCwgaXQgYnV0dG9uaXplcyB0aGUgdGFnIChpLmUuLCBpdHMgdmFsdWUpIGFuZCBhZGRzIGEK KyAgICAgbmV3bGluZSBjaGFyYWN0ZXIgYXQgdGhlIGVuZCBvZiB0aGUgd2lkZ2V0LgogCi01LjEx IFRoZSDigJh0b2dnbGXigJkgV2lkZ2V0Ci09PT09PT09PT09PT09PT09PT09PT09PT0KKzguMS4x NyBUaGUg4oCYdG9nZ2xl4oCZIFdpZGdldAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAog U3ludGF4OgogCiAgICAgIFRZUEUgOjo9ICh0b2dnbGUgW0tFWVdPUkQgQVJHVU1FTlRdLi4uKQog CisgICBBIHdpZGdldCB0aGF0IGNhbiB0b2dnbGUgYmV0d2VlbiB0d28gc3RhdGVzLiAgSXRzIHN1 cGVyIGlzIHRoZSDigJhpdGVt4oCZCit3aWRnZXQuCisKICAgIFRoZSB3aWRnZXQgaGFzIHR3byBw b3NzaWJsZSBzdGF0ZXMsIOKAmG9u4oCZIGFuZCDigJhvZmbigJksIHdoaWNoIGNvcnJlc3BvbmQK IHRvIGEg4oCYdOKAmSBvciDigJhuaWzigJkgdmFsdWUsIHJlc3BlY3RpdmVseS4KIAotICAgVGhl IGZvbGxvd2luZyBleHRyYSBwcm9wZXJ0aWVzIGFyZSByZWNvZ25pemVkOgorICAgSXQgZWl0aGVy IG92ZXJyaWRlcyBvciBhZGRzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKKwor4oCYOmZvcm1h dOKAmQorICAgICBCeSBkZWZhdWx0LCBpdCBidXR0b25pemVzIHRoZSB2YWx1ZSBhbmQgYWRkcyBh IG5ld2xpbmUgYXQgdGhlIGVuZAorICAgICBvZiB0aGUgd2lkZ2V0LgogCiDigJg6b27igJkKICAg ICAgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSDigJhvbuKAmSBzdGF0ZS4gIEJ5IGRlZmF1bHQg dGhlIHN0cmluZyDigJhvbuKAmS4KKwog4oCYOm9mZuKAmQogICAgICBBIHN0cmluZyByZXByZXNl bnRpbmcgdGhlIOKAmG9mZuKAmSBzdGF0ZS4gIEJ5IGRlZmF1bHQgdGhlIHN0cmluZwogICAgICDi gJhvZmbigJkuCisKIOKAmDpvbi1nbHlwaOKAmQogICAgICBOYW1lIG9mIGEgZ2x5cGggdG8gYmUg dXNlZCBpbnN0ZWFkIG9mIHRoZSDigJg6b27igJkgdGV4dCBzdHJpbmcsIG9uCiAgICAgIGVtYWNz ZW4gdGhhdCBzdXBwb3J0cyB0aGlzLgorCiDigJg6b2ZmLWdseXBo4oCZCiAgICAgIE5hbWUgb2Yg YSBnbHlwaCB0byBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIOKAmDpvZmbigJkgdGV4dCBzdHJpbmcs IG9uCiAgICAgIGVtYWNzZW4gdGhhdCBzdXBwb3J0cyB0aGlzLgogCi01LjEyIFRoZSDigJhjaGVj a2JveOKAmSBXaWRnZXQKLT09PT09PT09PT09PT09PT09PT09PT09PT09CivigJg6dmFsdWUtY3Jl YXRl4oCZCisgICAgIEEgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIHRoZSB3aWRnZXTigJlzIHZhbHVl LCBhY2NvcmRpbmcgdG8gaXRzIOKAmDpvbuKAmQorICAgICBvciDigJg6b2Zm4oCZIHN0YXRlLgor CivigJg6YWN0aW9u4oCZCisgICAgIEZ1bmN0aW9uIHRvIHRvZ2dsZSB0aGUgc3RhdGUgb2YgdGhl IHdpZGdldC4gIEFmdGVyIHRvZ2dsaW5nLCBpdAorICAgICBub3RpZmllcyBpdHNlbGYuCisKK+KA mDptYXRjaOKAmQorICAgICBUaGlzIHdpZGdldCBtYXRjaGVzIGFueXRoaW5nLgorCis4LjEuMTgg VGhlIOKAmHJhZGlvLWJ1dHRvbi10b2dnbGXigJkgV2lkZ2V0CistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU3ludGF4OgorCisgICAgIFRZUEUgOjo9IChyYWRpby1i dXR0b24tdG9nZ2xlIFtLRVlXT1JEIEFSR1VNRU5UXS4uLikKKworICAgQSB0b2dnbGUgdG8gdXNl IGluIHRoZSDigJhyYWRpb+KAmSB3aWRnZXQuCisKKyAgIEl0IG92ZXJyaWRlcyB0aGUgZm9sbG93 aW5nIHByb3BlcnRpZXM6CisKK+KAmDpidXR0b24tcHJlZml44oCZCisgICAgIFRoZSBlbXB0eSBz dHJpbmcuCisKK+KAmDpidXR0b24tc3VmZml44oCZCisgICAgIFRoZSBlbXB0eSBzdHJpbmcuCisK K+KAmDpvbuKAmQorICAgICBUaGUgc3RyaW5nIOKAnCgqKeKAnSwgdG8gcmVwcmVzZW50IHRoZSDi gJhvbuKAmSBzdGF0ZS4KKwor4oCYOm9mZuKAmQorICAgICBUaGUgc3RyaW5nIOKAnCggKeKAnSwg dG8gcmVwcmVzZW50IHRoZSDigJhvZmbigJkgc3RhdGUuCisKK+KAmDpvbi1nbHlwaOKAmQorICAg ICBUaGUgbmFtZSBvZiBhbiBpbWFnZSB0byByZXByZXNlbnQgdGhlIOKAmG9u4oCZIHN0YXRlLgor CivigJg6b2ZmLWdscHlo4oCZCisgICAgIFRoZSBuYW1lIG9mIGFuIGltYWdlIHRvIHJlcHJlc2Vu dCB0aGUg4oCYb2Zm4oCZIHN0YXRlLgorCivigJg6Zm9ybWF04oCZCisgICAgIEJ5IGRlZmF1bHQs IGl0IGJ1dHRvbml6ZXMgaXRzIHZhbHVlLgorCivigJg6bm90aWZ54oCZCisgICAgIEEgZnVuY3Rp b24gdG8gbm90aWZ5IGl0cyBwYXJlbnQuCiAKLVRoaXMgd2lkZ2V0IGhhcyB0d28gcG9zc2libGUg c3RhdGVzLCDigJhzZWxlY3RlZOKAmSBhbmQg4oCYdW5zZWxlY3RlZOKAmSwgd2hpY2gKLWNvcnJl c3BvbmRzIHRvIGEg4oCYdOKAmSBvciDigJhuaWzigJkgdmFsdWUuCis4LjEuMTkgVGhlIOKAmGNo ZWNrYm944oCZIFdpZGdldAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0gICBTeW50 YXg6CitTeW50YXg6CiAKICAgICAgVFlQRSA6Oj0gKGNoZWNrYm94IFtLRVlXT1JEIEFSR1VNRU5U XS4uLikKIAotNS4xMyBUaGUg4oCYY2hlY2tsaXN04oCZIFdpZGdldAotPT09PT09PT09PT09PT09 PT09PT09PT09PT09CisgICBBIHdpZGdldCB0byByZXByZXNlbnQgYSB0b2dnbGUgd2lkZ2V0LCB3 aXRoIGEgY2hlY2tib3guICBJdHMgc3VwZXIgaXMKK3RoZSDigJh0b2dnbGXigJkgd2lkZ2V0Lgor CisgICBUaGlzIHdpZGdldCBoYXMgdHdvIHBvc3NpYmxlIHN0YXRlcywg4oCYc2VsZWN0ZWTigJkg YW5kIOKAmHVuc2VsZWN0ZWTigJksCit3aGljaCBjb3JyZXNwb25kcyB0byBhIOKAmHTigJkgb3Ig 4oCYbmls4oCZIHZhbHVlLCByZXNwZWN0aXZlbHkuCisKKyAgIEl0IGVpdGhlciBvdmVycmlkZXMg b3IgYWRkcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CisKK+KAmDpidXR0b24tcHJlZml44oCZ CisgICAgIFRoZSBlbXB0eSBzdHJpbmcuCisKK+KAmDpidXR0b24tc3VmZml44oCZCisgICAgIFRo ZSBlbXB0eSBzdHJpbmcuCisKK+KAmDpmb3JtYXTigJkKKyAgICAgQnkgZGVmYXVsdCwgYnV0dG9u aXplcyB0aGUgdmFsdWUuCisKK+KAmDpvbuKAmQorICAgICBCeSBkZWZhdWx0LCB0aGUgc3RyaW5n IOKAnFtYXeKAnS4KKwor4oCYOm9mZuKAmQorICAgICBCeSBkZWZhdWx0LCB0aGUgc3RyaW5nIOKA nFsgXeKAnS4KKwor4oCYOm9uLWdseXBo4oCZCisgICAgIFRoZSBuYW1lIG9mIHRoZSBpbWFnZSB0 byB1c2Ugd2hlbiB0aGUgc3RhdGUgaXMg4oCYb27igJkuCisKK+KAmDpvZmYtZ2x5cGjigJkKKyAg ICAgVGhlIG5hbWUgb2YgdGhlIGltYWdlIHRvIHVzZSB3aGVuIHRoZSBzdGF0ZSBpcyDigJhvZmbi gJkuCisKK+KAmDphY3Rpb27igJkKKyAgICAgQSBmdW5jdGlvbiB0aGF0IHRvZ2dsZXMgdGhlIGNo ZWNrYm94LCBub3RpZmllcyB0aGUgcGFyZW50cyBhbmQgaW4KKyAgICAgdGhlIOKAmG9u4oCZIHN0 YXRlLCBhY3RpdmF0ZXMgaXRzIHNpYmxpbmdzLgorCis4LjEuMjAgVGhlIOKAmGNoZWNrbGlzdOKA mSBXaWRnZXQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFN5bnRheDoKIAogICAg ICBUWVBFIDo6PSAoY2hlY2tsaXN0IFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgVFlQRSAuLi4gKQog CisgICBBIHdpZGdldCB0byByZXByZXNlbnQgYSBtdWx0aXBsaWNlIGNob2ljZS4gIEl0cyBzdXBl ciBpcyB0aGUKK+KAmGRlZmF1bHTigJkgd2lkZ2V0LgorCiAgICBUaGUgVFlQRSBhcmd1bWVudHMg cmVwcmVzZW50IGVhY2ggY2hlY2tsaXN0IGl0ZW0uICBUaGUgd2lkZ2V04oCZcyB2YWx1ZQotd2ls bCBiZSBhIGxpc3QgY29udGFpbmluZyB0aGUgdmFsdWVzIG9mIGFsbCBjaGVja2VkIFRZUEUgYXJn dW1lbnRzLiAgVGhlCi1jaGVja2xpc3Qgd2lkZ2V0IHdpbGwgbWF0Y2ggYSBsaXN0IHdob3NlIGVs ZW1lbnRzIGFsbCBtYXRjaCBhdCBsZWFzdCBvbmUKLW9mIHRoZSBzcGVjaWZpZWQgVFlQRSBhcmd1 bWVudHMuCit3aWxsIGJlIGEgbGlzdCBjb250YWluaW5nIHRoZSB2YWx1ZXMgb2YgYWxsIGNoZWNr ZWQgVFlQRSBhcmd1bWVudHMuCiAKLSAgIFRoZSBmb2xsb3dpbmcgZXh0cmEgcHJvcGVydGllcyBh cmUgcmVjb2duaXplZDoKKyAgIEl0IGVpdGhlciBvdmVycmlkZXMgb3IgYWRkcyB0aGUgZm9sbG93 aW5nIHByb3BlcnRpZXM6CisKK+KAmDpjb252ZXJ0LXdpZGdldOKAmQorICAgICBBcyBvdGhlciBj b21wb3NpdGUgd2lkZ2V0cywgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGNhcmUgb2YKKyAgICAgY29u dmVydGluZyBlYWNoIGNoZWNrbGlzdCBpdGVtLgorCivigJg6Y29weeKAmQorICAgICBBIGZ1bmN0 aW9uIHRvIGNvcHkgZWFjaCBjaGVja2xpc3QgaXRlbS4KKwor4oCYOmZvcm1hdOKAmQorICAgICBC eSBkZWZhdWx0LCBpdCBpbnNlcnRzIGl0cyB2YWx1ZS4KIAog4oCYOmVudHJ5LWZvcm1hdOKAmQog ICAgICBUaGlzIHN0cmluZyB3aWxsIGJlIGluc2VydGVkIGZvciBlYWNoIGVudHJ5IGluIHRoZSBs aXN0LiAgVGhlCkBAIC04NjYsMTMgKzE4NTUsNiBAQAogICAgICDigJglJeKAmQogICAgICAgICAg IEluc2VydCBhIGxpdGVyYWwg4oCYJeKAmS4KIAot4oCYOmdyZWVkeeKAmQotICAgICBVc3VhbGx5 IGEgY2hlY2tsaXN0IHdpbGwgb25seSBtYXRjaCBpZiB0aGUgaXRlbXMgYXJlIGluIHRoZSBleGFj dAotICAgICBzZXF1ZW5jZSBnaXZlbiBpbiB0aGUgc3BlY2lmaWNhdGlvbi4gIEJ5IHNldHRpbmcg 4oCYOmdyZWVkeeKAmSB0bwotICAgICBub24t4oCYbmls4oCZLCBpdCB3aWxsIGFsbG93IHRoZSBp dGVtcyB0byBjb21lIGluIGFueSBzZXF1ZW5jZS4KLSAgICAgSG93ZXZlciwgaWYgeW91IGV4dHJh Y3QgdGhlIHZhbHVlIHRoZXkgd2lsbCBiZSBpbiB0aGUgc2VxdWVuY2UKLSAgICAgZ2l2ZW4gaW4g dGhlIGNoZWNrbGlzdCwgaS5lLiwgdGhlIG9yaWdpbmFsIHNlcXVlbmNlIGlzIGZvcmdvdHRlbi4K LQog4oCYOmJ1dHRvbi1hcmdz4oCZCiAgICAgIEEgbGlzdCBvZiBrZXl3b3JkcyB0byBwYXNzIHRv IHRoZSBjaGVja2JveGVzLiAgVXNlZnVsIGZvciBzZXR0aW5nLAogICAgICBlLmcuLCB0aGUg4oCY OmhlbHAtZWNob+KAmSBmb3IgZWFjaCBjaGVja2JveC4KQEAgLTg4NiwxNyArMTg2OCw0OCBAQAog 4oCYOmFyZ3PigJkKICAgICAgVGhlIGxpc3Qgb2YgdHlwZXMuCiAKLTUuMTQgVGhlIOKAmGVkaXRh YmxlLWxpc3TigJkgV2lkZ2V0Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CivigJg6 dmFsdWUtY3JlYXRl4oCZCisgICAgIFRoZSBmdW5jdGlvbiB0aGF0IHRha2VzIGNhcmUgb2YgaW5z ZXJ0aW5nIGFsbCB2YWx1ZXMuCisKK+KAmDp2YWx1ZS1nZXTigJkKKyAgICAgQSBmdW5jdGlvbiB0 aGF0IHJldHVybnMgYWxsIHZhbHVlcyBvZiBzZWxlY3RlZCBpdGVtcy4KKwor4oCYOnZhbGlkYXRl 4oCZCisgICAgIEEgZnVuY3Rpb24gdGhhdCBlbnN1cmVzIGFsbCBzZWxlY3RlZCBjaGlsZHJlbiBh cmUgdmFsaWQuCisKK+KAmDptYXRjaOKAmQorICAgICBUaGUgY2hlY2tsaXN0IHdpZGdldCB3aWxs IG1hdGNoIGEgbGlzdCB3aG9zZSBlbGVtZW50cyBhbGwgbWF0Y2ggYXQKKyAgICAgbGVhc3Qgb25l IG9mIHRoZSBzcGVjaWZpZWQgVFlQRSBhcmd1bWVudHMuCisKK+KAmDptYXRjaC1pbmxpbmXigJkK KyAgICAgTGlrZSB0aGUg4oCYOm1hdGNo4oCZIGZ1bmN0aW9uLCBidXQgdGFraW5nIGludG8gYWNj b3VudCB0aGUg4oCYOmlubGluZeKAmQorICAgICBwcm9wZXJ0eS4KKwor4oCYOmdyZWVkeeKAmQor ICAgICBVc3VhbGx5IGEgY2hlY2tsaXN0IHdpbGwgb25seSBtYXRjaCBpZiB0aGUgaXRlbXMgYXJl IGluIHRoZSBleGFjdAorICAgICBzZXF1ZW5jZSBnaXZlbiBpbiB0aGUgc3BlY2lmaWNhdGlvbi4g IEJ5IHNldHRpbmcg4oCYOmdyZWVkeeKAmSB0bworICAgICBub24t4oCYbmls4oCZLCBpdCB3aWxs IGFsbG93IHRoZSBpdGVtcyB0byBjb21lIGluIGFueSBzZXF1ZW5jZS4KKyAgICAgSG93ZXZlciwg aWYgeW91IGV4dHJhY3QgdGhlIHZhbHVlIHRoZXkgd2lsbCBiZSBpbiB0aGUgc2VxdWVuY2UKKyAg ICAgZ2l2ZW4gaW4gdGhlIGNoZWNrbGlzdCwgaS5lLiwgdGhlIG9yaWdpbmFsIHNlcXVlbmNlIGlz IGZvcmdvdHRlbi4KKworOC4xLjIxIFRoZSDigJhlZGl0YWJsZS1saXN04oCZIFdpZGdldAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFN5bnRheDoKIAogICAgICBUWVBFIDo6 PSAoZWRpdGFibGUtbGlzdCBbS0VZV09SRCBBUkdVTUVOVF0uLi4gVFlQRSkKIAotICAgVGhlIHZh bHVlIGlzIGEgbGlzdCwgd2hlcmUgZWFjaCBtZW1iZXIgcmVwcmVzZW50cyBvbmUgd2lkZ2V0IG9m IHR5cGUKLVRZUEUuCisgICBBIHdpZGdldCB0aGF0IGNhbiBob2xkIGEgdmFyaWFibGUgbGlzdCBv ZiB3aWRnZXRzIG9mIHRoZSBzYW1lIHR5cGUsCityZXByZXNlbnRlZCBieSBUWVBFLiAgSXRzIHN1 cGVyIGlzIHRoZSDigJhkZWZhdWx04oCZIHdpZGdldC4KIAotICAgVGhlIGZvbGxvd2luZyBleHRy YSBwcm9wZXJ0aWVzIGFyZSByZWNvZ25pemVkOgorICAgSXQgZWl0aGVyIG92ZXJyaWRlcyBvciBh ZGRzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKKwor4oCYOmNvbnZlcnQtd2lkZ2V04oCZCisg ICAgIEFzIG90aGVyIGNvbXBvc2l0ZSB3aWRnZXRzLCBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgY2Fy ZSBvZgorICAgICBjb252ZXJ0aW5nIGVhY2ggdHlwZSBpbiBUWVBFLgorCivigJg6Y29weeKAmQor ICAgICBBIGZ1bmN0aW9uIHRvIGNvcHkgdGhlIHR5cGVzIGdpdmVuIGluIFRZUEUuCiAKIOKAmDpl bnRyeS1mb3JtYXTigJkKICAgICAgVGhpcyBzdHJpbmcgd2lsbCBiZSBpbnNlcnRlZCBmb3IgZWFj aCBlbnRyeSBpbiB0aGUgbGlzdC4gIFRoZQpAQCAtOTA1LDkgKzE5MTgsOSBAQAogICAgICAgICAg IFRoaXMgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBidWZmZXIgcmVwcmVzZW50YXRpb24gb2Yg dGhlCiAgICAgICAgICAgVFlQRSB3aWRnZXQuCiAgICAgIOKAmCVp4oCZCi0gICAgICAgICAgSW5z ZXJ0IHRoZSBbSU5TXSBidXR0b24uCisgICAgICAgICAgSW5zZXJ0IHRoZSBbSU5TXSBidXR0b24s IGEgd2lkZ2V0IG9mIHR5cGUg4oCYaW5zZXJ0LWJ1dHRvbuKAmS4KICAgICAg4oCYJWTigJkKLSAg ICAgICAgICBJbnNlcnQgdGhlIFtERUxdIGJ1dHRvbi4KKyAgICAgICAgICBJbnNlcnQgdGhlIFtE RUxdIGJ1dHRvbiwgYSB3aWRnZXQgb2YgdHlwZSDigJhkZWxldGUtYnV0dG9u4oCZLgogICAgICDi gJglJeKAmQogICAgICAgICAgIEluc2VydCBhIGxpdGVyYWwg4oCYJeKAmS4KIApAQCAtOTIzLDMy ICsxOTM2LDEzOCBAQAog4oCYOmJ1dHRvbnPigJkKICAgICAgVGhlIHdpZGdldHMgcmVwcmVzZW50 aW5nIHRoZSBpbnNlcnQgYW5kIGRlbGV0ZSBidXR0b25zLgogCivigJg6Zm9ybWF04oCZCisgICAg IEJ5IGRlZmF1bHQsIGluc2VydCBpdHMgdmFsdWUgYW5kIGF0IHRoZSBhbmQgYWRkcyBhbiBpbnNl cnQgYnV0dG9uLgorCisgICAgIFRoaXMgaXMgdXNlZnVsIHNvIHRoYXQgbmV3IGVsZW1lbnRzIGNh biBiZSBhZGRlZCB0byB0aGUgbGlzdCB1cG9uCisgICAgIHVzZXIgcmVxdWVzdC4KKwor4oCYOmZv cm1hdC1oYW5kbGVy4oCZCisgICAgIEEgZnVuY3Rpb24gdGhhdCByZWNvZ25pemUgdGhlIGVzY2Fw ZSBmb3IgaW5zZXJ0aW5nIGFuIGluc2VydAorICAgICBidXR0b24uCisKK+KAmDpvZmZzZXTigJkK KyAgICAgQnkgZGVmYXVsdCwgdGhpcyB3aWRnZXQgaGFzIGFuIG9mZnNldCBvZiAxMi4KKwog4oCY OmNoaWxkcmVu4oCZCiAgICAgIFRoZSB3aWRnZXRzIHJlcHJlc2VudGluZyB0aGUgZWxlbWVudHMg b2YgdGhlIGxpc3QuCiAKIOKAmDphcmdz4oCZCiAgICAgIExpc3Qgd2hvc2UgQ0FSIGlzIHRoZSB0 eXBlIG9mIHRoZSBsaXN0IGVsZW1lbnRzLgogCi01LjE1IFRoZSDigJhncm91cOKAmSBXaWRnZXQK LT09PT09PT09PT09PT09PT09PT09PT09CivigJg6aW5zZXJ0LWJlZm9yZeKAmQorICAgICBGdW5j dGlvbiB0byBpbnNlcnQgYSBuZXcgd2lkZ2V0IGFzIGEgY2hpbGQgb2YgdGhlIOKAmGVkaXRhYmxl LWxpc3TigJkKKyAgICAgd2lkZ2V0LgorCisgICAgIFRoaXMgZnVuY3Rpb24gaW5zZXJ0cyBhIHJl Y2VudGx5IGRlbGV0ZWQgY2hpbGQsIGlmIHRoZXJlIGlzIG9uZS4KKyAgICAgVGhhdCBpcyB1c2Vm dWwsIHNvIHRoYXQgdGhlIHVzZXIgY2FuIG1vdmUgZWxlbWVudHMgaW4gYSBsaXN0CisgICAgIGVh c2lseS4gIElmIHRoZXJlIGlzIG5vdCBhIHJlY2VudGx5IGRlbGV0ZWQgY2hpbGQsIGl0IGluc2Vy dHMgYQorICAgICBjaGlsZCB3aXRoIGl0cyBkZWZhdWx0IHZhbHVlLgorCivigJg6ZGVsZXRlLWF0 4oCZCisgICAgIEZ1bmN0aW9uIHRvIGRlbGV0ZSBhIGNoaWxkIGZyb20gdGhlIHdpZGdldCwgYW5k IHN0b3JlIGl0IGludG8gdGhlCisgICAgIOKAmDpsYXN0LWRlbGV0ZWTigJkgbGlzdCwgc28gdGhh dCBpdCBjYW4gYmUgcmVpbnNlcnRlZCB3aGVuIHRoZQorICAgICDigJg6aW5zZXJ0LWJlZm9yZeKA mSBmdW5jdGlvbiBleGVjdXRlcy4KKwor4oCYOnZhbHVlLWNyZWF0ZeKAmQorICAgICBUaGUgZnVu Y3Rpb24gdGhhdCB0YWtlcyBjYXJlIG9mIGluc2VydGluZyBhbGwgdmFsdWVzLgorCivigJg6dmFs dWUtZ2V04oCZCisgICAgIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIGxpc3Qgd2l0aCB0aGUgdmFs dWUgb2YgdGhlIGNoaWxkIHdpZGdldHMuCisKK+KAmDp2YWxpZGF0ZeKAmQorICAgICBUaGlzIHdp ZGdldCB2YWxpZGF0ZXMgaWYgYWxsIGNoaWxkcmVuIHZhbGlkYXRlLgogCi1UaGlzIHdpZGdldCBz aW1wbHkgZ3JvdXAgb3RoZXIgd2lkZ2V0cyB0b2dldGhlci4KK+KAmDptYXRjaOKAmQorICAgICBU byBtYXRjaCwgdGhlIHZhbHVlIG11c3QgYmUgYSBsaXN0IGFuZCBhbGwgdGhlIGxpc3QgbWVtYmVy cyBtdXN0CisgICAgIG1hdGNoIHRoZSBzcGVjaWZpZWQgVFlQRS4KKwor4oCYOm1hdGNoLWlubGlu ZeKAmQorICAgICBMaWtlIHRoZSDigJg6bWF0Y2jigJkgZnVuY3Rpb24sIGJ1dCB0YWtpbmcgaW50 byBhY2NvdW50IGlubGluZSB2YWx1ZXMKKyAgICAgYW5kIHdpZGdldHMuCiAKLSAgIFN5bnRheDoK KzguMS4yMiBUaGUg4oCYZ3JvdXDigJkgV2lkZ2V0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisKK1N5bnRheDoKIAogICAgICBUWVBFIDo6PSAoZ3JvdXAgW0tFWVdPUkQgQVJHVU1FTlRdLi4u IFRZUEUuLi4pCiAKLSAgIFRoZSB2YWx1ZSBpcyBhIGxpc3QsIHdpdGggb25lIG1lbWJlciBmb3Ig ZWFjaCBUWVBFLgorICAgQSB3aWRnZXQgdG8gZ3JvdXAgb3RoZXIgd2lkZ2V0cy4gIEl0cyBzdXBl ciBpcyB0aGUg4oCYZGVmYXVsdOKAmSB3aWRnZXQuCiAKLTYgU2V4cCBUeXBlcwotKioqKioqKioq KioqCisgICBJdHMgdmFsdWUgaXMgYSBsaXN0LCB3aXRoIG9uZSBtZW1iZXIgZm9yIGVhY2ggVFlQ RS4KKworICAgSXQgb3ZlcnJpZGVzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKKwor4oCYOmNv bnZlcnQtd2lkZ2V04oCZCisgICAgIEFzIG90aGVyIGNvbXBvc2l0ZSB3aWRnZXRzLCBhIGZ1bmN0 aW9uIHRoYXQgdGFrZXMgY2FyZSBvZgorICAgICBjb252ZXJ0aW5nIGVhY2ggd2lkZ2V0IGluIFRZ UEUuCisKK+KAmDpjb3B54oCZCisgICAgIEEgZnVuY3Rpb24gdG8gY29weSB0aGUgdHlwZXMgZ2l2 ZW4gaW4gVFlQRS4KKwor4oCYOmZvcm1hdOKAmQorICAgICBCeSBkZWZhdWx0LCBkaXNwbGF5cyBh IG5ld2xpbmUgY2hhcmFjdGVyIGFuZCBpdHMgdmFsdWUuCisKK+KAmDp2YWx1ZS1jcmVhdGXigJkK KyAgICAgQSBmdW5jdGlvbiB0byBjcmVhdGUgZWFjaCBvZiBpdHMgY29tcG9uZW50cy4KKwor4oCY OnZhbHVlLWdldOKAmQorICAgICBUaGUgc2FtZSBmdW5jdGlvbiB1c2VkIGJ5IHRoZSDigJhlZGl0 YWJsZS1saXN04oCZIHdpZGdldC4KKwor4oCYOmRlZmF1bHQtZ2V04oCZCisgICAgIEEgZnVuY3Rp b24gdGhhdCByZXR1cm5zIGEgbGlzdCB3aG9zZSBtZW1iZXJzIGFyZSB0aGUgZGVmYXVsdCB2YWx1 ZXMKKyAgICAgb2YgZWFjaCB3aWRnZXQgaXQgZ3JvdXBzLgorCivigJg6dmFsaWRhdGXigJkKKyAg ICAgVGhpcyB3aWRnZXQgdmFsaWRhdGVzIGlmIGFsbCBvZiBpdHMgY2hpbGRyZW4gdmFsaWRhdGUu CisKK+KAmDptYXRjaOKAmQorICAgICBUaGlzIHdpZGdldCBtYXRjaGVzIGEgdmFsdWUgdGhhdCBt YXRjaGVzIGVhY2ggb2YgaXRzIGNvbXBvbmVudHMuCisKK+KAmDptYXRjaC1pbmxpbmXigJkKKyAg ICAgQXMg4oCYOm1hdGNo4oCZLCBidXQgdGFraW5nIGludG8gYWNjb3VudCB3aWRnZXRzIGFuZCB2 YWx1ZXMgdGhhdCBhcmUKKyAgICAgaW5saW5lLgorCis4LjEuMjMgVGhlIOKAmGRvY3VtZW50YXRp b24tc3RyaW5n4oCZIFdpZGdldAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorCitTeW50YXg6CisKKyAgICAgVFlQRSA6Oj0gKGRvY3VtZW50YXRpb24tc3RyaW5nIFtL RVlXT1JEIEFSR1VNRU5UXS4uLiBWQUxVRSkKKworICAgQSB3aWRnZXQgdG8gcmVwcmVzZW50IGEg ZG9jdW1lbnRhdGlvbiBzdHJpbmcuICBJdHMgc3VwZXIgaXMgdGhlCivigJhpdGVt4oCZIHdpZGdl dC4KKworICAgSXQgZWl0aGVyIG92ZXJyaWRlcyBvciBhZGRzIHRoZSBmb2xsb3dpbmcgcHJvcGVy dGllczoKKwor4oCYOmZvcm1hdOKAmQorICAgICBCeSBkZWZhdWx0LCBpbnNlcnQgaXRzIHZhbHVl LgorCivigJg6dmFsdWUtY3JlYXRl4oCZCisgICAgIEZ1bmN0aW9uIHRvIGluc2VydCBhIGRvY3Vt ZW50YXRpb24gc3RyaW5nLCBwb3NzaWJseSBoaWRpbmcgcGFydCBvZgorICAgICB0aGUgZG9jdW1l bnRhdGlvbiBpZiBpdHMgbGFyZ2UuCisKKyAgICAgVG8gc2hvdyBvciBoaWRlIHRoZSByZXN0IG9m IHRoZSBkb2N1bWVudGF0aW9uLCB1c2VzIGEg4oCYdmlzaWJpbGl0eeKAmQorICAgICB3aWRnZXQu CisKK+KAmDphY3Rpb27igJkKKyAgICAgRnVuY3Rpb24gdG8gdG9nZ2xlIHNob3dpbmcgdGhlIGRv Y3VtZW50YXRpb24gdXBvbiBhbiBldmVudC4KKwor4oCYOnZpc2liaWxpdHktd2lkZ2V04oCZCisg ICAgIEEgc3ltYm9sLCB0aGUgdHlwZSBvZiB0aGUgd2lkZ2V0IHRvIHVzZSBmb3IgdGhlIHZpc2li aWxpdHkgd2lkZ2V0LgorCisgICAgIFRoaXMgaXMsIGJ5IGRlZmF1bHQsIHRoZSBzeW1ib2wg4oCY dmlzaWJpbGl0eeKAmS4KKworOC4yIFNleHAgVHlwZXMKKz09PT09PT09PT09PT09CiAKIEEgbnVt YmVyIG9mIHdpZGdldHMgZm9yIGVkaXRpbmcg4oCccy1leHByZXNzaW9uc+KAnSAoTGlzcCB0eXBl cyksIHNleHAgZm9yCiBzaG9ydCwgYXJlIGFsc28gYXZhaWxhYmxlLiAgVGhlc2UgYmFzaWNhbGx5 IGZhbGwgaW4gc2V2ZXJhbCBjYXRlZ29yaWVzCiBkZXNjcmliZWQgaW4gdGhpcyBzZWN0aW9uLgog Ci02LjEgVGhlIENvbnN0YW50IFdpZGdldHMKLT09PT09PT09PT09PT09PT09PT09PT09PQorOC4y LjEgVGhlIENvbnN0YW50IFdpZGdldHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRo ZSDigJhjb25zdOKAmSB3aWRnZXQgY2FuIGNvbnRhaW4gYW55IExpc3AgZXhwcmVzc2lvbiwgYnV0 IHRoZSB1c2VyIGlzCiBwcm9oaWJpdGVkIGZyb20gZWRpdGluZyBpdCwgd2hpY2ggaXMgbWFpbmx5 IHVzZWZ1bCBhcyBhIGNvbXBvbmVudCBvZiBvbmUKQEAgLTk1OCwxOCArMjA3NywyNCBAQAogCiAg ICAgIFRZUEUgOjo9IChjb25zdCBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIFsgVkFMVUUgXSkKIAot ICAgVGhlIFZBTFVFLCBpZiBwcmVzZW50LCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIOKAmDp2 YWx1ZeKAmSBwcm9wZXJ0eQotYW5kIGNhbiBiZSBhbnkgcy1leHByZXNzaW9uLgorICAgSXRzIHN1 cGVyIGlzIHRoZSDigJhpdGVt4oCZIHdpZGdldC4gIFRoZSBWQUxVRSwgaWYgcHJlc2VudCwgaXMg dXNlZCB0bworaW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl4oCZIHByb3BlcnR5IGFuZCBjYW4gYmUg YW55IHMtZXhwcmVzc2lvbi4KIAogIC0tIFdpZGdldDogY29uc3QKICAgICAgVGhpcyB3aWxsIGRp c3BsYXkgYW55IHZhbGlkIHMtZXhwcmVzc2lvbiBpbiBhbiBpbW11dGFibGUgcGFydCBvZgogICAg ICB0aGUgYnVmZmVyLgogCisgICAgIEl0IG92ZXJyaWRlcyB0aGUg4oCYOnByb21wdC12YWx1ZeKA mSBmdW5jdGlvbiwgdG8gYXZvaWQgcHJvbXB0aW5nIGFuZAorICAgICBqdXN0IHJldHVybiB0aGUg d2lkZ2V04oCZcyB2YWx1ZS4KKwogICAgVGhlcmUgYXJlIHR3byB2YXJpYXRpb25zIG9mIHRoZSDi gJhjb25zdOKAmSB3aWRnZXQsIG5hbWVseQog4oCYdmFyaWFibGUtaXRlbeKAmSBhbmQg4oCYZnVu Y3Rpb24taXRlbeKAmS4gIFRoZXNlIHNob3VsZCBjb250YWluIGEgc3ltYm9sIHdpdGgKLWEgdmFy aWFibGUgb3IgZnVuY3Rpb24gYmluZGluZy4gIFRoZSBtYWpvciBkaWZmZXJlbmNlIGZyb20gdGhl IOKAmGNvbnN04oCZCi13aWRnZXQgaXMgdGhhdCB0aGV5IHdpbGwgYWxsb3cgdGhlIHVzZXIgdG8g c2VlIHRoZSB2YXJpYWJsZSBvciBmdW5jdGlvbgotZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHN5bWJv bC4KK2EgdmFyaWFibGUgb3IgZnVuY3Rpb24gYmluZGluZywgcmVzcGVjdGl2ZWx5LiAgVGhlIG1h am9yIGRpZmZlcmVuY2UgZnJvbQordGhlIOKAmGNvbnN04oCZIHdpZGdldCBpcyB0aGF0IHRoZXkg d2lsbCBhbGxvdyB0aGUgdXNlciB0byBzZWUgdGhlIHZhcmlhYmxlCitvciBmdW5jdGlvbiBkb2N1 bWVudGF0aW9uIGZvciB0aGUgc3ltYm9sLgorCisgICBUaGlzIGlzIGFjY29tcGxpc2hlZCB2aWEg dXNpbmcgdGhlIOKAmCVo4oCZIGZvcm1hdCBlc2NhcGUsIGFuZCBhZGRpbmcgYW4KK2FwcHJvcGlh dGUg4oCYOmRvY3VtZW50YXRpb24tcHJvcGVydHnigJkgZnVuY3Rpb24gZm9yIGVhY2ggd2lkZ2V0 LgogCiAgLS0gV2lkZ2V0OiB2YXJpYWJsZS1pdGVtCiAgICAgIEFuIGltbXV0YWJsZSBzeW1ib2wg dGhhdCBpcyBib3VuZCBhcyBhIHZhcmlhYmxlLgpAQCAtOTc3LDggKzIxMDIsOCBAQAogIC0tIFdp ZGdldDogZnVuY3Rpb24taXRlbQogICAgICBBbiBpbW11dGFibGUgc3ltYm9sIHRoYXQgaXMgYm91 bmQgYXMgYSBmdW5jdGlvbi4KIAotNi4yIEdlbmVyaWMgU2V4cCBXaWRnZXQKLT09PT09PT09PT09 PT09PT09PT09PT09Cis4LjIuMiBHZW5lcmljIFNleHAgV2lkZ2V0CistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAKIFRoZSDigJhzZXhw4oCZIHdpZGdldCBjYW4gY29udGFpbiBhbnkgTGlzcCBl eHByZXNzaW9uLCBhbmQgYWxsb3dzIHRoZSB1c2VyCiB0byBlZGl0IGl0IGlubGluZSBpbiB0aGUg YnVmZmVyLgpAQCAtOTg4LDc0ICsyMTEzLDE2NSBAQAogICAgICBUWVBFIDo6PSAoc2V4cCBbS0VZ V09SRCBBUkdVTUVOVF0uLi4gIFsgVkFMVUUgXSkKIAogIC0tIFdpZGdldDogc2V4cAotICAgICBU aGlzIHdpbGwgYWxsb3cgeW91IHRvIGVkaXQgYW55IHZhbGlkIHMtZXhwcmVzc2lvbiBpbiBhbiBl ZGl0YWJsZQotICAgICBidWZmZXIgZmllbGQuCisgICAgIFRoaXMgd2lkZ2V0IHJlcHJlc2VudHMg YW4gZWRpdGFibGUgZmllbGQgdGhhdOKAmXMgdXNlZnVsIHRvIGVkaXQgYW55CisgICAgIHZhbGlk IHMtZXhwcmVzc2lvbi4KIAogICAgICBUaGUg4oCYc2V4cOKAmSB3aWRnZXQgdGFrZXMgdGhlIHNh bWUga2V5d29yZCBhcmd1bWVudHMgYXMgdGhlCiAgICAgIOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdp ZGdldC4gICpOb3RlIGVkaXRhYmxlLWZpZWxkOjouCiAKLTYuMyBBdG9taWMgU2V4cCBXaWRnZXRz Ci09PT09PT09PT09PT09PT09PT09PT09PQorICAgICBJdHMgZGVmYXVsdCB2YWx1ZSBpcyDigJhu aWzigJkuCisKKyAtLSBXaWRnZXQ6IHJlc3RyaWN0ZWQtc2V4cAorICAgICBBIHdpZGdldCB0byBl ZGl0IExpc3AgZXhwcmVzc2lvbnMgcmVzdHJpY3RlZCB0byBjZXJ0YWluIHZhbHVlcyBvcgorICAg ICB0eXBlcy4gIEl0cyBzdXBlciBpcyB0aGUg4oCYc2V4cOKAmSB3aWRnZXQuCisKKyAgICAgSXQg d29ya3MganVzdCBsaWtlIHRoZSBzZXhwIHdpZGdldCwgYnV0IGl0IG92ZXJyaWRlcyB0aGUg4oCY Om1hdGNo4oCZCisgICAgIGZ1bmN0aW9uIHRvIG1hdGNoIGZvciBjZXJ0YWluIHZhbHVlcy4gIFRv IHVzZSB0aGlzIHdpZGdldCwgZWl0aGVyCisgICAgIHlvdSBtdXN0IGRlZmluZSBhIOKAmDptYXRj aOKAmSBmdW5jdGlvbiBvciBnaXZlIGEg4oCYOm1hdGNoLWFsdGVybmF0aXZlc+KAmQorICAgICBw cm9wZXJ0eS4gIFRoZSDigJg6bWF0Y2gtYWx0ZXJuYXRpdmVz4oCZIHByb3BlcnR5IGhvbGRzIGEg bGlzdCBvZgorICAgICBwcmVkaWNhdGUgZnVuY3Rpb25zIHRvIGNhbGwgd2hlbiBjaGVja2luZyBp ZiBhIGdpdmVuIHZhbHVlIG1hdGNoZXMKKyAgICAgdGhlIHdpZGdldC4gIEVhY2ggcHJlZGljYXRl IGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGggb25lCisgICAgIGFyZ3VtZW50LCB0aGUgdmFs dWUgdG8gYmUgbWF0Y2hlZCwgYW5kIHNob3VsZCByZXR1cm4gbm9uLeKAmG5pbOKAmSBvbgorICAg ICBzdWNjZXNzLgorCisgICAgIEFzIGFuIGV4YW1wbGUsIHRoZSDigJhpbnRlZ2Vy4oCZIHdpZGdl dCBvdmVycmlkZXMg4oCYOm1hdGNoLWFsdGVybmF0aXZlc+KAmQorICAgICB0byDigJgoaW50ZWdl cnAp4oCZLgorCis4LjIuMyBBdG9taWMgU2V4cCBXaWRnZXRzCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAKIFRoZSBhdG9tcyBhcmUgcy1leHByZXNzaW9ucyB0aGF0IGRvIG5vdCBjb25zaXN0 IG9mIG90aGVyIHMtZXhwcmVzc2lvbnMuCiBGb3IgZXhhbXBsZSwgYSBzdHJpbmcsIGEgZmlsZSBu YW1lLCBvciBhIHN5bWJvbCBhcmUgYXRvbXMsIHdoaWxlIGEgbGlzdAotaXMgYSBjb21wb3NpdGUg dHlwZS4gIFlvdSBjYW4gZWRpdCB0aGUgdmFsdWUgb2YgYW4gYXRvbSB3aXRoIHRoZQotZm9sbG93 aW5nIHdpZGdldHMuCitpcyBhIGNvbXBvc2l0ZSB0eXBlLiAgWW91IGNhbiBlZGl0IHRoZSB2YWx1 ZSBvZiBhbiBhdG9tIHdpdGggdGhlIHdpZGdldHMKK2Rlc2NyaWJlZCBpbiB0aGlzIHNlY3Rpb24u CiAKLSAgIFRoZSBzeW50YXggZm9yIGFsbCB0aGUgYXRvbXMgYXJlOgorICAgVGhlIHN5bnRheCBm b3IgYWxsIHRoZSBhdG9tcyBpczoKIAogICAgICBUWVBFIDo6PSAoQ09OU1RSVUNUIFtLRVlXT1JE IEFSR1VNRU5UXS4uLiAgWyBWQUxVRSBdKQogCiAgICBUaGUgVkFMVUUsIGlmIHByZXNlbnQsIGlz IHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl4oCZIHByb3BlcnR5Ci1hbmQgbXVzdCBi ZSBhbiBleHByZXNzaW9uIG9mIHRoZSBzYW1lIHR5cGUgYXMgdGhlIHdpZGdldC4gIFRoYXQgaXMs IHRoZQotc3RyaW5nIHdpZGdldCBjYW4gb25seSBiZSBpbml0aWFsaXplZCB3aXRoIGEgc3RyaW5n LgorYW5kIG11c3QgYmUgYW4gZXhwcmVzc2lvbiBvZiB0aGUgc2FtZSB0eXBlIGFzIHRoZSB3aWRn ZXQuICBUaGF0IGlzLCBmb3IKK2V4YW1wbGUsIHRoZSBzdHJpbmcgd2lkZ2V0IGNhbiBvbmx5IGJl IGluaXRpYWxpemVkIHdpdGggYSBzdHJpbmcuCiAKICAgIEFsbCB0aGUgYXRvbSB3aWRnZXRzIHRh a2UgdGhlIHNhbWUga2V5d29yZCBhcmd1bWVudHMgYXMgdGhlCiDigJhlZGl0YWJsZS1maWVsZOKA mSB3aWRnZXQuICAqTm90ZSBlZGl0YWJsZS1maWVsZDo6LgogCiAgLS0gV2lkZ2V0OiBzdHJpbmcK LSAgICAgQWxsb3dzIHlvdSB0byBlZGl0IGEgc3RyaW5nIGluIGFuIGVkaXRhYmxlIGZpZWxkLgor ICAgICBBbiBlZGl0YWJsZSBmaWVsZCB3aWRnZXQgdGhhdCBjYW4gcmVwcmVzZW50IGFueSBMaXNw IHN0cmluZy4KKworICAgICBJdCBvZmZlcnMgY29tcGxldGlvbiB2aWEgdGhlIGlzcGVsbCBsaWJy YXJ5IGFuZCB0aGUg4oCYOmNvbXBsZXRl4oCZCisgICAgIHByb3BlcnR5LgogCiAgLS0gV2lkZ2V0 OiByZWdleHAKLSAgICAgQWxsb3dzIHlvdSB0byBlZGl0IGEgcmVndWxhciBleHByZXNzaW9uIGlu IGFuIGVkaXRhYmxlIGZpZWxkLgorICAgICBBbiBlZGl0YWJsZSBmaWVsZCB3aWRnZXQgdGhhdCBj YW4gcmVwcmVzZW50IGEgcmVndWxhciBleHByZXNzaW9uLgorCisgICAgIE92ZXJyaWRlcyB0aGUg 4oCYOm1hdGNo4oCZIGFuZCB0aGUg4oCYOnZhbGlkYXRl4oCZIHByb3BlcnRpZXMgdG8gY2hlY2sg dGhhdAorICAgICB0aGUgdmFsdWUgaXMgYSB2YWxpZCByZWdleHAuCiAKICAtLSBXaWRnZXQ6IGNo YXJhY3RlcgotICAgICBBbGxvd3MgeW91IHRvIGVudGVyIGEgY2hhcmFjdGVyIGluIGFuIGVkaXRh YmxlIGZpZWxkLgorICAgICBBbiBlZGl0YWJsZSBmaWVsZCB3aWRnZXQgdGhhdCBjYW4gcmVwcmVz ZW50IGEgY2hhcmFjdGVyLgorCisgICAgIFRoZSBjaGFyYWN0ZXIgd2lkZ2V0IHJlcHJlc2VudHMg c29tZSBjaGFyYWN0ZXJzIChsaWtlIHRoZSBuZXdsaW5lCisgICAgIGNoYXJhY3RlcikgaW4gYSBz cGVjaWFsIG1hbm5lciwgdG8gbWFrZSBpdCBlYXNpZXIgZm9yIHRoZSB1c2VyIHRvCisgICAgIHNl ZSB3aGF04oCZcyB0aGUgY29udGVudCBvZiB0aGUgY2hhcmFjdGVyIGZpZWxkLgogCiAgLS0gV2lk Z2V0OiBmaWxlCi0gICAgIEFsbG93cyB5b3UgdG8gZWRpdCBhIGZpbGUgbmFtZSBpbiBhbiBlZGl0 YWJsZSBmaWVsZC4KKyAgICAgQSB3aWRnZXQgZm9yIGVkaXRpbmcgZmlsZSBuYW1lcy4KIAogICAg ICBLZXl3b3JkczoKKyAgICAg4oCYOmNvbXBsZXRpb25z4oCZCisgICAgICAgICAgT2ZmZXJzIGZp bGUgbmFtZSBjb21wbGV0aW9uIHRvIHRoZSB1c2VyLgorCisgICAgIOKAmDpwcm9tcHQtdmFsdWXi gJkKKyAgICAgICAgICBBIGZ1bmN0aW9uIHRvIHJlYWQgYSBmaWxlIG5hbWUgZnJvbSB0aGUgbWlu aWJ1ZmZlci4KKwogICAgICDigJg6bXVzdC1tYXRjaOKAmQotICAgICAgICAgIElmIHRoaXMgaXMg c2V0IHRvIG5vbi3igJhuaWzigJksIG9ubHkgZXhpc3RpbmcgZmlsZSBuYW1lcyB3aWxsIGJlCi0g ICAgICAgICAgYWxsb3dlZCBpbiB0aGUgbWluaWJ1ZmZlci4KKyAgICAgICAgICBJZiB0aGlzIGlz IHNldCB0byBub24t4oCYbmls4oCZLCBvbmx5IGV4aXN0aW5nIGZpbGUgbmFtZXMgYXJlCisgICAg ICAgICAgYWxsb3dlZCB3aGVuIHByb21wdGluZyBmb3IgYSB2YWx1ZSBpbiB0aGUgbWluaWJ1ZmZl ci4KKworICAgICDigJg6bWF0Y2jigJkKKyAgICAgICAgICBUaGUgd2lkZ2V0IG1hdGNoZXMgaWYg dGhlIHZhbHVlIGlzIGEgc3RyaW5nLCBhbmQgdGhlIGZpbGUKKyAgICAgICAgICB3aG9zZSBuYW1l IGlzIHRoYXQgc3RyaW5nIGlzIGFuIGV4aXN0aW5nIGZpbGUsIG9yIGlmCisgICAgICAgICAg4oCY Om11c3QtbWF0Y2jigJkgaXMg4oCYbmls4oCZLgorCisgICAgIOKAmDp2YWxpZGF0ZeKAmQorICAg ICAgICAgIFRoZSB3aWRnZXQgaXMgdmFsaWQgaWYgaXRzIHZhbHVlIG1hdGNoZXMuCiAKICAtLSBX aWRnZXQ6IGRpcmVjdG9yeQotICAgICBBbGxvd3MgeW91IHRvIGVkaXQgYSBkaXJlY3RvcnkgbmFt ZSBpbiBhbiBlZGl0YWJsZSBmaWVsZC4gIFNpbWlsYXIKLSAgICAgdG8gdGhlIOKAmGZpbGXigJkg d2lkZ2V0LgorICAgICBBIHdpZGdldCBmb3IgZWRpdGluZyBkaXJlY3RvcnkgbmFtZXMuCisKKyAg ICAgSXRzIHN1cGVyIGlzIHRoZSDigJhmaWxl4oCZIHdpZGdldCwgYW5kIGl0IG92ZXJyaWRlcyB0 aGUg4oCYOmNvbXBsZXRpb25z4oCZCisgICAgIHByb3BlcnR5LCB0byBvZmZlciBjb21wbGV0aW9u cyBvbmx5IGZvciBkaXJlY3Rvcmllcy4KIAogIC0tIFdpZGdldDogc3ltYm9sCi0gICAgIEFsbG93 cyB5b3UgdG8gZWRpdCBhIExpc3Agc3ltYm9sIGluIGFuIGVkaXRhYmxlIGZpZWxkLgorICAgICBB IHdpZGdldCBmb3IgZWRpdGluZyBhIExpc3Agc3ltYm9sLgorCisgICAgIEl0cyB2YWx1ZSBieSBk ZWZhdWx0IGlzIOKAmG5pbOKAmS4KIAogIC0tIFdpZGdldDogZnVuY3Rpb24KLSAgICAgQWxsb3dz IHlvdSB0byBlZGl0IGEgbGFtYmRhIGV4cHJlc3Npb24sIG9yIGEgZnVuY3Rpb24gbmFtZSB3aXRo Ci0gICAgIGNvbXBsZXRpb24uCisgICAgIEEgd2lkZ2V0IGZvciBlZGl0aW5nIGEgbGFtYmRhIGV4 cHJlc3Npb24sIG9yIGEgZnVuY3Rpb24gbmFtZSwKKyAgICAgb2ZmZXJpbmcgY29tcGxldGlvbi4g IEl0cyBzdXBlciBpcyB0aGUg4oCYcmVzdHJpY3RlZC1zZXhw4oCZIHdpZGdldC4KIAogIC0tIFdp ZGdldDogdmFyaWFibGUKLSAgICAgQWxsb3dzIHlvdSB0byBlZGl0IGEgdmFyaWFibGUgbmFtZSwg d2l0aCBjb21wbGV0aW9uLgorICAgICBBIHdpZGdldCBmb3IgZWRpdGluZyB2YXJpYWJsZSBuYW1l cywgb2ZmZXJpbmcgY29tcGxldGlvbi4gIEl0cworICAgICBzdXBlciBpcyB0aGUg4oCYc3ltYm9s 4oCZIHdpZGdldC4KIAogIC0tIFdpZGdldDogaW50ZWdlcgotICAgICBBbGxvd3MgeW91IHRvIGVk aXQgYW4gaW50ZWdlciBpbiBhbiBlZGl0YWJsZSBmaWVsZC4KKyAgICAgQSB3aWRnZXQgZm9yIGVk aXRpbmcgaW50ZWdlcnMgaW4gYW4gZWRpdGFibGUgZmllbGQuICBJdHMgc3VwZXIgaXMKKyAgICAg dGhlIOKAmHJlc3RyaWN0ZWQtc2V4cOKAmSB3aWRnZXQuCisKKyAgICAgSXQgaGFzIGEgZGVmYXVs dCDigJg6dmFsdWXigJkgb2YgMC4KKworIC0tIFdpZGdldDogbmF0bnVtCisgICAgIEEgd2lkZ2V0 IGZvciBlZGl0aW5nIG5vbi1uZWdhdGl2ZSBpbnRlZ2Vycy4gIEl0cyBzdXBlciBpcyB0aGUKKyAg ICAg4oCYcmVzdHJpY3RlZC1zZXhw4oCZIHdpZGdldC4KKworICAgICBJdCBoYXMgYSBkZWZhdWx0 IOKAmDp2YWx1ZeKAmSBvZiAwLgorCisgLS0gV2lkZ2V0OiBmbG9hdAorICAgICBBIHdpZGdldCBm b3IgZWRpdGluZyBhIGZsb2F0aW5nIHBvaW50IG51bWJlci4gIEl0cyBzdXBlciBpcyB0aGUKKyAg ICAg4oCYcmVzdHJpY3RlZC1zZXhw4oCZIHdpZGdldC4KKworICAgICBJdCBoYXMgYSBkZWZhdWx0 IOKAmDp2YWx1ZeKAmSBvZiAwLjAuCiAKICAtLSBXaWRnZXQ6IG51bWJlcgotICAgICBBbGxvd3Mg eW91IHRvIGVkaXQgYSBudW1iZXIgaW4gYW4gZWRpdGFibGUgZmllbGQuCisgICAgIEEgd2lkZ2V0 IGZvciBlZGl0aW5nIGEgbnVtYmVyLCBlaXRoZXIgZmxvYXRpbmcgcG9pbnQgb3IgaW50ZWdlci4K KyAgICAgSXRzIHN1cGVyIGlzIHRoZSDigJhyZXN0cmljdGVkLXNleHDigJkgd2lkZ2V0LgorCisg ICAgIEl0IGhhcyBhIGRlZmF1bHQg4oCYOnZhbHVl4oCZIG9mIDAuMC4KIAogIC0tIFdpZGdldDog Ym9vbGVhbgotICAgICBBbGxvd3MgeW91IHRvIGVkaXQgYSBib29sZWFuLiAgSW4gTGlzcCB0aGlz IG1lYW5zIGEgdmFyaWFibGUgd2hpY2gKLSAgICAgaXMgZWl0aGVyIOKAmG5pbOKAmSBtZWFuaW5n IGZhbHNlLCBvciBub24t4oCYbmls4oCZIG1lYW5pbmcgdHJ1ZS4KKyAgICAgQSB3aWRnZXQgZm9y IGVkaXRpbmcgYSBib29sZWFuIHZhbHVlLiAgSXRzIHN1cGVyIGlzIHRoZSDigJh0b2dnbGXigJkK KyAgICAgd2lkZ2V0LgorCisgICAgIEl0cyB2YWx1ZSBtYXkgYmUg4oCYbmls4oCZLCBtZWFuaW5n IGZhbHNlLCBvciBub24t4oCYbmls4oCZLCBtZWFuaW5nIHRydWUuCisKKyAtLSBXaWRnZXQ6IGNv bG9yCisgICAgIEEgd2lkZ2V0IHRvIGVkaXQgYSBjb2xvciBuYW1lLgorCisgICAgIEluIGFkZGl0 aW9uLCBzaG93cyBhIHNhbXBsZSB0aGF0IHNob3dzIHRoZSBzZWxlY3RlZCBjb2xvciwgaWYgYW55 LgorCisgLS0gV2lkZ2V0OiBvdGhlcgorICAgICBBIHdpZGdldCB1c2VmdWwgYXMgdGhlIGxhc3Qg aXRlbSBpbiBhIOKAmGNob2ljZeKAmSB3aWRnZXQsIHNpbmNlIGl0CisgICAgIG1hdGNoZXMgYW55 IHZhbHVlLgorCisgICAgIEl0cyBzdXBlciBpcyB0aGUg4oCYc2V4cOKAmSB3aWRnZXQsIGFuZCBp dHMg4oCYOnZhbHVl4oCZIGlzIOKAmG90aGVy4oCZLCBieQorICAgICBkZWZhdWx0LgorCisgLS0g V2lkZ2V0OiBjb2Rpbmctc3lzdGVtCisgICAgIEEgd2lkZ2V0IHRoYXQgY2FuIHJlcHJlc2VudCBh IGNvZGluZyBzeXN0ZW0gbmFtZSwgb2ZmZXJpbmcKKyAgICAgY29tcGxldGlvbnMuICAqTm90ZSAo ZWxpc3ApQ29kaW5nIFN5c3RlbXM6Oi4gIEl0cyBzdXBlciBpcyB0aGUKKyAgICAg4oCYc3ltYm9s 4oCZIHdpZGdldC4KKworICAgICBJdCBoYXMgYSBkZWZhdWx0IHZhbHVlIG9mIOKAmHVuZGVjaWRl ZOKAmS4KKworIC0tIFdpZGdldDoga2V5CisgICAgIEEgd2lkZ2V0IHRvIHJlcHJlc2VudCBhIGtl eSBzZXF1ZW5jZS4KKworICAgICBJdCB1c2VzIGEgc3BlY2lhbCBrZXltYXAgYXMgdGhlIOKAmDpr ZXltYXDigJkuCiAKLTYuNCBDb21wb3NpdGUgU2V4cCBXaWRnZXRzCi09PT09PT09PT09PT09PT09 PT09PT09PT09PQorOC4yLjQgQ29tcG9zaXRlIFNleHAgV2lkZ2V0cworLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogCiBUaGUgc3ludGF4IGZvciB0aGUgY29tcG9zaXRlIHdpZGdldCBjb25z dHJ1Y3QgaXM6CiAKQEAgLTEwNjUsMzQgKzIyODEsNTAgQEAKIGJlIGRpc3BsYXllZCBpbiB0aGUg YnVmZmVyLCBhbmQgd2lsbCBiZSBlZGl0YWJsZSBieSB0aGUgdXNlci4KIAogIC0tIFdpZGdldDog Y29ucworICAgICBBIHdpZGdldCB0byBlZGl0IGNvbnMtY2VsbCB2YWx1ZXMuICBJdHMgc3VwZXIg aXMgdGhlIOKAmGdyb3Vw4oCZCisgICAgIHdpZGdldC4KKwogICAgICBUaGUgdmFsdWUgb2YgYSDi gJhjb25z4oCZIHdpZGdldCBtdXN0IGJlIGEgY29ucy1jZWxsIHdob3NlIENBUiBhbmQgQ0RSCiAg ICAgIGhhdmUgdHdvIHNwZWNpZmllZCB0eXBlcy4gIEl0IHVzZXMgdGhpcyBzeW50YXg6CiAKICAg ICAgICAgICBUWVBFIDo6PSAoY29ucyBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIENBUi1UWVBFIENE Ui1UWVBFKQogCiAgLS0gV2lkZ2V0OiBjaG9pY2UKLSAgICAgVGhlIHZhbHVlIG1hdGNoZWQgYnkg YSDigJhjaG9pY2XigJkgd2lkZ2V0IG11c3QgaGF2ZSBvbmUgb2YgYSBmaXhlZCBzZXQKLSAgICAg b2YgdHlwZXMuICBUaGUgd2lkZ2V04oCZcyBzeW50YXggaXMgYXMgZm9sbG93czoKKyAgICAgQSB3 aWRnZXQgdG8gaG9sZCBhIHZhbHVlIG9mIG9uZSBvZiBhIGZpeGVkIHNldCBvZiB0eXBlcy4gIEl0 cyBzdXBlcgorICAgICBpcyB0aGUg4oCYbWVudS1jaG9pY2XigJkgd2lkZ2V0LgorCisgICAgIFRo ZSB3aWRnZXTigJlzIHN5bnRheCBpcyBhcyBmb2xsb3dzOgogCiAgICAgICAgICAgVFlQRSA6Oj0g KGNob2ljZSBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIFRZUEUgLi4uICkKIAogICAgICBUaGUgdmFs dWUgb2YgYSDigJhjaG9pY2XigJkgd2lkZ2V0IGNhbiBiZSBhbnl0aGluZyB0aGF0IG1hdGNoZXMg YW55IG9mCiAgICAgIHRoZSBUWVBFUy4KIAorICAgICBUaGlzIHdpZGdldCBvbmx5IGRpc3BsYXlz IHRoZSB3aWRnZXQgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUKKyAgICAgY3VycmVudCBjaG9pY2Uu CisKKyAtLSBXaWRnZXQ6IHJhZGlvCisgICAgIEEgd2lkZ2V0IHRvIGhvbGQgYSB2YWx1ZSBvZiBv bmUgb2YgYSBmaXhlZCBzZXQgb2Ygb3B0aW9ucy4gIEl0cworICAgICBzdXBlciBpcyB0aGUg4oCY cmFkaW8tYnV0dG9uLWNob2ljZeKAmSB3aWRnZXQuCisKICAtLSBXaWRnZXQ6IGxpc3QKKyAgICAg QSB3aWRnZXQgdG8gZWRpdCBhIGxpc3QgdmFsdWUuICBJdHMgc3VwZXIgaXMgdGhlIOKAmGdyb3Vw 4oCZIHdpZGdldC4KKwogICAgICBUaGUgdmFsdWUgb2YgYSDigJhsaXN04oCZIHdpZGdldCBtdXN0 IGJlIGEgbGlzdCB3aG9zZSBlbGVtZW50IHR5cGVzCiAgICAgIG1hdGNoIHRoZSBzcGVjaWZpZWQg Y29tcG9uZW50IHR5cGVzOgogCiAgICAgICAgICAgVFlQRSA6Oj0gKGxpc3QgW0tFWVdPUkQgQVJH VU1FTlRdLi4uICBDT01QT05FTlQtVFlQRS4uLikKIAotICAgICBUaHVzLCDigJgobGlzdCBzdHJp bmcgbnVtYmVyKeKAmSBtYXRjaGVzIGxpc3RzIG9mIHR3byBlbGVtZW50cywgdGhlCi0gICAgIGZp cnN0IGJlaW5nIGEgc3RyaW5nIGFuZCB0aGUgc2Vjb25kIGJlaW5nIGEgbnVtYmVyLgorICAgICBU aHVzLCBmb3IgZXhhbXBsZSwg4oCYKGxpc3Qgc3RyaW5nIG51bWJlcinigJkgbWF0Y2hlcyBsaXN0 cyBvZiB0d28KKyAgICAgZWxlbWVudHMsIHRoZSBmaXJzdCBiZWluZyBhIHN0cmluZyBhbmQgdGhl IHNlY29uZCBiZWluZyBhIG51bWJlci4KIAogIC0tIFdpZGdldDogdmVjdG9yCisgICAgIEEgd2lk Z2V0IHRvIGVkaXQgYSB2ZWN0b3IgdmFsdWUuICBJdHMgc3VwZXIgaXMgdGhlIOKAmGdyb3Vw4oCZ IHdpZGdldC4KKwogICAgICBUaGUg4oCYdmVjdG9y4oCZIHdpZGdldCBpcyBsaWtlIHRoZSDigJhs aXN04oCZIHdpZGdldCBidXQgbWF0Y2hlcyB2ZWN0b3JzCi0gICAgIGluc3RlYWQgb2YgbGlzdHMu ICBUaHVzLCDigJgodmVjdG9yIHN0cmluZyBudW1iZXIp4oCZIG1hdGNoZXMgdmVjdG9ycwotICAg ICBvZiB0d28gZWxlbWVudHMsIHRoZSBmaXJzdCBiZWluZyBhIHN0cmluZyBhbmQgdGhlIHNlY29u ZCBiZWluZyBhCi0gICAgIG51bWJlci4KKyAgICAgaW5zdGVhZCBvZiBsaXN0cy4gIFRodXMsIGZv ciBleGFtcGxlLCDigJgodmVjdG9yIHN0cmluZyBudW1iZXIp4oCZCisgICAgIG1hdGNoZXMgdmVj dG9ycyBvZiB0d28gZWxlbWVudHMsIHRoZSBmaXJzdCBiZWluZyBhIHN0cmluZyBhbmQgdGhlCisg ICAgIHNlY29uZCBiZWluZyBhIG51bWJlci4KIAogICAgVGhlIGFib3ZlIHN1ZmZpY2UgZm9yIHNw ZWNpZnlpbmcgZml4ZWQgc2l6ZSBsaXN0cyBhbmQgdmVjdG9ycy4gIFRvCiBnZXQgdmFyaWFibGUg bGVuZ3RoIGxpc3RzIGFuZCB2ZWN0b3JzLCB5b3UgY2FuIHVzZSBhIOKAmGNob2ljZeKAmSwg4oCY c2V04oCZLCBvcgpAQCAtMTExNyw5ICsyMzQ5LDEzIEBACiB0byBleHBsYWluIGl0IGhlcmUsIEni gJlsbCBqdXN0IHN1Z2dlc3QgeW91IG1lZGl0YXRlIG92ZXIgaXQgZm9yIGEgd2hpbGUuCiAKICAt LSBXaWRnZXQ6IHNldAotICAgICBTcGVjaWZpZXMgYSB0eXBlIHdob3NlIHZhbHVlcyBhcmUgdGhl IGxpc3RzIHdob3NlIGVsZW1lbnRzIGFsbAotICAgICBiZWxvbmcgdG8gYSBnaXZlbiBzZXQuICBU aGUgb3JkZXIgb2YgZWxlbWVudHMgb2YgdGhlIGxpc3QgaXMgbm90Ci0gICAgIHNpZ25pZmljYW50 LiAgSGVyZeKAmXMgdGhlIHN5bnRheDoKKyAgICAgQSB3aWRnZXQgdG8gaG9sZCBhIGxpc3Qgb2Yg bWVtYmVycyBmcm9tIGEgZml4ZWQgc2V0LiAgSXRzIHN1cGVyIGlzCisgICAgIHRoZSDigJhjaGVj a2xpc3TigJkgd2lkZ2V0LgorCisgICAgIEl0cyB2YWx1ZSBpcyBhIGxpc3Qgd2hlcmUgdGhlIGVs ZW1lbnRzIGFsbCBiZWxvbmcgdG8gYSBnaXZlbiBzZXQuCisgICAgIFRoZSBvcmRlciBvZiBlbGVt ZW50cyBvZiB0aGUgbGlzdCBpcyBub3Qgc2lnbmlmaWNhbnQuCisKKyAgICAgSGVyZeKAmXMgdGhl IHN5bnRheDoKIAogICAgICAgICAgIFRZUEUgOjo9IChzZXQgW0tFWVdPUkQgQVJHVU1FTlRdLi4u ICBQRVJNSVRURUQtRUxFTUVOVCAuLi4gKQogCkBAIC0xMTI4LDg5ICsyMzY0LDQ3IEBACiAKICAt LSBXaWRnZXQ6IHJlcGVhdAogICAgICBTcGVjaWZpZXMgYSBsaXN0IG9mIGFueSBudW1iZXIgb2Yg ZWxlbWVudHMgdGhhdCBmaXQgYSBjZXJ0YWluIHR5cGUuCisgICAgIEl0cyBzdXBlciBpcyB0aGUg 4oCYZWRpdGFibGUtbGlzdOKAmSB3aWRnZXQuCiAKICAgICAgICAgICBUWVBFIDo6PSAocmVwZWF0 IFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgVFlQRSkKIAotNyBQcm9wZXJ0aWVzCi0qKioqKioqKioq KioKLQotWW91IGNhbiBleGFtaW5lIG9yIHNldCB0aGUgdmFsdWUgb2YgYSB3aWRnZXQgYnkgdXNp bmcgdGhlIHdpZGdldCBvYmplY3QKLXRoYXQgd2FzIHJldHVybmVkIGJ5IOKAmHdpZGdldC1jcmVh dGXigJkuCi0KLSAtLSBGdW5jdGlvbjogd2lkZ2V0LXZhbHVlIHdpZGdldAotICAgICBSZXR1cm4g dGhlIGN1cnJlbnQgdmFsdWUgY29udGFpbmVkIGluIFdJREdFVC4gIEl0IGlzIGFuIGVycm9yIHRv Ci0gICAgIGNhbGwgdGhpcyBmdW5jdGlvbiBvbiBhbiB1bmluaXRpYWxpemVkIHdpZGdldC4KLQot IC0tIEZ1bmN0aW9uOiB3aWRnZXQtdmFsdWUtc2V0IHdpZGdldCB2YWx1ZQotICAgICBTZXQgdGhl IHZhbHVlIGNvbnRhaW5lZCBpbiBXSURHRVQgdG8gVkFMVUUuICBJdCBpcyBhbiBlcnJvciB0byBj YWxsCi0gICAgIHRoaXMgZnVuY3Rpb24gd2l0aCBhbiBpbnZhbGlkIFZBTFVFLgorIC0tIFdpZGdl dDogcGxpc3QKKyAgICAgQSB3aWRnZXQgdG8gZWRpdCBwcm9wZXJ0eSBsaXN0cy4gIEl0cyBzdXBl ciBpcyB0aGUg4oCYbGlzdOKAmSB3aWRnZXQuCiAKLSAgICpJbXBvcnRhbnQ6KiBZb3UgX211c3Rf IGNhbGwg4oCYd2lkZ2V0LXNldHVw4oCZIGFmdGVyIG1vZGlmeWluZyB0aGUgdmFsdWUKLW9mIGEg d2lkZ2V0IGJlZm9yZSB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVkaXQgdGhlIHdpZGdldCBhZ2Fp bi4gIEl0IGlzCi1lbm91Z2ggdG8gY2FsbCDigJh3aWRnZXQtc2V0dXDigJkgb25jZSBpZiB5b3Ug bW9kaWZ5IG11bHRpcGxlIHdpZGdldHMuICBUaGlzCi1pcyBjdXJyZW50bHkgb25seSBuZWNlc3Nh cnkgaWYgdGhlIHdpZGdldCBjb250YWlucyBhbiBlZGl0aW5nIGZpZWxkLCBidXQKLW1heSBiZSBu ZWNlc3NhcnkgZm9yIG90aGVyIHdpZGdldHMgaW4gdGhlIGZ1dHVyZS4KKyAgICAgSXQgcmVjb2du aXplcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAKLSAgIElmIHlvdXIgYXBwbGljYXRpb24g bmVlZHMgdG8gYXNzb2NpYXRlIHNvbWUgaW5mb3JtYXRpb24gd2l0aCB0aGUKLXdpZGdldCBvYmpl Y3RzLCBmb3IgZXhhbXBsZSBhIHJlZmVyZW5jZSB0byB0aGUgaXRlbSBiZWluZyBlZGl0ZWQsIGl0 IGNhbgotYmUgZG9uZSB3aXRoIOKAmHdpZGdldC1wdXTigJkgYW5kIOKAmHdpZGdldC1nZXTigJku ICBUaGUgcHJvcGVydHkgbmFtZXMgbXVzdAotYmVnaW4gd2l0aCBhIOKAmDrigJkuCisgICAgIOKA mDpvcHRpb25z4oCZCisgICAgICAgICAgQSBnaXZlbiBzZXQgb2YgcmVjb21tZW5kZWQga2V5LXZh bHVlIHZhbHVlcyBmb3IgdGhlIOKAmHBsaXN04oCZCisgICAgICAgICAgd2lkZ2V0LiAgRWFjaCBv cHRpb24gc2hvd3MgdXAgYXMgYSBjaGVja2xpc3QgaXRlbS4KIAotIC0tIEZ1bmN0aW9uOiB3aWRn ZXQtcHV0IHdpZGdldCBwcm9wZXJ0eSB2YWx1ZQotICAgICBJbiBXSURHRVQgc2V0IFBST1BFUlRZ IHRvIFZBTFVFLiAgUFJPUEVSVFkgc2hvdWxkIGJlIGEgc3ltYm9sLAotICAgICB3aGlsZSBWQUxV RSBjYW4gYmUgYW55dGhpbmcuCisgICAgIOKAmDprZXktdHlwZeKAmQorICAgICAgICAgIFRoZSB3 aWRnZXQgdHlwZSB0byB1c2UgZm9yIHRoZSBwbGlzdCBrZXlzLiAgQnkgZGVmYXVsdCwgaXQKKyAg ICAgICAgICB1c2VzIHRoZSDigJhzeW1ib2zigJkgd2lkZ2V0LgogCi0gLS0gRnVuY3Rpb246IHdp ZGdldC1nZXQgd2lkZ2V0IHByb3BlcnR5Ci0gICAgIEluIFdJREdFVCByZXR1cm4gdGhlIHZhbHVl IGZvciBQUk9QRVJUWS4gIFBST1BFUlRZIHNob3VsZCBiZSBhCi0gICAgIHN5bWJvbCwgdGhlIHZh bHVlIGlzIHdoYXQgd2FzIGxhc3Qgc2V0IGJ5IOKAmHdpZGdldC1wdXTigJkgZm9yCi0gICAgIFBS T1BFUlRZLgorICAgICDigJg6dmFsdWUtdHlwZeKAmQorICAgICAgICAgIFRoZSB3aWRnZXQgdHlw ZSB0byB1c2UgZm9yIHRoZSBwbGlzdCB2YWx1ZXMuICBCeSBkZWZhdWx0LCBpdAorICAgICAgICAg IHVzZXMgdGhlIOKAmHNleHDigJkgd2lkZ2V0LgogCi0gLS0gRnVuY3Rpb246IHdpZGdldC1tZW1i ZXIgd2lkZ2V0IHByb3BlcnR5Ci0gICAgIE5vbi3igJhuaWzigJkgaWYgV0lER0VUIGhhcyBhIHZh bHVlIChldmVuIOKAmG5pbOKAmSkgZm9yIHByb3BlcnR5IFBST1BFUlRZLgorIC0tIFdpZGdldDog YWxpc3QKKyAgICAgQSB3aWRnZXQgdG8gZWRpdCBhc3NvY2lhdGlvbiBsaXN0cy4gIEl0cyBzdXBl ciBpcyB0aGUg4oCYbGlzdOKAmQorICAgICB3aWRnZXQuCiAKLSAtLSBGdW5jdGlvbjogd2lkZ2V0 LWFwcGx5IHdpZGdldCBwcm9wZXJ0eSAmcmVzdCBhcmdzCi0gICAgIEFwcGx5IHRoZSB2YWx1ZSBv ZiBQUk9QRVJUWSB0byBXSURHRVQsIHBhc3NpbmcgQVJHUyBhcyBhZGRpdGlvbmFsCi0gICAgIGFy Z3VtZW50cyB0byB0aGUgZnVuY3Rpb24uICBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGF0IGZ1bmN0 aW9uCi0gICAgIGNhbGwuCisgICAgIEl0IHJlY29nbml6ZXMgdGhlIHNhbWUgcHJvcGVydGllcyB0 aGF0IHRoZSDigJhwbGlzdOKAmSB3aWRnZXQsIHdpdGggdGhlCisgICAgIGRpZmZlcmVuY2UgdGhh dCB0aGUg4oCYOmtleS10eXBl4oCZIHVzZXMgYnkgZGVmYXVsdCBhIOKAmHNleHDigJkgd2lkZ2V0 LgogCi0gICBPY2Nhc2lvbmFsbHkgaXQgY2FuIGJlIHVzZWZ1bCB0byBrbm93IHdoaWNoIGtpbmQg b2Ygd2lkZ2V0IHlvdSBoYXZlLAotaS5lLiwgdGhlIG5hbWUgb2YgdGhlIHdpZGdldCB0eXBlIHlv dSBnYXZlIHdoZW4gdGhlIHdpZGdldCB3YXMgY3JlYXRlZC4KKyAgIE1vc3QgY29tcG9zaXRlIHdp ZGdldHMgZG8gbm90IGFsbG93IGZvciByZWN1cnNpb24uICBUaGF0IGlzLCBub25lIG9mCit0aGUg Y29udGFpbmVkIHdpZGdldHMgbWF5IGJlIG9mIHRoZSBzYW1lIHR5cGUgdGhhdCBpcyBjdXJyZW50 bHkgYmVpbmcKK2RlZmluZWQuICBUbyBhbGxvdyBmb3IgdGhpcyBraW5kIG9mIHdpZGdldHMsIHRo ZXJl4oCZcyB0aGUg4oCYbGF6eeKAmSB3aWRnZXQuCiAKLSAtLSBGdW5jdGlvbjogd2lkZ2V0LXR5 cGUgd2lkZ2V0Ci0gICAgIFJldHVybiB0aGUgbmFtZSBvZiBXSURHRVQsIGEgc3ltYm9sLgorIC0t IFdpZGdldDogbGF6eQorICAgICBBIGJhc2Ugd2lkZ2V0IGZvciByZWN1cnNpdmUgZGF0YSBzdHJ1 Y3R1cmVzLiAgSXRzIHN1cGVyIGlzIHRoZQorICAgICDigJhkZWZhdWx04oCZIHdpZGdldC4KIAot ICAgV2lkZ2V0cyBjYW4gYmUgaW4gdHdvIHN0YXRlczogYWN0aXZlLCB3aGljaCBtZWFucyB0aGV5 IGFyZSBtb2RpZmlhYmxlCi1ieSB0aGUgdXNlciwgb3IgaW5hY3RpdmUsIHdoaWNoIG1lYW5zIHRo ZXkgY2Fubm90IGJlIG1vZGlmaWVkIGJ5IHRoZQotdXNlci4gIFlvdSBjYW4gcXVlcnkgb3Igc2V0 IHRoZSBzdGF0ZSB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZToKLQotICAgICA7OyBFeGFtaW5lIGlm IFdJREdFVCBpcyBhY3RpdmUgb3Igbm90LgotICAgICAoaWYgKHdpZGdldC1hcHBseSBXSURHRVQg OmFjdGl2ZSkKLSAgICAgICAgIChtZXNzYWdlICJXaWRnZXQgaXMgYWN0aXZlLiIpCi0gICAgICAg KG1lc3NhZ2UgIldpZGdldCBpcyBpbmFjdGl2ZS4iKQotCi0gICAgIDs7IE1ha2UgV0lER0VUIGlu YWN0aXZlLgotICAgICAod2lkZ2V0LWFwcGx5IFdJREdFVCA6ZGVhY3RpdmF0ZSkKLQotICAgICA7 OyBNYWtlIFdJREdFVCBhY3RpdmUuCi0gICAgICh3aWRnZXQtYXBwbHkgV0lER0VUIDphY3RpdmF0 ZSkKLQotICAgQSB3aWRnZXQgaXMgaW5hY3RpdmUgaWYgaXQsIG9yIGFueSBvZiBpdHMgYW5jZXN0 b3JzIChmb3VuZCBieQotZm9sbG93aW5nIHRoZSDigJg6cGFyZW504oCZIGxpbmspLCBoYXZlIGJl ZW4gZGVhY3RpdmF0ZWQuICBUbyBtYWtlIHN1cmUgYQotd2lkZ2V0IGlzIHJlYWxseSBhY3RpdmUs IHlvdSBtdXN0IHRoZXJlZm9yZSBhY3RpdmF0ZSBib3RoIGl0IGFuZCBhbGwgaXRzCi1hbmNlc3Rv cnMuCi0KLSAgICAgKHdoaWxlIHdpZGdldAotICAgICAgICh3aWRnZXQtYXBwbHkgd2lkZ2V0IDph Y3RpdmF0ZSkKLSAgICAgICAoc2V0cSB3aWRnZXQgKHdpZGdldC1nZXQgd2lkZ2V0IDpwYXJlbnQp KSkKLQotICAgWW91IGNhbiBjaGVjayBpZiBhIHdpZGdldCBoYXMgYmVlbiBtYWRlIGluYWN0aXZl IGJ5IGV4YW1pbmluZyB0aGUKLXZhbHVlIG9mIHRoZSDigJg6aW5hY3RpdmXigJkga2V5d29yZC4g IElmIHRoaXMgaXMgbm9uLeKAmG5pbOKAmSwgdGhlIHdpZGdldAotaXRzZWxmIGhhcyBiZWVuIGRl YWN0aXZhdGVkLiAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB1c2luZyB0aGUg4oCYOmFjdGl2ZeKA mQota2V5d29yZCwgaW4gdGhhdCB0aGUgbGF0dGVyIHRlbGxzIHlvdSBpZiB0aGUgd2lkZ2V0ICpv ciogYW55IG9mIGl0cwotYW5jZXN0b3JzIGhhdmUgYmVlbiBkZWFjdGl2YXRlZC4gIERvIG5vdCBh dHRlbXB0IHRvIHNldCB0aGUg4oCYOmluYWN0aXZl4oCZCi1rZXl3b3JkIGRpcmVjdGx5LiAgVXNl IHRoZSDigJg6YWN0aXZhdGXigJkg4oCYOmRlYWN0aXZhdGXigJkga2V5d29yZHMgaW5zdGVhZC4K KyAgICAgV2hlbiBpbnN0YW50aWF0ZWQsIGl0IGNvbnRhaW5zIGEgc2luZ2xlIGluZmVyaW9yIHdp ZGdldCBvZiB0aGUKKyAgICAgd2lkZ2V0IHR5cGUgc3BlY2lmaWVkIGluIHRoZSDigJg6dHlwZeKA mSBwcm9wZXJ0eS4gIEl0cyB2YWx1ZSBpcyB0aGUKKyAgICAgc2FtZSBhcyB0aGUgdmFsdWUgb2Yg dGhpcyBpbmZlcmlvciB3aWRnZXQuCiAKLTggRGVmaW5pbmcgTmV3IFdpZGdldHMKKzkgRGVmaW5p bmcgTmV3IFdpZGdldHMKICoqKioqKioqKioqKioqKioqKioqKioKIAogWW91IGNhbiBkZWZpbmUg c3BlY2lhbGl6ZWQgd2lkZ2V0cyB3aXRoIOKAmGRlZmluZS13aWRnZXTigJkuICBJdCBhbGxvd3Mg eW91CkBAIC0xMjE4LDE1ICsyNDEyLDI0IEBACiBjb21wb25lbnQgd2lkZ2V0cyBhbmQgbmV3IGRl ZmF1bHQgdmFsdWVzIGZvciB0aGUga2V5d29yZCBhcmd1bWVudHMuCiAKICAtLSBGdW5jdGlvbjog ZGVmaW5lLXdpZGdldCBuYW1lIGNsYXNzIGRvYyAmcmVzdCBhcmdzCi0gICAgIERlZmluZSBhIG5l dyB3aWRnZXQgdHlwZSBuYW1lZCBOQU1FIGZyb20g4oCYY2xhc3PigJkuCisgICAgIERlZmluZSBh IG5ldyB3aWRnZXQgdHlwZSBuYW1lZCBOQU1FIHRoYXQgZGVyaXZlcyBmcm9tIENMQVNTLgogCi0g ICAgIE5BTUUgYW5kIGNsYXNzIHNob3VsZCBib3RoIGJlIHN5bWJvbHMsIOKAmGNsYXNz4oCZIHNo b3VsZCBiZSBvbmUgb2YgdGhlCi0gICAgIGV4aXN0aW5nIHdpZGdldCB0eXBlcy4KKyAgICAgTkFN RSBhbmQgQ0xBU1Mgc2hvdWxkIGJvdGggYmUgc3ltYm9scywgYW5kIENMQVNTIHNob3VsZCBiZSBv bmUgb2YKKyAgICAgdGhlIGV4aXN0aW5nIHdpZGdldCB0eXBlcy4KIAogICAgICBUaGUgdGhpcmQg YXJndW1lbnQgRE9DIGlzIGEgZG9jdW1lbnRhdGlvbiBzdHJpbmcgZm9yIHRoZSB3aWRnZXQuCiAK LSAgICAgQWZ0ZXIgdGhlIG5ldyB3aWRnZXQgaGFzIGJlZW4gZGVmaW5lZCwgdGhlIGZvbGxvd2lu ZyB0d28gY2FsbHMgd2lsbAotICAgICBjcmVhdGUgaWRlbnRpY2FsIHdpZGdldHM6CisgICAgIEFS R1Mgc2hvdWxkIGJlIGtleS12YWx1ZSBwYWlycywgb3ZlcnJpZGluZyBrZXl3b3JkIHZhbHVlcyBv ZiBDTEFTUywKKyAgICAgb3IgYWRkaW5nIG5ldyByZWNvZ25pemVkIGtleXdvcmRzIGZvciBOQU1F LgorCisgICAgIFVzdWFsbHksIHlvdeKAmWxsIHdhbnQgdG8gZGVyaXZlIGZyb20gYW4gZXhpc3Rp bmcgd2lkZ2V0IHR5cGUsIGxpa2UKKyAgICAgdGhlIOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdl dCwgb3IgdGhlIOKAmGRlZmF1bHTigJkgd2lkZ2V0LCBidXQgaXTigJlzIGFsc28KKyAgICAgcG9z c2libGUgdG8gZGVyaXZlIGZyb20gbm90aGluZywgYnkgcGFzc2luZyBhIHZhbHVlIG9mIOKAmG5p bOKAmSBhcworICAgICBDTEFTUy4gIE5vdGUgdGhhdCBpZiB5b3UgZG8gdGhpcywgeW914oCZcmUg ZW50aXJlbHkgcmVzcG9uc2libGUgZm9yCisgICAgIGRlZmluaW5nIGEgd2hvbGUgbmV3IGRlZmF1 bHQgYmVoYXZpb3IgZm9yIHlvdXIgd2lkZ2V0cy4KKworICAgICBBZnRlciB1c2luZyB0aGlzIGZ1 bmN0aW9uLCB0aGUgZm9sbG93aW5nIHR3byBjYWxscyB3aWxsIGNyZWF0ZQorICAgICBpZGVudGlj YWwgd2lkZ2V0czoKIAogICAgICAgICDigKIgICAgICAod2lkZ2V0LWNyZWF0ZSBOQU1FKQogCkBA IC0xMjM5LDE0NyArMjQ0Miw2MSBAQAogICAgSWYgeW91IG9ubHkgd2FudCB0byBzcGVjaWZ5IGRl ZmF1bHRzIGZvciBrZXl3b3JkcyB3aXRoIG5vIGNvbXBsZXgKIGNvbnZlcnNpb25zLCB5b3UgY2Fu IHVzZSDigJhpZGVudGl0eeKAmSBhcyB5b3VyIGNvbnZlcnNpb24gZnVuY3Rpb24uCiAKLSAgIFRo ZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgdXNlZnVsIHdoZW4g ZGVmaW5pbmcKLW5ldyB3aWRnZXRzOgorICAgV2hlbiBkZWZpbmluZyBuZXcgd2lkZ2V0cywgdGhl IOKAmDpjb252ZXJ0LXdpZGdldOKAmSBwcm9wZXJ0eSBtaWdodCBiZQordXNlZnVsOgorCiDigJg6 Y29udmVydC13aWRnZXTigJkKICAgICAgRnVuY3Rpb24gdG8gY29udmVydCBhIHdpZGdldCB0eXBl IGJlZm9yZSBjcmVhdGluZyBhIHdpZGdldCBvZiB0aGF0Ci0gICAgIHR5cGUuICBJdCB0YWtlcyBh IHdpZGdldCB0eXBlIGFzIGFuIGFyZ3VtZW50LCBhbmQgcmV0dXJucyB0aGUKLSAgICAgY29udmVy dGVkIHdpZGdldCB0eXBlLiAgV2hlbiBhIHdpZGdldCBpcyBjcmVhdGVkLCB0aGlzIGZ1bmN0aW9u IGlzCi0gICAgIGNhbGxlZCBmb3IgdGhlIHdpZGdldCB0eXBlIGFuZCBhbGwgdGhlIHdpZGdldOKA mXMgcGFyZW50IHR5cGVzLCBtb3N0Ci0gICAgIGRlcml2ZWQgZmlyc3QuCi0KLSAgICAgVGhlIGZv bGxvd2luZyBwcmVkZWZpbmVkIGZ1bmN0aW9ucyBjYW4gYmUgdXNlZCBoZXJlOgotCi0gICAgICAt LSBGdW5jdGlvbjogd2lkZ2V0LXR5cGVzLWNvbnZlcnQtd2lkZ2V0IHdpZGdldAotICAgICAgICAg IENvbnZlcnQg4oCYOmFyZ3PigJkgYXMgd2lkZ2V0IHR5cGVzIGluIFdJREdFVC4KLQotICAgICAg LS0gRnVuY3Rpb246IHdpZGdldC12YWx1ZS1jb252ZXJ0LXdpZGdldCB3aWRnZXQKLSAgICAgICAg ICBJbml0aWFsaXplIOKAmDp2YWx1ZeKAmSBmcm9tIOKAmDphcmdz4oCZIGluIFdJREdFVC4KLQot 4oCYOmNvcHnigJkKLSAgICAgRnVuY3Rpb24gdG8gZGVlcCBjb3B5IGEgd2lkZ2V0IHR5cGUuICBJ dCB0YWtlcyBhIHNoYWxsb3cgY29weSBvZgotICAgICB0aGUgd2lkZ2V0IHR5cGUgYXMgYW4gYXJn dW1lbnQgKG1hZGUgYnkg4oCYY29weS1zZXF1ZW5jZeKAmSksIGFuZAotICAgICByZXR1cm5zIGEg ZGVlcCBjb3B5LiAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBhdm9pZCBoYXZpbmcKLSAgICAg ZGlmZmVyZW50IGluc3RhbmNlcyBvZiBjb21iaW5lZCB3aWRnZXRzIHNoYXJlIG5lc3RlZCBhdHRy aWJ1dGVzLgotCi0gICAgIFRoZSBmb2xsb3dpbmcgcHJlZGVmaW5lZCBmdW5jdGlvbnMgY2FuIGJl IHVzZWQgaGVyZToKLQotICAgICAgLS0gRnVuY3Rpb246IHdpZGdldC10eXBlcy1jb3B5IHdpZGdl dAotICAgICAgICAgIENvcHkg4oCYOmFyZ3PigJkgYXMgd2lkZ2V0IHR5cGVzIGluIFdJREdFVC4K LQot4oCYOnZhbHVlLXRvLWludGVybmFs4oCZCi0gICAgIEZ1bmN0aW9uIHRvIGNvbnZlcnQgdGhl IHZhbHVlIHRvIHRoZSBpbnRlcm5hbCBmb3JtYXQuICBUaGUgZnVuY3Rpb24KLSAgICAgdGFrZXMg dHdvIGFyZ3VtZW50cywgYSB3aWRnZXQgYW5kIGFuIGV4dGVybmFsIHZhbHVlLCBhbmQgcmV0dXJu cwotICAgICB0aGUgaW50ZXJuYWwgdmFsdWUuICBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIHRo ZSBwcmVzZW50IOKAmDp2YWx1ZeKAmQotICAgICB3aGVuIHRoZSB3aWRnZXQgaXMgY3JlYXRlZCwg YW5kIG9uIGFueSB2YWx1ZSBzZXQgbGF0ZXIgd2l0aAotICAgICDigJh3aWRnZXQtdmFsdWUtc2V0 4oCZLgorICAgICB0eXBlLgogCi3igJg6dmFsdWUtdG8tZXh0ZXJuYWzigJkKLSAgICAgRnVuY3Rp b24gdG8gY29udmVydCB0aGUgdmFsdWUgdG8gdGhlIGV4dGVybmFsIGZvcm1hdC4gIFRoZSBmdW5j dGlvbgotICAgICB0YWtlcyB0d28gYXJndW1lbnRzLCBhIHdpZGdldCBhbmQgYW4gaW50ZXJuYWwg dmFsdWUsIGFuZCByZXR1cm5zCi0gICAgIHRoZSBleHRlcm5hbCB2YWx1ZS4KLQot4oCYOmNyZWF0 ZeKAmQotICAgICBGdW5jdGlvbiB0byBjcmVhdGUgYSB3aWRnZXQgZnJvbSBzY3JhdGNoLiAgVGhl IGZ1bmN0aW9uIHRha2VzIG9uZQotICAgICBhcmd1bWVudCwgYSB3aWRnZXQgdHlwZSwgYW5kIGNy ZWF0ZXMgYSB3aWRnZXQgb2YgdGhhdCB0eXBlLCBpbnNlcnRzCi0gICAgIGl0IGluIHRoZSBidWZm ZXIsIGFuZCByZXR1cm5zIGEgd2lkZ2V0IG9iamVjdC4KLQot4oCYOmRlbGV0ZeKAmQotICAgICBG dW5jdGlvbiB0byBkZWxldGUgYSB3aWRnZXQuICBUaGUgZnVuY3Rpb24gdGFrZXMgb25lIGFyZ3Vt ZW50LCBhCi0gICAgIHdpZGdldCwgYW5kIHNob3VsZCByZW1vdmUgYWxsIHRyYWNlcyBvZiB0aGUg d2lkZ2V0IGZyb20gdGhlIGJ1ZmZlci4KLQotICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpczoKLQot ICAgICAgLS0gRnVuY3Rpb246IHdpZGdldC1kZWZhdWx0LWRlbGV0ZSB3aWRnZXQKLSAgICAgICAg ICBSZW1vdmUgV0lER0VUIGZyb20gdGhlIGJ1ZmZlci4gIERlbGV0ZSBhbGwg4oCYOmNoaWxkcmVu 4oCZIGFuZAotICAgICAgICAgIOKAmDpidXR0b25z4oCZIGluIFdJREdFVC4KLQotICAgICBJbiBt b3N0IGNhc2VzIHlvdSBzaG91bGQgbm90IGNoYW5nZSB0aGlzIHZhbHVlLCBidXQgaW5zdGVhZCB1 c2UKLSAgICAg4oCYOnZhbHVlLWRlbGV0ZeKAmSB0byBtYWtlIGFueSBhZGRpdGlvbmFsIGNsZWFu dXAuCi0KLeKAmDp2YWx1ZS1jcmVhdGXigJkKLSAgICAgRnVuY3Rpb24gdG8gZXhwYW5kIHRoZSDi gJglduKAmSBlc2NhcGUgaW4gdGhlIGZvcm1hdCBzdHJpbmcuICBJdCB3aWxsCi0gICAgIGJlIGNh bGxlZCB3aXRoIHRoZSB3aWRnZXQgYXMgaXRzIGFyZ3VtZW50IGFuZCBzaG91bGQgaW5zZXJ0IGEK LSAgICAgcmVwcmVzZW50YXRpb24gb2YgdGhlIHdpZGdldOKAmXMgdmFsdWUgaW4gdGhlIGJ1ZmZl ci4KLQotICAgICBOZXN0ZWQgd2lkZ2V0cyBzaG91bGQgYmUgbGlzdGVkIGluIOKAmDpjaGlsZHJl buKAmSBvciDigJg6YnV0dG9uc+KAmSB0bwotICAgICBtYWtlIHN1cmUgdGhleSBhcmUgYXV0b21h dGljYWxseSBkZWxldGVkLgotCi3igJg6dmFsdWUtZGVsZXRl4oCZCi0gICAgIFNob3VsZCByZW1v dmUgdGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB3aWRnZXTigJlzIHZhbHVlIGZyb20gdGhlCi0g ICAgIGJ1ZmZlci4gIEl0IHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIHdpZGdldCBhcyBpdHMgYXJn dW1lbnQuICBJdAotICAgICBkb2VzbuKAmXQgaGF2ZSB0byByZW1vdmUgdGhlIHRleHQsIGJ1dCBp dCBzaG91bGQgcmVsZWFzZSBtYXJrZXJzIGFuZAotICAgICBkZWxldGUgbmVzdGVkIHdpZGdldHMg aWYgdGhlc2UgYXJlIG5vdCBsaXN0ZWQgaW4g4oCYOmNoaWxkcmVu4oCZIG9yCi0gICAgIOKAmDpi dXR0b25z4oCZLgotCi3igJg6dmFsdWUtZ2V04oCZCi0gICAgIEZ1bmN0aW9uIHRvIGV4dHJhY3Qg dGhlIHZhbHVlIG9mIGEgd2lkZ2V0LCBhcyBpdCBpcyBkaXNwbGF5ZWQgaW4KLSAgICAgdGhlIGJ1 ZmZlci4KKyAgICAgSXQgdGFrZXMgYSB3aWRnZXQgdHlwZSBhcyBhbiBhcmd1bWVudCwgYW5kIHJl dHVybnMgdGhlIGNvbnZlcnRlZAorICAgICB3aWRnZXQgdHlwZS4gIFdoZW4gYSB3aWRnZXQgaXMg Y3JlYXRlZCwgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yCisgICAgIHRoZSB3aWRnZXQgdHlw ZSBhbmQgYWxsIHRoZSB3aWRnZXTigJlzIHBhcmVudCB0eXBlcywgbW9zdCBkZXJpdmVkCisgICAg IGZpcnN0LgogCi0gICAgIFRoZSBmb2xsb3dpbmcgcHJlZGVmaW5lZCBmdW5jdGlvbiBjYW4gYmUg dXNlZCBoZXJlOgorICAgICBUaGUgcHJlZGVmaW5lZCBmdW5jdGlvbnMg4oCYd2lkZ2V0LXR5cGVz LWNvbnZlcnQtd2lkZ2V04oCZIGFuZAorICAgICDigJh3aWRnZXQtdmFsdWUtY29udmVydC13aWRn ZXTigJkgY2FuIGJlIHVzZWQgaGVyZS4KIAotICAgICAgLS0gRnVuY3Rpb246IHdpZGdldC12YWx1 ZS12YWx1ZS1nZXQgd2lkZ2V0Ci0gICAgICAgICAgUmV0dXJuIHRoZSDigJg6dmFsdWXigJkgcHJv cGVydHkgb2YgV0lER0VULgotCi3igJg6Zm9ybWF0LWhhbmRsZXLigJkKLSAgICAgRnVuY3Rpb24g dG8gaGFuZGxlIHVua25vd24g4oCYJeKAmSBlc2NhcGVzIGluIHRoZSBmb3JtYXQgc3RyaW5nLiAg SXQKLSAgICAgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgd2lkZ2V0IGFuZCB0aGUgY2hhcmFjdGVy IHRoYXQgZm9sbG93cyB0aGUKLSAgICAg4oCYJeKAmSBhcyBhcmd1bWVudHMuICBZb3UgY2FuIHNl dCB0aGlzIHRvIGFsbG93IHlvdXIgd2lkZ2V0IHRvIGhhbmRsZQotICAgICBub24tc3RhbmRhcmQg ZXNjYXBlcy4KLQotICAgICBZb3Ugc2hvdWxkIGVuZCB1cCBjYWxsaW5nIOKAmHdpZGdldC1kZWZh dWx0LWZvcm1hdC1oYW5kbGVy4oCZIHRvIGhhbmRsZQotICAgICB1bmtub3duIGVzY2FwZSBzZXF1 ZW5jZXMsIHdoaWNoIHdpbGwgaGFuZGxlIHRoZSDigJglaOKAmSBhbmQgYW55IGZ1dHVyZQotICAg ICBlc2NhcGUgc2VxdWVuY2VzLCBhcyB3ZWxsIGFzIGdpdmUgYW4gZXJyb3IgZm9yIHVua25vd24g ZXNjYXBlcy4KLQot4oCYOmFjdGlvbuKAmQotICAgICBGdW5jdGlvbiB0byBoYW5kbGUgdXNlciBp bml0aWF0ZWQgZXZlbnRzLiAgQnkgZGVmYXVsdCwg4oCYOm5vdGlmeeKAmQotICAgICB0aGUgcGFy ZW50LgorMTAgSW5zcGVjdGluZyBXaWRnZXRzCisqKioqKioqKioqKioqKioqKioqKioKIAotICAg ICBUaGUgZm9sbG93aW5nIHByZWRlZmluZWQgZnVuY3Rpb24gY2FuIGJlIHVzZWQgaGVyZToKK1Ro ZXJlIGlzIGEgc2VwYXJhdGUgcGFja2FnZSB0byBicm93c2Ugd2lkZ2V0cywgaW4g4oCYd2lkLWJy b3dzZS5lbOKAmS4gIFRoaXMKK2lzIGludGVuZGVkIHRvIGhlbHAgcHJvZ3JhbW1lcnMgd2hvIHdh bnQgdG8gZXhhbWluZSB0aGUgY29udGVudCBvZiBhCit3aWRnZXQuICBUaGUgYnJvd3NlciBzaG93 cyB0aGUgdmFsdWUgb2YgZWFjaCBrZXl3b3JkLCBidXQgdXNlcyBsaW5rcyBmb3IKK2NlcnRhaW4g a2V5d29yZHMgc3VjaCBhcyDigJg6cGFyZW504oCZLCB3aGljaCBhdm9pZHMgcHJpbnRpbmcgY3lj bGljCitzdHJ1Y3R1cmVzLgogCi0gICAgICAtLSBGdW5jdGlvbjogd2lkZ2V0LXBhcmVudC1hY3Rp b24gd2lkZ2V0ICZvcHRpb25hbCBldmVudAotICAgICAgICAgIFRlbGwg4oCYOnBhcmVudOKAmSBv ZiBXSURHRVQgdG8gaGFuZGxlIHRoZSDigJg6YWN0aW9u4oCZLiAgT3B0aW9uYWwKLSAgICAgICAg ICBFVkVOVCBpcyB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGFjdGlvbi4KKyAtLSBDb21t YW5kOiB3aWRnZXQtYnJvd3NlIFdJREdFVAorICAgICBDcmVhdGUgYSB3aWRnZXQgYnJvd3NlciBm b3IgV0lER0VULgogCi3igJg6cHJvbXB0LXZhbHVl4oCZCi0gICAgIEZ1bmN0aW9uIHRvIHByb21w dCBmb3IgYSB2YWx1ZSBpbiB0aGUgbWluaWJ1ZmZlci4gIFRoZSBmdW5jdGlvbgotICAgICBzaG91 bGQgdGFrZSBmb3VyIGFyZ3VtZW50cywgV0lER0VULCBQUk9NUFQsIFZBTFVFLCBhbmQgVU5CT1VO RCBhbmQKLSAgICAgc2hvdWxkIHJldHVybiBhIHZhbHVlIGZvciB3aWRnZXQgZW50ZXJlZCBieSB0 aGUgdXNlci4gIFBST01QVCBpcwotICAgICB0aGUgcHJvbXB0IHRvIHVzZS4gIFZBTFVFIGlzIHRo ZSBkZWZhdWx0IHZhbHVlIHRvIHVzZSwgdW5sZXNzCi0gICAgIFVOQk9VTkQgaXMgbm9uLeKAmG5p bOKAmSwgaW4gd2hpY2ggY2FzZSB0aGVyZSBpcyBubyBkZWZhdWx0IHZhbHVlLiAgVGhlCi0gICAg IGZ1bmN0aW9uIHNob3VsZCByZWFkIHRoZSB2YWx1ZSB1c2luZyB0aGUgbWV0aG9kIG1vc3QgbmF0 dXJhbCBmb3IKLSAgICAgdGhpcyB3aWRnZXQsIGFuZCBkb2VzIG5vdCBoYXZlIHRvIGNoZWNrIHRo YXQgaXQgbWF0Y2hlcy4KKyAgICAgV2hlbiBjYWxsZWQgaW50ZXJhY3RpdmVseSwgcHJvbXB0IGZv ciBXSURHRVQuCiAKLSAgIElmIHlvdSB3YW50IHRvIGRlZmluZSBhIG5ldyB3aWRnZXQgZnJvbSBz Y3JhdGNoLCB1c2UgdGhlIOKAmGRlZmF1bHTigJkKLXdpZGdldCBhcyBpdHMgYmFzZS4KKyAtLSBD b21tYW5kOiB3aWRnZXQtYnJvd3NlLW90aGVyLXdpbmRvdyBXSURHRVQKKyAgICAgQ3JlYXRlIGEg d2lkZ2V0IGJyb3dzZXIgZm9yIFdJREdFVCBhbmQgc2hvdyBpdCBpbiBhbm90aGVyIHdpbmRvdy4K IAotIC0tIFdpZGdldDogZGVmYXVsdAotICAgICBXaWRnZXQgdXNlZCBhcyBhIGJhc2UgZm9yIG90 aGVyIHdpZGdldHMuCisgICAgIFdoZW4gY2FsbGVkIGludGVyYWN0aXZlbHksIHByb21wdCBmb3Ig V0lER0VULgogCi0gICAgIEl0IHByb3ZpZGVzIG1vc3Qgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgdGhh dCBpcyByZWZlcnJlZCB0byBhcyDigJxieQotICAgICBkZWZhdWx04oCdIGluIHRoaXMgdGV4dC4K KyAtLSBDb21tYW5kOiB3aWRnZXQtYnJvd3NlLWF0IFBPUworICAgICBDcmVhdGUgYSB3aWRnZXQg YnJvd3NlciBmb3IgdGhlIHdpZGdldCBhdCBQT1MuCiAKLTkgV2lkZ2V0IEJyb3dzZXIKLSoqKioq KioqKioqKioqKioKKyAgICAgV2hlbiBjYWxsZWQgaW50ZXJhY3RpdmVseSwgdXNlIHRoZSBwb3Np dGlvbiBvZiBwb2ludC4KIAotVGhlcmUgaXMgYSBzZXBhcmF0ZSBwYWNrYWdlIHRvIGJyb3dzZSB3 aWRnZXRzLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBoZWxwCi1wcm9ncmFtbWVycyB3aG8gd2FudCB0 byBleGFtaW5lIHRoZSBjb250ZW50IG9mIGEgd2lkZ2V0LiAgVGhlIGJyb3dzZXIKLXNob3dzIHRo ZSB2YWx1ZSBvZiBlYWNoIGtleXdvcmQsIGJ1dCB1c2VzIGxpbmtzIGZvciBjZXJ0YWluIGtleXdv cmRzCi1zdWNoIGFzIOKAmDpwYXJlbnTigJksIHdoaWNoIGF2b2lkcyBwcmludGluZyBjeWNsaWMg c3RydWN0dXJlcy4KKyAgIEluIGFkZGl0aW9uLCB0aGVyZeKAmXMgYSBmdW5jdGlvbiB0byBkZXNj cmliZSB0aGUgd2lkZ2V0IGF0IHBvaW50LgogCi0gLS0gQ29tbWFuZDogd2lkZ2V0LWJyb3dzZSBX SURHRVQKLSAgICAgQ3JlYXRlIGEgd2lkZ2V0IGJyb3dzZXIgZm9yIFdJREdFVC4gIFdoZW4gY2Fs bGVkIGludGVyYWN0aXZlbHksCi0gICAgIHByb21wdCBmb3IgV0lER0VULgorIC0tIENvbW1hbmQ6 IHdpZGdldC1kZXNjcmliZSAmb3B0aW9uYWwgd2lkZ2V0LW9yLXBvcworICAgICBEZXNjcmliZSB0 aGUgd2lkZ2V0IGF0IHBvaW50LgogCi0gLS0gQ29tbWFuZDogd2lkZ2V0LWJyb3dzZS1vdGhlci13 aW5kb3cgV0lER0VUCi0gICAgIENyZWF0ZSBhIHdpZGdldCBicm93c2VyIGZvciBXSURHRVQgYW5k IHNob3cgaXQgaW4gYW5vdGhlciB3aW5kb3cuCi0gICAgIFdoZW4gY2FsbGVkIGludGVyYWN0aXZl bHksIHByb21wdCBmb3IgV0lER0VULgorICAgICBXaGVuIGNhbGxlZCBmcm9tIExpc3AsIFdJREdF VC1PUi1QT1MgbWlnaHQgYmUgdGhlIHdpZGdldCB0bworICAgICBkZXNjcmliZSBvciBhIGJ1ZmZl ciBwb3NpdGlvbiB3aGVyZSBhIHdpZGdldCBpcyBwcmVzZW50LiAgSWYKKyAgICAgV0lER0VULU9S LVBPUyBpcyDigJhuaWzigJksIHRoZSB3aWRnZXQgdG8gZGVzY3JpYmUgaXMgdGhlIHdpZGdldCBh dAorICAgICBwb2ludC4KIAotIC0tIENvbW1hbmQ6IHdpZGdldC1icm93c2UtYXQgUE9TCi0gICAg IENyZWF0ZSBhIHdpZGdldCBicm93c2VyIGZvciB0aGUgd2lkZ2V0IGF0IFBPUy4gIFdoZW4gY2Fs bGVkCi0gICAgIGludGVyYWN0aXZlbHksIHVzZSB0aGUgcG9zaXRpb24gb2YgcG9pbnQuCisgICAg IFRoaXMgY29tbWFuZCBzZXRzIHVwIGEgaGVscCBidWZmZXIgZm9yIHByb3ZpZGluZyBpbmZvcm1h dGlvbiBhYm91dAorICAgICB0aGUgd2lkZ2V0LCBtYWlubHkgaXRzIOKAmDphY3Rpb27igJkgYW5k IOKAmDptb3VzZS1kb3duLWFjdGlvbuKAmQorICAgICBmdW5jdGlvbnMsIGFuZCBwcm92aWRlcyBs aW5rcyB0byBkZXNjcmliZSBpdCBpbiBtb3JlIGRldGFpbCB1c2luZworICAgICB0aGUg4oCYd2lk Z2V0LWJyb3dzZeKAmSBjb21tYW5kcyBkZXNjcmliZWQgYWJvdmUuCiAKLTEwIFdpZGdldCBNaW5v ciBNb2RlCisxMSBXaWRnZXQgTWlub3IgTW9kZQogKioqKioqKioqKioqKioqKioqKioKIAogVGhl cmUgaXMgYSBtaW5vciBtb2RlIGZvciBtYW5pcHVsYXRpbmcgd2lkZ2V0cyBpbiBtYWpvciBtb2Rl cyB0aGF0IGRvbuKAmXQKQEAgLTEzOTMsMTYgKzI1MTAsMjYgQEAKICAtLSBWYXJpYWJsZTogd2lk Z2V0LW1pbm9yLW1vZGUta2V5bWFwCiAgICAgIEtleW1hcCB1c2VkIGluIOKAmHdpZGdldC1taW5v ci1tb2Rl4oCZLgogCi0xMSBVdGlsaXRpZXMKKzEyIFV0aWxpdGllcwogKioqKioqKioqKioqCiAK K0hlcmUgd2UgZGVzY3JpYmUgc29tZSB1dGlsaXR5IGZ1bmN0aW9ucyB0aGF0IGRvbuKAmXQgcmVh bGx5IGhhdmUgYSBwbGFjZQorZWFybGllciBpbiB0aGlzIG1hbnVhbC4KKwogIC0tIEZ1bmN0aW9u OiB3aWRnZXQtcHJvbXB0LXZhbHVlIHdpZGdldCBwcm9tcHQgWyB2YWx1ZSB1bmJvdW5kIF0KICAg ICAgUHJvbXB0IGZvciBhIHZhbHVlIG1hdGNoaW5nIFdJREdFVCwgdXNpbmcgUFJPTVBULiAgVGhl IGN1cnJlbnQKICAgICAgdmFsdWUgaXMgYXNzdW1lZCB0byBiZSBWQUxVRSwgdW5sZXNzIFVOQk9V TkQgaXMgbm9uLeKAmG5pbOKAmS4KIAorICAgICBDb252ZXJ0cyBXSURHRVQgYmVmb3JlIHByb21w dGluZywgYW5kIGZvciBwcm9tcHRpbmcgaXQgdXNlcyB0aGUKKyAgICAg4oCYOnByb21wdC12YWx1 ZeKAmSBmdW5jdGlvbi4gIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdXNlciDigJxhbnN3ZXLi gJ0sCisgICAgIGFuZCBpdOKAmXMgYW4gZXJyb3IgaWYgdGhhdCBhbnN3ZXIgZG9lc27igJl0IG1h dGNoIHRoZSB3aWRnZXQsIGFzIHdpdGgKKyAgICAgdGhlIOKAmDptYXRjaOKAmSBmdW5jdGlvbi4K KworICAgICBJZiB0aGUgYW5zd2VyIG1hdGNoZXMgdGhlIHdpZGdldCwgcmV0dXJucyB0aGUgYW5z d2VyLgorCiAgLS0gRnVuY3Rpb246IHdpZGdldC1nZXQtc2libGluZyB3aWRnZXQKLSAgICAgR2V0 IHRoZSBpdGVtIHdoaWNoIFdJREdFVCBpcyBhc3N1bWVkIHRvIHRvZ2dsZS4gIFRoaXMgaXMgb25s eQotICAgICBtZWFuaW5nZnVsIGZvciByYWRpbyBidXR0b25zIG9yIGNoZWNrYm94ZXMgaW4gYSBs aXN0LgorICAgICBHZXQgdGhlIGl0ZW0gd2hpY2ggV0lER0VUIHNob3VsZCB0b2dnbGUuICBUaGlz IGlzIG9ubHkgbWVhbmluZ2Z1bAorICAgICBmb3IgcmFkaW8gYnV0dG9ucyBvciBjaGVja2JveGVz IGluIGEgbGlzdC4KIAogIC0tIEZ1bmN0aW9uOiB3aWRnZXQtY2hvb3NlIHRpdGxlIGl0ZW1zICZv cHRpb25hbCBldmVudAogICAgICBQcm9tcHQgdGhlIHVzZXIgdG8gY2hvb3NlIGFuIGl0ZW0gZnJv bSBhIGxpc3Qgb2Ygb3B0aW9ucy4KQEAgLTE0MjQsNyArMjU1MSwxMjQgQEAKICAgICAgc2ltcGxp ZmllZCBmb3JtYXQpLCB0aGVuIHRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIFZBTFVFIG9mIHRoZQog ICAgICBjaG9zZW4gZWxlbWVudC4KIAotMTIgV2lzaGxpc3QKKyAtLSBGdW5jdGlvbjogd2lkZ2V0 LWltYWdlLWZpbmQgaW1hZ2UKKyAgICAgQ3JlYXRlIGEgZ3JhcGhpY2FsIGJ1dHRvbiBmcm9tIElN QUdFLCBhbiBpbWFnZSBvciBhIGZpbGUgbmFtZSBzYW5zCisgICAgIGV4dGVuc2lvbi4KKworICAg ICBJZiBJTUFHRSBpcyBhIGZpbGUgbmFtZSwgdGhlIGZpbGUgc2hvdWxkIGJlIGluCisgICAgIOKA mHdpZGdldC1pbWFnZS1kaXJlY3RvcnnigJksIG9yIGluIGEgcGxhY2Ugd2hlcmUg4oCYZmluZC1p bWFnZeKAmSB3aWxsCisgICAgIGZpbmQgaXQuCisKKyAtLSBGdW5jdGlvbjogd2lkZ2V0LWltYWdl LWluc2VydCB3aWRnZXQgdGFnIGltYWdlCisgICAgIEFzIHBhcnQgb2YgV0lER0VULCBpbnNlcnQg dGhlIHRleHQgVEFHIG9yLCBpZiBzdXBwb3J0ZWQsIHRoZSBpbWFnZQorICAgICBJTUFHRS4KKwor ICAgICBJTUFHRSBzaG91bGQgYmUgYXMgZGVzY3JpYmVkIGluIOKAmHdpZGdldC1pbWFnZS1maW5k 4oCZLgorCisgLS0gRnVuY3Rpb246IHdpZGdldC1lY2hvLWhlbHAgcG9zCisgICAgIERpc3BsYXkg aGVscC1lY2hvIHRleHQgZm9yIHRoZSB3aWRnZXQgYXQgUE9TLgorCisgICAgIFVzZXMgdGhlIHZh bHVlIG9mIOKAmDpoZWxwLWVjaG/igJkuICBJZiBpdCBpcyBhIGZ1bmN0aW9uLCBpdCBjYWxscyBp dAorICAgICB0byBnZXQgYSBzdHJpbmcuICBPdGhlcndpc2UsIGl0IOKAmGV2YWzigJlzIGl0Lgor CisxMyBDdXN0b21pemF0aW9uCisqKioqKioqKioqKioqKioqCisKK1RoaXMgY2hhcHRlciBpcyBh Ym91dCB0aGUgY3VzdG9taXphdGlvbiBvcHRpb25zIGZvciB0aGUgV2lkZ2V0IGxpYnJhcnksCitm b3IgdGhlIGVuZCB1c2VyLgorCisgLS0gRmFjZTogd2lkZ2V0LWZpZWxkLWZhY2UKKyAgICAgRmFj ZSB1c2VkIGZvciBvdGhlciBlZGl0aW5nIGZpZWxkcy4KKworIC0tIEZhY2U6IHdpZGdldC1idXR0 b24tZmFjZQorICAgICBGYWNlIHVzZWQgZm9yIGJ1dHRvbnMuCisKKyAtLSBVc2VyIE9wdGlvbjog d2lkZ2V0LW1vdXNlLWZhY2UKKyAgICAgRmFjZSB1c2VkIGZvciBoaWdobGlnaHRpbmcgYSBidXR0 b24gd2hlbiB0aGUgbW91c2UgcG9pbnRlciBtb3ZlcworICAgICBhY3Jvc3MgaXQuCisKKyAgICAg VGhlIGRlZmF1bHQgdmFsdWUgaXMg4oCYaGlnaGxpZ2h04oCZLgorCisgLS0gVXNlciBPcHRpb246 IHdpZGdldC1pbWFnZS1kaXJlY3RvcnkKKyAgICAgRGlyZWN0b3J5IHdoZXJlIFdpZGdldCBzaG91 bGQgbG9vayBmb3IgaW1hZ2VzLgorCisgICAgIFdpZGdldCB3aWxsIGxvb2sgaGVyZSBmb3IgYSBm aWxlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBzcGVjaWZpZWQKKyAgICAgZm9yIHRoZSBpbWFnZSwg d2l0aCBlaXRoZXIgYSDigJgueHBt4oCZIChpZiBzdXBwb3J0ZWQpIG9yIOKAmC54Ym3igJkKKyAg ICAgZXh0ZW5zaW9uLgorCisgLS0gVXNlciBPcHRpb246IHdpZGdldC1pbWFnZS1lbmFibGUKKyAg ICAgSWYgbm9uLeKAmG5pbOKAmSwgYWxsb3cgaW1hZ2VzIHRvIGFwcGVhciBvbiBkaXNwbGF5cyB3 aGVyZSB0aGV5IGFyZQorICAgICBzdXBwb3J0ZWQuCisKKyAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0 LWltYWdlLWNvbnZlcnNpb24KKyAgICAgQW4gYWxpc3QgdG8gY29udmVydCBzeW1ib2xzIGZyb20g aW1hZ2UgZm9ybWF0cyB0byBmaWxlIG5hbWUKKyAgICAgc3VmZml4ZXMuCisKKyAgICAgRWFjaCBl bGVtZW50IGlzIGEgY29ucyBjZWxsIChGT1JNQVQgLiAgU1VGRklYKSwgd2hlcmUgRk9STUFUIGlz IGEKKyAgICAgc3ltYm9sIHRoYXQgcmVwcmVzZW50cyBhbiBpbWFnZSBmb3JtYXQgYW5kIFNVRkZJ WCBpcyBpdHMKKyAgICAgY29ycmVzcG9uZGVudCBzdWZmaXguCisKKyAtLSBVc2VyIE9wdGlvbjog d2lkZ2V0LWJ1dHRvbi1wcmVmaXgKKyAgICAgU3RyaW5nIHRvIHByZWZpeCBidXR0b25zLgorCisg LS0gVXNlciBPcHRpb246IHdpZGdldC1idXR0b24tc3VmZml4CisgICAgIFN0cmluZyB0byBzdWZm aXggYnV0dG9ucy4KKworIC0tIFVzZXIgT3B0aW9uOiB3aWRnZXQtcHVzaC1idXR0b24tcHJlZml4 CisgICAgIFN0cmluZyB0byBwcmVmaXggcHVzaCBidXR0b25zLgorCisgLS0gVXNlciBPcHRpb246 IHdpZGdldC1wdXNoLWJ1dHRvbi1zdWZmaXgKKyAgICAgU3RyaW5nIHRvIHN1ZmZpeCBwdXNoIGJ1 dHRvbnMuCisKKyAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LWxpbmstcHJlZml4CisgICAgIFN0cmlu ZyB0byBwcmVmaXggbGlua3MuCisKKyAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LWxpbmstc3VmZml4 CisgICAgIFN0cmluZyB0byBzdWZmaXggbGlua3MuCisKKyAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0 LWNob2ljZS10b2dnbGUKKyAgICAgSWYgbm9uLeKAmG5pbOKAmSwgdG9nZ2xlIHdoZW4gdGhlcmUg YXJlIGp1c3QgdHdvIG9wdGlvbnMuCisKKyAgICAgQnkgZGVmYXVsdCwgaXRzIHZhbHVlIGlzIOKA mG5pbOKAmS4KKworIC0tIFVzZXIgT3B0aW9uOiB3aWRnZXQtZG9jdW1lbnRhdGlvbi1saW5rcwor ICAgICBJZiBub24t4oCYbmls4oCZLCBhZGQgaHlwZXJsaW5rcyB0byBkb2N1bWVudGF0aW9uIHN0 cmluZ3MuCisKKyAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LWRvY3VtZW50YXRpb24tbGluay1yZWdl eHAKKyAgICAgQSByZWdleHAgdGhhdCBtYXRjaGVzIHBvdGVudGlhbCBsaW5rcyBpbiBkb2N1bWVu dGF0aW9uIHN0cmluZ3MuCisgICAgIFRoZSBsaW5rIGl0c2VsZiBzaG91bGQgbWF0Y2ggdG8gdGhl IGZpcnN0IGdyb3VwLgorCisgLS0gVXNlciBPcHRpb246IHdpZGdldC1kb2N1bWVudGF0aW9uLWxp bmstcAorICAgICBBIHByZWRpY2F0ZSBmdW5jdGlvbiB0byB0ZXN0IGlmIGEgc3RyaW5nIGlzIHVz ZWZ1bCBhcyBhIGxpbmsuICBUaGUKKyAgICAgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggb25lIGFy Z3VtZW50LCBhIHN0cmluZywgYW5kIHNob3VsZCByZXR1cm4KKyAgICAgbm9uLeKAmG5pbOKAmSBp ZiB0aGVyZSBzaG91bGQgYmUgYSBsaW5rIGZvciB0aGF0IHN0cmluZy4KKworICAgICBCeSBkZWZh dWx0LCB0aGUgdmFsdWUgaXMg4oCYaW50ZXJuLXNvZnTigJkuCisKKyAtLSBVc2VyIE9wdGlvbjog d2lkZ2V0LWRvY3VtZW50YXRpb24tbGluay10eXBlCisgICAgIEEgc3ltYm9sIHRoYXQgcmVwcmVz ZW50cyBhIHdpZGdldCB0eXBlIHRvIHVzZSBmb3IgbGlua3MgaW4KKyAgICAgZG9jdW1lbnRhdGlv biBzdHJpbmdzLgorCisgICAgIEJ5IGRlZmF1bHQsIHRoZSB2YWx1ZSBpcyDigJhkb2N1bWVudGF0 aW9uLWxpbmvigJkuCisKKyAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LW1lbnUtbWF4LXNpemUKKyAg ICAgTWF4aW11bSBzaXplIGZvciBhIHBvcHVwIG1lbnUuICBCeSBkZWZhdWx0LCBpdHMgdmFsdWUg aXMgNDAuCisKKyAgICAgSWYgYSBmdW5jdGlvbiBhc2sgeW91IHRvIGNob29zZSBmcm9tIGEgbWVu dSB0aGF0IGlzIGxhcmdlciB0aGFuCisgICAgIHRoaXMgdmFsdWUsIGl0IHdpbGwgdXNlIHRoZSBt aW5pYnVmZmVyLgorCisgLS0gVXNlciBPcHRpb246IHdpZGdldC1tZW51LW1heC1zaG9ydGN1dHMK KyAgICAgTGFyZ2VzdCBudW1iZXIgb2YgaXRlbXMgZm9yIHdoaWNoIGl0IHdvcmtzIHRvIGNob29z ZSBvbmUgd2l0aCBhCisgICAgIGNoYXJhY3Rlci4KKworICAgICBGb3IgYSBsYXJnZXIgbnVtYmVy LCB1c2UgdGhlIG1pbmlidWZmZXIuCisKKyAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LW1lbnUtbWlu aWJ1ZmZlci1mbGFnCisgICAgIFdoZXRoZXIgdG8gdXNlIHRoZSBtaW5pYnVmZmVyIHRvIGFzayBm b3IgYSBjaG9pY2UuCisKKyAgICAgSWYg4oCYbmls4oCZLCB0aGUgZGVmYXVsdCwgcmVhZCBhIHNp bmdsZSBjaGFyYWN0ZXIuCisKKzE0IFdpc2hsaXN0CiAqKioqKioqKioqKgogCiAgICDigKIgSXQg c2hvdWxkIGJlIHBvc3NpYmxlIHRvIGFkZCBvciByZW1vdmUgaXRlbXMgZnJvbSBhIGxpc3Qgd2l0 aCDigJhDLWvigJkKQEAgLTE0NDksMTIgKzI2OTMsNiBAQAogCiAgICDigKIgRmluZCBhIHdheSB0 byBtYWtlIGdseXBocyBsb29rIGluYWN0aXZlLgogCi0gICDigKIgQWRkIOKAmHByb3BlcnR5LWxp c3TigJkgd2lkZ2V0LgotCi0gICDigKIgQWRkIOKAmGFzc29jaWF0aW9uLWxpc3TigJkgd2lkZ2V0 LgotCi0gICDigKIgQWRkIOKAmGtleS1iaW5kaW5n4oCZIHdpZGdldC4KLQogICAg4oCiIEFkZCDi gJh3aWRnZXTigJkgd2lkZ2V0IGZvciBlZGl0aW5nIHdpZGdldCBzcGVjaWZpY2F0aW9ucy4KIAog ICAg4oCiIEZpbmQgY2xlYW4gd2F5IHRvIGltcGxlbWVudCB2YXJpYWJsZSBsZW5ndGggbGlzdC4g IFNlZQpAQCAtMTk1MSwyMjkgKzMxODksMzE4IEBACiAKICogTWVudToKIAotKiBhY3Rpb24ga2V5 d29yZDogICAgICAgICAgICAgICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAxMzMzKQotKiBhY3RpdmF0ZSBhIHdpZGdldDogICAgICAgICAgICAgICAgICAgICBXaWRn ZXQgUHJvcGVydGllcy4gIChsaW5lIDExODEpCi0qIGFjdGl2ZSB3aWRnZXQ6ICAgICAgICAgICAg ICAgICAgICAgICAgIFdpZGdldCBQcm9wZXJ0aWVzLiAgKGxpbmUgMTE4MSkKLSogYXBwZW5kLWJ1 dHRvbi1hcmdzIGtleXdvcmQ6ICAgICAgICAgICAgZWRpdGFibGUtbGlzdC4gICAgICAobGluZSAg OTE5KQotKiBhcmdzIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51LWNob2lj ZS4gICAgICAgIChsaW5lICA3MzEpCisqIGFjdGlvbiBrZXl3b3JkOiAgICAgICAgICAgICAgICAg ICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgMTEyNCkKKyogYWN0aXZhdGUgYSB3aWRn ZXQ6ICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDgzKQor KiBhY3RpdmF0ZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4g ICAgIChsaW5lIDExMTYpCisqIGFjdGl2ZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAg IFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgMTA3NykKKyogYWN0aXZlIHdpZGdldDogICAgICAg ICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDgzKQorKiBhbGlz dDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb3NpdGUuICAgICAgICAgIChs aW5lIDIzODcpCisqIGFwcGVuZC1idXR0b24tYXJncyBrZXl3b3JkOiAgICAgICAgICAgIGVkaXRh YmxlLWxpc3QuICAgICAgKGxpbmUgMTkzMikKKyogYXJncyBrZXl3b3JkOiAgICAgICAgICAgICAg ICAgICAgICAgICAgbWVudS1jaG9pY2UuICAgICAgICAobGluZSAxNTM4KQogKiBhcmdzIGtleXdv cmQgPDE+OiAgICAgICAgICAgICAgICAgICAgICByYWRpby1idXR0b24tY2hvaWNlLgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICA3NzEpCi0qIGFyZ3Mga2V5d29yZCA8Mj46ICAgICAgICAgICAgICAgICAgICAgIGNoZWNr bGlzdC4gICAgICAgICAgKGxpbmUgIDg4NSkKLSogYXJncyBrZXl3b3JkIDwzPjogICAgICAgICAg ICAgICAgICAgICAgZWRpdGFibGUtbGlzdC4gICAgICAobGluZSAgOTI4KQotKiBhdG9taWMgc2V4 cCB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lICA5 OTkpCi0qIGJhc2ljIHdpZGdldHM6ICAgICAgICAgICAgICAgICAgICAgICAgIEludHJvZHVjdGlv bi4gICAgICAgKGxpbmUgICA2MykKLSogYm9vbGVhbjogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAxMDUyKQotKiBicm93c2UtdXJsLWJyb3dz ZXItZnVuY3Rpb24sIGFuZCB1cmwtbGluayB3aWRnZXQ6IHVybC1saW5rLgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2 MjkpCi0qIGJ1dHRvbiB3aWRnZXRzOiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIgSW50ZXJm YWNlLiAgICAgKGxpbmUgIDIwMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxNjM5KQorKiBhcmdzIGtleXdvcmQgPDI+ OiAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3QuICAgICAgICAgIChsaW5lIDE4NjcpCisq IGFyZ3Mga2V5d29yZCA8Mz46ICAgICAgICAgICAgICAgICAgICAgIGVkaXRhYmxlLWxpc3QuICAg ICAgKGxpbmUgMTk1NCkKKyogYXRvbWljIHNleHAgd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAg YXRvbXMuICAgICAgICAgICAgICAobGluZSAyMTQyKQorKiBiYXNpYyB3aWRnZXRzOiAgICAgICAg ICAgICAgICAgICAgICAgICBJbnRyb2R1Y3Rpb24uICAgICAgIChsaW5lICAgNzUpCisqIGJvb2xl YW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxp bmUgMjI0MikKKyogYnV0dG9uIHdpZGdldHM6ICAgICAgICAgICAgICAgICAgICAgICAgVXNlciBJ bnRlcmZhY2UuICAgICAobGluZSAgMjAyKQogKiBidXR0b24tYXJncyBrZXl3b3JkOiAgICAgICAg ICAgICAgICAgICByYWRpby1idXR0b24tY2hvaWNlLgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA3NTgpCi0qIGJ1dHRv bi1hcmdzIGtleXdvcmQgPDE+OiAgICAgICAgICAgICAgIGNoZWNrbGlzdC4gICAgICAgICAgKGxp bmUgIDg3NSkKLSogYnV0dG9uLWZhY2Uga2V5d29yZDogICAgICAgICAgICAgICAgICAgQmFzaWMg VHlwZXMuICAgICAgICAobGluZSAgNDg2KQotKiBidXR0b24tcHJlZml4IGtleXdvcmQ6ICAgICAg ICAgICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA0ODkpCi0qIGJ1dHRvbi1zdWZm aXgga2V5d29yZDogICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDQ4 OSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAxNjI2KQorKiBidXR0b24tYXJncyBrZXl3b3JkIDwxPjogICAgICAgICAg ICAgICBjaGVja2xpc3QuICAgICAgICAgIChsaW5lIDE4NTcpCisqIGJ1dHRvbi1mYWNlIGtleXdv cmQ6ICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDkxNSkKKyog YnV0dG9uLWZhY2UtZ2V0IGtleXdvcmQ6ICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAg ICAobGluZSAxMDUwKQorKiBidXR0b24tcHJlZml4IGtleXdvcmQ6ICAgICAgICAgICAgICAgICBX aWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA5MTgpCisqIGJ1dHRvbi1zdWZmaXgga2V5d29yZDog ICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDkxOCkKICogYnV0dG9u cyBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgcmFkaW8tYnV0dG9uLWNob2ljZS4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgNzYyKQotKiBidXR0b25zIGtleXdvcmQgPDE+OiAgICAgICAgICAgICAgICAgICBj aGVja2xpc3QuICAgICAgICAgIChsaW5lICA4NzkpCi0qIGJ1dHRvbnMga2V5d29yZCA8Mj46ICAg ICAgICAgICAgICAgICAgIGVkaXRhYmxlLWxpc3QuICAgICAgKGxpbmUgIDkyMikKLSogY2FzZS1m b2xkIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgbWVudS1jaG9pY2UuICAgICAgICAobGlu ZSAgNzIwKQotKiBjaGFyYWN0ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9tcy4g ICAgICAgICAgICAgIChsaW5lIDEwMjEpCi0qIGNoZWNrYm94IHdpZGdldDogICAgICAgICAgICAg ICAgICAgICAgIGNoZWNrYm94LiAgICAgICAgICAgKGxpbmUgIDgzNykKLSogY2hlY2tsaXN0IHdp ZGdldDogICAgICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0LiAgICAgICAgICAobGluZSAgODQ3 KQotKiBjaGlsZHJlbiBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICBtZW51LWNob2ljZS4g ICAgICAgIChsaW5lICA3MjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTYzMCkKKyogYnV0dG9ucyBrZXl3b3JkIDwx PjogICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0LiAgICAgICAgICAobGluZSAxODYxKQorKiBi dXR0b25zIGtleXdvcmQgPDI+OiAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1saXN0LiAgICAg IChsaW5lIDE5MzUpCisqIGNhc2UtZm9sZCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgIG1l bnUtY2hvaWNlLiAgICAgICAgKGxpbmUgMTUyNSkKKyogY2hhcmFjdGVyOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAyMTcwKQorKiBjaGVja2Jv eCB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC4gICAgICAgICAgIChsaW5l IDE3ODUpCisqIGNoZWNrbGlzdCB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbGlz dC4gICAgICAgICAgKGxpbmUgMTgyNSkKKyogY2hpbGRyZW4ga2V5d29yZDogICAgICAgICAgICAg ICAgICAgICAgbWVudS1jaG9pY2UuICAgICAgICAobGluZSAxNTMxKQogKiBjaGlsZHJlbiBrZXl3 b3JkIDwxPjogICAgICAgICAgICAgICAgICByYWRpby1idXR0b24tY2hvaWNlLgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l ICA3NjUpCi0qIGNoaWxkcmVuIGtleXdvcmQgPDI+OiAgICAgICAgICAgICAgICAgIGNoZWNrbGlz dC4gICAgICAgICAgKGxpbmUgIDg4MikKLSogY2hpbGRyZW4ga2V5d29yZCA8Mz46ICAgICAgICAg ICAgICAgICAgZWRpdGFibGUtbGlzdC4gICAgICAobGluZSAgOTI1KQotKiBjaG9pY2U6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb3NpdGUuICAgICAgICAgIChsaW5lIDEwNzIp Ci0qIGNob2ljZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIG1lbnUtY2hvaWNlLiAg ICAgICAgKGxpbmUgIDcyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxNjMzKQorKiBjaGlsZHJlbiBrZXl3b3JkIDwy PjogICAgICAgICAgICAgICAgICBjaGVja2xpc3QuICAgICAgICAgIChsaW5lIDE4NjQpCisqIGNo aWxkcmVuIGtleXdvcmQgPDM+OiAgICAgICAgICAgICAgICAgIGVkaXRhYmxlLWxpc3QuICAgICAg KGxpbmUgMTk1MSkKKyogY2hvaWNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t cG9zaXRlLiAgICAgICAgICAobGluZSAyMjkxKQorKiBjaG9pY2Uga2V5d29yZDogICAgICAgICAg ICAgICAgICAgICAgICBtZW51LWNob2ljZS4gICAgICAgIChsaW5lIDE1MzUpCiAqIGNob2ljZSBr ZXl3b3JkIDwxPjogICAgICAgICAgICAgICAgICAgIHJhZGlvLWJ1dHRvbi1jaG9pY2UuCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDc2OCkKLSogY2hvaWNlLWl0ZW0gd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgY2hv aWNlLWl0ZW0uICAgICAgICAobGluZSAgODAwKQotKiBjb21wb3NpdGUgc2V4cCB3aWRnZXRzOiAg ICAgICAgICAgICAgICBjb21wb3NpdGUuICAgICAgICAgIChsaW5lIDEwNTkpCi0qIGNvbnM6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0ZS4gICAgICAgICAgKGxpbmUg MTA2NikKLSogY29uc3Q6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRz LiAgICAgICAgICAobGluZSAgOTYzKQotKiBjb25zdGFudCB3aWRnZXRzOiAgICAgICAgICAgICAg ICAgICAgICBjb25zdGFudHMuICAgICAgICAgIChsaW5lICA5NTIpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTYzNikK KyogY2hvaWNlLWl0ZW0gd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgY2hvaWNlLWl0ZW0uICAg ICAgICAobGluZSAxNjgzKQorKiBjb2Rpbmctc3lzdGVtOiAgICAgICAgICAgICAgICAgICAgICAg ICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDIyNjApCisqIGNvbG9yOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjI0OCkKKyogY29t cGxldGlvbnMtZnVuY3Rpb24ga2V5d29yZDogICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAo bGluZSAxMDI4KQorKiBjb21wb3NpdGUgc2V4cCB3aWRnZXRzOiAgICAgICAgICAgICAgICBjb21w b3NpdGUuICAgICAgICAgIChsaW5lIDIyNzUpCisqIGNvbnM6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbXBvc2l0ZS4gICAgICAgICAgKGxpbmUgMjI4MikKKyogY29uc3Q6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLiAgICAgICAgICAobGluZSAy MDgyKQorKiBjb25zdGFudCB3aWRnZXRzOiAgICAgICAgICAgICAgICAgICAgICBjb25zdGFudHMu ICAgICAgICAgIChsaW5lIDIwNzEpCiAqIGNvbnZlcnQtd2lkZ2V0IGtleXdvcmQ6ICAgICAgICAg ICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEyNDMpCi0qIGNvcHkga2V5 d29yZDogICAgICAgICAgICAgICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lIDEyNTgpCi0qIGNyZWF0ZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIERl ZmluaW5nIE5ldyBXaWRnZXRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEyODEpCi0qIGRlYWN0aXZhdGUgYSB3aWRn ZXQ6ICAgICAgICAgICAgICAgICAgIFdpZGdldCBQcm9wZXJ0aWVzLiAgKGxpbmUgMTE4MSkKLSog ZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmaW5pbmcgTmV3IFdpZGdl dHMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgMTM1NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAyNDQ3KQorKiBjb3B5IGtleXdvcmQ6ICAg ICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDEwNjcpCisq IGNyZWF0ZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAg ICAgKGxpbmUgIDc4MikKKyogZGVhY3RpdmF0ZSBhIHdpZGdldDogICAgICAgICAgICAgICAgICAg V2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDgzKQorKiBkZWFjdGl2YXRlIGtleXdvcmQ6ICAg ICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDExMjApCisqIGRlZmF1 bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxp bmUgIDc3MykKKyogZGVmYXVsdC1nZXQga2V5d29yZDogICAgICAgICAgICAgICAgICAgV2lkZ2V0 IEdhbGxlcnkuICAgICAobGluZSAgODY5KQogKiBkZWZpbmUtd2lkZ2V0OiAgICAgICAgICAgICAg ICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxMjE5KQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lIDI0MTMpCiAqIGRlZmluaW5nIG5ldyB3aWRnZXRzOiAgICAgICAgICAgICAgICAgIERlZmlu aW5nIE5ldyBXaWRnZXRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEyMTUpCi0qIGRlbGV0ZSBrZXl3b3JkOiAgICAg ICAgICAgICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEyODYp Ci0qIGRlbGV0ZS1idXR0b24tYXJncyBrZXl3b3JkOiAgICAgICAgICAgIGVkaXRhYmxlLWxpc3Qu ICAgICAgKGxpbmUgIDkxNikKLSogZGlyZWN0b3J5OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAxMDMyKQotKiBkb2Mga2V5d29yZDogICAgICAg ICAgICAgICAgICAgICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA1MDMpCi0qIGVk aXRhYmxlLWZpZWxkIHdpZGdldDogICAgICAgICAgICAgICAgIGVkaXRhYmxlLWZpZWxkLiAgICAg KGxpbmUgIDY2MykKLSogZWRpdGFibGUtbGlzdCB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgZWRp dGFibGUtbGlzdC4gICAgICAobGluZSAgODkxKQotKiBlbWJlZGRlZCBidXR0b25zOiAgICAgICAg ICAgICAgICAgICAgICBVc2VyIEludGVyZmFjZS4gICAgIChsaW5lICAyMjcpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg MjQwOSkKKyogZGVsZXRlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdh bGxlcnkuICAgICAobGluZSAgNzkyKQorKiBkZWxldGUtYnV0dG9uLWFyZ3Mga2V5d29yZDogICAg ICAgICAgICBlZGl0YWJsZS1saXN0LiAgICAgIChsaW5lIDE5MjkpCisqIGRpcmVjdG9yeTogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjE5OSkK KyogZG9jIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnku ICAgICAobGluZSAgOTM3KQorKiBkb2N1bWVudGF0aW9uLXN0cmluZyB3aWRnZXQ6ICAgICAgICAg ICBkb2N1bWVudGF0aW9uLXN0cmluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAyMDM0KQorKiBlZGl0YWJsZS1maWVs ZCB3aWRnZXQ6ICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5lIDEzNzgp CisqIGVkaXRhYmxlLWxpc3Qgd2lkZ2V0OiAgICAgICAgICAgICAgICAgIGVkaXRhYmxlLWxpc3Qu ICAgICAgKGxpbmUgMTg5NykKKyogZW1hY3MtY29tbWVudGFyeS1saW5rIHdpZGdldDogICAgICAg ICAgZW1hY3MtY29tbWVudGFyeS1saW5rLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEzMzIpCisqIGVtYWNzLWxpYnJh cnktbGluayB3aWRnZXQ6ICAgICAgICAgICAgIGVtYWNzLWxpYnJhcnktbGluay4gKGxpbmUgMTMx OSkKKyogZW1iZWRkZWQgYnV0dG9uczogICAgICAgICAgICAgICAgICAgICAgVXNlciBJbnRlcmZh Y2UuICAgICAobGluZSAgMjE5KQogKiBlbnRyeS1mb3JtYXQga2V5d29yZDogICAgICAgICAgICAg ICAgICByYWRpby1idXR0b24tY2hvaWNlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA3NDgpCi0qIGVudHJ5LWZvcm1h dCBrZXl3b3JkIDwxPjogICAgICAgICAgICAgIGNoZWNrbGlzdC4gICAgICAgICAgKGxpbmUgIDg1 OCkKLSogZW50cnktZm9ybWF0IGtleXdvcmQgPDI+OiAgICAgICAgICAgICAgZWRpdGFibGUtbGlz dC4gICAgICAobGluZSAgOTAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDE2MTMpCisqIGVudHJ5LWZvcm1hdCBrZXl3 b3JkIDwxPjogICAgICAgICAgICAgIGNoZWNrbGlzdC4gICAgICAgICAgKGxpbmUgMTg0NykKKyog ZW50cnktZm9ybWF0IGtleXdvcmQgPDI+OiAgICAgICAgICAgICAgZWRpdGFibGUtbGlzdC4gICAg ICAobGluZSAxOTEzKQogKiBleGFtcGxlIG9mIHVzaW5nIHdpZGdldHM6ICAgICAgICAgICAgICBQ cm9ncmFtbWluZyBFeGFtcGxlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyNzMpCi0qIGV4dGVybmFsIGZvcm1hdDog ICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDQyMikKLSog ZXh0cmEtb2Zmc2V0IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAg ICAobGluZSAgNTMzKQotKiBmaWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh dG9tcy4gICAgICAgICAgICAgIChsaW5lIDEwMjQpCi0qIGZvbGxvdy1saW5rIGtleXdvcmQ6ICAg ICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDUyMSkKLSogZm9ybWF0 IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGlu ZSAgNDM1KQotKiBmb3JtYXQtaGFuZGxlciBrZXl3b3JkOiAgICAgICAgICAgICAgICBEZWZpbmlu ZyBOZXcgV2lkZ2V0cy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAxMzIzKQotKiBmdW5jdGlvbjogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDEwMzkpCi0qIGZ1bmN0 aW9uLWl0ZW06ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy4gICAgICAgICAgKGxp bmUgIDk3NikKLSogZ2VuZXJpYyBzZXhwIHdpZGdldDogICAgICAgICAgICAgICAgICAgZ2VuZXJp Yy4gICAgICAgICAgICAobGluZSAgOTgyKQotKiBncmVlZHkga2V5d29yZDogICAgICAgICAgICAg ICAgICAgICAgICBjaGVja2xpc3QuICAgICAgICAgIChsaW5lICA4NjgpCi0qIGdyb3VwIHdpZGdl dDogICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwLiAgICAgICAgICAgICAgKGxpbmUgIDkz NCkKLSogaGVscC1lY2hvIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMu ICAgICAgICAobGluZSAgNTEzKQotKiBpbmFjdGl2ZSB3aWRnZXQ6ICAgICAgICAgICAgICAgICAg ICAgICBXaWRnZXQgUHJvcGVydGllcy4gIChsaW5lIDExODEpCi0qIGluZGVudCBrZXl3b3JkOiAg ICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDUyNSkKLSog aW5mby1saW5rIHdpZGdldDogICAgICAgICAgICAgICAgICAgICAgaW5mby1saW5rLiAgICAgICAg ICAobGluZSAgNjM1KQotKiBpbnNlcnQtYnV0dG9uLWFyZ3Mga2V5d29yZDogICAgICAgICAgICBl ZGl0YWJsZS1saXN0LiAgICAgIChsaW5lICA5MTMpCi0qIGludGVnZXI6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMTA0NikKLSogaW50ZXJu YWwgZm9ybWF0OiAgICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGlu ZSAgNDIyKQotKiBpdGVtIHdpZGdldDogICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLiAg ICAgICAgICAgICAgIChsaW5lICA3ODkpCi0qIGtleW1hcCBrZXl3b3JkOiAgICAgICAgICAgICAg ICAgICAgICAgIGVkaXRhYmxlLWZpZWxkLiAgICAgKGxpbmUgIDY5MSkKLSoga2V5d29yZCBhcmd1 bWVudHM6ICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNDIw KQotKiBsaW5rIHdpZGdldDogICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLiAgICAgICAg ICAgICAgIChsaW5lICA2MDcpCi0qIGxpc3Q6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbXBvc2l0ZS4gICAgICAgICAgKGxpbmUgMTA4MSkKLSogbWF0Y2gga2V5d29yZDogICAg ICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNTU0KQotKiBt ZW51LWNob2ljZSB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICBtZW51LWNob2ljZS4gICAgICAg IChsaW5lICA3MDgpCi0qIG1lbnUtdGFnIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgIEJh c2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDU0NCkKLSogbWVudS10YWctZ2V0IGtleXdvcmQ6ICAg ICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNTQ4KQotKiBtb3VzZS0y IChvbiBidXR0b24gd2lkZ2V0cyk6ICAgICAgICAgICBVc2VyIEludGVyZmFjZS4gICAgIChsaW5l ICAyMTApCi0qIG11c3QtbWF0Y2gga2V5d29yZDogICAgICAgICAgICAgICAgICAgIGF0b21zLiAg ICAgICAgICAgICAgKGxpbmUgMTAyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjUzKQorKiBleHRlcm5hbCBmb3Jt YXQ6ICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA4MDcp CisqIGV4dHJhLW9mZnNldCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5 LiAgICAgKGxpbmUgIDk3MykKKyogZmFjZS1saW5rIHdpZGdldDogICAgICAgICAgICAgICAgICAg ICAgZmFjZS1saW5rLiAgICAgICAgICAobGluZSAxMjk0KQorKiBmaWxlOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDIxNzcpCisqIGZp bGUtbGluayB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICAgIGZpbGUtbGluay4gICAgICAgICAg KGxpbmUgMTMwNikKKyogZmxvYXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRv bXMuICAgICAgICAgICAgICAobGluZSAyMjMwKQorKiBmb2xsb3ctbGluayBrZXl3b3JkOiAgICAg ICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA5NTYpCisqIGZvcm1hdCBr ZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUg IDg3NCkKKyogZm9ybWF0LWhhbmRsZXIga2V5d29yZDogICAgICAgICAgICAgICAgV2lkZ2V0IEdh bGxlcnkuICAgICAobGluZSAxMDM5KQorKiBmdW5jdGlvbjogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDIyMTApCisqIGZ1bmN0aW9uLWl0ZW06 ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy4gICAgICAgICAgKGxpbmUgMjEwMSkK KyogZnVuY3Rpb24tbGluayB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24tbGluay4g ICAgICAobGluZSAxMjY5KQorKiBnZW5lcmljIHNleHAgd2lkZ2V0OiAgICAgICAgICAgICAgICAg ICBnZW5lcmljLiAgICAgICAgICAgIChsaW5lIDIxMDcpCisqIGdyZWVkeSBrZXl3b3JkOiAgICAg ICAgICAgICAgICAgICAgICAgIGNoZWNrbGlzdC4gICAgICAgICAgKGxpbmUgMTg4NykKKyogZ3Jv dXAgd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuICAgICAgICAgICAgICAo bGluZSAxOTkxKQorKiBoZWxwLWVjaG8ga2V5d29yZDogICAgICAgICAgICAgICAgICAgICBXaWRn ZXQgR2FsbGVyeS4gICAgIChsaW5lICA5NDcpCisqIGluYWN0aXZlIHdpZGdldDogICAgICAgICAg ICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgMTA4MykKKyogaW5kZW50IGtl eXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAg OTYwKQorKiBpbmZvLWxpbmsgd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICBpbmZvLWxpbmsu ICAgICAgICAgIChsaW5lIDEyNTYpCisqIGluc2VydC1idXR0b24tYXJncyBrZXl3b3JkOiAgICAg ICAgICAgIGVkaXRhYmxlLWxpc3QuICAgICAgKGxpbmUgMTkyNikKKyogaW50ZWdlcjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAyMjE4KQor KiBpbnRlcm5hbCBmb3JtYXQ6ICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4g ICAgIChsaW5lICA4MDcpCisqIGl0ZW0gd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICAgICAg IGl0ZW0uICAgICAgICAgICAgICAgKGxpbmUgMTE2OCkKKyoga2V5OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAyMjY3KQorKiBrZXlt YXAga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChs aW5lIDE0MDApCisqIGtleXdvcmQgYXJndW1lbnRzOiAgICAgICAgICAgICAgICAgICAgIFdpZGdl dCBHYWxsZXJ5LiAgICAgKGxpbmUgIDc4MCkKKyogbGF6eTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAyMzk4KQorKiBsaW5rIHdpZGdl dDogICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLiAgICAgICAgICAgICAgIChsaW5lIDEy MDcpCisqIGxpc3Q6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0ZS4g ICAgICAgICAgKGxpbmUgMjMwOSkKKyogbWF0Y2gga2V5d29yZDogICAgICAgICAgICAgICAgICAg ICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAgOTg5KQorKiBtZW51LWNob2ljZSB3aWRn ZXQ6ICAgICAgICAgICAgICAgICAgICBtZW51LWNob2ljZS4gICAgICAgIChsaW5lIDE0OTgpCisq IG1lbnUtdGFnIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAg ICAgKGxpbmUgIDk3NykKKyogbWVudS10YWctZ2V0IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAg V2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAgOTgxKQorKiBtb3VzZS0yIChvbiBidXR0b24gd2lk Z2V0cyk6ICAgICAgICAgICBXaWRnZXRzIGFuZCB0aGUgQnVmZmVyLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA3NDAp CisqIG1vdXNlLWRvd24tYWN0aW9uIGtleXdvcmQ6ICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5 LiAgICAgKGxpbmUgMTEzMSkKKyogbW91c2UtZmFjZS1nZXQga2V5d29yZDogICAgICAgICAgICAg ICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDU4KQorKiBtdXN0LW1hdGNoIGtleXdvcmQ6 ICAgICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDIxODcpCisqIG5h dG51bTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAg KGxpbmUgMjIyNCkKICogbmV3IHdpZGdldHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVm aW5pbmcgTmV3IFdpZGdldHMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTIxNSkKLSogbm90aWZ5IGtleXdvcmQ6ICAg ICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNTM3KQotKiBu dW1iZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAg IChsaW5lIDEwNDkpCi0qIG9mZi1nbHlwaCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgIHRv Z2dsZS4gICAgICAgICAgICAgKGxpbmUgIDgyOSkKLSogb2Zmc2V0IGtleXdvcmQ6ICAgICAgICAg ICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNTI5KQotKiBvbi1nbHlw aCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICB0b2dnbGUuICAgICAgICAgICAgIChsaW5l ICA4MjYpCi0qIG9wdGlvbiBmaWVsZCB0YWc6ICAgICAgICAgICAgICAgICAgICAgIFVzZXIgSW50 ZXJmYWNlLiAgICAgKGxpbmUgIDIyMCkKLSogcGFyZW50IGtleXdvcmQ6ICAgICAgICAgICAgICAg ICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNTg1KQotKiBwcm9tcHQtdmFsdWUg a2V5d29yZDogICAgICAgICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAxMzQzKQotKiBwcm9wZXJ0aWVzIG9mIHdpZGdldHM6ICAgICAgICAgICAgICAgICBXaWRnZXQg UHJvcGVydGllcy4gIChsaW5lIDExMzYpCi0qIHB1c2gtYnV0dG9uIHdpZGdldDogICAgICAgICAg ICAgICAgICAgIHB1c2gtYnV0dG9uLiAgICAgICAgKGxpbmUgIDY0NSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAyNDA5 KQorKiBub3RpZnkga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVy eS4gICAgIChsaW5lIDExMzcpCisqIG51bWJlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjIzNikKKyogb2ZmLWdseXBoIGtleXdvcmQ6 ICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLiAgICAgICAgICAgICAobGluZSAxNzMyKQorKiBv ZmZzZXQga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAg IChsaW5lICA5NjkpCisqIG9uLWdseXBoIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgIHRv Z2dsZS4gICAgICAgICAgICAgKGxpbmUgMTcyOCkKKyogb3B0aW9uIGZpZWxkIHRhZzogICAgICAg ICAgICAgICAgICAgICAgVXNlciBJbnRlcmZhY2UuICAgICAobGluZSAgMjEyKQorKiBvdGhlcjog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5l IDIyNTMpCisqIHBhcmVudCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBH YWxsZXJ5LiAgICAgKGxpbmUgMTAxOCkKKyogcGxpc3Q6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAyMzcwKQorKiBwcm9tcHQtdmFsdWUg a2V5d29yZDogICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDExNDgp CisqIHB1c2gtYnV0dG9uIHdpZGdldDogICAgICAgICAgICAgICAgICAgIHB1c2gtYnV0dG9uLiAg ICAgICAgKGxpbmUgMTM0NSkKKyogcmFkaW86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAyMzA1KQogKiByYWRpby1idXR0b24tY2hvaWNl IHdpZGdldDogICAgICAgICAgICByYWRpby1idXR0b24tY2hvaWNlLgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA3Mzcp Ci0qIHJlZ2V4cDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAg ICAgICAgKGxpbmUgMTAxOCkKLSogcmVwZWF0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAxMTI4KQotKiBzZWNyZXQga2V5d29yZDogICAg ICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5lICA2ODEpCi0qIHNl dDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0ZS4gICAgICAgICAg KGxpbmUgMTExOCkKLSogc2V4cDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Vu ZXJpYy4gICAgICAgICAgICAobGluZSAgOTg5KQotKiBzZXhwIHR5cGVzOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTZXhwIFR5cGVzLiAgICAgICAgIChsaW5lICA5NDUpCi0qIHNpYmxpbmct YXJncyBrZXl3b3JkOiAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUg IDU4OSkKLSogc2l6ZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGFibGUt ZmllbGQuICAgICAobGluZSAgNjczKQotKiBzdHJpbmc6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDEwMTUpCi0qIHN5bWJvbDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMTAzNikK LSogdGFiLW9yZGVyIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAg ICAgICAobGluZSAgNTcwKQotKiB0YWcga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICAg ICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA1MDYpCi0qIHRhZy1nbHlwaCBrZXl3b3JkOiAg ICAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDUwOSkKLSogdGV4 dCB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC4gICAgICAgICAgICAgICAo bGluZSAgNzAxKQotKiB0b2RvOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaWRn ZXQgV2lzaGxpc3QuICAgIChsaW5lIDE0MjkpCi0qIHRvZ2dsZSB3aWRnZXQ6ICAgICAgICAgICAg ICAgICAgICAgICAgIHRvZ2dsZS4gICAgICAgICAgICAgKGxpbmUgIDgxMykKLSogdXJsLWxpbmsg d2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICAgdXJsLWxpbmsuICAgICAgICAgICAobGluZSAg NjI1KQotKiB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Igd2lkZ2V0czogICAgICAgICBVdGlsaXRpZXMu ICAgICAgICAgIChsaW5lIDEzOTgpCi0qIHZhbGlkLXJlZ2V4cCBrZXl3b3JkOiAgICAgICAgICAg ICAgICAgIGVkaXRhYmxlLWZpZWxkLiAgICAgKGxpbmUgIDY4NikKLSogdmFsaWRhdGUga2V5d29y ZDogICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAobGluZSAgNTU5KQot KiB2YWx1ZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgICBCYXNpYyBUeXBlcy4gICAg ICAgIChsaW5lICA0MjIpCi0qIHZhbHVlLWNyZWF0ZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAg IERlZmluaW5nIE5ldyBXaWRnZXRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEyOTkpCi0qIHZhbHVlLWRlbGV0ZSBr ZXl3b3JkOiAgICAgICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l IDEzMDcpCi0qIHZhbHVlLWZhY2Uga2V5d29yZDogICAgICAgICAgICAgICAgICAgIGVkaXRhYmxl LWZpZWxkLiAgICAgKGxpbmUgIDY3NykKLSogdmFsdWUtZ2V0IGtleXdvcmQ6ICAgICAgICAgICAg ICAgICAgICAgRGVmaW5pbmcgTmV3IFdpZGdldHMuCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTMxNCkKLSogdmFsdWUt dG8tZXh0ZXJuYWwga2V5d29yZDogICAgICAgICAgICAgRGVmaW5pbmcgTmV3IFdpZGdldHMuCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgMTI3NikKLSogdmFsdWUtdG8taW50ZXJuYWwga2V5d29yZDogICAgICAgICAgICAg RGVmaW5pbmcgTmV3IFdpZGdldHMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTI2OSkKLSogdmFyaWFibGU6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAxMDQzKQot KiB2YXJpYWJsZS1pdGVtOiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdGFudHMuICAgICAg ICAgIChsaW5lICA5NzMpCi0qIHZlY3RvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbXBvc2l0ZS4gICAgICAgICAgKGxpbmUgMTA5MCkKLSogdm9pZCBrZXl3b3JkOiAgICAgICAg ICAgICAgICAgICAgICAgICAgbWVudS1jaG9pY2UuICAgICAgICAobGluZSAgNzE2KQotKiB3aWRn ZXQgYnJvd3NlcjogICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgQnJvd3Nlci4gICAgIChs aW5lIDEzNjQpCi0qIHdpZGdldCBidXR0b25zOiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIg SW50ZXJmYWNlLiAgICAgKGxpbmUgIDIwMCkKLSogd2lkZ2V0IGxpYnJhcnksIHdoeSB1c2UgaXQ6 ICAgICAgICAgICAgSW50cm9kdWN0aW9uLiAgICAgICAobGluZSAgMTAzKQotKiB3aWRnZXQgbWlu b3IgbW9kZTogICAgICAgICAgICAgICAgICAgICBXaWRnZXQgTWlub3IgTW9kZS4gIChsaW5lIDEz ODQpCi0qIHdpZGdldCBwcm9wZXJ0aWVzOiAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBQcm9w ZXJ0aWVzLiAgKGxpbmUgMTEzNikKLSogd2lkZ2V0LWFwcGx5OiAgICAgICAgICAgICAgICAgICAg ICAgICAgV2lkZ2V0IFByb3BlcnRpZXMuICAobGluZSAxMTcwKQotKiB3aWRnZXQtYmFja3dhcmQ6 ICAgICAgICAgICAgICAgICAgICAgICBVc2VyIEludGVyZmFjZS4gICAgIChsaW5lICAyNjcpCi0q IHdpZGdldC1icm93c2U6ICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBCcm93c2VyLiAg ICAgKGxpbmUgMTM2OSkKLSogd2lkZ2V0LWJyb3dzZS1hdDogICAgICAgICAgICAgICAgICAgICAg V2lkZ2V0IEJyb3dzZXIuICAgICAobGluZSAxMzc3KQotKiB3aWRnZXQtYnJvd3NlLW90aGVyLXdp bmRvdzogICAgICAgICAgICBXaWRnZXQgQnJvd3Nlci4gICAgIChsaW5lIDEzNzMpCi0qIHdpZGdl dC1idXR0b24tY2xpY2s6ICAgICAgICAgICAgICAgICAgIFVzZXIgSW50ZXJmYWNlLiAgICAgKGxp bmUgIDIxMSkKLSogd2lkZ2V0LWJ1dHRvbi1jbGljayA8MT46ICAgICAgICAgICAgICAgU2V0dGlu ZyBVcCB0aGUgQnVmZmVyLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzOTkpCi0qIHdpZGdldC1idXR0b24tZmFjZTog ICAgICAgICAgICAgICAgICAgIFVzZXIgSW50ZXJmYWNlLiAgICAgKGxpbmUgIDI0OSkKLSogd2lk Z2V0LWJ1dHRvbi1wcmVmaXg6ICAgICAgICAgICAgICAgICAgQmFzaWMgVHlwZXMuICAgICAgICAo bGluZSAgNDQ2KQotKiB3aWRnZXQtYnV0dG9uLXByZXNzOiAgICAgICAgICAgICAgICAgICBVc2Vy IEludGVyZmFjZS4gICAgIChsaW5lICAyMDUpCi0qIHdpZGdldC1idXR0b24tcHJlc3MgPDE+OiAg ICAgICAgICAgICAgIFNldHRpbmcgVXAgdGhlIEJ1ZmZlci4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxNTg5KQorKiBy YWRpby1idXR0b24tdG9nZ2xlIHdpZGdldDogICAgICAgICAgICByYWRpby1idXR0b24tdG9nZ2xl LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lIDE3NTApCisqIHJlZ2V4cDogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjE2NCkKKyogcmVwZWF0OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAyMzY0KQorKiBy ZXN0cmljdGVkLXNleHA6ICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmljLiAgICAgICAgICAg IChsaW5lIDIxMjMpCisqIHNlY3JldCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIGVk aXRhYmxlLWZpZWxkLiAgICAgKGxpbmUgMTQyNCkKKyogc2V0OiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAyMzUwKQorKiBzZXhwOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmljLiAgICAgICAgICAgIChsaW5l IDIxMTQpCisqIHNleHAgdHlwZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNleHAgVHlw ZXMuICAgICAgICAgKGxpbmUgMjA2NCkKKyogc2libGluZy1hcmdzIGtleXdvcmQ6ICAgICAgICAg ICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDIyKQorKiBzaXplIGtleXdvcmQ6 ICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5lIDE0MTQp CisqIHN0cmluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAg ICAgICAgKGxpbmUgMjE1OCkKKyogc3ltYm9sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAyMjA1KQorKiB0YWItb3JkZXIga2V5d29yZDog ICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDEwMDQpCisqIHRh ZyBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAg KGxpbmUgIDk0MCkKKyogdGFnLWdseXBoIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgV2lk Z2V0IEdhbGxlcnkuICAgICAobGluZSAgOTQzKQorKiB0ZXh0IHdpZGdldDogICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZXh0LiAgICAgICAgICAgICAgIChsaW5lIDE0NzkpCisqIHRvZG86ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBXaXNobGlzdC4gICAgKGxpbmUg MjY3MykKKyogdG9nZ2xlIHdpZGdldDogICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLiAg ICAgICAgICAgICAobGluZSAxNzA1KQorKiB1cmwtbGluayB3aWRnZXQ6ICAgICAgICAgICAgICAg ICAgICAgICB1cmwtbGluay4gICAgICAgICAgIChsaW5lIDEyNDQpCisqIHV0aWxpdHkgZnVuY3Rp b25zIGZvciB3aWRnZXRzOiAgICAgICAgIFV0aWxpdGllcy4gICAgICAgICAgKGxpbmUgMjUxNSkK KyogdmFsaWQtcmVnZXhwIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgZWRpdGFibGUtZmllbGQu ICAgICAobGluZSAxNDMxKQorKiB2YWxpZGF0ZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAg ICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA5OTQpCisqIHZhbHVlIGtleXdvcmQ6ICAgICAg ICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDgwNykKKyogdmFs dWUtY3JlYXRlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAo bGluZSAgODM1KQorKiB2YWx1ZS1kZWxldGUga2V5d29yZDogICAgICAgICAgICAgICAgICBXaWRn ZXQgR2FsbGVyeS4gICAgIChsaW5lICA4NDEpCisqIHZhbHVlLWZhY2Uga2V5d29yZDogICAgICAg ICAgICAgICAgICAgIGVkaXRhYmxlLWZpZWxkLiAgICAgKGxpbmUgMTQxOSkKKyogdmFsdWUtZ2V0 IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAg ODUxKQorKiB2YWx1ZS1pbmxpbmUga2V5d29yZDogICAgICAgICAgICAgICAgICBXaWRnZXQgR2Fs bGVyeS4gICAgIChsaW5lICA4NjMpCisqIHZhbHVlLXNldCBrZXl3b3JkOiAgICAgICAgICAgICAg ICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDg1NSkKKyogdmFsdWUtdG8tZXh0ZXJu YWwga2V5d29yZDogICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAgODI5KQor KiB2YWx1ZS10by1pbnRlcm5hbCBrZXl3b3JkOiAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4g ICAgIChsaW5lICA4MjEpCisqIHZhcmlhYmxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjIxNCkKKyogdmFyaWFibGUtaXRlbTogICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLiAgICAgICAgICAobGluZSAyMDk4KQorKiB2YXJp YWJsZS1saW5rIHdpZGdldDogICAgICAgICAgICAgICAgICB2YXJpYWJsZS1saW5rLiAgICAgIChs aW5lIDEyODIpCisqIHZlY3RvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBv c2l0ZS4gICAgICAgICAgKGxpbmUgMjMyMCkKKyogdm9pZCBrZXl3b3JkOiAgICAgICAgICAgICAg ICAgICAgICAgICAgbWVudS1jaG9pY2UuICAgICAgICAobGluZSAxNTE5KQorKiB3aWRnZXQgYnJv d3NlcjogICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0aW5nIFdpZGdldHMuIChsaW5lIDI0 NjIpCisqIHdpZGdldCBidXR0b25zOiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIgSW50ZXJm YWNlLiAgICAgKGxpbmUgIDIwMikKKyogd2lkZ2V0IGNyZWF0aW9uLCB3aWRnZXQgY29udmVyc2lv bjogICAgU2V0dGluZyBVcCB0aGUgQnVmZmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzOTkpCi0qIHdpZGdldC1i dXR0b24tc3VmZml4OiAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUg IDQ0OSkKLSogd2lkZ2V0LWNoaWxkcmVuLXZhbGlkYXRlOiAgICAgICAgICAgICAgQmFzaWMgVHlw ZXMuICAgICAgICAobGluZSAgNTY3KQotKiB3aWRnZXQtY2hvb3NlOiAgICAgICAgICAgICAgICAg ICAgICAgICBVdGlsaXRpZXMuICAgICAgICAgIChsaW5lIDE0MDYpCisqIHdpZGdldCBpbmhlcml0 YW5jZTogICAgICAgICAgICAgICAgICAgIFdpZGdldHMgQmFzaWNzLiAgICAgKGxpbmUgIDM1NSkK Kyogd2lkZ2V0IGxpYnJhcnksIHdoeSB1c2UgaXQ6ICAgICAgICAgICAgSW50cm9kdWN0aW9uLiAg ICAgICAobGluZSAgMTE2KQorKiB3aWRnZXQgbWlub3IgbW9kZTogICAgICAgICAgICAgICAgICAg ICBXaWRnZXQgTWlub3IgTW9kZS4gIChsaW5lIDI1MDEpCisqIHdpZGdldCBvYmplY3Q6ICAgICAg ICAgICAgICAgICAgICAgICAgIFdpZGdldHMgQmFzaWNzLiAgICAgKGxpbmUgIDM0OSkKKyogd2lk Z2V0IHByb3BlcnRpZXM6ICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0cyBCYXNpY3MuICAgICAo bGluZSAgMzkxKQorKiB3aWRnZXQgc3ludGF4OiAgICAgICAgICAgICAgICAgICAgICAgICBXaWRn ZXQgR2FsbGVyeS4gICAgIChsaW5lICA3NTQpCisqIHdpZGdldCB2YWx1ZTogICAgICAgICAgICAg ICAgICAgICAgICAgIFdpZGdldHMgQmFzaWNzLiAgICAgKGxpbmUgIDM3NCkKKyogd2lkZ2V0LWFw cGx5OiAgICAgICAgICAgICAgICAgICAgICAgICAgV29ya2luZyB3aXRoIFdpZGdldHMuCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDU2NCkKKyogd2lkZ2V0LWFwcGx5LWFjdGlvbjogICAgICAgICAgICAgICAgICAgV29y a2luZyB3aXRoIFdpZGdldHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDYzNikKKyogd2lkZ2V0LWF0OiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgV29ya2luZyB3aXRoIFdpZGdldHMuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDU1 OCkKKyogd2lkZ2V0LWJhY2t3YXJkOiAgICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0cyBhbmQg dGhlIEJ1ZmZlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgNzA2KQorKiB3aWRnZXQtYnJvd3NlOiAgICAgICAgICAg ICAgICAgICAgICAgICBJbnNwZWN0aW5nIFdpZGdldHMuIChsaW5lIDI0NjgpCisqIHdpZGdldC1i cm93c2UtYXQ6ICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RpbmcgV2lkZ2V0cy4gKGxpbmUg MjQ3OCkKKyogd2lkZ2V0LWJyb3dzZS1vdGhlci13aW5kb3c6ICAgICAgICAgICAgSW5zcGVjdGlu ZyBXaWRnZXRzLiAobGluZSAyNDczKQorKiB3aWRnZXQtYnV0dG9uLWNsaWNrOiAgICAgICAgICAg ICAgICAgICBXaWRnZXRzIGFuZCB0aGUgQnVmZmVyLgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA3NDEpCisqIHdpZGdl dC1idXR0b24tY2xpY2sgPDE+OiAgICAgICAgICAgICAgIFdpZGdldHMgYW5kIHRoZSBCdWZmZXIu CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgIDc0MSkKKyogd2lkZ2V0LWJ1dHRvbi1mYWNlOiAgICAgICAgICAgICAgICAg ICAgQ3VzdG9taXphdGlvbi4gICAgICAobGluZSAyNTgyKQorKiB3aWRnZXQtYnV0dG9uLXByZWZp eDogICAgICAgICAgICAgICAgICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI2MTApCisqIHdp ZGdldC1idXR0b24tcHJlc3M6ICAgICAgICAgICAgICAgICAgIFdpZGdldHMgYW5kIHRoZSBCdWZm ZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDczMSkKKyogd2lkZ2V0LWJ1dHRvbi1wcmVzcyA8MT46ICAgICAgICAg ICAgICAgV2lkZ2V0cyBhbmQgdGhlIEJ1ZmZlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNzMxKQorKiB3aWRnZXQt YnV0dG9uLXN1ZmZpeDogICAgICAgICAgICAgICAgICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5l IDI2MTMpCisqIHdpZGdldC1jaGlsZC12YWxpZGF0ZTogICAgICAgICAgICAgICAgIFdvcmtpbmcg d2l0aCBXaWRnZXRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICA2NDcpCisqIHdpZGdldC1jaGlsZC12YWx1ZS1nZXQ6 ICAgICAgICAgICAgICAgIFdvcmtpbmcgd2l0aCBXaWRnZXRzLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2MDUpCisq IHdpZGdldC1jaGlsZC12YWx1ZS1pbmxpbmU6ICAgICAgICAgICAgIFdvcmtpbmcgd2l0aCBXaWRn ZXRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICA2MDgpCisqIHdpZGdldC1jaGlsZHJlbi12YWxpZGF0ZTogICAgICAg ICAgICAgIFdvcmtpbmcgd2l0aCBXaWRnZXRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2NTMpCisqIHdpZGdldC1j aGlsZHJlbi12YWx1ZS1kZWxldGU6ICAgICAgICAgIFNldHRpbmcgVXAgdGhlIEJ1ZmZlci4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgNDgyKQorKiB3aWRnZXQtY2hvaWNlLXRvZ2dsZTogICAgICAgICAgICAgICAgICBD dXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI2MjgpCisqIHdpZGdldC1jaG9vc2U6ICAgICAgICAg ICAgICAgICAgICAgICAgIFV0aWxpdGllcy4gICAgICAgICAgKGxpbmUgMjUzMykKKyogd2lkZ2V0 LWNvbXBsZXRlOiAgICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0cyBhbmQgdGhlIEJ1ZmZlci4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgNzIyKQorKiB3aWRnZXQtY29udmVydDogICAgICAgICAgICAgICAgICAgICAg ICBTZXR0aW5nIFVwIHRoZSBCdWZmZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDUwNCkKKyogd2lkZ2V0LWNvcHk6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0dGluZyBVcCB0aGUgQnVmZmVyLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICA0OTQpCiAqIHdpZGdldC1jcmVhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRp bmcgVXAgdGhlIEJ1ZmZlci4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzc0KQotKiB3aWRnZXQtZGVmYXVsdC1kZWxl dGU6ICAgICAgICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxMjky KQotKiB3aWRnZXQtZGVmYXVsdC1mb3JtYXQtaGFuZGxlcjogICAgICAgICBEZWZpbmluZyBOZXcg V2lkZ2V0cy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAxMzI5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA0MTQpCisqIHdpZGdldC1jcmVh dGUtY2hpbGQ6ICAgICAgICAgICAgICAgICAgIFNldHRpbmcgVXAgdGhlIEJ1ZmZlci4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgNDQzKQorKiB3aWRnZXQtY3JlYXRlLWNoaWxkLWFuZC1jb252ZXJ0OiAgICAgICBTZXR0 aW5nIFVwIHRoZSBCdWZmZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQzMykKKyogd2lkZ2V0LWNyZWF0ZS1jaGls ZC12YWx1ZTogICAgICAgICAgICAgU2V0dGluZyBVcCB0aGUgQnVmZmVyLgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA0 NDkpCisqIHdpZGdldC1kZWZhdWx0LWRlbGV0ZTogICAgICAgICAgICAgICAgIFdpZGdldCBHYWxs ZXJ5LiAgICAgKGxpbmUgIDgwMCkKKyogd2lkZ2V0LWRlZmF1bHQtZm9ybWF0LWhhbmRsZXI6ICAg ICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDQ2KQorKiB3aWRnZXQtZGVmYXVsdC1n ZXQ6ICAgICAgICAgICAgICAgICAgICBXb3JraW5nIHdpdGggV2lkZ2V0cy4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg NTkyKQogKiB3aWRnZXQtZGVsZXRlOiAgICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5nIFVw IHRoZSBCdWZmZXIuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgIDM4MSkKLSogd2lkZ2V0LWZpZWxkLWZhY2U6ICAgICAg ICAgICAgICAgICAgICAgVXNlciBJbnRlcmZhY2UuICAgICAobGluZSAgMTk0KQotKiB3aWRnZXQt ZmllbGQta2V5bWFwOiAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5l ICA2OTEpCi0qIHdpZGdldC1mb3J3YXJkOiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIgSW50 ZXJmYWNlLiAgICAgKGxpbmUgIDI2MykKLSogd2lkZ2V0LWdldDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgV2lkZ2V0IFByb3BlcnRpZXMuICAobGluZSAxMTYyKQotKiB3aWRnZXQtZ2V0LXNp Ymxpbmc6ICAgICAgICAgICAgICAgICAgICBVdGlsaXRpZXMuICAgICAgICAgIChsaW5lIDE0MDIp Ci0qIHdpZGdldC1nbG9iYWwtbWFwOiAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgVXAgdGhl IEJ1ZmZlci4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgNDA0KQotKiB3aWRnZXQtaW1hZ2UtZGlyZWN0b3J5OiAgICAg ICAgICAgICAgICBCYXNpYyBUeXBlcy4gICAgICAgIChsaW5lICA1OTUpCi0qIHdpZGdldC1pbWFn ZS1lbmFibGU6ICAgICAgICAgICAgICAgICAgIEJhc2ljIFR5cGVzLiAgICAgICAgKGxpbmUgIDYw MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgNDc5KQorKiB3aWRnZXQtZGVzY3JpYmU6ICAgICAgICAgICAgICAgICAg ICAgICBJbnNwZWN0aW5nIFdpZGdldHMuIChsaW5lIDI0ODUpCisqIHdpZGdldC1kb2N1bWVudGF0 aW9uLWxpbmstcDogICAgICAgICAgIEN1c3RvbWl6YXRpb24uICAgICAgKGxpbmUgMjY0MCkKKyog d2lkZ2V0LWRvY3VtZW50YXRpb24tbGluay1yZWdleHA6ICAgICAgQ3VzdG9taXphdGlvbi4gICAg ICAobGluZSAyNjM2KQorKiB3aWRnZXQtZG9jdW1lbnRhdGlvbi1saW5rLXR5cGU6ICAgICAgICBD dXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI2NDcpCisqIHdpZGdldC1kb2N1bWVudGF0aW9uLWxp bmtzOiAgICAgICAgICAgIEN1c3RvbWl6YXRpb24uICAgICAgKGxpbmUgMjYzMykKKyogd2lkZ2V0 LWVjaG8taGVscDogICAgICAgICAgICAgICAgICAgICAgVXRpbGl0aWVzLiAgICAgICAgICAobGlu ZSAyNTY3KQorKiB3aWRnZXQtZW5kLW9mLWxpbmU6ICAgICAgICAgICAgICAgICAgICBXaWRnZXRz IGFuZCB0aGUgQnVmZmVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA3MTMpCisqIHdpZGdldC1maWVsZC1hY3RpdmF0 ZTogICAgICAgICAgICAgICAgIFdpZGdldHMgYW5kIHRoZSBCdWZmZXIuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDcy NikKKyogd2lkZ2V0LWZpZWxkLWF0OiAgICAgICAgICAgICAgICAgICAgICAgV29ya2luZyB3aXRo IFdpZGdldHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgIDU2MSkKKyogd2lkZ2V0LWZpZWxkLWZhY2U6ICAgICAgICAg ICAgICAgICAgICAgQ3VzdG9taXphdGlvbi4gICAgICAobGluZSAyNTc5KQorKiB3aWRnZXQtZmll bGQta2V5bWFwOiAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5lIDE0 MDApCisqIHdpZGdldC1mb3J3YXJkOiAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldHMgYW5k IHRoZSBCdWZmZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgIDcwMikKKyogd2lkZ2V0LWdldDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgV29ya2luZyB3aXRoIFdpZGdldHMuCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDU0OCkKKyog d2lkZ2V0LWdldC1zaWJsaW5nOiAgICAgICAgICAgICAgICAgICAgVXRpbGl0aWVzLiAgICAgICAg ICAobGluZSAyNTI5KQorKiB3aWRnZXQtZ2xvYmFsLW1hcDogICAgICAgICAgICAgICAgICAgICBX aWRnZXRzIGFuZCB0aGUgQnVmZmVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2OTIpCisqIHdpZGdldC1pbWFnZS1j b252ZXJzaW9uOiAgICAgICAgICAgICAgIEN1c3RvbWl6YXRpb24uICAgICAgKGxpbmUgMjYwMikK Kyogd2lkZ2V0LWltYWdlLWRpcmVjdG9yeTogICAgICAgICAgICAgICAgQ3VzdG9taXphdGlvbi4g ICAgICAobGluZSAyNTkxKQorKiB3aWRnZXQtaW1hZ2UtZW5hYmxlOiAgICAgICAgICAgICAgICAg ICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI1OTgpCisqIHdpZGdldC1pbWFnZS1maW5kOiAg ICAgICAgICAgICAgICAgICAgIFV0aWxpdGllcy4gICAgICAgICAgKGxpbmUgMjU1MykKKyogd2lk Z2V0LWltYWdlLWluc2VydDogICAgICAgICAgICAgICAgICAgVXRpbGl0aWVzLiAgICAgICAgICAo bGluZSAyNTYxKQogKiB3aWRnZXQtaW5zZXJ0OiAgICAgICAgICAgICAgICAgICAgICAgICBTZXR0 aW5nIFVwIHRoZSBCdWZmZXIuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDM5MykKLSogd2lkZ2V0LWtleW1hcDogICAg ICAgICAgICAgICAgICAgICAgICAgU2V0dGluZyBVcCB0aGUgQnVmZmVyLgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAz OTkpCi0qIHdpZGdldC1saW5rLXByZWZpeDogICAgICAgICAgICAgICAgICAgIGxpbmsuICAgICAg ICAgICAgICAgKGxpbmUgIDYxNikKLSogd2lkZ2V0LWxpbmstc3VmZml4OiAgICAgICAgICAgICAg ICAgICAgbGluay4gICAgICAgICAgICAgICAobGluZSAgNjE5KQotKiB3aWRnZXQtbWVtYmVyOiAg ICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgUHJvcGVydGllcy4gIChsaW5lIDExNjcpCi0q IHdpZGdldC1taW5vci1tb2RlOiAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBNaW5vciBNb2Rl LiAgKGxpbmUgMTM4OCkKLSogd2lkZ2V0LW1pbm9yLW1vZGUta2V5bWFwOiAgICAgICAgICAgICAg V2lkZ2V0IE1pbm9yIE1vZGUuICAobGluZSAxMzkyKQotKiB3aWRnZXQtbW91c2UtZmFjZTogICAg ICAgICAgICAgICAgICAgICBVc2VyIEludGVyZmFjZS4gICAgIChsaW5lICAyNTIpCi0qIHdpZGdl dC1wYXJlbnQtYWN0aW9uOiAgICAgICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lIDEzMzkpCi0qIHdpZGdldC1wcm9tcHQtdmFsdWU6ICAgICAgICAgICAgICAgICAg IFV0aWxpdGllcy4gICAgICAgICAgKGxpbmUgMTM5OCkKLSogd2lkZ2V0LXB1c2gtYnV0dG9uLXBy ZWZpeDogICAgICAgICAgICAgcHVzaC1idXR0b24uICAgICAgICAobGluZSAgNjU0KQotKiB3aWRn ZXQtcHVzaC1idXR0b24tc3VmZml4OiAgICAgICAgICAgICBwdXNoLWJ1dHRvbi4gICAgICAgIChs aW5lICA2NTcpCi0qIHdpZGdldC1wdXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdl dCBQcm9wZXJ0aWVzLiAgKGxpbmUgMTE1OCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTE4KQorKiB3aWRnZXQta2V5 bWFwOiAgICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXRzIGFuZCB0aGUgQnVmZmVyLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICA2ODEpCisqIHdpZGdldC1raWxsLWxpbmU6ICAgICAgICAgICAgICAgICAgICAgIFdp ZGdldHMgYW5kIHRoZSBCdWZmZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDcxOCkKKyogd2lkZ2V0LWxpbmstcHJl Zml4OiAgICAgICAgICAgICAgICAgICAgQ3VzdG9taXphdGlvbi4gICAgICAobGluZSAyNjIyKQor KiB3aWRnZXQtbGluay1zdWZmaXg6ICAgICAgICAgICAgICAgICAgICBDdXN0b21pemF0aW9uLiAg ICAgIChsaW5lIDI2MjUpCisqIHdpZGdldC1tZW1iZXI6ICAgICAgICAgICAgICAgICAgICAgICAg IFdvcmtpbmcgd2l0aCBXaWRnZXRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA1NDQpCisqIHdpZGdldC1tZW51LW1h eC1zaG9ydGN1dHM6ICAgICAgICAgICAgIEN1c3RvbWl6YXRpb24uICAgICAgKGxpbmUgMjY1OSkK Kyogd2lkZ2V0LW1lbnUtbWF4LXNpemU6ICAgICAgICAgICAgICAgICAgQ3VzdG9taXphdGlvbi4g ICAgICAobGluZSAyNjUzKQorKiB3aWRnZXQtbWVudS1taW5pYnVmZmVyLWZsYWc6ICAgICAgICAg ICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI2NjUpCisqIHdpZGdldC1taW5vci1tb2RlOiAg ICAgICAgICAgICAgICAgICAgIFdpZGdldCBNaW5vciBNb2RlLiAgKGxpbmUgMjUwNSkKKyogd2lk Z2V0LW1pbm9yLW1vZGUta2V5bWFwOiAgICAgICAgICAgICAgV2lkZ2V0IE1pbm9yIE1vZGUuICAo bGluZSAyNTA5KQorKiB3aWRnZXQtbW91c2UtZmFjZTogICAgICAgICAgICAgICAgICAgICBDdXN0 b21pemF0aW9uLiAgICAgIChsaW5lIDI1ODUpCisqIHdpZGdldC1wYXJlbnQtYWN0aW9uOiAgICAg ICAgICAgICAgICAgIFdvcmtpbmcgd2l0aCBXaWRnZXRzLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2NDIpCisqIHdp ZGdldC1wcm9tcHQtdmFsdWU6ICAgICAgICAgICAgICAgICAgIFV0aWxpdGllcy4gICAgICAgICAg KGxpbmUgMjUxOCkKKyogd2lkZ2V0LXB1c2gtYnV0dG9uLXByZWZpeDogICAgICAgICAgICAgQ3Vz dG9taXphdGlvbi4gICAgICAobGluZSAyNjE2KQorKiB3aWRnZXQtcHVzaC1idXR0b24tc3VmZml4 OiAgICAgICAgICAgICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI2MTkpCisqIHdpZGdldC1w dXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtpbmcgd2l0aCBXaWRnZXRzLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICA1NTQpCiAqIHdpZGdldC1yYWRpby1hZGQtaXRlbTogICAgICAgICAgICAgICAgIHJh ZGlvLWJ1dHRvbi1jaG9pY2UuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDc3OCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxNjcyKQogKiB3 aWRnZXQtc2V0dXA6ICAgICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5nIFVwIHRoZSBCdWZm ZXIuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDM4NCkKLSogd2lkZ2V0LXRleHQta2V5bWFwOiAgICAgICAgICAgICAg ICAgICAgdGV4dC4gICAgICAgICAgICAgICAobGluZSAgNzAxKQotKiB3aWRnZXQtdHlwZTogICAg ICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgUHJvcGVydGllcy4gIChsaW5lIDExNzgpCi0q IHdpZGdldC10eXBlcy1jb252ZXJ0LXdpZGdldDogICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRn ZXRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lIDEyNTIpCi0qIHdpZGdldC10eXBlcy1jb3B5OiAgICAgICAgICAgICAg ICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEyNjYpCi0qIHdpZGdldC12 YWx1ZTogICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBQcm9wZXJ0aWVzLiAgKGxpbmUg MTEzOSkKLSogd2lkZ2V0LXZhbHVlLWNvbnZlcnQtd2lkZ2V0OiAgICAgICAgICAgRGVmaW5pbmcg TmV3IFdpZGdldHMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgMTI1NSkKLSogd2lkZ2V0LXZhbHVlLXNldDogICAgICAg ICAgICAgICAgICAgICAgV2lkZ2V0IFByb3BlcnRpZXMuICAobGluZSAxMTQzKQotKiB3aWRnZXQt dmFsdWUtdmFsdWUtZ2V0OiAgICAgICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lkZ2V0cy4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAxMzIwKQotKiB3aWRnZXRzLCBiYXNpYyB0eXBlczogICAgICAgICAgICAgICAgICBJ bnRyb2R1Y3Rpb24uICAgICAgIChsaW5lICAgNjMpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQ2NikKKyogd2lkZ2V0 LXRleHQta2V5bWFwOiAgICAgICAgICAgICAgICAgICAgdGV4dC4gICAgICAgICAgICAgICAobGlu ZSAxNDkxKQorKiB3aWRnZXQtdHlwZTogICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JraW5n IHdpdGggV2lkZ2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgNTM3KQorKiB3aWRnZXQtdHlwZS1kZWZhdWx0LWdl dDogICAgICAgICAgICAgICBXb3JraW5nIHdpdGggV2lkZ2V0cy4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjAxKQor KiB3aWRnZXQtdHlwZS1tYXRjaDogICAgICAgICAgICAgICAgICAgICBXb3JraW5nIHdpdGggV2lk Z2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgNjU4KQorKiB3aWRnZXQtdHlwZS12YWx1ZS1jcmVhdGU6ICAgICAg ICAgICAgICBXb3JraW5nIHdpdGggV2lkZ2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjE1KQorKiB3aWRnZXQt dHlwZXMtY29udmVydC13aWRnZXQ6ICAgICAgICAgICBXb3JraW5nIHdpdGggV2lkZ2V0cy4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgNjcwKQorKiB3aWRnZXQtdHlwZXMtY29weTogICAgICAgICAgICAgICAgICAgICBX b3JraW5nIHdpdGggV2lkZ2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjY0KQorKiB3aWRnZXQtdmFsdWU6ICAg ICAgICAgICAgICAgICAgICAgICAgICBXb3JraW5nIHdpdGggV2lkZ2V0cy4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg NTcwKQorKiB3aWRnZXQtdmFsdWUtY29udmVydC13aWRnZXQ6ICAgICAgICAgICBXb3JraW5nIHdp dGggV2lkZ2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgNjI0KQorKiB3aWRnZXQtdmFsdWUtc2V0OiAgICAgICAg ICAgICAgICAgICAgICBXb3JraW5nIHdpdGggV2lkZ2V0cy4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTgzKQorKiB3 aWRnZXQtdmFsdWUtdmFsdWUtZ2V0OiAgICAgICAgICAgICAgICBXb3JraW5nIHdpdGggV2lkZ2V0 cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgNjI5KQorKiB3aWRnZXRwOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXb3JraW5nIHdpdGggV2lkZ2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTM0KQorKiB3aWRnZXRzLCBi YXNpYyB0eXBlczogICAgICAgICAgICAgICAgICBJbnRyb2R1Y3Rpb24uICAgICAgIChsaW5lICAg NzUpCiAqIHdpZGdldHMsIHByb2dyYW1taW5nIGV4YW1wbGU6ICAgICAgICAgIFByb2dyYW1taW5n IEV4YW1wbGUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgIDI3MykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjUzKQogCg== --000000000000c5860b060371b5ce Content-Type: text/plain; charset="UTF-8"; name="widget.texi.txt" Content-Disposition: attachment; filename="widget.texi.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lll47ie32 VGhlIEVtYWNzIFdpZGdldCBMaWJyYXJ5CjEgSW50cm9kdWN0aW9uCjIgVXNlciBJbnRlcmZhY2UK ICAyLjEgRWRpdGFibGUgVGV4dCBGaWVsZHMKICAyLjIgQnV0dG9ucwogIDIuMyBOYXZpZ2F0aW9u CjMgUHJvZ3JhbW1pbmcgRXhhbXBsZQo0IFdpZGdldHMgQmFzaWNzCjUgU2V0dGluZyBVcCB0aGUg QnVmZmVyCjYgV29ya2luZyB3aXRoIFdpZGdldHMKNyBXaWRnZXRzIGFuZCB0aGUgQnVmZmVyCjgg V2lkZ2V0IEdhbGxlcnkKICA4LjEgQmFzaWMgVHlwZXMKICAgIDguMS4xIFRoZSDigJhpdGVt4oCZ IFdpZGdldAogICAgOC4xLjIgVGhlIOKAmGxpbmvigJkgV2lkZ2V0CiAgICA4LjEuMyBUaGUg4oCY dXJsLWxpbmvigJkgV2lkZ2V0CiAgICA4LjEuNCBUaGUg4oCYaW5mby1saW5r4oCZIFdpZGdldAog ICAgOC4xLjUgVGhlIOKAmGZ1bmN0aW9uLWxpbmvigJkgV2lkZ2V0CiAgICA4LjEuNiBUaGUg4oCY dmFyaWFibGUtbGlua+KAmSBXaWRnZXQKICAgIDguMS43IFRoZSDigJhmYWNlLWxpbmvigJkgV2lk Z2V0CiAgICA4LjEuOCBUaGUg4oCYZmlsZS1saW5r4oCZIFdpZGdldAogICAgOC4xLjkgVGhlIOKA mGVtYWNzLWxpYnJhcnktbGlua+KAmSBXaWRnZXQKICAgIDguMS4xMCBUaGUg4oCYZW1hY3MtY29t bWVudGFyeS1saW5r4oCZIFdpZGdldAogICAgOC4xLjExIFRoZSDigJhwdXNoLWJ1dHRvbuKAmSBX aWRnZXQKICAgIDguMS4xMiBUaGUg4oCYZWRpdGFibGUtZmllbGTigJkgV2lkZ2V0CiAgICA4LjEu MTMgVGhlIOKAmHRleHTigJkgV2lkZ2V0CiAgICA4LjEuMTQgVGhlIOKAmG1lbnUtY2hvaWNl4oCZ IFdpZGdldAogICAgOC4xLjE1IFRoZSDigJhyYWRpby1idXR0b24tY2hvaWNl4oCZIFdpZGdldAog ICAgOC4xLjE2IFRoZSDigJhjaG9pY2UtaXRlbeKAmSBXaWRnZXQKICAgIDguMS4xNyBUaGUg4oCY dG9nZ2xl4oCZIFdpZGdldAogICAgOC4xLjE4IFRoZSDigJhyYWRpby1idXR0b24tdG9nZ2xl4oCZ IFdpZGdldAogICAgOC4xLjE5IFRoZSDigJhjaGVja2JveOKAmSBXaWRnZXQKICAgIDguMS4yMCBU aGUg4oCYY2hlY2tsaXN04oCZIFdpZGdldAogICAgOC4xLjIxIFRoZSDigJhlZGl0YWJsZS1saXN0 4oCZIFdpZGdldAogICAgOC4xLjIyIFRoZSDigJhncm91cOKAmSBXaWRnZXQKICAgIDguMS4yMyBU aGUg4oCYZG9jdW1lbnRhdGlvbi1zdHJpbmfigJkgV2lkZ2V0CiAgOC4yIFNleHAgVHlwZXMKICAg IDguMi4xIFRoZSBDb25zdGFudCBXaWRnZXRzCiAgICA4LjIuMiBHZW5lcmljIFNleHAgV2lkZ2V0 CiAgICA4LjIuMyBBdG9taWMgU2V4cCBXaWRnZXRzCiAgICA4LjIuNCBDb21wb3NpdGUgU2V4cCBX aWRnZXRzCjkgRGVmaW5pbmcgTmV3IFdpZGdldHMKMTAgSW5zcGVjdGluZyBXaWRnZXRzCjExIFdp ZGdldCBNaW5vciBNb2RlCjEyIFV0aWxpdGllcwoxMyBDdXN0b21pemF0aW9uCjE0IFdpc2hsaXN0 CkFwcGVuZGl4IEEgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlCkluZGV4ClRoZSBFbWFj cyBXaWRnZXQgTGlicmFyeQoqKioqKioqKioqKioqKioqKioqKioqKioKCkNvcHlyaWdodCDCqSAy MDAw4oCTMjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KCiAgICAgUGVybWlzc2lv biBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCiAgICAg ZG9jdW1lbnQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExp Y2Vuc2UsCiAgICAgVmVyc2lvbiAxLjMgb3IgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlCiAgICAgRm91bmRhdGlvbjsgd2l0aCBubyBJbnZhcmlhbnQgU2Vj dGlvbnMsIHdpdGggdGhlIEZyb250LUNvdmVyIFRleHRzCiAgICAgYmVpbmcg4oCcQSBHTlUgTWFu dWFs4oCdLCBhbmQgd2l0aCB0aGUgQmFjay1Db3ZlciBUZXh0cyBhcyBpbiAoYSkKICAgICBiZWxv dy4gIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiB0aGUgc2VjdGlvbiBlbnRp dGxlZAogICAgIOKAnEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZeKAnS4KCiAgICAgKGEp IFRoZSBGU0bigJlzIEJhY2stQ292ZXIgVGV4dCBpczog4oCcWW91IGhhdmUgdGhlIGZyZWVkb20g dG8gY29weSBhbmQKICAgICBtb2RpZnkgdGhpcyBHTlUgbWFudWFsLuKAnQoKMSBJbnRyb2R1Y3Rp b24KKioqKioqKioqKioqKioKCk1vc3QgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlIHRvb2xraXRz IHByb3ZpZGUgYSBudW1iZXIgb2Ygc3RhbmRhcmQgdXNlcgppbnRlcmZhY2UgY29udHJvbHMgKHNv bWV0aW1lcyBrbm93biBhcyDigJx3aWRnZXRz4oCdIG9yIOKAnGdhZGdldHPigJ0pLiAgRW1hY3MK ZG9lc27igJl0IHJlYWxseSBzdXBwb3J0IGFueXRoaW5nIGxpa2UgdGhpcywgZXhjZXB0IGZvciBh biBpbmNyZWRpYmx5CnBvd2VyZnVsIHRleHQg4oCcd2lkZ2V04oCdLiAgT24gdGhlIG90aGVyIGhh bmQsIEVtYWNzIGRvZXMgcHJvdmlkZSB0aGUKbmVjZXNzYXJ5IHByaW1pdGl2ZXMgdG8gaW1wbGVt ZW50IG1hbnkgb3RoZXIgd2lkZ2V0cyB3aXRoaW4gYSB0ZXh0CmJ1ZmZlci4gIFRoZSDigJh3aWRn ZXTigJkgcGFja2FnZSBzaW1wbGlmaWVzIHRoaXMgdGFzay4KCiAgIFRoZSBiYXNpYyB3aWRnZXRz IGFyZToKCuKAmGxpbmvigJkKICAgICBBcmVhcyBvZiB0ZXh0IHdpdGggYW4gYXNzb2NpYXRlZCBh Y3Rpb24uICBJbnRlbmRlZCBmb3IgaHlwZXJ0ZXh0CiAgICAgbGlua3MgZW1iZWRkZWQgaW4gdGV4 dC4K4oCYcHVzaC1idXR0b27igJkKICAgICBMaWtlIGxpbmssIGJ1dCBpbnRlbmRlZCBmb3Igc3Rh bmQtYWxvbmUgYnV0dG9ucy4K4oCYZWRpdGFibGUtZmllbGTigJkKICAgICBBbiBlZGl0YWJsZSB0 ZXh0IGZpZWxkLiAgSXQgY2FuIGJlIGVpdGhlciB2YXJpYWJsZSBvciBmaXhlZCBsZW5ndGguCuKA mG1lbnUtY2hvaWNl4oCZCiAgICAgQWxsb3dzIHRoZSB1c2VyIHRvIGNob29zZSBvbmUgb2YgbXVs dGlwbGUgb3B0aW9ucyBmcm9tIGEgbWVudSwKICAgICB3aGVyZSBlYWNoIG9wdGlvbiBpcyBpdHNl bGYgYSB3aWRnZXQuICBPbmx5IHRoZSBzZWxlY3RlZCBvcHRpb24gaXMKICAgICB2aXNpYmxlIGlu IHRoZSBidWZmZXIuCuKAmHJhZGlvLWJ1dHRvbi1jaG9pY2XigJkKICAgICBBbGxvd3MgdGhlIHVz ZXIgdG8gY2hvb3NlIG9uZSBvZiBtdWx0aXBsZSBvcHRpb25zIGJ5IGFjdGl2YXRpbmcKICAgICBy YWRpbyBidXR0b25zLiAgVGhlIG9wdGlvbnMgYXJlIGltcGxlbWVudGVkIGFzIHdpZGdldHMuICBB bGwKICAgICBvcHRpb25zIGFyZSB2aXNpYmxlIGluIHRoZSBidWZmZXIsIHdpdGggdGhlIHNlbGVj dGVkIG9uZSBtYXJrZWQgYXMKICAgICBjaG9zZW4uCuKAmGl0ZW3igJkKICAgICBBIHNpbXBsZSBj b25zdGFudCB3aWRnZXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiB0aGUg4oCYbWVudS1jaG9pY2Xi gJkKICAgICBhbmQg4oCYcmFkaW8tYnV0dG9uLWNob2ljZeKAmSB3aWRnZXRzLgrigJhjaG9pY2Ut aXRlbeKAmQogICAgIEEgYnV0dG9uIGl0ZW0gb25seSBpbnRlbmRlZCBmb3IgdXNlIGluIGNob2lj ZXMuICBXaGVuIGludm9rZWQsIHRoZQogICAgIHVzZXIgd2lsbCBiZSBhc2tlZCB0byBzZWxlY3Qg YW5vdGhlciBvcHRpb24gZnJvbSB0aGUgY2hvaWNlIHdpZGdldC4K4oCYdG9nZ2xl4oCZCiAgICAg QSBzaW1wbGUg4oCYb27igJkv4oCYb2Zm4oCZIHN3aXRjaC4K4oCYY2hlY2tib3jigJkKICAgICBB IGNoZWNrYm94ICjigJhbIF3igJkv4oCYW1hd4oCZKS4K4oCYZWRpdGFibGUtbGlzdOKAmQogICAg IENyZWF0ZSBhbiBlZGl0YWJsZSBsaXN0LiAgVGhlIHVzZXIgY2FuIGluc2VydCBvciBkZWxldGUg aXRlbXMgaW4KICAgICB0aGUgbGlzdC4gIEVhY2ggbGlzdCBpdGVtIGlzIGl0c2VsZiBhIHdpZGdl dC4KCiAgIE5vdywgb2Ygd2hhdCBwb3NzaWJsZSB1c2UgY2FuIHN1cHBvcnQgZm9yIHdpZGdldHMg YmUgaW4gYSB0ZXh0CmVkaXRvcj8gIEnigJltIGdsYWQgeW91IGFza2VkLiAgVGhlIGFuc3dlciBp cyB0aGF0IHdpZGdldHMgYXJlIHVzZWZ1bCBmb3IKaW1wbGVtZW50aW5nIGZvcm1zLiAgQSDigJxm b3Jt4oCdIGluIEVtYWNzIGlzIGEgYnVmZmVyIHdoZXJlIHRoZSB1c2VyIGlzCnN1cHBvc2VkIHRv IGZpbGwgb3V0IGEgbnVtYmVyIG9mIGZpZWxkcywgZWFjaCBvZiB3aGljaCBoYXMgYSBzcGVjaWZp YwptZWFuaW5nLiAgVGhlIHVzZXIgaXMgbm90IHN1cHBvc2VkIHRvIGNoYW5nZSBvciBkZWxldGUg YW55IG9mIHRoZSB0ZXh0CmJldHdlZW4gdGhlIGZpZWxkcy4gIEV4YW1wbGVzIG9mIGZvcm1zIGlu IEVtYWNzIGFyZSB0aGUg4oCYZm9ybXPigJkgcGFja2FnZQoob2YgY291cnNlKSwgdGhlIGN1c3Rv bWl6ZSBidWZmZXJzLCB0aGUgbWFpbCBhbmQgbmV3cyBjb21wb3NlIG1vZGVzLCBhbmQKdGhlIEhU TUwgZm9ybSBzdXBwb3J0IGluIHRoZSDigJh3M+KAmSBicm93c2VyLgoKICAgVGhlIGFkdmFudGFn ZXMgZm9yIGEgcHJvZ3JhbW1lciBvZiB1c2luZyB0aGUg4oCYd2lkZ2V04oCZIHBhY2thZ2UgdG8K aW1wbGVtZW50IGZvcm1zIGFyZToKCiAgMS4gTW9yZSBjb21wbGV4IGZpZWxkcyB0aGFuIGp1c3Qg ZWRpdGFibGUgdGV4dCBhcmUgc3VwcG9ydGVkLgogIDIuIFlvdSBjYW4gZ2l2ZSB0aGUgdXNlcnMg aW1tZWRpYXRlIGZlZWRiYWNrIGlmIHRoZXkgZW50ZXIgaW52YWxpZAogICAgIGRhdGEgaW4gYSB0 ZXh0IGZpZWxkLCBhbmQgc29tZXRpbWVzIHByZXZlbnQgZW50ZXJpbmcgaW52YWxpZCBkYXRhLgog IDMuIFlvdSBjYW4gaGF2ZSBmaXhlZCBzaXplZCBmaWVsZHMsIHRodXMgYWxsb3dpbmcgbXVsdGlw bGUgZmllbGRzIHRvCiAgICAgYmUgbGluZWQgdXAgaW4gY29sdW1ucy4KICA0LiBJdCBpcyBzaW1w bGUgdG8gcXVlcnkgb3Igc2V0IHRoZSB2YWx1ZSBvZiBhIGZpZWxkLgogIDUuIEVkaXRpbmcgaGFw cGVucyBpbiB0aGUgYnVmZmVyLCBub3QgaW4gdGhlIG1pbmktYnVmZmVyLgogIDYuIFBhY2thZ2Vz IHVzaW5nIHRoZSBsaWJyYXJ5IGdldCBhIHVuaWZvcm0gbG9vaywgbWFraW5nIHRoZW0gZWFzaWVy CiAgICAgZm9yIHRoZSB1c2VyIHRvIGxlYXJuLgogIDcuIEFzIHN1cHBvcnQgZm9yIGVtYmVkZGVk IGdyYXBoaWNzIGltcHJvdmUsIHRoZSB3aWRnZXQgbGlicmFyeSB3aWxsCiAgICAgYmUgZXh0ZW5k ZWQgdG8gdXNlIHRoZSBHVUkgZmVhdHVyZXMuICBUaGlzIG1lYW5zIHRoYXQgeW91ciBjb2RlCiAg ICAgdXNpbmcgdGhlIHdpZGdldCBsaWJyYXJ5IHdpbGwgYWxzbyB1c2UgdGhlIG5ldyBncmFwaGlj IGZlYXR1cmVzCiAgICAgYXV0b21hdGljYWxseS4KCjIgVXNlciBJbnRlcmZhY2UKKioqKioqKioq KioqKioqKgoKQSBmb3JtIGNvbnNpc3RzIG9mIHJlYWQgb25seSB0ZXh0IGZvciBkb2N1bWVudGF0 aW9uIGFuZCBzb21lIGZpZWxkcywKd2hlcmUgZWFjaCBmaWVsZCBjb250YWlucyB0d28gcGFydHMs IGEgdGFnIGFuZCBhIHZhbHVlLiAgVGhlIHRhZ3MgYXJlCnVzZWQgdG8gaWRlbnRpZnkgdGhlIGZp ZWxkcywgc28gdGhlIGRvY3VtZW50YXRpb24gY2FuIHJlZmVyIHRvIHRoZSDigJhmb28KZmllbGTi gJksIG1lYW5pbmcgdGhlIGZpZWxkIHRhZ2dlZCB3aXRoIOKAmEZvb+KAmS4gIEhlcmUgaXMgYW4g ZXhhbXBsZSBmb3JtOgoKICAgICBIZXJlIGlzIHNvbWUgZG9jdW1lbnRhdGlvbi4KCiAgICAgTmFt ZTogTXkgTmFtZSAgICAgKkNob29zZSo6IFRoaXMgb3B0aW9uCiAgICAgQWRkcmVzczogIFNvbWUg UGxhY2UKICAgICBJbiBzb21lIENpdHkKICAgICBTb21lIGNvdW50cnkuCgogICAgIFNlZSBhbHNv IF9vdGhlciB3b3JrXyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiAgICAgTnVtYmVyczogY291bnQg dG8gdGhyZWUgYmVsb3cKICAgICBbSU5TXSBbREVMXSBPbmUKICAgICBbSU5TXSBbREVMXSBFaCwg dHdvPwogICAgIFtJTlNdIFtERUxdIEZpdmUhCiAgICAgW0lOU10KCiAgICAgU2VsZWN0IG11bHRp cGxlOgoKICAgICBbWF0gVGhpcwogICAgIFsgXSBUaGF0CiAgICAgW1hdIFRodXMKCiAgICAgU2Vs ZWN0IG9uZToKCiAgICAgKCopIE9uZQogICAgICggKSBBbm90aGVyIE9uZS4KICAgICAoICkgQSBG aW5hbCBPbmUuCgogICAgIFtBcHBseSBGb3JtXSBbUmVzZXQgRm9ybV0KCiAgIFRoZSB0b3AgbGV2 ZWwgd2lkZ2V0cyBpbiB0aGlzIGV4YW1wbGUgYXJlIHRhZ2dlZCDigJhOYW1l4oCZLCDigJhDaG9v c2XigJksCuKAmEFkZHJlc3PigJksIOKAmF9vdGhlciB3b3JrX+KAmSwg4oCYTnVtYmVyc+KAmSwg 4oCYU2VsZWN0IG11bHRpcGxl4oCZLCDigJhTZWxlY3Qgb25l4oCZLArigJhbQXBwbHkgRm9ybV3i gJksIGFuZCDigJhbUmVzZXQgRm9ybV3igJkuICBUaGVyZSBhcmUgYmFzaWNhbGx5IHR3byB0aGlu Z3MgdGhlCnVzZXIgY2FuIGRvIHdpdGhpbiBhIGZvcm0sIG5hbWVseSBlZGl0aW5nIHRoZSBlZGl0 YWJsZSB0ZXh0IGZpZWxkcyBhbmQKYWN0aXZhdGluZyB0aGUgYnV0dG9ucy4KCjIuMSBFZGl0YWJs ZSBUZXh0IEZpZWxkcwo9PT09PT09PT09PT09PT09PT09PT09PT0KCkluIHRoZSBleGFtcGxlLCB0 aGUgdmFsdWUgZm9yIHRoZSDigJhOYW1l4oCZIGlzIG1vc3QgbGlrZWx5IGRpc3BsYXllZCBpbiBh bgplZGl0YWJsZSB0ZXh0IGZpZWxkLCBhbmQgc28gYXJlIHZhbHVlcyBmb3IgZWFjaCBvZiB0aGUg bWVtYmVycyBvZiB0aGUK4oCYTnVtYmVyc+KAmSBsaXN0LiAgQWxsIHRoZSBub3JtYWwgRW1hY3Mg ZWRpdGluZyBvcGVyYXRpb25zIGFyZSBhdmFpbGFibGUKZm9yIGVkaXRpbmcgdGhlc2UgZmllbGRz LiAgVGhlIG9ubHkgcmVzdHJpY3Rpb24gaXMgdGhhdCBlYWNoIGNoYW5nZSB5b3UKbWFrZSBtdXN0 IGJlIGNvbnRhaW5lZCB3aXRoaW4gYSBzaW5nbGUgZWRpdGFibGUgdGV4dCBmaWVsZC4gIEZvcgpl eGFtcGxlLCBjYXBpdGFsaXppbmcgYWxsIHRleHQgZnJvbSB0aGUgbWlkZGxlIG9mIG9uZSBmaWVs ZCB0byB0aGUKbWlkZGxlIG9mIGFub3RoZXIgZmllbGQgaXMgcHJvaGliaXRlZC4KCiAgIEVkaXRh YmxlIHRleHQgZmllbGRzIGFyZSBjcmVhdGVkIGJ5IHRoZSDigJhlZGl0YWJsZS1maWVsZOKAmSB3 aWRnZXQuCgogICBUaGUg4oCYOmZvcm1hdOKAmSBrZXl3b3JkIGlzIHVzZWZ1bCBmb3IgZ2VuZXJh dGluZyB0aGUgbmVjZXNzYXJ5IHRleHQ7CmZvciBpbnN0YW5jZSwgaWYgeW91IGdpdmUgaXQgYSB2 YWx1ZSBvZiDigJgiTmFtZTogJXYgIuKAmSwgdGhlIOKAmE5hbWU6IOKAmSBwYXJ0CndpbGwgcHJv dmlkZSB0aGUgbmVjZXNzYXJ5IHNlcGFyYXRpbmcgdGV4dCBiZWZvcmUgdGhlIGZpZWxkIGFuZCB0 aGUKdHJhaWxpbmcgc3BhY2Ugd2lsbCBwcm92aWRlIHRoZSBzZXBhcmF0aW5nIHRleHQgYWZ0ZXIg dGhlIGZpZWxkLiAgSWYgeW91CmRvbuKAmXQgaW5jbHVkZSB0aGUg4oCYOnNpemXigJkga2V5d29y ZCwgdGhlIGZpZWxkIHdpbGwgZXh0ZW5kIHRvIHRoZSBlbmQgb2YKdGhlIGxpbmUsIGFuZCB0aGUg dGVybWluYXRpbmcgbmV3bGluZSB3aWxsIHByb3ZpZGUgc2VwYXJhdGlvbiBhZnRlci4KCiAgIFRo ZSBlZGl0aW5nIHRleHQgZmllbGRzIGFyZSBoaWdobGlnaHRlZCB3aXRoIHRoZSDigJh3aWRnZXQt ZmllbGQtZmFjZeKAmQpmYWNlLCBtYWtpbmcgdGhlbSBlYXN5IHRvIGZpbmQuCgoyLjIgQnV0dG9u cwo9PT09PT09PT09PQoKU29tZSBwb3J0aW9ucyBvZiB0aGUgYnVmZmVyIGhhdmUgYW4gYXNzb2Np YXRlZCDigJxhY3Rpb27igJ0sIHdoaWNoIGNhbiBiZQrigJxpbnZva2Vk4oCdIGJ5IGEgc3RhbmRh cmQga2V5IG9yIG1vdXNlIGNvbW1hbmQuICBUaGVzZSBwb3J0aW9ucyBhcmUgY2FsbGVkCuKAnGJ1 dHRvbnPigJ0uICBUaGUgZGVmYXVsdCBjb21tYW5kcyBmb3IgYWN0aXZhdGluZyBhIGJ1dHRvbiBh cmUK4oCYd2lkZ2V0LWJ1dHRvbi1wcmVzc+KAmSBhbmQg4oCYd2lkZ2V0LWJ1dHRvbi1jbGlja+KA mS4gIFRoZSB1c2VyIHR5cGljYWxseQppbnRlcmFjdHMgd2l0aCB0aGUgYnV0dG9ucyB3aXRoIGEg a2V5LCBsaWtlIDxSRVQ+LCBvciB3aXRoIHRoZSBtb3VzZQpidXR0b25zLgoKICAgVGhlcmUgYXJl IHNldmVyYWwgZGlmZmVyZW50IGtpbmQgb2YgYnV0dG9ucywgYWxsIG9mIHdoaWNoIGFyZSBwcmVz ZW50CmluIHRoZSBleGFtcGxlOgoKX1RoZSBPcHRpb24gRmllbGQgVGFnc18KICAgICBXaGVuIHlv dSBpbnZva2Ugb25lIG9mIHRoZXNlIGJ1dHRvbnMsIHlvdSB3aWxsIGJlIGFza2VkIHRvIGNob29z ZQogICAgIGJldHdlZW4gYSBudW1iZXIgb2YgZGlmZmVyZW50IG9wdGlvbnMuICBUaGlzIGlzIGhv dyB5b3UgZWRpdCBhbgogICAgIG9wdGlvbiBmaWVsZC4gIE9wdGlvbiBmaWVsZHMgYXJlIGNyZWF0 ZWQgYnkgdGhlIOKAmG1lbnUtY2hvaWNl4oCZCiAgICAgd2lkZ2V0LiAgSW4gdGhlIGV4YW1wbGUs IOKAmENob29zZeKAmSBpcyBhbiBvcHRpb24gZmllbGQgdGFnLgpfVGhlIOKAmFtJTlNd4oCZIGFu ZCDigJhbREVMXeKAmSBidXR0b25zXwogICAgIEFjdGl2YXRpbmcgdGhlc2Ugd2lsbCBpbnNlcnQg b3IgZGVsZXRlIGVsZW1lbnRzIGZyb20gYW4gZWRpdGFibGUKICAgICBsaXN0LiAgVGhlIGxpc3Qg aXMgY3JlYXRlZCBieSB0aGUg4oCYZWRpdGFibGUtbGlzdOKAmSB3aWRnZXQuCl9FbWJlZGRlZCBC dXR0b25zXwogICAgIFRoZSDigJhfb3RoZXIgd29ya1/igJkgaXMgYW4gZXhhbXBsZSBvZiBhbiBl bWJlZGRlZCBidXR0b24uICBFbWJlZGRlZAogICAgIGJ1dHRvbnMgYXJlIG5vdCBhc3NvY2lhdGVk IHdpdGggYW55IGZpZWxkcywgYnV0IGNhbiBzZXJ2ZSBhbnkKICAgICBwdXJwb3NlLCBzdWNoIGFz IGltcGxlbWVudGluZyBoeXBlcnRleHQgcmVmZXJlbmNlcy4gIFRoZXkgYXJlCiAgICAgdXN1YWxs eSBjcmVhdGVkIGJ5IHRoZSDigJhsaW5r4oCZIHdpZGdldC4KX1RoZSDigJhbIF3igJkgYW5kIOKA mFtYXeKAmSBidXR0b25zXwogICAgIEFjdGl2YXRpbmcgb25lIG9mIHRoZXNlIHdpbGwgY29udmVy dCBpdCB0byB0aGUgb3RoZXIuICBUaGlzIGlzCiAgICAgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcg bXVsdGlwbGUtY2hvaWNlIGZpZWxkcy4gIFlvdSBjYW4gY3JlYXRlCiAgICAgdGhlbSB3aXRoIHRo ZSDigJhjaGVja2JveOKAmSB3aWRnZXQuCl9UaGUg4oCYKCAp4oCZIGFuZCDigJgoKinigJkgYnV0 dG9uc18KICAgICBPbmx5IG9uZSByYWRpbyBidXR0b24gaW4gYSDigJhyYWRpby1idXR0b24tY2hv aWNl4oCZIHdpZGdldCBjYW4gYmUKICAgICBzZWxlY3RlZCBhdCBhbnkgdGltZS4gIFdoZW4geW91 IGludm9rZSBvbmUgb2YgdGhlIHVuc2VsZWN0ZWQgcmFkaW8KICAgICBidXR0b25zLCBpdCB3aWxs IGJlIHNlbGVjdGVkIGFuZCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgcmFkaW8gYnV0dG9uCiAgICAg d2lsbCBiZWNvbWUgdW5zZWxlY3RlZC4KX1RoZSDigJhbQXBwbHkgRm9ybV3igJkgYW5kIOKAmFtS ZXNldCBGb3JtXeKAmSBidXR0b25zXwogICAgIFRoZXNlIGFyZSBleHBsaWNpdCBidXR0b25zIG1h ZGUgd2l0aCB0aGUg4oCYcHVzaC1idXR0b27igJkgd2lkZ2V0LiAgVGhlCiAgICAgbWFpbiBkaWZm ZXJlbmNlIGZyb20gdGhlIOKAmGxpbmvigJkgd2lkZ2V0IGlzIHRoYXQgdGhlIGJ1dHRvbnMgd2ls bCBiZQogICAgIGRpc3BsYXllZCBhcyBHVUkgYnV0dG9ucyB3aGVuIHBvc3NpYmxlLgoKICAgVG8g bWFrZSB0aGVtIGVhc2llciB0byBsb2NhdGUsIGJ1dHRvbnMgYXJlIGVtcGhhc2l6ZWQgaW4gdGhl IGJ1ZmZlcgp3aXRoIGEgZGlzdGluY3RpdmUgZmFjZSwgbGlrZSDigJh3aWRnZXQtYnV0dG9uLWZh Y2XigJkgb3IK4oCYd2lkZ2V0LW1vdXNlLWZhY2XigJkuCgoyLjMgTmF2aWdhdGlvbgo9PT09PT09 PT09PT09PQoKWW91IGNhbiB1c2UgYWxsIHRoZSBub3JtYWwgRW1hY3MgY29tbWFuZHMgdG8gbW92 ZSBhcm91bmQgaW4gYSBmb3JtCmJ1ZmZlciwgcGx1cyB5b3Ugd2lsbCBoYXZlIHRoZXNlIGFkZGl0 aW9uYWwgY29tbWFuZHMgdG8gbmF2aWdhdGUgZnJvbQp3aWRnZXQgdG8gd2lkZ2V0OiDigJh3aWRn ZXQtZm9yd2FyZOKAmSBhbmQg4oCYd2lkZ2V0LWJhY2t3YXJk4oCZLgoKMyBQcm9ncmFtbWluZyBF eGFtcGxlCioqKioqKioqKioqKioqKioqKioqKgoKSGVyZSBpcyB0aGUgY29kZSB0byBpbXBsZW1l bnQgdGhlIHVzZXIgaW50ZXJmYWNlIGV4YW1wbGUgKCpub3RlIFVzZXIKSW50ZXJmYWNlOjopLgoK ICAgICAocmVxdWlyZSAnd2lkZ2V0KQoKICAgICAoZXZhbC13aGVuLWNvbXBpbGUKICAgICAgIChy ZXF1aXJlICd3aWQtZWRpdCkpCgogICAgIChkZWZ2YXIgd2lkZ2V0LWV4YW1wbGUtcmVwZWF0KQoK ICAgICAoZGVmdW4gd2lkZ2V0LWV4YW1wbGUgKCkKICAgICAgICJDcmVhdGUgdGhlIHdpZGdldHMg ZnJvbSB0aGUgV2lkZ2V0IG1hbnVhbC4iCiAgICAgICAoaW50ZXJhY3RpdmUpCiAgICAgICAoc3dp dGNoLXRvLWJ1ZmZlciAiKldpZGdldCBFeGFtcGxlKiIpCiAgICAgICAoa2lsbC1hbGwtbG9jYWwt dmFyaWFibGVzKQogICAgICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ3dpZGdldC1leGFtcGxlLXJl cGVhdCkKICAgICAgIChsZXQgKChpbmhpYml0LXJlYWQtb25seSB0KSkKICAgICAgICAgKGVyYXNl LWJ1ZmZlcikpCiAgICAgICAocmVtb3ZlLW92ZXJsYXlzKQogICAgICAgKHdpZGdldC1pbnNlcnQg IkhlcmUgaXMgc29tZSBkb2N1bWVudGF0aW9uLlxuXG4iKQogICAgICAgKHdpZGdldC1jcmVhdGUg J2VkaXRhYmxlLWZpZWxkCiAgICAgICAgICAgICAgICAgICAgICA6c2l6ZSAxMwogICAgICAgICAg ICAgICAgICAgICAgOmZvcm1hdCAiTmFtZTogJXYgIiA7IFRleHQgYWZ0ZXIgdGhlIGZpZWxkIQog ICAgICAgICAgICAgICAgICAgICAgIk15IE5hbWUiKQogICAgICAgKHdpZGdldC1jcmVhdGUgJ21l bnUtY2hvaWNlCiAgICAgICAgICAgICAgICAgICAgICA6dGFnICJDaG9vc2UiCiAgICAgICAgICAg ICAgICAgICAgICA6dmFsdWUgIlRoaXMiCiAgICAgICAgICAgICAgICAgICAgICA6aGVscC1lY2hv ICJDaG9vc2UgbWUsIHBsZWFzZSEiCiAgICAgICAgICAgICAgICAgICAgICA6bm90aWZ5IChsYW1i ZGEgKHdpZGdldCAmcmVzdCBpZ25vcmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KG1lc3NhZ2UgIiVzIGlzIGEgZ29vZCBjaG9pY2UhIgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICh3aWRnZXQtdmFsdWUgd2lkZ2V0KSkpCiAgICAgICAgICAgICAgICAg ICAgICAnKGl0ZW0gOnRhZyAiVGhpcyBvcHRpb24iIDp2YWx1ZSAiVGhpcyIpCiAgICAgICAgICAg ICAgICAgICAgICAnKGNob2ljZS1pdGVtICJUaGF0IG9wdGlvbiIpCiAgICAgICAgICAgICAgICAg ICAgICAnKGVkaXRhYmxlLWZpZWxkIDptZW51LXRhZyAiTm8gb3B0aW9uIiAiVGh1cyBvcHRpb24i KSkKICAgICAgICh3aWRnZXQtY3JlYXRlICdlZGl0YWJsZS1maWVsZAogICAgICAgICAgICAgICAg ICAgICAgOmZvcm1hdCAiQWRkcmVzczogJXYiCiAgICAgICAgICAgICAgICAgICAgICAiU29tZSBQ bGFjZVxuSW4gc29tZSBDaXR5XG5Tb21lIGNvdW50cnkuIikKICAgICAgICh3aWRnZXQtaW5zZXJ0 ICJcblNlZSBhbHNvICIpCiAgICAgICAod2lkZ2V0LWNyZWF0ZSAnbGluawogICAgICAgICAgICAg ICAgICAgICAgOm5vdGlmeSAobGFtYmRhICgmcmVzdCBpZ25vcmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHdpZGdldC12YWx1ZS1zZXQgd2lkZ2V0LWV4YW1wbGUtcmVwZWF0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiRW4iICJU byIgIlRyZSIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aWRnZXQtc2V0dXAp KQogICAgICAgICAgICAgICAgICAgICAgIm90aGVyIHdvcmsiKQogICAgICAgKHdpZGdldC1pbnNl cnQKICAgICAgICAgIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuTnVtYmVyczogY291bnQgdG8g dGhyZWUgYmVsb3dcbiIpCiAgICAgICAoc2V0cSB3aWRnZXQtZXhhbXBsZS1yZXBlYXQKICAgICAg ICAgICAgICh3aWRnZXQtY3JlYXRlICdlZGl0YWJsZS1saXN0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6ZW50cnktZm9ybWF0ICIlaSAlZCAldiIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDpub3RpZnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKHdpZGdldCAm cmVzdCBpZ25vcmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChvbGQgKHdp ZGdldC1nZXQgd2lkZ2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJzpleGFtcGxlLWxlbmd0aCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChuZXcgKGxlbmd0aCAod2lkZ2V0LXZhbHVlIHdpZGdldCkpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChlcSBvbGQgbmV3KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHdpZGdldC1wdXQgd2lkZ2V0ICc6ZXhhbXBsZS1sZW5ndGgg bmV3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lc3NhZ2UgIllvdSBjYW4g Y291bnQgdG8gJWQuIiBuZXcpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWUg JygiT25lIiAiRWgsIHR3bz8iICJGaXZlISIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn KGVkaXRhYmxlLWZpZWxkIDp2YWx1ZSAidGhyZWUiKSkpCiAgICAgICAod2lkZ2V0LWluc2VydCAi XG5cblNlbGVjdCBtdWx0aXBsZTpcblxuIikKICAgICAgICh3aWRnZXQtY3JlYXRlICdjaGVja2Jv eCB0KQogICAgICAgKHdpZGdldC1pbnNlcnQgIiBUaGlzXG4iKQogICAgICAgKHdpZGdldC1jcmVh dGUgJ2NoZWNrYm94IG5pbCkKICAgICAgICh3aWRnZXQtaW5zZXJ0ICIgVGhhdFxuIikKICAgICAg ICh3aWRnZXQtY3JlYXRlICdjaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgOm5vdGlmeSAo bGFtYmRhICgmcmVzdCBpZ25vcmUpIChtZXNzYWdlICJUaWNrbGUiKSkKICAgICAgICAgICAgICAg ICAgICAgIHQpCiAgICAgICAod2lkZ2V0LWluc2VydCAiIFRodXNcblxuU2VsZWN0IG9uZTpcblxu IikKICAgICAgICh3aWRnZXQtY3JlYXRlICdyYWRpby1idXR0b24tY2hvaWNlCiAgICAgICAgICAg ICAgICAgICAgICA6dmFsdWUgIk9uZSIKICAgICAgICAgICAgICAgICAgICAgIDpub3RpZnkgKGxh bWJkYSAod2lkZ2V0ICZyZXN0IGlnbm9yZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobWVzc2FnZSAiWW91IHNlbGVjdGVkICVzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh3aWRnZXQtdmFsdWUgd2lkZ2V0KSkpCiAgICAgICAgICAgICAgICAgICAg ICAnKGl0ZW0gIk9uZSIpICcoaXRlbSAiQW5vdGhlciBPbmUuIikKICAgICAgICAgICAgICAgICAg ICAgICcoaXRlbSAiQSBGaW5hbCBPbmUuIikpCiAgICAgICAod2lkZ2V0LWluc2VydCAiXG4iKQog ICAgICAgKHdpZGdldC1jcmVhdGUgJ3B1c2gtYnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICA6 bm90aWZ5IChsYW1iZGEgKCZyZXN0IGlnbm9yZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoaWYgKD0gKGxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHdpZGdldC12YWx1ZSB3aWRnZXQtZXhhbXBsZS1yZXBlYXQpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobWVzc2FnZSAiQ29uZ3JhdHVsYXRpb24hIikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChlcnJvciAiVGhyZWUgd2FzIHRoZSBjb3VudCEiKSkpCiAgICAgICAgICAgICAg ICAgICAgICAiQXBwbHkgRm9ybSIpCiAgICAgICAod2lkZ2V0LWluc2VydCAiICIpCiAgICAgICAo d2lkZ2V0LWNyZWF0ZSAncHVzaC1idXR0b24KICAgICAgICAgICAgICAgICAgICAgIDpub3RpZnkg KGxhbWJkYSAoJnJlc3QgaWdub3JlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3 aWRnZXQtZXhhbXBsZSkpCiAgICAgICAgICAgICAgICAgICAgICAiUmVzZXQgRm9ybSIpCiAgICAg ICAod2lkZ2V0LWluc2VydCAiXG4iKQogICAgICAgKHVzZS1sb2NhbC1tYXAgd2lkZ2V0LWtleW1h cCkKICAgICAgICh3aWRnZXQtc2V0dXApKQoKNCBXaWRnZXRzIEJhc2ljcwoqKioqKioqKioqKioq KioqCgpUaGUgV2lkZ2V0IExpYnJhcnkgZGVhbHMgd2l0aCB3aWRnZXRzIG9iamVjdHMuICBBIHdp ZGdldCBvYmplY3QgaGFzCnByb3BlcnRpZXMgd2hvc2UgdmFsdWUgbWF5IGJlIGFueXRoaW5nLCBi ZSBpdCBudW1iZXJzLCBzdHJpbmdzLCBzeW1ib2xzLApmdW5jdGlvbnMsIGV0Yy4gIFRob3NlIHBy b3BlcnRpZXMgYXJlIHJlZmVycmVkIHRvIGFzIGtleXdvcmRzIGFuZCBhcmUKcmVzcG9uc2libGUg Zm9yIHRoZSB3YXkgYSB3aWRnZXQgaXMgcmVwcmVzZW50ZWQgaW4gYSBidWZmZXIsIGFuZCBjb250 cm9sCnRoZSB3YXkgYSB1c2VyIG9yIGEgcHJvZ3JhbSBjYW4gaW50ZXJhY3Qgd2l0aCBpdC4KCiAg IFRoZSBsaWJyYXJ5IGRlZmluZXMgc2V2ZXJhbCB3aWRnZXQgdHlwZXMsIGFuZCBnaXZlcyB5b3Ug YSB3YXkgdG8KZGVmaW5lIG5ldyB0eXBlcyBhcyB3ZWxsLiAgSW4gYWRkaXRpb24sIHdpZGdldHMg Y2FuIGRlcml2ZSBmcm9tIG90aGVyCnR5cGVzLCBjcmVhdGluZyBhIHNvcnQgb2Ygd2lkZ2V0IGlu aGVyaXRhbmNlLiAgSW4gZmFjdCwgYWxsIHdpZGdldHMKZGVmaW5lZCBpbiB0aGUgV2lkZ2V0IExp YnJhcnkgc2hhcmUgYSBjb21tb24gcGFyZW50LCB0aGUg4oCcZGVmYXVsdOKAnQp3aWRnZXQuICBJ biB0aGlzIG1hbnVhbCwgd2hlbiB3ZSB0YWxrIGFib3V0IGEgZGVmYXVsdCBiZWhhdmlvciwgd2UK dXN1YWxseSBtZWFuIHRoZSBiZWhhdmlvciBhcyBkZWZpbmVkIGJ5IHRoaXMg4oCYZGVmYXVsdOKA mSB3aWRnZXQuICAqTm90ZQpXaWRnZXQgR2FsbGVyeTo6LCBmb3IgYSBkZXNjcmlwdGlvbiBvZiBl YWNoIGRlZmluZWQgd2lkZ2V0LgoKICAgRGVmaW5pbmcgYSBuZXcgdHlwZSB0aGF0IGRlcml2ZXMg ZnJvbSBhIHByZXZpb3VzIG9uZSBpcyBub3QgbWFuZGF0b3J5CnRvIGNyZWF0ZSB3aWRnZXRzIHRo YXQgd29yayB2ZXJ5IGRpZmZlcmVudCBmcm9tIGEgc3BlY2lmaWVkIHR5cGUuICBXaGVuCmNyZWF0 aW5nIGEgd2lkZ2V0LCB5b3UgY2FuIG92ZXJyaWRlIGFueSBkZWZhdWx0IHByb3BlcnR5LCBpbmNs dWRpbmcKZnVuY3Rpb25zLCB0aGF0IGNvbnRyb2wgdGhlIHdpZGdldC4gIFRoYXQgaXMsIHlvdSBj YW4gc3BlY2lhbGl6ZSBhCndpZGdldCBvbiBjcmVhdGlvbiwgd2l0aG91dCBoYXZpbmcgdG8gZGVm aW5lIGl0IGFzIGEgbmV3IHR5cGUgb2Ygd2lkZ2V0LgoKICAgSW4gYWRkaXRpb24gdG8gdGhlIGZ1 bmN0aW9uIGZvciBkZWZpbmluZyBhIHdpZGdldCwgdGhpcyBsaWJyYXJ5CnByb3ZpZGVzIGZ1bmN0 aW9ucyB0byBjcmVhdGUgd2lkZ2V0cywgcXVlcnkgYW5kIGNoYW5nZSBpdHMgcHJvcGVydGllcywK cmVzcG9uZCB0byB1c2VyIGV2ZW50cyBhbmQgZGVzdHJveSB0aGVtLiAgVGhlIGZvbGxvd2luZyBz ZWN0aW9ucwpkZXNjcmliZSB0aGVtLgoKICAgT25lIGltcG9ydGFudCBwcm9wZXJ0eSBvZiBhIHdp ZGdldCBpcyBpdHMg4oCcdmFsdWXigJ0uICBBbGwgd2lkZ2V0cyBtYXkKaGF2ZSBhIHZhbHVlLCB3 aGljaCBpcyBzdG9yZWQgaW4gYSBzby1jYWxsZWQg4oCcaW50ZXJuYWwgZm9ybWF04oCdLiAgRm9y IHRoZQpyZXN0IG9mIEVtYWNzLCB0aGUgd2lkZ2V0IHByZXNlbnRzIGl0cyB2YWx1ZSBpbiBhIHNv LWNhbGxlZCDigJxleHRlcm5hbApmb3JtYXTigJ0uICBCb3RoIGZvcm1hdHMgY2FuIGJlIGVxdWFs IG9yIGRpZmZlcmVudCwgYW5kIGVhY2ggd2lkZ2V0IGlzCnJlc3BvbnNpYmxlIGZvciBkZWZpbmlu ZyBob3cgdGhlIGNvbnZlcnNpb24gYmV0d2VlbiBlYWNoIGZvcm1hdCBzaG91bGQKaGFwcGVuLgoK ICAgVGhlIHZhbHVlIHByb3BlcnR5IGlzIGFuIGltcG9ydGFudCBwcm9wZXJ0eSBmb3IgYWxtb3N0 IGFsbCB3aWRnZXRzLAphbmQgcGVyaGFwcyBtb3JlIGltcG9ydGFudCBmb3Ig4oCYZWRpdGFibGUt ZmllbGTigJkgd2lkZ2V0cy4gIFRoaXMgdHlwZSBvZgp3aWRnZXRzIGFsbG93IHRoZSB1c2VyIHRv IGVkaXQgdGhlbSB2aWEgdGhlIHVzdWFsIGVkaXRpbmcgY29tbWFuZHMgaW4KRW1hY3MuICBUaGV5 IGNhbiBhbHNvIGJlIGVkaXRlZCBwcm9ncmFtbWF0aWNhbGx5LiAgKkltcG9ydGFudDoqIFlvdQpf bXVzdF8gY2FsbCDigJh3aWRnZXQtc2V0dXDigJkgYWZ0ZXIgbW9kaWZ5aW5nIHRoZSB2YWx1ZSBv ZiBhIHdpZGdldCBiZWZvcmUKdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlZGl0IHRoZSB3aWRnZXQg YWdhaW4uICBJdCBpcyBlbm91Z2ggdG8gY2FsbArigJh3aWRnZXQtc2V0dXDigJkgb25jZSBpZiB5 b3UgbW9kaWZ5IG11bHRpcGxlIHdpZGdldHMuICBUaGlzIGlzIGN1cnJlbnRseQpvbmx5IG5lY2Vz c2FyeSBpZiB0aGUgd2lkZ2V0IGNvbnRhaW5zIGFuIGVkaXRpbmcgZmllbGQsIGJ1dCBtYXkgYmUK bmVjZXNzYXJ5IGZvciBvdGhlciB3aWRnZXRzIGluIHRoZSBmdXR1cmUuCgogICBJZiB5b3VyIGFw cGxpY2F0aW9uIG5lZWRzIHRvIGFzc29jaWF0ZSBzb21lIGluZm9ybWF0aW9uIHdpdGggdGhlCndp ZGdldCBvYmplY3RzLCBmb3IgZXhhbXBsZSBhIHJlZmVyZW5jZSB0byB0aGUgaXRlbSBiZWluZyBl ZGl0ZWQsIGl0IGNhbgpiZSBkb25lIHdpdGggdGhlIOKAmHdpZGdldC1wdXTigJkgYW5kIOKAmHdp ZGdldC1nZXTigJkgZnVuY3Rpb25zLiAgVGhlIHByb3BlcnR5Cm5hbWVzLCBhcyBzaG93biwgYXJl IGtleXdvcmRzLCBzbyB0aGV5IG11c3QgYmVnaW4gd2l0aCBhIOKAmDrigJkuCgo1IFNldHRpbmcg VXAgdGhlIEJ1ZmZlcgoqKioqKioqKioqKioqKioqKioqKioqKgoKVG8gc2hvdyB0aGUgd2lkZ2V0 cyBpbiBhIGJ1ZmZlciwgeW91IGhhdmUgdG8gY3JlYXRlIHRoZW0uICBXaWRnZXQKY3JlYXRpb24g aXMgYWN0dWFsbHkgYSB0d28tc3RlcCBwcm9jZXNzOiBjb252ZXJzaW9uIGFuZCBjcmVhdGlvbiBw ZXIgc2UuCldpdGggc2ltcGxlIHByb2plY3RzLCB1c3VhbGx5IHRoZSBjb252ZXJzaW9uIHN0ZXAg aXNu4oCZdCByZWFsbHkKaW1wb3J0YW50LCBhbmQgeW91IG9ubHkgY2FyZSBhYm91dCB3aWRnZXQg Y3JlYXRpb24sIHNvIGZlZWwgZnJlZSB0byBza2lwCnRoZSBjb252ZXJzaW9uIGRlc2NyaXB0aW9u IHVudGlsIHlvdSByZWFsbHkgbmVlZCB0byBrbm93IGl0LgoKICAgV2lkZ2V0IGNvbnZlcnNpb24g aXMgdGhlIHByb2Nlc3MgdGhhdCBpbnZvbHZlcyB0YWtpbmcgYSB3aWRnZXQKc3BlY2lmaWNhdGlv biBhbmQgdHJhbnNmb3JtaW5nIGl0IGludG8gYSDigJx3aWRnZXTigJ0gb2JqZWN0LCBzdWl0YWJs ZSB0byBiZQpjcmVhdGVkLCBxdWVyaWVkIGFuZCBtYW5pcHVsYXRlZCB3aXRoIG90aGVyIHdpZGdl dCBmdW5jdGlvbnMuICBXaWRnZXQKY3JlYXRpb24gaXMgdGhlIHByb2Nlc3MgdGhhdCB0YWtlcyBh IHdpZGdldCBvYmplY3QgYW5kIGFjdHVhbGx5IGluc2VydHMKaXQgaW4gdGhlIGJ1ZmZlci4KCiAg IFRoZSBzaW1wbGVzdCBmdW5jdGlvbiB0byBjcmVhdGUgYSB3aWRnZXQgaXMg4oCYd2lkZ2V0LWNy ZWF0ZeKAmSwgd2hpY2gKZ2V0cyBhIHdpZGdldCBzcGVjaWZpY2F0aW9uIGFuZCByZXR1cm5zIGEg d2lkZ2V0IG9iamVjdC4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LWNyZWF0ZSB0eXBlIFsga2V5d29y ZCBhcmd1bWVudCBdLi4uIGFyZ3MKICAgICBDcmVhdGUgYW5kIHJldHVybiBhIHdpZGdldCBvZiB0 eXBlIFRZUEUsIGNvbnZlcnRpbmcgaXQuCgogICAgIFRZUEUgaXMgYSBzeW1ib2wgdGhhdCBzcGVj aWZpZXMgYSB3aWRnZXQgdHlwZS4gIEtFWVdPUkQgbWF5IGJlIG9uZQogICAgIG9mIHRoZSBwcm9w ZXJ0aWVzIHN1cHBvcnRlZCBieSB0aGUgd2lkZ2V0IHR5cGUsIGFuZCBBUkdVTUVOVAogICAgIHNw ZWNpZnkgdGhlIHZhbHVlIGZvciB0aGF0IHByb3BlcnR5LiAgVGhlc2Uga2V5d29yZCBhcmd1bWVu dHMgY2FuCiAgICAgYmUgdXNlZCB0byBvdmVyd3JpdGUgdGhlIGtleXdvcmQgYXJndW1lbnRzIHRo YXQgYXJlIHBhcnQgb2YgVFlQRSBieQogICAgIGRlZmF1bHQsIGFzIHdlbGwgYXMgdG8gcHJvdmlk ZSBvdGhlciBwcm9wZXJ0aWVzIG5vdCBwcmVzZW50IGluIFRZUEUKICAgICBieSBkZWZhdWx0LiAg QVJHUyBob2xkcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciB0aGUgY3JlYXRpb24gb2YKICAg ICBUWVBFIGFuZCBlYWNoIHdpZGdldCB0eXBlIGlzIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB0 aGF0CiAgICAgaW5mb3JtYXRpb24gaW4gYSBzcGVjaWZpYyB3YXkuCgogICAgIFRoZSBzeW50YXgg Zm9yIHRoZSBUWVBFIGFyZ3VtZW50IGlzIGRlc2NyaWJlZCBpbiAqbm90ZSBXaWRnZXQKICAgICBH YWxsZXJ5OjosIGFuZCBpbiBtb3JlIGRldGFpbCBpbiBldmVyeSB3aWRnZXQgd2hlcmUgaXTigJlz IHJlbGV2YW50LgoKICAgVGhlcmUgYXJlIG90aGVyIGZ1bmN0aW9ucyBmb3IgY3JlYXRpbmcgd2lk Z2V0cywgdXNlZnVsIHdoZW4geW91IHdvcmsKd2l0aCBjb21wb3NpdGUgd2lkZ2V0cy4gIFRoYXQg aXMsIHdpZGdldHMgdGhhdCBhcmUgcGFydCBvZiBvdGhlcgp3aWRnZXRzLgoKIC0tIEZ1bmN0aW9u OiB3aWRnZXQtY3JlYXRlLWNoaWxkLWFuZC1jb252ZXJ0IHBhcmVudCB0eXBlICZyZXN0IGFyZ3MK ICAgICBDcmVhdGUgYSB3aWRnZXQgb2YgdHlwZSBUWVBFIGFzIGEgY2hpbGQgb2YgUEFSRU5ULgoK ICAgICBCZWZvcmUgY3JlYXRpbmcgaXQsIGNvbnZlcnRzIFRZUEUgdXNpbmcgdGhlIGtleXdvcmQg YXJndW1lbnRzCiAgICAgcHJvdmlkZWQgaW4gQVJHUy4gIEFkZHMgdGhlIOKAmDppbmRlbnTigJkg cHJvcGVydHksIHVubGVzcyBpdCBpcwogICAgIGFscmVhZHkgcHJlc2VudCwgYW5kIHNldHMgaXQg dG8gdGhlIHN1bSBvZiB0aGUgdmFsdWVzIG9mOiDigJg6aW5kZW504oCZCiAgICAgYW5kIOKAmDpv ZmZzZXTigJkgZnJvbSBQQVJFTlQgYW5kIOKAmDpleHRyYS1vZmZzZXTigJkgZnJvbSBUWVBFLgoK ICAgICBSZXR1cm5zIGEgd2lkZ2V0IG9iamVjdCwgd2l0aCB0aGUgcHJvcGVydHkg4oCYOnBhcmVu dOKAmSBzZXQgdG8gUEFSRU5ULgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtY3JlYXRlLWNoaWxkIHBh cmVudCB0eXBlCiAgICAgQ3JlYXRlIGEgd2lkZ2V0IG9mIHR5cGUgVFlQRSBhcyBhIGNoaWxkIG9m IFBBUkVOVC4KCiAgICAgVGhpcyBmdW5jdGlvbiBpcyBsaWtlIOKAmHdpZGdldC1jcmVhdGUtY2hp bGQtYW5kLWNvbnZlcnTigJkgYnV0IGl0CiAgICAgZG9lc27igJl0IGNvbnZlcnQgVFlQRSwgc28g aXQgZXhwZWN0cyBhbiBhbHJlYWR5IGNvbnZlcnRlZCB3aWRnZXQuCgogLS0gRnVuY3Rpb246IHdp ZGdldC1jcmVhdGUtY2hpbGQtdmFsdWUgcGFyZW50IHR5cGUgdmFsdWUKICAgICBDcmVhdGUgYSB3 aWRnZXQgb2YgdHlwZSBUWVBFIGFzIGEgY2hpbGQgb2YgUEFSRU5UIHdpdGggdmFsdWUgVkFMVUUu CgogICAgIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSDigJh3aWRnZXQtY3JlYXRlLWNoaWxk4oCZLCBi dXQgaXQgbGV0cyB5b3UKICAgICBzcGVjaWZ5IGEgdmFsdWUgZm9yIHRoZSB3aWRnZXQuCgogICAg IENvbnZlcnRzIFZBTFVFIHRvIHRoZSBpbnRlcm5hbCBmb3JtYXQsIGFzIHNwZWNpZmllZCBieSBU WVBFLCBhbmQKICAgICBzdG9yZXMgaXQgaW50byB0aGUg4oCYOnZhbHVl4oCZIHByb3BlcnR5IG9m IFRZUEUuICBUaGF0IG1lYW5zLCBWQUxVRQogICAgIHNob3VsZCBiZSBpbiB0aGUgZXh0ZXJuYWwg Zm9ybWF0LCBhcyBzcGVjaWZpZWQgYnkgVFlQRS4KCiAgIEFsbCB0aGVzZSBjcmVhdGluZyBmdW5j dGlvbnMgZGVzY3JpYmVkIGhlcmUgdXNlIHRoZSBmdW5jdGlvbiBzdG9yZWQKaW4gdGhlIOKAmDpj cmVhdGXigJkgcHJvcGVydHkuICBTbywgdG8gbW9kaWZ5IHRoZSBjcmVhdGlvbiBsb2dpYyBmb3Ig YQp3aWRnZXQsIHlvdSBjYW4gcHJvdmlkZSBhIGRpZmZlcmVudCDigJg6Y3JlYXRl4oCZIGZ1bmN0 aW9uLgoKICAgV2hlbiB5b3XigJlyZSBkb25lIGNyZWF0aW5nIHdpZGdldHMgYW5kIHlvdeKAmXJl IHJlYWR5IGZvciB0aGUgdXNlciB0bwppbnRlcmFjdCB3aXRoIHRoZSBidWZmZXIsIHVzZSB0aGUg ZnVuY3Rpb24g4oCYd2lkZ2V0LXNldHVw4oCZLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtc2V0dXAK ICAgICBTZXR1cCB0aGUgY3VycmVudCBidWZmZXIsIHNvIHRoYXQgZWRpdGFibGUgd2lkZ2V0cyBj YW4gYmUgZWRpdGVkLgoKICAgICBUaGlzIHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgY3JlYXRpbmcg YWxsIHRoZSB3aWRnZXRzIGFuZCBiZWZvcmUKICAgICBhbGxvd2luZyB0aGUgdXNlciB0byBlZGl0 IHRoZW0uCgogICBBcyBtZW50aW9uZWQsIGFsbCB0aGVzZSBmdW5jdGlvbnMgcmV0dXJuIGEgd2lk Z2V0IG9iamVjdC4gIFRoYXQKd2lkZ2V0IG9iamVjdCBjYW4gYmUgcXVlcmllZCBhbmQgbWFuaXB1 bGF0ZWQgd2l0aCB3aWRnZXQgZnVuY3Rpb25zIHRoYXQKdGFrZSB3aWRnZXRzIGFzIGFyZ3VtZW50 cywgdW50aWwgZGVsZXRpbmcgaXQgd2l0aCB0aGUgd2lkZ2V0cyBmdW5jdGlvbnMKYXZhaWxhYmxl IHRvIGRlbGV0ZSB3aWRnZXRzLiAgRXZlbiBpZiB5b3UgZG9u4oCZdCBzYXZlIHRoZSByZXR1cm5l ZCB3aWRnZXQKb2JqZWN0LCB5b3Ugc3RpbGwgY2FuIGludGVyYWN0IHByb2dyYW1tYXRpY2FsbHkg d2l0aCB0aGUgd2lkZ2V0LiAgKk5vdGUKV29ya2luZyB3aXRoIFdpZGdldHM6Oi4KCiAtLSBGdW5j dGlvbjogd2lkZ2V0LWRlbGV0ZSB3aWRnZXQKICAgICBEZWxldGUgdGhlIHdpZGdldCBXSURHRVQg YW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBidWZmZXIuCgogLS0gRnVuY3Rpb246IHdpZGdldC1jaGls ZHJlbi12YWx1ZS1kZWxldGUgd2lkZ2V0CiAgICAgRGVsZXRlIGFsbCBjaGlsZHJlbiBhbmQgYnV0 dG9ucyBpbiB3aWRnZXQgV0lER0VULgoKICAgICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGRlbGV0 ZSBXSURHRVQgaXRzZWxmLCBvbmx5IHRoZSB3aWRnZXRzCiAgICAgc3RvcmVkIGluIHRoZSDigJg6 Y2hpbGRyZW7igJkgYW5kIOKAmDpidXR0b25z4oCZIHByb3BlcnRpZXMuICBJdCBhbHNvIHNldHMK ICAgICB0aG9zZSBwcm9wZXJ0aWVzIHRvIOKAmG5pbOKAmS4KCiAgIEFzIHdpdGggdGhlIGNyZWF0 aW9uIG1lY2hhbmlzbSwgdGhlIGZ1bmN0aW9uIHN0b3JlZCBpbiDigJg6ZGVsZXRl4oCZCmNvbnRy b2xzIHRoZSBkZWxldGlvbiBtZWNoYW5pc20gZm9yIGEgd2lkZ2V0LgoKICAgQWRkaXRpb25hbGx5 LCB0aGUgbGlicmFyeSBwcm92aWRlcyBhIHdheSB0byBtYWtlIGEgY29weSBvZiBhIHdpZGdldC4K CiAtLSBGdW5jdGlvbjogd2lkZ2V0LWNvcHkgd2lkZ2V0CiAgICAgTWFrZXMgYSBjb3B5IG9mIHdp ZGdldCBXSURHRVQgYW5kIHJldHVybnMgaXQuCgogICAgIEl0IHVzZXMgdGhlIGZ1bmN0aW9uIHN0 b3JlZCBpbiB0aGUg4oCYOmNvcHnigJkgcHJvcGVydHkgb2YgV0lER0VUIGFuZAogICAgIHJldHVy bnMgdGhlIHdpZGdldCB0aGF0IHRoYXQgZnVuY3Rpb24gcmV0dXJucy4KCiAgIEFzIGRpc2N1c3Nl ZCwgdGhlcmUgaXMgYSBjb252ZXJzaW9uIHN0ZXAgd2hlbiBjcmVhdGluZyBhIHdpZGdldC4gIFRv CmRvIHRoZSBjb252ZXJzaW9uIHdpdGhvdXQgYWN0dWFsbHkgY3JlYXRpbmcgdGhlIHdpZGdldCwg eW91IGNhbiB1c2UgdGhlCuKAmHdpZGdldC1jb252ZXJ04oCZIGZ1bmN0aW9uLgoKIC0tIEZ1bmN0 aW9uOiB3aWRnZXQtY29udmVydCB0eXBlICZyZXN0IGFyZ3MKICAgICBDb252ZXJ0IFRZUEUgdG8g YSB3aWRnZXQgb2JqZWN0LCB1c2luZyBrZXl3b3JkIGFyZ3VtZW50cyBBUkdTLgoKICAgICBSZXR1 cm5zIGEgd2lkZ2V0IG9iamVjdCwgc3VpdGFibGUgZm9yIGNyZWF0aW9uLiAgSXQgY2FsbHMgdGhl CiAgICAgZnVuY3Rpb24gc3RvcmVkIGluIHRoZSDigJg6Y29udmVydC13aWRnZXTigJkgcHJvcGVy dHksIGFmdGVyIHB1dHRpbmcKICAgICBpbnRvIHRoZSDigJg6YXJnc+KAmSBwcm9wZXJ0eSB0aGUg YXJndW1lbnRzIHRoYXQgdGhlIHdpZGdldCBpbiBxdWVzdGlvbgogICAgIG5lZWRzLiAgSWYgVFlQ RSBoYXMgYSDigJg6dmFsdWXigJkgcHJvcGVydHksIGVpdGhlciBvcmlnaW5hbGx5IG9yIGFmdGVy CiAgICAgZG9pbmcgdGhlIGNvbnZlcnNpb24sIHRoaXMgZnVuY3Rpb24gY29udmVydHMgdGhlIHZh bHVlIHN0b3JlZCBpbgogICAgIOKAmDp2YWx1ZeKAmSB0byB0aGUgaW50ZXJuYWwgZm9ybWF0LCBh bmQgc3RvcmVzIGl0IGludG8g4oCYOnZhbHVl4oCZLgoKICAgQXBhcnQgZnJvbSBvbmx5IGNyZWF0 aW5nIHdpZGdldHMgaW4gdGhlIGJ1ZmZlciwgSXTigJlzIHVzZWZ1bCB0byBoYXZlCnBsYWluIHRl eHQuICBGb3IgaW5zZXJ0aW5nIHRleHQsIHRoZSByZWNvbW1lbmRlZCB3YXkgaXMgd2l0aCB0aGUK 4oCYd2lkZ2V0LWluc2VydOKAmSBmdW5jdGlvbi4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LWluc2Vy dCAmcmVzdCBhcmdzCiAgICAgSW5zZXJ0IEFSR1MsIGVpdGhlciBzdHJpbmdzIG9yIGNoYXJhY3Rl cnMsIGF0IHBvaW50LgoKICAgICBVc2VzIOKAmGluc2VydOKAmSB0byBwZXJmb3JtIHRoZSBpbnNl cnRpb24sIHBhc3NpbmcgQVJHUyBhcyBhcmd1bWVudC4KICAgICAqTm90ZSAoZWxpc3ApSW5zZXJ0 aW9uOjosIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEFSR1MuCgogICAgIFRoZSByZXN1bHRp bmcgdGV4dCB3aWxsIGJlIHJlYWQtb25seS4KCjYgV29ya2luZyB3aXRoIFdpZGdldHMKKioqKioq KioqKioqKioqKioqKioqKgoKVGhpcyBzZWN0aW9uIGNvdmVycyB0aGUgbW9yZSBpbXBvcnRhbnQg ZnVuY3Rpb25zIG5lZWRlZCB0byBxdWVyeSBhbmQKbWFuaXB1bGF0ZSB3aWRnZXRzIGluIGEgZ2Vu ZXJpYyB3YXkuICBXaWRnZXRzIG1heSBoYXZlIGFkZGl0aW9uYWwKZnVuY3Rpb25zIGZvciBpbnRl cmFjdGluZyB3aXRoIHRoZW0sIHRob3NlIGFyZSBkZXNjcmliZWQgaW4gdGhlCmRlc2NyaXB0aW9u IGZvciBlYWNoIHdpZGdldC4gICpOb3RlIFdpZGdldCBHYWxsZXJ5OjouCgogLS0gRnVuY3Rpb246 IHdpZGdldHAgd2lkZ2V0CiAgICAgTm9uLeKAmG5pbOKAmSBpZiBXSURHRVQgaXMgYSB3aWRnZXQu CgogLS0gRnVuY3Rpb246IHdpZGdldC10eXBlIHdpZGdldAogICAgIFJldHVybiB0aGUgdHlwZSBv ZiB3aWRnZXQgV0lER0VULCBhIHN5bWJvbC4KCiAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwg dG8gZmluZCBvdXQgd2hpY2gga2luZCBvZiB3aWRnZXQgV0lER0VUCiAgICAgcmVwcmVzZW50cywg aS5lLiwgdGhlIG5hbWUgb2YgdGhlIHdpZGdldCB0eXBlIHdoZW4gdGhlIHdpZGdldCB3YXMKICAg ICBjcmVhdGVkLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtbWVtYmVyIHdpZGdldCBwcm9wZXJ0eQog ICAgIE5vbi3igJhuaWzigJkgaWYgd2lkZ2V0IFdJREdFVCBoYXMgYSB2YWx1ZSAoZXZlbiDigJhu aWzigJkpIGZvciBwcm9wZXJ0eQogICAgIFBST1BFUlRZLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQt Z2V0IHdpZGdldCBwcm9wZXJ0eQogICAgIEZvciB3aWRnZXQgV0lER0VULCByZXR1cm4gdGhlIHZh bHVlIG9mIHRoZSBwcm9wZXJ0eSBQUk9QRVJUWS4KCiAgICAgUFJPUEVSVFkgc2hvdWxkIGJlIGEg a2V5d29yZCwgYW5kIHRoZSB2YWx1ZSBpcyB3aGF0IHdhcyBsYXN0IHNldCBieQogICAgIOKAmHdp ZGdldC1wdXTigJkgZm9yIFBST1BFUlRZLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtcHV0IHdpZGdl dCBwcm9wZXJ0eSB2YWx1ZQogICAgIEZvciB3aWRnZXQgV0lER0VULCBzZXQgdGhlIHByb3BlcnR5 IFBST1BFUlRZIHRvIFZBTFVFLiAgUFJPUEVSVFkKICAgICBzaG91bGQgYmUgYSBrZXl3b3JkLCB3 aGlsZSBWQUxVRSBjYW4gYmUgYW55dGhpbmcuCgogLS0gRnVuY3Rpb246IHdpZGdldC1hdCAmb3B0 aW9uYWwgcG9zCiAgICAgUmV0dXJuIHRoZSB3aWRnZXQgYXQgcG9zaXRpb24gUE9TLCBvciBhdCBw b2ludCBpZiBQT1MgaXMg4oCYbmls4oCZLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtZmllbGQtYXQg cG9zCiAgICAgUmV0dXJuIHRoZSB3aWRnZXQgZmllbGQgYXQgcG9zaXRpb24gUE9TLCBvciDigJhu aWzigJkgaWYgdGhlcmUgaXMgbm9uZS4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LWFwcGx5IHdpZGdl dCBwcm9wZXJ0eSAmcmVzdCBhcmdzCiAgICAgQXBwbHkgdGhlIGZ1bmN0aW9uIHN0b3JlZCBpbiBQ Uk9QRVJUWSB0byBXSURHRVQsIHBhc3NpbmcgQVJHUyBhcwogICAgIGFkZGl0aW9uYWwgYXJndW1l bnRzIHRvIHRoZSBmdW5jdGlvbi4KCiAgICAgUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoYXQgZnVu Y3Rpb24gY2FsbC4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LXZhbHVlIHdpZGdldAogICAgIFJldHVy biB0aGUgY3VycmVudCB2YWx1ZSBjb250YWluZWQgaW4gV0lER0VULgoKICAgICBOb3RlIHRoYXQg dGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gbWlnaHQgZGlmZmVyIGZyb20KICAg ICB3aGF04oCZcyBzdG9yZWQgaW4gdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eSBvZiBXSURHRVQu ICBUaGlzIGlzIGJlY2F1c2UKICAgICB0aGlzIGZ1bmN0aW9uIGV4dHJhY3RzIHRoZSBjdXJyZW50 IHZhbHVlIG9mIFdJREdFVCBmcm9tIHRoZSBidWZmZXIsCiAgICAgdGFraW5nIGVkaXRpb25zIGlu dG8gYWNjb3VudC4KCiAgICAgVGhlIHZhbHVlIHJldHVybmVkIGlzIGluIHRoZSBleHRlcm5hbCBm b3JtYXQsIGFmdGVyIGdldHRpbmcgaXQgd2l0aAogICAgIHRoZSDigJg6dmFsdWUtZ2V04oCZIGZ1 bmN0aW9uLgoKICAgICBJdCBpcyBhbiBlcnJvciB0byBjYWxsIHRoaXMgZnVuY3Rpb24gb24gYW4g dW5pbml0aWFsaXplZCB3aWRnZXQuCgogLS0gRnVuY3Rpb246IHdpZGdldC12YWx1ZS1zZXQgd2lk Z2V0IHZhbHVlCiAgICAgU2V0IHRoZSB2YWx1ZSBjb250YWluZWQgaW4gV0lER0VUIHRvIFZBTFVF LgoKICAgICBDb252ZXJ0cyBWQUxVRSB0byB0aGUgaW50ZXJuYWwgZm9ybWF0LCBhbmQgdGhlbiBz ZXRzIGl0IGJ5IGFwcGx5aW5nCiAgICAgdGhlIOKAmDp2YWx1ZS1zZXTigJkgZnVuY3Rpb24uCgog ICAgIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIGFuIGludmFsaWQg VkFMVUUsIHRoYXQKICAgICBpcywgYSB2YWx1ZSB0aGF0IFdJREdFVCBjYW5ub3QgcmVwcmVzZW50 LgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtZGVmYXVsdC1nZXQgd2lkZ2V0CiAgICAgUmV0dXJuIHRo ZSBkZWZhdWx0IGV4dGVybmFsIHZhbHVlIG9mIHdpZGdldCBXSURHRVQuCgogICAgIFRoZSBkZWZh dWx0IHZhbHVlIGlzIHRoZSBvbmUgc3RvcmVkIGluIOKAmDp2YWx1ZeKAmSBvciB0aGUgcmVzdWx0 IG9mCiAgICAgYXBwbHlpbmcgdGhlIOKAmDpkZWZhdWx0LWdldOKAmSBmdW5jdGlvbiB0byB0aGUg YXJndW1lbnRzIG9mIFdJREdFVCwgYXMKICAgICBzdG9yZWQgaW4g4oCYOmFyZ3PigJkuICBBIHZh bHVlIG9mIOKAmG5pbOKAmSBpcyBpZ25vcmVkIGJ5IGRlZmF1bHQsIHNvIGluCiAgICAgb3JkZXIg Zm9yIGEgd2lkZ2V0IHRvIHJlc3BlY3Qg4oCYbmls4oCZIGFzIGEgdmFsdWUsIGl0IGhhcyB0byBv dmVycmlkZQogICAgIHRoZSDigJg6ZGVmYXVsdC1nZXTigJkgZnVuY3Rpb24uCgogLS0gRnVuY3Rp b246IHdpZGdldC10eXBlLWRlZmF1bHQtZ2V0IHdpZGdldAogICAgIENvbnZlcnQgdGhlIOKAmDp0 eXBl4oCZIGF0dHJpYnV0ZSBpbiBXSURHRVQgYW5kIHJldHVybiBpdHMgZGVmYXVsdAogICAgIHZh bHVlLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtY2hpbGQtdmFsdWUtZ2V0IHdpZGdldAogICAgIFJl dHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IG1lbWJlciBvZiDigJg6Y2hpbGRyZW7igJkgaW4g V0lER0VULgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtY2hpbGQtdmFsdWUtaW5saW5lIHdpZGdldAog ICAgIFJldHVybiB0aGUgaW5saW5lIHZhbHVlIG9mIHRoZSBmaXJzdCBtZW1iZXIgb2Yg4oCYOmNo aWxkcmVu4oCZIGluCiAgICAgV0lER0VULgoKICAgICBUaGUgaW5saW5lIHZhbHVlIGlzIHdoYXRl dmVyIHRoZSBmdW5jdGlvbiBzdG9yZWQgaW4g4oCYOnZhbHVlLWlubGluZeKAmQogICAgIHJldHVy bnMuCgogLS0gRnVuY3Rpb246IHdpZGdldC10eXBlLXZhbHVlLWNyZWF0ZSB3aWRnZXQKICAgICBD cmVhdGUgYSBjaGlsZCB3aWRnZXQgZm9yIFdJREdFVCwgb2YgdHlwZSBzdG9yZWQgaW4g4oCYOnR5 cGXigJkuCgogICAgIENyZWF0ZXMgdGhlIGNoaWxkIHdpZGdldCB0YWtpbmcgdGhlIHZhbHVlIGZy b20gdGhlIOKAmDp2YWx1ZeKAmQogICAgIHByb3BlcnR5IGFuZCBzdG9yZXMgdGhlIG5ld2x5IGNy ZWF0ZWQgd2lkZ2V0IGluIHRoZSDigJg6Y2hpbGRyZW7igJkKICAgICBwcm9wZXJ0eSBvZiBXSURH RVQuCgogICAgIFRoZSB2YWx1ZSBzdG9yZWQgaW4g4oCYOnR5cGXigJkgc2hvdWxkIGJlIGFuIHVu Y29udmVydGVkIHdpZGdldCB0eXBlLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtdmFsdWUtY29udmVy dC13aWRnZXQgd2lkZ2V0CiAgICAgSW5pdGlhbGl6ZXMgdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0 eSBvZiBXSURHRVQgZnJvbSDigJg6YXJnc+KAmS4KCiAgICAgU2V0cyDigJg6YXJnc+KAmSB0byDi gJhuaWzigJkgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIHdpZGdldCBXSURHRVQuCgogLS0gRnVu Y3Rpb246IHdpZGdldC12YWx1ZS12YWx1ZS1nZXQgd2lkZ2V0CiAgICAgUmV0dXJuIHRoZSB2YWx1 ZSBzdG9yZWQgaW4g4oCYOnZhbHVl4oCZIGZvciB3aWRnZXQgV0lER0VULgoKICAgICBUaGlzIGlz IGRpZmZlcmVudCB0byBnZXR0aW5nIHRoZSBjdXJyZW50IHZhbHVlIGZvciBXSURHRVQgd2l0aAog ICAgIOKAmHdpZGdldC12YWx1ZeKAmSwgc2luY2UgdGhhdCBmdW5jdGlvbiBleHRyYWN0cyB0aGUg dmFsdWUgZnJvbSB0aGUKICAgICBidWZmZXIuCgogLS0gRnVuY3Rpb246IHdpZGdldC1hcHBseS1h Y3Rpb24gd2lkZ2V0ICZvcHRpb25hbCBldmVudAogICAgIEFwcGx5IHRoZSBmdW5jdGlvbiBzdG9y ZWQgaW4g4oCYOmFjdGlvbuKAmSB0byBXSURHRVQsIGluIHJlc3BvbnNlIHRvCiAgICAgRVZFTlQu CgogICAgIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIGFuIGluYWN0 aXZlIHdpZGdldC4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LXBhcmVudC1hY3Rpb24gd2lkZ2V0ICZv cHRpb25hbCBldmVudAogICAgIFRlbGwg4oCYOnBhcmVudOKAmSBvZiBXSURHRVQgdG8gaGFuZGxl IEVWRU5ULgoKICAgICBPcHRpb25hbCBFVkVOVCBpcyB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQg dGhlIGFjdGlvbi4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LWNoaWxkLXZhbGlkYXRlIHdpZGdldAog ICAgIENoZWNrIHRoYXQgdGhlIGZpcnN0IG1lbWJlciBvZiDigJg6Y2hpbGRyZW7igJkgaW4gV0lE R0VUIGlzIHZhbGlkLgoKICAgICBUbyBiZSB2YWxpZCBtZWFucyB0aGF0IHRoZSB3aWRnZXQgdmFs dWUgcGFzc2VzIHRoZSBjaGVja3MgdGhhdCB0aGUKICAgICBmdW5jdGlvbiBzdG9yZWQgaW4g4oCY OnZhbGlkYXRl4oCZIG1ha2VzLgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQtY2hpbGRyZW4tdmFsaWRh dGUgd2lkZ2V0CiAgICAgQ2hlY2sgdGhhdCBhbGwg4oCYOmNoaWxkcmVu4oCZIGluIFdJREdFVCBh cmUgdmFsaWQuCgogICAgIFJldHVybnMg4oCYbmls4oCZIG9uIHN1Y2Nlc3MsIG9yIHRoZSBmaXJz dCBjaGlsZCB0aGF0IGlzbuKAmXQgdmFsaWQuCgogLS0gRnVuY3Rpb246IHdpZGdldC10eXBlLW1h dGNoIHdpZGdldCB2YWx1ZQogICAgIFJldHVybiBub24t4oCYbmls4oCZIGlmIFZBTFVFIG1hdGNo ZXMgdGhlIHZhbHVlIGZvciB0aGUg4oCYOnR5cGXigJkgd2lkZ2V0LgoKICAgICBBcyB3aXRoIHRo ZSBvdGhlciB0eXBlIGZ1bmN0aW9ucywgdGhlIHdpZGdldCBzdG9yZWQgaW4g4oCYOnR5cGXigJkK ICAgICBzaG91bGQgYmUgYW4gdW5jb252ZXJ0ZWQgd2lkZ2V0LgoKIC0tIEZ1bmN0aW9uOiB3aWRn ZXQtdHlwZXMtY29weSB3aWRnZXQKICAgICBDb3B5IHRoZSDigJg6YXJnc+KAmSB2YWx1ZSBpbiBX SURHRVQgYW5kIHN0b3JlIHRoZW0gaW4g4oCYOmFyZ3PigJkuCgogICAgIE1ha2VzIHRoZSBjb3Bp ZXMgYnkgY2FsbGluZyDigJh3aWRnZXQtY29weeKAmSBvbiBlYWNoIGVsZW1lbnQgcHJlc2VudAog ICAgIGluIOKAmDphcmdz4oCZLiAgUmV0dXJucyB0aGUgbW9kaWZpZWQgd2lkZ2V0IFdJREdFVC4K CiAtLSBGdW5jdGlvbjogd2lkZ2V0LXR5cGVzLWNvbnZlcnQtd2lkZ2V0IHdpZGdldAogICAgIENv bnZlcnQgdGhlIOKAmDphcmdz4oCZIHZhbHVlIGluIFdJREdFVCBhbmQgc3RvcmUgdGhlbSBpbiDi gJhhcmdz4oCZLgoKICAgICBSZXR1cm5zIHRoZSBtb2RpZmllZCB3aWRnZXQgV0lER0VULgoKNyBX aWRnZXRzIGFuZCB0aGUgQnVmZmVyCioqKioqKioqKioqKioqKioqKioqKioqKgoKVGhpcyBjaGFw dGVyIGRlc2NyaWJlcyBjb21tYW5kcyB0aGF0IGFyZSBzcGVjaWZpYyB0byBidWZmZXJzIHRoYXQK Y29udGFpbiB3aWRnZXRzLgoKIC0tIENvbnN0OiB3aWRnZXQta2V5bWFwCiAgICAgS2V5bWFwIGNv bnRhaW5pbmcgdXNlZnVsIGJpbmRpbmdzIGZvciBidWZmZXJzIGNvbnRhaW5pbmcgd2lkZ2V0cy4K CiAgICAgQmluZHMgPFRBQj4gYW5kIOKAmEMtPFRBQj7igJkgdG8g4oCYd2lkZ2V0LWZvcndhcmTi gJkgYW5kCiAgICAg4oCYd2lkZ2V0LWJhY2t3YXJk4oCZLCByZXNwZWN0aXZlbHkuICBJdCBhbHNv IGJpbmRzIDxSRVQ+IHRvCiAgICAg4oCYd2lkZ2V0LWJ1dHRvbi1wcmVzc+KAmSBhbmQg4oCYZG93 bi1tb3VzZS0x4oCZIGFuZCDigJhkb3duLW1vdXNlLTLigJkgdG8KICAgICDigJh3aWRnZXQtYnV0 dG9uLWNsaWNr4oCZLgoKICAgVGhlcmXigJlzIGFsc28gYSBrZXltYXAgZm9yIGV2ZW50cyB0aGF0 IHRoZSB3aWRnZXQgbGlicmFyeSBkb2VzbuKAmXQgbmVlZAp0byBoYW5kbGUuCgogLS0gVmFyaWFi bGU6IHdpZGdldC1nbG9iYWwtbWFwCiAgICAgS2V5bWFwIHVzZWQgYnkg4oCYd2lkZ2V0LWJ1dHRv bi1wcmVzc+KAmSBhbmQg4oCYd2lkZ2V0LWJ1dHRvbi1jbGlja+KAmSB3aGVuCiAgICAgbm90IG9u IGEgYnV0dG9uLiAgQnkgZGVmYXVsdCB0aGlzIGlzIOKAmGdsb2JhbC1tYXDigJkuCgogICBJbiBh ZGRpdGlvbiB0byB0aGVzZSB0d28ga2V5bWFwcywgZWFjaCB3aWRnZXQgbWlnaHQgZGVmaW5lIGEg a2V5bWFwCm9mIGl0cyBvd24sIGFjdGl2ZSB3aGVuIGV2ZW50cyBoYXBwZW4gYXQgdGhhdCB3aWRn ZXQuCgogICBUaGUgZm9sbG93aW5nIG5hdmlnYXRpb24gY29tbWFuZHMgYXJlIGF2YWlsYWJsZToK CuKAmDxUQUI+4oCZCiAgICAgIC0tIENvbW1hbmQ6IHdpZGdldC1mb3J3YXJkICZvcHRpb25hbCBj b3VudAogICAgICAgICAgTW92ZSBwb2ludCBDT1VOVCBidXR0b25zIG9yIGVkaXRpbmcgZmllbGRz IGZvcndhcmQuCuKAmE0tPFRBQj7igJkK4oCYUy08VEFCPuKAmQogICAgICAtLSBDb21tYW5kOiB3 aWRnZXQtYmFja3dhcmQgJm9wdGlvbmFsIGNvdW50CiAgICAgICAgICBNb3ZlIHBvaW50IENPVU5U IGJ1dHRvbnMgb3IgZWRpdGluZyBmaWVsZHMgYmFja3dhcmQuCgogICBXaGVuIGVkaXRpbmcgYW4g 4oCYZWRpdGFibGUtZmllbGTigJkgd2lkZ2V0LCB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGFyZQph dmFpbGFibGU6CgrigJg8Qy1lPuKAmQogICAgICAtLSBDb21tYW5kOiB3aWRnZXQtZW5kLW9mLWxp bmUKICAgICAgICAgIE1vdmUgcG9pbnQgdG8gdGhlIGVuZCBvZiBmaWVsZCBvciBlbmQgb2YgbGlu ZSwgd2hpY2hldmVyIGlzCiAgICAgICAgICBmaXJzdC4KCuKAmEMta+KAmQogICAgICAtLSBDb21t YW5kOiB3aWRnZXQta2lsbC1saW5lCiAgICAgICAgICBLaWxsIHRvIGVuZCBvZiBmaWVsZCBvciBl bmQgb2YgbGluZSwgd2hpY2hldmVyIGlzIGZpcnN0LgoK4oCYTS1UQULigJkKICAgICAgLS0gQ29t bWFuZDogd2lkZ2V0LWNvbXBsZXRlCiAgICAgICAgICBDb21wbGV0ZSB0aGUgY29udGVudCBvZiB0 aGUgZWRpdGFibGUgZmllbGQgYXQgcG9pbnQuCgrigJhDLW3igJkKICAgICAgLS0gQ29tbWFuZDog d2lkZ2V0LWZpZWxkLWFjdGl2YXRlCiAgICAgICAgICBJbnZva2UgdGhlIGVkaXRhYmxlIGZpZWxk IGF0IHBvaW50LgoKICAgVGhlIGZvbGxvd2luZyB0d28gYXJlIGNvbW1hbmRzIHRoYXQgY2FuIGV4 ZWN1dGUgd2lkZ2V0IGFjdGlvbnMuCuKAmDxSRVQ+4oCZCiAgICAgIC0tIENvbW1hbmQ6IHdpZGdl dC1idXR0b24tcHJlc3MgUE9TICZvcHRpb25hbCBFVkVOVAogICAgICAgICAgSW52b2tlIHRoZSBi dXR0b24gYXQgUE9TLCBkZWZhdWx0aW5nIHRvIHBvaW50LgoKICAgICAgICAgIEludm9jYXRpb24g bWVhbnMgdG8gcnVuIHRoZSBmdW5jdGlvbiBzdG9yZWQgaW4gdGhlIOKAmDphY3Rpb27igJkKICAg ICAgICAgIHByb3BlcnR5LgoKICAgICAgICAgIElmIHBvaW50IGlzIG5vdCBsb2NhdGVkIG9uIGEg YnV0dG9uLCBpbnZva2UgdGhlIGJpbmRpbmcgaW4KICAgICAgICAgIOKAmHdpZGdldC1nbG9iYWwt bWFw4oCZIChieSBkZWZhdWx0IHRoZSBnbG9iYWwgbWFwKS4KCuKAmG1vdXNlLTLigJkKICAgICAg LS0gQ29tbWFuZDogd2lkZ2V0LWJ1dHRvbi1jbGljayBFVkVOVAogICAgICAgICAgSW52b2tlIHRo ZSBidXR0b24gYXQgdGhlIGxvY2F0aW9uIG9mIHRoZSBtb3VzZSBwb2ludGVyLgoKICAgICAgICAg IElmIHRoZSBtb3VzZSBwb2ludGVyIGlzIGxvY2F0ZWQgaW4gYW4gZWRpdGFibGUgdGV4dCBmaWVs ZCwKICAgICAgICAgIGludm9rZSB0aGUgYmluZGluZyBpbiDigJh3aWRnZXQtZ2xvYmFsLW1hcOKA mSAoYnkgZGVmYXVsdCB0aGUKICAgICAgICAgIGdsb2JhbCBtYXApLgoKICAgICAgICAgIEluIGNh c2UgdGhlIG1vdXNlLWNsaWNrIGlzIG9uIGEgd2lkZ2V0LCBjYWxscyB0aGUgZnVuY3Rpb24KICAg ICAgICAgIHN0b3JlZCBpbiB0aGUg4oCYOm1vdXNlLWRvd24tYWN0aW9u4oCZIHByb3BlcnR5LgoK OCBXaWRnZXQgR2FsbGVyeQoqKioqKioqKioqKioqKioqCgpBbGwgd2lkZ2V0cyBjYW4gYmUgY3Jl YXRlZCBmcm9tIGEgdHlwZSBzcGVjaWZpY2F0aW9uLiAgVGhlIGdlbmVyYWwKc3ludGF4IG9mIGEg dHlwZSBzcGVjaWZpY2F0aW9uIGlzOgoKICAgICBOQU1FIDo6PSAoTkFNRSBbS0VZV09SRCBBUkdV TUVOVF0uLi4gQVJHUykKICAgICAgICAgIHwgICBOQU1FCgogICBXaGVyZSBOQU1FIGlzIGEgd2lk Z2V0IG5hbWUsIGFzIGRlZmluZWQgd2l0aCDigJhkZWZpbmUtd2lkZ2V04oCZLCBLRVlXT1JECmlz IHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgYW5kIEFSR1VNRU5UIGlzIHRoZSB2YWx1ZSBmb3IgdGhh dCBwcm9wZXJ0eSwKYW5kIEFSR1MgYXJlIGludGVycHJldGVkIGluIGEgd2lkZ2V0IHNwZWNpZmlj IHdheS4gICpOb3RlIERlZmluaW5nIE5ldwpXaWRnZXRzOjouCgogICBUaGUgbW9zdCBiYXNpYyB3 aWRnZXQgaW4gdGhlIFdpZGdldCBMaWJyYXJ5IGlzIHRoZSDigJxkZWZhdWx04oCdIHdpZGdldC4K SXQgcHJvdmlkZXMgdGhlIGJhc2ljIGJlaGF2aW9yIGZvciBhbGwgb3RoZXIgd2lkZ2V0cywgYW5k IGFsbCBpdHMKcHJvcGVydGllcyBhcmUgcHJlc2VudCBieSBkZWZhdWx0IGluIGRlcml2ZWQgd2lk Z2V0cy4gIFlvdeKAmXJlIHNlbGRvbSAoaWYKZXZlcikgZ29pbmcgdG8gZWZmZWN0aXZlbHkgY3Jl YXRlIGEgZGVmYXVsdCB3aWRnZXQsIGJ1dCBoZXJlIHdlIGRlc2NyaWJlCml0cyBwcm9wZXJ0aWVz IGFuZCBiZWhhdmlvciwgc28gdGhhdCB3ZSBjYW4gZGVzY3JpYmUgb3RoZXIgd2lkZ2V0cyBvbmx5 CmJ5IG1lbnRpb25pbmcgdGhlIHByb3BlcnRpZXMgYW5kIGJlaGF2aW9yIHRob3NlIG90aGVyIHdp ZGdldHMKc3BlY2lhbGl6ZS4KCiAtLSBXaWRnZXQ6IGRlZmF1bHQKICAgICBXaWRnZXQgdXNlZCBh cyBhIGJhc2UgZm9yIG90aGVyIHdpZGdldHMuCgogICAgIEl0IHByb3ZpZGVzIG1vc3Qgb2YgdGhl IGZ1bmN0aW9uYWxpdHkgdGhhdCBpcyByZWZlcnJlZCB0byBhcyDigJxieQogICAgIGRlZmF1bHTi gJ0gaW4gdGhpcyB0ZXh0LiAgSWYgeW91IHdhbnQgdG8gZGVmaW5lIGEgbmV3IHdpZGdldCBmcm9t CiAgICAgc2NyYXRjaCwgdXNlIHRoZSDigJhkZWZhdWx04oCZIHdpZGdldCBhcyBpdHMgYmFzZS4K CiAgIFRoZSBmb2xsb3dpbmcga2V5d29yZCBhcmd1bWVudHMgYXBwbHkgdG8gYWxsIHdpZGdldHM6 CgrigJg6Y3JlYXRl4oCZCiAgICAgRnVuY3Rpb24gdG8gY3JlYXRlIGEgd2lkZ2V0IGZyb20gc2Ny YXRjaC4KCiAgICAgVGhlIGZ1bmN0aW9uIHRha2VzIG9uZSBhcmd1bWVudCwgYSB3aWRnZXQgdHlw ZSwgYW5kIGNyZWF0ZXMgYQogICAgIHdpZGdldCBvZiB0aGF0IHR5cGUsIGluc2VydHMgaXQgaW4g dGhlIGJ1ZmZlciwgYW5kIHJldHVybnMgYSB3aWRnZXQKICAgICBvYmplY3QuCgogICAgIEJ5IGRl ZmF1bHQsIGl0IGluc2VydHMgdGhlIHdpZGdldCBhdCBwb2ludCwgdXNpbmcgdGhlIGZvcm1hdAog ICAgIHByb3ZpZGVkIGluIHRoZSDigJg6Zm9ybWF04oCZIHByb3BlcnR5LgoK4oCYOmRlbGV0ZeKA mQogICAgIEZ1bmN0aW9uIHRvIGRlbGV0ZSBhIHdpZGdldC4KCiAgICAgVGhlIGZ1bmN0aW9uIHNo b3VsZCB0YWtlIG9uZSBhcmd1bWVudCwgYSB3aWRnZXQsIGFuZCBzaG91bGQgcmVtb3ZlCiAgICAg YWxsIHRyYWNlcyBvZiB0aGUgd2lkZ2V0IGZyb20gdGhlIGJ1ZmZlci4KCiAgICAgVGhlIGRlZmF1 bHQgdmFsdWUgaXM6CgogICAgICAtLSBGdW5jdGlvbjogd2lkZ2V0LWRlZmF1bHQtZGVsZXRlIHdp ZGdldAogICAgICAgICAgUmVtb3ZlIFdJREdFVCBmcm9tIHRoZSBidWZmZXIuICBEZWxldGUgYWxs IOKAmDpjaGlsZHJlbuKAmSBhbmQKICAgICAgICAgIOKAmDpidXR0b25z4oCZIGluIFdJREdFVC4K CiAgICAgSW4gbW9zdCBjYXNlcyB5b3Ugc2hvdWxkIG5vdCBjaGFuZ2UgdGhpcyB2YWx1ZSwgYnV0 IGluc3RlYWQgdXNlCiAgICAg4oCYOnZhbHVlLWRlbGV0ZeKAmSB0byBtYWtlIGFueSBhZGRpdGlv bmFsIGNsZWFudXAuCgrigJg6dmFsdWXigJkKICAgICBUaGUgaW5pdGlhbCB2YWx1ZSBmb3Igd2lk Z2V0cyBvZiB0aGlzIHR5cGUuCgogICAgIFR5cGljYWxseSwgYSB3aWRnZXQgcmVwcmVzZW50cyBp dHMgdmFsdWUgaW4gdHdvIGZvcm1hdHM6IGV4dGVybmFsCiAgICAgYW5kIGludGVybmFsLiAgVGhl IGV4dGVybmFsIGZvcm1hdCBpcyB0aGUgdmFsdWUgYXMgdGhlIHJlc3Qgb2YKICAgICBFbWFjcyBz ZWVzIGl0LCBhbmQgdGhlIGludGVybmFsIGZvcm1hdCBpcyBhIHJlcHJlc2VudGF0aW9uIHRoYXQg dGhlCiAgICAgd2lkZ2V0IGRlZmluZXMgYW5kIHVzZXMgaW4gYSB3aWRnZXQgc3BlY2lmaWMgd2F5 LgoKICAgICBCb3RoIGZvcm1hdHMgbWlnaHQgYmUgdGhlIHNhbWUgZm9yIGNlcnRhaW4gd2lkZ2V0 cyBhbmQgbWlnaHQgZGlmZmVyCiAgICAgZm9yIG90aGVycywgYW5kIHRoZXJlIGlzIG5vIGd1YXJh bnRlZSBhYm91dCB3aGljaCBmb3JtYXQgdGhlIHZhbHVlCiAgICAgc3RvcmVkIGluIHRoZSDigJg6 dmFsdWXigJkgcHJvcGVydHkgaGFzLiAgSG93ZXZlciwgd2hlbiBjcmVhdGluZyBhCiAgICAgd2lk Z2V0IG9yIGRlZmluaW5nIGEgbmV3IG9uZSAoKm5vdGUgRGVmaW5pbmcgTmV3IFdpZGdldHM6Oiks IHRoZQogICAgIOKAmDp2YWx1ZeKAmSBzaG91bGQgYmUgaW4gdGhlIGV4dGVybmFsIGZvcm1hdC4K CuKAmDp2YWx1ZS10by1pbnRlcm5hbOKAmQogICAgIEZ1bmN0aW9uIHRvIGNvbnZlcnQgdGhlIHZh bHVlIHRvIHRoZSBpbnRlcm5hbCBmb3JtYXQuCgogICAgIFRoZSBmdW5jdGlvbiB0YWtlcyB0d28g YXJndW1lbnRzLCBhIHdpZGdldCBhbmQgYW4gZXh0ZXJuYWwgdmFsdWUsCiAgICAgYW5kIHJldHVy bnMgdGhlIGludGVybmFsIHZhbHVlLiAgVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiB0aGUKICAg ICBwcmVzZW50IOKAmDp2YWx1ZeKAmSB3aGVuIHRoZSB3aWRnZXQgaXMgY3JlYXRlZCwgYW5kIG9u IGFueSB2YWx1ZSBzZXQKICAgICBsYXRlciB3aXRoIOKAmHdpZGdldC12YWx1ZS1zZXTigJkuCgri gJg6dmFsdWUtdG8tZXh0ZXJuYWzigJkKICAgICBGdW5jdGlvbiB0byBjb252ZXJ0IHRoZSB2YWx1 ZSB0byB0aGUgZXh0ZXJuYWwgZm9ybWF0LgoKICAgICBUaGUgZnVuY3Rpb24gdGFrZXMgdHdvIGFy Z3VtZW50cywgYSB3aWRnZXQgYW5kIGFuIGludGVybmFsIHZhbHVlLAogICAgIGFuZCByZXR1cm5z IHRoZSB2YWx1ZSBpbiB0aGUgZXh0ZXJuYWwgZm9ybWF0LgoK4oCYOnZhbHVlLWNyZWF0ZeKAmQog ICAgIEZ1bmN0aW9uIHRvIGV4cGFuZCB0aGUg4oCYJXbigJkgZXNjYXBlIGluIHRoZSBmb3JtYXQg c3RyaW5nLgoKICAgICBJdCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSB3aWRnZXQgYXMgaXRzIGFy Z3VtZW50IGFuZCBzaG91bGQgaW5zZXJ0CiAgICAgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgd2lk Z2V04oCZcyB2YWx1ZSBpbiB0aGUgYnVmZmVyLgoK4oCYOnZhbHVlLWRlbGV0ZeKAmQogICAgIEEg ZnVuY3Rpb24gdGhhdCBzaG91bGQgcmVtb3ZlIHRoZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgd2lk Z2V04oCZcwogICAgIHZhbHVlIGZyb20gdGhlIGJ1ZmZlci4KCiAgICAgSXQgd2lsbCBiZSBjYWxs ZWQgd2l0aCB0aGUgd2lkZ2V0IGFzIGl0cyBhcmd1bWVudC4gIEl0IGRvZXNu4oCZdCBoYXZlCiAg ICAgdG8gcmVtb3ZlIHRoZSB0ZXh0LCBidXQgaXQgc2hvdWxkIHJlbGVhc2UgbWFya2VycyBhbmQg ZGVsZXRlIG5lc3RlZAogICAgIHdpZGdldHMgaWYgdGhlc2UgYXJlIG5vdCBsaXN0ZWQgaW4g4oCY OmNoaWxkcmVu4oCZIG9yIOKAmDpidXR0b25z4oCZLgoKICAgICBCeSBkZWZhdWx0LCBpdOKAmXMg YSBuby1vcC4KCuKAmDp2YWx1ZS1nZXTigJkKICAgICBGdW5jdGlvbiB0byBleHRyYWN0IHRoZSB2 YWx1ZSBvZiBhIHdpZGdldCwgYXMgaXQgaXMgZGlzcGxheWVkIGluCiAgICAgdGhlIGJ1ZmZlci4K CuKAmDp2YWx1ZS1zZXTigJkKICAgICBGdW5jdGlvbiB0aGF0IHRha2VzIGEgd2lkZ2V0IGFuZCBh IHZhbHVlIGFzIGFyZ3VtZW50cywgYW5kCiAgICAgcmVjcmVhdGVzIGl0LgoKICAgICBUaGUgdmFs dWUgbXVzdCBhbHJlYWR5IGJlIGluIHRoZSBpbnRlcm5hbCBmb3JtYXQgZm9yIHdpZGdldC4gIEJ5 CiAgICAgZGVmYXVsdCwgaXQgZGVsZXRlcyB0aGUgd2lkZ2V0IHdpdGggdGhlIOKAmDpkZWxldGXi gJkgZnVuY3Rpb24gYW5kCiAgICAgY3JlYXRlcyBpdCBhZ2FpbiB3aXRoIHRoZSDigJg6Y3JlYXRl 4oCZIGZ1bmN0aW9uLgoK4oCYOnZhbHVlLWlubGluZeKAmQogICAgIEZ1bmN0aW9uIHRoYXQgdGFr ZXMgYSB3aWRnZXQgYW5kIHJldHVybnMgaXRzIHZhbHVlLCBpbmxpbmVkLgoKICAgICBJbmxpbmVk IG1lYW5zIHRoYXQgaWYgdGhlIHdpZGdldCBpcyBub3QgaW5saW5lIChpLmUuLCBpdHMg4oCYOmlu bGluZeKAmQogICAgIHByb3BlcnR5IGlzIOKAmG5pbOKAmSksIHRoZSByZXR1cm4gdmFsdWUgaXMg d3JhcHBlZCBpbiBhIGxpc3QuCgrigJg6ZGVmYXVsdC1nZXTigJkKICAgICBGdW5jdGlvbiB0aGF0 IHRha2VzIGEgd2lkZ2V0IGFuZCByZXR1cm5zIGl0cyBkZWZhdWx0IHZhbHVlLgoKICAgICBCeSBk ZWZhdWx0LCBpdCBqdXN0IHJldHVybnMgdGhlIHZhbHVlIHN0b3JlZCBpbiDigJg6dmFsdWXigJku CgrigJg6Zm9ybWF04oCZCiAgICAgVGhpcyBzdHJpbmcgd2lsbCBiZSBpbnNlcnRlZCBpbiB0aGUg YnVmZmVyIHdoZW4geW91IGNyZWF0ZSBhCiAgICAgd2lkZ2V0LiAgVGhlIGZvbGxvd2luZyDigJgl 4oCZIGVzY2FwZXMgYXJlIGF2YWlsYWJsZToKCiAgICAg4oCYJVvigJkKICAgICDigJglXeKAmQog ICAgICAgICAgVGhlIHRleHQgaW5zaWRlIHdpbGwgYmUgbWFya2VkIGFzIGEgYnV0dG9uLgoKICAg ICAgICAgIEJ5IGRlZmF1bHQsIHRoZSB0ZXh0IHdpbGwgYmUgc2hvd24gaW4g4oCYd2lkZ2V0LWJ1 dHRvbi1mYWNl4oCZLAogICAgICAgICAgYW5kIHN1cnJvdW5kZWQgYnkgYnJhY2tldHMuCgogICAg IOKAmCV74oCZCiAgICAg4oCYJX3igJkKICAgICAgICAgIFRoZSB0ZXh0IGluc2lkZSB3aWxsIGJl IGRpc3BsYXllZCB3aXRoIHRoZSBmYWNlIHNwZWNpZmllZCBieQogICAgICAgICAg4oCYOnNhbXBs ZS1mYWNl4oCZLgoKICAgICDigJglduKAmQogICAgICAgICAgVGhpcyB3aWxsIGJlIHJlcGxhY2Vk IHdpdGggdGhlIGJ1ZmZlciByZXByZXNlbnRhdGlvbiBvZiB0aGUKICAgICAgICAgIHdpZGdldOKA mXMgdmFsdWUuICBXaGF0IHRoaXMgaXMgZGVwZW5kcyBvbiB0aGUgd2lkZ2V0IHR5cGUuCgogICAg IOKAmCVk4oCZCiAgICAgICAgICBJbnNlcnQgdGhlIHN0cmluZyBzcGVjaWZpZWQgYnkg4oCYOmRv Y+KAmSBoZXJlLgoKICAgICDigJglaOKAmQogICAgICAgICAgTGlrZSDigJglZOKAmSwgd2l0aCB0 aGUgZm9sbG93aW5nIG1vZGlmaWNhdGlvbnM6IElmIHRoZQogICAgICAgICAgZG9jdW1lbnRhdGlv biBzdHJpbmcgaXMgbW9yZSB0aGFuIG9uZSBsaW5lLCBpdCB3aWxsIGFkZCBhCiAgICAgICAgICBi dXR0b24gd2hpY2ggd2lsbCB0b2dnbGUgYmV0d2VlbiBzaG93aW5nIG9ubHkgdGhlIGZpcnN0IGxp bmUsCiAgICAgICAgICBhbmQgc2hvd2luZyB0aGUgZnVsbCB0ZXh0LiAgRnVydGhlcm1vcmUsIGlm IHRoZXJlIGlzIG5vIOKAmDpkb2PigJkKICAgICAgICAgIHByb3BlcnR5IGluIHRoZSB3aWRnZXQs IGl0IHdpbGwgaW5zdGVhZCBleGFtaW5lIHRoZQogICAgICAgICAg4oCYOmRvY3VtZW50YXRpb24t cHJvcGVydHnigJkgcHJvcGVydHkuICBJZiBpdCBpcyBhIGxhbWJkYQogICAgICAgICAgZXhwcmVz c2lvbiwgaXQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgd2lkZ2V04oCZcyB2YWx1ZSBhcyBhbgog ICAgICAgICAgYXJndW1lbnQsIGFuZCB0aGUgcmVzdWx0IHdpbGwgYmUgdXNlZCBhcyB0aGUgZG9j dW1lbnRhdGlvbgogICAgICAgICAgdGV4dC4KCiAgICAg4oCYJXTigJkKICAgICAgICAgIEluc2Vy dCB0aGUgc3RyaW5nIHNwZWNpZmllZCBieSDigJg6dGFn4oCZIGhlcmUsIG9yIHRoZSDigJhwcmlu Y+KAmQogICAgICAgICAgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlIGlmIHRoZXJlIGlzIG5v IHRhZy4KCiAgICAg4oCYJSXigJkKICAgICAgICAgIEluc2VydCBhIGxpdGVyYWwg4oCYJeKAmS4K CuKAmDpidXR0b24tZmFjZeKAmQogICAgIEZhY2UgdXNlZCB0byBoaWdobGlnaHQgdGV4dCBpbnNp ZGUgJVsgJV0gaW4gdGhlIGZvcm1hdC4KCuKAmDpidXR0b24tcHJlZml44oCZCuKAmDpidXR0b24t c3VmZml44oCZCiAgICAgU3RyaW5ncyB1c2VkIGFzIHByZWZpeCBhbmQgc3VmZml4IGZvciB3aWRn ZXRzIHRoYXQgYXJlIGJ1dHRvbnMuCgogICAgIEJ5IGRlZmF1bHQsIHRoZSB2YWx1ZXMgYXJlIOKA mHdpZGdldC1idXR0b24tcHJlZml44oCZIGFuZAogICAgIOKAmHdpZGdldC1idXR0b24tc3VmZml4 4oCZLgoKICAgICBUZXh0IGFyb3VuZCAlWyAlXSBpbiB0aGUgZm9ybWF0LgoKICAgICBUaGVzZSBj YW4gYmUKICAgICBfbmlsXwogICAgICAgICAgTm8gdGV4dCBpcyBpbnNlcnRlZC4KCiAgICAgX2Eg c3RyaW5nXwogICAgICAgICAgVGhlIHN0cmluZyBpcyBpbnNlcnRlZCBsaXRlcmFsbHkuCgogICAg IF9hIHN5bWJvbF8KICAgICAgICAgIFRoZSB2YWx1ZSBvZiB0aGUgc3ltYm9sIGlzIGV4cGFuZGVk IGFjY29yZGluZyB0byB0aGlzIHRhYmxlLgoK4oCYOmRvY+KAmQogICAgIFRoZSBzdHJpbmcgaW5z ZXJ0ZWQgYnkgdGhlIOKAmCVk4oCZIGVzY2FwZSBpbiB0aGUgZm9ybWF0IHN0cmluZy4KCuKAmDp0 YWfigJkKICAgICBUaGUgc3RyaW5nIGluc2VydGVkIGJ5IHRoZSDigJgldOKAmSBlc2NhcGUgaW4g dGhlIGZvcm1hdCBzdHJpbmcuCgrigJg6dGFnLWdseXBo4oCZCiAgICAgTmFtZSBvZiBpbWFnZSB0 byB1c2UgaW5zdGVhZCBvZiB0aGUgc3RyaW5nIHNwZWNpZmllZCBieSDigJg6dGFn4oCZIG9uCiAg ICAgRW1hY3NlbiB0aGF0IHN1cHBvcnRzIGl0LgoK4oCYOmhlbHAtZWNob+KAmQogICAgIFNwZWNp ZmllcyBob3cgdG8gZGlzcGxheSBhIG1lc3NhZ2Ugd2hlbmV2ZXIgeW91IG1vdmUgdG8gdGhlIHdp ZGdldAogICAgIHdpdGggZWl0aGVyIOKAmHdpZGdldC1mb3J3YXJk4oCZIG9yIOKAmHdpZGdldC1i YWNrd2FyZOKAmSBvciBtb3ZlIHRoZSBtb3VzZQogICAgIG92ZXIgaXQgKHVzaW5nIHRoZSBzdGFu ZGFyZCDigJhoZWxwLWVjaG/igJkgbWVjaGFuaXNtKS4KCiAgICAgVGhlIHZhbHVlIGlzIGVpdGhl ciBhIHN0cmluZyB0byBkaXNwbGF5LCBvciBhIGZ1bmN0aW9uIG9mIG9uZQogICAgIGFyZ3VtZW50 LCB0aGUgd2lkZ2V0LiAgSWYgYSBmdW5jdGlvbiwgaXQgc2hvdWxkIHJldHVybiBhIHN0cmluZyB0 bwogICAgIGRpc3BsYXksIG9yIGEgZm9ybSB0aGF0IGV2YWx1YXRlcyB0byBzdWNoIGEgc3RyaW5n LgoK4oCYOmZvbGxvdy1saW5r4oCZCiAgICAgU3BlY2lmaWVzIGhvdyB0byBpbnRlcnByZXQgYSA8 bW91c2UtMT4gY2xpY2sgb24gdGhlIHdpZGdldC4gICpOb3RlCiAgICAgRGVmaW5pbmcgQ2xpY2th YmxlIFRleHQ6IChlbGlzcClDbGlja2FibGUgVGV4dC4KCuKAmDppbmRlbnTigJkKICAgICBBbiBp bnRlZ2VyIGluZGljYXRpbmcgdGhlIGFic29sdXRlIG51bWJlciBvZiBzcGFjZXMgdG8gaW5kZW50 CiAgICAgY2hpbGRyZW4gb2YgdGhpcyB3aWRnZXQuICBJdHMgdmFsdWUgbWlnaHQgYmUg4oCYbmls 4oCZIHRvbywgd2hpY2gKICAgICBjb3JyZXNwb25kcyB0byBhIHZhbHVlIG9mIDAuCgogICAgIFRo ZSBkZWZhdWx0IOKAmDpjcmVhdGXigJkgZnVuY3Rpb25zIGFuZCB0aGUgZnVuY3Rpb25zIHRoYXQg Y3JlYXRlIHRoZQogICAgIHZhbHVlIHBlciBzZSB1c2UgdGhpcyBwcm9wZXJ0eSBhcyBhIHJ1ZGlt ZW50YXJ5IGxheW91dCBtZWNoYW5pc20KICAgICBmb3IgdGhlIHdpZGdldHMuCgrigJg6b2Zmc2V0 4oCZCiAgICAgQW4gaW50ZWdlciBpbmRpY2F0aW5nIGhvdyBtYW55IGV4dHJhIHNwYWNlcyB0byBh ZGQgdG8gdGhlIHdpZGdldOKAmXMKICAgICBncmFuZGNoaWxkcmVuIGNvbXBhcmVkIHRvIHRoaXMg d2lkZ2V0LgoK4oCYOmV4dHJhLW9mZnNldOKAmQogICAgIEFuIGludGVnZXIgaW5kaWNhdGluZyBo b3cgbWFueSBleHRyYSBzcGFjZXMgdG8gYWRkIHRvIHRoZSB3aWRnZXTigJlzCiAgICAgY2hpbGRy ZW4gY29tcGFyZWQgdG8gdGhpcyB3aWRnZXQuCgrigJg6bWVudS10YWfigJkKICAgICBUYWcgdXNl ZCBpbiB0aGUgbWVudSB3aGVuIHRoZSB3aWRnZXQgaXMgdXNlZCBhcyBhbiBvcHRpb24gaW4gYQog ICAgIOKAmG1lbnUtY2hvaWNl4oCZIHdpZGdldC4KCuKAmDptZW51LXRhZy1nZXTigJkKICAgICBG dW5jdGlvbiB0aGF0IHRha2VzIGEgd2lkZ2V0IGFuZCByZXR1cm5zIHRoZSB0YWcgd2hlbiB0aGUg d2lkZ2V0IGlzCiAgICAgdXNlZCBhcyBhbiBvcHRpb24gaW4gYSDigJhtZW51LWNob2ljZeKAmSB3 aWRnZXQuCgogICAgIEJ5IGRlZmF1bHQsIHRoZSB0YWcgdXNlZCB3aWxsIGJlIGVpdGhlciB0aGUg 4oCYOm1lbnUtdGFn4oCZIG9yIOKAmDp0YWfigJkKICAgICBwcm9wZXJ0eSBpZiBwcmVzZW50LCBv ciB0aGUg4oCYcHJpbmPigJkgcmVwcmVzZW50YXRpb24gb2YgdGhlIOKAmDp2YWx1ZeKAmQogICAg IHByb3BlcnR5IGlmIG5vdC4KCuKAmDptYXRjaOKAmQogICAgIFNob3VsZCBiZSBhIGZ1bmN0aW9u IGNhbGxlZCB3aXRoIHR3byBhcmd1bWVudHMsIHRoZSB3aWRnZXQgYW5kIGFuCiAgICAgZXh0ZXJu YWwgdmFsdWUsIGFuZCBzaG91bGQgcmV0dXJuIG5vbi3igJhuaWzigJkgaWYgdGhlIHdpZGdldCBj YW4KICAgICByZXByZXNlbnQgdGhlIHNwZWNpZmllZCB2YWx1ZS4KCuKAmDp2YWxpZGF0ZeKAmQog ICAgIEEgZnVuY3Rpb24gd2hpY2ggdGFrZXMgYSB3aWRnZXQgYXMgYW4gYXJndW1lbnQsIGFuZCBy ZXR1cm5zIOKAmG5pbOKAmQogICAgIGlmIHRoZSB3aWRnZXTigJlzIGN1cnJlbnQgdmFsdWUgaXMg dmFsaWQgZm9yIHRoZSB3aWRnZXQuCgogICAgIE90aGVyd2lzZSwgaXQgc2hvdWxkIHJldHVybiB0 aGUgd2lkZ2V0IGNvbnRhaW5pbmcgdGhlIGludmFsaWQgZGF0YSwKICAgICBhbmQgc2V0IHRoYXQg d2lkZ2V04oCZcyDigJg6ZXJyb3LigJkgcHJvcGVydHkgdG8gYSBzdHJpbmcgZXhwbGFpbmluZyB0 aGUKICAgICBlcnJvci4KCiAgICAgQnkgZGVmYXVsdCwgaXQgYWx3YXlzIHJldHVybnMg4oCYbmls 4oCZLgoK4oCYOnRhYi1vcmRlcuKAmQogICAgIFNwZWNpZnkgdGhlIG9yZGVyIGluIHdoaWNoIHdp ZGdldHMgYXJlIHRyYXZlcnNlZCB3aXRoCiAgICAg4oCYd2lkZ2V0LWZvcndhcmTigJkgb3Ig4oCY d2lkZ2V0LWJhY2t3YXJk4oCZLiAgVGhpcyBpcyBvbmx5IHBhcnRpYWxseQogICAgIGltcGxlbWVu dGVkLgogICAgICAgYS4gV2lkZ2V0cyB3aXRoIHRhYmJpbmcgb3JkZXIg4oCYLTHigJkgYXJlIGln bm9yZWQuCgogICAgICAgYi4gKFVuaW1wbGVtZW50ZWQpIFdoZW4gb24gYSB3aWRnZXQgd2l0aCB0 YWJiaW5nIG9yZGVyIE4sIGdvIHRvCiAgICAgICAgICB0aGUgbmV4dCB3aWRnZXQgaW4gdGhlIGJ1 ZmZlciB3aXRoIHRhYmJpbmcgb3JkZXIgTisxIG9yIOKAmG5pbOKAmSwKICAgICAgICAgIHdoaWNo ZXZlciBjb21lcyBmaXJzdC4KCiAgICAgICBjLiBXaGVuIG9uIGEgd2lkZ2V0IHdpdGggbm8gdGFi YmluZyBvcmRlciBzcGVjaWZpZWQsIGdvIHRvIHRoZQogICAgICAgICAgbmV4dCB3aWRnZXQgaW4g dGhlIGJ1ZmZlciB3aXRoIGEgcG9zaXRpdmUgdGFiYmluZyBvcmRlciwgb3IKICAgICAgICAgIOKA mG5pbOKAmQoK4oCYOnBhcmVudOKAmQogICAgIFRoZSBwYXJlbnQgb2YgYSBuZXN0ZWQgd2lkZ2V0 IChlLmcuLCBhIOKAmG1lbnUtY2hvaWNl4oCZIGl0ZW0gb3IgYW4KICAgICBlbGVtZW50IG9mIGEg 4oCYZWRpdGFibGUtbGlzdOKAmSB3aWRnZXQpLgoK4oCYOnNpYmxpbmctYXJnc+KAmQogICAgIFRo aXMga2V5d29yZCBpcyBvbmx5IHVzZWQgZm9yIG1lbWJlcnMgb2YgYSDigJhyYWRpby1idXR0b24t Y2hvaWNl4oCZIG9yCiAgICAg4oCYY2hlY2tsaXN04oCZLiAgVGhlIHZhbHVlIHNob3VsZCBiZSBh IGxpc3Qgb2YgZXh0cmEga2V5d29yZAogICAgIGFyZ3VtZW50cywgd2hpY2ggd2lsbCBiZSB1c2Vk IHdoZW4gY3JlYXRpbmcgdGhlIOKAmHJhZGlvLWJ1dHRvbuKAmSBvcgogICAgIOKAmGNoZWNrYm94 4oCZIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGl0ZW0uCgrigJg6Y29tcGxldGlvbnMtZnVuY3Rpb27i gJkKICAgICBGdW5jdGlvbiB0aGF0IHRha2VzIGEgd2lkZ2V0IGFuZCByZXR1cm5zIGNvbXBsZXRp b24gZGF0YSBmb3IgdGhhdAogICAgIHdpZGdldCwgbGlrZSDigJhjb21wbGV0aW9uLWF0LXBvaW50 LWZ1bmN0aW9uc+KAmSB3b3VsZC4gICpOb3RlCiAgICAgKGVsaXNwKUNvbXBsZXRpb246Oi4gIEl0 4oCZcyB1c2VkIGJ5IOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdldHMgdG8KICAgICBwcm92aWRl IGNvbXBsZXRpb25zLgoKICAgICBCeSBkZWZhdWx0LCBpdCBsb29rcyBpbnRvIHRoZSBwcm9wZXJ0 eSDigJg6Y29tcGxldGlvbnPigJksIHdoaWNoIHNob3VsZAogICAgIGJlIGEgY29tcGxldGlvbiB0 YWJsZS4gIElmIOKAmDpjb21wbGV0aW9uc+KAmSBpcyDigJhuaWzigJksIHRoZW4gaXQgY2FsbHMK ICAgICB0aGUgZnVuY3Rpb24gc3RvcmVkIGVpdGhlciBpbiB0aGUg4oCYOmNvbXBsZXRl4oCZIG9y CiAgICAg4oCYOmNvbXBsZXRlLWZ1bmN0aW9u4oCZIHByb3BlcnR5LgoK4oCYOmZvcm1hdC1oYW5k bGVy4oCZCiAgICAgRnVuY3Rpb24gdG8gaGFuZGxlIHVua25vd24g4oCYJeKAmSBlc2NhcGVzIGlu IHRoZSBmb3JtYXQgc3RyaW5nLgoKICAgICBJdCB0YWtlcyBhIHdpZGdldCBhbmQgdGhlIGNoYXJh Y3RlciB0aGF0IGZvbGxvd3MgdGhlIOKAmCXigJkgYXMKICAgICBhcmd1bWVudHMuICBZb3UgY2Fu IHNldCB0aGlzIHRvIGFsbG93IHlvdXIgd2lkZ2V0IHRvIGhhbmRsZQogICAgIG5vbi1zdGFuZGFy ZCBlc2NhcGVzIGluIHlvdXIgb3duIHNwZWNpYWxpemVkIHdpZGdldHMuCgogICAgIFlvdSBzaG91 bGQgZW5kIHVwIGNhbGxpbmcg4oCYd2lkZ2V0LWRlZmF1bHQtZm9ybWF0LWhhbmRsZXLigJkgdG8g aGFuZGxlCiAgICAgdW5rbm93biBlc2NhcGUgc2VxdWVuY2VzLCB3aGljaCB3aWxsIGhhbmRsZSB0 aGUg4oCYJWjigJkgYW5kIGFueSBmdXR1cmUKICAgICBlc2NhcGUgc2VxdWVuY2VzLCBhcyB3ZWxs IGFzIGdpdmUgYW4gZXJyb3IgZm9yIHVua25vd24gZXNjYXBlcy4KCuKAmDpidXR0b24tZmFjZS1n ZXTigJkKICAgICBGdW5jdGlvbiB0byByZXR1cm4gdGhlIGZhY2UgdXNlZCB0byBmb250aWZ5IGEg d2lkZ2V0IGJ1dHRvbi4KCiAgICAgVGFrZXMgYSB3aWRnZXQgYW5kIHJldHVybnMgYW4gYXBwcm9w cmlhdGUgZmFjZSBmb3IgdGhlIHdpZGdldC4gIEJ5CiAgICAgZGVmYXVsdCwgaXQgZWl0aGVyIHJl dHVybnMgdGhlIGZhY2Ugc3RvcmVkIGluIHRoZSDigJg6YnV0dG9uLWZhY2XigJkKICAgICBwcm9w ZXJ0eSwgb3IgY2FsbHMgdGhlIOKAmDpidXR0b24tZmFjZS1nZXTigJkgZnVuY3Rpb24gZnJvbSB0 aGUgcGFyZW50CiAgICAgb2YgdGhlIHdpZGdldCwgaWYgaXQgaGFzIG9uZS4KCuKAmDptb3VzZS1m YWNlLWdldOKAmQogICAgIEZ1bmN0aW9uIHRvIHJldHVybiB0aGUgZmFjZSB1c2VkIHRvIGZvbnRp ZnkgYSB3aWRnZXQgd2hlbiB0aGUgbW91c2UKICAgICBwb2ludGVyIGhvdmVycyBvdmVyIGl0LgoK ICAgICBUYWtlcyBhIHdpZGdldCBhbmQgcmV0dXJucyBhbiBhcHByb3ByaWF0ZSBmYWNlLiAgQnkg ZGVmYXVsdCwgaXQKICAgICBlaXRoZXIgcmV0dXJucyB0aGUgZmFjZSBzdG9yZWQgaW4gdGhlIOKA mDptb3VzZS1mYWNl4oCZIHByb3BlcnR5LCBvcgogICAgIGNhbGxzIHRoZSDigJg6YnV0dG9uLWZh Y2UtZ2V04oCZIGZ1bmN0aW9uIGZyb20gdGhlIHBhcmVudCBvZiB0aGUKICAgICB3aWRnZXQsIGlm IGl0IGhhcyBvbmUuCgrigJg6Y29weeKAmQogICAgIEZ1bmN0aW9uIHRvIGRlZXAgY29weSBhIHdp ZGdldCB0eXBlLgoKICAgICBJdCB0YWtlcyBhIHNoYWxsb3cgY29weSBvZiB0aGUgd2lkZ2V0IHR5 cGUgYXMgYW4gYXJndW1lbnQgKG1hZGUgYnkKICAgICDigJhjb3B5LXNlcXVlbmNl4oCZKSwgYW5k IHJldHVybnMgYSBkZWVwIGNvcHkuICBUaGUgcHVycG9zZSBvZiB0aGlzIGlzCiAgICAgdG8gYXZv aWQgaGF2aW5nIGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgY29tYmluZWQgd2lkZ2V0cyBzaGFyZQog ICAgIG5lc3RlZCBhdHRyaWJ1dGVzLgoKICAgICBJdHMgdmFsdWUgYnkgZGVmYXVsdCBpcyDigJhp ZGVudGl0eeKAmS4KCuKAmDphY3RpdmXigJkKICAgICBGdW5jdGlvbiB0aGF0IHRha2VzIGEgd2lk Z2V0IGFuZCByZXR1cm5zIOKAmHTigJkgaWYgaXQgaXMgYWN0aXZlLgoKICAgICBBIHdpZGdldCBt aWdodCBiZSBlZmZlY3RpdmVseSBhbHdheXMgYWN0aXZlLCBpZiBpdHMKICAgICDigJg6YWx3YXlz LWFjdGl2ZeKAmSBwcm9wZXJ0eSBpcyDigJh04oCZLgoKICAgICBXaWRnZXRzIGNhbiBiZSBpbiB0 d28gc3RhdGVzOiBhY3RpdmUsIHdoaWNoIG1lYW5zIHRoZXkgYXJlCiAgICAgbW9kaWZpYWJsZSBi eSB0aGUgdXNlciwgb3IgaW5hY3RpdmUsIHdoaWNoIG1lYW5zIHRoZXkgY2Fubm90IGJlCiAgICAg bW9kaWZpZWQgYnkgdGhlIHVzZXIuICBZb3UgY2FuIHF1ZXJ5IG9yIHNldCB0aGUgc3RhdGUgd2l0 aCB0aGUKICAgICBmb2xsb3dpbmcgY29kZToKCiAgICAgICAgICA7OyBFeGFtaW5lIGlmIFdJREdF VCBpcyBhY3RpdmUgb3Igbm90LgogICAgICAgICAgKGlmICh3aWRnZXQtYXBwbHkgV0lER0VUIDph Y3RpdmUpCiAgICAgICAgICAgICAgKG1lc3NhZ2UgIldpZGdldCBpcyBhY3RpdmUuIikKICAgICAg ICAgICAgKG1lc3NhZ2UgIldpZGdldCBpcyBpbmFjdGl2ZS4iKQoKICAgICAgICAgIDs7IE1ha2Ug V0lER0VUIGluYWN0aXZlLgogICAgICAgICAgKHdpZGdldC1hcHBseSBXSURHRVQgOmRlYWN0aXZh dGUpCgogICAgICAgICAgOzsgTWFrZSBXSURHRVQgYWN0aXZlLgogICAgICAgICAgKHdpZGdldC1h cHBseSBXSURHRVQgOmFjdGl2YXRlKQoKICAgICBBIHdpZGdldCBpcyBpbmFjdGl2ZSBpZiBpdCwg b3IgYW55IG9mIGl0cyBhbmNlc3RvcnMgKGZvdW5kIGJ5CiAgICAgZm9sbG93aW5nIHRoZSDigJg6 cGFyZW504oCZIGxpbmspLCBoYXZlIGJlZW4gZGVhY3RpdmF0ZWQuICBUbyBtYWtlIHN1cmUKICAg ICBhIHdpZGdldCBpcyByZWFsbHkgYWN0aXZlLCB5b3UgbXVzdCB0aGVyZWZvcmUgYWN0aXZhdGUg Ym90aCBpdCBhbmQKICAgICBhbGwgaXRzIGFuY2VzdG9ycy4KCiAgICAgICAgICAod2hpbGUgd2lk Z2V0CiAgICAgICAgICAgICh3aWRnZXQtYXBwbHkgd2lkZ2V0IDphY3RpdmF0ZSkKICAgICAgICAg ICAgKHNldHEgd2lkZ2V0ICh3aWRnZXQtZ2V0IHdpZGdldCA6cGFyZW50KSkpCgogICAgIFlvdSBj YW4gY2hlY2sgaWYgYSB3aWRnZXQgaGFzIGJlZW4gbWFkZSBpbmFjdGl2ZSBieSBleGFtaW5pbmcg dGhlCiAgICAgdmFsdWUgb2YgdGhlIOKAmDppbmFjdGl2ZeKAmSBrZXl3b3JkLiAgSWYgdGhpcyBp cyBub24t4oCYbmls4oCZLCB0aGUgd2lkZ2V0CiAgICAgaXRzZWxmIGhhcyBiZWVuIGRlYWN0aXZh dGVkLiAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB1c2luZyB0aGUKICAgICDigJg6YWN0aXZl4oCZ IGtleXdvcmQsIGluIHRoYXQgdGhlIGxhdHRlciB0ZWxscyB5b3UgaWYgdGhlIHdpZGdldCAqb3Iq CiAgICAgYW55IG9mIGl0cyBhbmNlc3RvcnMgaGF2ZSBiZWVuIGRlYWN0aXZhdGVkLiAgRG8gbm90 IGF0dGVtcHQgdG8gc2V0CiAgICAgdGhlIOKAmDppbmFjdGl2ZeKAmSBrZXl3b3JkIGRpcmVjdGx5 LiAgVXNlIHRoZSDigJg6YWN0aXZhdGXigJkKICAgICDigJg6ZGVhY3RpdmF0ZeKAmSBmdW5jdGlv bnMgaW5zdGVhZC4KCuKAmDphY3RpdmF0ZeKAmQogICAgIEZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB3 aWRnZXQgYW5kIG1ha2VzIGl0IGFjdGl2ZSBmb3IgdXNlcgogICAgIG1vZGlmaWNhdGlvbnMuCgri gJg6ZGVhY3RpdmF0ZeKAmQogICAgIEZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB3aWRnZXQgYW5kIG1h a2VzIGl0IGluYWN0aXZlIGZvciB1c2VyCiAgICAgbW9kaWZpY2F0aW9ucy4KCuKAmDphY3Rpb27i gJkKICAgICBGdW5jdGlvbiB0aGF0IHRha2VzIGEgd2lkZ2V0IGFuZCBvcHRpb25hbGx5IGFuIGV2 ZW50LCBhbmQgaGFuZGxlcyBhCiAgICAgdXNlciBpbml0aWF0ZWQgZXZlbnQuCgogICAgIEJ5IGRl ZmF1bHQsIHVzZXMgdGhlIOKAmDpub3RpZnnigJkgZnVuY3Rpb24gdG8gbm90aWZ5IHRoZSB3aWRn ZXTigJlzCiAgICAgcGFyZW50IGFib3V0IHRoZSBldmVudC4KCuKAmDptb3VzZS1kb3duLWFjdGlv buKAmQogICAgIEZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB3aWRnZXQgYW5kIG9wdGlvbmFsbHkgYW4g ZXZlbnQsIGFuZCBoYW5kbGVzIGEKICAgICBtb3VzZSBjbGljayBvbiB0aGUgd2lkZ2V0LgoKICAg ICBCeSBkZWZhdWx0LCBpdCBkb2VzIG5vdGhpbmcuCgrigJg6bm90aWZ54oCZCiAgICAgQSBmdW5j dGlvbiBjYWxsZWQgZWFjaCB0aW1lIHRoZSB3aWRnZXQgb3IgYSBuZXN0ZWQgd2lkZ2V0IGlzCiAg ICAgY2hhbmdlZC4KCiAgICAgVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHR3byBvciB0aHJl ZSBhcmd1bWVudHMuICBUaGUgZmlyc3QKICAgICBhcmd1bWVudCBpcyB0aGUgd2lkZ2V0IGl0c2Vs ZiwgdGhlIHNlY29uZCBhcmd1bWVudCBpcyB0aGUgd2lkZ2V0CiAgICAgdGhhdCB3YXMgY2hhbmdl ZCwgYW5kIHRoZSB0aGlyZCBhcmd1bWVudCBpcyB0aGUgZXZlbnQgbGVhZGluZyB0bwogICAgIHRo ZSBjaGFuZ2UsIGlmIGFueS4KCiAgICAgQnkgZGVmYXVsdCwgaXQgcGFzc2VzIHRoZSBub3RpZmlj YXRpb24gdG8gdGhlIHdpZGdldOKAmXMgcGFyZW50LgoK4oCYOnByb21wdC12YWx1ZeKAmQogICAg IEZ1bmN0aW9uIHRvIHByb21wdCBmb3IgYSB2YWx1ZSBpbiB0aGUgbWluaWJ1ZmZlci4KCiAgICAg VGhlIGZ1bmN0aW9uIHNob3VsZCB0YWtlIGZvdXIgYXJndW1lbnRzLCBhIHdpZGdldCwgYSBwcm9t cHQgKGEKICAgICBzdHJpbmcpLCBhIHZhbHVlIGFuZCBhIGJvb2xlYW4sIGFuZCBzaG91bGQgcmV0 dXJuIGEgdmFsdWUgZm9yIHRoZQogICAgIHdpZGdldCwgZW50ZXJlZCBieSB0aGUgdXNlci4KCiAg ICAgVGhlIHByb21wdCBpcyB0aGUgcHJvbXB0IHRvIHVzZS4gIFRoZSB2YWx1ZSBpcyB0aGUgZGVm YXVsdCB2YWx1ZSB0bwogICAgIHVzZSwgdW5sZXNzIHRoZSBmb3VydGhhIGFyZ3VtZW50IGlzIG5v bi3igJhuaWzigJksIGluIHdoaWNoIGNhc2UgdGhlcmUKICAgICBpcyBubyBkZWZhdWx0IHZhbHVl LgoKICAgICBUaGUgZnVuY3Rpb24gc2hvdWxkIHJlYWQgdGhlIHZhbHVlIHVzaW5nIHRoZSBtZXRo b2QgbW9zdCBuYXR1cmFsCiAgICAgZm9yIHRoaXMgd2lkZ2V0LCBhbmQgZG9lcyBub3QgaGF2ZSB0 byBjaGVjayB0aGF0IGl0IG1hdGNoZXMuCgo4LjEgQmFzaWMgVHlwZXMKPT09PT09PT09PT09PT09 Cgo4LjEuMSBUaGUg4oCYaXRlbeKAmSBXaWRnZXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN5 bnRheDoKCiAgICAgVFlQRSA6Oj0gKGl0ZW0gW0tFWVdPUkQgQVJHVU1FTlRdLi4uIFZBTFVFKQoK ICAgQSB1c2VmdWwgd2lkZ2V0IHRoYXQgaG9sZHMgYSBjb25zdGFudCB2YWx1ZSwgYW5kIGNhbiBi ZSBpbmNsdWRlZCBpbgpvdGhlciB3aWRnZXRzLiAgSXRzIHN1cGVyIGlzIHRoZSDigJhkZWZhdWx0 4oCZIHdpZGdldC4KCiAgIEFzIGNhbiBiZSBzZWVuIGluIHRoZSBzeW50YXgsIHRoZSDigJhpdGVt 4oCZIHdpZGdldCBpcyBvbmUgb2YgdGhlIHdpZGdldAp0aGF0IGhhbmRsZXMgdGhlIEFSR1MgYXJn dW1lbnQgdG8g4oCYd2lkZ2V0LWNyZWF0ZeKAmSBpbiBhIHNwZWNpZmljIHdheS4gIElmCnByZXNl bnQsIFZBTFVFIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl4oCZIHByb3BlcnR5 LiAgV2hlbgpjcmVhdGVkLCBpdCBpbnNlcnRzIHRoZSB2YWx1ZSBhcyBhIHN0cmluZyBpbiB0aGUg YnVmZmVyLgoKICAgQnkgZGVmYXVsdCwgaXQgaGFzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoK CuKAmDpjb252ZXJ0LXdpZGdldOKAmQogICAgIFRoZSBmdW5jdGlvbiB0aGF0IGFsbG93cyBpdCB0 byBoYW5kbGUgVkFMVUUuCgrigJg6dmFsdWUtY3JlYXRl4oCZCiAgICAgUHJpbnRzIHRoZSByZXBy ZXNlbnRhdGlvbiBvZiDigJg6dmFsdWXigJkgaW4gdGhlIGJ1ZmZlci4KCuKAmDp2YWx1ZS1nZXTi gJkKICAgICBSZXR1cm5zIHRoZSB2YWx1ZSBzdG9yZWQgaW4g4oCYOnZhbHVl4oCZLgoK4oCYOm1h dGNo4oCZCiAgICAgQSB2YWx1ZSBtYXRjaGVzIHRoZSDigJhpdGVt4oCZIHdpZGdldCBpZiBpdOKA mXMg4oCYZXF1YWzigJkgdG8gaXRzIOKAmDp2YWx1ZeKAmS4KCuKAmDptYXRjaC1pbmxpbmXigJkK ICAgICBJbmxpbmUgdmFsdWVzIG1hdGNoIHRoZSDigJhpdGVt4oCZIHdpZGdldCBpZiDigJg6dmFs dWXigJkgaXMgYSBzdWJsaXN0IG9mCiAgICAgdmFsdWVzLgoK4oCYOmFjdGlvbuKAmQogICAgIFRo ZSDigJhpdGVt4oCZIHdpZGdldCBub3RpZmllcyBpdHNlbGYgb2YgYW4gZXZlbnQuCgrigJg6Zm9y bWF04oCZCiAgICAgQnkgZGVmYXVsdCwgdGhlIOKAmGl0ZW3igJkgd2lkZ2V0IGluc2VydHMgaXRz IHRhZyBpbiB0aGUgYnVmZmVyLgoKOC4xLjIgVGhlIOKAmGxpbmvigJkgV2lkZ2V0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgpTeW50YXg6CgogICAgIFRZUEUgOjo9IChsaW5rIFtLRVlXT1JEIEFS R1VNRU5UXS4uLiAgWyBWQUxVRSBdKQoKICAgQSB3aWRnZXQgdG8gcmVwcmVzZW50IGFuIGVtYmVk ZGVkIGxpbmsuICBJdHMgc3VwZXIgaXMgdGhlIOKAmGl0ZW3igJkKd2lkZ2V0LgoKICAgVGhlIFZB TFVFLCBpZiBwcmVzZW50LCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIOKAmDp2YWx1ZeKAmSBw cm9wZXJ0eS4KVGhlIHZhbHVlIHNob3VsZCBiZSBhIHN0cmluZywgd2hpY2ggd2lsbCBiZSBpbnNl cnRlZCBpbiB0aGUgYnVmZmVyLgoKICAgQnkgZGVmYXVsdCwgaXQgaGFzIHRoZSBmb2xsb3dpbmcg cHJvcGVydGllczoKCuKAmDpidXR0b24tcHJlZml44oCZCiAgICAgVGhlIHZhbHVlIG9mIOKAmHdp ZGdldC1saW5rLXByZWZpeOKAmS4KCuKAmDpidXR0b24tc3VmZml44oCZCiAgICAgVGhlIHZhbHVl IG9mIOKAmHdpZGdldC1saW5rLXN1ZmZpeOKAmS4KCuKAmDprZXltYXDigJkKICAgICBBIGN1c3Rv bSBrZXltYXAgZm9yIHRoZSBsaW5rIHdpZGdldCwgc28gdGhhdCBpdCBjYW4gcmVzcG9uZCB0bwog ICAgIG1vdXNlIGNsaWNrcy4KCuKAmDpmb2xsb3ctbGlua+KAmQogICAgIFRoaXMgcHJvcGVydHkg YWxsb3dzIHRoZSBsaW5rIHRvIHJlc3BlY3QgdGhlIHZhbHVlIG9mCiAgICAg4oCYbW91c2UtMS1j bGljay1mb2xsb3dzLWxpbmvigJkuICAqTm90ZSAoZWxpc3ApQ2xpY2thYmxlIFRleHQ6Oi4KCuKA mDpmb3JtYXTigJkKICAgICBCdXR0b25pemVzIHRoZSBsaW5rLCB0byBtYWtlIGl0IGNsaWNrYWJs ZS4KCiAgICAgSWYgeW91IG92ZXJyaWRlIHRoaXMgcHJvcGVydHksIHlvdSBzaG91bGQgbWFrZSBz dXJlIHRvIHByb3ZpZGUgdGhlCiAgICAg4oCYJVvigJkgYW5kIOKAmCVd4oCZIGVzY2FwZSBzZXF1 ZW5jZXMsIHNvIHRoYXQgdGhlIGxpbmsgaXMgY2xpY2thYmxlLgoKICAgQnkgZGVmYXVsdCB0aGUg bGluayB3aWxsIGJlIHNob3duIGluIGJyYWNrZXRzLgoKOC4xLjMgVGhlIOKAmHVybC1saW5r4oCZ IFdpZGdldAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN5bnRheDoKCiAgICAgVFlQRSA6 Oj0gKHVybC1saW5rIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgVVJMKQoKICAgQSB3aWRnZXQgdG8g cmVwcmVzZW50IGEgbGluayB0byBhIHdlYiBwYWdlLiAgSXRzIHN1cGVyIGlzIHRoZSDigJhsaW5r 4oCZCndpZGdldC4KCiAgIEl0IG92ZXJyaWRlcyB0aGUg4oCYOmFjdGlvbuKAmSBwcm9wZXJ0eSB0 byBvcGVuIHVwIHRoZSBVUkwgc3BlY2lmaWVkLgoKOC4xLjQgVGhlIOKAmGluZm8tbGlua+KAmSBX aWRnZXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU3ludGF4OgoKICAgICBUWVBFIDo6 PSAoaW5mby1saW5rIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgQUREUkVTUykKCiAgIEEgd2lkZ2V0 IHRvIHJlcHJlc2VudCBhIGxpbmsgdG8gYW4gaW5mbyBmaWxlLiAgSXRzIHN1cGVyIGlzIHRoZQri gJhsaW5r4oCZIHdpZGdldC4KCiAgIEl0IG92ZXJyaWRlcyB0aGUg4oCYOmFjdGlvbuKAmSBwcm9w ZXJ0eSwgdG8gYSBmdW5jdGlvbiB0byBzdGFydCB0aGUKYnVpbHQtaW4gSW5mbyByZWFkZXIgb24g QUREUkVTUywgd2hlbiBpbnZva2VkLgoKOC4xLjUgVGhlIOKAmGZ1bmN0aW9uLWxpbmvigJkgV2lk Z2V0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTeW50YXg6CgogICAgIFRZUEUg Ojo9IChmdW5jdGlvbi1saW5rIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgRlVOQ1RJT04pCgogICBB IHdpZGdldCB0byByZXByZXNlbnQgYSBsaW5rIHRvIGFuIEVtYWNzIGZ1bmN0aW9uLiAgSXRzIHN1 cGVyIGlzIHRoZQrigJhsaW5r4oCZIHdpZGdldC4KCiAgIEl0IG92ZXJyaWRlcyB0aGUg4oCYOmFj dGlvbuKAmSBwcm9wZXJ0eSwgdG8gYSBmdW5jdGlvbiB0byBkZXNjcmliZQpGVU5DVElPTi4KCjgu MS42IFRoZSDigJh2YXJpYWJsZS1saW5r4oCZIFdpZGdldAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKU3ludGF4OgoKICAgICBUWVBFIDo6PSAodmFyaWFibGUtbGluayBbS0VZV09S RCBBUkdVTUVOVF0uLi4gIFZBUikKCiAgIEEgd2lkZ2V0IHRvIHJlcHJlc2VudCBhIGxpbmsgdG8g YW4gRW1hY3MgdmFyaWFibGUuICBJdHMgc3VwZXIgaXMgdGhlCuKAmGxpbmvigJkgd2lkZ2V0LgoK ICAgSXQgb3ZlcnJpZGVzIHRoZSDigJg6YWN0aW9u4oCZIHByb3BlcnR5LCB0byBhIGZ1bmN0aW9u IHRvIGRlc2NyaWJlIFZBUi4KCjguMS43IFRoZSDigJhmYWNlLWxpbmvigJkgV2lkZ2V0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN5bnRheDoKCiAgICAgVFlQRSA6Oj0gKGZhY2UtbGlu ayBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIEZBQ0UpCgogICBBIHdpZGdldCB0byByZXByZXNlbnQg YSBsaW5rIHRvIGFuIEVtYWNzIGZhY2UuICBJdHMgc3VwZXIgaXMgdGhlCuKAmGxpbmvigJkgd2lk Z2V0LgoKICAgSXQgb3ZlcnJpZGVzIHRoZSDigJg6YWN0aW9u4oCZIHByb3BlcnR5LCB0byBhIGZ1 bmN0aW9uIHRvIGRlc2NyaWJlIEZBQ0UuCgo4LjEuOCBUaGUg4oCYZmlsZS1saW5r4oCZIFdpZGdl dAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTeW50YXg6CgogICAgIFRZUEUgOjo9IChm aWxlLWxpbmsgW0tFWVdPUkQgQVJHVU1FTlRdLi4uICBGSUxFKQoKICAgQSB3aWRnZXQgdG8gcmVw cmVzZW50IGEgbGluayB0byBhIGZpbGUuICBJdHMgc3VwZXIgaXMgdGhlIOKAmGxpbmvigJkKd2lk Z2V0LgoKICAgSXQgb3ZlcnJpZGVzIHRoZSDigJg6YWN0aW9u4oCZIHByb3BlcnR5LCB0byBhIGZ1 bmN0aW9uIHRvIGZpbmQgdGhlIGZpbGUKRklMRS4KCjguMS45IFRoZSDigJhlbWFjcy1saWJyYXJ5 LWxpbmvigJkgV2lkZ2V0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN5 bnRheDoKCiAgICAgVFlQRSA6Oj0gKGVtYWNzLWxpYnJhcnktbGluayBbS0VZV09SRCBBUkdVTUVO VF0uLi4gIEZJTEUpCgogICBBIHdpZGdldCB0byByZXByZXNlbnQgYSBsaW5rIHRvIGFuIEVtYWNz IExpc3AgZmlsZS4gIEl0cyBzdXBlciBpcyB0aGUK4oCYbGlua+KAmSB3aWRnZXQuCgogICBJdCBv dmVycmlkZXMgdGhlIOKAmDphY3Rpb27igJkgcHJvcGVydHksIHRvIGEgZnVuY3Rpb24gdG8gZmlu ZCB0aGUgZmlsZQpGSUxFLgoKOC4xLjEwIFRoZSDigJhlbWFjcy1jb21tZW50YXJ5LWxpbmvigJkg V2lkZ2V0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTeW50YXg6 CgogICAgIFRZUEUgOjo9IChlbWFjcy1jb21tZW50YXJ5LWxpbmsgW0tFWVdPUkQgQVJHVU1FTlRd Li4uICBGSUxFKQoKICAgQSB3aWRnZXQgdG8gcmVwcmVzZW50IGEgbGluayB0byB0aGUgQ29tbWVu dCBzZWN0aW9uIG9mIGFuIEVtYWNzIExpc3AKZmlsZS4gIEl0cyBzdXBlciBpcyB0aGUg4oCYbGlu a+KAmSB3aWRnZXQuCgogICBJdCBvdmVycmlkZXMgdGhlIOKAmDphY3Rpb27igJkgcHJvcGVydHks IHRvIGEgZnVuY3Rpb24gdG8gZmluZCB0aGUgZmlsZQpGSUxFIGFuZCBwdXQgcG9pbnQgaW4gdGhl IENvbW1lbnQgc2VjdGlvbi4KCjguMS4xMSBUaGUg4oCYcHVzaC1idXR0b27igJkgV2lkZ2V0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN5bnRheDoKCiAgICAgVFlQRSA6Oj0gKHB1 c2gtYnV0dG9uIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgWyBWQUxVRSBdKQoKICAgQSB3aWRnZXQg dGhhdCBhY3RzIGFzIGEgcHVzaGFibGUgYnV0dG9uLiAgSXRzIHN1cGVyIGlzIHRoZSDigJhpdGVt 4oCZCndpZGdldC4KCiAgIFRoZSBWQUxVRSwgaWYgcHJlc2VudCwgaXMgdXNlZCB0byBpbml0aWFs aXplIHRoZSDigJg6dmFsdWXigJkgcHJvcGVydHkuClRoZSB2YWx1ZSBzaG91bGQgYmUgYSBzdHJp bmcsIHdoaWNoIHdpbGwgYmUgaW5zZXJ0ZWQgaW4gdGhlIGJ1ZmZlci4KCiAgIEJ5IGRlZmF1bHQs IGl0IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CuKAmDpidXR0b24tcHJlZml44oCZCiAg ICAgVGhlIGVtcHR5IHN0cmluZy4KCuKAmDpidXR0b24tc3VmZml44oCZCiAgICAgVGhlIGVtcHR5 IHN0cmluZy4KCuKAmDp2YWx1ZS1jcmVhdGXigJkKICAgICBJbnNlcnRzIGEgcmVwcmVzZW50YXRp b24gb2YgdGhlIOKAnG9u4oCdIGFuZCDigJxvZmbigJ0gc3RhdGVzIGZvciB0aGUgcHVzaAogICAg IGJ1dHRvbi4KCiAgICAgVGhlIHJlcHJlc2VudGF0aW9uIG1pZ2h0IGJlIGFuIGltYWdlLCBzdG9y ZWQgaW4gdGhlIOKAmDp0YWctZ2x5cGjigJkKICAgICBwcm9wZXJ0eSwgb3IgdGV4dC4gIElmIGl0 IGlzIHRleHQsIGl0IG1pZ2h0IGJlIHRoZSB2YWx1ZSBvZiB0aGUKICAgICDigJg6dGFn4oCZIHBy b3BlcnR5LCBvciB0aGUg4oCYOnZhbHVl4oCZIG9mIHRoZSB3aWRnZXQsIHN1cnJvdW5kZWQgd2l0 aAogICAgIOKAmHdpZGdldC1wdXNoLWJ1dHRvbi1wcmVmaXjigJkgYW5kIOKAmHdpZGdldC1wdXNo LWJ1dHRvbi1zdWZmaXjigJkuICAqTm90ZQogICAgIEN1c3RvbWl6YXRpb246Oi4KCuKAmDpmb3Jt YXTigJkKICAgICBCdXR0b25pemVzIHRoZSB3aWRnZXQsIHRvIG1ha2UgaXQgY2xpY2thYmxlLgoK OC4xLjEyIFRoZSDigJhlZGl0YWJsZS1maWVsZOKAmSBXaWRnZXQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKU3ludGF4OgoKICAgICBUWVBFIDo6PSAoZWRpdGFibGUtZmllbGQg W0tFWVdPUkQgQVJHVU1FTlRdLi4uIFsgVkFMVUUgXSkKCiAgIEEgd2lkZ2V0IHRoYXQgY2FuIGJl IGVkaXRlZCBieSB0aGUgdXNlci4gIEl0cyBzdXBlciBpcyB0aGUg4oCYZGVmYXVsdOKAmQp3aWRn ZXQuCgogICBUaGUgVkFMVUUsIGlmIHByZXNlbnQsIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg 4oCYOnZhbHVl4oCZIHByb3BlcnR5LgpUaGUgdmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nLCB3aGlj aCB3aWxsIGJlIGluc2VydGVkIGluIHRoZSBmaWVsZC4gIElmCm5vdCBwcmVzZW50LCDigJg6dmFs dWXigJkgaXMgdGhlIGVtcHR5IHN0cmluZy4KCiAgICpXYXJuaW5nOiogSW4gYW4g4oCYZWRpdGFi bGUtZmllbGTigJkgd2lkZ2V0LCB0aGUgZWRpdGFibGUgZmllbGQgbXVzdCBub3QKYmUgYWRqYWNl bnQgdG8gYW5vdGhlciB3aWRnZXTigJR0aGF0IHdvbuKAmXQgd29yay4gIFlvdSBtdXN0IHB1dCBz b21lIHRleHQKaW4gYmV0d2Vlbi4gIEVpdGhlciBtYWtlIHRoaXMgdGV4dCBwYXJ0IG9mIHRoZSDi gJhlZGl0YWJsZS1maWVsZOKAmSB3aWRnZXQKaXRzZWxmLCBvciBpbnNlcnQgaXQgd2l0aCDigJh3 aWRnZXQtaW5zZXJ04oCZLgoKICAgVGhpcyB3aWRnZXQgZWl0aGVyIG92ZXJyaWRlcyBvciBhZGRz IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKCuKAmDpjb252ZXJ0LXdpZGdldOKAmQogICAgIEp1 c3QgbGlrZSB0aGUg4oCYaXRlbeKAmSB3aWRnZXQsIHRoaXMgZnVuY3Rpb24gYWxsb3dzIGl0IHRv IGluaXRpYWxpemUKICAgICDigJg6dmFsdWXigJkgZnJvbSBWQUxVRS4KCuKAmDprZXltYXDigJkK ICAgICBLZXltYXAgdXNlZCBpbiB0aGUgZWRpdGFibGUgZmllbGQuCgogICAgIFRoZSBkZWZhdWx0 IHZhbHVlIGlzIOKAmHdpZGdldC1maWVsZC1rZXltYXDigJksIHdoaWNoIGFsbG93cyB0aGUgdXNl cgogICAgIHRvIHVzZSBhbGwgdGhlIG5vcm1hbCBlZGl0aW5nIGNvbW1hbmRzLCBldmVuIGlmIHRo ZSBidWZmZXLigJlzIG1ham9yCiAgICAgbW9kZSBzdXBwcmVzc2VzIHNvbWUgb2YgdGhlbS4gIFBy ZXNzaW5nIDxSRVQ+IGludm9rZXMgdGhlIGZ1bmN0aW9uCiAgICAgc3BlY2lmaWVkIGJ5IOKAmDph Y3Rpb27igJkuCgrigJg6Zm9ybWF04oCZCiAgICAgQnkgZGVmYXVsdCwgaXQgc3BlY2lmaWVzIHRv IGluc2VydCBvbmx5IHRoZSB3aWRnZXTigJlzIHZhbHVlLgoKICAgICAqV2FybmluZzoqIEluIGFu IOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdldCwgdGhlIOKAmCV24oCZIGVzY2FwZSBtdXN0IGJl CiAgICAgcHJlY2VkZWQgYnkgc29tZSBvdGhlciB0ZXh0IGluIHRoZSDigJg6Zm9ybWF04oCZIHN0 cmluZyAoaWYgc3BlY2lmaWVkKS4KCuKAmDpzaXpl4oCZCiAgICAgVGhlIHdpZHRoIG9mIHRoZSBl ZGl0YWJsZSBmaWVsZC4KCiAgICAgQnkgZGVmYXVsdCB0aGUgZmllbGQgd2lsbCByZWFjaCB0byB0 aGUgZW5kIG9mIHRoZSBsaW5lLgoK4oCYOnZhbHVlLWZhY2XigJkKICAgICBGYWNlIHVzZWQgZm9y IGhpZ2hsaWdodGluZyB0aGUgZWRpdGFibGUgZmllbGQuCgogICAgIERlZmF1bHQgaXMg4oCYd2lk Z2V0LWZpZWxkLWZhY2XigJksICpub3RlIFVzZXIgSW50ZXJmYWNlOjouCgrigJg6c2VjcmV04oCZ CiAgICAgQ2hhcmFjdGVyIHVzZWQgdG8gZGlzcGxheSB0aGUgdmFsdWUuCgogICAgIFlvdSBjYW4g c2V0IHRoaXMgdG8sIGUuZy4sIOKAmD8q4oCZIGlmIHRoZSBmaWVsZCBjb250YWlucyBhIHBhc3N3 b3JkIG9yCiAgICAgb3RoZXIgc2VjcmV0IGluZm9ybWF0aW9uLiAgQnkgZGVmYXVsdCwgdGhpcyBp cyDigJhuaWzigJksIGFuZCB0aGUgdmFsdWUKICAgICBpcyBub3Qgc2VjcmV0LgoK4oCYOnZhbGlk LXJlZ2V4cOKAmQogICAgIEJ5IGRlZmF1bHQgdGhlIOKAmDp2YWxpZGF0ZeKAmSBmdW5jdGlvbiB3 aWxsIG1hdGNoIHRoZSBjb250ZW50IG9mIHRoZQogICAgIGZpZWxkIHdpdGggdGhlIHZhbHVlIG9m IHRoaXMgYXR0cmlidXRlLgoKICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyDigJgiIuKAmSB3aGlj aCBtYXRjaGVzIGV2ZXJ5dGhpbmcuCgrigJg6dmFsaWRhdGXigJkKICAgICBSZXR1cm5zIOKAmG5p bOKAmSBpZiB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgd2lkZ2V0IG1hdGNoZXMgdGhlCiAgICAg 4oCYOnZhbGlkLXJlZ2V4cOKAmSB2YWx1ZS4KCuKAmDpwcm9tcHQtaW50ZXJuYWzigJkKICAgICBB IGZ1bmN0aW9uIHRvIHJlYWQgYSB2YWx1ZSBmb3Igd2lkZ2V0LCB1c2VkIGJ5IHRoZSDigJg6cHJv bXB0LXZhbHVl4oCZCiAgICAgZnVuY3Rpb24uCgrigJg6cHJvbXB0LWhpc3RvcnnigJkKICAgICBB IHZhcmlhYmxlIHRoYXQgaG9sZHMgdGhlIGhpc3Rvcnkgb2YgZmllbGQgbWluaWJ1ZmZlciBlZGl0 cy4KCuKAmDpwcm9tcHQtdmFsdWXigJkKICAgICBBIGZ1bmN0aW9uIHRoYXQgdXNlcyB0aGUg4oCY OnByb21wdC1pbnRlcm5hbOKAmSBmdW5jdGlvbiBhbmQgdGhlCiAgICAg4oCYOnByb21wdC1oaXN0 b3J54oCZIHZhbHVlIHRvIHByb21wdCBmb3IgYSBzdHJpbmcsIGFuZCByZXR1biB0aGUgdXNlcgog ICAgIHJlc3BvbnNlIGluIHRoZSBleHRlcm5hbCBmb3JtYXQuCgrigJg6YWN0aW9u4oCZCiAgICAg V2hlbiBpbnZva2VkLCBtb3ZlcyBwb2ludCB0byB0aGUgbmV4dCBmaWVsZC4KCuKAmDp2YWx1ZS1j cmVhdGXigJkKICAgICBGdW5jdGlvbiB0aGF0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgdGhlIHdp ZGdldCwgcmVzcGVjdGluZyBpdHMKICAgICDigJg6c2l6ZeKAmSBhbmQg4oCYOnZhbHVl4oCZLgoK 4oCYOnZhbHVlLXNldOKAmQogICAgIEZ1bmN0aW9uIHRvIHVzZSB0byBtb2RpZnkgcHJvZ3JhbWF0 aWNhbGx5IHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZQogICAgIHdpZGdldC4KCuKAmDp2YWx1ZS1k ZWxldGXigJkKICAgICBGdW5jdGlvbiB0aGF0IHJlbW92ZXMgdGhlIHdpZGdldCBzbyBpdCBjYW5u b3QgYmUgZWRpdGVkIGFueW1vcmUuCgrigJg6dmFsdWUtZ2V04oCZCiAgICAgRnVuY3Rpb24gdG8g cmV0dXJuIHRoZSBjdXJyZW50IHRleHQgaW4gdGhlIHdpZGdldC4KCiAgICAgSXQgdGFrZXMgYW4g b3B0aW9uYWwgYXJndW1lbnQsIE5PLVRSVU5DQVRFLiAgSWYgTk8tVFJVTkNBVEUgaXMgbmlsLAog ICAgIHRydW5jYXRlcyB0cmFpbGluZyBzcGFjZXMuCgrigJg6bWF0Y2jigJkKICAgICBGdW5jdGlv biB0aGF0IG1ha2VzIHRoZSB3aWRnZXQgbWF0Y2ggYW55IHN0cmluZyB2YWx1ZS4KCjguMS4xMyBU aGUg4oCYdGV4dOKAmSBXaWRnZXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTeW50YXg6Cgog ICAgIFRZUEUgOjo9ICh0ZXh0IFtLRVlXT1JEIEFSR1VNRU5UXS4uLiBbIFZBTFVFIF0pCgogICBB IHdpZGdldCBqdXN0IGxpa2UgdGhlIOKAmGVkaXRhYmxlLWZpZWxk4oCZIHdpZGdldCwgYnV0IGlu dGVuZGVkIGZvcgptdWx0aWxpbmUgdGV4dCBmaWVsZHMuICBJdHMgc3VwZXIgaXMgdGhlIOKAmGVk aXRhYmxlLWZpZWxk4oCZIHdpZGdldC4KCiAgIEl0IG92ZXJyaWRlcyB0aGUgZm9sbG93aW5nIHBy b3BlcnRpZXM6CgrigJg6Zm9ybWF04oCZCiAgICAgQnkgZGVmYXVsdCwgcHJpbnRzIGEgdGFnIGFu ZCB0aGUgdmFsdWUuCgrigJg6a2V5bWFw4oCZCiAgICAgVGhlIGRlZmF1bHQgaXMg4oCYd2lkZ2V0 LXRleHQta2V5bWFw4oCZLCB3aGljaCBkb2VzIG5vdCByZWJpbmQgdGhlCiAgICAgPFJFVD4ga2V5 LgoKOC4xLjE0IFRoZSDigJhtZW51LWNob2ljZeKAmSBXaWRnZXQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKU3ludGF4OgoKICAgICBUWVBFIDo6PSAobWVudS1jaG9pY2UgW0tFWVdP UkQgQVJHVU1FTlRdLi4uIFRZUEUgLi4uICkKCiAgIEEgd2lkZ2V0IHRvIHJlcHJlc2VudCBhIG1l bnUgb2Ygb3B0aW9ucy4gIEl0cyBzdXBlciBpcyB0aGUg4oCYZGVmYXVsdOKAmQp3aWRnZXQuCgog ICBUaGUgVFlQRSBhcmd1bWVudCByZXByZXNlbnRzIGVhY2ggcG9zc2libGUgY2hvaWNlLiAgVGhl IHdpZGdldOKAmXMKdmFsdWUgd2lsbCBiZSB0aGF0IG9mIHRoZSBjaG9zZW4gVFlQRSBhcmd1bWVu dC4KCiAgIEl0IGVpdGhlciBvdmVycmlkZXMgb3IgYWRkcyB0aGUgZm9sbG93aW5nIHByb3BlcnRp ZXM6CgrigJg6Y29udmVydC13aWRnZXTigJkKICAgICBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgY2Fy ZSBvZiBjb252ZXJ0aW5nIGVhY2ggcG9zc2libGUgY2hvaWNlLgoK4oCYOmNvcHnigJkKICAgICBB IGZ1bmN0aW9uIHRvIGNvcHkgZWFjaCBwb3NzaWJsZSBjaG9pY2UuCgrigJg6Zm9ybWF04oCZCiAg ICAgQnkgZGVmYXVsdCwgYnV0dG9uaXplIHRoZSB0YWcgYW5kIHNob3cgdGhlIHZhbHVlLgoK4oCY OnZvaWTigJkKICAgICBXaWRnZXQgdHlwZSB1c2VkIGFzIGEgZmFsbGJhY2sgd2hlbiB0aGUgdmFs dWUgZG9lcyBub3QgbWF0Y2ggYW55IG9mCiAgICAgdGhlIHNwZWNpZmllZCBUWVBFIGFyZ3VtZW50 cy4KCiAgICAgQnkgZGVmYXVsdCB0aGlzIGlzIGFuIOKAmGl0ZW3igJkgd2lkZ2V0LgoK4oCYOmNh c2UtZm9sZOKAmQogICAgIElmIOKAmG5pbOKAmSBkb27igJl0IGlnbm9yZSBjYXNlIHdoZW4gcHJv bXB0aW5nIGZvciBhIGNob2ljZSB0aHJvdWdoIHRoZQogICAgIG1pbmlidWZmZXIuCgogICAgIEJ5 IGRlZmF1bHQsIGl0cyB2YWx1ZSBpcyDigJh04oCZLgoK4oCYOmNoaWxkcmVu4oCZCiAgICAgQSBs aXN0IHdob3NlIENBUiBpcyB0aGUgd2lkZ2V0IHJlcHJlc2VudGluZyB0aGUgY3VycmVudGx5IGNo b3NlbgogICAgIHR5cGUgaW4gdGhlIGJ1ZmZlci4KCuKAmDpjaG9pY2XigJkKICAgICBUaGUgY3Vy cmVudCBjaG9zZW4gdHlwZS4KCuKAmDphcmdz4oCZCiAgICAgVGhlIGxpc3Qgb2YgdHlwZXMuCgri gJg6dmFsdWUtY3JlYXRl4oCZCiAgICAgVGhlIGZ1bmN0aW9uIHRoYXQgaW5zZXJ0cyB0aGUgY3Vy cmVudCB2YWx1ZSBmb3IgdGhlIHdpZGdldC4KCiAgICAgSXQgaW5zZXJ0cyB0aGUgZmlyc3QgY2hv aWNlIHRoYXQgbWF0Y2hlcywgYXMgd2l0aCB0aGUg4oCYOm1hdGNo4oCZCiAgICAgZnVuY3Rpb24s IHRoZSB2YWx1ZSBvZiB0aGUgd2lkZ2V0LgoK4oCYOnZhbHVlLWdldOKAmQogICAgIFJldHVybnMg dGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBjaGlsZCBmb3IgdGhlIHdpZGdldCAoc2VlIHRoZQogICAg IGRlc2NyaXB0aW9uIGZvciDigJg6Y2hpbGRyZW7igJkgYWJvdmUpLgoK4oCYOnZhbHVlLWlubGlu ZeKAmQogICAgIFJldHVybnMgdGhlIGlubGluZSB2YWx1ZSBvZiB0aGUgZmlyc3QgY2hpbGQgZm9y IHRoZSB3aWRnZXQuCgrigJg6ZGVmYXVsdC1nZXTigJkKICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBm b3IgdGhpcyB3aWRnZXQgaXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZQogICAgIGZpcnN0IGNo b2ljZSwgaW4gY2FzZSDigJg6dmFsdWXigJkgaXMgbWlzc2luZy4KCiAgICAgVGhpcyBtZWFucyB0 aGF0IGlmIHlvdSB3YW50IGEgc3BlY2lmaWMgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlCiAgICAg4oCY bWVudS1jaG9pY2XigJkgd2lkZ2V0LCB5b3Ugc2hvdWxkIGVpdGhlciBwYXNzIGEg4oCYOnZhbHVl 4oCZIHByb3BlcnR5CiAgICAgd2hlbiBjcmVhdGluZyBpdCwgb3IgYXJyYW5nZSB0aGUgY2hvaWNl cyBzbyB0aGF0IHRoZSBmaXJzdCBvbmUgY2FuCiAgICAgaG9sZCB5b3VyIGRlc2lyZWQgZGVmYXVs dCB2YWx1ZS4KCuKAmDptb3VzZS1kb3duLWFjdGlvbuKAmQogICAgIEEgZnVuY3Rpb24gdGhhdCB0 YWtlcyBjYXJlIG9mIHNob3dpbmcgYSBtZW51LCBpZiBwb3NzaWJsZSBhbmQKICAgICBkZXNpcmVk LgoK4oCYOmFjdGlvbuKAmQogICAgIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBjYXJlIG9mIGdldHRp bmcgYSBuZXcgY2hvaWNlIGZvciB0aGUgd2lkZ2V0LgoKICAgICBEZXBlbmRpbmcgb24gdGhlIG51 bWJlciBvZiBjaG9pY2VzIGF2YWlsYWJsZSwgaXQgbWF5IHNob3cgYSBtZW51IG9yCiAgICAganVz dCB0b2dnbGUgdGhlIGNob2ljZXMsIG9yIGV2ZW4gZG8gbm90aGluZyBhdCBhbGwuCgogICAgIEFm dGVyIGdldHRpbmcgdGhlIGNob2ljZSwgaXQgcmVjcmVhdGVzIHRoZSB3aWRnZXQgYW5kIG5vdGlm aWVzIGl0LgoK4oCYOnZhbGlkYXRl4oCZCiAgICAgUmV0dXJucyDigJhuaWzigJkgaWYgdGhlIHdp ZGdldOKAmXMgdmFsdWUgaXMgYSB2YWxpZCBjaG9pY2UuCgrigJg6bWF0Y2jigJkKICAgICBUaGlz IHdpZGdldCB3aWxsIG1hdGNoIGFueSB2YWx1ZSBtYXRjaGluZyBhdCBsZWFzdCBvbmUgb2YgdGhl CiAgICAgc3BlY2lmaWVkIFRZUEUgYXJndW1lbnRzLgoK4oCYOm1hdGNoLWlubGluZeKAmQogICAg IEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIG5vbi3igJhuaWzigJkgaWYgdGhlIHZhbHVlcyBtYXRj aCB0aGUgd2lkZ2V0LAogICAgIHRha2luZyBpbnRvIGFjY291bnQgdGhlIOKAmDppbmxpbmXigJkg cHJvcGVydHkuCgo4LjEuMTUgVGhlIOKAmHJhZGlvLWJ1dHRvbi1jaG9pY2XigJkgV2lkZ2V0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU3ludGF4OgoKICAgICBUWVBF IDo6PSAocmFkaW8tYnV0dG9uLWNob2ljZSBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIFRZUEUgLi4u ICkKCiAgIEEgd2lkZ2V0IHRvIHJlcHJlc2VudCBhIGNob2ljZSBmcm9tIG11bHRpcGxlIG9wdGlv bnMuICBJdHMgc3VwZXIgaXMKdGhlIOKAmGRlZmF1bHTigJkgd2lkZ2V0LgoKICAgVGhlIGNvbXBv bmVudCBUWVBFUyBzcGVjaWZ5IHRoZSBjaG9pY2VzLCB3aXRoIG9uZSByYWRpbyBidXR0b24gZm9y CmVhY2guICBUaGUgd2lkZ2V04oCZcyB2YWx1ZSB3aWxsIGJlIHRoYXQgb2YgdGhlIGNob3NlbiBU WVBFIGFyZ3VtZW50LgoKICAgSXQgb3ZlcnJpZGVzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoK CuKAmDpjb252ZXJ0LXdpZGdldOKAmQogICAgIEFzIG90aGVyIGNvbXBvc2l0ZSB3aWRnZXRzLCBh IGZ1bmN0aW9uIHRoYXQgdGFrZXMgY2FyZSBvZgogICAgIGNvbnZlcnRpbmcgZWFjaCBhdmFpbGFi bGUgY2hvaWNlLgoK4oCYOmNvcHnigJkKICAgICBBIGZ1bmN0aW9uIHRvIGNvcHkgZWFjaCBhdmFp bGFibGUgY2hvaWNlLgoK4oCYOmFjdGlvbuKAmQogICAgIEEgZnVuY3Rpb24gdGhhdCBjaGVja3Mg aWYgYW55IHJhZGlvIGJ1dHRvbiB3YXMgcHJlc3NlZCBhbmQKICAgICBhY3RpdmF0ZXMgdGhlIHBy ZXNzZWQgb25lLCBwb3NzaWJseSBkZWFjdGl2YXRpbmcgYW4gb2xkIG9uZS4gIFRoZW4sCiAgICAg aXQgbm90aWZpZXMgaXRzZWxmLgoK4oCYOmVudHJ5LWZvcm1hdOKAmQogICAgIFRoaXMgc3RyaW5n IHdpbGwgYmUgaW5zZXJ0ZWQgZm9yIGVhY2ggZW50cnkgaW4gdGhlIGxpc3QuICBUaGUKICAgICBm b2xsb3dpbmcg4oCYJeKAmSBlc2NhcGVzIGFyZSBhdmFpbGFibGU6CiAgICAg4oCYJXbigJkKICAg ICAgICAgIFJlcGxhY2Ugd2l0aCB0aGUgYnVmZmVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBUWVBF IHdpZGdldC4KICAgICDigJglYuKAmQogICAgICAgICAgUmVwbGFjZSB3aXRoIHRoZSByYWRpbyBi dXR0b24uCiAgICAg4oCYJSXigJkKICAgICAgICAgIEluc2VydCBhIGxpdGVyYWwg4oCYJeKAmS4K CuKAmDpmb3JtYXTigJkKICAgICBCeSBkZWZhdWx0LCBpdCBpbnNlcnRzIGl0cyB2YWx1ZS4KCuKA mDpidXR0b24tYXJnc+KAmQogICAgIEEgbGlzdCBvZiBrZXl3b3JkcyB0byBwYXNzIHRvIHRoZSBy YWRpbyBidXR0b25zLiAgVXNlZnVsIGZvcgogICAgIHNldHRpbmcsIGUuZy4sIHRoZSDigJg6aGVs cC1lY2hv4oCZIGZvciBlYWNoIGJ1dHRvbi4KCuKAmDpidXR0b25z4oCZCiAgICAgVGhlIHdpZGdl dHMgcmVwcmVzZW50aW5nIHRoZSByYWRpbyBidXR0b25zLgoK4oCYOmNoaWxkcmVu4oCZCiAgICAg VGhlIHdpZGdldHMgcmVwcmVzZW50aW5nIGVhY2ggdHlwZS4KCuKAmDpjaG9pY2XigJkKICAgICBU aGUgY3VycmVudCBjaG9zZW4gdHlwZS4KCuKAmDphcmdz4oCZCiAgICAgVGhlIGxpc3Qgb2YgdHlw ZXMuCgrigJg6dmFsdWUtY3JlYXRl4oCZCiAgICAgQSBmdW5jdGlvbiB0byBpbnNlcnQgYWxsIGF2 YWlsYWJsZSBjaG9pY2VzLgoK4oCYOnZhbHVlLWdldOKAmQogICAgIFJldHVybnMgdGhlIHZhbHVl IGZvciB0aGUgY2hvc2VuIHdpZGdldC4KCuKAmDp2YWx1ZS1zZXTigJkKICAgICBBIGZ1bmN0aW9u IHRvIHNldCB0aGUgdmFsdWUgdG8gb25lIG9mIGl0cyBhdmFpbGFibGUgb3B0aW9ucy4KCuKAmDp2 YWx1ZS1pbmxpbmXigJkKICAgICBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgaW5saW5lIHZh bHVlIG9mIHRoZSBjaGlsZCB3aWRnZXQuCgrigJg6b2Zmc2V04oCZCiAgICAgQnkgZGVmYXVsdCwg dGhpcyB3aWRnZXQgaGFzIGFuIG9mZnNldCBvZiA0LgoK4oCYOnZhbGlkYXRl4oCZCiAgICAgVGhl IHdpZGdldCB2YWxpZGF0ZXMgaWYgdGhlIGN1cnJlbnQgdmFsdWUgaXMgdmFsaWQgZm9yIG9uZSBv ZiBpdHMKICAgICBjaGlsZHJlbi4KCuKAmDptYXRjaOKAmQogICAgIFRoaXMgd2lkZ2V0IG1hdGNo ZXMgYW55IHZhbHVlIHRoYXQgbWF0Y2hlcyBhdCBsZWFzdCBvbmUgb2YgdGhlCiAgICAgc3BlY2lm aWVkIFRZUEUgYXJndW1lbnRzLgoK4oCYOm1hdGNoLWlubGluZeKAmQogICAgIExpa2UgdGhlIOKA mDptYXRjaOKAmSBmdW5jdGlvbiwgYnV0IHRha2luZyBpbnRvIGFjY291bnQgaW5saW5lIHZhbHVl cy4KCiAgIFlvdSBjYW4gYWRkIGV4dHJhIHJhZGlvIGJ1dHRvbiBpdGVtcyB0byBhIOKAmHJhZGlv LWJ1dHRvbi1jaG9pY2XigJkKd2lkZ2V0IGFmdGVyIGl0IGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCB0 aGUgZnVuY3Rpb24K4oCYd2lkZ2V0LXJhZGlvLWFkZC1pdGVt4oCZLgoKIC0tIEZ1bmN0aW9uOiB3 aWRnZXQtcmFkaW8tYWRkLWl0ZW0gd2lkZ2V0IHR5cGUKICAgICBBZGQgdG8g4oCYcmFkaW8tYnV0 dG9uLWNob2ljZeKAmSB3aWRnZXQgV0lER0VUIGEgbmV3IHJhZGlvIGJ1dHRvbiBpdGVtCiAgICAg b2YgdHlwZSBUWVBFLgoKICAgUGxlYXNlIG5vdGUgdGhhdCBzdWNoIGl0ZW1zIGFkZGVkIGFmdGVy IHRoZSDigJhyYWRpby1idXR0b24tY2hvaWNl4oCZCndpZGdldCBoYXMgYmVlbiBjcmVhdGVkIHdp bGwgKm5vdCogYmUgcHJvcGVybHkgZGVzdHJ1Y3RlZCB3aGVuIHlvdSBjYWxsCuKAmHdpZGdldC1k ZWxldGXigJkuCgo4LjEuMTYgVGhlIOKAmGNob2ljZS1pdGVt4oCZIFdpZGdldAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTeW50YXg6CgogICAgIElURU0gOjo9IChjaG9pY2UtaXRl bSBbS0VZV09SRCBBUkdVTUVOVF0uLi4gVkFMVUUpCgogICBBIHdpZGdldCB0byByZXByZXNlbnQg YSBjaG9pY2UgaW4gYSDigJhtZW51LWNob2ljZeKAmSB3aWRnZXQuICBJdHMgc3VwZXIKaXMgdGhl IOKAmGl0ZW3igJkgd2lkZ2V0LgoKICAgVGhlIFZBTFVFLCBpZiBwcmVzZW50LCBpcyB1c2VkIHRv IGluaXRpYWxpemUgdGhlIOKAmDp2YWx1ZeKAmSBwcm9wZXJ0eS4KCiAgIEl0IG92ZXJyaWRlcyB0 aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CgrigJg6YWN0aW9u4oCZCiAgICAgQWN0aXZhdGluZyB0 aGUgYnV0dG9uIG9mIGEg4oCYY2hvaWNlLWl0ZW3igJkgaXMgZXF1aXZhbGVudCB0bwogICAgIGFj dGl2YXRpbmcgdGhlIHBhcmVudCB3aWRnZXQuCgrigJg6Zm9ybWF04oCZCiAgICAgQnkgZGVmYXVs dCwgaXQgYnV0dG9uaXplcyB0aGUgdGFnIChpLmUuLCBpdHMgdmFsdWUpIGFuZCBhZGRzIGEKICAg ICBuZXdsaW5lIGNoYXJhY3RlciBhdCB0aGUgZW5kIG9mIHRoZSB3aWRnZXQuCgo4LjEuMTcgVGhl IOKAmHRvZ2dsZeKAmSBXaWRnZXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN5bnRheDoK CiAgICAgVFlQRSA6Oj0gKHRvZ2dsZSBbS0VZV09SRCBBUkdVTUVOVF0uLi4pCgogICBBIHdpZGdl dCB0aGF0IGNhbiB0b2dnbGUgYmV0d2VlbiB0d28gc3RhdGVzLiAgSXRzIHN1cGVyIGlzIHRoZSDi gJhpdGVt4oCZCndpZGdldC4KCiAgIFRoZSB3aWRnZXQgaGFzIHR3byBwb3NzaWJsZSBzdGF0ZXMs IOKAmG9u4oCZIGFuZCDigJhvZmbigJksIHdoaWNoIGNvcnJlc3BvbmQKdG8gYSDigJh04oCZIG9y IOKAmG5pbOKAmSB2YWx1ZSwgcmVzcGVjdGl2ZWx5LgoKICAgSXQgZWl0aGVyIG92ZXJyaWRlcyBv ciBhZGRzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKCuKAmDpmb3JtYXTigJkKICAgICBCeSBk ZWZhdWx0LCBpdCBidXR0b25pemVzIHRoZSB2YWx1ZSBhbmQgYWRkcyBhIG5ld2xpbmUgYXQgdGhl IGVuZAogICAgIG9mIHRoZSB3aWRnZXQuCgrigJg6b27igJkKICAgICBBIHN0cmluZyByZXByZXNl bnRpbmcgdGhlIOKAmG9u4oCZIHN0YXRlLiAgQnkgZGVmYXVsdCB0aGUgc3RyaW5nIOKAmG9u4oCZ LgoK4oCYOm9mZuKAmQogICAgIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUg4oCYb2Zm4oCZIHN0 YXRlLiAgQnkgZGVmYXVsdCB0aGUgc3RyaW5nCiAgICAg4oCYb2Zm4oCZLgoK4oCYOm9uLWdseXBo 4oCZCiAgICAgTmFtZSBvZiBhIGdseXBoIHRvIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUg4oCYOm9u 4oCZIHRleHQgc3RyaW5nLCBvbgogICAgIGVtYWNzZW4gdGhhdCBzdXBwb3J0cyB0aGlzLgoK4oCY Om9mZi1nbHlwaOKAmQogICAgIE5hbWUgb2YgYSBnbHlwaCB0byBiZSB1c2VkIGluc3RlYWQgb2Yg dGhlIOKAmDpvZmbigJkgdGV4dCBzdHJpbmcsIG9uCiAgICAgZW1hY3NlbiB0aGF0IHN1cHBvcnRz IHRoaXMuCgrigJg6dmFsdWUtY3JlYXRl4oCZCiAgICAgQSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcg dGhlIHdpZGdldOKAmXMgdmFsdWUsIGFjY29yZGluZyB0byBpdHMg4oCYOm9u4oCZCiAgICAgb3Ig 4oCYOm9mZuKAmSBzdGF0ZS4KCuKAmDphY3Rpb27igJkKICAgICBGdW5jdGlvbiB0byB0b2dnbGUg dGhlIHN0YXRlIG9mIHRoZSB3aWRnZXQuICBBZnRlciB0b2dnbGluZywgaXQKICAgICBub3RpZmll cyBpdHNlbGYuCgrigJg6bWF0Y2jigJkKICAgICBUaGlzIHdpZGdldCBtYXRjaGVzIGFueXRoaW5n LgoKOC4xLjE4IFRoZSDigJhyYWRpby1idXR0b24tdG9nZ2xl4oCZIFdpZGdldAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN5bnRheDoKCiAgICAgVFlQRSA6Oj0gKHJh ZGlvLWJ1dHRvbi10b2dnbGUgW0tFWVdPUkQgQVJHVU1FTlRdLi4uKQoKICAgQSB0b2dnbGUgdG8g dXNlIGluIHRoZSDigJhyYWRpb+KAmSB3aWRnZXQuCgogICBJdCBvdmVycmlkZXMgdGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzOgoK4oCYOmJ1dHRvbi1wcmVmaXjigJkKICAgICBUaGUgZW1wdHkgc3Ry aW5nLgoK4oCYOmJ1dHRvbi1zdWZmaXjigJkKICAgICBUaGUgZW1wdHkgc3RyaW5nLgoK4oCYOm9u 4oCZCiAgICAgVGhlIHN0cmluZyDigJwoKinigJ0sIHRvIHJlcHJlc2VudCB0aGUg4oCYb27igJkg c3RhdGUuCgrigJg6b2Zm4oCZCiAgICAgVGhlIHN0cmluZyDigJwoICnigJ0sIHRvIHJlcHJlc2Vu dCB0aGUg4oCYb2Zm4oCZIHN0YXRlLgoK4oCYOm9uLWdseXBo4oCZCiAgICAgVGhlIG5hbWUgb2Yg YW4gaW1hZ2UgdG8gcmVwcmVzZW50IHRoZSDigJhvbuKAmSBzdGF0ZS4KCuKAmDpvZmYtZ2xweWji gJkKICAgICBUaGUgbmFtZSBvZiBhbiBpbWFnZSB0byByZXByZXNlbnQgdGhlIOKAmG9mZuKAmSBz dGF0ZS4KCuKAmDpmb3JtYXTigJkKICAgICBCeSBkZWZhdWx0LCBpdCBidXR0b25pemVzIGl0cyB2 YWx1ZS4KCuKAmDpub3RpZnnigJkKICAgICBBIGZ1bmN0aW9uIHRvIG5vdGlmeSBpdHMgcGFyZW50 LgoKOC4xLjE5IFRoZSDigJhjaGVja2JveOKAmSBXaWRnZXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKU3ludGF4OgoKICAgICBUWVBFIDo6PSAoY2hlY2tib3ggW0tFWVdPUkQgQVJHVU1F TlRdLi4uKQoKICAgQSB3aWRnZXQgdG8gcmVwcmVzZW50IGEgdG9nZ2xlIHdpZGdldCwgd2l0aCBh IGNoZWNrYm94LiAgSXRzIHN1cGVyIGlzCnRoZSDigJh0b2dnbGXigJkgd2lkZ2V0LgoKICAgVGhp cyB3aWRnZXQgaGFzIHR3byBwb3NzaWJsZSBzdGF0ZXMsIOKAmHNlbGVjdGVk4oCZIGFuZCDigJh1 bnNlbGVjdGVk4oCZLAp3aGljaCBjb3JyZXNwb25kcyB0byBhIOKAmHTigJkgb3Ig4oCYbmls4oCZ IHZhbHVlLCByZXNwZWN0aXZlbHkuCgogICBJdCBlaXRoZXIgb3ZlcnJpZGVzIG9yIGFkZHMgdGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzOgoK4oCYOmJ1dHRvbi1wcmVmaXjigJkKICAgICBUaGUgZW1w dHkgc3RyaW5nLgoK4oCYOmJ1dHRvbi1zdWZmaXjigJkKICAgICBUaGUgZW1wdHkgc3RyaW5nLgoK 4oCYOmZvcm1hdOKAmQogICAgIEJ5IGRlZmF1bHQsIGJ1dHRvbml6ZXMgdGhlIHZhbHVlLgoK4oCY Om9u4oCZCiAgICAgQnkgZGVmYXVsdCwgdGhlIHN0cmluZyDigJxbWF3igJ0uCgrigJg6b2Zm4oCZ CiAgICAgQnkgZGVmYXVsdCwgdGhlIHN0cmluZyDigJxbIF3igJ0uCgrigJg6b24tZ2x5cGjigJkK ICAgICBUaGUgbmFtZSBvZiB0aGUgaW1hZ2UgdG8gdXNlIHdoZW4gdGhlIHN0YXRlIGlzIOKAmG9u 4oCZLgoK4oCYOm9mZi1nbHlwaOKAmQogICAgIFRoZSBuYW1lIG9mIHRoZSBpbWFnZSB0byB1c2Ug d2hlbiB0aGUgc3RhdGUgaXMg4oCYb2Zm4oCZLgoK4oCYOmFjdGlvbuKAmQogICAgIEEgZnVuY3Rp b24gdGhhdCB0b2dnbGVzIHRoZSBjaGVja2JveCwgbm90aWZpZXMgdGhlIHBhcmVudHMgYW5kIGlu CiAgICAgdGhlIOKAmG9u4oCZIHN0YXRlLCBhY3RpdmF0ZXMgaXRzIHNpYmxpbmdzLgoKOC4xLjIw IFRoZSDigJhjaGVja2xpc3TigJkgV2lkZ2V0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CgpTeW50YXg6CgogICAgIFRZUEUgOjo9IChjaGVja2xpc3QgW0tFWVdPUkQgQVJHVU1FTlRdLi4u ICBUWVBFIC4uLiApCgogICBBIHdpZGdldCB0byByZXByZXNlbnQgYSBtdWx0aXBsaWNlIGNob2lj ZS4gIEl0cyBzdXBlciBpcyB0aGUK4oCYZGVmYXVsdOKAmSB3aWRnZXQuCgogICBUaGUgVFlQRSBh cmd1bWVudHMgcmVwcmVzZW50IGVhY2ggY2hlY2tsaXN0IGl0ZW0uICBUaGUgd2lkZ2V04oCZcyB2 YWx1ZQp3aWxsIGJlIGEgbGlzdCBjb250YWluaW5nIHRoZSB2YWx1ZXMgb2YgYWxsIGNoZWNrZWQg VFlQRSBhcmd1bWVudHMuCgogICBJdCBlaXRoZXIgb3ZlcnJpZGVzIG9yIGFkZHMgdGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzOgoK4oCYOmNvbnZlcnQtd2lkZ2V04oCZCiAgICAgQXMgb3RoZXIgY29t cG9zaXRlIHdpZGdldHMsIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBjYXJlIG9mCiAgICAgY29udmVy dGluZyBlYWNoIGNoZWNrbGlzdCBpdGVtLgoK4oCYOmNvcHnigJkKICAgICBBIGZ1bmN0aW9uIHRv IGNvcHkgZWFjaCBjaGVja2xpc3QgaXRlbS4KCuKAmDpmb3JtYXTigJkKICAgICBCeSBkZWZhdWx0 LCBpdCBpbnNlcnRzIGl0cyB2YWx1ZS4KCuKAmDplbnRyeS1mb3JtYXTigJkKICAgICBUaGlzIHN0 cmluZyB3aWxsIGJlIGluc2VydGVkIGZvciBlYWNoIGVudHJ5IGluIHRoZSBsaXN0LiAgVGhlCiAg ICAgZm9sbG93aW5nIOKAmCXigJkgZXNjYXBlcyBhcmUgYXZhaWxhYmxlOgogICAgIOKAmCV24oCZ CiAgICAgICAgICBSZXBsYWNlZCB3aXRoIHRoZSBidWZmZXIgcmVwcmVzZW50YXRpb24gb2YgdGhl IFRZUEUgd2lkZ2V0LgogICAgIOKAmCVi4oCZCiAgICAgICAgICBSZXBsYWNlIHdpdGggdGhlIGNo ZWNrYm94LgogICAgIOKAmCUl4oCZCiAgICAgICAgICBJbnNlcnQgYSBsaXRlcmFsIOKAmCXigJku CgrigJg6YnV0dG9uLWFyZ3PigJkKICAgICBBIGxpc3Qgb2Yga2V5d29yZHMgdG8gcGFzcyB0byB0 aGUgY2hlY2tib3hlcy4gIFVzZWZ1bCBmb3Igc2V0dGluZywKICAgICBlLmcuLCB0aGUg4oCYOmhl bHAtZWNob+KAmSBmb3IgZWFjaCBjaGVja2JveC4KCuKAmDpidXR0b25z4oCZCiAgICAgVGhlIHdp ZGdldHMgcmVwcmVzZW50aW5nIHRoZSBjaGVja2JveGVzLgoK4oCYOmNoaWxkcmVu4oCZCiAgICAg VGhlIHdpZGdldHMgcmVwcmVzZW50aW5nIGVhY2ggdHlwZS4KCuKAmDphcmdz4oCZCiAgICAgVGhl IGxpc3Qgb2YgdHlwZXMuCgrigJg6dmFsdWUtY3JlYXRl4oCZCiAgICAgVGhlIGZ1bmN0aW9uIHRo YXQgdGFrZXMgY2FyZSBvZiBpbnNlcnRpbmcgYWxsIHZhbHVlcy4KCuKAmDp2YWx1ZS1nZXTigJkK ICAgICBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbGwgdmFsdWVzIG9mIHNlbGVjdGVkIGl0ZW1z LgoK4oCYOnZhbGlkYXRl4oCZCiAgICAgQSBmdW5jdGlvbiB0aGF0IGVuc3VyZXMgYWxsIHNlbGVj dGVkIGNoaWxkcmVuIGFyZSB2YWxpZC4KCuKAmDptYXRjaOKAmQogICAgIFRoZSBjaGVja2xpc3Qg d2lkZ2V0IHdpbGwgbWF0Y2ggYSBsaXN0IHdob3NlIGVsZW1lbnRzIGFsbCBtYXRjaCBhdAogICAg IGxlYXN0IG9uZSBvZiB0aGUgc3BlY2lmaWVkIFRZUEUgYXJndW1lbnRzLgoK4oCYOm1hdGNoLWlu bGluZeKAmQogICAgIExpa2UgdGhlIOKAmDptYXRjaOKAmSBmdW5jdGlvbiwgYnV0IHRha2luZyBp bnRvIGFjY291bnQgdGhlIOKAmDppbmxpbmXigJkKICAgICBwcm9wZXJ0eS4KCuKAmDpncmVlZHni gJkKICAgICBVc3VhbGx5IGEgY2hlY2tsaXN0IHdpbGwgb25seSBtYXRjaCBpZiB0aGUgaXRlbXMg YXJlIGluIHRoZSBleGFjdAogICAgIHNlcXVlbmNlIGdpdmVuIGluIHRoZSBzcGVjaWZpY2F0aW9u LiAgQnkgc2V0dGluZyDigJg6Z3JlZWR54oCZIHRvCiAgICAgbm9uLeKAmG5pbOKAmSwgaXQgd2ls bCBhbGxvdyB0aGUgaXRlbXMgdG8gY29tZSBpbiBhbnkgc2VxdWVuY2UuCiAgICAgSG93ZXZlciwg aWYgeW91IGV4dHJhY3QgdGhlIHZhbHVlIHRoZXkgd2lsbCBiZSBpbiB0aGUgc2VxdWVuY2UKICAg ICBnaXZlbiBpbiB0aGUgY2hlY2tsaXN0LCBpLmUuLCB0aGUgb3JpZ2luYWwgc2VxdWVuY2UgaXMg Zm9yZ290dGVuLgoKOC4xLjIxIFRoZSDigJhlZGl0YWJsZS1saXN04oCZIFdpZGdldAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN5bnRheDoKCiAgICAgVFlQRSA6Oj0gKGVkaXRh YmxlLWxpc3QgW0tFWVdPUkQgQVJHVU1FTlRdLi4uIFRZUEUpCgogICBBIHdpZGdldCB0aGF0IGNh biBob2xkIGEgdmFyaWFibGUgbGlzdCBvZiB3aWRnZXRzIG9mIHRoZSBzYW1lIHR5cGUsCnJlcHJl c2VudGVkIGJ5IFRZUEUuICBJdHMgc3VwZXIgaXMgdGhlIOKAmGRlZmF1bHTigJkgd2lkZ2V0LgoK ICAgSXQgZWl0aGVyIG92ZXJyaWRlcyBvciBhZGRzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoK CuKAmDpjb252ZXJ0LXdpZGdldOKAmQogICAgIEFzIG90aGVyIGNvbXBvc2l0ZSB3aWRnZXRzLCBh IGZ1bmN0aW9uIHRoYXQgdGFrZXMgY2FyZSBvZgogICAgIGNvbnZlcnRpbmcgZWFjaCB0eXBlIGlu IFRZUEUuCgrigJg6Y29weeKAmQogICAgIEEgZnVuY3Rpb24gdG8gY29weSB0aGUgdHlwZXMgZ2l2 ZW4gaW4gVFlQRS4KCuKAmDplbnRyeS1mb3JtYXTigJkKICAgICBUaGlzIHN0cmluZyB3aWxsIGJl IGluc2VydGVkIGZvciBlYWNoIGVudHJ5IGluIHRoZSBsaXN0LiAgVGhlCiAgICAgZm9sbG93aW5n IOKAmCXigJkgZXNjYXBlcyBhcmUgYXZhaWxhYmxlOgogICAgIOKAmCV24oCZCiAgICAgICAgICBU aGlzIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgYnVmZmVyIHJlcHJlc2VudGF0aW9uIG9mIHRo ZQogICAgICAgICAgVFlQRSB3aWRnZXQuCiAgICAg4oCYJWnigJkKICAgICAgICAgIEluc2VydCB0 aGUgW0lOU10gYnV0dG9uLCBhIHdpZGdldCBvZiB0eXBlIOKAmGluc2VydC1idXR0b27igJkuCiAg ICAg4oCYJWTigJkKICAgICAgICAgIEluc2VydCB0aGUgW0RFTF0gYnV0dG9uLCBhIHdpZGdldCBv ZiB0eXBlIOKAmGRlbGV0ZS1idXR0b27igJkuCiAgICAg4oCYJSXigJkKICAgICAgICAgIEluc2Vy dCBhIGxpdGVyYWwg4oCYJeKAmS4KCuKAmDppbnNlcnQtYnV0dG9uLWFyZ3PigJkKICAgICBBIGxp c3Qgb2Yga2V5d29yZCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgaW5zZXJ0IGJ1dHRvbnMuCgri gJg6ZGVsZXRlLWJ1dHRvbi1hcmdz4oCZCiAgICAgQSBsaXN0IG9mIGtleXdvcmQgYXJndW1lbnRz IHRvIHBhc3MgdG8gdGhlIGRlbGV0ZSBidXR0b25zLgoK4oCYOmFwcGVuZC1idXR0b24tYXJnc+KA mQogICAgIEEgbGlzdCBvZiBrZXl3b3JkIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSB0cmFpbGlu ZyBpbnNlcnQgYnV0dG9uLgoK4oCYOmJ1dHRvbnPigJkKICAgICBUaGUgd2lkZ2V0cyByZXByZXNl bnRpbmcgdGhlIGluc2VydCBhbmQgZGVsZXRlIGJ1dHRvbnMuCgrigJg6Zm9ybWF04oCZCiAgICAg QnkgZGVmYXVsdCwgaW5zZXJ0IGl0cyB2YWx1ZSBhbmQgYXQgdGhlIGFuZCBhZGRzIGFuIGluc2Vy dCBidXR0b24uCgogICAgIFRoaXMgaXMgdXNlZnVsIHNvIHRoYXQgbmV3IGVsZW1lbnRzIGNhbiBi ZSBhZGRlZCB0byB0aGUgbGlzdCB1cG9uCiAgICAgdXNlciByZXF1ZXN0LgoK4oCYOmZvcm1hdC1o YW5kbGVy4oCZCiAgICAgQSBmdW5jdGlvbiB0aGF0IHJlY29nbml6ZSB0aGUgZXNjYXBlIGZvciBp bnNlcnRpbmcgYW4gaW5zZXJ0CiAgICAgYnV0dG9uLgoK4oCYOm9mZnNldOKAmQogICAgIEJ5IGRl ZmF1bHQsIHRoaXMgd2lkZ2V0IGhhcyBhbiBvZmZzZXQgb2YgMTIuCgrigJg6Y2hpbGRyZW7igJkK ICAgICBUaGUgd2lkZ2V0cyByZXByZXNlbnRpbmcgdGhlIGVsZW1lbnRzIG9mIHRoZSBsaXN0LgoK 4oCYOmFyZ3PigJkKICAgICBMaXN0IHdob3NlIENBUiBpcyB0aGUgdHlwZSBvZiB0aGUgbGlzdCBl bGVtZW50cy4KCuKAmDppbnNlcnQtYmVmb3Jl4oCZCiAgICAgRnVuY3Rpb24gdG8gaW5zZXJ0IGEg bmV3IHdpZGdldCBhcyBhIGNoaWxkIG9mIHRoZSDigJhlZGl0YWJsZS1saXN04oCZCiAgICAgd2lk Z2V0LgoKICAgICBUaGlzIGZ1bmN0aW9uIGluc2VydHMgYSByZWNlbnRseSBkZWxldGVkIGNoaWxk LCBpZiB0aGVyZSBpcyBvbmUuCiAgICAgVGhhdCBpcyB1c2VmdWwsIHNvIHRoYXQgdGhlIHVzZXIg Y2FuIG1vdmUgZWxlbWVudHMgaW4gYSBsaXN0CiAgICAgZWFzaWx5LiAgSWYgdGhlcmUgaXMgbm90 IGEgcmVjZW50bHkgZGVsZXRlZCBjaGlsZCwgaXQgaW5zZXJ0cyBhCiAgICAgY2hpbGQgd2l0aCBp dHMgZGVmYXVsdCB2YWx1ZS4KCuKAmDpkZWxldGUtYXTigJkKICAgICBGdW5jdGlvbiB0byBkZWxl dGUgYSBjaGlsZCBmcm9tIHRoZSB3aWRnZXQsIGFuZCBzdG9yZSBpdCBpbnRvIHRoZQogICAgIOKA mDpsYXN0LWRlbGV0ZWTigJkgbGlzdCwgc28gdGhhdCBpdCBjYW4gYmUgcmVpbnNlcnRlZCB3aGVu IHRoZQogICAgIOKAmDppbnNlcnQtYmVmb3Jl4oCZIGZ1bmN0aW9uIGV4ZWN1dGVzLgoK4oCYOnZh bHVlLWNyZWF0ZeKAmQogICAgIFRoZSBmdW5jdGlvbiB0aGF0IHRha2VzIGNhcmUgb2YgaW5zZXJ0 aW5nIGFsbCB2YWx1ZXMuCgrigJg6dmFsdWUtZ2V04oCZCiAgICAgRnVuY3Rpb24gdGhhdCByZXR1 cm5zIGEgbGlzdCB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgY2hpbGQgd2lkZ2V0cy4KCuKAmDp2YWxp ZGF0ZeKAmQogICAgIFRoaXMgd2lkZ2V0IHZhbGlkYXRlcyBpZiBhbGwgY2hpbGRyZW4gdmFsaWRh dGUuCgrigJg6bWF0Y2jigJkKICAgICBUbyBtYXRjaCwgdGhlIHZhbHVlIG11c3QgYmUgYSBsaXN0 IGFuZCBhbGwgdGhlIGxpc3QgbWVtYmVycyBtdXN0CiAgICAgbWF0Y2ggdGhlIHNwZWNpZmllZCBU WVBFLgoK4oCYOm1hdGNoLWlubGluZeKAmQogICAgIExpa2UgdGhlIOKAmDptYXRjaOKAmSBmdW5j dGlvbiwgYnV0IHRha2luZyBpbnRvIGFjY291bnQgaW5saW5lIHZhbHVlcwogICAgIGFuZCB3aWRn ZXRzLgoKOC4xLjIyIFRoZSDigJhncm91cOKAmSBXaWRnZXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKU3ludGF4OgoKICAgICBUWVBFIDo6PSAoZ3JvdXAgW0tFWVdPUkQgQVJHVU1FTlRdLi4u IFRZUEUuLi4pCgogICBBIHdpZGdldCB0byBncm91cCBvdGhlciB3aWRnZXRzLiAgSXRzIHN1cGVy IGlzIHRoZSDigJhkZWZhdWx04oCZIHdpZGdldC4KCiAgIEl0cyB2YWx1ZSBpcyBhIGxpc3QsIHdp dGggb25lIG1lbWJlciBmb3IgZWFjaCBUWVBFLgoKICAgSXQgb3ZlcnJpZGVzIHRoZSBmb2xsb3dp bmcgcHJvcGVydGllczoKCuKAmDpjb252ZXJ0LXdpZGdldOKAmQogICAgIEFzIG90aGVyIGNvbXBv c2l0ZSB3aWRnZXRzLCBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgY2FyZSBvZgogICAgIGNvbnZlcnRp bmcgZWFjaCB3aWRnZXQgaW4gVFlQRS4KCuKAmDpjb3B54oCZCiAgICAgQSBmdW5jdGlvbiB0byBj b3B5IHRoZSB0eXBlcyBnaXZlbiBpbiBUWVBFLgoK4oCYOmZvcm1hdOKAmQogICAgIEJ5IGRlZmF1 bHQsIGRpc3BsYXlzIGEgbmV3bGluZSBjaGFyYWN0ZXIgYW5kIGl0cyB2YWx1ZS4KCuKAmDp2YWx1 ZS1jcmVhdGXigJkKICAgICBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBlYWNoIG9mIGl0cyBjb21wb25l bnRzLgoK4oCYOnZhbHVlLWdldOKAmQogICAgIFRoZSBzYW1lIGZ1bmN0aW9uIHVzZWQgYnkgdGhl IOKAmGVkaXRhYmxlLWxpc3TigJkgd2lkZ2V0LgoK4oCYOmRlZmF1bHQtZ2V04oCZCiAgICAgQSBm dW5jdGlvbiB0aGF0IHJldHVybnMgYSBsaXN0IHdob3NlIG1lbWJlcnMgYXJlIHRoZSBkZWZhdWx0 IHZhbHVlcwogICAgIG9mIGVhY2ggd2lkZ2V0IGl0IGdyb3Vwcy4KCuKAmDp2YWxpZGF0ZeKAmQog ICAgIFRoaXMgd2lkZ2V0IHZhbGlkYXRlcyBpZiBhbGwgb2YgaXRzIGNoaWxkcmVuIHZhbGlkYXRl LgoK4oCYOm1hdGNo4oCZCiAgICAgVGhpcyB3aWRnZXQgbWF0Y2hlcyBhIHZhbHVlIHRoYXQgbWF0 Y2hlcyBlYWNoIG9mIGl0cyBjb21wb25lbnRzLgoK4oCYOm1hdGNoLWlubGluZeKAmQogICAgIEFz IOKAmDptYXRjaOKAmSwgYnV0IHRha2luZyBpbnRvIGFjY291bnQgd2lkZ2V0cyBhbmQgdmFsdWVz IHRoYXQgYXJlCiAgICAgaW5saW5lLgoKOC4xLjIzIFRoZSDigJhkb2N1bWVudGF0aW9uLXN0cmlu Z+KAmSBXaWRnZXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU3lu dGF4OgoKICAgICBUWVBFIDo6PSAoZG9jdW1lbnRhdGlvbi1zdHJpbmcgW0tFWVdPUkQgQVJHVU1F TlRdLi4uIFZBTFVFKQoKICAgQSB3aWRnZXQgdG8gcmVwcmVzZW50IGEgZG9jdW1lbnRhdGlvbiBz dHJpbmcuICBJdHMgc3VwZXIgaXMgdGhlCuKAmGl0ZW3igJkgd2lkZ2V0LgoKICAgSXQgZWl0aGVy IG92ZXJyaWRlcyBvciBhZGRzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKCuKAmDpmb3JtYXTi gJkKICAgICBCeSBkZWZhdWx0LCBpbnNlcnQgaXRzIHZhbHVlLgoK4oCYOnZhbHVlLWNyZWF0ZeKA mQogICAgIEZ1bmN0aW9uIHRvIGluc2VydCBhIGRvY3VtZW50YXRpb24gc3RyaW5nLCBwb3NzaWJs eSBoaWRpbmcgcGFydCBvZgogICAgIHRoZSBkb2N1bWVudGF0aW9uIGlmIGl0cyBsYXJnZS4KCiAg ICAgVG8gc2hvdyBvciBoaWRlIHRoZSByZXN0IG9mIHRoZSBkb2N1bWVudGF0aW9uLCB1c2VzIGEg 4oCYdmlzaWJpbGl0eeKAmQogICAgIHdpZGdldC4KCuKAmDphY3Rpb27igJkKICAgICBGdW5jdGlv biB0byB0b2dnbGUgc2hvd2luZyB0aGUgZG9jdW1lbnRhdGlvbiB1cG9uIGFuIGV2ZW50LgoK4oCY OnZpc2liaWxpdHktd2lkZ2V04oCZCiAgICAgQSBzeW1ib2wsIHRoZSB0eXBlIG9mIHRoZSB3aWRn ZXQgdG8gdXNlIGZvciB0aGUgdmlzaWJpbGl0eSB3aWRnZXQuCgogICAgIFRoaXMgaXMsIGJ5IGRl ZmF1bHQsIHRoZSBzeW1ib2wg4oCYdmlzaWJpbGl0eeKAmS4KCjguMiBTZXhwIFR5cGVzCj09PT09 PT09PT09PT09CgpBIG51bWJlciBvZiB3aWRnZXRzIGZvciBlZGl0aW5nIOKAnHMtZXhwcmVzc2lv bnPigJ0gKExpc3AgdHlwZXMpLCBzZXhwIGZvcgpzaG9ydCwgYXJlIGFsc28gYXZhaWxhYmxlLiAg VGhlc2UgYmFzaWNhbGx5IGZhbGwgaW4gc2V2ZXJhbCBjYXRlZ29yaWVzCmRlc2NyaWJlZCBpbiB0 aGlzIHNlY3Rpb24uCgo4LjIuMSBUaGUgQ29uc3RhbnQgV2lkZ2V0cwotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKVGhlIOKAmGNvbnN04oCZIHdpZGdldCBjYW4gY29udGFpbiBhbnkgTGlzcCBl eHByZXNzaW9uLCBidXQgdGhlIHVzZXIgaXMKcHJvaGliaXRlZCBmcm9tIGVkaXRpbmcgaXQsIHdo aWNoIGlzIG1haW5seSB1c2VmdWwgYXMgYSBjb21wb25lbnQgb2Ygb25lCm9mIHRoZSBjb21wb3Np dGUgd2lkZ2V0cy4KCiAgIFRoZSBzeW50YXggZm9yIHRoZSDigJhjb25zdOKAmSB3aWRnZXQgaXM6 CgogICAgIFRZUEUgOjo9IChjb25zdCBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIFsgVkFMVUUgXSkK CiAgIEl0cyBzdXBlciBpcyB0aGUg4oCYaXRlbeKAmSB3aWRnZXQuICBUaGUgVkFMVUUsIGlmIHBy ZXNlbnQsIGlzIHVzZWQgdG8KaW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl4oCZIHByb3BlcnR5IGFu ZCBjYW4gYmUgYW55IHMtZXhwcmVzc2lvbi4KCiAtLSBXaWRnZXQ6IGNvbnN0CiAgICAgVGhpcyB3 aWxsIGRpc3BsYXkgYW55IHZhbGlkIHMtZXhwcmVzc2lvbiBpbiBhbiBpbW11dGFibGUgcGFydCBv ZgogICAgIHRoZSBidWZmZXIuCgogICAgIEl0IG92ZXJyaWRlcyB0aGUg4oCYOnByb21wdC12YWx1 ZeKAmSBmdW5jdGlvbiwgdG8gYXZvaWQgcHJvbXB0aW5nIGFuZAogICAgIGp1c3QgcmV0dXJuIHRo ZSB3aWRnZXTigJlzIHZhbHVlLgoKICAgVGhlcmUgYXJlIHR3byB2YXJpYXRpb25zIG9mIHRoZSDi gJhjb25zdOKAmSB3aWRnZXQsIG5hbWVseQrigJh2YXJpYWJsZS1pdGVt4oCZIGFuZCDigJhmdW5j dGlvbi1pdGVt4oCZLiAgVGhlc2Ugc2hvdWxkIGNvbnRhaW4gYSBzeW1ib2wgd2l0aAphIHZhcmlh YmxlIG9yIGZ1bmN0aW9uIGJpbmRpbmcsIHJlc3BlY3RpdmVseS4gIFRoZSBtYWpvciBkaWZmZXJl bmNlIGZyb20KdGhlIOKAmGNvbnN04oCZIHdpZGdldCBpcyB0aGF0IHRoZXkgd2lsbCBhbGxvdyB0 aGUgdXNlciB0byBzZWUgdGhlIHZhcmlhYmxlCm9yIGZ1bmN0aW9uIGRvY3VtZW50YXRpb24gZm9y IHRoZSBzeW1ib2wuCgogICBUaGlzIGlzIGFjY29tcGxpc2hlZCB2aWEgdXNpbmcgdGhlIOKAmCVo 4oCZIGZvcm1hdCBlc2NhcGUsIGFuZCBhZGRpbmcgYW4KYXBwcm9waWF0ZSDigJg6ZG9jdW1lbnRh dGlvbi1wcm9wZXJ0eeKAmSBmdW5jdGlvbiBmb3IgZWFjaCB3aWRnZXQuCgogLS0gV2lkZ2V0OiB2 YXJpYWJsZS1pdGVtCiAgICAgQW4gaW1tdXRhYmxlIHN5bWJvbCB0aGF0IGlzIGJvdW5kIGFzIGEg dmFyaWFibGUuCgogLS0gV2lkZ2V0OiBmdW5jdGlvbi1pdGVtCiAgICAgQW4gaW1tdXRhYmxlIHN5 bWJvbCB0aGF0IGlzIGJvdW5kIGFzIGEgZnVuY3Rpb24uCgo4LjIuMiBHZW5lcmljIFNleHAgV2lk Z2V0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSDigJhzZXhw4oCZIHdpZGdldCBjYW4g Y29udGFpbiBhbnkgTGlzcCBleHByZXNzaW9uLCBhbmQgYWxsb3dzIHRoZSB1c2VyCnRvIGVkaXQg aXQgaW5saW5lIGluIHRoZSBidWZmZXIuCgogICBUaGUgc3ludGF4IGZvciB0aGUg4oCYc2V4cOKA mSB3aWRnZXQgaXM6CgogICAgIFRZUEUgOjo9IChzZXhwIFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAg WyBWQUxVRSBdKQoKIC0tIFdpZGdldDogc2V4cAogICAgIFRoaXMgd2lkZ2V0IHJlcHJlc2VudHMg YW4gZWRpdGFibGUgZmllbGQgdGhhdOKAmXMgdXNlZnVsIHRvIGVkaXQgYW55CiAgICAgdmFsaWQg cy1leHByZXNzaW9uLgoKICAgICBUaGUg4oCYc2V4cOKAmSB3aWRnZXQgdGFrZXMgdGhlIHNhbWUg a2V5d29yZCBhcmd1bWVudHMgYXMgdGhlCiAgICAg4oCYZWRpdGFibGUtZmllbGTigJkgd2lkZ2V0 LiAgKk5vdGUgZWRpdGFibGUtZmllbGQ6Oi4KCiAgICAgSXRzIGRlZmF1bHQgdmFsdWUgaXMg4oCY bmls4oCZLgoKIC0tIFdpZGdldDogcmVzdHJpY3RlZC1zZXhwCiAgICAgQSB3aWRnZXQgdG8gZWRp dCBMaXNwIGV4cHJlc3Npb25zIHJlc3RyaWN0ZWQgdG8gY2VydGFpbiB2YWx1ZXMgb3IKICAgICB0 eXBlcy4gIEl0cyBzdXBlciBpcyB0aGUg4oCYc2V4cOKAmSB3aWRnZXQuCgogICAgIEl0IHdvcmtz IGp1c3QgbGlrZSB0aGUgc2V4cCB3aWRnZXQsIGJ1dCBpdCBvdmVycmlkZXMgdGhlIOKAmDptYXRj aOKAmQogICAgIGZ1bmN0aW9uIHRvIG1hdGNoIGZvciBjZXJ0YWluIHZhbHVlcy4gIFRvIHVzZSB0 aGlzIHdpZGdldCwgZWl0aGVyCiAgICAgeW91IG11c3QgZGVmaW5lIGEg4oCYOm1hdGNo4oCZIGZ1 bmN0aW9uIG9yIGdpdmUgYSDigJg6bWF0Y2gtYWx0ZXJuYXRpdmVz4oCZCiAgICAgcHJvcGVydHku ICBUaGUg4oCYOm1hdGNoLWFsdGVybmF0aXZlc+KAmSBwcm9wZXJ0eSBob2xkcyBhIGxpc3Qgb2YK ICAgICBwcmVkaWNhdGUgZnVuY3Rpb25zIHRvIGNhbGwgd2hlbiBjaGVja2luZyBpZiBhIGdpdmVu IHZhbHVlIG1hdGNoZXMKICAgICB0aGUgd2lkZ2V0LiAgRWFjaCBwcmVkaWNhdGUgZnVuY3Rpb24g d2lsbCBiZSBjYWxsZWQgd2l0aCBvbmUKICAgICBhcmd1bWVudCwgdGhlIHZhbHVlIHRvIGJlIG1h dGNoZWQsIGFuZCBzaG91bGQgcmV0dXJuIG5vbi3igJhuaWzigJkgb24KICAgICBzdWNjZXNzLgoK ICAgICBBcyBhbiBleGFtcGxlLCB0aGUg4oCYaW50ZWdlcuKAmSB3aWRnZXQgb3ZlcnJpZGVzIOKA mDptYXRjaC1hbHRlcm5hdGl2ZXPigJkKICAgICB0byDigJgoaW50ZWdlcnAp4oCZLgoKOC4yLjMg QXRvbWljIFNleHAgV2lkZ2V0cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgYXRvbXMg YXJlIHMtZXhwcmVzc2lvbnMgdGhhdCBkbyBub3QgY29uc2lzdCBvZiBvdGhlciBzLWV4cHJlc3Np b25zLgpGb3IgZXhhbXBsZSwgYSBzdHJpbmcsIGEgZmlsZSBuYW1lLCBvciBhIHN5bWJvbCBhcmUg YXRvbXMsIHdoaWxlIGEgbGlzdAppcyBhIGNvbXBvc2l0ZSB0eXBlLiAgWW91IGNhbiBlZGl0IHRo ZSB2YWx1ZSBvZiBhbiBhdG9tIHdpdGggdGhlIHdpZGdldHMKZGVzY3JpYmVkIGluIHRoaXMgc2Vj dGlvbi4KCiAgIFRoZSBzeW50YXggZm9yIGFsbCB0aGUgYXRvbXMgaXM6CgogICAgIFRZUEUgOjo9 IChDT05TVFJVQ1QgW0tFWVdPUkQgQVJHVU1FTlRdLi4uICBbIFZBTFVFIF0pCgogICBUaGUgVkFM VUUsIGlmIHByZXNlbnQsIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg4oCYOnZhbHVl4oCZIHBy b3BlcnR5CmFuZCBtdXN0IGJlIGFuIGV4cHJlc3Npb24gb2YgdGhlIHNhbWUgdHlwZSBhcyB0aGUg d2lkZ2V0LiAgVGhhdCBpcywgZm9yCmV4YW1wbGUsIHRoZSBzdHJpbmcgd2lkZ2V0IGNhbiBvbmx5 IGJlIGluaXRpYWxpemVkIHdpdGggYSBzdHJpbmcuCgogICBBbGwgdGhlIGF0b20gd2lkZ2V0cyB0 YWtlIHRoZSBzYW1lIGtleXdvcmQgYXJndW1lbnRzIGFzIHRoZQrigJhlZGl0YWJsZS1maWVsZOKA mSB3aWRnZXQuICAqTm90ZSBlZGl0YWJsZS1maWVsZDo6LgoKIC0tIFdpZGdldDogc3RyaW5nCiAg ICAgQW4gZWRpdGFibGUgZmllbGQgd2lkZ2V0IHRoYXQgY2FuIHJlcHJlc2VudCBhbnkgTGlzcCBz dHJpbmcuCgogICAgIEl0IG9mZmVycyBjb21wbGV0aW9uIHZpYSB0aGUgaXNwZWxsIGxpYnJhcnkg YW5kIHRoZSDigJg6Y29tcGxldGXigJkKICAgICBwcm9wZXJ0eS4KCiAtLSBXaWRnZXQ6IHJlZ2V4 cAogICAgIEFuIGVkaXRhYmxlIGZpZWxkIHdpZGdldCB0aGF0IGNhbiByZXByZXNlbnQgYSByZWd1 bGFyIGV4cHJlc3Npb24uCgogICAgIE92ZXJyaWRlcyB0aGUg4oCYOm1hdGNo4oCZIGFuZCB0aGUg 4oCYOnZhbGlkYXRl4oCZIHByb3BlcnRpZXMgdG8gY2hlY2sgdGhhdAogICAgIHRoZSB2YWx1ZSBp cyBhIHZhbGlkIHJlZ2V4cC4KCiAtLSBXaWRnZXQ6IGNoYXJhY3RlcgogICAgIEFuIGVkaXRhYmxl IGZpZWxkIHdpZGdldCB0aGF0IGNhbiByZXByZXNlbnQgYSBjaGFyYWN0ZXIuCgogICAgIFRoZSBj aGFyYWN0ZXIgd2lkZ2V0IHJlcHJlc2VudHMgc29tZSBjaGFyYWN0ZXJzIChsaWtlIHRoZSBuZXds aW5lCiAgICAgY2hhcmFjdGVyKSBpbiBhIHNwZWNpYWwgbWFubmVyLCB0byBtYWtlIGl0IGVhc2ll ciBmb3IgdGhlIHVzZXIgdG8KICAgICBzZWUgd2hhdOKAmXMgdGhlIGNvbnRlbnQgb2YgdGhlIGNo YXJhY3RlciBmaWVsZC4KCiAtLSBXaWRnZXQ6IGZpbGUKICAgICBBIHdpZGdldCBmb3IgZWRpdGlu ZyBmaWxlIG5hbWVzLgoKICAgICBLZXl3b3JkczoKICAgICDigJg6Y29tcGxldGlvbnPigJkKICAg ICAgICAgIE9mZmVycyBmaWxlIG5hbWUgY29tcGxldGlvbiB0byB0aGUgdXNlci4KCiAgICAg4oCY OnByb21wdC12YWx1ZeKAmQogICAgICAgICAgQSBmdW5jdGlvbiB0byByZWFkIGEgZmlsZSBuYW1l IGZyb20gdGhlIG1pbmlidWZmZXIuCgogICAgIOKAmDptdXN0LW1hdGNo4oCZCiAgICAgICAgICBJ ZiB0aGlzIGlzIHNldCB0byBub24t4oCYbmls4oCZLCBvbmx5IGV4aXN0aW5nIGZpbGUgbmFtZXMg YXJlCiAgICAgICAgICBhbGxvd2VkIHdoZW4gcHJvbXB0aW5nIGZvciBhIHZhbHVlIGluIHRoZSBt aW5pYnVmZmVyLgoKICAgICDigJg6bWF0Y2jigJkKICAgICAgICAgIFRoZSB3aWRnZXQgbWF0Y2hl cyBpZiB0aGUgdmFsdWUgaXMgYSBzdHJpbmcsIGFuZCB0aGUgZmlsZQogICAgICAgICAgd2hvc2Ug bmFtZSBpcyB0aGF0IHN0cmluZyBpcyBhbiBleGlzdGluZyBmaWxlLCBvciBpZgogICAgICAgICAg 4oCYOm11c3QtbWF0Y2jigJkgaXMg4oCYbmls4oCZLgoKICAgICDigJg6dmFsaWRhdGXigJkKICAg ICAgICAgIFRoZSB3aWRnZXQgaXMgdmFsaWQgaWYgaXRzIHZhbHVlIG1hdGNoZXMuCgogLS0gV2lk Z2V0OiBkaXJlY3RvcnkKICAgICBBIHdpZGdldCBmb3IgZWRpdGluZyBkaXJlY3RvcnkgbmFtZXMu CgogICAgIEl0cyBzdXBlciBpcyB0aGUg4oCYZmlsZeKAmSB3aWRnZXQsIGFuZCBpdCBvdmVycmlk ZXMgdGhlIOKAmDpjb21wbGV0aW9uc+KAmQogICAgIHByb3BlcnR5LCB0byBvZmZlciBjb21wbGV0 aW9ucyBvbmx5IGZvciBkaXJlY3Rvcmllcy4KCiAtLSBXaWRnZXQ6IHN5bWJvbAogICAgIEEgd2lk Z2V0IGZvciBlZGl0aW5nIGEgTGlzcCBzeW1ib2wuCgogICAgIEl0cyB2YWx1ZSBieSBkZWZhdWx0 IGlzIOKAmG5pbOKAmS4KCiAtLSBXaWRnZXQ6IGZ1bmN0aW9uCiAgICAgQSB3aWRnZXQgZm9yIGVk aXRpbmcgYSBsYW1iZGEgZXhwcmVzc2lvbiwgb3IgYSBmdW5jdGlvbiBuYW1lLAogICAgIG9mZmVy aW5nIGNvbXBsZXRpb24uICBJdHMgc3VwZXIgaXMgdGhlIOKAmHJlc3RyaWN0ZWQtc2V4cOKAmSB3 aWRnZXQuCgogLS0gV2lkZ2V0OiB2YXJpYWJsZQogICAgIEEgd2lkZ2V0IGZvciBlZGl0aW5nIHZh cmlhYmxlIG5hbWVzLCBvZmZlcmluZyBjb21wbGV0aW9uLiAgSXRzCiAgICAgc3VwZXIgaXMgdGhl IOKAmHN5bWJvbOKAmSB3aWRnZXQuCgogLS0gV2lkZ2V0OiBpbnRlZ2VyCiAgICAgQSB3aWRnZXQg Zm9yIGVkaXRpbmcgaW50ZWdlcnMgaW4gYW4gZWRpdGFibGUgZmllbGQuICBJdHMgc3VwZXIgaXMK ICAgICB0aGUg4oCYcmVzdHJpY3RlZC1zZXhw4oCZIHdpZGdldC4KCiAgICAgSXQgaGFzIGEgZGVm YXVsdCDigJg6dmFsdWXigJkgb2YgMC4KCiAtLSBXaWRnZXQ6IG5hdG51bQogICAgIEEgd2lkZ2V0 IGZvciBlZGl0aW5nIG5vbi1uZWdhdGl2ZSBpbnRlZ2Vycy4gIEl0cyBzdXBlciBpcyB0aGUKICAg ICDigJhyZXN0cmljdGVkLXNleHDigJkgd2lkZ2V0LgoKICAgICBJdCBoYXMgYSBkZWZhdWx0IOKA mDp2YWx1ZeKAmSBvZiAwLgoKIC0tIFdpZGdldDogZmxvYXQKICAgICBBIHdpZGdldCBmb3IgZWRp dGluZyBhIGZsb2F0aW5nIHBvaW50IG51bWJlci4gIEl0cyBzdXBlciBpcyB0aGUKICAgICDigJhy ZXN0cmljdGVkLXNleHDigJkgd2lkZ2V0LgoKICAgICBJdCBoYXMgYSBkZWZhdWx0IOKAmDp2YWx1 ZeKAmSBvZiAwLjAuCgogLS0gV2lkZ2V0OiBudW1iZXIKICAgICBBIHdpZGdldCBmb3IgZWRpdGlu ZyBhIG51bWJlciwgZWl0aGVyIGZsb2F0aW5nIHBvaW50IG9yIGludGVnZXIuCiAgICAgSXRzIHN1 cGVyIGlzIHRoZSDigJhyZXN0cmljdGVkLXNleHDigJkgd2lkZ2V0LgoKICAgICBJdCBoYXMgYSBk ZWZhdWx0IOKAmDp2YWx1ZeKAmSBvZiAwLjAuCgogLS0gV2lkZ2V0OiBib29sZWFuCiAgICAgQSB3 aWRnZXQgZm9yIGVkaXRpbmcgYSBib29sZWFuIHZhbHVlLiAgSXRzIHN1cGVyIGlzIHRoZSDigJh0 b2dnbGXigJkKICAgICB3aWRnZXQuCgogICAgIEl0cyB2YWx1ZSBtYXkgYmUg4oCYbmls4oCZLCBt ZWFuaW5nIGZhbHNlLCBvciBub24t4oCYbmls4oCZLCBtZWFuaW5nIHRydWUuCgogLS0gV2lkZ2V0 OiBjb2xvcgogICAgIEEgd2lkZ2V0IHRvIGVkaXQgYSBjb2xvciBuYW1lLgoKICAgICBJbiBhZGRp dGlvbiwgc2hvd3MgYSBzYW1wbGUgdGhhdCBzaG93cyB0aGUgc2VsZWN0ZWQgY29sb3IsIGlmIGFu eS4KCiAtLSBXaWRnZXQ6IG90aGVyCiAgICAgQSB3aWRnZXQgdXNlZnVsIGFzIHRoZSBsYXN0IGl0 ZW0gaW4gYSDigJhjaG9pY2XigJkgd2lkZ2V0LCBzaW5jZSBpdAogICAgIG1hdGNoZXMgYW55IHZh bHVlLgoKICAgICBJdHMgc3VwZXIgaXMgdGhlIOKAmHNleHDigJkgd2lkZ2V0LCBhbmQgaXRzIOKA mDp2YWx1ZeKAmSBpcyDigJhvdGhlcuKAmSwgYnkKICAgICBkZWZhdWx0LgoKIC0tIFdpZGdldDog Y29kaW5nLXN5c3RlbQogICAgIEEgd2lkZ2V0IHRoYXQgY2FuIHJlcHJlc2VudCBhIGNvZGluZyBz eXN0ZW0gbmFtZSwgb2ZmZXJpbmcKICAgICBjb21wbGV0aW9ucy4gICpOb3RlIChlbGlzcClDb2Rp bmcgU3lzdGVtczo6LiAgSXRzIHN1cGVyIGlzIHRoZQogICAgIOKAmHN5bWJvbOKAmSB3aWRnZXQu CgogICAgIEl0IGhhcyBhIGRlZmF1bHQgdmFsdWUgb2Yg4oCYdW5kZWNpZGVk4oCZLgoKIC0tIFdp ZGdldDoga2V5CiAgICAgQSB3aWRnZXQgdG8gcmVwcmVzZW50IGEga2V5IHNlcXVlbmNlLgoKICAg ICBJdCB1c2VzIGEgc3BlY2lhbCBrZXltYXAgYXMgdGhlIOKAmDprZXltYXDigJkuCgo4LjIuNCBD b21wb3NpdGUgU2V4cCBXaWRnZXRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBz eW50YXggZm9yIHRoZSBjb21wb3NpdGUgd2lkZ2V0IGNvbnN0cnVjdCBpczoKCiAgICAgVFlQRSA6 Oj0gKENPTlNUUlVDVCBbS0VZV09SRCBBUkdVTUVOVF0uLi4gIENPTVBPTkVOVC4uLikKCndoZXJl IGVhY2ggQ09NUE9ORU5UIG11c3QgYmUgYSB3aWRnZXQgdHlwZS4gIEVhY2ggY29tcG9uZW50IHdp ZGdldCB3aWxsCmJlIGRpc3BsYXllZCBpbiB0aGUgYnVmZmVyLCBhbmQgd2lsbCBiZSBlZGl0YWJs ZSBieSB0aGUgdXNlci4KCiAtLSBXaWRnZXQ6IGNvbnMKICAgICBBIHdpZGdldCB0byBlZGl0IGNv bnMtY2VsbCB2YWx1ZXMuICBJdHMgc3VwZXIgaXMgdGhlIOKAmGdyb3Vw4oCZCiAgICAgd2lkZ2V0 LgoKICAgICBUaGUgdmFsdWUgb2YgYSDigJhjb25z4oCZIHdpZGdldCBtdXN0IGJlIGEgY29ucy1j ZWxsIHdob3NlIENBUiBhbmQgQ0RSCiAgICAgaGF2ZSB0d28gc3BlY2lmaWVkIHR5cGVzLiAgSXQg dXNlcyB0aGlzIHN5bnRheDoKCiAgICAgICAgICBUWVBFIDo6PSAoY29ucyBbS0VZV09SRCBBUkdV TUVOVF0uLi4gIENBUi1UWVBFIENEUi1UWVBFKQoKIC0tIFdpZGdldDogY2hvaWNlCiAgICAgQSB3 aWRnZXQgdG8gaG9sZCBhIHZhbHVlIG9mIG9uZSBvZiBhIGZpeGVkIHNldCBvZiB0eXBlcy4gIEl0 cyBzdXBlcgogICAgIGlzIHRoZSDigJhtZW51LWNob2ljZeKAmSB3aWRnZXQuCgogICAgIFRoZSB3 aWRnZXTigJlzIHN5bnRheCBpcyBhcyBmb2xsb3dzOgoKICAgICAgICAgIFRZUEUgOjo9IChjaG9p Y2UgW0tFWVdPUkQgQVJHVU1FTlRdLi4uICBUWVBFIC4uLiApCgogICAgIFRoZSB2YWx1ZSBvZiBh IOKAmGNob2ljZeKAmSB3aWRnZXQgY2FuIGJlIGFueXRoaW5nIHRoYXQgbWF0Y2hlcyBhbnkgb2YK ICAgICB0aGUgVFlQRVMuCgogICAgIFRoaXMgd2lkZ2V0IG9ubHkgZGlzcGxheXMgdGhlIHdpZGdl dCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZQogICAgIGN1cnJlbnQgY2hvaWNlLgoKIC0tIFdpZGdl dDogcmFkaW8KICAgICBBIHdpZGdldCB0byBob2xkIGEgdmFsdWUgb2Ygb25lIG9mIGEgZml4ZWQg c2V0IG9mIG9wdGlvbnMuICBJdHMKICAgICBzdXBlciBpcyB0aGUg4oCYcmFkaW8tYnV0dG9uLWNo b2ljZeKAmSB3aWRnZXQuCgogLS0gV2lkZ2V0OiBsaXN0CiAgICAgQSB3aWRnZXQgdG8gZWRpdCBh IGxpc3QgdmFsdWUuICBJdHMgc3VwZXIgaXMgdGhlIOKAmGdyb3Vw4oCZIHdpZGdldC4KCiAgICAg VGhlIHZhbHVlIG9mIGEg4oCYbGlzdOKAmSB3aWRnZXQgbXVzdCBiZSBhIGxpc3Qgd2hvc2UgZWxl bWVudCB0eXBlcwogICAgIG1hdGNoIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50IHR5cGVzOgoKICAg ICAgICAgIFRZUEUgOjo9IChsaXN0IFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgQ09NUE9ORU5ULVRZ UEUuLi4pCgogICAgIFRodXMsIGZvciBleGFtcGxlLCDigJgobGlzdCBzdHJpbmcgbnVtYmVyKeKA mSBtYXRjaGVzIGxpc3RzIG9mIHR3bwogICAgIGVsZW1lbnRzLCB0aGUgZmlyc3QgYmVpbmcgYSBz dHJpbmcgYW5kIHRoZSBzZWNvbmQgYmVpbmcgYSBudW1iZXIuCgogLS0gV2lkZ2V0OiB2ZWN0b3IK ICAgICBBIHdpZGdldCB0byBlZGl0IGEgdmVjdG9yIHZhbHVlLiAgSXRzIHN1cGVyIGlzIHRoZSDi gJhncm91cOKAmSB3aWRnZXQuCgogICAgIFRoZSDigJh2ZWN0b3LigJkgd2lkZ2V0IGlzIGxpa2Ug dGhlIOKAmGxpc3TigJkgd2lkZ2V0IGJ1dCBtYXRjaGVzIHZlY3RvcnMKICAgICBpbnN0ZWFkIG9m IGxpc3RzLiAgVGh1cywgZm9yIGV4YW1wbGUsIOKAmCh2ZWN0b3Igc3RyaW5nIG51bWJlcinigJkK ICAgICBtYXRjaGVzIHZlY3RvcnMgb2YgdHdvIGVsZW1lbnRzLCB0aGUgZmlyc3QgYmVpbmcgYSBz dHJpbmcgYW5kIHRoZQogICAgIHNlY29uZCBiZWluZyBhIG51bWJlci4KCiAgIFRoZSBhYm92ZSBz dWZmaWNlIGZvciBzcGVjaWZ5aW5nIGZpeGVkIHNpemUgbGlzdHMgYW5kIHZlY3RvcnMuICBUbwpn ZXQgdmFyaWFibGUgbGVuZ3RoIGxpc3RzIGFuZCB2ZWN0b3JzLCB5b3UgY2FuIHVzZSBhIOKAmGNo b2ljZeKAmSwg4oCYc2V04oCZLCBvcgrigJhyZXBlYXTigJkgd2lkZ2V0IHRvZ2V0aGVyIHdpdGgg dGhlIOKAmDppbmxpbmXigJkga2V5d29yZC4gIElmIGFueSBjb21wb25lbnQKb2YgYSBjb21wb3Np dGUgd2lkZ2V0IGhhcyB0aGUg4oCYOmlubGluZeKAmSBrZXl3b3JkIHNldCwgaXRzIHZhbHVlIG11 c3QgYmUgYQpsaXN0IHdoaWNoIHdpbGwgdGhlbiBiZSBzcGxpY2VkIGludG8gdGhlIGNvbXBvc2l0 ZS4gIEZvciBleGFtcGxlLCB0bwpzcGVjaWZ5IGEgbGlzdCB3aG9zZSBmaXJzdCBlbGVtZW50IG11 c3QgYmUgYSBmaWxlIG5hbWUsIGFuZCB3aG9zZQpyZW1haW5pbmcgZWxlbWVudHMgc2hvdWxkIGVp dGhlciBiZSB0aGUgc3ltYm9sIOKAmHTigJkgb3IgdHdvIHN0cmluZ3MgKGZpbGUKbmFtZXMpLCB5 b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIHdpZGdldCBzcGVjaWZpY2F0aW9uOgoKICAgICAobGlz dCBmaWxlCiAgICAgICAgICAgKGNob2ljZSAoY29uc3QgdCkKICAgICAgICAgICAgICAgICAgIChs aXN0IDppbmxpbmUgdAogICAgICAgICAgICAgICAgICAgICAgICAgOnZhbHVlICgiZm9vIiAiYmFy IikKICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBzdHJpbmcpKSkKCiAgIFRoZSB2YWx1 ZSBvZiBhIHdpZGdldCBvZiB0aGlzIHR5cGUgd2lsbCBlaXRoZXIgaGF2ZSB0aGUgZm9ybSDigJgo ZmlsZQp0KeKAmSBvciDigJgoZmlsZSBTVFJJTkcgU1RSSU5HKeKAmS4KCiAgIFRoaXMgY29uY2Vw dCBvZiDigJg6aW5saW5l4oCZIG1heSBiZSBoYXJkIHRvIHVuZGVyc3RhbmQuICBJdCB3YXMKY2Vy dGFpbmx5IGhhcmQgdG8gaW1wbGVtZW50LCBzbyBpbnN0ZWFkIG9mIGNvbmZ1c2luZyB5b3UgbW9y ZSBieSB0cnlpbmcKdG8gZXhwbGFpbiBpdCBoZXJlLCBJ4oCZbGwganVzdCBzdWdnZXN0IHlvdSBt ZWRpdGF0ZSBvdmVyIGl0IGZvciBhIHdoaWxlLgoKIC0tIFdpZGdldDogc2V0CiAgICAgQSB3aWRn ZXQgdG8gaG9sZCBhIGxpc3Qgb2YgbWVtYmVycyBmcm9tIGEgZml4ZWQgc2V0LiAgSXRzIHN1cGVy IGlzCiAgICAgdGhlIOKAmGNoZWNrbGlzdOKAmSB3aWRnZXQuCgogICAgIEl0cyB2YWx1ZSBpcyBh IGxpc3Qgd2hlcmUgdGhlIGVsZW1lbnRzIGFsbCBiZWxvbmcgdG8gYSBnaXZlbiBzZXQuCiAgICAg VGhlIG9yZGVyIG9mIGVsZW1lbnRzIG9mIHRoZSBsaXN0IGlzIG5vdCBzaWduaWZpY2FudC4KCiAg ICAgSGVyZeKAmXMgdGhlIHN5bnRheDoKCiAgICAgICAgICBUWVBFIDo6PSAoc2V0IFtLRVlXT1JE IEFSR1VNRU5UXS4uLiAgUEVSTUlUVEVELUVMRU1FTlQgLi4uICkKCiAgICAgVXNlIOKAmGNvbnN0 4oCZIHRvIHNwZWNpZnkgZWFjaCBwZXJtaXR0ZWQgZWxlbWVudCwgbGlrZSB0aGlzOiDigJgoc2V0 CiAgICAgKGNvbnN0IGEpIChjb25zdCBiKSnigJkuCgogLS0gV2lkZ2V0OiByZXBlYXQKICAgICBT cGVjaWZpZXMgYSBsaXN0IG9mIGFueSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdCBmaXQgYSBjZXJ0 YWluIHR5cGUuCiAgICAgSXRzIHN1cGVyIGlzIHRoZSDigJhlZGl0YWJsZS1saXN04oCZIHdpZGdl dC4KCiAgICAgICAgICBUWVBFIDo6PSAocmVwZWF0IFtLRVlXT1JEIEFSR1VNRU5UXS4uLiAgVFlQ RSkKCiAtLSBXaWRnZXQ6IHBsaXN0CiAgICAgQSB3aWRnZXQgdG8gZWRpdCBwcm9wZXJ0eSBsaXN0 cy4gIEl0cyBzdXBlciBpcyB0aGUg4oCYbGlzdOKAmSB3aWRnZXQuCgogICAgIEl0IHJlY29nbml6 ZXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgoKICAgICDigJg6b3B0aW9uc+KAmQogICAgICAg ICAgQSBnaXZlbiBzZXQgb2YgcmVjb21tZW5kZWQga2V5LXZhbHVlIHZhbHVlcyBmb3IgdGhlIOKA mHBsaXN04oCZCiAgICAgICAgICB3aWRnZXQuICBFYWNoIG9wdGlvbiBzaG93cyB1cCBhcyBhIGNo ZWNrbGlzdCBpdGVtLgoKICAgICDigJg6a2V5LXR5cGXigJkKICAgICAgICAgIFRoZSB3aWRnZXQg dHlwZSB0byB1c2UgZm9yIHRoZSBwbGlzdCBrZXlzLiAgQnkgZGVmYXVsdCwgaXQKICAgICAgICAg IHVzZXMgdGhlIOKAmHN5bWJvbOKAmSB3aWRnZXQuCgogICAgIOKAmDp2YWx1ZS10eXBl4oCZCiAg ICAgICAgICBUaGUgd2lkZ2V0IHR5cGUgdG8gdXNlIGZvciB0aGUgcGxpc3QgdmFsdWVzLiAgQnkg ZGVmYXVsdCwgaXQKICAgICAgICAgIHVzZXMgdGhlIOKAmHNleHDigJkgd2lkZ2V0LgoKIC0tIFdp ZGdldDogYWxpc3QKICAgICBBIHdpZGdldCB0byBlZGl0IGFzc29jaWF0aW9uIGxpc3RzLiAgSXRz IHN1cGVyIGlzIHRoZSDigJhsaXN04oCZCiAgICAgd2lkZ2V0LgoKICAgICBJdCByZWNvZ25pemVz IHRoZSBzYW1lIHByb3BlcnRpZXMgdGhhdCB0aGUg4oCYcGxpc3TigJkgd2lkZ2V0LCB3aXRoIHRo ZQogICAgIGRpZmZlcmVuY2UgdGhhdCB0aGUg4oCYOmtleS10eXBl4oCZIHVzZXMgYnkgZGVmYXVs dCBhIOKAmHNleHDigJkgd2lkZ2V0LgoKICAgTW9zdCBjb21wb3NpdGUgd2lkZ2V0cyBkbyBub3Qg YWxsb3cgZm9yIHJlY3Vyc2lvbi4gIFRoYXQgaXMsIG5vbmUgb2YKdGhlIGNvbnRhaW5lZCB3aWRn ZXRzIG1heSBiZSBvZiB0aGUgc2FtZSB0eXBlIHRoYXQgaXMgY3VycmVudGx5IGJlaW5nCmRlZmlu ZWQuICBUbyBhbGxvdyBmb3IgdGhpcyBraW5kIG9mIHdpZGdldHMsIHRoZXJl4oCZcyB0aGUg4oCY bGF6eeKAmSB3aWRnZXQuCgogLS0gV2lkZ2V0OiBsYXp5CiAgICAgQSBiYXNlIHdpZGdldCBmb3Ig cmVjdXJzaXZlIGRhdGEgc3RydWN0dXJlcy4gIEl0cyBzdXBlciBpcyB0aGUKICAgICDigJhkZWZh dWx04oCZIHdpZGdldC4KCiAgICAgV2hlbiBpbnN0YW50aWF0ZWQsIGl0IGNvbnRhaW5zIGEgc2lu Z2xlIGluZmVyaW9yIHdpZGdldCBvZiB0aGUKICAgICB3aWRnZXQgdHlwZSBzcGVjaWZpZWQgaW4g dGhlIOKAmDp0eXBl4oCZIHByb3BlcnR5LiAgSXRzIHZhbHVlIGlzIHRoZQogICAgIHNhbWUgYXMg dGhlIHZhbHVlIG9mIHRoaXMgaW5mZXJpb3Igd2lkZ2V0LgoKOSBEZWZpbmluZyBOZXcgV2lkZ2V0 cwoqKioqKioqKioqKioqKioqKioqKioqCgpZb3UgY2FuIGRlZmluZSBzcGVjaWFsaXplZCB3aWRn ZXRzIHdpdGgg4oCYZGVmaW5lLXdpZGdldOKAmS4gIEl0IGFsbG93cyB5b3UKdG8gY3JlYXRlIGEg c2hvcnRoYW5kIGZvciBtb3JlIGNvbXBsZXggd2lkZ2V0cywgaW5jbHVkaW5nIHNwZWNpZnlpbmcK Y29tcG9uZW50IHdpZGdldHMgYW5kIG5ldyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGtleXdvcmQg YXJndW1lbnRzLgoKIC0tIEZ1bmN0aW9uOiBkZWZpbmUtd2lkZ2V0IG5hbWUgY2xhc3MgZG9jICZy ZXN0IGFyZ3MKICAgICBEZWZpbmUgYSBuZXcgd2lkZ2V0IHR5cGUgbmFtZWQgTkFNRSB0aGF0IGRl cml2ZXMgZnJvbSBDTEFTUy4KCiAgICAgTkFNRSBhbmQgQ0xBU1Mgc2hvdWxkIGJvdGggYmUgc3lt Ym9scywgYW5kIENMQVNTIHNob3VsZCBiZSBvbmUgb2YKICAgICB0aGUgZXhpc3Rpbmcgd2lkZ2V0 IHR5cGVzLgoKICAgICBUaGUgdGhpcmQgYXJndW1lbnQgRE9DIGlzIGEgZG9jdW1lbnRhdGlvbiBz dHJpbmcgZm9yIHRoZSB3aWRnZXQuCgogICAgIEFSR1Mgc2hvdWxkIGJlIGtleS12YWx1ZSBwYWly cywgb3ZlcnJpZGluZyBrZXl3b3JkIHZhbHVlcyBvZiBDTEFTUywKICAgICBvciBhZGRpbmcgbmV3 IHJlY29nbml6ZWQga2V5d29yZHMgZm9yIE5BTUUuCgogICAgIFVzdWFsbHksIHlvdeKAmWxsIHdh bnQgdG8gZGVyaXZlIGZyb20gYW4gZXhpc3Rpbmcgd2lkZ2V0IHR5cGUsIGxpa2UKICAgICB0aGUg 4oCYZWRpdGFibGUtZmllbGTigJkgd2lkZ2V0LCBvciB0aGUg4oCYZGVmYXVsdOKAmSB3aWRnZXQs IGJ1dCBpdOKAmXMgYWxzbwogICAgIHBvc3NpYmxlIHRvIGRlcml2ZSBmcm9tIG5vdGhpbmcsIGJ5 IHBhc3NpbmcgYSB2YWx1ZSBvZiDigJhuaWzigJkgYXMKICAgICBDTEFTUy4gIE5vdGUgdGhhdCBp ZiB5b3UgZG8gdGhpcywgeW914oCZcmUgZW50aXJlbHkgcmVzcG9uc2libGUgZm9yCiAgICAgZGVm aW5pbmcgYSB3aG9sZSBuZXcgZGVmYXVsdCBiZWhhdmlvciBmb3IgeW91ciB3aWRnZXRzLgoKICAg ICBBZnRlciB1c2luZyB0aGlzIGZ1bmN0aW9uLCB0aGUgZm9sbG93aW5nIHR3byBjYWxscyB3aWxs IGNyZWF0ZQogICAgIGlkZW50aWNhbCB3aWRnZXRzOgoKICAgICAgICDigKIgICAgICAod2lkZ2V0 LWNyZWF0ZSBOQU1FKQoKICAgICAgICDigKIgICAgICAoYXBwbHkgd2lkZ2V0LWNyZWF0ZSBDTEFT UyBBUkdTKQoKICAgVXNpbmcg4oCYZGVmaW5lLXdpZGdldOKAmSBqdXN0IHN0b3JlcyB0aGUgZGVm aW5pdGlvbiBvZiB0aGUgd2lkZ2V0IHR5cGUKaW4gdGhlIOKAmHdpZGdldC10eXBl4oCZIHByb3Bl cnR5IG9mIE5BTUUsIHdoaWNoIGlzIHdoYXQg4oCYd2lkZ2V0LWNyZWF0ZeKAmQp1c2VzLgoKICAg SWYgeW91IG9ubHkgd2FudCB0byBzcGVjaWZ5IGRlZmF1bHRzIGZvciBrZXl3b3JkcyB3aXRoIG5v IGNvbXBsZXgKY29udmVyc2lvbnMsIHlvdSBjYW4gdXNlIOKAmGlkZW50aXR54oCZIGFzIHlvdXIg Y29udmVyc2lvbiBmdW5jdGlvbi4KCiAgIFdoZW4gZGVmaW5pbmcgbmV3IHdpZGdldHMsIHRoZSDi gJg6Y29udmVydC13aWRnZXTigJkgcHJvcGVydHkgbWlnaHQgYmUKdXNlZnVsOgoK4oCYOmNvbnZl cnQtd2lkZ2V04oCZCiAgICAgRnVuY3Rpb24gdG8gY29udmVydCBhIHdpZGdldCB0eXBlIGJlZm9y ZSBjcmVhdGluZyBhIHdpZGdldCBvZiB0aGF0CiAgICAgdHlwZS4KCiAgICAgSXQgdGFrZXMgYSB3 aWRnZXQgdHlwZSBhcyBhbiBhcmd1bWVudCwgYW5kIHJldHVybnMgdGhlIGNvbnZlcnRlZAogICAg IHdpZGdldCB0eXBlLiAgV2hlbiBhIHdpZGdldCBpcyBjcmVhdGVkLCB0aGlzIGZ1bmN0aW9uIGlz IGNhbGxlZCBmb3IKICAgICB0aGUgd2lkZ2V0IHR5cGUgYW5kIGFsbCB0aGUgd2lkZ2V04oCZcyBw YXJlbnQgdHlwZXMsIG1vc3QgZGVyaXZlZAogICAgIGZpcnN0LgoKICAgICBUaGUgcHJlZGVmaW5l ZCBmdW5jdGlvbnMg4oCYd2lkZ2V0LXR5cGVzLWNvbnZlcnQtd2lkZ2V04oCZIGFuZAogICAgIOKA mHdpZGdldC12YWx1ZS1jb252ZXJ0LXdpZGdldOKAmSBjYW4gYmUgdXNlZCBoZXJlLgoKMTAgSW5z cGVjdGluZyBXaWRnZXRzCioqKioqKioqKioqKioqKioqKioqKgoKVGhlcmUgaXMgYSBzZXBhcmF0 ZSBwYWNrYWdlIHRvIGJyb3dzZSB3aWRnZXRzLCBpbiDigJh3aWQtYnJvd3NlLmVs4oCZLiAgVGhp cwppcyBpbnRlbmRlZCB0byBoZWxwIHByb2dyYW1tZXJzIHdobyB3YW50IHRvIGV4YW1pbmUgdGhl IGNvbnRlbnQgb2YgYQp3aWRnZXQuICBUaGUgYnJvd3NlciBzaG93cyB0aGUgdmFsdWUgb2YgZWFj aCBrZXl3b3JkLCBidXQgdXNlcyBsaW5rcyBmb3IKY2VydGFpbiBrZXl3b3JkcyBzdWNoIGFzIOKA mDpwYXJlbnTigJksIHdoaWNoIGF2b2lkcyBwcmludGluZyBjeWNsaWMKc3RydWN0dXJlcy4KCiAt LSBDb21tYW5kOiB3aWRnZXQtYnJvd3NlIFdJREdFVAogICAgIENyZWF0ZSBhIHdpZGdldCBicm93 c2VyIGZvciBXSURHRVQuCgogICAgIFdoZW4gY2FsbGVkIGludGVyYWN0aXZlbHksIHByb21wdCBm b3IgV0lER0VULgoKIC0tIENvbW1hbmQ6IHdpZGdldC1icm93c2Utb3RoZXItd2luZG93IFdJREdF VAogICAgIENyZWF0ZSBhIHdpZGdldCBicm93c2VyIGZvciBXSURHRVQgYW5kIHNob3cgaXQgaW4g YW5vdGhlciB3aW5kb3cuCgogICAgIFdoZW4gY2FsbGVkIGludGVyYWN0aXZlbHksIHByb21wdCBm b3IgV0lER0VULgoKIC0tIENvbW1hbmQ6IHdpZGdldC1icm93c2UtYXQgUE9TCiAgICAgQ3JlYXRl IGEgd2lkZ2V0IGJyb3dzZXIgZm9yIHRoZSB3aWRnZXQgYXQgUE9TLgoKICAgICBXaGVuIGNhbGxl ZCBpbnRlcmFjdGl2ZWx5LCB1c2UgdGhlIHBvc2l0aW9uIG9mIHBvaW50LgoKICAgSW4gYWRkaXRp b24sIHRoZXJl4oCZcyBhIGZ1bmN0aW9uIHRvIGRlc2NyaWJlIHRoZSB3aWRnZXQgYXQgcG9pbnQu CgogLS0gQ29tbWFuZDogd2lkZ2V0LWRlc2NyaWJlICZvcHRpb25hbCB3aWRnZXQtb3ItcG9zCiAg ICAgRGVzY3JpYmUgdGhlIHdpZGdldCBhdCBwb2ludC4KCiAgICAgV2hlbiBjYWxsZWQgZnJvbSBM aXNwLCBXSURHRVQtT1ItUE9TIG1pZ2h0IGJlIHRoZSB3aWRnZXQgdG8KICAgICBkZXNjcmliZSBv ciBhIGJ1ZmZlciBwb3NpdGlvbiB3aGVyZSBhIHdpZGdldCBpcyBwcmVzZW50LiAgSWYKICAgICBX SURHRVQtT1ItUE9TIGlzIOKAmG5pbOKAmSwgdGhlIHdpZGdldCB0byBkZXNjcmliZSBpcyB0aGUg d2lkZ2V0IGF0CiAgICAgcG9pbnQuCgogICAgIFRoaXMgY29tbWFuZCBzZXRzIHVwIGEgaGVscCBi dWZmZXIgZm9yIHByb3ZpZGluZyBpbmZvcm1hdGlvbiBhYm91dAogICAgIHRoZSB3aWRnZXQsIG1h aW5seSBpdHMg4oCYOmFjdGlvbuKAmSBhbmQg4oCYOm1vdXNlLWRvd24tYWN0aW9u4oCZCiAgICAg ZnVuY3Rpb25zLCBhbmQgcHJvdmlkZXMgbGlua3MgdG8gZGVzY3JpYmUgaXQgaW4gbW9yZSBkZXRh aWwgdXNpbmcKICAgICB0aGUg4oCYd2lkZ2V0LWJyb3dzZeKAmSBjb21tYW5kcyBkZXNjcmliZWQg YWJvdmUuCgoxMSBXaWRnZXQgTWlub3IgTW9kZQoqKioqKioqKioqKioqKioqKioqKgoKVGhlcmUg aXMgYSBtaW5vciBtb2RlIGZvciBtYW5pcHVsYXRpbmcgd2lkZ2V0cyBpbiBtYWpvciBtb2RlcyB0 aGF0IGRvbuKAmXQKcHJvdmlkZSBhbnkgc3VwcG9ydCBmb3Igd2lkZ2V0cyB0aGVtc2VsdmVzLiAg VGhpcyBpcyBtb3N0bHkgaW50ZW5kZWQgdG8KYmUgdXNlZnVsIGZvciBwcm9ncmFtbWVycyBkb2lu ZyBleHBlcmltZW50cy4KCiAtLSBDb21tYW5kOiB3aWRnZXQtbWlub3ItbW9kZQogICAgIFRvZ2ds ZSBtaW5vciBtb2RlIGZvciB0cmF2ZXJzaW5nIHdpZGdldHMuICBXaXRoIGFyZywgdHVybiB3aWRn ZXQKICAgICBtb2RlIG9uIGlmIGFuZCBvbmx5IGlmIGFyZyBpcyBwb3NpdGl2ZS4KCiAtLSBWYXJp YWJsZTogd2lkZ2V0LW1pbm9yLW1vZGUta2V5bWFwCiAgICAgS2V5bWFwIHVzZWQgaW4g4oCYd2lk Z2V0LW1pbm9yLW1vZGXigJkuCgoxMiBVdGlsaXRpZXMKKioqKioqKioqKioqCgpIZXJlIHdlIGRl c2NyaWJlIHNvbWUgdXRpbGl0eSBmdW5jdGlvbnMgdGhhdCBkb27igJl0IHJlYWxseSBoYXZlIGEg cGxhY2UKZWFybGllciBpbiB0aGlzIG1hbnVhbC4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LXByb21w dC12YWx1ZSB3aWRnZXQgcHJvbXB0IFsgdmFsdWUgdW5ib3VuZCBdCiAgICAgUHJvbXB0IGZvciBh IHZhbHVlIG1hdGNoaW5nIFdJREdFVCwgdXNpbmcgUFJPTVBULiAgVGhlIGN1cnJlbnQKICAgICB2 YWx1ZSBpcyBhc3N1bWVkIHRvIGJlIFZBTFVFLCB1bmxlc3MgVU5CT1VORCBpcyBub24t4oCYbmls 4oCZLgoKICAgICBDb252ZXJ0cyBXSURHRVQgYmVmb3JlIHByb21wdGluZywgYW5kIGZvciBwcm9t cHRpbmcgaXQgdXNlcyB0aGUKICAgICDigJg6cHJvbXB0LXZhbHVl4oCZIGZ1bmN0aW9uLiAgVGhp cyBmdW5jdGlvbiByZXR1cm5zIHRoZSB1c2VyIOKAnGFuc3dlcuKAnSwKICAgICBhbmQgaXTigJlz IGFuIGVycm9yIGlmIHRoYXQgYW5zd2VyIGRvZXNu4oCZdCBtYXRjaCB0aGUgd2lkZ2V0LCBhcyB3 aXRoCiAgICAgdGhlIOKAmDptYXRjaOKAmSBmdW5jdGlvbi4KCiAgICAgSWYgdGhlIGFuc3dlciBt YXRjaGVzIHRoZSB3aWRnZXQsIHJldHVybnMgdGhlIGFuc3dlci4KCiAtLSBGdW5jdGlvbjogd2lk Z2V0LWdldC1zaWJsaW5nIHdpZGdldAogICAgIEdldCB0aGUgaXRlbSB3aGljaCBXSURHRVQgc2hv dWxkIHRvZ2dsZS4gIFRoaXMgaXMgb25seSBtZWFuaW5nZnVsCiAgICAgZm9yIHJhZGlvIGJ1dHRv bnMgb3IgY2hlY2tib3hlcyBpbiBhIGxpc3QuCgogLS0gRnVuY3Rpb246IHdpZGdldC1jaG9vc2Ug dGl0bGUgaXRlbXMgJm9wdGlvbmFsIGV2ZW50CiAgICAgUHJvbXB0IHRoZSB1c2VyIHRvIGNob29z ZSBhbiBpdGVtIGZyb20gYSBsaXN0IG9mIG9wdGlvbnMuCgogICAgIFRJVExFIGlzIHRoZSBuYW1l IG9mIHRoZSBsaXN0IG9mIG9wdGlvbnMuICBJVEVNUyBzaG91bGQgYmUgYSBtZW51LAogICAgIHdp dGggaXRzIGl0ZW1zIGluIHRoZSBzaW1wbGUgZm9ybWF0IG9yIGluIHRoZSBleHRlbmRlZCBmb3Jt YXQuCiAgICAgKk5vdGUgRGVmaW5pbmcgTWVudXM6IChlbGlzcClEZWZpbmluZyBNZW51cy4gIElu ZGVwZW5kZW50bHkgb2YgdGhlCiAgICAgZm9ybWF0LCB5b3UgZG9u4oCZdCBoYXZlIHRvIHByb3Zp ZGUgYSB0aXRsZSBmb3IgdGhlIG1lbnUsIGp1c3QgcGFzcwogICAgIHRoZSBkZXNpcmVkIHRpdGxl IGluIFRJVExFLiAgVGhlIG9wdGlvbmFsIEVWRU5UIGlzIGFuIGlucHV0IGV2ZW50LgogICAgIElm IEVWRU5UIGlzIGEgbW91c2UgZXZlbnQgYW5kIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gSVRF TVMgaXMKICAgICBsZXNzIHRoYW4gdGhlIHVzZXIgb3B0aW9uIOKAmHdpZGdldC1tZW51LW1heC1z aXpl4oCZLCB0aGVuCiAgICAg4oCYd2lkZ2V0LWNob29zZeKAmSB1c2VzIGEgcG9wdXAgbWVudSB0 byBwcm9tcHQgdGhlIHVzZXIuICBPdGhlcndpc2UsCiAgICAg4oCYd2lkZ2V0LWNob29zZeKAmSB1 c2VzIHRoZSBtaW5pYnVmZmVyLgoKICAgICBXaGVuIElURU1TIGlzIGEga2V5bWFwIG1lbnUsIHRo ZSByZXR1cm5lZCB2YWx1ZSBpcyB0aGUgc3ltYm9sIGluCiAgICAgdGhlIGtleSB2ZWN0b3IsIGFz IGluIHRoZSBhcmd1bWVudCBvZiDigJhkZWZpbmUta2V54oCZICgqbm90ZQogICAgIChlbGlzcClD aGFuZ2luZyBLZXkgQmluZGluZ3M6OikuICBXaGVuIElURU1TIGlzIGEgbGlzdCB3aG9zZQogICAg IHNlbGVjdGFibGUgaXRlbXMgYXJlIG9mIHRoZSBmb3JtIChOQU1FIC4gIFZBTFVFKSAoaS5lLiwg dGhlCiAgICAgc2ltcGxpZmllZCBmb3JtYXQpLCB0aGVuIHRoZSByZXR1cm4gdmFsdWUgaXMgdGhl IFZBTFVFIG9mIHRoZQogICAgIGNob3NlbiBlbGVtZW50LgoKIC0tIEZ1bmN0aW9uOiB3aWRnZXQt aW1hZ2UtZmluZCBpbWFnZQogICAgIENyZWF0ZSBhIGdyYXBoaWNhbCBidXR0b24gZnJvbSBJTUFH RSwgYW4gaW1hZ2Ugb3IgYSBmaWxlIG5hbWUgc2FucwogICAgIGV4dGVuc2lvbi4KCiAgICAgSWYg SU1BR0UgaXMgYSBmaWxlIG5hbWUsIHRoZSBmaWxlIHNob3VsZCBiZSBpbgogICAgIOKAmHdpZGdl dC1pbWFnZS1kaXJlY3RvcnnigJksIG9yIGluIGEgcGxhY2Ugd2hlcmUg4oCYZmluZC1pbWFnZeKA mSB3aWxsCiAgICAgZmluZCBpdC4KCiAtLSBGdW5jdGlvbjogd2lkZ2V0LWltYWdlLWluc2VydCB3 aWRnZXQgdGFnIGltYWdlCiAgICAgQXMgcGFydCBvZiBXSURHRVQsIGluc2VydCB0aGUgdGV4dCBU QUcgb3IsIGlmIHN1cHBvcnRlZCwgdGhlIGltYWdlCiAgICAgSU1BR0UuCgogICAgIElNQUdFIHNo b3VsZCBiZSBhcyBkZXNjcmliZWQgaW4g4oCYd2lkZ2V0LWltYWdlLWZpbmTigJkuCgogLS0gRnVu Y3Rpb246IHdpZGdldC1lY2hvLWhlbHAgcG9zCiAgICAgRGlzcGxheSBoZWxwLWVjaG8gdGV4dCBm b3IgdGhlIHdpZGdldCBhdCBQT1MuCgogICAgIFVzZXMgdGhlIHZhbHVlIG9mIOKAmDpoZWxwLWVj aG/igJkuICBJZiBpdCBpcyBhIGZ1bmN0aW9uLCBpdCBjYWxscyBpdAogICAgIHRvIGdldCBhIHN0 cmluZy4gIE90aGVyd2lzZSwgaXQg4oCYZXZhbOKAmXMgaXQuCgoxMyBDdXN0b21pemF0aW9uCioq KioqKioqKioqKioqKioKClRoaXMgY2hhcHRlciBpcyBhYm91dCB0aGUgY3VzdG9taXphdGlvbiBv cHRpb25zIGZvciB0aGUgV2lkZ2V0IGxpYnJhcnksCmZvciB0aGUgZW5kIHVzZXIuCgogLS0gRmFj ZTogd2lkZ2V0LWZpZWxkLWZhY2UKICAgICBGYWNlIHVzZWQgZm9yIG90aGVyIGVkaXRpbmcgZmll bGRzLgoKIC0tIEZhY2U6IHdpZGdldC1idXR0b24tZmFjZQogICAgIEZhY2UgdXNlZCBmb3IgYnV0 dG9ucy4KCiAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LW1vdXNlLWZhY2UKICAgICBGYWNlIHVzZWQg Zm9yIGhpZ2hsaWdodGluZyBhIGJ1dHRvbiB3aGVuIHRoZSBtb3VzZSBwb2ludGVyIG1vdmVzCiAg ICAgYWNyb3NzIGl0LgoKICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyDigJhoaWdobGlnaHTigJku CgogLS0gVXNlciBPcHRpb246IHdpZGdldC1pbWFnZS1kaXJlY3RvcnkKICAgICBEaXJlY3Rvcnkg d2hlcmUgV2lkZ2V0IHNob3VsZCBsb29rIGZvciBpbWFnZXMuCgogICAgIFdpZGdldCB3aWxsIGxv b2sgaGVyZSBmb3IgYSBmaWxlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBzcGVjaWZpZWQKICAgICBm b3IgdGhlIGltYWdlLCB3aXRoIGVpdGhlciBhIOKAmC54cG3igJkgKGlmIHN1cHBvcnRlZCkgb3Ig 4oCYLnhibeKAmQogICAgIGV4dGVuc2lvbi4KCiAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LWltYWdl LWVuYWJsZQogICAgIElmIG5vbi3igJhuaWzigJksIGFsbG93IGltYWdlcyB0byBhcHBlYXIgb24g ZGlzcGxheXMgd2hlcmUgdGhleSBhcmUKICAgICBzdXBwb3J0ZWQuCgogLS0gVXNlciBPcHRpb246 IHdpZGdldC1pbWFnZS1jb252ZXJzaW9uCiAgICAgQW4gYWxpc3QgdG8gY29udmVydCBzeW1ib2xz IGZyb20gaW1hZ2UgZm9ybWF0cyB0byBmaWxlIG5hbWUKICAgICBzdWZmaXhlcy4KCiAgICAgRWFj aCBlbGVtZW50IGlzIGEgY29ucyBjZWxsIChGT1JNQVQgLiAgU1VGRklYKSwgd2hlcmUgRk9STUFU IGlzIGEKICAgICBzeW1ib2wgdGhhdCByZXByZXNlbnRzIGFuIGltYWdlIGZvcm1hdCBhbmQgU1VG RklYIGlzIGl0cwogICAgIGNvcnJlc3BvbmRlbnQgc3VmZml4LgoKIC0tIFVzZXIgT3B0aW9uOiB3 aWRnZXQtYnV0dG9uLXByZWZpeAogICAgIFN0cmluZyB0byBwcmVmaXggYnV0dG9ucy4KCiAtLSBV c2VyIE9wdGlvbjogd2lkZ2V0LWJ1dHRvbi1zdWZmaXgKICAgICBTdHJpbmcgdG8gc3VmZml4IGJ1 dHRvbnMuCgogLS0gVXNlciBPcHRpb246IHdpZGdldC1wdXNoLWJ1dHRvbi1wcmVmaXgKICAgICBT dHJpbmcgdG8gcHJlZml4IHB1c2ggYnV0dG9ucy4KCiAtLSBVc2VyIE9wdGlvbjogd2lkZ2V0LXB1 c2gtYnV0dG9uLXN1ZmZpeAogICAgIFN0cmluZyB0byBzdWZmaXggcHVzaCBidXR0b25zLgoKIC0t IFVzZXIgT3B0aW9uOiB3aWRnZXQtbGluay1wcmVmaXgKICAgICBTdHJpbmcgdG8gcHJlZml4IGxp bmtzLgoKIC0tIFVzZXIgT3B0aW9uOiB3aWRnZXQtbGluay1zdWZmaXgKICAgICBTdHJpbmcgdG8g c3VmZml4IGxpbmtzLgoKIC0tIFVzZXIgT3B0aW9uOiB3aWRnZXQtY2hvaWNlLXRvZ2dsZQogICAg IElmIG5vbi3igJhuaWzigJksIHRvZ2dsZSB3aGVuIHRoZXJlIGFyZSBqdXN0IHR3byBvcHRpb25z LgoKICAgICBCeSBkZWZhdWx0LCBpdHMgdmFsdWUgaXMg4oCYbmls4oCZLgoKIC0tIFVzZXIgT3B0 aW9uOiB3aWRnZXQtZG9jdW1lbnRhdGlvbi1saW5rcwogICAgIElmIG5vbi3igJhuaWzigJksIGFk ZCBoeXBlcmxpbmtzIHRvIGRvY3VtZW50YXRpb24gc3RyaW5ncy4KCiAtLSBVc2VyIE9wdGlvbjog d2lkZ2V0LWRvY3VtZW50YXRpb24tbGluay1yZWdleHAKICAgICBBIHJlZ2V4cCB0aGF0IG1hdGNo ZXMgcG90ZW50aWFsIGxpbmtzIGluIGRvY3VtZW50YXRpb24gc3RyaW5ncy4KICAgICBUaGUgbGlu ayBpdHNlbGYgc2hvdWxkIG1hdGNoIHRvIHRoZSBmaXJzdCBncm91cC4KCiAtLSBVc2VyIE9wdGlv bjogd2lkZ2V0LWRvY3VtZW50YXRpb24tbGluay1wCiAgICAgQSBwcmVkaWNhdGUgZnVuY3Rpb24g dG8gdGVzdCBpZiBhIHN0cmluZyBpcyB1c2VmdWwgYXMgYSBsaW5rLiAgVGhlCiAgICAgZnVuY3Rp b24gaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50LCBhIHN0cmluZywgYW5kIHNob3VsZCByZXR1 cm4KICAgICBub24t4oCYbmls4oCZIGlmIHRoZXJlIHNob3VsZCBiZSBhIGxpbmsgZm9yIHRoYXQg c3RyaW5nLgoKICAgICBCeSBkZWZhdWx0LCB0aGUgdmFsdWUgaXMg4oCYaW50ZXJuLXNvZnTigJku CgogLS0gVXNlciBPcHRpb246IHdpZGdldC1kb2N1bWVudGF0aW9uLWxpbmstdHlwZQogICAgIEEg c3ltYm9sIHRoYXQgcmVwcmVzZW50cyBhIHdpZGdldCB0eXBlIHRvIHVzZSBmb3IgbGlua3MgaW4K ICAgICBkb2N1bWVudGF0aW9uIHN0cmluZ3MuCgogICAgIEJ5IGRlZmF1bHQsIHRoZSB2YWx1ZSBp cyDigJhkb2N1bWVudGF0aW9uLWxpbmvigJkuCgogLS0gVXNlciBPcHRpb246IHdpZGdldC1tZW51 LW1heC1zaXplCiAgICAgTWF4aW11bSBzaXplIGZvciBhIHBvcHVwIG1lbnUuICBCeSBkZWZhdWx0 LCBpdHMgdmFsdWUgaXMgNDAuCgogICAgIElmIGEgZnVuY3Rpb24gYXNrIHlvdSB0byBjaG9vc2Ug ZnJvbSBhIG1lbnUgdGhhdCBpcyBsYXJnZXIgdGhhbgogICAgIHRoaXMgdmFsdWUsIGl0IHdpbGwg dXNlIHRoZSBtaW5pYnVmZmVyLgoKIC0tIFVzZXIgT3B0aW9uOiB3aWRnZXQtbWVudS1tYXgtc2hv cnRjdXRzCiAgICAgTGFyZ2VzdCBudW1iZXIgb2YgaXRlbXMgZm9yIHdoaWNoIGl0IHdvcmtzIHRv IGNob29zZSBvbmUgd2l0aCBhCiAgICAgY2hhcmFjdGVyLgoKICAgICBGb3IgYSBsYXJnZXIgbnVt YmVyLCB1c2UgdGhlIG1pbmlidWZmZXIuCgogLS0gVXNlciBPcHRpb246IHdpZGdldC1tZW51LW1p bmlidWZmZXItZmxhZwogICAgIFdoZXRoZXIgdG8gdXNlIHRoZSBtaW5pYnVmZmVyIHRvIGFzayBm b3IgYSBjaG9pY2UuCgogICAgIElmIOKAmG5pbOKAmSwgdGhlIGRlZmF1bHQsIHJlYWQgYSBzaW5n bGUgY2hhcmFjdGVyLgoKMTQgV2lzaGxpc3QKKioqKioqKioqKioKCiAgIOKAoiBJdCBzaG91bGQg YmUgcG9zc2libGUgdG8gYWRkIG9yIHJlbW92ZSBpdGVtcyBmcm9tIGEgbGlzdCB3aXRoIOKAmEMt a+KAmQogICAgIGFuZCDigJhDLW/igJkgKHN1Z2dlc3RlZCBieSBSTVMpLgoKICAg4oCiIFRoZSDi gJhbSU5TXeKAmSBhbmQg4oCYW0RFTF3igJkgYnV0dG9ucyBzaG91bGQgYmUgcmVwbGFjZWQgYnkg YSBzaW5nbGUgZGFzaAogICAgICjigJgt4oCZKS4gIFRoZSBkYXNoIHNob3VsZCBiZSBhIGJ1dHRv biB0aGF0LCB3aGVuIGludm9rZWQsIGFza3MKICAgICB3aGV0aGVyIHlvdSB3YW50IHRvIGFkZCBv ciBkZWxldGUgYW4gaXRlbSAoUk1TIHdhbnRlZCB0byBnaXQgcmlkIG9mCiAgICAgdGhlIHVnbHkg YnV0dG9ucywgdGhlIGRhc2ggaXMgbXkgaWRlYSkuCgogICDigKIgVGhlIOKAmG1lbnUtY2hvaWNl 4oCZIHRhZyBzaG91bGQgYmUgcHJldHRpZXIsIHNvbWV0aGluZyBsaWtlIHRoZQogICAgIGFiYnJl dmlhdGVkIG1lbnVzIGluIE9wZW4gTG9vay4KCiAgIOKAoiBGaW5pc2gg4oCYOnRhYi1vcmRlcuKA mS4KCiAgIOKAoiBNYWtlIGluZGVudGF0aW9uIHdvcmsgd2l0aCBnbHlwaHMgYW5kIHByb3BvcnRp b25hbCBmb250cy4KCiAgIOKAoiBBZGQgY29tbWFuZHMgdG8gc2hvdyBvdmVydmlldyBvZiBvYmpl Y3QgYW5kIGNsYXNzIGhpZXJhcmNoaWVzIHRvCiAgICAgdGhlIGJyb3dzZXIuCgogICDigKIgRmlu ZCBhIHdheSB0byBkaXNhYmxlIG1vdXNlIGhpZ2hsaWdodCBmb3IgaW5hY3RpdmUgd2lkZ2V0cy4K CiAgIOKAoiBGaW5kIGEgd2F5IHRvIG1ha2UgZ2x5cGhzIGxvb2sgaW5hY3RpdmUuCgogICDigKIg QWRkIOKAmHdpZGdldOKAmSB3aWRnZXQgZm9yIGVkaXRpbmcgd2lkZ2V0IHNwZWNpZmljYXRpb25z LgoKICAg4oCiIEZpbmQgY2xlYW4gd2F5IHRvIGltcGxlbWVudCB2YXJpYWJsZSBsZW5ndGggbGlz dC4gIFNlZQogICAgIOKAmFRlWC1wcmludGVyLWxpc3TigJkgZm9yIGFuIGV4cGxhbmF0aW9uLgoK ICAg4oCiIOKAmEMtaOKAmSBpbiDigJh3aWRnZXQtcHJvbXB0LXZhbHVl4oCZIHNob3VsZCBnaXZl IHR5cGUgc3BlY2lmaWMgaGVscC4KCiAgIOKAoiBBZGQgYSDigJhtYWlsdG/igJkgd2lkZ2V0LgoK QXBwZW5kaXggQSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UKKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24g MS4zLCAzIE5vdmVtYmVyIDIwMDgKCiAgICAgQ29weXJpZ2h0IMKpIDIwMDAsIDIwMDEsIDIwMDIs IDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICAgPGh0dHBzOi8v ZnNmLm9yZy8+CgogICAgIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmli dXRlIHZlcmJhdGltIGNvcGllcwogICAgIG9mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNo YW5naW5nIGl0IGlzIG5vdCBhbGxvd2VkLgoKICAwLiBQUkVBTUJMRQoKICAgICBUaGUgcHVycG9z ZSBvZiB0aGlzIExpY2Vuc2UgaXMgdG8gbWFrZSBhIG1hbnVhbCwgdGV4dGJvb2ssIG9yIG90aGVy CiAgICAgZnVuY3Rpb25hbCBhbmQgdXNlZnVsIGRvY3VtZW50IOKAnGZyZWXigJ0gaW4gdGhlIHNl bnNlIG9mIGZyZWVkb206IHRvCiAgICAgYXNzdXJlIGV2ZXJ5b25lIHRoZSBlZmZlY3RpdmUgZnJl ZWRvbSB0byBjb3B5IGFuZCByZWRpc3RyaWJ1dGUgaXQsCiAgICAgd2l0aCBvciB3aXRob3V0IG1v ZGlmeWluZyBpdCwgZWl0aGVyIGNvbW1lcmNpYWxseSBvcgogICAgIG5vbmNvbW1lcmNpYWxseS4g IFNlY29uZGFyaWx5LCB0aGlzIExpY2Vuc2UgcHJlc2VydmVzIGZvciB0aGUKICAgICBhdXRob3Ig YW5kIHB1Ymxpc2hlciBhIHdheSB0byBnZXQgY3JlZGl0IGZvciB0aGVpciB3b3JrLCB3aGlsZSBu b3QKICAgICBiZWluZyBjb25zaWRlcmVkIHJlc3BvbnNpYmxlIGZvciBtb2RpZmljYXRpb25zIG1h ZGUgYnkgb3RoZXJzLgoKICAgICBUaGlzIExpY2Vuc2UgaXMgYSBraW5kIG9mIOKAnGNvcHlsZWZ0 4oCdLCB3aGljaCBtZWFucyB0aGF0IGRlcml2YXRpdmUKICAgICB3b3JrcyBvZiB0aGUgZG9jdW1l bnQgbXVzdCB0aGVtc2VsdmVzIGJlIGZyZWUgaW4gdGhlIHNhbWUgc2Vuc2UuCiAgICAgSXQgY29t cGxlbWVudHMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3aGljaCBpcyBhIGNvcHls ZWZ0CiAgICAgbGljZW5zZSBkZXNpZ25lZCBmb3IgZnJlZSBzb2Z0d2FyZS4KCiAgICAgV2UgaGF2 ZSBkZXNpZ25lZCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gdXNlIGl0IGZvciBtYW51YWxzIGZv cgogICAgIGZyZWUgc29mdHdhcmUsIGJlY2F1c2UgZnJlZSBzb2Z0d2FyZSBuZWVkcyBmcmVlIGRv Y3VtZW50YXRpb246IGEKICAgICBmcmVlIHByb2dyYW0gc2hvdWxkIGNvbWUgd2l0aCBtYW51YWxz IHByb3ZpZGluZyB0aGUgc2FtZSBmcmVlZG9tcwogICAgIHRoYXQgdGhlIHNvZnR3YXJlIGRvZXMu ICBCdXQgdGhpcyBMaWNlbnNlIGlzIG5vdCBsaW1pdGVkIHRvCiAgICAgc29mdHdhcmUgbWFudWFs czsgaXQgY2FuIGJlIHVzZWQgZm9yIGFueSB0ZXh0dWFsIHdvcmssIHJlZ2FyZGxlc3MKICAgICBv ZiBzdWJqZWN0IG1hdHRlciBvciB3aGV0aGVyIGl0IGlzIHB1Ymxpc2hlZCBhcyBhIHByaW50ZWQg Ym9vay4gIFdlCiAgICAgcmVjb21tZW5kIHRoaXMgTGljZW5zZSBwcmluY2lwYWxseSBmb3Igd29y a3Mgd2hvc2UgcHVycG9zZSBpcwogICAgIGluc3RydWN0aW9uIG9yIHJlZmVyZW5jZS4KCiAgMS4g QVBQTElDQUJJTElUWSBBTkQgREVGSU5JVElPTlMKCiAgICAgVGhpcyBMaWNlbnNlIGFwcGxpZXMg dG8gYW55IG1hbnVhbCBvciBvdGhlciB3b3JrLCBpbiBhbnkgbWVkaXVtLAogICAgIHRoYXQgY29u dGFpbnMgYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIHNheWluZyBpdCBj YW4KICAgICBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLiAg U3VjaCBhIG5vdGljZQogICAgIGdyYW50cyBhIHdvcmxkLXdpZGUsIHJveWFsdHktZnJlZSBsaWNl bnNlLCB1bmxpbWl0ZWQgaW4gZHVyYXRpb24sCiAgICAgdG8gdXNlIHRoYXQgd29yayB1bmRlciB0 aGUgY29uZGl0aW9ucyBzdGF0ZWQgaGVyZWluLiAgVGhlCiAgICAg4oCcRG9jdW1lbnTigJ0sIGJl bG93LCByZWZlcnMgdG8gYW55IHN1Y2ggbWFudWFsIG9yIHdvcmsuICBBbnkgbWVtYmVyCiAgICAg b2YgdGhlIHB1YmxpYyBpcyBhIGxpY2Vuc2VlLCBhbmQgaXMgYWRkcmVzc2VkIGFzIOKAnHlvdeKA nS4gIFlvdSBhY2NlcHQKICAgICB0aGUgbGljZW5zZSBpZiB5b3UgY29weSwgbW9kaWZ5IG9yIGRp c3RyaWJ1dGUgdGhlIHdvcmsgaW4gYSB3YXkKICAgICByZXF1aXJpbmcgcGVybWlzc2lvbiB1bmRl ciBjb3B5cmlnaHQgbGF3LgoKICAgICBBIOKAnE1vZGlmaWVkIFZlcnNpb27igJ0gb2YgdGhlIERv Y3VtZW50IG1lYW5zIGFueSB3b3JrIGNvbnRhaW5pbmcgdGhlCiAgICAgRG9jdW1lbnQgb3IgYSBw b3J0aW9uIG9mIGl0LCBlaXRoZXIgY29waWVkIHZlcmJhdGltLCBvciB3aXRoCiAgICAgbW9kaWZp Y2F0aW9ucyBhbmQvb3IgdHJhbnNsYXRlZCBpbnRvIGFub3RoZXIgbGFuZ3VhZ2UuCgogICAgIEEg 4oCcU2Vjb25kYXJ5IFNlY3Rpb27igJ0gaXMgYSBuYW1lZCBhcHBlbmRpeCBvciBhIGZyb250LW1h dHRlciBzZWN0aW9uCiAgICAgb2YgdGhlIERvY3VtZW50IHRoYXQgZGVhbHMgZXhjbHVzaXZlbHkg d2l0aCB0aGUgcmVsYXRpb25zaGlwIG9mIHRoZQogICAgIHB1Ymxpc2hlcnMgb3IgYXV0aG9ycyBv ZiB0aGUgRG9jdW1lbnQgdG8gdGhlIERvY3VtZW504oCZcyBvdmVyYWxsCiAgICAgc3ViamVjdCAo b3IgdG8gcmVsYXRlZCBtYXR0ZXJzKSBhbmQgY29udGFpbnMgbm90aGluZyB0aGF0IGNvdWxkCiAg ICAgZmFsbCBkaXJlY3RseSB3aXRoaW4gdGhhdCBvdmVyYWxsIHN1YmplY3QuICAoVGh1cywgaWYg dGhlIERvY3VtZW50CiAgICAgaXMgaW4gcGFydCBhIHRleHRib29rIG9mIG1hdGhlbWF0aWNzLCBh IFNlY29uZGFyeSBTZWN0aW9uIG1heSBub3QKICAgICBleHBsYWluIGFueSBtYXRoZW1hdGljcy4p ICBUaGUgcmVsYXRpb25zaGlwIGNvdWxkIGJlIGEgbWF0dGVyIG9mCiAgICAgaGlzdG9yaWNhbCBj b25uZWN0aW9uIHdpdGggdGhlIHN1YmplY3Qgb3Igd2l0aCByZWxhdGVkIG1hdHRlcnMsIG9yCiAg ICAgb2YgbGVnYWwsIGNvbW1lcmNpYWwsIHBoaWxvc29waGljYWwsIGV0aGljYWwgb3IgcG9saXRp Y2FsIHBvc2l0aW9uCiAgICAgcmVnYXJkaW5nIHRoZW0uCgogICAgIFRoZSDigJxJbnZhcmlhbnQg U2VjdGlvbnPigJ0gYXJlIGNlcnRhaW4gU2Vjb25kYXJ5IFNlY3Rpb25zIHdob3NlCiAgICAgdGl0 bGVzIGFyZSBkZXNpZ25hdGVkLCBhcyBiZWluZyB0aG9zZSBvZiBJbnZhcmlhbnQgU2VjdGlvbnMs IGluIHRoZQogICAgIG5vdGljZSB0aGF0IHNheXMgdGhhdCB0aGUgRG9jdW1lbnQgaXMgcmVsZWFz ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLgogICAgIElmIGEgc2VjdGlvbiBkb2VzIG5vdCBmaXQgdGhl IGFib3ZlIGRlZmluaXRpb24gb2YgU2Vjb25kYXJ5IHRoZW4gaXQKICAgICBpcyBub3QgYWxsb3dl ZCB0byBiZSBkZXNpZ25hdGVkIGFzIEludmFyaWFudC4gIFRoZSBEb2N1bWVudCBtYXkKICAgICBj b250YWluIHplcm8gSW52YXJpYW50IFNlY3Rpb25zLiAgSWYgdGhlIERvY3VtZW50IGRvZXMgbm90 IGlkZW50aWZ5CiAgICAgYW55IEludmFyaWFudCBTZWN0aW9ucyB0aGVuIHRoZXJlIGFyZSBub25l LgoKICAgICBUaGUg4oCcQ292ZXIgVGV4dHPigJ0gYXJlIGNlcnRhaW4gc2hvcnQgcGFzc2FnZXMg b2YgdGV4dCB0aGF0IGFyZQogICAgIGxpc3RlZCwgYXMgRnJvbnQtQ292ZXIgVGV4dHMgb3IgQmFj ay1Db3ZlciBUZXh0cywgaW4gdGhlIG5vdGljZQogICAgIHRoYXQgc2F5cyB0aGF0IHRoZSBEb2N1 bWVudCBpcyByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBCiAgICAgRnJvbnQtQ292ZXIg VGV4dCBtYXkgYmUgYXQgbW9zdCA1IHdvcmRzLCBhbmQgYSBCYWNrLUNvdmVyIFRleHQgbWF5CiAg ICAgYmUgYXQgbW9zdCAyNSB3b3Jkcy4KCiAgICAgQSDigJxUcmFuc3BhcmVudOKAnSBjb3B5IG9m IHRoZSBEb2N1bWVudCBtZWFucyBhIG1hY2hpbmUtcmVhZGFibGUgY29weSwKICAgICByZXByZXNl bnRlZCBpbiBhIGZvcm1hdCB3aG9zZSBzcGVjaWZpY2F0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUK ICAgICBnZW5lcmFsIHB1YmxpYywgdGhhdCBpcyBzdWl0YWJsZSBmb3IgcmV2aXNpbmcgdGhlIGRv Y3VtZW50CiAgICAgc3RyYWlnaHRmb3J3YXJkbHkgd2l0aCBnZW5lcmljIHRleHQgZWRpdG9ycyBv ciAoZm9yIGltYWdlcyBjb21wb3NlZAogICAgIG9mIHBpeGVscykgZ2VuZXJpYyBwYWludCBwcm9n cmFtcyBvciAoZm9yIGRyYXdpbmdzKSBzb21lIHdpZGVseQogICAgIGF2YWlsYWJsZSBkcmF3aW5n IGVkaXRvciwgYW5kIHRoYXQgaXMgc3VpdGFibGUgZm9yIGlucHV0IHRvIHRleHQKICAgICBmb3Jt YXR0ZXJzIG9yIGZvciBhdXRvbWF0aWMgdHJhbnNsYXRpb24gdG8gYSB2YXJpZXR5IG9mIGZvcm1h dHMKICAgICBzdWl0YWJsZSBmb3IgaW5wdXQgdG8gdGV4dCBmb3JtYXR0ZXJzLiAgQSBjb3B5IG1h ZGUgaW4gYW4gb3RoZXJ3aXNlCiAgICAgVHJhbnNwYXJlbnQgZmlsZSBmb3JtYXQgd2hvc2UgbWFy a3VwLCBvciBhYnNlbmNlIG9mIG1hcmt1cCwgaGFzCiAgICAgYmVlbiBhcnJhbmdlZCB0byB0aHdh cnQgb3IgZGlzY291cmFnZSBzdWJzZXF1ZW50IG1vZGlmaWNhdGlvbiBieQogICAgIHJlYWRlcnMg aXMgbm90IFRyYW5zcGFyZW50LiAgQW4gaW1hZ2UgZm9ybWF0IGlzIG5vdCBUcmFuc3BhcmVudCBp ZgogICAgIHVzZWQgZm9yIGFueSBzdWJzdGFudGlhbCBhbW91bnQgb2YgdGV4dC4gIEEgY29weSB0 aGF0IGlzIG5vdAogICAgIOKAnFRyYW5zcGFyZW504oCdIGlzIGNhbGxlZCDigJxPcGFxdWXigJ0u CgogICAgIEV4YW1wbGVzIG9mIHN1aXRhYmxlIGZvcm1hdHMgZm9yIFRyYW5zcGFyZW50IGNvcGll cyBpbmNsdWRlIHBsYWluCiAgICAgQVNDSUkgd2l0aG91dCBtYXJrdXAsIFRleGluZm8gaW5wdXQg Zm9ybWF0LCBMYVRlWCBpbnB1dCBmb3JtYXQsCiAgICAgU0dNTCBvciBYTUwgdXNpbmcgYSBwdWJs aWNseSBhdmFpbGFibGUgRFRELCBhbmQgc3RhbmRhcmQtY29uZm9ybWluZwogICAgIHNpbXBsZSBI VE1MLCBQb3N0U2NyaXB0IG9yIFBERiBkZXNpZ25lZCBmb3IgaHVtYW4gbW9kaWZpY2F0aW9uLgog ICAgIEV4YW1wbGVzIG9mIHRyYW5zcGFyZW50IGltYWdlIGZvcm1hdHMgaW5jbHVkZSBQTkcsIFhD RiBhbmQgSlBHLgogICAgIE9wYXF1ZSBmb3JtYXRzIGluY2x1ZGUgcHJvcHJpZXRhcnkgZm9ybWF0 cyB0aGF0IGNhbiBiZSByZWFkIGFuZAogICAgIGVkaXRlZCBvbmx5IGJ5IHByb3ByaWV0YXJ5IHdv cmQgcHJvY2Vzc29ycywgU0dNTCBvciBYTUwgZm9yIHdoaWNoCiAgICAgdGhlIERURCBhbmQvb3Ig cHJvY2Vzc2luZyB0b29scyBhcmUgbm90IGdlbmVyYWxseSBhdmFpbGFibGUsIGFuZAogICAgIHRo ZSBtYWNoaW5lLWdlbmVyYXRlZCBIVE1MLCBQb3N0U2NyaXB0IG9yIFBERiBwcm9kdWNlZCBieSBz b21lIHdvcmQKICAgICBwcm9jZXNzb3JzIGZvciBvdXRwdXQgcHVycG9zZXMgb25seS4KCiAgICAg VGhlIOKAnFRpdGxlIFBhZ2XigJ0gbWVhbnMsIGZvciBhIHByaW50ZWQgYm9vaywgdGhlIHRpdGxl IHBhZ2UgaXRzZWxmLAogICAgIHBsdXMgc3VjaCBmb2xsb3dpbmcgcGFnZXMgYXMgYXJlIG5lZWRl ZCB0byBob2xkLCBsZWdpYmx5LCB0aGUKICAgICBtYXRlcmlhbCB0aGlzIExpY2Vuc2UgcmVxdWly ZXMgdG8gYXBwZWFyIGluIHRoZSB0aXRsZSBwYWdlLiAgRm9yCiAgICAgd29ya3MgaW4gZm9ybWF0 cyB3aGljaCBkbyBub3QgaGF2ZSBhbnkgdGl0bGUgcGFnZSBhcyBzdWNoLCDigJxUaXRsZQogICAg IFBhZ2XigJ0gbWVhbnMgdGhlIHRleHQgbmVhciB0aGUgbW9zdCBwcm9taW5lbnQgYXBwZWFyYW5j ZSBvZiB0aGUKICAgICB3b3Jr4oCZcyB0aXRsZSwgcHJlY2VkaW5nIHRoZSBiZWdpbm5pbmcgb2Yg dGhlIGJvZHkgb2YgdGhlIHRleHQuCgogICAgIFRoZSDigJxwdWJsaXNoZXLigJ0gbWVhbnMgYW55 IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBkaXN0cmlidXRlcyBjb3BpZXMKICAgICBvZiB0aGUgRG9j dW1lbnQgdG8gdGhlIHB1YmxpYy4KCiAgICAgQSBzZWN0aW9uIOKAnEVudGl0bGVkIFhZWuKAnSBt ZWFucyBhIG5hbWVkIHN1YnVuaXQgb2YgdGhlIERvY3VtZW50CiAgICAgd2hvc2UgdGl0bGUgZWl0 aGVyIGlzIHByZWNpc2VseSBYWVogb3IgY29udGFpbnMgWFlaIGluIHBhcmVudGhlc2VzCiAgICAg Zm9sbG93aW5nIHRleHQgdGhhdCB0cmFuc2xhdGVzIFhZWiBpbiBhbm90aGVyIGxhbmd1YWdlLiAg KEhlcmUgWFlaCiAgICAgc3RhbmRzIGZvciBhIHNwZWNpZmljIHNlY3Rpb24gbmFtZSBtZW50aW9u ZWQgYmVsb3csIHN1Y2ggYXMKICAgICDigJxBY2tub3dsZWRnZW1lbnRz4oCdLCDigJxEZWRpY2F0 aW9uc+KAnSwg4oCcRW5kb3JzZW1lbnRz4oCdLCBvciDigJxIaXN0b3J54oCdLikKICAgICBUbyDi gJxQcmVzZXJ2ZSB0aGUgVGl0bGXigJ0gb2Ygc3VjaCBhIHNlY3Rpb24gd2hlbiB5b3UgbW9kaWZ5 IHRoZQogICAgIERvY3VtZW50IG1lYW5zIHRoYXQgaXQgcmVtYWlucyBhIHNlY3Rpb24g4oCcRW50 aXRsZWQgWFla4oCdIGFjY29yZGluZwogICAgIHRvIHRoaXMgZGVmaW5pdGlvbi4KCiAgICAgVGhl IERvY3VtZW50IG1heSBpbmNsdWRlIFdhcnJhbnR5IERpc2NsYWltZXJzIG5leHQgdG8gdGhlIG5v dGljZQogICAgIHdoaWNoIHN0YXRlcyB0aGF0IHRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIHRoZSBE b2N1bWVudC4gIFRoZXNlCiAgICAgV2FycmFudHkgRGlzY2xhaW1lcnMgYXJlIGNvbnNpZGVyZWQg dG8gYmUgaW5jbHVkZWQgYnkgcmVmZXJlbmNlIGluCiAgICAgdGhpcyBMaWNlbnNlLCBidXQgb25s eSBhcyByZWdhcmRzIGRpc2NsYWltaW5nIHdhcnJhbnRpZXM6IGFueSBvdGhlcgogICAgIGltcGxp Y2F0aW9uIHRoYXQgdGhlc2UgV2FycmFudHkgRGlzY2xhaW1lcnMgbWF5IGhhdmUgaXMgdm9pZCBh bmQKICAgICBoYXMgbm8gZWZmZWN0IG9uIHRoZSBtZWFuaW5nIG9mIHRoaXMgTGljZW5zZS4KCiAg Mi4gVkVSQkFUSU0gQ09QWUlORwoKICAgICBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdGhl IERvY3VtZW50IGluIGFueSBtZWRpdW0sIGVpdGhlcgogICAgIGNvbW1lcmNpYWxseSBvciBub25j b21tZXJjaWFsbHksIHByb3ZpZGVkIHRoYXQgdGhpcyBMaWNlbnNlLCB0aGUKICAgICBjb3B5cmln aHQgbm90aWNlcywgYW5kIHRoZSBsaWNlbnNlIG5vdGljZSBzYXlpbmcgdGhpcyBMaWNlbnNlCiAg ICAgYXBwbGllcyB0byB0aGUgRG9jdW1lbnQgYXJlIHJlcHJvZHVjZWQgaW4gYWxsIGNvcGllcywg YW5kIHRoYXQgeW91CiAgICAgYWRkIG5vIG90aGVyIGNvbmRpdGlvbnMgd2hhdHNvZXZlciB0byB0 aG9zZSBvZiB0aGlzIExpY2Vuc2UuICBZb3UKICAgICBtYXkgbm90IHVzZSB0ZWNobmljYWwgbWVh c3VyZXMgdG8gb2JzdHJ1Y3Qgb3IgY29udHJvbCB0aGUgcmVhZGluZwogICAgIG9yIGZ1cnRoZXIg Y29weWluZyBvZiB0aGUgY29waWVzIHlvdSBtYWtlIG9yIGRpc3RyaWJ1dGUuICBIb3dldmVyLAog ICAgIHlvdSBtYXkgYWNjZXB0IGNvbXBlbnNhdGlvbiBpbiBleGNoYW5nZSBmb3IgY29waWVzLiAg SWYgeW91CiAgICAgZGlzdHJpYnV0ZSBhIGxhcmdlIGVub3VnaCBudW1iZXIgb2YgY29waWVzIHlv dSBtdXN0IGFsc28gZm9sbG93IHRoZQogICAgIGNvbmRpdGlvbnMgaW4gc2VjdGlvbiAzLgoKICAg ICBZb3UgbWF5IGFsc28gbGVuZCBjb3BpZXMsIHVuZGVyIHRoZSBzYW1lIGNvbmRpdGlvbnMgc3Rh dGVkIGFib3ZlLAogICAgIGFuZCB5b3UgbWF5IHB1YmxpY2x5IGRpc3BsYXkgY29waWVzLgoKICAz LiBDT1BZSU5HIElOIFFVQU5USVRZCgogICAgIElmIHlvdSBwdWJsaXNoIHByaW50ZWQgY29waWVz IChvciBjb3BpZXMgaW4gbWVkaWEgdGhhdCBjb21tb25seQogICAgIGhhdmUgcHJpbnRlZCBjb3Zl cnMpIG9mIHRoZSBEb2N1bWVudCwgbnVtYmVyaW5nIG1vcmUgdGhhbiAxMDAsIGFuZAogICAgIHRo ZSBEb2N1bWVudOKAmXMgbGljZW5zZSBub3RpY2UgcmVxdWlyZXMgQ292ZXIgVGV4dHMsIHlvdSBt dXN0CiAgICAgZW5jbG9zZSB0aGUgY29waWVzIGluIGNvdmVycyB0aGF0IGNhcnJ5LCBjbGVhcmx5 IGFuZCBsZWdpYmx5LCBhbGwKICAgICB0aGVzZSBDb3ZlciBUZXh0czogRnJvbnQtQ292ZXIgVGV4 dHMgb24gdGhlIGZyb250IGNvdmVyLCBhbmQKICAgICBCYWNrLUNvdmVyIFRleHRzIG9uIHRoZSBi YWNrIGNvdmVyLiAgQm90aCBjb3ZlcnMgbXVzdCBhbHNvIGNsZWFybHkKICAgICBhbmQgbGVnaWJs eSBpZGVudGlmeSB5b3UgYXMgdGhlIHB1Ymxpc2hlciBvZiB0aGVzZSBjb3BpZXMuICBUaGUKICAg ICBmcm9udCBjb3ZlciBtdXN0IHByZXNlbnQgdGhlIGZ1bGwgdGl0bGUgd2l0aCBhbGwgd29yZHMg b2YgdGhlIHRpdGxlCiAgICAgZXF1YWxseSBwcm9taW5lbnQgYW5kIHZpc2libGUuICBZb3UgbWF5 IGFkZCBvdGhlciBtYXRlcmlhbCBvbiB0aGUKICAgICBjb3ZlcnMgaW4gYWRkaXRpb24uICBDb3B5 aW5nIHdpdGggY2hhbmdlcyBsaW1pdGVkIHRvIHRoZSBjb3ZlcnMsIGFzCiAgICAgbG9uZyBhcyB0 aGV5IHByZXNlcnZlIHRoZSB0aXRsZSBvZiB0aGUgRG9jdW1lbnQgYW5kIHNhdGlzZnkgdGhlc2UK ICAgICBjb25kaXRpb25zLCBjYW4gYmUgdHJlYXRlZCBhcyB2ZXJiYXRpbSBjb3B5aW5nIGluIG90 aGVyIHJlc3BlY3RzLgoKICAgICBJZiB0aGUgcmVxdWlyZWQgdGV4dHMgZm9yIGVpdGhlciBjb3Zl ciBhcmUgdG9vIHZvbHVtaW5vdXMgdG8gZml0CiAgICAgbGVnaWJseSwgeW91IHNob3VsZCBwdXQg dGhlIGZpcnN0IG9uZXMgbGlzdGVkIChhcyBtYW55IGFzIGZpdAogICAgIHJlYXNvbmFibHkpIG9u IHRoZSBhY3R1YWwgY292ZXIsIGFuZCBjb250aW51ZSB0aGUgcmVzdCBvbnRvCiAgICAgYWRqYWNl bnQgcGFnZXMuCgogICAgIElmIHlvdSBwdWJsaXNoIG9yIGRpc3RyaWJ1dGUgT3BhcXVlIGNvcGll cyBvZiB0aGUgRG9jdW1lbnQKICAgICBudW1iZXJpbmcgbW9yZSB0aGFuIDEwMCwgeW91IG11c3Qg ZWl0aGVyIGluY2x1ZGUgYSBtYWNoaW5lLXJlYWRhYmxlCiAgICAgVHJhbnNwYXJlbnQgY29weSBh bG9uZyB3aXRoIGVhY2ggT3BhcXVlIGNvcHksIG9yIHN0YXRlIGluIG9yIHdpdGgKICAgICBlYWNo IE9wYXF1ZSBjb3B5IGEgY29tcHV0ZXItbmV0d29yayBsb2NhdGlvbiBmcm9tIHdoaWNoIHRoZSBn ZW5lcmFsCiAgICAgbmV0d29yay11c2luZyBwdWJsaWMgaGFzIGFjY2VzcyB0byBkb3dubG9hZCB1 c2luZyBwdWJsaWMtc3RhbmRhcmQKICAgICBuZXR3b3JrIHByb3RvY29scyBhIGNvbXBsZXRlIFRy YW5zcGFyZW50IGNvcHkgb2YgdGhlIERvY3VtZW50LCBmcmVlCiAgICAgb2YgYWRkZWQgbWF0ZXJp YWwuICBJZiB5b3UgdXNlIHRoZSBsYXR0ZXIgb3B0aW9uLCB5b3UgbXVzdCB0YWtlCiAgICAgcmVh c29uYWJseSBwcnVkZW50IHN0ZXBzLCB3aGVuIHlvdSBiZWdpbiBkaXN0cmlidXRpb24gb2YgT3Bh cXVlCiAgICAgY29waWVzIGluIHF1YW50aXR5LCB0byBlbnN1cmUgdGhhdCB0aGlzIFRyYW5zcGFy ZW50IGNvcHkgd2lsbAogICAgIHJlbWFpbiB0aHVzIGFjY2Vzc2libGUgYXQgdGhlIHN0YXRlZCBs b2NhdGlvbiB1bnRpbCBhdCBsZWFzdCBvbmUKICAgICB5ZWFyIGFmdGVyIHRoZSBsYXN0IHRpbWUg eW91IGRpc3RyaWJ1dGUgYW4gT3BhcXVlIGNvcHkgKGRpcmVjdGx5IG9yCiAgICAgdGhyb3VnaCB5 b3VyIGFnZW50cyBvciByZXRhaWxlcnMpIG9mIHRoYXQgZWRpdGlvbiB0byB0aGUgcHVibGljLgoK ICAgICBJdCBpcyByZXF1ZXN0ZWQsIGJ1dCBub3QgcmVxdWlyZWQsIHRoYXQgeW91IGNvbnRhY3Qg dGhlIGF1dGhvcnMgb2YKICAgICB0aGUgRG9jdW1lbnQgd2VsbCBiZWZvcmUgcmVkaXN0cmlidXRp bmcgYW55IGxhcmdlIG51bWJlciBvZiBjb3BpZXMsCiAgICAgdG8gZ2l2ZSB0aGVtIGEgY2hhbmNl IHRvIHByb3ZpZGUgeW91IHdpdGggYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoZQogICAgIERvY3Vt ZW50LgoKICA0LiBNT0RJRklDQVRJT05TCgogICAgIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0 ZSBhIE1vZGlmaWVkIFZlcnNpb24gb2YgdGhlIERvY3VtZW50CiAgICAgdW5kZXIgdGhlIGNvbmRp dGlvbnMgb2Ygc2VjdGlvbnMgMiBhbmQgMyBhYm92ZSwgcHJvdmlkZWQgdGhhdCB5b3UKICAgICBy ZWxlYXNlIHRoZSBNb2RpZmllZCBWZXJzaW9uIHVuZGVyIHByZWNpc2VseSB0aGlzIExpY2Vuc2Us IHdpdGggdGhlCiAgICAgTW9kaWZpZWQgVmVyc2lvbiBmaWxsaW5nIHRoZSByb2xlIG9mIHRoZSBE b2N1bWVudCwgdGh1cyBsaWNlbnNpbmcKICAgICBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlv biBvZiB0aGUgTW9kaWZpZWQgVmVyc2lvbiB0byB3aG9ldmVyCiAgICAgcG9zc2Vzc2VzIGEgY29w eSBvZiBpdC4gIEluIGFkZGl0aW9uLCB5b3UgbXVzdCBkbyB0aGVzZSB0aGluZ3MgaW4KICAgICB0 aGUgTW9kaWZpZWQgVmVyc2lvbjoKCiAgICAgICBBLiBVc2UgaW4gdGhlIFRpdGxlIFBhZ2UgKGFu ZCBvbiB0aGUgY292ZXJzLCBpZiBhbnkpIGEgdGl0bGUKICAgICAgICAgIGRpc3RpbmN0IGZyb20g dGhhdCBvZiB0aGUgRG9jdW1lbnQsIGFuZCBmcm9tIHRob3NlIG9mIHByZXZpb3VzCiAgICAgICAg ICB2ZXJzaW9ucyAod2hpY2ggc2hvdWxkLCBpZiB0aGVyZSB3ZXJlIGFueSwgYmUgbGlzdGVkIGlu IHRoZQogICAgICAgICAgSGlzdG9yeSBzZWN0aW9uIG9mIHRoZSBEb2N1bWVudCkuICBZb3UgbWF5 IHVzZSB0aGUgc2FtZSB0aXRsZQogICAgICAgICAgYXMgYSBwcmV2aW91cyB2ZXJzaW9uIGlmIHRo ZSBvcmlnaW5hbCBwdWJsaXNoZXIgb2YgdGhhdAogICAgICAgICAgdmVyc2lvbiBnaXZlcyBwZXJt aXNzaW9uLgoKICAgICAgIEIuIExpc3Qgb24gdGhlIFRpdGxlIFBhZ2UsIGFzIGF1dGhvcnMsIG9u ZSBvciBtb3JlIHBlcnNvbnMgb3IKICAgICAgICAgIGVudGl0aWVzIHJlc3BvbnNpYmxlIGZvciBh dXRob3JzaGlwIG9mIHRoZSBtb2RpZmljYXRpb25zIGluCiAgICAgICAgICB0aGUgTW9kaWZpZWQg VmVyc2lvbiwgdG9nZXRoZXIgd2l0aCBhdCBsZWFzdCBmaXZlIG9mIHRoZQogICAgICAgICAgcHJp bmNpcGFsIGF1dGhvcnMgb2YgdGhlIERvY3VtZW50IChhbGwgb2YgaXRzIHByaW5jaXBhbAogICAg ICAgICAgYXV0aG9ycywgaWYgaXQgaGFzIGZld2VyIHRoYW4gZml2ZSksIHVubGVzcyB0aGV5IHJl bGVhc2UgeW91CiAgICAgICAgICBmcm9tIHRoaXMgcmVxdWlyZW1lbnQuCgogICAgICAgQy4gU3Rh dGUgb24gdGhlIFRpdGxlIHBhZ2UgdGhlIG5hbWUgb2YgdGhlIHB1Ymxpc2hlciBvZiB0aGUKICAg ICAgICAgIE1vZGlmaWVkIFZlcnNpb24sIGFzIHRoZSBwdWJsaXNoZXIuCgogICAgICAgRC4gUHJl c2VydmUgYWxsIHRoZSBjb3B5cmlnaHQgbm90aWNlcyBvZiB0aGUgRG9jdW1lbnQuCgogICAgICAg RS4gQWRkIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UgZm9yIHlvdXIgbW9kaWZpY2F0 aW9ucwogICAgICAgICAgYWRqYWNlbnQgdG8gdGhlIG90aGVyIGNvcHlyaWdodCBub3RpY2VzLgoK ICAgICAgIEYuIEluY2x1ZGUsIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBjb3B5cmlnaHQgbm90aWNl cywgYSBsaWNlbnNlCiAgICAgICAgICBub3RpY2UgZ2l2aW5nIHRoZSBwdWJsaWMgcGVybWlzc2lv biB0byB1c2UgdGhlIE1vZGlmaWVkCiAgICAgICAgICBWZXJzaW9uIHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGlzIExpY2Vuc2UsIGluIHRoZSBmb3JtIHNob3duIGluCiAgICAgICAgICB0aGUgQWRkZW5k dW0gYmVsb3cuCgogICAgICAgRy4gUHJlc2VydmUgaW4gdGhhdCBsaWNlbnNlIG5vdGljZSB0aGUg ZnVsbCBsaXN0cyBvZiBJbnZhcmlhbnQKICAgICAgICAgIFNlY3Rpb25zIGFuZCByZXF1aXJlZCBD b3ZlciBUZXh0cyBnaXZlbiBpbiB0aGUgRG9jdW1lbnTigJlzCiAgICAgICAgICBsaWNlbnNlIG5v dGljZS4KCiAgICAgICBILiBJbmNsdWRlIGFuIHVuYWx0ZXJlZCBjb3B5IG9mIHRoaXMgTGljZW5z ZS4KCiAgICAgICBJLiBQcmVzZXJ2ZSB0aGUgc2VjdGlvbiBFbnRpdGxlZCDigJxIaXN0b3J54oCd LCBQcmVzZXJ2ZSBpdHMgVGl0bGUsCiAgICAgICAgICBhbmQgYWRkIHRvIGl0IGFuIGl0ZW0gc3Rh dGluZyBhdCBsZWFzdCB0aGUgdGl0bGUsIHllYXIsIG5ldwogICAgICAgICAgYXV0aG9ycywgYW5k IHB1Ymxpc2hlciBvZiB0aGUgTW9kaWZpZWQgVmVyc2lvbiBhcyBnaXZlbiBvbiB0aGUKICAgICAg ICAgIFRpdGxlIFBhZ2UuICBJZiB0aGVyZSBpcyBubyBzZWN0aW9uIEVudGl0bGVkIOKAnEhpc3Rv cnnigJ0gaW4gdGhlCiAgICAgICAgICBEb2N1bWVudCwgY3JlYXRlIG9uZSBzdGF0aW5nIHRoZSB0 aXRsZSwgeWVhciwgYXV0aG9ycywgYW5kCiAgICAgICAgICBwdWJsaXNoZXIgb2YgdGhlIERvY3Vt ZW50IGFzIGdpdmVuIG9uIGl0cyBUaXRsZSBQYWdlLCB0aGVuIGFkZAogICAgICAgICAgYW4gaXRl bSBkZXNjcmliaW5nIHRoZSBNb2RpZmllZCBWZXJzaW9uIGFzIHN0YXRlZCBpbiB0aGUKICAgICAg ICAgIHByZXZpb3VzIHNlbnRlbmNlLgoKICAgICAgIEouIFByZXNlcnZlIHRoZSBuZXR3b3JrIGxv Y2F0aW9uLCBpZiBhbnksIGdpdmVuIGluIHRoZSBEb2N1bWVudAogICAgICAgICAgZm9yIHB1Ymxp YyBhY2Nlc3MgdG8gYSBUcmFuc3BhcmVudCBjb3B5IG9mIHRoZSBEb2N1bWVudCwgYW5kCiAgICAg ICAgICBsaWtld2lzZSB0aGUgbmV0d29yayBsb2NhdGlvbnMgZ2l2ZW4gaW4gdGhlIERvY3VtZW50 IGZvcgogICAgICAgICAgcHJldmlvdXMgdmVyc2lvbnMgaXQgd2FzIGJhc2VkIG9uLiAgVGhlc2Ug bWF5IGJlIHBsYWNlZCBpbiB0aGUKICAgICAgICAgIOKAnEhpc3RvcnnigJ0gc2VjdGlvbi4gIFlv dSBtYXkgb21pdCBhIG5ldHdvcmsgbG9jYXRpb24gZm9yIGEgd29yawogICAgICAgICAgdGhhdCB3 YXMgcHVibGlzaGVkIGF0IGxlYXN0IGZvdXIgeWVhcnMgYmVmb3JlIHRoZSBEb2N1bWVudAogICAg ICAgICAgaXRzZWxmLCBvciBpZiB0aGUgb3JpZ2luYWwgcHVibGlzaGVyIG9mIHRoZSB2ZXJzaW9u IGl0IHJlZmVycwogICAgICAgICAgdG8gZ2l2ZXMgcGVybWlzc2lvbi4KCiAgICAgICBLLiBGb3Ig YW55IHNlY3Rpb24gRW50aXRsZWQg4oCcQWNrbm93bGVkZ2VtZW50c+KAnSBvciDigJxEZWRpY2F0 aW9uc+KAnSwKICAgICAgICAgIFByZXNlcnZlIHRoZSBUaXRsZSBvZiB0aGUgc2VjdGlvbiwgYW5k IHByZXNlcnZlIGluIHRoZSBzZWN0aW9uCiAgICAgICAgICBhbGwgdGhlIHN1YnN0YW5jZSBhbmQg dG9uZSBvZiBlYWNoIG9mIHRoZSBjb250cmlidXRvcgogICAgICAgICAgYWNrbm93bGVkZ2VtZW50 cyBhbmQvb3IgZGVkaWNhdGlvbnMgZ2l2ZW4gdGhlcmVpbi4KCiAgICAgICBMLiBQcmVzZXJ2ZSBh bGwgdGhlIEludmFyaWFudCBTZWN0aW9ucyBvZiB0aGUgRG9jdW1lbnQsIHVuYWx0ZXJlZAogICAg ICAgICAgaW4gdGhlaXIgdGV4dCBhbmQgaW4gdGhlaXIgdGl0bGVzLiAgU2VjdGlvbiBudW1iZXJz IG9yIHRoZQogICAgICAgICAgZXF1aXZhbGVudCBhcmUgbm90IGNvbnNpZGVyZWQgcGFydCBvZiB0 aGUgc2VjdGlvbiB0aXRsZXMuCgogICAgICAgTS4gRGVsZXRlIGFueSBzZWN0aW9uIEVudGl0bGVk IOKAnEVuZG9yc2VtZW50c+KAnS4gIFN1Y2ggYSBzZWN0aW9uCiAgICAgICAgICBtYXkgbm90IGJl IGluY2x1ZGVkIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uLgoKICAgICAgIE4uIERvIG5vdCByZXRp dGxlIGFueSBleGlzdGluZyBzZWN0aW9uIHRvIGJlIEVudGl0bGVkCiAgICAgICAgICDigJxFbmRv cnNlbWVudHPigJ0gb3IgdG8gY29uZmxpY3QgaW4gdGl0bGUgd2l0aCBhbnkgSW52YXJpYW50CiAg ICAgICAgICBTZWN0aW9uLgoKICAgICAgIE8uIFByZXNlcnZlIGFueSBXYXJyYW50eSBEaXNjbGFp bWVycy4KCiAgICAgSWYgdGhlIE1vZGlmaWVkIFZlcnNpb24gaW5jbHVkZXMgbmV3IGZyb250LW1h dHRlciBzZWN0aW9ucyBvcgogICAgIGFwcGVuZGljZXMgdGhhdCBxdWFsaWZ5IGFzIFNlY29uZGFy eSBTZWN0aW9ucyBhbmQgY29udGFpbiBubwogICAgIG1hdGVyaWFsIGNvcGllZCBmcm9tIHRoZSBE b2N1bWVudCwgeW91IG1heSBhdCB5b3VyIG9wdGlvbiBkZXNpZ25hdGUKICAgICBzb21lIG9yIGFs bCBvZiB0aGVzZSBzZWN0aW9ucyBhcyBpbnZhcmlhbnQuICBUbyBkbyB0aGlzLCBhZGQgdGhlaXIK ICAgICB0aXRsZXMgdG8gdGhlIGxpc3Qgb2YgSW52YXJpYW50IFNlY3Rpb25zIGluIHRoZSBNb2Rp ZmllZCBWZXJzaW9u4oCZcwogICAgIGxpY2Vuc2Ugbm90aWNlLiAgVGhlc2UgdGl0bGVzIG11c3Qg YmUgZGlzdGluY3QgZnJvbSBhbnkgb3RoZXIKICAgICBzZWN0aW9uIHRpdGxlcy4KCiAgICAgWW91 IG1heSBhZGQgYSBzZWN0aW9uIEVudGl0bGVkIOKAnEVuZG9yc2VtZW50c+KAnSwgcHJvdmlkZWQg aXQgY29udGFpbnMKICAgICBub3RoaW5nIGJ1dCBlbmRvcnNlbWVudHMgb2YgeW91ciBNb2RpZmll ZCBWZXJzaW9uIGJ5IHZhcmlvdXMKICAgICBwYXJ0aWVz4oCUZm9yIGV4YW1wbGUsIHN0YXRlbWVu dHMgb2YgcGVlciByZXZpZXcgb3IgdGhhdCB0aGUgdGV4dCBoYXMKICAgICBiZWVuIGFwcHJvdmVk IGJ5IGFuIG9yZ2FuaXphdGlvbiBhcyB0aGUgYXV0aG9yaXRhdGl2ZSBkZWZpbml0aW9uIG9mCiAg ICAgYSBzdGFuZGFyZC4KCiAgICAgWW91IG1heSBhZGQgYSBwYXNzYWdlIG9mIHVwIHRvIGZpdmUg d29yZHMgYXMgYSBGcm9udC1Db3ZlciBUZXh0LAogICAgIGFuZCBhIHBhc3NhZ2Ugb2YgdXAgdG8g MjUgd29yZHMgYXMgYSBCYWNrLUNvdmVyIFRleHQsIHRvIHRoZSBlbmQgb2YKICAgICB0aGUgbGlz dCBvZiBDb3ZlciBUZXh0cyBpbiB0aGUgTW9kaWZpZWQgVmVyc2lvbi4gIE9ubHkgb25lIHBhc3Nh Z2UKICAgICBvZiBGcm9udC1Db3ZlciBUZXh0IGFuZCBvbmUgb2YgQmFjay1Db3ZlciBUZXh0IG1h eSBiZSBhZGRlZCBieSAob3IKICAgICB0aHJvdWdoIGFycmFuZ2VtZW50cyBtYWRlIGJ5KSBhbnkg b25lIGVudGl0eS4gIElmIHRoZSBEb2N1bWVudAogICAgIGFscmVhZHkgaW5jbHVkZXMgYSBjb3Zl ciB0ZXh0IGZvciB0aGUgc2FtZSBjb3ZlciwgcHJldmlvdXNseSBhZGRlZAogICAgIGJ5IHlvdSBv ciBieSBhcnJhbmdlbWVudCBtYWRlIGJ5IHRoZSBzYW1lIGVudGl0eSB5b3UgYXJlIGFjdGluZyBv bgogICAgIGJlaGFsZiBvZiwgeW91IG1heSBub3QgYWRkIGFub3RoZXI7IGJ1dCB5b3UgbWF5IHJl cGxhY2UgdGhlIG9sZAogICAgIG9uZSwgb24gZXhwbGljaXQgcGVybWlzc2lvbiBmcm9tIHRoZSBw cmV2aW91cyBwdWJsaXNoZXIgdGhhdCBhZGRlZAogICAgIHRoZSBvbGQgb25lLgoKICAgICBUaGUg YXV0aG9yKHMpIGFuZCBwdWJsaXNoZXIocykgb2YgdGhlIERvY3VtZW50IGRvIG5vdCBieSB0aGlz CiAgICAgTGljZW5zZSBnaXZlIHBlcm1pc3Npb24gdG8gdXNlIHRoZWlyIG5hbWVzIGZvciBwdWJs aWNpdHkgZm9yIG9yIHRvCiAgICAgYXNzZXJ0IG9yIGltcGx5IGVuZG9yc2VtZW50IG9mIGFueSBN b2RpZmllZCBWZXJzaW9uLgoKICA1LiBDT01CSU5JTkcgRE9DVU1FTlRTCgogICAgIFlvdSBtYXkg Y29tYmluZSB0aGUgRG9jdW1lbnQgd2l0aCBvdGhlciBkb2N1bWVudHMgcmVsZWFzZWQgdW5kZXIK ICAgICB0aGlzIExpY2Vuc2UsIHVuZGVyIHRoZSB0ZXJtcyBkZWZpbmVkIGluIHNlY3Rpb24gNCBh Ym92ZSBmb3IKICAgICBtb2RpZmllZCB2ZXJzaW9ucywgcHJvdmlkZWQgdGhhdCB5b3UgaW5jbHVk ZSBpbiB0aGUgY29tYmluYXRpb24gYWxsCiAgICAgb2YgdGhlIEludmFyaWFudCBTZWN0aW9ucyBv ZiBhbGwgb2YgdGhlIG9yaWdpbmFsIGRvY3VtZW50cywKICAgICB1bm1vZGlmaWVkLCBhbmQgbGlz dCB0aGVtIGFsbCBhcyBJbnZhcmlhbnQgU2VjdGlvbnMgb2YgeW91cgogICAgIGNvbWJpbmVkIHdv cmsgaW4gaXRzIGxpY2Vuc2Ugbm90aWNlLCBhbmQgdGhhdCB5b3UgcHJlc2VydmUgYWxsCiAgICAg dGhlaXIgV2FycmFudHkgRGlzY2xhaW1lcnMuCgogICAgIFRoZSBjb21iaW5lZCB3b3JrIG5lZWQg b25seSBjb250YWluIG9uZSBjb3B5IG9mIHRoaXMgTGljZW5zZSwgYW5kCiAgICAgbXVsdGlwbGUg aWRlbnRpY2FsIEludmFyaWFudCBTZWN0aW9ucyBtYXkgYmUgcmVwbGFjZWQgd2l0aCBhIHNpbmds ZQogICAgIGNvcHkuICBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgSW52YXJpYW50IFNlY3Rpb25zIHdp dGggdGhlIHNhbWUgbmFtZQogICAgIGJ1dCBkaWZmZXJlbnQgY29udGVudHMsIG1ha2UgdGhlIHRp dGxlIG9mIGVhY2ggc3VjaCBzZWN0aW9uIHVuaXF1ZQogICAgIGJ5IGFkZGluZyBhdCB0aGUgZW5k IG9mIGl0LCBpbiBwYXJlbnRoZXNlcywgdGhlIG5hbWUgb2YgdGhlCiAgICAgb3JpZ2luYWwgYXV0 aG9yIG9yIHB1Ymxpc2hlciBvZiB0aGF0IHNlY3Rpb24gaWYga25vd24sIG9yIGVsc2UgYQogICAg IHVuaXF1ZSBudW1iZXIuICBNYWtlIHRoZSBzYW1lIGFkanVzdG1lbnQgdG8gdGhlIHNlY3Rpb24g dGl0bGVzIGluCiAgICAgdGhlIGxpc3Qgb2YgSW52YXJpYW50IFNlY3Rpb25zIGluIHRoZSBsaWNl bnNlIG5vdGljZSBvZiB0aGUKICAgICBjb21iaW5lZCB3b3JrLgoKICAgICBJbiB0aGUgY29tYmlu YXRpb24sIHlvdSBtdXN0IGNvbWJpbmUgYW55IHNlY3Rpb25zIEVudGl0bGVkCiAgICAg4oCcSGlz dG9yeeKAnSBpbiB0aGUgdmFyaW91cyBvcmlnaW5hbCBkb2N1bWVudHMsIGZvcm1pbmcgb25lIHNl Y3Rpb24KICAgICBFbnRpdGxlZCDigJxIaXN0b3J54oCdOyBsaWtld2lzZSBjb21iaW5lIGFueSBz ZWN0aW9ucyBFbnRpdGxlZAogICAgIOKAnEFja25vd2xlZGdlbWVudHPigJ0sIGFuZCBhbnkgc2Vj dGlvbnMgRW50aXRsZWQg4oCcRGVkaWNhdGlvbnPigJ0uICBZb3UKICAgICBtdXN0IGRlbGV0ZSBh bGwgc2VjdGlvbnMgRW50aXRsZWQg4oCcRW5kb3JzZW1lbnRzLuKAnQoKICA2LiBDT0xMRUNUSU9O UyBPRiBET0NVTUVOVFMKCiAgICAgWW91IG1heSBtYWtlIGEgY29sbGVjdGlvbiBjb25zaXN0aW5n IG9mIHRoZSBEb2N1bWVudCBhbmQgb3RoZXIKICAgICBkb2N1bWVudHMgcmVsZWFzZWQgdW5kZXIg dGhpcyBMaWNlbnNlLCBhbmQgcmVwbGFjZSB0aGUgaW5kaXZpZHVhbAogICAgIGNvcGllcyBvZiB0 aGlzIExpY2Vuc2UgaW4gdGhlIHZhcmlvdXMgZG9jdW1lbnRzIHdpdGggYSBzaW5nbGUgY29weQog ICAgIHRoYXQgaXMgaW5jbHVkZWQgaW4gdGhlIGNvbGxlY3Rpb24sIHByb3ZpZGVkIHRoYXQgeW91 IGZvbGxvdyB0aGUKICAgICBydWxlcyBvZiB0aGlzIExpY2Vuc2UgZm9yIHZlcmJhdGltIGNvcHlp bmcgb2YgZWFjaCBvZiB0aGUgZG9jdW1lbnRzCiAgICAgaW4gYWxsIG90aGVyIHJlc3BlY3RzLgoK ICAgICBZb3UgbWF5IGV4dHJhY3QgYSBzaW5nbGUgZG9jdW1lbnQgZnJvbSBzdWNoIGEgY29sbGVj dGlvbiwgYW5kCiAgICAgZGlzdHJpYnV0ZSBpdCBpbmRpdmlkdWFsbHkgdW5kZXIgdGhpcyBMaWNl bnNlLCBwcm92aWRlZCB5b3UgaW5zZXJ0CiAgICAgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBpbnRv IHRoZSBleHRyYWN0ZWQgZG9jdW1lbnQsIGFuZCBmb2xsb3cgdGhpcwogICAgIExpY2Vuc2UgaW4g YWxsIG90aGVyIHJlc3BlY3RzIHJlZ2FyZGluZyB2ZXJiYXRpbSBjb3B5aW5nIG9mIHRoYXQKICAg ICBkb2N1bWVudC4KCiAgNy4gQUdHUkVHQVRJT04gV0lUSCBJTkRFUEVOREVOVCBXT1JLUwoKICAg ICBBIGNvbXBpbGF0aW9uIG9mIHRoZSBEb2N1bWVudCBvciBpdHMgZGVyaXZhdGl2ZXMgd2l0aCBv dGhlcgogICAgIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudCBkb2N1bWVudHMgb3Igd29ya3MsIGlu IG9yIG9uIGEgdm9sdW1lIG9mIGEKICAgICBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0s IGlzIGNhbGxlZCBhbiDigJxhZ2dyZWdhdGXigJ0gaWYgdGhlCiAgICAgY29weXJpZ2h0IHJlc3Vs dGluZyBmcm9tIHRoZSBjb21waWxhdGlvbiBpcyBub3QgdXNlZCB0byBsaW1pdCB0aGUKICAgICBs ZWdhbCByaWdodHMgb2YgdGhlIGNvbXBpbGF0aW9u4oCZcyB1c2VycyBiZXlvbmQgd2hhdCB0aGUg aW5kaXZpZHVhbAogICAgIHdvcmtzIHBlcm1pdC4gIFdoZW4gdGhlIERvY3VtZW50IGlzIGluY2x1 ZGVkIGluIGFuIGFnZ3JlZ2F0ZSwgdGhpcwogICAgIExpY2Vuc2UgZG9lcyBub3QgYXBwbHkgdG8g dGhlIG90aGVyIHdvcmtzIGluIHRoZSBhZ2dyZWdhdGUgd2hpY2gKICAgICBhcmUgbm90IHRoZW1z ZWx2ZXMgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgRG9jdW1lbnQuCgogICAgIElmIHRoZSBDb3Zl ciBUZXh0IHJlcXVpcmVtZW50IG9mIHNlY3Rpb24gMyBpcyBhcHBsaWNhYmxlIHRvIHRoZXNlCiAg ICAgY29waWVzIG9mIHRoZSBEb2N1bWVudCwgdGhlbiBpZiB0aGUgRG9jdW1lbnQgaXMgbGVzcyB0 aGFuIG9uZSBoYWxmCiAgICAgb2YgdGhlIGVudGlyZSBhZ2dyZWdhdGUsIHRoZSBEb2N1bWVudOKA mXMgQ292ZXIgVGV4dHMgbWF5IGJlIHBsYWNlZAogICAgIG9uIGNvdmVycyB0aGF0IGJyYWNrZXQg dGhlIERvY3VtZW50IHdpdGhpbiB0aGUgYWdncmVnYXRlLCBvciB0aGUKICAgICBlbGVjdHJvbmlj IGVxdWl2YWxlbnQgb2YgY292ZXJzIGlmIHRoZSBEb2N1bWVudCBpcyBpbiBlbGVjdHJvbmljCiAg ICAgZm9ybS4gIE90aGVyd2lzZSB0aGV5IG11c3QgYXBwZWFyIG9uIHByaW50ZWQgY292ZXJzIHRo YXQgYnJhY2tldAogICAgIHRoZSB3aG9sZSBhZ2dyZWdhdGUuCgogIDguIFRSQU5TTEFUSU9OCgog ICAgIFRyYW5zbGF0aW9uIGlzIGNvbnNpZGVyZWQgYSBraW5kIG9mIG1vZGlmaWNhdGlvbiwgc28g eW91IG1heQogICAgIGRpc3RyaWJ1dGUgdHJhbnNsYXRpb25zIG9mIHRoZSBEb2N1bWVudCB1bmRl ciB0aGUgdGVybXMgb2Ygc2VjdGlvbgogICAgIDQuICBSZXBsYWNpbmcgSW52YXJpYW50IFNlY3Rp b25zIHdpdGggdHJhbnNsYXRpb25zIHJlcXVpcmVzIHNwZWNpYWwKICAgICBwZXJtaXNzaW9uIGZy b20gdGhlaXIgY29weXJpZ2h0IGhvbGRlcnMsIGJ1dCB5b3UgbWF5IGluY2x1ZGUKICAgICB0cmFu c2xhdGlvbnMgb2Ygc29tZSBvciBhbGwgSW52YXJpYW50IFNlY3Rpb25zIGluIGFkZGl0aW9uIHRv IHRoZQogICAgIG9yaWdpbmFsIHZlcnNpb25zIG9mIHRoZXNlIEludmFyaWFudCBTZWN0aW9ucy4g IFlvdSBtYXkgaW5jbHVkZSBhCiAgICAgdHJhbnNsYXRpb24gb2YgdGhpcyBMaWNlbnNlLCBhbmQg YWxsIHRoZSBsaWNlbnNlIG5vdGljZXMgaW4gdGhlCiAgICAgRG9jdW1lbnQsIGFuZCBhbnkgV2Fy cmFudHkgRGlzY2xhaW1lcnMsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28KICAgICBpbmNsdWRlIHRo ZSBvcmlnaW5hbCBFbmdsaXNoIHZlcnNpb24gb2YgdGhpcyBMaWNlbnNlIGFuZCB0aGUKICAgICBv cmlnaW5hbCB2ZXJzaW9ucyBvZiB0aG9zZSBub3RpY2VzIGFuZCBkaXNjbGFpbWVycy4gIEluIGNh c2Ugb2YgYQogICAgIGRpc2FncmVlbWVudCBiZXR3ZWVuIHRoZSB0cmFuc2xhdGlvbiBhbmQgdGhl IG9yaWdpbmFsIHZlcnNpb24gb2YKICAgICB0aGlzIExpY2Vuc2Ugb3IgYSBub3RpY2Ugb3IgZGlz Y2xhaW1lciwgdGhlIG9yaWdpbmFsIHZlcnNpb24gd2lsbAogICAgIHByZXZhaWwuCgogICAgIElm IGEgc2VjdGlvbiBpbiB0aGUgRG9jdW1lbnQgaXMgRW50aXRsZWQg4oCcQWNrbm93bGVkZ2VtZW50 c+KAnSwKICAgICDigJxEZWRpY2F0aW9uc+KAnSwgb3Ig4oCcSGlzdG9yeeKAnSwgdGhlIHJlcXVp cmVtZW50IChzZWN0aW9uIDQpIHRvCiAgICAgUHJlc2VydmUgaXRzIFRpdGxlIChzZWN0aW9uIDEp IHdpbGwgdHlwaWNhbGx5IHJlcXVpcmUgY2hhbmdpbmcgdGhlCiAgICAgYWN0dWFsIHRpdGxlLgoK ICA5LiBURVJNSU5BVElPTgoKICAgICBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vu c2UsIG9yIGRpc3RyaWJ1dGUgdGhlIERvY3VtZW50CiAgICAgZXhjZXB0IGFzIGV4cHJlc3NseSBw cm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdAogICAgIG90aGVyd2lzZSB0 byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgaXQgaXMgdm9pZCwKICAg ICBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlz IExpY2Vuc2UuCgogICAgIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRo aXMgTGljZW5zZSwgdGhlbiB5b3VyCiAgICAgbGljZW5zZSBmcm9tIGEgcGFydGljdWxhciBjb3B5 cmlnaHQgaG9sZGVyIGlzIHJlaW5zdGF0ZWQgKGEpCiAgICAgcHJvdmlzaW9uYWxseSwgdW5sZXNz IGFuZCB1bnRpbCB0aGUgY29weXJpZ2h0IGhvbGRlciBleHBsaWNpdGx5IGFuZAogICAgIGZpbmFs bHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZQog ICAgIGNvcHlyaWdodCBob2xkZXIgZmFpbHMgdG8gbm90aWZ5IHlvdSBvZiB0aGUgdmlvbGF0aW9u IGJ5IHNvbWUKICAgICByZWFzb25hYmxlIG1lYW5zIHByaW9yIHRvIDYwIGRheXMgYWZ0ZXIgdGhl IGNlc3NhdGlvbi4KCiAgICAgTW9yZW92ZXIsIHlvdXIgbGljZW5zZSBmcm9tIGEgcGFydGljdWxh ciBjb3B5cmlnaHQgaG9sZGVyIGlzCiAgICAgcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUg Y29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCiAgICAgdmlvbGF0aW9uIGJ5IHNv bWUgcmVhc29uYWJsZSBtZWFucywgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB5b3UgaGF2ZQogICAg IHJlY2VpdmVkIG5vdGljZSBvZiB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNlIChmb3IgYW55IHdv cmspIGZyb20KICAgICB0aGF0IGNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlv bGF0aW9uIHByaW9yIHRvIDMwIGRheXMKICAgICBhZnRlciB5b3VyIHJlY2VpcHQgb2YgdGhlIG5v dGljZS4KCiAgICAgVGVybWluYXRpb24gb2YgeW91ciByaWdodHMgdW5kZXIgdGhpcyBzZWN0aW9u IGRvZXMgbm90IHRlcm1pbmF0ZQogICAgIHRoZSBsaWNlbnNlcyBvZiBwYXJ0aWVzIHdobyBoYXZl IHJlY2VpdmVkIGNvcGllcyBvciByaWdodHMgZnJvbSB5b3UKICAgICB1bmRlciB0aGlzIExpY2Vu c2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90CiAgICAgcGVy bWFuZW50bHkgcmVpbnN0YXRlZCwgcmVjZWlwdCBvZiBhIGNvcHkgb2Ygc29tZSBvciBhbGwgb2Yg dGhlCiAgICAgc2FtZSBtYXRlcmlhbCBkb2VzIG5vdCBnaXZlIHlvdSBhbnkgcmlnaHRzIHRvIHVz ZSBpdC4KCiAgMTAuIEZVVFVSRSBSRVZJU0lPTlMgT0YgVEhJUyBMSUNFTlNFCgogICAgIFRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggbmV3LCByZXZpc2VkIHZlcnNpb25z IG9mCiAgICAgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSBmcm9tIHRpbWUgdG8g dGltZS4gIFN1Y2ggbmV3CiAgICAgdmVyc2lvbnMgd2lsbCBiZSBzaW1pbGFyIGluIHNwaXJpdCB0 byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5CiAgICAgZGlmZmVyIGluIGRldGFpbCB0byBh ZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4gIFNlZQogICAgIDxodHRwczovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCgogICAgIEVhY2ggdmVyc2lvbiBvZiB0aGUgTGljZW5zZSBpcyBn aXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24KICAgICBudW1iZXIuICBJZiB0aGUgRG9jdW1l bnQgc3BlY2lmaWVzIHRoYXQgYSBwYXJ0aWN1bGFyIG51bWJlcmVkCiAgICAgdmVyc2lvbiBvZiB0 aGlzIExpY2Vuc2Ug4oCcb3IgYW55IGxhdGVyIHZlcnNpb27igJ0gYXBwbGllcyB0byBpdCwgeW91 CiAgICAgaGF2ZSB0aGUgb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMgZWl0aGVyIG9mCiAgICAgdGhhdCBzcGVjaWZpZWQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIg dmVyc2lvbiB0aGF0IGhhcyBiZWVuCiAgICAgcHVibGlzaGVkIChub3QgYXMgYSBkcmFmdCkgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRoZQogICAgIERvY3VtZW50IGRvZXMg bm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2UsIHlvdSBtYXkKICAg ICBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgKG5vdCBhcyBhIGRyYWZ0KSBieSB0 aGUgRnJlZQogICAgIFNvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgRG9jdW1lbnQgc3BlY2lm aWVzIHRoYXQgYSBwcm94eSBjYW4KICAgICBkZWNpZGUgd2hpY2ggZnV0dXJlIHZlcnNpb25zIG9m IHRoaXMgTGljZW5zZSBjYW4gYmUgdXNlZCwgdGhhdAogICAgIHByb3h54oCZcyBwdWJsaWMgc3Rh dGVtZW50IG9mIGFjY2VwdGFuY2Ugb2YgYSB2ZXJzaW9uIHBlcm1hbmVudGx5CiAgICAgYXV0aG9y aXplcyB5b3UgdG8gY2hvb3NlIHRoYXQgdmVyc2lvbiBmb3IgdGhlIERvY3VtZW50LgoKICAxMS4g UkVMSUNFTlNJTkcKCiAgICAg4oCcTWFzc2l2ZSBNdWx0aWF1dGhvciBDb2xsYWJvcmF0aW9uIFNp dGXigJ0gKG9yIOKAnE1NQyBTaXRl4oCdKSBtZWFucyBhbnkKICAgICBXb3JsZCBXaWRlIFdlYiBz ZXJ2ZXIgdGhhdCBwdWJsaXNoZXMgY29weXJpZ2h0YWJsZSB3b3JrcyBhbmQgYWxzbwogICAgIHBy b3ZpZGVzIHByb21pbmVudCBmYWNpbGl0aWVzIGZvciBhbnlib2R5IHRvIGVkaXQgdGhvc2Ugd29y a3MuICBBCiAgICAgcHVibGljIHdpa2kgdGhhdCBhbnlib2R5IGNhbiBlZGl0IGlzIGFuIGV4YW1w bGUgb2Ygc3VjaCBhIHNlcnZlci4KICAgICBBIOKAnE1hc3NpdmUgTXVsdGlhdXRob3IgQ29sbGFi b3JhdGlvbuKAnSAob3Ig4oCcTU1D4oCdKSBjb250YWluZWQgaW4gdGhlCiAgICAgc2l0ZSBtZWFu cyBhbnkgc2V0IG9mIGNvcHlyaWdodGFibGUgd29ya3MgdGh1cyBwdWJsaXNoZWQgb24gdGhlIE1N QwogICAgIHNpdGUuCgogICAgIOKAnENDLUJZLVNB4oCdIG1lYW5zIHRoZSBDcmVhdGl2ZSBDb21t b25zIEF0dHJpYnV0aW9uLVNoYXJlIEFsaWtlIDMuMAogICAgIGxpY2Vuc2UgcHVibGlzaGVkIGJ5 IENyZWF0aXZlIENvbW1vbnMgQ29ycG9yYXRpb24sIGEgbm90LWZvci1wcm9maXQKICAgICBjb3Jw b3JhdGlvbiB3aXRoIGEgcHJpbmNpcGFsIHBsYWNlIG9mIGJ1c2luZXNzIGluIFNhbiBGcmFuY2lz Y28sCiAgICAgQ2FsaWZvcm5pYSwgYXMgd2VsbCBhcyBmdXR1cmUgY29weWxlZnQgdmVyc2lvbnMg b2YgdGhhdCBsaWNlbnNlCiAgICAgcHVibGlzaGVkIGJ5IHRoYXQgc2FtZSBvcmdhbml6YXRpb24u CgogICAgIOKAnEluY29ycG9yYXRl4oCdIG1lYW5zIHRvIHB1Ymxpc2ggb3IgcmVwdWJsaXNoIGEg RG9jdW1lbnQsIGluIHdob2xlIG9yCiAgICAgaW4gcGFydCwgYXMgcGFydCBvZiBhbm90aGVyIERv Y3VtZW50LgoKICAgICBBbiBNTUMgaXMg4oCcZWxpZ2libGUgZm9yIHJlbGljZW5zaW5n4oCdIGlm IGl0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoaXMKICAgICBMaWNlbnNlLCBhbmQgaWYgYWxsIHdvcmtz IHRoYXQgd2VyZSBmaXJzdCBwdWJsaXNoZWQgdW5kZXIgdGhpcwogICAgIExpY2Vuc2Ugc29tZXdo ZXJlIG90aGVyIHRoYW4gdGhpcyBNTUMsIGFuZCBzdWJzZXF1ZW50bHkKICAgICBpbmNvcnBvcmF0 ZWQgaW4gd2hvbGUgb3IgaW4gcGFydCBpbnRvIHRoZSBNTUMsICgxKSBoYWQgbm8gY292ZXIKICAg ICB0ZXh0cyBvciBpbnZhcmlhbnQgc2VjdGlvbnMsIGFuZCAoMikgd2VyZSB0aHVzIGluY29ycG9y YXRlZCBwcmlvcgogICAgIHRvIE5vdmVtYmVyIDEsIDIwMDguCgogICAgIFRoZSBvcGVyYXRvciBv ZiBhbiBNTUMgU2l0ZSBtYXkgcmVwdWJsaXNoIGFuIE1NQyBjb250YWluZWQgaW4gdGhlCiAgICAg c2l0ZSB1bmRlciBDQy1CWS1TQSBvbiB0aGUgc2FtZSBzaXRlIGF0IGFueSB0aW1lIGJlZm9yZSBB dWd1c3QgMSwKICAgICAyMDA5LCBwcm92aWRlZCB0aGUgTU1DIGlzIGVsaWdpYmxlIGZvciByZWxp Y2Vuc2luZy4KCkFEREVORFVNOiBIb3cgdG8gdXNlIHRoaXMgTGljZW5zZSBmb3IgeW91ciBkb2N1 bWVudHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQoKVG8gdXNlIHRoaXMgTGljZW5zZSBpbiBhIGRvY3VtZW50IHlvdSBoYXZlIHdyaXR0ZW4sIGlu Y2x1ZGUgYSBjb3B5IG9mCnRoZSBMaWNlbnNlIGluIHRoZSBkb2N1bWVudCBhbmQgcHV0IHRoZSBm b2xsb3dpbmcgY29weXJpZ2h0IGFuZCBsaWNlbnNlCm5vdGljZXMganVzdCBhZnRlciB0aGUgdGl0 bGUgcGFnZToKCiAgICAgICBDb3B5cmlnaHQgKEMpICBZRUFSICBZT1VSIE5BTUUuCiAgICAgICBQ ZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRo aXMgZG9jdW1lbnQKICAgICAgIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1l bnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMwogICAgICAgb3IgYW55IGxhdGVyIHZlcnNpb24g cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247CiAgICAgICB3aXRoIG5v IEludmFyaWFudCBTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCBubyBCYWNrLUNv dmVyCiAgICAgICBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiB0 aGUgc2VjdGlvbiBlbnRpdGxlZCBgYEdOVQogICAgICAgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vu c2UnJy4KCiAgIElmIHlvdSBoYXZlIEludmFyaWFudCBTZWN0aW9ucywgRnJvbnQtQ292ZXIgVGV4 dHMgYW5kIEJhY2stQ292ZXIKVGV4dHMsIHJlcGxhY2UgdGhlIOKAnHdpdGguLi5UZXh0cy7igJ0g bGluZSB3aXRoIHRoaXM6CgogICAgICAgICB3aXRoIHRoZSBJbnZhcmlhbnQgU2VjdGlvbnMgYmVp bmcgTElTVCBUSEVJUiBUSVRMRVMsIHdpdGgKICAgICAgICAgdGhlIEZyb250LUNvdmVyIFRleHRz IGJlaW5nIExJU1QsIGFuZCB3aXRoIHRoZSBCYWNrLUNvdmVyIFRleHRzCiAgICAgICAgIGJlaW5n IExJU1QuCgogICBJZiB5b3UgaGF2ZSBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aG91dCBDb3ZlciBU ZXh0cywgb3Igc29tZSBvdGhlcgpjb21iaW5hdGlvbiBvZiB0aGUgdGhyZWUsIG1lcmdlIHRob3Nl IHR3byBhbHRlcm5hdGl2ZXMgdG8gc3VpdCB0aGUKc2l0dWF0aW9uLgoKICAgSWYgeW91ciBkb2N1 bWVudCBjb250YWlucyBub250cml2aWFsIGV4YW1wbGVzIG9mIHByb2dyYW0gY29kZSwgd2UKcmVj b21tZW5kIHJlbGVhc2luZyB0aGVzZSBleGFtcGxlcyBpbiBwYXJhbGxlbCB1bmRlciB5b3VyIGNo b2ljZSBvZiBmcmVlCnNvZnR3YXJlIGxpY2Vuc2UsIHN1Y2ggYXMgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlLCB0byBwZXJtaXQKdGhlaXIgdXNlIGluIGZyZWUgc29mdHdhcmUuCgpJbmRl eAoqKioqKgoKVGhpcyBpcyBhbiBhbHBoYWJldGljYWwgbGlzdGluZyBvZiBhbGwgY29uY2VwdHMs IGZ1bmN0aW9ucywgY29tbWFuZHMsCnZhcmlhYmxlcywgYW5kIHdpZGdldHMgZGVzY3JpYmVkIGlu IHRoaXMgbWFudWFsLgoKKiBNZW51OgoKKiBhY3Rpb24ga2V5d29yZDogICAgICAgICAgICAgICAg ICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDExMjQpCiogYWN0aXZhdGUgYSB3aWRn ZXQ6ICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDgzKQoq IGFjdGl2YXRlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAg ICAgKGxpbmUgMTExNikKKiBhY3RpdmUga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICBX aWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDEwNzcpCiogYWN0aXZlIHdpZGdldDogICAgICAgICAg ICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDgzKQoqIGFsaXN0OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0ZS4gICAgICAgICAgKGxpbmUg MjM4NykKKiBhcHBlbmQtYnV0dG9uLWFyZ3Mga2V5d29yZDogICAgICAgICAgICBlZGl0YWJsZS1s aXN0LiAgICAgIChsaW5lIDE5MzIpCiogYXJncyBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAg ICAgICAgbWVudS1jaG9pY2UuICAgICAgICAobGluZSAxNTM4KQoqIGFyZ3Mga2V5d29yZCA8MT46 ICAgICAgICAgICAgICAgICAgICAgIHJhZGlvLWJ1dHRvbi1jaG9pY2UuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxNjM5 KQoqIGFyZ3Mga2V5d29yZCA8Mj46ICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbGlzdC4gICAg ICAgICAgKGxpbmUgMTg2NykKKiBhcmdzIGtleXdvcmQgPDM+OiAgICAgICAgICAgICAgICAgICAg ICBlZGl0YWJsZS1saXN0LiAgICAgIChsaW5lIDE5NTQpCiogYXRvbWljIHNleHAgd2lkZ2V0OiAg ICAgICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAyMTQyKQoqIGJhc2lj IHdpZGdldHM6ICAgICAgICAgICAgICAgICAgICAgICAgIEludHJvZHVjdGlvbi4gICAgICAgKGxp bmUgICA3NSkKKiBib29sZWFuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9tcy4g ICAgICAgICAgICAgIChsaW5lIDIyNDIpCiogYnV0dG9uIHdpZGdldHM6ICAgICAgICAgICAgICAg ICAgICAgICAgVXNlciBJbnRlcmZhY2UuICAgICAobGluZSAgMjAyKQoqIGJ1dHRvbi1hcmdzIGtl eXdvcmQ6ICAgICAgICAgICAgICAgICAgIHJhZGlvLWJ1dHRvbi1jaG9pY2UuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAx NjI2KQoqIGJ1dHRvbi1hcmdzIGtleXdvcmQgPDE+OiAgICAgICAgICAgICAgIGNoZWNrbGlzdC4g ICAgICAgICAgKGxpbmUgMTg1NykKKiBidXR0b24tZmFjZSBrZXl3b3JkOiAgICAgICAgICAgICAg ICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA5MTUpCiogYnV0dG9uLWZhY2UtZ2V0IGtl eXdvcmQ6ICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDUwKQoqIGJ1 dHRvbi1wcmVmaXgga2V5d29yZDogICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAg KGxpbmUgIDkxOCkKKiBidXR0b24tc3VmZml4IGtleXdvcmQ6ICAgICAgICAgICAgICAgICBXaWRn ZXQgR2FsbGVyeS4gICAgIChsaW5lICA5MTgpCiogYnV0dG9ucyBrZXl3b3JkOiAgICAgICAgICAg ICAgICAgICAgICAgcmFkaW8tYnV0dG9uLWNob2ljZS4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDE2MzApCiogYnV0dG9u cyBrZXl3b3JkIDwxPjogICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0LiAgICAgICAgICAobGlu ZSAxODYxKQoqIGJ1dHRvbnMga2V5d29yZCA8Mj46ICAgICAgICAgICAgICAgICAgIGVkaXRhYmxl LWxpc3QuICAgICAgKGxpbmUgMTkzNSkKKiBjYXNlLWZvbGQga2V5d29yZDogICAgICAgICAgICAg ICAgICAgICBtZW51LWNob2ljZS4gICAgICAgIChsaW5lIDE1MjUpCiogY2hhcmFjdGVyOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAyMTcwKQoq IGNoZWNrYm94IHdpZGdldDogICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LiAgICAgICAg ICAgKGxpbmUgMTc4NSkKKiBjaGVja2xpc3Qgd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICBj aGVja2xpc3QuICAgICAgICAgIChsaW5lIDE4MjUpCiogY2hpbGRyZW4ga2V5d29yZDogICAgICAg ICAgICAgICAgICAgICAgbWVudS1jaG9pY2UuICAgICAgICAobGluZSAxNTMxKQoqIGNoaWxkcmVu IGtleXdvcmQgPDE+OiAgICAgICAgICAgICAgICAgIHJhZGlvLWJ1dHRvbi1jaG9pY2UuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAxNjMzKQoqIGNoaWxkcmVuIGtleXdvcmQgPDI+OiAgICAgICAgICAgICAgICAgIGNoZWNr bGlzdC4gICAgICAgICAgKGxpbmUgMTg2NCkKKiBjaGlsZHJlbiBrZXl3b3JkIDwzPjogICAgICAg ICAgICAgICAgICBlZGl0YWJsZS1saXN0LiAgICAgIChsaW5lIDE5NTEpCiogY2hvaWNlOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAyMjkx KQoqIGNob2ljZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIG1lbnUtY2hvaWNlLiAg ICAgICAgKGxpbmUgMTUzNSkKKiBjaG9pY2Uga2V5d29yZCA8MT46ICAgICAgICAgICAgICAgICAg ICByYWRpby1idXR0b24tY2hvaWNlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTYzNikKKiBjaG9pY2UtaXRlbSB3aWRn ZXQ6ICAgICAgICAgICAgICAgICAgICBjaG9pY2UtaXRlbS4gICAgICAgIChsaW5lIDE2ODMpCiog Y29kaW5nLXN5c3RlbTogICAgICAgICAgICAgICAgICAgICAgICAgYXRvbXMuICAgICAgICAgICAg ICAobGluZSAyMjYwKQoqIGNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0 b21zLiAgICAgICAgICAgICAgKGxpbmUgMjI0OCkKKiBjb21wbGV0aW9ucy1mdW5jdGlvbiBrZXl3 b3JkOiAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDEwMjgpCiogY29tcG9zaXRl IHNleHAgd2lkZ2V0czogICAgICAgICAgICAgICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAy Mjc1KQoqIGNvbnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0ZS4g ICAgICAgICAgKGxpbmUgMjI4MikKKiBjb25zdDogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdGFudHMuICAgICAgICAgIChsaW5lIDIwODIpCiogY29uc3RhbnQgd2lkZ2V0czog ICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLiAgICAgICAgICAobGluZSAyMDcxKQoqIGNv bnZlcnQtd2lkZ2V0IGtleXdvcmQ6ICAgICAgICAgICAgICAgIERlZmluaW5nIE5ldyBXaWRnZXRz LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgMjQ0NykKKiBjb3B5IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAg ICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDEwNjcpCiogY3JlYXRlIGtleXdvcmQ6ICAgICAg ICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAgNzgyKQoqIGRlYWN0 aXZhdGUgYSB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxp bmUgMTA4MykKKiBkZWFjdGl2YXRlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICBXaWRnZXQg R2FsbGVyeS4gICAgIChsaW5lIDExMjApCiogZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAgNzczKQoqIGRlZmF1bHQtZ2V0IGtl eXdvcmQ6ICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDg2OSkK KiBkZWZpbmUtd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICAgICBEZWZpbmluZyBOZXcgV2lk Z2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lIDI0MTMpCiogZGVmaW5pbmcgbmV3IHdpZGdldHM6ICAgICAgICAgICAg ICAgICAgRGVmaW5pbmcgTmV3IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAyNDA5KQoqIGRlbGV0ZSBrZXl3 b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDc5 MikKKiBkZWxldGUtYnV0dG9uLWFyZ3Mga2V5d29yZDogICAgICAgICAgICBlZGl0YWJsZS1saXN0 LiAgICAgIChsaW5lIDE5MjkpCiogZGlyZWN0b3J5OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXRvbXMuICAgICAgICAgICAgICAobGluZSAyMTk5KQoqIGRvYyBrZXl3b3JkOiAgICAgICAg ICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDkzNykKKiBkb2N1 bWVudGF0aW9uLXN0cmluZyB3aWRnZXQ6ICAgICAgICAgICBkb2N1bWVudGF0aW9uLXN0cmluZy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lIDIwMzQpCiogZWRpdGFibGUtZmllbGQgd2lkZ2V0OiAgICAgICAgICAgICAgICAg ZWRpdGFibGUtZmllbGQuICAgICAobGluZSAxMzc4KQoqIGVkaXRhYmxlLWxpc3Qgd2lkZ2V0OiAg ICAgICAgICAgICAgICAgIGVkaXRhYmxlLWxpc3QuICAgICAgKGxpbmUgMTg5NykKKiBlbWFjcy1j b21tZW50YXJ5LWxpbmsgd2lkZ2V0OiAgICAgICAgICBlbWFjcy1jb21tZW50YXJ5LWxpbmsuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAxMzMyKQoqIGVtYWNzLWxpYnJhcnktbGluayB3aWRnZXQ6ICAgICAgICAgICAgIGVt YWNzLWxpYnJhcnktbGluay4gKGxpbmUgMTMxOSkKKiBlbWJlZGRlZCBidXR0b25zOiAgICAgICAg ICAgICAgICAgICAgICBVc2VyIEludGVyZmFjZS4gICAgIChsaW5lICAyMTkpCiogZW50cnktZm9y bWF0IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgcmFkaW8tYnV0dG9uLWNob2ljZS4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lIDE2MTMpCiogZW50cnktZm9ybWF0IGtleXdvcmQgPDE+OiAgICAgICAgICAgICAgY2hlY2ts aXN0LiAgICAgICAgICAobGluZSAxODQ3KQoqIGVudHJ5LWZvcm1hdCBrZXl3b3JkIDwyPjogICAg ICAgICAgICAgIGVkaXRhYmxlLWxpc3QuICAgICAgKGxpbmUgMTkxMykKKiBleGFtcGxlIG9mIHVz aW5nIHdpZGdldHM6ICAgICAgICAgICAgICBQcm9ncmFtbWluZyBFeGFtcGxlLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg IDI1MykKKiBleHRlcm5hbCBmb3JtYXQ6ICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2Fs bGVyeS4gICAgIChsaW5lICA4MDcpCiogZXh0cmEtb2Zmc2V0IGtleXdvcmQ6ICAgICAgICAgICAg ICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAgOTczKQoqIGZhY2UtbGluayB3aWRnZXQ6 ICAgICAgICAgICAgICAgICAgICAgIGZhY2UtbGluay4gICAgICAgICAgKGxpbmUgMTI5NCkKKiBm aWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAg IChsaW5lIDIxNzcpCiogZmlsZS1saW5rIHdpZGdldDogICAgICAgICAgICAgICAgICAgICAgZmls ZS1saW5rLiAgICAgICAgICAobGluZSAxMzA2KQoqIGZsb2F0OiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjIzMCkKKiBmb2xsb3ctbGlu ayBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA5 NTYpCiogZm9ybWF0IGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxl cnkuICAgICAobGluZSAgODc0KQoqIGZvcm1hdC1oYW5kbGVyIGtleXdvcmQ6ICAgICAgICAgICAg ICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgMTAzOSkKKiBmdW5jdGlvbjogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDIyMTApCiogZnVu Y3Rpb24taXRlbTogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLiAgICAgICAgICAo bGluZSAyMTAxKQoqIGZ1bmN0aW9uLWxpbmsgd2lkZ2V0OiAgICAgICAgICAgICAgICAgIGZ1bmN0 aW9uLWxpbmsuICAgICAgKGxpbmUgMTI2OSkKKiBnZW5lcmljIHNleHAgd2lkZ2V0OiAgICAgICAg ICAgICAgICAgICBnZW5lcmljLiAgICAgICAgICAgIChsaW5lIDIxMDcpCiogZ3JlZWR5IGtleXdv cmQ6ICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0LiAgICAgICAgICAobGluZSAxODg3 KQoqIGdyb3VwIHdpZGdldDogICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwLiAgICAgICAg ICAgICAgKGxpbmUgMTk5MSkKKiBoZWxwLWVjaG8ga2V5d29yZDogICAgICAgICAgICAgICAgICAg ICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA5NDcpCiogaW5hY3RpdmUgd2lkZ2V0OiAgICAg ICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDgzKQoqIGluZGVu dCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxp bmUgIDk2MCkKKiBpbmZvLWxpbmsgd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICBpbmZvLWxp bmsuICAgICAgICAgIChsaW5lIDEyNTYpCiogaW5zZXJ0LWJ1dHRvbi1hcmdzIGtleXdvcmQ6ICAg ICAgICAgICAgZWRpdGFibGUtbGlzdC4gICAgICAobGluZSAxOTI2KQoqIGludGVnZXI6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjIxOCkK KiBpbnRlcm5hbCBmb3JtYXQ6ICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4g ICAgIChsaW5lICA4MDcpCiogaXRlbSB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAg aXRlbS4gICAgICAgICAgICAgICAobGluZSAxMTY4KQoqIGtleTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjI2NykKKiBrZXltYXAg a2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5l IDE0MDApCioga2V5d29yZCBhcmd1bWVudHM6ICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdh bGxlcnkuICAgICAobGluZSAgNzgwKQoqIGxhenk6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbXBvc2l0ZS4gICAgICAgICAgKGxpbmUgMjM5OCkKKiBsaW5rIHdpZGdldDogICAg ICAgICAgICAgICAgICAgICAgICAgICBsaW5rLiAgICAgICAgICAgICAgIChsaW5lIDEyMDcpCiog bGlzdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9zaXRlLiAgICAgICAg ICAobGluZSAyMzA5KQoqIG1hdGNoIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFdp ZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDk4OSkKKiBtZW51LWNob2ljZSB3aWRnZXQ6ICAgICAg ICAgICAgICAgICAgICBtZW51LWNob2ljZS4gICAgICAgIChsaW5lIDE0OTgpCiogbWVudS10YWcg a2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAg OTc3KQoqIG1lbnUtdGFnLWdldCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxs ZXJ5LiAgICAgKGxpbmUgIDk4MSkKKiBtb3VzZS0yIChvbiBidXR0b24gd2lkZ2V0cyk6ICAgICAg ICAgICBXaWRnZXRzIGFuZCB0aGUgQnVmZmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDc0MCkKKiBtb3VzZS1kb3du LWFjdGlvbiBrZXl3b3JkOiAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDEx MzEpCiogbW91c2UtZmFjZS1nZXQga2V5d29yZDogICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxl cnkuICAgICAobGluZSAxMDU4KQoqIG11c3QtbWF0Y2gga2V5d29yZDogICAgICAgICAgICAgICAg ICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjE4NykKKiBuYXRudW06ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDIyMjQpCiogbmV3 IHdpZGdldHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmaW5pbmcgTmV3IFdpZGdldHMu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAyNDA5KQoqIG5vdGlmeSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAg IFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgMTEzNykKKiBudW1iZXI6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdG9tcy4gICAgICAgICAgICAgIChsaW5lIDIyMzYpCiogb2ZmLWds eXBoIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLiAgICAgICAgICAgICAobGlu ZSAxNzMyKQoqIG9mZnNldCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBH YWxsZXJ5LiAgICAgKGxpbmUgIDk2OSkKKiBvbi1nbHlwaCBrZXl3b3JkOiAgICAgICAgICAgICAg ICAgICAgICB0b2dnbGUuICAgICAgICAgICAgIChsaW5lIDE3MjgpCiogb3B0aW9uIGZpZWxkIHRh ZzogICAgICAgICAgICAgICAgICAgICAgVXNlciBJbnRlcmZhY2UuICAgICAobGluZSAgMjEyKQoq IG90aGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAg ICAgKGxpbmUgMjI1MykKKiBwYXJlbnQga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgICBX aWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDEwMTgpCiogcGxpc3Q6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAyMzcwKQoqIHByb21wdC12 YWx1ZSBrZXl3b3JkOiAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUg MTE0OCkKKiBwdXNoLWJ1dHRvbiB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICBwdXNoLWJ1dHRv bi4gICAgICAgIChsaW5lIDEzNDUpCiogcmFkaW86ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29tcG9zaXRlLiAgICAgICAgICAobGluZSAyMzA1KQoqIHJhZGlvLWJ1dHRvbi1jaG9p Y2Ugd2lkZ2V0OiAgICAgICAgICAgIHJhZGlvLWJ1dHRvbi1jaG9pY2UuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxNTg5 KQoqIHJhZGlvLWJ1dHRvbi10b2dnbGUgd2lkZ2V0OiAgICAgICAgICAgIHJhZGlvLWJ1dHRvbi10 b2dnbGUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAxNzUwKQoqIHJlZ2V4cDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUgMjE2NCkKKiByZXBlYXQ6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb21wb3NpdGUuICAgICAgICAgIChsaW5lIDIzNjQpCiog cmVzdHJpY3RlZC1zZXhwOiAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJpYy4gICAgICAgICAg ICAobGluZSAyMTIzKQoqIHNlY3JldCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgIGVk aXRhYmxlLWZpZWxkLiAgICAgKGxpbmUgMTQyNCkKKiBzZXQ6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb21wb3NpdGUuICAgICAgICAgIChsaW5lIDIzNTApCiogc2V4cDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJpYy4gICAgICAgICAgICAobGluZSAy MTE0KQoqIHNleHAgdHlwZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNleHAgVHlwZXMu ICAgICAgICAgKGxpbmUgMjA2NCkKKiBzaWJsaW5nLWFyZ3Mga2V5d29yZDogICAgICAgICAgICAg ICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDEwMjIpCiogc2l6ZSBrZXl3b3JkOiAgICAg ICAgICAgICAgICAgICAgICAgICAgZWRpdGFibGUtZmllbGQuICAgICAobGluZSAxNDE0KQoqIHN0 cmluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAg KGxpbmUgMjE1OCkKKiBzeW1ib2w6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9t cy4gICAgICAgICAgICAgIChsaW5lIDIyMDUpCiogdGFiLW9yZGVyIGtleXdvcmQ6ICAgICAgICAg ICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAxMDA0KQoqIHRhZyBrZXl3b3Jk OiAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDk0 MCkKKiB0YWctZ2x5cGgga2V5d29yZDogICAgICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVy eS4gICAgIChsaW5lICA5NDMpCiogdGV4dCB3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGV4dC4gICAgICAgICAgICAgICAobGluZSAxNDc5KQoqIHRvZG86ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFdpZGdldCBXaXNobGlzdC4gICAgKGxpbmUgMjY3MykKKiB0b2dn bGUgd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGUuICAgICAgICAgICAgIChs aW5lIDE3MDUpCiogdXJsLWxpbmsgd2lkZ2V0OiAgICAgICAgICAgICAgICAgICAgICAgdXJsLWxp bmsuICAgICAgICAgICAobGluZSAxMjQ0KQoqIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3aWRnZXRz OiAgICAgICAgIFV0aWxpdGllcy4gICAgICAgICAgKGxpbmUgMjUxNSkKKiB2YWxpZC1yZWdleHAg a2V5d29yZDogICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4gICAgIChsaW5lIDE0MzEp CiogdmFsaWRhdGUga2V5d29yZDogICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnku ICAgICAobGluZSAgOTk0KQoqIHZhbHVlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAg IFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDgwNykKKiB2YWx1ZS1jcmVhdGUga2V5d29yZDog ICAgICAgICAgICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA4MzUpCiogdmFsdWUt ZGVsZXRlIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGlu ZSAgODQxKQoqIHZhbHVlLWZhY2Uga2V5d29yZDogICAgICAgICAgICAgICAgICAgIGVkaXRhYmxl LWZpZWxkLiAgICAgKGxpbmUgMTQxOSkKKiB2YWx1ZS1nZXQga2V5d29yZDogICAgICAgICAgICAg ICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA4NTEpCiogdmFsdWUtaW5saW5lIGtl eXdvcmQ6ICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAgODYzKQoq IHZhbHVlLXNldCBrZXl3b3JkOiAgICAgICAgICAgICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAg ICAgKGxpbmUgIDg1NSkKKiB2YWx1ZS10by1leHRlcm5hbCBrZXl3b3JkOiAgICAgICAgICAgICBX aWRnZXQgR2FsbGVyeS4gICAgIChsaW5lICA4MjkpCiogdmFsdWUtdG8taW50ZXJuYWwga2V5d29y ZDogICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAgODIxKQoqIHZhcmlhYmxl OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21zLiAgICAgICAgICAgICAgKGxpbmUg MjIxNCkKKiB2YXJpYWJsZS1pdGVtOiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdGFudHMu ICAgICAgICAgIChsaW5lIDIwOTgpCiogdmFyaWFibGUtbGluayB3aWRnZXQ6ICAgICAgICAgICAg ICAgICAgdmFyaWFibGUtbGluay4gICAgICAobGluZSAxMjgyKQoqIHZlY3RvcjogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0ZS4gICAgICAgICAgKGxpbmUgMjMyMCkKKiB2 b2lkIGtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51LWNob2ljZS4gICAgICAg IChsaW5lIDE1MTkpCiogd2lkZ2V0IGJyb3dzZXI6ICAgICAgICAgICAgICAgICAgICAgICAgSW5z cGVjdGluZyBXaWRnZXRzLiAobGluZSAyNDYyKQoqIHdpZGdldCBidXR0b25zOiAgICAgICAgICAg ICAgICAgICAgICAgIFVzZXIgSW50ZXJmYWNlLiAgICAgKGxpbmUgIDIwMikKKiB3aWRnZXQgY3Jl YXRpb24sIHdpZGdldCBjb252ZXJzaW9uOiAgICBTZXR0aW5nIFVwIHRoZSBCdWZmZXIuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgMzk5KQoqIHdpZGdldCBpbmhlcml0YW5jZTogICAgICAgICAgICAgICAgICAgIFdpZGdl dHMgQmFzaWNzLiAgICAgKGxpbmUgIDM1NSkKKiB3aWRnZXQgbGlicmFyeSwgd2h5IHVzZSBpdDog ICAgICAgICAgICBJbnRyb2R1Y3Rpb24uICAgICAgIChsaW5lICAxMTYpCiogd2lkZ2V0IG1pbm9y IG1vZGU6ICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0IE1pbm9yIE1vZGUuICAobGluZSAyNTAx KQoqIHdpZGdldCBvYmplY3Q6ICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldHMgQmFzaWNz LiAgICAgKGxpbmUgIDM0OSkKKiB3aWRnZXQgcHJvcGVydGllczogICAgICAgICAgICAgICAgICAg ICBXaWRnZXRzIEJhc2ljcy4gICAgIChsaW5lICAzOTEpCiogd2lkZ2V0IHN5bnRheDogICAgICAg ICAgICAgICAgICAgICAgICAgV2lkZ2V0IEdhbGxlcnkuICAgICAobGluZSAgNzU0KQoqIHdpZGdl dCB2YWx1ZTogICAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldHMgQmFzaWNzLiAgICAgKGxp bmUgIDM3NCkKKiB3aWRnZXQtYXBwbHk6ICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JraW5n IHdpdGggV2lkZ2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICA1NjQpCiogd2lkZ2V0LWFwcGx5LWFjdGlvbjogICAg ICAgICAgICAgICAgICAgV29ya2luZyB3aXRoIFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjM2KQoqIHdp ZGdldC1hdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtpbmcgd2l0aCBXaWRnZXRz LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgIDU1OCkKKiB3aWRnZXQtYmFja3dhcmQ6ICAgICAgICAgICAgICAgICAgICAg ICBXaWRnZXRzIGFuZCB0aGUgQnVmZmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDcwNikKKiB3aWRnZXQtYnJvd3Nl OiAgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0aW5nIFdpZGdldHMuIChsaW5lIDI0Njgp Ciogd2lkZ2V0LWJyb3dzZS1hdDogICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdGluZyBXaWRn ZXRzLiAobGluZSAyNDc4KQoqIHdpZGdldC1icm93c2Utb3RoZXItd2luZG93OiAgICAgICAgICAg IEluc3BlY3RpbmcgV2lkZ2V0cy4gKGxpbmUgMjQ3MykKKiB3aWRnZXQtYnV0dG9uLWNsaWNrOiAg ICAgICAgICAgICAgICAgICBXaWRnZXRzIGFuZCB0aGUgQnVmZmVyLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDc0MSkK KiB3aWRnZXQtYnV0dG9uLWNsaWNrIDwxPjogICAgICAgICAgICAgICBXaWRnZXRzIGFuZCB0aGUg QnVmZmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgIDc0MSkKKiB3aWRnZXQtYnV0dG9uLWZhY2U6ICAgICAgICAgICAg ICAgICAgICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI1ODIpCiogd2lkZ2V0LWJ1dHRvbi1w cmVmaXg6ICAgICAgICAgICAgICAgICAgQ3VzdG9taXphdGlvbi4gICAgICAobGluZSAyNjEwKQoq IHdpZGdldC1idXR0b24tcHJlc3M6ICAgICAgICAgICAgICAgICAgIFdpZGdldHMgYW5kIHRoZSBC dWZmZXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgNzMxKQoqIHdpZGdldC1idXR0b24tcHJlc3MgPDE+OiAgICAgICAg ICAgICAgIFdpZGdldHMgYW5kIHRoZSBCdWZmZXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNzMxKQoqIHdpZGdldC1i dXR0b24tc3VmZml4OiAgICAgICAgICAgICAgICAgIEN1c3RvbWl6YXRpb24uICAgICAgKGxpbmUg MjYxMykKKiB3aWRnZXQtY2hpbGQtdmFsaWRhdGU6ICAgICAgICAgICAgICAgICBXb3JraW5nIHdp dGggV2lkZ2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICA2NDcpCiogd2lkZ2V0LWNoaWxkLXZhbHVlLWdldDogICAg ICAgICAgICAgICAgV29ya2luZyB3aXRoIFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjA1KQoqIHdpZGdl dC1jaGlsZC12YWx1ZS1pbmxpbmU6ICAgICAgICAgICAgIFdvcmtpbmcgd2l0aCBXaWRnZXRzLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDYwOCkKKiB3aWRnZXQtY2hpbGRyZW4tdmFsaWRhdGU6ICAgICAgICAgICAgICBX b3JraW5nIHdpdGggV2lkZ2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2NTMpCiogd2lkZ2V0LWNoaWxkcmVuLXZh bHVlLWRlbGV0ZTogICAgICAgICAgU2V0dGluZyBVcCB0aGUgQnVmZmVyLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQ4 MikKKiB3aWRnZXQtY2hvaWNlLXRvZ2dsZTogICAgICAgICAgICAgICAgICBDdXN0b21pemF0aW9u LiAgICAgIChsaW5lIDI2MjgpCiogd2lkZ2V0LWNob29zZTogICAgICAgICAgICAgICAgICAgICAg ICAgVXRpbGl0aWVzLiAgICAgICAgICAobGluZSAyNTMzKQoqIHdpZGdldC1jb21wbGV0ZTogICAg ICAgICAgICAgICAgICAgICAgIFdpZGdldHMgYW5kIHRoZSBCdWZmZXIuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNzIy KQoqIHdpZGdldC1jb252ZXJ0OiAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgVXAgdGhl IEJ1ZmZlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICA1MDQpCiogd2lkZ2V0LWNvcHk6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2V0dGluZyBVcCB0aGUgQnVmZmVyLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQ5NCkKKiB3aWRnZXQt Y3JlYXRlOiAgICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5nIFVwIHRoZSBCdWZmZXIuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgNDE0KQoqIHdpZGdldC1jcmVhdGUtY2hpbGQ6ICAgICAgICAgICAgICAgICAgIFNl dHRpbmcgVXAgdGhlIEJ1ZmZlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA0NDMpCiogd2lkZ2V0LWNyZWF0ZS1jaGls ZC1hbmQtY29udmVydDogICAgICAgU2V0dGluZyBVcCB0aGUgQnVmZmVyLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQz MykKKiB3aWRnZXQtY3JlYXRlLWNoaWxkLXZhbHVlOiAgICAgICAgICAgICBTZXR0aW5nIFVwIHRo ZSBCdWZmZXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgNDQ5KQoqIHdpZGdldC1kZWZhdWx0LWRlbGV0ZTogICAgICAg ICAgICAgICAgIFdpZGdldCBHYWxsZXJ5LiAgICAgKGxpbmUgIDgwMCkKKiB3aWRnZXQtZGVmYXVs dC1mb3JtYXQtaGFuZGxlcjogICAgICAgICBXaWRnZXQgR2FsbGVyeS4gICAgIChsaW5lIDEwNDYp Ciogd2lkZ2V0LWRlZmF1bHQtZ2V0OiAgICAgICAgICAgICAgICAgICAgV29ya2luZyB3aXRoIFdp ZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgNTkyKQoqIHdpZGdldC1kZWxldGU6ICAgICAgICAgICAgICAgICAg ICAgICAgIFNldHRpbmcgVXAgdGhlIEJ1ZmZlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA0NzkpCiogd2lkZ2V0LWRl c2NyaWJlOiAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdGluZyBXaWRnZXRzLiAobGluZSAy NDg1KQoqIHdpZGdldC1kb2N1bWVudGF0aW9uLWxpbmstcDogICAgICAgICAgIEN1c3RvbWl6YXRp b24uICAgICAgKGxpbmUgMjY0MCkKKiB3aWRnZXQtZG9jdW1lbnRhdGlvbi1saW5rLXJlZ2V4cDog ICAgICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI2MzYpCiogd2lkZ2V0LWRvY3VtZW50YXRp b24tbGluay10eXBlOiAgICAgICAgQ3VzdG9taXphdGlvbi4gICAgICAobGluZSAyNjQ3KQoqIHdp ZGdldC1kb2N1bWVudGF0aW9uLWxpbmtzOiAgICAgICAgICAgIEN1c3RvbWl6YXRpb24uICAgICAg KGxpbmUgMjYzMykKKiB3aWRnZXQtZWNoby1oZWxwOiAgICAgICAgICAgICAgICAgICAgICBVdGls aXRpZXMuICAgICAgICAgIChsaW5lIDI1NjcpCiogd2lkZ2V0LWVuZC1vZi1saW5lOiAgICAgICAg ICAgICAgICAgICAgV2lkZ2V0cyBhbmQgdGhlIEJ1ZmZlci4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA3MTMpCiogd2lk Z2V0LWZpZWxkLWFjdGl2YXRlOiAgICAgICAgICAgICAgICAgV2lkZ2V0cyBhbmQgdGhlIEJ1ZmZl ci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICA3MjYpCiogd2lkZ2V0LWZpZWxkLWF0OiAgICAgICAgICAgICAgICAgICAg ICAgV29ya2luZyB3aXRoIFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTYxKQoqIHdpZGdldC1maWVsZC1m YWNlOiAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWl6YXRpb24uICAgICAgKGxpbmUgMjU3OSkK KiB3aWRnZXQtZmllbGQta2V5bWFwOiAgICAgICAgICAgICAgICAgICBlZGl0YWJsZS1maWVsZC4g ICAgIChsaW5lIDE0MDApCiogd2lkZ2V0LWZvcndhcmQ6ICAgICAgICAgICAgICAgICAgICAgICAg V2lkZ2V0cyBhbmQgdGhlIEJ1ZmZlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA3MDIpCiogd2lkZ2V0LWdldDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgV29ya2luZyB3aXRoIFdpZGdldHMuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg NTQ4KQoqIHdpZGdldC1nZXQtc2libGluZzogICAgICAgICAgICAgICAgICAgIFV0aWxpdGllcy4g ICAgICAgICAgKGxpbmUgMjUyOSkKKiB3aWRnZXQtZ2xvYmFsLW1hcDogICAgICAgICAgICAgICAg ICAgICBXaWRnZXRzIGFuZCB0aGUgQnVmZmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDY5MikKKiB3aWRnZXQtaW1h Z2UtY29udmVyc2lvbjogICAgICAgICAgICAgICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI2 MDIpCiogd2lkZ2V0LWltYWdlLWRpcmVjdG9yeTogICAgICAgICAgICAgICAgQ3VzdG9taXphdGlv bi4gICAgICAobGluZSAyNTkxKQoqIHdpZGdldC1pbWFnZS1lbmFibGU6ICAgICAgICAgICAgICAg ICAgIEN1c3RvbWl6YXRpb24uICAgICAgKGxpbmUgMjU5OCkKKiB3aWRnZXQtaW1hZ2UtZmluZDog ICAgICAgICAgICAgICAgICAgICBVdGlsaXRpZXMuICAgICAgICAgIChsaW5lIDI1NTMpCiogd2lk Z2V0LWltYWdlLWluc2VydDogICAgICAgICAgICAgICAgICAgVXRpbGl0aWVzLiAgICAgICAgICAo bGluZSAyNTYxKQoqIHdpZGdldC1pbnNlcnQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRp bmcgVXAgdGhlIEJ1ZmZlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA1MTgpCiogd2lkZ2V0LWtleW1hcDogICAgICAg ICAgICAgICAgICAgICAgICAgV2lkZ2V0cyBhbmQgdGhlIEJ1ZmZlci4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2ODEp Ciogd2lkZ2V0LWtpbGwtbGluZTogICAgICAgICAgICAgICAgICAgICAgV2lkZ2V0cyBhbmQgdGhl IEJ1ZmZlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICA3MTgpCiogd2lkZ2V0LWxpbmstcHJlZml4OiAgICAgICAgICAg ICAgICAgICAgQ3VzdG9taXphdGlvbi4gICAgICAobGluZSAyNjIyKQoqIHdpZGdldC1saW5rLXN1 ZmZpeDogICAgICAgICAgICAgICAgICAgIEN1c3RvbWl6YXRpb24uICAgICAgKGxpbmUgMjYyNSkK KiB3aWRnZXQtbWVtYmVyOiAgICAgICAgICAgICAgICAgICAgICAgICBXb3JraW5nIHdpdGggV2lk Z2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICA1NDQpCiogd2lkZ2V0LW1lbnUtbWF4LXNob3J0Y3V0czogICAgICAg ICAgICAgQ3VzdG9taXphdGlvbi4gICAgICAobGluZSAyNjU5KQoqIHdpZGdldC1tZW51LW1heC1z aXplOiAgICAgICAgICAgICAgICAgIEN1c3RvbWl6YXRpb24uICAgICAgKGxpbmUgMjY1MykKKiB3 aWRnZXQtbWVudS1taW5pYnVmZmVyLWZsYWc6ICAgICAgICAgICBDdXN0b21pemF0aW9uLiAgICAg IChsaW5lIDI2NjUpCiogd2lkZ2V0LW1pbm9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgV2lk Z2V0IE1pbm9yIE1vZGUuICAobGluZSAyNTA1KQoqIHdpZGdldC1taW5vci1tb2RlLWtleW1hcDog ICAgICAgICAgICAgIFdpZGdldCBNaW5vciBNb2RlLiAgKGxpbmUgMjUwOSkKKiB3aWRnZXQtbW91 c2UtZmFjZTogICAgICAgICAgICAgICAgICAgICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI1 ODUpCiogd2lkZ2V0LXBhcmVudC1hY3Rpb246ICAgICAgICAgICAgICAgICAgV29ya2luZyB3aXRo IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgNjQyKQoqIHdpZGdldC1wcm9tcHQtdmFsdWU6ICAgICAgICAg ICAgICAgICAgIFV0aWxpdGllcy4gICAgICAgICAgKGxpbmUgMjUxOCkKKiB3aWRnZXQtcHVzaC1i dXR0b24tcHJlZml4OiAgICAgICAgICAgICBDdXN0b21pemF0aW9uLiAgICAgIChsaW5lIDI2MTYp Ciogd2lkZ2V0LXB1c2gtYnV0dG9uLXN1ZmZpeDogICAgICAgICAgICAgQ3VzdG9taXphdGlvbi4g ICAgICAobGluZSAyNjE5KQoqIHdpZGdldC1wdXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAg IFdvcmtpbmcgd2l0aCBXaWRnZXRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDU1NCkKKiB3aWRnZXQtcmFkaW8tYWRk LWl0ZW06ICAgICAgICAgICAgICAgICByYWRpby1idXR0b24tY2hvaWNlLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTY3 MikKKiB3aWRnZXQtc2V0dXA6ICAgICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5nIFVwIHRo ZSBCdWZmZXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgNDY2KQoqIHdpZGdldC10ZXh0LWtleW1hcDogICAgICAgICAg ICAgICAgICAgIHRleHQuICAgICAgICAgICAgICAgKGxpbmUgMTQ5MSkKKiB3aWRnZXQtdHlwZTog ICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JraW5nIHdpdGggV2lkZ2V0cy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l ICA1MzcpCiogd2lkZ2V0LXR5cGUtZGVmYXVsdC1nZXQ6ICAgICAgICAgICAgICAgV29ya2luZyB3 aXRoIFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgNjAxKQoqIHdpZGdldC10eXBlLW1hdGNoOiAgICAgICAg ICAgICAgICAgICAgIFdvcmtpbmcgd2l0aCBXaWRnZXRzLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDY1OCkKKiB3aWRn ZXQtdHlwZS12YWx1ZS1jcmVhdGU6ICAgICAgICAgICAgICBXb3JraW5nIHdpdGggV2lkZ2V0cy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lICA2MTUpCiogd2lkZ2V0LXR5cGVzLWNvbnZlcnQtd2lkZ2V0OiAgICAgICAgICAg V29ya2luZyB3aXRoIFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjcwKQoqIHdpZGdldC10eXBlcy1jb3B5 OiAgICAgICAgICAgICAgICAgICAgIFdvcmtpbmcgd2l0aCBXaWRnZXRzLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDY2 NCkKKiB3aWRnZXQtdmFsdWU6ICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JraW5nIHdpdGgg V2lkZ2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICA1NzApCiogd2lkZ2V0LXZhbHVlLWNvbnZlcnQtd2lkZ2V0OiAg ICAgICAgICAgV29ya2luZyB3aXRoIFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjI0KQoqIHdpZGdldC12 YWx1ZS1zZXQ6ICAgICAgICAgICAgICAgICAgICAgIFdvcmtpbmcgd2l0aCBXaWRnZXRzLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDU4MykKKiB3aWRnZXQtdmFsdWUtdmFsdWUtZ2V0OiAgICAgICAgICAgICAgICBXb3Jr aW5nIHdpdGggV2lkZ2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2MjkpCiogd2lkZ2V0cDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgV29ya2luZyB3aXRoIFdpZGdldHMuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTM0KQoq IHdpZGdldHMsIGJhc2ljIHR5cGVzOiAgICAgICAgICAgICAgICAgIEludHJvZHVjdGlvbi4gICAg ICAgKGxpbmUgICA3NSkKKiB3aWRnZXRzLCBwcm9ncmFtbWluZyBleGFtcGxlOiAgICAgICAgICBQ cm9ncmFtbWluZyBFeGFtcGxlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI1MykKCg== --000000000000c5860b060371b5ce--