Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rmz2I-00Ay50-MS for pgsql-hackers@arkaria.postgresql.org; Wed, 20 Mar 2024 16:43:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rmz2F-006KgT-VQ for pgsql-hackers@arkaria.postgresql.org; Wed, 20 Mar 2024 16:43:28 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rmz2F-006KgL-44 for pgsql-hackers@lists.postgresql.org; Wed, 20 Mar 2024 16:43:27 +0000 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rmz2B-005ZqV-D2 for pgsql-hackers@postgresql.org; Wed, 20 Mar 2024 16:43:26 +0000 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-a45f257b81fso6418666b.0 for ; Wed, 20 Mar 2024 09:43:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710953001; x=1711557801; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=FqkUUQYANTUC3QfA+3lUNpDdmZgKwu4B5QVmKT5BztQ=; b=P8u+z3OxVRv6Nj8wmNeP4jlMpUQnHk6JrzM6ycyAx8zC8YNq6rzJYRcKJN8HyRjuod FiB1RvbQU9co7rizJ+LvVC6TMGOcPkn2h+qOgSqBaYReRS9ZnD2Pli6Jw5VX5GspabZL vrBTzv5kwXtWqTZFtSAjFykCfPg0hrylr8nnPTSBjealD5qWIRGYJcybI7pGtS5mZ7eI Homo7AK6fRFF+d5+WtDJrYjafumvX5zE1V8OUAGR+CIBGmUDElzbZAk+4fME2Z2F6JUA iI+UnLiXqOGfoHYg7g0eFIe1hKd98XaoyQVptJlq7+RWTsrjRcOWy5038/dqX9wnhhPS g11A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710953001; x=1711557801; 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=FqkUUQYANTUC3QfA+3lUNpDdmZgKwu4B5QVmKT5BztQ=; b=Xg8cTa02DpArdetUwOq8RK8EcxI6ST9xEShDilc6zhgoXNOqs9WyJzt4zxiqojClrW iUA1hfICDBIY4PhhtTIT9HPfgC0bB0aVlajut1uS1lIIqEkljcY0DMjH675z6KdXcDiM Bj/vaJHDACsrFoYNaulkBEuLS3pf9h9jnFv8439E8+PNJqF13aGjqvGJlcLoeXPz84Hg jdpQI7JmL5e1mz7RgB+YYIBXVr+zdCaIFMpQ8cTlfrM7foO6FntLiC0qEzIhBRxnEkIR e8WexKnLP8PHPBPbPbKYiLG9/6tsM+2cxLiPDf/J1W2p6DKNVi7OcKKW6ZdyFPyMXNWL bydg== X-Gm-Message-State: AOJu0Yxm5GVr9sIcL9057ueXMdv0YadMk6Cr4ZSOmqZsmAPSUz0OQQgE 9tuhlOsyYIJs9bfjVmRY/KLiYCdM7YOYgujBmUXnv2mZ/Gm66tKHAHRbcS9Saw7CouPSXZ1g9Yl aC7gkxE8hE0LyV87giXgSLrJofNA2BB4k X-Google-Smtp-Source: AGHT+IFd4lNNaKkY1pDb+ik3h2BWPM9jbB+mxd5uZN0+J2iUP7UuVwSoRwKcjzdgikJL6g8vr3f5I4ri93wswN1c7AQ= X-Received: by 2002:a17:906:c9d4:b0:a46:9395:de1f with SMTP id hk20-20020a170906c9d400b00a469395de1fmr1673322ejb.62.1710953000914; Wed, 20 Mar 2024 09:43:20 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Robert Haas Date: Wed, 20 Mar 2024 12:43:08 -0400 Message-ID: Subject: Re: documentation structure To: Andrew Dunstan Cc: "pgsql-hackers@postgresql.org" Content-Type: multipart/mixed; boundary="000000000000d8f3db06141a4941" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d8f3db06141a4941 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 19, 2024 at 5:39=E2=80=AFPM Andrew Dunstan wrote: > +many for improving the index. Here's a series of four patches. Taken together, they cut down the number of numbered chapters from 76 to 68. I think we could easily save that much again if I wrote a few more patches along similar lines, but I'm posting these first to see what people think. 0001 removes the "Installation from Binaries" chapter. The whole thing is four sentences. I moved the most important information into the "Installation from Source Code" chapter and retitled it "Installation". 0002 removes the "Monitoring Disk Usage" chapter by folding it into the immediately-preceding "Monitoring Database Activity" chapter. I kind of feel like the "Monitoring Disk Usage" chapter might be in need of a bigger rewrite or just outright removal, but there's surely not enough content here to justify making it a top-level chapter. 0003 merges all of the "Internals" chapters whose names are the names of built-in index access methods (Btree, Gin, etc.) into a single chapter called "Built-In Index Access Methods". All of these chapters have a very similar structure and none of them are very long, so it makes a lot of sense, at least in my mind, to consolidate them into one. 0004 merges the "Generic WAL Records" and "Custom WAL Resource Managers" chapter together, creating a new chapter called "Write Ahead Logging for Extensions". Overall, I think this achieves a minor but pleasant level of de-cluttering of the index. It's going to take a lot more than one morning's work to produce a major improvement, but at least this is something. --=20 Robert Haas EDB: http://www.enterprisedb.com --000000000000d8f3db06141a4941 Content-Type: application/octet-stream; name="v1-0001-docs-Remove-the-Installation-from-Binaries-chapte.patch" Content-Disposition: attachment; filename="v1-0001-docs-Remove-the-Installation-from-Binaries-chapte.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lu017sbq0 RnJvbSBlYzY0NWQzNDI5MDA2YjBmN2M2OTNhNmQ2NWYxZGMxOTYyNjRlMGExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgSGFhcyA8cmhhYXNAcG9zdGdyZXNxbC5vcmc+CkRh dGU6IFdlZCwgMjAgTWFyIDIwMjQgMTA6MDg6MDUgLTA0MDAKU3ViamVjdDogW1BBVENIIHYxIDEv NF0gZG9jczogUmVtb3ZlIHRoZSAiSW5zdGFsbGF0aW9uIGZyb20gQmluYXJpZXMiIGNoYXB0ZXIu CgpUaGUgZW50aXJlIGNoYXB0ZXIgd2FzIGZvdXIgc2VudGVuY2VzLiBNb3ZlIHRoZSBtb3N0IHVz ZWZ1bAppbmZvcm1hdGlvbiBmcm9tIHRob3NlIHNlbnRlbmNlcyB0byB0aGUgIkluc3RhbGxhdGlv biBmcm9tIFNvdXJjZQpDb2RlIiBjaGFwdGVyLCBhbmQgcmVuYW1lIHRoYXQgdG8ganVzdCAiSW5z dGFsbGF0aW9uIi4KLS0tCiBkb2Mvc3JjL3NnbWwvZmlsZWxpc3Quc2dtbCAgICAgICAgIHwgIDEg LQogZG9jL3NyYy9zZ21sL2luc3RhbGwtYmluYXJpZXMuc2dtbCB8IDI0IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5zZ21sICAgICB8IDIzICsrKysr KysrKysrKysrKysrLS0tLS0tCiBkb2Mvc3JjL3NnbWwvcG9zdGdyZXMuc2dtbCAgICAgICAgIHwg IDEgLQogNCBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvaW5zdGFsbC1iaW5hcmllcy5zZ21sCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZmls ZWxpc3Quc2dtbAppbmRleCBlMGRjYTgxY2IyLi5iN2QxMjIyZTNlIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvZmlsZWxpc3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZmlsZWxpc3Quc2dtbApA QCAtMzYsNyArMzYsNiBAQAogPCFFTlRJVFkgY2xpZW50LWF1dGggICBTWVNURU0gImNsaWVudC1h dXRoLnNnbWwiPgogPCFFTlRJVFkgZGlza3VzYWdlICAgICBTWVNURU0gImRpc2t1c2FnZS5zZ21s Ij4KIDwhRU5USVRZIGhpZ2gtYXZhaWxhYmlsaXR5ICAgICAgU1lTVEVNICJoaWdoLWF2YWlsYWJp bGl0eS5zZ21sIj4KLTwhRU5USVRZIGluc3RhbGxiaW4gICAgU1lTVEVNICJpbnN0YWxsLWJpbmFy aWVzLnNnbWwiPgogPCFFTlRJVFkgaW5zdGFsbGF0aW9uICBTWVNURU0gImluc3RhbGxhdGlvbi5z Z21sIj4KIDwhRU5USVRZIHRhcmdldHMtbWVzb24gIFNZU1RFTSAidGFyZ2V0cy1tZXNvbi5zZ21s Ij4KIDwhRU5USVRZIG1haW50ZW5hbmNlICAgU1lTVEVNICJtYWludGVuYW5jZS5zZ21sIj4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbnN0YWxsLWJpbmFyaWVzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvaW5zdGFsbC1iaW5hcmllcy5zZ21sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDFjM2M3YmUwLi4wMDAwMDAwMDAwCi0tLSBhL2RvYy9zcmMvc2dtbC9pbnN0YWxsLWJpbmFyaWVz LnNnbWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IS0tIGRvYy9zcmMvc2dtbC9p bnN0YWxsLWJpbmFyaWVzLnNnbWwgLS0+Ci08Y2hhcHRlciBpZD0iaW5zdGFsbC1iaW5hcmllcyI+ Ci0gPHRpdGxlPkluc3RhbGxhdGlvbiBmcm9tIEJpbmFyaWVzPC90aXRsZT4KLQotIDxpbmRleHRl cm0+Ci0gIDxwcmltYXJ5Pmluc3RhbGxhdGlvbjwvcHJpbWFyeT4KLSAgPHNlY29uZGFyeT5iaW5h cmllczwvc2Vjb25kYXJ5PgotIDwvaW5kZXh0ZXJtPgotCi0gPHBhcmE+Ci0gIDxwcm9kdWN0bmFt ZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gaXMgYXZhaWxhYmxlIGluIHRoZSBmb3JtIG9mIGJp bmFyeQotICBwYWNrYWdlcyBmb3IgbW9zdCBjb21tb24gb3BlcmF0aW5nIHN5c3RlbXMgdG9kYXku IFdoZW4gYXZhaWxhYmxlLCB0aGlzIGlzCi0gIHRoZSByZWNvbW1lbmRlZCB3YXkgdG8gaW5zdGFs bCBQb3N0Z3JlU1FMIGZvciB1c2VycyBvZiB0aGUgc3lzdGVtLiBCdWlsZGluZwotICBmcm9tIHNv dXJjZSAoc2VlIDx4cmVmIGxpbmtlbmQ9Imluc3RhbGxhdGlvbiIgLz4pIGlzIG9ubHkgcmVjb21t ZW5kZWQgZm9yCi0gIHBlb3BsZSBkZXZlbG9waW5nIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9w cm9kdWN0bmFtZT4gb3IgZXh0ZW5zaW9ucy4KLSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgRm9yIGFu IHVwZGF0ZWQgbGlzdCBvZiBwbGF0Zm9ybXMgcHJvdmlkaW5nIGJpbmFyeSBwYWNrYWdlcywgcGxl YXNlIHZpc2l0Ci0gIHRoZSBkb3dubG9hZCBzZWN0aW9uIG9uIHRoZSA8cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+IHdlYnNpdGUgYXQKLSAgPHVsaW5rIHVybD0iaHR0cHM6Ly93 d3cucG9zdGdyZXNxbC5vcmcvZG93bmxvYWQvIj48L3VsaW5rPiBhbmQgZm9sbG93IHRoZQotICBp bnN0cnVjdGlvbnMgZm9yIHRoZSBzcGVjaWZpYyBwbGF0Zm9ybS4KLSA8L3BhcmE+Ci08L2NoYXB0 ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwKaW5kZXggYTQ1M2Y4MDRjZC4uN2IyZTY3ODZmNCAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9pbnN0YWxsYXRpb24uc2dtbApAQCAtMSwxOCArMSwyOSBAQAogPCEtLSBkb2Mvc3JjL3NnbWwv aW5zdGFsbGF0aW9uLnNnbWwgLS0+CiAKIDxjaGFwdGVyIGlkPSJpbnN0YWxsYXRpb24iPgotIDx0 aXRsZT5JbnN0YWxsYXRpb24gZnJvbSBTb3VyY2UgQ29kZTwvdGl0bGU+CisgPHRpdGxlPkluc3Rh bGxhdGlvbjwvdGl0bGU+CiAKICA8aW5kZXh0ZXJtIHpvbmU9Imluc3RhbGxhdGlvbiI+CiAgIDxw cmltYXJ5Pmluc3RhbGxhdGlvbjwvcHJpbWFyeT4KICA8L2luZGV4dGVybT4KIAogIDxwYXJhPgot ICBUaGlzIGNoYXB0ZXIgZGVzY3JpYmVzIHRoZSBpbnN0YWxsYXRpb24gb2YKLSAgPHByb2R1Y3Ru YW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiB1c2luZyB0aGUgc291cmNlIGNvZGUKLSAgZGlz dHJpYnV0aW9uLiAgSWYgeW91IGFyZSBpbnN0YWxsaW5nIGEgcHJlLXBhY2thZ2VkIGRpc3RyaWJ1 dGlvbiwKLSAgc3VjaCBhcyBhbiBSUE0gb3IgRGViaWFuIHBhY2thZ2UsIGlnbm9yZSB0aGlzIGNo YXB0ZXIKLSAgYW5kIHNlZSA8eHJlZiBsaW5rZW5kPSJpbnN0YWxsLWJpbmFyaWVzIiAvPiBpbnN0 ZWFkLgorICBTaW5jZSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGlzIGF2 YWlsYWJsZSBpbiB0aGUgZm9ybSBvZgorICBiaW5hcnkgcGFja2FnZXMgZm9yIG1vc3QgY29tbW9u IG9wZXJhdGluZyBzeXN0ZW1zIHRvZGF5LCBpdCBpcyB0eXBpY2FsbHkgbm90CisgIG5lY2Vzc2Fy eSB0byBidWlsZCBmcm9tIHNvdXJjZS4KKyA8L3BhcmE+CisKKyA8cGFyYT4KKyAgRm9yIGFuIHVw ZGF0ZWQgbGlzdCBvZiBwbGF0Zm9ybXMgcHJvdmlkaW5nIGJpbmFyeSBwYWNrYWdlcywgcGxlYXNl IHZpc2l0CisgIHRoZSBkb3dubG9hZCBzZWN0aW9uIG9uIHRoZSA8cHJvZHVjdG5hbWU+UG9zdGdy ZVNRTDwvcHJvZHVjdG5hbWU+IHdlYnNpdGUgYXQKKyAgPHVsaW5rIHVybD0iaHR0cHM6Ly93d3cu cG9zdGdyZXNxbC5vcmcvZG93bmxvYWQvIj48L3VsaW5rPiBhbmQgZm9sbG93IHRoZQorICBpbnN0 cnVjdGlvbnMgZm9yIHRoZSBzcGVjaWZpYyBwbGF0Zm9ybS4KKyA8L3BhcmE+CisKKyA8cGFyYT4K KyAgSWYgeW91IHdpc2ggdG8gY29tcGlsZSBmcm9tIHNvdXJjZSBjb2RlLCBmb3IgZXhhbXBsZSB0 byBkZXZlbG9wCisgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gb3IgYW4g ZXh0ZW5zaW9uLCB0aGUgZm9sbG93aW5nCisgIHNlY3Rpb25zIGV4cGxhaW4gaG93IHRvIGRvIHRo aXMuCiAgPC9wYXJhPgogCiAgPHNlY3QxIGlkPSJpbnN0YWxsLXJlcXVpcmVtZW50cyI+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jl cy5zZ21sCmluZGV4IDJjMTA3MTk5ZDMuLjdjMjM0ZmYxZGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9wb3N0Z3Jlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy5zZ21sCkBAIC0x NTAsNyArMTUwLDYgQEAgYnJlYWsgaXMgbm90IG5lZWRlZCBpbiBhIHdpZGVyIG91dHB1dCByZW5k ZXJpbmcuCiAgICA8L3BhcmE+CiAgIDwvcGFydGludHJvPgogCi0gICZpbnN0YWxsYmluOwogICAm aW5zdGFsbGF0aW9uOwogICAmcnVudGltZTsKICAgJmNvbmZpZzsKLS0gCjIuMzkuMyAoQXBwbGUg R2l0LTE0NSkKCg== --000000000000d8f3db06141a4941 Content-Type: application/octet-stream; name="v1-0002-docs-Demote-Monitoring-Disk-Usage-from-chapter-to.patch" Content-Disposition: attachment; filename="v1-0002-docs-Demote-Monitoring-Disk-Usage-from-chapter-to.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lu017sbx1 RnJvbSA3NTY3ODlhM2I4ZjNiOGFlNjA5ODUxZTE4ZjM2NWJiNTg2M2Y2ZjdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgSGFhcyA8cmhhYXNAcG9zdGdyZXNxbC5vcmc+CkRh dGU6IFdlZCwgMjAgTWFyIDIwMjQgMTA6NTI6MTYgLTA0MDAKU3ViamVjdDogW1BBVENIIHYxIDIv NF0gZG9jczogRGVtb3RlICJNb25pdG9yaW5nIERpc2sgVXNhZ2UiIGZyb20gY2hhcHRlciB0bwog c2VjdGlvbi4KClRoaXMgY2hhcHRlciBpcyB2ZXJ5IHNob3J0LCBhbmQgdGhlIGltbWVkaWF0ZWx5 IHByZWNlZGluZyBjaGFwdGVyIGlzCmNhbGxlZCAiTW9uaXRvcmluZyBEYXRhYmFzZSBBY3Rpdml0 eSIuIFNvLCBpbnN0ZWFkIG9mIGhhdmluZyBhCnNlcGFyYXRlIGNoYXB0ZXIgZm9yIHRoaXMsIG1h a2UgaXQgdGhlIGxhc3Qgc2VjdGlvbiBvZiB0aGUgcHJlY2VkaW5nCmNoYXB0ZXIgaW5zdGVhZC4K LS0tCiBkb2Mvc3JjL3NnbWwvZGlza3VzYWdlLnNnbWwgIHwgMTQ0IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiBkb2Mvc3JjL3NnbWwvZmlsZWxpc3Quc2dtbCAgIHwgICAxIC0K IGRvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgfCAxNDMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3Bvc3RncmVzLnNnbWwgICB8ICAgMSAtCiA0IGZp bGVzIGNoYW5nZWQsIDE0MyBpbnNlcnRpb25zKCspLCAxNDYgZGVsZXRpb25zKC0pCiBkZWxldGUg bW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL2Rpc2t1c2FnZS5zZ21sCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2Rpc2t1c2FnZS5zZ21sIGIvZG9jL3NyYy9zZ21sL2Rpc2t1c2FnZS5zZ21sCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTQ2NzU4MmU0Li4wMDAwMDAwMDAwCi0tLSBh L2RvYy9zcmMvc2dtbC9kaXNrdXNhZ2Uuc2dtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0NCArMCww IEBACi08IS0tIGRvYy9zcmMvc2dtbC9kaXNrdXNhZ2Uuc2dtbCAtLT4KLQotPGNoYXB0ZXIgaWQ9 ImRpc2t1c2FnZSI+Ci0gPHRpdGxlPk1vbml0b3JpbmcgRGlzayBVc2FnZTwvdGl0bGU+Ci0KLSA8 cGFyYT4KLSAgVGhpcyBjaGFwdGVyIGRpc2N1c3NlcyBob3cgdG8gbW9uaXRvciB0aGUgZGlzayB1 c2FnZSBvZiBhCi0gIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZGF0YWJh c2Ugc3lzdGVtLgotIDwvcGFyYT4KLQotIDxzZWN0MSBpZD0iZGlzay11c2FnZSI+Ci0gIDx0aXRs ZT5EZXRlcm1pbmluZyBEaXNrIFVzYWdlPC90aXRsZT4KLQotICA8aW5kZXh0ZXJtIHpvbmU9ImRp c2stdXNhZ2UiPgotICAgPHByaW1hcnk+ZGlzayB1c2FnZTwvcHJpbWFyeT4KLSAgPC9pbmRleHRl cm0+Ci0KLSAgPHBhcmE+Ci0gICBFYWNoIHRhYmxlIGhhcyBhIHByaW1hcnkgaGVhcCBkaXNrIGZp bGUgd2hlcmUgbW9zdCBvZiB0aGUgZGF0YSBpcwotICAgc3RvcmVkLiBJZiB0aGUgdGFibGUgaGFz IGFueSBjb2x1bW5zIHdpdGggcG90ZW50aWFsbHktd2lkZSB2YWx1ZXMsCi0gICB0aGVyZSBhbHNv IG1pZ2h0IGJlIGEgPGFjcm9ueW0+VE9BU1Q8L2Fjcm9ueW0+IGZpbGUgYXNzb2NpYXRlZCB3aXRo IHRoZSB0YWJsZSwKLSAgIHdoaWNoIGlzIHVzZWQgdG8gc3RvcmUgdmFsdWVzIHRvbyB3aWRlIHRv IGZpdCBjb21mb3J0YWJseSBpbiB0aGUgbWFpbgotICAgdGFibGUgKHNlZSA8eHJlZiBsaW5rZW5k PSJzdG9yYWdlLXRvYXN0Ii8+KS4gIFRoZXJlIHdpbGwgYmUgb25lIHZhbGlkIGluZGV4Ci0gICBv biB0aGUgPGFjcm9ueW0+VE9BU1Q8L2Fjcm9ueW0+IHRhYmxlLCBpZiBwcmVzZW50LiBUaGVyZSBh bHNvIG1pZ2h0IGJlIGluZGV4ZXMKLSAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgYmFzZSB0YWJsZS4g IEVhY2ggdGFibGUgYW5kIGluZGV4IGlzIHN0b3JlZCBpbiBhCi0gICBzZXBhcmF0ZSBkaXNrIGZp bGUgJm1kYXNoOyBwb3NzaWJseSBtb3JlIHRoYW4gb25lIGZpbGUsIGlmIHRoZSBmaWxlIHdvdWxk Ci0gICBleGNlZWQgb25lIGdpZ2FieXRlLiAgTmFtaW5nIGNvbnZlbnRpb25zIGZvciB0aGVzZSBm aWxlcyBhcmUgZGVzY3JpYmVkCi0gICBpbiA8eHJlZiBsaW5rZW5kPSJzdG9yYWdlLWZpbGUtbGF5 b3V0Ii8+LgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBZb3UgY2FuIG1vbml0b3IgZGlzayBz cGFjZSBpbiB0aHJlZSB3YXlzOgotICAgdXNpbmcgdGhlIFNRTCBmdW5jdGlvbnMgbGlzdGVkIGlu IDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1hZG1pbi1kYnNpemUiLz4sCi0gICB1c2luZyB0aGUg PHhyZWYgbGlua2VuZD0ib2lkMm5hbWUiLz4gbW9kdWxlLCBvcgotICAgdXNpbmcgbWFudWFsIGlu c3BlY3Rpb24gb2YgdGhlIHN5c3RlbSBjYXRhbG9ncy4KLSAgIFRoZSBTUUwgZnVuY3Rpb25zIGFy ZSB0aGUgZWFzaWVzdCB0byB1c2UgYW5kIGFyZSBnZW5lcmFsbHkgcmVjb21tZW5kZWQuCi0gICBU aGUgcmVtYWluZGVyIG9mIHRoaXMgc2VjdGlvbiBzaG93cyBob3cgdG8gZG8gaXQgYnkgaW5zcGVj dGlvbiBvZiB0aGUKLSAgIHN5c3RlbSBjYXRhbG9ncy4KLSAgPC9wYXJhPgotCi0gIDxwYXJhPgot ICAgVXNpbmcgPGFwcGxpY2F0aW9uPnBzcWw8L2FwcGxpY2F0aW9uPiBvbiBhIHJlY2VudGx5IHZh Y3V1bWVkIG9yIGFuYWx5emVkIGRhdGFiYXNlLAotICAgeW91IGNhbiBpc3N1ZSBxdWVyaWVzIHRv IHNlZSB0aGUgZGlzayB1c2FnZSBvZiBhbnkgdGFibGU6Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1TRUxF Q1QgcGdfcmVsYXRpb25fZmlsZXBhdGgob2lkKSwgcmVscGFnZXMgRlJPTSBwZ19jbGFzcyBXSEVS RSByZWxuYW1lID0gJ2N1c3RvbWVyJzsKLQotIHBnX3JlbGF0aW9uX2ZpbGVwYXRoIHwgcmVscGFn ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIGJhc2UvMTYzODQvMTY4MDYg ICAgIHwgICAgICAgNjAKLSgxIHJvdykKLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0gICBFYWNoIHBhZ2Ug aXMgdHlwaWNhbGx5IDgga2lsb2J5dGVzLiAoUmVtZW1iZXIsIDxzdHJ1Y3RmaWVsZD5yZWxwYWdl czwvc3RydWN0ZmllbGQ+Ci0gICBpcyBvbmx5IHVwZGF0ZWQgYnkgPGNvbW1hbmQ+VkFDVVVNPC9j b21tYW5kPiwgPGNvbW1hbmQ+QU5BTFlaRTwvY29tbWFuZD4sIGFuZAotICAgYSBmZXcgRERMIGNv bW1hbmRzIHN1Y2ggYXMgPGNvbW1hbmQ+Q1JFQVRFIElOREVYPC9jb21tYW5kPi4pICBUaGUgZmls ZSBwYXRoIG5hbWUKLSAgIGlzIG9mIGludGVyZXN0IGlmIHlvdSB3YW50IHRvIGV4YW1pbmUgdGhl IHRhYmxlJ3MgZGlzayBmaWxlIGRpcmVjdGx5LgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBU byBzaG93IHRoZSBzcGFjZSB1c2VkIGJ5IDxhY3JvbnltPlRPQVNUPC9hY3JvbnltPiB0YWJsZXMs IHVzZSBhIHF1ZXJ5Ci0gICBsaWtlIHRoZSBmb2xsb3dpbmc6Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1T RUxFQ1QgcmVsbmFtZSwgcmVscGFnZXMKLUZST00gcGdfY2xhc3MsCi0gICAgIChTRUxFQ1QgcmVs dG9hc3RyZWxpZAotICAgICAgRlJPTSBwZ19jbGFzcwotICAgICAgV0hFUkUgcmVsbmFtZSA9ICdj dXN0b21lcicpIEFTIHNzCi1XSEVSRSBvaWQgPSBzcy5yZWx0b2FzdHJlbGlkIE9SCi0gICAgICBv aWQgPSAoU0VMRUNUIGluZGV4cmVsaWQKLSAgICAgICAgICAgICBGUk9NIHBnX2luZGV4Ci0gICAg ICAgICAgICAgV0hFUkUgaW5kcmVsaWQgPSBzcy5yZWx0b2FzdHJlbGlkKQotT1JERVIgQlkgcmVs bmFtZTsKLQotICAgICAgIHJlbG5hbWUgICAgICAgIHwgcmVscGFnZXMKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHBnX3RvYXN0XzE2ODA2ICAgICAgIHwgICAgICAgIDAKLSBw Z190b2FzdF8xNjgwNl9pbmRleCB8ICAgICAgICAxCi08L3Byb2dyYW1saXN0aW5nPgotICA8L3Bh cmE+Ci0KLSAgPHBhcmE+Ci0gICBZb3UgY2FuIGVhc2lseSBkaXNwbGF5IGluZGV4IHNpemVzLCB0 b286Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1TRUxFQ1QgYzIucmVsbmFtZSwgYzIucmVscGFnZXMKLUZS T00gcGdfY2xhc3MgYywgcGdfY2xhc3MgYzIsIHBnX2luZGV4IGkKLVdIRVJFIGMucmVsbmFtZSA9 ICdjdXN0b21lcicgQU5ECi0gICAgICBjLm9pZCA9IGkuaW5kcmVsaWQgQU5ECi0gICAgICBjMi5v aWQgPSBpLmluZGV4cmVsaWQKLU9SREVSIEJZIGMyLnJlbG5hbWU7Ci0KLSAgICAgIHJlbG5hbWUg ICAgICB8IHJlbHBhZ2VzCi0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSBjdXN0b21l cl9pZF9pbmRleCB8ICAgICAgIDI2Ci08L3Byb2dyYW1saXN0aW5nPgotICA8L3BhcmE+Ci0KLSAg PHBhcmE+Ci0gICBJdCBpcyBlYXN5IHRvIGZpbmQgeW91ciBsYXJnZXN0IHRhYmxlcyBhbmQgaW5k ZXhlcyB1c2luZyB0aGlzCi0gICBpbmZvcm1hdGlvbjoKLTxwcm9ncmFtbGlzdGluZz4KLVNFTEVD VCByZWxuYW1lLCByZWxwYWdlcwotRlJPTSBwZ19jbGFzcwotT1JERVIgQlkgcmVscGFnZXMgREVT QzsKLQotICAgICAgIHJlbG5hbWUgICAgICAgIHwgcmVscGFnZXMKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQotIGJpZ3RhYmxlICAgICAgICAgICAgIHwgICAgIDMyOTAKLSBjdXN0 b21lciAgICAgICAgICAgICB8ICAgICAzMTQ0Ci08L3Byb2dyYW1saXN0aW5nPgotICA8L3BhcmE+ Ci0gPC9zZWN0MT4KLQotIDxzZWN0MSBpZD0iZGlzay1mdWxsIj4KLSAgPHRpdGxlPkRpc2sgRnVs bCBGYWlsdXJlPC90aXRsZT4KLQotICA8cGFyYT4KLSAgIFRoZSBtb3N0IGltcG9ydGFudCBkaXNr IG1vbml0b3JpbmcgdGFzayBvZiBhIGRhdGFiYXNlIGFkbWluaXN0cmF0b3IKLSAgIGlzIHRvIG1h a2Ugc3VyZSB0aGUgZGlzayBkb2Vzbid0IGJlY29tZSBmdWxsLiAgQSBmaWxsZWQgZGF0YSBkaXNr IHdpbGwKLSAgIG5vdCByZXN1bHQgaW4gZGF0YSBjb3JydXB0aW9uLCBidXQgaXQgbWlnaHQgcHJl dmVudCB1c2VmdWwgYWN0aXZpdHkKLSAgIGZyb20gb2NjdXJyaW5nLiBJZiB0aGUgZGlzayBob2xk aW5nIHRoZSBXQUwgZmlsZXMgZ3Jvd3MgZnVsbCwgZGF0YWJhc2UKLSAgIHNlcnZlciBwYW5pYyBh bmQgY29uc2VxdWVudCBzaHV0ZG93biBtaWdodCBvY2N1ci4KLSAgPC9wYXJhPgotCi0gIDxwYXJh PgotICAgSWYgeW91IGNhbm5vdCBmcmVlIHVwIGFkZGl0aW9uYWwgc3BhY2Ugb24gdGhlIGRpc2sg YnkgZGVsZXRpbmcKLSAgIG90aGVyIHRoaW5ncywgeW91IGNhbiBtb3ZlIHNvbWUgb2YgdGhlIGRh dGFiYXNlIGZpbGVzIHRvIG90aGVyIGZpbGUKLSAgIHN5c3RlbXMgYnkgbWFraW5nIHVzZSBvZiB0 YWJsZXNwYWNlcy4gU2VlIDx4cmVmCi0gICBsaW5rZW5kPSJtYW5hZ2UtYWctdGFibGVzcGFjZXMi Lz4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhhdC4KLSAgPC9wYXJhPgotCi0gIDx0aXA+ Ci0gICA8cGFyYT4KLSAgICBTb21lIGZpbGUgc3lzdGVtcyBwZXJmb3JtIGJhZGx5IHdoZW4gdGhl eSBhcmUgYWxtb3N0IGZ1bGwsIHNvIGRvCi0gICAgbm90IHdhaXQgdW50aWwgdGhlIGRpc2sgaXMg Y29tcGxldGVseSBmdWxsIHRvIHRha2UgYWN0aW9uLgotICAgPC9wYXJhPgotICA8L3RpcD4KLQot ICA8cGFyYT4KLSAgIElmIHlvdXIgc3lzdGVtIHN1cHBvcnRzIHBlci11c2VyIGRpc2sgcXVvdGFz LCB0aGVuIHRoZSBkYXRhYmFzZQotICAgd2lsbCBuYXR1cmFsbHkgYmUgc3ViamVjdCB0byB3aGF0 ZXZlciBxdW90YSBpcyBwbGFjZWQgb24gdGhlIHVzZXIKLSAgIHRoZSBzZXJ2ZXIgcnVucyBhcy4g IEV4Y2VlZGluZyB0aGUgcXVvdGEgd2lsbCBoYXZlIHRoZSBzYW1lIGJhZAotICAgZWZmZWN0cyBh cyBydW5uaW5nIG91dCBvZiBkaXNrIHNwYWNlIGVudGlyZWx5LgotICA8L3BhcmE+Ci0gPC9zZWN0 MT4KLTwvY2hhcHRlcj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sIGIv ZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNnbWwKaW5kZXggYjdkMTIyMmUzZS4uZjM5YjRlZmUzOCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2ZpbGVsaXN0LnNnbWwKQEAgLTM0LDcgKzM0LDYgQEAKIDwhRU5USVRZIGJhY2t1cCAgICAgICAg U1lTVEVNICJiYWNrdXAuc2dtbCI+CiA8IUVOVElUWSBjaGFyc2V0ICAgICAgIFNZU1RFTSAiY2hh cnNldC5zZ21sIj4KIDwhRU5USVRZIGNsaWVudC1hdXRoICAgU1lTVEVNICJjbGllbnQtYXV0aC5z Z21sIj4KLTwhRU5USVRZIGRpc2t1c2FnZSAgICAgU1lTVEVNICJkaXNrdXNhZ2Uuc2dtbCI+CiA8 IUVOVElUWSBoaWdoLWF2YWlsYWJpbGl0eSAgICAgIFNZU1RFTSAiaGlnaC1hdmFpbGFiaWxpdHku c2dtbCI+CiA8IUVOVElUWSBpbnN0YWxsYXRpb24gIFNZU1RFTSAiaW5zdGFsbGF0aW9uLnNnbWwi PgogPCFFTlRJVFkgdGFyZ2V0cy1tZXNvbiAgU1lTVEVNICJ0YXJnZXRzLW1lc29uLnNnbWwiPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9t b25pdG9yaW5nLnNnbWwKaW5kZXggODczNmVhYzI4NC4uZWRhNTRiNDk4NSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sCkBAIC03MjgyLDQgKzcyODIsMTQ3IEBAIGlmIChUUkFDRV9QT1NUR1JFU1FMX1RSQU5T QUNUSU9OX1NUQVJUX0VOQUJMRUQoKSkKIAogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImRpc2t1 c2FnZSI+CisgIDx0aXRsZT5Nb25pdG9yaW5nIERpc2sgVXNhZ2U8L3RpdGxlPgorCisgIDxwYXJh PgorICAgVGhpcyBzZWN0aW9uIGRpc2N1c3NlcyBob3cgdG8gbW9uaXRvciB0aGUgZGlzayB1c2Fn ZSBvZiBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGRhdGFiYXNl IHN5c3RlbS4KKyAgPC9wYXJhPgorCisgIDxzZWN0MiBpZD0iZGlzay11c2FnZSI+CisgICA8dGl0 bGU+RGV0ZXJtaW5pbmcgRGlzayBVc2FnZTwvdGl0bGU+CisKKyAgIDxpbmRleHRlcm0gem9uZT0i ZGlzay11c2FnZSI+CisgICAgPHByaW1hcnk+ZGlzayB1c2FnZTwvcHJpbWFyeT4KKyAgIDwvaW5k ZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBFYWNoIHRhYmxlIGhhcyBhIHByaW1hcnkgaGVhcCBk aXNrIGZpbGUgd2hlcmUgbW9zdCBvZiB0aGUgZGF0YSBpcworICAgIHN0b3JlZC4gSWYgdGhlIHRh YmxlIGhhcyBhbnkgY29sdW1ucyB3aXRoIHBvdGVudGlhbGx5LXdpZGUgdmFsdWVzLAorICAgIHRo ZXJlIGFsc28gbWlnaHQgYmUgYSA8YWNyb255bT5UT0FTVDwvYWNyb255bT4gZmlsZSBhc3NvY2lh dGVkIHdpdGggdGhlIHRhYmxlLAorICAgIHdoaWNoIGlzIHVzZWQgdG8gc3RvcmUgdmFsdWVzIHRv byB3aWRlIHRvIGZpdCBjb21mb3J0YWJseSBpbiB0aGUgbWFpbgorICAgIHRhYmxlIChzZWUgPHhy ZWYgbGlua2VuZD0ic3RvcmFnZS10b2FzdCIvPikuICBUaGVyZSB3aWxsIGJlIG9uZSB2YWxpZCBp bmRleAorICAgIG9uIHRoZSA8YWNyb255bT5UT0FTVDwvYWNyb255bT4gdGFibGUsIGlmIHByZXNl bnQuIFRoZXJlIGFsc28gbWlnaHQgYmUgaW5kZXhlcworICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUg YmFzZSB0YWJsZS4gIEVhY2ggdGFibGUgYW5kIGluZGV4IGlzIHN0b3JlZCBpbiBhCisgICAgc2Vw YXJhdGUgZGlzayBmaWxlICZtZGFzaDsgcG9zc2libHkgbW9yZSB0aGFuIG9uZSBmaWxlLCBpZiB0 aGUgZmlsZSB3b3VsZAorICAgIGV4Y2VlZCBvbmUgZ2lnYWJ5dGUuICBOYW1pbmcgY29udmVudGlv bnMgZm9yIHRoZXNlIGZpbGVzIGFyZSBkZXNjcmliZWQKKyAgICBpbiA8eHJlZiBsaW5rZW5kPSJz dG9yYWdlLWZpbGUtbGF5b3V0Ii8+LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBZb3Ug Y2FuIG1vbml0b3IgZGlzayBzcGFjZSBpbiB0aHJlZSB3YXlzOgorICAgIHVzaW5nIHRoZSBTUUwg ZnVuY3Rpb25zIGxpc3RlZCBpbiA8eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtYWRtaW4tZGJzaXpl Ii8+LAorICAgIHVzaW5nIHRoZSA8eHJlZiBsaW5rZW5kPSJvaWQybmFtZSIvPiBtb2R1bGUsIG9y CisgICAgdXNpbmcgbWFudWFsIGluc3BlY3Rpb24gb2YgdGhlIHN5c3RlbSBjYXRhbG9ncy4KKyAg ICBUaGUgU1FMIGZ1bmN0aW9ucyBhcmUgdGhlIGVhc2llc3QgdG8gdXNlIGFuZCBhcmUgZ2VuZXJh bGx5IHJlY29tbWVuZGVkLgorICAgIFRoZSByZW1haW5kZXIgb2YgdGhpcyBzZWN0aW9uIHNob3dz IGhvdyB0byBkbyBpdCBieSBpbnNwZWN0aW9uIG9mIHRoZQorICAgIHN5c3RlbSBjYXRhbG9ncy4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVXNpbmcgPGFwcGxpY2F0aW9uPnBzcWw8L2Fw cGxpY2F0aW9uPiBvbiBhIHJlY2VudGx5IHZhY3V1bWVkIG9yIGFuYWx5emVkCisgICAgZGF0YWJh c2UsIHlvdSBjYW4gaXNzdWUgcXVlcmllcyB0byBzZWUgdGhlIGRpc2sgdXNhZ2Ugb2YgYW55IHRh YmxlOgorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIHBnX3JlbGF0aW9uX2ZpbGVwYXRoKG9pZCks IHJlbHBhZ2VzIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdjdXN0b21lcic7CisKKyBw Z19yZWxhdGlvbl9maWxlcGF0aCB8IHJlbHBhZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyBiYXNlLzE2Mzg0LzE2ODA2ICAgICB8ICAgICAgIDYwCisoMSByb3cpCis8L3By b2dyYW1saXN0aW5nPgorICAgIEVhY2ggcGFnZSBpcyB0eXBpY2FsbHkgOCBraWxvYnl0ZXMuIChS ZW1lbWJlciwgPHN0cnVjdGZpZWxkPnJlbHBhZ2VzPC9zdHJ1Y3RmaWVsZD4KKyAgICBpcyBvbmx5 IHVwZGF0ZWQgYnkgPGNvbW1hbmQ+VkFDVVVNPC9jb21tYW5kPiwgPGNvbW1hbmQ+QU5BTFlaRTwv Y29tbWFuZD4sIGFuZAorICAgIGEgZmV3IERETCBjb21tYW5kcyBzdWNoIGFzIDxjb21tYW5kPkNS RUFURSBJTkRFWDwvY29tbWFuZD4uKSAgVGhlIGZpbGUgcGF0aCBuYW1lCisgICAgaXMgb2YgaW50 ZXJlc3QgaWYgeW91IHdhbnQgdG8gZXhhbWluZSB0aGUgdGFibGUncyBkaXNrIGZpbGUgZGlyZWN0 bHkuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRvIHNob3cgdGhlIHNwYWNlIHVzZWQg YnkgPGFjcm9ueW0+VE9BU1Q8L2Fjcm9ueW0+IHRhYmxlcywgdXNlIGEgcXVlcnkKKyAgICBsaWtl IHRoZSBmb2xsb3dpbmc6Cis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgcmVsbmFtZSwgcmVscGFn ZXMKK0ZST00gcGdfY2xhc3MsCisgICAgIChTRUxFQ1QgcmVsdG9hc3RyZWxpZAorICAgICAgRlJP TSBwZ19jbGFzcworICAgICAgV0hFUkUgcmVsbmFtZSA9ICdjdXN0b21lcicpIEFTIHNzCitXSEVS RSBvaWQgPSBzcy5yZWx0b2FzdHJlbGlkIE9SCisgICAgICBvaWQgPSAoU0VMRUNUIGluZGV4cmVs aWQKKyAgICAgICAgICAgICBGUk9NIHBnX2luZGV4CisgICAgICAgICAgICAgV0hFUkUgaW5kcmVs aWQgPSBzcy5yZWx0b2FzdHJlbGlkKQorT1JERVIgQlkgcmVsbmFtZTsKKworICAgICAgIHJlbG5h bWUgICAgICAgIHwgcmVscGFnZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHBnX3RvYXN0XzE2ODA2ICAgICAgIHwgICAgICAgIDAKKyBwZ190b2FzdF8xNjgwNl9pbmRleCB8 ICAgICAgICAxCis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAg ICBZb3UgY2FuIGVhc2lseSBkaXNwbGF5IGluZGV4IHNpemVzLCB0b286Cis8cHJvZ3JhbWxpc3Rp bmc+CitTRUxFQ1QgYzIucmVsbmFtZSwgYzIucmVscGFnZXMKK0ZST00gcGdfY2xhc3MgYywgcGdf Y2xhc3MgYzIsIHBnX2luZGV4IGkKK1dIRVJFIGMucmVsbmFtZSA9ICdjdXN0b21lcicgQU5ECisg ICAgICBjLm9pZCA9IGkuaW5kcmVsaWQgQU5ECisgICAgICBjMi5vaWQgPSBpLmluZGV4cmVsaWQK K09SREVSIEJZIGMyLnJlbG5hbWU7CisKKyAgICAgIHJlbG5hbWUgICAgICB8IHJlbHBhZ2VzCist LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBjdXN0b21lcl9pZF9pbmRleCB8ICAgICAg IDI2Cis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJdCBp cyBlYXN5IHRvIGZpbmQgeW91ciBsYXJnZXN0IHRhYmxlcyBhbmQgaW5kZXhlcyB1c2luZyB0aGlz CisgICAgaW5mb3JtYXRpb246Cis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgcmVsbmFtZSwgcmVs cGFnZXMKK0ZST00gcGdfY2xhc3MKK09SREVSIEJZIHJlbHBhZ2VzIERFU0M7CisKKyAgICAgICBy ZWxuYW1lICAgICAgICB8IHJlbHBhZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyBiaWd0YWJsZSAgICAgICAgICAgICB8ICAgICAzMjkwCisgY3VzdG9tZXIgICAgICAgICAg ICAgfCAgICAgMzE0NAorPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4K KworICA8c2VjdDIgaWQ9ImRpc2stZnVsbCI+CisgICA8dGl0bGU+RGlzayBGdWxsIEZhaWx1cmU8 L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBUaGUgbW9zdCBpbXBvcnRhbnQgZGlzayBtb25pdG9y aW5nIHRhc2sgb2YgYSBkYXRhYmFzZSBhZG1pbmlzdHJhdG9yCisgICAgaXMgdG8gbWFrZSBzdXJl IHRoZSBkaXNrIGRvZXNuJ3QgYmVjb21lIGZ1bGwuICBBIGZpbGxlZCBkYXRhIGRpc2sgd2lsbAor ICAgIG5vdCByZXN1bHQgaW4gZGF0YSBjb3JydXB0aW9uLCBidXQgaXQgbWlnaHQgcHJldmVudCB1 c2VmdWwgYWN0aXZpdHkKKyAgICBmcm9tIG9jY3VycmluZy4gSWYgdGhlIGRpc2sgaG9sZGluZyB0 aGUgV0FMIGZpbGVzIGdyb3dzIGZ1bGwsIGRhdGFiYXNlCisgICAgc2VydmVyIHBhbmljIGFuZCBj b25zZXF1ZW50IHNodXRkb3duIG1pZ2h0IG9jY3VyLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICBJZiB5b3UgY2Fubm90IGZyZWUgdXAgYWRkaXRpb25hbCBzcGFjZSBvbiB0aGUgZGlzayBi eSBkZWxldGluZworICAgIG90aGVyIHRoaW5ncywgeW91IGNhbiBtb3ZlIHNvbWUgb2YgdGhlIGRh dGFiYXNlIGZpbGVzIHRvIG90aGVyIGZpbGUKKyAgICBzeXN0ZW1zIGJ5IG1ha2luZyB1c2Ugb2Yg dGFibGVzcGFjZXMuIFNlZSA8eHJlZgorICAgIGxpbmtlbmQ9Im1hbmFnZS1hZy10YWJsZXNwYWNl cyIvPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGF0LgorICAgPC9wYXJhPgorCisgICA8 dGlwPgorICAgIDxwYXJhPgorICAgICBTb21lIGZpbGUgc3lzdGVtcyBwZXJmb3JtIGJhZGx5IHdo ZW4gdGhleSBhcmUgYWxtb3N0IGZ1bGwsIHNvIGRvCisgICAgIG5vdCB3YWl0IHVudGlsIHRoZSBk aXNrIGlzIGNvbXBsZXRlbHkgZnVsbCB0byB0YWtlIGFjdGlvbi4KKyAgICA8L3BhcmE+CisgICA8 L3RpcD4KKworICAgPHBhcmE+CisgICAgSWYgeW91ciBzeXN0ZW0gc3VwcG9ydHMgcGVyLXVzZXIg ZGlzayBxdW90YXMsIHRoZW4gdGhlIGRhdGFiYXNlCisgICAgd2lsbCBuYXR1cmFsbHkgYmUgc3Vi amVjdCB0byB3aGF0ZXZlciBxdW90YSBpcyBwbGFjZWQgb24gdGhlIHVzZXIKKyAgICB0aGUgc2Vy dmVyIHJ1bnMgYXMuICBFeGNlZWRpbmcgdGhlIHF1b3RhIHdpbGwgaGF2ZSB0aGUgc2FtZSBiYWQK KyAgICBlZmZlY3RzIGFzIHJ1bm5pbmcgb3V0IG9mIGRpc2sgc3BhY2UgZW50aXJlbHkuCisgICA8 L3BhcmE+CisgIDwvc2VjdDI+CisgPC9zZWN0MT4KKwogPC9jaGFwdGVyPgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3Bvc3RncmVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMuc2dtbApp bmRleCA3YzIzNGZmMWRiLi43M2I0OTdiY2Y4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcG9z dGdyZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMuc2dtbApAQCAtMTYxLDcgKzE2 MSw2IEBAIGJyZWFrIGlzIG5vdCBuZWVkZWQgaW4gYSB3aWRlciBvdXRwdXQgcmVuZGVyaW5nLgog ICAmYmFja3VwOwogICAmaGlnaC1hdmFpbGFiaWxpdHk7CiAgICZtb25pdG9yaW5nOwotICAmZGlz a3VzYWdlOwogICAmd2FsOwogICAmbG9naWNhbC1yZXBsaWNhdGlvbjsKICAgJmppdDsKLS0gCjIu MzkuMyAoQXBwbGUgR2l0LTE0NSkKCg== --000000000000d8f3db06141a4941 Content-Type: application/octet-stream; name="v1-0004-docs-Consolidate-into-new-WAL-for-Extensions-chap.patch" Content-Disposition: attachment; filename="v1-0004-docs-Consolidate-into-new-WAL-for-Extensions-chap.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lu017sby3 RnJvbSA1MzA0ZGIxYTM5OGJlZTA4ZTU0MGE2YjYzOGRlNDY5M2EwMWU1ZGZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgSGFhcyA8cmhhYXNAcG9zdGdyZXNxbC5vcmc+CkRh dGU6IFdlZCwgMjAgTWFyIDIwMjQgMTI6MTI6NDggLTA0MDAKU3ViamVjdDogW1BBVENIIHYxIDQv NF0gZG9jczogQ29uc29saWRhdGUgaW50byBuZXcgIldBTCBmb3IgRXh0ZW5zaW9ucyIKIGNoYXB0 ZXIuCgpQcmV2aW91c2x5LCB3ZSBoYWQgY29uc2VjdXRpdmUsIHZlcnkgc2hvcnQgY2hhcHRlcnMg Y2FsbGVkICJHZW5lcmljCldBTCIgYW5kICJDdXN0b20gV0FMIFJlc291cmNlIE1hbmFnZXJzLCIg ZXhwbGFpbmluZyBkaWZmZXJlbnQgYXBwcm9hY2hlcwp0byB0aGUgc2FtZSBwcm9ibGVtLiBNZXJn ZSB0aGVtIGludG8gYSBzaW5nbGUgY2hhcHRlci4KLS0tCiBkb2Mvc3JjL3NnbWwvY3VzdG9tLXJt Z3Iuc2dtbCAgICAgICAgfCAxMDUgLS0tLS0tLS0tLQogZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNn bWwgICAgICAgICAgIHwgICAzICstCiBkb2Mvc3JjL3NnbWwvZ2VuZXJpYy13YWwuc2dtbCAgICAg ICAgfCAxNzQgLS0tLS0tLS0tLS0tLS0tLQogZG9jL3NyYy9zZ21sL3Bvc3RncmVzLnNnbWwgICAg ICAgICAgIHwgICAzICstCiBkb2Mvc3JjL3NnbWwvd2FsLWZvci1leHRlbnNpb25zLnNnbWwgfCAy ODMgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDI4NSBpbnNl cnRpb25zKCspLCAyODMgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL2N1c3RvbS1ybWdyLnNnbWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvZ2Vu ZXJpYy13YWwuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC93YWwtZm9yLWV4 dGVuc2lvbnMuc2dtbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jdXN0b20tcm1nci5zZ21s IGIvZG9jL3NyYy9zZ21sL2N1c3RvbS1ybWdyLnNnbWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDBkOTgyMjkyOTUuLjAwMDAwMDAwMDAKLS0tIGEvZG9jL3NyYy9zZ21sL2N1c3RvbS1y bWdyLnNnbWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotPCEtLSBkb2Mvc3JjL3Nn bWwvY3VzdG9tLXJtZ3Iuc2dtbCAtLT4KLQotPGNoYXB0ZXIgaWQ9ImN1c3RvbS1ybWdyIj4KLSA8 dGl0bGU+Q3VzdG9tIFdBTCBSZXNvdXJjZSBNYW5hZ2VyczwvdGl0bGU+Ci0KLSA8cGFyYT4KLSAg VGhpcyBjaGFwdGVyIGV4cGxhaW5zIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgY29yZQotICA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHN5c3RlbSBhbmQgY3VzdG9tIFdB TCByZXNvdXJjZQotICBtYW5hZ2Vycywgd2hpY2ggZW5hYmxlIGV4dGVuc2lvbnMgdG8gaW50ZWdy YXRlIGRpcmVjdGx5IHdpdGggdGhlIDxsaW5rCi0gIGxpbmtlbmQ9IndhbCI+PGFjcm9ueW0+V0FM PC9hY3JvbnltPjwvbGluaz4uCi0gPC9wYXJhPgotIDxwYXJhPgotICBBbiBleHRlbnNpb24sIGVz cGVjaWFsbHkgYSA8bGluayBsaW5rZW5kPSJ0YWJsZWFtIj5UYWJsZSBBY2Nlc3MKLSAgTWV0aG9k PC9saW5rPiBvciA8bGluayBsaW5rZW5kPSJpbmRleGFtIj5JbmRleCBBY2Nlc3MgTWV0aG9kPC9s aW5rPiwgbWF5Ci0gIG5lZWQgdG8gdXNlIFdBTCBmb3IgcmVjb3ZlcnksIHJlcGxpY2F0aW9uLCBh bmQvb3IgPGxpbmsKLSAgbGlua2VuZD0ibG9naWNhbGRlY29kaW5nIj5Mb2dpY2FsIERlY29kaW5n PC9saW5rPi4gQ3VzdG9tIHJlc291cmNlIG1hbmFnZXJzCi0gIGFyZSBhIG1vcmUgZmxleGlibGUg YWx0ZXJuYXRpdmUgdG8gPGxpbmsgbGlua2VuZD0iZ2VuZXJpYy13YWwiPkdlbmVyaWMKLSAgV0FM PC9saW5rPiAod2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBsb2dpY2FsIGRlY29kaW5nKSwgYnV0IG1v cmUgY29tcGxleCBmb3IKLSAgYW4gZXh0ZW5zaW9uIHRvIGltcGxlbWVudC4KLSA8L3BhcmE+Ci0g PHBhcmE+Ci0gIFRvIGNyZWF0ZSBhIG5ldyBjdXN0b20gV0FMIHJlc291cmNlIG1hbmFnZXIsIGZp cnN0IGRlZmluZSBhbgotICA8c3RydWN0bmFtZT5SbWdyRGF0YTwvc3RydWN0bmFtZT4gc3RydWN0 dXJlIHdpdGggaW1wbGVtZW50YXRpb25zIGZvciB0aGUKLSAgcmVzb3VyY2UgbWFuYWdlciBtZXRo b2RzLiBSZWZlciB0bwotICA8ZmlsZW5hbWU+c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vUkVB RE1FPC9maWxlbmFtZT4gYW5kCi0gIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ19p bnRlcm5hbC5oPC9maWxlbmFtZT4gaW4gdGhlCi0gIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9w cm9kdWN0bmFtZT4gc291cmNlLgotPHByb2dyYW1saXN0aW5nPgotLyoKLSAqIE1ldGhvZCB0YWJs ZSBmb3IgcmVzb3VyY2UgbWFuYWdlcnMuCi0gKgotICogVGhpcyBzdHJ1Y3QgbXVzdCBiZSBrZXB0 IGluIHN5bmMgd2l0aCB0aGUgUEdfUk1HUiBkZWZpbml0aW9uIGluCi0gKiBybWdyLmMuCi0gKgot ICogcm1faWRlbnRpZnkgbXVzdCByZXR1cm4gYSBuYW1lIGZvciB0aGUgcmVjb3JkIGJhc2VkIG9u IHhsX2luZm8gKHdpdGhvdXQKLSAqIHJlZmVyZW5jZSB0byB0aGUgcm1pZCkuIEZvciBleGFtcGxl LCBYTE9HX0JUUkVFX1ZBQ1VVTSB3b3VsZCBiZSBuYW1lZAotICogIlZBQ1VVTSIuIHJtX2Rlc2Mg Y2FuIHRoZW4gYmUgY2FsbGVkIHRvIG9idGFpbiBhZGRpdGlvbmFsIGRldGFpbCBmb3IgdGhlCi0g KiByZWNvcmQsIGlmIGF2YWlsYWJsZSAoZS5nLiB0aGUgbGFzdCBibG9jaykuCi0gKgotICogcm1f bWFzayB0YWtlcyBhcyBpbnB1dCBhIHBhZ2UgbW9kaWZpZWQgYnkgdGhlIHJlc291cmNlIG1hbmFn ZXIgYW5kIG1hc2tzCi0gKiBvdXQgYml0cyB0aGF0IHNob3VsZG4ndCBiZSBmbGFnZ2VkIGJ5IHdh bF9jb25zaXN0ZW5jeV9jaGVja2luZy4KLSAqCi0gKiBSbWdyVGFibGVbXSBpcyBpbmRleGVkIGJ5 IFJtZ3JJZCB2YWx1ZXMgKHNlZSBybWdybGlzdC5oKS4gSWYgcm1fbmFtZSBpcwotICogTlVMTCwg dGhlIGNvcnJlc3BvbmRpbmcgUm1nclRhYmxlIGVudHJ5IGlzIGNvbnNpZGVyZWQgaW52YWxpZC4K LSAqLwotdHlwZWRlZiBzdHJ1Y3QgUm1nckRhdGEKLXsKLSAgICBjb25zdCBjaGFyICpybV9uYW1l OwotICAgIHZvaWQgICAgICAgICgqcm1fcmVkbykgKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsK LSAgICB2b2lkICAgICAgICAoKnJtX2Rlc2MpIChTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpOwotICAgIGNvbnN0IGNoYXIgKigqcm1faWRlbnRpZnkpICh1aW50OCBpbmZv KTsKLSAgICB2b2lkICAgICAgICAoKnJtX3N0YXJ0dXApICh2b2lkKTsKLSAgICB2b2lkICAgICAg ICAoKnJtX2NsZWFudXApICh2b2lkKTsKLSAgICB2b2lkICAgICAgICAoKnJtX21hc2spIChjaGFy ICpwYWdlZGF0YSwgQmxvY2tOdW1iZXIgYmxrbm8pOwotICAgIHZvaWQgICAgICAgICgqcm1fZGVj b2RlKSAoc3RydWN0IExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBYTG9nUmVjb3JkQnVmZmVyICpidWYpOwotfSBSbWdyRGF0 YTsKLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0gPC9wYXJhPgotCi0gIDxwYXJhPgotICAgVGhlIDxmaWxl bmFtZT5zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3JtZ3JzPC9maWxlbmFtZT4gbW9kdWxl Ci0gICBjb250YWlucyBhIHdvcmtpbmcgZXhhbXBsZSwgd2hpY2ggZGVtb25zdHJhdGVzIHVzYWdl IG9mIGN1c3RvbSBXQUwKLSAgIHJlc291cmNlIG1hbmFnZXJzLgotICA8L3BhcmE+Ci0KLSA8cGFy YT4KLSAgVGhlbiwgcmVnaXN0ZXIgeW91ciBuZXcgcmVzb3VyY2UKLSAgbWFuYWdlci4KLQotPHBy b2dyYW1saXN0aW5nPgotLyoKLSAqIFJlZ2lzdGVyIGEgbmV3IGN1c3RvbSBXQUwgcmVzb3VyY2Ug bWFuYWdlci4KLSAqCi0gKiBSZXNvdXJjZSBtYW5hZ2VyIElEcyBtdXN0IGJlIGdsb2JhbGx5IHVu aXF1ZSBhY3Jvc3MgYWxsIGV4dGVuc2lvbnMuIFJlZmVyCi0gKiB0byBodHRwczovL3dpa2kucG9z dGdyZXNxbC5vcmcvd2lraS9DdXN0b21XQUxSZXNvdXJjZU1hbmFnZXJzIHRvIHJlc2VydmUgYQot ICogdW5pcXVlIFJtZ3JJZCBmb3IgeW91ciBleHRlbnNpb24sIHRvIGF2b2lkIGNvbmZsaWN0cyB3 aXRoIG90aGVyIGV4dGVuc2lvbgotICogZGV2ZWxvcGVycy4gRHVyaW5nIGRldmVsb3BtZW50LCB1 c2UgUk1fRVhQRVJJTUVOVEFMX0lEIHRvIGF2b2lkIG5lZWRsZXNzbHkKLSAqIHJlc2VydmluZyBh IG5ldyBJRC4KLSAqLwotZXh0ZXJuIHZvaWQgUmVnaXN0ZXJDdXN0b21SbWdyKFJtZ3JJZCBybWlk LCBjb25zdCBSbWdyRGF0YSAqcm1ncik7Ci08L3Byb2dyYW1saXN0aW5nPgotICA8ZnVuY3Rpb24+ UmVnaXN0ZXJDdXN0b21SbWdyPC9mdW5jdGlvbj4gbXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUKLSAg ZXh0ZW5zaW9uIG1vZHVsZSdzIDxsaW5rIGxpbmtlbmQ9InhmdW5jLWMtZHlubG9hZCI+X1BHX2lu aXQ8L2xpbms+IGZ1bmN0aW9uLgotICBXaGlsZSBkZXZlbG9waW5nIGEgbmV3IGV4dGVuc2lvbiwg dXNlIDxsaXRlcmFsPlJNX0VYUEVSSU1FTlRBTF9JRDwvbGl0ZXJhbD4KLSAgZm9yIDxwYXJhbWV0 ZXI+cm1pZDwvcGFyYW1ldGVyPi4gV2hlbiB5b3UgYXJlIHJlYWR5IHRvIHJlbGVhc2UgdGhlIGV4 dGVuc2lvbgotICB0byB1c2VycywgcmVzZXJ2ZSBhIG5ldyByZXNvdXJjZSBtYW5hZ2VyIElEIGF0 IHRoZSA8dWxpbmsKLSAgdXJsPSJodHRwczovL3dpa2kucG9zdGdyZXNxbC5vcmcvd2lraS9DdXN0 b21XQUxSZXNvdXJjZU1hbmFnZXJzIj5DdXN0b20gV0FMCi0gIFJlc291cmNlIE1hbmFnZXI8L3Vs aW5rPiBwYWdlLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBQbGFjZSB0aGUgZXh0ZW5zaW9uIG1v ZHVsZSBpbXBsZW1lbnRpbmcgdGhlIGN1c3RvbSByZXNvdXJjZSBtYW5hZ2VyIGluIDx4cmVmCi0g IGxpbmtlbmQ9Imd1Yy1zaGFyZWQtcHJlbG9hZC1saWJyYXJpZXMiLz4gc28gdGhhdCBpdCB3aWxs IGJlIGxvYWRlZCBlYXJseQotICBkdXJpbmcgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPiBzdGFydHVwLgotIDwvcGFyYT4KLSA8bm90ZT4KLSAgIDxwYXJhPgotICAgIFRoZSBl eHRlbnNpb24gbXVzdCByZW1haW4gaW4gPHZhcm5hbWU+c2hhcmVkX3ByZWxvYWRfbGlicmFyaWVz PC92YXJuYW1lPgotICAgIGFzIGxvbmcgYXMgYW55IGN1c3RvbSBXQUwgcmVjb3JkcyBtYXkgZXhp c3QgaW4gdGhlIHN5c3RlbS4gT3RoZXJ3aXNlCi0gICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8 L3Byb2R1Y3RuYW1lPiB3aWxsIG5vdCBiZSBhYmxlIHRvIGFwcGx5IG9yIGRlY29kZQotICAgIHRo ZSBjdXN0b20gV0FMIHJlY29yZHMsIHdoaWNoIG1heSBwcmV2ZW50IHRoZSBzZXJ2ZXIgZnJvbSBz dGFydGluZy4KLSAgIDwvcGFyYT4KLSA8L25vdGU+Ci08L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvZmlsZWxpc3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sCmlu ZGV4IGRlNjgzZTM0MDAuLjZlNWZmNmZhNjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9maWxl bGlzdC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sCkBAIC0xMDAsOCArMTAw LDcgQEAKIDwhRU5USVRZIHN0b3JhZ2UgICAgU1lTVEVNICJzdG9yYWdlLnNnbWwiPgogPCFFTlRJ VFkgdHJhbnNhY3Rpb24gICAgIFNZU1RFTSAieGFjdC5zZ21sIj4KIDwhRU5USVRZIHRhYmxlc2Ft cGxlLW1ldGhvZCBTWVNURU0gInRhYmxlc2FtcGxlLW1ldGhvZC5zZ21sIj4KLTwhRU5USVRZIGdl bmVyaWMtd2FsIFNZU1RFTSAiZ2VuZXJpYy13YWwuc2dtbCI+Ci08IUVOVElUWSBjdXN0b20tcm1n ciBTWVNURU0gImN1c3RvbS1ybWdyLnNnbWwiPgorPCFFTlRJVFkgd2FsLWZvci1leHRlbnNpb25z IFNZU1RFTSAid2FsLWZvci1leHRlbnNpb25zLnNnbWwiPgogPCFFTlRJVFkgYmFja3VwLW1hbmlm ZXN0IFNZU1RFTSAiYmFja3VwLW1hbmlmZXN0LnNnbWwiPgogCiA8IS0tIGNvbnRyaWIgaW5mb3Jt YXRpb24gLS0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2VuZXJpYy13YWwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9nZW5lcmljLXdhbC5zZ21sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBhMDI4ODU2ZDJlLi4wMDAwMDAwMDAwCi0tLSBhL2RvYy9zcmMvc2dtbC9nZW5lcmljLXdhbC5z Z21sCisrKyAvZGV2L251bGwKQEAgLTEsMTc0ICswLDAgQEAKLTwhLS0gZG9jL3NyYy9zZ21sL2dl bmVyaWMtd2FsLnNnbWwgLS0+Ci0KLTxjaGFwdGVyIGlkPSJnZW5lcmljLXdhbCI+Ci0gPHRpdGxl PkdlbmVyaWMgV0FMIFJlY29yZHM8L3RpdGxlPgotCi0gIDxwYXJhPgotICAgQWx0aG91Z2ggYWxs IGJ1aWx0LWluIFdBTC1sb2dnZWQgbW9kdWxlcyBoYXZlIHRoZWlyIG93biB0eXBlcyBvZiBXQUwK LSAgIHJlY29yZHMsIHRoZXJlIGlzIGFsc28gYSBnZW5lcmljIFdBTCByZWNvcmQgdHlwZSwgd2hp Y2ggZGVzY3JpYmVzIGNoYW5nZXMKLSAgIHRvIHBhZ2VzIGluIGEgZ2VuZXJpYyB3YXkuIFRoaXMg aXMgdXNlZnVsIGZvciBleHRlbnNpb25zIHRoYXQgcHJvdmlkZQotICAgY3VzdG9tIGFjY2VzcyBt ZXRob2RzLgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBJbiBjb21wYXJpc29uIHdpdGggPGxp bmsgbGlua2VuZD0iY3VzdG9tLXJtZ3IiPkN1c3RvbSBXQUwgUmVzb3VyY2UKLSAgIE1hbmFnZXJz PC9saW5rPiwgR2VuZXJpYyBXQUwgaXMgc2ltcGxlciBmb3IgYW4gZXh0ZW5zaW9uIHRvIGltcGxl bWVudCBhbmQKLSAgIGRvZXMgbm90IHJlcXVpcmUgdGhlIGV4dGVuc2lvbiBsaWJyYXJ5IHRvIGJl IGxvYWRlZCBpbiBvcmRlciB0byBhcHBseSB0aGUKLSAgIHJlY29yZHMuCi0gIDwvcGFyYT4KLQot ICA8bm90ZT4KLSAgIDxwYXJhPgotICAgIEdlbmVyaWMgV0FMIHJlY29yZHMgYXJlIGlnbm9yZWQg ZHVyaW5nIDxsaW5rCi0gICAgbGlua2VuZD0ibG9naWNhbGRlY29kaW5nIj5Mb2dpY2FsIERlY29k aW5nPC9saW5rPi4gSWYgbG9naWNhbCBkZWNvZGluZyBpcwotICAgIHJlcXVpcmVkIGZvciB5b3Vy IGV4dGVuc2lvbiwgY29uc2lkZXIgYSBDdXN0b20gV0FMIFJlc291cmNlIE1hbmFnZXIuCi0gICA8 L3BhcmE+Ci0gIDwvbm90ZT4KLQotICA8cGFyYT4KLSAgIFRoZSBBUEkgZm9yIGNvbnN0cnVjdGlu ZyBnZW5lcmljIFdBTCByZWNvcmRzIGlzIGRlZmluZWQgaW4KLSAgIDxmaWxlbmFtZT5hY2Nlc3Mv Z2VuZXJpY194bG9nLmg8L2ZpbGVuYW1lPiBhbmQgaW1wbGVtZW50ZWQKLSAgIGluIDxmaWxlbmFt ZT5hY2Nlc3MvdHJhbnNhbS9nZW5lcmljX3hsb2cuYzwvZmlsZW5hbWU+LgotICA8L3BhcmE+Ci0K LSAgPHBhcmE+Ci0gICBUbyBwZXJmb3JtIGEgV0FMLWxvZ2dlZCBkYXRhIHVwZGF0ZSB1c2luZyB0 aGUgZ2VuZXJpYyBXQUwgcmVjb3JkCi0gICBmYWNpbGl0eSwgZm9sbG93IHRoZXNlIHN0ZXBzOgot Ci0gICA8b3JkZXJlZGxpc3Q+Ci0gICAgPGxpc3RpdGVtPgotICAgICA8cGFyYT4KLSAgICAgIDxm dW5jdGlvbj5zdGF0ZSA9IEdlbmVyaWNYTG9nU3RhcnQocmVsYXRpb24pPC9mdW5jdGlvbj4gJm1k YXNoOyBzdGFydAotICAgICAgY29uc3RydWN0aW9uIG9mIGEgZ2VuZXJpYyBXQUwgcmVjb3JkIGZv ciB0aGUgZ2l2ZW4gcmVsYXRpb24uCi0gICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgotCi0g ICAgPGxpc3RpdGVtPgotICAgICA8cGFyYT4KLSAgICAgIDxmdW5jdGlvbj5wYWdlID0gR2VuZXJp Y1hMb2dSZWdpc3RlckJ1ZmZlcihzdGF0ZSwgYnVmZmVyLCBmbGFncyk8L2Z1bmN0aW9uPgotICAg ICAgJm1kYXNoOyByZWdpc3RlciBhIGJ1ZmZlciB0byBiZSBtb2RpZmllZCB3aXRoaW4gdGhlIGN1 cnJlbnQgZ2VuZXJpYyBXQUwKLSAgICAgIHJlY29yZC4gIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBh IHBvaW50ZXIgdG8gYSB0ZW1wb3JhcnkgY29weSBvZiB0aGUKLSAgICAgIGJ1ZmZlcidzIHBhZ2Us IHdoZXJlIG1vZGlmaWNhdGlvbnMgc2hvdWxkIGJlIG1hZGUuICAoRG8gbm90IG1vZGlmeSB0aGUK LSAgICAgIGJ1ZmZlcidzIGNvbnRlbnRzIGRpcmVjdGx5LikgIFRoZSB0aGlyZCBhcmd1bWVudCBp cyBhIGJpdCBtYXNrIG9mIGZsYWdzCi0gICAgICBhcHBsaWNhYmxlIHRvIHRoZSBvcGVyYXRpb24u ICBDdXJyZW50bHkgdGhlIG9ubHkgc3VjaCBmbGFnIGlzCi0gICAgICA8bGl0ZXJhbD5HRU5FUklD X1hMT0dfRlVMTF9JTUFHRTwvbGl0ZXJhbD4sIHdoaWNoIGluZGljYXRlcyB0aGF0IGEgZnVsbC1w YWdlCi0gICAgICBpbWFnZSByYXRoZXIgdGhhbiBhIGRlbHRhIHVwZGF0ZSBzaG91bGQgYmUgaW5j bHVkZWQgaW4gdGhlIFdBTCByZWNvcmQuCi0gICAgICBUeXBpY2FsbHkgdGhpcyBmbGFnIHdvdWxk IGJlIHNldCBpZiB0aGUgcGFnZSBpcyBuZXcgb3IgaGFzIGJlZW4KLSAgICAgIHJld3JpdHRlbiBj b21wbGV0ZWx5LgotICAgICAgPGZ1bmN0aW9uPkdlbmVyaWNYTG9nUmVnaXN0ZXJCdWZmZXI8L2Z1 bmN0aW9uPiBjYW4gYmUgcmVwZWF0ZWQgaWYgdGhlCi0gICAgICBXQUwtbG9nZ2VkIGFjdGlvbiBu ZWVkcyB0byBtb2RpZnkgbXVsdGlwbGUgcGFnZXMuCi0gICAgIDwvcGFyYT4KLSAgICA8L2xpc3Rp dGVtPgotCi0gICAgPGxpc3RpdGVtPgotICAgICA8cGFyYT4KLSAgICAgIEFwcGx5IG1vZGlmaWNh dGlvbnMgdG8gdGhlIHBhZ2UgaW1hZ2VzIG9idGFpbmVkIGluIHRoZSBwcmV2aW91cyBzdGVwLgot ICAgICA8L3BhcmE+Ci0gICAgPC9saXN0aXRlbT4KLQotICAgIDxsaXN0aXRlbT4KLSAgICAgPHBh cmE+Ci0gICAgICA8ZnVuY3Rpb24+R2VuZXJpY1hMb2dGaW5pc2goc3RhdGUpPC9mdW5jdGlvbj4g Jm1kYXNoOyBhcHBseSB0aGUgY2hhbmdlcyB0bwotICAgICAgdGhlIGJ1ZmZlcnMgYW5kIGVtaXQg dGhlIGdlbmVyaWMgV0FMIHJlY29yZC4KLSAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+Ci0g ICA8L29yZGVyZWRsaXN0PgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBXQUwgcmVjb3JkIGNv bnN0cnVjdGlvbiBjYW4gYmUgY2FuY2VsZWQgYmV0d2VlbiBhbnkgb2YgdGhlIGFib3ZlIHN0ZXBz IGJ5Ci0gICBjYWxsaW5nIDxmdW5jdGlvbj5HZW5lcmljWExvZ0Fib3J0KHN0YXRlKTwvZnVuY3Rp b24+LiAgVGhpcyB3aWxsIGRpc2NhcmQgYWxsCi0gICBjaGFuZ2VzIHRvIHRoZSBwYWdlIGltYWdl IGNvcGllcy4KLSAgPC9wYXJhPgotCi0gIDxwYXJhPgotICAgUGxlYXNlIG5vdGUgdGhlIGZvbGxv d2luZyBwb2ludHMgd2hlbiB1c2luZyB0aGUgZ2VuZXJpYyBXQUwgcmVjb3JkCi0gICBmYWNpbGl0 eToKLQotICAgPGl0ZW1pemVkbGlzdD4KLSAgICA8bGlzdGl0ZW0+Ci0gICAgIDxwYXJhPgotICAg ICAgTm8gZGlyZWN0IG1vZGlmaWNhdGlvbnMgb2YgYnVmZmVycyBhcmUgYWxsb3dlZCEgIEFsbCBt b2RpZmljYXRpb25zIG11c3QKLSAgICAgIGJlIGRvbmUgaW4gY29waWVzIGFjcXVpcmVkIGZyb20g PGZ1bmN0aW9uPkdlbmVyaWNYTG9nUmVnaXN0ZXJCdWZmZXIoKTwvZnVuY3Rpb24+LgotICAgICAg SW4gb3RoZXIgd29yZHMsIGNvZGUgdGhhdCBtYWtlcyBnZW5lcmljIFdBTCByZWNvcmRzIHNob3Vs ZCBuZXZlciBjYWxsCi0gICAgICA8ZnVuY3Rpb24+QnVmZmVyR2V0UGFnZSgpPC9mdW5jdGlvbj4g Zm9yIGl0c2VsZi4gIEhvd2V2ZXIsIGl0IHJlbWFpbnMgdGhlCi0gICAgICBjYWxsZXIncyByZXNw b25zaWJpbGl0eSB0byBwaW4vdW5waW4gYW5kIGxvY2svdW5sb2NrIHRoZSBidWZmZXJzIGF0Ci0g ICAgICBhcHByb3ByaWF0ZSB0aW1lcy4gIEV4Y2x1c2l2ZSBsb2NrIG11c3QgYmUgaGVsZCBvbiBl YWNoIHRhcmdldCBidWZmZXIKLSAgICAgIGZyb20gYmVmb3JlIDxmdW5jdGlvbj5HZW5lcmljWExv Z1JlZ2lzdGVyQnVmZmVyKCk8L2Z1bmN0aW9uPiB1bnRpbCBhZnRlcgotICAgICAgPGZ1bmN0aW9u PkdlbmVyaWNYTG9nRmluaXNoKCk8L2Z1bmN0aW9uPi4KLSAgICAgPC9wYXJhPgotICAgIDwvbGlz dGl0ZW0+Ci0KLSAgICA8bGlzdGl0ZW0+Ci0gICAgIDxwYXJhPgotICAgICAgUmVnaXN0cmF0aW9u cyBvZiBidWZmZXJzIChzdGVwIDIpIGFuZCBtb2RpZmljYXRpb25zIG9mIHBhZ2UgaW1hZ2VzCi0g ICAgICAoc3RlcCAzKSBjYW4gYmUgbWl4ZWQgZnJlZWx5LCBpLmUuLCBib3RoIHN0ZXBzIG1heSBi ZSByZXBlYXRlZCBpbiBhbnkKLSAgICAgIHNlcXVlbmNlLiAgS2VlcCBpbiBtaW5kIHRoYXQgYnVm ZmVycyBzaG91bGQgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgc2FtZQotICAgICAgb3JkZXIgaW4gd2hp Y2ggbG9ja3MgYXJlIHRvIGJlIG9idGFpbmVkIG9uIHRoZW0gZHVyaW5nIHJlcGxheS4KLSAgICAg PC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+Ci0KLSAgICA8bGlzdGl0ZW0+Ci0gICAgIDxwYXJhPgot ICAgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGJ1ZmZlcnMgdGhhdCBjYW4gYmUgcmVnaXN0ZXJl ZCBmb3IgYSBnZW5lcmljIFdBTAotICAgICAgcmVjb3JkIGlzIDxsaXRlcmFsPk1BWF9HRU5FUklD X1hMT0dfUEFHRVM8L2xpdGVyYWw+LiAgQW4gZXJyb3Igd2lsbCBiZSB0aHJvd24KLSAgICAgIGlm IHRoaXMgbGltaXQgaXMgZXhjZWVkZWQuCi0gICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgot Ci0gICAgPGxpc3RpdGVtPgotICAgICA8cGFyYT4KLSAgICAgIEdlbmVyaWMgV0FMIGFzc3VtZXMg dGhhdCB0aGUgcGFnZXMgdG8gYmUgbW9kaWZpZWQgaGF2ZSBzdGFuZGFyZAotICAgICAgbGF5b3V0 LCBhbmQgaW4gcGFydGljdWxhciB0aGF0IHRoZXJlIGlzIG5vIHVzZWZ1bCBkYXRhIGJldHdlZW4K LSAgICAgIDxzdHJ1Y3RmaWVsZD5wZF9sb3dlcjwvc3RydWN0ZmllbGQ+IGFuZCA8c3RydWN0Zmll bGQ+cGRfdXBwZXI8L3N0cnVjdGZpZWxkPi4KLSAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+ Ci0KLSAgICA8bGlzdGl0ZW0+Ci0gICAgIDxwYXJhPgotICAgICAgU2luY2UgeW91IGFyZSBtb2Rp ZnlpbmcgY29waWVzIG9mIGJ1ZmZlcgotICAgICAgcGFnZXMsIDxmdW5jdGlvbj5HZW5lcmljWExv Z1N0YXJ0KCk8L2Z1bmN0aW9uPiBkb2VzIG5vdCBzdGFydCBhIGNyaXRpY2FsCi0gICAgICBzZWN0 aW9uLiAgVGh1cywgeW91IGNhbiBzYWZlbHkgZG8gbWVtb3J5IGFsbG9jYXRpb24sIGVycm9yIHRo cm93aW5nLAotICAgICAgZXRjLiBiZXR3ZWVuIDxmdW5jdGlvbj5HZW5lcmljWExvZ1N0YXJ0KCk8 L2Z1bmN0aW9uPiBhbmQKLSAgICAgIDxmdW5jdGlvbj5HZW5lcmljWExvZ0ZpbmlzaCgpPC9mdW5j dGlvbj4uICBUaGUgb25seSBhY3R1YWwgY3JpdGljYWwgc2VjdGlvbiBpcwotICAgICAgcHJlc2Vu dCBpbnNpZGUgPGZ1bmN0aW9uPkdlbmVyaWNYTG9nRmluaXNoKCk8L2Z1bmN0aW9uPi4gIFRoZXJl IGlzIG5vIG5lZWQgdG8KLSAgICAgIHdvcnJ5IGFib3V0IGNhbGxpbmcgIDxmdW5jdGlvbj5HZW5l cmljWExvZ0Fib3J0KCk8L2Z1bmN0aW9uPiBkdXJpbmcgYW4gZXJyb3IKLSAgICAgIGV4aXQsIGVp dGhlci4KLSAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+Ci0KLSAgICA8bGlzdGl0ZW0+Ci0g ICAgIDxwYXJhPgotICAgICAgPGZ1bmN0aW9uPkdlbmVyaWNYTG9nRmluaXNoKCk8L2Z1bmN0aW9u PiB0YWtlcyBjYXJlIG9mIG1hcmtpbmcgYnVmZmVycyBkaXJ0eQotICAgICAgYW5kIHNldHRpbmcg dGhlaXIgTFNOcy4gIFlvdSBkbyBub3QgbmVlZCB0byBkbyB0aGlzIGV4cGxpY2l0bHkuCi0gICAg IDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3RpdGVtPgotICAgICA8cGFyYT4K LSAgICAgIEZvciB1bmxvZ2dlZCByZWxhdGlvbnMsIGV2ZXJ5dGhpbmcgd29ya3MgdGhlIHNhbWUg ZXhjZXB0IHRoYXQgbm8KLSAgICAgIGFjdHVhbCBXQUwgcmVjb3JkIGlzIGVtaXR0ZWQuICBUaHVz LCB5b3UgdHlwaWNhbGx5IGRvIG5vdCBuZWVkIHRvIGRvCi0gICAgICBhbnkgZXhwbGljaXQgY2hl Y2tzIGZvciB1bmxvZ2dlZCByZWxhdGlvbnMuCi0gICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVt PgotCi0gICAgPGxpc3RpdGVtPgotICAgICA8cGFyYT4KLSAgICAgIFRoZSBnZW5lcmljIFdBTCBy ZWRvIGZ1bmN0aW9uIHdpbGwgYWNxdWlyZSBleGNsdXNpdmUgbG9ja3MgdG8gYnVmZmVycwotICAg ICAgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhleSB3ZXJlIHJlZ2lzdGVyZWQuICBBZnRlciByZWRv aW5nIGFsbCBjaGFuZ2VzLAotICAgICAgdGhlIGxvY2tzIHdpbGwgYmUgcmVsZWFzZWQgaW4gdGhl IHNhbWUgb3JkZXIuCi0gICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3Rp dGVtPgotICAgICA8cGFyYT4KLSAgICAgIElmIDxsaXRlcmFsPkdFTkVSSUNfWExPR19GVUxMX0lN QUdFPC9saXRlcmFsPiBpcyBub3Qgc3BlY2lmaWVkIGZvciBhCi0gICAgICByZWdpc3RlcmVkIGJ1 ZmZlciwgdGhlIGdlbmVyaWMgV0FMIHJlY29yZCBjb250YWlucyBhIGRlbHRhIGJldHdlZW4KLSAg ICAgIHRoZSBvbGQgYW5kIHRoZSBuZXcgcGFnZSBpbWFnZXMuICBUaGlzIGRlbHRhIGlzIGJhc2Vk IG9uIGJ5dGUtYnktYnl0ZQotICAgICAgY29tcGFyaXNvbi4gIFRoaXMgaXMgbm90IHZlcnkgY29t cGFjdCBmb3IgdGhlIGNhc2Ugb2YgbW92aW5nIGRhdGEKLSAgICAgIHdpdGhpbiBhIHBhZ2UsIGFu ZCBtaWdodCBiZSBpbXByb3ZlZCBpbiB0aGUgZnV0dXJlLgotICAgICA8L3BhcmE+Ci0gICAgPC9s aXN0aXRlbT4KLSAgIDwvaXRlbWl6ZWRsaXN0PgotICA8L3BhcmE+Ci08L2NoYXB0ZXI+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jl cy5zZ21sCmluZGV4IDAyMzVjMGUzNTIuLjViYzQ3YTllNzEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9wb3N0Z3Jlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy5zZ21sCkBAIC0y NTUsOCArMjU1LDcgQEAgYnJlYWsgaXMgbm90IG5lZWRlZCBpbiBhIHdpZGVyIG91dHB1dCByZW5k ZXJpbmcuCiAgICZnZXFvOwogICAmdGFibGVhbTsKICAgJmluZGV4YW07Ci0gICZnZW5lcmljLXdh bDsKLSAgJmN1c3RvbS1ybWdyOworICAmd2FsLWZvci1leHRlbnNpb25zOwogICAmaW5kZXh0eXBl czsKICAgJnN0b3JhZ2U7CiAgICZ0cmFuc2FjdGlvbjsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC93YWwtZm9yLWV4dGVuc2lvbnMuc2dtbCBiL2RvYy9zcmMvc2dtbC93YWwtZm9yLWV4dGVuc2lv bnMuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jYzIzMzM1OGRk Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3dhbC1mb3ItZXh0ZW5zaW9ucy5zZ21s CkBAIC0wLDAgKzEsMjgzIEBACis8IS0tIGRvYy9zcmMvc2dtbC93YWwtZm9yLWV4dGVuc2lvbnMu c2dtbCAtLT4KKworPGNoYXB0ZXIgaWQ9IndhbC1mb3ItZXh0ZW5zaW9ucyI+CisgPHRpdGxlPldy aXRlIEFoZWFkIExvZ2dpbmcgZm9yIEV4dGVuc2lvbnM8L3RpdGxlPgorCisgPHNlY3QxIGlkPSJn ZW5lcmljLXdhbCI+CisgIDx0aXRsZT5HZW5lcmljIFdBTCBSZWNvcmRzPC90aXRsZT4KKworICAg PHBhcmE+CisgICAgQWx0aG91Z2ggYWxsIGJ1aWx0LWluIFdBTC1sb2dnZWQgbW9kdWxlcyBoYXZl IHRoZWlyIG93biB0eXBlcyBvZiBXQUwKKyAgICByZWNvcmRzLCB0aGVyZSBpcyBhbHNvIGEgZ2Vu ZXJpYyBXQUwgcmVjb3JkIHR5cGUsIHdoaWNoIGRlc2NyaWJlcyBjaGFuZ2VzCisgICAgdG8gcGFn ZXMgaW4gYSBnZW5lcmljIHdheS4gVGhpcyBpcyB1c2VmdWwgZm9yIGV4dGVuc2lvbnMgdGhhdCBw cm92aWRlCisgICAgY3VzdG9tIGFjY2VzcyBtZXRob2RzLgorICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBJbiBjb21wYXJpc29uIHdpdGggPGxpbmsgbGlua2VuZD0iY3VzdG9tLXJtZ3IiPkN1 c3RvbSBXQUwgUmVzb3VyY2UKKyAgICBNYW5hZ2VyczwvbGluaz4sIEdlbmVyaWMgV0FMIGlzIHNp bXBsZXIgZm9yIGFuIGV4dGVuc2lvbiB0byBpbXBsZW1lbnQgYW5kCisgICAgZG9lcyBub3QgcmVx dWlyZSB0aGUgZXh0ZW5zaW9uIGxpYnJhcnkgdG8gYmUgbG9hZGVkIGluIG9yZGVyIHRvIGFwcGx5 IHRoZQorICAgIHJlY29yZHMuCisgICA8L3BhcmE+CisKKyAgIDxub3RlPgorICAgIDxwYXJhPgor ICAgICBHZW5lcmljIFdBTCByZWNvcmRzIGFyZSBpZ25vcmVkIGR1cmluZyA8bGluaworICAgICBs aW5rZW5kPSJsb2dpY2FsZGVjb2RpbmciPkxvZ2ljYWwgRGVjb2Rpbmc8L2xpbms+LiBJZiBsb2dp Y2FsIGRlY29kaW5nIGlzCisgICAgIHJlcXVpcmVkIGZvciB5b3VyIGV4dGVuc2lvbiwgY29uc2lk ZXIgYSBDdXN0b20gV0FMIFJlc291cmNlIE1hbmFnZXIuCisgICAgPC9wYXJhPgorICAgPC9ub3Rl PgorCisgICA8cGFyYT4KKyAgICBUaGUgQVBJIGZvciBjb25zdHJ1Y3RpbmcgZ2VuZXJpYyBXQUwg cmVjb3JkcyBpcyBkZWZpbmVkIGluCisgICAgPGZpbGVuYW1lPmFjY2Vzcy9nZW5lcmljX3hsb2cu aDwvZmlsZW5hbWU+IGFuZCBpbXBsZW1lbnRlZAorICAgIGluIDxmaWxlbmFtZT5hY2Nlc3MvdHJh bnNhbS9nZW5lcmljX3hsb2cuYzwvZmlsZW5hbWU+LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICBUbyBwZXJmb3JtIGEgV0FMLWxvZ2dlZCBkYXRhIHVwZGF0ZSB1c2luZyB0aGUgZ2VuZXJp YyBXQUwgcmVjb3JkCisgICAgZmFjaWxpdHksIGZvbGxvdyB0aGVzZSBzdGVwczoKKworICAgIDxv cmRlcmVkbGlzdD4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPGZ1bmN0 aW9uPnN0YXRlID0gR2VuZXJpY1hMb2dTdGFydChyZWxhdGlvbik8L2Z1bmN0aW9uPiAmbWRhc2g7 IHN0YXJ0CisgICAgICAgY29uc3RydWN0aW9uIG9mIGEgZ2VuZXJpYyBXQUwgcmVjb3JkIGZvciB0 aGUgZ2l2ZW4gcmVsYXRpb24uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisKKyAg ICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPGZ1bmN0aW9uPnBhZ2UgPSBHZW5l cmljWExvZ1JlZ2lzdGVyQnVmZmVyKHN0YXRlLCBidWZmZXIsIGZsYWdzKTwvZnVuY3Rpb24+Cisg ICAgICAgJm1kYXNoOyByZWdpc3RlciBhIGJ1ZmZlciB0byBiZSBtb2RpZmllZCB3aXRoaW4gdGhl IGN1cnJlbnQgZ2VuZXJpYyBXQUwKKyAgICAgICByZWNvcmQuICBUaGlzIGZ1bmN0aW9uIHJldHVy bnMgYSBwb2ludGVyIHRvIGEgdGVtcG9yYXJ5IGNvcHkgb2YgdGhlCisgICAgICAgYnVmZmVyJ3Mg cGFnZSwgd2hlcmUgbW9kaWZpY2F0aW9ucyBzaG91bGQgYmUgbWFkZS4gIChEbyBub3QgbW9kaWZ5 IHRoZQorICAgICAgIGJ1ZmZlcidzIGNvbnRlbnRzIGRpcmVjdGx5LikgIFRoZSB0aGlyZCBhcmd1 bWVudCBpcyBhIGJpdCBtYXNrIG9mIGZsYWdzCisgICAgICAgYXBwbGljYWJsZSB0byB0aGUgb3Bl cmF0aW9uLiAgQ3VycmVudGx5IHRoZSBvbmx5IHN1Y2ggZmxhZyBpcworICAgICAgIDxsaXRlcmFs PkdFTkVSSUNfWExPR19GVUxMX0lNQUdFPC9saXRlcmFsPiwgd2hpY2ggaW5kaWNhdGVzIHRoYXQg YSBmdWxsLXBhZ2UKKyAgICAgICBpbWFnZSByYXRoZXIgdGhhbiBhIGRlbHRhIHVwZGF0ZSBzaG91 bGQgYmUgaW5jbHVkZWQgaW4gdGhlIFdBTCByZWNvcmQuCisgICAgICAgVHlwaWNhbGx5IHRoaXMg ZmxhZyB3b3VsZCBiZSBzZXQgaWYgdGhlIHBhZ2UgaXMgbmV3IG9yIGhhcyBiZWVuCisgICAgICAg cmV3cml0dGVuIGNvbXBsZXRlbHkuCisgICAgICAgPGZ1bmN0aW9uPkdlbmVyaWNYTG9nUmVnaXN0 ZXJCdWZmZXI8L2Z1bmN0aW9uPiBjYW4gYmUgcmVwZWF0ZWQgaWYgdGhlCisgICAgICAgV0FMLWxv Z2dlZCBhY3Rpb24gbmVlZHMgdG8gbW9kaWZ5IG11bHRpcGxlIHBhZ2VzLgorICAgICAgPC9wYXJh PgorICAgICA8L2xpc3RpdGVtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAg ICAgIEFwcGx5IG1vZGlmaWNhdGlvbnMgdG8gdGhlIHBhZ2UgaW1hZ2VzIG9idGFpbmVkIGluIHRo ZSBwcmV2aW91cyBzdGVwLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorCisgICAg IDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxmdW5jdGlvbj5HZW5lcmljWExvZ0Zp bmlzaChzdGF0ZSk8L2Z1bmN0aW9uPiAmbWRhc2g7IGFwcGx5IHRoZSBjaGFuZ2VzIHRvCisgICAg ICAgdGhlIGJ1ZmZlcnMgYW5kIGVtaXQgdGhlIGdlbmVyaWMgV0FMIHJlY29yZC4KKyAgICAgIDwv cGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L29yZGVyZWRsaXN0PgorICAgPC9wYXJhPgor CisgICA8cGFyYT4KKyAgICBXQUwgcmVjb3JkIGNvbnN0cnVjdGlvbiBjYW4gYmUgY2FuY2VsZWQg YmV0d2VlbiBhbnkgb2YgdGhlIGFib3ZlIHN0ZXBzIGJ5CisgICAgY2FsbGluZyA8ZnVuY3Rpb24+ R2VuZXJpY1hMb2dBYm9ydChzdGF0ZSk8L2Z1bmN0aW9uPi4gIFRoaXMgd2lsbCBkaXNjYXJkIGFs bAorICAgIGNoYW5nZXMgdG8gdGhlIHBhZ2UgaW1hZ2UgY29waWVzLgorICAgPC9wYXJhPgorCisg ICA8cGFyYT4KKyAgICBQbGVhc2Ugbm90ZSB0aGUgZm9sbG93aW5nIHBvaW50cyB3aGVuIHVzaW5n IHRoZSBnZW5lcmljIFdBTCByZWNvcmQKKyAgICBmYWNpbGl0eToKKworICAgIDxpdGVtaXplZGxp c3Q+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5vIGRpcmVjdCBtb2Rp ZmljYXRpb25zIG9mIGJ1ZmZlcnMgYXJlIGFsbG93ZWQhICBBbGwgbW9kaWZpY2F0aW9ucyBtdXN0 CisgICAgICAgYmUgZG9uZSBpbiBjb3BpZXMgYWNxdWlyZWQgZnJvbSA8ZnVuY3Rpb24+R2VuZXJp Y1hMb2dSZWdpc3RlckJ1ZmZlcigpPC9mdW5jdGlvbj4uCisgICAgICAgSW4gb3RoZXIgd29yZHMs IGNvZGUgdGhhdCBtYWtlcyBnZW5lcmljIFdBTCByZWNvcmRzIHNob3VsZCBuZXZlciBjYWxsCisg ICAgICAgPGZ1bmN0aW9uPkJ1ZmZlckdldFBhZ2UoKTwvZnVuY3Rpb24+IGZvciBpdHNlbGYuICBI b3dldmVyLCBpdCByZW1haW5zIHRoZQorICAgICAgIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRv IHBpbi91bnBpbiBhbmQgbG9jay91bmxvY2sgdGhlIGJ1ZmZlcnMgYXQKKyAgICAgICBhcHByb3By aWF0ZSB0aW1lcy4gIEV4Y2x1c2l2ZSBsb2NrIG11c3QgYmUgaGVsZCBvbiBlYWNoIHRhcmdldCBi dWZmZXIKKyAgICAgICBmcm9tIGJlZm9yZSA8ZnVuY3Rpb24+R2VuZXJpY1hMb2dSZWdpc3RlckJ1 ZmZlcigpPC9mdW5jdGlvbj4gdW50aWwgYWZ0ZXIKKyAgICAgICA8ZnVuY3Rpb24+R2VuZXJpY1hM b2dGaW5pc2goKTwvZnVuY3Rpb24+LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgor CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJlZ2lzdHJhdGlvbnMgb2Yg YnVmZmVycyAoc3RlcCAyKSBhbmQgbW9kaWZpY2F0aW9ucyBvZiBwYWdlIGltYWdlcworICAgICAg IChzdGVwIDMpIGNhbiBiZSBtaXhlZCBmcmVlbHksIGkuZS4sIGJvdGggc3RlcHMgbWF5IGJlIHJl cGVhdGVkIGluIGFueQorICAgICAgIHNlcXVlbmNlLiAgS2VlcCBpbiBtaW5kIHRoYXQgYnVmZmVy cyBzaG91bGQgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgc2FtZQorICAgICAgIG9yZGVyIGluIHdoaWNo IGxvY2tzIGFyZSB0byBiZSBvYnRhaW5lZCBvbiB0aGVtIGR1cmluZyByZXBsYXkuCisgICAgICA8 L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGJ1ZmZlcnMgdGhhdCBjYW4gYmUgcmVnaXN0 ZXJlZCBmb3IgYSBnZW5lcmljIFdBTAorICAgICAgIHJlY29yZCBpcyA8bGl0ZXJhbD5NQVhfR0VO RVJJQ19YTE9HX1BBR0VTPC9saXRlcmFsPi4gIEFuIGVycm9yIHdpbGwgYmUgdGhyb3duCisgICAg ICAgaWYgdGhpcyBsaW1pdCBpcyBleGNlZWRlZC4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0 aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBHZW5lcmljIFdB TCBhc3N1bWVzIHRoYXQgdGhlIHBhZ2VzIHRvIGJlIG1vZGlmaWVkIGhhdmUgc3RhbmRhcmQKKyAg ICAgICBsYXlvdXQsIGFuZCBpbiBwYXJ0aWN1bGFyIHRoYXQgdGhlcmUgaXMgbm8gdXNlZnVsIGRh dGEgYmV0d2VlbgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZF9sb3dlcjwvc3RydWN0ZmllbGQ+IGFu ZCA8c3RydWN0ZmllbGQ+cGRfdXBwZXI8L3N0cnVjdGZpZWxkPi4KKyAgICAgIDwvcGFyYT4KKyAg ICAgPC9saXN0aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBT aW5jZSB5b3UgYXJlIG1vZGlmeWluZyBjb3BpZXMgb2YgYnVmZmVyCisgICAgICAgcGFnZXMsIDxm dW5jdGlvbj5HZW5lcmljWExvZ1N0YXJ0KCk8L2Z1bmN0aW9uPiBkb2VzIG5vdCBzdGFydCBhIGNy aXRpY2FsCisgICAgICAgc2VjdGlvbi4gIFRodXMsIHlvdSBjYW4gc2FmZWx5IGRvIG1lbW9yeSBh bGxvY2F0aW9uLCBlcnJvciB0aHJvd2luZywKKyAgICAgICBldGMuIGJldHdlZW4gPGZ1bmN0aW9u PkdlbmVyaWNYTG9nU3RhcnQoKTwvZnVuY3Rpb24+IGFuZAorICAgICAgIDxmdW5jdGlvbj5HZW5l cmljWExvZ0ZpbmlzaCgpPC9mdW5jdGlvbj4uICBUaGUgb25seSBhY3R1YWwgY3JpdGljYWwgc2Vj dGlvbiBpcworICAgICAgIHByZXNlbnQgaW5zaWRlIDxmdW5jdGlvbj5HZW5lcmljWExvZ0Zpbmlz aCgpPC9mdW5jdGlvbj4uICBUaGVyZSBpcyBubyBuZWVkIHRvCisgICAgICAgd29ycnkgYWJvdXQg Y2FsbGluZyAgPGZ1bmN0aW9uPkdlbmVyaWNYTG9nQWJvcnQoKTwvZnVuY3Rpb24+IGR1cmluZyBh biBlcnJvcgorICAgICAgIGV4aXQsIGVpdGhlci4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0 aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8ZnVuY3Rpb24+ R2VuZXJpY1hMb2dGaW5pc2goKTwvZnVuY3Rpb24+IHRha2VzIGNhcmUgb2YgbWFya2luZyBidWZm ZXJzIGRpcnR5CisgICAgICAgYW5kIHNldHRpbmcgdGhlaXIgTFNOcy4gIFlvdSBkbyBub3QgbmVl ZCB0byBkbyB0aGlzIGV4cGxpY2l0bHkuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+ CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRm9yIHVubG9nZ2VkIHJl bGF0aW9ucywgZXZlcnl0aGluZyB3b3JrcyB0aGUgc2FtZSBleGNlcHQgdGhhdCBubworICAgICAg IGFjdHVhbCBXQUwgcmVjb3JkIGlzIGVtaXR0ZWQuICBUaHVzLCB5b3UgdHlwaWNhbGx5IGRvIG5v dCBuZWVkIHRvIGRvCisgICAgICAgYW55IGV4cGxpY2l0IGNoZWNrcyBmb3IgdW5sb2dnZWQgcmVs YXRpb25zLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorCisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBnZW5lcmljIFdBTCByZWRvIGZ1bmN0aW9uIHdp bGwgYWNxdWlyZSBleGNsdXNpdmUgbG9ja3MgdG8gYnVmZmVycworICAgICAgIGluIHRoZSBzYW1l IG9yZGVyIGFzIHRoZXkgd2VyZSByZWdpc3RlcmVkLiAgQWZ0ZXIgcmVkb2luZyBhbGwgY2hhbmdl cywKKyAgICAgICB0aGUgbG9ja3Mgd2lsbCBiZSByZWxlYXNlZCBpbiB0aGUgc2FtZSBvcmRlci4K KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAg ICA8cGFyYT4KKyAgICAgICBJZiA8bGl0ZXJhbD5HRU5FUklDX1hMT0dfRlVMTF9JTUFHRTwvbGl0 ZXJhbD4gaXMgbm90IHNwZWNpZmllZCBmb3IgYQorICAgICAgIHJlZ2lzdGVyZWQgYnVmZmVyLCB0 aGUgZ2VuZXJpYyBXQUwgcmVjb3JkIGNvbnRhaW5zIGEgZGVsdGEgYmV0d2VlbgorICAgICAgIHRo ZSBvbGQgYW5kIHRoZSBuZXcgcGFnZSBpbWFnZXMuICBUaGlzIGRlbHRhIGlzIGJhc2VkIG9uIGJ5 dGUtYnktYnl0ZQorICAgICAgIGNvbXBhcmlzb24uICBUaGlzIGlzIG5vdCB2ZXJ5IGNvbXBhY3Qg Zm9yIHRoZSBjYXNlIG9mIG1vdmluZyBkYXRhCisgICAgICAgd2l0aGluIGEgcGFnZSwgYW5kIG1p Z2h0IGJlIGltcHJvdmVkIGluIHRoZSBmdXR1cmUuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlz dGl0ZW0+CisgICAgPC9pdGVtaXplZGxpc3Q+CisgICA8L3BhcmE+CisgPC9zZWN0MT4KKworIDxz ZWN0MSBpZD0iY3VzdG9tLXJtZ3IiPgorICA8dGl0bGU+Q3VzdG9tIFdBTCBSZXNvdXJjZSBNYW5h Z2VyczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGlzIHNlY3Rpb24gZXhwbGFpbnMgdGhlIGlu dGVyZmFjZSBiZXR3ZWVuIHRoZSBjb3JlCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJv ZHVjdG5hbWU+IHN5c3RlbSBhbmQgY3VzdG9tIFdBTCByZXNvdXJjZQorICAgbWFuYWdlcnMsIHdo aWNoIGVuYWJsZSBleHRlbnNpb25zIHRvIGludGVncmF0ZSBkaXJlY3RseSB3aXRoIHRoZSA8bGlu aworICAgbGlua2VuZD0id2FsIj48YWNyb255bT5XQUw8L2Fjcm9ueW0+PC9saW5rPi4KKyAgPC9w YXJhPgorICA8cGFyYT4KKyAgIEFuIGV4dGVuc2lvbiwgZXNwZWNpYWxseSBhIDxsaW5rIGxpbmtl bmQ9InRhYmxlYW0iPlRhYmxlIEFjY2VzcworICAgTWV0aG9kPC9saW5rPiBvciA8bGluayBsaW5r ZW5kPSJpbmRleGFtIj5JbmRleCBBY2Nlc3MgTWV0aG9kPC9saW5rPiwgbWF5CisgICBuZWVkIHRv IHVzZSBXQUwgZm9yIHJlY292ZXJ5LCByZXBsaWNhdGlvbiwgYW5kL29yIDxsaW5rCisgICBsaW5r ZW5kPSJsb2dpY2FsZGVjb2RpbmciPkxvZ2ljYWwgRGVjb2Rpbmc8L2xpbms+LiBDdXN0b20gcmVz b3VyY2UgbWFuYWdlcnMKKyAgIGFyZSBhIG1vcmUgZmxleGlibGUgYWx0ZXJuYXRpdmUgdG8gPGxp bmsgbGlua2VuZD0iZ2VuZXJpYy13YWwiPkdlbmVyaWMKKyAgIFdBTDwvbGluaz4gKHdoaWNoIGRv ZXMgbm90IHN1cHBvcnQgbG9naWNhbCBkZWNvZGluZyksIGJ1dCBtb3JlIGNvbXBsZXggZm9yCisg ICBhbiBleHRlbnNpb24gdG8gaW1wbGVtZW50LgorICA8L3BhcmE+CisgIDxwYXJhPgorICAgVG8g Y3JlYXRlIGEgbmV3IGN1c3RvbSBXQUwgcmVzb3VyY2UgbWFuYWdlciwgZmlyc3QgZGVmaW5lIGFu CisgICA8c3RydWN0bmFtZT5SbWdyRGF0YTwvc3RydWN0bmFtZT4gc3RydWN0dXJlIHdpdGggaW1w bGVtZW50YXRpb25zIGZvciB0aGUKKyAgIHJlc291cmNlIG1hbmFnZXIgbWV0aG9kcy4gUmVmZXIg dG8KKyAgIDxmaWxlbmFtZT5zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9SRUFETUU8L2ZpbGVu YW1lPiBhbmQKKyAgIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ19pbnRlcm5hbC5o PC9maWxlbmFtZT4gaW4gdGhlCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5h bWU+IHNvdXJjZS4KKzxwcm9ncmFtbGlzdGluZz4KKy8qCisgKiBNZXRob2QgdGFibGUgZm9yIHJl c291cmNlIG1hbmFnZXJzLgorICoKKyAqIFRoaXMgc3RydWN0IG11c3QgYmUga2VwdCBpbiBzeW5j IHdpdGggdGhlIFBHX1JNR1IgZGVmaW5pdGlvbiBpbgorICogcm1nci5jLgorICoKKyAqIHJtX2lk ZW50aWZ5IG11c3QgcmV0dXJuIGEgbmFtZSBmb3IgdGhlIHJlY29yZCBiYXNlZCBvbiB4bF9pbmZv ICh3aXRob3V0CisgKiByZWZlcmVuY2UgdG8gdGhlIHJtaWQpLiBGb3IgZXhhbXBsZSwgWExPR19C VFJFRV9WQUNVVU0gd291bGQgYmUgbmFtZWQKKyAqICJWQUNVVU0iLiBybV9kZXNjIGNhbiB0aGVu IGJlIGNhbGxlZCB0byBvYnRhaW4gYWRkaXRpb25hbCBkZXRhaWwgZm9yIHRoZQorICogcmVjb3Jk LCBpZiBhdmFpbGFibGUgKGUuZy4gdGhlIGxhc3QgYmxvY2spLgorICoKKyAqIHJtX21hc2sgdGFr ZXMgYXMgaW5wdXQgYSBwYWdlIG1vZGlmaWVkIGJ5IHRoZSByZXNvdXJjZSBtYW5hZ2VyIGFuZCBt YXNrcworICogb3V0IGJpdHMgdGhhdCBzaG91bGRuJ3QgYmUgZmxhZ2dlZCBieSB3YWxfY29uc2lz dGVuY3lfY2hlY2tpbmcuCisgKgorICogUm1nclRhYmxlW10gaXMgaW5kZXhlZCBieSBSbWdySWQg dmFsdWVzIChzZWUgcm1ncmxpc3QuaCkuIElmIHJtX25hbWUgaXMKKyAqIE5VTEwsIHRoZSBjb3Jy ZXNwb25kaW5nIFJtZ3JUYWJsZSBlbnRyeSBpcyBjb25zaWRlcmVkIGludmFsaWQuCisgKi8KK3R5 cGVkZWYgc3RydWN0IFJtZ3JEYXRhCit7CisgICAgY29uc3QgY2hhciAqcm1fbmFtZTsKKyAgICB2 b2lkICAgICAgICAoKnJtX3JlZG8pIChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CisgICAgdm9p ZCAgICAgICAgKCpybV9kZXNjKSAoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVj b3JkKTsKKyAgICBjb25zdCBjaGFyICooKnJtX2lkZW50aWZ5KSAodWludDggaW5mbyk7CisgICAg dm9pZCAgICAgICAgKCpybV9zdGFydHVwKSAodm9pZCk7CisgICAgdm9pZCAgICAgICAgKCpybV9j bGVhbnVwKSAodm9pZCk7CisgICAgdm9pZCAgICAgICAgKCpybV9tYXNrKSAoY2hhciAqcGFnZWRh dGEsIEJsb2NrTnVtYmVyIGJsa25vKTsKKyAgICB2b2lkICAgICAgICAoKnJtX2RlY29kZSkgKHN0 cnVjdCBMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKTsKK30gUm1nckRhdGE7Cis8L3By b2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSA8ZmlsZW5hbWU+ c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV9ybWdyczwvZmlsZW5hbWU+IG1vZHVsZQorICAg IGNvbnRhaW5zIGEgd29ya2luZyBleGFtcGxlLCB3aGljaCBkZW1vbnN0cmF0ZXMgdXNhZ2Ugb2Yg Y3VzdG9tIFdBTAorICAgIHJlc291cmNlIG1hbmFnZXJzLgorICAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgVGhlbiwgcmVnaXN0ZXIgeW91ciBuZXcgcmVzb3VyY2UKKyAgIG1hbmFnZXIuCisKKzxw cm9ncmFtbGlzdGluZz4KKy8qCisgKiBSZWdpc3RlciBhIG5ldyBjdXN0b20gV0FMIHJlc291cmNl IG1hbmFnZXIuCisgKgorICogUmVzb3VyY2UgbWFuYWdlciBJRHMgbXVzdCBiZSBnbG9iYWxseSB1 bmlxdWUgYWNyb3NzIGFsbCBleHRlbnNpb25zLiBSZWZlcgorICogdG8gaHR0cHM6Ly93aWtpLnBv c3RncmVzcWwub3JnL3dpa2kvQ3VzdG9tV0FMUmVzb3VyY2VNYW5hZ2VycyB0byByZXNlcnZlIGEK KyAqIHVuaXF1ZSBSbWdySWQgZm9yIHlvdXIgZXh0ZW5zaW9uLCB0byBhdm9pZCBjb25mbGljdHMg d2l0aCBvdGhlciBleHRlbnNpb24KKyAqIGRldmVsb3BlcnMuIER1cmluZyBkZXZlbG9wbWVudCwg dXNlIFJNX0VYUEVSSU1FTlRBTF9JRCB0byBhdm9pZCBuZWVkbGVzc2x5CisgKiByZXNlcnZpbmcg YSBuZXcgSUQuCisgKi8KK2V4dGVybiB2b2lkIFJlZ2lzdGVyQ3VzdG9tUm1ncihSbWdySWQgcm1p ZCwgY29uc3QgUm1nckRhdGEgKnJtZ3IpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDxmdW5jdGlv bj5SZWdpc3RlckN1c3RvbVJtZ3I8L2Z1bmN0aW9uPiBtdXN0IGJlIGNhbGxlZCBmcm9tIHRoZQor ICAgZXh0ZW5zaW9uIG1vZHVsZSdzIDxsaW5rIGxpbmtlbmQ9InhmdW5jLWMtZHlubG9hZCI+X1BH X2luaXQ8L2xpbms+IGZ1bmN0aW9uLgorICAgV2hpbGUgZGV2ZWxvcGluZyBhIG5ldyBleHRlbnNp b24sIHVzZSA8bGl0ZXJhbD5STV9FWFBFUklNRU5UQUxfSUQ8L2xpdGVyYWw+CisgICBmb3IgPHBh cmFtZXRlcj5ybWlkPC9wYXJhbWV0ZXI+LiBXaGVuIHlvdSBhcmUgcmVhZHkgdG8gcmVsZWFzZSB0 aGUgZXh0ZW5zaW9uCisgICB0byB1c2VycywgcmVzZXJ2ZSBhIG5ldyByZXNvdXJjZSBtYW5hZ2Vy IElEIGF0IHRoZSA8dWxpbmsKKyAgIHVybD0iaHR0cHM6Ly93aWtpLnBvc3RncmVzcWwub3JnL3dp a2kvQ3VzdG9tV0FMUmVzb3VyY2VNYW5hZ2VycyI+Q3VzdG9tIFdBTAorICAgUmVzb3VyY2UgTWFu YWdlcjwvdWxpbms+IHBhZ2UuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFBsYWNlIHRoZSBl eHRlbnNpb24gbW9kdWxlIGltcGxlbWVudGluZyB0aGUgY3VzdG9tIHJlc291cmNlIG1hbmFnZXIg aW4gPHhyZWYKKyAgIGxpbmtlbmQ9Imd1Yy1zaGFyZWQtcHJlbG9hZC1saWJyYXJpZXMiLz4gc28g dGhhdCBpdCB3aWxsIGJlIGxvYWRlZCBlYXJseQorICAgZHVyaW5nIDxwcm9kdWN0bmFtZT5Qb3N0 Z3JlU1FMPC9wcm9kdWN0bmFtZT4gc3RhcnR1cC4KKyAgPC9wYXJhPgorICA8bm90ZT4KKyAgICA8 cGFyYT4KKyAgICAgVGhlIGV4dGVuc2lvbiBtdXN0IHJlbWFpbiBpbiA8dmFybmFtZT5zaGFyZWRf cHJlbG9hZF9saWJyYXJpZXM8L3Zhcm5hbWU+CisgICAgIGFzIGxvbmcgYXMgYW55IGN1c3RvbSBX QUwgcmVjb3JkcyBtYXkgZXhpc3QgaW4gdGhlIHN5c3RlbS4gT3RoZXJ3aXNlCisgICAgIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gd2lsbCBub3QgYmUgYWJsZSB0byBhcHBs eSBvciBkZWNvZGUKKyAgICAgdGhlIGN1c3RvbSBXQUwgcmVjb3Jkcywgd2hpY2ggbWF5IHByZXZl bnQgdGhlIHNlcnZlciBmcm9tIHN0YXJ0aW5nLgorICAgIDwvcGFyYT4KKyAgPC9ub3RlPgorIDwv c2VjdDE+CisKKzwvY2hhcHRlcj4KLS0gCjIuMzkuMyAoQXBwbGUgR2l0LTE0NSkKCg== --000000000000d8f3db06141a4941 Content-Type: application/octet-stream; name="v1-0003-docs-Merge-separate-chapters-on-built-in-index-AM.patch" Content-Disposition: attachment; filename="v1-0003-docs-Merge-separate-chapters-on-built-in-index-AM.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lu017sby2 RnJvbSAzMjJjZjAzZGJiN2FhZjYxMTA5Zjg5YjQ0ZTAzZTZlOWE4ZDZiM2Y4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgSGFhcyA8cmhhYXNAcG9zdGdyZXNxbC5vcmc+CkRh dGU6IFdlZCwgMjAgTWFyIDIwMjQgMTE6NTE6NTMgLTA0MDAKU3ViamVjdDogW1BBVENIIHYxIDMv NF0gZG9jczogTWVyZ2Ugc2VwYXJhdGUgY2hhcHRlcnMgb24gYnVpbHQtaW4gaW5kZXggQU1zCiBp bnRvIG9uZS4KClRoZSBkb2N1bWV0YXRpb24gaW5kZXggaXMgZ2V0dGluZyB2ZXJ5IGxvbmcsIHdo aWNoIG1ha2VzIGl0IGhhcmQKdG8gZmluZCB0aGluZ3MuIFNpbmNlIHRoZXNlIGNoYXB0ZXJzIGFy ZSBhbGwgdmVyeSBzaW1pbGFyIGluIHN0cnVjdHVyZQphbmQgY29udGVudCwgbWVyZ2luZyB0aGVt IGlzIGEgbmF0dXJhbCB3YXkgb2YgcmVkdWNpbmcgdGhlIHNpemUgb2YKdGhlIHRvcGxldmVsIGlu ZGV4LgotLS0KIGRvYy9zcmMvc2dtbC9icmluLnNnbWwgICAgICAgfCAxMzQ0IC0tLS0tLS0tCiBk b2Mvc3JjL3NnbWwvYnRyZWUuc2dtbCAgICAgIHwgIDkxNCAtLS0tLS0KIGRvYy9zcmMvc2dtbC9m aWxlbGlzdC5zZ21sICAgfCAgICA3ICstCiBkb2Mvc3JjL3NnbWwvZ2luLnNnbWwgICAgICAgIHwg IDcxNCAtLS0tLQogZG9jL3NyYy9zZ21sL2dpc3Quc2dtbCAgICAgICB8IDEzODcgLS0tLS0tLS0t CiBkb2Mvc3JjL3NnbWwvaGFzaC5zZ21sICAgICAgIHwgIDE2MiAtCiBkb2Mvc3JjL3NnbWwvaW5k ZXh0eXBlcy5zZ21sIHwgNTU5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBk b2Mvc3JjL3NnbWwvcG9zdGdyZXMuc2dtbCAgIHwgICAgNyArLQogZG9jL3NyYy9zZ21sL3NwZ2lz dC5zZ21sICAgICB8IDEwNzYgLS0tLS0tLQogOSBmaWxlcyBjaGFuZ2VkLCA1NTk5IGluc2VydGlv bnMoKyksIDU2MDkgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21s L2JyaW4uc2dtbAogZGVsZXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9idHJlZS5zZ21sCiBk ZWxldGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL2dpbi5zZ21sCiBkZWxldGUgbW9kZSAxMDA2 NDQgZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAogZGVsZXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dt bC9oYXNoLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvaW5kZXh0eXBlcy5z Z21sCiBkZWxldGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3NwZ2lzdC5zZ21sCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2JyaW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9icmluLnNnbWwKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4OThjYzQ3MjAuLjAwMDAwMDAwMDAKLS0tIGEv ZG9jL3NyYy9zZ21sL2JyaW4uc2dtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzNDQgKzAsMCBAQAot PCEtLSBkb2Mvc3JjL3NnbWwvYnJpbi5zZ21sIC0tPgotCi08Y2hhcHRlciBpZD0iYnJpbiI+Ci08 dGl0bGU+QlJJTiBJbmRleGVzPC90aXRsZT4KLQotICAgPGluZGV4dGVybT4KLSAgICA8cHJpbWFy eT5pbmRleDwvcHJpbWFyeT4KLSAgICA8c2Vjb25kYXJ5PkJSSU48L3NlY29uZGFyeT4KLSAgIDwv aW5kZXh0ZXJtPgotCi08c2VjdDEgaWQ9ImJyaW4taW50cm8iPgotIDx0aXRsZT5JbnRyb2R1Y3Rp b248L3RpdGxlPgotCi0gPHBhcmE+Ci0gIDxhY3JvbnltPkJSSU48L2Fjcm9ueW0+IHN0YW5kcyBm b3IgQmxvY2sgUmFuZ2UgSW5kZXguCi0gIDxhY3JvbnltPkJSSU48L2Fjcm9ueW0+IGlzIGRlc2ln bmVkIGZvciBoYW5kbGluZyB2ZXJ5IGxhcmdlIHRhYmxlcwotICBpbiB3aGljaCBjZXJ0YWluIGNv bHVtbnMgaGF2ZSBzb21lIG5hdHVyYWwgY29ycmVsYXRpb24gd2l0aCB0aGVpcgotICBwaHlzaWNh bCBsb2NhdGlvbiB3aXRoaW4gdGhlIHRhYmxlLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICA8YWNy b255bT5CUklOPC9hY3JvbnltPiB3b3JrcyBpbiB0ZXJtcyBvZiA8Zmlyc3R0ZXJtPmJsb2NrIHJh bmdlczwvZmlyc3R0ZXJtPgotICAob3IgPHF1b3RlPnBhZ2UgcmFuZ2VzPC9xdW90ZT4pLgotICBB IGJsb2NrIHJhbmdlIGlzIGEgZ3JvdXAgb2YgcGFnZXMgdGhhdCBhcmUgcGh5c2ljYWxseQotICBh ZGphY2VudCBpbiB0aGUgdGFibGU7IGZvciBlYWNoIGJsb2NrIHJhbmdlLCBzb21lIHN1bW1hcnkg aW5mbyBpcyBzdG9yZWQKLSAgYnkgdGhlIGluZGV4LgotICBGb3IgZXhhbXBsZSwgYSB0YWJsZSBz dG9yaW5nIGEgc3RvcmUncyBzYWxlIG9yZGVycyBtaWdodCBoYXZlCi0gIGEgZGF0ZSBjb2x1bW4g b24gd2hpY2ggZWFjaCBvcmRlciB3YXMgcGxhY2VkLCBhbmQgbW9zdCBvZiB0aGUgdGltZQotICB0 aGUgZW50cmllcyBmb3IgZWFybGllciBvcmRlcnMgd2lsbCBhcHBlYXIgZWFybGllciBpbiB0aGUg dGFibGUgYXMgd2VsbDsKLSAgYSB0YWJsZSBzdG9yaW5nIGEgWklQIGNvZGUgY29sdW1uIG1pZ2h0 IGhhdmUgYWxsIGNvZGVzIGZvciBhIGNpdHkKLSAgZ3JvdXBlZCB0b2dldGhlciBuYXR1cmFsbHku Ci0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gIDxhY3JvbnltPkJSSU48L2Fjcm9ueW0+IGluZGV4ZXMg Y2FuIHNhdGlzZnkgcXVlcmllcyB2aWEgcmVndWxhciBiaXRtYXAKLSAgaW5kZXggc2NhbnMsIGFu ZCB3aWxsIHJldHVybiBhbGwgdHVwbGVzIGluIGFsbCBwYWdlcyB3aXRoaW4gZWFjaCByYW5nZSBp ZgotICB0aGUgc3VtbWFyeSBpbmZvIHN0b3JlZCBieSB0aGUgaW5kZXggaXMgPGZpcnN0dGVybT5j b25zaXN0ZW50PC9maXJzdHRlcm0+IHdpdGggdGhlCi0gIHF1ZXJ5IGNvbmRpdGlvbnMuCi0gIFRo ZSBxdWVyeSBleGVjdXRvciBpcyBpbiBjaGFyZ2Ugb2YgcmVjaGVja2luZyB0aGVzZSB0dXBsZXMg YW5kIGRpc2NhcmRpbmcKLSAgdGhvc2UgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHF1ZXJ5IGNvbmRp dGlvbnMgJm1kYXNoOyBpbiBvdGhlciB3b3JkcywgdGhlc2UKLSAgaW5kZXhlcyBhcmUgbG9zc3ku Ci0gIEJlY2F1c2UgYSA8YWNyb255bT5CUklOPC9hY3JvbnltPiBpbmRleCBpcyB2ZXJ5IHNtYWxs LCBzY2FubmluZyB0aGUgaW5kZXgKLSAgYWRkcyBsaXR0bGUgb3ZlcmhlYWQgY29tcGFyZWQgdG8g YSBzZXF1ZW50aWFsIHNjYW4sIGJ1dCBtYXkgYXZvaWQgc2Nhbm5pbmcKLSAgbGFyZ2UgcGFydHMg b2YgdGhlIHRhYmxlIHRoYXQgYXJlIGtub3duIG5vdCB0byBjb250YWluIG1hdGNoaW5nIHR1cGxl cy4KLSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgVGhlIHNwZWNpZmljIGRhdGEgdGhhdCBhIDxhY3Jv bnltPkJSSU48L2Fjcm9ueW0+IGluZGV4IHdpbGwgc3RvcmUsCi0gIGFzIHdlbGwgYXMgdGhlIHNw ZWNpZmljIHF1ZXJpZXMgdGhhdCB0aGUgaW5kZXggd2lsbCBiZSBhYmxlIHRvIHNhdGlzZnksCi0g IGRlcGVuZCBvbiB0aGUgb3BlcmF0b3IgY2xhc3Mgc2VsZWN0ZWQgZm9yIGVhY2ggY29sdW1uIG9m IHRoZSBpbmRleC4KLSAgRGF0YSB0eXBlcyBoYXZpbmcgYSBsaW5lYXIgc29ydCBvcmRlciBjYW4g aGF2ZSBvcGVyYXRvciBjbGFzc2VzIHRoYXQKLSAgc3RvcmUgdGhlIG1pbmltdW0gYW5kIG1heGlt dW0gdmFsdWUgd2l0aGluIGVhY2ggYmxvY2sgcmFuZ2UsIGZvciBpbnN0YW5jZTsKLSAgZ2VvbWV0 cmljYWwgdHlwZXMgbWlnaHQgc3RvcmUgdGhlIGJvdW5kaW5nIGJveCBmb3IgYWxsIHRoZSBvYmpl Y3RzCi0gIGluIHRoZSBibG9jayByYW5nZS4KLSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgVGhlIHNp emUgb2YgdGhlIGJsb2NrIHJhbmdlIGlzIGRldGVybWluZWQgYXQgaW5kZXggY3JlYXRpb24gdGlt ZSBieQotICB0aGUgPGxpdGVyYWw+cGFnZXNfcGVyX3JhbmdlPC9saXRlcmFsPiBzdG9yYWdlIHBh cmFtZXRlci4gIFRoZSBudW1iZXIgb2YgaW5kZXgKLSAgZW50cmllcyB3aWxsIGJlIGVxdWFsIHRv IHRoZSBzaXplIG9mIHRoZSByZWxhdGlvbiBpbiBwYWdlcyBkaXZpZGVkIGJ5Ci0gIHRoZSBzZWxl Y3RlZCB2YWx1ZSBmb3IgPGxpdGVyYWw+cGFnZXNfcGVyX3JhbmdlPC9saXRlcmFsPi4gIFRoZXJl Zm9yZSwgdGhlIHNtYWxsZXIKLSAgdGhlIG51bWJlciwgdGhlIGxhcmdlciB0aGUgaW5kZXggYmVj b21lcyAoYmVjYXVzZSBvZiB0aGUgbmVlZCB0bwotICBzdG9yZSBtb3JlIGluZGV4IGVudHJpZXMp LCBidXQgYXQgdGhlIHNhbWUgdGltZSB0aGUgc3VtbWFyeSBkYXRhIHN0b3JlZCBjYW4KLSAgYmUg bW9yZSBwcmVjaXNlIGFuZCBtb3JlIGRhdGEgYmxvY2tzIGNhbiBiZSBza2lwcGVkIGR1cmluZyBh biBpbmRleCBzY2FuLgotIDwvcGFyYT4KLQotIDxzZWN0MiBpZD0iYnJpbi1vcGVyYXRpb24iPgot ICA8dGl0bGU+SW5kZXggTWFpbnRlbmFuY2U8L3RpdGxlPgotCi0gIDxwYXJhPgotICAgQXQgdGhl IHRpbWUgb2YgY3JlYXRpb24sIGFsbCBleGlzdGluZyBoZWFwIHBhZ2VzIGFyZSBzY2FubmVkIGFu ZCBhCi0gICBzdW1tYXJ5IGluZGV4IHR1cGxlIGlzIGNyZWF0ZWQgZm9yIGVhY2ggcmFuZ2UsIGlu Y2x1ZGluZyB0aGUKLSAgIHBvc3NpYmx5LWluY29tcGxldGUgcmFuZ2UgYXQgdGhlIGVuZC4KLSAg IEFzIG5ldyBwYWdlcyBhcmUgZmlsbGVkIHdpdGggZGF0YSwgcGFnZSByYW5nZXMgdGhhdCBhcmUg YWxyZWFkeQotICAgc3VtbWFyaXplZCB3aWxsIGNhdXNlIHRoZSBzdW1tYXJ5IGluZm9ybWF0aW9u IHRvIGJlIHVwZGF0ZWQgd2l0aCBkYXRhCi0gICBmcm9tIHRoZSBuZXcgdHVwbGVzLgotICAgV2hl biBhIG5ldyBwYWdlIGlzIGNyZWF0ZWQgdGhhdCBkb2VzIG5vdCBmYWxsIHdpdGhpbiB0aGUgbGFz dAotICAgc3VtbWFyaXplZCByYW5nZSwgdGhlIHJhbmdlIHRoYXQgdGhlIG5ldyBwYWdlIGJlbG9u Z3MgdG8KLSAgIGRvZXMgbm90IGF1dG9tYXRpY2FsbHkgYWNxdWlyZSBhIHN1bW1hcnkgdHVwbGU7 Ci0gICB0aG9zZSB0dXBsZXMgcmVtYWluIHVuc3VtbWFyaXplZCB1bnRpbCBhIHN1bW1hcml6YXRp b24gcnVuIGlzCi0gICBpbnZva2VkIGxhdGVyLCBjcmVhdGluZyB0aGUgaW5pdGlhbCBzdW1tYXJ5 IGZvciB0aGF0IHJhbmdlLgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBUaGVyZSBhcmUgc2V2 ZXJhbCB3YXlzIHRvIHRyaWdnZXIgdGhlIGluaXRpYWwgc3VtbWFyaXphdGlvbiBvZiBhIHBhZ2Ug cmFuZ2UuCi0gICBJZiB0aGUgdGFibGUgaXMgdmFjdXVtZWQsIGVpdGhlciBtYW51YWxseSBvciBi eQotICAgPGxpbmsgbGlua2VuZD0iYXV0b3ZhY3V1bSI+YXV0b3ZhY3V1bTwvbGluaz4sIGFsbCBl eGlzdGluZyB1bnN1bW1hcml6ZWQKLSAgIHBhZ2UgcmFuZ2VzIGFyZSBzdW1tYXJpemVkLgotICAg QWxzbywgaWYgdGhlIGluZGV4J3MKLSAgIDx4cmVmIGxpbmtlbmQ9ImluZGV4LXJlbG9wdGlvbi1h dXRvc3VtbWFyaXplIi8+IHBhcmFtZXRlciBpcyBlbmFibGVkLAotICAgd2hpY2ggaXQgaXNuJ3Qg YnkgZGVmYXVsdCwKLSAgIHdoZW5ldmVyIGF1dG92YWN1dW0gcnVucyBpbiB0aGF0IGRhdGFiYXNl LCBzdW1tYXJpemF0aW9uIHdpbGwgb2NjdXIgZm9yIGFsbAotICAgdW5zdW1tYXJpemVkIHBhZ2Ug cmFuZ2VzIHRoYXQgaGF2ZSBiZWVuIGZpbGxlZCwKLSAgIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0 aGUgdGFibGUgaXRzZWxmIGlzIHByb2Nlc3NlZCBieSBhdXRvdmFjdXVtOyBzZWUgYmVsb3cuCi0g IDwvcGFyYT4KLQotICA8cGFyYT4KLSAgIExhc3RseSwgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMg Y2FuIGJlIHVzZWQgKHdoaWxlIHRoZXNlIGZ1bmN0aW9ucyBydW4sCi0gICA8eHJlZiBsaW5rZW5k PSJndWMtc2VhcmNoLXBhdGgiLz4gaXMgdGVtcG9yYXJpbHkgY2hhbmdlZCB0bwotICAgPGxpdGVy YWw+cGdfY2F0YWxvZywgcGdfdGVtcDwvbGl0ZXJhbD4pOgotICAgPHNpbXBsZWxpc3Q+Ci0gICAg PG1lbWJlcj4KLSAgICAgPGZ1bmN0aW9uPmJyaW5fc3VtbWFyaXplX25ld192YWx1ZXMocmVnY2xh c3MpPC9mdW5jdGlvbj4KLSAgICAgd2hpY2ggc3VtbWFyaXplcyBhbGwgdW5zdW1tYXJpemVkIHJh bmdlczsKLSAgICA8L21lbWJlcj4KLSAgICA8bWVtYmVyPgotICAgICA8ZnVuY3Rpb24+YnJpbl9z dW1tYXJpemVfcmFuZ2UocmVnY2xhc3MsIGJpZ2ludCk8L2Z1bmN0aW9uPgotICAgICB3aGljaCBz dW1tYXJpemVzIG9ubHkgdGhlIHJhbmdlIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHBhZ2UsCi0gICAg IGlmIGl0IGlzIHVuc3VtbWFyaXplZC4KLSAgICA8L21lbWJlcj4KLSAgIDwvc2ltcGxlbGlzdD4K LSAgPC9wYXJhPgotCi0gIDxwYXJhPgotICAgV2hlbiBhdXRvc3VtbWFyaXphdGlvbiBpcyBlbmFi bGVkLCBhIHJlcXVlc3QgaXMgc2VudCB0bwotICAgPGxpdGVyYWw+YXV0b3ZhY3V1bTwvbGl0ZXJh bD4gdG8gZXhlY3V0ZSBhIHRhcmdldGVkIHN1bW1hcml6YXRpb24KLSAgIGZvciBhIGJsb2NrIHJh bmdlIHdoZW4gYW4gaW5zZXJ0aW9uIGlzIGRldGVjdGVkIGZvciB0aGUgZmlyc3QgaXRlbQotICAg b2YgdGhlIGZpcnN0IHBhZ2Ugb2YgdGhlIG5leHQgYmxvY2sgcmFuZ2UsCi0gICB0byBiZSBmdWxm aWxsZWQgdGhlIG5leHQgdGltZSBhbiBhdXRvdmFjdXVtCi0gICB3b3JrZXIgZmluaXNoZXMgcnVu bmluZyBpbiB0aGUKLSAgIHNhbWUgZGF0YWJhc2UuICBJZiB0aGUgcmVxdWVzdCBxdWV1ZSBpcyBm dWxsLCB0aGUgcmVxdWVzdCBpcyBub3QgcmVjb3JkZWQKLSAgIGFuZCBhIG1lc3NhZ2UgaXMgc2Vu dCB0byB0aGUgc2VydmVyIGxvZzoKLTxzY3JlZW4+Ci1MT0c6ICByZXF1ZXN0IGZvciBCUklOIHJh bmdlIHN1bW1hcml6YXRpb24gZm9yIGluZGV4ICJicmluX3dpX2lkeCIgcGFnZSAxMjggd2FzIG5v dCByZWNvcmRlZAotPC9zY3JlZW4+Ci0gICBXaGVuIHRoaXMgaGFwcGVucywgdGhlIHJhbmdlIHdp bGwgcmVtYWluIHVuc3VtbWFyaXplZCB1bnRpbCB0aGUgbmV4dAotICAgcmVndWxhciB2YWN1dW0g cnVuIG9uIHRoZSB0YWJsZSwgb3Igb25lIG9mIHRoZSBmdW5jdGlvbnMgbWVudGlvbmVkIGFib3Zl Ci0gICBhcmUgaW52b2tlZC4KLSAgPC9wYXJhPgotCi0gIDxwYXJhPgotICAgQ29udmVyc2VseSwg YSByYW5nZSBjYW4gYmUgZGUtc3VtbWFyaXplZCB1c2luZyB0aGUKLSAgIDxmdW5jdGlvbj5icmlu X2Rlc3VtbWFyaXplX3JhbmdlKHJlZ2NsYXNzLCBiaWdpbnQpPC9mdW5jdGlvbj4gZnVuY3Rpb24s Ci0gICB3aGljaCBpcyB1c2VmdWwgd2hlbiB0aGUgaW5kZXggdHVwbGUgaXMgbm8gbG9uZ2VyIGEg dmVyeSBnb29kCi0gICByZXByZXNlbnRhdGlvbiBiZWNhdXNlIHRoZSBleGlzdGluZyB2YWx1ZXMg aGF2ZSBjaGFuZ2VkLgotICAgU2VlIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1hZG1pbi1pbmRl eCIvPiBmb3IgZGV0YWlscy4KLSAgPC9wYXJhPgotCi0gPC9zZWN0Mj4KLTwvc2VjdDE+Ci0KLTxz ZWN0MSBpZD0iYnJpbi1idWlsdGluLW9wY2xhc3NlcyI+Ci0gPHRpdGxlPkJ1aWx0LWluIE9wZXJh dG9yIENsYXNzZXM8L3RpdGxlPgotCi0gPHBhcmE+Ci0gIFRoZSBjb3JlIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZGlzdHJpYnV0aW9uCi0gIGluY2x1ZGVzIHRoZSA8YWNy b255bT5CUklOPC9hY3JvbnltPiBvcGVyYXRvciBjbGFzc2VzIHNob3duIGluCi0gIDx4cmVmIGxp bmtlbmQ9ImJyaW4tYnVpbHRpbi1vcGNsYXNzZXMtdGFibGUiLz4uCi0gPC9wYXJhPgotCi0gPHBh cmE+Ci0gIFRoZSA8Zmlyc3R0ZXJtPm1pbm1heDwvZmlyc3R0ZXJtPgotICBvcGVyYXRvciBjbGFz c2VzIHN0b3JlIHRoZSBtaW5pbXVtIGFuZCB0aGUgbWF4aW11bSB2YWx1ZXMgYXBwZWFyaW5nCi0g IGluIHRoZSBpbmRleGVkIGNvbHVtbiB3aXRoaW4gdGhlIHJhbmdlLiAgVGhlIDxmaXJzdHRlcm0+ aW5jbHVzaW9uPC9maXJzdHRlcm0+Ci0gIG9wZXJhdG9yIGNsYXNzZXMgc3RvcmUgYSB2YWx1ZSB3 aGljaCBpbmNsdWRlcyB0aGUgdmFsdWVzIGluIHRoZSBpbmRleGVkCi0gIGNvbHVtbiB3aXRoaW4g dGhlIHJhbmdlLiAgVGhlIDxmaXJzdHRlcm0+Ymxvb208L2ZpcnN0dGVybT4gb3BlcmF0b3IKLSAg Y2xhc3NlcyBidWlsZCBhIEJsb29tIGZpbHRlciBmb3IgYWxsIHZhbHVlcyBpbiB0aGUgcmFuZ2Uu ICBUaGUKLSAgPGZpcnN0dGVybT5taW5tYXgtbXVsdGk8L2ZpcnN0dGVybT4gb3BlcmF0b3IgY2xh c3NlcyBzdG9yZSBtdWx0aXBsZQotICBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlcywgcmVwcmVz ZW50aW5nIHZhbHVlcyBhcHBlYXJpbmcgaW4gdGhlIGluZGV4ZWQKLSAgY29sdW1uIHdpdGhpbiB0 aGUgcmFuZ2UuCi0gPC9wYXJhPgotCi0gPHRhYmxlIGlkPSJicmluLWJ1aWx0aW4tb3BjbGFzc2Vz LXRhYmxlIj4KLSAgPHRpdGxlPkJ1aWx0LWluIDxhY3JvbnltPkJSSU48L2Fjcm9ueW0+IE9wZXJh dG9yIENsYXNzZXM8L3RpdGxlPgotICA8dGdyb3VwIGNvbHM9IjIiPgotICAgPHRoZWFkPgotICAg IDxyb3c+Ci0gICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KLSAgICAgPGVudHJ5PkluZGV4YWJsZSBP cGVyYXRvcnM8L2VudHJ5PgotICAgIDwvcm93PgotICAgPC90aGVhZD4KLSAgIDx0Ym9keT4KLSAg ICA8cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJh bD5iaXRfbWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+ PSAoYml0LGJpdCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD4mbHQ7IChiaXQsYml0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKGJpdCxiaXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGJpdCxiaXQpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGJpdCxiaXQpPC9saXRl cmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICA8cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRk bGUiIG1vcmVyb3dzPSIxMiI+PGxpdGVyYWw+Ym94X2luY2x1c2lvbl9vcHM8L2xpdGVyYWw+PC9l bnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChib3gscG9pbnQpPC9saXRlcmFsPjwv ZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDsgKGJv eCxib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+ JmFtcDsmbHQ7IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZhbXA7Jmd0OyAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K LSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0OyAoYm94LGJveCk8L2xpdGVyYWw+PC9l bnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAoYm94LGJveCk8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5AJmd0OyAoYm94 LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5+ PSAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD4mYW1wOyZhbXA7IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7fCAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZsdDt8IChib3gsYm94KTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPnwmYW1wOyZndDsg KGJveCxib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+fCZndDsmZ3Q7IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgPHJv dz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD5icGNoYXJfYmxvb21fb3Bz PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChjaGFyYWN0ZXIsY2hh cmFjdGVyKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotCi0gICAgPHJvdz4KLSAgICAg PGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+YnBjaGFyX21pbm1h eF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGNoYXJhY3Rl cixjaGFyYWN0ZXIpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+Jmx0OyAoY2hhcmFjdGVyLGNoYXJhY3Rlcik8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoY2hhcmFjdGVyLGNoYXJhY3Rl cik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7 IChjaGFyYWN0ZXIsY2hhcmFjdGVyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPiZndDs9IChjaGFyYWN0ZXIsY2hhcmFjdGVyKTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0 ZXJhbD5ieXRlYV9ibG9vbV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRl cmFsPj0gKGJ5dGVhLGJ5dGVhKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotCi0gICAg PHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+ Ynl0ZWFfbWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+ PSAoYnl0ZWEsYnl0ZWEpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+Jmx0OyAoYnl0ZWEsYnl0ZWEpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGJ5dGVhLGJ5dGVhKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKGJ5dGVhLGJ5dGVh KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9 IChieXRlYSxieXRlYSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAg IDxlbnRyeSB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+Y2hhcl9ibG9vbV9vcHM8L2xpdGVyYWw+ PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKCJjaGFyIiwiY2hhciIpPC9saXRlcmFs PjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0KLSAgICA8cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJt aWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5jaGFyX21pbm1heF9vcHM8L2xpdGVyYWw+PC9l bnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKCJjaGFyIiwiY2hhciIpPC9saXRlcmFsPjwv ZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAoImNoYXIi LCJjaGFyIik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7PSAoImNoYXIiLCJjaGFyIik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICgiY2hhciIsImNoYXIiKTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9ICgiY2hhciIsImNoYXIiKTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlk ZGxlIj48bGl0ZXJhbD5kYXRlX2Jsb29tX29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50 cnk+PGxpdGVyYWw+PSAoZGF0ZSxkYXRlKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93Pgot Ci0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxp dGVyYWw+ZGF0ZV9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0 ZXJhbD49IChkYXRlLGRhdGUpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAoZGF0ZSxkYXRlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9IChkYXRlLGRhdGUpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoZGF0ZSxkYXRlKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChk YXRlLGRhdGUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICA8cm93PgotICAgICA8ZW50 cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5kYXRlX21pbm1heF9tdWx0 aV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGRhdGUsZGF0 ZSk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7IChkYXRlLGRhdGUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+Jmx0Oz0gKGRhdGUsZGF0ZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChkYXRlLGRhdGUpPC9saXRlcmFsPjwvZW50cnk+ PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGRhdGUsZGF0ZSk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRs ZSI+PGxpdGVyYWw+ZmxvYXQ0X2Jsb29tX29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50 cnk+PGxpdGVyYWw+PSAoZmxvYXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jv dz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQi PjxsaXRlcmFsPmZsb2F0NF9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRy eT48bGl0ZXJhbD49IChmbG9hdDQsZmxvYXQ0KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93 PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGZsb2F0NCxmbG9hdDQpPC9saXRlcmFs PjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoZmxvYXQ0LGZs b2F0NCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m bHQ7PSAoZmxvYXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mZ3Q7PSAoZmxvYXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQi PjxsaXRlcmFsPmZsb2F0NF9taW5tYXhfbXVsdGlfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAg IDxlbnRyeT48bGl0ZXJhbD49IChmbG9hdDQsZmxvYXQ0KTwvbGl0ZXJhbD48L2VudHJ5PgotICAg IDwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGZsb2F0NCxmbG9hdDQpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoZmxv YXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD4mbHQ7PSAoZmxvYXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAoZmxvYXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSI+PGxpdGVy YWw+ZmxvYXQ4X2Jsb29tX29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVy YWw+PSAoZmxvYXQ4LGZsb2F0OCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLQotICAg IDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFs PmZsb2F0OF9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJh bD49IChmbG9hdDgsZmxvYXQ4KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGZsb2F0OCxmbG9hdDgpPC9saXRlcmFsPjwvZW50cnk+ PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGZsb2F0OCxmbG9hdDgpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoZmxv YXQ4LGZsb2F0OCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD4mZ3Q7PSAoZmxvYXQ4LGZsb2F0OCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAg IDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFs PmZsb2F0OF9taW5tYXhfbXVsdGlfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48 bGl0ZXJhbD49IChmbG9hdDgsZmxvYXQ4KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93Pgot ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGZsb2F0OCxmbG9hdDgpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGZsb2F0OCxmbG9h dDgpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0 OyAoZmxvYXQ4LGZsb2F0OCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD4mZ3Q7PSAoZmxvYXQ4LGZsb2F0OCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K LQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjUiPjxs aXRlcmFsPmluZXRfaW5jbHVzaW9uX29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+ PGxpdGVyYWw+Jmx0OyZsdDsgKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jv dz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmx0Oz0gKGluZXQsaW5ldCk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0OyAoaW5l dCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs PiZndDsmZ3Q7PSAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPj0gKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZhbXA7IChpbmV0LGluZXQpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0KLSAgICA8cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxs aXRlcmFsPmluZXRfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0 ZXJhbD49IChpbmV0LGluZXQpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0KLSAgICA8 cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5p bmV0X21pbm1heF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0g KGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD4mbHQ7IChpbmV0LGluZXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChpbmV0LGluZXQpPC9saXRlcmFs PjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGluZXQsaW5l dCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxp Z249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPmluZXRfbWlubWF4X211bHRpX29wczwv bGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoaW5ldCxpbmV0KTwvbGl0 ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsg KGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD4mbHQ7PSAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPiZndDsgKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K LSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0 ZXJhbD5pbnQyX2Jsb29tX29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVy YWw+PSAoaW50MixpbnQyKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotCi0gICAgPHJv dz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+aW50 Ml9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChp bnQyLGludDIpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+ PGxpdGVyYWw+Jmx0OyAoaW50MixpbnQyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKGludDIsaW50Mik8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoaW50MixpbnQyKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChpbnQyLGludDIp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICA8cm93PgotICAgICA8ZW50cnkgdmFsaWdu PSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5pbnQyX21pbm1heF9tdWx0aV9vcHM8L2xp dGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGludDIsaW50Mik8L2xpdGVy YWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7IChp bnQyLGludDIpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmd0OyAoaW50MixpbnQyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZsdDs9IChpbnQyLGludDIpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0g ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGludDIsaW50Mik8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSI+PGxpdGVy YWw+aW50NF9ibG9vbV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFs Pj0gKGludDQsaW50NCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLQotICAgIDxyb3c+ Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPmludDRf bWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoaW50 NCxpbnQ0KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZsdDsgKGludDQsaW50NCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChpbnQ0LGludDQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGludDQsaW50NCk8L2xpdGVyYWw+PC9l bnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAoaW50NCxpbnQ0KTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0i bWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+aW50NF9taW5tYXhfbXVsdGlfb3BzPC9saXRl cmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChpbnQ0LGludDQpPC9saXRlcmFs PjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAoaW50 NCxpbnQ0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs PiZndDsgKGludDQsaW50NCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD4mbHQ7PSAoaW50NCxpbnQ0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChpbnQ0LGludDQpPC9saXRlcmFsPjwvZW50cnk+ PC9yb3c+Ci0KLSAgICA8cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFs PmludDhfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49 IChiaWdpbnQsYmlnaW50KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotCi0gICAgPHJv dz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+aW50 OF9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChi aWdpbnQsYmlnaW50KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZsdDsgKGJpZ2ludCxiaWdpbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoYmlnaW50LGJpZ2ludCk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoYmlnaW50LGJp Z2ludCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m Z3Q7PSAoYmlnaW50LGJpZ2ludCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+ Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPmludDhf bWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+ PSAoYmlnaW50LGJpZ2ludCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mbHQ7IChiaWdpbnQsYmlnaW50KTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKGJpZ2ludCxiaWdpbnQpPC9saXRl cmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGJpZ2lu dCxiaWdpbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmd0Oz0gKGJpZ2ludCxiaWdpbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICA8 cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPmludGVydmFsX2Jsb29t X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoaW50ZXJ2YWws aW50ZXJ2YWwpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0KLSAgICA8cm93PgotICAg ICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5pbnRlcnZhbF9t aW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChpbnRl cnZhbCxpbnRlcnZhbCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mbHQ7IChpbnRlcnZhbCxpbnRlcnZhbCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoaW50ZXJ2YWwsaW50ZXJ2YWwp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAo aW50ZXJ2YWwsaW50ZXJ2YWwpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+Jmd0Oz0gKGludGVydmFsLGludGVydmFsKTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0i NCI+PGxpdGVyYWw+aW50ZXJ2YWxfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5Pgot ICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoaW50ZXJ2YWwsaW50ZXJ2YWwpPC9saXRlcmFsPjwvZW50 cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAoaW50ZXJ2YWws aW50ZXJ2YWwpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmx0Oz0gKGludGVydmFsLGludGVydmFsKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKGludGVydmFsLGludGVydmFsKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChpbnRlcnZhbCxp bnRlcnZhbCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRy eSB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+bWFjYWRkcl9ibG9vbV9vcHM8L2xpdGVyYWw+PC9l bnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKG1hY2FkZHIsbWFjYWRkcik8L2xpdGVyYWw+ PC9lbnRyeT4KLSAgICA8L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1p ZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPm1hY2FkZHJfbWlubWF4X29wczwvbGl0ZXJhbD48 L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAobWFjYWRkcixtYWNhZGRyKTwvbGl0ZXJh bD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKG1h Y2FkZHIsbWFjYWRkcik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mbHQ7PSAobWFjYWRkcixtYWNhZGRyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgot ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKG1hY2FkZHIsbWFjYWRkcik8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAobWFjYWRkcixt YWNhZGRyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5 IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+bWFjYWRkcl9taW5tYXhfbXVs dGlfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChtYWNhZGRy LG1hY2FkZHIpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+ PGxpdGVyYWw+Jmx0OyAobWFjYWRkcixtYWNhZGRyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgot ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9IChtYWNhZGRyLG1hY2FkZHIpPC9saXRlcmFs PjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAobWFjYWRkcixt YWNhZGRyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs PiZndDs9IChtYWNhZGRyLG1hY2FkZHIpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICA8 cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPm1hY2FkZHI4X2Jsb29t X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAobWFjYWRkcjgs bWFjYWRkcjgpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0KLSAgICA8cm93PgotICAg ICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5tYWNhZGRyOF9t aW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChtYWNh ZGRyOCxtYWNhZGRyOCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mbHQ7IChtYWNhZGRyOCxtYWNhZGRyOCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAobWFjYWRkcjgsbWFjYWRkcjgp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAo bWFjYWRkcjgsbWFjYWRkcjgpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+Jmd0Oz0gKG1hY2FkZHI4LG1hY2FkZHI4KTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0i NCI+PGxpdGVyYWw+bWFjYWRkcjhfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5Pgot ICAgICA8ZW50cnk+PGxpdGVyYWw+PSAobWFjYWRkcjgsbWFjYWRkcjgpPC9saXRlcmFsPjwvZW50 cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAobWFjYWRkcjgs bWFjYWRkcjgpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmx0Oz0gKG1hY2FkZHI4LG1hY2FkZHI4KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKG1hY2FkZHI4LG1hY2FkZHI4KTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChtYWNhZGRyOCxt YWNhZGRyOCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRy eSB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+bmFtZV9ibG9vbV9vcHM8L2xpdGVyYWw+PC9lbnRy eT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKG5hbWUsbmFtZSk8L2xpdGVyYWw+PC9lbnRyeT4K LSAgICA8L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9y ZXJvd3M9IjQiPjxsaXRlcmFsPm5hbWVfbWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAg ICA8ZW50cnk+PGxpdGVyYWw+PSAobmFtZSxuYW1lKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwv cm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKG5hbWUsbmFtZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAobmFtZSxuYW1l KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsg KG5hbWUsbmFtZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD4mZ3Q7PSAobmFtZSxuYW1lKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgPHJv dz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD5udW1lcmljX2Jsb29tX29w czwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAobnVtZXJpYyxudW1l cmljKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVu dHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+bnVtZXJpY19taW5tYXhf b3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChudW1lcmljLG51 bWVyaWMpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmx0OyAobnVtZXJpYyxudW1lcmljKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9IChudW1lcmljLG51bWVyaWMpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAobnVtZXJpYyxudW1l cmljKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZn dDs9IChudW1lcmljLG51bWVyaWMpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICA8cm93 PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5udW1l cmljX21pbm1heF9tdWx0aV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRl cmFsPj0gKG51bWVyaWMsbnVtZXJpYyk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7IChudW1lcmljLG51bWVyaWMpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKG51bWVyaWMsbnVt ZXJpYyk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m Z3Q7IChudW1lcmljLG51bWVyaWMpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKG51bWVyaWMsbnVtZXJpYyk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+ b2lkX2Jsb29tX29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAo b2lkLG9pZCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAg IDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPm9pZF9taW5tYXhf b3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChvaWQsb2lkKTwv bGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZs dDsgKG9pZCxvaWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmd0OyAob2lkLG9pZCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mbHQ7PSAob2lkLG9pZCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAob2lkLG9pZCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9 IjQiPjxsaXRlcmFsPm9pZF9taW5tYXhfbXVsdGlfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAg IDxlbnRyeT48bGl0ZXJhbD49IChvaWQsb2lkKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93 PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKG9pZCxvaWQpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAob2lkLG9pZCk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAob2lkLG9p ZCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7 PSAob2lkLG9pZCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxl bnRyeSB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+cGdfbHNuX2Jsb29tX29wczwvbGl0ZXJhbD48 L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAocGdfbHNuLHBnX2xzbik8L2xpdGVyYWw+ PC9lbnRyeT4KLSAgICA8L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1p ZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPnBnX2xzbl9taW5tYXhfb3BzPC9saXRlcmFsPjwv ZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChwZ19sc24scGdfbHNuKTwvbGl0ZXJhbD48 L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKHBnX2xz bixwZ19sc24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmd0OyAocGdfbHNuLHBnX2xzbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAocGdfbHNuLHBnX2xzbik8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAocGdfbHNuLHBnX2xzbik8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1p ZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPnBnX2xzbl9taW5tYXhfbXVsdGlfb3BzPC9saXRl cmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChwZ19sc24scGdfbHNuKTwvbGl0 ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsg KHBnX2xzbixwZ19sc24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+ PGxpdGVyYWw+Jmd0OyAocGdfbHNuLHBnX2xzbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAocGdfbHNuLHBnX2xzbik8L2xpdGVyYWw+PC9l bnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAocGdfbHNuLHBnX2xz bik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxp Z249Im1pZGRsZSIgbW9yZXJvd3M9IjEzIj48bGl0ZXJhbD5yYW5nZV9pbmNsdXNpb25fb3BzPC9s aXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49IChhbnlyYW5nZSxhbnlyYW5n ZSk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoYW55cmFuZ2UsYW55cmFuZ2UpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGFueXJhbmdlLGFu eXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs PiZndDsgKGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7JmFtcDsgKGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChhbnlyYW5n ZSxhbnllbGVtZW50KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPkAmZ3Q7IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K LSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAoYW55cmFuZ2UsYW55cmFuZ2UpPC9saXRl cmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDsgKGFu eXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZndDsmZ3Q7IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZsdDsgKGFueXJhbmdlLGFueXJh bmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZh bXA7Jmd0OyAoYW55cmFuZ2UsYW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+LXwtIChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9l bnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSI+PGxp dGVyYWw+dGV4dF9ibG9vbV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRl cmFsPj0gKHRleHQsdGV4dCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLQotICAgIDxy b3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPnRl eHRfbWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAo dGV4dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZsdDsgKHRleHQsdGV4dCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAodGV4dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKHRleHQsdGV4dCk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAodGV4dCx0ZXh0 KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGln bj0ibWlkZGxlIj48bGl0ZXJhbD50aWRfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAg IDxlbnRyeT48bGl0ZXJhbD49ICh0aWQsdGlkKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93 PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+ PGxpdGVyYWw+dGlkX21pbm1heF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5Pjxs aXRlcmFsPj0gKHRpZCx0aWQpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodGlkLHRpZCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K LSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh0aWQsdGlkKTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9ICh0aWQsdGlkKTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh0aWQsdGlk KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGln bj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+dGlkX21pbm1heF9tdWx0aV9vcHM8L2xp dGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKHRpZCx0aWQpPC9saXRlcmFs PjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodGlk LHRpZCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m Z3Q7ICh0aWQsdGlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZsdDs9ICh0aWQsdGlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh0aWQsdGlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgot Ci0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD50aW1lc3Rh bXBfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49ICh0 aW1lc3RhbXAsdGltZXN0YW1wKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotCi0gICAg PHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+ dGltZXN0YW1wX21pbm1heF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRl cmFsPj0gKHRpbWVzdGFtcCx0aW1lc3RhbXApPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+ Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodGltZXN0YW1wLHRpbWVzdGFtcCk8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAodGlt ZXN0YW1wLHRpbWVzdGFtcCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD4mZ3Q7ICh0aW1lc3RhbXAsdGltZXN0YW1wKTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh0aW1lc3RhbXAsdGltZXN0YW1w KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGln bj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+dGltZXN0YW1wX21pbm1heF9tdWx0aV9v cHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKHRpbWVzdGFtcCx0 aW1lc3RhbXApPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+ PGxpdGVyYWw+Jmx0OyAodGltZXN0YW1wLHRpbWVzdGFtcCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAodGltZXN0YW1wLHRpbWVzdGFtcCk8 L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh0 aW1lc3RhbXAsdGltZXN0YW1wKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZndDs9ICh0aW1lc3RhbXAsdGltZXN0YW1wKTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJh bD50aW1lc3RhbXB0el9ibG9vbV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5Pjxs aXRlcmFsPj0gKHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6KTwvbGl0ZXJhbD48L2VudHJ5PgotICAg IDwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93 cz0iNCI+PGxpdGVyYWw+dGltZXN0YW1wdHpfbWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5Pgot ICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodGltZXN0YW1wdHosdGltZXN0YW1wdHopPC9saXRlcmFs PjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodGlt ZXN0YW1wdHosdGltZXN0YW1wdHopPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6KTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKHRpbWVzdGFtcHR6 LHRpbWVzdGFtcHR6KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZndDs9ICh0aW1lc3RhbXB0eix0aW1lc3RhbXB0eik8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9 IjQiPjxsaXRlcmFsPnRpbWVzdGFtcHR6X21pbm1heF9tdWx0aV9vcHM8L2xpdGVyYWw+PC9lbnRy eT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6KTwvbGl0 ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsg KHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9ICh0aW1lc3RhbXB0eix0aW1lc3RhbXB0eik8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh0aW1lc3Rh bXB0eix0aW1lc3RhbXB0eik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD4mZ3Q7PSAodGltZXN0YW1wdHosdGltZXN0YW1wdHopPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+Ci0KLSAgICA8cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRl cmFsPnRpbWVfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJh bD49ICh0aW1lLHRpbWUpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0KLSAgICA8cm93 PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD50aW1l X21pbm1heF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKHRp bWUsdGltZSk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mbHQ7ICh0aW1lLHRpbWUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKHRpbWUsdGltZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh0aW1lLHRpbWUpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKHRpbWUsdGltZSk8 L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249 Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPnRpbWVfbWlubWF4X211bHRpX29wczwvbGl0 ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodGltZSx0aW1lKTwvbGl0ZXJh bD48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKHRp bWUsdGltZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7PSAodGltZSx0aW1lKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZndDsgKHRpbWUsdGltZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAodGltZSx0aW1lKTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJh bD50aW1ldHpfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJh bD49ICh0aW1ldHosdGltZXR6KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotCi0gICAg PHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+ dGltZXR6X21pbm1heF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5PjxsaXRlcmFs Pj0gKHRpbWV0eix0aW1ldHopPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodGltZXR6LHRpbWV0eik8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAodGltZXR6LHRpbWV0eik8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh0aW1l dHosdGltZXR6KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRl cmFsPiZndDs9ICh0aW1ldHosdGltZXR6KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAg PHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+ dGltZXR6X21pbm1heF9tdWx0aV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPGVudHJ5Pjxs aXRlcmFsPj0gKHRpbWV0eix0aW1ldHopPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0g ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodGltZXR6LHRpbWV0eik8L2xpdGVyYWw+PC9l bnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAodGltZXR6LHRpbWV0 eik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7 ICh0aW1ldHosdGltZXR6KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZndDs9ICh0aW1ldHosdGltZXR6KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgot Ci0gICAgPHJvdz4KLSAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD51dWlkX2Js b29tX29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodXVpZCx1 dWlkKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotCi0gICAgPHJvdz4KLSAgICAgPGVu dHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+dXVpZF9taW5tYXhfb3Bz PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0ZXJhbD49ICh1dWlkLHV1aWQpPC9s aXRlcmFsPjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0 OyAodXVpZCx1dWlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZndDsgKHV1aWQsdXVpZCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAodXVpZCx1dWlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh1dWlkLHV1aWQpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0KLSAgICA8cm93PgotICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1v cmVyb3dzPSI0Ij48bGl0ZXJhbD51dWlkX21pbm1heF9tdWx0aV9vcHM8L2xpdGVyYWw+PC9lbnRy eT4KLSAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKHV1aWQsdXVpZCk8L2xpdGVyYWw+PC9lbnRyeT4K LSAgICA8L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7ICh1dWlkLHV1aWQpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAodXVp ZCx1dWlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs PiZsdDs9ICh1dWlkLHV1aWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+Jmd0Oz0gKHV1aWQsdXVpZCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQot ICAgIDxyb3c+Ci0gICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRl cmFsPnZhcmJpdF9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48bGl0 ZXJhbD49ICh2YXJiaXQsdmFyYml0KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgIDwvcm93PgotICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKHZhcmJpdCx2YXJiaXQpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+Ci0gICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAodmFyYml0LHZhcmJpdCk8 L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAo dmFyYml0LHZhcmJpdCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mZ3Q7PSAodmFyYml0LHZhcmJpdCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAg IDwvdGJvZHk+Ci0gIDwvdGdyb3VwPgotIDwvdGFibGU+Ci0KLSAgPHNlY3QyIGlkPSJicmluLWJ1 aWx0aW4tb3BjbGFzc2VzLS1wYXJhbWV0ZXJzIj4KLSAgIDx0aXRsZT5PcGVyYXRvciBDbGFzcyBQ YXJhbWV0ZXJzPC90aXRsZT4KLQotICAgPHBhcmE+Ci0gICAgU29tZSBvZiB0aGUgYnVpbHQtaW4g b3BlcmF0b3IgY2xhc3NlcyBhbGxvdyBzcGVjaWZ5aW5nIHBhcmFtZXRlcnMgYWZmZWN0aW5nCi0g ICAgYmVoYXZpb3Igb2YgdGhlIG9wZXJhdG9yIGNsYXNzLiAgRWFjaCBvcGVyYXRvciBjbGFzcyBo YXMgaXRzIG93biBzZXQgb2YKLSAgICBhbGxvd2VkIHBhcmFtZXRlcnMuICBPbmx5IHRoZSA8bGl0 ZXJhbD5ibG9vbTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPm1pbm1heC1tdWx0aTwvbGl0ZXJhbD4K LSAgICBvcGVyYXRvciBjbGFzc2VzIGFsbG93IHNwZWNpZnlpbmcgcGFyYW1ldGVyczoKLSAgIDwv cGFyYT4KLQotICAgPHBhcmE+Ci0gICAgYmxvb20gb3BlcmF0b3IgY2xhc3NlcyBhY2NlcHQgdGhl c2UgcGFyYW1ldGVyczoKLSAgIDwvcGFyYT4KLQotICAgPHZhcmlhYmxlbGlzdD4KLSAgIDx2YXJs aXN0ZW50cnk+Ci0gICAgPHRlcm0+PGxpdGVyYWw+bl9kaXN0aW5jdF9wZXJfcmFuZ2U8L2xpdGVy YWw+PC90ZXJtPgotICAgIDxsaXN0aXRlbT4KLSAgICA8cGFyYT4KLSAgICAgRGVmaW5lcyB0aGUg ZXN0aW1hdGVkIG51bWJlciBvZiBkaXN0aW5jdCBub24tbnVsbCB2YWx1ZXMgaW4gdGhlIGJsb2Nr Ci0gICAgIHJhbmdlLCB1c2VkIGJ5IDxhY3JvbnltPkJSSU48L2Fjcm9ueW0+IGJsb29tIGluZGV4 ZXMgZm9yIHNpemluZyBvZiB0aGUKLSAgICAgQmxvb20gZmlsdGVyLiBJdCBiZWhhdmVzIHNpbWls YXJseSB0byA8bGl0ZXJhbD5uX2Rpc3RpbmN0PC9saXRlcmFsPiBvcHRpb24KLSAgICAgZm9yIDx4 cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnRhYmxlIi8+LiBXaGVuIHNldCB0byBhIHBvc2l0aXZlIHZh bHVlLAotICAgICBlYWNoIGJsb2NrIHJhbmdlIGlzIGFzc3VtZWQgdG8gY29udGFpbiB0aGlzIG51 bWJlciBvZiBkaXN0aW5jdCBub24tbnVsbAotICAgICB2YWx1ZXMuIFdoZW4gc2V0IHRvIGEgbmVn YXRpdmUgdmFsdWUsIHdoaWNoIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yCi0gICAgIGVxdWFsIHRv IC0xLCB0aGUgbnVtYmVyIG9mIGRpc3RpbmN0IG5vbi1udWxsIHZhbHVlcyBpcyBhc3N1bWVkIHRv IGdyb3cgbGluZWFybHkgd2l0aAotICAgICB0aGUgbWF4aW11bSBwb3NzaWJsZSBudW1iZXIgb2Yg dHVwbGVzIGluIHRoZSBibG9jayByYW5nZSAoYWJvdXQgMjkwCi0gICAgIHJvd3MgcGVyIGJsb2Nr KS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgPGxpdGVyYWw+LTAuMTwvbGl0ZXJhbD4sIGFuZAotICAg ICB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlzdGluY3Qgbm9uLW51bGwgdmFsdWVzIGlzIDxsaXRl cmFsPjE2PC9saXRlcmFsPi4KLSAgICA8L3BhcmE+Ci0gICAgPC9saXN0aXRlbT4KLSAgIDwvdmFy bGlzdGVudHJ5PgotCi0gICA8dmFybGlzdGVudHJ5PgotICAgIDx0ZXJtPjxsaXRlcmFsPmZhbHNl X3Bvc2l0aXZlX3JhdGU8L2xpdGVyYWw+PC90ZXJtPgotICAgIDxsaXN0aXRlbT4KLSAgICA8cGFy YT4KLSAgICAgRGVmaW5lcyB0aGUgZGVzaXJlZCBmYWxzZSBwb3NpdGl2ZSByYXRlIHVzZWQgYnkg PGFjcm9ueW0+QlJJTjwvYWNyb255bT4KLSAgICAgYmxvb20gaW5kZXhlcyBmb3Igc2l6aW5nIG9m IHRoZSBCbG9vbSBmaWx0ZXIuIFRoZSB2YWx1ZXMgbXVzdCBiZQotICAgICBiZXR3ZWVuIDAuMDAw MSBhbmQgMC4yNS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMC4wMSwgd2hpY2ggaXMgMSUgZmFsc2UK LSAgICAgcG9zaXRpdmUgcmF0ZS4KLSAgICA8L3BhcmE+Ci0gICAgPC9saXN0aXRlbT4KLSAgIDwv dmFybGlzdGVudHJ5PgotCi0gICA8L3ZhcmlhYmxlbGlzdD4KLQotICAgPHBhcmE+Ci0gICAgbWlu bWF4LW11bHRpIG9wZXJhdG9yIGNsYXNzZXMgYWNjZXB0IHRoZXNlIHBhcmFtZXRlcnM6Ci0gICA8 L3BhcmE+Ci0KLSAgIDx2YXJpYWJsZWxpc3Q+Ci0gICA8dmFybGlzdGVudHJ5PgotICAgIDx0ZXJt PjxsaXRlcmFsPnZhbHVlc19wZXJfcmFuZ2U8L2xpdGVyYWw+PC90ZXJtPgotICAgIDxsaXN0aXRl bT4KLSAgICA8cGFyYT4KLSAgICAgRGVmaW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdmFsdWVz IHN0b3JlZCBieSA8YWNyb255bT5CUklOPC9hY3JvbnltPgotICAgICBtaW5tYXggaW5kZXhlcyB0 byBzdW1tYXJpemUgYSBibG9jayByYW5nZS4gRWFjaCB2YWx1ZSBtYXkgcmVwcmVzZW50Ci0gICAg IGVpdGhlciBhIHBvaW50LCBvciBhIGJvdW5kYXJ5IG9mIGFuIGludGVydmFsLiBWYWx1ZXMgbXVz dCBiZSBiZXR3ZWVuCi0gICAgIDggYW5kIDI1NiwgYW5kIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDMy LgotICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgotICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAg IDwvdmFyaWFibGVsaXN0PgotICA8L3NlY3QyPgotCi08L3NlY3QxPgotCi08c2VjdDEgaWQ9ImJy aW4tZXh0ZW5zaWJpbGl0eSI+Ci0gPHRpdGxlPkV4dGVuc2liaWxpdHk8L3RpdGxlPgotCi0gPHBh cmE+Ci0gIFRoZSA8YWNyb255bT5CUklOPC9hY3JvbnltPiBpbnRlcmZhY2UgaGFzIGEgaGlnaCBs ZXZlbCBvZiBhYnN0cmFjdGlvbiwKLSAgcmVxdWlyaW5nIHRoZSBhY2Nlc3MgbWV0aG9kIGltcGxl bWVudGVyIG9ubHkgdG8gaW1wbGVtZW50IHRoZSBzZW1hbnRpY3MKLSAgb2YgdGhlIGRhdGEgdHlw ZSBiZWluZyBhY2Nlc3NlZC4gIFRoZSA8YWNyb255bT5CUklOPC9hY3JvbnltPiBsYXllcgotICBp dHNlbGYgdGFrZXMgY2FyZSBvZiBjb25jdXJyZW5jeSwgbG9nZ2luZyBhbmQgc2VhcmNoaW5nIHRo ZSBpbmRleCBzdHJ1Y3R1cmUuCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gIEFsbCBpdCB0YWtlcyB0 byBnZXQgYSA8YWNyb255bT5CUklOPC9hY3JvbnltPiBhY2Nlc3MgbWV0aG9kIHdvcmtpbmcgaXMg dG8KLSAgaW1wbGVtZW50IGEgZmV3IHVzZXItZGVmaW5lZCBtZXRob2RzLCB3aGljaCBkZWZpbmUg dGhlIGJlaGF2aW9yIG9mCi0gIHN1bW1hcnkgdmFsdWVzIHN0b3JlZCBpbiB0aGUgaW5kZXggYW5k IHRoZSB3YXkgdGhleSBpbnRlcmFjdCB3aXRoCi0gIHNjYW4ga2V5cy4KLSAgSW4gc2hvcnQsIDxh Y3JvbnltPkJSSU48L2Fjcm9ueW0+IGNvbWJpbmVzCi0gIGV4dGVuc2liaWxpdHkgd2l0aCBnZW5l cmFsaXR5LCBjb2RlIHJldXNlLCBhbmQgYSBjbGVhbiBpbnRlcmZhY2UuCi0gPC9wYXJhPgotCi0g PHBhcmE+Ci0gIFRoZXJlIGFyZSBmb3VyIG1ldGhvZHMgdGhhdCBhbiBvcGVyYXRvciBjbGFzcyBm b3IgPGFjcm9ueW0+QlJJTjwvYWNyb255bT4KLSAgbXVzdCBwcm92aWRlOgotCi0gIDx2YXJpYWJs ZWxpc3Q+Ci0gICA8dmFybGlzdGVudHJ5PgotICAgIDx0ZXJtPjxmdW5jdGlvbj5CcmluT3BjSW5m byAqb3BjSW5mbyhPaWQgdHlwZV9vaWQpPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgPGxpc3RpdGVt PgotICAgICA8cGFyYT4KLSAgICAgIFJldHVybnMgaW50ZXJuYWwgaW5mb3JtYXRpb24gYWJvdXQg dGhlIGluZGV4ZWQgY29sdW1ucycgc3VtbWFyeSBkYXRhLgotICAgICAgVGhlIHJldHVybiB2YWx1 ZSBtdXN0IHBvaW50IHRvIGEgcGFsbG9jJ2QgPHN0cnVjdG5hbWU+QnJpbk9wY0luZm88L3N0cnVj dG5hbWU+LAotICAgICAgd2hpY2ggaGFzIHRoaXMgZGVmaW5pdGlvbjoKLTxwcm9ncmFtbGlzdGlu Zz4KLXR5cGVkZWYgc3RydWN0IEJyaW5PcGNJbmZvCi17Ci0gICAgLyogTnVtYmVyIG9mIGNvbHVt bnMgc3RvcmVkIGluIGFuIGluZGV4IGNvbHVtbiBvZiB0aGlzIG9wY2xhc3MgKi8KLSAgICB1aW50 MTYgICAgICBvaV9uc3RvcmVkOwotCi0gICAgLyogT3BhcXVlIHBvaW50ZXIgZm9yIHRoZSBvcGNs YXNzJyBwcml2YXRlIHVzZSAqLwotICAgIHZvaWQgICAgICAgKm9pX29wYXF1ZTsKLQotICAgIC8q IFR5cGUgY2FjaGUgZW50cmllcyBvZiB0aGUgc3RvcmVkIGNvbHVtbnMgKi8KLSAgICBUeXBlQ2Fj aGVFbnRyeSAqb2lfdHlwY2FjaGVbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKLX0gQnJpbk9wY0lu Zm87Ci08L3Byb2dyYW1saXN0aW5nPgotICAgICAgPHN0cnVjdG5hbWU+QnJpbk9wY0luZm88L3N0 cnVjdG5hbWU+LjxzdHJ1Y3RmaWVsZD5vaV9vcGFxdWU8L3N0cnVjdGZpZWxkPiBjYW4gYmUgdXNl ZCBieSB0aGUKLSAgICAgIG9wZXJhdG9yIGNsYXNzIHJvdXRpbmVzIHRvIHBhc3MgaW5mb3JtYXRp b24gYmV0d2VlbiBzdXBwb3J0IGZ1bmN0aW9ucwotICAgICAgZHVyaW5nIGFuIGluZGV4IHNjYW4u Ci0gICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgotICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAg IDx2YXJsaXN0ZW50cnk+Ci0gICAgPHRlcm0+PGZ1bmN0aW9uPmJvb2wgY29uc2lzdGVudChCcmlu RGVzYyAqYmRlc2MsIEJyaW5WYWx1ZXMgKmNvbHVtbiwKLSAgICAgICBTY2FuS2V5ICprZXlzLCBp bnQgbmtleXMpPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgPGxpc3RpdGVtPgotICAgICA8cGFyYT4K LSAgICAgIFJldHVybnMgd2hldGhlciBhbGwgdGhlIFNjYW5LZXkgZW50cmllcyBhcmUgY29uc2lz dGVudCB3aXRoIHRoZSBnaXZlbgotICAgICAgaW5kZXhlZCB2YWx1ZXMgZm9yIGEgcmFuZ2UuCi0g ICAgICBUaGUgYXR0cmlidXRlIG51bWJlciB0byB1c2UgaXMgcGFzc2VkIGFzIHBhcnQgb2YgdGhl IHNjYW4ga2V5LgotICAgICAgTXVsdGlwbGUgc2NhbiBrZXlzIGZvciB0aGUgc2FtZSBhdHRyaWJ1 dGUgbWF5IGJlIHBhc3NlZCBhdCBvbmNlOyB0aGUKLSAgICAgIG51bWJlciBvZiBlbnRyaWVzIGlz IGRldGVybWluZWQgYnkgdGhlIDxsaXRlcmFsPm5rZXlzPC9saXRlcmFsPiBwYXJhbWV0ZXIuCi0g ICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgotICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgIDx2 YXJsaXN0ZW50cnk+Ci0gICAgPHRlcm0+PGZ1bmN0aW9uPmJvb2wgY29uc2lzdGVudChCcmluRGVz YyAqYmRlc2MsIEJyaW5WYWx1ZXMgKmNvbHVtbiwKLSAgICAgICBTY2FuS2V5IGtleSk8L2Z1bmN0 aW9uPjwvdGVybT4KLSAgICA8bGlzdGl0ZW0+Ci0gICAgIDxwYXJhPgotICAgICAgUmV0dXJucyB3 aGV0aGVyIHRoZSBTY2FuS2V5IGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZ2l2ZW4gaW5kZXhlZAot ICAgICAgdmFsdWVzIGZvciBhIHJhbmdlLgotICAgICAgVGhlIGF0dHJpYnV0ZSBudW1iZXIgdG8g dXNlIGlzIHBhc3NlZCBhcyBwYXJ0IG9mIHRoZSBzY2FuIGtleS4KLSAgICAgIFRoaXMgaXMgYW4g b2xkZXIgYmFja3dhcmQtY29tcGF0aWJsZSB2YXJpYW50IG9mIHRoZSBjb25zaXN0ZW50IGZ1bmN0 aW9uLgotICAgICA8L3BhcmE+Ci0gICAgPC9saXN0aXRlbT4KLSAgIDwvdmFybGlzdGVudHJ5Pgot Ci0gICA8dmFybGlzdGVudHJ5PgotICAgIDx0ZXJtPjxmdW5jdGlvbj5ib29sIGFkZFZhbHVlKEJy aW5EZXNjICpiZGVzYywgQnJpblZhbHVlcyAqY29sdW1uLAotICAgICAgIERhdHVtIG5ld3ZhbCwg Ym9vbCBpc251bGwpPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgPGxpc3RpdGVtPgotICAgICA8cGFy YT4KLSAgICAgIEdpdmVuIGFuIGluZGV4IHR1cGxlIGFuZCBhbiBpbmRleGVkIHZhbHVlLCBtb2Rp ZmllcyB0aGUgaW5kaWNhdGVkCi0gICAgICBhdHRyaWJ1dGUgb2YgdGhlIHR1cGxlIHNvIHRoYXQg aXQgYWRkaXRpb25hbGx5IHJlcHJlc2VudHMgdGhlIG5ldyB2YWx1ZS4KLSAgICAgIElmIGFueSBt b2RpZmljYXRpb24gd2FzIGRvbmUgdG8gdGhlIHR1cGxlLCA8bGl0ZXJhbD50cnVlPC9saXRlcmFs PiBpcwotICAgICAgcmV0dXJuZWQuCi0gICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgotICAg PC92YXJsaXN0ZW50cnk+Ci0KLSAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgPHRlcm0+PGZ1bmN0aW9u PmJvb2wgdW5pb25UdXBsZXMoQnJpbkRlc2MgKmJkZXNjLCBCcmluVmFsdWVzICphLAotICAgICAg IEJyaW5WYWx1ZXMgKmIpPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgPGxpc3RpdGVtPgotICAgICA8 cGFyYT4KLSAgICAgIENvbnNvbGlkYXRlcyB0d28gaW5kZXggdHVwbGVzLiBHaXZlbiB0d28gaW5k ZXggdHVwbGVzLCBtb2RpZmllcyB0aGUKLSAgICAgIGluZGljYXRlZCBhdHRyaWJ1dGUgb2YgdGhl IGZpcnN0IG9mIHRoZW0gc28gdGhhdCBpdCByZXByZXNlbnRzIGJvdGggdHVwbGVzLgotICAgICAg VGhlIHNlY29uZCB0dXBsZSBpcyBub3QgbW9kaWZpZWQuCi0gICAgIDwvcGFyYT4KLSAgICA8L2xp c3RpdGVtPgotICAgPC92YXJsaXN0ZW50cnk+Ci0gIDwvdmFyaWFibGVsaXN0PgotCi0gIEFuIG9w ZXJhdG9yIGNsYXNzIGZvciA8YWNyb255bT5CUklOPC9hY3JvbnltPiBjYW4gb3B0aW9uYWxseSBz cGVjaWZ5IHRoZQotICBmb2xsb3dpbmcgbWV0aG9kOgotCi0gIDx2YXJpYWJsZWxpc3Q+Ci0gICAg PHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGZ1bmN0aW9uPnZvaWQgb3B0aW9ucyhsb2NhbF9y ZWxvcHRzICpyZWxvcHRzKTwvZnVuY3Rpb24+PC90ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAg ICA8cGFyYT4KLSAgICAgICBEZWZpbmVzIGEgc2V0IG9mIHVzZXItdmlzaWJsZSBwYXJhbWV0ZXJz IHRoYXQgY29udHJvbCBvcGVyYXRvciBjbGFzcwotICAgICAgIGJlaGF2aW9yLgotICAgICAgPC9w YXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAgICBUaGUgPGZ1bmN0aW9uPm9wdGlvbnM8L2Z1bmN0 aW9uPiBmdW5jdGlvbiBpcyBwYXNzZWQgYSBwb2ludGVyIHRvIGEKLSAgICAgICA8c3RydWN0bmFt ZT5sb2NhbF9yZWxvcHRzPC9zdHJ1Y3RuYW1lPiBzdHJ1Y3QsIHdoaWNoIG5lZWRzIHRvIGJlCi0g ICAgICAgZmlsbGVkIHdpdGggYSBzZXQgb2Ygb3BlcmF0b3IgY2xhc3Mgc3BlY2lmaWMgb3B0aW9u cy4gIFRoZSBvcHRpb25zCi0gICAgICAgY2FuIGJlIGFjY2Vzc2VkIGZyb20gb3RoZXIgc3VwcG9y dCBmdW5jdGlvbnMgdXNpbmcgdGhlCi0gICAgICAgPGxpdGVyYWw+UEdfSEFTX09QQ0xBU1NfT1BU SU9OUygpPC9saXRlcmFsPiBhbmQKLSAgICAgICA8bGl0ZXJhbD5QR19HRVRfT1BDTEFTU19PUFRJ T05TKCk8L2xpdGVyYWw+IG1hY3Jvcy4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0g ICAgICAgU2luY2UgYm90aCBrZXkgZXh0cmFjdGlvbiBvZiBpbmRleGVkIHZhbHVlcyBhbmQgcmVw cmVzZW50YXRpb24gb2YgdGhlCi0gICAgICAga2V5IGluIDxhY3JvbnltPkJSSU48L2Fjcm9ueW0+ IGFyZSBmbGV4aWJsZSwgdGhleSBtYXkgZGVwZW5kIG9uCi0gICAgICAgdXNlci1zcGVjaWZpZWQg cGFyYW1ldGVycy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxp c3RlbnRyeT4KLSAgPC92YXJpYWJsZWxpc3Q+Ci0KLSAgVGhlIGNvcmUgZGlzdHJpYnV0aW9uIGlu Y2x1ZGVzIHN1cHBvcnQgZm9yIGZvdXIgdHlwZXMgb2Ygb3BlcmF0b3IgY2xhc3NlczoKLSAgbWlu bWF4LCBtaW5tYXgtbXVsdGksIGluY2x1c2lvbiBhbmQgYmxvb20uICBPcGVyYXRvciBjbGFzcyBk ZWZpbml0aW9ucwotICB1c2luZyB0aGVtIGFyZSBzaGlwcGVkIGZvciBpbi1jb3JlIGRhdGEgdHlw ZXMgYXMgYXBwcm9wcmlhdGUuICBBZGRpdGlvbmFsCi0gIG9wZXJhdG9yIGNsYXNzZXMgY2FuIGJl IGRlZmluZWQgYnkgdGhlIHVzZXIgZm9yIG90aGVyIGRhdGEgdHlwZXMgdXNpbmcKLSAgZXF1aXZh bGVudCBkZWZpbml0aW9ucywgd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUgYW55IHNvdXJjZSBjb2Rl OwotICBhcHByb3ByaWF0ZSBjYXRhbG9nIGVudHJpZXMgYmVpbmcgZGVjbGFyZWQgaXMgZW5vdWdo LiAgTm90ZSB0aGF0Ci0gIGFzc3VtcHRpb25zIGFib3V0IHRoZSBzZW1hbnRpY3Mgb2Ygb3BlcmF0 b3Igc3RyYXRlZ2llcyBhcmUgZW1iZWRkZWQgaW4gdGhlCi0gIHN1cHBvcnQgZnVuY3Rpb25zJyBz b3VyY2UgY29kZS4KLSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgT3BlcmF0b3IgY2xhc3NlcyB0aGF0 IGltcGxlbWVudCBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpY3MgYXJlIGFsc28KLSAgcG9z c2libGUsIHByb3ZpZGVkIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgZm91ciBtYWluIHN1cHBvcnQg ZnVuY3Rpb25zCi0gIGRlc2NyaWJlZCBhYm92ZSBhcmUgd3JpdHRlbi4gIE5vdGUgdGhhdCBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eSBhY3Jvc3MgbWFqb3IKLSAgcmVsZWFzZXMgaXMgbm90IGd1YXJh bnRlZWQ6IGZvciBleGFtcGxlLCBhZGRpdGlvbmFsIHN1cHBvcnQgZnVuY3Rpb25zIG1pZ2h0Ci0g IGJlIHJlcXVpcmVkIGluIGxhdGVyIHJlbGVhc2VzLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBU byB3cml0ZSBhbiBvcGVyYXRvciBjbGFzcyBmb3IgYSBkYXRhIHR5cGUgdGhhdCBpbXBsZW1lbnRz IGEgdG90YWxseQotICBvcmRlcmVkIHNldCwgaXQgaXMgcG9zc2libGUgdG8gdXNlIHRoZSBtaW5t YXggc3VwcG9ydCBmdW5jdGlvbnMKLSAgYWxvbmdzaWRlIHRoZSBjb3JyZXNwb25kaW5nIG9wZXJh dG9ycywgYXMgc2hvd24gaW4KLSAgPHhyZWYgbGlua2VuZD0iYnJpbi1leHRlbnNpYmlsaXR5LW1p bm1heC10YWJsZSIvPi4KLSAgQWxsIG9wZXJhdG9yIGNsYXNzIG1lbWJlcnMgKGZ1bmN0aW9ucyBh bmQgb3BlcmF0b3JzKSBhcmUgbWFuZGF0b3J5LgotIDwvcGFyYT4KLQotIDx0YWJsZSBpZD0iYnJp bi1leHRlbnNpYmlsaXR5LW1pbm1heC10YWJsZSI+Ci0gIDx0aXRsZT5GdW5jdGlvbiBhbmQgU3Vw cG9ydCBOdW1iZXJzIGZvciBNaW5tYXggT3BlcmF0b3IgQ2xhc3NlczwvdGl0bGU+Ci0gIDx0Z3Jv dXAgY29scz0iMiI+Ci0gICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wxIiBjb2x3aWR0aD0iMSoiLz4K LSAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDIiIGNvbHdpZHRoPSIyKiIvPgotICAgPHRoZWFkPgot ICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBjbGFzcyBtZW1iZXI8L2VudHJ5PgotICAg ICA8ZW50cnk+T2JqZWN0PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgIDwvdGhlYWQ+Ci0gICA8dGJv ZHk+Ci0gICAgPHJvdz4KLSAgICAgPGVudHJ5PlN1cHBvcnQgRnVuY3Rpb24gMTwvZW50cnk+Ci0g ICAgIDxlbnRyeT5pbnRlcm5hbCBmdW5jdGlvbiA8ZnVuY3Rpb24+YnJpbl9taW5tYXhfb3BjaW5m bygpPC9mdW5jdGlvbj48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRy eT5TdXBwb3J0IEZ1bmN0aW9uIDI8L2VudHJ5PgotICAgICA8ZW50cnk+aW50ZXJuYWwgZnVuY3Rp b24gPGZ1bmN0aW9uPmJyaW5fbWlubWF4X2FkZF92YWx1ZSgpPC9mdW5jdGlvbj48L2VudHJ5Pgot ICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9uIDM8L2Vu dHJ5PgotICAgICA8ZW50cnk+aW50ZXJuYWwgZnVuY3Rpb24gPGZ1bmN0aW9uPmJyaW5fbWlubWF4 X2NvbnNpc3RlbnQoKTwvZnVuY3Rpb24+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93Pgot ICAgICA8ZW50cnk+U3VwcG9ydCBGdW5jdGlvbiA0PC9lbnRyeT4KLSAgICAgPGVudHJ5PmludGVy bmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX21pbm1heF91bmlvbigpPC9mdW5jdGlvbj48L2Vu dHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVn eSAxPC9lbnRyeT4KLSAgICAgPGVudHJ5Pm9wZXJhdG9yIGxlc3MtdGhhbjwvZW50cnk+Ci0gICAg PC9yb3c+Ci0gICAgPHJvdz4KLSAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDI8L2VudHJ5 PgotICAgICA8ZW50cnk+b3BlcmF0b3IgbGVzcy10aGFuLW9yLWVxdWFsLXRvPC9lbnRyeT4KLSAg ICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgMzwvZW50 cnk+Ci0gICAgIDxlbnRyeT5vcGVyYXRvciBlcXVhbC10bzwvZW50cnk+Ci0gICAgPC9yb3c+Ci0g ICAgPHJvdz4KLSAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDQ8L2VudHJ5PgotICAgICA8 ZW50cnk+b3BlcmF0b3IgZ3JlYXRlci10aGFuLW9yLWVxdWFsLXRvPC9lbnRyeT4KLSAgICA8L3Jv dz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgNTwvZW50cnk+Ci0g ICAgIDxlbnRyeT5vcGVyYXRvciBncmVhdGVyLXRoYW48L2VudHJ5PgotICAgIDwvcm93PgotICAg PC90Ym9keT4KLSAgPC90Z3JvdXA+Ci0gPC90YWJsZT4KLQotIDxwYXJhPgotICBUbyB3cml0ZSBh biBvcGVyYXRvciBjbGFzcyBmb3IgYSBjb21wbGV4IGRhdGEgdHlwZSB3aGljaCBoYXMgdmFsdWVz Ci0gIGluY2x1ZGVkIHdpdGhpbiBhbm90aGVyIHR5cGUsIGl0J3MgcG9zc2libGUgdG8gdXNlIHRo ZSBpbmNsdXNpb24gc3VwcG9ydAotICBmdW5jdGlvbnMgYWxvbmdzaWRlIHRoZSBjb3JyZXNwb25k aW5nIG9wZXJhdG9ycywgYXMgc2hvd24KLSAgaW4gPHhyZWYgbGlua2VuZD0iYnJpbi1leHRlbnNp YmlsaXR5LWluY2x1c2lvbi10YWJsZSIvPi4gIEl0IHJlcXVpcmVzCi0gIG9ubHkgYSBzaW5nbGUg YWRkaXRpb25hbCBmdW5jdGlvbiwgd2hpY2ggY2FuIGJlIHdyaXR0ZW4gaW4gYW55IGxhbmd1YWdl LgotICBNb3JlIGZ1bmN0aW9ucyBjYW4gYmUgZGVmaW5lZCBmb3IgYWRkaXRpb25hbCBmdW5jdGlv bmFsaXR5LiAgQWxsIG9wZXJhdG9ycwotICBhcmUgb3B0aW9uYWwuICBTb21lIG9wZXJhdG9ycyBy ZXF1aXJlIG90aGVyIG9wZXJhdG9ycywgYXMgc2hvd24gYXMKLSAgZGVwZW5kZW5jaWVzIG9uIHRo ZSB0YWJsZS4KLSA8L3BhcmE+Ci0KLSA8dGFibGUgaWQ9ImJyaW4tZXh0ZW5zaWJpbGl0eS1pbmNs dXNpb24tdGFibGUiPgotICA8dGl0bGU+RnVuY3Rpb24gYW5kIFN1cHBvcnQgTnVtYmVycyBmb3Ig SW5jbHVzaW9uIE9wZXJhdG9yIENsYXNzZXM8L3RpdGxlPgotICA8dGdyb3VwIGNvbHM9IjMiPgot ICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMSIgY29sd2lkdGg9IjEqIi8+Ci0gICA8Y29sc3BlYyBj b2xuYW1lPSJjb2wyIiBjb2x3aWR0aD0iMioiLz4KLSAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDMi IGNvbHdpZHRoPSIxKiIvPgotICAgPHRoZWFkPgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVy YXRvciBjbGFzcyBtZW1iZXI8L2VudHJ5PgotICAgICA8ZW50cnk+T2JqZWN0PC9lbnRyeT4KLSAg ICAgPGVudHJ5PkRlcGVuZGVuY3k8L2VudHJ5PgotICAgIDwvcm93PgotICAgPC90aGVhZD4KLSAg IDx0Ym9keT4KLSAgICA8cm93PgotICAgICA8ZW50cnk+U3VwcG9ydCBGdW5jdGlvbiAxPC9lbnRy eT4KLSAgICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX2luY2x1c2lv bl9vcGNpbmZvKCk8L2Z1bmN0aW9uPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48L2VudHJ5PgotICAg IDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9uIDI8L2VudHJ5 PgotICAgICA8ZW50cnk+aW50ZXJuYWwgZnVuY3Rpb24gPGZ1bmN0aW9uPmJyaW5faW5jbHVzaW9u X2FkZF92YWx1ZSgpPC9mdW5jdGlvbj48L2VudHJ5PgotICAgICA8ZW50cnk+PC9lbnRyeT4KLSAg ICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+U3VwcG9ydCBGdW5jdGlvbiAzPC9lbnRy eT4KLSAgICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX2luY2x1c2lv bl9jb25zaXN0ZW50KCk8L2Z1bmN0aW9uPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48L2VudHJ5Pgot ICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9uIDQ8L2Vu dHJ5PgotICAgICA8ZW50cnk+aW50ZXJuYWwgZnVuY3Rpb24gPGZ1bmN0aW9uPmJyaW5faW5jbHVz aW9uX3VuaW9uKCk8L2Z1bmN0aW9uPjwvZW50cnk+Ci0gICAgIDxlbnRyeT48L2VudHJ5PgotICAg IDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9uIDExPC9lbnRy eT4KLSAgICAgPGVudHJ5PmZ1bmN0aW9uIHRvIG1lcmdlIHR3byBlbGVtZW50czwvZW50cnk+Ci0g ICAgIDxlbnRyeT48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5T dXBwb3J0IEZ1bmN0aW9uIDEyPC9lbnRyeT4KLSAgICAgPGVudHJ5Pm9wdGlvbmFsIGZ1bmN0aW9u IHRvIGNoZWNrIHdoZXRoZXIgdHdvIGVsZW1lbnRzIGFyZSBtZXJnZWFibGU8L2VudHJ5PgotICAg ICA8ZW50cnk+PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+U3Vw cG9ydCBGdW5jdGlvbiAxMzwvZW50cnk+Ci0gICAgIDxlbnRyeT5vcHRpb25hbCBmdW5jdGlvbiB0 byBjaGVjayBpZiBhbiBlbGVtZW50IGlzIGNvbnRhaW5lZCB3aXRoaW4gYW5vdGhlcjwvZW50cnk+ Ci0gICAgIDxlbnRyeT48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRy eT5TdXBwb3J0IEZ1bmN0aW9uIDE0PC9lbnRyeT4KLSAgICAgPGVudHJ5Pm9wdGlvbmFsIGZ1bmN0 aW9uIHRvIGNoZWNrIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBlbXB0eTwvZW50cnk+Ci0gICAgIDxl bnRyeT48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVyYXRv ciBTdHJhdGVneSAxPC9lbnRyeT4KLSAgICAgPGVudHJ5Pm9wZXJhdG9yIGxlZnQtb2Y8L2VudHJ5 PgotICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgNDwvZW50cnk+Ci0gICAgPC9yb3c+Ci0g ICAgPHJvdz4KLSAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDI8L2VudHJ5PgotICAgICA8 ZW50cnk+b3BlcmF0b3IgZG9lcy1ub3QtZXh0ZW5kLXRvLXRoZS1yaWdodC1vZjwvZW50cnk+Ci0g ICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSA1PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8 cm93PgotICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgMzwvZW50cnk+Ci0gICAgIDxlbnRy eT5vcGVyYXRvciBvdmVybGFwczwvZW50cnk+Ci0gICAgIDxlbnRyeT48L2VudHJ5PgotICAgIDwv cm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSA0PC9lbnRyeT4K LSAgICAgPGVudHJ5Pm9wZXJhdG9yIGRvZXMtbm90LWV4dGVuZC10by10aGUtbGVmdC1vZjwvZW50 cnk+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSAxPC9lbnRyeT4KLSAgICA8L3Jvdz4K LSAgICA8cm93PgotICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgNTwvZW50cnk+Ci0gICAg IDxlbnRyeT5vcGVyYXRvciByaWdodC1vZjwvZW50cnk+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBT dHJhdGVneSAyPC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+T3Bl cmF0b3IgU3RyYXRlZ3kgNiwgMTg8L2VudHJ5PgotICAgICA8ZW50cnk+b3BlcmF0b3Igc2FtZS1h cy1vci1lcXVhbC10bzwvZW50cnk+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSA3PC9l bnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRl Z3kgNywgMTYsIDI0LCAyNTwvZW50cnk+Ci0gICAgIDxlbnRyeT5vcGVyYXRvciBjb250YWlucy1v ci1lcXVhbC10bzwvZW50cnk+Ci0gICAgIDxlbnRyeT48L2VudHJ5PgotICAgIDwvcm93PgotICAg IDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSA4LCAyNiwgMjc8L2VudHJ5Pgot ICAgICA8ZW50cnk+b3BlcmF0b3IgaXMtY29udGFpbmVkLWJ5LW9yLWVxdWFsLXRvPC9lbnRyeT4K LSAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDM8L2VudHJ5PgotICAgIDwvcm93PgotICAg IDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSA5PC9lbnRyeT4KLSAgICAgPGVu dHJ5Pm9wZXJhdG9yIGRvZXMtbm90LWV4dGVuZC1hYm92ZTwvZW50cnk+Ci0gICAgIDxlbnRyeT5P cGVyYXRvciBTdHJhdGVneSAxMTwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz4KLSAgICAg PGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDEwPC9lbnRyeT4KLSAgICAgPGVudHJ5Pm9wZXJhdG9y IGlzLWJlbG93PC9lbnRyeT4KLSAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDEyPC9lbnRy eT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kg MTE8L2VudHJ5PgotICAgICA8ZW50cnk+b3BlcmF0b3IgaXMtYWJvdmU8L2VudHJ5PgotICAgICA8 ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgOTwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz4K LSAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDEyPC9lbnRyeT4KLSAgICAgPGVudHJ5Pm9w ZXJhdG9yIGRvZXMtbm90LWV4dGVuZC1iZWxvdzwvZW50cnk+Ci0gICAgIDxlbnRyeT5PcGVyYXRv ciBTdHJhdGVneSAxMDwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz4KLSAgICAgPGVudHJ5 Pk9wZXJhdG9yIFN0cmF0ZWd5IDIwPC9lbnRyeT4KLSAgICAgPGVudHJ5Pm9wZXJhdG9yIGxlc3Mt dGhhbjwvZW50cnk+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSA1PC9lbnRyeT4KLSAg ICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgMjE8L2Vu dHJ5PgotICAgICA8ZW50cnk+b3BlcmF0b3IgbGVzcy10aGFuLW9yLWVxdWFsLXRvPC9lbnRyeT4K LSAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDU8L2VudHJ5PgotICAgIDwvcm93PgotICAg IDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSAyMjwvZW50cnk+Ci0gICAgIDxl bnRyeT5vcGVyYXRvciBncmVhdGVyLXRoYW48L2VudHJ5PgotICAgICA8ZW50cnk+T3BlcmF0b3Ig U3RyYXRlZ3kgMTwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz4KLSAgICAgPGVudHJ5Pk9w ZXJhdG9yIFN0cmF0ZWd5IDIzPC9lbnRyeT4KLSAgICAgPGVudHJ5Pm9wZXJhdG9yIGdyZWF0ZXIt dGhhbi1vci1lcXVhbC10bzwvZW50cnk+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSAx PC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgIDwvdGJvZHk+Ci0gIDwvdGdyb3VwPgotIDwvdGFibGU+ Ci0KLSA8cGFyYT4KLSAgICBTdXBwb3J0IGZ1bmN0aW9uIG51bWJlcnMgMSB0aHJvdWdoIDEwIGFy ZSByZXNlcnZlZCBmb3IgdGhlIEJSSU4gaW50ZXJuYWwKLSAgICBmdW5jdGlvbnMsIHNvIHRoZSBT UUwgbGV2ZWwgZnVuY3Rpb25zIHN0YXJ0IHdpdGggbnVtYmVyIDExLiAgU3VwcG9ydAotICAgIGZ1 bmN0aW9uIG51bWJlciAxMSBpcyB0aGUgbWFpbiBmdW5jdGlvbiByZXF1aXJlZCB0byBidWlsZCB0 aGUgaW5kZXguCi0gICAgSXQgc2hvdWxkIGFjY2VwdCB0d28gYXJndW1lbnRzIHdpdGggdGhlIHNh bWUgZGF0YSB0eXBlIGFzIHRoZSBvcGVyYXRvciBjbGFzcywKLSAgICBhbmQgcmV0dXJuIHRoZSB1 bmlvbiBvZiB0aGVtLiAgVGhlIGluY2x1c2lvbiBvcGVyYXRvciBjbGFzcyBjYW4gc3RvcmUgdW5p b24KLSAgICB2YWx1ZXMgd2l0aCBkaWZmZXJlbnQgZGF0YSB0eXBlcyBpZiBpdCBpcyBkZWZpbmVk IHdpdGggdGhlCi0gICAgPGxpdGVyYWw+U1RPUkFHRTwvbGl0ZXJhbD4gcGFyYW1ldGVyLiAgVGhl IHJldHVybiB2YWx1ZSBvZiB0aGUgdW5pb24KLSAgICBmdW5jdGlvbiBzaG91bGQgbWF0Y2ggdGhl IDxsaXRlcmFsPlNUT1JBR0U8L2xpdGVyYWw+IGRhdGEgdHlwZS4KLSA8L3BhcmE+Ci0KLSA8cGFy YT4KLSAgICBTdXBwb3J0IGZ1bmN0aW9uIG51bWJlcnMgMTIgYW5kIDE0IGFyZSBwcm92aWRlZCB0 byBzdXBwb3J0Ci0gICAgaXJyZWd1bGFyaXRpZXMgb2YgYnVpbHQtaW4gZGF0YSB0eXBlcy4gIEZ1 bmN0aW9uIG51bWJlciAxMgotICAgIGlzIHVzZWQgdG8gc3VwcG9ydCBuZXR3b3JrIGFkZHJlc3Nl cyBmcm9tIGRpZmZlcmVudCBmYW1pbGllcyB3aGljaAotICAgIGFyZSBub3QgbWVyZ2VhYmxlLiAg RnVuY3Rpb24gbnVtYmVyIDE0IGlzIHVzZWQgdG8gc3VwcG9ydAotICAgIGVtcHR5IHJhbmdlcy4g IEZ1bmN0aW9uIG51bWJlciAxMyBpcyBhbiBvcHRpb25hbCBidXQKLSAgICByZWNvbW1lbmRlZCBv bmUsIHdoaWNoIGFsbG93cyB0aGUgbmV3IHZhbHVlIHRvIGJlIGNoZWNrZWQgYmVmb3JlCi0gICAg aXQgaXMgcGFzc2VkIHRvIHRoZSB1bmlvbiBmdW5jdGlvbi4gIEFzIHRoZSBCUklOIGZyYW1ld29y ayBjYW4gc2hvcnRjdXQKLSAgICBzb21lIG9wZXJhdGlvbnMgd2hlbiB0aGUgdW5pb24gaXMgbm90 IGNoYW5nZWQsIHVzaW5nIHRoaXMKLSAgICBmdW5jdGlvbiBjYW4gaW1wcm92ZSBpbmRleCBwZXJm b3JtYW5jZS4KLSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgVG8gd3JpdGUgYW4gb3BlcmF0b3IgY2xh c3MgZm9yIGEgZGF0YSB0eXBlIHRoYXQgaW1wbGVtZW50cyBvbmx5IGFuIGVxdWFsaXR5Ci0gIG9w ZXJhdG9yIGFuZCBzdXBwb3J0cyBoYXNoaW5nLCBpdCBpcyBwb3NzaWJsZSB0byB1c2UgdGhlIGJs b29tIHN1cHBvcnQgcHJvY2VkdXJlcwotICBhbG9uZ3NpZGUgdGhlIGNvcnJlc3BvbmRpbmcgb3Bl cmF0b3JzLCBhcyBzaG93biBpbgotICA8eHJlZiBsaW5rZW5kPSJicmluLWV4dGVuc2liaWxpdHkt Ymxvb20tdGFibGUiLz4uCi0gIEFsbCBvcGVyYXRvciBjbGFzcyBtZW1iZXJzIChwcm9jZWR1cmVz IGFuZCBvcGVyYXRvcnMpIGFyZSBtYW5kYXRvcnkuCi0gPC9wYXJhPgotCi0gPHRhYmxlIGlkPSJi cmluLWV4dGVuc2liaWxpdHktYmxvb20tdGFibGUiPgotICA8dGl0bGU+UHJvY2VkdXJlIGFuZCBT dXBwb3J0IE51bWJlcnMgZm9yIEJsb29tIE9wZXJhdG9yIENsYXNzZXM8L3RpdGxlPgotICA8dGdy b3VwIGNvbHM9IjIiPgotICAgPHRoZWFkPgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVyYXRv ciBjbGFzcyBtZW1iZXI8L2VudHJ5PgotICAgICA8ZW50cnk+T2JqZWN0PC9lbnRyeT4KLSAgICA8 L3Jvdz4KLSAgIDwvdGhlYWQ+Ci0gICA8dGJvZHk+Ci0gICAgPHJvdz4KLSAgICAgPGVudHJ5PlN1 cHBvcnQgUHJvY2VkdXJlIDE8L2VudHJ5PgotICAgICA8ZW50cnk+aW50ZXJuYWwgZnVuY3Rpb24g PGZ1bmN0aW9uPmJyaW5fYmxvb21fb3BjaW5mbygpPC9mdW5jdGlvbj48L2VudHJ5PgotICAgIDwv cm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5TdXBwb3J0IFByb2NlZHVyZSAyPC9lbnRyeT4K LSAgICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX2Jsb29tX2FkZF92 YWx1ZSgpPC9mdW5jdGlvbj48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxl bnRyeT5TdXBwb3J0IFByb2NlZHVyZSAzPC9lbnRyeT4KLSAgICAgPGVudHJ5PmludGVybmFsIGZ1 bmN0aW9uIDxmdW5jdGlvbj5icmluX2Jsb29tX2NvbnNpc3RlbnQoKTwvZnVuY3Rpb24+PC9lbnRy eT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+U3VwcG9ydCBQcm9jZWR1cmUg NDwvZW50cnk+Ci0gICAgIDxlbnRyeT5pbnRlcm5hbCBmdW5jdGlvbiA8ZnVuY3Rpb24+YnJpbl9i bG9vbV91bmlvbigpPC9mdW5jdGlvbj48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0g ICAgIDxlbnRyeT5TdXBwb3J0IFByb2NlZHVyZSA1PC9lbnRyeT4KLSAgICAgPGVudHJ5PmludGVy bmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX2Jsb29tX29wdGlvbnMoKTwvZnVuY3Rpb24+PC9l bnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+U3VwcG9ydCBQcm9jZWR1 cmUgMTE8L2VudHJ5PgotICAgICA8ZW50cnk+ZnVuY3Rpb24gdG8gY29tcHV0ZSBoYXNoIG9mIGFu IGVsZW1lbnQ8L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVy YXRvciBTdHJhdGVneSAxPC9lbnRyeT4KLSAgICAgPGVudHJ5Pm9wZXJhdG9yIGVxdWFsLXRvPC9l bnRyeT4KLSAgICA8L3Jvdz4KLSAgIDwvdGJvZHk+Ci0gIDwvdGdyb3VwPgotIDwvdGFibGU+Ci0K LSA8cGFyYT4KLSAgICBTdXBwb3J0IHByb2NlZHVyZSBudW1iZXJzIDEtMTAgYXJlIHJlc2VydmVk IGZvciB0aGUgQlJJTiBpbnRlcm5hbAotICAgIGZ1bmN0aW9ucywgc28gdGhlIFNRTCBsZXZlbCBm dW5jdGlvbnMgc3RhcnQgd2l0aCBudW1iZXIgMTEuICBTdXBwb3J0Ci0gICAgZnVuY3Rpb24gbnVt YmVyIDExIGlzIHRoZSBtYWluIGZ1bmN0aW9uIHJlcXVpcmVkIHRvIGJ1aWxkIHRoZSBpbmRleC4K LSAgICBJdCBzaG91bGQgYWNjZXB0IG9uZSBhcmd1bWVudCB3aXRoIHRoZSBzYW1lIGRhdGEgdHlw ZSBhcyB0aGUgb3BlcmF0b3IgY2xhc3MsCi0gICAgYW5kIHJldHVybiBhIGhhc2ggb2YgdGhlIHZh bHVlLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBUaGUgbWlubWF4LW11bHRpIG9wZXJhdG9yIGNs YXNzIGlzIGFsc28gaW50ZW5kZWQgZm9yIGRhdGEgdHlwZXMgaW1wbGVtZW50aW5nCi0gIGEgdG90 YWxseSBvcmRlcmVkIHNldCwgYW5kIG1heSBiZSBzZWVuIGFzIGEgc2ltcGxlIGV4dGVuc2lvbiBv ZiB0aGUgbWlubWF4Ci0gIG9wZXJhdG9yIGNsYXNzLiBXaGlsZSBtaW5tYXggb3BlcmF0b3IgY2xh c3Mgc3VtbWFyaXplcyB2YWx1ZXMgZnJvbSBlYWNoIGJsb2NrCi0gIHJhbmdlIGludG8gYSBzaW5n bGUgY29udGlndW91cyBpbnRlcnZhbCwgbWlubWF4LW11bHRpIGFsbG93cyBzdW1tYXJpemF0aW9u Ci0gIGludG8gbXVsdGlwbGUgc21hbGxlciBpbnRlcnZhbHMgdG8gaW1wcm92ZSBoYW5kbGluZyBv ZiBvdXRsaWVyIHZhbHVlcy4KLSAgSXQgaXMgcG9zc2libGUgdG8gdXNlIHRoZSBtaW5tYXgtbXVs dGkgc3VwcG9ydCBwcm9jZWR1cmVzIGFsb25nc2lkZSB0aGUKLSAgY29ycmVzcG9uZGluZyBvcGVy YXRvcnMsIGFzIHNob3duIGluCi0gIDx4cmVmIGxpbmtlbmQ9ImJyaW4tZXh0ZW5zaWJpbGl0eS1t aW5tYXgtbXVsdGktdGFibGUiLz4uCi0gIEFsbCBvcGVyYXRvciBjbGFzcyBtZW1iZXJzIChwcm9j ZWR1cmVzIGFuZCBvcGVyYXRvcnMpIGFyZSBtYW5kYXRvcnkuCi0gPC9wYXJhPgotCi0gPHRhYmxl IGlkPSJicmluLWV4dGVuc2liaWxpdHktbWlubWF4LW11bHRpLXRhYmxlIj4KLSAgPHRpdGxlPlBy b2NlZHVyZSBhbmQgU3VwcG9ydCBOdW1iZXJzIGZvciBtaW5tYXgtbXVsdGkgT3BlcmF0b3IgQ2xh c3NlczwvdGl0bGU+Ci0gIDx0Z3JvdXAgY29scz0iMiI+Ci0gICA8dGhlYWQ+Ci0gICAgPHJvdz4K LSAgICAgPGVudHJ5Pk9wZXJhdG9yIGNsYXNzIG1lbWJlcjwvZW50cnk+Ci0gICAgIDxlbnRyeT5P YmplY3Q8L2VudHJ5PgotICAgIDwvcm93PgotICAgPC90aGVhZD4KLSAgIDx0Ym9keT4KLSAgICA8 cm93PgotICAgICA8ZW50cnk+U3VwcG9ydCBQcm9jZWR1cmUgMTwvZW50cnk+Ci0gICAgIDxlbnRy eT5pbnRlcm5hbCBmdW5jdGlvbiA8ZnVuY3Rpb24+YnJpbl9taW5tYXhfbXVsdGlfb3BjaW5mbygp PC9mdW5jdGlvbj48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5T dXBwb3J0IFByb2NlZHVyZSAyPC9lbnRyeT4KLSAgICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9u IDxmdW5jdGlvbj5icmluX21pbm1heF9tdWx0aV9hZGRfdmFsdWUoKTwvZnVuY3Rpb24+PC9lbnRy eT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PgotICAgICA8ZW50cnk+U3VwcG9ydCBQcm9jZWR1cmUg MzwvZW50cnk+Ci0gICAgIDxlbnRyeT5pbnRlcm5hbCBmdW5jdGlvbiA8ZnVuY3Rpb24+YnJpbl9t aW5tYXhfbXVsdGlfY29uc2lzdGVudCgpPC9mdW5jdGlvbj48L2VudHJ5PgotICAgIDwvcm93Pgot ICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5TdXBwb3J0IFByb2NlZHVyZSA0PC9lbnRyeT4KLSAgICAg PGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX21pbm1heF9tdWx0aV91bmlv bigpPC9mdW5jdGlvbj48L2VudHJ5PgotICAgIDwvcm93PgotICAgIDxyb3c+Ci0gICAgIDxlbnRy eT5TdXBwb3J0IFByb2NlZHVyZSA1PC9lbnRyeT4KLSAgICAgPGVudHJ5PmludGVybmFsIGZ1bmN0 aW9uIDxmdW5jdGlvbj5icmluX21pbm1heF9tdWx0aV9vcHRpb25zKCk8L2Z1bmN0aW9uPjwvZW50 cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz4KLSAgICAgPGVudHJ5PlN1cHBvcnQgUHJvY2VkdXJl IDExPC9lbnRyeT4KLSAgICAgPGVudHJ5PmZ1bmN0aW9uIHRvIGNvbXB1dGUgZGlzdGFuY2UgYmV0 d2VlbiB0d28gdmFsdWVzIChsZW5ndGggb2YgYSByYW5nZSk8L2VudHJ5PgotICAgIDwvcm93Pgot ICAgIDxyb3c+Ci0gICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSAxPC9lbnRyeT4KLSAgICAg PGVudHJ5Pm9wZXJhdG9yIGxlc3MtdGhhbjwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz4K LSAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDI8L2VudHJ5PgotICAgICA8ZW50cnk+b3Bl cmF0b3IgbGVzcy10aGFuLW9yLWVxdWFsLXRvPC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93 PgotICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgMzwvZW50cnk+Ci0gICAgIDxlbnRyeT5v cGVyYXRvciBlcXVhbC10bzwvZW50cnk+Ci0gICAgPC9yb3c+Ci0gICAgPHJvdz4KLSAgICAgPGVu dHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDQ8L2VudHJ5PgotICAgICA8ZW50cnk+b3BlcmF0b3IgZ3Jl YXRlci10aGFuLW9yLWVxdWFsLXRvPC9lbnRyeT4KLSAgICA8L3Jvdz4KLSAgICA8cm93PgotICAg ICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgNTwvZW50cnk+Ci0gICAgIDxlbnRyeT5vcGVyYXRv ciBncmVhdGVyLXRoYW48L2VudHJ5PgotICAgIDwvcm93PgotICAgPC90Ym9keT4KLSAgPC90Z3Jv dXA+Ci0gPC90YWJsZT4KLQotIDxwYXJhPgotICAgIEJvdGggbWlubWF4IGFuZCBpbmNsdXNpb24g b3BlcmF0b3IgY2xhc3NlcyBzdXBwb3J0IGNyb3NzLWRhdGEtdHlwZQotICAgIG9wZXJhdG9ycywg dGhvdWdoIHdpdGggdGhlc2UgdGhlIGRlcGVuZGVuY2llcyBiZWNvbWUgbW9yZSBjb21wbGljYXRl ZC4KLSAgICBUaGUgbWlubWF4IG9wZXJhdG9yIGNsYXNzIHJlcXVpcmVzIGEgZnVsbCBzZXQgb2Yg b3BlcmF0b3JzIHRvIGJlCi0gICAgZGVmaW5lZCB3aXRoIGJvdGggYXJndW1lbnRzIGhhdmluZyB0 aGUgc2FtZSBkYXRhIHR5cGUuICBJdCBhbGxvd3MKLSAgICBhZGRpdGlvbmFsIGRhdGEgdHlwZXMg dG8gYmUgc3VwcG9ydGVkIGJ5IGRlZmluaW5nIGV4dHJhIHNldHMKLSAgICBvZiBvcGVyYXRvcnMu ICBJbmNsdXNpb24gb3BlcmF0b3IgY2xhc3Mgb3BlcmF0b3Igc3RyYXRlZ2llcyBhcmUgZGVwZW5k ZW50Ci0gICAgb24gYW5vdGhlciBvcGVyYXRvciBzdHJhdGVneSBhcyBzaG93biBpbgotICAgIDx4 cmVmIGxpbmtlbmQ9ImJyaW4tZXh0ZW5zaWJpbGl0eS1pbmNsdXNpb24tdGFibGUiLz4sIG9yIHRo ZSBzYW1lCi0gICAgb3BlcmF0b3Igc3RyYXRlZ3kgYXMgdGhlbXNlbHZlcy4gIFRoZXkgcmVxdWly ZSB0aGUgZGVwZW5kZW5jeQotICAgIG9wZXJhdG9yIHRvIGJlIGRlZmluZWQgd2l0aCB0aGUgPGxp dGVyYWw+U1RPUkFHRTwvbGl0ZXJhbD4gZGF0YSB0eXBlIGFzIHRoZQotICAgIGxlZnQtaGFuZC1z aWRlIGFyZ3VtZW50IGFuZCB0aGUgb3RoZXIgc3VwcG9ydGVkIGRhdGEgdHlwZSB0byBiZSB0aGUK LSAgICByaWdodC1oYW5kLXNpZGUgYXJndW1lbnQgb2YgdGhlIHN1cHBvcnRlZCBvcGVyYXRvci4g IFNlZQotICAgIDxsaXRlcmFsPmZsb2F0NF9taW5tYXhfb3BzPC9saXRlcmFsPiBhcyBhbiBleGFt cGxlIG9mIG1pbm1heCwgYW5kCi0gICAgPGxpdGVyYWw+Ym94X2luY2x1c2lvbl9vcHM8L2xpdGVy YWw+IGFzIGFuIGV4YW1wbGUgb2YgaW5jbHVzaW9uLgotIDwvcGFyYT4KLTwvc2VjdDE+Ci08L2No YXB0ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvYnRyZWUuc2dtbCBiL2RvYy9zcmMvc2dt bC9idHJlZS5zZ21sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTgyMTAyODZiLi4w MDAwMDAwMDAwCi0tLSBhL2RvYy9zcmMvc2dtbC9idHJlZS5zZ21sCisrKyAvZGV2L251bGwKQEAg LTEsOTE0ICswLDAgQEAKLTwhLS0gZG9jL3NyYy9zZ21sL2J0cmVlLnNnbWwgLS0+Ci0KLTxjaGFw dGVyIGlkPSJidHJlZSI+Ci08dGl0bGU+Qi1UcmVlIEluZGV4ZXM8L3RpdGxlPgotCi0gICA8aW5k ZXh0ZXJtPgotICAgIDxwcmltYXJ5PmluZGV4PC9wcmltYXJ5PgotICAgIDxzZWNvbmRhcnk+Qi1U cmVlPC9zZWNvbmRhcnk+Ci0gICA8L2luZGV4dGVybT4KLQotPHNlY3QxIGlkPSJidHJlZS1pbnRy byI+Ci0gPHRpdGxlPkludHJvZHVjdGlvbjwvdGl0bGU+Ci0KLSA8cGFyYT4KLSAgPHByb2R1Y3Ru YW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBpbmNsdWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBv ZiB0aGUKLSAgc3RhbmRhcmQgPGFjcm9ueW0+YnRyZWU8L2Fjcm9ueW0+IChtdWx0aS13YXkgYmFs YW5jZWQgdHJlZSkgaW5kZXggZGF0YQotICBzdHJ1Y3R1cmUuICBBbnkgZGF0YSB0eXBlIHRoYXQg Y2FuIGJlIHNvcnRlZCBpbnRvIGEgd2VsbC1kZWZpbmVkIGxpbmVhcgotICBvcmRlciBjYW4gYmUg aW5kZXhlZCBieSBhIGJ0cmVlIGluZGV4LiAgVGhlIG9ubHkgbGltaXRhdGlvbiBpcyB0aGF0IGFu Ci0gIGluZGV4IGVudHJ5IGNhbm5vdCBleGNlZWQgYXBwcm94aW1hdGVseSBvbmUtdGhpcmQgb2Yg YSBwYWdlIChhZnRlciBUT0FTVAotICBjb21wcmVzc2lvbiwgaWYgYXBwbGljYWJsZSkuCi0gPC9w YXJhPgotCi0gPHBhcmE+Ci0gIEJlY2F1c2UgZWFjaCBidHJlZSBvcGVyYXRvciBjbGFzcyBpbXBv c2VzIGEgc29ydCBvcmRlciBvbiBpdHMgZGF0YSB0eXBlLAotICBidHJlZSBvcGVyYXRvciBjbGFz c2VzIChvciwgcmVhbGx5LCBvcGVyYXRvciBmYW1pbGllcykgaGF2ZSBjb21lIHRvIGJlCi0gIHVz ZWQgYXMgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPidzIGdlbmVyYWwgcmVw cmVzZW50YXRpb24KLSAgYW5kIHVuZGVyc3RhbmRpbmcgb2Ygc29ydGluZyBzZW1hbnRpY3MuICBU aGVyZWZvcmUsIHRoZXkndmUgYWNxdWlyZWQKLSAgc29tZSBmZWF0dXJlcyB0aGF0IGdvIGJleW9u ZCB3aGF0IHdvdWxkIGJlIG5lZWRlZCBqdXN0IHRvIHN1cHBvcnQgYnRyZWUKLSAgaW5kZXhlcywg YW5kIHBhcnRzIG9mIHRoZSBzeXN0ZW0gdGhhdCBhcmUgcXVpdGUgZGlzdGFudCBmcm9tIHRoZQot ICBidHJlZSA8YWNyb255bT5BTTwvYWNyb255bT4gbWFrZSB1c2Ugb2YgdGhlbS4KLSA8L3BhcmE+ Ci0KLTwvc2VjdDE+Ci0KLTxzZWN0MSBpZD0iYnRyZWUtYmVoYXZpb3IiPgotIDx0aXRsZT5CZWhh dmlvciBvZiBCLVRyZWUgT3BlcmF0b3IgQ2xhc3NlczwvdGl0bGU+Ci0KLSA8cGFyYT4KLSAgQXMg c2hvd24gaW4gPHhyZWYgbGlua2VuZD0ieGluZGV4LWJ0cmVlLXN0cmF0LXRhYmxlIi8+LCBhIGJ0 cmVlIG9wZXJhdG9yCi0gIGNsYXNzIG11c3QgcHJvdmlkZSBmaXZlIGNvbXBhcmlzb24gb3BlcmF0 b3JzLAotICA8bGl0ZXJhbD4mbHQ7PC9saXRlcmFsPiwKLSAgPGxpdGVyYWw+Jmx0Oz08L2xpdGVy YWw+LAotICA8bGl0ZXJhbD49PC9saXRlcmFsPiwKLSAgPGxpdGVyYWw+Jmd0Oz08L2xpdGVyYWw+ IGFuZAotICA8bGl0ZXJhbD4mZ3Q7PC9saXRlcmFsPi4KLSAgT25lIG1pZ2h0IGV4cGVjdCB0aGF0 IDxsaXRlcmFsPiZsdDsmZ3Q7PC9saXRlcmFsPiBzaG91bGQgYWxzbyBiZSBwYXJ0IG9mCi0gIHRo ZSBvcGVyYXRvciBjbGFzcywgYnV0IGl0IGlzIG5vdCwgYmVjYXVzZSBpdCB3b3VsZCBhbG1vc3Qg bmV2ZXIgYmUKLSAgdXNlZnVsIHRvIHVzZSBhIDxsaXRlcmFsPiZsdDsmZ3Q7PC9saXRlcmFsPiBX SEVSRSBjbGF1c2UgaW4gYW4gaW5kZXgKLSAgc2VhcmNoLiAgKEZvciBzb21lIHB1cnBvc2VzLCB0 aGUgcGxhbm5lciB0cmVhdHMgPGxpdGVyYWw+Jmx0OyZndDs8L2xpdGVyYWw+Ci0gIGFzIGFzc29j aWF0ZWQgd2l0aCBhIGJ0cmVlIG9wZXJhdG9yIGNsYXNzOyBidXQgaXQgZmluZHMgdGhhdCBvcGVy YXRvciB2aWEKLSAgdGhlIDxsaXRlcmFsPj08L2xpdGVyYWw+IG9wZXJhdG9yJ3MgbmVnYXRvciBs aW5rLCByYXRoZXIgdGhhbgotICBmcm9tIDxzdHJ1Y3RuYW1lPnBnX2Ftb3A8L3N0cnVjdG5hbWU+ LikKLSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgV2hlbiBzZXZlcmFsIGRhdGEgdHlwZXMgc2hhcmUg bmVhci1pZGVudGljYWwgc29ydGluZyBzZW1hbnRpY3MsIHRoZWlyCi0gIG9wZXJhdG9yIGNsYXNz ZXMgY2FuIGJlIGdyb3VwZWQgaW50byBhbiBvcGVyYXRvciBmYW1pbHkuICBEb2luZyBzbyBpcwot ICBhZHZhbnRhZ2VvdXMgYmVjYXVzZSBpdCBhbGxvd3MgdGhlIHBsYW5uZXIgdG8gbWFrZSBkZWR1 Y3Rpb25zIGFib3V0Ci0gIGNyb3NzLXR5cGUgY29tcGFyaXNvbnMuICBFYWNoIG9wZXJhdG9yIGNs YXNzIHdpdGhpbiB0aGUgZmFtaWx5IHNob3VsZAotICBjb250YWluIHRoZSBzaW5nbGUtdHlwZSBv cGVyYXRvcnMgKGFuZCBhc3NvY2lhdGVkIHN1cHBvcnQgZnVuY3Rpb25zKQotICBmb3IgaXRzIGlu cHV0IGRhdGEgdHlwZSwgd2hpbGUgY3Jvc3MtdHlwZSBjb21wYXJpc29uIG9wZXJhdG9ycyBhbmQK LSAgc3VwcG9ydCBmdW5jdGlvbnMgYXJlIDxxdW90ZT5sb29zZTwvcXVvdGU+IGluIHRoZSBmYW1p bHkuICBJdCBpcwotICByZWNvbW1lbmRhYmxlIHRoYXQgYSBjb21wbGV0ZSBzZXQgb2YgY3Jvc3Mt dHlwZSBvcGVyYXRvcnMgYmUgaW5jbHVkZWQKLSAgaW4gdGhlIGZhbWlseSwgdGh1cyBlbnN1cmlu ZyB0aGF0IHRoZSBwbGFubmVyIGNhbiByZXByZXNlbnQgYW55Ci0gIGNvbXBhcmlzb24gY29uZGl0 aW9ucyB0aGF0IGl0IGRlZHVjZXMgZnJvbSB0cmFuc2l0aXZpdHkuCi0gPC9wYXJhPgotCi0gPHBh cmE+Ci0gIFRoZXJlIGFyZSBzb21lIGJhc2ljIGFzc3VtcHRpb25zIHRoYXQgYSBidHJlZSBvcGVy YXRvciBmYW1pbHkgbXVzdAotICBzYXRpc2Z5OgotIDwvcGFyYT4KLQotIDxpdGVtaXplZGxpc3Q+ Ci0gIDxsaXN0aXRlbT4KLSAgIDxwYXJhPgotICAgIEFuIDxsaXRlcmFsPj08L2xpdGVyYWw+IG9w ZXJhdG9yIG11c3QgYmUgYW4gZXF1aXZhbGVuY2UgcmVsYXRpb247IHRoYXQKLSAgICBpcywgZm9y IGFsbCBub24tbnVsbCB2YWx1ZXMgPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiwKLSAgICA8 cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFibGU+QzwvcmVwbGFjZWFibGU+ IG9mIHRoZQotICAgIGRhdGEgdHlwZToKLQotICAgIDxpdGVtaXplZGxpc3Q+Ci0gICAgIDxsaXN0 aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgIDxyZXBsYWNlYWJsZT5BPC9yZXBsYWNlYWJsZT4g PGxpdGVyYWw+PTwvbGl0ZXJhbD4KLSAgICAgICA8cmVwbGFjZWFibGU+QTwvcmVwbGFjZWFibGU+ IGlzIHRydWUKLSAgICAgICAoPGZpcnN0dGVybT5yZWZsZXhpdmUgbGF3PC9maXJzdHRlcm0+KQot ICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8 cGFyYT4KLSAgICAgICBpZiA8cmVwbGFjZWFibGU+QTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPj08 L2xpdGVyYWw+Ci0gICAgICAgPHJlcGxhY2VhYmxlPkI8L3JlcGxhY2VhYmxlPiwKLSAgICAgICB0 aGVuIDxyZXBsYWNlYWJsZT5CPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+PTwvbGl0ZXJhbD4KLSAg ICAgICA8cmVwbGFjZWFibGU+QTwvcmVwbGFjZWFibGU+Ci0gICAgICAgKDxmaXJzdHRlcm0+c3lt bWV0cmljIGxhdzwvZmlyc3R0ZXJtPikKLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4K LSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgaWYgPHJlcGxhY2VhYmxlPkE8 L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD49PC9saXRlcmFsPgotICAgICAgIDxyZXBsYWNlYWJsZT5C PC9yZXBsYWNlYWJsZT4gYW5kIDxyZXBsYWNlYWJsZT5CPC9yZXBsYWNlYWJsZT4KLSAgICAgICA8 bGl0ZXJhbD49PC9saXRlcmFsPiA8cmVwbGFjZWFibGU+QzwvcmVwbGFjZWFibGU+LAotICAgICAg IHRoZW4gPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD49PC9saXRlcmFsPgot ICAgICAgIDxyZXBsYWNlYWJsZT5DPC9yZXBsYWNlYWJsZT4KLSAgICAgICAoPGZpcnN0dGVybT50 cmFuc2l0aXZlIGxhdzwvZmlyc3R0ZXJtPikKLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRl bT4KLSAgICA8L2l0ZW1pemVkbGlzdD4KLSAgIDwvcGFyYT4KLSAgPC9saXN0aXRlbT4KLQotICA8 bGlzdGl0ZW0+Ci0gICA8cGFyYT4KLSAgICBBIDxsaXRlcmFsPiZsdDs8L2xpdGVyYWw+IG9wZXJh dG9yIG11c3QgYmUgYSBzdHJvbmcgb3JkZXJpbmcgcmVsYXRpb247Ci0gICAgdGhhdCBpcywgZm9y IGFsbCBub24tbnVsbCB2YWx1ZXMgPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiwKLSAgICA8 cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFibGU+QzwvcmVwbGFjZWFibGU+ OgotCi0gICAgPGl0ZW1pemVkbGlzdD4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0g ICAgICAgPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD4mbHQ7PC9saXRlcmFs PgotICAgICAgIDxyZXBsYWNlYWJsZT5BPC9yZXBsYWNlYWJsZT4gaXMgZmFsc2UKLSAgICAgICAo PGZpcnN0dGVybT5pcnJlZmxleGl2ZSBsYXc8L2ZpcnN0dGVybT4pCi0gICAgICA8L3BhcmE+Ci0g ICAgIDwvbGlzdGl0ZW0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgIGlm IDxyZXBsYWNlYWJsZT5BPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+Jmx0OzwvbGl0ZXJhbD4KLSAg ICAgICA8cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+Ci0gICAgICAgYW5kIDxyZXBsYWNlYWJs ZT5CPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+Jmx0OzwvbGl0ZXJhbD4KLSAgICAgICA8cmVwbGFj ZWFibGU+QzwvcmVwbGFjZWFibGU+LAotICAgICAgIHRoZW4gPHJlcGxhY2VhYmxlPkE8L3JlcGxh Y2VhYmxlPiA8bGl0ZXJhbD4mbHQ7PC9saXRlcmFsPgotICAgICAgIDxyZXBsYWNlYWJsZT5DPC9y ZXBsYWNlYWJsZT4KLSAgICAgICAoPGZpcnN0dGVybT50cmFuc2l0aXZlIGxhdzwvZmlyc3R0ZXJt PikKLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L2l0ZW1pemVkbGlzdD4K LSAgIDwvcGFyYT4KLSAgPC9saXN0aXRlbT4KLQotICA8bGlzdGl0ZW0+Ci0gICA8cGFyYT4KLSAg ICBGdXJ0aGVybW9yZSwgdGhlIG9yZGVyaW5nIGlzIHRvdGFsOyB0aGF0IGlzLCBmb3IgYWxsIG5v bi1udWxsCi0gICAgdmFsdWVzIDxyZXBsYWNlYWJsZT5BPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNl YWJsZT5CPC9yZXBsYWNlYWJsZT46Ci0KLSAgICA8aXRlbWl6ZWRsaXN0PgotICAgICA8bGlzdGl0 ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBleGFjdGx5IG9uZSBvZiA8cmVwbGFjZWFibGU+QTwv cmVwbGFjZWFibGU+IDxsaXRlcmFsPiZsdDs8L2xpdGVyYWw+Ci0gICAgICAgPHJlcGxhY2VhYmxl PkI8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPgotICAgICAgIDxs aXRlcmFsPj08L2xpdGVyYWw+IDxyZXBsYWNlYWJsZT5CPC9yZXBsYWNlYWJsZT4sIGFuZAotICAg ICAgIDxyZXBsYWNlYWJsZT5CPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+Jmx0OzwvbGl0ZXJhbD4K LSAgICAgICA8cmVwbGFjZWFibGU+QTwvcmVwbGFjZWFibGU+IGlzIHRydWUKLSAgICAgICAoPGZp cnN0dGVybT50cmljaG90b215IGxhdzwvZmlyc3R0ZXJtPikKLSAgICAgIDwvcGFyYT4KLSAgICAg PC9saXN0aXRlbT4KLSAgICA8L2l0ZW1pemVkbGlzdD4KLQotICAgIChUaGUgdHJpY2hvdG9teSBs YXcganVzdGlmaWVzIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBjb21wYXJpc29uIHN1cHBvcnQKLSAg ICBmdW5jdGlvbiwgb2YgY291cnNlLikKLSAgIDwvcGFyYT4KLSAgPC9saXN0aXRlbT4KLSA8L2l0 ZW1pemVkbGlzdD4KLQotIDxwYXJhPgotICBUaGUgb3RoZXIgdGhyZWUgb3BlcmF0b3JzIGFyZSBk ZWZpbmVkIGluIHRlcm1zIG9mIDxsaXRlcmFsPj08L2xpdGVyYWw+Ci0gIGFuZCA8bGl0ZXJhbD4m bHQ7PC9saXRlcmFsPiBpbiB0aGUgb2J2aW91cyB3YXksIGFuZCBtdXN0IGFjdCBjb25zaXN0ZW50 bHkKLSAgd2l0aCB0aGVtLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBGb3IgYW4gb3BlcmF0b3Ig ZmFtaWx5IHN1cHBvcnRpbmcgbXVsdGlwbGUgZGF0YSB0eXBlcywgdGhlIGFib3ZlIGxhd3MgbXVz dAotICBob2xkIHdoZW4gPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxl PkI8L3JlcGxhY2VhYmxlPiwKLSAgPHJlcGxhY2VhYmxlPkM8L3JlcGxhY2VhYmxlPiBhcmUgdGFr ZW4gZnJvbSBhbnkgZGF0YSB0eXBlcyBpbiB0aGUgZmFtaWx5LgotICBUaGUgdHJhbnNpdGl2ZSBs YXdzIGFyZSB0aGUgdHJpY2tpZXN0IHRvIGVuc3VyZSwgYXMgaW4gY3Jvc3MtdHlwZQotICBzaXR1 YXRpb25zIHRoZXkgcmVwcmVzZW50IHN0YXRlbWVudHMgdGhhdCB0aGUgYmVoYXZpb3JzIG9mIHR3 byBvciB0aHJlZQotICBkaWZmZXJlbnQgb3BlcmF0b3JzIGFyZSBjb25zaXN0ZW50LgotICBBcyBh biBleGFtcGxlLCBpdCB3b3VsZCBub3Qgd29yayB0byBwdXQgPHR5cGU+ZmxvYXQ4PC90eXBlPgot ICBhbmQgPHR5cGU+bnVtZXJpYzwvdHlwZT4gaW50byB0aGUgc2FtZSBvcGVyYXRvciBmYW1pbHks IGF0IGxlYXN0IG5vdCB3aXRoCi0gIHRoZSBjdXJyZW50IHNlbWFudGljcyB0aGF0IDx0eXBlPm51 bWVyaWM8L3R5cGU+IHZhbHVlcyBhcmUgY29udmVydGVkCi0gIHRvIDx0eXBlPmZsb2F0ODwvdHlw ZT4gZm9yIGNvbXBhcmlzb24gdG8gYSA8dHlwZT5mbG9hdDg8L3R5cGU+LiAgQmVjYXVzZQotICBv ZiB0aGUgbGltaXRlZCBhY2N1cmFjeSBvZiA8dHlwZT5mbG9hdDg8L3R5cGU+LCB0aGlzIG1lYW5z IHRoZXJlIGFyZQotICBkaXN0aW5jdCA8dHlwZT5udW1lcmljPC90eXBlPiB2YWx1ZXMgdGhhdCB3 aWxsIGNvbXBhcmUgZXF1YWwgdG8gdGhlCi0gIHNhbWUgPHR5cGU+ZmxvYXQ4PC90eXBlPiB2YWx1 ZSwgYW5kIHRodXMgdGhlIHRyYW5zaXRpdmUgbGF3IHdvdWxkIGZhaWwuCi0gPC9wYXJhPgotCi0g PHBhcmE+Ci0gIEFub3RoZXIgcmVxdWlyZW1lbnQgZm9yIGEgbXVsdGlwbGUtZGF0YS10eXBlIGZh bWlseSBpcyB0aGF0IGFueSBpbXBsaWNpdAotICBvciBiaW5hcnktY29lcmNpb24gY2FzdHMgdGhh dCBhcmUgZGVmaW5lZCBiZXR3ZWVuIGRhdGEgdHlwZXMgaW5jbHVkZWQgaW4KLSAgdGhlIG9wZXJh dG9yIGZhbWlseSBtdXN0IG5vdCBjaGFuZ2UgdGhlIGFzc29jaWF0ZWQgc29ydCBvcmRlcmluZy4K LSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgSXQgc2hvdWxkIGJlIGZhaXJseSBjbGVhciB3aHkgYSBi dHJlZSBpbmRleCByZXF1aXJlcyB0aGVzZSBsYXdzIHRvIGhvbGQKLSAgd2l0aGluIGEgc2luZ2xl IGRhdGEgdHlwZTogd2l0aG91dCB0aGVtIHRoZXJlIGlzIG5vIG9yZGVyaW5nIHRvIGFycmFuZ2UK LSAgdGhlIGtleXMgd2l0aC4gIEFsc28sIGluZGV4IHNlYXJjaGVzIHVzaW5nIGEgY29tcGFyaXNv biBrZXkgb2YgYQotICBkaWZmZXJlbnQgZGF0YSB0eXBlIHJlcXVpcmUgY29tcGFyaXNvbnMgdG8g YmVoYXZlIHNhbmVseSBhY3Jvc3MgdHdvCi0gIGRhdGEgdHlwZXMuICBUaGUgZXh0ZW5zaW9ucyB0 byB0aHJlZSBvciBtb3JlIGRhdGEgdHlwZXMgd2l0aGluIGEgZmFtaWx5Ci0gIGFyZSBub3Qgc3Ry aWN0bHkgcmVxdWlyZWQgYnkgdGhlIGJ0cmVlIGluZGV4IG1lY2hhbmlzbSBpdHNlbGYsIGJ1dCB0 aGUKLSAgcGxhbm5lciByZWxpZXMgb24gdGhlbSBmb3Igb3B0aW1pemF0aW9uIHB1cnBvc2VzLgot IDwvcGFyYT4KLQotPC9zZWN0MT4KLQotPHNlY3QxIGlkPSJidHJlZS1zdXBwb3J0LWZ1bmNzIj4K LSA8dGl0bGU+Qi1UcmVlIFN1cHBvcnQgRnVuY3Rpb25zPC90aXRsZT4KLQotIDxwYXJhPgotICBB cyBzaG93biBpbiA8eHJlZiBsaW5rZW5kPSJ4aW5kZXgtYnRyZWUtc3VwcG9ydC10YWJsZSIvPiwg YnRyZWUgZGVmaW5lcwotICBvbmUgcmVxdWlyZWQgYW5kIGZvdXIgb3B0aW9uYWwgc3VwcG9ydCBm dW5jdGlvbnMuICBUaGUgZml2ZQotICB1c2VyLWRlZmluZWQgbWV0aG9kcyBhcmU6Ci0gPC9wYXJh PgotIDx2YXJpYWJsZWxpc3Q+Ci0gIDx2YXJsaXN0ZW50cnk+Ci0gICA8dGVybT48ZnVuY3Rpb24+ b3JkZXI8L2Z1bmN0aW9uPjwvdGVybT4KLSAgIDxsaXN0aXRlbT4KLSAgICA8cGFyYT4KLSAgICAg Rm9yIGVhY2ggY29tYmluYXRpb24gb2YgZGF0YSB0eXBlcyB0aGF0IGEgYnRyZWUgb3BlcmF0b3Ig ZmFtaWx5Ci0gICAgIHByb3ZpZGVzIGNvbXBhcmlzb24gb3BlcmF0b3JzIGZvciwgaXQgbXVzdCBw cm92aWRlIGEgY29tcGFyaXNvbgotICAgICBzdXBwb3J0IGZ1bmN0aW9uLCByZWdpc3RlcmVkIGlu Ci0gICAgIDxzdHJ1Y3RuYW1lPnBnX2FtcHJvYzwvc3RydWN0bmFtZT4gd2l0aCBzdXBwb3J0IGZ1 bmN0aW9uIG51bWJlciAxCi0gICAgIGFuZAotICAgICA8c3RydWN0ZmllbGQ+YW1wcm9jbGVmdHR5 cGU8L3N0cnVjdGZpZWxkPi88c3RydWN0ZmllbGQ+YW1wcm9jcmlnaHR0eXBlPC9zdHJ1Y3RmaWVs ZD4KLSAgICAgZXF1YWwgdG8gdGhlIGxlZnQgYW5kIHJpZ2h0IGRhdGEgdHlwZXMgZm9yIHRoZSBj b21wYXJpc29uIChpLmUuLAotICAgICB0aGUgc2FtZSBkYXRhIHR5cGVzIHRoYXQgdGhlIG1hdGNo aW5nIG9wZXJhdG9ycyBhcmUgcmVnaXN0ZXJlZAotICAgICB3aXRoIGluIDxzdHJ1Y3RuYW1lPnBn X2Ftb3A8L3N0cnVjdG5hbWU+KS4gIFRoZSBjb21wYXJpc29uCi0gICAgIGZ1bmN0aW9uIG11c3Qg dGFrZSB0d28gbm9uLW51bGwgdmFsdWVzCi0gICAgIDxyZXBsYWNlYWJsZT5BPC9yZXBsYWNlYWJs ZT4gYW5kIDxyZXBsYWNlYWJsZT5CPC9yZXBsYWNlYWJsZT4gYW5kCi0gICAgIHJldHVybiBhbiA8 dHlwZT5pbnQzMjwvdHlwZT4gdmFsdWUgdGhhdCBpcwotICAgICA8bGl0ZXJhbD4mbHQ7PC9saXRl cmFsPiA8bGl0ZXJhbD4wPC9saXRlcmFsPiwKLSAgICAgPGxpdGVyYWw+MDwvbGl0ZXJhbD4sIG9y IDxsaXRlcmFsPiZndDs8L2xpdGVyYWw+Ci0gICAgIDxsaXRlcmFsPjA8L2xpdGVyYWw+IHdoZW4g PHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPgotICAgICA8bGl0ZXJhbD4mbHQ7PC9saXRlcmFs PiA8cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+LAotICAgICA8cmVwbGFjZWFibGU+QTwvcmVw bGFjZWFibGU+IDxsaXRlcmFsPj08L2xpdGVyYWw+Ci0gICAgIDxyZXBsYWNlYWJsZT5CPC9yZXBs YWNlYWJsZT4sIG9yIDxyZXBsYWNlYWJsZT5BPC9yZXBsYWNlYWJsZT4KLSAgICAgPGxpdGVyYWw+ Jmd0OzwvbGl0ZXJhbD4gPHJlcGxhY2VhYmxlPkI8L3JlcGxhY2VhYmxlPiwKLSAgICAgcmVzcGVj dGl2ZWx5LiAgQSBudWxsIHJlc3VsdCBpcyBkaXNhbGxvd2VkOiBhbGwgdmFsdWVzIG9mIHRoZQot ICAgICBkYXRhIHR5cGUgbXVzdCBiZSBjb21wYXJhYmxlLiAgU2VlCi0gICAgIDxmaWxlbmFtZT5z cmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idGNvbXBhcmUuYzwvZmlsZW5hbWU+IGZvcgotICAg ICBleGFtcGxlcy4KLSAgICA8L3BhcmE+Ci0KLSAgICA8cGFyYT4KLSAgICAgSWYgdGhlIGNvbXBh cmVkIHZhbHVlcyBhcmUgb2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZSwgdGhlCi0gICAgIGFwcHJv cHJpYXRlIGNvbGxhdGlvbiBPSUQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNvbXBhcmlzb24KLSAg ICAgc3VwcG9ydCBmdW5jdGlvbiwgdXNpbmcgdGhlIHN0YW5kYXJkCi0gICAgIDxmdW5jdGlvbj5Q R19HRVRfQ09MTEFUSU9OKCk8L2Z1bmN0aW9uPiBtZWNoYW5pc20uCi0gICAgPC9wYXJhPgotICAg PC9saXN0aXRlbT4KLSAgPC92YXJsaXN0ZW50cnk+Ci0gIDx2YXJsaXN0ZW50cnk+Ci0gICA8dGVy bT48ZnVuY3Rpb24+c29ydHN1cHBvcnQ8L2Z1bmN0aW9uPjwvdGVybT4KLSAgIDxsaXN0aXRlbT4K LSAgICA8cGFyYT4KLSAgICAgT3B0aW9uYWxseSwgYSBidHJlZSBvcGVyYXRvciBmYW1pbHkgbWF5 IHByb3ZpZGUgPGZpcnN0dGVybT5zb3J0Ci0gICAgICBzdXBwb3J0PC9maXJzdHRlcm0+IGZ1bmN0 aW9uKHMpLCByZWdpc3RlcmVkIHVuZGVyIHN1cHBvcnQKLSAgICAgZnVuY3Rpb24gbnVtYmVyIDIu ICBUaGVzZSBmdW5jdGlvbnMgYWxsb3cgaW1wbGVtZW50aW5nCi0gICAgIGNvbXBhcmlzb25zIGZv ciBzb3J0aW5nIHB1cnBvc2VzIGluIGEgbW9yZSBlZmZpY2llbnQgd2F5IHRoYW4KLSAgICAgbmFp dmVseSBjYWxsaW5nIHRoZSBjb21wYXJpc29uIHN1cHBvcnQgZnVuY3Rpb24uICBUaGUgQVBJcwot ICAgICBpbnZvbHZlZCBpbiB0aGlzIGFyZSBkZWZpbmVkIGluCi0gICAgIDxmaWxlbmFtZT5zcmMv aW5jbHVkZS91dGlscy9zb3J0c3VwcG9ydC5oPC9maWxlbmFtZT4uCi0gICAgPC9wYXJhPgotICAg PC9saXN0aXRlbT4KLSAgPC92YXJsaXN0ZW50cnk+Ci0gIDx2YXJsaXN0ZW50cnk+Ci0gICA8dGVy bT48ZnVuY3Rpb24+aW5fcmFuZ2U8L2Z1bmN0aW9uPjwvdGVybT4KLSAgIDxsaXN0aXRlbT4KLSAg ICA8aW5kZXh0ZXJtPgotICAgICA8cHJpbWFyeT5pbl9yYW5nZSBzdXBwb3J0IGZ1bmN0aW9uczwv cHJpbWFyeT4KLSAgICA8L2luZGV4dGVybT4KLQotICAgIDxpbmRleHRlcm0+Ci0gICAgIDxwcmlt YXJ5PnN1cHBvcnQgZnVuY3Rpb25zPC9wcmltYXJ5PgotICAgICA8c2Vjb25kYXJ5PmluX3Jhbmdl PC9zZWNvbmRhcnk+Ci0gICAgPC9pbmRleHRlcm0+Ci0gICAgPHBhcmE+Ci0gICAgIE9wdGlvbmFs bHksIGEgYnRyZWUgb3BlcmF0b3IgZmFtaWx5IG1heSBwcm92aWRlCi0gICAgIDxmaXJzdHRlcm0+ aW5fcmFuZ2U8L2ZpcnN0dGVybT4gc3VwcG9ydCBmdW5jdGlvbihzKSwgcmVnaXN0ZXJlZAotICAg ICB1bmRlciBzdXBwb3J0IGZ1bmN0aW9uIG51bWJlciAzLiAgVGhlc2UgYXJlIG5vdCB1c2VkIGR1 cmluZyBidHJlZQotICAgICBpbmRleCBvcGVyYXRpb25zOyByYXRoZXIsIHRoZXkgZXh0ZW5kIHRo ZSBzZW1hbnRpY3Mgb2YgdGhlCi0gICAgIG9wZXJhdG9yIGZhbWlseSBzbyB0aGF0IGl0IGNhbiBz dXBwb3J0IHdpbmRvdyBjbGF1c2VzIGNvbnRhaW5pbmcKLSAgICAgdGhlIDxsaXRlcmFsPlJBTkdF PC9saXRlcmFsPiA8cmVwbGFjZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4KLSAgICAgPGxpdGVy YWw+UFJFQ0VESU5HPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+UkFOR0U8L2xpdGVyYWw+Ci0gICAg IDxyZXBsYWNlYWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD5GT0xMT1dJTkc8L2xp dGVyYWw+Ci0gICAgIGZyYW1lIGJvdW5kIHR5cGVzIChzZWUgPHhyZWYKLSAgICAgIGxpbmtlbmQ9 InN5bnRheC13aW5kb3ctZnVuY3Rpb25zIi8+KS4gIEZ1bmRhbWVudGFsbHksIHRoZSBleHRyYQot ICAgICBpbmZvcm1hdGlvbiBwcm92aWRlZCBpcyBob3cgdG8gYWRkIG9yIHN1YnRyYWN0IGFuCi0g ICAgIDxyZXBsYWNlYWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPiB2YWx1ZSBpbiBhIHdheSB0aGF0 IGlzCi0gICAgIGNvbXBhdGlibGUgd2l0aCB0aGUgZmFtaWx5J3MgZGF0YSBvcmRlcmluZy4KLSAg ICA8L3BhcmE+Ci0KLSAgICA8cGFyYT4KLSAgICAgQW4gPGZ1bmN0aW9uPmluX3JhbmdlPC9mdW5j dGlvbj4gZnVuY3Rpb24gbXVzdCBoYXZlIHRoZSBzaWduYXR1cmUKLTxzeW5vcHNpcz4KLWluX3Jh bmdlKDxyZXBsYWNlYWJsZT52YWw8L3JlcGxhY2VhYmxlPiB0eXBlMSwgPHJlcGxhY2VhYmxlPmJh c2U8L3JlcGxhY2VhYmxlPiB0eXBlMSwgPHJlcGxhY2VhYmxlPm9mZnNldDwvcmVwbGFjZWFibGU+ IHR5cGUyLCA8cmVwbGFjZWFibGU+c3ViPC9yZXBsYWNlYWJsZT4gYm9vbCwgPHJlcGxhY2VhYmxl Pmxlc3M8L3JlcGxhY2VhYmxlPiBib29sKQotcmV0dXJucyBib29sCi08L3N5bm9wc2lzPgotICAg ICA8cmVwbGFjZWFibGU+dmFsPC9yZXBsYWNlYWJsZT4gYW5kCi0gICAgIDxyZXBsYWNlYWJsZT5i YXNlPC9yZXBsYWNlYWJsZT4gbXVzdCBiZSBvZiB0aGUgc2FtZSB0eXBlLCB3aGljaAotICAgICBp cyBvbmUgb2YgdGhlIHR5cGVzIHN1cHBvcnRlZCBieSB0aGUgb3BlcmF0b3IgZmFtaWx5IChpLmUu LCBhCi0gICAgIHR5cGUgZm9yIHdoaWNoIGl0IHByb3ZpZGVzIGFuIG9yZGVyaW5nKS4gIEhvd2V2 ZXIsCi0gICAgIDxyZXBsYWNlYWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPiBjb3VsZCBiZSBvZiBh IGRpZmZlcmVudCB0eXBlLAotICAgICB3aGljaCBtaWdodCBiZSBvbmUgb3RoZXJ3aXNlIHVuc3Vw cG9ydGVkIGJ5IHRoZSBmYW1pbHkuICBBbgotICAgICBleGFtcGxlIGlzIHRoYXQgdGhlIGJ1aWx0 LWluIDxsaXRlcmFsPnRpbWVfb3BzPC9saXRlcmFsPiBmYW1pbHkKLSAgICAgcHJvdmlkZXMgYW4g PGZ1bmN0aW9uPmluX3JhbmdlPC9mdW5jdGlvbj4gZnVuY3Rpb24gdGhhdCBoYXMKLSAgICAgPHJl cGxhY2VhYmxlPm9mZnNldDwvcmVwbGFjZWFibGU+IG9mIHR5cGUgPHR5cGU+aW50ZXJ2YWw8L3R5 cGU+LgotICAgICBBIGZhbWlseSBjYW4gcHJvdmlkZSA8ZnVuY3Rpb24+aW5fcmFuZ2U8L2Z1bmN0 aW9uPiBmdW5jdGlvbnMgZm9yCi0gICAgIGFueSBvZiBpdHMgc3VwcG9ydGVkIHR5cGVzIGFuZCBv bmUgb3IgbW9yZQotICAgICA8cmVwbGFjZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4gdHlwZXMu ICBFYWNoCi0gICAgIDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+IGZ1bmN0aW9uIHNob3Vs ZCBiZSBlbnRlcmVkIGluCi0gICAgIDxzdHJ1Y3RuYW1lPnBnX2FtcHJvYzwvc3RydWN0bmFtZT4g d2l0aAotICAgICA8c3RydWN0ZmllbGQ+YW1wcm9jbGVmdHR5cGU8L3N0cnVjdGZpZWxkPiBlcXVh bCB0bwotICAgICA8dHlwZT50eXBlMTwvdHlwZT4gYW5kIDxzdHJ1Y3RmaWVsZD5hbXByb2NyaWdo dHR5cGU8L3N0cnVjdGZpZWxkPgotICAgICBlcXVhbCB0byA8dHlwZT50eXBlMjwvdHlwZT4uCi0g ICAgPC9wYXJhPgotCi0gICAgPHBhcmE+Ci0gICAgIFRoZSBlc3NlbnRpYWwgc2VtYW50aWNzIG9m IGFuIDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+Ci0gICAgIGZ1bmN0aW9uIGRlcGVuZCBv biB0aGUgdHdvIEJvb2xlYW4gZmxhZyBwYXJhbWV0ZXJzLiAgSXQgc2hvdWxkCi0gICAgIGFkZCBv ciBzdWJ0cmFjdCA8cmVwbGFjZWFibGU+YmFzZTwvcmVwbGFjZWFibGU+IGFuZAotICAgICA8cmVw bGFjZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4sIHRoZW4gY29tcGFyZQotICAgICA8cmVwbGFj ZWFibGU+dmFsPC9yZXBsYWNlYWJsZT4gdG8gdGhlIHJlc3VsdCwgYXMgZm9sbG93czoKLSAgICAg PGl0ZW1pemVkbGlzdD4KLSAgICAgIDxsaXN0aXRlbT4KLSAgICAgICA8cGFyYT4KLSAgICAgICAg aWYgPGxpdGVyYWw+ITwvbGl0ZXJhbD48cmVwbGFjZWFibGU+c3ViPC9yZXBsYWNlYWJsZT4gYW5k Ci0gICAgICAgIDxsaXRlcmFsPiE8L2xpdGVyYWw+PHJlcGxhY2VhYmxlPmxlc3M8L3JlcGxhY2Vh YmxlPiwgcmV0dXJuCi0gICAgICAgIDxyZXBsYWNlYWJsZT52YWw8L3JlcGxhY2VhYmxlPiA8bGl0 ZXJhbD4mZ3Q7PTwvbGl0ZXJhbD4KLSAgICAgICAgKDxyZXBsYWNlYWJsZT5iYXNlPC9yZXBsYWNl YWJsZT4gPGxpdGVyYWw+KzwvbGl0ZXJhbD4KLSAgICAgICAgPHJlcGxhY2VhYmxlPm9mZnNldDwv cmVwbGFjZWFibGU+KQotICAgICAgIDwvcGFyYT4KLSAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICA8 bGlzdGl0ZW0+Ci0gICAgICAgPHBhcmE+Ci0gICAgICAgIGlmIDxsaXRlcmFsPiE8L2xpdGVyYWw+ PHJlcGxhY2VhYmxlPnN1YjwvcmVwbGFjZWFibGU+IGFuZAotICAgICAgICA8cmVwbGFjZWFibGU+ bGVzczwvcmVwbGFjZWFibGU+LCByZXR1cm4KLSAgICAgICAgPHJlcGxhY2VhYmxlPnZhbDwvcmVw bGFjZWFibGU+IDxsaXRlcmFsPiZsdDs9PC9saXRlcmFsPgotICAgICAgICAoPHJlcGxhY2VhYmxl PmJhc2U8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD4rPC9saXRlcmFsPgotICAgICAgICA8cmVwbGFj ZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4pCi0gICAgICAgPC9wYXJhPgotICAgICAgPC9saXN0 aXRlbT4KLSAgICAgIDxsaXN0aXRlbT4KLSAgICAgICA8cGFyYT4KLSAgICAgICAgaWYgPHJlcGxh Y2VhYmxlPnN1YjwvcmVwbGFjZWFibGU+IGFuZAotICAgICAgICA8bGl0ZXJhbD4hPC9saXRlcmFs PjxyZXBsYWNlYWJsZT5sZXNzPC9yZXBsYWNlYWJsZT4sIHJldHVybgotICAgICAgICA8cmVwbGFj ZWFibGU+dmFsPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+Jmd0Oz08L2xpdGVyYWw+Ci0gICAgICAg ICg8cmVwbGFjZWFibGU+YmFzZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPi08L2xpdGVyYWw+Ci0g ICAgICAgIDxyZXBsYWNlYWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPikKLSAgICAgICA8L3BhcmE+ Ci0gICAgICA8L2xpc3RpdGVtPgotICAgICAgPGxpc3RpdGVtPgotICAgICAgIDxwYXJhPgotICAg ICAgICBpZiA8cmVwbGFjZWFibGU+c3ViPC9yZXBsYWNlYWJsZT4gYW5kCi0gICAgICAgIDxyZXBs YWNlYWJsZT5sZXNzPC9yZXBsYWNlYWJsZT4sIHJldHVybgotICAgICAgICA8cmVwbGFjZWFibGU+ dmFsPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+Jmx0Oz08L2xpdGVyYWw+Ci0gICAgICAgICg8cmVw bGFjZWFibGU+YmFzZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPi08L2xpdGVyYWw+Ci0gICAgICAg IDxyZXBsYWNlYWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPikKLSAgICAgICA8L3BhcmE+Ci0gICAg ICA8L2xpc3RpdGVtPgotICAgICA8L2l0ZW1pemVkbGlzdD4KLSAgICAgQmVmb3JlIGRvaW5nIHNv LCB0aGUgZnVuY3Rpb24gc2hvdWxkIGNoZWNrIHRoZSBzaWduIG9mCi0gICAgIDxyZXBsYWNlYWJs ZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPjogaWYgaXQgaXMgbGVzcyB0aGFuIHplcm8sIHJhaXNlCi0g ICAgIGVycm9yCi0gICAgIDxsaXRlcmFsPkVSUkNPREVfSU5WQUxJRF9QUkVDRURJTkdfT1JfRk9M TE9XSU5HX1NJWkU8L2xpdGVyYWw+Ci0gICAgICgyMjAxMykgd2l0aCBlcnJvciB0ZXh0IGxpa2Ug PHF1b3RlPmludmFsaWQgcHJlY2VkaW5nIG9yCi0gICAgICBmb2xsb3dpbmcgc2l6ZSBpbiB3aW5k b3cgZnVuY3Rpb248L3F1b3RlPi4gIChUaGlzIGlzIHJlcXVpcmVkIGJ5Ci0gICAgIHRoZSBTUUwg c3RhbmRhcmQsIGFsdGhvdWdoIG5vbnN0YW5kYXJkIG9wZXJhdG9yIGZhbWlsaWVzIG1pZ2h0Ci0g ICAgIHBlcmhhcHMgY2hvb3NlIHRvIGlnbm9yZSB0aGlzIHJlc3RyaWN0aW9uLCBzaW5jZSB0aGVy ZSBzZWVtcyB0bwotICAgICBiZSBsaXR0bGUgc2VtYW50aWMgbmVjZXNzaXR5IGZvciBpdC4pIFRo aXMgcmVxdWlyZW1lbnQgaXMKLSAgICAgZGVsZWdhdGVkIHRvIHRoZSA8ZnVuY3Rpb24+aW5fcmFu Z2U8L2Z1bmN0aW9uPiBmdW5jdGlvbiBzbyB0aGF0Ci0gICAgIHRoZSBjb3JlIGNvZGUgbmVlZG4n dCB1bmRlcnN0YW5kIHdoYXQgPHF1b3RlPmxlc3MgdGhhbgotICAgICAgemVybzwvcXVvdGU+IG1l YW5zIGZvciBhIHBhcnRpY3VsYXIgZGF0YSB0eXBlLgotICAgIDwvcGFyYT4KLQotICAgIDxwYXJh PgotICAgICBBbiBhZGRpdGlvbmFsIGV4cGVjdGF0aW9uIGlzIHRoYXQgPGZ1bmN0aW9uPmluX3Jh bmdlPC9mdW5jdGlvbj4KLSAgICAgZnVuY3Rpb25zIHNob3VsZCwgaWYgcHJhY3RpY2FsLCBhdm9p ZCB0aHJvd2luZyBhbiBlcnJvciBpZgotICAgICA8cmVwbGFjZWFibGU+YmFzZTwvcmVwbGFjZWFi bGU+IDxsaXRlcmFsPis8L2xpdGVyYWw+Ci0gICAgIDxyZXBsYWNlYWJsZT5vZmZzZXQ8L3JlcGxh Y2VhYmxlPiBvcgotICAgICA8cmVwbGFjZWFibGU+YmFzZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFs Pi08L2xpdGVyYWw+Ci0gICAgIDxyZXBsYWNlYWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPiB3b3Vs ZCBvdmVyZmxvdy4gIFRoZSBjb3JyZWN0Ci0gICAgIGNvbXBhcmlzb24gcmVzdWx0IGNhbiBiZSBk ZXRlcm1pbmVkIGV2ZW4gaWYgdGhhdCB2YWx1ZSB3b3VsZCBiZQotICAgICBvdXQgb2YgdGhlIGRh dGEgdHlwZSdzIHJhbmdlLiAgTm90ZSB0aGF0IGlmIHRoZSBkYXRhIHR5cGUKLSAgICAgaW5jbHVk ZXMgY29uY2VwdHMgc3VjaCBhcyA8cXVvdGU+aW5maW5pdHk8L3F1b3RlPiBvcgotICAgICA8cXVv dGU+TmFOPC9xdW90ZT4sIGV4dHJhIGNhcmUgbWF5IGJlIG5lZWRlZCB0byBlbnN1cmUgdGhhdAot ICAgICA8ZnVuY3Rpb24+aW5fcmFuZ2U8L2Z1bmN0aW9uPidzIHJlc3VsdHMgYWdyZWUgd2l0aCB0 aGUgbm9ybWFsCi0gICAgIHNvcnQgb3JkZXIgb2YgdGhlIG9wZXJhdG9yIGZhbWlseS4KLSAgICA8 L3BhcmE+Ci0KLSAgICA8cGFyYT4KLSAgICAgVGhlIHJlc3VsdHMgb2YgdGhlIDxmdW5jdGlvbj5p bl9yYW5nZTwvZnVuY3Rpb24+IGZ1bmN0aW9uIG11c3QgYmUKLSAgICAgY29uc2lzdGVudCB3aXRo IHRoZSBzb3J0IG9yZGVyaW5nIGltcG9zZWQgYnkgdGhlIG9wZXJhdG9yIGZhbWlseS4KLSAgICAg VG8gYmUgcHJlY2lzZSwgZ2l2ZW4gYW55IGZpeGVkIHZhbHVlcyBvZgotICAgICA8cmVwbGFjZWFi bGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4gYW5kCi0gICAgIDxyZXBsYWNlYWJsZT5zdWI8L3JlcGxh Y2VhYmxlPiwgdGhlbjoKLSAgICAgPGl0ZW1pemVkbGlzdD4KLSAgICAgIDxsaXN0aXRlbT4KLSAg ICAgICA8cGFyYT4KLSAgICAgICAgSWYgPGZ1bmN0aW9uPmluX3JhbmdlPC9mdW5jdGlvbj4gd2l0 aAotICAgICAgICA8cmVwbGFjZWFibGU+bGVzczwvcmVwbGFjZWFibGU+ID0gdHJ1ZSBpcyB0cnVl IGZvciBzb21lCi0gICAgICAgIDxyZXBsYWNlYWJsZT52YWwxPC9yZXBsYWNlYWJsZT4gYW5kCi0g ICAgICAgIDxyZXBsYWNlYWJsZT5iYXNlPC9yZXBsYWNlYWJsZT4sIGl0IG11c3QgYmUgdHJ1ZSBm b3IgZXZlcnkKLSAgICAgICAgPHJlcGxhY2VhYmxlPnZhbDI8L3JlcGxhY2VhYmxlPiA8bGl0ZXJh bD4mbHQ7PTwvbGl0ZXJhbD4KLSAgICAgICAgPHJlcGxhY2VhYmxlPnZhbDE8L3JlcGxhY2VhYmxl PiB3aXRoIHRoZSBzYW1lCi0gICAgICAgIDxyZXBsYWNlYWJsZT5iYXNlPC9yZXBsYWNlYWJsZT4u Ci0gICAgICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgIDxsaXN0aXRlbT4KLSAg ICAgICA8cGFyYT4KLSAgICAgICAgSWYgPGZ1bmN0aW9uPmluX3JhbmdlPC9mdW5jdGlvbj4gd2l0 aAotICAgICAgICA8cmVwbGFjZWFibGU+bGVzczwvcmVwbGFjZWFibGU+ID0gdHJ1ZSBpcyBmYWxz ZSBmb3Igc29tZQotICAgICAgICA8cmVwbGFjZWFibGU+dmFsMTwvcmVwbGFjZWFibGU+IGFuZAot ICAgICAgICA8cmVwbGFjZWFibGU+YmFzZTwvcmVwbGFjZWFibGU+LCBpdCBtdXN0IGJlIGZhbHNl IGZvciBldmVyeQotICAgICAgICA8cmVwbGFjZWFibGU+dmFsMjwvcmVwbGFjZWFibGU+IDxsaXRl cmFsPiZndDs9PC9saXRlcmFsPgotICAgICAgICA8cmVwbGFjZWFibGU+dmFsMTwvcmVwbGFjZWFi bGU+IHdpdGggdGhlIHNhbWUKLSAgICAgICAgPHJlcGxhY2VhYmxlPmJhc2U8L3JlcGxhY2VhYmxl Pi4KLSAgICAgICA8L3BhcmE+Ci0gICAgICA8L2xpc3RpdGVtPgotICAgICAgPGxpc3RpdGVtPgot ICAgICAgIDxwYXJhPgotICAgICAgICBJZiA8ZnVuY3Rpb24+aW5fcmFuZ2U8L2Z1bmN0aW9uPiB3 aXRoCi0gICAgICAgIDxyZXBsYWNlYWJsZT5sZXNzPC9yZXBsYWNlYWJsZT4gPSB0cnVlIGlzIHRy dWUgZm9yIHNvbWUKLSAgICAgICAgPHJlcGxhY2VhYmxlPnZhbDwvcmVwbGFjZWFibGU+IGFuZAot ICAgICAgICA8cmVwbGFjZWFibGU+YmFzZTE8L3JlcGxhY2VhYmxlPiwgaXQgbXVzdCBiZSB0cnVl IGZvciBldmVyeQotICAgICAgICA8cmVwbGFjZWFibGU+YmFzZTI8L3JlcGxhY2VhYmxlPiA8bGl0 ZXJhbD4mZ3Q7PTwvbGl0ZXJhbD4KLSAgICAgICAgPHJlcGxhY2VhYmxlPmJhc2UxPC9yZXBsYWNl YWJsZT4gd2l0aCB0aGUgc2FtZQotICAgICAgICA8cmVwbGFjZWFibGU+dmFsPC9yZXBsYWNlYWJs ZT4uCi0gICAgICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgIDxsaXN0aXRlbT4K LSAgICAgICA8cGFyYT4KLSAgICAgICAgSWYgPGZ1bmN0aW9uPmluX3JhbmdlPC9mdW5jdGlvbj4g d2l0aAotICAgICAgICA8cmVwbGFjZWFibGU+bGVzczwvcmVwbGFjZWFibGU+ID0gdHJ1ZSBpcyBm YWxzZSBmb3Igc29tZQotICAgICAgICA8cmVwbGFjZWFibGU+dmFsPC9yZXBsYWNlYWJsZT4gYW5k Ci0gICAgICAgIDxyZXBsYWNlYWJsZT5iYXNlMTwvcmVwbGFjZWFibGU+LCBpdCBtdXN0IGJlIGZh bHNlIGZvciBldmVyeQotICAgICAgICA8cmVwbGFjZWFibGU+YmFzZTI8L3JlcGxhY2VhYmxlPiA8 bGl0ZXJhbD4mbHQ7PTwvbGl0ZXJhbD4KLSAgICAgICAgPHJlcGxhY2VhYmxlPmJhc2UxPC9yZXBs YWNlYWJsZT4gd2l0aCB0aGUgc2FtZQotICAgICAgICA8cmVwbGFjZWFibGU+dmFsPC9yZXBsYWNl YWJsZT4uCi0gICAgICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgPC9pdGVtaXpl ZGxpc3Q+Ci0gICAgIEFuYWxvZ291cyBzdGF0ZW1lbnRzIHdpdGggaW52ZXJ0ZWQgY29uZGl0aW9u cyBob2xkIHdoZW4KLSAgICAgPHJlcGxhY2VhYmxlPmxlc3M8L3JlcGxhY2VhYmxlPiA9IGZhbHNl LgotICAgIDwvcGFyYT4KLQotICAgIDxwYXJhPgotICAgICBJZiB0aGUgdHlwZSBiZWluZyBvcmRl cmVkICg8dHlwZT50eXBlMTwvdHlwZT4pIGlzIGNvbGxhdGFibGUsIHRoZQotICAgICBhcHByb3By aWF0ZSBjb2xsYXRpb24gT0lEIHdpbGwgYmUgcGFzc2VkIHRvIHRoZQotICAgICA8ZnVuY3Rpb24+ aW5fcmFuZ2U8L2Z1bmN0aW9uPiBmdW5jdGlvbiwgdXNpbmcgdGhlIHN0YW5kYXJkCi0gICAgIFBH X0dFVF9DT0xMQVRJT04oKSBtZWNoYW5pc20uCi0gICAgPC9wYXJhPgotCi0gICAgPHBhcmE+Ci0g ICAgIDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+IGZ1bmN0aW9ucyBuZWVkIG5vdCBoYW5k bGUgTlVMTAotICAgICBpbnB1dHMsIGFuZCB0eXBpY2FsbHkgd2lsbCBiZSBtYXJrZWQgc3RyaWN0 LgotICAgIDwvcGFyYT4KLSAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlzdGVudHJ5PgotICA8dmFy bGlzdGVudHJ5PgotICAgPHRlcm0+PGZ1bmN0aW9uPmVxdWFsaW1hZ2U8L2Z1bmN0aW9uPjwvdGVy bT4KLSAgIDxsaXN0aXRlbT4KLSAgICA8cGFyYT4KLSAgICAgT3B0aW9uYWxseSwgYSBidHJlZSBv cGVyYXRvciBmYW1pbHkgbWF5IHByb3ZpZGUKLSAgICAgPGZ1bmN0aW9uPmVxdWFsaW1hZ2U8L2Z1 bmN0aW9uPiAoPHF1b3RlPmVxdWFsaXR5IGltcGxpZXMgaW1hZ2UKLSAgICAgIGVxdWFsaXR5PC9x dW90ZT4pIHN1cHBvcnQgZnVuY3Rpb25zLCByZWdpc3RlcmVkIHVuZGVyIHN1cHBvcnQKLSAgICAg ZnVuY3Rpb24gbnVtYmVyIDQuICBUaGVzZSBmdW5jdGlvbnMgYWxsb3cgdGhlIGNvcmUgY29kZSB0 bwotICAgICBkZXRlcm1pbmUgd2hlbiBpdCBpcyBzYWZlIHRvIGFwcGx5IHRoZSBidHJlZSBkZWR1 cGxpY2F0aW9uCi0gICAgIG9wdGltaXphdGlvbi4gIEN1cnJlbnRseSwgPGZ1bmN0aW9uPmVxdWFs aW1hZ2U8L2Z1bmN0aW9uPgotICAgICBmdW5jdGlvbnMgYXJlIG9ubHkgY2FsbGVkIHdoZW4gYnVp bGRpbmcgb3IgcmVidWlsZGluZyBhbiBpbmRleC4KLSAgICA8L3BhcmE+Ci0gICAgPHBhcmE+Ci0g ICAgIEFuIDxmdW5jdGlvbj5lcXVhbGltYWdlPC9mdW5jdGlvbj4gZnVuY3Rpb24gbXVzdCBoYXZl IHRoZQotICAgICBzaWduYXR1cmUKLTxzeW5vcHNpcz4KLWVxdWFsaW1hZ2UoPHJlcGxhY2VhYmxl Pm9wY2ludHlwZTwvcmVwbGFjZWFibGU+IDx0eXBlPm9pZDwvdHlwZT4pIHJldHVybnMgYm9vbAot PC9zeW5vcHNpcz4KLSAgICAgVGhlIHJldHVybiB2YWx1ZSBpcyBzdGF0aWMgaW5mb3JtYXRpb24g YWJvdXQgYW4gb3BlcmF0b3IgY2xhc3MKLSAgICAgYW5kIGNvbGxhdGlvbi4gIFJldHVybmluZyA8 bGl0ZXJhbD50cnVlPC9saXRlcmFsPiBpbmRpY2F0ZXMgdGhhdAotICAgICB0aGUgPGZ1bmN0aW9u Pm9yZGVyPC9mdW5jdGlvbj4gZnVuY3Rpb24gZm9yIHRoZSBvcGVyYXRvciBjbGFzcyBpcwotICAg ICBndWFyYW50ZWVkIHRvIG9ubHkgcmV0dXJuIDxsaXRlcmFsPjA8L2xpdGVyYWw+ICg8cXVvdGU+ YXJndW1lbnRzCi0gICAgICBhcmUgZXF1YWw8L3F1b3RlPikgd2hlbiBpdHMgPHJlcGxhY2VhYmxl PkE8L3JlcGxhY2VhYmxlPiBhbmQKLSAgICAgPHJlcGxhY2VhYmxlPkI8L3JlcGxhY2VhYmxlPiBh cmd1bWVudHMgYXJlIGFsc28gaW50ZXJjaGFuZ2VhYmxlCi0gICAgIHdpdGhvdXQgYW55IGxvc3Mg b2Ygc2VtYW50aWMgaW5mb3JtYXRpb24uICBOb3QgcmVnaXN0ZXJpbmcgYW4KLSAgICAgPGZ1bmN0 aW9uPmVxdWFsaW1hZ2U8L2Z1bmN0aW9uPiBmdW5jdGlvbiBvciByZXR1cm5pbmcKLSAgICAgPGxp dGVyYWw+ZmFsc2U8L2xpdGVyYWw+IGluZGljYXRlcyB0aGF0IHRoaXMgY29uZGl0aW9uIGNhbm5v dCBiZQotICAgICBhc3N1bWVkIHRvIGhvbGQuCi0gICAgPC9wYXJhPgotICAgIDxwYXJhPgotICAg ICBUaGUgPHJlcGxhY2VhYmxlPm9wY2ludHlwZTwvcmVwbGFjZWFibGU+IGFyZ3VtZW50IGlzIHRo ZQotICAgICA8bGl0ZXJhbD48c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPi5vaWQ8L2xp dGVyYWw+IG9mIHRoZQotICAgICBkYXRhIHR5cGUgdGhhdCB0aGUgb3BlcmF0b3IgY2xhc3MgaW5k ZXhlcy4gIFRoaXMgaXMgYSBjb252ZW5pZW5jZQotICAgICB0aGF0IGFsbG93cyByZXVzZSBvZiB0 aGUgc2FtZSB1bmRlcmx5aW5nCi0gICAgIDxmdW5jdGlvbj5lcXVhbGltYWdlPC9mdW5jdGlvbj4g ZnVuY3Rpb24gYWNyb3NzIG9wZXJhdG9yIGNsYXNzZXMuCi0gICAgIElmIDxyZXBsYWNlYWJsZT5v cGNpbnR5cGU8L3JlcGxhY2VhYmxlPiBpcyBhIGNvbGxhdGFibGUgZGF0YQotICAgICB0eXBlLCB0 aGUgYXBwcm9wcmlhdGUgY29sbGF0aW9uIE9JRCB3aWxsIGJlIHBhc3NlZCB0byB0aGUKLSAgICAg PGZ1bmN0aW9uPmVxdWFsaW1hZ2U8L2Z1bmN0aW9uPiBmdW5jdGlvbiwgdXNpbmcgdGhlIHN0YW5k YXJkCi0gICAgIDxmdW5jdGlvbj5QR19HRVRfQ09MTEFUSU9OKCk8L2Z1bmN0aW9uPiBtZWNoYW5p c20uCi0gICAgPC9wYXJhPgotICAgIDxwYXJhPgotICAgICBBcyBmYXIgYXMgdGhlIG9wZXJhdG9y IGNsYXNzIGlzIGNvbmNlcm5lZCwgcmV0dXJuaW5nCi0gICAgIDxsaXRlcmFsPnRydWU8L2xpdGVy YWw+IGluZGljYXRlcyB0aGF0IGRlZHVwbGljYXRpb24gaXMgc2FmZSAob3IKLSAgICAgc2FmZSBm b3IgdGhlIGNvbGxhdGlvbiB3aG9zZSBPSUQgd2FzIHBhc3NlZCB0byBpdHMKLSAgICAgPGZ1bmN0 aW9uPmVxdWFsaW1hZ2U8L2Z1bmN0aW9uPiBmdW5jdGlvbikuICBIb3dldmVyLCB0aGUgY29yZQot ICAgICBjb2RlIHdpbGwgb25seSBkZWVtIGRlZHVwbGljYXRpb24gc2FmZSBmb3IgYW4gaW5kZXgg d2hlbgotICAgICA8ZW1waGFzaXM+ZXZlcnk8L2VtcGhhc2lzPiBpbmRleGVkIGNvbHVtbiB1c2Vz IGFuIG9wZXJhdG9yIGNsYXNzCi0gICAgIHRoYXQgcmVnaXN0ZXJzIGFuIDxmdW5jdGlvbj5lcXVh bGltYWdlPC9mdW5jdGlvbj4gZnVuY3Rpb24sIGFuZAotICAgICBlYWNoIGZ1bmN0aW9uIGFjdHVh bGx5IHJldHVybnMgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gd2hlbgotICAgICBjYWxsZWQuCi0g ICAgPC9wYXJhPgotICAgIDxwYXJhPgotICAgICBJbWFnZSBlcXVhbGl0eSBpcyA8ZW1waGFzaXM+ YWxtb3N0PC9lbXBoYXNpcz4gdGhlIHNhbWUgY29uZGl0aW9uCi0gICAgIGFzIHNpbXBsZSBiaXR3 aXNlIGVxdWFsaXR5LiAgVGhlcmUgaXMgb25lIHN1YnRsZSBkaWZmZXJlbmNlOiBXaGVuCi0gICAg IGluZGV4aW5nIGEgdmFybGVuYSBkYXRhIHR5cGUsIHRoZSBvbi1kaXNrIHJlcHJlc2VudGF0aW9u IG9mIHR3bwotICAgICBpbWFnZSBlcXVhbCBkYXR1bXMgbWF5IG5vdCBiZSBiaXR3aXNlIGVxdWFs IGR1ZSB0byBpbmNvbnNpc3RlbnQKLSAgICAgYXBwbGljYXRpb24gb2YgPGFjcm9ueW0+VE9BU1Q8 L2Fjcm9ueW0+IGNvbXByZXNzaW9uIG9uIGlucHV0LgotICAgICBGb3JtYWxseSwgd2hlbiBhbiBv cGVyYXRvciBjbGFzcydzCi0gICAgIDxmdW5jdGlvbj5lcXVhbGltYWdlPC9mdW5jdGlvbj4gZnVu Y3Rpb24gcmV0dXJucwotICAgICA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiwgaXQgaXMgc2FmZSB0 byBhc3N1bWUgdGhhdCB0aGUKLSAgICAgPGxpdGVyYWw+ZGF0dW1faW1hZ2VfZXEoKTwvbGl0ZXJh bD4gQyBmdW5jdGlvbiB3aWxsIGFsd2F5cyBhZ3JlZQotICAgICB3aXRoIHRoZSBvcGVyYXRvciBj bGFzcydzIDxmdW5jdGlvbj5vcmRlcjwvZnVuY3Rpb24+IGZ1bmN0aW9uCi0gICAgIChwcm92aWRl ZCB0aGF0IHRoZSBzYW1lIGNvbGxhdGlvbiBPSUQgaXMgcGFzc2VkIHRvIGJvdGggdGhlCi0gICAg IDxmdW5jdGlvbj5lcXVhbGltYWdlPC9mdW5jdGlvbj4gYW5kIDxmdW5jdGlvbj5vcmRlcjwvZnVu Y3Rpb24+Ci0gICAgIGZ1bmN0aW9ucykuCi0gICAgPC9wYXJhPgotICAgIDxwYXJhPgotICAgICBU aGUgY29yZSBjb2RlIGlzIGZ1bmRhbWVudGFsbHkgdW5hYmxlIHRvIGRlZHVjZSBhbnl0aGluZyBh Ym91dAotICAgICB0aGUgPHF1b3RlPmVxdWFsaXR5IGltcGxpZXMgaW1hZ2UgZXF1YWxpdHk8L3F1 b3RlPiBzdGF0dXMgb2YgYW4KLSAgICAgb3BlcmF0b3IgY2xhc3Mgd2l0aGluIGEgbXVsdGlwbGUt ZGF0YS10eXBlIGZhbWlseSBiYXNlZCBvbgotICAgICBkZXRhaWxzIGZyb20gb3RoZXIgb3BlcmF0 b3IgY2xhc3NlcyBpbiB0aGUgc2FtZSBmYW1pbHkuICBBbHNvLCBpdAotICAgICBpcyBub3Qgc2Vu c2libGUgZm9yIGFuIG9wZXJhdG9yIGZhbWlseSB0byByZWdpc3RlciBhIGNyb3NzLXR5cGUKLSAg ICAgPGZ1bmN0aW9uPmVxdWFsaW1hZ2U8L2Z1bmN0aW9uPiBmdW5jdGlvbiwgYW5kIGF0dGVtcHRp bmcgdG8gZG8gc28KLSAgICAgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IuICBUaGlzIGlzIGJlY2F1 c2UgPHF1b3RlPmVxdWFsaXR5IGltcGxpZXMKLSAgICAgIGltYWdlIGVxdWFsaXR5PC9xdW90ZT4g c3RhdHVzIGRvZXMgbm90IGp1c3QgZGVwZW5kIG9uCi0gICAgIHNvcnRpbmcvZXF1YWxpdHkgc2Vt YW50aWNzLCB3aGljaCBhcmUgbW9yZSBvciBsZXNzIGRlZmluZWQgYXQgdGhlCi0gICAgIG9wZXJh dG9yIGZhbWlseSBsZXZlbC4gIEluIGdlbmVyYWwsIHRoZSBzZW1hbnRpY3MgdGhhdCBvbmUKLSAg ICAgcGFydGljdWxhciBkYXRhIHR5cGUgaW1wbGVtZW50cyBtdXN0IGJlIGNvbnNpZGVyZWQgc2Vw YXJhdGVseS4KLSAgICA8L3BhcmE+Ci0gICAgPHBhcmE+Ci0gICAgIFRoZSBjb252ZW50aW9uIGZv bGxvd2VkIGJ5IHRoZSBvcGVyYXRvciBjbGFzc2VzIGluY2x1ZGVkIHdpdGggdGhlCi0gICAgIGNv cmUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBkaXN0cmlidXRpb24gaXMg dG8KLSAgICAgcmVnaXN0ZXIgYSBzdG9jaywgZ2VuZXJpYyA8ZnVuY3Rpb24+ZXF1YWxpbWFnZTwv ZnVuY3Rpb24+Ci0gICAgIGZ1bmN0aW9uLiAgTW9zdCBvcGVyYXRvciBjbGFzc2VzIHJlZ2lzdGVy Ci0gICAgIDxmdW5jdGlvbj5idGVxdWFsaW1hZ2UoKTwvZnVuY3Rpb24+LCB3aGljaCBpbmRpY2F0 ZXMgdGhhdAotICAgICBkZWR1cGxpY2F0aW9uIGlzIHNhZmUgdW5jb25kaXRpb25hbGx5LiAgT3Bl cmF0b3IgY2xhc3NlcyBmb3IKLSAgICAgY29sbGF0YWJsZSBkYXRhIHR5cGVzIHN1Y2ggYXMgPHR5 cGU+dGV4dDwvdHlwZT4gcmVnaXN0ZXIKLSAgICAgPGZ1bmN0aW9uPmJ0dmFyc3RyZXF1YWxpbWFn ZSgpPC9mdW5jdGlvbj4sIHdoaWNoIGluZGljYXRlcyB0aGF0Ci0gICAgIGRlZHVwbGljYXRpb24g aXMgc2FmZSB3aXRoIGRldGVybWluaXN0aWMgY29sbGF0aW9ucy4gIEJlc3QKLSAgICAgcHJhY3Rp Y2UgZm9yIHRoaXJkLXBhcnR5IGV4dGVuc2lvbnMgaXMgdG8gcmVnaXN0ZXIgdGhlaXIgb3duCi0g ICAgIGN1c3RvbSBmdW5jdGlvbiB0byByZXRhaW4gY29udHJvbC4KLSAgICA8L3BhcmE+Ci0gICA8 L2xpc3RpdGVtPgotICA8L3Zhcmxpc3RlbnRyeT4KLSAgPHZhcmxpc3RlbnRyeT4KLSAgIDx0ZXJt PjxmdW5jdGlvbj5vcHRpb25zPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICA8bGlzdGl0ZW0+Ci0gICAg PHBhcmE+Ci0gICAgIE9wdGlvbmFsbHksIGEgQi10cmVlIG9wZXJhdG9yIGZhbWlseSBtYXkgcHJv dmlkZQotICAgICA8ZnVuY3Rpb24+b3B0aW9uczwvZnVuY3Rpb24+ICg8cXVvdGU+b3BlcmF0b3Ig Y2xhc3Mgc3BlY2lmaWMKLSAgICAgb3B0aW9uczwvcXVvdGU+KSBzdXBwb3J0IGZ1bmN0aW9ucywg cmVnaXN0ZXJlZCB1bmRlciBzdXBwb3J0Ci0gICAgIGZ1bmN0aW9uIG51bWJlciA1LiAgVGhlc2Ug ZnVuY3Rpb25zIGRlZmluZSBhIHNldCBvZiB1c2VyLXZpc2libGUKLSAgICAgcGFyYW1ldGVycyB0 aGF0IGNvbnRyb2wgb3BlcmF0b3IgY2xhc3MgYmVoYXZpb3IuCi0gICAgPC9wYXJhPgotICAgIDxw YXJhPgotICAgICBBbiA8ZnVuY3Rpb24+b3B0aW9uczwvZnVuY3Rpb24+IHN1cHBvcnQgZnVuY3Rp b24gbXVzdCBoYXZlIHRoZQotICAgICBzaWduYXR1cmUKLTxzeW5vcHNpcz4KLW9wdGlvbnMoPHJl cGxhY2VhYmxlPnJlbG9wdHM8L3JlcGxhY2VhYmxlPiA8dHlwZT5sb2NhbF9yZWxvcHRzICo8L3R5 cGU+KSByZXR1cm5zIHZvaWQKLTwvc3lub3BzaXM+Ci0gICAgIFRoZSBmdW5jdGlvbiBpcyBwYXNz ZWQgYSBwb2ludGVyIHRvIGEgPHN0cnVjdG5hbWU+bG9jYWxfcmVsb3B0czwvc3RydWN0bmFtZT4K LSAgICAgc3RydWN0LCB3aGljaCBuZWVkcyB0byBiZSBmaWxsZWQgd2l0aCBhIHNldCBvZiBvcGVy YXRvciBjbGFzcwotICAgICBzcGVjaWZpYyBvcHRpb25zLiAgVGhlIG9wdGlvbnMgY2FuIGJlIGFj Y2Vzc2VkIGZyb20gb3RoZXIgc3VwcG9ydAotICAgICBmdW5jdGlvbnMgdXNpbmcgdGhlIDxsaXRl cmFsPlBHX0hBU19PUENMQVNTX09QVElPTlMoKTwvbGl0ZXJhbD4gYW5kCi0gICAgIDxsaXRlcmFs PlBHX0dFVF9PUENMQVNTX09QVElPTlMoKTwvbGl0ZXJhbD4gbWFjcm9zLgotICAgIDwvcGFyYT4K LSAgICA8cGFyYT4KLSAgICAgQ3VycmVudGx5LCBubyBCLVRyZWUgb3BlcmF0b3IgY2xhc3MgaGFz IGFuIDxmdW5jdGlvbj5vcHRpb25zPC9mdW5jdGlvbj4KLSAgICAgc3VwcG9ydCBmdW5jdGlvbi4g IEItdHJlZSBkb2Vzbid0IGFsbG93IGZsZXhpYmxlIHJlcHJlc2VudGF0aW9uIG9mIGtleXMKLSAg ICAgbGlrZSBHaVNULCBTUC1HaVNULCBHSU4gYW5kIEJSSU4gZG8uICBTbywgPGZ1bmN0aW9uPm9w dGlvbnM8L2Z1bmN0aW9uPgotICAgICBwcm9iYWJseSBkb2Vzbid0IGhhdmUgbXVjaCBhcHBsaWNh dGlvbiBpbiB0aGUgY3VycmVudCBCLXRyZWUgaW5kZXgKLSAgICAgYWNjZXNzIG1ldGhvZC4gIE5l dmVydGhlbGVzcywgdGhpcyBzdXBwb3J0IGZ1bmN0aW9uIHdhcyBhZGRlZCB0byBCLXRyZWUKLSAg ICAgZm9yIHVuaWZvcm1pdHksIGFuZCB3aWxsIHByb2JhYmx5IGZpbmQgdXNlcyBkdXJpbmcgZnVy dGhlcgotICAgICBldm9sdXRpb24gb2YgQi10cmVlIGluIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FM PC9wcm9kdWN0bmFtZT4uCi0gICAgPC9wYXJhPgotICAgPC9saXN0aXRlbT4KLSAgPC92YXJsaXN0 ZW50cnk+Ci0gPC92YXJpYWJsZWxpc3Q+Ci0KLTwvc2VjdDE+Ci0KLTxzZWN0MSBpZD0iYnRyZWUt aW1wbGVtZW50YXRpb24iPgotIDx0aXRsZT5JbXBsZW1lbnRhdGlvbjwvdGl0bGU+Ci0KLSA8cGFy YT4KLSAgVGhpcyBzZWN0aW9uIGNvdmVycyBCLVRyZWUgaW5kZXggaW1wbGVtZW50YXRpb24gZGV0 YWlscyB0aGF0IG1heSBiZQotICBvZiB1c2UgdG8gYWR2YW5jZWQgdXNlcnMuICBTZWUKLSAgPGZp bGVuYW1lPnNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvUkVBRE1FPC9maWxlbmFtZT4gaW4gdGhl IHNvdXJjZQotICBkaXN0cmlidXRpb24gZm9yIGEgbXVjaCBtb3JlIGRldGFpbGVkLCBpbnRlcm5h bHMtZm9jdXNlZCBkZXNjcmlwdGlvbgotICBvZiB0aGUgQi1UcmVlIGltcGxlbWVudGF0aW9uLgot IDwvcGFyYT4KLSA8c2VjdDIgaWQ9ImJ0cmVlLXN0cnVjdHVyZSI+Ci0gIDx0aXRsZT5CLVRyZWUg U3RydWN0dXJlPC90aXRsZT4KLSAgPHBhcmE+Ci0gICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+IEItVHJlZSBpbmRleGVzIGFyZQotICAgbXVsdGktbGV2ZWwgdHJlZSBzdHJ1 Y3R1cmVzLCB3aGVyZSBlYWNoIGxldmVsIG9mIHRoZSB0cmVlIGNhbiBiZQotICAgdXNlZCBhcyBh IGRvdWJseS1saW5rZWQgbGlzdCBvZiBwYWdlcy4gIEEgc2luZ2xlIG1ldGFwYWdlIGlzIHN0b3Jl ZAotICAgaW4gYSBmaXhlZCBwb3NpdGlvbiBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpcnN0IHNlZ21l bnQgZmlsZSBvZiB0aGUKLSAgIGluZGV4LiAgQWxsIG90aGVyIHBhZ2VzIGFyZSBlaXRoZXIgbGVh ZiBwYWdlcyBvciBpbnRlcm5hbCBwYWdlcy4KLSAgIExlYWYgcGFnZXMgYXJlIHRoZSBwYWdlcyBv biB0aGUgbG93ZXN0IGxldmVsIG9mIHRoZSB0cmVlLiAgQWxsCi0gICBvdGhlciBsZXZlbHMgY29u c2lzdCBvZiBpbnRlcm5hbCBwYWdlcy4gIEVhY2ggbGVhZiBwYWdlIGNvbnRhaW5zCi0gICB0dXBs ZXMgdGhhdCBwb2ludCB0byB0YWJsZSByb3dzLiAgRWFjaCBpbnRlcm5hbCBwYWdlIGNvbnRhaW5z Ci0gICB0dXBsZXMgdGhhdCBwb2ludCB0byB0aGUgbmV4dCBsZXZlbCBkb3duIGluIHRoZSB0cmVl LiAgVHlwaWNhbGx5LAotICAgb3ZlciA5OSUgb2YgYWxsIHBhZ2VzIGFyZSBsZWFmIHBhZ2VzLiAg Qm90aCBpbnRlcm5hbCBwYWdlcyBhbmQgbGVhZgotICAgcGFnZXMgdXNlIHRoZSBzdGFuZGFyZCBw YWdlIGZvcm1hdCBkZXNjcmliZWQgaW4gPHhyZWYKLSAgICBsaW5rZW5kPSJzdG9yYWdlLXBhZ2Ut bGF5b3V0Ii8+LgotICA8L3BhcmE+Ci0gIDxwYXJhPgotICAgTmV3IGxlYWYgcGFnZXMgYXJlIGFk ZGVkIHRvIGEgQi1UcmVlIGluZGV4IHdoZW4gYW4gZXhpc3RpbmcgbGVhZgotICAgcGFnZSBjYW5u b3QgZml0IGFuIGluY29taW5nIHR1cGxlLiAgQSA8Zmlyc3R0ZXJtPnBhZ2UKLSAgICBzcGxpdDwv Zmlyc3R0ZXJtPiBvcGVyYXRpb24gbWFrZXMgcm9vbSBmb3IgaXRlbXMgdGhhdCBvcmlnaW5hbGx5 Ci0gICBiZWxvbmdlZCBvbiB0aGUgb3ZlcmZsb3dpbmcgcGFnZSBieSBtb3ZpbmcgYSBwb3J0aW9u IG9mIHRoZSBpdGVtcwotICAgdG8gYSBuZXcgcGFnZS4gIFBhZ2Ugc3BsaXRzIG11c3QgYWxzbyBp bnNlcnQgYSBuZXcKLSAgIDxmaXJzdHRlcm0+ZG93bmxpbms8L2ZpcnN0dGVybT4gdG8gdGhlIG5l dyBwYWdlIGluIHRoZSBwYXJlbnQgcGFnZSwKLSAgIHdoaWNoIG1heSBjYXVzZSB0aGUgcGFyZW50 IHRvIHNwbGl0IGluIHR1cm4uICBQYWdlIHNwbGl0cwotICAgPHF1b3RlPmNhc2NhZGUgdXB3YXJk czwvcXVvdGU+IGluIGEgcmVjdXJzaXZlIGZhc2hpb24uICBXaGVuIHRoZQotICAgcm9vdCBwYWdl IGZpbmFsbHkgY2Fubm90IGZpdCBhIG5ldyBkb3dubGluaywgYSA8Zmlyc3R0ZXJtPnJvb3QgcGFn ZQotICAgIHNwbGl0PC9maXJzdHRlcm0+IG9wZXJhdGlvbiB0YWtlcyBwbGFjZS4gIFRoaXMgYWRk cyBhIG5ldyBsZXZlbCB0bwotICAgdGhlIHRyZWUgc3RydWN0dXJlIGJ5IGNyZWF0aW5nIGEgbmV3 IHJvb3QgcGFnZSB0aGF0IGlzIG9uZSBsZXZlbAotICAgYWJvdmUgdGhlIG9yaWdpbmFsIHJvb3Qg cGFnZS4KLSAgPC9wYXJhPgotIDwvc2VjdDI+Ci0KLSA8c2VjdDIgaWQ9ImJ0cmVlLWRlbGV0aW9u Ij4KLSAgPHRpdGxlPkJvdHRvbS11cCBJbmRleCBEZWxldGlvbjwvdGl0bGU+Ci0gIDxwYXJhPgot ICAgQi1UcmVlIGluZGV4ZXMgYXJlIG5vdCBkaXJlY3RseSBhd2FyZSB0aGF0IHVuZGVyIE1WQ0Ms IHRoZXJlIG1pZ2h0Ci0gICBiZSBtdWx0aXBsZSBleHRhbnQgdmVyc2lvbnMgb2YgdGhlIHNhbWUg bG9naWNhbCB0YWJsZSByb3c7IHRvIGFuCi0gICBpbmRleCwgZWFjaCB0dXBsZSBpcyBhbiBpbmRl cGVuZGVudCBvYmplY3QgdGhhdCBuZWVkcyBpdHMgb3duIGluZGV4Ci0gICBlbnRyeS4gIDxxdW90 ZT5WZXJzaW9uIGNodXJuPC9xdW90ZT4gdHVwbGVzIG1heSBzb21ldGltZXMKLSAgIGFjY3VtdWxh dGUgYW5kIGFkdmVyc2VseSBhZmZlY3QgcXVlcnkgbGF0ZW5jeSBhbmQgdGhyb3VnaHB1dC4gIFRo aXMKLSAgIHR5cGljYWxseSBvY2N1cnMgd2l0aCA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+LWhl YXZ5IHdvcmtsb2FkcwotICAgd2hlcmUgbW9zdCBpbmRpdmlkdWFsIHVwZGF0ZXMgY2Fubm90IGFw cGx5IHRoZQotICAgPGxpbmsgbGlua2VuZD0ic3RvcmFnZS1ob3QiPjxhY3JvbnltPkhPVDwvYWNy b255bT4gb3B0aW1pemF0aW9uLjwvbGluaz4KLSAgIENoYW5naW5nIHRoZSB2YWx1ZSBvZiBvbmx5 Ci0gICBvbmUgY29sdW1uIGNvdmVyZWQgYnkgb25lIGluZGV4IGR1cmluZyBhbiA8Y29tbWFuZD5V UERBVEU8L2NvbW1hbmQ+Ci0gICA8ZW1waGFzaXM+YWx3YXlzPC9lbXBoYXNpcz4gbmVjZXNzaXRh dGVzIGEgbmV3IHNldCBvZiBpbmRleCB0dXBsZXMKLSAgICZtZGFzaDsgb25lIGZvciA8ZW1waGFz aXM+ZWFjaCBhbmQgZXZlcnk8L2VtcGhhc2lzPiBpbmRleCBvbiB0aGUKLSAgIHRhYmxlLiAgTm90 ZSBpbiBwYXJ0aWN1bGFyIHRoYXQgdGhpcyBpbmNsdWRlcyBpbmRleGVzIHRoYXQgd2VyZSBub3QK LSAgIDxxdW90ZT5sb2dpY2FsbHkgbW9kaWZpZWQ8L3F1b3RlPiBieSB0aGUgPGNvbW1hbmQ+VVBE QVRFPC9jb21tYW5kPi4KLSAgIEFsbCBpbmRleGVzIHdpbGwgbmVlZCBhIHN1Y2Nlc3NvciBwaHlz aWNhbCBpbmRleCB0dXBsZSB0aGF0IHBvaW50cwotICAgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIGlu IHRoZSB0YWJsZS4gIEVhY2ggbmV3IHR1cGxlIHdpdGhpbiBlYWNoCi0gICBpbmRleCB3aWxsIGdl bmVyYWxseSBuZWVkIHRvIGNvZXhpc3Qgd2l0aCB0aGUgb3JpZ2luYWwKLSAgIDxxdW90ZT51cGRh dGVkPC9xdW90ZT4gdHVwbGUgZm9yIGEgc2hvcnQgcGVyaW9kIG9mIHRpbWUgKHR5cGljYWxseQot ICAgdW50aWwgc2hvcnRseSBhZnRlciB0aGUgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiB0cmFu c2FjdGlvbgotICAgY29tbWl0cykuCi0gIDwvcGFyYT4KLSAgPHBhcmE+Ci0gICBCLVRyZWUgaW5k ZXhlcyBpbmNyZW1lbnRhbGx5IGRlbGV0ZSB2ZXJzaW9uIGNodXJuIGluZGV4IHR1cGxlcyBieQot ICAgcGVyZm9ybWluZyA8Zmlyc3R0ZXJtPmJvdHRvbS11cCBpbmRleCBkZWxldGlvbjwvZmlyc3R0 ZXJtPiBwYXNzZXMuCi0gICBFYWNoIGRlbGV0aW9uIHBhc3MgaXMgdHJpZ2dlcmVkIGluIHJlYWN0 aW9uIHRvIGFuIGFudGljaXBhdGVkCi0gICA8cXVvdGU+dmVyc2lvbiBjaHVybiBwYWdlIHNwbGl0 PC9xdW90ZT4uICBUaGlzIG9ubHkgaGFwcGVucyB3aXRoCi0gICBpbmRleGVzIHRoYXQgYXJlIG5v dCBsb2dpY2FsbHkgbW9kaWZpZWQgYnkKLSAgIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4gc3Rh dGVtZW50cywgd2hlcmUgY29uY2VudHJhdGVkIGJ1aWxkIHVwCi0gICBvZiBvYnNvbGV0ZSB2ZXJz aW9ucyBpbiBwYXJ0aWN1bGFyIHBhZ2VzIHdvdWxkIG9jY3VyIG90aGVyd2lzZS4gIEEKLSAgIHBh Z2Ugc3BsaXQgd2lsbCB1c3VhbGx5IGJlIGF2b2lkZWQsIHRob3VnaCBpdCdzIHBvc3NpYmxlIHRo YXQKLSAgIGNlcnRhaW4gaW1wbGVtZW50YXRpb24tbGV2ZWwgaGV1cmlzdGljcyB3aWxsIGZhaWwg dG8gaWRlbnRpZnkgYW5kCi0gICBkZWxldGUgZXZlbiBvbmUgZ2FyYmFnZSBpbmRleCB0dXBsZSAo aW4gd2hpY2ggY2FzZSBhIHBhZ2Ugc3BsaXQgb3IKLSAgIGRlZHVwbGljYXRpb24gcGFzcyByZXNv bHZlcyB0aGUgaXNzdWUgb2YgYW4gaW5jb21pbmcgbmV3IHR1cGxlIG5vdAotICAgZml0dGluZyBv biBhIGxlYWYgcGFnZSkuICBUaGUgd29yc3QtY2FzZSBudW1iZXIgb2YgdmVyc2lvbnMgdGhhdAot ICAgYW55IGluZGV4IHNjYW4gbXVzdCB0cmF2ZXJzZSAoZm9yIGFueSBzaW5nbGUgbG9naWNhbCBy b3cpIGlzIGFuCi0gICBpbXBvcnRhbnQgY29udHJpYnV0b3IgdG8gb3ZlcmFsbCBzeXN0ZW0gcmVz cG9uc2l2ZW5lc3MgYW5kCi0gICB0aHJvdWdocHV0LiAgQSBib3R0b20tdXAgaW5kZXggZGVsZXRp b24gcGFzcyB0YXJnZXRzIHN1c3BlY3RlZAotICAgZ2FyYmFnZSB0dXBsZXMgaW4gYSBzaW5nbGUg bGVhZiBwYWdlIGJhc2VkIG9uCi0gICA8ZW1waGFzaXM+cXVhbGl0YXRpdmU8L2VtcGhhc2lzPiBk aXN0aW5jdGlvbnMgaW52b2x2aW5nIGxvZ2ljYWwKLSAgIHJvd3MgYW5kIHZlcnNpb25zLiAgVGhp cyBjb250cmFzdHMgd2l0aCB0aGUgPHF1b3RlPnRvcC1kb3duPC9xdW90ZT4KLSAgIGluZGV4IGNs ZWFudXAgcGVyZm9ybWVkIGJ5IGF1dG92YWN1dW0gd29ya2Vycywgd2hpY2ggaXMgdHJpZ2dlcmVk Ci0gICB3aGVuIGNlcnRhaW4gPGVtcGhhc2lzPnF1YW50aXRhdGl2ZTwvZW1waGFzaXM+IHRhYmxl LWxldmVsCi0gICB0aHJlc2hvbGRzIGFyZSBleGNlZWRlZCAoc2VlIDx4cmVmIGxpbmtlbmQ9ImF1 dG92YWN1dW0iLz4pLgotICA8L3BhcmE+Ci0gIDxub3RlPgotICAgPHBhcmE+Ci0gICAgTm90IGFs bCBkZWxldGlvbiBvcGVyYXRpb25zIHRoYXQgYXJlIHBlcmZvcm1lZCB3aXRoaW4gQi1UcmVlCi0g ICAgaW5kZXhlcyBhcmUgYm90dG9tLXVwIGRlbGV0aW9uIG9wZXJhdGlvbnMuICBUaGVyZSBpcyBh IGRpc3RpbmN0Ci0gICAgY2F0ZWdvcnkgb2YgaW5kZXggdHVwbGUgZGVsZXRpb246IDxmaXJzdHRl cm0+c2ltcGxlIGluZGV4IHR1cGxlCi0gICAgIGRlbGV0aW9uPC9maXJzdHRlcm0+LiAgVGhpcyBp cyBhIGRlZmVycmVkIG1haW50ZW5hbmNlIG9wZXJhdGlvbgotICAgIHRoYXQgZGVsZXRlcyBpbmRl eCB0dXBsZXMgdGhhdCBhcmUga25vd24gdG8gYmUgc2FmZSB0byBkZWxldGUKLSAgICAodGhvc2Ug d2hvc2UgaXRlbSBpZGVudGlmaWVyJ3MgPGxpdGVyYWw+TFBfREVBRDwvbGl0ZXJhbD4gYml0IGlz Ci0gICAgYWxyZWFkeSBzZXQpLiAgTGlrZSBib3R0b20tdXAgaW5kZXggZGVsZXRpb24sIHNpbXBs ZSBpbmRleAotICAgIGRlbGV0aW9uIHRha2VzIHBsYWNlIGF0IHRoZSBwb2ludCB0aGF0IGEgcGFn ZSBzcGxpdCBpcyBhbnRpY2lwYXRlZAotICAgIGFzIGEgd2F5IG9mIGF2b2lkaW5nIHRoZSBzcGxp dC4KLSAgIDwvcGFyYT4KLSAgIDxwYXJhPgotICAgIFNpbXBsZSBkZWxldGlvbiBpcyBvcHBvcnR1 bmlzdGljIGluIHRoZSBzZW5zZSB0aGF0IGl0IGNhbiBvbmx5Ci0gICAgdGFrZSBwbGFjZSB3aGVu IHJlY2VudCBpbmRleCBzY2FucyBzZXQgdGhlCi0gICAgPGxpdGVyYWw+TFBfREVBRDwvbGl0ZXJh bD4gYml0cyBvZiBhZmZlY3RlZCBpdGVtcyBpbiBwYXNzaW5nLgotICAgIFByaW9yIHRvIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gMTQsIHRoZSBvbmx5Ci0gICAgY2F0ZWdv cnkgb2YgQi1UcmVlIGRlbGV0aW9uIHdhcyBzaW1wbGUgZGVsZXRpb24uICBUaGUgbWFpbgotICAg IGRpZmZlcmVuY2VzIGJldHdlZW4gaXQgYW5kIGJvdHRvbS11cCBkZWxldGlvbiBhcmUgdGhhdCBv bmx5IHRoZQotICAgIGZvcm1lciBpcyBvcHBvcnR1bmlzdGljYWxseSBkcml2ZW4gYnkgdGhlIGFj dGl2aXR5IG9mIHBhc3NpbmcKLSAgICBpbmRleCBzY2Fucywgd2hpbGUgb25seSB0aGUgbGF0dGVy IHNwZWNpZmljYWxseSB0YXJnZXRzIHZlcnNpb24KLSAgICBjaHVybiBmcm9tIDxjb21tYW5kPlVQ REFURTwvY29tbWFuZD5zIHRoYXQgZG8gbm90IGxvZ2ljYWxseSBtb2RpZnkKLSAgICBpbmRleGVk IGNvbHVtbnMuCi0gICA8L3BhcmE+Ci0gIDwvbm90ZT4KLSAgPHBhcmE+Ci0gICBCb3R0b20tdXAg aW5kZXggZGVsZXRpb24gcGVyZm9ybXMgdGhlIHZhc3QgbWFqb3JpdHkgb2YgYWxsIGdhcmJhZ2UK LSAgIGluZGV4IHR1cGxlIGNsZWFudXAgZm9yIHBhcnRpY3VsYXIgaW5kZXhlcyB3aXRoIGNlcnRh aW4gd29ya2xvYWRzLgotICAgVGhpcyBpcyBleHBlY3RlZCB3aXRoIGFueSBCLVRyZWUgaW5kZXgg dGhhdCBpcyBzdWJqZWN0IHRvCi0gICBzaWduaWZpY2FudCB2ZXJzaW9uIGNodXJuIGZyb20gPGNv bW1hbmQ+VVBEQVRFPC9jb21tYW5kPnMgdGhhdAotICAgcmFyZWx5IG9yIG5ldmVyIGxvZ2ljYWxs eSBtb2RpZnkgdGhlIGNvbHVtbnMgdGhhdCB0aGUgaW5kZXggY292ZXJzLgotICAgVGhlIGF2ZXJh Z2UgYW5kIHdvcnN0LWNhc2UgbnVtYmVyIG9mIHZlcnNpb25zIHBlciBsb2dpY2FsIHJvdyBjYW4K LSAgIGJlIGtlcHQgbG93IHB1cmVseSB0aHJvdWdoIHRhcmdldGVkIGluY3JlbWVudGFsIGRlbGV0 aW9uIHBhc3Nlcy4KLSAgIEl0J3MgcXVpdGUgcG9zc2libGUgdGhhdCB0aGUgb24tZGlzayBzaXpl IG9mIGNlcnRhaW4gaW5kZXhlcyB3aWxsCi0gICBuZXZlciBpbmNyZWFzZSBieSBldmVuIG9uZSBz aW5nbGUgcGFnZS9ibG9jayBkZXNwaXRlCi0gICA8ZW1waGFzaXM+Y29uc3RhbnQ8L2VtcGhhc2lz PiB2ZXJzaW9uIGNodXJuIGZyb20KLSAgIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD5zLiAgRXZl biB0aGVuLCBhbiBleGhhdXN0aXZlIDxxdW90ZT5jbGVhbgotICAgIHN3ZWVwPC9xdW90ZT4gYnkg YSA8Y29tbWFuZD5WQUNVVU08L2NvbW1hbmQ+IG9wZXJhdGlvbiAodHlwaWNhbGx5Ci0gICBydW4g aW4gYW4gYXV0b3ZhY3V1bSB3b3JrZXIgcHJvY2Vzcykgd2lsbCBldmVudHVhbGx5IGJlIHJlcXVp cmVkIGFzCi0gICBhIHBhcnQgb2YgPGVtcGhhc2lzPmNvbGxlY3RpdmU8L2VtcGhhc2lzPiBjbGVh bnVwIG9mIHRoZSB0YWJsZSBhbmQKLSAgIGVhY2ggb2YgaXRzIGluZGV4ZXMuCi0gIDwvcGFyYT4K LSAgPHBhcmE+Ci0gICBVbmxpa2UgPGNvbW1hbmQ+VkFDVVVNPC9jb21tYW5kPiwgYm90dG9tLXVw IGluZGV4IGRlbGV0aW9uIGRvZXMgbm90Ci0gICBwcm92aWRlIGFueSBzdHJvbmcgZ3VhcmFudGVl cyBhYm91dCBob3cgb2xkIHRoZSBvbGRlc3QgZ2FyYmFnZQotICAgaW5kZXggdHVwbGUgbWF5IGJl LiAgTm8gaW5kZXggY2FuIGJlIHBlcm1pdHRlZCB0byByZXRhaW4KLSAgIDxxdW90ZT5mbG9hdGlu ZyBnYXJiYWdlPC9xdW90ZT4gaW5kZXggdHVwbGVzIHRoYXQgYmVjYW1lIGRlYWQgcHJpb3IKLSAg IHRvIGEgY29uc2VydmF0aXZlIGN1dG9mZiBwb2ludCBzaGFyZWQgYnkgdGhlIHRhYmxlIGFuZCBh bGwgb2YgaXRzCi0gICBpbmRleGVzIGNvbGxlY3RpdmVseS4gIFRoaXMgZnVuZGFtZW50YWwgdGFi bGUtbGV2ZWwgaW52YXJpYW50IG1ha2VzCi0gICBpdCBzYWZlIHRvIHJlY3ljbGUgdGFibGUgPGFj cm9ueW0+VElEPC9hY3JvbnltPnMuICBUaGlzIGlzIGhvdyBpdAotICAgaXMgcG9zc2libGUgZm9y IGRpc3RpbmN0IGxvZ2ljYWwgcm93cyB0byByZXVzZSB0aGUgc2FtZSB0YWJsZQotICAgPGFjcm9u eW0+VElEPC9hY3JvbnltPiBvdmVyIHRpbWUgKHRob3VnaCB0aGlzIGNhbiBuZXZlciBoYXBwZW4g d2l0aAotICAgdHdvIGxvZ2ljYWwgcm93cyB3aG9zZSBsaWZldGltZXMgc3BhbiB0aGUgc2FtZQot ICAgPGNvbW1hbmQ+VkFDVVVNPC9jb21tYW5kPiBjeWNsZSkuCi0gIDwvcGFyYT4KLSA8L3NlY3Qy PgotCi0gPHNlY3QyIGlkPSJidHJlZS1kZWR1cGxpY2F0aW9uIj4KLSAgPHRpdGxlPkRlZHVwbGlj YXRpb248L3RpdGxlPgotICA8cGFyYT4KLSAgIEEgZHVwbGljYXRlIGlzIGEgbGVhZiBwYWdlIHR1 cGxlIChhIHR1cGxlIHRoYXQgcG9pbnRzIHRvIGEgdGFibGUKLSAgIHJvdykgd2hlcmUgPGVtcGhh c2lzPmFsbDwvZW1waGFzaXM+IGluZGV4ZWQga2V5IGNvbHVtbnMgaGF2ZSB2YWx1ZXMKLSAgIHRo YXQgbWF0Y2ggY29ycmVzcG9uZGluZyBjb2x1bW4gdmFsdWVzIGZyb20gYXQgbGVhc3Qgb25lIG90 aGVyIGxlYWYKLSAgIHBhZ2UgdHVwbGUgaW4gdGhlIHNhbWUgaW5kZXguICBEdXBsaWNhdGUgdHVw bGVzIGFyZSBxdWl0ZSBjb21tb24gaW4KLSAgIHByYWN0aWNlLiAgQi1UcmVlIGluZGV4ZXMgY2Fu IHVzZSBhIHNwZWNpYWwsIHNwYWNlLWVmZmljaWVudAotICAgcmVwcmVzZW50YXRpb24gZm9yIGR1 cGxpY2F0ZXMgd2hlbiBhbiBvcHRpb25hbCB0ZWNobmlxdWUgaXMKLSAgIGVuYWJsZWQ6IDxmaXJz dHRlcm0+ZGVkdXBsaWNhdGlvbjwvZmlyc3R0ZXJtPi4KLSAgPC9wYXJhPgotICA8cGFyYT4KLSAg IERlZHVwbGljYXRpb24gd29ya3MgYnkgcGVyaW9kaWNhbGx5IG1lcmdpbmcgZ3JvdXBzIG9mIGR1 cGxpY2F0ZQotICAgdHVwbGVzIHRvZ2V0aGVyLCBmb3JtaW5nIGEgc2luZ2xlIDxmaXJzdHRlcm0+ cG9zdGluZyBsaXN0PC9maXJzdHRlcm0+IHR1cGxlIGZvciBlYWNoCi0gICBncm91cC4gIFRoZSBj b2x1bW4ga2V5IHZhbHVlKHMpIG9ubHkgYXBwZWFyIG9uY2UgaW4gdGhpcwotICAgcmVwcmVzZW50 YXRpb24uICBUaGlzIGlzIGZvbGxvd2VkIGJ5IGEgc29ydGVkIGFycmF5IG9mCi0gICA8YWNyb255 bT5USUQ8L2Fjcm9ueW0+cyB0aGF0IHBvaW50IHRvIHJvd3MgaW4gdGhlIHRhYmxlLiAgVGhpcwot ICAgc2lnbmlmaWNhbnRseSByZWR1Y2VzIHRoZSBzdG9yYWdlIHNpemUgb2YgaW5kZXhlcyB3aGVy ZSBlYWNoIHZhbHVlCi0gICAob3IgZWFjaCBkaXN0aW5jdCBjb21iaW5hdGlvbiBvZiBjb2x1bW4g dmFsdWVzKSBhcHBlYXJzIHNldmVyYWwKLSAgIHRpbWVzIG9uIGF2ZXJhZ2UuICBUaGUgbGF0ZW5j eSBvZiBxdWVyaWVzIGNhbiBiZSByZWR1Y2VkCi0gICBzaWduaWZpY2FudGx5LiAgT3ZlcmFsbCBx dWVyeSB0aHJvdWdocHV0IG1heSBpbmNyZWFzZQotICAgc2lnbmlmaWNhbnRseS4gIFRoZSBvdmVy aGVhZCBvZiByb3V0aW5lIGluZGV4IHZhY3V1bWluZyBtYXkgYWxzbyBiZQotICAgcmVkdWNlZCBz aWduaWZpY2FudGx5LgotICA8L3BhcmE+Ci0gIDxub3RlPgotICAgPHBhcmE+Ci0gICAgQi1UcmVl IGRlZHVwbGljYXRpb24gaXMganVzdCBhcyBlZmZlY3RpdmUgd2l0aAotICAgIDxxdW90ZT5kdXBs aWNhdGVzPC9xdW90ZT4gdGhhdCBjb250YWluIGEgTlVMTCB2YWx1ZSwgZXZlbiB0aG91Z2gKLSAg ICBOVUxMIHZhbHVlcyBhcmUgbmV2ZXIgZXF1YWwgdG8gZWFjaCBvdGhlciBhY2NvcmRpbmcgdG8g dGhlCi0gICAgPGxpdGVyYWw+PTwvbGl0ZXJhbD4gbWVtYmVyIG9mIGFueSBCLVRyZWUgb3BlcmF0 b3IgY2xhc3MuICBBcyBmYXIKLSAgICBhcyBhbnkgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24g dGhhdCB1bmRlcnN0YW5kcyB0aGUgb24tZGlzawotICAgIEItVHJlZSBzdHJ1Y3R1cmUgaXMgY29u Y2VybmVkLCBOVUxMIGlzIGp1c3QgYW5vdGhlciB2YWx1ZSBmcm9tIHRoZQotICAgIGRvbWFpbiBv ZiBpbmRleGVkIHZhbHVlcy4KLSAgIDwvcGFyYT4KLSAgPC9ub3RlPgotICA8cGFyYT4KLSAgIFRo ZSBkZWR1cGxpY2F0aW9uIHByb2Nlc3Mgb2NjdXJzIGxhemlseSwgd2hlbiBhIG5ldyBpdGVtIGlz Ci0gICBpbnNlcnRlZCB0aGF0IGNhbm5vdCBmaXQgb24gYW4gZXhpc3RpbmcgbGVhZiBwYWdlLCB0 aG91Z2ggb25seSB3aGVuCi0gICBpbmRleCB0dXBsZSBkZWxldGlvbiBjb3VsZCBub3QgZnJlZSBz dWZmaWNpZW50IHNwYWNlIGZvciB0aGUgbmV3Ci0gICBpdGVtICh0eXBpY2FsbHkgZGVsZXRpb24g aXMgYnJpZWZseSBjb25zaWRlcmVkIGFuZCB0aGVuIHNraXBwZWQKLSAgIG92ZXIpLiAgVW5saWtl IEdJTiBwb3N0aW5nIGxpc3QgdHVwbGVzLCBCLVRyZWUgcG9zdGluZyBsaXN0IHR1cGxlcwotICAg ZG8gbm90IG5lZWQgdG8gZXhwYW5kIGV2ZXJ5IHRpbWUgYSBuZXcgZHVwbGljYXRlIGlzIGluc2Vy dGVkOyB0aGV5Ci0gICBhcmUgbWVyZWx5IGFuIGFsdGVybmF0aXZlIHBoeXNpY2FsIHJlcHJlc2Vu dGF0aW9uIG9mIHRoZSBvcmlnaW5hbAotICAgbG9naWNhbCBjb250ZW50cyBvZiB0aGUgbGVhZiBw YWdlLiAgVGhpcyBkZXNpZ24gcHJpb3JpdGl6ZXMKLSAgIGNvbnNpc3RlbnQgcGVyZm9ybWFuY2Ug d2l0aCBtaXhlZCByZWFkLXdyaXRlIHdvcmtsb2Fkcy4gIE1vc3QKLSAgIGNsaWVudCBhcHBsaWNh dGlvbnMgd2lsbCBhdCBsZWFzdCBzZWUgYSBtb2RlcmF0ZSBwZXJmb3JtYW5jZQotICAgYmVuZWZp dCBmcm9tIHVzaW5nIGRlZHVwbGljYXRpb24uICBEZWR1cGxpY2F0aW9uIGlzIGVuYWJsZWQgYnkK LSAgIGRlZmF1bHQuCi0gIDwvcGFyYT4KLSAgPHBhcmE+Ci0gICA8Y29tbWFuZD5DUkVBVEUgSU5E RVg8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5SRUlOREVYPC9jb21tYW5kPgotICAgYXBwbHkgZGVk dXBsaWNhdGlvbiB0byBjcmVhdGUgcG9zdGluZyBsaXN0IHR1cGxlcywgdGhvdWdoIHRoZQotICAg c3RyYXRlZ3kgdGhleSB1c2UgaXMgc2xpZ2h0bHkgZGlmZmVyZW50LiAgRWFjaCBncm91cCBvZiBk dXBsaWNhdGUKLSAgIG9yZGluYXJ5IHR1cGxlcyBlbmNvdW50ZXJlZCBpbiB0aGUgc29ydGVkIGlu cHV0IHRha2VuIGZyb20gdGhlCi0gICB0YWJsZSBpcyBtZXJnZWQgaW50byBhIHBvc3RpbmcgbGlz dCB0dXBsZQotICAgPGVtcGhhc2lzPmJlZm9yZTwvZW1waGFzaXM+IGJlaW5nIGFkZGVkIHRvIHRo ZSBjdXJyZW50IHBlbmRpbmcgbGVhZgotICAgcGFnZS4gIEluZGl2aWR1YWwgcG9zdGluZyBsaXN0 IHR1cGxlcyBhcmUgcGFja2VkIHdpdGggYXMgbWFueQotICAgPGFjcm9ueW0+VElEPC9hY3Jvbnlt PnMgYXMgcG9zc2libGUuICBMZWFmIHBhZ2VzIGFyZSB3cml0dGVuIG91dCBpbgotICAgdGhlIHVz dWFsIHdheSwgd2l0aG91dCBhbnkgc2VwYXJhdGUgZGVkdXBsaWNhdGlvbiBwYXNzLiAgVGhpcwot ICAgc3RyYXRlZ3kgaXMgd2VsbC1zdWl0ZWQgdG8gPGNvbW1hbmQ+Q1JFQVRFIElOREVYPC9jb21t YW5kPiBhbmQKLSAgIDxjb21tYW5kPlJFSU5ERVg8L2NvbW1hbmQ+IGJlY2F1c2UgdGhleSBhcmUg b25jZS1vZmYgYmF0Y2gKLSAgIG9wZXJhdGlvbnMuCi0gIDwvcGFyYT4KLSAgPHBhcmE+Ci0gICBX cml0ZS1oZWF2eSB3b3JrbG9hZHMgdGhhdCBkb24ndCBiZW5lZml0IGZyb20gZGVkdXBsaWNhdGlv biBkdWUgdG8KLSAgIGhhdmluZyBmZXcgb3Igbm8gZHVwbGljYXRlIHZhbHVlcyBpbiBpbmRleGVz IHdpbGwgaW5jdXIgYSBzbWFsbCwKLSAgIGZpeGVkIHBlcmZvcm1hbmNlIHBlbmFsdHkgKHVubGVz cyBkZWR1cGxpY2F0aW9uIGlzIGV4cGxpY2l0bHkKLSAgIGRpc2FibGVkKS4gIFRoZSA8bGl0ZXJh bD5kZWR1cGxpY2F0ZV9pdGVtczwvbGl0ZXJhbD4gc3RvcmFnZQotICAgcGFyYW1ldGVyIGNhbiBi ZSB1c2VkIHRvIGRpc2FibGUgZGVkdXBsaWNhdGlvbiB3aXRoaW4gaW5kaXZpZHVhbAotICAgaW5k ZXhlcy4gIFRoZXJlIGlzIG5ldmVyIGFueSBwZXJmb3JtYW5jZSBwZW5hbHR5IHdpdGggcmVhZC1v bmx5Ci0gICB3b3JrbG9hZHMsIHNpbmNlIHJlYWRpbmcgcG9zdGluZyBsaXN0IHR1cGxlcyBpcyBh dCBsZWFzdCBhcwotICAgZWZmaWNpZW50IGFzIHJlYWRpbmcgdGhlIHN0YW5kYXJkIHR1cGxlIHJl cHJlc2VudGF0aW9uLiAgRGlzYWJsaW5nCi0gICBkZWR1cGxpY2F0aW9uIGlzbid0IHVzdWFsbHkg aGVscGZ1bC4KLSAgPC9wYXJhPgotICA8cGFyYT4KLSAgIEl0IGlzIHNvbWV0aW1lcyBwb3NzaWJs ZSBmb3IgdW5pcXVlIGluZGV4ZXMgKGFzIHdlbGwgYXMgdW5pcXVlCi0gICBjb25zdHJhaW50cykg dG8gdXNlIGRlZHVwbGljYXRpb24uICBUaGlzIGFsbG93cyBsZWFmIHBhZ2VzIHRvCi0gICB0ZW1w b3JhcmlseSA8cXVvdGU+YWJzb3JiPC9xdW90ZT4gZXh0cmEgdmVyc2lvbiBjaHVybiBkdXBsaWNh dGVzLgotICAgRGVkdXBsaWNhdGlvbiBpbiB1bmlxdWUgaW5kZXhlcyBhdWdtZW50cyBib3R0b20t dXAgaW5kZXggZGVsZXRpb24sCi0gICBlc3BlY2lhbGx5IGluIGNhc2VzIHdoZXJlIGEgbG9uZy1y dW5uaW5nIHRyYW5zYWN0aW9uIGhvbGRzIGEKLSAgIHNuYXBzaG90IHRoYXQgYmxvY2tzIGdhcmJh Z2UgY29sbGVjdGlvbi4gIFRoZSBnb2FsIGlzIHRvIGJ1eSB0aW1lCi0gICBmb3IgdGhlIGJvdHRv bS11cCBpbmRleCBkZWxldGlvbiBzdHJhdGVneSB0byBiZWNvbWUgZWZmZWN0aXZlCi0gICBhZ2Fp bi4gIERlbGF5aW5nIHBhZ2Ugc3BsaXRzIHVudGlsIGEgc2luZ2xlIGxvbmctcnVubmluZwotICAg dHJhbnNhY3Rpb24gbmF0dXJhbGx5IGdvZXMgYXdheSBjYW4gYWxsb3cgYSBib3R0b20tdXAgZGVs ZXRpb24gcGFzcwotICAgdG8gc3VjY2VlZCB3aGVyZSBhbiBlYXJsaWVyIGRlbGV0aW9uIHBhc3Mg ZmFpbGVkLgotICA8L3BhcmE+Ci0gIDx0aXA+Ci0gICA8cGFyYT4KLSAgICBBIHNwZWNpYWwgaGV1 cmlzdGljIGlzIGFwcGxpZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYQotICAgIGRlZHVwbGljYXRp b24gcGFzcyBpbiBhIHVuaXF1ZSBpbmRleCBzaG91bGQgdGFrZSBwbGFjZS4gIEl0IGNhbgotICAg IG9mdGVuIHNraXAgc3RyYWlnaHQgdG8gc3BsaXR0aW5nIGEgbGVhZiBwYWdlLCBhdm9pZGluZyBh Ci0gICAgcGVyZm9ybWFuY2UgcGVuYWx0eSBmcm9tIHdhc3RpbmcgY3ljbGVzIG9uIHVuaGVscGZ1 bCBkZWR1cGxpY2F0aW9uCi0gICAgcGFzc2VzLiAgSWYgeW91J3JlIGNvbmNlcm5lZCBhYm91dCB0 aGUgb3ZlcmhlYWQgb2YgZGVkdXBsaWNhdGlvbiwKLSAgICBjb25zaWRlciBzZXR0aW5nIDxsaXRl cmFsPmRlZHVwbGljYXRlX2l0ZW1zID0gb2ZmPC9saXRlcmFsPgotICAgIHNlbGVjdGl2ZWx5LiAg TGVhdmluZyBkZWR1cGxpY2F0aW9uIGVuYWJsZWQgaW4gdW5pcXVlIGluZGV4ZXMgaGFzCi0gICAg bGl0dGxlIGRvd25zaWRlLgotICAgPC9wYXJhPgotICA8L3RpcD4KLSAgPHBhcmE+Ci0gICBEZWR1 cGxpY2F0aW9uIGNhbm5vdCBiZSB1c2VkIGluIGFsbCBjYXNlcyBkdWUgdG8KLSAgIGltcGxlbWVu dGF0aW9uLWxldmVsIHJlc3RyaWN0aW9ucy4gIERlZHVwbGljYXRpb24gc2FmZXR5IGlzCi0gICBk ZXRlcm1pbmVkIHdoZW4gPGNvbW1hbmQ+Q1JFQVRFIElOREVYPC9jb21tYW5kPiBvcgotICAgPGNv bW1hbmQ+UkVJTkRFWDwvY29tbWFuZD4gaXMgcnVuLgotICA8L3BhcmE+Ci0gIDxwYXJhPgotICAg Tm90ZSB0aGF0IGRlZHVwbGljYXRpb24gaXMgZGVlbWVkIHVuc2FmZSBhbmQgY2Fubm90IGJlIHVz ZWQgaW4gdGhlCi0gICBmb2xsb3dpbmcgY2FzZXMgaW52b2x2aW5nIHNlbWFudGljYWxseSBzaWdu aWZpY2FudCBkaWZmZXJlbmNlcwotICAgYW1vbmcgZXF1YWwgZGF0dW1zOgotICA8L3BhcmE+Ci0g IDxwYXJhPgotICAgPGl0ZW1pemVkbGlzdD4KLSAgICA8bGlzdGl0ZW0+Ci0gICAgIDxwYXJhPgot ICAgICAgPHR5cGU+dGV4dDwvdHlwZT4sIDx0eXBlPnZhcmNoYXI8L3R5cGU+LCBhbmQgPHR5cGU+ Y2hhcjwvdHlwZT4KLSAgICAgIGNhbm5vdCB1c2UgZGVkdXBsaWNhdGlvbiB3aGVuIGEKLSAgICAg IDxlbXBoYXNpcz5ub25kZXRlcm1pbmlzdGljPC9lbXBoYXNpcz4gY29sbGF0aW9uIGlzIHVzZWQu ICBDYXNlCi0gICAgICBhbmQgYWNjZW50IGRpZmZlcmVuY2VzIG11c3QgYmUgcHJlc2VydmVkIGFt b25nIGVxdWFsIGRhdHVtcy4KLSAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+Ci0KLSAgICA8 bGlzdGl0ZW0+Ci0gICAgIDxwYXJhPgotICAgICAgPHR5cGU+bnVtZXJpYzwvdHlwZT4gY2Fubm90 IHVzZSBkZWR1cGxpY2F0aW9uLiAgTnVtZXJpYyBkaXNwbGF5Ci0gICAgICBzY2FsZSBtdXN0IGJl IHByZXNlcnZlZCBhbW9uZyBlcXVhbCBkYXR1bXMuCi0gICAgIDwvcGFyYT4KLSAgICA8L2xpc3Rp dGVtPgotCi0gICAgPGxpc3RpdGVtPgotICAgICA8cGFyYT4KLSAgICAgIDx0eXBlPmpzb25iPC90 eXBlPiBjYW5ub3QgdXNlIGRlZHVwbGljYXRpb24sIHNpbmNlIHRoZQotICAgICAgPHR5cGU+anNv bmI8L3R5cGU+IEItVHJlZSBvcGVyYXRvciBjbGFzcyB1c2VzCi0gICAgICA8dHlwZT5udW1lcmlj PC90eXBlPiBpbnRlcm5hbGx5LgotICAgICA8L3BhcmE+Ci0gICAgPC9saXN0aXRlbT4KLQotICAg IDxsaXN0aXRlbT4KLSAgICAgPHBhcmE+Ci0gICAgICA8dHlwZT5mbG9hdDQ8L3R5cGU+IGFuZCA8 dHlwZT5mbG9hdDg8L3R5cGU+IGNhbm5vdCB1c2UKLSAgICAgIGRlZHVwbGljYXRpb24uICBUaGVz ZSB0eXBlcyBoYXZlIGRpc3RpbmN0IHJlcHJlc2VudGF0aW9ucyBmb3IKLSAgICAgIDxsaXRlcmFs Pi0wPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+MDwvbGl0ZXJhbD4sIHdoaWNoIGFyZQotICAgICAg bmV2ZXJ0aGVsZXNzIGNvbnNpZGVyZWQgZXF1YWwuICBUaGlzIGRpZmZlcmVuY2UgbXVzdCBiZQot ICAgICAgcHJlc2VydmVkLgotICAgICA8L3BhcmE+Ci0gICAgPC9saXN0aXRlbT4KLSAgIDwvaXRl bWl6ZWRsaXN0PgotICA8L3BhcmE+Ci0gIDxwYXJhPgotICAgVGhlcmUgaXMgb25lIGZ1cnRoZXIg aW1wbGVtZW50YXRpb24tbGV2ZWwgcmVzdHJpY3Rpb24gdGhhdCBtYXkgYmUKLSAgIGxpZnRlZCBp biBhIGZ1dHVyZSB2ZXJzaW9uIG9mCi0gICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVj dG5hbWU+OgotICA8L3BhcmE+Ci0gIDxwYXJhPgotICAgPGl0ZW1pemVkbGlzdD4KLSAgICA8bGlz dGl0ZW0+Ci0gICAgIDxwYXJhPgotICAgICAgQ29udGFpbmVyIHR5cGVzIChzdWNoIGFzIGNvbXBv c2l0ZSB0eXBlcywgYXJyYXlzLCBvciByYW5nZQotICAgICAgdHlwZXMpIGNhbm5vdCB1c2UgZGVk dXBsaWNhdGlvbi4KLSAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+Ci0gICA8L2l0ZW1pemVk bGlzdD4KLSAgPC9wYXJhPgotICA8cGFyYT4KLSAgIFRoZXJlIGlzIG9uZSBmdXJ0aGVyIGltcGxl bWVudGF0aW9uLWxldmVsIHJlc3RyaWN0aW9uIHRoYXQgYXBwbGllcwotICAgcmVnYXJkbGVzcyBv ZiB0aGUgb3BlcmF0b3IgY2xhc3Mgb3IgY29sbGF0aW9uIHVzZWQ6Ci0gIDwvcGFyYT4KLSAgPHBh cmE+Ci0gICA8aXRlbWl6ZWRsaXN0PgotICAgIDxsaXN0aXRlbT4KLSAgICAgPHBhcmE+Ci0gICAg ICA8bGl0ZXJhbD5JTkNMVURFPC9saXRlcmFsPiBpbmRleGVzIGNhbiBuZXZlciB1c2UgZGVkdXBs aWNhdGlvbi4KLSAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+Ci0gICA8L2l0ZW1pemVkbGlz dD4KLSAgPC9wYXJhPgotCi0gPC9zZWN0Mj4KLTwvc2VjdDE+Ci0KLTwvY2hhcHRlcj4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sIGIvZG9jL3NyYy9zZ21sL2ZpbGVsaXN0 LnNnbWwKaW5kZXggZjM5YjRlZmUzOC4uZGU2ODNlMzQwMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2ZpbGVsaXN0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNnbWwKQEAgLTg0 LDEyICs4NCw3IEBACiA8IUVOVElUWSBjYXRhbG9ncyAgIFNZU1RFTSAiY2F0YWxvZ3Muc2dtbCI+ CiA8IUVOVElUWSBzeXN0ZW0tdmlld3MgIFNZU1RFTSAic3lzdGVtLXZpZXdzLnNnbWwiPgogPCFF TlRJVFkgZ2VxbyAgICAgICBTWVNURU0gImdlcW8uc2dtbCI+Ci08IUVOVElUWSBidHJlZSAgICAg IFNZU1RFTSAiYnRyZWUuc2dtbCI+Ci08IUVOVElUWSBnaXN0ICAgICAgIFNZU1RFTSAiZ2lzdC5z Z21sIj4KLTwhRU5USVRZIHNwZ2lzdCAgICAgU1lTVEVNICJzcGdpc3Quc2dtbCI+Ci08IUVOVElU WSBnaW4gICAgICAgIFNZU1RFTSAiZ2luLnNnbWwiPgotPCFFTlRJVFkgYnJpbiAgICAgICBTWVNU RU0gImJyaW4uc2dtbCI+Ci08IUVOVElUWSBoYXNoICAgICAgIFNZU1RFTSAiaGFzaC5zZ21sIj4K KzwhRU5USVRZIGluZGV4dHlwZXMgU1lTVEVNICJpbmRleHR5cGVzLnNnbWwiPgogPCFFTlRJVFkg cGxhbnN0YXRzICAgIFNZU1RFTSAicGxhbnN0YXRzLnNnbWwiPgogPCFFTlRJVFkgdGFibGVhbSAg ICBTWVNURU0gInRhYmxlYW0uc2dtbCI+CiA8IUVOVElUWSBpbmRleGFtICAgIFNZU1RFTSAiaW5k ZXhhbS5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9naW4uc2dtbCBiL2RvYy9zcmMv c2dtbC9naW4uc2dtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJkMWVmYWU5Mi4u MDAwMDAwMDAwMAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2luLnNnbWwKKysrIC9kZXYvbnVsbApAQCAt MSw3MTQgKzAsMCBAQAotPCEtLSBkb2Mvc3JjL3NnbWwvZ2luLnNnbWwgLS0+Ci0KLTxjaGFwdGVy IGlkPSJnaW4iPgotPHRpdGxlPkdJTiBJbmRleGVzPC90aXRsZT4KLQotICAgPGluZGV4dGVybT4K LSAgICA8cHJpbWFyeT5pbmRleDwvcHJpbWFyeT4KLSAgICA8c2Vjb25kYXJ5PkdJTjwvc2Vjb25k YXJ5PgotICAgPC9pbmRleHRlcm0+Ci0KLTxzZWN0MSBpZD0iZ2luLWludHJvIj4KLSA8dGl0bGU+ SW50cm9kdWN0aW9uPC90aXRsZT4KLQotIDxwYXJhPgotICA8YWNyb255bT5HSU48L2Fjcm9ueW0+ IHN0YW5kcyBmb3IgR2VuZXJhbGl6ZWQgSW52ZXJ0ZWQgSW5kZXguCi0gIDxhY3JvbnltPkdJTjwv YWNyb255bT4gaXMgZGVzaWduZWQgZm9yIGhhbmRsaW5nIGNhc2VzIHdoZXJlIHRoZSBpdGVtcwot ICB0byBiZSBpbmRleGVkIGFyZSBjb21wb3NpdGUgdmFsdWVzLCBhbmQgdGhlIHF1ZXJpZXMgdG8g YmUgaGFuZGxlZCBieQotICB0aGUgaW5kZXggbmVlZCB0byBzZWFyY2ggZm9yIGVsZW1lbnQgdmFs dWVzIHRoYXQgYXBwZWFyIHdpdGhpbgotICB0aGUgY29tcG9zaXRlIGl0ZW1zLiAgRm9yIGV4YW1w bGUsIHRoZSBpdGVtcyBjb3VsZCBiZSBkb2N1bWVudHMsCi0gIGFuZCB0aGUgcXVlcmllcyBjb3Vs ZCBiZSBzZWFyY2hlcyBmb3IgZG9jdW1lbnRzIGNvbnRhaW5pbmcgc3BlY2lmaWMgd29yZHMuCi0g PC9wYXJhPgotCi0gPHBhcmE+Ci0gIFdlIHVzZSB0aGUgd29yZCA8Zmlyc3R0ZXJtPml0ZW08L2Zp cnN0dGVybT4gdG8gcmVmZXIgdG8gYSBjb21wb3NpdGUgdmFsdWUgdGhhdAotICBpcyB0byBiZSBp bmRleGVkLCBhbmQgdGhlIHdvcmQgPGZpcnN0dGVybT5rZXk8L2ZpcnN0dGVybT4gdG8gcmVmZXIg dG8gYW4gZWxlbWVudAotICB2YWx1ZS4gIDxhY3JvbnltPkdJTjwvYWNyb255bT4gYWx3YXlzIHN0 b3JlcyBhbmQgc2VhcmNoZXMgZm9yIGtleXMsCi0gIG5vdCBpdGVtIHZhbHVlcyBwZXIgc2UuCi0g PC9wYXJhPgotCi0gPHBhcmE+Ci0gIEEgPGFjcm9ueW0+R0lOPC9hY3JvbnltPiBpbmRleCBzdG9y ZXMgYSBzZXQgb2YgKGtleSwgcG9zdGluZyBsaXN0KSBwYWlycywKLSAgd2hlcmUgYSA8Zmlyc3R0 ZXJtPnBvc3RpbmcgbGlzdDwvZmlyc3R0ZXJtPiBpcyBhIHNldCBvZiByb3cgSURzIGluIHdoaWNo IHRoZSBrZXkKLSAgb2NjdXJzLiAgVGhlIHNhbWUgcm93IElEIGNhbiBhcHBlYXIgaW4gbXVsdGlw bGUgcG9zdGluZyBsaXN0cywgc2luY2UKLSAgYW4gaXRlbSBjYW4gY29udGFpbiBtb3JlIHRoYW4g b25lIGtleS4gIEVhY2gga2V5IHZhbHVlIGlzIHN0b3JlZCBvbmx5Ci0gIG9uY2UsIHNvIGEgPGFj cm9ueW0+R0lOPC9hY3JvbnltPiBpbmRleCBpcyB2ZXJ5IGNvbXBhY3QgZm9yIGNhc2VzCi0gIHdo ZXJlIHRoZSBzYW1lIGtleSBhcHBlYXJzIG1hbnkgdGltZXMuCi0gPC9wYXJhPgotCi0gPHBhcmE+ Ci0gIDxhY3JvbnltPkdJTjwvYWNyb255bT4gaXMgZ2VuZXJhbGl6ZWQgaW4gdGhlIHNlbnNlIHRo YXQgdGhlCi0gIDxhY3JvbnltPkdJTjwvYWNyb255bT4gYWNjZXNzIG1ldGhvZCBjb2RlIGRvZXMg bm90IG5lZWQgdG8ga25vdyB0aGUKLSAgc3BlY2lmaWMgb3BlcmF0aW9ucyB0aGF0IGl0IGFjY2Vs ZXJhdGVzLgotICBJbnN0ZWFkLCBpdCB1c2VzIGN1c3RvbSBzdHJhdGVnaWVzIGRlZmluZWQgZm9y IHBhcnRpY3VsYXIgZGF0YSB0eXBlcy4KLSAgVGhlIHN0cmF0ZWd5IGRlZmluZXMgaG93IGtleXMg YXJlIGV4dHJhY3RlZCBmcm9tIGluZGV4ZWQgaXRlbXMgYW5kCi0gIHF1ZXJ5IGNvbmRpdGlvbnMs IGFuZCBob3cgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSByb3cgdGhhdCBjb250YWlucwotICBzb21l IG9mIHRoZSBrZXkgdmFsdWVzIGluIGEgcXVlcnkgYWN0dWFsbHkgc2F0aXNmaWVzIHRoZSBxdWVy eS4KLSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgT25lIGFkdmFudGFnZSBvZiA8YWNyb255bT5HSU48 L2Fjcm9ueW0+IGlzIHRoYXQgaXQgYWxsb3dzIHRoZSBkZXZlbG9wbWVudAotICBvZiBjdXN0b20g ZGF0YSB0eXBlcyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBhY2Nlc3MgbWV0aG9kcywgYnkKLSAgYW4g ZXhwZXJ0IGluIHRoZSBkb21haW4gb2YgdGhlIGRhdGEgdHlwZSwgcmF0aGVyIHRoYW4gYSBkYXRh YmFzZSBleHBlcnQuCi0gIFRoaXMgaXMgbXVjaCB0aGUgc2FtZSBhZHZhbnRhZ2UgYXMgdXNpbmcg PGFjcm9ueW0+R2lTVDwvYWNyb255bT4uCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gIFRoZSA8YWNy b255bT5HSU48L2Fjcm9ueW0+Ci0gIGltcGxlbWVudGF0aW9uIGluIDxwcm9kdWN0bmFtZT5Qb3N0 Z3JlU1FMPC9wcm9kdWN0bmFtZT4gaXMgcHJpbWFyaWx5Ci0gIG1haW50YWluZWQgYnkgVGVvZG9y IFNpZ2FldiBhbmQgT2xlZyBCYXJ0dW5vdi4gVGhlcmUgaXMgbW9yZQotICBpbmZvcm1hdGlvbiBh Ym91dCA8YWNyb255bT5HSU48L2Fjcm9ueW0+IG9uIHRoZWlyCi0gIDx1bGluayB1cmw9Imh0dHA6 Ly93d3cuc2FpLm1zdS5zdS9+bWVnZXJhL3dpa2kvR2luIj53ZWJzaXRlPC91bGluaz4uCi0gPC9w YXJhPgotPC9zZWN0MT4KLQotPHNlY3QxIGlkPSJnaW4tYnVpbHRpbi1vcGNsYXNzZXMiPgotIDx0 aXRsZT5CdWlsdC1pbiBPcGVyYXRvciBDbGFzc2VzPC90aXRsZT4KLQotIDxwYXJhPgotICBUaGUg Y29yZSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGRpc3RyaWJ1dGlvbgot ICBpbmNsdWRlcyB0aGUgPGFjcm9ueW0+R0lOPC9hY3JvbnltPiBvcGVyYXRvciBjbGFzc2VzIHNo b3duIGluCi0gIDx4cmVmIGxpbmtlbmQ9Imdpbi1idWlsdGluLW9wY2xhc3Nlcy10YWJsZSIvPi4K LSAgKFNvbWUgb2YgdGhlIG9wdGlvbmFsIG1vZHVsZXMgZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtl bmQ9ImNvbnRyaWIiLz4KLSAgcHJvdmlkZSBhZGRpdGlvbmFsIDxhY3JvbnltPkdJTjwvYWNyb255 bT4gb3BlcmF0b3IgY2xhc3Nlcy4pCi0gPC9wYXJhPgotCi0gIDx0YWJsZSBpZD0iZ2luLWJ1aWx0 aW4tb3BjbGFzc2VzLXRhYmxlIj4KLSAgIDx0aXRsZT5CdWlsdC1pbiA8YWNyb255bT5HSU48L2Fj cm9ueW0+IE9wZXJhdG9yIENsYXNzZXM8L3RpdGxlPgotICAgPHRncm91cCBjb2xzPSIyIj4KLSAg ICA8dGhlYWQ+Ci0gICAgIDxyb3c+Ci0gICAgICA8ZW50cnk+TmFtZTwvZW50cnk+Ci0gICAgICA8 ZW50cnk+SW5kZXhhYmxlIE9wZXJhdG9yczwvZW50cnk+Ci0gICAgIDwvcm93PgotICAgIDwvdGhl YWQ+Ci0gICAgPHRib2R5PgotICAgICA8cm93PgotICAgICAgPGVudHJ5IG1vcmVyb3dzPSIzIiB2 YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+YXJyYXlfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAg ICA8ZW50cnk+PGxpdGVyYWw+JmFtcDsmYW1wOyAoYW55YXJyYXksYW55YXJyYXkpPC9saXRlcmFs PjwvZW50cnk+Ci0gICAgIDwvcm93PgotICAgICA8cm93PgotICAgICAgPGVudHJ5PjxsaXRlcmFs PkAmZ3Q7IChhbnlhcnJheSxhbnlhcnJheSk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPC9yb3c+ Ci0gICAgIDxyb3c+Ci0gICAgICA8ZW50cnk+PGxpdGVyYWw+Jmx0O0AgKGFueWFycmF5LGFueWFy cmF5KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8L3Jvdz4KLSAgICAgPHJvdz4KLSAgICAgIDxl bnRyeT48bGl0ZXJhbD49IChhbnlhcnJheSxhbnlhcnJheSk8L2xpdGVyYWw+PC9lbnRyeT4KLSAg ICAgPC9yb3c+Ci0gICAgIDxyb3c+Ci0gICAgICA8ZW50cnkgbW9yZXJvd3M9IjUiIHZhbGlnbj0i bWlkZGxlIj48bGl0ZXJhbD5qc29uYl9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgIDxlbnRy eT48bGl0ZXJhbD5AJmd0OyAoanNvbmIsanNvbmIpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDwv cm93PgotICAgICA8cm93PgotICAgICAgPGVudHJ5PjxsaXRlcmFsPkA/IChqc29uYixqc29ucGF0 aCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPC9yb3c+Ci0gICAgIDxyb3c+Ci0gICAgICA8ZW50 cnk+PGxpdGVyYWw+QEAgKGpzb25iLGpzb25wYXRoKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8 L3Jvdz4KLSAgICAgPHJvdz4KLSAgICAgIDxlbnRyeT48bGl0ZXJhbD4/IChqc29uYix0ZXh0KTwv bGl0ZXJhbD48L2VudHJ5PgotICAgICA8L3Jvdz4KLSAgICAgPHJvdz4KLSAgICAgIDxlbnRyeT48 bGl0ZXJhbD4/fCAoanNvbmIsdGV4dFtdKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8L3Jvdz4K LSAgICAgPHJvdz4KLSAgICAgIDxlbnRyeT48bGl0ZXJhbD4/JmFtcDsgKGpzb25iLHRleHRbXSk8 L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPC9yb3c+Ci0gICAgIDxyb3c+Ci0gICAgICA8ZW50cnkg bW9yZXJvd3M9IjIiIHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD5qc29uYl9wYXRoX29wczwvbGl0 ZXJhbD48L2VudHJ5PgotICAgICAgPGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChqc29uYixqc29uYik8 L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPC9yb3c+Ci0gICAgIDxyb3c+Ci0gICAgICA8ZW50cnk+ PGxpdGVyYWw+QD8gKGpzb25iLGpzb25wYXRoKTwvbGl0ZXJhbD48L2VudHJ5PgotICAgICA8L3Jv dz4KLSAgICAgPHJvdz4KLSAgICAgIDxlbnRyeT48bGl0ZXJhbD5AQCAoanNvbmIsanNvbnBhdGgp PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDwvcm93PgotICAgICA8cm93PgotICAgICAgPGVudHJ5 IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD50c3ZlY3Rvcl9vcHM8L2xpdGVyYWw+PC9lbnRyeT4K LSAgICAgIDxlbnRyeT48bGl0ZXJhbD5AQCAodHN2ZWN0b3IsdHNxdWVyeSk8L2xpdGVyYWw+PC9l bnRyeT4KLSAgICAgPC9yb3c+Ci0gICAgPC90Ym9keT4KLSAgIDwvdGdyb3VwPgotICA8L3RhYmxl PgotCi0gPHBhcmE+Ci0gIE9mIHRoZSB0d28gb3BlcmF0b3IgY2xhc3NlcyBmb3IgdHlwZSA8dHlw ZT5qc29uYjwvdHlwZT4sIDxsaXRlcmFsPmpzb25iX29wczwvbGl0ZXJhbD4KLSAgaXMgdGhlIGRl ZmF1bHQuICA8bGl0ZXJhbD5qc29uYl9wYXRoX29wczwvbGl0ZXJhbD4gc3VwcG9ydHMgZmV3ZXIg b3BlcmF0b3JzIGJ1dAotICBvZmZlcnMgYmV0dGVyIHBlcmZvcm1hbmNlIGZvciB0aG9zZSBvcGVy YXRvcnMuCi0gIFNlZSA8eHJlZiBsaW5rZW5kPSJqc29uLWluZGV4aW5nIi8+IGZvciBkZXRhaWxz LgotIDwvcGFyYT4KLQotPC9zZWN0MT4KLQotPHNlY3QxIGlkPSJnaW4tZXh0ZW5zaWJpbGl0eSI+ Ci0gPHRpdGxlPkV4dGVuc2liaWxpdHk8L3RpdGxlPgotCi0gPHBhcmE+Ci0gICBUaGUgPGFjcm9u eW0+R0lOPC9hY3JvbnltPiBpbnRlcmZhY2UgaGFzIGEgaGlnaCBsZXZlbCBvZiBhYnN0cmFjdGlv biwKLSAgIHJlcXVpcmluZyB0aGUgYWNjZXNzIG1ldGhvZCBpbXBsZW1lbnRlciBvbmx5IHRvIGlt cGxlbWVudCB0aGUgc2VtYW50aWNzIG9mCi0gICB0aGUgZGF0YSB0eXBlIGJlaW5nIGFjY2Vzc2Vk LiAgVGhlIDxhY3JvbnltPkdJTjwvYWNyb255bT4gbGF5ZXIgaXRzZWxmCi0gICB0YWtlcyBjYXJl IG9mIGNvbmN1cnJlbmN5LCBsb2dnaW5nIGFuZCBzZWFyY2hpbmcgdGhlIHRyZWUgc3RydWN0dXJl LgotIDwvcGFyYT4KLQotIDxwYXJhPgotICAgQWxsIGl0IHRha2VzIHRvIGdldCBhIDxhY3Jvbnlt PkdJTjwvYWNyb255bT4gYWNjZXNzIG1ldGhvZCB3b3JraW5nIGlzIHRvCi0gICBpbXBsZW1lbnQg YSBmZXcgdXNlci1kZWZpbmVkIG1ldGhvZHMsIHdoaWNoIGRlZmluZSB0aGUgYmVoYXZpb3Igb2YK LSAgIGtleXMgaW4gdGhlIHRyZWUgYW5kIHRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4ga2V5cywg aW5kZXhlZCBpdGVtcywKLSAgIGFuZCBpbmRleGFibGUgcXVlcmllcy4gSW4gc2hvcnQsIDxhY3Jv bnltPkdJTjwvYWNyb255bT4gY29tYmluZXMKLSAgIGV4dGVuc2liaWxpdHkgd2l0aCBnZW5lcmFs aXR5LCBjb2RlIHJldXNlLCBhbmQgYSBjbGVhbiBpbnRlcmZhY2UuCi0gPC9wYXJhPgotCi0gPHBh cmE+Ci0gICBUaGVyZSBhcmUgdHdvIG1ldGhvZHMgdGhhdCBhbiBvcGVyYXRvciBjbGFzcyBmb3IK LSAgIDxhY3JvbnltPkdJTjwvYWNyb255bT4gbXVzdCBwcm92aWRlOgotCi0gIDx2YXJpYWJsZWxp c3Q+Ci0gICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGZ1bmN0aW9uPkRhdHVtICpleHRy YWN0VmFsdWUoRGF0dW0gaXRlbVZhbHVlLCBpbnQzMiAqbmtleXMsCi0gICAgICAgIGJvb2wgKipu dWxsRmxhZ3MpPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJh PgotICAgICAgIFJldHVybnMgYSBwYWxsb2MnZCBhcnJheSBvZiBrZXlzIGdpdmVuIGFuIGl0ZW0g dG8gYmUgaW5kZXhlZC4gIFRoZQotICAgICAgIG51bWJlciBvZiByZXR1cm5lZCBrZXlzIG11c3Qg YmUgc3RvcmVkIGludG8gPGxpdGVyYWw+Km5rZXlzPC9saXRlcmFsPi4KLSAgICAgICBJZiBhbnkg b2YgdGhlIGtleXMgY2FuIGJlIG51bGwsIGFsc28gcGFsbG9jIGFuIGFycmF5IG9mCi0gICAgICAg PGxpdGVyYWw+Km5rZXlzPC9saXRlcmFsPiA8dHlwZT5ib29sPC90eXBlPiBmaWVsZHMsIHN0b3Jl IGl0cyBhZGRyZXNzIGF0Ci0gICAgICAgPGxpdGVyYWw+Km51bGxGbGFnczwvbGl0ZXJhbD4sIGFu ZCBzZXQgdGhlc2UgbnVsbCBmbGFncyBhcyBuZWVkZWQuCi0gICAgICAgPGxpdGVyYWw+Km51bGxG bGFnczwvbGl0ZXJhbD4gY2FuIGJlIGxlZnQgPHN5bWJvbD5OVUxMPC9zeW1ib2w+IChpdHMgaW5p dGlhbCB2YWx1ZSkKLSAgICAgICBpZiBhbGwga2V5cyBhcmUgbm9uLW51bGwuCi0gICAgICAgVGhl IHJldHVybiB2YWx1ZSBjYW4gYmUgPHN5bWJvbD5OVUxMPC9zeW1ib2w+IGlmIHRoZSBpdGVtIGNv bnRhaW5zIG5vIGtleXMuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92 YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48ZnVuY3Rpb24+ RGF0dW0gKmV4dHJhY3RRdWVyeShEYXR1bSBxdWVyeSwgaW50MzIgKm5rZXlzLAotICAgICAgICBT dHJhdGVneU51bWJlciBuLCBib29sICoqcG1hdGNoLCBQb2ludGVyICoqZXh0cmFfZGF0YSwKLSAg ICAgICAgYm9vbCAqKm51bGxGbGFncywgaW50MzIgKnNlYXJjaE1vZGUpPC9mdW5jdGlvbj48L3Rl cm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgIFJldHVybnMgYSBwYWxs b2MnZCBhcnJheSBvZiBrZXlzIGdpdmVuIGEgdmFsdWUgdG8gYmUgcXVlcmllZDsgdGhhdCBpcywK LSAgICAgICA8bGl0ZXJhbD5xdWVyeTwvbGl0ZXJhbD4gaXMgdGhlIHZhbHVlIG9uIHRoZSByaWdo dC1oYW5kIHNpZGUgb2YgYW4KLSAgICAgICBpbmRleGFibGUgb3BlcmF0b3Igd2hvc2UgbGVmdC1o YW5kIHNpZGUgaXMgdGhlIGluZGV4ZWQgY29sdW1uLgotICAgICAgIDxsaXRlcmFsPm48L2xpdGVy YWw+IGlzIHRoZSBzdHJhdGVneSBudW1iZXIgb2YgdGhlIG9wZXJhdG9yIHdpdGhpbiB0aGUKLSAg ICAgICBvcGVyYXRvciBjbGFzcyAoc2VlIDx4cmVmIGxpbmtlbmQ9InhpbmRleC1zdHJhdGVnaWVz Ii8+KS4KLSAgICAgICBPZnRlbiwgPGZ1bmN0aW9uPmV4dHJhY3RRdWVyeTwvZnVuY3Rpb24+IHdp bGwgbmVlZAotICAgICAgIHRvIGNvbnN1bHQgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gdG8gZGV0ZXJt aW5lIHRoZSBkYXRhIHR5cGUgb2YKLSAgICAgICA8bGl0ZXJhbD5xdWVyeTwvbGl0ZXJhbD4gYW5k IHRoZSBtZXRob2QgaXQgc2hvdWxkIHVzZSB0byBleHRyYWN0IGtleSB2YWx1ZXMuCi0gICAgICAg VGhlIG51bWJlciBvZiByZXR1cm5lZCBrZXlzIG11c3QgYmUgc3RvcmVkIGludG8gPGxpdGVyYWw+ Km5rZXlzPC9saXRlcmFsPi4KLSAgICAgICBJZiBhbnkgb2YgdGhlIGtleXMgY2FuIGJlIG51bGws IGFsc28gcGFsbG9jIGFuIGFycmF5IG9mCi0gICAgICAgPGxpdGVyYWw+Km5rZXlzPC9saXRlcmFs PiA8dHlwZT5ib29sPC90eXBlPiBmaWVsZHMsIHN0b3JlIGl0cyBhZGRyZXNzIGF0Ci0gICAgICAg PGxpdGVyYWw+Km51bGxGbGFnczwvbGl0ZXJhbD4sIGFuZCBzZXQgdGhlc2UgbnVsbCBmbGFncyBh cyBuZWVkZWQuCi0gICAgICAgPGxpdGVyYWw+Km51bGxGbGFnczwvbGl0ZXJhbD4gY2FuIGJlIGxl ZnQgPHN5bWJvbD5OVUxMPC9zeW1ib2w+IChpdHMgaW5pdGlhbCB2YWx1ZSkKLSAgICAgICBpZiBh bGwga2V5cyBhcmUgbm9uLW51bGwuCi0gICAgICAgVGhlIHJldHVybiB2YWx1ZSBjYW4gYmUgPHN5 bWJvbD5OVUxMPC9zeW1ib2w+IGlmIHRoZSA8bGl0ZXJhbD5xdWVyeTwvbGl0ZXJhbD4gY29udGFp bnMgbm8ga2V5cy4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAgICAgPGxpdGVy YWw+c2VhcmNoTW9kZTwvbGl0ZXJhbD4gaXMgYW4gb3V0cHV0IGFyZ3VtZW50IHRoYXQgYWxsb3dz Ci0gICAgICAgPGZ1bmN0aW9uPmV4dHJhY3RRdWVyeTwvZnVuY3Rpb24+IHRvIHNwZWNpZnkgZGV0 YWlscyBhYm91dCBob3cgdGhlIHNlYXJjaAotICAgICAgIHdpbGwgYmUgZG9uZS4KLSAgICAgICBJ ZiA8bGl0ZXJhbD4qc2VhcmNoTW9kZTwvbGl0ZXJhbD4gaXMgc2V0IHRvCi0gICAgICAgPGxpdGVy YWw+R0lOX1NFQVJDSF9NT0RFX0RFRkFVTFQ8L2xpdGVyYWw+ICh3aGljaCBpcyB0aGUgdmFsdWUg aXQgaXMKLSAgICAgICBpbml0aWFsaXplZCB0byBiZWZvcmUgY2FsbCksIG9ubHkgaXRlbXMgdGhh dCBtYXRjaCBhdCBsZWFzdCBvbmUgb2YKLSAgICAgICB0aGUgcmV0dXJuZWQga2V5cyBhcmUgY29u c2lkZXJlZCBjYW5kaWRhdGUgbWF0Y2hlcy4KLSAgICAgICBJZiA8bGl0ZXJhbD4qc2VhcmNoTW9k ZTwvbGl0ZXJhbD4gaXMgc2V0IHRvCi0gICAgICAgPGxpdGVyYWw+R0lOX1NFQVJDSF9NT0RFX0lO Q0xVREVfRU1QVFk8L2xpdGVyYWw+LCB0aGVuIGluIGFkZGl0aW9uIHRvIGl0ZW1zCi0gICAgICAg Y29udGFpbmluZyBhdCBsZWFzdCBvbmUgbWF0Y2hpbmcga2V5LCBpdGVtcyB0aGF0IGNvbnRhaW4g bm8ga2V5cyBhdAotICAgICAgIGFsbCBhcmUgY29uc2lkZXJlZCBjYW5kaWRhdGUgbWF0Y2hlcy4g IChUaGlzIG1vZGUgaXMgdXNlZnVsIGZvcgotICAgICAgIGltcGxlbWVudGluZyBpcy1zdWJzZXQt b2Ygb3BlcmF0b3JzLCBmb3IgZXhhbXBsZS4pCi0gICAgICAgSWYgPGxpdGVyYWw+KnNlYXJjaE1v ZGU8L2xpdGVyYWw+IGlzIHNldCB0byA8bGl0ZXJhbD5HSU5fU0VBUkNIX01PREVfQUxMPC9saXRl cmFsPiwKLSAgICAgICB0aGVuIGFsbCBub24tbnVsbCBpdGVtcyBpbiB0aGUgaW5kZXggYXJlIGNv bnNpZGVyZWQgY2FuZGlkYXRlCi0gICAgICAgbWF0Y2hlcywgd2hldGhlciB0aGV5IG1hdGNoIGFu eSBvZiB0aGUgcmV0dXJuZWQga2V5cyBvciBub3QuICAoVGhpcwotICAgICAgIG1vZGUgaXMgbXVj aCBzbG93ZXIgdGhhbiB0aGUgb3RoZXIgdHdvIGNob2ljZXMsIHNpbmNlIGl0IHJlcXVpcmVzCi0g ICAgICAgc2Nhbm5pbmcgZXNzZW50aWFsbHkgdGhlIGVudGlyZSBpbmRleCwgYnV0IGl0IG1heSBi ZSBuZWNlc3NhcnkgdG8KLSAgICAgICBpbXBsZW1lbnQgY29ybmVyIGNhc2VzIGNvcnJlY3RseS4g IEFuIG9wZXJhdG9yIHRoYXQgbmVlZHMgdGhpcyBtb2RlCi0gICAgICAgaW4gbW9zdCBjYXNlcyBp cyBwcm9iYWJseSBub3QgYSBnb29kIGNhbmRpZGF0ZSBmb3IgYSBHSU4gb3BlcmF0b3IKLSAgICAg ICBjbGFzcy4pCi0gICAgICAgVGhlIHN5bWJvbHMgdG8gdXNlIGZvciBzZXR0aW5nIHRoaXMgbW9k ZSBhcmUgZGVmaW5lZCBpbgotICAgICAgIDxmaWxlbmFtZT5hY2Nlc3MvZ2luLmg8L2ZpbGVuYW1l Pi4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAgICAgPGxpdGVyYWw+cG1hdGNo PC9saXRlcmFsPiBpcyBhbiBvdXRwdXQgYXJndW1lbnQgZm9yIHVzZSB3aGVuIHBhcnRpYWwgbWF0 Y2gKLSAgICAgICBpcyBzdXBwb3J0ZWQuICBUbyB1c2UgaXQsIDxmdW5jdGlvbj5leHRyYWN0UXVl cnk8L2Z1bmN0aW9uPiBtdXN0IGFsbG9jYXRlCi0gICAgICAgYW4gYXJyYXkgb2YgPGxpdGVyYWw+ Km5rZXlzPC9saXRlcmFsPiA8dHlwZT5ib29sPC90eXBlPnMgYW5kIHN0b3JlIGl0cyBhZGRyZXNz IGF0Ci0gICAgICAgPGxpdGVyYWw+KnBtYXRjaDwvbGl0ZXJhbD4uICBFYWNoIGVsZW1lbnQgb2Yg dGhlIGFycmF5IHNob3VsZCBiZSBzZXQgdG8gdHJ1ZQotICAgICAgIGlmIHRoZSBjb3JyZXNwb25k aW5nIGtleSByZXF1aXJlcyBwYXJ0aWFsIG1hdGNoLCBmYWxzZSBpZiBub3QuCi0gICAgICAgSWYg PGxpdGVyYWw+KnBtYXRjaDwvbGl0ZXJhbD4gaXMgc2V0IHRvIDxzeW1ib2w+TlVMTDwvc3ltYm9s PiB0aGVuIEdJTiBhc3N1bWVzIHBhcnRpYWwgbWF0Y2gKLSAgICAgICBpcyBub3QgcmVxdWlyZWQu ICBUaGUgdmFyaWFibGUgaXMgaW5pdGlhbGl6ZWQgdG8gPHN5bWJvbD5OVUxMPC9zeW1ib2w+IGJl Zm9yZSBjYWxsLAotICAgICAgIHNvIHRoaXMgYXJndW1lbnQgY2FuIHNpbXBseSBiZSBpZ25vcmVk IGJ5IG9wZXJhdG9yIGNsYXNzZXMgdGhhdCBkbwotICAgICAgIG5vdCBzdXBwb3J0IHBhcnRpYWwg bWF0Y2guCi0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAgICAgIDxsaXRlcmFsPmV4 dHJhX2RhdGE8L2xpdGVyYWw+IGlzIGFuIG91dHB1dCBhcmd1bWVudCB0aGF0IGFsbG93cwotICAg ICAgIDxmdW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiB0byBwYXNzIGFkZGl0aW9uYWwg ZGF0YSB0byB0aGUKLSAgICAgICA8ZnVuY3Rpb24+Y29uc2lzdGVudDwvZnVuY3Rpb24+IGFuZCA8 ZnVuY3Rpb24+Y29tcGFyZVBhcnRpYWw8L2Z1bmN0aW9uPiBtZXRob2RzLgotICAgICAgIFRvIHVz ZSBpdCwgPGZ1bmN0aW9uPmV4dHJhY3RRdWVyeTwvZnVuY3Rpb24+IG11c3QgYWxsb2NhdGUKLSAg ICAgICBhbiBhcnJheSBvZiA8bGl0ZXJhbD4qbmtleXM8L2xpdGVyYWw+IHBvaW50ZXJzIGFuZCBz dG9yZSBpdHMgYWRkcmVzcyBhdAotICAgICAgIDxsaXRlcmFsPipleHRyYV9kYXRhPC9saXRlcmFs PiwgdGhlbiBzdG9yZSB3aGF0ZXZlciBpdCB3YW50cyB0byBpbnRvIHRoZQotICAgICAgIGluZGl2 aWR1YWwgcG9pbnRlcnMuICBUaGUgdmFyaWFibGUgaXMgaW5pdGlhbGl6ZWQgdG8gPHN5bWJvbD5O VUxMPC9zeW1ib2w+IGJlZm9yZQotICAgICAgIGNhbGwsIHNvIHRoaXMgYXJndW1lbnQgY2FuIHNp bXBseSBiZSBpZ25vcmVkIGJ5IG9wZXJhdG9yIGNsYXNzZXMgdGhhdAotICAgICAgIGRvIG5vdCBy ZXF1aXJlIGV4dHJhIGRhdGEuICBJZiA8bGl0ZXJhbD4qZXh0cmFfZGF0YTwvbGl0ZXJhbD4gaXMg c2V0LCB0aGUKLSAgICAgICB3aG9sZSBhcnJheSBpcyBwYXNzZWQgdG8gdGhlIDxmdW5jdGlvbj5j b25zaXN0ZW50PC9mdW5jdGlvbj4gbWV0aG9kLCBhbmQKLSAgICAgICB0aGUgYXBwcm9wcmlhdGUg ZWxlbWVudCB0byB0aGUgPGZ1bmN0aW9uPmNvbXBhcmVQYXJ0aWFsPC9mdW5jdGlvbj4gbWV0aG9k LgotICAgICAgPC9wYXJhPgotCi0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+ Ci0gIDwvdmFyaWFibGVsaXN0PgotCi0gIEFuIG9wZXJhdG9yIGNsYXNzIG11c3QgYWxzbyBwcm92 aWRlIGEgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYW4gaW5kZXhlZCBpdGVtCi0gIG1hdGNoZXMgdGhl IHF1ZXJ5LiBJdCBjb21lcyBpbiB0d28gZmxhdm9ycywgYSBCb29sZWFuIDxmdW5jdGlvbj5jb25z aXN0ZW50PC9mdW5jdGlvbj4KLSAgZnVuY3Rpb24sIGFuZCBhIHRlcm5hcnkgPGZ1bmN0aW9uPnRy aUNvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KLSAgPGZ1bmN0aW9uPnRyaUNvbnNpc3Rl bnQ8L2Z1bmN0aW9uPiBjb3ZlcnMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYm90aCwgc28gcHJvdmlk aW5nCi0gIDxmdW5jdGlvbj50cmlDb25zaXN0ZW50PC9mdW5jdGlvbj4gYWxvbmUgaXMgc3VmZmlj aWVudC4gSG93ZXZlciwgaWYgdGhlIEJvb2xlYW4KLSAgdmFyaWFudCBpcyBzaWduaWZpY2FudGx5 IGNoZWFwZXIgdG8gY2FsY3VsYXRlLCBpdCBjYW4gYmUgYWR2YW50YWdlb3VzIHRvCi0gIHByb3Zp ZGUgYm90aC4gIElmIG9ubHkgdGhlIEJvb2xlYW4gdmFyaWFudCBpcyBwcm92aWRlZCwgc29tZSBv cHRpbWl6YXRpb25zCi0gIHRoYXQgZGVwZW5kIG9uIHJlZnV0aW5nIGluZGV4IGl0ZW1zIGJlZm9y ZSBmZXRjaGluZyBhbGwgdGhlIGtleXMgYXJlCi0gIGRpc2FibGVkLgotCi0gIDx2YXJpYWJsZWxp c3Q+Ci0gICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGZ1bmN0aW9uPmJvb2wgY29uc2lz dGVudChib29sIGNoZWNrW10sIFN0cmF0ZWd5TnVtYmVyIG4sIERhdHVtIHF1ZXJ5LAotICAgICAg ICBpbnQzMiBua2V5cywgUG9pbnRlciBleHRyYV9kYXRhW10sIGJvb2wgKnJlY2hlY2ssCi0gICAg ICAgIERhdHVtIHF1ZXJ5S2V5c1tdLCBib29sIG51bGxGbGFnc1tdKTwvZnVuY3Rpb24+PC90ZXJt PgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBSZXR1cm5zIHRydWUgaWYg YW4gaW5kZXhlZCBpdGVtIHNhdGlzZmllcyB0aGUgcXVlcnkgb3BlcmF0b3Igd2l0aAotICAgICAg IHN0cmF0ZWd5IG51bWJlciA8bGl0ZXJhbD5uPC9saXRlcmFsPiAob3IgbWlnaHQgc2F0aXNmeSBp dCwgaWYgdGhlIHJlY2hlY2sKLSAgICAgICBpbmRpY2F0aW9uIGlzIHJldHVybmVkKS4gIFRoaXMg ZnVuY3Rpb24gZG9lcyBub3QgaGF2ZSBkaXJlY3QgYWNjZXNzCi0gICAgICAgdG8gdGhlIGluZGV4 ZWQgaXRlbSdzIHZhbHVlLCBzaW5jZSA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGRvZXMgbm90Ci0g ICAgICAgc3RvcmUgaXRlbXMgZXhwbGljaXRseS4gIFJhdGhlciwgd2hhdCBpcyBhdmFpbGFibGUg aXMga25vd2xlZGdlCi0gICAgICAgYWJvdXQgd2hpY2gga2V5IHZhbHVlcyBleHRyYWN0ZWQgZnJv bSB0aGUgcXVlcnkgYXBwZWFyIGluIGEgZ2l2ZW4KLSAgICAgICBpbmRleGVkIGl0ZW0uICBUaGUg PGxpdGVyYWw+Y2hlY2s8L2xpdGVyYWw+IGFycmF5IGhhcyBsZW5ndGgKLSAgICAgICA8bGl0ZXJh bD5ua2V5czwvbGl0ZXJhbD4sIHdoaWNoIGlzIHRoZSBzYW1lIGFzIHRoZSBudW1iZXIgb2Yga2V5 cyBwcmV2aW91c2x5Ci0gICAgICAgcmV0dXJuZWQgYnkgPGZ1bmN0aW9uPmV4dHJhY3RRdWVyeTwv ZnVuY3Rpb24+IGZvciB0aGlzIDxsaXRlcmFsPnF1ZXJ5PC9saXRlcmFsPiBkYXR1bS4KLSAgICAg ICBFYWNoIGVsZW1lbnQgb2YgdGhlCi0gICAgICAgPGxpdGVyYWw+Y2hlY2s8L2xpdGVyYWw+IGFy cmF5IGlzIHRydWUgaWYgdGhlIGluZGV4ZWQgaXRlbSBjb250YWlucyB0aGUKLSAgICAgICBjb3Jy ZXNwb25kaW5nIHF1ZXJ5IGtleSwgaS5lLiwgaWYgKGNoZWNrW2ldID09IHRydWUpIHRoZSBpLXRo IGtleSBvZiB0aGUKLSAgICAgICA8ZnVuY3Rpb24+ZXh0cmFjdFF1ZXJ5PC9mdW5jdGlvbj4gcmVz dWx0IGFycmF5IGlzIHByZXNlbnQgaW4gdGhlIGluZGV4ZWQgaXRlbS4KLSAgICAgICBUaGUgb3Jp Z2luYWwgPGxpdGVyYWw+cXVlcnk8L2xpdGVyYWw+IGRhdHVtIGlzCi0gICAgICAgcGFzc2VkIGlu IGNhc2UgdGhlIDxmdW5jdGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4gbWV0aG9kIG5lZWRzIHRv IGNvbnN1bHQgaXQsCi0gICAgICAgYW5kIHNvIGFyZSB0aGUgPGxpdGVyYWw+cXVlcnlLZXlzW108 L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5udWxsRmxhZ3NbXTwvbGl0ZXJhbD4KLSAgICAgICBhcnJh eXMgcHJldmlvdXNseSByZXR1cm5lZCBieSA8ZnVuY3Rpb24+ZXh0cmFjdFF1ZXJ5PC9mdW5jdGlv bj4uCi0gICAgICAgPGxpdGVyYWw+ZXh0cmFfZGF0YTwvbGl0ZXJhbD4gaXMgdGhlIGV4dHJhLWRh dGEgYXJyYXkgcmV0dXJuZWQgYnkKLSAgICAgICA8ZnVuY3Rpb24+ZXh0cmFjdFF1ZXJ5PC9mdW5j dGlvbj4sIG9yIDxzeW1ib2w+TlVMTDwvc3ltYm9sPiBpZiBub25lLgotICAgICAgPC9wYXJhPgot Ci0gICAgICA8cGFyYT4KLSAgICAgICBXaGVuIDxmdW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0 aW9uPiByZXR1cm5zIGEgbnVsbCBrZXkgaW4KLSAgICAgICA8bGl0ZXJhbD5xdWVyeUtleXNbXTwv bGl0ZXJhbD4sIHRoZSBjb3JyZXNwb25kaW5nIDxsaXRlcmFsPmNoZWNrW108L2xpdGVyYWw+IGVs ZW1lbnQKLSAgICAgICBpcyB0cnVlIGlmIHRoZSBpbmRleGVkIGl0ZW0gY29udGFpbnMgYSBudWxs IGtleTsgdGhhdCBpcywgdGhlCi0gICAgICAgc2VtYW50aWNzIG9mIDxsaXRlcmFsPmNoZWNrW108 L2xpdGVyYWw+IGFyZSBsaWtlIDxsaXRlcmFsPklTIE5PVCBESVNUSU5DVAotICAgICAgIEZST008 L2xpdGVyYWw+LiAgVGhlIDxmdW5jdGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4gZnVuY3Rpb24g Y2FuIGV4YW1pbmUgdGhlCi0gICAgICAgY29ycmVzcG9uZGluZyA8bGl0ZXJhbD5udWxsRmxhZ3Nb XTwvbGl0ZXJhbD4gZWxlbWVudCBpZiBpdCBuZWVkcyB0byB0ZWxsCi0gICAgICAgdGhlIGRpZmZl cmVuY2UgYmV0d2VlbiBhIHJlZ3VsYXIgdmFsdWUgbWF0Y2ggYW5kIGEgbnVsbCBtYXRjaC4KLSAg ICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAgICAgT24gc3VjY2VzcywgPGxpdGVyYWw+ KnJlY2hlY2s8L2xpdGVyYWw+IHNob3VsZCBiZSBzZXQgdG8gdHJ1ZSBpZiB0aGUgaGVhcAotICAg ICAgIHR1cGxlIG5lZWRzIHRvIGJlIHJlY2hlY2tlZCBhZ2FpbnN0IHRoZSBxdWVyeSBvcGVyYXRv ciwgb3IgZmFsc2UgaWYKLSAgICAgICB0aGUgaW5kZXggdGVzdCBpcyBleGFjdC4gIFRoYXQgaXMs IGEgZmFsc2UgcmV0dXJuIHZhbHVlIGd1YXJhbnRlZXMKLSAgICAgICB0aGF0IHRoZSBoZWFwIHR1 cGxlIGRvZXMgbm90IG1hdGNoIHRoZSBxdWVyeTsgYSB0cnVlIHJldHVybiB2YWx1ZSB3aXRoCi0g ICAgICAgPGxpdGVyYWw+KnJlY2hlY2s8L2xpdGVyYWw+IHNldCB0byBmYWxzZSBndWFyYW50ZWVz IHRoYXQgdGhlIGhlYXAgdHVwbGUgZG9lcwotICAgICAgIG1hdGNoIHRoZSBxdWVyeTsgYW5kIGEg dHJ1ZSByZXR1cm4gdmFsdWUgd2l0aAotICAgICAgIDxsaXRlcmFsPipyZWNoZWNrPC9saXRlcmFs PiBzZXQgdG8gdHJ1ZSBtZWFucyB0aGF0IHRoZSBoZWFwIHR1cGxlIG1pZ2h0IG1hdGNoCi0gICAg ICAgdGhlIHF1ZXJ5LCBzbyBpdCBuZWVkcyB0byBiZSBmZXRjaGVkIGFuZCByZWNoZWNrZWQgYnkg ZXZhbHVhdGluZyB0aGUKLSAgICAgICBxdWVyeSBvcGVyYXRvciBkaXJlY3RseSBhZ2FpbnN0IHRo ZSBvcmlnaW5hbGx5IGluZGV4ZWQgaXRlbS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRl bT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLQotICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgIDx0ZXJt PjxmdW5jdGlvbj5HaW5UZXJuYXJ5VmFsdWUgdHJpQ29uc2lzdGVudChHaW5UZXJuYXJ5VmFsdWUg Y2hlY2tbXSwgU3RyYXRlZ3lOdW1iZXIgbiwgRGF0dW0gcXVlcnksCi0gICAgICAgIGludDMyIG5r ZXlzLCBQb2ludGVyIGV4dHJhX2RhdGFbXSwKLSAgICAgICAgRGF0dW0gcXVlcnlLZXlzW10sIGJv b2wgbnVsbEZsYWdzW10pPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAg IDxwYXJhPgotICAgICAgIDxmdW5jdGlvbj50cmlDb25zaXN0ZW50PC9mdW5jdGlvbj4gaXMgc2lt aWxhciB0byA8ZnVuY3Rpb24+Y29uc2lzdGVudDwvZnVuY3Rpb24+LAotICAgICAgIGJ1dCBpbnN0 ZWFkIG9mIEJvb2xlYW5zIGluIHRoZSA8bGl0ZXJhbD5jaGVjazwvbGl0ZXJhbD4gdmVjdG9yLCB0 aGVyZSBhcmUKLSAgICAgICB0aHJlZSBwb3NzaWJsZSB2YWx1ZXMgZm9yIGVhY2gKLSAgICAgICBr ZXk6IDxsaXRlcmFsPkdJTl9UUlVFPC9saXRlcmFsPiwgPGxpdGVyYWw+R0lOX0ZBTFNFPC9saXRl cmFsPiBhbmQKLSAgICAgICA8bGl0ZXJhbD5HSU5fTUFZQkU8L2xpdGVyYWw+LiA8bGl0ZXJhbD5H SU5fRkFMU0U8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5HSU5fVFJVRTwvbGl0ZXJhbD4KLSAgICAg ICBoYXZlIHRoZSBzYW1lIG1lYW5pbmcgYXMgcmVndWxhciBCb29sZWFuIHZhbHVlcywgd2hpbGUK LSAgICAgICA8bGl0ZXJhbD5HSU5fTUFZQkU8L2xpdGVyYWw+IG1lYW5zIHRoYXQgdGhlIHByZXNl bmNlIG9mIHRoYXQga2V5IGlzIG5vdCBrbm93bi4KLSAgICAgICBXaGVuIDxsaXRlcmFsPkdJTl9N QVlCRTwvbGl0ZXJhbD4gdmFsdWVzIGFyZSBwcmVzZW50LCB0aGUgZnVuY3Rpb24gc2hvdWxkIG9u bHkKLSAgICAgICByZXR1cm4gPGxpdGVyYWw+R0lOX1RSVUU8L2xpdGVyYWw+IGlmIHRoZSBpdGVt IGNlcnRhaW5seSBtYXRjaGVzIHdoZXRoZXIgb3IKLSAgICAgICBub3QgdGhlIGluZGV4IGl0ZW0g Y29udGFpbnMgdGhlIGNvcnJlc3BvbmRpbmcgcXVlcnkga2V5cy4gTGlrZXdpc2UsIHRoZQotICAg ICAgIGZ1bmN0aW9uIG11c3QgcmV0dXJuIDxsaXRlcmFsPkdJTl9GQUxTRTwvbGl0ZXJhbD4gb25s eSBpZiB0aGUgaXRlbSBjZXJ0YWlubHkKLSAgICAgICBkb2VzIG5vdCBtYXRjaCwgd2hldGhlciBv ciBub3QgaXQgY29udGFpbnMgdGhlIDxsaXRlcmFsPkdJTl9NQVlCRTwvbGl0ZXJhbD4KLSAgICAg ICBrZXlzLiBJZiB0aGUgcmVzdWx0IGRlcGVuZHMgb24gdGhlIDxsaXRlcmFsPkdJTl9NQVlCRTwv bGl0ZXJhbD4gZW50cmllcywgaS5lLiwKLSAgICAgICB0aGUgbWF0Y2ggY2Fubm90IGJlIGNvbmZp cm1lZCBvciByZWZ1dGVkIGJhc2VkIG9uIHRoZSBrbm93biBxdWVyeSBrZXlzLAotICAgICAgIHRo ZSBmdW5jdGlvbiBtdXN0IHJldHVybiA8bGl0ZXJhbD5HSU5fTUFZQkU8L2xpdGVyYWw+LgotICAg ICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgV2hlbiB0aGVyZSBhcmUgbm8gPGxpdGVy YWw+R0lOX01BWUJFPC9saXRlcmFsPiB2YWx1ZXMgaW4gdGhlIDxsaXRlcmFsPmNoZWNrPC9saXRl cmFsPgotICAgICAgIHZlY3RvciwgYSA8bGl0ZXJhbD5HSU5fTUFZQkU8L2xpdGVyYWw+IHJldHVy biB2YWx1ZSBpcyB0aGUgZXF1aXZhbGVudCBvZgotICAgICAgIHNldHRpbmcgdGhlIDxsaXRlcmFs PnJlY2hlY2s8L2xpdGVyYWw+IGZsYWcgaW4gdGhlCi0gICAgICAgQm9vbGVhbiA8ZnVuY3Rpb24+ Y29uc2lzdGVudDwvZnVuY3Rpb24+IGZ1bmN0aW9uLgotICAgICAgPC9wYXJhPgotICAgICA8L2xp c3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotICA8L3ZhcmlhYmxlbGlzdD4KLSA8L3BhcmE+ Ci0KLSA8cGFyYT4KLSAgSW4gYWRkaXRpb24sIEdJTiBtdXN0IGhhdmUgYSB3YXkgdG8gc29ydCB0 aGUga2V5IHZhbHVlcyBzdG9yZWQgaW4gdGhlIGluZGV4LgotICBUaGUgb3BlcmF0b3IgY2xhc3Mg Y2FuIGRlZmluZSB0aGUgc29ydCBvcmRlcmluZyBieSBzcGVjaWZ5aW5nIGEgY29tcGFyaXNvbgot ICBtZXRob2Q6Ci0KLSAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8 dGVybT48ZnVuY3Rpb24+aW50IGNvbXBhcmUoRGF0dW0gYSwgRGF0dW0gYik8L2Z1bmN0aW9uPjwv dGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgQ29tcGFyZXMgdHdv IGtleXMgKG5vdCBpbmRleGVkIGl0ZW1zISkgYW5kIHJldHVybnMgYW4gaW50ZWdlciBsZXNzIHRo YW4KLSAgICAgICB6ZXJvLCB6ZXJvLCBvciBncmVhdGVyIHRoYW4gemVybywgaW5kaWNhdGluZyB3 aGV0aGVyIHRoZSBmaXJzdCBrZXkgaXMKLSAgICAgICBsZXNzIHRoYW4sIGVxdWFsIHRvLCBvciBn cmVhdGVyIHRoYW4gdGhlIHNlY29uZC4gIE51bGwga2V5cyBhcmUgbmV2ZXIKLSAgICAgICBwYXNz ZWQgdG8gdGhpcyBmdW5jdGlvbi4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAg ICA8L3Zhcmxpc3RlbnRyeT4KLSAgPC92YXJpYWJsZWxpc3Q+Ci0KLSAgQWx0ZXJuYXRpdmVseSwg aWYgdGhlIG9wZXJhdG9yIGNsYXNzIGRvZXMgbm90IHByb3ZpZGUgYSA8ZnVuY3Rpb24+Y29tcGFy ZTwvZnVuY3Rpb24+Ci0gIG1ldGhvZCwgR0lOIHdpbGwgbG9vayB1cCB0aGUgZGVmYXVsdCBidHJl ZSBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGluZGV4Ci0gIGtleSBkYXRhIHR5cGUsIGFuZCB1c2Ug aXRzIGNvbXBhcmlzb24gZnVuY3Rpb24uICBJdCBpcyByZWNvbW1lbmRlZCB0bwotICBzcGVjaWZ5 IHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uIGluIGEgR0lOIG9wZXJhdG9yIGNsYXNzIHRoYXQgaXMg bWVhbnQgZm9yCi0gIGp1c3Qgb25lIGRhdGEgdHlwZSwgYXMgbG9va2luZyB1cCB0aGUgYnRyZWUg b3BlcmF0b3IgY2xhc3MgY29zdHMgYSBmZXcKLSAgY3ljbGVzLiAgSG93ZXZlciwgcG9seW1vcnBo aWMgR0lOIG9wZXJhdG9yIGNsYXNzZXMgKHN1Y2gKLSAgYXMgPGxpdGVyYWw+YXJyYXlfb3BzPC9s aXRlcmFsPikgdHlwaWNhbGx5IGNhbm5vdCBzcGVjaWZ5IGEgc2luZ2xlIGNvbXBhcmlzb24KLSAg ZnVuY3Rpb24uCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gIEFuIG9wZXJhdG9yIGNsYXNzIGZvciA8 YWNyb255bT5HSU48L2Fjcm9ueW0+IGNhbiBvcHRpb25hbGx5IHN1cHBseSB0aGUKLSAgZm9sbG93 aW5nIG1ldGhvZHM6Ci0KLSAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5PgotICAg ICA8dGVybT48ZnVuY3Rpb24+aW50IGNvbXBhcmVQYXJ0aWFsKERhdHVtIHBhcnRpYWxfa2V5LCBE YXR1bSBrZXksIFN0cmF0ZWd5TnVtYmVyIG4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQb2ludGVyIGV4dHJhX2RhdGEpPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4K LSAgICAgIDxwYXJhPgotICAgICAgIENvbXBhcmUgYSBwYXJ0aWFsLW1hdGNoIHF1ZXJ5IGtleSB0 byBhbiBpbmRleCBrZXkuICBSZXR1cm5zIGFuIGludGVnZXIKLSAgICAgICB3aG9zZSBzaWduIGlu ZGljYXRlcyB0aGUgcmVzdWx0OiBsZXNzIHRoYW4gemVybyBtZWFucyB0aGUgaW5kZXgga2V5Ci0g ICAgICAgZG9lcyBub3QgbWF0Y2ggdGhlIHF1ZXJ5LCBidXQgdGhlIGluZGV4IHNjYW4gc2hvdWxk IGNvbnRpbnVlOyB6ZXJvCi0gICAgICAgbWVhbnMgdGhhdCB0aGUgaW5kZXgga2V5IGRvZXMgbWF0 Y2ggdGhlIHF1ZXJ5OyBncmVhdGVyIHRoYW4gemVybwotICAgICAgIGluZGljYXRlcyB0aGF0IHRo ZSBpbmRleCBzY2FuIHNob3VsZCBzdG9wIGJlY2F1c2Ugbm8gbW9yZSBtYXRjaGVzCi0gICAgICAg YXJlIHBvc3NpYmxlLiAgVGhlIHN0cmF0ZWd5IG51bWJlciA8bGl0ZXJhbD5uPC9saXRlcmFsPiBv ZiB0aGUgb3BlcmF0b3IKLSAgICAgICB0aGF0IGdlbmVyYXRlZCB0aGUgcGFydGlhbCBtYXRjaCBx dWVyeSBpcyBwcm92aWRlZCwgaW4gY2FzZSBpdHMKLSAgICAgICBzZW1hbnRpY3MgYXJlIG5lZWRl ZCB0byBkZXRlcm1pbmUgd2hlbiB0byBlbmQgdGhlIHNjYW4uICBBbHNvLAotICAgICAgIDxsaXRl cmFsPmV4dHJhX2RhdGE8L2xpdGVyYWw+IGlzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2Yg dGhlIGV4dHJhLWRhdGEKLSAgICAgICBhcnJheSBtYWRlIGJ5IDxmdW5jdGlvbj5leHRyYWN0UXVl cnk8L2Z1bmN0aW9uPiwgb3IgPHN5bWJvbD5OVUxMPC9zeW1ib2w+IGlmIG5vbmUuCi0gICAgICAg TnVsbCBrZXlzIGFyZSBuZXZlciBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbi4KLSAgICAgIDwvcGFy YT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVu dHJ5PgotICAgICA8dGVybT48ZnVuY3Rpb24+dm9pZCBvcHRpb25zKGxvY2FsX3JlbG9wdHMgKnJl bG9wdHMpPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgot ICAgICAgIERlZmluZXMgYSBzZXQgb2YgdXNlci12aXNpYmxlIHBhcmFtZXRlcnMgdGhhdCBjb250 cm9sIG9wZXJhdG9yIGNsYXNzCi0gICAgICAgYmVoYXZpb3IuCi0gICAgICA8L3BhcmE+Ci0KLSAg ICAgIDxwYXJhPgotICAgICAgIFRoZSA8ZnVuY3Rpb24+b3B0aW9uczwvZnVuY3Rpb24+IGZ1bmN0 aW9uIGlzIHBhc3NlZCBhIHBvaW50ZXIgdG8gYQotICAgICAgIDxzdHJ1Y3RuYW1lPmxvY2FsX3Jl bG9wdHM8L3N0cnVjdG5hbWU+IHN0cnVjdCwgd2hpY2ggbmVlZHMgdG8gYmUKLSAgICAgICBmaWxs ZWQgd2l0aCBhIHNldCBvZiBvcGVyYXRvciBjbGFzcyBzcGVjaWZpYyBvcHRpb25zLiAgVGhlIG9w dGlvbnMKLSAgICAgICBjYW4gYmUgYWNjZXNzZWQgZnJvbSBvdGhlciBzdXBwb3J0IGZ1bmN0aW9u cyB1c2luZyB0aGUKLSAgICAgICA8bGl0ZXJhbD5QR19IQVNfT1BDTEFTU19PUFRJT05TKCk8L2xp dGVyYWw+IGFuZAotICAgICAgIDxsaXRlcmFsPlBHX0dFVF9PUENMQVNTX09QVElPTlMoKTwvbGl0 ZXJhbD4gbWFjcm9zLgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAgICBTaW5j ZSBib3RoIGtleSBleHRyYWN0aW9uIG9mIGluZGV4ZWQgdmFsdWVzIGFuZCByZXByZXNlbnRhdGlv biBvZiB0aGUKLSAgICAgICBrZXkgaW4gPGFjcm9ueW0+R0lOPC9hY3JvbnltPiBhcmUgZmxleGli bGUsIHRoZXkgbWF5IGRlcGVuZCBvbgotICAgICAgIHVzZXItc3BlY2lmaWVkIHBhcmFtZXRlcnMu Ci0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0g IDwvdmFyaWFibGVsaXN0PgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBUbyBzdXBwb3J0IDxxdW90 ZT5wYXJ0aWFsIG1hdGNoPC9xdW90ZT4gcXVlcmllcywgYW4gb3BlcmF0b3IgY2xhc3MgbXVzdAot ICBwcm92aWRlIHRoZSA8ZnVuY3Rpb24+Y29tcGFyZVBhcnRpYWw8L2Z1bmN0aW9uPiBtZXRob2Qs IGFuZCBpdHMKLSAgPGZ1bmN0aW9uPmV4dHJhY3RRdWVyeTwvZnVuY3Rpb24+IG1ldGhvZCBtdXN0 IHNldCB0aGUgPGxpdGVyYWw+cG1hdGNoPC9saXRlcmFsPgotICBwYXJhbWV0ZXIgd2hlbiBhIHBh cnRpYWwtbWF0Y2ggcXVlcnkgaXMgZW5jb3VudGVyZWQuICBTZWUKLSAgPHhyZWYgbGlua2VuZD0i Z2luLXBhcnRpYWwtbWF0Y2giLz4gZm9yIGRldGFpbHMuCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0g IFRoZSBhY3R1YWwgZGF0YSB0eXBlcyBvZiB0aGUgdmFyaW91cyA8bGl0ZXJhbD5EYXR1bTwvbGl0 ZXJhbD4gdmFsdWVzIG1lbnRpb25lZAotICBhYm92ZSB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgb3Bl cmF0b3IgY2xhc3MuICBUaGUgaXRlbSB2YWx1ZXMgcGFzc2VkIHRvCi0gIDxmdW5jdGlvbj5leHRy YWN0VmFsdWU8L2Z1bmN0aW9uPiBhcmUgYWx3YXlzIG9mIHRoZSBvcGVyYXRvciBjbGFzcydzIGlu cHV0IHR5cGUsIGFuZAotICBhbGwga2V5IHZhbHVlcyBtdXN0IGJlIG9mIHRoZSBjbGFzcydzIDxs aXRlcmFsPlNUT1JBR0U8L2xpdGVyYWw+IHR5cGUuICBUaGUgdHlwZSBvZgotICB0aGUgPGxpdGVy YWw+cXVlcnk8L2xpdGVyYWw+IGFyZ3VtZW50IHBhc3NlZCB0byA8ZnVuY3Rpb24+ZXh0cmFjdFF1 ZXJ5PC9mdW5jdGlvbj4sCi0gIDxmdW5jdGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4gYW5kIDxm dW5jdGlvbj50cmlDb25zaXN0ZW50PC9mdW5jdGlvbj4gaXMgd2hhdGV2ZXIgaXMgdGhlCi0gIHJp Z2h0LWhhbmQgaW5wdXQgdHlwZSBvZiB0aGUgY2xhc3MgbWVtYmVyIG9wZXJhdG9yIGlkZW50aWZp ZWQgYnkgdGhlCi0gIHN0cmF0ZWd5IG51bWJlci4gIFRoaXMgbmVlZCBub3QgYmUgdGhlIHNhbWUg YXMgdGhlIGluZGV4ZWQgdHlwZSwgc28gbG9uZyBhcwotICBrZXkgdmFsdWVzIG9mIHRoZSBjb3Jy ZWN0IHR5cGUgY2FuIGJlIGV4dHJhY3RlZCBmcm9tIGl0LiAgSG93ZXZlciwgaXQgaXMKLSAgcmVj b21tZW5kZWQgdGhhdCB0aGUgU1FMIGRlY2xhcmF0aW9ucyBvZiB0aGVzZSB0aHJlZSBzdXBwb3J0 IGZ1bmN0aW9ucyB1c2UKLSAgdGhlIG9wY2xhc3MncyBpbmRleGVkIGRhdGEgdHlwZSBmb3IgdGhl IDxsaXRlcmFsPnF1ZXJ5PC9saXRlcmFsPiBhcmd1bWVudCwgZXZlbgotICB0aG91Z2ggdGhlIGFj dHVhbCB0eXBlIG1pZ2h0IGJlIHNvbWV0aGluZyBlbHNlIGRlcGVuZGluZyBvbiB0aGUgb3BlcmF0 b3IuCi0gPC9wYXJhPgotCi08L3NlY3QxPgotCi08c2VjdDEgaWQ9Imdpbi1pbXBsZW1lbnRhdGlv biI+Ci0gPHRpdGxlPkltcGxlbWVudGF0aW9uPC90aXRsZT4KLQotIDxwYXJhPgotICBJbnRlcm5h bGx5LCBhIDxhY3JvbnltPkdJTjwvYWNyb255bT4gaW5kZXggY29udGFpbnMgYSBCLXRyZWUgaW5k ZXgKLSAgY29uc3RydWN0ZWQgb3ZlciBrZXlzLCB3aGVyZSBlYWNoIGtleSBpcyBhbiBlbGVtZW50 IG9mIG9uZSBvciBtb3JlIGluZGV4ZWQKLSAgaXRlbXMgKGEgbWVtYmVyIG9mIGFuIGFycmF5LCBm b3IgZXhhbXBsZSkgYW5kIHdoZXJlIGVhY2ggdHVwbGUgaW4gYSBsZWFmCi0gIHBhZ2UgY29udGFp bnMgZWl0aGVyIGEgcG9pbnRlciB0byBhIEItdHJlZSBvZiBoZWFwIHBvaW50ZXJzIChhCi0gIDxx dW90ZT5wb3N0aW5nIHRyZWU8L3F1b3RlPiksIG9yIGEgc2ltcGxlIGxpc3Qgb2YgaGVhcCBwb2lu dGVycyAoYSA8cXVvdGU+cG9zdGluZwotICBsaXN0PC9xdW90ZT4pIHdoZW4gdGhlIGxpc3QgaXMg c21hbGwgZW5vdWdoIHRvIGZpdCBpbnRvIGEgc2luZ2xlIGluZGV4IHR1cGxlIGFsb25nCi0gIHdp dGggdGhlIGtleSB2YWx1ZS4gIDx4cmVmIGxpbmtlbmQ9Imdpbi1pbnRlcm5hbHMtZmlndXJlIi8+ IGlsbHVzdHJhdGVzCi0gIHRoZXNlIGNvbXBvbmVudHMgb2YgYSBHSU4gaW5kZXguCi0gPC9wYXJh PgotCi0gPHBhcmE+Ci0gIEFzIG9mIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFt ZT4gOS4xLCBudWxsIGtleSB2YWx1ZXMgY2FuIGJlCi0gIGluY2x1ZGVkIGluIHRoZSBpbmRleC4g IEFsc28sIHBsYWNlaG9sZGVyIG51bGxzIGFyZSBpbmNsdWRlZCBpbiB0aGUgaW5kZXgKLSAgZm9y IGluZGV4ZWQgaXRlbXMgdGhhdCBhcmUgbnVsbCBvciBjb250YWluIG5vIGtleXMgYWNjb3JkaW5n IHRvCi0gIDxmdW5jdGlvbj5leHRyYWN0VmFsdWU8L2Z1bmN0aW9uPi4gIFRoaXMgYWxsb3dzIHNl YXJjaGVzIHRoYXQgc2hvdWxkIGZpbmQgZW1wdHkKLSAgaXRlbXMgdG8gZG8gc28uCi0gPC9wYXJh PgotCi0gPHBhcmE+Ci0gIE11bHRpY29sdW1uIDxhY3JvbnltPkdJTjwvYWNyb255bT4gaW5kZXhl cyBhcmUgaW1wbGVtZW50ZWQgYnkgYnVpbGRpbmcKLSAgYSBzaW5nbGUgQi10cmVlIG92ZXIgY29t cG9zaXRlIHZhbHVlcyAoY29sdW1uIG51bWJlciwga2V5IHZhbHVlKS4gIFRoZQotICBrZXkgdmFs dWVzIGZvciBkaWZmZXJlbnQgY29sdW1ucyBjYW4gYmUgb2YgZGlmZmVyZW50IHR5cGVzLgotIDwv cGFyYT4KLQotIDxmaWd1cmUgaWQ9Imdpbi1pbnRlcm5hbHMtZmlndXJlIj4KLSAgPHRpdGxlPkdJ TiBJbnRlcm5hbHM8L3RpdGxlPgotICA8bWVkaWFvYmplY3Q+Ci0gICA8aW1hZ2VvYmplY3Q+Ci0g ICAgPGltYWdlZGF0YSBmaWxlcmVmPSJpbWFnZXMvZ2luLnN2ZyIgZm9ybWF0PSJTVkciIHdpZHRo PSIxMDAlIi8+Ci0gICA8L2ltYWdlb2JqZWN0PgotICA8L21lZGlhb2JqZWN0PgotIDwvZmlndXJl PgotCi0gPHNlY3QyIGlkPSJnaW4tZmFzdC11cGRhdGUiPgotICA8dGl0bGU+R0lOIEZhc3QgVXBk YXRlIFRlY2huaXF1ZTwvdGl0bGU+Ci0KLSAgPHBhcmE+Ci0gICBVcGRhdGluZyBhIDxhY3Jvbnlt PkdJTjwvYWNyb255bT4gaW5kZXggdGVuZHMgdG8gYmUgc2xvdyBiZWNhdXNlIG9mIHRoZQotICAg aW50cmluc2ljIG5hdHVyZSBvZiBpbnZlcnRlZCBpbmRleGVzOiBpbnNlcnRpbmcgb3IgdXBkYXRp bmcgb25lIGhlYXAgcm93Ci0gICBjYW4gY2F1c2UgbWFueSBpbnNlcnRzIGludG8gdGhlIGluZGV4 IChvbmUgZm9yIGVhY2gga2V5IGV4dHJhY3RlZAotICAgZnJvbSB0aGUgaW5kZXhlZCBpdGVtKS4K LSAgIDxhY3JvbnltPkdJTjwvYWNyb255bT4gaXMgY2FwYWJsZSBvZiBwb3N0cG9uaW5nIG11Y2gg b2YgdGhpcyB3b3JrIGJ5IGluc2VydGluZwotICAgbmV3IHR1cGxlcyBpbnRvIGEgdGVtcG9yYXJ5 LCB1bnNvcnRlZCBsaXN0IG9mIHBlbmRpbmcgZW50cmllcy4KLSAgIFdoZW4gdGhlIHRhYmxlIGlz IHZhY3V1bWVkIG9yIGF1dG9hbmFseXplZCwgb3Igd2hlbgotICAgPGZ1bmN0aW9uPmdpbl9jbGVh bl9wZW5kaW5nX2xpc3Q8L2Z1bmN0aW9uPiBmdW5jdGlvbiBpcyBjYWxsZWQsIG9yIGlmIHRoZQot ICAgcGVuZGluZyBsaXN0IGJlY29tZXMgbGFyZ2VyIHRoYW4KLSAgIDx4cmVmIGxpbmtlbmQ9Imd1 Yy1naW4tcGVuZGluZy1saXN0LWxpbWl0Ii8+LCB0aGUgZW50cmllcyBhcmUgbW92ZWQgdG8gdGhl Ci0gICBtYWluIDxhY3JvbnltPkdJTjwvYWNyb255bT4gZGF0YSBzdHJ1Y3R1cmUgdXNpbmcgdGhl IHNhbWUgYnVsayBpbnNlcnQKLSAgIHRlY2huaXF1ZXMgdXNlZCBkdXJpbmcgaW5pdGlhbCBpbmRl eCBjcmVhdGlvbi4gIFRoaXMgZ3JlYXRseSBpbXByb3ZlcwotICAgPGFjcm9ueW0+R0lOPC9hY3Jv bnltPiBpbmRleCB1cGRhdGUgc3BlZWQsIGV2ZW4gY291bnRpbmcgdGhlIGFkZGl0aW9uYWwKLSAg IHZhY3V1bSBvdmVyaGVhZC4gIE1vcmVvdmVyIHRoZSBvdmVyaGVhZCB3b3JrIGNhbiBiZSBkb25l IGJ5IGEgYmFja2dyb3VuZAotICAgcHJvY2VzcyBpbnN0ZWFkIG9mIGluIGZvcmVncm91bmQgcXVl cnkgcHJvY2Vzc2luZy4KLSAgPC9wYXJhPgotCi0gIDxwYXJhPgotICAgVGhlIG1haW4gZGlzYWR2 YW50YWdlIG9mIHRoaXMgYXBwcm9hY2ggaXMgdGhhdCBzZWFyY2hlcyBtdXN0IHNjYW4gdGhlIGxp c3QKLSAgIG9mIHBlbmRpbmcgZW50cmllcyBpbiBhZGRpdGlvbiB0byBzZWFyY2hpbmcgdGhlIHJl Z3VsYXIgaW5kZXgsIGFuZCBzbwotICAgYSBsYXJnZSBsaXN0IG9mIHBlbmRpbmcgZW50cmllcyB3 aWxsIHNsb3cgc2VhcmNoZXMgc2lnbmlmaWNhbnRseS4KLSAgIEFub3RoZXIgZGlzYWR2YW50YWdl IGlzIHRoYXQsIHdoaWxlIG1vc3QgdXBkYXRlcyBhcmUgZmFzdCwgYW4gdXBkYXRlCi0gICB0aGF0 IGNhdXNlcyB0aGUgcGVuZGluZyBsaXN0IHRvIGJlY29tZSA8cXVvdGU+dG9vIGxhcmdlPC9xdW90 ZT4gd2lsbCBpbmN1ciBhbgotICAgaW1tZWRpYXRlIGNsZWFudXAgY3ljbGUgYW5kIHRodXMgYmUg bXVjaCBzbG93ZXIgdGhhbiBvdGhlciB1cGRhdGVzLgotICAgUHJvcGVyIHVzZSBvZiBhdXRvdmFj dXVtIGNhbiBtaW5pbWl6ZSBib3RoIG9mIHRoZXNlIHByb2JsZW1zLgotICA8L3BhcmE+Ci0KLSAg PHBhcmE+Ci0gICBJZiBjb25zaXN0ZW50IHJlc3BvbnNlIHRpbWUgaXMgbW9yZSBpbXBvcnRhbnQg dGhhbiB1cGRhdGUgc3BlZWQsCi0gICB1c2Ugb2YgcGVuZGluZyBlbnRyaWVzIGNhbiBiZSBkaXNh YmxlZCBieSB0dXJuaW5nIG9mZiB0aGUKLSAgIDxsaXRlcmFsPmZhc3R1cGRhdGU8L2xpdGVyYWw+ IHN0b3JhZ2UgcGFyYW1ldGVyIGZvciBhCi0gICA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGluZGV4 LiAgU2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVpbmRleCIvPgotICAgZm9yIGRldGFpbHMu Ci0gIDwvcGFyYT4KLSA8L3NlY3QyPgotCi0gPHNlY3QyIGlkPSJnaW4tcGFydGlhbC1tYXRjaCI+ Ci0gIDx0aXRsZT5QYXJ0aWFsIE1hdGNoIEFsZ29yaXRobTwvdGl0bGU+Ci0KLSAgPHBhcmE+Ci0g ICBHSU4gY2FuIHN1cHBvcnQgPHF1b3RlPnBhcnRpYWwgbWF0Y2g8L3F1b3RlPiBxdWVyaWVzLCBp biB3aGljaCB0aGUgcXVlcnkKLSAgIGRvZXMgbm90IGRldGVybWluZSBhbiBleGFjdCBtYXRjaCBm b3Igb25lIG9yIG1vcmUga2V5cywgYnV0IHRoZSBwb3NzaWJsZQotICAgbWF0Y2hlcyBmYWxsIHdp dGhpbiBhIHJlYXNvbmFibHkgbmFycm93IHJhbmdlIG9mIGtleSB2YWx1ZXMgKHdpdGhpbiB0aGUK LSAgIGtleSBzb3J0aW5nIG9yZGVyIGRldGVybWluZWQgYnkgdGhlIDxmdW5jdGlvbj5jb21wYXJl PC9mdW5jdGlvbj4gc3VwcG9ydCBtZXRob2QpLgotICAgVGhlIDxmdW5jdGlvbj5leHRyYWN0UXVl cnk8L2Z1bmN0aW9uPiBtZXRob2QsIGluc3RlYWQgb2YgcmV0dXJuaW5nIGEga2V5IHZhbHVlCi0g ICB0byBiZSBtYXRjaGVkIGV4YWN0bHksIHJldHVybnMgYSBrZXkgdmFsdWUgdGhhdCBpcyB0aGUg bG93ZXIgYm91bmQgb2YKLSAgIHRoZSByYW5nZSB0byBiZSBzZWFyY2hlZCwgYW5kIHNldHMgdGhl IDxsaXRlcmFsPnBtYXRjaDwvbGl0ZXJhbD4gZmxhZyB0cnVlLgotICAgVGhlIGtleSByYW5nZSBp cyB0aGVuIHNjYW5uZWQgdXNpbmcgdGhlIDxmdW5jdGlvbj5jb21wYXJlUGFydGlhbDwvZnVuY3Rp b24+Ci0gICBtZXRob2QuICA8ZnVuY3Rpb24+Y29tcGFyZVBhcnRpYWw8L2Z1bmN0aW9uPiBtdXN0 IHJldHVybiB6ZXJvIGZvciBhIG1hdGNoaW5nCi0gICBpbmRleCBrZXksIGxlc3MgdGhhbiB6ZXJv IGZvciBhIG5vbi1tYXRjaCB0aGF0IGlzIHN0aWxsIHdpdGhpbiB0aGUgcmFuZ2UKLSAgIHRvIGJl IHNlYXJjaGVkLCBvciBncmVhdGVyIHRoYW4gemVybyBpZiB0aGUgaW5kZXgga2V5IGlzIHBhc3Qg dGhlIHJhbmdlCi0gICB0aGF0IGNvdWxkIG1hdGNoLgotICA8L3BhcmE+Ci0gPC9zZWN0Mj4KLQot PC9zZWN0MT4KLQotPHNlY3QxIGlkPSJnaW4tdGlwcyI+Ci08dGl0bGU+R0lOIFRpcHMgYW5kIFRy aWNrczwvdGl0bGU+Ci0KLSA8dmFyaWFibGVsaXN0PgotICA8dmFybGlzdGVudHJ5PgotICAgPHRl cm0+Q3JlYXRlIHZzLiBpbnNlcnQ8L3Rlcm0+Ci0gICA8bGlzdGl0ZW0+Ci0gICAgPHBhcmE+Ci0g ICAgIEluc2VydGlvbiBpbnRvIGEgPGFjcm9ueW0+R0lOPC9hY3JvbnltPiBpbmRleCBjYW4gYmUg c2xvdwotICAgICBkdWUgdG8gdGhlIGxpa2VsaWhvb2Qgb2YgbWFueSBrZXlzIGJlaW5nIGluc2Vy dGVkIGZvciBlYWNoIGl0ZW0uCi0gICAgIFNvLCBmb3IgYnVsayBpbnNlcnRpb25zIGludG8gYSB0 YWJsZSBpdCBpcyBhZHZpc2FibGUgdG8gZHJvcCB0aGUgR0lOCi0gICAgIGluZGV4IGFuZCByZWNy ZWF0ZSBpdCBhZnRlciBmaW5pc2hpbmcgYnVsayBpbnNlcnRpb24uCi0gICAgPC9wYXJhPgotCi0g ICAgPHBhcmE+Ci0gICAgIFdoZW4gPGxpdGVyYWw+ZmFzdHVwZGF0ZTwvbGl0ZXJhbD4gaXMgZW5h YmxlZCBmb3IgPGFjcm9ueW0+R0lOPC9hY3JvbnltPgotICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9 Imdpbi1mYXN0LXVwZGF0ZSIvPiBmb3IgZGV0YWlscyksIHRoZSBwZW5hbHR5IGlzCi0gICAgIGxl c3MgdGhhbiB3aGVuIGl0IGlzIG5vdC4gIEJ1dCBmb3IgdmVyeSBsYXJnZSB1cGRhdGVzIGl0IG1h eSBzdGlsbCBiZQotICAgICBiZXN0IHRvIGRyb3AgYW5kIHJlY3JlYXRlIHRoZSBpbmRleC4KLSAg ICA8L3BhcmE+Ci0gICA8L2xpc3RpdGVtPgotICA8L3Zhcmxpc3RlbnRyeT4KLQotICA8dmFybGlz dGVudHJ5PgotICAgPHRlcm0+PHhyZWYgbGlua2VuZD0iZ3VjLW1haW50ZW5hbmNlLXdvcmstbWVt Ii8+PC90ZXJtPgotICAgPGxpc3RpdGVtPgotICAgIDxwYXJhPgotICAgICBCdWlsZCB0aW1lIGZv ciBhIDxhY3JvbnltPkdJTjwvYWNyb255bT4gaW5kZXggaXMgdmVyeSBzZW5zaXRpdmUgdG8KLSAg ICAgdGhlIDx2YXJuYW1lPm1haW50ZW5hbmNlX3dvcmtfbWVtPC92YXJuYW1lPiBzZXR0aW5nOyBp dCBkb2Vzbid0IHBheSB0bwotICAgICBza2ltcCBvbiB3b3JrIG1lbW9yeSBkdXJpbmcgaW5kZXgg Y3JlYXRpb24uCi0gICAgPC9wYXJhPgotICAgPC9saXN0aXRlbT4KLSAgPC92YXJsaXN0ZW50cnk+ Ci0KLSAgPHZhcmxpc3RlbnRyeT4KLSAgIDx0ZXJtPjx4cmVmIGxpbmtlbmQ9Imd1Yy1naW4tcGVu ZGluZy1saXN0LWxpbWl0Ii8+PC90ZXJtPgotICAgPGxpc3RpdGVtPgotICAgIDxwYXJhPgotICAg ICBEdXJpbmcgYSBzZXJpZXMgb2YgaW5zZXJ0aW9ucyBpbnRvIGFuIGV4aXN0aW5nIDxhY3Jvbnlt PkdJTjwvYWNyb255bT4KLSAgICAgaW5kZXggdGhhdCBoYXMgPGxpdGVyYWw+ZmFzdHVwZGF0ZTwv bGl0ZXJhbD4gZW5hYmxlZCwgdGhlIHN5c3RlbSB3aWxsIGNsZWFuIHVwCi0gICAgIHRoZSBwZW5k aW5nLWVudHJ5IGxpc3Qgd2hlbmV2ZXIgdGhlIGxpc3QgZ3Jvd3MgbGFyZ2VyIHRoYW4KLSAgICAg PHZhcm5hbWU+Z2luX3BlbmRpbmdfbGlzdF9saW1pdDwvdmFybmFtZT4uIFRvIGF2b2lkIGZsdWN0 dWF0aW9ucyBpbiBvYnNlcnZlZAotICAgICByZXNwb25zZSB0aW1lLCBpdCdzIGRlc2lyYWJsZSB0 byBoYXZlIHBlbmRpbmctbGlzdCBjbGVhbnVwIG9jY3VyIGluIHRoZQotICAgICBiYWNrZ3JvdW5k IChpLmUuLCB2aWEgYXV0b3ZhY3V1bSkuICBGb3JlZ3JvdW5kIGNsZWFudXAgb3BlcmF0aW9ucwot ICAgICBjYW4gYmUgYXZvaWRlZCBieSBpbmNyZWFzaW5nIDx2YXJuYW1lPmdpbl9wZW5kaW5nX2xp c3RfbGltaXQ8L3Zhcm5hbWU+Ci0gICAgIG9yIG1ha2luZyBhdXRvdmFjdXVtIG1vcmUgYWdncmVz c2l2ZS4KLSAgICAgSG93ZXZlciwgZW5sYXJnaW5nIHRoZSB0aHJlc2hvbGQgb2YgdGhlIGNsZWFu dXAgb3BlcmF0aW9uIG1lYW5zIHRoYXQKLSAgICAgaWYgYSBmb3JlZ3JvdW5kIGNsZWFudXAgZG9l cyBvY2N1ciwgaXQgd2lsbCB0YWtlIGV2ZW4gbG9uZ2VyLgotICAgIDwvcGFyYT4KLSAgICA8cGFy YT4KLSAgICAgPHZhcm5hbWU+Z2luX3BlbmRpbmdfbGlzdF9saW1pdDwvdmFybmFtZT4gY2FuIGJl IG92ZXJyaWRkZW4gZm9yIGluZGl2aWR1YWwKLSAgICAgR0lOIGluZGV4ZXMgYnkgY2hhbmdpbmcg c3RvcmFnZSBwYXJhbWV0ZXJzLCB3aGljaCBhbGxvd3MgZWFjaAotICAgICBHSU4gaW5kZXggdG8g aGF2ZSBpdHMgb3duIGNsZWFudXAgdGhyZXNob2xkLgotICAgICBGb3IgZXhhbXBsZSwgaXQncyBw b3NzaWJsZSB0byBpbmNyZWFzZSB0aGUgdGhyZXNob2xkIG9ubHkgZm9yIHRoZSBHSU4KLSAgICAg aW5kZXggd2hpY2ggY2FuIGJlIHVwZGF0ZWQgaGVhdmlseSwgYW5kIGRlY3JlYXNlIGl0IG90aGVy d2lzZS4KLSAgICA8L3BhcmE+Ci0gICA8L2xpc3RpdGVtPgotICA8L3Zhcmxpc3RlbnRyeT4KLQot ICA8dmFybGlzdGVudHJ5PgotICAgPHRlcm0+PHhyZWYgbGlua2VuZD0iZ3VjLWdpbi1mdXp6eS1z ZWFyY2gtbGltaXQiLz48L3Rlcm0+Ci0gICA8bGlzdGl0ZW0+Ci0gICAgPHBhcmE+Ci0gICAgIFRo ZSBwcmltYXJ5IGdvYWwgb2YgZGV2ZWxvcGluZyA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGluZGV4 ZXMgd2FzCi0gICAgIHRvIGNyZWF0ZSBzdXBwb3J0IGZvciBoaWdobHkgc2NhbGFibGUgZnVsbC10 ZXh0IHNlYXJjaCBpbgotICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ LCBhbmQgdGhlcmUgYXJlIG9mdGVuIHNpdHVhdGlvbnMgd2hlbgotICAgICBhIGZ1bGwtdGV4dCBz ZWFyY2ggcmV0dXJucyBhIHZlcnkgbGFyZ2Ugc2V0IG9mIHJlc3VsdHMuICBNb3Jlb3ZlciwgdGhp cwotICAgICBvZnRlbiBoYXBwZW5zIHdoZW4gdGhlIHF1ZXJ5IGNvbnRhaW5zIHZlcnkgZnJlcXVl bnQgd29yZHMsIHNvIHRoYXQgdGhlCi0gICAgIGxhcmdlIHJlc3VsdCBzZXQgaXMgbm90IGV2ZW4g dXNlZnVsLiAgU2luY2UgcmVhZGluZyBtYW55Ci0gICAgIHR1cGxlcyBmcm9tIHRoZSBkaXNrIGFu ZCBzb3J0aW5nIHRoZW0gY291bGQgdGFrZSBhIGxvdCBvZiB0aW1lLCB0aGlzIGlzCi0gICAgIHVu YWNjZXB0YWJsZSBmb3IgcHJvZHVjdGlvbi4gIChOb3RlIHRoYXQgdGhlIGluZGV4IHNlYXJjaCBp dHNlbGYgaXMgdmVyeQotICAgICBmYXN0LikKLSAgICA8L3BhcmE+Ci0gICAgPHBhcmE+Ci0gICAg IFRvIGZhY2lsaXRhdGUgY29udHJvbGxlZCBleGVjdXRpb24gb2Ygc3VjaCBxdWVyaWVzLAotICAg ICA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGhhcyBhIGNvbmZpZ3VyYWJsZSBzb2Z0IHVwcGVyIGxp bWl0IG9uIHRoZQotICAgICBudW1iZXIgb2Ygcm93cyByZXR1cm5lZDogdGhlCi0gICAgIDx2YXJu YW1lPmdpbl9mdXp6eV9zZWFyY2hfbGltaXQ8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1l dGVyLgotICAgICBJdCBpcyBzZXQgdG8gMCAobWVhbmluZyBubyBsaW1pdCkgYnkgZGVmYXVsdC4K LSAgICAgSWYgYSBub24temVybyBsaW1pdCBpcyBzZXQsIHRoZW4gdGhlIHJldHVybmVkIHNldCBp cyBhIHN1YnNldCBvZgotICAgICB0aGUgd2hvbGUgcmVzdWx0IHNldCwgY2hvc2VuIGF0IHJhbmRv bS4KLSAgICA8L3BhcmE+Ci0gICAgPHBhcmE+Ci0gICAgIDxxdW90ZT5Tb2Z0PC9xdW90ZT4gbWVh bnMgdGhhdCB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCByZXN1bHRzCi0gICAgIGNvdWxk IGRpZmZlciBzb21ld2hhdCBmcm9tIHRoZSBzcGVjaWZpZWQgbGltaXQsIGRlcGVuZGluZyBvbiB0 aGUgcXVlcnkKLSAgICAgYW5kIHRoZSBxdWFsaXR5IG9mIHRoZSBzeXN0ZW0ncyByYW5kb20gbnVt YmVyIGdlbmVyYXRvci4KLSAgICA8L3BhcmE+Ci0gICAgPHBhcmE+Ci0gICAgIEZyb20gZXhwZXJp ZW5jZSwgdmFsdWVzIGluIHRoZSB0aG91c2FuZHMgKGUuZy4sIDUwMDAgJm1kYXNoOyAyMDAwMCkK LSAgICAgd29yayB3ZWxsLgotICAgIDwvcGFyYT4KLSAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlz dGVudHJ5PgotIDwvdmFyaWFibGVsaXN0PgotCi08L3NlY3QxPgotCi08c2VjdDEgaWQ9Imdpbi1s aW1pdCI+Ci0gPHRpdGxlPkxpbWl0YXRpb25zPC90aXRsZT4KLQotIDxwYXJhPgotICA8YWNyb255 bT5HSU48L2Fjcm9ueW0+IGFzc3VtZXMgdGhhdCBpbmRleGFibGUgb3BlcmF0b3JzIGFyZSBzdHJp Y3QuICBUaGlzCi0gIG1lYW5zIHRoYXQgPGZ1bmN0aW9uPmV4dHJhY3RWYWx1ZTwvZnVuY3Rpb24+ IHdpbGwgbm90IGJlIGNhbGxlZCBhdCBhbGwgb24gYSBudWxsCi0gIGl0ZW0gdmFsdWUgKGluc3Rl YWQsIGEgcGxhY2Vob2xkZXIgaW5kZXggZW50cnkgaXMgY3JlYXRlZCBhdXRvbWF0aWNhbGx5KSwK LSAgYW5kIDxmdW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiB3aWxsIG5vdCBiZSBjYWxs ZWQgb24gYSBudWxsIHF1ZXJ5Ci0gIHZhbHVlIGVpdGhlciAoaW5zdGVhZCwgdGhlIHF1ZXJ5IGlz IHByZXN1bWVkIHRvIGJlIHVuc2F0aXNmaWFibGUpLiAgTm90ZQotICBob3dldmVyIHRoYXQgbnVs bCBrZXkgdmFsdWVzIGNvbnRhaW5lZCB3aXRoaW4gYSBub24tbnVsbCBjb21wb3NpdGUgaXRlbQot ICBvciBxdWVyeSB2YWx1ZSBhcmUgc3VwcG9ydGVkLgotIDwvcGFyYT4KLTwvc2VjdDE+Ci0KLTxz ZWN0MSBpZD0iZ2luLWV4YW1wbGVzIj4KLSA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgotCi0gPHBh cmE+Ci0gIFRoZSBjb3JlIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZGlz dHJpYnV0aW9uCi0gIGluY2x1ZGVzIHRoZSA8YWNyb255bT5HSU48L2Fjcm9ueW0+IG9wZXJhdG9y IGNsYXNzZXMgcHJldmlvdXNseSBzaG93biBpbgotICA8eHJlZiBsaW5rZW5kPSJnaW4tYnVpbHRp bi1vcGNsYXNzZXMtdGFibGUiLz4uCi0gIFRoZSBmb2xsb3dpbmcgPGZpbGVuYW1lPmNvbnRyaWI8 L2ZpbGVuYW1lPiBtb2R1bGVzIGFsc28gY29udGFpbgotICA8YWNyb255bT5HSU48L2Fjcm9ueW0+ IG9wZXJhdG9yIGNsYXNzZXM6Ci0KLSA8dmFyaWFibGVsaXN0PgotICA8dmFybGlzdGVudHJ5Pgot ICAgPHRlcm0+PGZpbGVuYW1lPmJ0cmVlX2dpbjwvZmlsZW5hbWU+PC90ZXJtPgotICAgPGxpc3Rp dGVtPgotICAgIDxwYXJhPkItdHJlZSBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkgZm9yIHNldmVy YWwgZGF0YSB0eXBlczwvcGFyYT4KLSAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlzdGVudHJ5Pgot Ci0gIDx2YXJsaXN0ZW50cnk+Ci0gICA8dGVybT48ZmlsZW5hbWU+aHN0b3JlPC9maWxlbmFtZT48 L3Rlcm0+Ci0gICA8bGlzdGl0ZW0+Ci0gICAgPHBhcmE+TW9kdWxlIGZvciBzdG9yaW5nIChrZXks IHZhbHVlKSBwYWlyczwvcGFyYT4KLSAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlzdGVudHJ5Pgot Ci0gIDx2YXJsaXN0ZW50cnk+Ci0gICA8dGVybT48ZmlsZW5hbWU+aW50YXJyYXk8L2ZpbGVuYW1l PjwvdGVybT4KLSAgIDxsaXN0aXRlbT4KLSAgICA8cGFyYT5FbmhhbmNlZCBzdXBwb3J0IGZvciA8 dHlwZT5pbnRbXTwvdHlwZT48L3BhcmE+Ci0gICA8L2xpc3RpdGVtPgotICA8L3Zhcmxpc3RlbnRy eT4KLQotICA8dmFybGlzdGVudHJ5PgotICAgPHRlcm0+PGZpbGVuYW1lPnBnX3RyZ208L2ZpbGVu YW1lPjwvdGVybT4KLSAgIDxsaXN0aXRlbT4KLSAgICA8cGFyYT5UZXh0IHNpbWlsYXJpdHkgdXNp bmcgdHJpZ3JhbSBtYXRjaGluZzwvcGFyYT4KLSAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlzdGVu dHJ5PgotIDwvdmFyaWFibGVsaXN0PgotIDwvcGFyYT4KLTwvc2VjdDE+Ci0KLTwvY2hhcHRlcj4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5z Z21sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTE5ZjE1NmQ4Li4wMDAwMDAwMDAw Ci0tLSBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzg3ICsw LDAgQEAKLTwhLS0gZG9jL3NyYy9zZ21sL2dpc3Quc2dtbCAtLT4KLQotPGNoYXB0ZXIgaWQ9Imdp c3QiPgotPHRpdGxlPkdpU1QgSW5kZXhlczwvdGl0bGU+Ci0KLSAgIDxpbmRleHRlcm0+Ci0gICAg PHByaW1hcnk+aW5kZXg8L3ByaW1hcnk+Ci0gICAgPHNlY29uZGFyeT5HaVNUPC9zZWNvbmRhcnk+ Ci0gICA8L2luZGV4dGVybT4KLQotPHNlY3QxIGlkPSJnaXN0LWludHJvIj4KLSA8dGl0bGU+SW50 cm9kdWN0aW9uPC90aXRsZT4KLQotIDxwYXJhPgotICAgPGFjcm9ueW0+R2lTVDwvYWNyb255bT4g c3RhbmRzIGZvciBHZW5lcmFsaXplZCBTZWFyY2ggVHJlZS4gIEl0IGlzIGEKLSAgIGJhbGFuY2Vk LCB0cmVlLXN0cnVjdHVyZWQgYWNjZXNzIG1ldGhvZCwgdGhhdCBhY3RzIGFzIGEgYmFzZSB0ZW1w bGF0ZSBpbgotICAgd2hpY2ggdG8gaW1wbGVtZW50IGFyYml0cmFyeSBpbmRleGluZyBzY2hlbWVz LiBCLXRyZWVzLCBSLXRyZWVzIGFuZCBtYW55Ci0gICBvdGhlciBpbmRleGluZyBzY2hlbWVzIGNh biBiZSBpbXBsZW1lbnRlZCBpbiA8YWNyb255bT5HaVNUPC9hY3JvbnltPi4KLSA8L3BhcmE+Ci0K LSA8cGFyYT4KLSAgT25lIGFkdmFudGFnZSBvZiA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBpcyB0 aGF0IGl0IGFsbG93cyB0aGUgZGV2ZWxvcG1lbnQKLSAgb2YgY3VzdG9tIGRhdGEgdHlwZXMgd2l0 aCB0aGUgYXBwcm9wcmlhdGUgYWNjZXNzIG1ldGhvZHMsIGJ5Ci0gIGFuIGV4cGVydCBpbiB0aGUg ZG9tYWluIG9mIHRoZSBkYXRhIHR5cGUsIHJhdGhlciB0aGFuIGEgZGF0YWJhc2UgZXhwZXJ0Lgot IDwvcGFyYT4KLQotICA8cGFyYT4KLSAgICBTb21lIG9mIHRoZSBpbmZvcm1hdGlvbiBoZXJlIGlz IGRlcml2ZWQgZnJvbSB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCi0gICAgYXQgQmVya2Vs ZXkncyBHaVNUIEluZGV4aW5nIFByb2plY3QKLSAgICA8dWxpbmsgdXJsPSJodHRwOi8vZ2lzdC5j cy5iZXJrZWxleS5lZHUvIj53ZWIgc2l0ZTwvdWxpbms+IGFuZAotICAgIE1hcmNlbCBLb3JuYWNr ZXIncyB0aGVzaXMsCi0gICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy5zYWkubXN1LnN1L35tZWdl cmEvcG9zdGdyZXMvZ2lzdC9wYXBlcnMvY29uY3VycmVuY3kvYWNjZXNzLW1ldGhvZHMtZm9yLW5l eHQtZ2VuZXJhdGlvbi5wZGYuZ3oiPgotICAgIEFjY2VzcyBNZXRob2RzIGZvciBOZXh0LUdlbmVy YXRpb24gRGF0YWJhc2UgU3lzdGVtczwvdWxpbms+LgotICAgIFRoZSA8YWNyb255bT5HaVNUPC9h Y3JvbnltPgotICAgIGltcGxlbWVudGF0aW9uIGluIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9w cm9kdWN0bmFtZT4gaXMgcHJpbWFyaWx5Ci0gICAgbWFpbnRhaW5lZCBieSBUZW9kb3IgU2lnYWV2 IGFuZCBPbGVnIEJhcnR1bm92LCBhbmQgdGhlcmUgaXMgbW9yZQotICAgIGluZm9ybWF0aW9uIG9u IHRoZWlyCi0gICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy5zYWkubXN1LnN1L35tZWdlcmEvcG9z dGdyZXMvZ2lzdC8iPndlYiBzaXRlPC91bGluaz4uCi0gIDwvcGFyYT4KLQotPC9zZWN0MT4KLQot PHNlY3QxIGlkPSJnaXN0LWJ1aWx0aW4tb3BjbGFzc2VzIj4KLSA8dGl0bGU+QnVpbHQtaW4gT3Bl cmF0b3IgQ2xhc3NlczwvdGl0bGU+Ci0KLSA8cGFyYT4KLSAgVGhlIGNvcmUgPHByb2R1Y3RuYW1l PlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBkaXN0cmlidXRpb24KLSAgaW5jbHVkZXMgdGhlIDxh Y3JvbnltPkdpU1Q8L2Fjcm9ueW0+IG9wZXJhdG9yIGNsYXNzZXMgc2hvd24gaW4KLSAgPHhyZWYg bGlua2VuZD0iZ2lzdC1idWlsdGluLW9wY2xhc3Nlcy10YWJsZSIvPi4KLSAgKFNvbWUgb2YgdGhl IG9wdGlvbmFsIG1vZHVsZXMgZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9ImNvbnRyaWIiLz4K LSAgcHJvdmlkZSBhZGRpdGlvbmFsIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IG9wZXJhdG9yIGNs YXNzZXMuKQotIDwvcGFyYT4KLQotICA8dGFibGUgaWQ9Imdpc3QtYnVpbHRpbi1vcGNsYXNzZXMt dGFibGUiPgotICAgPHRpdGxlPkJ1aWx0LWluIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IE9wZXJh dG9yIENsYXNzZXM8L3RpdGxlPgotICAgPHRncm91cCBjb2xzPSIzIj4KLSAgICAgPGNvbHNwZWMg Y29sbmFtZT0iY29sMSIgY29sd2lkdGg9IjIqIi8+Ci0gICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNv bDIiIGNvbHdpZHRoPSIzKiIvPgotICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wzIiBjb2x3aWR0 aD0iMioiLz4KLSAgICA8dGhlYWQ+Ci0gICAgIDxyb3c+Ci0gICAgICA8ZW50cnk+TmFtZTwvZW50 cnk+Ci0gICAgICA8ZW50cnk+SW5kZXhhYmxlIE9wZXJhdG9yczwvZW50cnk+Ci0gICAgICA8ZW50 cnk+T3JkZXJpbmcgT3BlcmF0b3JzPC9lbnRyeT4KLSAgICAgPC9yb3c+Ci0gICAgPC90aGVhZD4K LSAgICA8dGJvZHk+Ci0gICAgIDxyb3c+Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1v cmVyb3dzPSIxMyI+PGxpdGVyYWw+Ym94X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgPGVu dHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChib3gsIGJveCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAg IDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjEzIj48bGl0ZXJhbD4mbHQ7LSZndDsg KGJveCwgcG9pbnQpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgIDwvcm93PgotICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mYW1wOyZsdDsgKGJveCwgYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZhbXA7IChib3gsIGJveCk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmZ3Q7IChi b3gsIGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmd0OyZndDsgKGJveCwgYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD5+PSAoYm94LCBib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0g ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChib3gsIGJveCk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0O0AgKGJveCwgYm94KTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZsdDt8 IChib3gsIGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmx0OyZsdDt8IChib3gsIGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+fCZndDsmZ3Q7IChib3gsIGJveCk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fCZhbXA7Jmd0OyAoYm94LCBib3gp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPn4gKGJv eCwgYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD5AIChib3gsIGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgICA8cm93PgotICAg ICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iMTMiPjxsaXRlcmFsPmNpcmNsZV9v cHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgIDxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmx0OyAoY2ly Y2xlLCBjaXJjbGUpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRk bGUiIG1vcmVyb3dzPSIxMyI+PGxpdGVyYWw+Jmx0Oy0mZ3Q7IChjaXJjbGUsIHBvaW50KTwvbGl0 ZXJhbD48L2VudHJ5PgotICAgICA8L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFt cDsmbHQ7IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmZ3Q7IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9l bnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyZndDsgKGNpcmNsZSwg Y2lyY2xlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7QCAoY2lyY2xlLCBjaXJjbGUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fj0gKGNpcmNsZSwgY2lyY2xlKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZh bXA7IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+fCZndDsmZ3Q7IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDt8IChjaXJjbGUsIGNp cmNsZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+ JmFtcDsmbHQ7fCAoY2lyY2xlLCBjaXJjbGUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPnwmYW1wOyZndDsgKGNpcmNsZSwgY2lyY2xlKTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5AIChjaXJjbGUsIGNp cmNsZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+ fiAoY2lyY2xlLCBjaXJjbGUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICAgPHJvdz4K LSAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjEwIj48bGl0ZXJhbD5pbmV0 X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgPGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChp bmV0LCBpbmV0KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxl IiBtb3Jlcm93cz0iMTAiPjwvZW50cnk+Ci0gICAgIDwvcm93PgotICAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mbHQ7Jmx0Oz0gKGluZXQsIGluZXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0g ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsmZ3Q7IChpbmV0LCBpbmV0KTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0Oz0gKGluZXQs IGluZXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs Pj0gKGluZXQsIGluZXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZsdDsmZ3Q7IChpbmV0LCBpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgot ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7IChpbmV0LCBpbmV0KTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoaW5ldCwgaW5ldCk8 L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAo aW5ldCwgaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmd0Oz0gKGluZXQsIGluZXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7JmFtcDsgKGluZXQsIGluZXQpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+Ci0KLSAgICAgPHJvdz4KLSAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9y ZXJvd3M9IjE3Ij48bGl0ZXJhbD5tdWx0aXJhbmdlX29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAg ICAgPGVudHJ5PjxsaXRlcmFsPj0gKGFueW11bHRpcmFuZ2UsIGFueW11bHRpcmFuZ2UpPC9saXRl cmFsPjwvZW50cnk+Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSIxNyI+ PC9lbnRyeT4KLSAgICAgPC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7JmFt cDsgKGFueW11bHRpcmFuZ2UsIGFueW11bHRpcmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7JmFtcDsgKGFueW11bHRpcmFuZ2UsIGFu eXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD5AJmd0OyAoYW55bXVsdGlyYW5nZSwgYW55ZWxlbWVudCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+QCZndDsgKGFueW11bHRpcmFuZ2UsIGFueW11 bHRpcmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRl cmFsPkAmZ3Q7IChhbnltdWx0aXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0O0AgKGFueW11bHRpcmFuZ2UsIGFueW11 bHRpcmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRl cmFsPiZsdDtAIChhbnltdWx0aXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDsgKGFueW11bHRpcmFuZ2UsIGFu eW11bHRpcmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZsdDsmbHQ7IChhbnltdWx0aXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyZndDsgKGFueW11bHRpcmFu Z2UsIGFueW11bHRpcmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZndDsmZ3Q7IChhbnltdWx0aXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmbHQ7IChhbnlt dWx0aXJhbmdlLCBhbnltdWx0aXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZsdDsgKGFueW11bHRpcmFuZ2UsIGFueXJhbmdlKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZn dDsgKGFueW11bHRpcmFuZ2UsIGFueW11bHRpcmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmd0OyAoYW55bXVsdGlyYW5nZSwgYW55 cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs Pi18LSAoYW55bXVsdGlyYW5nZSwgYW55bXVsdGlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+LXwtIChhbnltdWx0aXJhbmdlLCBhbnlyYW5n ZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAgICA8cm93PgotICAgICAgPGVudHJ5IHZh bGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNyI+PGxpdGVyYWw+cG9pbnRfb3BzPC9saXRlcmFsPjwv ZW50cnk+Ci0gICAgICA8ZW50cnk+PGxpdGVyYWw+fCZndDsmZ3Q7IChwb2ludCwgcG9pbnQpPC9s aXRlcmFsPjwvZW50cnk+Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI3 Ij48bGl0ZXJhbD4mbHQ7LSZndDsgKHBvaW50LCBwb2ludCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAg ICAgPC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChwb2ludCwgcG9p bnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZn dDsmZ3Q7IChwb2ludCwgcG9pbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7fCAocG9pbnQsIHBvaW50KTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5+PSAocG9pbnQsIHBvaW50KTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAocG9p bnQsIGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmx0O0AgKHBvaW50LCBwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAocG9pbnQsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLQotICAgICA8cm93PgotICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jl cm93cz0iMTMiPjxsaXRlcmFsPnBvbHlfb3BzPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICA8ZW50 cnk+PGxpdGVyYWw+Jmx0OyZsdDsgKHBvbHlnb24sIHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+ Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSIxMyI+PGxpdGVyYWw+Jmx0 Oy0mZ3Q7IChwb2x5Z29uLCBwb2ludCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPC9yb3c+Ci0g ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmx0OyAocG9seWdvbiwgcG9seWdvbik8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmZ3Q7 IChwb2x5Z29uLCBwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0OyAocG9seWdvbiwgcG9seWdvbik8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0O0AgKHBvbHlnb24sIHBvbHln b24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAm Z3Q7IChwb2x5Z29uLCBwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD5+PSAocG9seWdvbiwgcG9seWdvbik8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmYW1wOyAocG9seWdvbiwgcG9s eWdvbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+ Jmx0OyZsdDt8IChwb2x5Z29uLCBwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZsdDt8IChwb2x5Z29uLCBwb2x5Z29uKTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD58JmFtcDsmZ3Q7 IChwb2x5Z29uLCBwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD58Jmd0OyZndDsgKHBvbHlnb24sIHBvbHlnb24pPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAgKHBvbHlnb24sIHBvbHlnb24p PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPn4gKHBv bHlnb24sIHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICAgPHJvdz4KLSAg ICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjE3Ij48bGl0ZXJhbD5yYW5nZV9v cHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgIDxlbnRyeT48bGl0ZXJhbD49IChhbnlyYW5nZSwg YW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUi IG1vcmVyb3dzPSIxNyI+PC9lbnRyeT4KLSAgICAgPC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZhbXA7JmFtcDsgKGFueXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmYW1wOyAoYW55cmFuZ2UsIGFu eW11bHRpcmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPkAmZ3Q7IChhbnlyYW5nZSwgYW55ZWxlbWVudCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+QCZndDsgKGFueXJhbmdlLCBhbnlyYW5nZSk8 L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+QCZndDsg KGFueXJhbmdlLCBhbnltdWx0aXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAoYW55cmFuZ2UsIGFueXJhbmdlKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAoYW55cmFuZ2Us IGFueW11bHRpcmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZsdDsmbHQ7IChhbnlyYW5nZSwgYW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+ PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChhbnlyYW5nZSwgYW55 bXVsdGlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmd0OyZndDsgKGFueXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyZndDsgKGFueXJhbmdlLCBhbnltdWx0 aXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mYW1wOyZsdDsgKGFueXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K LSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmbHQ7IChhbnlyYW5nZSwgYW55bXVsdGly YW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+ JmFtcDsmZ3Q7IChhbnlyYW5nZSwgYW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0g ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmd0OyAoYW55cmFuZ2UsIGFueW11bHRpcmFu Z2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPi18 LSAoYW55cmFuZ2UsIGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4tfC0gKGFueXJhbmdlLCBhbnltdWx0aXJhbmdlKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotCi0gICAgIDxyb3c+Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUi IG1vcmVyb3dzPSIxIj48bGl0ZXJhbD50c3F1ZXJ5X29wczwvbGl0ZXJhbD48L2VudHJ5PgotICAg ICAgPGVudHJ5PjxsaXRlcmFsPiZsdDtAICh0c3F1ZXJ5LCB0c3F1ZXJ5KTwvbGl0ZXJhbD48L2Vu dHJ5PgotICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iMSI+PC9lbnRyeT4K LSAgICAgPC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7ICh0c3F1ZXJ5LCB0 c3F1ZXJ5KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PgotICAgICAgPGVudHJ5 IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD50c3ZlY3Rvcl9vcHM8L2xpdGVyYWw+PC9lbnRyeT4K LSAgICAgIDxlbnRyeT48bGl0ZXJhbD5AQCAodHN2ZWN0b3IsIHRzcXVlcnkpPC9saXRlcmFsPjwv ZW50cnk+Ci0gICAgICA8ZW50cnk+PC9lbnRyeT4KLSAgICAgPC9yb3c+Ci0gICAgPC90Ym9keT4K LSAgIDwvdGdyb3VwPgotICA8L3RhYmxlPgotCi0gPHBhcmE+Ci0gIEZvciBoaXN0b3JpY2FsIHJl YXNvbnMsIHRoZSA8bGl0ZXJhbD5pbmV0X29wczwvbGl0ZXJhbD4gb3BlcmF0b3IgY2xhc3MgaXMK LSAgbm90IHRoZSBkZWZhdWx0IGNsYXNzIGZvciB0eXBlcyA8dHlwZT5pbmV0PC90eXBlPiBhbmQg PHR5cGU+Y2lkcjwvdHlwZT4uCi0gIFRvIHVzZSBpdCwgbWVudGlvbiB0aGUgY2xhc3MgbmFtZSBp biA8Y29tbWFuZD5DUkVBVEUgSU5ERVg8L2NvbW1hbmQ+LAotICBmb3IgZXhhbXBsZQotPHByb2dy YW1saXN0aW5nPgotQ1JFQVRFIElOREVYIE9OIG15X3RhYmxlIFVTSU5HIEdJU1QgKG15X2luZXRf Y29sdW1uIGluZXRfb3BzKTsKLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0gPC9wYXJhPgotCi08L3NlY3Qx PgotCi08c2VjdDEgaWQ9Imdpc3QtZXh0ZW5zaWJpbGl0eSI+Ci0gPHRpdGxlPkV4dGVuc2liaWxp dHk8L3RpdGxlPgotCi0gPHBhcmE+Ci0gICBUcmFkaXRpb25hbGx5LCBpbXBsZW1lbnRpbmcgYSBu ZXcgaW5kZXggYWNjZXNzIG1ldGhvZCBtZWFudCBhIGxvdCBvZgotICAgZGlmZmljdWx0IHdvcmsu ICBJdCB3YXMgbmVjZXNzYXJ5IHRvIHVuZGVyc3RhbmQgdGhlIGlubmVyIHdvcmtpbmdzIG9mIHRo ZQotICAgZGF0YWJhc2UsIHN1Y2ggYXMgdGhlIGxvY2sgbWFuYWdlciBhbmQgV3JpdGUtQWhlYWQg TG9nLiAgVGhlCi0gICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBpbnRlcmZhY2UgaGFzIGEgaGln aCBsZXZlbCBvZiBhYnN0cmFjdGlvbiwKLSAgIHJlcXVpcmluZyB0aGUgYWNjZXNzIG1ldGhvZCBp bXBsZW1lbnRlciBvbmx5IHRvIGltcGxlbWVudCB0aGUgc2VtYW50aWNzIG9mCi0gICB0aGUgZGF0 YSB0eXBlIGJlaW5nIGFjY2Vzc2VkLiAgVGhlIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IGxheWVy IGl0c2VsZgotICAgdGFrZXMgY2FyZSBvZiBjb25jdXJyZW5jeSwgbG9nZ2luZyBhbmQgc2VhcmNo aW5nIHRoZSB0cmVlIHN0cnVjdHVyZS4KLSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgIFRoaXMgZXh0 ZW5zaWJpbGl0eSBzaG91bGQgbm90IGJlIGNvbmZ1c2VkIHdpdGggdGhlIGV4dGVuc2liaWxpdHkg b2YgdGhlCi0gICBvdGhlciBzdGFuZGFyZCBzZWFyY2ggdHJlZXMgaW4gdGVybXMgb2YgdGhlIGRh dGEgdGhleSBjYW4gaGFuZGxlLiAgRm9yCi0gICBleGFtcGxlLCA8cHJvZHVjdG5hbWU+UG9zdGdy ZVNRTDwvcHJvZHVjdG5hbWU+IHN1cHBvcnRzIGV4dGVuc2libGUgQi10cmVlcwotICAgYW5kIGhh c2ggaW5kZXhlcy4gVGhhdCBtZWFucyB0aGF0IHlvdSBjYW4gdXNlCi0gICA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHRvIGJ1aWxkIGEgQi10cmVlIG9yIGhhc2ggb3ZlciBh bnkKLSAgIGRhdGEgdHlwZSB5b3Ugd2FudC4gQnV0IEItdHJlZXMgb25seSBzdXBwb3J0IHJhbmdl IHByZWRpY2F0ZXMKLSAgICg8bGl0ZXJhbD4mbHQ7PC9saXRlcmFsPiwgPGxpdGVyYWw+PTwvbGl0 ZXJhbD4sIDxsaXRlcmFsPiZndDs8L2xpdGVyYWw+KSwKLSAgIGFuZCBoYXNoIGluZGV4ZXMgb25s eSBzdXBwb3J0IGVxdWFsaXR5IHF1ZXJpZXMuCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gICBTbyBp ZiB5b3UgaW5kZXgsIHNheSwgYW4gaW1hZ2UgY29sbGVjdGlvbiB3aXRoIGEKLSAgIDxwcm9kdWN0 bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gQi10cmVlLCB5b3UgY2FuIG9ubHkgaXNzdWUg cXVlcmllcwotICAgc3VjaCBhcyA8cXVvdGU+aXMgaW1hZ2V4IGVxdWFsIHRvIGltYWdleTwvcXVv dGU+LCA8cXVvdGU+aXMgaW1hZ2V4IGxlc3MKLSAgIHRoYW4gaW1hZ2V5PC9xdW90ZT4gYW5kIDxx dW90ZT5pcyBpbWFnZXggZ3JlYXRlciB0aGFuIGltYWdleTwvcXVvdGU+LgotICAgRGVwZW5kaW5n IG9uIGhvdyB5b3UgZGVmaW5lIDxxdW90ZT5lcXVhbHM8L3F1b3RlPiwgPHF1b3RlPmxlc3MgdGhh bjwvcXVvdGU+Ci0gICBhbmQgPHF1b3RlPmdyZWF0ZXIgdGhhbjwvcXVvdGU+IGluIHRoaXMgY29u dGV4dCwgdGhpcyBjb3VsZCBiZSB1c2VmdWwuCi0gICBIb3dldmVyLCBieSB1c2luZyBhIDxhY3Jv bnltPkdpU1Q8L2Fjcm9ueW0+IGJhc2VkIGluZGV4LCB5b3UgY291bGQgY3JlYXRlCi0gICB3YXlz IHRvIGFzayBkb21haW4tc3BlY2lmaWMgcXVlc3Rpb25zLCBwZXJoYXBzIDxxdW90ZT5maW5kIGFs bCBpbWFnZXMgb2YKLSAgIGhvcnNlczwvcXVvdGU+IG9yIDxxdW90ZT5maW5kIGFsbCBvdmVyLWV4 cG9zZWQgaW1hZ2VzPC9xdW90ZT4uCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gICBBbGwgaXQgdGFr ZXMgdG8gZ2V0IGEgPGFjcm9ueW0+R2lTVDwvYWNyb255bT4gYWNjZXNzIG1ldGhvZCB1cCBhbmQg cnVubmluZwotICAgaXMgdG8gaW1wbGVtZW50IHNldmVyYWwgdXNlci1kZWZpbmVkIG1ldGhvZHMs IHdoaWNoIGRlZmluZSB0aGUgYmVoYXZpb3Igb2YKLSAgIGtleXMgaW4gdGhlIHRyZWUuIE9mIGNv dXJzZSB0aGVzZSBtZXRob2RzIGhhdmUgdG8gYmUgcHJldHR5IGZhbmN5IHRvCi0gICBzdXBwb3J0 IGZhbmN5IHF1ZXJpZXMsIGJ1dCBmb3IgYWxsIHRoZSBzdGFuZGFyZCBxdWVyaWVzIChCLXRyZWVz LAotICAgUi10cmVlcywgZXRjLikgdGhleSdyZSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZC4g SW4gc2hvcnQsCi0gICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBjb21iaW5lcyBleHRlbnNpYmls aXR5IGFsb25nIHdpdGggZ2VuZXJhbGl0eSwgY29kZQotICAgcmV1c2UsIGFuZCBhIGNsZWFuIGlu dGVyZmFjZS4KLSAgPC9wYXJhPgotCi0gPHBhcmE+Ci0gICBUaGVyZSBhcmUgZml2ZSBtZXRob2Rz IHRoYXQgYW4gaW5kZXggb3BlcmF0b3IgY2xhc3MgZm9yCi0gICA8YWNyb255bT5HaVNUPC9hY3Jv bnltPiBtdXN0IHByb3ZpZGUsIGFuZCBzZXZlbiB0aGF0IGFyZSBvcHRpb25hbC4KLSAgIENvcnJl Y3RuZXNzIG9mIHRoZSBpbmRleCBpcyBlbnN1cmVkCi0gICBieSBwcm9wZXIgaW1wbGVtZW50YXRp b24gb2YgdGhlIDxmdW5jdGlvbj5zYW1lPC9mdW5jdGlvbj4sIDxmdW5jdGlvbj5jb25zaXN0ZW50 PC9mdW5jdGlvbj4KLSAgIGFuZCA8ZnVuY3Rpb24+dW5pb248L2Z1bmN0aW9uPiBtZXRob2RzLCB3 aGlsZSBlZmZpY2llbmN5IChzaXplIGFuZCBzcGVlZCkgb2YgdGhlCi0gICBpbmRleCB3aWxsIGRl cGVuZCBvbiB0aGUgPGZ1bmN0aW9uPnBlbmFsdHk8L2Z1bmN0aW9uPiBhbmQgPGZ1bmN0aW9uPnBp Y2tzcGxpdDwvZnVuY3Rpb24+Ci0gICBtZXRob2RzLgotICAgVHdvIG9wdGlvbmFsIG1ldGhvZHMg YXJlIDxmdW5jdGlvbj5jb21wcmVzczwvZnVuY3Rpb24+IGFuZAotICAgPGZ1bmN0aW9uPmRlY29t cHJlc3M8L2Z1bmN0aW9uPiwgd2hpY2ggYWxsb3cgYW4gaW5kZXggdG8gaGF2ZSBpbnRlcm5hbCB0 cmVlIGRhdGEgb2YKLSAgIGEgZGlmZmVyZW50IHR5cGUgdGhhbiB0aGUgZGF0YSBpdCBpbmRleGVz LiBUaGUgbGVhdmVzIGFyZSB0byBiZSBvZiB0aGUKLSAgIGluZGV4ZWQgZGF0YSB0eXBlLCB3aGls ZSB0aGUgb3RoZXIgdHJlZSBub2RlcyBjYW4gYmUgb2YgYW55IEMgc3RydWN0IChidXQKLSAgIHlv dSBzdGlsbCBoYXZlIHRvIGZvbGxvdyA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5h bWU+IGRhdGEgdHlwZSBydWxlcyBoZXJlLAotICAgc2VlIGFib3V0IDxsaXRlcmFsPnZhcmxlbmE8 L2xpdGVyYWw+IGZvciB2YXJpYWJsZSBzaXplZCBkYXRhKS4gSWYgdGhlIHRyZWUncwotICAgaW50 ZXJuYWwgZGF0YSB0eXBlIGV4aXN0cyBhdCB0aGUgU1FMIGxldmVsLCB0aGUgPGxpdGVyYWw+U1RP UkFHRTwvbGl0ZXJhbD4gb3B0aW9uCi0gICBvZiB0aGUgPGNvbW1hbmQ+Q1JFQVRFIE9QRVJBVE9S IENMQVNTPC9jb21tYW5kPiBjb21tYW5kIGNhbiBiZSB1c2VkLgotICAgVGhlIG9wdGlvbmFsIGVp Z2h0aCBtZXRob2QgaXMgPGZ1bmN0aW9uPmRpc3RhbmNlPC9mdW5jdGlvbj4sIHdoaWNoIGlzIG5l ZWRlZAotICAgaWYgdGhlIG9wZXJhdG9yIGNsYXNzIHdpc2hlcyB0byBzdXBwb3J0IG9yZGVyZWQg c2NhbnMgKG5lYXJlc3QtbmVpZ2hib3IKLSAgIHNlYXJjaGVzKS4gVGhlIG9wdGlvbmFsIG5pbnRo IG1ldGhvZCA8ZnVuY3Rpb24+ZmV0Y2g8L2Z1bmN0aW9uPiBpcyBuZWVkZWQgaWYgdGhlCi0gICBv cGVyYXRvciBjbGFzcyB3aXNoZXMgdG8gc3VwcG9ydCBpbmRleC1vbmx5IHNjYW5zLCBleGNlcHQg d2hlbiB0aGUKLSAgIDxmdW5jdGlvbj5jb21wcmVzczwvZnVuY3Rpb24+IG1ldGhvZCBpcyBvbWl0 dGVkLiBUaGUgb3B0aW9uYWwgdGVudGggbWV0aG9kCi0gICA8ZnVuY3Rpb24+b3B0aW9uczwvZnVu Y3Rpb24+IGlzIG5lZWRlZCBpZiB0aGUgb3BlcmF0b3IgY2xhc3MgaGFzCi0gICB1c2VyLXNwZWNp ZmllZCBwYXJhbWV0ZXJzLgotICAgVGhlIG9wdGlvbmFsIGVsZXZlbnRoIG1ldGhvZCA8ZnVuY3Rp b24+c29ydHN1cHBvcnQ8L2Z1bmN0aW9uPiBpcyB1c2VkIHRvCi0gICBzcGVlZCB1cCBidWlsZGlu ZyBhIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IGluZGV4LgotICAgVGhlIG9wdGlvbmFsIHR3ZWxm dGggbWV0aG9kIDxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rpb24+IGlzIHVzZWQgdG8KLSAgIHRy YW5zbGF0ZSB3ZWxsLWtub3duIDxsaXRlcmFsPlJUKlN0cmF0ZWd5TnVtYmVyPC9saXRlcmFsPnMg KGZyb20KLSAgIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0uaDwvZmlsZW5h bWU+KSBpbnRvIHN0cmF0ZWd5IG51bWJlcnMKLSAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNz LiAgVGhpcyBsZXRzIHRoZSBjb3JlIGNvZGUgbG9vayB1cCBvcGVyYXRvcnMgZm9yCi0gICB0ZW1w b3JhbCBjb25zdHJhaW50IGluZGV4ZXMuCi0gPC9wYXJhPgotCi0gPHZhcmlhYmxlbGlzdD4KLSAg ICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48ZnVuY3Rpb24+Y29uc2lzdGVudDwvZnVuY3Rp b24+PC90ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBHaXZlbiBh biBpbmRleCBlbnRyeSA8bGl0ZXJhbD5wPC9saXRlcmFsPiBhbmQgYSBxdWVyeSB2YWx1ZSA8bGl0 ZXJhbD5xPC9saXRlcmFsPiwKLSAgICAgICB0aGlzIGZ1bmN0aW9uIGRldGVybWluZXMgd2hldGhl ciB0aGUgaW5kZXggZW50cnkgaXMKLSAgICAgICA8cXVvdGU+Y29uc2lzdGVudDwvcXVvdGU+IHdp dGggdGhlIHF1ZXJ5OyB0aGF0IGlzLCBjb3VsZCB0aGUgcHJlZGljYXRlCi0gICAgICAgPHF1b3Rl PjxyZXBsYWNlYWJsZT5pbmRleGVkX2NvbHVtbjwvcmVwbGFjZWFibGU+Ci0gICAgICAgPHJlcGxh Y2VhYmxlPmluZGV4YWJsZV9vcGVyYXRvcjwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPnE8L2xpdGVy YWw+PC9xdW90ZT4gYmUgdHJ1ZSBmb3IKLSAgICAgICBhbnkgcm93IHJlcHJlc2VudGVkIGJ5IHRo ZSBpbmRleCBlbnRyeT8gIEZvciBhIGxlYWYgaW5kZXggZW50cnkgdGhpcyBpcwotICAgICAgIGVx dWl2YWxlbnQgdG8gdGVzdGluZyB0aGUgaW5kZXhhYmxlIGNvbmRpdGlvbiwgd2hpbGUgZm9yIGFu IGludGVybmFsCi0gICAgICAgdHJlZSBub2RlIHRoaXMgZGV0ZXJtaW5lcyB3aGV0aGVyIGl0IGlz IG5lY2Vzc2FyeSB0byBzY2FuIHRoZSBzdWJ0cmVlCi0gICAgICAgb2YgdGhlIGluZGV4IHJlcHJl c2VudGVkIGJ5IHRoZSB0cmVlIG5vZGUuICBXaGVuIHRoZSByZXN1bHQgaXMKLSAgICAgICA8bGl0 ZXJhbD50cnVlPC9saXRlcmFsPiwgYSA8bGl0ZXJhbD5yZWNoZWNrPC9saXRlcmFsPiBmbGFnIG11 c3QgYWxzbyBiZSByZXR1cm5lZC4KLSAgICAgICBUaGlzIGluZGljYXRlcyB3aGV0aGVyIHRoZSBw cmVkaWNhdGUgaXMgY2VydGFpbmx5IHRydWUgb3Igb25seSBwb3NzaWJseQotICAgICAgIHRydWUu ICBJZiA8bGl0ZXJhbD5yZWNoZWNrPC9saXRlcmFsPiA9IDxsaXRlcmFsPmZhbHNlPC9saXRlcmFs PiB0aGVuIHRoZSBpbmRleCBoYXMKLSAgICAgICB0ZXN0ZWQgdGhlIHByZWRpY2F0ZSBjb25kaXRp b24gZXhhY3RseSwgd2hlcmVhcyBpZiA8bGl0ZXJhbD5yZWNoZWNrPC9saXRlcmFsPgotICAgICAg ID0gPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gdGhlIHJvdyBpcyBvbmx5IGEgY2FuZGlkYXRlIG1h dGNoLiAgSW4gdGhhdCBjYXNlIHRoZQotICAgICAgIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkg ZXZhbHVhdGUgdGhlCi0gICAgICAgPHJlcGxhY2VhYmxlPmluZGV4YWJsZV9vcGVyYXRvcjwvcmVw bGFjZWFibGU+IGFnYWluc3QgdGhlIGFjdHVhbCByb3cgdmFsdWUgdG8gc2VlCi0gICAgICAgaWYg aXQgaXMgcmVhbGx5IGEgbWF0Y2guICBUaGlzIGNvbnZlbnRpb24gYWxsb3dzCi0gICAgICAgPGFj cm9ueW0+R2lTVDwvYWNyb255bT4gdG8gc3VwcG9ydCBib3RoIGxvc3NsZXNzIGFuZCBsb3NzeSBp bmRleAotICAgICAgIHN0cnVjdHVyZXMuCi0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgot ICAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVu Y3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKLQotPHByb2dyYW1saXN0aW5nPgotQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gbXlfY29uc2lzdGVudChpbnRlcm5hbCwgZGF0YV90eXBlLCBzbWFs bGludCwgb2lkLCBpbnRlcm5hbCkKLVJFVFVSTlMgYm9vbAotQVMgJ01PRFVMRV9QQVRITkFNRScK LUxBTkdVQUdFIEMgU1RSSUNUOwotPC9wcm9ncmFtbGlzdGluZz4KLQotICAgICAgICBBbmQgdGhl IG1hdGNoaW5nIGNvZGUgaW4gdGhlIEMgbW9kdWxlIGNvdWxkIHRoZW4gZm9sbG93IHRoaXMgc2tl bGV0b246Ci0KLTxwcm9ncmFtbGlzdGluZz4KLVBHX0ZVTkNUSU9OX0lORk9fVjEobXlfY29uc2lz dGVudCk7Ci0KLURhdHVtCi1teV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0gICAg R0lTVEVOVFJZICAqZW50cnkgPSAoR0lTVEVOVFJZICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwot ICAgIGRhdGFfdHlwZSAgKnF1ZXJ5ID0gUEdfR0VUQVJHX0RBVEFfVFlQRV9QKDEpOwotICAgIFN0 cmF0ZWd5TnVtYmVyIHN0cmF0ZWd5ID0gKFN0cmF0ZWd5TnVtYmVyKSBQR19HRVRBUkdfVUlOVDE2 KDIpOwotICAgIC8qIE9pZCBzdWJ0eXBlID0gUEdfR0VUQVJHX09JRCgzKTsgKi8KLSAgICBib29s ICAgICAgICpyZWNoZWNrID0gKGJvb2wgKikgUEdfR0VUQVJHX1BPSU5URVIoNCk7Ci0gICAgZGF0 YV90eXBlICAqa2V5ID0gRGF0dW1HZXREYXRhVHlwZShlbnRyeS0mZ3Q7a2V5KTsKLSAgICBib29s ICAgICAgICByZXR2YWw7Ci0KLSAgICAvKgotICAgICAqIGRldGVybWluZSByZXR1cm4gdmFsdWUg YXMgYSBmdW5jdGlvbiBvZiBzdHJhdGVneSwga2V5IGFuZCBxdWVyeS4KLSAgICAgKgotICAgICAq IFVzZSBHSVNUX0xFQUYoZW50cnkpIHRvIGtub3cgd2hlcmUgeW91J3JlIGNhbGxlZCBpbiB0aGUg aW5kZXggdHJlZSwKLSAgICAgKiB3aGljaCBjb21lcyBoYW5keSB3aGVuIHN1cHBvcnRpbmcgdGhl ID0gb3BlcmF0b3IgZm9yIGV4YW1wbGUgKHlvdSBjb3VsZAotICAgICAqIGNoZWNrIGZvciBub24g ZW1wdHkgdW5pb24oKSBpbiBub24tbGVhZiBub2RlcyBhbmQgZXF1YWxpdHkgaW4gbGVhZgotICAg ICAqIG5vZGVzKS4KLSAgICAgKi8KLQotICAgICpyZWNoZWNrID0gdHJ1ZTsgICAgICAgIC8qIG9y IGZhbHNlIGlmIGNoZWNrIGlzIGV4YWN0ICovCi0KLSAgICBQR19SRVRVUk5fQk9PTChyZXR2YWwp OwotfQotPC9wcm9ncmFtbGlzdGluZz4KLQotICAgICAgIEhlcmUsIDx2YXJuYW1lPmtleTwvdmFy bmFtZT4gaXMgYW4gZWxlbWVudCBpbiB0aGUgaW5kZXggYW5kIDx2YXJuYW1lPnF1ZXJ5PC92YXJu YW1lPgotICAgICAgIHRoZSB2YWx1ZSBiZWluZyBsb29rZWQgdXAgaW4gdGhlIGluZGV4LiBUaGUg PGxpdGVyYWw+U3RyYXRlZ3lOdW1iZXI8L2xpdGVyYWw+Ci0gICAgICAgcGFyYW1ldGVyIGluZGlj YXRlcyB3aGljaCBvcGVyYXRvciBvZiB5b3VyIG9wZXJhdG9yIGNsYXNzIGlzIGJlaW5nCi0gICAg ICAgYXBwbGllZCAmbWRhc2g7IGl0IG1hdGNoZXMgb25lIG9mIHRoZSBvcGVyYXRvciBudW1iZXJz IGluIHRoZQotICAgICAgIDxjb21tYW5kPkNSRUFURSBPUEVSQVRPUiBDTEFTUzwvY29tbWFuZD4g Y29tbWFuZC4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAgICAgRGVwZW5kaW5n IG9uIHdoaWNoIG9wZXJhdG9ycyB5b3UgaGF2ZSBpbmNsdWRlZCBpbiB0aGUgY2xhc3MsIHRoZSBk YXRhCi0gICAgICAgdHlwZSBvZiA8dmFybmFtZT5xdWVyeTwvdmFybmFtZT4gY291bGQgdmFyeSB3 aXRoIHRoZSBvcGVyYXRvciwgc2luY2UgaXQgd2lsbAotICAgICAgIGJlIHdoYXRldmVyIHR5cGUg aXMgb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiB0aGUgb3BlcmF0b3IsIHdoaWNoIG1pZ2h0Ci0g ICAgICAgYmUgZGlmZmVyZW50IGZyb20gdGhlIGluZGV4ZWQgZGF0YSB0eXBlIGFwcGVhcmluZyBv biB0aGUgbGVmdC1oYW5kIHNpZGUuCi0gICAgICAgKFRoZSBhYm92ZSBjb2RlIHNrZWxldG9uIGFz c3VtZXMgdGhhdCBvbmx5IG9uZSB0eXBlIGlzIHBvc3NpYmxlOyBpZgotICAgICAgIG5vdCwgZmV0 Y2hpbmcgdGhlIDx2YXJuYW1lPnF1ZXJ5PC92YXJuYW1lPiBhcmd1bWVudCB2YWx1ZSB3b3VsZCBo YXZlIHRvIGRlcGVuZAotICAgICAgIG9uIHRoZSBvcGVyYXRvci4pICBJdCBpcyByZWNvbW1lbmRl ZCB0aGF0IHRoZSBTUUwgZGVjbGFyYXRpb24gb2YKLSAgICAgICB0aGUgPGZ1bmN0aW9uPmNvbnNp c3RlbnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbiB1c2UgdGhlIG9wY2xhc3MncyBpbmRleGVkIGRhdGEK LSAgICAgICB0eXBlIGZvciB0aGUgPHZhcm5hbWU+cXVlcnk8L3Zhcm5hbWU+IGFyZ3VtZW50LCBl dmVuIHRob3VnaCB0aGUgYWN0dWFsIHR5cGUKLSAgICAgICBtaWdodCBiZSBzb21ldGhpbmcgZWxz ZSBkZXBlbmRpbmcgb24gdGhlIG9wZXJhdG9yLgotICAgICAgPC9wYXJhPgotCi0gICAgIDwvbGlz dGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8 dGVybT48ZnVuY3Rpb24+dW5pb248L2Z1bmN0aW9uPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgot ICAgICAgPHBhcmE+Ci0gICAgICAgVGhpcyBtZXRob2QgY29uc29saWRhdGVzIGluZm9ybWF0aW9u IGluIHRoZSB0cmVlLiAgR2l2ZW4gYSBzZXQgb2YKLSAgICAgICBlbnRyaWVzLCB0aGlzIGZ1bmN0 aW9uIGdlbmVyYXRlcyBhIG5ldyBpbmRleCBlbnRyeSB0aGF0IHJlcHJlc2VudHMKLSAgICAgICBh bGwgdGhlIGdpdmVuIGVudHJpZXMuCi0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAg ICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rp b24gbXVzdCBsb29rIGxpa2UgdGhpczoKLQotPHByb2dyYW1saXN0aW5nPgotQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gbXlfdW5pb24oaW50ZXJuYWwsIGludGVybmFsKQotUkVUVVJOUyBzdG9y YWdlX3R5cGUKLUFTICdNT0RVTEVfUEFUSE5BTUUnCi1MQU5HVUFHRSBDIFNUUklDVDsKLTwvcHJv Z3JhbWxpc3Rpbmc+Ci0KLSAgICAgICAgQW5kIHRoZSBtYXRjaGluZyBjb2RlIGluIHRoZSBDIG1v ZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIHNrZWxldG9uOgotCi08cHJvZ3JhbWxpc3Rpbmc+ Ci1QR19GVU5DVElPTl9JTkZPX1YxKG15X3VuaW9uKTsKLQotRGF0dW0KLW15X3VuaW9uKFBHX0ZV TkNUSU9OX0FSR1MpCi17Ci0gICAgR2lzdEVudHJ5VmVjdG9yICplbnRyeXZlYyA9IChHaXN0RW50 cnlWZWN0b3IgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7Ci0gICAgR0lTVEVOVFJZICAqZW50ID0g ZW50cnl2ZWMtJmd0O3ZlY3RvcjsKLSAgICBkYXRhX3R5cGUgICpvdXQsCi0gICAgICAgICAgICAg ICAqdG1wLAotICAgICAgICAgICAgICAgKm9sZDsKLSAgICBpbnQgICAgICAgICBudW1yYW5nZXMs Ci0gICAgICAgICAgICAgICAgaSA9IDA7Ci0KLSAgICBudW1yYW5nZXMgPSBlbnRyeXZlYy0mZ3Q7 bjsKLSAgICB0bXAgPSBEYXR1bUdldERhdGFUeXBlKGVudFswXS5rZXkpOwotICAgIG91dCA9IHRt cDsKLQotICAgIGlmIChudW1yYW5nZXMgPT0gMSkKLSAgICB7Ci0gICAgICAgIG91dCA9IGRhdGFf dHlwZV9kZWVwX2NvcHkodG1wKTsKLQotICAgICAgICBQR19SRVRVUk5fREFUQV9UWVBFX1Aob3V0 KTsKLSAgICB9Ci0KLSAgICBmb3IgKGkgPSAxOyBpICZsdDsgbnVtcmFuZ2VzOyBpKyspCi0gICAg ewotICAgICAgICBvbGQgPSBvdXQ7Ci0gICAgICAgIHRtcCA9IERhdHVtR2V0RGF0YVR5cGUoZW50 W2ldLmtleSk7Ci0gICAgICAgIG91dCA9IG15X3VuaW9uX2ltcGxlbWVudGF0aW9uKG91dCwgdG1w KTsKLSAgICB9Ci0KLSAgICBQR19SRVRVUk5fREFUQV9UWVBFX1Aob3V0KTsKLX0KLTwvcHJvZ3Jh bWxpc3Rpbmc+Ci0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAgICAgICBBcyB5b3Ug Y2FuIHNlZSwgaW4gdGhpcyBza2VsZXRvbiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBkYXRhIHR5cGUK LSAgICAgICAgd2hlcmUgPGxpdGVyYWw+dW5pb24oWCwgWSwgWikgPSB1bmlvbih1bmlvbihYLCBZ KSwgWik8L2xpdGVyYWw+LiBJdCdzIGVhc3kKLSAgICAgICAgZW5vdWdoIHRvIHN1cHBvcnQgZGF0 YSB0eXBlcyB3aGVyZSB0aGlzIGlzIG5vdCB0aGUgY2FzZSwgYnkKLSAgICAgICAgaW1wbGVtZW50 aW5nIHRoZSBwcm9wZXIgdW5pb24gYWxnb3JpdGhtIGluIHRoaXMKLSAgICAgICAgPGFjcm9ueW0+ R2lTVDwvYWNyb255bT4gc3VwcG9ydCBtZXRob2QuCi0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxw YXJhPgotICAgICAgICBUaGUgcmVzdWx0IG9mIHRoZSA8ZnVuY3Rpb24+dW5pb248L2Z1bmN0aW9u PiBmdW5jdGlvbiBtdXN0IGJlIGEgdmFsdWUgb2YgdGhlCi0gICAgICAgIGluZGV4J3Mgc3RvcmFn ZSB0eXBlLCB3aGF0ZXZlciB0aGF0IGlzIChpdCBtaWdodCBvciBtaWdodCBub3QgYmUKLSAgICAg ICAgZGlmZmVyZW50IGZyb20gdGhlIGluZGV4ZWQgY29sdW1uJ3MgdHlwZSkuICBUaGUgPGZ1bmN0 aW9uPnVuaW9uPC9mdW5jdGlvbj4KLSAgICAgICAgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBhIHBv aW50ZXIgdG8gbmV3bHkgPGZ1bmN0aW9uPnBhbGxvYygpPC9mdW5jdGlvbj5lZAotICAgICAgICBt ZW1vcnkuIFlvdSBjYW4ndCBqdXN0IHJldHVybiB0aGUgaW5wdXQgdmFsdWUgYXMtaXMsIGV2ZW4g aWYgdGhlcmUgaXMKLSAgICAgICAgbm8gdHlwZSBjaGFuZ2UuCi0gICAgICA8L3BhcmE+Ci0KLSAg ICAgIDxwYXJhPgotICAgICAgIEFzIHNob3duIGFib3ZlLCB0aGUgPGZ1bmN0aW9uPnVuaW9uPC9m dW5jdGlvbj4gZnVuY3Rpb24ncwotICAgICAgIGZpcnN0IDx0eXBlPmludGVybmFsPC90eXBlPiBh cmd1bWVudCBpcyBhY3R1YWxseQotICAgICAgIGEgPHN0cnVjdG5hbWU+R2lzdEVudHJ5VmVjdG9y PC9zdHJ1Y3RuYW1lPiBwb2ludGVyLiAgVGhlIHNlY29uZCBhcmd1bWVudCBpcyBhCi0gICAgICAg cG9pbnRlciB0byBhbiBpbnRlZ2VyIHZhcmlhYmxlLCB3aGljaCBjYW4gYmUgaWdub3JlZC4gIChJ dCB1c2VkIHRvIGJlCi0gICAgICAgcmVxdWlyZWQgdGhhdCB0aGUgPGZ1bmN0aW9uPnVuaW9uPC9m dW5jdGlvbj4gZnVuY3Rpb24gc3RvcmUgdGhlIHNpemUgb2YgaXRzCi0gICAgICAgcmVzdWx0IHZh bHVlIGludG8gdGhhdCB2YXJpYWJsZSwgYnV0IHRoaXMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4p Ci0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0K LSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48ZnVuY3Rpb24+Y29tcHJlc3M8L2Z1bmN0 aW9uPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgQ29udmVy dHMgYSBkYXRhIGl0ZW0gaW50byBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgcGh5c2ljYWwgc3RvcmFn ZSBpbgotICAgICAgIGFuIGluZGV4IHBhZ2UuCi0gICAgICAgSWYgdGhlIDxmdW5jdGlvbj5jb21w cmVzczwvZnVuY3Rpb24+IG1ldGhvZCBpcyBvbWl0dGVkLCBkYXRhIGl0ZW1zIGFyZSBzdG9yZWQK LSAgICAgICBpbiB0aGUgaW5kZXggd2l0aG91dCBtb2RpZmljYXRpb24uCi0gICAgICA8L3BhcmE+ Ci0KLSAgICAgIDxwYXJhPgotICAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNs YXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKLQotPHByb2dyYW1s aXN0aW5nPgotQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gbXlfY29tcHJlc3MoaW50ZXJuYWwp Ci1SRVRVUk5TIGludGVybmFsCi1BUyAnTU9EVUxFX1BBVEhOQU1FJwotTEFOR1VBR0UgQyBTVFJJ Q1Q7Ci08L3Byb2dyYW1saXN0aW5nPgotCi0gICAgICAgIEFuZCB0aGUgbWF0Y2hpbmcgY29kZSBp biB0aGUgQyBtb2R1bGUgY291bGQgdGhlbiBmb2xsb3cgdGhpcyBza2VsZXRvbjoKLQotPHByb2dy YW1saXN0aW5nPgotUEdfRlVOQ1RJT05fSU5GT19WMShteV9jb21wcmVzcyk7Ci0KLURhdHVtCi1t eV9jb21wcmVzcyhQR19GVU5DVElPTl9BUkdTKQotewotICAgIEdJU1RFTlRSWSAgKmVudHJ5ID0g KEdJU1RFTlRSWSAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKLSAgICBHSVNURU5UUlkgICpyZXR2 YWw7Ci0KLSAgICBpZiAoZW50cnktJmd0O2xlYWZrZXkpCi0gICAgewotICAgICAgICAvKiByZXBs YWNlIGVudHJ5LSZndDtrZXkgd2l0aCBhIGNvbXByZXNzZWQgdmVyc2lvbiAqLwotICAgICAgICBj b21wcmVzc2VkX2RhdGFfdHlwZSAqY29tcHJlc3NlZF9kYXRhID0gcGFsbG9jKHNpemVvZihjb21w cmVzc2VkX2RhdGFfdHlwZSkpOwotCi0gICAgICAgIC8qIGZpbGwgKmNvbXByZXNzZWRfZGF0YSBm cm9tIGVudHJ5LSZndDtrZXkgLi4uICovCi0KLSAgICAgICAgcmV0dmFsID0gcGFsbG9jKHNpemVv ZihHSVNURU5UUlkpKTsKLSAgICAgICAgZ2lzdGVudHJ5aW5pdCgqcmV0dmFsLCBQb2ludGVyR2V0 RGF0dW0oY29tcHJlc3NlZF9kYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICBlbnRyeS0mZ3Q7 cmVsLCBlbnRyeS0mZ3Q7cGFnZSwgZW50cnktJmd0O29mZnNldCwgRkFMU0UpOwotICAgIH0KLSAg ICBlbHNlCi0gICAgewotICAgICAgICAvKiB0eXBpY2FsbHkgd2UgbmVlZG4ndCBkbyBhbnl0aGlu ZyB3aXRoIG5vbi1sZWFmIGVudHJpZXMgKi8KLSAgICAgICAgcmV0dmFsID0gZW50cnk7Ci0gICAg fQotCi0gICAgUEdfUkVUVVJOX1BPSU5URVIocmV0dmFsKTsKLX0KLTwvcHJvZ3JhbWxpc3Rpbmc+ Ci0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAgICAgIFlvdSBoYXZlIHRvIGFkYXB0 IDxyZXBsYWNlYWJsZT5jb21wcmVzc2VkX2RhdGFfdHlwZTwvcmVwbGFjZWFibGU+IHRvIHRoZSBz cGVjaWZpYwotICAgICAgIHR5cGUgeW91J3JlIGNvbnZlcnRpbmcgdG8gaW4gb3JkZXIgdG8gY29t cHJlc3MgeW91ciBsZWFmIG5vZGVzLCBvZgotICAgICAgIGNvdXJzZS4KLSAgICAgIDwvcGFyYT4K LSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLQotICAgIDx2YXJsaXN0ZW50 cnk+Ci0gICAgIDx0ZXJtPjxmdW5jdGlvbj5kZWNvbXByZXNzPC9mdW5jdGlvbj48L3Rlcm0+Ci0g ICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgIENvbnZlcnRzIHRoZSBzdG9yZWQg cmVwcmVzZW50YXRpb24gb2YgYSBkYXRhIGl0ZW0gaW50byBhIGZvcm1hdCB0aGF0Ci0gICAgICAg Y2FuIGJlIG1hbmlwdWxhdGVkIGJ5IHRoZSBvdGhlciBHaVNUIG1ldGhvZHMgaW4gdGhlIG9wZXJh dG9yIGNsYXNzLgotICAgICAgIElmIHRoZSA8ZnVuY3Rpb24+ZGVjb21wcmVzczwvZnVuY3Rpb24+ IG1ldGhvZCBpcyBvbWl0dGVkLCBpdCBpcyBhc3N1bWVkIHRoYXQKLSAgICAgICB0aGUgb3RoZXIg R2lTVCBtZXRob2RzIGNhbiB3b3JrIGRpcmVjdGx5IG9uIHRoZSBzdG9yZWQgZGF0YSBmb3JtYXQu Ci0gICAgICAgKDxmdW5jdGlvbj5kZWNvbXByZXNzPC9mdW5jdGlvbj4gaXMgbm90IG5lY2Vzc2Fy aWx5IHRoZSByZXZlcnNlIG9mCi0gICAgICAgdGhlIDxmdW5jdGlvbj5jb21wcmVzczwvZnVuY3Rp b24+IG1ldGhvZDsgaW4gcGFydGljdWxhciwKLSAgICAgICBpZiA8ZnVuY3Rpb24+Y29tcHJlc3M8 L2Z1bmN0aW9uPiBpcyBsb3NzeSB0aGVuIGl0J3MgaW1wb3NzaWJsZQotICAgICAgIGZvciA8ZnVu Y3Rpb24+ZGVjb21wcmVzczwvZnVuY3Rpb24+IHRvIGV4YWN0bHkgcmVjb25zdHJ1Y3QgdGhlIG9y aWdpbmFsCi0gICAgICAgZGF0YS4gIDxmdW5jdGlvbj5kZWNvbXByZXNzPC9mdW5jdGlvbj4gaXMg bm90IG5lY2Vzc2FyaWx5IGVxdWl2YWxlbnQKLSAgICAgICB0byA8ZnVuY3Rpb24+ZmV0Y2g8L2Z1 bmN0aW9uPiwgZWl0aGVyLCBzaW5jZSB0aGUgb3RoZXIgR2lTVCBtZXRob2RzIG1pZ2h0IG5vdAot ICAgICAgIHJlcXVpcmUgZnVsbCByZWNvbnN0cnVjdGlvbiBvZiB0aGUgZGF0YS4pCi0gICAgICA8 L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3Jvbnlt PiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKLQotPHBy b2dyYW1saXN0aW5nPgotQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gbXlfZGVjb21wcmVzcyhp bnRlcm5hbCkKLVJFVFVSTlMgaW50ZXJuYWwKLUFTICdNT0RVTEVfUEFUSE5BTUUnCi1MQU5HVUFH RSBDIFNUUklDVDsKLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0KLSAgICAgICAgQW5kIHRoZSBtYXRjaGlu ZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIHNrZWxldG9uOgot Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1QR19GVU5DVElPTl9JTkZPX1YxKG15X2RlY29tcHJlc3MpOwot Ci1EYXR1bQotbXlfZGVjb21wcmVzcyhQR19GVU5DVElPTl9BUkdTKQotewotICAgIFBHX1JFVFVS Tl9QT0lOVEVSKFBHX0dFVEFSR19QT0lOVEVSKDApKTsKLX0KLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0K LSAgICAgICAgVGhlIGFib3ZlIHNrZWxldG9uIGlzIHN1aXRhYmxlIGZvciB0aGUgY2FzZSB3aGVy ZSBubyBkZWNvbXByZXNzaW9uCi0gICAgICAgIGlzIG5lZWRlZC4gIChCdXQsIG9mIGNvdXJzZSwg b21pdHRpbmcgdGhlIG1ldGhvZCBhbHRvZ2V0aGVyIGlzIGV2ZW4KLSAgICAgICAgZWFzaWVyLCBh bmQgaXMgcmVjb21tZW5kZWQgaW4gc3VjaCBjYXNlcy4pCi0gICAgICA8L3BhcmE+Ci0gICAgIDwv bGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAg ICA8dGVybT48ZnVuY3Rpb24+cGVuYWx0eTwvZnVuY3Rpb24+PC90ZXJtPgotICAgICA8bGlzdGl0 ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBSZXR1cm5zIGEgdmFsdWUgaW5kaWNhdGluZyB0aGUg PHF1b3RlPmNvc3Q8L3F1b3RlPiBvZiBpbnNlcnRpbmcgdGhlIG5ldwotICAgICAgIGVudHJ5IGlu dG8gYSBwYXJ0aWN1bGFyIGJyYW5jaCBvZiB0aGUgdHJlZS4gIEl0ZW1zIHdpbGwgYmUgaW5zZXJ0 ZWQKLSAgICAgICBkb3duIHRoZSBwYXRoIG9mIGxlYXN0IDxmdW5jdGlvbj5wZW5hbHR5PC9mdW5j dGlvbj4gaW4gdGhlIHRyZWUuCi0gICAgICAgVmFsdWVzIHJldHVybmVkIGJ5IDxmdW5jdGlvbj5w ZW5hbHR5PC9mdW5jdGlvbj4gc2hvdWxkIGJlIG5vbi1uZWdhdGl2ZS4KLSAgICAgICBJZiBhIG5l Z2F0aXZlIHZhbHVlIGlzIHJldHVybmVkLCBpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgemVyby4KLSAg ICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fj cm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZSB0aGlzOgot Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1DUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBteV9wZW5hbHR5 KGludGVybmFsLCBpbnRlcm5hbCwgaW50ZXJuYWwpCi1SRVRVUk5TIGludGVybmFsCi1BUyAnTU9E VUxFX1BBVEhOQU1FJwotTEFOR1VBR0UgQyBTVFJJQ1Q7ICAtLSBpbiBzb21lIGNhc2VzIHBlbmFs dHkgZnVuY3Rpb25zIG5lZWQgbm90IGJlIHN0cmljdAotPC9wcm9ncmFtbGlzdGluZz4KLQotICAg ICAgICBBbmQgdGhlIG1hdGNoaW5nIGNvZGUgaW4gdGhlIEMgbW9kdWxlIGNvdWxkIHRoZW4gZm9s bG93IHRoaXMgc2tlbGV0b246Ci0KLTxwcm9ncmFtbGlzdGluZz4KLVBHX0ZVTkNUSU9OX0lORk9f VjEobXlfcGVuYWx0eSk7Ci0KLURhdHVtCi1teV9wZW5hbHR5KFBHX0ZVTkNUSU9OX0FSR1MpCi17 Ci0gICAgR0lTVEVOVFJZICAqb3JpZ2VudHJ5ID0gKEdJU1RFTlRSWSAqKSBQR19HRVRBUkdfUE9J TlRFUigwKTsKLSAgICBHSVNURU5UUlkgICpuZXdlbnRyeSA9IChHSVNURU5UUlkgKikgUEdfR0VU QVJHX1BPSU5URVIoMSk7Ci0gICAgZmxvYXQgICAgICAqcGVuYWx0eSA9IChmbG9hdCAqKSBQR19H RVRBUkdfUE9JTlRFUigyKTsKLSAgICBkYXRhX3R5cGUgICpvcmlnID0gRGF0dW1HZXREYXRhVHlw ZShvcmlnZW50cnktJmd0O2tleSk7Ci0gICAgZGF0YV90eXBlICAqbmV3ID0gRGF0dW1HZXREYXRh VHlwZShuZXdlbnRyeS0mZ3Q7a2V5KTsKLQotICAgICpwZW5hbHR5ID0gbXlfcGVuYWx0eV9pbXBs ZW1lbnRhdGlvbihvcmlnLCBuZXcpOwotICAgIFBHX1JFVFVSTl9QT0lOVEVSKHBlbmFsdHkpOwot fQotPC9wcm9ncmFtbGlzdGluZz4KLQotICAgICAgICBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB0 aGUgPGZ1bmN0aW9uPnBlbmFsdHk8L2Z1bmN0aW9uPiBmdW5jdGlvbiBkb2Vzbid0Ci0gICAgICAg IGp1c3QgcmV0dXJuIGEgPHR5cGU+ZmxvYXQ8L3R5cGU+IHJlc3VsdDsgaW5zdGVhZCBpdCBoYXMg dG8gc3RvcmUgdGhlIHZhbHVlCi0gICAgICAgIGF0IHRoZSBsb2NhdGlvbiBpbmRpY2F0ZWQgYnkg dGhlIHRoaXJkIGFyZ3VtZW50LiAgVGhlIHJldHVybgotICAgICAgICB2YWx1ZSBwZXIgc2UgaXMg aWdub3JlZCwgdGhvdWdoIGl0J3MgY29udmVudGlvbmFsIHRvIHBhc3MgYmFjayB0aGUKLSAgICAg ICAgYWRkcmVzcyBvZiB0aGF0IGFyZ3VtZW50LgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFy YT4KLSAgICAgICAgVGhlIDxmdW5jdGlvbj5wZW5hbHR5PC9mdW5jdGlvbj4gZnVuY3Rpb24gaXMg Y3J1Y2lhbCB0byBnb29kIHBlcmZvcm1hbmNlIG9mCi0gICAgICAgIHRoZSBpbmRleC4gSXQnbGwg Z2V0IHVzZWQgYXQgaW5zZXJ0aW9uIHRpbWUgdG8gZGV0ZXJtaW5lIHdoaWNoIGJyYW5jaAotICAg ICAgICB0byBmb2xsb3cgd2hlbiBjaG9vc2luZyB3aGVyZSB0byBhZGQgdGhlIG5ldyBlbnRyeSBp biB0aGUgdHJlZS4gQXQKLSAgICAgICAgcXVlcnkgdGltZSwgdGhlIG1vcmUgYmFsYW5jZWQgdGhl IGluZGV4LCB0aGUgcXVpY2tlciB0aGUgbG9va3VwLgotICAgICAgPC9wYXJhPgotICAgICA8L2xp c3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0gICAgPHZhcmxpc3RlbnRyeT4KLSAgICAg PHRlcm0+PGZ1bmN0aW9uPnBpY2tzcGxpdDwvZnVuY3Rpb24+PC90ZXJtPgotICAgICA8bGlzdGl0 ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBXaGVuIGFuIGluZGV4IHBhZ2Ugc3BsaXQgaXMgbmVj ZXNzYXJ5LCB0aGlzIGZ1bmN0aW9uIGRlY2lkZXMgd2hpY2gKLSAgICAgICBlbnRyaWVzIG9uIHRo ZSBwYWdlIGFyZSB0byBzdGF5IG9uIHRoZSBvbGQgcGFnZSwgYW5kIHdoaWNoIGFyZSB0byBtb3Zl Ci0gICAgICAgdG8gdGhlIG5ldyBwYWdlLgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4K LSAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1 bmN0aW9uIG11c3QgbG9vayBsaWtlIHRoaXM6Ci0KLTxwcm9ncmFtbGlzdGluZz4KLUNSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIG15X3BpY2tzcGxpdChpbnRlcm5hbCwgaW50ZXJuYWwpCi1SRVRV Uk5TIGludGVybmFsCi1BUyAnTU9EVUxFX1BBVEhOQU1FJwotTEFOR1VBR0UgQyBTVFJJQ1Q7Ci08 L3Byb2dyYW1saXN0aW5nPgotCi0gICAgICAgIEFuZCB0aGUgbWF0Y2hpbmcgY29kZSBpbiB0aGUg QyBtb2R1bGUgY291bGQgdGhlbiBmb2xsb3cgdGhpcyBza2VsZXRvbjoKLQotPHByb2dyYW1saXN0 aW5nPgotUEdfRlVOQ1RJT05fSU5GT19WMShteV9waWNrc3BsaXQpOwotCi1EYXR1bQotbXlfcGlj a3NwbGl0KFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0gICAgR2lzdEVudHJ5VmVjdG9yICplbnRyeXZl YyA9IChHaXN0RW50cnlWZWN0b3IgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7Ci0gICAgR0lTVF9T UExJVFZFQyAqdiA9IChHSVNUX1NQTElUVkVDICopIFBHX0dFVEFSR19QT0lOVEVSKDEpOwotICAg IE9mZnNldE51bWJlciBtYXhvZmYgPSBlbnRyeXZlYy0mZ3Q7biAtIDE7Ci0gICAgR0lTVEVOVFJZ ICAqZW50ID0gZW50cnl2ZWMtJmd0O3ZlY3RvcjsKLSAgICBpbnQgICAgICAgICBpLAotICAgICAg ICAgICAgICAgIG5ieXRlczsKLSAgICBPZmZzZXROdW1iZXIgKmxlZnQsCi0gICAgICAgICAgICAg ICAqcmlnaHQ7Ci0gICAgZGF0YV90eXBlICAqdG1wX3VuaW9uOwotICAgIGRhdGFfdHlwZSAgKnVu aW9uTDsKLSAgICBkYXRhX3R5cGUgICp1bmlvblI7Ci0gICAgR0lTVEVOVFJZICoqcmF3X2VudHJ5 dmVjOwotCi0gICAgbWF4b2ZmID0gZW50cnl2ZWMtJmd0O24gLSAxOwotICAgIG5ieXRlcyA9ICht YXhvZmYgKyAxKSAqIHNpemVvZihPZmZzZXROdW1iZXIpOwotCi0gICAgdi0mZ3Q7c3BsX2xlZnQg PSAoT2Zmc2V0TnVtYmVyICopIHBhbGxvYyhuYnl0ZXMpOwotICAgIGxlZnQgPSB2LSZndDtzcGxf bGVmdDsKLSAgICB2LSZndDtzcGxfbmxlZnQgPSAwOwotCi0gICAgdi0mZ3Q7c3BsX3JpZ2h0ID0g KE9mZnNldE51bWJlciAqKSBwYWxsb2MobmJ5dGVzKTsKLSAgICByaWdodCA9IHYtJmd0O3NwbF9y aWdodDsKLSAgICB2LSZndDtzcGxfbnJpZ2h0ID0gMDsKLQotICAgIHVuaW9uTCA9IE5VTEw7Ci0g ICAgdW5pb25SID0gTlVMTDsKLQotICAgIC8qIEluaXRpYWxpemUgdGhlIHJhdyBlbnRyeSB2ZWN0 b3IuICovCi0gICAgcmF3X2VudHJ5dmVjID0gKEdJU1RFTlRSWSAqKikgbWFsbG9jKGVudHJ5dmVj LSZndDtuICogc2l6ZW9mKHZvaWQgKikpOwotICAgIGZvciAoaSA9IEZpcnN0T2Zmc2V0TnVtYmVy OyBpICZsdDs9IG1heG9mZjsgaSA9IE9mZnNldE51bWJlck5leHQoaSkpCi0gICAgICAgIHJhd19l bnRyeXZlY1tpXSA9ICZhbXA7KGVudHJ5dmVjLSZndDt2ZWN0b3JbaV0pOwotCi0gICAgZm9yIChp ID0gRmlyc3RPZmZzZXROdW1iZXI7IGkgJmx0Oz0gbWF4b2ZmOyBpID0gT2Zmc2V0TnVtYmVyTmV4 dChpKSkKLSAgICB7Ci0gICAgICAgIGludCAgICAgICAgIHJlYWxfaW5kZXggPSByYXdfZW50cnl2 ZWNbaV0gLSBlbnRyeXZlYy0mZ3Q7dmVjdG9yOwotCi0gICAgICAgIHRtcF91bmlvbiA9IERhdHVt R2V0RGF0YVR5cGUoZW50cnl2ZWMtJmd0O3ZlY3RvcltyZWFsX2luZGV4XS5rZXkpOwotICAgICAg ICBBc3NlcnQodG1wX3VuaW9uICE9IE5VTEwpOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIENo b29zZSB3aGVyZSB0byBwdXQgdGhlIGluZGV4IGVudHJpZXMgYW5kIHVwZGF0ZSB1bmlvbkwgYW5k IHVuaW9uUgotICAgICAgICAgKiBhY2NvcmRpbmdseS4gQXBwZW5kIHRoZSBlbnRyaWVzIHRvIGVp dGhlciB2LSZndDtzcGxfbGVmdCBvcgotICAgICAgICAgKiB2LSZndDtzcGxfcmlnaHQsIGFuZCBj YXJlIGFib3V0IHRoZSBjb3VudGVycy4KLSAgICAgICAgICovCi0KLSAgICAgICAgaWYgKG15X2No b2ljZV9pc19sZWZ0KHVuaW9uTCwgY3VybCwgdW5pb25SLCBjdXJyKSkKLSAgICAgICAgewotICAg ICAgICAgICAgaWYgKHVuaW9uTCA9PSBOVUxMKQotICAgICAgICAgICAgICAgIHVuaW9uTCA9IHRt cF91bmlvbjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB1bmlvbkwgPSBteV91 bmlvbl9pbXBsZW1lbnRhdGlvbih1bmlvbkwsIHRtcF91bmlvbik7Ci0KLSAgICAgICAgICAgICps ZWZ0ID0gcmVhbF9pbmRleDsKLSAgICAgICAgICAgICsrbGVmdDsKLSAgICAgICAgICAgICsrKHYt Jmd0O3NwbF9ubGVmdCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAg ICAgICAgICAvKgotICAgICAgICAgICAgICogU2FtZSBvbiB0aGUgcmlnaHQKLSAgICAgICAgICAg ICAqLwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdi0mZ3Q7c3BsX2xkYXR1bSA9IERhdGFUeXBl R2V0RGF0dW0odW5pb25MKTsKLSAgICB2LSZndDtzcGxfcmRhdHVtID0gRGF0YVR5cGVHZXREYXR1 bSh1bmlvblIpOwotICAgIFBHX1JFVFVSTl9QT0lOVEVSKHYpOwotfQotPC9wcm9ncmFtbGlzdGlu Zz4KLQotICAgICAgIE5vdGljZSB0aGF0IHRoZSA8ZnVuY3Rpb24+cGlja3NwbGl0PC9mdW5jdGlv bj4gZnVuY3Rpb24ncyByZXN1bHQgaXMgZGVsaXZlcmVkCi0gICAgICAgYnkgbW9kaWZ5aW5nIHRo ZSBwYXNzZWQtaW4gPHN0cnVjdG5hbWU+djwvc3RydWN0bmFtZT4gc3RydWN0dXJlLiAgVGhlIHJl dHVybgotICAgICAgIHZhbHVlIHBlciBzZSBpcyBpZ25vcmVkLCB0aG91Z2ggaXQncyBjb252ZW50 aW9uYWwgdG8gcGFzcyBiYWNrIHRoZQotICAgICAgIGFkZHJlc3Mgb2YgPHN0cnVjdG5hbWU+djwv c3RydWN0bmFtZT4uCi0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAgICAgICBMaWtl IDxmdW5jdGlvbj5wZW5hbHR5PC9mdW5jdGlvbj4sIHRoZSA8ZnVuY3Rpb24+cGlja3NwbGl0PC9m dW5jdGlvbj4gZnVuY3Rpb24KLSAgICAgICAgaXMgY3J1Y2lhbCB0byBnb29kIHBlcmZvcm1hbmNl IG9mIHRoZSBpbmRleC4gIERlc2lnbmluZyBzdWl0YWJsZQotICAgICAgICA8ZnVuY3Rpb24+cGVu YWx0eTwvZnVuY3Rpb24+IGFuZCA8ZnVuY3Rpb24+cGlja3NwbGl0PC9mdW5jdGlvbj4gaW1wbGVt ZW50YXRpb25zCi0gICAgICAgIGlzIHdoZXJlIHRoZSBjaGFsbGVuZ2Ugb2YgaW1wbGVtZW50aW5n IHdlbGwtcGVyZm9ybWluZwotICAgICAgICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBpbmRleGVz IGxpZXMuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50 cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48ZnVuY3Rpb24+c2FtZTwvZnVu Y3Rpb24+PC90ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBSZXR1 cm5zIHRydWUgaWYgdHdvIGluZGV4IGVudHJpZXMgYXJlIGlkZW50aWNhbCwgZmFsc2Ugb3RoZXJ3 aXNlLgotICAgICAgIChBbiA8cXVvdGU+aW5kZXggZW50cnk8L3F1b3RlPiBpcyBhIHZhbHVlIG9m IHRoZSBpbmRleCdzIHN0b3JhZ2UgdHlwZSwKLSAgICAgICBub3QgbmVjZXNzYXJpbHkgdGhlIG9y aWdpbmFsIGluZGV4ZWQgY29sdW1uJ3MgdHlwZS4pCi0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxw YXJhPgotICAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0 aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKLQotPHByb2dyYW1saXN0aW5nPgotQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gbXlfc2FtZShzdG9yYWdlX3R5cGUsIHN0b3JhZ2VfdHlw ZSwgaW50ZXJuYWwpCi1SRVRVUk5TIGludGVybmFsCi1BUyAnTU9EVUxFX1BBVEhOQU1FJwotTEFO R1VBR0UgQyBTVFJJQ1Q7Ci08L3Byb2dyYW1saXN0aW5nPgotCi0gICAgICAgIEFuZCB0aGUgbWF0 Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhlbiBmb2xsb3cgdGhpcyBza2VsZXRv bjoKLQotPHByb2dyYW1saXN0aW5nPgotUEdfRlVOQ1RJT05fSU5GT19WMShteV9zYW1lKTsKLQot RGF0dW0KLW15X3NhbWUoUEdfRlVOQ1RJT05fQVJHUykKLXsKLSAgICBwcmVmaXhfcmFuZ2UgKnYx ID0gUEdfR0VUQVJHX1BSRUZJWF9SQU5HRV9QKDApOwotICAgIHByZWZpeF9yYW5nZSAqdjIgPSBQ R19HRVRBUkdfUFJFRklYX1JBTkdFX1AoMSk7Ci0gICAgYm9vbCAgICAgICAqcmVzdWx0ID0gKGJv b2wgKikgUEdfR0VUQVJHX1BPSU5URVIoMik7Ci0KLSAgICAqcmVzdWx0ID0gbXlfZXEodjEsIHYy KTsKLSAgICBQR19SRVRVUk5fUE9JTlRFUihyZXN1bHQpOwotfQotPC9wcm9ncmFtbGlzdGluZz4K LQotICAgICAgICBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1 bmN0aW9uPiBmdW5jdGlvbiBkb2Vzbid0Ci0gICAgICAgIGp1c3QgcmV0dXJuIGEgQm9vbGVhbiBy ZXN1bHQ7IGluc3RlYWQgaXQgaGFzIHRvIHN0b3JlIHRoZSBmbGFnCi0gICAgICAgIGF0IHRoZSBs b2NhdGlvbiBpbmRpY2F0ZWQgYnkgdGhlIHRoaXJkIGFyZ3VtZW50LiAgVGhlIHJldHVybgotICAg ICAgICB2YWx1ZSBwZXIgc2UgaXMgaWdub3JlZCwgdGhvdWdoIGl0J3MgY29udmVudGlvbmFsIHRv IHBhc3MgYmFjayB0aGUKLSAgICAgICAgYWRkcmVzcyBvZiB0aGF0IGFyZ3VtZW50LgotICAgICAg PC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0gICAgPHZh cmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGZ1bmN0aW9uPmRpc3RhbmNlPC9mdW5jdGlvbj48L3Rl cm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgIEdpdmVuIGFuIGluZGV4 IGVudHJ5IDxsaXRlcmFsPnA8L2xpdGVyYWw+IGFuZCBhIHF1ZXJ5IHZhbHVlIDxsaXRlcmFsPnE8 L2xpdGVyYWw+LAotICAgICAgIHRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyB0aGUgaW5kZXggZW50 cnkncwotICAgICAgIDxxdW90ZT5kaXN0YW5jZTwvcXVvdGU+IGZyb20gdGhlIHF1ZXJ5IHZhbHVl LiAgVGhpcyBmdW5jdGlvbiBtdXN0IGJlCi0gICAgICAgc3VwcGxpZWQgaWYgdGhlIG9wZXJhdG9y IGNsYXNzIGNvbnRhaW5zIGFueSBvcmRlcmluZyBvcGVyYXRvcnMuCi0gICAgICAgQSBxdWVyeSB1 c2luZyB0aGUgb3JkZXJpbmcgb3BlcmF0b3Igd2lsbCBiZSBpbXBsZW1lbnRlZCBieSByZXR1cm5p bmcKLSAgICAgICBpbmRleCBlbnRyaWVzIHdpdGggdGhlIHNtYWxsZXN0IDxxdW90ZT5kaXN0YW5j ZTwvcXVvdGU+IHZhbHVlcyBmaXJzdCwKLSAgICAgICBzbyB0aGUgcmVzdWx0cyBtdXN0IGJlIGNv bnNpc3RlbnQgd2l0aCB0aGUgb3BlcmF0b3IncyBzZW1hbnRpY3MuCi0gICAgICAgRm9yIGEgbGVh ZiBpbmRleCBlbnRyeSB0aGUgcmVzdWx0IGp1c3QgcmVwcmVzZW50cyB0aGUgZGlzdGFuY2UgdG8K LSAgICAgICB0aGUgaW5kZXggZW50cnk7IGZvciBhbiBpbnRlcm5hbCB0cmVlIG5vZGUsIHRoZSBy ZXN1bHQgbXVzdCBiZSB0aGUKLSAgICAgICBzbWFsbGVzdCBkaXN0YW5jZSB0aGF0IGFueSBjaGls ZCBlbnRyeSBjb3VsZCBoYXZlLgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAg ICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9u IG11c3QgbG9vayBsaWtlIHRoaXM6Ci0KLTxwcm9ncmFtbGlzdGluZz4KLUNSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIG15X2Rpc3RhbmNlKGludGVybmFsLCBkYXRhX3R5cGUsIHNtYWxsaW50LCBv aWQsIGludGVybmFsKQotUkVUVVJOUyBmbG9hdDgKLUFTICdNT0RVTEVfUEFUSE5BTUUnCi1MQU5H VUFHRSBDIFNUUklDVDsKLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0KLSAgICAgICAgQW5kIHRoZSBtYXRj aGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIHNrZWxldG9u OgotCi08cHJvZ3JhbWxpc3Rpbmc+Ci1QR19GVU5DVElPTl9JTkZPX1YxKG15X2Rpc3RhbmNlKTsK LQotRGF0dW0KLW15X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0gICAgR0lTVEVOVFJZ ICAqZW50cnkgPSAoR0lTVEVOVFJZICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwotICAgIGRhdGFf dHlwZSAgKnF1ZXJ5ID0gUEdfR0VUQVJHX0RBVEFfVFlQRV9QKDEpOwotICAgIFN0cmF0ZWd5TnVt YmVyIHN0cmF0ZWd5ID0gKFN0cmF0ZWd5TnVtYmVyKSBQR19HRVRBUkdfVUlOVDE2KDIpOwotICAg IC8qIE9pZCBzdWJ0eXBlID0gUEdfR0VUQVJHX09JRCgzKTsgKi8KLSAgICAvKiBib29sICpyZWNo ZWNrID0gKGJvb2wgKikgUEdfR0VUQVJHX1BPSU5URVIoNCk7ICovCi0gICAgZGF0YV90eXBlICAq a2V5ID0gRGF0dW1HZXREYXRhVHlwZShlbnRyeS0mZ3Q7a2V5KTsKLSAgICBkb3VibGUgICAgICBy ZXR2YWw7Ci0KLSAgICAvKgotICAgICAqIGRldGVybWluZSByZXR1cm4gdmFsdWUgYXMgYSBmdW5j dGlvbiBvZiBzdHJhdGVneSwga2V5IGFuZCBxdWVyeS4KLSAgICAgKi8KLQotICAgIFBHX1JFVFVS Tl9GTE9BVDgocmV0dmFsKTsKLX0KLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0KLSAgICAgICBUaGUgYXJn dW1lbnRzIHRvIHRoZSA8ZnVuY3Rpb24+ZGlzdGFuY2U8L2Z1bmN0aW9uPiBmdW5jdGlvbiBhcmUg aWRlbnRpY2FsIHRvCi0gICAgICAgdGhlIGFyZ3VtZW50cyBvZiB0aGUgPGZ1bmN0aW9uPmNvbnNp c3RlbnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+ Ci0gICAgICAgU29tZSBhcHByb3hpbWF0aW9uIGlzIGFsbG93ZWQgd2hlbiBkZXRlcm1pbmluZyB0 aGUgZGlzdGFuY2UsIHNvIGxvbmcKLSAgICAgICBhcyB0aGUgcmVzdWx0IGlzIG5ldmVyIGdyZWF0 ZXIgdGhhbiB0aGUgZW50cnkncyBhY3R1YWwgZGlzdGFuY2UuIFRodXMsCi0gICAgICAgZm9yIGV4 YW1wbGUsIGRpc3RhbmNlIHRvIGEgYm91bmRpbmcgYm94IGlzIHVzdWFsbHkgc3VmZmljaWVudCBp bgotICAgICAgIGdlb21ldHJpYyBhcHBsaWNhdGlvbnMuICBGb3IgYW4gaW50ZXJuYWwgdHJlZSBu b2RlLCB0aGUgZGlzdGFuY2UKLSAgICAgICByZXR1cm5lZCBtdXN0IG5vdCBiZSBncmVhdGVyIHRo YW4gdGhlIGRpc3RhbmNlIHRvIGFueSBvZiB0aGUgY2hpbGQKLSAgICAgICBub2Rlcy4gSWYgdGhl IHJldHVybmVkIGRpc3RhbmNlIGlzIG5vdCBleGFjdCwgdGhlIGZ1bmN0aW9uIG11c3Qgc2V0Ci0g ICAgICAgPGxpdGVyYWw+KnJlY2hlY2s8L2xpdGVyYWw+IHRvIHRydWUuIChUaGlzIGlzIG5vdCBu ZWNlc3NhcnkgZm9yIGludGVybmFsIHRyZWUKLSAgICAgICBub2RlczsgZm9yIHRoZW0sIHRoZSBj YWxjdWxhdGlvbiBpcyBhbHdheXMgYXNzdW1lZCB0byBiZSBpbmV4YWN0LikgSW4KLSAgICAgICB0 aGlzIGNhc2UgdGhlIGV4ZWN1dG9yIHdpbGwgY2FsY3VsYXRlIHRoZSBhY2N1cmF0ZSBkaXN0YW5j ZSBhZnRlcgotICAgICAgIGZldGNoaW5nIHRoZSB0dXBsZSBmcm9tIHRoZSBoZWFwLCBhbmQgcmVv cmRlciB0aGUgdHVwbGVzIGlmIG5lY2Vzc2FyeS4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBh cmE+Ci0gICAgICAgSWYgdGhlIGRpc3RhbmNlIGZ1bmN0aW9uIHJldHVybnMgPGxpdGVyYWw+KnJl Y2hlY2sgPSB0cnVlPC9saXRlcmFsPiBmb3IgYW55Ci0gICAgICAgbGVhZiBub2RlLCB0aGUgb3Jp Z2luYWwgb3JkZXJpbmcgb3BlcmF0b3IncyByZXR1cm4gdHlwZSBtdXN0Ci0gICAgICAgYmUgPHR5 cGU+ZmxvYXQ4PC90eXBlPiBvciA8dHlwZT5mbG9hdDQ8L3R5cGU+LCBhbmQgdGhlIGRpc3RhbmNl IGZ1bmN0aW9uJ3MKLSAgICAgICByZXN1bHQgdmFsdWVzIG11c3QgYmUgY29tcGFyYWJsZSB0byB0 aG9zZSBvZiB0aGUgb3JpZ2luYWwgb3JkZXJpbmcKLSAgICAgICBvcGVyYXRvciwgc2luY2UgdGhl IGV4ZWN1dG9yIHdpbGwgc29ydCB1c2luZyBib3RoIGRpc3RhbmNlIGZ1bmN0aW9uCi0gICAgICAg cmVzdWx0cyBhbmQgcmVjYWxjdWxhdGVkIG9yZGVyaW5nLW9wZXJhdG9yIHJlc3VsdHMuICBPdGhl cndpc2UsIHRoZQotICAgICAgIGRpc3RhbmNlIGZ1bmN0aW9uJ3MgcmVzdWx0IHZhbHVlcyBjYW4g YmUgYW55IGZpbml0ZSA8dHlwZT5mbG9hdDg8L3R5cGU+Ci0gICAgICAgdmFsdWVzLCBzbyBsb25n IGFzIHRoZSByZWxhdGl2ZSBvcmRlciBvZiB0aGUgcmVzdWx0IHZhbHVlcyBtYXRjaGVzIHRoZQot ICAgICAgIG9yZGVyIHJldHVybmVkIGJ5IHRoZSBvcmRlcmluZyBvcGVyYXRvci4gIChJbmZpbml0 eSBhbmQgbWludXMgaW5maW5pdHkKLSAgICAgICBhcmUgdXNlZCBpbnRlcm5hbGx5IHRvIGhhbmRs ZSBjYXNlcyBzdWNoIGFzIG51bGxzLCBzbyBpdCBpcyBub3QKLSAgICAgICByZWNvbW1lbmRlZCB0 aGF0IDxmdW5jdGlvbj5kaXN0YW5jZTwvZnVuY3Rpb24+IGZ1bmN0aW9ucyByZXR1cm4gdGhlc2Ug dmFsdWVzLikKLSAgICAgIDwvcGFyYT4KLQotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlz dGVudHJ5PgotCi0gICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGZ1bmN0aW9uPmZldGNo PC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAg IENvbnZlcnRzIHRoZSBjb21wcmVzc2VkIGluZGV4IHJlcHJlc2VudGF0aW9uIG9mIGEgZGF0YSBp dGVtIGludG8gdGhlCi0gICAgICAgb3JpZ2luYWwgZGF0YSB0eXBlLCBmb3IgaW5kZXgtb25seSBz Y2Fucy4gVGhlIHJldHVybmVkIGRhdGEgbXVzdCBiZSBhbgotICAgICAgIGV4YWN0LCBub24tbG9z c3kgY29weSBvZiB0aGUgb3JpZ2luYWxseSBpbmRleGVkIHZhbHVlLgotICAgICAgPC9wYXJhPgot Ci0gICAgICA8cGFyYT4KLSAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFy YXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtlIHRoaXM6Ci0KLTxwcm9ncmFtbGlz dGluZz4KLUNSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X2ZldGNoKGludGVybmFsKQotUkVU VVJOUyBpbnRlcm5hbAotQVMgJ01PRFVMRV9QQVRITkFNRScKLUxBTkdVQUdFIEMgU1RSSUNUOwot PC9wcm9ncmFtbGlzdGluZz4KLQotICAgICAgICBUaGUgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRv IGEgPHN0cnVjdG5hbWU+R0lTVEVOVFJZPC9zdHJ1Y3RuYW1lPiBzdHJ1Y3QuIE9uCi0gICAgICAg IGVudHJ5LCBpdHMgPHN0cnVjdGZpZWxkPmtleTwvc3RydWN0ZmllbGQ+IGZpZWxkIGNvbnRhaW5z IGEgbm9uLU5VTEwgbGVhZiBkYXR1bSBpbgotICAgICAgICBjb21wcmVzc2VkIGZvcm0uIFRoZSBy ZXR1cm4gdmFsdWUgaXMgYW5vdGhlciA8c3RydWN0bmFtZT5HSVNURU5UUlk8L3N0cnVjdG5hbWU+ Ci0gICAgICAgIHN0cnVjdCwgd2hvc2UgPHN0cnVjdGZpZWxkPmtleTwvc3RydWN0ZmllbGQ+IGZp ZWxkIGNvbnRhaW5zIHRoZSBzYW1lIGRhdHVtIGluIGl0cwotICAgICAgICBvcmlnaW5hbCwgdW5j b21wcmVzc2VkIGZvcm0uIElmIHRoZSBvcGNsYXNzJ3MgY29tcHJlc3MgZnVuY3Rpb24gZG9lcwot ICAgICAgICBub3RoaW5nIGZvciBsZWFmIGVudHJpZXMsIHRoZSA8ZnVuY3Rpb24+ZmV0Y2g8L2Z1 bmN0aW9uPiBtZXRob2QgY2FuIHJldHVybiB0aGUKLSAgICAgICAgYXJndW1lbnQgYXMtaXMuICBP ciwgaWYgdGhlIG9wY2xhc3MgZG9lcyBub3QgaGF2ZSBhIGNvbXByZXNzIGZ1bmN0aW9uLAotICAg ICAgICB0aGUgPGZ1bmN0aW9uPmZldGNoPC9mdW5jdGlvbj4gbWV0aG9kIGNhbiBiZSBvbWl0dGVk IGFzIHdlbGwsIHNpbmNlIGl0IHdvdWxkCi0gICAgICAgIG5lY2Vzc2FyaWx5IGJlIGEgbm8tb3Au Ci0gICAgICAgPC9wYXJhPgotCi0gICAgICAgPHBhcmE+Ci0gICAgICAgIFRoZSBtYXRjaGluZyBj b2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIHNrZWxldG9uOgotCi08 cHJvZ3JhbWxpc3Rpbmc+Ci1QR19GVU5DVElPTl9JTkZPX1YxKG15X2ZldGNoKTsKLQotRGF0dW0K LW15X2ZldGNoKFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0gICAgR0lTVEVOVFJZICAqZW50cnkgPSAo R0lTVEVOVFJZICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwotICAgIGlucHV0X2RhdGFfdHlwZSAq aW4gPSBEYXR1bUdldFBvaW50ZXIoZW50cnktPmtleSk7Ci0gICAgZmV0Y2hlZF9kYXRhX3R5cGUg KmZldGNoZWRfZGF0YTsKLSAgICBHSVNURU5UUlkgICpyZXR2YWw7Ci0KLSAgICByZXR2YWwgPSBw YWxsb2Moc2l6ZW9mKEdJU1RFTlRSWSkpOwotICAgIGZldGNoZWRfZGF0YSA9IHBhbGxvYyhzaXpl b2YoZmV0Y2hlZF9kYXRhX3R5cGUpKTsKLQotICAgIC8qCi0gICAgICogQ29udmVydCAnZmV0Y2hl ZF9kYXRhJyBpbnRvIHRoZSBhIERhdHVtIG9mIHRoZSBvcmlnaW5hbCBkYXRhdHlwZS4KLSAgICAg Ki8KLQotICAgIC8qIGZpbGwgKnJldHZhbCBmcm9tIGZldGNoZWRfZGF0YS4gKi8KLSAgICBnaXN0 ZW50cnlpbml0KCpyZXR2YWwsIFBvaW50ZXJHZXREYXR1bShjb252ZXJ0ZWRfZGF0dW0pLAotICAg ICAgICAgICAgICAgICAgZW50cnktPnJlbCwgZW50cnktPnBhZ2UsIGVudHJ5LT5vZmZzZXQsIEZB TFNFKTsKLQotICAgIFBHX1JFVFVSTl9QT0lOVEVSKHJldHZhbCk7Ci19Ci08L3Byb2dyYW1saXN0 aW5nPgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAgICBJZiB0aGUgY29tcHJl c3MgbWV0aG9kIGlzIGxvc3N5IGZvciBsZWFmIGVudHJpZXMsIHRoZSBvcGVyYXRvciBjbGFzcwot ICAgICAgIGNhbm5vdCBzdXBwb3J0IGluZGV4LW9ubHkgc2NhbnMsIGFuZCBtdXN0IG5vdCBkZWZp bmUKLSAgICAgICBhIDxmdW5jdGlvbj5mZXRjaDwvZnVuY3Rpb24+IGZ1bmN0aW9uLgotICAgICAg PC9wYXJhPgotCi0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICA8 dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48ZnVuY3Rpb24+b3B0aW9uczwvZnVuY3Rpb24+PC90 ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBBbGxvd3MgZGVmaW5p dGlvbiBvZiB1c2VyLXZpc2libGUgcGFyYW1ldGVycyB0aGF0IGNvbnRyb2wgb3BlcmF0b3IKLSAg ICAgICBjbGFzcyBiZWhhdmlvci4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAg ICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlv biBtdXN0IGxvb2sgbGlrZSB0aGlzOgotCi08cHJvZ3JhbWxpc3Rpbmc+Ci1DUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBteV9vcHRpb25zKGludGVybmFsKQotUkVUVVJOUyB2b2lkCi1BUyAnTU9E VUxFX1BBVEhOQU1FJwotTEFOR1VBR0UgQyBTVFJJQ1Q7Ci08L3Byb2dyYW1saXN0aW5nPgotICAg ICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAgICBUaGUgZnVuY3Rpb24gaXMgcGFzc2Vk IGEgcG9pbnRlciB0byBhIDxzdHJ1Y3RuYW1lPmxvY2FsX3JlbG9wdHM8L3N0cnVjdG5hbWU+Ci0g ICAgICAgc3RydWN0LCB3aGljaCBuZWVkcyB0byBiZSBmaWxsZWQgd2l0aCBhIHNldCBvZiBvcGVy YXRvciBjbGFzcwotICAgICAgIHNwZWNpZmljIG9wdGlvbnMuICBUaGUgb3B0aW9ucyBjYW4gYmUg YWNjZXNzZWQgZnJvbSBvdGhlciBzdXBwb3J0Ci0gICAgICAgZnVuY3Rpb25zIHVzaW5nIHRoZSA8 bGl0ZXJhbD5QR19IQVNfT1BDTEFTU19PUFRJT05TKCk8L2xpdGVyYWw+IGFuZAotICAgICAgIDxs aXRlcmFsPlBHX0dFVF9PUENMQVNTX09QVElPTlMoKTwvbGl0ZXJhbD4gbWFjcm9zLgotICAgICAg PC9wYXJhPgotCi0gICAgICAgPHBhcmE+Ci0gICAgICAgIEFuIGV4YW1wbGUgaW1wbGVtZW50YXRp b24gb2YgbXlfb3B0aW9ucygpIGFuZCBwYXJhbWV0ZXJzIHVzZQotICAgICAgICBmcm9tIG90aGVy IHN1cHBvcnQgZnVuY3Rpb25zIGFyZSBnaXZlbiBiZWxvdzoKLQotPHByb2dyYW1saXN0aW5nPgot dHlwZWRlZiBlbnVtIE15RW51bVR5cGUKLXsKLSAgICBNWV9FTlVNX09OLAotICAgIE1ZX0VOVU1f T0ZGLAotICAgIE1ZX0VOVU1fQVVUTwotfSBNeUVudW1UeXBlOwotCi10eXBlZGVmIHN0cnVjdAot ewotICAgIGludDMyICAgdmxfbGVuXzsgICAgLyogdmFybGVuYSBoZWFkZXIgKGRvIG5vdCB0b3Vj aCBkaXJlY3RseSEpICovCi0gICAgaW50ICAgICBpbnRfcGFyYW07ICAvKiBpbnRlZ2VyIHBhcmFt ZXRlciAqLwotICAgIGRvdWJsZSAgcmVhbF9wYXJhbTsgLyogcmVhbCBwYXJhbWV0ZXIgKi8KLSAg ICBNeUVudW1UeXBlIGVudW1fcGFyYW07IC8qIGVudW0gcGFyYW1ldGVyICovCi0gICAgaW50ICAg ICBzdHJfcGFyYW07ICAvKiBzdHJpbmcgcGFyYW1ldGVyICovCi19IE15T3B0aW9uc1N0cnVjdDsK LQotLyogU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGVudW0gdmFsdWVzICovCi1zdGF0aWMgcmVs b3B0X2VudW1fZWx0X2RlZiBteUVudW1WYWx1ZXNbXSA9Ci17Ci0gICAgeyJvbiIsIE1ZX0VOVU1f T059LAotICAgIHsib2ZmIiwgTVlfRU5VTV9PRkZ9LAotICAgIHsiYXV0byIsIE1ZX0VOVU1fQVVU T30sCi0gICAgeyhjb25zdCBjaGFyICopIE5VTEx9ICAgLyogbGlzdCB0ZXJtaW5hdG9yICovCi19 OwotCi1zdGF0aWMgY2hhciAqc3RyX3BhcmFtX2RlZmF1bHQgPSAiZGVmYXVsdCI7Ci0KLS8qCi0g KiBTYW1wbGUgdmFsaWRhdG9yOiBjaGVja3MgdGhhdCBzdHJpbmcgaXMgbm90IGxvbmdlciB0aGFu IDggYnl0ZXMuCi0gKi8KLXN0YXRpYyB2b2lkCi12YWxpZGF0ZV9teV9zdHJpbmdfcmVsb3B0KGNv bnN0IGNoYXIgKnZhbHVlKQotewotICAgIGlmIChzdHJsZW4odmFsdWUpID4gOCkKLSAgICAgICAg ZXJlcG9ydChFUlJPUiwKLSAgICAgICAgICAgICAgICAoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKLSAgICAgICAgICAgICAgICAgZXJybXNnKCJzdHJfcGFyYW0gbXVz dCBiZSBhdCBtb3N0IDggYnl0ZXMiKSkpOwotfQotCi0vKgotICogU2FtcGxlIGZpbGxlcjogc3dp dGNoZXMgY2hhcmFjdGVycyB0byBsb3dlciBjYXNlLgotICovCi1zdGF0aWMgU2l6ZQotZmlsbF9t eV9zdHJpbmdfcmVsb3B0KGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpwdHIpCi17Ci0gICAgY2hh ciAgICp0bXAgPSBzdHJfdG9sb3dlcih2YWx1ZSwgc3RybGVuKHZhbHVlKSwgREVGQVVMVF9DT0xM QVRJT05fT0lEKTsKLSAgICBpbnQgICAgIGxlbiA9IHN0cmxlbih0bXApOwotCi0gICAgaWYgKHB0 cikKLSAgICAgICAgc3RyY3B5KChjaGFyICopIHB0ciwgdG1wKTsKLQotICAgIHBmcmVlKHRtcCk7 Ci0gICAgcmV0dXJuIGxlbiArIDE7Ci19Ci0KLVBHX0ZVTkNUSU9OX0lORk9fVjEobXlfb3B0aW9u cyk7Ci0KLURhdHVtCi1teV9vcHRpb25zKFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0gICAgbG9jYWxf cmVsb3B0cyAqcmVsb3B0cyA9IChsb2NhbF9yZWxvcHRzICopIFBHX0dFVEFSR19QT0lOVEVSKDAp OwotCi0gICAgaW5pdF9sb2NhbF9yZWxvcHRpb25zKHJlbG9wdHMsIHNpemVvZihNeU9wdGlvbnNT dHJ1Y3QpKTsKLSAgICBhZGRfbG9jYWxfaW50X3JlbG9wdGlvbihyZWxvcHRzLCAiaW50X3BhcmFt IiwgImludGVnZXIgcGFyYW1ldGVyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAs IDAsIDEwMDAwMDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoTXlPcHRp b25zU3RydWN0LCBpbnRfcGFyYW0pKTsKLSAgICBhZGRfbG9jYWxfcmVhbF9yZWxvcHRpb24ocmVs b3B0cywgInJlYWxfcGFyYW0iLCAicmVhbCBwYXJhbWV0ZXIiLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxLjAsIDAuMCwgMTAwMDAwMC4wLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvZmZzZXRvZihNeU9wdGlvbnNTdHJ1Y3QsIHJlYWxfcGFyYW0pKTsKLSAgICBhZGRfbG9j YWxfZW51bV9yZWxvcHRpb24ocmVsb3B0cywgImVudW1fcGFyYW0iLCAiZW51bSBwYXJhbWV0ZXIi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteUVudW1WYWx1ZXMsIE1ZX0VOVU1fT04s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWYWxpZCB2YWx1ZXMgYXJlOiBcIm9uXCIs IFwib2ZmXCIgYW5kIFwiYXV0b1wiLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9m ZnNldG9mKE15T3B0aW9uc1N0cnVjdCwgZW51bV9wYXJhbSkpOwotICAgIGFkZF9sb2NhbF9zdHJp bmdfcmVsb3B0aW9uKHJlbG9wdHMsICJzdHJfcGFyYW0iLCAic3RyaW5nIHBhcmFtZXRlciIsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyX3BhcmFtX2RlZmF1bHQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmFtcDt2YWxpZGF0ZV9teV9zdHJpbmdfcmVsb3B0LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbXA7ZmlsbF9teV9zdHJpbmdfcmVsb3B0 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKE15T3B0aW9uc1N0cnVj dCwgc3RyX3BhcmFtKSk7Ci0KLSAgICBQR19SRVRVUk5fVk9JRCgpOwotfQotCi1QR19GVU5DVElP Tl9JTkZPX1YxKG15X2NvbXByZXNzKTsKLQotRGF0dW0KLW15X2NvbXByZXNzKFBHX0ZVTkNUSU9O X0FSR1MpCi17Ci0gICAgaW50ICAgICBpbnRfcGFyYW0gPSAxMDA7Ci0gICAgZG91YmxlICByZWFs X3BhcmFtID0gMS4wOwotICAgIE15RW51bVR5cGUgZW51bV9wYXJhbSA9IE1ZX0VOVU1fT047Ci0g ICAgY2hhciAgICpzdHJfcGFyYW0gPSBzdHJfcGFyYW1fZGVmYXVsdDsKLQotICAgIC8qCi0gICAg ICogTm9ybWFsbHksIHdoZW4gb3BjbGFzcyBjb250YWlucyAnb3B0aW9ucycgbWV0aG9kLCB0aGVu IG9wdGlvbnMgYXJlIGFsd2F5cwotICAgICAqIHBhc3NlZCB0byBzdXBwb3J0IGZ1bmN0aW9ucy4g IEhvd2V2ZXIsIGlmIHlvdSBhZGQgJ29wdGlvbnMnIG1ldGhvZCB0bwotICAgICAqIGV4aXN0aW5n IG9wY2xhc3MsIHByZXZpb3VzbHkgZGVmaW5lZCBpbmRleGVzIGhhdmUgbm8gb3B0aW9ucywgc28g dGhlCi0gICAgICogY2hlY2sgaXMgcmVxdWlyZWQuCi0gICAgICovCi0gICAgaWYgKFBHX0hBU19P UENMQVNTX09QVElPTlMoKSkKLSAgICB7Ci0gICAgICAgIE15T3B0aW9uc1N0cnVjdCAqb3B0aW9u cyA9IChNeU9wdGlvbnNTdHJ1Y3QgKikgUEdfR0VUX09QQ0xBU1NfT1BUSU9OUygpOwotCi0gICAg ICAgIGludF9wYXJhbSA9IG9wdGlvbnMtPmludF9wYXJhbTsKLSAgICAgICAgcmVhbF9wYXJhbSA9 IG9wdGlvbnMtPnJlYWxfcGFyYW07Ci0gICAgICAgIGVudW1fcGFyYW0gPSBvcHRpb25zLT5lbnVt X3BhcmFtOwotICAgICAgICBzdHJfcGFyYW0gPSBHRVRfU1RSSU5HX1JFTE9QVElPTihvcHRpb25z LCBzdHJfcGFyYW0pOwotICAgIH0KLQotICAgIC8qIHRoZSByZXN0IGltcGxlbWVudGF0aW9uIG9m IHN1cHBvcnQgZnVuY3Rpb24gKi8KLX0KLQotPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgIDwvcGFy YT4KLQotICAgICAgPHBhcmE+Ci0gICAgICAgU2luY2UgdGhlIHJlcHJlc2VudGF0aW9uIG9mIHRo ZSBrZXkgaW4gPGFjcm9ueW0+R2lTVDwvYWNyb255bT4gaXMKLSAgICAgICBmbGV4aWJsZSwgaXQg bWF5IGRlcGVuZCBvbiB1c2VyLXNwZWNpZmllZCBwYXJhbWV0ZXJzLiAgRm9yIGluc3RhbmNlLAot ICAgICAgIHRoZSBsZW5ndGggb2Yga2V5IHNpZ25hdHVyZSBtYXkgYmUgc3BlY2lmaWVkLiAgU2Vl Ci0gICAgICAgPGxpdGVyYWw+Z3RzdmVjdG9yX29wdGlvbnMoKTwvbGl0ZXJhbD4gZm9yIGV4YW1w bGUuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+ Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48ZnVuY3Rpb24+c29ydHN1cHBvcnQ8 L2Z1bmN0aW9uPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAg UmV0dXJucyBhIGNvbXBhcmF0b3IgZnVuY3Rpb24gdG8gc29ydCBkYXRhIGluIGEgd2F5IHRoYXQg cHJlc2VydmVzCi0gICAgICAgbG9jYWxpdHkuIEl0IGlzIHVzZWQgYnkgPGNvbW1hbmQ+Q1JFQVRF IElOREVYPC9jb21tYW5kPiBhbmQKLSAgICAgICA8Y29tbWFuZD5SRUlOREVYPC9jb21tYW5kPiBj b21tYW5kcy4gVGhlIHF1YWxpdHkgb2YgdGhlIGNyZWF0ZWQgaW5kZXgKLSAgICAgICBkZXBlbmRz IG9uIGhvdyB3ZWxsIHRoZSBzb3J0IG9yZGVyIGRldGVybWluZWQgYnkgdGhlIGNvbXBhcmF0b3Ig ZnVuY3Rpb24KLSAgICAgICBwcmVzZXJ2ZXMgbG9jYWxpdHkgb2YgdGhlIGlucHV0cy4KLSAgICAg IDwvcGFyYT4KLSAgICAgIDxwYXJhPgotICAgICAgIFRoZSA8ZnVuY3Rpb24+c29ydHN1cHBvcnQ8 L2Z1bmN0aW9uPiBtZXRob2QgaXMgb3B0aW9uYWwuIElmIGl0IGlzIG5vdAotICAgICAgIHByb3Zp ZGVkLCA8Y29tbWFuZD5DUkVBVEUgSU5ERVg8L2NvbW1hbmQ+IGJ1aWxkcyB0aGUgaW5kZXggYnkg aW5zZXJ0aW5nCi0gICAgICAgZWFjaCB0dXBsZSB0byB0aGUgdHJlZSB1c2luZyB0aGUgPGZ1bmN0 aW9uPnBlbmFsdHk8L2Z1bmN0aW9uPiBhbmQKLSAgICAgICA8ZnVuY3Rpb24+cGlja3NwbGl0PC9m dW5jdGlvbj4gZnVuY3Rpb25zLCB3aGljaCBpcyBtdWNoIHNsb3dlci4KLSAgICAgIDwvcGFyYT4K LQotICAgICAgPHBhcmE+Ci0gICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFy YXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtlCi0gICAgICAgdGhpczoKLQotPHBy b2dyYW1saXN0aW5nPgotQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gbXlfc29ydHN1cHBvcnQo aW50ZXJuYWwpCi1SRVRVUk5TIHZvaWQKLUFTICdNT0RVTEVfUEFUSE5BTUUnCi1MQU5HVUFHRSBD IFNUUklDVDsKLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0KLSAgICAgICBUaGUgYXJndW1lbnQgaXMgYSBw b2ludGVyIHRvIGEgPHN0cnVjdG5hbWU+U29ydFN1cHBvcnQ8L3N0cnVjdG5hbWU+Ci0gICAgICAg c3RydWN0LiBBdCBhIG1pbmltdW0sIHRoZSBmdW5jdGlvbiBtdXN0IGZpbGwgaW4gaXRzIGNvbXBh cmF0b3IgZmllbGQuCi0gICAgICAgVGhlIGNvbXBhcmF0b3IgdGFrZXMgdGhyZWUgYXJndW1lbnRz OiB0d28gRGF0dW1zIHRvIGNvbXBhcmUsIGFuZAotICAgICAgIGEgcG9pbnRlciB0byB0aGUgPHN0 cnVjdG5hbWU+U29ydFN1cHBvcnQ8L3N0cnVjdG5hbWU+IHN0cnVjdC4gVGhlCi0gICAgICAgRGF0 dW1zIGFyZSB0aGUgdHdvIGluZGV4ZWQgdmFsdWVzIGluIHRoZSBmb3JtYXQgdGhhdCB0aGV5IGFy ZSBzdG9yZWQKLSAgICAgICBpbiB0aGUgaW5kZXg7IHRoYXQgaXMsIGluIHRoZSBmb3JtYXQgcmV0 dXJuZWQgYnkgdGhlCi0gICAgICAgPGZ1bmN0aW9uPmNvbXByZXNzPC9mdW5jdGlvbj4gbWV0aG9k LiBUaGUgZnVsbCBBUEkgaXMgZGVmaW5lZCBpbgotICAgICAgIDxmaWxlbmFtZT5zcmMvaW5jbHVk ZS91dGlscy9zb3J0c3VwcG9ydC5oPC9maWxlbmFtZT4uCi0gICAgICAgPC9wYXJhPgotCi0gICAg ICAgPHBhcmE+Ci0gICAgICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3Vs ZCB0aGVuIGZvbGxvdyB0aGlzIHNrZWxldG9uOgotCi08cHJvZ3JhbWxpc3Rpbmc+Ci1QR19GVU5D VElPTl9JTkZPX1YxKG15X3NvcnRzdXBwb3J0KTsKLQotc3RhdGljIGludAotbXlfZmFzdGNtcChE YXR1bSB4LCBEYXR1bSB5LCBTb3J0U3VwcG9ydCBzc3VwKQotewotICAvKiBlc3RhYmxpc2ggb3Jk ZXIgYmV0d2VlbiB4IGFuZCB5IGJ5IGNvbXB1dGluZyBzb21lIHNvcnRpbmcgdmFsdWUgeiAqLwot Ci0gIGludCB6MSA9IENvbXB1dGVTcGF0aWFsQ29kZSh4KTsKLSAgaW50IHoyID0gQ29tcHV0ZVNw YXRpYWxDb2RlKHkpOwotCi0gIHJldHVybiB6MSA9PSB6MiA/IDAgOiB6MSA+IHoyID8gMSA6IC0x OwotfQotCi1EYXR1bQotbXlfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykKLXsKLSAgU29y dFN1cHBvcnQgc3N1cCA9IChTb3J0U3VwcG9ydCkgUEdfR0VUQVJHX1BPSU5URVIoMCk7Ci0KLSAg c3N1cC0+Y29tcGFyYXRvciA9IG15X2Zhc3RjbXA7Ci0gIFBHX1JFVFVSTl9WT0lEKCk7Ci19Ci08 L3Byb2dyYW1saXN0aW5nPgotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwv dmFybGlzdGVudHJ5PgotCi0gICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGZ1bmN0aW9u PnN0cmF0bnVtPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJh PgotICAgICAgIEdpdmVuIGFuIDxsaXRlcmFsPlJUKlN0cmF0ZWd5TnVtYmVyPC9saXRlcmFsPiB2 YWx1ZSBmcm9tCi0gICAgICAgPGZpbGVuYW1lPnNyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51bS5o PC9maWxlbmFtZT4sIHJldHVybnMgYSBzdHJhdGVneQotICAgICAgIG51bWJlciB1c2VkIGJ5IHRo aXMgb3BlcmF0b3IgY2xhc3MgZm9yIG1hdGNoaW5nIGZ1bmN0aW9uYWxpdHkuICBUaGUKLSAgICAg ICBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIDxsaXRlcmFsPkludmFsaWRTdHJhdGVneTwvbGl0ZXJh bD4gaWYgdGhlCi0gICAgICAgb3BlcmF0b3IgY2xhc3MgaGFzIG5vIG1hdGNoaW5nIHN0cmF0ZWd5 LgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAgICBUaGlzIGlzIHVzZWQgZm9y IHRlbXBvcmFsIGluZGV4IGNvbnN0cmFpbnRzIChpLmUuLCA8bGl0ZXJhbD5QUklNQVJZCi0gICAg ICAgS0VZPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+VU5JUVVFPC9saXRlcmFsPikuICBJZiB0aGUg b3BlcmF0b3IgY2xhc3MKLSAgICAgICBwcm92aWRlcyB0aGlzIGZ1bmN0aW9uIGFuZCBpdCByZXR1 cm5zIHJlc3VsdHMgZm9yCi0gICAgICAgPGxpdGVyYWw+UlRFcXVhbFN0cmF0ZWd5TnVtYmVyPC9s aXRlcmFsPiwgaXQgY2FuIGJlIHVzZWQgaW4gdGhlCi0gICAgICAgbm9uLTxsaXRlcmFsPldJVEhP VVQgT1ZFUkxBUFM8L2xpdGVyYWw+IHBhcnQocykgb2YgYW4gaW5kZXggY29uc3RyYWludC4KLSAg ICAgICBJZiBpdCByZXR1cm5zIHJlc3VsdHMgZm9yIDxsaXRlcmFsPlJUT3ZlcmxhcFN0cmF0ZWd5 TnVtYmVyPC9saXRlcmFsPiwKLSAgICAgICB0aGUgb3BlcmF0b3IgY2xhc3MgY2FuIGJlIHVzZWQg aW4gdGhlIDxsaXRlcmFsPldJVEhPVVQKLSAgICAgICBPVkVSTEFQUzwvbGl0ZXJhbD4gcGFydCBv ZiBhbiBpbmRleCBjb25zdHJhaW50LgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAg ICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rp b24gbXVzdCBsb29rIGxpa2UKLSAgICAgICB0aGlzOgotCi08cHJvZ3JhbWxpc3Rpbmc+Ci1DUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBteV9zdHJhdG51bShpbnRlZ2VyKQotUkVUVVJOUyBpbnRl Z2VyCi1BUyAnTU9EVUxFX1BBVEhOQU1FJwotTEFOR1VBR0UgQyBTVFJJQ1Q7Ci08L3Byb2dyYW1s aXN0aW5nPgotICAgICAgPC9wYXJhPgotCi0gICAgICAgPHBhcmE+Ci0gICAgICAgIFRoZSBtYXRj aGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIHNrZWxldG9u OgotCi08cHJvZ3JhbWxpc3Rpbmc+Ci1QR19GVU5DVElPTl9JTkZPX1YxKG15X3N0cmF0bnVtKTsK LQotRGF0dW0KLW15X3N0cmF0bnVtKFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0gICAgU3RyYXRlZ3lO dW1iZXIgc3RyYXRlZ3kgPSAoU3RyYXRlZ3lOdW1iZXIpIFBHX0dFVEFSR19VSU5UMTYoMSk7Ci0g ICAgU3RyYXRlZ3lOdW1iZXIgcmV0ID0gSW52YWxpZFN0cmF0ZWd5OwotCi0gICAgc3dpdGNoIChz dHJhdGVneSkKLSAgICB7Ci0gICAgICAgIGNhc2UgUlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgotICAg ICAgICAgICAgcmV0ID0gQlRFcXVhbFN0cmF0ZWd5TnVtYmVyOwotICAgIH0KLQotICAgIFBHX1JF VFVSTl9VSU5UMTYocmV0KTsKLX0KLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0gICAgICA8L3BhcmE+Ci0K LSAgICAgIDxwYXJhPgotICAgICAgIE9uZSB0cmFuc2xhdGlvbiBmdW5jdGlvbiBpcyBwcm92aWRl ZCBieQotICAgICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT46Ci0gICAg ICAgPGxpdGVyYWw+Z2lzdF9zdHJhdG51bV9pZGVudGl0eTwvbGl0ZXJhbD4gaXMgZm9yIG9wZXJh dG9yIGNsYXNzZXMgdGhhdAotICAgICAgIGFscmVhZHkgdXNlIHRoZSA8bGl0ZXJhbD5SVCpTdHJh dGVneU51bWJlcjwvbGl0ZXJhbD4gY29uc3RhbnRzLiAgSXQKLSAgICAgICByZXR1cm5zIHdoYXRl dmVyIGlzIHBhc3NlZCB0byBpdC4gIFRoZSA8bGl0ZXJhbD5idHJlZV9naXN0PC9saXRlcmFsPgot ICAgICAgIGV4dGVuc2lvbiBkZWZpbmVzIGEgc2Vjb25kIHRyYW5zbGF0aW9uIGZ1bmN0aW9uLAot ICAgICAgIDxsaXRlcmFsPmdpc3Rfc3RyYXRudW1fYnRyZWU8L2xpdGVyYWw+LCBmb3Igb3BlcmF0 b3IgY2xhc3NlcyB0aGF0IHVzZQotICAgICAgIHRoZSA8bGl0ZXJhbD5CVCpTdHJhdGVneU51bWJl cjwvbGl0ZXJhbD4gY29uc3RhbnRzLgotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgot ICAgIDwvdmFybGlzdGVudHJ5PgotICA8L3ZhcmlhYmxlbGlzdD4KLQotICA8cGFyYT4KLSAgIEFs bCB0aGUgR2lTVCBzdXBwb3J0IG1ldGhvZHMgYXJlIG5vcm1hbGx5IGNhbGxlZCBpbiBzaG9ydC1s aXZlZCBtZW1vcnkKLSAgIGNvbnRleHRzOyB0aGF0IGlzLCA8dmFybmFtZT5DdXJyZW50TWVtb3J5 Q29udGV4dDwvdmFybmFtZT4gd2lsbCBnZXQgcmVzZXQgYWZ0ZXIKLSAgIGVhY2ggdHVwbGUgaXMg cHJvY2Vzc2VkLiAgSXQgaXMgdGhlcmVmb3JlIG5vdCB2ZXJ5IGltcG9ydGFudCB0byB3b3JyeSBh Ym91dAotICAgcGZyZWUnaW5nIGV2ZXJ5dGhpbmcgeW91IHBhbGxvYy4gIEhvd2V2ZXIsIGluIHNv bWUgY2FzZXMgaXQncyB1c2VmdWwgZm9yIGEKLSAgIHN1cHBvcnQgbWV0aG9kIHRvIGNhY2hlIGRh dGEgYWNyb3NzIHJlcGVhdGVkIGNhbGxzLiAgVG8gZG8gdGhhdCwgYWxsb2NhdGUKLSAgIHRoZSBs b25nZXItbGl2ZWQgZGF0YSBpbiA8bGl0ZXJhbD5mY2luZm8tJmd0O2ZsaW5mby0mZ3Q7Zm5fbWN4 dDwvbGl0ZXJhbD4sIGFuZAotICAga2VlcCBhIHBvaW50ZXIgdG8gaXQgaW4gPGxpdGVyYWw+ZmNp bmZvLSZndDtmbGluZm8tJmd0O2ZuX2V4dHJhPC9saXRlcmFsPi4gIFN1Y2gKLSAgIGRhdGEgd2ls bCBzdXJ2aXZlIGZvciB0aGUgbGlmZSBvZiB0aGUgaW5kZXggb3BlcmF0aW9uIChlLmcuLCBhIHNp bmdsZSBHaVNUCi0gICBpbmRleCBzY2FuLCBpbmRleCBidWlsZCwgb3IgaW5kZXggdHVwbGUgaW5z ZXJ0aW9uKS4gIEJlIGNhcmVmdWwgdG8gcGZyZWUKLSAgIHRoZSBwcmV2aW91cyB2YWx1ZSB3aGVu IHJlcGxhY2luZyBhIDxsaXRlcmFsPmZuX2V4dHJhPC9saXRlcmFsPiB2YWx1ZSwgb3IgdGhlIGxl YWsKLSAgIHdpbGwgYWNjdW11bGF0ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBvcGVyYXRpb24u Ci0gIDwvcGFyYT4KLQotPC9zZWN0MT4KLQotPHNlY3QxIGlkPSJnaXN0LWltcGxlbWVudGF0aW9u Ij4KLSA8dGl0bGU+SW1wbGVtZW50YXRpb248L3RpdGxlPgotCi0gPHNlY3QyIGlkPSJnaXN0LWJ1 ZmZlcmluZy1idWlsZCI+Ci0gIDx0aXRsZT5HaVNUIEluZGV4IEJ1aWxkIE1ldGhvZHM8L3RpdGxl PgotCi0gIDxwYXJhPgotICAgVGhlIHNpbXBsZXN0IHdheSB0byBidWlsZCBhIEdpU1QgaW5kZXgg aXMganVzdCB0byBpbnNlcnQgYWxsIHRoZSBlbnRyaWVzLAotICAgb25lIGJ5IG9uZS4gIFRoaXMg dGVuZHMgdG8gYmUgc2xvdyBmb3IgbGFyZ2UgaW5kZXhlcywgYmVjYXVzZSBpZiB0aGUKLSAgIGlu ZGV4IHR1cGxlcyBhcmUgc2NhdHRlcmVkIGFjcm9zcyB0aGUgaW5kZXggYW5kIHRoZSBpbmRleCBp cyBsYXJnZSBlbm91Z2gKLSAgIHRvIG5vdCBmaXQgaW4gY2FjaGUsIGEgbG90IG9mIHJhbmRvbSBJ L08gd2lsbCBiZQotICAgbmVlZGVkLiAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3Ru YW1lPiBzdXBwb3J0cyB0d28gYWx0ZXJuYXRpdmUKLSAgIG1ldGhvZHMgZm9yIGluaXRpYWwgYnVp bGQgb2YgYSBHaVNUIGluZGV4OiA8Zmlyc3R0ZXJtPnNvcnRlZDwvZmlyc3R0ZXJtPgotICAgYW5k IDxmaXJzdHRlcm0+YnVmZmVyZWQ8L2ZpcnN0dGVybT4gbW9kZXMuCi0gIDwvcGFyYT4KLQotICA8 cGFyYT4KLSAgIFRoZSBzb3J0ZWQgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGlmIGVhY2ggb2Yg dGhlIG9wY2xhc3NlcyB1c2VkIGJ5IHRoZQotICAgaW5kZXggcHJvdmlkZXMgYSA8ZnVuY3Rpb24+ c29ydHN1cHBvcnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbiwgYXMgZGVzY3JpYmVkCi0gICBpbiA8eHJl ZiBsaW5rZW5kPSJnaXN0LWV4dGVuc2liaWxpdHkiLz4uICBJZiB0aGV5IGRvLCB0aGlzIG1ldGhv ZCBpcwotICAgdXN1YWxseSB0aGUgYmVzdCwgc28gaXQgaXMgdXNlZCBieSBkZWZhdWx0LgotICA8 L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBUaGUgYnVmZmVyZWQgbWV0aG9kIHdvcmtzIGJ5IG5vdCBp bnNlcnRpbmcgdHVwbGVzIGRpcmVjdGx5IGludG8gdGhlIGluZGV4Ci0gICByaWdodCBhd2F5LiAg SXQgY2FuIGRyYW1hdGljYWxseSByZWR1Y2UgdGhlIGFtb3VudCBvZiByYW5kb20gSS9PIG5lZWRl ZAotICAgZm9yIG5vbi1vcmRlcmVkIGRhdGEgc2V0cy4gIEZvciB3ZWxsLW9yZGVyZWQgZGF0YSBz ZXRzIHRoZSBiZW5lZml0IGlzCi0gICBzbWFsbGVyIG9yIG5vbi1leGlzdGVudCwgYmVjYXVzZSBv bmx5IGEgc21hbGwgbnVtYmVyIG9mIHBhZ2VzIHJlY2VpdmUgbmV3Ci0gICB0dXBsZXMgYXQgYSB0 aW1lLCBhbmQgdGhvc2UgcGFnZXMgZml0IGluIGNhY2hlIGV2ZW4gaWYgdGhlIGluZGV4IGFzIGEK LSAgIHdob2xlIGRvZXMgbm90LgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBUaGUgYnVmZmVy ZWQgbWV0aG9kIG5lZWRzIHRvIGNhbGwgdGhlIDxmdW5jdGlvbj5wZW5hbHR5PC9mdW5jdGlvbj4K LSAgIGZ1bmN0aW9uIG1vcmUgb2Z0ZW4gdGhhbiB0aGUgc2ltcGxlIG1ldGhvZCBkb2VzLCB3aGlj aCBjb25zdW1lcyBzb21lCi0gICBleHRyYSBDUFUgcmVzb3VyY2VzLiBBbHNvLCB0aGUgYnVmZmVy cyBuZWVkIHRlbXBvcmFyeSBkaXNrIHNwYWNlLCB1cCB0bwotICAgdGhlIHNpemUgb2YgdGhlIHJl c3VsdGluZyBpbmRleC4gQnVmZmVyaW5nIGNhbiBhbHNvIGluZmx1ZW5jZSB0aGUgcXVhbGl0eQot ICAgb2YgdGhlIHJlc3VsdGluZyBpbmRleCwgaW4gYm90aCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUg ZGlyZWN0aW9ucy4gVGhhdAotICAgaW5mbHVlbmNlIGRlcGVuZHMgb24gdmFyaW91cyBmYWN0b3Jz LCBsaWtlIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIGlucHV0Ci0gICBkYXRhIGFuZCB0aGUgb3Bl cmF0b3IgY2xhc3MgaW1wbGVtZW50YXRpb24uCi0gIDwvcGFyYT4KLQotICA8cGFyYT4KLSAgIElm IHNvcnRpbmcgaXMgbm90IHBvc3NpYmxlLCB0aGVuIGJ5IGRlZmF1bHQgYSBHaVNUIGluZGV4IGJ1 aWxkIHN3aXRjaGVzCi0gICB0byB0aGUgYnVmZmVyaW5nIG1ldGhvZCB3aGVuIHRoZSBpbmRleCBz aXplIHJlYWNoZXMKLSAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1lZmZlY3RpdmUtY2FjaGUtc2l6ZSIv Pi4gIEJ1ZmZlcmluZyBjYW4gYmUgbWFudWFsbHkKLSAgIGZvcmNlZCBvciBwcmV2ZW50ZWQgYnkg dGhlIDxsaXRlcmFsPmJ1ZmZlcmluZzwvbGl0ZXJhbD4gcGFyYW1ldGVyIHRvIHRoZQotICAgQ1JF QVRFIElOREVYIGNvbW1hbmQuICBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyBnb29kIGZvciBtb3N0 IGNhc2VzLCBidXQKLSAgIHR1cm5pbmcgYnVmZmVyaW5nIG9mZiBtaWdodCBzcGVlZCB1cCB0aGUg YnVpbGQgc29tZXdoYXQgaWYgdGhlIGlucHV0IGRhdGEKLSAgIGlzIG9yZGVyZWQuCi0gIDwvcGFy YT4KLQotIDwvc2VjdDI+Ci08L3NlY3QxPgotCi08c2VjdDEgaWQ9Imdpc3QtZXhhbXBsZXMiPgot IDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+Ci0KLSA8cGFyYT4KLSAgVGhlIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gc291cmNlIGRpc3RyaWJ1dGlvbiBpbmNsdWRlcwotICBz ZXZlcmFsIGV4YW1wbGVzIG9mIGluZGV4IG1ldGhvZHMgaW1wbGVtZW50ZWQgdXNpbmcKLSAgPGFj cm9ueW0+R2lTVDwvYWNyb255bT4uICBUaGUgY29yZSBzeXN0ZW0gY3VycmVudGx5IHByb3ZpZGVz IHRleHQgc2VhcmNoCi0gIHN1cHBvcnQgKGluZGV4aW5nIGZvciA8dHlwZT50c3ZlY3RvcjwvdHlw ZT4gYW5kIDx0eXBlPnRzcXVlcnk8L3R5cGU+KSBhcyB3ZWxsIGFzCi0gIFItVHJlZSBlcXVpdmFs ZW50IGZ1bmN0aW9uYWxpdHkgZm9yIHNvbWUgb2YgdGhlIGJ1aWx0LWluIGdlb21ldHJpYyBkYXRh IHR5cGVzCi0gIChzZWUgPGZpbGVuYW1lPnNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3Rwcm9j LmM8L2ZpbGVuYW1lPikuICBUaGUgZm9sbG93aW5nCi0gIDxmaWxlbmFtZT5jb250cmliPC9maWxl bmFtZT4gbW9kdWxlcyBhbHNvIGNvbnRhaW4gPGFjcm9ueW0+R2lTVDwvYWNyb255bT4KLSAgb3Bl cmF0b3IgY2xhc3NlczoKLQotIDx2YXJpYWJsZWxpc3Q+Ci0gIDx2YXJsaXN0ZW50cnk+Ci0gICA8 dGVybT48ZmlsZW5hbWU+YnRyZWVfZ2lzdDwvZmlsZW5hbWU+PC90ZXJtPgotICAgPGxpc3RpdGVt PgotICAgIDxwYXJhPkItdHJlZSBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkgZm9yIHNldmVyYWwg ZGF0YSB0eXBlczwvcGFyYT4KLSAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlzdGVudHJ5PgotCi0g IDx2YXJsaXN0ZW50cnk+Ci0gICA8dGVybT48ZmlsZW5hbWU+Y3ViZTwvZmlsZW5hbWU+PC90ZXJt PgotICAgPGxpc3RpdGVtPgotICAgIDxwYXJhPkluZGV4aW5nIGZvciBtdWx0aWRpbWVuc2lvbmFs IGN1YmVzPC9wYXJhPgotICAgPC9saXN0aXRlbT4KLSAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgPHZh cmxpc3RlbnRyeT4KLSAgIDx0ZXJtPjxmaWxlbmFtZT5oc3RvcmU8L2ZpbGVuYW1lPjwvdGVybT4K LSAgIDxsaXN0aXRlbT4KLSAgICA8cGFyYT5Nb2R1bGUgZm9yIHN0b3JpbmcgKGtleSwgdmFsdWUp IHBhaXJzPC9wYXJhPgotICAgPC9saXN0aXRlbT4KLSAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgPHZh cmxpc3RlbnRyeT4KLSAgIDx0ZXJtPjxmaWxlbmFtZT5pbnRhcnJheTwvZmlsZW5hbWU+PC90ZXJt PgotICAgPGxpc3RpdGVtPgotICAgIDxwYXJhPlJELVRyZWUgZm9yIG9uZS1kaW1lbnNpb25hbCBh cnJheSBvZiBpbnQ0IHZhbHVlczwvcGFyYT4KLSAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlzdGVu dHJ5PgotCi0gIDx2YXJsaXN0ZW50cnk+Ci0gICA8dGVybT48ZmlsZW5hbWU+bHRyZWU8L2ZpbGVu YW1lPjwvdGVybT4KLSAgIDxsaXN0aXRlbT4KLSAgICA8cGFyYT5JbmRleGluZyBmb3IgdHJlZS1s aWtlIHN0cnVjdHVyZXM8L3BhcmE+Ci0gICA8L2xpc3RpdGVtPgotICA8L3Zhcmxpc3RlbnRyeT4K LQotICA8dmFybGlzdGVudHJ5PgotICAgPHRlcm0+PGZpbGVuYW1lPnBnX3RyZ208L2ZpbGVuYW1l PjwvdGVybT4KLSAgIDxsaXN0aXRlbT4KLSAgICA8cGFyYT5UZXh0IHNpbWlsYXJpdHkgdXNpbmcg dHJpZ3JhbSBtYXRjaGluZzwvcGFyYT4KLSAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlzdGVudHJ5 PgotCi0gIDx2YXJsaXN0ZW50cnk+Ci0gICA8dGVybT48ZmlsZW5hbWU+c2VnPC9maWxlbmFtZT48 L3Rlcm0+Ci0gICA8bGlzdGl0ZW0+Ci0gICAgPHBhcmE+SW5kZXhpbmcgZm9yIDxxdW90ZT5mbG9h dCByYW5nZXM8L3F1b3RlPjwvcGFyYT4KLSAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlzdGVudHJ5 PgotIDwvdmFyaWFibGVsaXN0PgotIDwvcGFyYT4KLQotPC9zZWN0MT4KLQotPC9jaGFwdGVyPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2hhc2guc2dtbCBiL2RvYy9zcmMvc2dtbC9oYXNoLnNn bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzNTkxMWViZjguLjAwMDAwMDAwMDAK LS0tIGEvZG9jL3NyYy9zZ21sL2hhc2guc2dtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2MiArMCww IEBACi08IS0tIGRvYy9zcmMvc2dtbC9oYXNoLnNnbWwgLS0+Ci0KLTxjaGFwdGVyIGlkPSJoYXNo LWluZGV4Ij4KLTx0aXRsZT5IYXNoIEluZGV4ZXM8L3RpdGxlPgotCi0gICA8aW5kZXh0ZXJtPgot ICAgIDxwcmltYXJ5PmluZGV4PC9wcmltYXJ5PgotICAgIDxzZWNvbmRhcnk+SGFzaDwvc2Vjb25k YXJ5PgotICAgPC9pbmRleHRlcm0+Ci0KLTxzZWN0MSBpZD0iaGFzaC1pbnRybyI+Ci0gPHRpdGxl Pk92ZXJ2aWV3PC90aXRsZT4KLQotIDxwYXJhPgotICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+Ci0gIGluY2x1ZGVzIGFuIGltcGxlbWVudGF0aW9uIG9mIHBlcnNpc3RlbnQg b24tZGlzayBoYXNoIGluZGV4ZXMsCi0gIHdoaWNoIGFyZSBmdWxseSBjcmFzaCByZWNvdmVyYWJs ZS4gQW55IGRhdGEgdHlwZSBjYW4gYmUgaW5kZXhlZCBieSBhCi0gIGhhc2ggaW5kZXgsIGluY2x1 ZGluZyBkYXRhIHR5cGVzIHRoYXQgZG8gbm90IGhhdmUgYSB3ZWxsLWRlZmluZWQgbGluZWFyCi0g IG9yZGVyaW5nLiBIYXNoIGluZGV4ZXMgc3RvcmUgb25seSB0aGUgaGFzaCB2YWx1ZSBvZiB0aGUg ZGF0YSBiZWluZwotICBpbmRleGVkLCB0aHVzIHRoZXJlIGFyZSBubyByZXN0cmljdGlvbnMgb24g dGhlIHNpemUgb2YgdGhlIGRhdGEgY29sdW1uCi0gIGJlaW5nIGluZGV4ZWQuCi0gPC9wYXJhPgot Ci0gPHBhcmE+Ci0gIEhhc2ggaW5kZXhlcyBzdXBwb3J0IG9ubHkgc2luZ2xlLWNvbHVtbiBpbmRl eGVzIGFuZCBkbyBub3QgYWxsb3cKLSAgdW5pcXVlbmVzcyBjaGVja2luZy4KLSA8L3BhcmE+Ci0K LSA8cGFyYT4KLSAgSGFzaCBpbmRleGVzIHN1cHBvcnQgb25seSB0aGUgPGxpdGVyYWw+PTwvbGl0 ZXJhbD4gb3BlcmF0b3IsCi0gIHNvIFdIRVJFIGNsYXVzZXMgdGhhdCBzcGVjaWZ5IHJhbmdlIG9w ZXJhdGlvbnMgd2lsbCBub3QgYmUgYWJsZSB0byB0YWtlCi0gIGFkdmFudGFnZSBvZiBoYXNoIGlu ZGV4ZXMuCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gIEVhY2ggaGFzaCBpbmRleCB0dXBsZSBzdG9y ZXMganVzdCB0aGUgNC1ieXRlIGhhc2ggdmFsdWUsIG5vdCB0aGUgYWN0dWFsCi0gIGNvbHVtbiB2 YWx1ZS4gQXMgYSByZXN1bHQsIGhhc2ggaW5kZXhlcyBtYXkgYmUgbXVjaCBzbWFsbGVyIHRoYW4g Qi10cmVlcwotICB3aGVuIGluZGV4aW5nIGxvbmdlciBkYXRhIGl0ZW1zIHN1Y2ggYXMgVVVJRHMs IFVSTHMsIGV0Yy4gVGhlIGFic2VuY2Ugb2YKLSAgdGhlIGNvbHVtbiB2YWx1ZSBhbHNvIG1ha2Vz IGFsbCBoYXNoIGluZGV4IHNjYW5zIGxvc3N5LiBIYXNoIGluZGV4ZXMgbWF5Ci0gIHRha2UgcGFy dCBpbiBiaXRtYXAgaW5kZXggc2NhbnMgYW5kIGJhY2t3YXJkIHNjYW5zLgotIDwvcGFyYT4KLQot IDxwYXJhPgotICBIYXNoIGluZGV4ZXMgYXJlIGJlc3Qgb3B0aW1pemVkIGZvciBTRUxFQ1QgYW5k IFVQREFURS1oZWF2eSB3b3JrbG9hZHMKLSAgdGhhdCB1c2UgZXF1YWxpdHkgc2NhbnMgb24gbGFy Z2VyIHRhYmxlcy4gSW4gYSBCLXRyZWUgaW5kZXgsIHNlYXJjaGVzIG11c3QKLSAgZGVzY2VuZCB0 aHJvdWdoIHRoZSB0cmVlIHVudGlsIHRoZSBsZWFmIHBhZ2UgaXMgZm91bmQuIEluIHRhYmxlcyB3 aXRoCi0gIG1pbGxpb25zIG9mIHJvd3MsIHRoaXMgZGVzY2VudCBjYW4gaW5jcmVhc2UgYWNjZXNz IHRpbWUgdG8gZGF0YS4gVGhlCi0gIGVxdWl2YWxlbnQgb2YgYSBsZWFmIHBhZ2UgaW4gYSBoYXNo IGluZGV4IGlzIHJlZmVycmVkIHRvIGFzIGEgYnVja2V0IHBhZ2UuIEluCi0gIGNvbnRyYXN0LCBh IGhhc2ggaW5kZXggYWxsb3dzIGFjY2Vzc2luZyB0aGUgYnVja2V0IHBhZ2VzIGRpcmVjdGx5LAot ICB0aGVyZWJ5IHBvdGVudGlhbGx5IHJlZHVjaW5nIGluZGV4IGFjY2VzcyB0aW1lIGluIGxhcmdl ciB0YWJsZXMuIFRoaXMKLSAgcmVkdWN0aW9uIGluICJsb2dpY2FsIEkvTyIgYmVjb21lcyBldmVu IG1vcmUgcHJvbm91bmNlZCBvbiBpbmRleGVzL2RhdGEKLSAgbGFyZ2VyIHRoYW4gc2hhcmVkX2J1 ZmZlcnMvUkFNLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBIYXNoIGluZGV4ZXMgaGF2ZSBiZWVu IGRlc2lnbmVkIHRvIGNvcGUgd2l0aCB1bmV2ZW4gZGlzdHJpYnV0aW9ucyBvZgotICBoYXNoIHZh bHVlcy4gRGlyZWN0IGFjY2VzcyB0byB0aGUgYnVja2V0IHBhZ2VzIHdvcmtzIHdlbGwgaWYgdGhl IGhhc2gKLSAgdmFsdWVzIGFyZSBldmVubHkgZGlzdHJpYnV0ZWQuIFdoZW4gaW5zZXJ0cyBtZWFu IHRoYXQgdGhlIGJ1Y2tldCBwYWdlCi0gIGJlY29tZXMgZnVsbCwgYWRkaXRpb25hbCBvdmVyZmxv dyBwYWdlcyBhcmUgY2hhaW5lZCB0byB0aGF0IHNwZWNpZmljCi0gIGJ1Y2tldCBwYWdlLCBsb2Nh bGx5IGV4cGFuZGluZyB0aGUgc3RvcmFnZSBmb3IgaW5kZXggdHVwbGVzIHRoYXQgbWF0Y2gKLSAg dGhhdCBoYXNoIHZhbHVlLiBXaGVuIHNjYW5uaW5nIGEgaGFzaCBidWNrZXQgZHVyaW5nIHF1ZXJp ZXMsIHdlIG5lZWQgdG8KLSAgc2NhbiB0aHJvdWdoIGFsbCBvZiB0aGUgb3ZlcmZsb3cgcGFnZXMu IFRodXMgYW4gdW5iYWxhbmNlZCBoYXNoIGluZGV4Ci0gIG1pZ2h0IGFjdHVhbGx5IGJlIHdvcnNl IHRoYW4gYSBCLXRyZWUgaW4gdGVybXMgb2YgbnVtYmVyIG9mIGJsb2NrCi0gIGFjY2Vzc2VzIHJl cXVpcmVkLCBmb3Igc29tZSBkYXRhLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBBcyBhIHJlc3Vs dCBvZiB0aGUgb3ZlcmZsb3cgY2FzZXMsIHdlIGNhbiBzYXkgdGhhdCBoYXNoIGluZGV4ZXMgYXJl Ci0gIG1vc3Qgc3VpdGFibGUgZm9yIHVuaXF1ZSwgbmVhcmx5IHVuaXF1ZSBkYXRhIG9yIGRhdGEg d2l0aCBhIGxvdyBudW1iZXIKLSAgb2Ygcm93cyBwZXIgaGFzaCBidWNrZXQuCi0gIE9uZSBwb3Nz aWJsZSB3YXkgdG8gYXZvaWQgcHJvYmxlbXMgaXMgdG8gZXhjbHVkZSBoaWdobHkgbm9uLXVuaXF1 ZQotICB2YWx1ZXMgZnJvbSB0aGUgaW5kZXggdXNpbmcgYSBwYXJ0aWFsIGluZGV4IGNvbmRpdGlv biwgYnV0IHRoaXMgbWF5Ci0gIG5vdCBiZSBzdWl0YWJsZSBpbiBtYW55IGNhc2VzLgotIDwvcGFy YT4KLQotIDxwYXJhPgotICBMaWtlIEItVHJlZXMsIGhhc2ggaW5kZXhlcyBwZXJmb3JtIHNpbXBs ZSBpbmRleCB0dXBsZSBkZWxldGlvbi4gVGhpcwotICBpcyBhIGRlZmVycmVkIG1haW50ZW5hbmNl IG9wZXJhdGlvbiB0aGF0IGRlbGV0ZXMgaW5kZXggdHVwbGVzIHRoYXQgYXJlCi0gIGtub3duIHRv IGJlIHNhZmUgdG8gZGVsZXRlICh0aG9zZSB3aG9zZSBpdGVtIGlkZW50aWZpZXIncyBMUF9ERUFE IGJpdAotICBpcyBhbHJlYWR5IHNldCkuIElmIGFuIGluc2VydCBmaW5kcyBubyBzcGFjZSBpcyBh dmFpbGFibGUgb24gYSBwYWdlIHdlCi0gIHRyeSB0byBhdm9pZCBjcmVhdGluZyBhIG5ldyBvdmVy ZmxvdyBwYWdlIGJ5IGF0dGVtcHRpbmcgdG8gcmVtb3ZlIGRlYWQKLSAgaW5kZXggdHVwbGVzLiBS ZW1vdmFsIGNhbm5vdCBvY2N1ciBpZiB0aGUgcGFnZSBpcyBwaW5uZWQgYXQgdGhhdCB0aW1lLgot ICBEZWxldGlvbiBvZiBkZWFkIGluZGV4IHBvaW50ZXJzIGFsc28gb2NjdXJzIGR1cmluZyBWQUNV VU0uCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gIElmIGl0IGNhbiwgVkFDVVVNIHdpbGwgYWxzbyB0 cnkgdG8gc3F1ZWV6ZSB0aGUgaW5kZXggdHVwbGVzIG9udG8gYXMKLSAgZmV3IG92ZXJmbG93IHBh Z2VzIGFzIHBvc3NpYmxlLCBtaW5pbWl6aW5nIHRoZSBvdmVyZmxvdyBjaGFpbi4gSWYgYW4KLSAg b3ZlcmZsb3cgcGFnZSBiZWNvbWVzIGVtcHR5LCBvdmVyZmxvdyBwYWdlcyBjYW4gYmUgcmVjeWNs ZWQgZm9yIHJldXNlCi0gIGluIG90aGVyIGJ1Y2tldHMsIHRob3VnaCB3ZSBuZXZlciByZXR1cm4g dGhlbSB0byB0aGUgb3BlcmF0aW5nIHN5c3RlbS4KLSAgVGhlcmUgaXMgY3VycmVudGx5IG5vIHBy b3Zpc2lvbiB0byBzaHJpbmsgYSBoYXNoIGluZGV4LCBvdGhlciB0aGFuIGJ5Ci0gIHJlYnVpbGRp bmcgaXQgd2l0aCBSRUlOREVYLgotICBUaGVyZSBpcyBubyBwcm92aXNpb24gZm9yIHJlZHVjaW5n IHRoZSBudW1iZXIgb2YgYnVja2V0cywgZWl0aGVyLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBI YXNoIGluZGV4ZXMgbWF5IGV4cGFuZCB0aGUgbnVtYmVyIG9mIGJ1Y2tldCBwYWdlcyBhcyB0aGUg bnVtYmVyIG9mCi0gIHJvd3MgaW5kZXhlZCBncm93cy4gVGhlIGhhc2gga2V5LXRvLWJ1Y2tldC1u dW1iZXIgbWFwcGluZyBpcyBjaG9zZW4gc28gdGhhdAotICB0aGUgaW5kZXggY2FuIGJlIGluY3Jl bWVudGFsbHkgZXhwYW5kZWQuIFdoZW4gYSBuZXcgYnVja2V0IGlzIHRvIGJlIGFkZGVkIHRvCi0g IHRoZSBpbmRleCwgZXhhY3RseSBvbmUgZXhpc3RpbmcgYnVja2V0IHdpbGwgbmVlZCB0byBiZSAi c3BsaXQiLCB3aXRoIHNvbWUgb2YKLSAgaXRzIHR1cGxlcyBiZWluZyB0cmFuc2ZlcnJlZCB0byB0 aGUgbmV3IGJ1Y2tldCBhY2NvcmRpbmcgdG8gdGhlIHVwZGF0ZWQKLSAga2V5LXRvLWJ1Y2tldC1u dW1iZXIgbWFwcGluZy4KLSA8L3BhcmE+Ci0KLSA8cGFyYT4KLSAgVGhlIGV4cGFuc2lvbiBvY2N1 cnMgaW4gdGhlIGZvcmVncm91bmQsIHdoaWNoIGNvdWxkIGluY3JlYXNlIGV4ZWN1dGlvbgotICB0 aW1lIGZvciB1c2VyIGluc2VydHMuIFRodXMsIGhhc2ggaW5kZXhlcyBtYXkgbm90IGJlIHN1aXRh YmxlIGZvciB0YWJsZXMKLSAgd2l0aCByYXBpZGx5IGluY3JlYXNpbmcgbnVtYmVyIG9mIHJvd3Mu Ci0gPC9wYXJhPgotCi08L3NlY3QxPgotCi08c2VjdDEgaWQ9Imhhc2gtaW1wbGVtZW50YXRpb24i PgotIDx0aXRsZT5JbXBsZW1lbnRhdGlvbjwvdGl0bGU+Ci0KLSA8cGFyYT4KLSAgVGhlcmUgYXJl IGZvdXIga2luZHMgb2YgcGFnZXMgaW4gYSBoYXNoIGluZGV4OiB0aGUgbWV0YSBwYWdlIChwYWdl IHplcm8pLAotICB3aGljaCBjb250YWlucyBzdGF0aWNhbGx5IGFsbG9jYXRlZCBjb250cm9sIGlu Zm9ybWF0aW9uOyBwcmltYXJ5IGJ1Y2tldAotICBwYWdlczsgb3ZlcmZsb3cgcGFnZXM7IGFuZCBi aXRtYXAgcGFnZXMsIHdoaWNoIGtlZXAgdHJhY2sgb2Ygb3ZlcmZsb3cKLSAgcGFnZXMgdGhhdCBo YXZlIGJlZW4gZnJlZWQgYW5kIGFyZSBhdmFpbGFibGUgZm9yIHJlLXVzZS4gRm9yIGFkZHJlc3Np bmcKLSAgcHVycG9zZXMsIGJpdG1hcCBwYWdlcyBhcmUgcmVnYXJkZWQgYXMgYSBzdWJzZXQgb2Yg dGhlIG92ZXJmbG93IHBhZ2VzLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBCb3RoIHNjYW5uaW5n IHRoZSBpbmRleCBhbmQgaW5zZXJ0aW5nIHR1cGxlcyByZXF1aXJlIGxvY2F0aW5nIHRoZSBidWNr ZXQKLSAgd2hlcmUgYSBnaXZlbiB0dXBsZSBvdWdodCB0byBiZSBsb2NhdGVkLiBUbyBkbyB0aGlz LCB3ZSBuZWVkIHRoZSBidWNrZXQKLSAgY291bnQsIGhpZ2htYXNrLCBhbmQgbG93bWFzayBmcm9t IHRoZSBtZXRhcGFnZTsgaG93ZXZlciwgaXQncyB1bmRlc2lyYWJsZQotICBmb3IgcGVyZm9ybWFu Y2UgcmVhc29ucyB0byBoYXZlIHRvIGhhdmUgdG8gbG9jayBhbmQgcGluIHRoZSBtZXRhcGFnZSBm b3IKLSAgZXZlcnkgc3VjaCBvcGVyYXRpb24uIEluc3RlYWQsIHdlIHJldGFpbiBhIGNhY2hlZCBj b3B5IG9mIHRoZSBtZXRhcGFnZQotICBpbiBlYWNoIGJhY2tlbmQncyByZWxjYWNoZSBlbnRyeS4g VGhpcyB3aWxsIHByb2R1Y2UgdGhlIGNvcnJlY3QgYnVja2V0Ci0gIG1hcHBpbmcgYXMgbG9uZyBh cyB0aGUgdGFyZ2V0IGJ1Y2tldCBoYXNuJ3QgYmVlbiBzcGxpdCBzaW5jZSB0aGUgbGFzdAotICBj YWNoZSByZWZyZXNoLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBQcmltYXJ5IGJ1Y2tldCBwYWdl cyBhbmQgb3ZlcmZsb3cgcGFnZXMgYXJlIGFsbG9jYXRlZCBpbmRlcGVuZGVudGx5IHNpbmNlCi0g IGFueSBnaXZlbiBpbmRleCBtaWdodCBuZWVkIG1vcmUgb3IgZmV3ZXIgb3ZlcmZsb3cgcGFnZXMg cmVsYXRpdmUgdG8gaXRzCi0gIG51bWJlciBvZiBidWNrZXRzLiBUaGUgaGFzaCBjb2RlIHVzZXMg YW4gaW50ZXJlc3Rpbmcgc2V0IG9mIGFkZHJlc3NpbmcKLSAgcnVsZXMgdG8gc3VwcG9ydCBhIHZh cmlhYmxlIG51bWJlciBvZiBvdmVyZmxvdyBwYWdlcyB3aGlsZSBub3QgaGF2aW5nIHRvCi0gIG1v dmUgcHJpbWFyeSBidWNrZXQgcGFnZXMgYXJvdW5kIGFmdGVyIHRoZXkgYXJlIGNyZWF0ZWQuCi0g PC9wYXJhPgotCi0gPHBhcmE+Ci0gIEVhY2ggcm93IGluIHRoZSB0YWJsZSBpbmRleGVkIGlzIHJl cHJlc2VudGVkIGJ5IGEgc2luZ2xlIGluZGV4IHR1cGxlIGluCi0gIHRoZSBoYXNoIGluZGV4LiBI YXNoIGluZGV4IHR1cGxlcyBhcmUgc3RvcmVkIGluIGJ1Y2tldCBwYWdlcywgYW5kIGlmCi0gIHRo ZXkgZXhpc3QsIG92ZXJmbG93IHBhZ2VzLiBXZSBzcGVlZCB1cCBzZWFyY2hlcyBieSBrZWVwaW5n IHRoZSBpbmRleCBlbnRyaWVzCi0gIGluIGFueSBvbmUgaW5kZXggcGFnZSBzb3J0ZWQgYnkgaGFz aCBjb2RlLCB0aHVzIGFsbG93aW5nIGJpbmFyeSBzZWFyY2ggdG8gYmUKLSAgdXNlZCB3aXRoaW4g YW4gaW5kZXggcGFnZS4gTm90ZSBob3dldmVyIHRoYXQgdGhlcmUgaXMgKm5vKiBhc3N1bXB0aW9u IGFib3V0Ci0gIHRoZSByZWxhdGl2ZSBvcmRlcmluZyBvZiBoYXNoIGNvZGVzIGFjcm9zcyBkaWZm ZXJlbnQgaW5kZXggcGFnZXMgb2YgYSBidWNrZXQuCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gIFRo ZSBidWNrZXQgc3BsaXR0aW5nIGFsZ29yaXRobXMgdG8gZXhwYW5kIHRoZSBoYXNoIGluZGV4IGFy ZSB0b28gY29tcGxleCB0bwotICBiZSB3b3J0aHkgb2YgbWVudGlvbiBoZXJlLCB0aG91Z2ggYXJl IGRlc2NyaWJlZCBpbiBtb3JlIGRldGFpbCBpbgotICA8ZmlsZW5hbWU+c3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvUkVBRE1FPC9maWxlbmFtZT4uCi0gIFRoZSBzcGxpdCBhbGdvcml0aG0gaXMgY3Jh c2ggc2FmZSBhbmQgY2FuIGJlIHJlc3RhcnRlZCBpZiBub3QgY29tcGxldGVkCi0gIHN1Y2Nlc3Nm dWxseS4KLSA8L3BhcmE+Ci0KLTwvc2VjdDE+Ci0KLTwvY2hhcHRlcj4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9pbmRleHR5cGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvaW5kZXh0eXBlcy5zZ21s Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdhYWQ4ZDk0ZWQKLS0tIC9k ZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvaW5kZXh0eXBlcy5zZ21sCkBAIC0wLDAgKzEsNTU5 NyBAQAorIDwhLS0gZG9jL3NyYy9zZ21sL2luZGV4dHlwZXMuc2dtbCAtLT4KKworPGNoYXB0ZXIg aWQ9ImluZGV4dHlwZXMiPgorPHRpdGxlPkJ1aWx0LWluIEluZGV4IEFjY2VzcyBNZXRob2RzPC90 aXRsZT4KKworIDxzZWN0MSBpZD0iYnRyZWUiPgorIDx0aXRsZT5CLVRyZWUgSW5kZXhlczwvdGl0 bGU+CisKKyAgICA8aW5kZXh0ZXJtPgorICAgICA8cHJpbWFyeT5pbmRleDwvcHJpbWFyeT4KKyAg ICAgPHNlY29uZGFyeT5CLVRyZWU8L3NlY29uZGFyeT4KKyAgICA8L2luZGV4dGVybT4KKworIDxz ZWN0MiBpZD0iYnRyZWUtaW50cm8iPgorICA8dGl0bGU+SW50cm9kdWN0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gaW5jbHVk ZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlCisgICBzdGFuZGFyZCA8YWNyb255bT5idHJlZTwv YWNyb255bT4gKG11bHRpLXdheSBiYWxhbmNlZCB0cmVlKSBpbmRleCBkYXRhCisgICBzdHJ1Y3R1 cmUuICBBbnkgZGF0YSB0eXBlIHRoYXQgY2FuIGJlIHNvcnRlZCBpbnRvIGEgd2VsbC1kZWZpbmVk IGxpbmVhcgorICAgb3JkZXIgY2FuIGJlIGluZGV4ZWQgYnkgYSBidHJlZSBpbmRleC4gIFRoZSBv bmx5IGxpbWl0YXRpb24gaXMgdGhhdCBhbgorICAgaW5kZXggZW50cnkgY2Fubm90IGV4Y2VlZCBh cHByb3hpbWF0ZWx5IG9uZS10aGlyZCBvZiBhIHBhZ2UgKGFmdGVyIFRPQVNUCisgICBjb21wcmVz c2lvbiwgaWYgYXBwbGljYWJsZSkuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEJlY2F1c2Ug ZWFjaCBidHJlZSBvcGVyYXRvciBjbGFzcyBpbXBvc2VzIGEgc29ydCBvcmRlciBvbiBpdHMgZGF0 YSB0eXBlLAorICAgYnRyZWUgb3BlcmF0b3IgY2xhc3NlcyAob3IsIHJlYWxseSwgb3BlcmF0b3Ig ZmFtaWxpZXMpIGhhdmUgY29tZSB0byBiZQorICAgdXNlZCBhcyA8cHJvZHVjdG5hbWU+UG9zdGdy ZVNRTDwvcHJvZHVjdG5hbWU+J3MgZ2VuZXJhbCByZXByZXNlbnRhdGlvbgorICAgYW5kIHVuZGVy c3RhbmRpbmcgb2Ygc29ydGluZyBzZW1hbnRpY3MuICBUaGVyZWZvcmUsIHRoZXkndmUgYWNxdWly ZWQKKyAgIHNvbWUgZmVhdHVyZXMgdGhhdCBnbyBiZXlvbmQgd2hhdCB3b3VsZCBiZSBuZWVkZWQg anVzdCB0byBzdXBwb3J0IGJ0cmVlCisgICBpbmRleGVzLCBhbmQgcGFydHMgb2YgdGhlIHN5c3Rl bSB0aGF0IGFyZSBxdWl0ZSBkaXN0YW50IGZyb20gdGhlCisgICBidHJlZSA8YWNyb255bT5BTTwv YWNyb255bT4gbWFrZSB1c2Ugb2YgdGhlbS4KKyAgPC9wYXJhPgorCisgPC9zZWN0Mj4KKworIDxz ZWN0MiBpZD0iYnRyZWUtYmVoYXZpb3IiPgorICA8dGl0bGU+QmVoYXZpb3Igb2YgQi1UcmVlIE9w ZXJhdG9yIENsYXNzZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgQXMgc2hvd24gaW4gPHhyZWYg bGlua2VuZD0ieGluZGV4LWJ0cmVlLXN0cmF0LXRhYmxlIi8+LCBhIGJ0cmVlIG9wZXJhdG9yCisg ICBjbGFzcyBtdXN0IHByb3ZpZGUgZml2ZSBjb21wYXJpc29uIG9wZXJhdG9ycywKKyAgIDxsaXRl cmFsPiZsdDs8L2xpdGVyYWw+LAorICAgPGxpdGVyYWw+Jmx0Oz08L2xpdGVyYWw+LAorICAgPGxp dGVyYWw+PTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD4mZ3Q7PTwvbGl0ZXJhbD4gYW5kCisgICA8 bGl0ZXJhbD4mZ3Q7PC9saXRlcmFsPi4KKyAgIE9uZSBtaWdodCBleHBlY3QgdGhhdCA8bGl0ZXJh bD4mbHQ7Jmd0OzwvbGl0ZXJhbD4gc2hvdWxkIGFsc28gYmUgcGFydCBvZgorICAgdGhlIG9wZXJh dG9yIGNsYXNzLCBidXQgaXQgaXMgbm90LCBiZWNhdXNlIGl0IHdvdWxkIGFsbW9zdCBuZXZlciBi ZQorICAgdXNlZnVsIHRvIHVzZSBhIDxsaXRlcmFsPiZsdDsmZ3Q7PC9saXRlcmFsPiBXSEVSRSBj bGF1c2UgaW4gYW4gaW5kZXgKKyAgIHNlYXJjaC4gIChGb3Igc29tZSBwdXJwb3NlcywgdGhlIHBs YW5uZXIgdHJlYXRzIDxsaXRlcmFsPiZsdDsmZ3Q7PC9saXRlcmFsPgorICAgYXMgYXNzb2NpYXRl ZCB3aXRoIGEgYnRyZWUgb3BlcmF0b3IgY2xhc3M7IGJ1dCBpdCBmaW5kcyB0aGF0IG9wZXJhdG9y IHZpYQorICAgdGhlIDxsaXRlcmFsPj08L2xpdGVyYWw+IG9wZXJhdG9yJ3MgbmVnYXRvciBsaW5r LCByYXRoZXIgdGhhbgorICAgZnJvbSA8c3RydWN0bmFtZT5wZ19hbW9wPC9zdHJ1Y3RuYW1lPi4p CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdoZW4gc2V2ZXJhbCBkYXRhIHR5cGVzIHNoYXJl IG5lYXItaWRlbnRpY2FsIHNvcnRpbmcgc2VtYW50aWNzLCB0aGVpcgorICAgb3BlcmF0b3IgY2xh c3NlcyBjYW4gYmUgZ3JvdXBlZCBpbnRvIGFuIG9wZXJhdG9yIGZhbWlseS4gIERvaW5nIHNvIGlz CisgICBhZHZhbnRhZ2VvdXMgYmVjYXVzZSBpdCBhbGxvd3MgdGhlIHBsYW5uZXIgdG8gbWFrZSBk ZWR1Y3Rpb25zIGFib3V0CisgICBjcm9zcy10eXBlIGNvbXBhcmlzb25zLiAgRWFjaCBvcGVyYXRv ciBjbGFzcyB3aXRoaW4gdGhlIGZhbWlseSBzaG91bGQKKyAgIGNvbnRhaW4gdGhlIHNpbmdsZS10 eXBlIG9wZXJhdG9ycyAoYW5kIGFzc29jaWF0ZWQgc3VwcG9ydCBmdW5jdGlvbnMpCisgICBmb3Ig aXRzIGlucHV0IGRhdGEgdHlwZSwgd2hpbGUgY3Jvc3MtdHlwZSBjb21wYXJpc29uIG9wZXJhdG9y cyBhbmQKKyAgIHN1cHBvcnQgZnVuY3Rpb25zIGFyZSA8cXVvdGU+bG9vc2U8L3F1b3RlPiBpbiB0 aGUgZmFtaWx5LiAgSXQgaXMKKyAgIHJlY29tbWVuZGFibGUgdGhhdCBhIGNvbXBsZXRlIHNldCBv ZiBjcm9zcy10eXBlIG9wZXJhdG9ycyBiZSBpbmNsdWRlZAorICAgaW4gdGhlIGZhbWlseSwgdGh1 cyBlbnN1cmluZyB0aGF0IHRoZSBwbGFubmVyIGNhbiByZXByZXNlbnQgYW55CisgICBjb21wYXJp c29uIGNvbmRpdGlvbnMgdGhhdCBpdCBkZWR1Y2VzIGZyb20gdHJhbnNpdGl2aXR5LgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBUaGVyZSBhcmUgc29tZSBiYXNpYyBhc3N1bXB0aW9ucyB0aGF0 IGEgYnRyZWUgb3BlcmF0b3IgZmFtaWx5IG11c3QKKyAgIHNhdGlzZnk6CisgIDwvcGFyYT4KKwor ICA8aXRlbWl6ZWRsaXN0PgorICAgPGxpc3RpdGVtPgorICAgIDxwYXJhPgorICAgICBBbiA8bGl0 ZXJhbD49PC9saXRlcmFsPiBvcGVyYXRvciBtdXN0IGJlIGFuIGVxdWl2YWxlbmNlIHJlbGF0aW9u OyB0aGF0CisgICAgIGlzLCBmb3IgYWxsIG5vbi1udWxsIHZhbHVlcyA8cmVwbGFjZWFibGU+QTwv cmVwbGFjZWFibGU+LAorICAgICA8cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+LCA8cmVwbGFj ZWFibGU+QzwvcmVwbGFjZWFibGU+IG9mIHRoZQorICAgICBkYXRhIHR5cGU6CisKKyAgICAgPGl0 ZW1pemVkbGlzdD4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPHJl cGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD49PC9saXRlcmFsPgorICAgICAgICA8 cmVwbGFjZWFibGU+QTwvcmVwbGFjZWFibGU+IGlzIHRydWUKKyAgICAgICAgKDxmaXJzdHRlcm0+ cmVmbGV4aXZlIGxhdzwvZmlyc3R0ZXJtPikKKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3Rp dGVtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBpZiA8cmVwbGFj ZWFibGU+QTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPj08L2xpdGVyYWw+CisgICAgICAgIDxyZXBs YWNlYWJsZT5CPC9yZXBsYWNlYWJsZT4sCisgICAgICAgIHRoZW4gPHJlcGxhY2VhYmxlPkI8L3Jl cGxhY2VhYmxlPiA8bGl0ZXJhbD49PC9saXRlcmFsPgorICAgICAgICA8cmVwbGFjZWFibGU+QTwv cmVwbGFjZWFibGU+CisgICAgICAgICg8Zmlyc3R0ZXJtPnN5bW1ldHJpYyBsYXc8L2ZpcnN0dGVy bT4pCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDxsaXN0aXRlbT4K KyAgICAgICA8cGFyYT4KKyAgICAgICAgaWYgPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiA8 bGl0ZXJhbD49PC9saXRlcmFsPgorICAgICAgICA8cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+ IGFuZCA8cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+CisgICAgICAgIDxsaXRlcmFsPj08L2xp dGVyYWw+IDxyZXBsYWNlYWJsZT5DPC9yZXBsYWNlYWJsZT4sCisgICAgICAgIHRoZW4gPHJlcGxh Y2VhYmxlPkE8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD49PC9saXRlcmFsPgorICAgICAgICA8cmVw bGFjZWFibGU+QzwvcmVwbGFjZWFibGU+CisgICAgICAgICg8Zmlyc3R0ZXJtPnRyYW5zaXRpdmUg bGF3PC9maXJzdHRlcm0+KQorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAg IDwvaXRlbWl6ZWRsaXN0PgorICAgIDwvcGFyYT4KKyAgIDwvbGlzdGl0ZW0+CisKKyAgIDxsaXN0 aXRlbT4KKyAgICA8cGFyYT4KKyAgICAgQSA8bGl0ZXJhbD4mbHQ7PC9saXRlcmFsPiBvcGVyYXRv ciBtdXN0IGJlIGEgc3Ryb25nIG9yZGVyaW5nIHJlbGF0aW9uOworICAgICB0aGF0IGlzLCBmb3Ig YWxsIG5vbi1udWxsIHZhbHVlcyA8cmVwbGFjZWFibGU+QTwvcmVwbGFjZWFibGU+LAorICAgICA8 cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFibGU+QzwvcmVwbGFjZWFibGU+ OgorCisgICAgIDxpdGVtaXplZGxpc3Q+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+ CisgICAgICAgIDxyZXBsYWNlYWJsZT5BPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+Jmx0OzwvbGl0 ZXJhbD4KKyAgICAgICAgPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiBpcyBmYWxzZQorICAg ICAgICAoPGZpcnN0dGVybT5pcnJlZmxleGl2ZSBsYXc8L2ZpcnN0dGVybT4pCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgaWYgPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD4mbHQ7PC9s aXRlcmFsPgorICAgICAgICA8cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+CisgICAgICAgIGFu ZCA8cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPiZsdDs8L2xpdGVyYWw+Cisg ICAgICAgIDxyZXBsYWNlYWJsZT5DPC9yZXBsYWNlYWJsZT4sCisgICAgICAgIHRoZW4gPHJlcGxh Y2VhYmxlPkE8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD4mbHQ7PC9saXRlcmFsPgorICAgICAgICA8 cmVwbGFjZWFibGU+QzwvcmVwbGFjZWFibGU+CisgICAgICAgICg8Zmlyc3R0ZXJtPnRyYW5zaXRp dmUgbGF3PC9maXJzdHRlcm0+KQorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgIDwvcGFyYT4KKyAgIDwvbGlzdGl0ZW0+CisKKyAgIDxs aXN0aXRlbT4KKyAgICA8cGFyYT4KKyAgICAgRnVydGhlcm1vcmUsIHRoZSBvcmRlcmluZyBpcyB0 b3RhbDsgdGhhdCBpcywgZm9yIGFsbCBub24tbnVsbAorICAgICB2YWx1ZXMgPHJlcGxhY2VhYmxl PkE8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlPkI8L3JlcGxhY2VhYmxlPjoKKworICAgICA8 aXRlbWl6ZWRsaXN0PgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBl eGFjdGx5IG9uZSBvZiA8cmVwbGFjZWFibGU+QTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPiZsdDs8 L2xpdGVyYWw+CisgICAgICAgIDxyZXBsYWNlYWJsZT5CPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNl YWJsZT5BPC9yZXBsYWNlYWJsZT4KKyAgICAgICAgPGxpdGVyYWw+PTwvbGl0ZXJhbD4gPHJlcGxh Y2VhYmxlPkI8L3JlcGxhY2VhYmxlPiwgYW5kCisgICAgICAgIDxyZXBsYWNlYWJsZT5CPC9yZXBs YWNlYWJsZT4gPGxpdGVyYWw+Jmx0OzwvbGl0ZXJhbD4KKyAgICAgICAgPHJlcGxhY2VhYmxlPkE8 L3JlcGxhY2VhYmxlPiBpcyB0cnVlCisgICAgICAgICg8Zmlyc3R0ZXJtPnRyaWNob3RvbXkgbGF3 PC9maXJzdHRlcm0+KQorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwv aXRlbWl6ZWRsaXN0PgorCisgICAgIChUaGUgdHJpY2hvdG9teSBsYXcganVzdGlmaWVzIHRoZSBk ZWZpbml0aW9uIG9mIHRoZSBjb21wYXJpc29uIHN1cHBvcnQKKyAgICAgZnVuY3Rpb24sIG9mIGNv dXJzZS4pCisgICAgPC9wYXJhPgorICAgPC9saXN0aXRlbT4KKyAgPC9pdGVtaXplZGxpc3Q+CisK KyAgPHBhcmE+CisgICBUaGUgb3RoZXIgdGhyZWUgb3BlcmF0b3JzIGFyZSBkZWZpbmVkIGluIHRl cm1zIG9mIDxsaXRlcmFsPj08L2xpdGVyYWw+CisgICBhbmQgPGxpdGVyYWw+Jmx0OzwvbGl0ZXJh bD4gaW4gdGhlIG9idmlvdXMgd2F5LCBhbmQgbXVzdCBhY3QgY29uc2lzdGVudGx5CisgICB3aXRo IHRoZW0uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEZvciBhbiBvcGVyYXRvciBmYW1pbHkg c3VwcG9ydGluZyBtdWx0aXBsZSBkYXRhIHR5cGVzLCB0aGUgYWJvdmUgbGF3cyBtdXN0CisgICBo b2xkIHdoZW4gPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlPkI8L3Jl cGxhY2VhYmxlPiwKKyAgIDxyZXBsYWNlYWJsZT5DPC9yZXBsYWNlYWJsZT4gYXJlIHRha2VuIGZy b20gYW55IGRhdGEgdHlwZXMgaW4gdGhlIGZhbWlseS4KKyAgIFRoZSB0cmFuc2l0aXZlIGxhd3Mg YXJlIHRoZSB0cmlja2llc3QgdG8gZW5zdXJlLCBhcyBpbiBjcm9zcy10eXBlCisgICBzaXR1YXRp b25zIHRoZXkgcmVwcmVzZW50IHN0YXRlbWVudHMgdGhhdCB0aGUgYmVoYXZpb3JzIG9mIHR3byBv ciB0aHJlZQorICAgZGlmZmVyZW50IG9wZXJhdG9ycyBhcmUgY29uc2lzdGVudC4KKyAgIEFzIGFu IGV4YW1wbGUsIGl0IHdvdWxkIG5vdCB3b3JrIHRvIHB1dCA8dHlwZT5mbG9hdDg8L3R5cGU+Cisg ICBhbmQgPHR5cGU+bnVtZXJpYzwvdHlwZT4gaW50byB0aGUgc2FtZSBvcGVyYXRvciBmYW1pbHks IGF0IGxlYXN0IG5vdCB3aXRoCisgICB0aGUgY3VycmVudCBzZW1hbnRpY3MgdGhhdCA8dHlwZT5u dW1lcmljPC90eXBlPiB2YWx1ZXMgYXJlIGNvbnZlcnRlZAorICAgdG8gPHR5cGU+ZmxvYXQ4PC90 eXBlPiBmb3IgY29tcGFyaXNvbiB0byBhIDx0eXBlPmZsb2F0ODwvdHlwZT4uICBCZWNhdXNlCisg ICBvZiB0aGUgbGltaXRlZCBhY2N1cmFjeSBvZiA8dHlwZT5mbG9hdDg8L3R5cGU+LCB0aGlzIG1l YW5zIHRoZXJlIGFyZQorICAgZGlzdGluY3QgPHR5cGU+bnVtZXJpYzwvdHlwZT4gdmFsdWVzIHRo YXQgd2lsbCBjb21wYXJlIGVxdWFsIHRvIHRoZQorICAgc2FtZSA8dHlwZT5mbG9hdDg8L3R5cGU+ IHZhbHVlLCBhbmQgdGh1cyB0aGUgdHJhbnNpdGl2ZSBsYXcgd291bGQgZmFpbC4KKyAgPC9wYXJh PgorCisgIDxwYXJhPgorICAgQW5vdGhlciByZXF1aXJlbWVudCBmb3IgYSBtdWx0aXBsZS1kYXRh LXR5cGUgZmFtaWx5IGlzIHRoYXQgYW55IGltcGxpY2l0CisgICBvciBiaW5hcnktY29lcmNpb24g Y2FzdHMgdGhhdCBhcmUgZGVmaW5lZCBiZXR3ZWVuIGRhdGEgdHlwZXMgaW5jbHVkZWQgaW4KKyAg IHRoZSBvcGVyYXRvciBmYW1pbHkgbXVzdCBub3QgY2hhbmdlIHRoZSBhc3NvY2lhdGVkIHNvcnQg b3JkZXJpbmcuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEl0IHNob3VsZCBiZSBmYWlybHkg Y2xlYXIgd2h5IGEgYnRyZWUgaW5kZXggcmVxdWlyZXMgdGhlc2UgbGF3cyB0byBob2xkCisgICB3 aXRoaW4gYSBzaW5nbGUgZGF0YSB0eXBlOiB3aXRob3V0IHRoZW0gdGhlcmUgaXMgbm8gb3JkZXJp bmcgdG8gYXJyYW5nZQorICAgdGhlIGtleXMgd2l0aC4gIEFsc28sIGluZGV4IHNlYXJjaGVzIHVz aW5nIGEgY29tcGFyaXNvbiBrZXkgb2YgYQorICAgZGlmZmVyZW50IGRhdGEgdHlwZSByZXF1aXJl IGNvbXBhcmlzb25zIHRvIGJlaGF2ZSBzYW5lbHkgYWNyb3NzIHR3bworICAgZGF0YSB0eXBlcy4g IFRoZSBleHRlbnNpb25zIHRvIHRocmVlIG9yIG1vcmUgZGF0YSB0eXBlcyB3aXRoaW4gYSBmYW1p bHkKKyAgIGFyZSBub3Qgc3RyaWN0bHkgcmVxdWlyZWQgYnkgdGhlIGJ0cmVlIGluZGV4IG1lY2hh bmlzbSBpdHNlbGYsIGJ1dCB0aGUKKyAgIHBsYW5uZXIgcmVsaWVzIG9uIHRoZW0gZm9yIG9wdGlt aXphdGlvbiBwdXJwb3Nlcy4KKyAgPC9wYXJhPgorCisgPC9zZWN0Mj4KKworIDxzZWN0MiBpZD0i YnRyZWUtc3VwcG9ydC1mdW5jcyI+CisgIDx0aXRsZT5CLVRyZWUgU3VwcG9ydCBGdW5jdGlvbnM8 L3RpdGxlPgorCisgIDxwYXJhPgorICAgQXMgc2hvd24gaW4gPHhyZWYgbGlua2VuZD0ieGluZGV4 LWJ0cmVlLXN1cHBvcnQtdGFibGUiLz4sIGJ0cmVlIGRlZmluZXMKKyAgIG9uZSByZXF1aXJlZCBh bmQgZm91ciBvcHRpb25hbCBzdXBwb3J0IGZ1bmN0aW9ucy4gIFRoZSBmaXZlCisgICB1c2VyLWRl ZmluZWQgbWV0aG9kcyBhcmU6CisgIDwvcGFyYT4KKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJs aXN0ZW50cnk+CisgICAgPHRlcm0+PGZ1bmN0aW9uPm9yZGVyPC9mdW5jdGlvbj48L3Rlcm0+Cisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEZvciBlYWNoIGNvbWJpbmF0aW9uIG9m IGRhdGEgdHlwZXMgdGhhdCBhIGJ0cmVlIG9wZXJhdG9yIGZhbWlseQorICAgICAgcHJvdmlkZXMg Y29tcGFyaXNvbiBvcGVyYXRvcnMgZm9yLCBpdCBtdXN0IHByb3ZpZGUgYSBjb21wYXJpc29uCisg ICAgICBzdXBwb3J0IGZ1bmN0aW9uLCByZWdpc3RlcmVkIGluCisgICAgICA8c3RydWN0bmFtZT5w Z19hbXByb2M8L3N0cnVjdG5hbWU+IHdpdGggc3VwcG9ydCBmdW5jdGlvbiBudW1iZXIgMQorICAg ICAgYW5kCisgICAgICA8c3RydWN0ZmllbGQ+YW1wcm9jbGVmdHR5cGU8L3N0cnVjdGZpZWxkPi88 c3RydWN0ZmllbGQ+YW1wcm9jcmlnaHR0eXBlPC9zdHJ1Y3RmaWVsZD4KKyAgICAgIGVxdWFsIHRv IHRoZSBsZWZ0IGFuZCByaWdodCBkYXRhIHR5cGVzIGZvciB0aGUgY29tcGFyaXNvbiAoaS5lLiwK KyAgICAgIHRoZSBzYW1lIGRhdGEgdHlwZXMgdGhhdCB0aGUgbWF0Y2hpbmcgb3BlcmF0b3JzIGFy ZSByZWdpc3RlcmVkCisgICAgICB3aXRoIGluIDxzdHJ1Y3RuYW1lPnBnX2Ftb3A8L3N0cnVjdG5h bWU+KS4gIFRoZSBjb21wYXJpc29uCisgICAgICBmdW5jdGlvbiBtdXN0IHRha2UgdHdvIG5vbi1u dWxsIHZhbHVlcworICAgICAgPHJlcGxhY2VhYmxlPkE8L3JlcGxhY2VhYmxlPiBhbmQgPHJlcGxh Y2VhYmxlPkI8L3JlcGxhY2VhYmxlPiBhbmQKKyAgICAgIHJldHVybiBhbiA8dHlwZT5pbnQzMjwv dHlwZT4gdmFsdWUgdGhhdCBpcworICAgICAgPGxpdGVyYWw+Jmx0OzwvbGl0ZXJhbD4gPGxpdGVy YWw+MDwvbGl0ZXJhbD4sCisgICAgICA8bGl0ZXJhbD4wPC9saXRlcmFsPiwgb3IgPGxpdGVyYWw+ Jmd0OzwvbGl0ZXJhbD4KKyAgICAgIDxsaXRlcmFsPjA8L2xpdGVyYWw+IHdoZW4gPHJlcGxhY2Vh YmxlPkE8L3JlcGxhY2VhYmxlPgorICAgICAgPGxpdGVyYWw+Jmx0OzwvbGl0ZXJhbD4gPHJlcGxh Y2VhYmxlPkI8L3JlcGxhY2VhYmxlPiwKKyAgICAgIDxyZXBsYWNlYWJsZT5BPC9yZXBsYWNlYWJs ZT4gPGxpdGVyYWw+PTwvbGl0ZXJhbD4KKyAgICAgIDxyZXBsYWNlYWJsZT5CPC9yZXBsYWNlYWJs ZT4sIG9yIDxyZXBsYWNlYWJsZT5BPC9yZXBsYWNlYWJsZT4KKyAgICAgIDxsaXRlcmFsPiZndDs8 L2xpdGVyYWw+IDxyZXBsYWNlYWJsZT5CPC9yZXBsYWNlYWJsZT4sCisgICAgICByZXNwZWN0aXZl bHkuICBBIG51bGwgcmVzdWx0IGlzIGRpc2FsbG93ZWQ6IGFsbCB2YWx1ZXMgb2YgdGhlCisgICAg ICBkYXRhIHR5cGUgbXVzdCBiZSBjb21wYXJhYmxlLiAgU2VlCisgICAgICA8ZmlsZW5hbWU+c3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRjb21wYXJlLmM8L2ZpbGVuYW1lPiBmb3IKKyAgICAg IGV4YW1wbGVzLgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBJZiB0aGUgY29t cGFyZWQgdmFsdWVzIGFyZSBvZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlLCB0aGUKKyAgICAgIGFw cHJvcHJpYXRlIGNvbGxhdGlvbiBPSUQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNvbXBhcmlzb24K KyAgICAgIHN1cHBvcnQgZnVuY3Rpb24sIHVzaW5nIHRoZSBzdGFuZGFyZAorICAgICAgPGZ1bmN0 aW9uPlBHX0dFVF9DT0xMQVRJT04oKTwvZnVuY3Rpb24+IG1lY2hhbmlzbS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGZ1bmN0aW9uPnNvcnRzdXBwb3J0PC9mdW5jdGlvbj48L3Rlcm0+CisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIE9wdGlvbmFsbHksIGEgYnRyZWUgb3BlcmF0 b3IgZmFtaWx5IG1heSBwcm92aWRlIDxmaXJzdHRlcm0+c29ydAorICAgICAgIHN1cHBvcnQ8L2Zp cnN0dGVybT4gZnVuY3Rpb24ocyksIHJlZ2lzdGVyZWQgdW5kZXIgc3VwcG9ydAorICAgICAgZnVu Y3Rpb24gbnVtYmVyIDIuICBUaGVzZSBmdW5jdGlvbnMgYWxsb3cgaW1wbGVtZW50aW5nCisgICAg ICBjb21wYXJpc29ucyBmb3Igc29ydGluZyBwdXJwb3NlcyBpbiBhIG1vcmUgZWZmaWNpZW50IHdh eSB0aGFuCisgICAgICBuYWl2ZWx5IGNhbGxpbmcgdGhlIGNvbXBhcmlzb24gc3VwcG9ydCBmdW5j dGlvbi4gIFRoZSBBUElzCisgICAgICBpbnZvbHZlZCBpbiB0aGlzIGFyZSBkZWZpbmVkIGluCisg ICAgICA8ZmlsZW5hbWU+c3JjL2luY2x1ZGUvdXRpbHMvc29ydHN1cHBvcnQuaDwvZmlsZW5hbWU+ LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48ZnVuY3Rpb24+aW5fcmFuZ2U8L2Z1bmN0aW9uPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxpbmRleHRlcm0+CisgICAgICA8cHJpbWFyeT5p bl9yYW5nZSBzdXBwb3J0IGZ1bmN0aW9uczwvcHJpbWFyeT4KKyAgICAgPC9pbmRleHRlcm0+CisK KyAgICAgPGluZGV4dGVybT4KKyAgICAgIDxwcmltYXJ5PnN1cHBvcnQgZnVuY3Rpb25zPC9wcmlt YXJ5PgorICAgICAgPHNlY29uZGFyeT5pbl9yYW5nZTwvc2Vjb25kYXJ5PgorICAgICA8L2luZGV4 dGVybT4KKyAgICAgPHBhcmE+CisgICAgICBPcHRpb25hbGx5LCBhIGJ0cmVlIG9wZXJhdG9yIGZh bWlseSBtYXkgcHJvdmlkZQorICAgICAgPGZpcnN0dGVybT5pbl9yYW5nZTwvZmlyc3R0ZXJtPiBz dXBwb3J0IGZ1bmN0aW9uKHMpLCByZWdpc3RlcmVkCisgICAgICB1bmRlciBzdXBwb3J0IGZ1bmN0 aW9uIG51bWJlciAzLiAgVGhlc2UgYXJlIG5vdCB1c2VkIGR1cmluZyBidHJlZQorICAgICAgaW5k ZXggb3BlcmF0aW9uczsgcmF0aGVyLCB0aGV5IGV4dGVuZCB0aGUgc2VtYW50aWNzIG9mIHRoZQor ICAgICAgb3BlcmF0b3IgZmFtaWx5IHNvIHRoYXQgaXQgY2FuIHN1cHBvcnQgd2luZG93IGNsYXVz ZXMgY29udGFpbmluZworICAgICAgdGhlIDxsaXRlcmFsPlJBTkdFPC9saXRlcmFsPiA8cmVwbGFj ZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4KKyAgICAgIDxsaXRlcmFsPlBSRUNFRElORzwvbGl0 ZXJhbD4gYW5kIDxsaXRlcmFsPlJBTkdFPC9saXRlcmFsPgorICAgICAgPHJlcGxhY2VhYmxlPm9m ZnNldDwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPkZPTExPV0lORzwvbGl0ZXJhbD4KKyAgICAgIGZy YW1lIGJvdW5kIHR5cGVzIChzZWUgPHhyZWYKKyAgICAgICBsaW5rZW5kPSJzeW50YXgtd2luZG93 LWZ1bmN0aW9ucyIvPikuICBGdW5kYW1lbnRhbGx5LCB0aGUgZXh0cmEKKyAgICAgIGluZm9ybWF0 aW9uIHByb3ZpZGVkIGlzIGhvdyB0byBhZGQgb3Igc3VidHJhY3QgYW4KKyAgICAgIDxyZXBsYWNl YWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPiB2YWx1ZSBpbiBhIHdheSB0aGF0IGlzCisgICAgICBj b21wYXRpYmxlIHdpdGggdGhlIGZhbWlseSdzIGRhdGEgb3JkZXJpbmcuCisgICAgIDwvcGFyYT4K KworICAgICA8cGFyYT4KKyAgICAgIEFuIDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+IGZ1 bmN0aW9uIG11c3QgaGF2ZSB0aGUgc2lnbmF0dXJlCisgPHN5bm9wc2lzPgorIGluX3JhbmdlKDxy ZXBsYWNlYWJsZT52YWw8L3JlcGxhY2VhYmxlPiB0eXBlMSwgPHJlcGxhY2VhYmxlPmJhc2U8L3Jl cGxhY2VhYmxlPiB0eXBlMSwgPHJlcGxhY2VhYmxlPm9mZnNldDwvcmVwbGFjZWFibGU+IHR5cGUy LCA8cmVwbGFjZWFibGU+c3ViPC9yZXBsYWNlYWJsZT4gYm9vbCwgPHJlcGxhY2VhYmxlPmxlc3M8 L3JlcGxhY2VhYmxlPiBib29sKQorIHJldHVybnMgYm9vbAorIDwvc3lub3BzaXM+CisgICAgICA8 cmVwbGFjZWFibGU+dmFsPC9yZXBsYWNlYWJsZT4gYW5kCisgICAgICA8cmVwbGFjZWFibGU+YmFz ZTwvcmVwbGFjZWFibGU+IG11c3QgYmUgb2YgdGhlIHNhbWUgdHlwZSwgd2hpY2gKKyAgICAgIGlz IG9uZSBvZiB0aGUgdHlwZXMgc3VwcG9ydGVkIGJ5IHRoZSBvcGVyYXRvciBmYW1pbHkgKGkuZS4s IGEKKyAgICAgIHR5cGUgZm9yIHdoaWNoIGl0IHByb3ZpZGVzIGFuIG9yZGVyaW5nKS4gIEhvd2V2 ZXIsCisgICAgICA8cmVwbGFjZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4gY291bGQgYmUgb2Yg YSBkaWZmZXJlbnQgdHlwZSwKKyAgICAgIHdoaWNoIG1pZ2h0IGJlIG9uZSBvdGhlcndpc2UgdW5z dXBwb3J0ZWQgYnkgdGhlIGZhbWlseS4gIEFuCisgICAgICBleGFtcGxlIGlzIHRoYXQgdGhlIGJ1 aWx0LWluIDxsaXRlcmFsPnRpbWVfb3BzPC9saXRlcmFsPiBmYW1pbHkKKyAgICAgIHByb3ZpZGVz IGFuIDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+IGZ1bmN0aW9uIHRoYXQgaGFzCisgICAg ICA8cmVwbGFjZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4gb2YgdHlwZSA8dHlwZT5pbnRlcnZh bDwvdHlwZT4uCisgICAgICBBIGZhbWlseSBjYW4gcHJvdmlkZSA8ZnVuY3Rpb24+aW5fcmFuZ2U8 L2Z1bmN0aW9uPiBmdW5jdGlvbnMgZm9yCisgICAgICBhbnkgb2YgaXRzIHN1cHBvcnRlZCB0eXBl cyBhbmQgb25lIG9yIG1vcmUKKyAgICAgIDxyZXBsYWNlYWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxl PiB0eXBlcy4gIEVhY2gKKyAgICAgIDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+IGZ1bmN0 aW9uIHNob3VsZCBiZSBlbnRlcmVkIGluCisgICAgICA8c3RydWN0bmFtZT5wZ19hbXByb2M8L3N0 cnVjdG5hbWU+IHdpdGgKKyAgICAgIDxzdHJ1Y3RmaWVsZD5hbXByb2NsZWZ0dHlwZTwvc3RydWN0 ZmllbGQ+IGVxdWFsIHRvCisgICAgICA8dHlwZT50eXBlMTwvdHlwZT4gYW5kIDxzdHJ1Y3RmaWVs ZD5hbXByb2NyaWdodHR5cGU8L3N0cnVjdGZpZWxkPgorICAgICAgZXF1YWwgdG8gPHR5cGU+dHlw ZTI8L3R5cGU+LgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgZXNzZW50 aWFsIHNlbWFudGljcyBvZiBhbiA8ZnVuY3Rpb24+aW5fcmFuZ2U8L2Z1bmN0aW9uPgorICAgICAg ZnVuY3Rpb24gZGVwZW5kIG9uIHRoZSB0d28gQm9vbGVhbiBmbGFnIHBhcmFtZXRlcnMuICBJdCBz aG91bGQKKyAgICAgIGFkZCBvciBzdWJ0cmFjdCA8cmVwbGFjZWFibGU+YmFzZTwvcmVwbGFjZWFi bGU+IGFuZAorICAgICAgPHJlcGxhY2VhYmxlPm9mZnNldDwvcmVwbGFjZWFibGU+LCB0aGVuIGNv bXBhcmUKKyAgICAgIDxyZXBsYWNlYWJsZT52YWw8L3JlcGxhY2VhYmxlPiB0byB0aGUgcmVzdWx0 LCBhcyBmb2xsb3dzOgorICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgIDxwYXJhPgorICAgICAgICAgaWYgPGxpdGVyYWw+ITwvbGl0ZXJhbD48cmVwbGFjZWFi bGU+c3ViPC9yZXBsYWNlYWJsZT4gYW5kCisgICAgICAgICA8bGl0ZXJhbD4hPC9saXRlcmFsPjxy ZXBsYWNlYWJsZT5sZXNzPC9yZXBsYWNlYWJsZT4sIHJldHVybgorICAgICAgICAgPHJlcGxhY2Vh YmxlPnZhbDwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPiZndDs9PC9saXRlcmFsPgorICAgICAgICAg KDxyZXBsYWNlYWJsZT5iYXNlPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+KzwvbGl0ZXJhbD4KKyAg ICAgICAgIDxyZXBsYWNlYWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPikKKyAgICAgICAgPC9wYXJh PgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgIGlmIDxsaXRlcmFsPiE8L2xpdGVyYWw+PHJlcGxhY2VhYmxlPnN1YjwvcmVwbGFj ZWFibGU+IGFuZAorICAgICAgICAgPHJlcGxhY2VhYmxlPmxlc3M8L3JlcGxhY2VhYmxlPiwgcmV0 dXJuCisgICAgICAgICA8cmVwbGFjZWFibGU+dmFsPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+Jmx0 Oz08L2xpdGVyYWw+CisgICAgICAgICAoPHJlcGxhY2VhYmxlPmJhc2U8L3JlcGxhY2VhYmxlPiA8 bGl0ZXJhbD4rPC9saXRlcmFsPgorICAgICAgICAgPHJlcGxhY2VhYmxlPm9mZnNldDwvcmVwbGFj ZWFibGU+KQorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgaWYgPHJlcGxhY2VhYmxlPnN1YjwvcmVw bGFjZWFibGU+IGFuZAorICAgICAgICAgPGxpdGVyYWw+ITwvbGl0ZXJhbD48cmVwbGFjZWFibGU+ bGVzczwvcmVwbGFjZWFibGU+LCByZXR1cm4KKyAgICAgICAgIDxyZXBsYWNlYWJsZT52YWw8L3Jl cGxhY2VhYmxlPiA8bGl0ZXJhbD4mZ3Q7PTwvbGl0ZXJhbD4KKyAgICAgICAgICg8cmVwbGFjZWFi bGU+YmFzZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPi08L2xpdGVyYWw+CisgICAgICAgICA8cmVw bGFjZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4pCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBp ZiA8cmVwbGFjZWFibGU+c3ViPC9yZXBsYWNlYWJsZT4gYW5kCisgICAgICAgICA8cmVwbGFjZWFi bGU+bGVzczwvcmVwbGFjZWFibGU+LCByZXR1cm4KKyAgICAgICAgIDxyZXBsYWNlYWJsZT52YWw8 L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD4mbHQ7PTwvbGl0ZXJhbD4KKyAgICAgICAgICg8cmVwbGFj ZWFibGU+YmFzZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPi08L2xpdGVyYWw+CisgICAgICAgICA8 cmVwbGFjZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4pCisgICAgICAgIDwvcGFyYT4KKyAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICBCZWZvcmUgZG9pbmcg c28sIHRoZSBmdW5jdGlvbiBzaG91bGQgY2hlY2sgdGhlIHNpZ24gb2YKKyAgICAgIDxyZXBsYWNl YWJsZT5vZmZzZXQ8L3JlcGxhY2VhYmxlPjogaWYgaXQgaXMgbGVzcyB0aGFuIHplcm8sIHJhaXNl CisgICAgICBlcnJvcgorICAgICAgPGxpdGVyYWw+RVJSQ09ERV9JTlZBTElEX1BSRUNFRElOR19P Ul9GT0xMT1dJTkdfU0laRTwvbGl0ZXJhbD4KKyAgICAgICgyMjAxMykgd2l0aCBlcnJvciB0ZXh0 IGxpa2UgPHF1b3RlPmludmFsaWQgcHJlY2VkaW5nIG9yCisgICAgICAgZm9sbG93aW5nIHNpemUg aW4gd2luZG93IGZ1bmN0aW9uPC9xdW90ZT4uICAoVGhpcyBpcyByZXF1aXJlZCBieQorICAgICAg dGhlIFNRTCBzdGFuZGFyZCwgYWx0aG91Z2ggbm9uc3RhbmRhcmQgb3BlcmF0b3IgZmFtaWxpZXMg bWlnaHQKKyAgICAgIHBlcmhhcHMgY2hvb3NlIHRvIGlnbm9yZSB0aGlzIHJlc3RyaWN0aW9uLCBz aW5jZSB0aGVyZSBzZWVtcyB0bworICAgICAgYmUgbGl0dGxlIHNlbWFudGljIG5lY2Vzc2l0eSBm b3IgaXQuKSBUaGlzIHJlcXVpcmVtZW50IGlzCisgICAgICBkZWxlZ2F0ZWQgdG8gdGhlIDxmdW5j dGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+IGZ1bmN0aW9uIHNvIHRoYXQKKyAgICAgIHRoZSBjb3Jl IGNvZGUgbmVlZG4ndCB1bmRlcnN0YW5kIHdoYXQgPHF1b3RlPmxlc3MgdGhhbgorICAgICAgIHpl cm88L3F1b3RlPiBtZWFucyBmb3IgYSBwYXJ0aWN1bGFyIGRhdGEgdHlwZS4KKyAgICAgPC9wYXJh PgorCisgICAgIDxwYXJhPgorICAgICAgQW4gYWRkaXRpb25hbCBleHBlY3RhdGlvbiBpcyB0aGF0 IDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+CisgICAgICBmdW5jdGlvbnMgc2hvdWxkLCBp ZiBwcmFjdGljYWwsIGF2b2lkIHRocm93aW5nIGFuIGVycm9yIGlmCisgICAgICA8cmVwbGFjZWFi bGU+YmFzZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPis8L2xpdGVyYWw+CisgICAgICA8cmVwbGFj ZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4gb3IKKyAgICAgIDxyZXBsYWNlYWJsZT5iYXNlPC9y ZXBsYWNlYWJsZT4gPGxpdGVyYWw+LTwvbGl0ZXJhbD4KKyAgICAgIDxyZXBsYWNlYWJsZT5vZmZz ZXQ8L3JlcGxhY2VhYmxlPiB3b3VsZCBvdmVyZmxvdy4gIFRoZSBjb3JyZWN0CisgICAgICBjb21w YXJpc29uIHJlc3VsdCBjYW4gYmUgZGV0ZXJtaW5lZCBldmVuIGlmIHRoYXQgdmFsdWUgd291bGQg YmUKKyAgICAgIG91dCBvZiB0aGUgZGF0YSB0eXBlJ3MgcmFuZ2UuICBOb3RlIHRoYXQgaWYgdGhl IGRhdGEgdHlwZQorICAgICAgaW5jbHVkZXMgY29uY2VwdHMgc3VjaCBhcyA8cXVvdGU+aW5maW5p dHk8L3F1b3RlPiBvcgorICAgICAgPHF1b3RlPk5hTjwvcXVvdGU+LCBleHRyYSBjYXJlIG1heSBi ZSBuZWVkZWQgdG8gZW5zdXJlIHRoYXQKKyAgICAgIDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rp b24+J3MgcmVzdWx0cyBhZ3JlZSB3aXRoIHRoZSBub3JtYWwKKyAgICAgIHNvcnQgb3JkZXIgb2Yg dGhlIG9wZXJhdG9yIGZhbWlseS4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAg VGhlIHJlc3VsdHMgb2YgdGhlIDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+IGZ1bmN0aW9u IG11c3QgYmUKKyAgICAgIGNvbnNpc3RlbnQgd2l0aCB0aGUgc29ydCBvcmRlcmluZyBpbXBvc2Vk IGJ5IHRoZSBvcGVyYXRvciBmYW1pbHkuCisgICAgICBUbyBiZSBwcmVjaXNlLCBnaXZlbiBhbnkg Zml4ZWQgdmFsdWVzIG9mCisgICAgICA8cmVwbGFjZWFibGU+b2Zmc2V0PC9yZXBsYWNlYWJsZT4g YW5kCisgICAgICA8cmVwbGFjZWFibGU+c3ViPC9yZXBsYWNlYWJsZT4sIHRoZW46CisgICAgICA8 aXRlbWl6ZWRsaXN0PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAg ICBJZiA8ZnVuY3Rpb24+aW5fcmFuZ2U8L2Z1bmN0aW9uPiB3aXRoCisgICAgICAgICA8cmVwbGFj ZWFibGU+bGVzczwvcmVwbGFjZWFibGU+ID0gdHJ1ZSBpcyB0cnVlIGZvciBzb21lCisgICAgICAg ICA8cmVwbGFjZWFibGU+dmFsMTwvcmVwbGFjZWFibGU+IGFuZAorICAgICAgICAgPHJlcGxhY2Vh YmxlPmJhc2U8L3JlcGxhY2VhYmxlPiwgaXQgbXVzdCBiZSB0cnVlIGZvciBldmVyeQorICAgICAg ICAgPHJlcGxhY2VhYmxlPnZhbDI8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD4mbHQ7PTwvbGl0ZXJh bD4KKyAgICAgICAgIDxyZXBsYWNlYWJsZT52YWwxPC9yZXBsYWNlYWJsZT4gd2l0aCB0aGUgc2Ft ZQorICAgICAgICAgPHJlcGxhY2VhYmxlPmJhc2U8L3JlcGxhY2VhYmxlPi4KKyAgICAgICAgPC9w YXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFy YT4KKyAgICAgICAgIElmIDxmdW5jdGlvbj5pbl9yYW5nZTwvZnVuY3Rpb24+IHdpdGgKKyAgICAg ICAgIDxyZXBsYWNlYWJsZT5sZXNzPC9yZXBsYWNlYWJsZT4gPSB0cnVlIGlzIGZhbHNlIGZvciBz b21lCisgICAgICAgICA8cmVwbGFjZWFibGU+dmFsMTwvcmVwbGFjZWFibGU+IGFuZAorICAgICAg ICAgPHJlcGxhY2VhYmxlPmJhc2U8L3JlcGxhY2VhYmxlPiwgaXQgbXVzdCBiZSBmYWxzZSBmb3Ig ZXZlcnkKKyAgICAgICAgIDxyZXBsYWNlYWJsZT52YWwyPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+ Jmd0Oz08L2xpdGVyYWw+CisgICAgICAgICA8cmVwbGFjZWFibGU+dmFsMTwvcmVwbGFjZWFibGU+ IHdpdGggdGhlIHNhbWUKKyAgICAgICAgIDxyZXBsYWNlYWJsZT5iYXNlPC9yZXBsYWNlYWJsZT4u CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiA8ZnVuY3Rpb24+aW5fcmFuZ2U8L2Z1bmN0aW9u PiB3aXRoCisgICAgICAgICA8cmVwbGFjZWFibGU+bGVzczwvcmVwbGFjZWFibGU+ID0gdHJ1ZSBp cyB0cnVlIGZvciBzb21lCisgICAgICAgICA8cmVwbGFjZWFibGU+dmFsPC9yZXBsYWNlYWJsZT4g YW5kCisgICAgICAgICA8cmVwbGFjZWFibGU+YmFzZTE8L3JlcGxhY2VhYmxlPiwgaXQgbXVzdCBi ZSB0cnVlIGZvciBldmVyeQorICAgICAgICAgPHJlcGxhY2VhYmxlPmJhc2UyPC9yZXBsYWNlYWJs ZT4gPGxpdGVyYWw+Jmd0Oz08L2xpdGVyYWw+CisgICAgICAgICA8cmVwbGFjZWFibGU+YmFzZTE8 L3JlcGxhY2VhYmxlPiB3aXRoIHRoZSBzYW1lCisgICAgICAgICA8cmVwbGFjZWFibGU+dmFsPC9y ZXBsYWNlYWJsZT4uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAg IDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiA8ZnVuY3Rpb24+aW5fcmFu Z2U8L2Z1bmN0aW9uPiB3aXRoCisgICAgICAgICA8cmVwbGFjZWFibGU+bGVzczwvcmVwbGFjZWFi bGU+ID0gdHJ1ZSBpcyBmYWxzZSBmb3Igc29tZQorICAgICAgICAgPHJlcGxhY2VhYmxlPnZhbDwv cmVwbGFjZWFibGU+IGFuZAorICAgICAgICAgPHJlcGxhY2VhYmxlPmJhc2UxPC9yZXBsYWNlYWJs ZT4sIGl0IG11c3QgYmUgZmFsc2UgZm9yIGV2ZXJ5CisgICAgICAgICA8cmVwbGFjZWFibGU+YmFz ZTI8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD4mbHQ7PTwvbGl0ZXJhbD4KKyAgICAgICAgIDxyZXBs YWNlYWJsZT5iYXNlMTwvcmVwbGFjZWFibGU+IHdpdGggdGhlIHNhbWUKKyAgICAgICAgIDxyZXBs YWNlYWJsZT52YWw8L3JlcGxhY2VhYmxlPi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgIEFuYWxvZ291cyBzdGF0ZW1lbnRz IHdpdGggaW52ZXJ0ZWQgY29uZGl0aW9ucyBob2xkIHdoZW4KKyAgICAgIDxyZXBsYWNlYWJsZT5s ZXNzPC9yZXBsYWNlYWJsZT4gPSBmYWxzZS4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgor ICAgICAgSWYgdGhlIHR5cGUgYmVpbmcgb3JkZXJlZCAoPHR5cGU+dHlwZTE8L3R5cGU+KSBpcyBj b2xsYXRhYmxlLCB0aGUKKyAgICAgIGFwcHJvcHJpYXRlIGNvbGxhdGlvbiBPSUQgd2lsbCBiZSBw YXNzZWQgdG8gdGhlCisgICAgICA8ZnVuY3Rpb24+aW5fcmFuZ2U8L2Z1bmN0aW9uPiBmdW5jdGlv biwgdXNpbmcgdGhlIHN0YW5kYXJkCisgICAgICBQR19HRVRfQ09MTEFUSU9OKCkgbWVjaGFuaXNt LgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICA8ZnVuY3Rpb24+aW5fcmFuZ2U8 L2Z1bmN0aW9uPiBmdW5jdGlvbnMgbmVlZCBub3QgaGFuZGxlIE5VTEwKKyAgICAgIGlucHV0cywg YW5kIHR5cGljYWxseSB3aWxsIGJlIG1hcmtlZCBzdHJpY3QuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxmdW5jdGlvbj5lcXVhbGltYWdlPC9mdW5jdGlvbj48L3Rlcm0+CisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIE9wdGlvbmFsbHksIGEgYnRyZWUgb3BlcmF0b3IgZmFtaWx5 IG1heSBwcm92aWRlCisgICAgICA8ZnVuY3Rpb24+ZXF1YWxpbWFnZTwvZnVuY3Rpb24+ICg8cXVv dGU+ZXF1YWxpdHkgaW1wbGllcyBpbWFnZQorICAgICAgIGVxdWFsaXR5PC9xdW90ZT4pIHN1cHBv cnQgZnVuY3Rpb25zLCByZWdpc3RlcmVkIHVuZGVyIHN1cHBvcnQKKyAgICAgIGZ1bmN0aW9uIG51 bWJlciA0LiAgVGhlc2UgZnVuY3Rpb25zIGFsbG93IHRoZSBjb3JlIGNvZGUgdG8KKyAgICAgIGRl dGVybWluZSB3aGVuIGl0IGlzIHNhZmUgdG8gYXBwbHkgdGhlIGJ0cmVlIGRlZHVwbGljYXRpb24K KyAgICAgIG9wdGltaXphdGlvbi4gIEN1cnJlbnRseSwgPGZ1bmN0aW9uPmVxdWFsaW1hZ2U8L2Z1 bmN0aW9uPgorICAgICAgZnVuY3Rpb25zIGFyZSBvbmx5IGNhbGxlZCB3aGVuIGJ1aWxkaW5nIG9y IHJlYnVpbGRpbmcgYW4gaW5kZXguCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBB biA8ZnVuY3Rpb24+ZXF1YWxpbWFnZTwvZnVuY3Rpb24+IGZ1bmN0aW9uIG11c3QgaGF2ZSB0aGUK KyAgICAgIHNpZ25hdHVyZQorIDxzeW5vcHNpcz4KKyBlcXVhbGltYWdlKDxyZXBsYWNlYWJsZT5v cGNpbnR5cGU8L3JlcGxhY2VhYmxlPiA8dHlwZT5vaWQ8L3R5cGU+KSByZXR1cm5zIGJvb2wKKyA8 L3N5bm9wc2lzPgorICAgICAgVGhlIHJldHVybiB2YWx1ZSBpcyBzdGF0aWMgaW5mb3JtYXRpb24g YWJvdXQgYW4gb3BlcmF0b3IgY2xhc3MKKyAgICAgIGFuZCBjb2xsYXRpb24uICBSZXR1cm5pbmcg PGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gaW5kaWNhdGVzIHRoYXQKKyAgICAgIHRoZSA8ZnVuY3Rp b24+b3JkZXI8L2Z1bmN0aW9uPiBmdW5jdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGNsYXNzIGlzCisg ICAgICBndWFyYW50ZWVkIHRvIG9ubHkgcmV0dXJuIDxsaXRlcmFsPjA8L2xpdGVyYWw+ICg8cXVv dGU+YXJndW1lbnRzCisgICAgICAgYXJlIGVxdWFsPC9xdW90ZT4pIHdoZW4gaXRzIDxyZXBsYWNl YWJsZT5BPC9yZXBsYWNlYWJsZT4gYW5kCisgICAgICA8cmVwbGFjZWFibGU+QjwvcmVwbGFjZWFi bGU+IGFyZ3VtZW50cyBhcmUgYWxzbyBpbnRlcmNoYW5nZWFibGUKKyAgICAgIHdpdGhvdXQgYW55 IGxvc3Mgb2Ygc2VtYW50aWMgaW5mb3JtYXRpb24uICBOb3QgcmVnaXN0ZXJpbmcgYW4KKyAgICAg IDxmdW5jdGlvbj5lcXVhbGltYWdlPC9mdW5jdGlvbj4gZnVuY3Rpb24gb3IgcmV0dXJuaW5nCisg ICAgICA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4gaW5kaWNhdGVzIHRoYXQgdGhpcyBjb25kaXRp b24gY2Fubm90IGJlCisgICAgICBhc3N1bWVkIHRvIGhvbGQuCisgICAgIDwvcGFyYT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgPHJlcGxhY2VhYmxlPm9wY2ludHlwZTwvcmVwbGFjZWFibGU+IGFy Z3VtZW50IGlzIHRoZQorICAgICAgPGxpdGVyYWw+PHN0cnVjdG5hbWU+cGdfdHlwZTwvc3RydWN0 bmFtZT4ub2lkPC9saXRlcmFsPiBvZiB0aGUKKyAgICAgIGRhdGEgdHlwZSB0aGF0IHRoZSBvcGVy YXRvciBjbGFzcyBpbmRleGVzLiAgVGhpcyBpcyBhIGNvbnZlbmllbmNlCisgICAgICB0aGF0IGFs bG93cyByZXVzZSBvZiB0aGUgc2FtZSB1bmRlcmx5aW5nCisgICAgICA8ZnVuY3Rpb24+ZXF1YWxp bWFnZTwvZnVuY3Rpb24+IGZ1bmN0aW9uIGFjcm9zcyBvcGVyYXRvciBjbGFzc2VzLgorICAgICAg SWYgPHJlcGxhY2VhYmxlPm9wY2ludHlwZTwvcmVwbGFjZWFibGU+IGlzIGEgY29sbGF0YWJsZSBk YXRhCisgICAgICB0eXBlLCB0aGUgYXBwcm9wcmlhdGUgY29sbGF0aW9uIE9JRCB3aWxsIGJlIHBh c3NlZCB0byB0aGUKKyAgICAgIDxmdW5jdGlvbj5lcXVhbGltYWdlPC9mdW5jdGlvbj4gZnVuY3Rp b24sIHVzaW5nIHRoZSBzdGFuZGFyZAorICAgICAgPGZ1bmN0aW9uPlBHX0dFVF9DT0xMQVRJT04o KTwvZnVuY3Rpb24+IG1lY2hhbmlzbS4KKyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAg IEFzIGZhciBhcyB0aGUgb3BlcmF0b3IgY2xhc3MgaXMgY29uY2VybmVkLCByZXR1cm5pbmcKKyAg ICAgIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IGluZGljYXRlcyB0aGF0IGRlZHVwbGljYXRpb24g aXMgc2FmZSAob3IKKyAgICAgIHNhZmUgZm9yIHRoZSBjb2xsYXRpb24gd2hvc2UgT0lEIHdhcyBw YXNzZWQgdG8gaXRzCisgICAgICA8ZnVuY3Rpb24+ZXF1YWxpbWFnZTwvZnVuY3Rpb24+IGZ1bmN0 aW9uKS4gIEhvd2V2ZXIsIHRoZSBjb3JlCisgICAgICBjb2RlIHdpbGwgb25seSBkZWVtIGRlZHVw bGljYXRpb24gc2FmZSBmb3IgYW4gaW5kZXggd2hlbgorICAgICAgPGVtcGhhc2lzPmV2ZXJ5PC9l bXBoYXNpcz4gaW5kZXhlZCBjb2x1bW4gdXNlcyBhbiBvcGVyYXRvciBjbGFzcworICAgICAgdGhh dCByZWdpc3RlcnMgYW4gPGZ1bmN0aW9uPmVxdWFsaW1hZ2U8L2Z1bmN0aW9uPiBmdW5jdGlvbiwg YW5kCisgICAgICBlYWNoIGZ1bmN0aW9uIGFjdHVhbGx5IHJldHVybnMgPGxpdGVyYWw+dHJ1ZTwv bGl0ZXJhbD4gd2hlbgorICAgICAgY2FsbGVkLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgor ICAgICAgSW1hZ2UgZXF1YWxpdHkgaXMgPGVtcGhhc2lzPmFsbW9zdDwvZW1waGFzaXM+IHRoZSBz YW1lIGNvbmRpdGlvbgorICAgICAgYXMgc2ltcGxlIGJpdHdpc2UgZXF1YWxpdHkuICBUaGVyZSBp cyBvbmUgc3VidGxlIGRpZmZlcmVuY2U6IFdoZW4KKyAgICAgIGluZGV4aW5nIGEgdmFybGVuYSBk YXRhIHR5cGUsIHRoZSBvbi1kaXNrIHJlcHJlc2VudGF0aW9uIG9mIHR3bworICAgICAgaW1hZ2Ug ZXF1YWwgZGF0dW1zIG1heSBub3QgYmUgYml0d2lzZSBlcXVhbCBkdWUgdG8gaW5jb25zaXN0ZW50 CisgICAgICBhcHBsaWNhdGlvbiBvZiA8YWNyb255bT5UT0FTVDwvYWNyb255bT4gY29tcHJlc3Np b24gb24gaW5wdXQuCisgICAgICBGb3JtYWxseSwgd2hlbiBhbiBvcGVyYXRvciBjbGFzcydzCisg ICAgICA8ZnVuY3Rpb24+ZXF1YWxpbWFnZTwvZnVuY3Rpb24+IGZ1bmN0aW9uIHJldHVybnMKKyAg ICAgIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+LCBpdCBpcyBzYWZlIHRvIGFzc3VtZSB0aGF0IHRo ZQorICAgICAgPGxpdGVyYWw+ZGF0dW1faW1hZ2VfZXEoKTwvbGl0ZXJhbD4gQyBmdW5jdGlvbiB3 aWxsIGFsd2F5cyBhZ3JlZQorICAgICAgd2l0aCB0aGUgb3BlcmF0b3IgY2xhc3MncyA8ZnVuY3Rp b24+b3JkZXI8L2Z1bmN0aW9uPiBmdW5jdGlvbgorICAgICAgKHByb3ZpZGVkIHRoYXQgdGhlIHNh bWUgY29sbGF0aW9uIE9JRCBpcyBwYXNzZWQgdG8gYm90aCB0aGUKKyAgICAgIDxmdW5jdGlvbj5l cXVhbGltYWdlPC9mdW5jdGlvbj4gYW5kIDxmdW5jdGlvbj5vcmRlcjwvZnVuY3Rpb24+CisgICAg ICBmdW5jdGlvbnMpLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGNvcmUg Y29kZSBpcyBmdW5kYW1lbnRhbGx5IHVuYWJsZSB0byBkZWR1Y2UgYW55dGhpbmcgYWJvdXQKKyAg ICAgIHRoZSA8cXVvdGU+ZXF1YWxpdHkgaW1wbGllcyBpbWFnZSBlcXVhbGl0eTwvcXVvdGU+IHN0 YXR1cyBvZiBhbgorICAgICAgb3BlcmF0b3IgY2xhc3Mgd2l0aGluIGEgbXVsdGlwbGUtZGF0YS10 eXBlIGZhbWlseSBiYXNlZCBvbgorICAgICAgZGV0YWlscyBmcm9tIG90aGVyIG9wZXJhdG9yIGNs YXNzZXMgaW4gdGhlIHNhbWUgZmFtaWx5LiAgQWxzbywgaXQKKyAgICAgIGlzIG5vdCBzZW5zaWJs ZSBmb3IgYW4gb3BlcmF0b3IgZmFtaWx5IHRvIHJlZ2lzdGVyIGEgY3Jvc3MtdHlwZQorICAgICAg PGZ1bmN0aW9uPmVxdWFsaW1hZ2U8L2Z1bmN0aW9uPiBmdW5jdGlvbiwgYW5kIGF0dGVtcHRpbmcg dG8gZG8gc28KKyAgICAgIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yLiAgVGhpcyBpcyBiZWNhdXNl IDxxdW90ZT5lcXVhbGl0eSBpbXBsaWVzCisgICAgICAgaW1hZ2UgZXF1YWxpdHk8L3F1b3RlPiBz dGF0dXMgZG9lcyBub3QganVzdCBkZXBlbmQgb24KKyAgICAgIHNvcnRpbmcvZXF1YWxpdHkgc2Vt YW50aWNzLCB3aGljaCBhcmUgbW9yZSBvciBsZXNzIGRlZmluZWQgYXQgdGhlCisgICAgICBvcGVy YXRvciBmYW1pbHkgbGV2ZWwuICBJbiBnZW5lcmFsLCB0aGUgc2VtYW50aWNzIHRoYXQgb25lCisg ICAgICBwYXJ0aWN1bGFyIGRhdGEgdHlwZSBpbXBsZW1lbnRzIG11c3QgYmUgY29uc2lkZXJlZCBz ZXBhcmF0ZWx5LgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGNvbnZlbnRp b24gZm9sbG93ZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzZXMgaW5jbHVkZWQgd2l0aCB0aGUKKyAg ICAgIGNvcmUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBkaXN0cmlidXRp b24gaXMgdG8KKyAgICAgIHJlZ2lzdGVyIGEgc3RvY2ssIGdlbmVyaWMgPGZ1bmN0aW9uPmVxdWFs aW1hZ2U8L2Z1bmN0aW9uPgorICAgICAgZnVuY3Rpb24uICBNb3N0IG9wZXJhdG9yIGNsYXNzZXMg cmVnaXN0ZXIKKyAgICAgIDxmdW5jdGlvbj5idGVxdWFsaW1hZ2UoKTwvZnVuY3Rpb24+LCB3aGlj aCBpbmRpY2F0ZXMgdGhhdAorICAgICAgZGVkdXBsaWNhdGlvbiBpcyBzYWZlIHVuY29uZGl0aW9u YWxseS4gIE9wZXJhdG9yIGNsYXNzZXMgZm9yCisgICAgICBjb2xsYXRhYmxlIGRhdGEgdHlwZXMg c3VjaCBhcyA8dHlwZT50ZXh0PC90eXBlPiByZWdpc3RlcgorICAgICAgPGZ1bmN0aW9uPmJ0dmFy c3RyZXF1YWxpbWFnZSgpPC9mdW5jdGlvbj4sIHdoaWNoIGluZGljYXRlcyB0aGF0CisgICAgICBk ZWR1cGxpY2F0aW9uIGlzIHNhZmUgd2l0aCBkZXRlcm1pbmlzdGljIGNvbGxhdGlvbnMuICBCZXN0 CisgICAgICBwcmFjdGljZSBmb3IgdGhpcmQtcGFydHkgZXh0ZW5zaW9ucyBpcyB0byByZWdpc3Rl ciB0aGVpciBvd24KKyAgICAgIGN1c3RvbSBmdW5jdGlvbiB0byByZXRhaW4gY29udHJvbC4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDx2YXJs aXN0ZW50cnk+CisgICAgPHRlcm0+PGZ1bmN0aW9uPm9wdGlvbnM8L2Z1bmN0aW9uPjwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgT3B0aW9uYWxseSwgYSBCLXRyZWUg b3BlcmF0b3IgZmFtaWx5IG1heSBwcm92aWRlCisgICAgICA8ZnVuY3Rpb24+b3B0aW9uczwvZnVu Y3Rpb24+ICg8cXVvdGU+b3BlcmF0b3IgY2xhc3Mgc3BlY2lmaWMKKyAgICAgIG9wdGlvbnM8L3F1 b3RlPikgc3VwcG9ydCBmdW5jdGlvbnMsIHJlZ2lzdGVyZWQgdW5kZXIgc3VwcG9ydAorICAgICAg ZnVuY3Rpb24gbnVtYmVyIDUuICBUaGVzZSBmdW5jdGlvbnMgZGVmaW5lIGEgc2V0IG9mIHVzZXIt dmlzaWJsZQorICAgICAgcGFyYW1ldGVycyB0aGF0IGNvbnRyb2wgb3BlcmF0b3IgY2xhc3MgYmVo YXZpb3IuCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBBbiA8ZnVuY3Rpb24+b3B0 aW9uczwvZnVuY3Rpb24+IHN1cHBvcnQgZnVuY3Rpb24gbXVzdCBoYXZlIHRoZQorICAgICAgc2ln bmF0dXJlCisgPHN5bm9wc2lzPgorIG9wdGlvbnMoPHJlcGxhY2VhYmxlPnJlbG9wdHM8L3JlcGxh Y2VhYmxlPiA8dHlwZT5sb2NhbF9yZWxvcHRzICo8L3R5cGU+KSByZXR1cm5zIHZvaWQKKyA8L3N5 bm9wc2lzPgorICAgICAgVGhlIGZ1bmN0aW9uIGlzIHBhc3NlZCBhIHBvaW50ZXIgdG8gYSA8c3Ry dWN0bmFtZT5sb2NhbF9yZWxvcHRzPC9zdHJ1Y3RuYW1lPgorICAgICAgc3RydWN0LCB3aGljaCBu ZWVkcyB0byBiZSBmaWxsZWQgd2l0aCBhIHNldCBvZiBvcGVyYXRvciBjbGFzcworICAgICAgc3Bl Y2lmaWMgb3B0aW9ucy4gIFRoZSBvcHRpb25zIGNhbiBiZSBhY2Nlc3NlZCBmcm9tIG90aGVyIHN1 cHBvcnQKKyAgICAgIGZ1bmN0aW9ucyB1c2luZyB0aGUgPGxpdGVyYWw+UEdfSEFTX09QQ0xBU1Nf T1BUSU9OUygpPC9saXRlcmFsPiBhbmQKKyAgICAgIDxsaXRlcmFsPlBHX0dFVF9PUENMQVNTX09Q VElPTlMoKTwvbGl0ZXJhbD4gbWFjcm9zLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAg ICAgQ3VycmVudGx5LCBubyBCLVRyZWUgb3BlcmF0b3IgY2xhc3MgaGFzIGFuIDxmdW5jdGlvbj5v cHRpb25zPC9mdW5jdGlvbj4KKyAgICAgIHN1cHBvcnQgZnVuY3Rpb24uICBCLXRyZWUgZG9lc24n dCBhbGxvdyBmbGV4aWJsZSByZXByZXNlbnRhdGlvbiBvZiBrZXlzCisgICAgICBsaWtlIEdpU1Qs IFNQLUdpU1QsIEdJTiBhbmQgQlJJTiBkby4gIFNvLCA8ZnVuY3Rpb24+b3B0aW9uczwvZnVuY3Rp b24+CisgICAgICBwcm9iYWJseSBkb2Vzbid0IGhhdmUgbXVjaCBhcHBsaWNhdGlvbiBpbiB0aGUg Y3VycmVudCBCLXRyZWUgaW5kZXgKKyAgICAgIGFjY2VzcyBtZXRob2QuICBOZXZlcnRoZWxlc3Ms IHRoaXMgc3VwcG9ydCBmdW5jdGlvbiB3YXMgYWRkZWQgdG8gQi10cmVlCisgICAgICBmb3IgdW5p Zm9ybWl0eSwgYW5kIHdpbGwgcHJvYmFibHkgZmluZCB1c2VzIGR1cmluZyBmdXJ0aGVyCisgICAg ICBldm9sdXRpb24gb2YgQi10cmVlIGluIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0 bmFtZT4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisgIDwvdmFyaWFibGVsaXN0PgorCisgPC9zZWN0Mj4KKworIDxzZWN0MiBpZD0iYnRyZWUtaW1w bGVtZW50YXRpb24iPgorICA8dGl0bGU+SW1wbGVtZW50YXRpb248L3RpdGxlPgorCisgIDxwYXJh PgorICAgVGhpcyBzZWN0aW9uIGNvdmVycyBCLVRyZWUgaW5kZXggaW1wbGVtZW50YXRpb24gZGV0 YWlscyB0aGF0IG1heSBiZQorICAgb2YgdXNlIHRvIGFkdmFuY2VkIHVzZXJzLiAgU2VlCisgICA8 ZmlsZW5hbWU+c3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9SRUFETUU8L2ZpbGVuYW1lPiBpbiB0 aGUgc291cmNlCisgICBkaXN0cmlidXRpb24gZm9yIGEgbXVjaCBtb3JlIGRldGFpbGVkLCBpbnRl cm5hbHMtZm9jdXNlZCBkZXNjcmlwdGlvbgorICAgb2YgdGhlIEItVHJlZSBpbXBsZW1lbnRhdGlv bi4KKyAgPC9wYXJhPgorICA8c2VjdDMgaWQ9ImJ0cmVlLXN0cnVjdHVyZSI+CisgICA8dGl0bGU+ Qi1UcmVlIFN0cnVjdHVyZTwvdGl0bGU+CisgICA8cGFyYT4KKyAgICA8cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+IEItVHJlZSBpbmRleGVzIGFyZQorICAgIG11bHRpLWxldmVs IHRyZWUgc3RydWN0dXJlcywgd2hlcmUgZWFjaCBsZXZlbCBvZiB0aGUgdHJlZSBjYW4gYmUKKyAg ICB1c2VkIGFzIGEgZG91Ymx5LWxpbmtlZCBsaXN0IG9mIHBhZ2VzLiAgQSBzaW5nbGUgbWV0YXBh Z2UgaXMgc3RvcmVkCisgICAgaW4gYSBmaXhlZCBwb3NpdGlvbiBhdCB0aGUgc3RhcnQgb2YgdGhl IGZpcnN0IHNlZ21lbnQgZmlsZSBvZiB0aGUKKyAgICBpbmRleC4gIEFsbCBvdGhlciBwYWdlcyBh cmUgZWl0aGVyIGxlYWYgcGFnZXMgb3IgaW50ZXJuYWwgcGFnZXMuCisgICAgTGVhZiBwYWdlcyBh cmUgdGhlIHBhZ2VzIG9uIHRoZSBsb3dlc3QgbGV2ZWwgb2YgdGhlIHRyZWUuICBBbGwKKyAgICBv dGhlciBsZXZlbHMgY29uc2lzdCBvZiBpbnRlcm5hbCBwYWdlcy4gIEVhY2ggbGVhZiBwYWdlIGNv bnRhaW5zCisgICAgdHVwbGVzIHRoYXQgcG9pbnQgdG8gdGFibGUgcm93cy4gIEVhY2ggaW50ZXJu YWwgcGFnZSBjb250YWlucworICAgIHR1cGxlcyB0aGF0IHBvaW50IHRvIHRoZSBuZXh0IGxldmVs IGRvd24gaW4gdGhlIHRyZWUuICBUeXBpY2FsbHksCisgICAgb3ZlciA5OSUgb2YgYWxsIHBhZ2Vz IGFyZSBsZWFmIHBhZ2VzLiAgQm90aCBpbnRlcm5hbCBwYWdlcyBhbmQgbGVhZgorICAgIHBhZ2Vz IHVzZSB0aGUgc3RhbmRhcmQgcGFnZSBmb3JtYXQgZGVzY3JpYmVkIGluIDx4cmVmCisgICAgIGxp bmtlbmQ9InN0b3JhZ2UtcGFnZS1sYXlvdXQiLz4uCisgICA8L3BhcmE+CisgICA8cGFyYT4KKyAg ICBOZXcgbGVhZiBwYWdlcyBhcmUgYWRkZWQgdG8gYSBCLVRyZWUgaW5kZXggd2hlbiBhbiBleGlz dGluZyBsZWFmCisgICAgcGFnZSBjYW5ub3QgZml0IGFuIGluY29taW5nIHR1cGxlLiAgQSA8Zmly c3R0ZXJtPnBhZ2UKKyAgICAgc3BsaXQ8L2ZpcnN0dGVybT4gb3BlcmF0aW9uIG1ha2VzIHJvb20g Zm9yIGl0ZW1zIHRoYXQgb3JpZ2luYWxseQorICAgIGJlbG9uZ2VkIG9uIHRoZSBvdmVyZmxvd2lu ZyBwYWdlIGJ5IG1vdmluZyBhIHBvcnRpb24gb2YgdGhlIGl0ZW1zCisgICAgdG8gYSBuZXcgcGFn ZS4gIFBhZ2Ugc3BsaXRzIG11c3QgYWxzbyBpbnNlcnQgYSBuZXcKKyAgICA8Zmlyc3R0ZXJtPmRv d25saW5rPC9maXJzdHRlcm0+IHRvIHRoZSBuZXcgcGFnZSBpbiB0aGUgcGFyZW50IHBhZ2UsCisg ICAgd2hpY2ggbWF5IGNhdXNlIHRoZSBwYXJlbnQgdG8gc3BsaXQgaW4gdHVybi4gIFBhZ2Ugc3Bs aXRzCisgICAgPHF1b3RlPmNhc2NhZGUgdXB3YXJkczwvcXVvdGU+IGluIGEgcmVjdXJzaXZlIGZh c2hpb24uICBXaGVuIHRoZQorICAgIHJvb3QgcGFnZSBmaW5hbGx5IGNhbm5vdCBmaXQgYSBuZXcg ZG93bmxpbmssIGEgPGZpcnN0dGVybT5yb290IHBhZ2UKKyAgICAgc3BsaXQ8L2ZpcnN0dGVybT4g b3BlcmF0aW9uIHRha2VzIHBsYWNlLiAgVGhpcyBhZGRzIGEgbmV3IGxldmVsIHRvCisgICAgdGhl IHRyZWUgc3RydWN0dXJlIGJ5IGNyZWF0aW5nIGEgbmV3IHJvb3QgcGFnZSB0aGF0IGlzIG9uZSBs ZXZlbAorICAgIGFib3ZlIHRoZSBvcmlnaW5hbCByb290IHBhZ2UuCisgICA8L3BhcmE+CisgIDwv c2VjdDM+CisKKyAgPHNlY3QzIGlkPSJidHJlZS1kZWxldGlvbiI+CisgICA8dGl0bGU+Qm90dG9t LXVwIEluZGV4IERlbGV0aW9uPC90aXRsZT4KKyAgIDxwYXJhPgorICAgIEItVHJlZSBpbmRleGVz IGFyZSBub3QgZGlyZWN0bHkgYXdhcmUgdGhhdCB1bmRlciBNVkNDLCB0aGVyZSBtaWdodAorICAg IGJlIG11bHRpcGxlIGV4dGFudCB2ZXJzaW9ucyBvZiB0aGUgc2FtZSBsb2dpY2FsIHRhYmxlIHJv dzsgdG8gYW4KKyAgICBpbmRleCwgZWFjaCB0dXBsZSBpcyBhbiBpbmRlcGVuZGVudCBvYmplY3Qg dGhhdCBuZWVkcyBpdHMgb3duIGluZGV4CisgICAgZW50cnkuICA8cXVvdGU+VmVyc2lvbiBjaHVy bjwvcXVvdGU+IHR1cGxlcyBtYXkgc29tZXRpbWVzCisgICAgYWNjdW11bGF0ZSBhbmQgYWR2ZXJz ZWx5IGFmZmVjdCBxdWVyeSBsYXRlbmN5IGFuZCB0aHJvdWdocHV0LiAgVGhpcworICAgIHR5cGlj YWxseSBvY2N1cnMgd2l0aCA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+LWhlYXZ5IHdvcmtsb2Fk cworICAgIHdoZXJlIG1vc3QgaW5kaXZpZHVhbCB1cGRhdGVzIGNhbm5vdCBhcHBseSB0aGUKKyAg ICA8bGluayBsaW5rZW5kPSJzdG9yYWdlLWhvdCI+PGFjcm9ueW0+SE9UPC9hY3JvbnltPiBvcHRp bWl6YXRpb24uPC9saW5rPgorICAgIENoYW5naW5nIHRoZSB2YWx1ZSBvZiBvbmx5CisgICAgb25l IGNvbHVtbiBjb3ZlcmVkIGJ5IG9uZSBpbmRleCBkdXJpbmcgYW4gPGNvbW1hbmQ+VVBEQVRFPC9j b21tYW5kPgorICAgIDxlbXBoYXNpcz5hbHdheXM8L2VtcGhhc2lzPiBuZWNlc3NpdGF0ZXMgYSBu ZXcgc2V0IG9mIGluZGV4IHR1cGxlcworICAgICZtZGFzaDsgb25lIGZvciA8ZW1waGFzaXM+ZWFj aCBhbmQgZXZlcnk8L2VtcGhhc2lzPiBpbmRleCBvbiB0aGUKKyAgICB0YWJsZS4gIE5vdGUgaW4g cGFydGljdWxhciB0aGF0IHRoaXMgaW5jbHVkZXMgaW5kZXhlcyB0aGF0IHdlcmUgbm90CisgICAg PHF1b3RlPmxvZ2ljYWxseSBtb2RpZmllZDwvcXVvdGU+IGJ5IHRoZSA8Y29tbWFuZD5VUERBVEU8 L2NvbW1hbmQ+LgorICAgIEFsbCBpbmRleGVzIHdpbGwgbmVlZCBhIHN1Y2Nlc3NvciBwaHlzaWNh bCBpbmRleCB0dXBsZSB0aGF0IHBvaW50cworICAgIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBpbiB0 aGUgdGFibGUuICBFYWNoIG5ldyB0dXBsZSB3aXRoaW4gZWFjaAorICAgIGluZGV4IHdpbGwgZ2Vu ZXJhbGx5IG5lZWQgdG8gY29leGlzdCB3aXRoIHRoZSBvcmlnaW5hbAorICAgIDxxdW90ZT51cGRh dGVkPC9xdW90ZT4gdHVwbGUgZm9yIGEgc2hvcnQgcGVyaW9kIG9mIHRpbWUgKHR5cGljYWxseQor ICAgIHVudGlsIHNob3J0bHkgYWZ0ZXIgdGhlIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4gdHJh bnNhY3Rpb24KKyAgICBjb21taXRzKS4KKyAgIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIEItVHJl ZSBpbmRleGVzIGluY3JlbWVudGFsbHkgZGVsZXRlIHZlcnNpb24gY2h1cm4gaW5kZXggdHVwbGVz IGJ5CisgICAgcGVyZm9ybWluZyA8Zmlyc3R0ZXJtPmJvdHRvbS11cCBpbmRleCBkZWxldGlvbjwv Zmlyc3R0ZXJtPiBwYXNzZXMuCisgICAgRWFjaCBkZWxldGlvbiBwYXNzIGlzIHRyaWdnZXJlZCBp biByZWFjdGlvbiB0byBhbiBhbnRpY2lwYXRlZAorICAgIDxxdW90ZT52ZXJzaW9uIGNodXJuIHBh Z2Ugc3BsaXQ8L3F1b3RlPi4gIFRoaXMgb25seSBoYXBwZW5zIHdpdGgKKyAgICBpbmRleGVzIHRo YXQgYXJlIG5vdCBsb2dpY2FsbHkgbW9kaWZpZWQgYnkKKyAgICA8Y29tbWFuZD5VUERBVEU8L2Nv bW1hbmQ+IHN0YXRlbWVudHMsIHdoZXJlIGNvbmNlbnRyYXRlZCBidWlsZCB1cAorICAgIG9mIG9i c29sZXRlIHZlcnNpb25zIGluIHBhcnRpY3VsYXIgcGFnZXMgd291bGQgb2NjdXIgb3RoZXJ3aXNl LiAgQQorICAgIHBhZ2Ugc3BsaXQgd2lsbCB1c3VhbGx5IGJlIGF2b2lkZWQsIHRob3VnaCBpdCdz IHBvc3NpYmxlIHRoYXQKKyAgICBjZXJ0YWluIGltcGxlbWVudGF0aW9uLWxldmVsIGhldXJpc3Rp Y3Mgd2lsbCBmYWlsIHRvIGlkZW50aWZ5IGFuZAorICAgIGRlbGV0ZSBldmVuIG9uZSBnYXJiYWdl IGluZGV4IHR1cGxlIChpbiB3aGljaCBjYXNlIGEgcGFnZSBzcGxpdCBvcgorICAgIGRlZHVwbGlj YXRpb24gcGFzcyByZXNvbHZlcyB0aGUgaXNzdWUgb2YgYW4gaW5jb21pbmcgbmV3IHR1cGxlIG5v dAorICAgIGZpdHRpbmcgb24gYSBsZWFmIHBhZ2UpLiAgVGhlIHdvcnN0LWNhc2UgbnVtYmVyIG9m IHZlcnNpb25zIHRoYXQKKyAgICBhbnkgaW5kZXggc2NhbiBtdXN0IHRyYXZlcnNlIChmb3IgYW55 IHNpbmdsZSBsb2dpY2FsIHJvdykgaXMgYW4KKyAgICBpbXBvcnRhbnQgY29udHJpYnV0b3IgdG8g b3ZlcmFsbCBzeXN0ZW0gcmVzcG9uc2l2ZW5lc3MgYW5kCisgICAgdGhyb3VnaHB1dC4gIEEgYm90 dG9tLXVwIGluZGV4IGRlbGV0aW9uIHBhc3MgdGFyZ2V0cyBzdXNwZWN0ZWQKKyAgICBnYXJiYWdl IHR1cGxlcyBpbiBhIHNpbmdsZSBsZWFmIHBhZ2UgYmFzZWQgb24KKyAgICA8ZW1waGFzaXM+cXVh bGl0YXRpdmU8L2VtcGhhc2lzPiBkaXN0aW5jdGlvbnMgaW52b2x2aW5nIGxvZ2ljYWwKKyAgICBy b3dzIGFuZCB2ZXJzaW9ucy4gIFRoaXMgY29udHJhc3RzIHdpdGggdGhlIDxxdW90ZT50b3AtZG93 bjwvcXVvdGU+CisgICAgaW5kZXggY2xlYW51cCBwZXJmb3JtZWQgYnkgYXV0b3ZhY3V1bSB3b3Jr ZXJzLCB3aGljaCBpcyB0cmlnZ2VyZWQKKyAgICB3aGVuIGNlcnRhaW4gPGVtcGhhc2lzPnF1YW50 aXRhdGl2ZTwvZW1waGFzaXM+IHRhYmxlLWxldmVsCisgICAgdGhyZXNob2xkcyBhcmUgZXhjZWVk ZWQgKHNlZSA8eHJlZiBsaW5rZW5kPSJhdXRvdmFjdXVtIi8+KS4KKyAgIDwvcGFyYT4KKyAgIDxu b3RlPgorICAgIDxwYXJhPgorICAgICBOb3QgYWxsIGRlbGV0aW9uIG9wZXJhdGlvbnMgdGhhdCBh cmUgcGVyZm9ybWVkIHdpdGhpbiBCLVRyZWUKKyAgICAgaW5kZXhlcyBhcmUgYm90dG9tLXVwIGRl bGV0aW9uIG9wZXJhdGlvbnMuICBUaGVyZSBpcyBhIGRpc3RpbmN0CisgICAgIGNhdGVnb3J5IG9m IGluZGV4IHR1cGxlIGRlbGV0aW9uOiA8Zmlyc3R0ZXJtPnNpbXBsZSBpbmRleCB0dXBsZQorICAg ICAgZGVsZXRpb248L2ZpcnN0dGVybT4uICBUaGlzIGlzIGEgZGVmZXJyZWQgbWFpbnRlbmFuY2Ug b3BlcmF0aW9uCisgICAgIHRoYXQgZGVsZXRlcyBpbmRleCB0dXBsZXMgdGhhdCBhcmUga25vd24g dG8gYmUgc2FmZSB0byBkZWxldGUKKyAgICAgKHRob3NlIHdob3NlIGl0ZW0gaWRlbnRpZmllcidz IDxsaXRlcmFsPkxQX0RFQUQ8L2xpdGVyYWw+IGJpdCBpcworICAgICBhbHJlYWR5IHNldCkuICBM aWtlIGJvdHRvbS11cCBpbmRleCBkZWxldGlvbiwgc2ltcGxlIGluZGV4CisgICAgIGRlbGV0aW9u IHRha2VzIHBsYWNlIGF0IHRoZSBwb2ludCB0aGF0IGEgcGFnZSBzcGxpdCBpcyBhbnRpY2lwYXRl ZAorICAgICBhcyBhIHdheSBvZiBhdm9pZGluZyB0aGUgc3BsaXQuCisgICAgPC9wYXJhPgorICAg IDxwYXJhPgorICAgICBTaW1wbGUgZGVsZXRpb24gaXMgb3Bwb3J0dW5pc3RpYyBpbiB0aGUgc2Vu c2UgdGhhdCBpdCBjYW4gb25seQorICAgICB0YWtlIHBsYWNlIHdoZW4gcmVjZW50IGluZGV4IHNj YW5zIHNldCB0aGUKKyAgICAgPGxpdGVyYWw+TFBfREVBRDwvbGl0ZXJhbD4gYml0cyBvZiBhZmZl Y3RlZCBpdGVtcyBpbiBwYXNzaW5nLgorICAgICBQcmlvciB0byA8cHJvZHVjdG5hbWU+UG9zdGdy ZVNRTDwvcHJvZHVjdG5hbWU+IDE0LCB0aGUgb25seQorICAgICBjYXRlZ29yeSBvZiBCLVRyZWUg ZGVsZXRpb24gd2FzIHNpbXBsZSBkZWxldGlvbi4gIFRoZSBtYWluCisgICAgIGRpZmZlcmVuY2Vz IGJldHdlZW4gaXQgYW5kIGJvdHRvbS11cCBkZWxldGlvbiBhcmUgdGhhdCBvbmx5IHRoZQorICAg ICBmb3JtZXIgaXMgb3Bwb3J0dW5pc3RpY2FsbHkgZHJpdmVuIGJ5IHRoZSBhY3Rpdml0eSBvZiBw YXNzaW5nCisgICAgIGluZGV4IHNjYW5zLCB3aGlsZSBvbmx5IHRoZSBsYXR0ZXIgc3BlY2lmaWNh bGx5IHRhcmdldHMgdmVyc2lvbgorICAgICBjaHVybiBmcm9tIDxjb21tYW5kPlVQREFURTwvY29t bWFuZD5zIHRoYXQgZG8gbm90IGxvZ2ljYWxseSBtb2RpZnkKKyAgICAgaW5kZXhlZCBjb2x1bW5z LgorICAgIDwvcGFyYT4KKyAgIDwvbm90ZT4KKyAgIDxwYXJhPgorICAgIEJvdHRvbS11cCBpbmRl eCBkZWxldGlvbiBwZXJmb3JtcyB0aGUgdmFzdCBtYWpvcml0eSBvZiBhbGwgZ2FyYmFnZQorICAg IGluZGV4IHR1cGxlIGNsZWFudXAgZm9yIHBhcnRpY3VsYXIgaW5kZXhlcyB3aXRoIGNlcnRhaW4g d29ya2xvYWRzLgorICAgIFRoaXMgaXMgZXhwZWN0ZWQgd2l0aCBhbnkgQi1UcmVlIGluZGV4IHRo YXQgaXMgc3ViamVjdCB0bworICAgIHNpZ25pZmljYW50IHZlcnNpb24gY2h1cm4gZnJvbSA8Y29t bWFuZD5VUERBVEU8L2NvbW1hbmQ+cyB0aGF0CisgICAgcmFyZWx5IG9yIG5ldmVyIGxvZ2ljYWxs eSBtb2RpZnkgdGhlIGNvbHVtbnMgdGhhdCB0aGUgaW5kZXggY292ZXJzLgorICAgIFRoZSBhdmVy YWdlIGFuZCB3b3JzdC1jYXNlIG51bWJlciBvZiB2ZXJzaW9ucyBwZXIgbG9naWNhbCByb3cgY2Fu CisgICAgYmUga2VwdCBsb3cgcHVyZWx5IHRocm91Z2ggdGFyZ2V0ZWQgaW5jcmVtZW50YWwgZGVs ZXRpb24gcGFzc2VzLgorICAgIEl0J3MgcXVpdGUgcG9zc2libGUgdGhhdCB0aGUgb24tZGlzayBz aXplIG9mIGNlcnRhaW4gaW5kZXhlcyB3aWxsCisgICAgbmV2ZXIgaW5jcmVhc2UgYnkgZXZlbiBv bmUgc2luZ2xlIHBhZ2UvYmxvY2sgZGVzcGl0ZQorICAgIDxlbXBoYXNpcz5jb25zdGFudDwvZW1w aGFzaXM+IHZlcnNpb24gY2h1cm4gZnJvbQorICAgIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD5z LiAgRXZlbiB0aGVuLCBhbiBleGhhdXN0aXZlIDxxdW90ZT5jbGVhbgorICAgICBzd2VlcDwvcXVv dGU+IGJ5IGEgPGNvbW1hbmQ+VkFDVVVNPC9jb21tYW5kPiBvcGVyYXRpb24gKHR5cGljYWxseQor ICAgIHJ1biBpbiBhbiBhdXRvdmFjdXVtIHdvcmtlciBwcm9jZXNzKSB3aWxsIGV2ZW50dWFsbHkg YmUgcmVxdWlyZWQgYXMKKyAgICBhIHBhcnQgb2YgPGVtcGhhc2lzPmNvbGxlY3RpdmU8L2VtcGhh c2lzPiBjbGVhbnVwIG9mIHRoZSB0YWJsZSBhbmQKKyAgICBlYWNoIG9mIGl0cyBpbmRleGVzLgor ICAgPC9wYXJhPgorICAgPHBhcmE+CisgICAgVW5saWtlIDxjb21tYW5kPlZBQ1VVTTwvY29tbWFu ZD4sIGJvdHRvbS11cCBpbmRleCBkZWxldGlvbiBkb2VzIG5vdAorICAgIHByb3ZpZGUgYW55IHN0 cm9uZyBndWFyYW50ZWVzIGFib3V0IGhvdyBvbGQgdGhlIG9sZGVzdCBnYXJiYWdlCisgICAgaW5k ZXggdHVwbGUgbWF5IGJlLiAgTm8gaW5kZXggY2FuIGJlIHBlcm1pdHRlZCB0byByZXRhaW4KKyAg ICA8cXVvdGU+ZmxvYXRpbmcgZ2FyYmFnZTwvcXVvdGU+IGluZGV4IHR1cGxlcyB0aGF0IGJlY2Ft ZSBkZWFkIHByaW9yCisgICAgdG8gYSBjb25zZXJ2YXRpdmUgY3V0b2ZmIHBvaW50IHNoYXJlZCBi eSB0aGUgdGFibGUgYW5kIGFsbCBvZiBpdHMKKyAgICBpbmRleGVzIGNvbGxlY3RpdmVseS4gIFRo aXMgZnVuZGFtZW50YWwgdGFibGUtbGV2ZWwgaW52YXJpYW50IG1ha2VzCisgICAgaXQgc2FmZSB0 byByZWN5Y2xlIHRhYmxlIDxhY3JvbnltPlRJRDwvYWNyb255bT5zLiAgVGhpcyBpcyBob3cgaXQK KyAgICBpcyBwb3NzaWJsZSBmb3IgZGlzdGluY3QgbG9naWNhbCByb3dzIHRvIHJldXNlIHRoZSBz YW1lIHRhYmxlCisgICAgPGFjcm9ueW0+VElEPC9hY3JvbnltPiBvdmVyIHRpbWUgKHRob3VnaCB0 aGlzIGNhbiBuZXZlciBoYXBwZW4gd2l0aAorICAgIHR3byBsb2dpY2FsIHJvd3Mgd2hvc2UgbGlm ZXRpbWVzIHNwYW4gdGhlIHNhbWUKKyAgICA8Y29tbWFuZD5WQUNVVU08L2NvbW1hbmQ+IGN5Y2xl KS4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mz4KKworICA8c2VjdDMgaWQ9ImJ0cmVlLWRlZHVwbGlj YXRpb24iPgorICAgPHRpdGxlPkRlZHVwbGljYXRpb248L3RpdGxlPgorICAgPHBhcmE+CisgICAg QSBkdXBsaWNhdGUgaXMgYSBsZWFmIHBhZ2UgdHVwbGUgKGEgdHVwbGUgdGhhdCBwb2ludHMgdG8g YSB0YWJsZQorICAgIHJvdykgd2hlcmUgPGVtcGhhc2lzPmFsbDwvZW1waGFzaXM+IGluZGV4ZWQg a2V5IGNvbHVtbnMgaGF2ZSB2YWx1ZXMKKyAgICB0aGF0IG1hdGNoIGNvcnJlc3BvbmRpbmcgY29s dW1uIHZhbHVlcyBmcm9tIGF0IGxlYXN0IG9uZSBvdGhlciBsZWFmCisgICAgcGFnZSB0dXBsZSBp biB0aGUgc2FtZSBpbmRleC4gIER1cGxpY2F0ZSB0dXBsZXMgYXJlIHF1aXRlIGNvbW1vbiBpbgor ICAgIHByYWN0aWNlLiAgQi1UcmVlIGluZGV4ZXMgY2FuIHVzZSBhIHNwZWNpYWwsIHNwYWNlLWVm ZmljaWVudAorICAgIHJlcHJlc2VudGF0aW9uIGZvciBkdXBsaWNhdGVzIHdoZW4gYW4gb3B0aW9u YWwgdGVjaG5pcXVlIGlzCisgICAgZW5hYmxlZDogPGZpcnN0dGVybT5kZWR1cGxpY2F0aW9uPC9m aXJzdHRlcm0+LgorICAgPC9wYXJhPgorICAgPHBhcmE+CisgICAgRGVkdXBsaWNhdGlvbiB3b3Jr cyBieSBwZXJpb2RpY2FsbHkgbWVyZ2luZyBncm91cHMgb2YgZHVwbGljYXRlCisgICAgdHVwbGVz IHRvZ2V0aGVyLCBmb3JtaW5nIGEgc2luZ2xlIDxmaXJzdHRlcm0+cG9zdGluZyBsaXN0PC9maXJz dHRlcm0+IHR1cGxlIGZvciBlYWNoCisgICAgZ3JvdXAuICBUaGUgY29sdW1uIGtleSB2YWx1ZShz KSBvbmx5IGFwcGVhciBvbmNlIGluIHRoaXMKKyAgICByZXByZXNlbnRhdGlvbi4gIFRoaXMgaXMg Zm9sbG93ZWQgYnkgYSBzb3J0ZWQgYXJyYXkgb2YKKyAgICA8YWNyb255bT5USUQ8L2Fjcm9ueW0+ cyB0aGF0IHBvaW50IHRvIHJvd3MgaW4gdGhlIHRhYmxlLiAgVGhpcworICAgIHNpZ25pZmljYW50 bHkgcmVkdWNlcyB0aGUgc3RvcmFnZSBzaXplIG9mIGluZGV4ZXMgd2hlcmUgZWFjaCB2YWx1ZQor ICAgIChvciBlYWNoIGRpc3RpbmN0IGNvbWJpbmF0aW9uIG9mIGNvbHVtbiB2YWx1ZXMpIGFwcGVh cnMgc2V2ZXJhbAorICAgIHRpbWVzIG9uIGF2ZXJhZ2UuICBUaGUgbGF0ZW5jeSBvZiBxdWVyaWVz IGNhbiBiZSByZWR1Y2VkCisgICAgc2lnbmlmaWNhbnRseS4gIE92ZXJhbGwgcXVlcnkgdGhyb3Vn aHB1dCBtYXkgaW5jcmVhc2UKKyAgICBzaWduaWZpY2FudGx5LiAgVGhlIG92ZXJoZWFkIG9mIHJv dXRpbmUgaW5kZXggdmFjdXVtaW5nIG1heSBhbHNvIGJlCisgICAgcmVkdWNlZCBzaWduaWZpY2Fu dGx5LgorICAgPC9wYXJhPgorICAgPG5vdGU+CisgICAgPHBhcmE+CisgICAgIEItVHJlZSBkZWR1 cGxpY2F0aW9uIGlzIGp1c3QgYXMgZWZmZWN0aXZlIHdpdGgKKyAgICAgPHF1b3RlPmR1cGxpY2F0 ZXM8L3F1b3RlPiB0aGF0IGNvbnRhaW4gYSBOVUxMIHZhbHVlLCBldmVuIHRob3VnaAorICAgICBO VUxMIHZhbHVlcyBhcmUgbmV2ZXIgZXF1YWwgdG8gZWFjaCBvdGhlciBhY2NvcmRpbmcgdG8gdGhl CisgICAgIDxsaXRlcmFsPj08L2xpdGVyYWw+IG1lbWJlciBvZiBhbnkgQi1UcmVlIG9wZXJhdG9y IGNsYXNzLiAgQXMgZmFyCisgICAgIGFzIGFueSBwYXJ0IG9mIHRoZSBpbXBsZW1lbnRhdGlvbiB0 aGF0IHVuZGVyc3RhbmRzIHRoZSBvbi1kaXNrCisgICAgIEItVHJlZSBzdHJ1Y3R1cmUgaXMgY29u Y2VybmVkLCBOVUxMIGlzIGp1c3QgYW5vdGhlciB2YWx1ZSBmcm9tIHRoZQorICAgICBkb21haW4g b2YgaW5kZXhlZCB2YWx1ZXMuCisgICAgPC9wYXJhPgorICAgPC9ub3RlPgorICAgPHBhcmE+Cisg ICAgVGhlIGRlZHVwbGljYXRpb24gcHJvY2VzcyBvY2N1cnMgbGF6aWx5LCB3aGVuIGEgbmV3IGl0 ZW0gaXMKKyAgICBpbnNlcnRlZCB0aGF0IGNhbm5vdCBmaXQgb24gYW4gZXhpc3RpbmcgbGVhZiBw YWdlLCB0aG91Z2ggb25seSB3aGVuCisgICAgaW5kZXggdHVwbGUgZGVsZXRpb24gY291bGQgbm90 IGZyZWUgc3VmZmljaWVudCBzcGFjZSBmb3IgdGhlIG5ldworICAgIGl0ZW0gKHR5cGljYWxseSBk ZWxldGlvbiBpcyBicmllZmx5IGNvbnNpZGVyZWQgYW5kIHRoZW4gc2tpcHBlZAorICAgIG92ZXIp LiAgVW5saWtlIEdJTiBwb3N0aW5nIGxpc3QgdHVwbGVzLCBCLVRyZWUgcG9zdGluZyBsaXN0IHR1 cGxlcworICAgIGRvIG5vdCBuZWVkIHRvIGV4cGFuZCBldmVyeSB0aW1lIGEgbmV3IGR1cGxpY2F0 ZSBpcyBpbnNlcnRlZDsgdGhleQorICAgIGFyZSBtZXJlbHkgYW4gYWx0ZXJuYXRpdmUgcGh5c2lj YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbmFsCisgICAgbG9naWNhbCBjb250ZW50cyBv ZiB0aGUgbGVhZiBwYWdlLiAgVGhpcyBkZXNpZ24gcHJpb3JpdGl6ZXMKKyAgICBjb25zaXN0ZW50 IHBlcmZvcm1hbmNlIHdpdGggbWl4ZWQgcmVhZC13cml0ZSB3b3JrbG9hZHMuICBNb3N0CisgICAg Y2xpZW50IGFwcGxpY2F0aW9ucyB3aWxsIGF0IGxlYXN0IHNlZSBhIG1vZGVyYXRlIHBlcmZvcm1h bmNlCisgICAgYmVuZWZpdCBmcm9tIHVzaW5nIGRlZHVwbGljYXRpb24uICBEZWR1cGxpY2F0aW9u IGlzIGVuYWJsZWQgYnkKKyAgICBkZWZhdWx0LgorICAgPC9wYXJhPgorICAgPHBhcmE+CisgICAg PGNvbW1hbmQ+Q1JFQVRFIElOREVYPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+UkVJTkRFWDwvY29t bWFuZD4KKyAgICBhcHBseSBkZWR1cGxpY2F0aW9uIHRvIGNyZWF0ZSBwb3N0aW5nIGxpc3QgdHVw bGVzLCB0aG91Z2ggdGhlCisgICAgc3RyYXRlZ3kgdGhleSB1c2UgaXMgc2xpZ2h0bHkgZGlmZmVy ZW50LiAgRWFjaCBncm91cCBvZiBkdXBsaWNhdGUKKyAgICBvcmRpbmFyeSB0dXBsZXMgZW5jb3Vu dGVyZWQgaW4gdGhlIHNvcnRlZCBpbnB1dCB0YWtlbiBmcm9tIHRoZQorICAgIHRhYmxlIGlzIG1l cmdlZCBpbnRvIGEgcG9zdGluZyBsaXN0IHR1cGxlCisgICAgPGVtcGhhc2lzPmJlZm9yZTwvZW1w aGFzaXM+IGJlaW5nIGFkZGVkIHRvIHRoZSBjdXJyZW50IHBlbmRpbmcgbGVhZgorICAgIHBhZ2Uu ICBJbmRpdmlkdWFsIHBvc3RpbmcgbGlzdCB0dXBsZXMgYXJlIHBhY2tlZCB3aXRoIGFzIG1hbnkK KyAgICA8YWNyb255bT5USUQ8L2Fjcm9ueW0+cyBhcyBwb3NzaWJsZS4gIExlYWYgcGFnZXMgYXJl IHdyaXR0ZW4gb3V0IGluCisgICAgdGhlIHVzdWFsIHdheSwgd2l0aG91dCBhbnkgc2VwYXJhdGUg ZGVkdXBsaWNhdGlvbiBwYXNzLiAgVGhpcworICAgIHN0cmF0ZWd5IGlzIHdlbGwtc3VpdGVkIHRv IDxjb21tYW5kPkNSRUFURSBJTkRFWDwvY29tbWFuZD4gYW5kCisgICAgPGNvbW1hbmQ+UkVJTkRF WDwvY29tbWFuZD4gYmVjYXVzZSB0aGV5IGFyZSBvbmNlLW9mZiBiYXRjaAorICAgIG9wZXJhdGlv bnMuCisgICA8L3BhcmE+CisgICA8cGFyYT4KKyAgICBXcml0ZS1oZWF2eSB3b3JrbG9hZHMgdGhh dCBkb24ndCBiZW5lZml0IGZyb20gZGVkdXBsaWNhdGlvbiBkdWUgdG8KKyAgICBoYXZpbmcgZmV3 IG9yIG5vIGR1cGxpY2F0ZSB2YWx1ZXMgaW4gaW5kZXhlcyB3aWxsIGluY3VyIGEgc21hbGwsCisg ICAgZml4ZWQgcGVyZm9ybWFuY2UgcGVuYWx0eSAodW5sZXNzIGRlZHVwbGljYXRpb24gaXMgZXhw bGljaXRseQorICAgIGRpc2FibGVkKS4gIFRoZSA8bGl0ZXJhbD5kZWR1cGxpY2F0ZV9pdGVtczwv bGl0ZXJhbD4gc3RvcmFnZQorICAgIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBkaXNhYmxlIGRl ZHVwbGljYXRpb24gd2l0aGluIGluZGl2aWR1YWwKKyAgICBpbmRleGVzLiAgVGhlcmUgaXMgbmV2 ZXIgYW55IHBlcmZvcm1hbmNlIHBlbmFsdHkgd2l0aCByZWFkLW9ubHkKKyAgICB3b3JrbG9hZHMs IHNpbmNlIHJlYWRpbmcgcG9zdGluZyBsaXN0IHR1cGxlcyBpcyBhdCBsZWFzdCBhcworICAgIGVm ZmljaWVudCBhcyByZWFkaW5nIHRoZSBzdGFuZGFyZCB0dXBsZSByZXByZXNlbnRhdGlvbi4gIERp c2FibGluZworICAgIGRlZHVwbGljYXRpb24gaXNuJ3QgdXN1YWxseSBoZWxwZnVsLgorICAgPC9w YXJhPgorICAgPHBhcmE+CisgICAgSXQgaXMgc29tZXRpbWVzIHBvc3NpYmxlIGZvciB1bmlxdWUg aW5kZXhlcyAoYXMgd2VsbCBhcyB1bmlxdWUKKyAgICBjb25zdHJhaW50cykgdG8gdXNlIGRlZHVw bGljYXRpb24uICBUaGlzIGFsbG93cyBsZWFmIHBhZ2VzIHRvCisgICAgdGVtcG9yYXJpbHkgPHF1 b3RlPmFic29yYjwvcXVvdGU+IGV4dHJhIHZlcnNpb24gY2h1cm4gZHVwbGljYXRlcy4KKyAgICBE ZWR1cGxpY2F0aW9uIGluIHVuaXF1ZSBpbmRleGVzIGF1Z21lbnRzIGJvdHRvbS11cCBpbmRleCBk ZWxldGlvbiwKKyAgICBlc3BlY2lhbGx5IGluIGNhc2VzIHdoZXJlIGEgbG9uZy1ydW5uaW5nIHRy YW5zYWN0aW9uIGhvbGRzIGEKKyAgICBzbmFwc2hvdCB0aGF0IGJsb2NrcyBnYXJiYWdlIGNvbGxl Y3Rpb24uICBUaGUgZ29hbCBpcyB0byBidXkgdGltZQorICAgIGZvciB0aGUgYm90dG9tLXVwIGlu ZGV4IGRlbGV0aW9uIHN0cmF0ZWd5IHRvIGJlY29tZSBlZmZlY3RpdmUKKyAgICBhZ2Fpbi4gIERl bGF5aW5nIHBhZ2Ugc3BsaXRzIHVudGlsIGEgc2luZ2xlIGxvbmctcnVubmluZworICAgIHRyYW5z YWN0aW9uIG5hdHVyYWxseSBnb2VzIGF3YXkgY2FuIGFsbG93IGEgYm90dG9tLXVwIGRlbGV0aW9u IHBhc3MKKyAgICB0byBzdWNjZWVkIHdoZXJlIGFuIGVhcmxpZXIgZGVsZXRpb24gcGFzcyBmYWls ZWQuCisgICA8L3BhcmE+CisgICA8dGlwPgorICAgIDxwYXJhPgorICAgICBBIHNwZWNpYWwgaGV1 cmlzdGljIGlzIGFwcGxpZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYQorICAgICBkZWR1cGxpY2F0 aW9uIHBhc3MgaW4gYSB1bmlxdWUgaW5kZXggc2hvdWxkIHRha2UgcGxhY2UuICBJdCBjYW4KKyAg ICAgb2Z0ZW4gc2tpcCBzdHJhaWdodCB0byBzcGxpdHRpbmcgYSBsZWFmIHBhZ2UsIGF2b2lkaW5n IGEKKyAgICAgcGVyZm9ybWFuY2UgcGVuYWx0eSBmcm9tIHdhc3RpbmcgY3ljbGVzIG9uIHVuaGVs cGZ1bCBkZWR1cGxpY2F0aW9uCisgICAgIHBhc3Nlcy4gIElmIHlvdSdyZSBjb25jZXJuZWQgYWJv dXQgdGhlIG92ZXJoZWFkIG9mIGRlZHVwbGljYXRpb24sCisgICAgIGNvbnNpZGVyIHNldHRpbmcg PGxpdGVyYWw+ZGVkdXBsaWNhdGVfaXRlbXMgPSBvZmY8L2xpdGVyYWw+CisgICAgIHNlbGVjdGl2 ZWx5LiAgTGVhdmluZyBkZWR1cGxpY2F0aW9uIGVuYWJsZWQgaW4gdW5pcXVlIGluZGV4ZXMgaGFz CisgICAgIGxpdHRsZSBkb3duc2lkZS4KKyAgICA8L3BhcmE+CisgICA8L3RpcD4KKyAgIDxwYXJh PgorICAgIERlZHVwbGljYXRpb24gY2Fubm90IGJlIHVzZWQgaW4gYWxsIGNhc2VzIGR1ZSB0bwor ICAgIGltcGxlbWVudGF0aW9uLWxldmVsIHJlc3RyaWN0aW9ucy4gIERlZHVwbGljYXRpb24gc2Fm ZXR5IGlzCisgICAgZGV0ZXJtaW5lZCB3aGVuIDxjb21tYW5kPkNSRUFURSBJTkRFWDwvY29tbWFu ZD4gb3IKKyAgICA8Y29tbWFuZD5SRUlOREVYPC9jb21tYW5kPiBpcyBydW4uCisgICA8L3BhcmE+ CisgICA8cGFyYT4KKyAgICBOb3RlIHRoYXQgZGVkdXBsaWNhdGlvbiBpcyBkZWVtZWQgdW5zYWZl IGFuZCBjYW5ub3QgYmUgdXNlZCBpbiB0aGUKKyAgICBmb2xsb3dpbmcgY2FzZXMgaW52b2x2aW5n IHNlbWFudGljYWxseSBzaWduaWZpY2FudCBkaWZmZXJlbmNlcworICAgIGFtb25nIGVxdWFsIGRh dHVtczoKKyAgIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIDxpdGVtaXplZGxpc3Q+CisgICAgIDxs aXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDx0eXBlPnRleHQ8L3R5cGU+LCA8dHlwZT52 YXJjaGFyPC90eXBlPiwgYW5kIDx0eXBlPmNoYXI8L3R5cGU+CisgICAgICAgY2Fubm90IHVzZSBk ZWR1cGxpY2F0aW9uIHdoZW4gYQorICAgICAgIDxlbXBoYXNpcz5ub25kZXRlcm1pbmlzdGljPC9l bXBoYXNpcz4gY29sbGF0aW9uIGlzIHVzZWQuICBDYXNlCisgICAgICAgYW5kIGFjY2VudCBkaWZm ZXJlbmNlcyBtdXN0IGJlIHByZXNlcnZlZCBhbW9uZyBlcXVhbCBkYXR1bXMuCisgICAgICA8L3Bh cmE+CisgICAgIDwvbGlzdGl0ZW0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+Cisg ICAgICAgPHR5cGU+bnVtZXJpYzwvdHlwZT4gY2Fubm90IHVzZSBkZWR1cGxpY2F0aW9uLiAgTnVt ZXJpYyBkaXNwbGF5CisgICAgICAgc2NhbGUgbXVzdCBiZSBwcmVzZXJ2ZWQgYW1vbmcgZXF1YWwg ZGF0dW1zLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorCisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIDx0eXBlPmpzb25iPC90eXBlPiBjYW5ub3QgdXNlIGRl ZHVwbGljYXRpb24sIHNpbmNlIHRoZQorICAgICAgIDx0eXBlPmpzb25iPC90eXBlPiBCLVRyZWUg b3BlcmF0b3IgY2xhc3MgdXNlcworICAgICAgIDx0eXBlPm51bWVyaWM8L3R5cGU+IGludGVybmFs bHkuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisKKyAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgPHR5cGU+ZmxvYXQ0PC90eXBlPiBhbmQgPHR5cGU+ZmxvYXQ4 PC90eXBlPiBjYW5ub3QgdXNlCisgICAgICAgZGVkdXBsaWNhdGlvbi4gIFRoZXNlIHR5cGVzIGhh dmUgZGlzdGluY3QgcmVwcmVzZW50YXRpb25zIGZvcgorICAgICAgIDxsaXRlcmFsPi0wPC9saXRl cmFsPiBhbmQgPGxpdGVyYWw+MDwvbGl0ZXJhbD4sIHdoaWNoIGFyZQorICAgICAgIG5ldmVydGhl bGVzcyBjb25zaWRlcmVkIGVxdWFsLiAgVGhpcyBkaWZmZXJlbmNlIG11c3QgYmUKKyAgICAgICBw cmVzZXJ2ZWQuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC9pdGVtaXpl ZGxpc3Q+CisgICA8L3BhcmE+CisgICA8cGFyYT4KKyAgICBUaGVyZSBpcyBvbmUgZnVydGhlciBp bXBsZW1lbnRhdGlvbi1sZXZlbCByZXN0cmljdGlvbiB0aGF0IG1heSBiZQorICAgIGxpZnRlZCBp biBhIGZ1dHVyZSB2ZXJzaW9uIG9mCisgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPjoKKyAgIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIDxpdGVtaXplZGxpc3Q+CisgICAg IDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIENvbnRhaW5lciB0eXBlcyAoc3VjaCBh cyBjb21wb3NpdGUgdHlwZXMsIGFycmF5cywgb3IgcmFuZ2UKKyAgICAgICB0eXBlcykgY2Fubm90 IHVzZSBkZWR1cGxpY2F0aW9uLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAg IDwvaXRlbWl6ZWRsaXN0PgorICAgPC9wYXJhPgorICAgPHBhcmE+CisgICAgVGhlcmUgaXMgb25l IGZ1cnRoZXIgaW1wbGVtZW50YXRpb24tbGV2ZWwgcmVzdHJpY3Rpb24gdGhhdCBhcHBsaWVzCisg ICAgcmVnYXJkbGVzcyBvZiB0aGUgb3BlcmF0b3IgY2xhc3Mgb3IgY29sbGF0aW9uIHVzZWQ6Cisg ICA8L3BhcmE+CisgICA8cGFyYT4KKyAgICA8aXRlbWl6ZWRsaXN0PgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICA8bGl0ZXJhbD5JTkNMVURFPC9saXRlcmFsPiBpbmRleGVz IGNhbiBuZXZlciB1c2UgZGVkdXBsaWNhdGlvbi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0 aXRlbT4KKyAgICA8L2l0ZW1pemVkbGlzdD4KKyAgIDwvcGFyYT4KKworICA8L3NlY3QzPgorIDwv c2VjdDI+CisKKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJnaXN0Ij4KKyA8dGl0bGU+R2lTVCBJ bmRleGVzPC90aXRsZT4KKworICAgIDxpbmRleHRlcm0+CisgICAgIDxwcmltYXJ5PmluZGV4PC9w cmltYXJ5PgorICAgICA8c2Vjb25kYXJ5PkdpU1Q8L3NlY29uZGFyeT4KKyAgICA8L2luZGV4dGVy bT4KKworIDxzZWN0MiBpZD0iZ2lzdC1pbnRybyI+CisgIDx0aXRsZT5JbnRyb2R1Y3Rpb248L3Rp dGxlPgorCisgIDxwYXJhPgorICAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IHN0YW5kcyBmb3Ig R2VuZXJhbGl6ZWQgU2VhcmNoIFRyZWUuICBJdCBpcyBhCisgICAgYmFsYW5jZWQsIHRyZWUtc3Ry dWN0dXJlZCBhY2Nlc3MgbWV0aG9kLCB0aGF0IGFjdHMgYXMgYSBiYXNlIHRlbXBsYXRlIGluCisg ICAgd2hpY2ggdG8gaW1wbGVtZW50IGFyYml0cmFyeSBpbmRleGluZyBzY2hlbWVzLiBCLXRyZWVz LCBSLXRyZWVzIGFuZCBtYW55CisgICAgb3RoZXIgaW5kZXhpbmcgc2NoZW1lcyBjYW4gYmUgaW1w bGVtZW50ZWQgaW4gPGFjcm9ueW0+R2lTVDwvYWNyb255bT4uCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIE9uZSBhZHZhbnRhZ2Ugb2YgPGFjcm9ueW0+R2lTVDwvYWNyb255bT4gaXMgdGhhdCBp dCBhbGxvd3MgdGhlIGRldmVsb3BtZW50CisgICBvZiBjdXN0b20gZGF0YSB0eXBlcyB3aXRoIHRo ZSBhcHByb3ByaWF0ZSBhY2Nlc3MgbWV0aG9kcywgYnkKKyAgIGFuIGV4cGVydCBpbiB0aGUgZG9t YWluIG9mIHRoZSBkYXRhIHR5cGUsIHJhdGhlciB0aGFuIGEgZGF0YWJhc2UgZXhwZXJ0LgorICA8 L3BhcmE+CisKKyAgIDxwYXJhPgorICAgICBTb21lIG9mIHRoZSBpbmZvcm1hdGlvbiBoZXJlIGlz IGRlcml2ZWQgZnJvbSB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgICAgIGF0IEJlcmtl bGV5J3MgR2lTVCBJbmRleGluZyBQcm9qZWN0CisgICAgIDx1bGluayB1cmw9Imh0dHA6Ly9naXN0 LmNzLmJlcmtlbGV5LmVkdS8iPndlYiBzaXRlPC91bGluaz4gYW5kCisgICAgIE1hcmNlbCBLb3Ju YWNrZXIncyB0aGVzaXMsCisgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cuc2FpLm1zdS5zdS9+ bWVnZXJhL3Bvc3RncmVzL2dpc3QvcGFwZXJzL2NvbmN1cnJlbmN5L2FjY2Vzcy1tZXRob2RzLWZv ci1uZXh0LWdlbmVyYXRpb24ucGRmLmd6Ij4KKyAgICAgQWNjZXNzIE1ldGhvZHMgZm9yIE5leHQt R2VuZXJhdGlvbiBEYXRhYmFzZSBTeXN0ZW1zPC91bGluaz4uCisgICAgIFRoZSA8YWNyb255bT5H aVNUPC9hY3JvbnltPgorICAgICBpbXBsZW1lbnRhdGlvbiBpbiA8cHJvZHVjdG5hbWU+UG9zdGdy ZVNRTDwvcHJvZHVjdG5hbWU+IGlzIHByaW1hcmlseQorICAgICBtYWludGFpbmVkIGJ5IFRlb2Rv ciBTaWdhZXYgYW5kIE9sZWcgQmFydHVub3YsIGFuZCB0aGVyZSBpcyBtb3JlCisgICAgIGluZm9y bWF0aW9uIG9uIHRoZWlyCisgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cuc2FpLm1zdS5zdS9+ bWVnZXJhL3Bvc3RncmVzL2dpc3QvIj53ZWIgc2l0ZTwvdWxpbms+LgorICAgPC9wYXJhPgorCisg PC9zZWN0Mj4KKworIDxzZWN0MiBpZD0iZ2lzdC1idWlsdGluLW9wY2xhc3NlcyI+CisgIDx0aXRs ZT5CdWlsdC1pbiBPcGVyYXRvciBDbGFzc2VzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSBj b3JlIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZGlzdHJpYnV0aW9uCisg ICBpbmNsdWRlcyB0aGUgPGFjcm9ueW0+R2lTVDwvYWNyb255bT4gb3BlcmF0b3IgY2xhc3NlcyBz aG93biBpbgorICAgPHhyZWYgbGlua2VuZD0iZ2lzdC1idWlsdGluLW9wY2xhc3Nlcy10YWJsZSIv Pi4KKyAgIChTb21lIG9mIHRoZSBvcHRpb25hbCBtb2R1bGVzIGRlc2NyaWJlZCBpbiA8eHJlZiBs aW5rZW5kPSJjb250cmliIi8+CisgICBwcm92aWRlIGFkZGl0aW9uYWwgPGFjcm9ueW0+R2lTVDwv YWNyb255bT4gb3BlcmF0b3IgY2xhc3Nlcy4pCisgIDwvcGFyYT4KKworICAgPHRhYmxlIGlkPSJn aXN0LWJ1aWx0aW4tb3BjbGFzc2VzLXRhYmxlIj4KKyAgICA8dGl0bGU+QnVpbHQtaW4gPGFjcm9u eW0+R2lTVDwvYWNyb255bT4gT3BlcmF0b3IgQ2xhc3NlczwvdGl0bGU+CisgICAgPHRncm91cCBj b2xzPSIzIj4KKyAgICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDEiIGNvbHdpZHRoPSIyKiIvPgor ICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMiIgY29sd2lkdGg9IjMqIi8+CisgICAgICA8Y29s c3BlYyBjb2xuYW1lPSJjb2wzIiBjb2x3aWR0aD0iMioiLz4KKyAgICAgPHRoZWFkPgorICAgICAg PHJvdz4KKyAgICAgICA8ZW50cnk+TmFtZTwvZW50cnk+CisgICAgICAgPGVudHJ5PkluZGV4YWJs ZSBPcGVyYXRvcnM8L2VudHJ5PgorICAgICAgIDxlbnRyeT5PcmRlcmluZyBPcGVyYXRvcnM8L2Vu dHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxy b3c+CisgICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iMTMiPjxsaXRlcmFs PmJveF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+Jmx0OyZs dDsgKGJveCwgYm94KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeSB2YWxpZ249Im1p ZGRsZSIgbW9yZXJvd3M9IjEzIj48bGl0ZXJhbD4mbHQ7LSZndDsgKGJveCwgcG9pbnQpPC9saXRl cmFsPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZh bXA7Jmx0OyAoYm94LCBib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mYW1wOyZhbXA7IChib3gsIGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmd0OyAoYm94LCBib3gpPC9saXRl cmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0OyAo Ym94LCBib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD5+PSAoYm94LCBib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD5AJmd0OyAoYm94LCBib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Cisg ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAoYm94LCBib3gpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZsdDt8IChib3gsIGJv eCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZs dDsmbHQ7fCAoYm94LCBib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD58Jmd0OyZndDsgKGJveCwgYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fCZhbXA7Jmd0OyAoYm94LCBib3gpPC9saXRl cmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5+IChib3gsIGJv eCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAg KGJveCwgYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgICA8cm93PgorICAgICAg IDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjEzIj48bGl0ZXJhbD5jaXJjbGVfb3Bz PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChjaXJj bGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnkgdmFsaWduPSJtaWRk bGUiIG1vcmVyb3dzPSIxMyI+PGxpdGVyYWw+Jmx0Oy0mZ3Q7IChjaXJjbGUsIHBvaW50KTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m YW1wOyZsdDsgKGNpcmNsZSwgY2lyY2xlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmZ3Q7IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsmZ3Q7IChjaXJj bGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZsdDtAIChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAg ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPn49IChjaXJjbGUsIGNp cmNsZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs PiZhbXA7JmFtcDsgKGNpcmNsZSwgY2lyY2xlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAg ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fCZndDsmZ3Q7IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7fCAo Y2lyY2xlLCBjaXJjbGUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD4mYW1wOyZsdDt8IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPnwmYW1wOyZndDsgKGNpcmNsZSwgY2ly Y2xlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+ QCAoY2lyY2xlLCBjaXJjbGUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD5+IChjaXJjbGUsIGNpcmNsZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K KworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSIx MCI+PGxpdGVyYWw+aW5ldF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxp dGVyYWw+Jmx0OyZsdDsgKGluZXQsIGluZXQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVu dHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iMTAiPjwvZW50cnk+CisgICAgICA8L3Jvdz4K KyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7PSAoaW5ldCwgaW5ldCk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsmZ3Q7IChp bmV0LCBpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmd0OyZndDs9IChpbmV0LCBpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAg ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+PSAoaW5ldCwgaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmZ3Q7IChpbmV0LCBpbmV0KTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAo aW5ldCwgaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZsdDs9IChpbmV0LCBpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoaW5ldCwgaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChpbmV0LCBpbmV0KTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmYW1w OyAoaW5ldCwgaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKworICAgICAgPHJvdz4KKyAg ICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSIxNyI+PGxpdGVyYWw+bXVsdGly YW5nZV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoYW55 bXVsdGlyYW5nZSwgYW55bXVsdGlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50 cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSIxNyI+PC9lbnRyeT4KKyAgICAgIDwvcm93Pgor ICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmYW1wOyAoYW55bXVsdGlyYW5nZSwgYW55 bXVsdGlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZhbXA7JmFtcDsgKGFueW11bHRpcmFuZ2UsIGFueXJhbmdlKTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+QCZndDsgKGFueW11bHRpcmFu Z2UsIGFueWVsZW1lbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD5AJmd0OyAoYW55bXVsdGlyYW5nZSwgYW55bXVsdGlyYW5nZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChhbnltdWx0 aXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZsdDtAIChhbnltdWx0aXJhbmdlLCBhbnltdWx0aXJhbmdlKTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0O0AgKGFueW11 bHRpcmFuZ2UsIGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDsgKGFueW11bHRpcmFuZ2UsIGFueW11bHRpcmFuZ2UpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmx0 OyAoYW55bXVsdGlyYW5nZSwgYW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0OyAoYW55bXVsdGlyYW5nZSwgYW55bXVsdGly YW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs PiZndDsmZ3Q7IChhbnltdWx0aXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmx0OyAoYW55bXVsdGlyYW5nZSwg YW55bXVsdGlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZhbXA7Jmx0OyAoYW55bXVsdGlyYW5nZSwgYW55cmFuZ2UpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZndDsgKGFueW11 bHRpcmFuZ2UsIGFueW11bHRpcmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZndDsgKGFueW11bHRpcmFuZ2UsIGFueXJhbmdlKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+LXwtIChh bnltdWx0aXJhbmdlLCBhbnltdWx0aXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAg ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+LXwtIChhbnltdWx0aXJhbmdlLCBhbnlyYW5nZSk8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgdmFsaWdu PSJtaWRkbGUiIG1vcmVyb3dzPSI3Ij48bGl0ZXJhbD5wb2ludF9vcHM8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+fCZndDsmZ3Q7IChwb2ludCwgcG9pbnQpPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNyI+ PGxpdGVyYWw+Jmx0Oy0mZ3Q7IChwb2ludCwgcG9pbnQpPC9saXRlcmFsPjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChwb2ludCwgcG9p bnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m Z3Q7Jmd0OyAocG9pbnQsIHBvaW50KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDt8IChwb2ludCwgcG9pbnQpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5+PSAocG9pbnQsIHBvaW50KTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0O0Ag KHBvaW50LCBib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mbHQ7QCAocG9pbnQsIHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Cisg ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAocG9pbnQsIGNpcmNsZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgdmFsaWduPSJtaWRk bGUiIG1vcmVyb3dzPSIxMyI+PGxpdGVyYWw+cG9seV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDsgKHBvbHlnb24sIHBvbHlnb24pPC9saXRlcmFs PjwvZW50cnk+CisgICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iMTMiPjxs aXRlcmFsPiZsdDstJmd0OyAocG9seWdvbiwgcG9pbnQpPC9saXRlcmFsPjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmx0OyAocG9seWdvbiwg cG9seWdvbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRl cmFsPiZhbXA7Jmd0OyAocG9seWdvbiwgcG9seWdvbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K KyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsmZ3Q7IChwb2x5Z29uLCBwb2x5Z29uKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0O0Ag KHBvbHlnb24sIHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD5AJmd0OyAocG9seWdvbiwgcG9seWdvbik8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPn49IChwb2x5Z29uLCBwb2x5Z29uKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsm YW1wOyAocG9seWdvbiwgcG9seWdvbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7fCAocG9seWdvbiwgcG9seWdvbik8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmx0O3wgKHBv bHlnb24sIHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD58JmFtcDsmZ3Q7IChwb2x5Z29uLCBwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fCZndDsmZ3Q7IChwb2x5Z29uLCBw b2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+QCAocG9seWdvbiwgcG9seWdvbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPn4gKHBvbHlnb24sIHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+ PC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jl cm93cz0iMTciPjxsaXRlcmFsPnJhbmdlX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxl bnRyeT48bGl0ZXJhbD49IChhbnlyYW5nZSwgYW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iMTciPjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7JmFtcDsgKGFueXJhbmdl LCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZhbXA7JmFtcDsgKGFueXJhbmdlLCBhbnltdWx0aXJhbmdlKTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+QCZndDsgKGFueXJhbmdlLCBh bnllbGVtZW50KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+QCZndDsgKGFueXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K KyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChhbnlyYW5nZSwgYW55bXVsdGlyYW5n ZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZs dDtAIChhbnlyYW5nZSwgYW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAoYW55cmFuZ2UsIGFueW11bHRpcmFuZ2UpPC9saXRl cmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmx0OyAo YW55cmFuZ2UsIGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDsgKGFueXJhbmdlLCBhbnltdWx0aXJhbmdlKTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyZndDsgKGFu eXJhbmdlLCBhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZndDsmZ3Q7IChhbnlyYW5nZSwgYW55bXVsdGlyYW5nZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmx0OyAoYW55 cmFuZ2UsIGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+JmFtcDsmbHQ7IChhbnlyYW5nZSwgYW55bXVsdGlyYW5nZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmd0OyAoYW55 cmFuZ2UsIGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+JmFtcDsmZ3Q7IChhbnlyYW5nZSwgYW55bXVsdGlyYW5nZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPi18LSAoYW55cmFuZ2Us IGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+LXwtIChhbnlyYW5nZSwgYW55bXVsdGlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dz PSIxIj48bGl0ZXJhbD50c3F1ZXJ5X29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRy eT48bGl0ZXJhbD4mbHQ7QCAodHNxdWVyeSwgdHNxdWVyeSk8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSIxIj48L2VudHJ5PgorICAgICAg PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5AJmd0OyAodHNxdWVyeSwgdHNxdWVy eSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHZh bGlnbj0ibWlkZGxlIj48bGl0ZXJhbD50c3ZlY3Rvcl9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PGxpdGVyYWw+QEAgKHRzdmVjdG9yLCB0c3F1ZXJ5KTwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgIDxlbnRyeT48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwvdGJvZHk+ CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgorCisgIDxwYXJhPgorICAgRm9yIGhpc3Rvcmlj YWwgcmVhc29ucywgdGhlIDxsaXRlcmFsPmluZXRfb3BzPC9saXRlcmFsPiBvcGVyYXRvciBjbGFz cyBpcworICAgbm90IHRoZSBkZWZhdWx0IGNsYXNzIGZvciB0eXBlcyA8dHlwZT5pbmV0PC90eXBl PiBhbmQgPHR5cGU+Y2lkcjwvdHlwZT4uCisgICBUbyB1c2UgaXQsIG1lbnRpb24gdGhlIGNsYXNz IG5hbWUgaW4gPGNvbW1hbmQ+Q1JFQVRFIElOREVYPC9jb21tYW5kPiwKKyAgIGZvciBleGFtcGxl Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgSU5ERVggT04gbXlfdGFibGUgVVNJTkcgR0lTVCAo bXlfaW5ldF9jb2x1bW4gaW5ldF9vcHMpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgor CisgPC9zZWN0Mj4KKworIDxzZWN0MiBpZD0iZ2lzdC1leHRlbnNpYmlsaXR5Ij4KKyAgPHRpdGxl PkV4dGVuc2liaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgIFRyYWRpdGlvbmFsbHksIGlt cGxlbWVudGluZyBhIG5ldyBpbmRleCBhY2Nlc3MgbWV0aG9kIG1lYW50IGEgbG90IG9mCisgICAg ZGlmZmljdWx0IHdvcmsuICBJdCB3YXMgbmVjZXNzYXJ5IHRvIHVuZGVyc3RhbmQgdGhlIGlubmVy IHdvcmtpbmdzIG9mIHRoZQorICAgIGRhdGFiYXNlLCBzdWNoIGFzIHRoZSBsb2NrIG1hbmFnZXIg YW5kIFdyaXRlLUFoZWFkIExvZy4gIFRoZQorICAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IGlu dGVyZmFjZSBoYXMgYSBoaWdoIGxldmVsIG9mIGFic3RyYWN0aW9uLAorICAgIHJlcXVpcmluZyB0 aGUgYWNjZXNzIG1ldGhvZCBpbXBsZW1lbnRlciBvbmx5IHRvIGltcGxlbWVudCB0aGUgc2VtYW50 aWNzIG9mCisgICAgdGhlIGRhdGEgdHlwZSBiZWluZyBhY2Nlc3NlZC4gIFRoZSA8YWNyb255bT5H aVNUPC9hY3JvbnltPiBsYXllciBpdHNlbGYKKyAgICB0YWtlcyBjYXJlIG9mIGNvbmN1cnJlbmN5 LCBsb2dnaW5nIGFuZCBzZWFyY2hpbmcgdGhlIHRyZWUgc3RydWN0dXJlLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICAgVGhpcyBleHRlbnNpYmlsaXR5IHNob3VsZCBub3QgYmUgY29uZnVzZWQg d2l0aCB0aGUgZXh0ZW5zaWJpbGl0eSBvZiB0aGUKKyAgICBvdGhlciBzdGFuZGFyZCBzZWFyY2gg dHJlZXMgaW4gdGVybXMgb2YgdGhlIGRhdGEgdGhleSBjYW4gaGFuZGxlLiAgRm9yCisgICAgZXhh bXBsZSwgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBzdXBwb3J0cyBleHRl bnNpYmxlIEItdHJlZXMKKyAgICBhbmQgaGFzaCBpbmRleGVzLiBUaGF0IG1lYW5zIHRoYXQgeW91 IGNhbiB1c2UKKyAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHRvIGJ1 aWxkIGEgQi10cmVlIG9yIGhhc2ggb3ZlciBhbnkKKyAgICBkYXRhIHR5cGUgeW91IHdhbnQuIEJ1 dCBCLXRyZWVzIG9ubHkgc3VwcG9ydCByYW5nZSBwcmVkaWNhdGVzCisgICAgKDxsaXRlcmFsPiZs dDs8L2xpdGVyYWw+LCA8bGl0ZXJhbD49PC9saXRlcmFsPiwgPGxpdGVyYWw+Jmd0OzwvbGl0ZXJh bD4pLAorICAgIGFuZCBoYXNoIGluZGV4ZXMgb25seSBzdXBwb3J0IGVxdWFsaXR5IHF1ZXJpZXMu CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgICBTbyBpZiB5b3UgaW5kZXgsIHNheSwgYW4gaW1h Z2UgY29sbGVjdGlvbiB3aXRoIGEKKyAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVj dG5hbWU+IEItdHJlZSwgeW91IGNhbiBvbmx5IGlzc3VlIHF1ZXJpZXMKKyAgICBzdWNoIGFzIDxx dW90ZT5pcyBpbWFnZXggZXF1YWwgdG8gaW1hZ2V5PC9xdW90ZT4sIDxxdW90ZT5pcyBpbWFnZXgg bGVzcworICAgIHRoYW4gaW1hZ2V5PC9xdW90ZT4gYW5kIDxxdW90ZT5pcyBpbWFnZXggZ3JlYXRl ciB0aGFuIGltYWdleTwvcXVvdGU+LgorICAgIERlcGVuZGluZyBvbiBob3cgeW91IGRlZmluZSA8 cXVvdGU+ZXF1YWxzPC9xdW90ZT4sIDxxdW90ZT5sZXNzIHRoYW48L3F1b3RlPgorICAgIGFuZCA8 cXVvdGU+Z3JlYXRlciB0aGFuPC9xdW90ZT4gaW4gdGhpcyBjb250ZXh0LCB0aGlzIGNvdWxkIGJl IHVzZWZ1bC4KKyAgICBIb3dldmVyLCBieSB1c2luZyBhIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+ IGJhc2VkIGluZGV4LCB5b3UgY291bGQgY3JlYXRlCisgICAgd2F5cyB0byBhc2sgZG9tYWluLXNw ZWNpZmljIHF1ZXN0aW9ucywgcGVyaGFwcyA8cXVvdGU+ZmluZCBhbGwgaW1hZ2VzIG9mCisgICAg aG9yc2VzPC9xdW90ZT4gb3IgPHF1b3RlPmZpbmQgYWxsIG92ZXItZXhwb3NlZCBpbWFnZXM8L3F1 b3RlPi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgIEFsbCBpdCB0YWtlcyB0byBnZXQgYSA8 YWNyb255bT5HaVNUPC9hY3JvbnltPiBhY2Nlc3MgbWV0aG9kIHVwIGFuZCBydW5uaW5nCisgICAg aXMgdG8gaW1wbGVtZW50IHNldmVyYWwgdXNlci1kZWZpbmVkIG1ldGhvZHMsIHdoaWNoIGRlZmlu ZSB0aGUgYmVoYXZpb3Igb2YKKyAgICBrZXlzIGluIHRoZSB0cmVlLiBPZiBjb3Vyc2UgdGhlc2Ug bWV0aG9kcyBoYXZlIHRvIGJlIHByZXR0eSBmYW5jeSB0bworICAgIHN1cHBvcnQgZmFuY3kgcXVl cmllcywgYnV0IGZvciBhbGwgdGhlIHN0YW5kYXJkIHF1ZXJpZXMgKEItdHJlZXMsCisgICAgUi10 cmVlcywgZXRjLikgdGhleSdyZSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZC4gSW4gc2hvcnQs CisgICAgPGFjcm9ueW0+R2lTVDwvYWNyb255bT4gY29tYmluZXMgZXh0ZW5zaWJpbGl0eSBhbG9u ZyB3aXRoIGdlbmVyYWxpdHksIGNvZGUKKyAgICByZXVzZSwgYW5kIGEgY2xlYW4gaW50ZXJmYWNl LgorICAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgIFRoZXJlIGFyZSBmaXZlIG1ldGhvZHMgdGhh dCBhbiBpbmRleCBvcGVyYXRvciBjbGFzcyBmb3IKKyAgICA8YWNyb255bT5HaVNUPC9hY3Jvbnlt PiBtdXN0IHByb3ZpZGUsIGFuZCBzZXZlbiB0aGF0IGFyZSBvcHRpb25hbC4KKyAgICBDb3JyZWN0 bmVzcyBvZiB0aGUgaW5kZXggaXMgZW5zdXJlZAorICAgIGJ5IHByb3BlciBpbXBsZW1lbnRhdGlv biBvZiB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0aW9uPiwgPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8 L2Z1bmN0aW9uPgorICAgIGFuZCA8ZnVuY3Rpb24+dW5pb248L2Z1bmN0aW9uPiBtZXRob2RzLCB3 aGlsZSBlZmZpY2llbmN5IChzaXplIGFuZCBzcGVlZCkgb2YgdGhlCisgICAgaW5kZXggd2lsbCBk ZXBlbmQgb24gdGhlIDxmdW5jdGlvbj5wZW5hbHR5PC9mdW5jdGlvbj4gYW5kIDxmdW5jdGlvbj5w aWNrc3BsaXQ8L2Z1bmN0aW9uPgorICAgIG1ldGhvZHMuCisgICAgVHdvIG9wdGlvbmFsIG1ldGhv ZHMgYXJlIDxmdW5jdGlvbj5jb21wcmVzczwvZnVuY3Rpb24+IGFuZAorICAgIDxmdW5jdGlvbj5k ZWNvbXByZXNzPC9mdW5jdGlvbj4sIHdoaWNoIGFsbG93IGFuIGluZGV4IHRvIGhhdmUgaW50ZXJu YWwgdHJlZSBkYXRhIG9mCisgICAgYSBkaWZmZXJlbnQgdHlwZSB0aGFuIHRoZSBkYXRhIGl0IGlu ZGV4ZXMuIFRoZSBsZWF2ZXMgYXJlIHRvIGJlIG9mIHRoZQorICAgIGluZGV4ZWQgZGF0YSB0eXBl LCB3aGlsZSB0aGUgb3RoZXIgdHJlZSBub2RlcyBjYW4gYmUgb2YgYW55IEMgc3RydWN0IChidXQK KyAgICB5b3Ugc3RpbGwgaGF2ZSB0byBmb2xsb3cgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3By b2R1Y3RuYW1lPiBkYXRhIHR5cGUgcnVsZXMgaGVyZSwKKyAgICBzZWUgYWJvdXQgPGxpdGVyYWw+ dmFybGVuYTwvbGl0ZXJhbD4gZm9yIHZhcmlhYmxlIHNpemVkIGRhdGEpLiBJZiB0aGUgdHJlZSdz CisgICAgaW50ZXJuYWwgZGF0YSB0eXBlIGV4aXN0cyBhdCB0aGUgU1FMIGxldmVsLCB0aGUgPGxp dGVyYWw+U1RPUkFHRTwvbGl0ZXJhbD4gb3B0aW9uCisgICAgb2YgdGhlIDxjb21tYW5kPkNSRUFU RSBPUEVSQVRPUiBDTEFTUzwvY29tbWFuZD4gY29tbWFuZCBjYW4gYmUgdXNlZC4KKyAgICBUaGUg b3B0aW9uYWwgZWlnaHRoIG1ldGhvZCBpcyA8ZnVuY3Rpb24+ZGlzdGFuY2U8L2Z1bmN0aW9uPiwg d2hpY2ggaXMgbmVlZGVkCisgICAgaWYgdGhlIG9wZXJhdG9yIGNsYXNzIHdpc2hlcyB0byBzdXBw b3J0IG9yZGVyZWQgc2NhbnMgKG5lYXJlc3QtbmVpZ2hib3IKKyAgICBzZWFyY2hlcykuIFRoZSBv cHRpb25hbCBuaW50aCBtZXRob2QgPGZ1bmN0aW9uPmZldGNoPC9mdW5jdGlvbj4gaXMgbmVlZGVk IGlmIHRoZQorICAgIG9wZXJhdG9yIGNsYXNzIHdpc2hlcyB0byBzdXBwb3J0IGluZGV4LW9ubHkg c2NhbnMsIGV4Y2VwdCB3aGVuIHRoZQorICAgIDxmdW5jdGlvbj5jb21wcmVzczwvZnVuY3Rpb24+ IG1ldGhvZCBpcyBvbWl0dGVkLiBUaGUgb3B0aW9uYWwgdGVudGggbWV0aG9kCisgICAgPGZ1bmN0 aW9uPm9wdGlvbnM8L2Z1bmN0aW9uPiBpcyBuZWVkZWQgaWYgdGhlIG9wZXJhdG9yIGNsYXNzIGhh cworICAgIHVzZXItc3BlY2lmaWVkIHBhcmFtZXRlcnMuCisgICAgVGhlIG9wdGlvbmFsIGVsZXZl bnRoIG1ldGhvZCA8ZnVuY3Rpb24+c29ydHN1cHBvcnQ8L2Z1bmN0aW9uPiBpcyB1c2VkIHRvCisg ICAgc3BlZWQgdXAgYnVpbGRpbmcgYSA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBpbmRleC4KKyAg ICBUaGUgb3B0aW9uYWwgdHdlbGZ0aCBtZXRob2QgPGZ1bmN0aW9uPnN0cmF0bnVtPC9mdW5jdGlv bj4gaXMgdXNlZCB0bworICAgIHRyYW5zbGF0ZSB3ZWxsLWtub3duIDxsaXRlcmFsPlJUKlN0cmF0 ZWd5TnVtYmVyPC9saXRlcmFsPnMgKGZyb20KKyAgICA8ZmlsZW5hbWU+c3JjL2luY2x1ZGUvYWNj ZXNzL3N0cmF0bnVtLmg8L2ZpbGVuYW1lPikgaW50byBzdHJhdGVneSBudW1iZXJzCisgICAgdXNl ZCBieSB0aGUgb3BlcmF0b3IgY2xhc3MuICBUaGlzIGxldHMgdGhlIGNvcmUgY29kZSBsb29rIHVw IG9wZXJhdG9ycyBmb3IKKyAgICB0ZW1wb3JhbCBjb25zdHJhaW50IGluZGV4ZXMuCisgIDwvcGFy YT4KKworICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+ PGZ1bmN0aW9uPmNvbnNpc3RlbnQ8L2Z1bmN0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4K KyAgICAgICA8cGFyYT4KKyAgICAgICAgR2l2ZW4gYW4gaW5kZXggZW50cnkgPGxpdGVyYWw+cDwv bGl0ZXJhbD4gYW5kIGEgcXVlcnkgdmFsdWUgPGxpdGVyYWw+cTwvbGl0ZXJhbD4sCisgICAgICAg IHRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBpbmRleCBlbnRyeSBpcworICAg ICAgICA8cXVvdGU+Y29uc2lzdGVudDwvcXVvdGU+IHdpdGggdGhlIHF1ZXJ5OyB0aGF0IGlzLCBj b3VsZCB0aGUgcHJlZGljYXRlCisgICAgICAgIDxxdW90ZT48cmVwbGFjZWFibGU+aW5kZXhlZF9j b2x1bW48L3JlcGxhY2VhYmxlPgorICAgICAgICA8cmVwbGFjZWFibGU+aW5kZXhhYmxlX29wZXJh dG9yPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+cTwvbGl0ZXJhbD48L3F1b3RlPiBiZSB0cnVlIGZv cgorICAgICAgICBhbnkgcm93IHJlcHJlc2VudGVkIGJ5IHRoZSBpbmRleCBlbnRyeT8gIEZvciBh IGxlYWYgaW5kZXggZW50cnkgdGhpcyBpcworICAgICAgICBlcXVpdmFsZW50IHRvIHRlc3Rpbmcg dGhlIGluZGV4YWJsZSBjb25kaXRpb24sIHdoaWxlIGZvciBhbiBpbnRlcm5hbAorICAgICAgICB0 cmVlIG5vZGUgdGhpcyBkZXRlcm1pbmVzIHdoZXRoZXIgaXQgaXMgbmVjZXNzYXJ5IHRvIHNjYW4g dGhlIHN1YnRyZWUKKyAgICAgICAgb2YgdGhlIGluZGV4IHJlcHJlc2VudGVkIGJ5IHRoZSB0cmVl IG5vZGUuICBXaGVuIHRoZSByZXN1bHQgaXMKKyAgICAgICAgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJh bD4sIGEgPGxpdGVyYWw+cmVjaGVjazwvbGl0ZXJhbD4gZmxhZyBtdXN0IGFsc28gYmUgcmV0dXJu ZWQuCisgICAgICAgIFRoaXMgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByZWRpY2F0ZSBpcyBjZXJ0 YWlubHkgdHJ1ZSBvciBvbmx5IHBvc3NpYmx5CisgICAgICAgIHRydWUuICBJZiA8bGl0ZXJhbD5y ZWNoZWNrPC9saXRlcmFsPiA9IDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPiB0aGVuIHRoZSBpbmRl eCBoYXMKKyAgICAgICAgdGVzdGVkIHRoZSBwcmVkaWNhdGUgY29uZGl0aW9uIGV4YWN0bHksIHdo ZXJlYXMgaWYgPGxpdGVyYWw+cmVjaGVjazwvbGl0ZXJhbD4KKyAgICAgICAgPSA8bGl0ZXJhbD50 cnVlPC9saXRlcmFsPiB0aGUgcm93IGlzIG9ubHkgYSBjYW5kaWRhdGUgbWF0Y2guICBJbiB0aGF0 IGNhc2UgdGhlCisgICAgICAgIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgZXZhbHVhdGUgdGhl CisgICAgICAgIDxyZXBsYWNlYWJsZT5pbmRleGFibGVfb3BlcmF0b3I8L3JlcGxhY2VhYmxlPiBh Z2FpbnN0IHRoZSBhY3R1YWwgcm93IHZhbHVlIHRvIHNlZQorICAgICAgICBpZiBpdCBpcyByZWFs bHkgYSBtYXRjaC4gIFRoaXMgY29udmVudGlvbiBhbGxvd3MKKyAgICAgICAgPGFjcm9ueW0+R2lT VDwvYWNyb255bT4gdG8gc3VwcG9ydCBib3RoIGxvc3NsZXNzIGFuZCBsb3NzeSBpbmRleAorICAg ICAgICBzdHJ1Y3R1cmVzLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAg ICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9u IG11c3QgbG9vayBsaWtlIHRoaXM6CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIG15X2NvbnNpc3RlbnQoaW50ZXJuYWwsIGRhdGFfdHlwZSwgc21hbGxpbnQs IG9pZCwgaW50ZXJuYWwpCitSRVRVUk5TIGJvb2wKK0FTICdNT0RVTEVfUEFUSE5BTUUnCitMQU5H VUFHRSBDIFNUUklDVDsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgICAgICAgIEFuZCB0aGUgbWF0 Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhlbiBmb2xsb3cgdGhpcyBza2VsZXRv bjoKKworPHByb2dyYW1saXN0aW5nPgorUEdfRlVOQ1RJT05fSU5GT19WMShteV9jb25zaXN0ZW50 KTsKKworRGF0dW0KK215X2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKyAgICBHSVNU RU5UUlkgICplbnRyeSA9IChHSVNURU5UUlkgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7CisgICAg ZGF0YV90eXBlICAqcXVlcnkgPSBQR19HRVRBUkdfREFUQV9UWVBFX1AoMSk7CisgICAgU3RyYXRl Z3lOdW1iZXIgc3RyYXRlZ3kgPSAoU3RyYXRlZ3lOdW1iZXIpIFBHX0dFVEFSR19VSU5UMTYoMik7 CisgICAgLyogT2lkIHN1YnR5cGUgPSBQR19HRVRBUkdfT0lEKDMpOyAqLworICAgIGJvb2wgICAg ICAgKnJlY2hlY2sgPSAoYm9vbCAqKSBQR19HRVRBUkdfUE9JTlRFUig0KTsKKyAgICBkYXRhX3R5 cGUgICprZXkgPSBEYXR1bUdldERhdGFUeXBlKGVudHJ5LSZndDtrZXkpOworICAgIGJvb2wgICAg ICAgIHJldHZhbDsKKworICAgIC8qCisgICAgICogZGV0ZXJtaW5lIHJldHVybiB2YWx1ZSBhcyBh IGZ1bmN0aW9uIG9mIHN0cmF0ZWd5LCBrZXkgYW5kIHF1ZXJ5LgorICAgICAqCisgICAgICogVXNl IEdJU1RfTEVBRihlbnRyeSkgdG8ga25vdyB3aGVyZSB5b3UncmUgY2FsbGVkIGluIHRoZSBpbmRl eCB0cmVlLAorICAgICAqIHdoaWNoIGNvbWVzIGhhbmR5IHdoZW4gc3VwcG9ydGluZyB0aGUgPSBv cGVyYXRvciBmb3IgZXhhbXBsZSAoeW91IGNvdWxkCisgICAgICogY2hlY2sgZm9yIG5vbiBlbXB0 eSB1bmlvbigpIGluIG5vbi1sZWFmIG5vZGVzIGFuZCBlcXVhbGl0eSBpbiBsZWFmCisgICAgICog bm9kZXMpLgorICAgICAqLworCisgICAgKnJlY2hlY2sgPSB0cnVlOyAgICAgICAgLyogb3IgZmFs c2UgaWYgY2hlY2sgaXMgZXhhY3QgKi8KKworICAgIFBHX1JFVFVSTl9CT09MKHJldHZhbCk7Cit9 Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAgIEhlcmUsIDx2YXJuYW1lPmtleTwvdmFybmFt ZT4gaXMgYW4gZWxlbWVudCBpbiB0aGUgaW5kZXggYW5kIDx2YXJuYW1lPnF1ZXJ5PC92YXJuYW1l PgorICAgICAgICB0aGUgdmFsdWUgYmVpbmcgbG9va2VkIHVwIGluIHRoZSBpbmRleC4gVGhlIDxs aXRlcmFsPlN0cmF0ZWd5TnVtYmVyPC9saXRlcmFsPgorICAgICAgICBwYXJhbWV0ZXIgaW5kaWNh dGVzIHdoaWNoIG9wZXJhdG9yIG9mIHlvdXIgb3BlcmF0b3IgY2xhc3MgaXMgYmVpbmcKKyAgICAg ICAgYXBwbGllZCAmbWRhc2g7IGl0IG1hdGNoZXMgb25lIG9mIHRoZSBvcGVyYXRvciBudW1iZXJz IGluIHRoZQorICAgICAgICA8Y29tbWFuZD5DUkVBVEUgT1BFUkFUT1IgQ0xBU1M8L2NvbW1hbmQ+ IGNvbW1hbmQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIERlcGVu ZGluZyBvbiB3aGljaCBvcGVyYXRvcnMgeW91IGhhdmUgaW5jbHVkZWQgaW4gdGhlIGNsYXNzLCB0 aGUgZGF0YQorICAgICAgICB0eXBlIG9mIDx2YXJuYW1lPnF1ZXJ5PC92YXJuYW1lPiBjb3VsZCB2 YXJ5IHdpdGggdGhlIG9wZXJhdG9yLCBzaW5jZSBpdCB3aWxsCisgICAgICAgIGJlIHdoYXRldmVy IHR5cGUgaXMgb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiB0aGUgb3BlcmF0b3IsIHdoaWNoIG1p Z2h0CisgICAgICAgIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBpbmRleGVkIGRhdGEgdHlwZSBhcHBl YXJpbmcgb24gdGhlIGxlZnQtaGFuZCBzaWRlLgorICAgICAgICAoVGhlIGFib3ZlIGNvZGUgc2tl bGV0b24gYXNzdW1lcyB0aGF0IG9ubHkgb25lIHR5cGUgaXMgcG9zc2libGU7IGlmCisgICAgICAg IG5vdCwgZmV0Y2hpbmcgdGhlIDx2YXJuYW1lPnF1ZXJ5PC92YXJuYW1lPiBhcmd1bWVudCB2YWx1 ZSB3b3VsZCBoYXZlIHRvIGRlcGVuZAorICAgICAgICBvbiB0aGUgb3BlcmF0b3IuKSAgSXQgaXMg cmVjb21tZW5kZWQgdGhhdCB0aGUgU1FMIGRlY2xhcmF0aW9uIG9mCisgICAgICAgIHRoZSA8ZnVu Y3Rpb24+Y29uc2lzdGVudDwvZnVuY3Rpb24+IGZ1bmN0aW9uIHVzZSB0aGUgb3BjbGFzcydzIGlu ZGV4ZWQgZGF0YQorICAgICAgICB0eXBlIGZvciB0aGUgPHZhcm5hbWU+cXVlcnk8L3Zhcm5hbWU+ IGFyZ3VtZW50LCBldmVuIHRob3VnaCB0aGUgYWN0dWFsIHR5cGUKKyAgICAgICAgbWlnaHQgYmUg c29tZXRoaW5nIGVsc2UgZGVwZW5kaW5nIG9uIHRoZSBvcGVyYXRvci4KKyAgICAgICA8L3BhcmE+ CisKKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICA8dGVybT48ZnVuY3Rpb24+dW5pb248L2Z1bmN0aW9uPjwvdGVybT4K KyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBtZXRob2QgY29u c29saWRhdGVzIGluZm9ybWF0aW9uIGluIHRoZSB0cmVlLiAgR2l2ZW4gYSBzZXQgb2YKKyAgICAg ICAgZW50cmllcywgdGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBuZXcgaW5kZXggZW50cnkgdGhh dCByZXByZXNlbnRzCisgICAgICAgIGFsbCB0aGUgZ2l2ZW4gZW50cmllcy4KKyAgICAgICA8L3Bh cmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9ueW0+ IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZSB0aGlzOgorCis8cHJv Z3JhbWxpc3Rpbmc+CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBteV91bmlvbihpbnRlcm5h bCwgaW50ZXJuYWwpCitSRVRVUk5TIHN0b3JhZ2VfdHlwZQorQVMgJ01PRFVMRV9QQVRITkFNRScK K0xBTkdVQUdFIEMgU1RSSUNUOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgICAgICAgQW5kIHRo ZSBtYXRjaGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIHNr ZWxldG9uOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitQR19GVU5DVElPTl9JTkZPX1YxKG15X3VuaW9u KTsKKworRGF0dW0KK215X3VuaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgR2lzdEVudHJ5 VmVjdG9yICplbnRyeXZlYyA9IChHaXN0RW50cnlWZWN0b3IgKikgUEdfR0VUQVJHX1BPSU5URVIo MCk7CisgICAgR0lTVEVOVFJZICAqZW50ID0gZW50cnl2ZWMtJmd0O3ZlY3RvcjsKKyAgICBkYXRh X3R5cGUgICpvdXQsCisgICAgICAgICAgICAgICAqdG1wLAorICAgICAgICAgICAgICAgKm9sZDsK KyAgICBpbnQgICAgICAgICBudW1yYW5nZXMsCisgICAgICAgICAgICAgICAgaSA9IDA7CisKKyAg ICBudW1yYW5nZXMgPSBlbnRyeXZlYy0mZ3Q7bjsKKyAgICB0bXAgPSBEYXR1bUdldERhdGFUeXBl KGVudFswXS5rZXkpOworICAgIG91dCA9IHRtcDsKKworICAgIGlmIChudW1yYW5nZXMgPT0gMSkK KyAgICB7CisgICAgICAgIG91dCA9IGRhdGFfdHlwZV9kZWVwX2NvcHkodG1wKTsKKworICAgICAg ICBQR19SRVRVUk5fREFUQV9UWVBFX1Aob3V0KTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAxOyBp ICZsdDsgbnVtcmFuZ2VzOyBpKyspCisgICAgeworICAgICAgICBvbGQgPSBvdXQ7CisgICAgICAg IHRtcCA9IERhdHVtR2V0RGF0YVR5cGUoZW50W2ldLmtleSk7CisgICAgICAgIG91dCA9IG15X3Vu aW9uX2ltcGxlbWVudGF0aW9uKG91dCwgdG1wKTsKKyAgICB9CisKKyAgICBQR19SRVRVUk5fREFU QV9UWVBFX1Aob3V0KTsKK30KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgPC9wYXJhPgorCisg ICAgICAgPHBhcmE+CisgICAgICAgICBBcyB5b3UgY2FuIHNlZSwgaW4gdGhpcyBza2VsZXRvbiB3 ZSdyZSBkZWFsaW5nIHdpdGggYSBkYXRhIHR5cGUKKyAgICAgICAgIHdoZXJlIDxsaXRlcmFsPnVu aW9uKFgsIFksIFopID0gdW5pb24odW5pb24oWCwgWSksIFopPC9saXRlcmFsPi4gSXQncyBlYXN5 CisgICAgICAgICBlbm91Z2ggdG8gc3VwcG9ydCBkYXRhIHR5cGVzIHdoZXJlIHRoaXMgaXMgbm90 IHRoZSBjYXNlLCBieQorICAgICAgICAgaW1wbGVtZW50aW5nIHRoZSBwcm9wZXIgdW5pb24gYWxn b3JpdGhtIGluIHRoaXMKKyAgICAgICAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IHN1cHBvcnQg bWV0aG9kLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIHJl c3VsdCBvZiB0aGUgPGZ1bmN0aW9uPnVuaW9uPC9mdW5jdGlvbj4gZnVuY3Rpb24gbXVzdCBiZSBh IHZhbHVlIG9mIHRoZQorICAgICAgICAgaW5kZXgncyBzdG9yYWdlIHR5cGUsIHdoYXRldmVyIHRo YXQgaXMgKGl0IG1pZ2h0IG9yIG1pZ2h0IG5vdCBiZQorICAgICAgICAgZGlmZmVyZW50IGZyb20g dGhlIGluZGV4ZWQgY29sdW1uJ3MgdHlwZSkuICBUaGUgPGZ1bmN0aW9uPnVuaW9uPC9mdW5jdGlv bj4KKyAgICAgICAgIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYSBwb2ludGVyIHRvIG5ld2x5IDxm dW5jdGlvbj5wYWxsb2MoKTwvZnVuY3Rpb24+ZWQKKyAgICAgICAgIG1lbW9yeS4gWW91IGNhbid0 IGp1c3QgcmV0dXJuIHRoZSBpbnB1dCB2YWx1ZSBhcy1pcywgZXZlbiBpZiB0aGVyZSBpcworICAg ICAgICAgbm8gdHlwZSBjaGFuZ2UuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+Cisg ICAgICAgIEFzIHNob3duIGFib3ZlLCB0aGUgPGZ1bmN0aW9uPnVuaW9uPC9mdW5jdGlvbj4gZnVu Y3Rpb24ncworICAgICAgICBmaXJzdCA8dHlwZT5pbnRlcm5hbDwvdHlwZT4gYXJndW1lbnQgaXMg YWN0dWFsbHkKKyAgICAgICAgYSA8c3RydWN0bmFtZT5HaXN0RW50cnlWZWN0b3I8L3N0cnVjdG5h bWU+IHBvaW50ZXIuICBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIGEKKyAgICAgICAgcG9pbnRlciB0 byBhbiBpbnRlZ2VyIHZhcmlhYmxlLCB3aGljaCBjYW4gYmUgaWdub3JlZC4gIChJdCB1c2VkIHRv IGJlCisgICAgICAgIHJlcXVpcmVkIHRoYXQgdGhlIDxmdW5jdGlvbj51bmlvbjwvZnVuY3Rpb24+ IGZ1bmN0aW9uIHN0b3JlIHRoZSBzaXplIG9mIGl0cworICAgICAgICByZXN1bHQgdmFsdWUgaW50 byB0aGF0IHZhcmlhYmxlLCBidXQgdGhpcyBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LikKKyAgICAg ICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPmNvbXByZXNzPC9mdW5jdGlv bj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIENvbnZl cnRzIGEgZGF0YSBpdGVtIGludG8gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHBoeXNpY2FsIHN0b3Jh Z2UgaW4KKyAgICAgICAgYW4gaW5kZXggcGFnZS4KKyAgICAgICAgSWYgdGhlIDxmdW5jdGlvbj5j b21wcmVzczwvZnVuY3Rpb24+IG1ldGhvZCBpcyBvbWl0dGVkLCBkYXRhIGl0ZW1zIGFyZSBzdG9y ZWQKKyAgICAgICAgaW4gdGhlIGluZGV4IHdpdGhvdXQgbW9kaWZpY2F0aW9uLgorICAgICAgIDwv cGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255 bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtlIHRoaXM6CisKKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X2NvbXByZXNzKGlu dGVybmFsKQorUkVUVVJOUyBpbnRlcm5hbAorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdF IEMgU1RSSUNUOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgICAgICAgQW5kIHRoZSBtYXRjaGlu ZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIHNrZWxldG9uOgor Cis8cHJvZ3JhbWxpc3Rpbmc+CitQR19GVU5DVElPTl9JTkZPX1YxKG15X2NvbXByZXNzKTsKKwor RGF0dW0KK215X2NvbXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgR0lTVEVOVFJZICAq ZW50cnkgPSAoR0lTVEVOVFJZICopIFBHX0dFVEFSR19QT0lOVEVSKDApOworICAgIEdJU1RFTlRS WSAgKnJldHZhbDsKKworICAgIGlmIChlbnRyeS0mZ3Q7bGVhZmtleSkKKyAgICB7CisgICAgICAg IC8qIHJlcGxhY2UgZW50cnktJmd0O2tleSB3aXRoIGEgY29tcHJlc3NlZCB2ZXJzaW9uICovCisg ICAgICAgIGNvbXByZXNzZWRfZGF0YV90eXBlICpjb21wcmVzc2VkX2RhdGEgPSBwYWxsb2Moc2l6 ZW9mKGNvbXByZXNzZWRfZGF0YV90eXBlKSk7CisKKyAgICAgICAgLyogZmlsbCAqY29tcHJlc3Nl ZF9kYXRhIGZyb20gZW50cnktJmd0O2tleSAuLi4gKi8KKworICAgICAgICByZXR2YWwgPSBwYWxs b2Moc2l6ZW9mKEdJU1RFTlRSWSkpOworICAgICAgICBnaXN0ZW50cnlpbml0KCpyZXR2YWwsIFBv aW50ZXJHZXREYXR1bShjb21wcmVzc2VkX2RhdGEpLAorICAgICAgICAgICAgICAgICAgICAgIGVu dHJ5LSZndDtyZWwsIGVudHJ5LSZndDtwYWdlLCBlbnRyeS0mZ3Q7b2Zmc2V0LCBGQUxTRSk7Cisg ICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8qIHR5cGljYWxseSB3ZSBuZWVkbid0IGRv IGFueXRoaW5nIHdpdGggbm9uLWxlYWYgZW50cmllcyAqLworICAgICAgICByZXR2YWwgPSBlbnRy eTsKKyAgICB9CisKKyAgICBQR19SRVRVUk5fUE9JTlRFUihyZXR2YWwpOworfQorPC9wcm9ncmFt bGlzdGluZz4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgWW91IGhh dmUgdG8gYWRhcHQgPHJlcGxhY2VhYmxlPmNvbXByZXNzZWRfZGF0YV90eXBlPC9yZXBsYWNlYWJs ZT4gdG8gdGhlIHNwZWNpZmljCisgICAgICAgIHR5cGUgeW91J3JlIGNvbnZlcnRpbmcgdG8gaW4g b3JkZXIgdG8gY29tcHJlc3MgeW91ciBsZWFmIG5vZGVzLCBvZgorICAgICAgICBjb3Vyc2UuCisg ICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisK KyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxmdW5jdGlvbj5kZWNvbXByZXNzPC9m dW5jdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAg IENvbnZlcnRzIHRoZSBzdG9yZWQgcmVwcmVzZW50YXRpb24gb2YgYSBkYXRhIGl0ZW0gaW50byBh IGZvcm1hdCB0aGF0CisgICAgICAgIGNhbiBiZSBtYW5pcHVsYXRlZCBieSB0aGUgb3RoZXIgR2lT VCBtZXRob2RzIGluIHRoZSBvcGVyYXRvciBjbGFzcy4KKyAgICAgICAgSWYgdGhlIDxmdW5jdGlv bj5kZWNvbXByZXNzPC9mdW5jdGlvbj4gbWV0aG9kIGlzIG9taXR0ZWQsIGl0IGlzIGFzc3VtZWQg dGhhdAorICAgICAgICB0aGUgb3RoZXIgR2lTVCBtZXRob2RzIGNhbiB3b3JrIGRpcmVjdGx5IG9u IHRoZSBzdG9yZWQgZGF0YSBmb3JtYXQuCisgICAgICAgICg8ZnVuY3Rpb24+ZGVjb21wcmVzczwv ZnVuY3Rpb24+IGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgcmV2ZXJzZSBvZgorICAgICAgICB0aGUg PGZ1bmN0aW9uPmNvbXByZXNzPC9mdW5jdGlvbj4gbWV0aG9kOyBpbiBwYXJ0aWN1bGFyLAorICAg ICAgICBpZiA8ZnVuY3Rpb24+Y29tcHJlc3M8L2Z1bmN0aW9uPiBpcyBsb3NzeSB0aGVuIGl0J3Mg aW1wb3NzaWJsZQorICAgICAgICBmb3IgPGZ1bmN0aW9uPmRlY29tcHJlc3M8L2Z1bmN0aW9uPiB0 byBleGFjdGx5IHJlY29uc3RydWN0IHRoZSBvcmlnaW5hbAorICAgICAgICBkYXRhLiAgPGZ1bmN0 aW9uPmRlY29tcHJlc3M8L2Z1bmN0aW9uPiBpcyBub3QgbmVjZXNzYXJpbHkgZXF1aXZhbGVudAor ICAgICAgICB0byA8ZnVuY3Rpb24+ZmV0Y2g8L2Z1bmN0aW9uPiwgZWl0aGVyLCBzaW5jZSB0aGUg b3RoZXIgR2lTVCBtZXRob2RzIG1pZ2h0IG5vdAorICAgICAgICByZXF1aXJlIGZ1bGwgcmVjb25z dHJ1Y3Rpb24gb2YgdGhlIGRhdGEuKQorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgor ICAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1 bmN0aW9uIG11c3QgbG9vayBsaWtlIHRoaXM6CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIG15X2RlY29tcHJlc3MoaW50ZXJuYWwpCitSRVRVUk5TIGludGVy bmFsCitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBTVFJJQ1Q7Cis8L3Byb2dyYW1s aXN0aW5nPgorCisgICAgICAgICBBbmQgdGhlIG1hdGNoaW5nIGNvZGUgaW4gdGhlIEMgbW9kdWxl IGNvdWxkIHRoZW4gZm9sbG93IHRoaXMgc2tlbGV0b246CisKKzxwcm9ncmFtbGlzdGluZz4KK1BH X0ZVTkNUSU9OX0lORk9fVjEobXlfZGVjb21wcmVzcyk7CisKK0RhdHVtCitteV9kZWNvbXByZXNz KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgUEdfUkVUVVJOX1BPSU5URVIoUEdfR0VUQVJHX1BP SU5URVIoMCkpOworfQorPC9wcm9ncmFtbGlzdGluZz4KKworICAgICAgICAgVGhlIGFib3ZlIHNr ZWxldG9uIGlzIHN1aXRhYmxlIGZvciB0aGUgY2FzZSB3aGVyZSBubyBkZWNvbXByZXNzaW9uCisg ICAgICAgICBpcyBuZWVkZWQuICAoQnV0LCBvZiBjb3Vyc2UsIG9taXR0aW5nIHRoZSBtZXRob2Qg YWx0b2dldGhlciBpcyBldmVuCisgICAgICAgICBlYXNpZXIsIGFuZCBpcyByZWNvbW1lbmRlZCBp biBzdWNoIGNhc2VzLikKKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGZ1bmN0 aW9uPnBlbmFsdHk8L2Z1bmN0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgUmV0dXJucyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIDxxdW90ZT5jb3N0 PC9xdW90ZT4gb2YgaW5zZXJ0aW5nIHRoZSBuZXcKKyAgICAgICAgZW50cnkgaW50byBhIHBhcnRp Y3VsYXIgYnJhbmNoIG9mIHRoZSB0cmVlLiAgSXRlbXMgd2lsbCBiZSBpbnNlcnRlZAorICAgICAg ICBkb3duIHRoZSBwYXRoIG9mIGxlYXN0IDxmdW5jdGlvbj5wZW5hbHR5PC9mdW5jdGlvbj4gaW4g dGhlIHRyZWUuCisgICAgICAgIFZhbHVlcyByZXR1cm5lZCBieSA8ZnVuY3Rpb24+cGVuYWx0eTwv ZnVuY3Rpb24+IHNob3VsZCBiZSBub24tbmVnYXRpdmUuCisgICAgICAgIElmIGEgbmVnYXRpdmUg dmFsdWUgaXMgcmV0dXJuZWQsIGl0IHdpbGwgYmUgdHJlYXRlZCBhcyB6ZXJvLgorICAgICAgIDwv cGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255 bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtlIHRoaXM6CisKKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X3BlbmFsdHkoaW50 ZXJuYWwsIGludGVybmFsLCBpbnRlcm5hbCkKK1JFVFVSTlMgaW50ZXJuYWwKK0FTICdNT0RVTEVf UEFUSE5BTUUnCitMQU5HVUFHRSBDIFNUUklDVDsgIC0tIGluIHNvbWUgY2FzZXMgcGVuYWx0eSBm dW5jdGlvbnMgbmVlZCBub3QgYmUgc3RyaWN0Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAg ICBBbmQgdGhlIG1hdGNoaW5nIGNvZGUgaW4gdGhlIEMgbW9kdWxlIGNvdWxkIHRoZW4gZm9sbG93 IHRoaXMgc2tlbGV0b246CisKKzxwcm9ncmFtbGlzdGluZz4KK1BHX0ZVTkNUSU9OX0lORk9fVjEo bXlfcGVuYWx0eSk7CisKK0RhdHVtCitteV9wZW5hbHR5KFBHX0ZVTkNUSU9OX0FSR1MpCit7Cisg ICAgR0lTVEVOVFJZICAqb3JpZ2VudHJ5ID0gKEdJU1RFTlRSWSAqKSBQR19HRVRBUkdfUE9JTlRF UigwKTsKKyAgICBHSVNURU5UUlkgICpuZXdlbnRyeSA9IChHSVNURU5UUlkgKikgUEdfR0VUQVJH X1BPSU5URVIoMSk7CisgICAgZmxvYXQgICAgICAqcGVuYWx0eSA9IChmbG9hdCAqKSBQR19HRVRB UkdfUE9JTlRFUigyKTsKKyAgICBkYXRhX3R5cGUgICpvcmlnID0gRGF0dW1HZXREYXRhVHlwZShv cmlnZW50cnktJmd0O2tleSk7CisgICAgZGF0YV90eXBlICAqbmV3ID0gRGF0dW1HZXREYXRhVHlw ZShuZXdlbnRyeS0mZ3Q7a2V5KTsKKworICAgICpwZW5hbHR5ID0gbXlfcGVuYWx0eV9pbXBsZW1l bnRhdGlvbihvcmlnLCBuZXcpOworICAgIFBHX1JFVFVSTl9QT0lOVEVSKHBlbmFsdHkpOworfQor PC9wcm9ncmFtbGlzdGluZz4KKworICAgICAgICAgRm9yIGhpc3RvcmljYWwgcmVhc29ucywgdGhl IDxmdW5jdGlvbj5wZW5hbHR5PC9mdW5jdGlvbj4gZnVuY3Rpb24gZG9lc24ndAorICAgICAgICAg anVzdCByZXR1cm4gYSA8dHlwZT5mbG9hdDwvdHlwZT4gcmVzdWx0OyBpbnN0ZWFkIGl0IGhhcyB0 byBzdG9yZSB0aGUgdmFsdWUKKyAgICAgICAgIGF0IHRoZSBsb2NhdGlvbiBpbmRpY2F0ZWQgYnkg dGhlIHRoaXJkIGFyZ3VtZW50LiAgVGhlIHJldHVybgorICAgICAgICAgdmFsdWUgcGVyIHNlIGlz IGlnbm9yZWQsIHRob3VnaCBpdCdzIGNvbnZlbnRpb25hbCB0byBwYXNzIGJhY2sgdGhlCisgICAg ICAgICBhZGRyZXNzIG9mIHRoYXQgYXJndW1lbnQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAg PHBhcmE+CisgICAgICAgICBUaGUgPGZ1bmN0aW9uPnBlbmFsdHk8L2Z1bmN0aW9uPiBmdW5jdGlv biBpcyBjcnVjaWFsIHRvIGdvb2QgcGVyZm9ybWFuY2Ugb2YKKyAgICAgICAgIHRoZSBpbmRleC4g SXQnbGwgZ2V0IHVzZWQgYXQgaW5zZXJ0aW9uIHRpbWUgdG8gZGV0ZXJtaW5lIHdoaWNoIGJyYW5j aAorICAgICAgICAgdG8gZm9sbG93IHdoZW4gY2hvb3Npbmcgd2hlcmUgdG8gYWRkIHRoZSBuZXcg ZW50cnkgaW4gdGhlIHRyZWUuIEF0CisgICAgICAgICBxdWVyeSB0aW1lLCB0aGUgbW9yZSBiYWxh bmNlZCB0aGUgaW5kZXgsIHRoZSBxdWlja2VyIHRoZSBsb29rdXAuCisgICAgICAgPC9wYXJhPgor ICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgIDx0ZXJtPjxmdW5jdGlvbj5waWNrc3BsaXQ8L2Z1bmN0aW9uPjwvdGVybT4K KyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgV2hlbiBhbiBpbmRleCBw YWdlIHNwbGl0IGlzIG5lY2Vzc2FyeSwgdGhpcyBmdW5jdGlvbiBkZWNpZGVzIHdoaWNoCisgICAg ICAgIGVudHJpZXMgb24gdGhlIHBhZ2UgYXJlIHRvIHN0YXkgb24gdGhlIG9sZCBwYWdlLCBhbmQg d2hpY2ggYXJlIHRvIG1vdmUKKyAgICAgICAgdG8gdGhlIG5ldyBwYWdlLgorICAgICAgIDwvcGFy YT4KKworICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4g ZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtlIHRoaXM6CisKKzxwcm9n cmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X3BpY2tzcGxpdChpbnRl cm5hbCwgaW50ZXJuYWwpCitSRVRVUk5TIGludGVybmFsCitBUyAnTU9EVUxFX1BBVEhOQU1FJwor TEFOR1VBR0UgQyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAgICBBbmQgdGhl IG1hdGNoaW5nIGNvZGUgaW4gdGhlIEMgbW9kdWxlIGNvdWxkIHRoZW4gZm9sbG93IHRoaXMgc2tl bGV0b246CisKKzxwcm9ncmFtbGlzdGluZz4KK1BHX0ZVTkNUSU9OX0lORk9fVjEobXlfcGlja3Nw bGl0KTsKKworRGF0dW0KK215X3BpY2tzcGxpdChQR19GVU5DVElPTl9BUkdTKQoreworICAgIEdp c3RFbnRyeVZlY3RvciAqZW50cnl2ZWMgPSAoR2lzdEVudHJ5VmVjdG9yICopIFBHX0dFVEFSR19Q T0lOVEVSKDApOworICAgIEdJU1RfU1BMSVRWRUMgKnYgPSAoR0lTVF9TUExJVFZFQyAqKSBQR19H RVRBUkdfUE9JTlRFUigxKTsKKyAgICBPZmZzZXROdW1iZXIgbWF4b2ZmID0gZW50cnl2ZWMtJmd0 O24gLSAxOworICAgIEdJU1RFTlRSWSAgKmVudCA9IGVudHJ5dmVjLSZndDt2ZWN0b3I7CisgICAg aW50ICAgICAgICAgaSwKKyAgICAgICAgICAgICAgICBuYnl0ZXM7CisgICAgT2Zmc2V0TnVtYmVy ICpsZWZ0LAorICAgICAgICAgICAgICAgKnJpZ2h0OworICAgIGRhdGFfdHlwZSAgKnRtcF91bmlv bjsKKyAgICBkYXRhX3R5cGUgICp1bmlvbkw7CisgICAgZGF0YV90eXBlICAqdW5pb25SOworICAg IEdJU1RFTlRSWSAqKnJhd19lbnRyeXZlYzsKKworICAgIG1heG9mZiA9IGVudHJ5dmVjLSZndDtu IC0gMTsKKyAgICBuYnl0ZXMgPSAobWF4b2ZmICsgMSkgKiBzaXplb2YoT2Zmc2V0TnVtYmVyKTsK KworICAgIHYtJmd0O3NwbF9sZWZ0ID0gKE9mZnNldE51bWJlciAqKSBwYWxsb2MobmJ5dGVzKTsK KyAgICBsZWZ0ID0gdi0mZ3Q7c3BsX2xlZnQ7CisgICAgdi0mZ3Q7c3BsX25sZWZ0ID0gMDsKKwor ICAgIHYtJmd0O3NwbF9yaWdodCA9IChPZmZzZXROdW1iZXIgKikgcGFsbG9jKG5ieXRlcyk7Cisg ICAgcmlnaHQgPSB2LSZndDtzcGxfcmlnaHQ7CisgICAgdi0mZ3Q7c3BsX25yaWdodCA9IDA7CisK KyAgICB1bmlvbkwgPSBOVUxMOworICAgIHVuaW9uUiA9IE5VTEw7CisKKyAgICAvKiBJbml0aWFs aXplIHRoZSByYXcgZW50cnkgdmVjdG9yLiAqLworICAgIHJhd19lbnRyeXZlYyA9IChHSVNURU5U UlkgKiopIG1hbGxvYyhlbnRyeXZlYy0mZ3Q7biAqIHNpemVvZih2b2lkICopKTsKKyAgICBmb3Ig KGkgPSBGaXJzdE9mZnNldE51bWJlcjsgaSAmbHQ7PSBtYXhvZmY7IGkgPSBPZmZzZXROdW1iZXJO ZXh0KGkpKQorICAgICAgICByYXdfZW50cnl2ZWNbaV0gPSAmYW1wOyhlbnRyeXZlYy0mZ3Q7dmVj dG9yW2ldKTsKKworICAgIGZvciAoaSA9IEZpcnN0T2Zmc2V0TnVtYmVyOyBpICZsdDs9IG1heG9m ZjsgaSA9IE9mZnNldE51bWJlck5leHQoaSkpCisgICAgeworICAgICAgICBpbnQgICAgICAgICBy ZWFsX2luZGV4ID0gcmF3X2VudHJ5dmVjW2ldIC0gZW50cnl2ZWMtJmd0O3ZlY3RvcjsKKworICAg ICAgICB0bXBfdW5pb24gPSBEYXR1bUdldERhdGFUeXBlKGVudHJ5dmVjLSZndDt2ZWN0b3JbcmVh bF9pbmRleF0ua2V5KTsKKyAgICAgICAgQXNzZXJ0KHRtcF91bmlvbiAhPSBOVUxMKTsKKworICAg ICAgICAvKgorICAgICAgICAgKiBDaG9vc2Ugd2hlcmUgdG8gcHV0IHRoZSBpbmRleCBlbnRyaWVz IGFuZCB1cGRhdGUgdW5pb25MIGFuZCB1bmlvblIKKyAgICAgICAgICogYWNjb3JkaW5nbHkuIEFw cGVuZCB0aGUgZW50cmllcyB0byBlaXRoZXIgdi0mZ3Q7c3BsX2xlZnQgb3IKKyAgICAgICAgICog di0mZ3Q7c3BsX3JpZ2h0LCBhbmQgY2FyZSBhYm91dCB0aGUgY291bnRlcnMuCisgICAgICAgICAq LworCisgICAgICAgIGlmIChteV9jaG9pY2VfaXNfbGVmdCh1bmlvbkwsIGN1cmwsIHVuaW9uUiwg Y3VycikpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh1bmlvbkwgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgICB1bmlvbkwgPSB0bXBfdW5pb247CisgICAgICAgICAgICBlbHNlCisgICAgICAg ICAgICAgICAgdW5pb25MID0gbXlfdW5pb25faW1wbGVtZW50YXRpb24odW5pb25MLCB0bXBfdW5p b24pOworCisgICAgICAgICAgICAqbGVmdCA9IHJlYWxfaW5kZXg7CisgICAgICAgICAgICArK2xl ZnQ7CisgICAgICAgICAgICArKyh2LSZndDtzcGxfbmxlZnQpOworICAgICAgICB9CisgICAgICAg IGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFNhbWUgb24g dGhlIHJpZ2h0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgfQorICAgIH0KKworICAgIHYtJmd0 O3NwbF9sZGF0dW0gPSBEYXRhVHlwZUdldERhdHVtKHVuaW9uTCk7CisgICAgdi0mZ3Q7c3BsX3Jk YXR1bSA9IERhdGFUeXBlR2V0RGF0dW0odW5pb25SKTsKKyAgICBQR19SRVRVUk5fUE9JTlRFUih2 KTsKK30KKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgICAgICAgTm90aWNlIHRoYXQgdGhlIDxmdW5j dGlvbj5waWNrc3BsaXQ8L2Z1bmN0aW9uPiBmdW5jdGlvbidzIHJlc3VsdCBpcyBkZWxpdmVyZWQK KyAgICAgICAgYnkgbW9kaWZ5aW5nIHRoZSBwYXNzZWQtaW4gPHN0cnVjdG5hbWU+djwvc3RydWN0 bmFtZT4gc3RydWN0dXJlLiAgVGhlIHJldHVybgorICAgICAgICB2YWx1ZSBwZXIgc2UgaXMgaWdu b3JlZCwgdGhvdWdoIGl0J3MgY29udmVudGlvbmFsIHRvIHBhc3MgYmFjayB0aGUKKyAgICAgICAg YWRkcmVzcyBvZiA8c3RydWN0bmFtZT52PC9zdHJ1Y3RuYW1lPi4KKyAgICAgICA8L3BhcmE+CisK KyAgICAgICA8cGFyYT4KKyAgICAgICAgIExpa2UgPGZ1bmN0aW9uPnBlbmFsdHk8L2Z1bmN0aW9u PiwgdGhlIDxmdW5jdGlvbj5waWNrc3BsaXQ8L2Z1bmN0aW9uPiBmdW5jdGlvbgorICAgICAgICAg aXMgY3J1Y2lhbCB0byBnb29kIHBlcmZvcm1hbmNlIG9mIHRoZSBpbmRleC4gIERlc2lnbmluZyBz dWl0YWJsZQorICAgICAgICAgPGZ1bmN0aW9uPnBlbmFsdHk8L2Z1bmN0aW9uPiBhbmQgPGZ1bmN0 aW9uPnBpY2tzcGxpdDwvZnVuY3Rpb24+IGltcGxlbWVudGF0aW9ucworICAgICAgICAgaXMgd2hl cmUgdGhlIGNoYWxsZW5nZSBvZiBpbXBsZW1lbnRpbmcgd2VsbC1wZXJmb3JtaW5nCisgICAgICAg ICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBpbmRleGVzIGxpZXMuCisgICAgICAgPC9wYXJhPgor ICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgIDx0ZXJtPjxmdW5jdGlvbj5zYW1lPC9mdW5jdGlvbj48L3Rlcm0+CisgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0d28g aW5kZXggZW50cmllcyBhcmUgaWRlbnRpY2FsLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICAgIChB biA8cXVvdGU+aW5kZXggZW50cnk8L3F1b3RlPiBpcyBhIHZhbHVlIG9mIHRoZSBpbmRleCdzIHN0 b3JhZ2UgdHlwZSwKKyAgICAgICAgbm90IG5lY2Vzc2FyaWx5IHRoZSBvcmlnaW5hbCBpbmRleGVk IGNvbHVtbidzIHR5cGUuKQorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAg ICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9u IG11c3QgbG9vayBsaWtlIHRoaXM6CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIG15X3NhbWUoc3RvcmFnZV90eXBlLCBzdG9yYWdlX3R5cGUsIGludGVybmFs KQorUkVUVVJOUyBpbnRlcm5hbAorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RS SUNUOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgICAgICAgQW5kIHRoZSBtYXRjaGluZyBjb2Rl IGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIHNrZWxldG9uOgorCis8cHJv Z3JhbWxpc3Rpbmc+CitQR19GVU5DVElPTl9JTkZPX1YxKG15X3NhbWUpOworCitEYXR1bQorbXlf c2FtZShQR19GVU5DVElPTl9BUkdTKQoreworICAgIHByZWZpeF9yYW5nZSAqdjEgPSBQR19HRVRB UkdfUFJFRklYX1JBTkdFX1AoMCk7CisgICAgcHJlZml4X3JhbmdlICp2MiA9IFBHX0dFVEFSR19Q UkVGSVhfUkFOR0VfUCgxKTsKKyAgICBib29sICAgICAgICpyZXN1bHQgPSAoYm9vbCAqKSBQR19H RVRBUkdfUE9JTlRFUigyKTsKKworICAgICpyZXN1bHQgPSBteV9lcSh2MSwgdjIpOworICAgIFBH X1JFVFVSTl9QT0lOVEVSKHJlc3VsdCk7Cit9Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAg ICBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0aW9uPiBm dW5jdGlvbiBkb2Vzbid0CisgICAgICAgICBqdXN0IHJldHVybiBhIEJvb2xlYW4gcmVzdWx0OyBp bnN0ZWFkIGl0IGhhcyB0byBzdG9yZSB0aGUgZmxhZworICAgICAgICAgYXQgdGhlIGxvY2F0aW9u IGluZGljYXRlZCBieSB0aGUgdGhpcmQgYXJndW1lbnQuICBUaGUgcmV0dXJuCisgICAgICAgICB2 YWx1ZSBwZXIgc2UgaXMgaWdub3JlZCwgdGhvdWdoIGl0J3MgY29udmVudGlvbmFsIHRvIHBhc3Mg YmFjayB0aGUKKyAgICAgICAgIGFkZHJlc3Mgb2YgdGhhdCBhcmd1bWVudC4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPmRpc3RhbmNlPC9mdW5jdGlvbj48L3Rl cm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEdpdmVuIGFuIGlu ZGV4IGVudHJ5IDxsaXRlcmFsPnA8L2xpdGVyYWw+IGFuZCBhIHF1ZXJ5IHZhbHVlIDxsaXRlcmFs PnE8L2xpdGVyYWw+LAorICAgICAgICB0aGlzIGZ1bmN0aW9uIGRldGVybWluZXMgdGhlIGluZGV4 IGVudHJ5J3MKKyAgICAgICAgPHF1b3RlPmRpc3RhbmNlPC9xdW90ZT4gZnJvbSB0aGUgcXVlcnkg dmFsdWUuICBUaGlzIGZ1bmN0aW9uIG11c3QgYmUKKyAgICAgICAgc3VwcGxpZWQgaWYgdGhlIG9w ZXJhdG9yIGNsYXNzIGNvbnRhaW5zIGFueSBvcmRlcmluZyBvcGVyYXRvcnMuCisgICAgICAgIEEg cXVlcnkgdXNpbmcgdGhlIG9yZGVyaW5nIG9wZXJhdG9yIHdpbGwgYmUgaW1wbGVtZW50ZWQgYnkg cmV0dXJuaW5nCisgICAgICAgIGluZGV4IGVudHJpZXMgd2l0aCB0aGUgc21hbGxlc3QgPHF1b3Rl PmRpc3RhbmNlPC9xdW90ZT4gdmFsdWVzIGZpcnN0LAorICAgICAgICBzbyB0aGUgcmVzdWx0cyBt dXN0IGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgb3BlcmF0b3IncyBzZW1hbnRpY3MuCisgICAgICAg IEZvciBhIGxlYWYgaW5kZXggZW50cnkgdGhlIHJlc3VsdCBqdXN0IHJlcHJlc2VudHMgdGhlIGRp c3RhbmNlIHRvCisgICAgICAgIHRoZSBpbmRleCBlbnRyeTsgZm9yIGFuIGludGVybmFsIHRyZWUg bm9kZSwgdGhlIHJlc3VsdCBtdXN0IGJlIHRoZQorICAgICAgICBzbWFsbGVzdCBkaXN0YW5jZSB0 aGF0IGFueSBjaGlsZCBlbnRyeSBjb3VsZCBoYXZlLgorICAgICAgIDwvcGFyYT4KKworICAgICAg IDxwYXJhPgorICAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24g b2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtlIHRoaXM6CisKKzxwcm9ncmFtbGlzdGluZz4K K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X2Rpc3RhbmNlKGludGVybmFsLCBkYXRhX3R5 cGUsIHNtYWxsaW50LCBvaWQsIGludGVybmFsKQorUkVUVVJOUyBmbG9hdDgKK0FTICdNT0RVTEVf UEFUSE5BTUUnCitMQU5HVUFHRSBDIFNUUklDVDsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgICAg ICAgIEFuZCB0aGUgbWF0Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhlbiBmb2xs b3cgdGhpcyBza2VsZXRvbjoKKworPHByb2dyYW1saXN0aW5nPgorUEdfRlVOQ1RJT05fSU5GT19W MShteV9kaXN0YW5jZSk7CisKK0RhdHVtCitteV9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdTKQor eworICAgIEdJU1RFTlRSWSAgKmVudHJ5ID0gKEdJU1RFTlRSWSAqKSBQR19HRVRBUkdfUE9JTlRF UigwKTsKKyAgICBkYXRhX3R5cGUgICpxdWVyeSA9IFBHX0dFVEFSR19EQVRBX1RZUEVfUCgxKTsK KyAgICBTdHJhdGVneU51bWJlciBzdHJhdGVneSA9IChTdHJhdGVneU51bWJlcikgUEdfR0VUQVJH X1VJTlQxNigyKTsKKyAgICAvKiBPaWQgc3VidHlwZSA9IFBHX0dFVEFSR19PSUQoMyk7ICovCisg ICAgLyogYm9vbCAqcmVjaGVjayA9IChib29sICopIFBHX0dFVEFSR19QT0lOVEVSKDQpOyAqLwor ICAgIGRhdGFfdHlwZSAgKmtleSA9IERhdHVtR2V0RGF0YVR5cGUoZW50cnktJmd0O2tleSk7Cisg ICAgZG91YmxlICAgICAgcmV0dmFsOworCisgICAgLyoKKyAgICAgKiBkZXRlcm1pbmUgcmV0dXJu IHZhbHVlIGFzIGEgZnVuY3Rpb24gb2Ygc3RyYXRlZ3ksIGtleSBhbmQgcXVlcnkuCisgICAgICov CisKKyAgICBQR19SRVRVUk5fRkxPQVQ4KHJldHZhbCk7Cit9Cis8L3Byb2dyYW1saXN0aW5nPgor CisgICAgICAgIFRoZSBhcmd1bWVudHMgdG8gdGhlIDxmdW5jdGlvbj5kaXN0YW5jZTwvZnVuY3Rp b24+IGZ1bmN0aW9uIGFyZSBpZGVudGljYWwgdG8KKyAgICAgICAgdGhlIGFyZ3VtZW50cyBvZiB0 aGUgPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KKyAgICAgICA8L3Bh cmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgU29tZSBhcHByb3hpbWF0aW9uIGlzIGFsbG93 ZWQgd2hlbiBkZXRlcm1pbmluZyB0aGUgZGlzdGFuY2UsIHNvIGxvbmcKKyAgICAgICAgYXMgdGhl IHJlc3VsdCBpcyBuZXZlciBncmVhdGVyIHRoYW4gdGhlIGVudHJ5J3MgYWN0dWFsIGRpc3RhbmNl LiBUaHVzLAorICAgICAgICBmb3IgZXhhbXBsZSwgZGlzdGFuY2UgdG8gYSBib3VuZGluZyBib3gg aXMgdXN1YWxseSBzdWZmaWNpZW50IGluCisgICAgICAgIGdlb21ldHJpYyBhcHBsaWNhdGlvbnMu ICBGb3IgYW4gaW50ZXJuYWwgdHJlZSBub2RlLCB0aGUgZGlzdGFuY2UKKyAgICAgICAgcmV0dXJu ZWQgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIHRoZSBkaXN0YW5jZSB0byBhbnkgb2YgdGhlIGNo aWxkCisgICAgICAgIG5vZGVzLiBJZiB0aGUgcmV0dXJuZWQgZGlzdGFuY2UgaXMgbm90IGV4YWN0 LCB0aGUgZnVuY3Rpb24gbXVzdCBzZXQKKyAgICAgICAgPGxpdGVyYWw+KnJlY2hlY2s8L2xpdGVy YWw+IHRvIHRydWUuIChUaGlzIGlzIG5vdCBuZWNlc3NhcnkgZm9yIGludGVybmFsIHRyZWUKKyAg ICAgICAgbm9kZXM7IGZvciB0aGVtLCB0aGUgY2FsY3VsYXRpb24gaXMgYWx3YXlzIGFzc3VtZWQg dG8gYmUgaW5leGFjdC4pIEluCisgICAgICAgIHRoaXMgY2FzZSB0aGUgZXhlY3V0b3Igd2lsbCBj YWxjdWxhdGUgdGhlIGFjY3VyYXRlIGRpc3RhbmNlIGFmdGVyCisgICAgICAgIGZldGNoaW5nIHRo ZSB0dXBsZSBmcm9tIHRoZSBoZWFwLCBhbmQgcmVvcmRlciB0aGUgdHVwbGVzIGlmIG5lY2Vzc2Fy eS4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgSWYgdGhlIGRpc3Rh bmNlIGZ1bmN0aW9uIHJldHVybnMgPGxpdGVyYWw+KnJlY2hlY2sgPSB0cnVlPC9saXRlcmFsPiBm b3IgYW55CisgICAgICAgIGxlYWYgbm9kZSwgdGhlIG9yaWdpbmFsIG9yZGVyaW5nIG9wZXJhdG9y J3MgcmV0dXJuIHR5cGUgbXVzdAorICAgICAgICBiZSA8dHlwZT5mbG9hdDg8L3R5cGU+IG9yIDx0 eXBlPmZsb2F0NDwvdHlwZT4sIGFuZCB0aGUgZGlzdGFuY2UgZnVuY3Rpb24ncworICAgICAgICBy ZXN1bHQgdmFsdWVzIG11c3QgYmUgY29tcGFyYWJsZSB0byB0aG9zZSBvZiB0aGUgb3JpZ2luYWwg b3JkZXJpbmcKKyAgICAgICAgb3BlcmF0b3IsIHNpbmNlIHRoZSBleGVjdXRvciB3aWxsIHNvcnQg dXNpbmcgYm90aCBkaXN0YW5jZSBmdW5jdGlvbgorICAgICAgICByZXN1bHRzIGFuZCByZWNhbGN1 bGF0ZWQgb3JkZXJpbmctb3BlcmF0b3IgcmVzdWx0cy4gIE90aGVyd2lzZSwgdGhlCisgICAgICAg IGRpc3RhbmNlIGZ1bmN0aW9uJ3MgcmVzdWx0IHZhbHVlcyBjYW4gYmUgYW55IGZpbml0ZSA8dHlw ZT5mbG9hdDg8L3R5cGU+CisgICAgICAgIHZhbHVlcywgc28gbG9uZyBhcyB0aGUgcmVsYXRpdmUg b3JkZXIgb2YgdGhlIHJlc3VsdCB2YWx1ZXMgbWF0Y2hlcyB0aGUKKyAgICAgICAgb3JkZXIgcmV0 dXJuZWQgYnkgdGhlIG9yZGVyaW5nIG9wZXJhdG9yLiAgKEluZmluaXR5IGFuZCBtaW51cyBpbmZp bml0eQorICAgICAgICBhcmUgdXNlZCBpbnRlcm5hbGx5IHRvIGhhbmRsZSBjYXNlcyBzdWNoIGFz IG51bGxzLCBzbyBpdCBpcyBub3QKKyAgICAgICAgcmVjb21tZW5kZWQgdGhhdCA8ZnVuY3Rpb24+ ZGlzdGFuY2U8L2Z1bmN0aW9uPiBmdW5jdGlvbnMgcmV0dXJuIHRoZXNlIHZhbHVlcy4pCisgICAg ICAgPC9wYXJhPgorCisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPmZldGNoPC9mdW5jdGlv bj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIENvbnZl cnRzIHRoZSBjb21wcmVzc2VkIGluZGV4IHJlcHJlc2VudGF0aW9uIG9mIGEgZGF0YSBpdGVtIGlu dG8gdGhlCisgICAgICAgIG9yaWdpbmFsIGRhdGEgdHlwZSwgZm9yIGluZGV4LW9ubHkgc2NhbnMu IFRoZSByZXR1cm5lZCBkYXRhIG11c3QgYmUgYW4KKyAgICAgICAgZXhhY3QsIG5vbi1sb3NzeSBj b3B5IG9mIHRoZSBvcmlnaW5hbGx5IGluZGV4ZWQgdmFsdWUuCisgICAgICAgPC9wYXJhPgorCisg ICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNsYXJh dGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKKworPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gbXlfZmV0Y2goaW50ZXJuYWwpCitSRVRV Uk5TIGludGVybmFsCitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBTVFJJQ1Q7Cis8 L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAgICBUaGUgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRv IGEgPHN0cnVjdG5hbWU+R0lTVEVOVFJZPC9zdHJ1Y3RuYW1lPiBzdHJ1Y3QuIE9uCisgICAgICAg ICBlbnRyeSwgaXRzIDxzdHJ1Y3RmaWVsZD5rZXk8L3N0cnVjdGZpZWxkPiBmaWVsZCBjb250YWlu cyBhIG5vbi1OVUxMIGxlYWYgZGF0dW0gaW4KKyAgICAgICAgIGNvbXByZXNzZWQgZm9ybS4gVGhl IHJldHVybiB2YWx1ZSBpcyBhbm90aGVyIDxzdHJ1Y3RuYW1lPkdJU1RFTlRSWTwvc3RydWN0bmFt ZT4KKyAgICAgICAgIHN0cnVjdCwgd2hvc2UgPHN0cnVjdGZpZWxkPmtleTwvc3RydWN0ZmllbGQ+ IGZpZWxkIGNvbnRhaW5zIHRoZSBzYW1lIGRhdHVtIGluIGl0cworICAgICAgICAgb3JpZ2luYWws IHVuY29tcHJlc3NlZCBmb3JtLiBJZiB0aGUgb3BjbGFzcydzIGNvbXByZXNzIGZ1bmN0aW9uIGRv ZXMKKyAgICAgICAgIG5vdGhpbmcgZm9yIGxlYWYgZW50cmllcywgdGhlIDxmdW5jdGlvbj5mZXRj aDwvZnVuY3Rpb24+IG1ldGhvZCBjYW4gcmV0dXJuIHRoZQorICAgICAgICAgYXJndW1lbnQgYXMt aXMuICBPciwgaWYgdGhlIG9wY2xhc3MgZG9lcyBub3QgaGF2ZSBhIGNvbXByZXNzIGZ1bmN0aW9u LAorICAgICAgICAgdGhlIDxmdW5jdGlvbj5mZXRjaDwvZnVuY3Rpb24+IG1ldGhvZCBjYW4gYmUg b21pdHRlZCBhcyB3ZWxsLCBzaW5jZSBpdCB3b3VsZAorICAgICAgICAgbmVjZXNzYXJpbHkgYmUg YSBuby1vcC4KKyAgICAgICAgPC9wYXJhPgorCisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhl IG1hdGNoaW5nIGNvZGUgaW4gdGhlIEMgbW9kdWxlIGNvdWxkIHRoZW4gZm9sbG93IHRoaXMgc2tl bGV0b246CisKKzxwcm9ncmFtbGlzdGluZz4KK1BHX0ZVTkNUSU9OX0lORk9fVjEobXlfZmV0Y2gp OworCitEYXR1bQorbXlfZmV0Y2goUEdfRlVOQ1RJT05fQVJHUykKK3sKKyAgICBHSVNURU5UUlkg ICplbnRyeSA9IChHSVNURU5UUlkgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7CisgICAgaW5wdXRf ZGF0YV90eXBlICppbiA9IERhdHVtR2V0UG9pbnRlcihlbnRyeS0+a2V5KTsKKyAgICBmZXRjaGVk X2RhdGFfdHlwZSAqZmV0Y2hlZF9kYXRhOworICAgIEdJU1RFTlRSWSAgKnJldHZhbDsKKworICAg IHJldHZhbCA9IHBhbGxvYyhzaXplb2YoR0lTVEVOVFJZKSk7CisgICAgZmV0Y2hlZF9kYXRhID0g cGFsbG9jKHNpemVvZihmZXRjaGVkX2RhdGFfdHlwZSkpOworCisgICAgLyoKKyAgICAgKiBDb252 ZXJ0ICdmZXRjaGVkX2RhdGEnIGludG8gdGhlIGEgRGF0dW0gb2YgdGhlIG9yaWdpbmFsIGRhdGF0 eXBlLgorICAgICAqLworCisgICAgLyogZmlsbCAqcmV0dmFsIGZyb20gZmV0Y2hlZF9kYXRhLiAq LworICAgIGdpc3RlbnRyeWluaXQoKnJldHZhbCwgUG9pbnRlckdldERhdHVtKGNvbnZlcnRlZF9k YXR1bSksCisgICAgICAgICAgICAgICAgICBlbnRyeS0+cmVsLCBlbnRyeS0+cGFnZSwgZW50cnkt Pm9mZnNldCwgRkFMU0UpOworCisgICAgUEdfUkVUVVJOX1BPSU5URVIocmV0dmFsKTsKK30KKzwv cHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAg IElmIHRoZSBjb21wcmVzcyBtZXRob2QgaXMgbG9zc3kgZm9yIGxlYWYgZW50cmllcywgdGhlIG9w ZXJhdG9yIGNsYXNzCisgICAgICAgIGNhbm5vdCBzdXBwb3J0IGluZGV4LW9ubHkgc2NhbnMsIGFu ZCBtdXN0IG5vdCBkZWZpbmUKKyAgICAgICAgYSA8ZnVuY3Rpb24+ZmV0Y2g8L2Z1bmN0aW9uPiBm dW5jdGlvbi4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFy bGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48ZnVuY3Rpb24+ b3B0aW9uczwvZnVuY3Rpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJh PgorICAgICAgICBBbGxvd3MgZGVmaW5pdGlvbiBvZiB1c2VyLXZpc2libGUgcGFyYW1ldGVycyB0 aGF0IGNvbnRyb2wgb3BlcmF0b3IKKyAgICAgICAgY2xhc3MgYmVoYXZpb3IuCisgICAgICAgPC9w YXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3Jvbnlt PiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKKworPHBy b2dyYW1saXN0aW5nPgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gbXlfb3B0aW9ucyhpbnRl cm5hbCkKK1JFVFVSTlMgdm9pZAorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RS SUNUOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4K KyAgICAgICAgVGhlIGZ1bmN0aW9uIGlzIHBhc3NlZCBhIHBvaW50ZXIgdG8gYSA8c3RydWN0bmFt ZT5sb2NhbF9yZWxvcHRzPC9zdHJ1Y3RuYW1lPgorICAgICAgICBzdHJ1Y3QsIHdoaWNoIG5lZWRz IHRvIGJlIGZpbGxlZCB3aXRoIGEgc2V0IG9mIG9wZXJhdG9yIGNsYXNzCisgICAgICAgIHNwZWNp ZmljIG9wdGlvbnMuICBUaGUgb3B0aW9ucyBjYW4gYmUgYWNjZXNzZWQgZnJvbSBvdGhlciBzdXBw b3J0CisgICAgICAgIGZ1bmN0aW9ucyB1c2luZyB0aGUgPGxpdGVyYWw+UEdfSEFTX09QQ0xBU1Nf T1BUSU9OUygpPC9saXRlcmFsPiBhbmQKKyAgICAgICAgPGxpdGVyYWw+UEdfR0VUX09QQ0xBU1Nf T1BUSU9OUygpPC9saXRlcmFsPiBtYWNyb3MuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgIDxw YXJhPgorICAgICAgICAgQW4gZXhhbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBteV9vcHRpb25zKCkg YW5kIHBhcmFtZXRlcnMgdXNlCisgICAgICAgICBmcm9tIG90aGVyIHN1cHBvcnQgZnVuY3Rpb25z IGFyZSBnaXZlbiBiZWxvdzoKKworPHByb2dyYW1saXN0aW5nPgordHlwZWRlZiBlbnVtIE15RW51 bVR5cGUKK3sKKyAgICBNWV9FTlVNX09OLAorICAgIE1ZX0VOVU1fT0ZGLAorICAgIE1ZX0VOVU1f QVVUTworfSBNeUVudW1UeXBlOworCit0eXBlZGVmIHN0cnVjdAoreworICAgIGludDMyICAgdmxf bGVuXzsgICAgLyogdmFybGVuYSBoZWFkZXIgKGRvIG5vdCB0b3VjaCBkaXJlY3RseSEpICovCisg ICAgaW50ICAgICBpbnRfcGFyYW07ICAvKiBpbnRlZ2VyIHBhcmFtZXRlciAqLworICAgIGRvdWJs ZSAgcmVhbF9wYXJhbTsgLyogcmVhbCBwYXJhbWV0ZXIgKi8KKyAgICBNeUVudW1UeXBlIGVudW1f cGFyYW07IC8qIGVudW0gcGFyYW1ldGVyICovCisgICAgaW50ICAgICBzdHJfcGFyYW07ICAvKiBz dHJpbmcgcGFyYW1ldGVyICovCit9IE15T3B0aW9uc1N0cnVjdDsKKworLyogU3RyaW5nIHJlcHJl c2VudGF0aW9uIG9mIGVudW0gdmFsdWVzICovCitzdGF0aWMgcmVsb3B0X2VudW1fZWx0X2RlZiBt eUVudW1WYWx1ZXNbXSA9Cit7CisgICAgeyJvbiIsIE1ZX0VOVU1fT059LAorICAgIHsib2ZmIiwg TVlfRU5VTV9PRkZ9LAorICAgIHsiYXV0byIsIE1ZX0VOVU1fQVVUT30sCisgICAgeyhjb25zdCBj aGFyICopIE5VTEx9ICAgLyogbGlzdCB0ZXJtaW5hdG9yICovCit9OworCitzdGF0aWMgY2hhciAq c3RyX3BhcmFtX2RlZmF1bHQgPSAiZGVmYXVsdCI7CisKKy8qCisgKiBTYW1wbGUgdmFsaWRhdG9y OiBjaGVja3MgdGhhdCBzdHJpbmcgaXMgbm90IGxvbmdlciB0aGFuIDggYnl0ZXMuCisgKi8KK3N0 YXRpYyB2b2lkCit2YWxpZGF0ZV9teV9zdHJpbmdfcmVsb3B0KGNvbnN0IGNoYXIgKnZhbHVlKQor eworICAgIGlmIChzdHJsZW4odmFsdWUpID4gOCkKKyAgICAgICAgZXJlcG9ydChFUlJPUiwKKyAg ICAgICAgICAgICAgICAoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwK KyAgICAgICAgICAgICAgICAgZXJybXNnKCJzdHJfcGFyYW0gbXVzdCBiZSBhdCBtb3N0IDggYnl0 ZXMiKSkpOworfQorCisvKgorICogU2FtcGxlIGZpbGxlcjogc3dpdGNoZXMgY2hhcmFjdGVycyB0 byBsb3dlciBjYXNlLgorICovCitzdGF0aWMgU2l6ZQorZmlsbF9teV9zdHJpbmdfcmVsb3B0KGNv bnN0IGNoYXIgKnZhbHVlLCB2b2lkICpwdHIpCit7CisgICAgY2hhciAgICp0bXAgPSBzdHJfdG9s b3dlcih2YWx1ZSwgc3RybGVuKHZhbHVlKSwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKyAgICBp bnQgICAgIGxlbiA9IHN0cmxlbih0bXApOworCisgICAgaWYgKHB0cikKKyAgICAgICAgc3RyY3B5 KChjaGFyICopIHB0ciwgdG1wKTsKKworICAgIHBmcmVlKHRtcCk7CisgICAgcmV0dXJuIGxlbiAr IDE7Cit9CisKK1BHX0ZVTkNUSU9OX0lORk9fVjEobXlfb3B0aW9ucyk7CisKK0RhdHVtCitteV9v cHRpb25zKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgbG9jYWxfcmVsb3B0cyAqcmVsb3B0cyA9 IChsb2NhbF9yZWxvcHRzICopIFBHX0dFVEFSR19QT0lOVEVSKDApOworCisgICAgaW5pdF9sb2Nh bF9yZWxvcHRpb25zKHJlbG9wdHMsIHNpemVvZihNeU9wdGlvbnNTdHJ1Y3QpKTsKKyAgICBhZGRf bG9jYWxfaW50X3JlbG9wdGlvbihyZWxvcHRzLCAiaW50X3BhcmFtIiwgImludGVnZXIgcGFyYW1l dGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAsIDAsIDEwMDAwMDAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoTXlPcHRpb25zU3RydWN0LCBpbnRfcGFy YW0pKTsKKyAgICBhZGRfbG9jYWxfcmVhbF9yZWxvcHRpb24ocmVsb3B0cywgInJlYWxfcGFyYW0i LCAicmVhbCBwYXJhbWV0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjAsIDAu MCwgMTAwMDAwMC4wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihNeU9w dGlvbnNTdHJ1Y3QsIHJlYWxfcGFyYW0pKTsKKyAgICBhZGRfbG9jYWxfZW51bV9yZWxvcHRpb24o cmVsb3B0cywgImVudW1fcGFyYW0iLCAiZW51bSBwYXJhbWV0ZXIiLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBteUVudW1WYWx1ZXMsIE1ZX0VOVU1fT04sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJWYWxpZCB2YWx1ZXMgYXJlOiBcIm9uXCIsIFwib2ZmXCIgYW5kIFwiYXV0 b1wiLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKE15T3B0aW9uc1N0 cnVjdCwgZW51bV9wYXJhbSkpOworICAgIGFkZF9sb2NhbF9zdHJpbmdfcmVsb3B0aW9uKHJlbG9w dHMsICJzdHJfcGFyYW0iLCAic3RyaW5nIHBhcmFtZXRlciIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyX3BhcmFtX2RlZmF1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmFtcDt2YWxpZGF0ZV9teV9zdHJpbmdfcmVsb3B0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZhbXA7ZmlsbF9teV9zdHJpbmdfcmVsb3B0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldG9mKE15T3B0aW9uc1N0cnVjdCwgc3RyX3BhcmFtKSk7CisK KyAgICBQR19SRVRVUk5fVk9JRCgpOworfQorCitQR19GVU5DVElPTl9JTkZPX1YxKG15X2NvbXBy ZXNzKTsKKworRGF0dW0KK215X2NvbXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgaW50 ICAgICBpbnRfcGFyYW0gPSAxMDA7CisgICAgZG91YmxlICByZWFsX3BhcmFtID0gMS4wOworICAg IE15RW51bVR5cGUgZW51bV9wYXJhbSA9IE1ZX0VOVU1fT047CisgICAgY2hhciAgICpzdHJfcGFy YW0gPSBzdHJfcGFyYW1fZGVmYXVsdDsKKworICAgIC8qCisgICAgICogTm9ybWFsbHksIHdoZW4g b3BjbGFzcyBjb250YWlucyAnb3B0aW9ucycgbWV0aG9kLCB0aGVuIG9wdGlvbnMgYXJlIGFsd2F5 cworICAgICAqIHBhc3NlZCB0byBzdXBwb3J0IGZ1bmN0aW9ucy4gIEhvd2V2ZXIsIGlmIHlvdSBh ZGQgJ29wdGlvbnMnIG1ldGhvZCB0bworICAgICAqIGV4aXN0aW5nIG9wY2xhc3MsIHByZXZpb3Vz bHkgZGVmaW5lZCBpbmRleGVzIGhhdmUgbm8gb3B0aW9ucywgc28gdGhlCisgICAgICogY2hlY2sg aXMgcmVxdWlyZWQuCisgICAgICovCisgICAgaWYgKFBHX0hBU19PUENMQVNTX09QVElPTlMoKSkK KyAgICB7CisgICAgICAgIE15T3B0aW9uc1N0cnVjdCAqb3B0aW9ucyA9IChNeU9wdGlvbnNTdHJ1 Y3QgKikgUEdfR0VUX09QQ0xBU1NfT1BUSU9OUygpOworCisgICAgICAgIGludF9wYXJhbSA9IG9w dGlvbnMtPmludF9wYXJhbTsKKyAgICAgICAgcmVhbF9wYXJhbSA9IG9wdGlvbnMtPnJlYWxfcGFy YW07CisgICAgICAgIGVudW1fcGFyYW0gPSBvcHRpb25zLT5lbnVtX3BhcmFtOworICAgICAgICBz dHJfcGFyYW0gPSBHRVRfU1RSSU5HX1JFTE9QVElPTihvcHRpb25zLCBzdHJfcGFyYW0pOworICAg IH0KKworICAgIC8qIHRoZSByZXN0IGltcGxlbWVudGF0aW9uIG9mIHN1cHBvcnQgZnVuY3Rpb24g Ki8KK30KKworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFy YT4KKyAgICAgICAgU2luY2UgdGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBrZXkgaW4gPGFjcm9u eW0+R2lTVDwvYWNyb255bT4gaXMKKyAgICAgICAgZmxleGlibGUsIGl0IG1heSBkZXBlbmQgb24g dXNlci1zcGVjaWZpZWQgcGFyYW1ldGVycy4gIEZvciBpbnN0YW5jZSwKKyAgICAgICAgdGhlIGxl bmd0aCBvZiBrZXkgc2lnbmF0dXJlIG1heSBiZSBzcGVjaWZpZWQuICBTZWUKKyAgICAgICAgPGxp dGVyYWw+Z3RzdmVjdG9yX29wdGlvbnMoKTwvbGl0ZXJhbD4gZm9yIGV4YW1wbGUuCisgICAgICAg PC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxmdW5jdGlvbj5zb3J0c3VwcG9ydDwvZnVuY3Rp b24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBSZXR1 cm5zIGEgY29tcGFyYXRvciBmdW5jdGlvbiB0byBzb3J0IGRhdGEgaW4gYSB3YXkgdGhhdCBwcmVz ZXJ2ZXMKKyAgICAgICAgbG9jYWxpdHkuIEl0IGlzIHVzZWQgYnkgPGNvbW1hbmQ+Q1JFQVRFIElO REVYPC9jb21tYW5kPiBhbmQKKyAgICAgICAgPGNvbW1hbmQ+UkVJTkRFWDwvY29tbWFuZD4gY29t bWFuZHMuIFRoZSBxdWFsaXR5IG9mIHRoZSBjcmVhdGVkIGluZGV4CisgICAgICAgIGRlcGVuZHMg b24gaG93IHdlbGwgdGhlIHNvcnQgb3JkZXIgZGV0ZXJtaW5lZCBieSB0aGUgY29tcGFyYXRvciBm dW5jdGlvbgorICAgICAgICBwcmVzZXJ2ZXMgbG9jYWxpdHkgb2YgdGhlIGlucHV0cy4KKyAgICAg ICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8ZnVuY3Rpb24+c29ydHN1cHBv cnQ8L2Z1bmN0aW9uPiBtZXRob2QgaXMgb3B0aW9uYWwuIElmIGl0IGlzIG5vdAorICAgICAgICBw cm92aWRlZCwgPGNvbW1hbmQ+Q1JFQVRFIElOREVYPC9jb21tYW5kPiBidWlsZHMgdGhlIGluZGV4 IGJ5IGluc2VydGluZworICAgICAgICBlYWNoIHR1cGxlIHRvIHRoZSB0cmVlIHVzaW5nIHRoZSA8 ZnVuY3Rpb24+cGVuYWx0eTwvZnVuY3Rpb24+IGFuZAorICAgICAgICA8ZnVuY3Rpb24+cGlja3Nw bGl0PC9mdW5jdGlvbj4gZnVuY3Rpb25zLCB3aGljaCBpcyBtdWNoIHNsb3dlci4KKyAgICAgICA8 L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255 bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtlCisgICAgICAgIHRo aXM6CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X3Nv cnRzdXBwb3J0KGludGVybmFsKQorUkVUVVJOUyB2b2lkCitBUyAnTU9EVUxFX1BBVEhOQU1FJwor TEFOR1VBR0UgQyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAgIFRoZSBhcmd1 bWVudCBpcyBhIHBvaW50ZXIgdG8gYSA8c3RydWN0bmFtZT5Tb3J0U3VwcG9ydDwvc3RydWN0bmFt ZT4KKyAgICAgICAgc3RydWN0LiBBdCBhIG1pbmltdW0sIHRoZSBmdW5jdGlvbiBtdXN0IGZpbGwg aW4gaXRzIGNvbXBhcmF0b3IgZmllbGQuCisgICAgICAgIFRoZSBjb21wYXJhdG9yIHRha2VzIHRo cmVlIGFyZ3VtZW50czogdHdvIERhdHVtcyB0byBjb21wYXJlLCBhbmQKKyAgICAgICAgYSBwb2lu dGVyIHRvIHRoZSA8c3RydWN0bmFtZT5Tb3J0U3VwcG9ydDwvc3RydWN0bmFtZT4gc3RydWN0LiBU aGUKKyAgICAgICAgRGF0dW1zIGFyZSB0aGUgdHdvIGluZGV4ZWQgdmFsdWVzIGluIHRoZSBmb3Jt YXQgdGhhdCB0aGV5IGFyZSBzdG9yZWQKKyAgICAgICAgaW4gdGhlIGluZGV4OyB0aGF0IGlzLCBp biB0aGUgZm9ybWF0IHJldHVybmVkIGJ5IHRoZQorICAgICAgICA8ZnVuY3Rpb24+Y29tcHJlc3M8 L2Z1bmN0aW9uPiBtZXRob2QuIFRoZSBmdWxsIEFQSSBpcyBkZWZpbmVkIGluCisgICAgICAgIDxm aWxlbmFtZT5zcmMvaW5jbHVkZS91dGlscy9zb3J0c3VwcG9ydC5oPC9maWxlbmFtZT4uCisgICAg ICAgIDwvcGFyYT4KKworICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBtYXRjaGluZyBjb2Rl IGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIHNrZWxldG9uOgorCis8cHJv Z3JhbWxpc3Rpbmc+CitQR19GVU5DVElPTl9JTkZPX1YxKG15X3NvcnRzdXBwb3J0KTsKKworc3Rh dGljIGludAorbXlfZmFzdGNtcChEYXR1bSB4LCBEYXR1bSB5LCBTb3J0U3VwcG9ydCBzc3VwKQor eworICAvKiBlc3RhYmxpc2ggb3JkZXIgYmV0d2VlbiB4IGFuZCB5IGJ5IGNvbXB1dGluZyBzb21l IHNvcnRpbmcgdmFsdWUgeiAqLworCisgIGludCB6MSA9IENvbXB1dGVTcGF0aWFsQ29kZSh4KTsK KyAgaW50IHoyID0gQ29tcHV0ZVNwYXRpYWxDb2RlKHkpOworCisgIHJldHVybiB6MSA9PSB6MiA/ IDAgOiB6MSA+IHoyID8gMSA6IC0xOworfQorCitEYXR1bQorbXlfc29ydHN1cHBvcnQoUEdfRlVO Q1RJT05fQVJHUykKK3sKKyAgU29ydFN1cHBvcnQgc3N1cCA9IChTb3J0U3VwcG9ydCkgUEdfR0VU QVJHX1BPSU5URVIoMCk7CisKKyAgc3N1cC0+Y29tcGFyYXRvciA9IG15X2Zhc3RjbXA7CisgIFBH X1JFVFVSTl9WT0lEKCk7Cit9Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgIDwvcGFyYT4KKyAg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICA8dGVybT48ZnVuY3Rpb24+c3RyYXRudW08L2Z1bmN0aW9uPjwvdGVybT4KKyAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgR2l2ZW4gYW4gPGxpdGVyYWw+ UlQqU3RyYXRlZ3lOdW1iZXI8L2xpdGVyYWw+IHZhbHVlIGZyb20KKyAgICAgICAgPGZpbGVuYW1l PnNyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51bS5oPC9maWxlbmFtZT4sIHJldHVybnMgYSBzdHJh dGVneQorICAgICAgICBudW1iZXIgdXNlZCBieSB0aGlzIG9wZXJhdG9yIGNsYXNzIGZvciBtYXRj aGluZyBmdW5jdGlvbmFsaXR5LiAgVGhlCisgICAgICAgIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4g PGxpdGVyYWw+SW52YWxpZFN0cmF0ZWd5PC9saXRlcmFsPiBpZiB0aGUKKyAgICAgICAgb3BlcmF0 b3IgY2xhc3MgaGFzIG5vIG1hdGNoaW5nIHN0cmF0ZWd5LgorICAgICAgIDwvcGFyYT4KKworICAg ICAgIDxwYXJhPgorICAgICAgICBUaGlzIGlzIHVzZWQgZm9yIHRlbXBvcmFsIGluZGV4IGNvbnN0 cmFpbnRzIChpLmUuLCA8bGl0ZXJhbD5QUklNQVJZCisgICAgICAgIEtFWTwvbGl0ZXJhbD4gYW5k IDxsaXRlcmFsPlVOSVFVRTwvbGl0ZXJhbD4pLiAgSWYgdGhlIG9wZXJhdG9yIGNsYXNzCisgICAg ICAgIHByb3ZpZGVzIHRoaXMgZnVuY3Rpb24gYW5kIGl0IHJldHVybnMgcmVzdWx0cyBmb3IKKyAg ICAgICAgPGxpdGVyYWw+UlRFcXVhbFN0cmF0ZWd5TnVtYmVyPC9saXRlcmFsPiwgaXQgY2FuIGJl IHVzZWQgaW4gdGhlCisgICAgICAgIG5vbi08bGl0ZXJhbD5XSVRIT1VUIE9WRVJMQVBTPC9saXRl cmFsPiBwYXJ0KHMpIG9mIGFuIGluZGV4IGNvbnN0cmFpbnQuCisgICAgICAgIElmIGl0IHJldHVy bnMgcmVzdWx0cyBmb3IgPGxpdGVyYWw+UlRPdmVybGFwU3RyYXRlZ3lOdW1iZXI8L2xpdGVyYWw+ LAorICAgICAgICB0aGUgb3BlcmF0b3IgY2xhc3MgY2FuIGJlIHVzZWQgaW4gdGhlIDxsaXRlcmFs PldJVEhPVVQKKyAgICAgICAgT1ZFUkxBUFM8L2xpdGVyYWw+IHBhcnQgb2YgYW4gaW5kZXggY29u c3RyYWludC4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIDxh Y3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9v ayBsaWtlCisgICAgICAgIHRoaXM6CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIG15X3N0cmF0bnVtKGludGVnZXIpCitSRVRVUk5TIGludGVnZXIKK0FTICdN T0RVTEVfUEFUSE5BTUUnCitMQU5HVUFHRSBDIFNUUklDVDsKKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg ICAgICAgPC9wYXJhPgorCisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIG1hdGNoaW5nIGNv ZGUgaW4gdGhlIEMgbW9kdWxlIGNvdWxkIHRoZW4gZm9sbG93IHRoaXMgc2tlbGV0b246CisKKzxw cm9ncmFtbGlzdGluZz4KK1BHX0ZVTkNUSU9OX0lORk9fVjEobXlfc3RyYXRudW0pOworCitEYXR1 bQorbXlfc3RyYXRudW0oUEdfRlVOQ1RJT05fQVJHUykKK3sKKyAgICBTdHJhdGVneU51bWJlciBz dHJhdGVneSA9IChTdHJhdGVneU51bWJlcikgUEdfR0VUQVJHX1VJTlQxNigxKTsKKyAgICBTdHJh dGVneU51bWJlciByZXQgPSBJbnZhbGlkU3RyYXRlZ3k7CisKKyAgICBzd2l0Y2ggKHN0cmF0ZWd5 KQorICAgIHsKKyAgICAgICAgY2FzZSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXI6CisgICAgICAgICAg ICByZXQgPSBCVEVxdWFsU3RyYXRlZ3lOdW1iZXI7CisgICAgfQorCisgICAgUEdfUkVUVVJOX1VJ TlQxNihyZXQpOworfQorCQk8L3Byb2dyYW1saXN0aW5nPgorCQkJICAgPC9wYXJhPgorCisgICAg ICAgPHBhcmE+CisgICAgICAgIE9uZSB0cmFuc2xhdGlvbiBmdW5jdGlvbiBpcyBwcm92aWRlZCBi eQorICAgICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+OgorICAgICAg ICA8bGl0ZXJhbD5naXN0X3N0cmF0bnVtX2lkZW50aXR5PC9saXRlcmFsPiBpcyBmb3Igb3BlcmF0 b3IgY2xhc3NlcyB0aGF0CisgICAgICAgIGFscmVhZHkgdXNlIHRoZSA8bGl0ZXJhbD5SVCpTdHJh dGVneU51bWJlcjwvbGl0ZXJhbD4gY29uc3RhbnRzLiAgSXQKKyAgICAgICAgcmV0dXJucyB3aGF0 ZXZlciBpcyBwYXNzZWQgdG8gaXQuICBUaGUgPGxpdGVyYWw+YnRyZWVfZ2lzdDwvbGl0ZXJhbD4K KyAgICAgICAgZXh0ZW5zaW9uIGRlZmluZXMgYSBzZWNvbmQgdHJhbnNsYXRpb24gZnVuY3Rpb24s CisgICAgICAgIDxsaXRlcmFsPmdpc3Rfc3RyYXRudW1fYnRyZWU8L2xpdGVyYWw+LCBmb3Igb3Bl cmF0b3IgY2xhc3NlcyB0aGF0IHVzZQorICAgICAgICB0aGUgPGxpdGVyYWw+QlQqU3RyYXRlZ3lO dW1iZXI8L2xpdGVyYWw+IGNvbnN0YW50cy4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3Rp dGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDwvdmFyaWFibGVsaXN0PgorCisgICA8cGFy YT4KKyAgICBBbGwgdGhlIEdpU1Qgc3VwcG9ydCBtZXRob2RzIGFyZSBub3JtYWxseSBjYWxsZWQg aW4gc2hvcnQtbGl2ZWQgbWVtb3J5CisgICAgY29udGV4dHM7IHRoYXQgaXMsIDx2YXJuYW1lPkN1 cnJlbnRNZW1vcnlDb250ZXh0PC92YXJuYW1lPiB3aWxsIGdldCByZXNldCBhZnRlcgorICAgIGVh Y2ggdHVwbGUgaXMgcHJvY2Vzc2VkLiAgSXQgaXMgdGhlcmVmb3JlIG5vdCB2ZXJ5IGltcG9ydGFu dCB0byB3b3JyeSBhYm91dAorICAgIHBmcmVlJ2luZyBldmVyeXRoaW5nIHlvdSBwYWxsb2MuICBI b3dldmVyLCBpbiBzb21lIGNhc2VzIGl0J3MgdXNlZnVsIGZvciBhCisgICAgc3VwcG9ydCBtZXRo b2QgdG8gY2FjaGUgZGF0YSBhY3Jvc3MgcmVwZWF0ZWQgY2FsbHMuICBUbyBkbyB0aGF0LCBhbGxv Y2F0ZQorICAgIHRoZSBsb25nZXItbGl2ZWQgZGF0YSBpbiA8bGl0ZXJhbD5mY2luZm8tJmd0O2Zs aW5mby0mZ3Q7Zm5fbWN4dDwvbGl0ZXJhbD4sIGFuZAorICAgIGtlZXAgYSBwb2ludGVyIHRvIGl0 IGluIDxsaXRlcmFsPmZjaW5mby0mZ3Q7ZmxpbmZvLSZndDtmbl9leHRyYTwvbGl0ZXJhbD4uICBT dWNoCisgICAgZGF0YSB3aWxsIHN1cnZpdmUgZm9yIHRoZSBsaWZlIG9mIHRoZSBpbmRleCBvcGVy YXRpb24gKGUuZy4sIGEgc2luZ2xlIEdpU1QKKyAgICBpbmRleCBzY2FuLCBpbmRleCBidWlsZCwg b3IgaW5kZXggdHVwbGUgaW5zZXJ0aW9uKS4gIEJlIGNhcmVmdWwgdG8gcGZyZWUKKyAgICB0aGUg cHJldmlvdXMgdmFsdWUgd2hlbiByZXBsYWNpbmcgYSA8bGl0ZXJhbD5mbl9leHRyYTwvbGl0ZXJh bD4gdmFsdWUsIG9yIHRoZSBsZWFrCisgICAgd2lsbCBhY2N1bXVsYXRlIGZvciB0aGUgZHVyYXRp b24gb2YgdGhlIG9wZXJhdGlvbi4KKyAgIDwvcGFyYT4KKworIDwvc2VjdDI+CisKKyA8c2VjdDIg aWQ9Imdpc3QtaW1wbGVtZW50YXRpb24iPgorICA8dGl0bGU+SW1wbGVtZW50YXRpb248L3RpdGxl PgorCisgIDxzZWN0MyBpZD0iZ2lzdC1idWZmZXJpbmctYnVpbGQiPgorICAgPHRpdGxlPkdpU1Qg SW5kZXggQnVpbGQgTWV0aG9kczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBzaW1wbGVz dCB3YXkgdG8gYnVpbGQgYSBHaVNUIGluZGV4IGlzIGp1c3QgdG8gaW5zZXJ0IGFsbCB0aGUgZW50 cmllcywKKyAgICBvbmUgYnkgb25lLiAgVGhpcyB0ZW5kcyB0byBiZSBzbG93IGZvciBsYXJnZSBp bmRleGVzLCBiZWNhdXNlIGlmIHRoZQorICAgIGluZGV4IHR1cGxlcyBhcmUgc2NhdHRlcmVkIGFj cm9zcyB0aGUgaW5kZXggYW5kIHRoZSBpbmRleCBpcyBsYXJnZSBlbm91Z2gKKyAgICB0byBub3Qg Zml0IGluIGNhY2hlLCBhIGxvdCBvZiByYW5kb20gSS9PIHdpbGwgYmUKKyAgICBuZWVkZWQuICA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHN1cHBvcnRzIHR3byBhbHRlcm5h dGl2ZQorICAgIG1ldGhvZHMgZm9yIGluaXRpYWwgYnVpbGQgb2YgYSBHaVNUIGluZGV4OiA8Zmly c3R0ZXJtPnNvcnRlZDwvZmlyc3R0ZXJtPgorICAgIGFuZCA8Zmlyc3R0ZXJtPmJ1ZmZlcmVkPC9m aXJzdHRlcm0+IG1vZGVzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgc29ydGVk IG1ldGhvZCBpcyBvbmx5IGF2YWlsYWJsZSBpZiBlYWNoIG9mIHRoZSBvcGNsYXNzZXMgdXNlZCBi eSB0aGUKKyAgICBpbmRleCBwcm92aWRlcyBhIDxmdW5jdGlvbj5zb3J0c3VwcG9ydDwvZnVuY3Rp b24+IGZ1bmN0aW9uLCBhcyBkZXNjcmliZWQKKyAgICBpbiA8eHJlZiBsaW5rZW5kPSJnaXN0LWV4 dGVuc2liaWxpdHkiLz4uICBJZiB0aGV5IGRvLCB0aGlzIG1ldGhvZCBpcworICAgIHVzdWFsbHkg dGhlIGJlc3QsIHNvIGl0IGlzIHVzZWQgYnkgZGVmYXVsdC4KKyAgIDwvcGFyYT4KKworICAgPHBh cmE+CisgICAgVGhlIGJ1ZmZlcmVkIG1ldGhvZCB3b3JrcyBieSBub3QgaW5zZXJ0aW5nIHR1cGxl cyBkaXJlY3RseSBpbnRvIHRoZSBpbmRleAorICAgIHJpZ2h0IGF3YXkuICBJdCBjYW4gZHJhbWF0 aWNhbGx5IHJlZHVjZSB0aGUgYW1vdW50IG9mIHJhbmRvbSBJL08gbmVlZGVkCisgICAgZm9yIG5v bi1vcmRlcmVkIGRhdGEgc2V0cy4gIEZvciB3ZWxsLW9yZGVyZWQgZGF0YSBzZXRzIHRoZSBiZW5l Zml0IGlzCisgICAgc21hbGxlciBvciBub24tZXhpc3RlbnQsIGJlY2F1c2Ugb25seSBhIHNtYWxs IG51bWJlciBvZiBwYWdlcyByZWNlaXZlIG5ldworICAgIHR1cGxlcyBhdCBhIHRpbWUsIGFuZCB0 aG9zZSBwYWdlcyBmaXQgaW4gY2FjaGUgZXZlbiBpZiB0aGUgaW5kZXggYXMgYQorICAgIHdob2xl IGRvZXMgbm90LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgYnVmZmVyZWQgbWV0 aG9kIG5lZWRzIHRvIGNhbGwgdGhlIDxmdW5jdGlvbj5wZW5hbHR5PC9mdW5jdGlvbj4KKyAgICBm dW5jdGlvbiBtb3JlIG9mdGVuIHRoYW4gdGhlIHNpbXBsZSBtZXRob2QgZG9lcywgd2hpY2ggY29u c3VtZXMgc29tZQorICAgIGV4dHJhIENQVSByZXNvdXJjZXMuIEFsc28sIHRoZSBidWZmZXJzIG5l ZWQgdGVtcG9yYXJ5IGRpc2sgc3BhY2UsIHVwIHRvCisgICAgdGhlIHNpemUgb2YgdGhlIHJlc3Vs dGluZyBpbmRleC4gQnVmZmVyaW5nIGNhbiBhbHNvIGluZmx1ZW5jZSB0aGUgcXVhbGl0eQorICAg IG9mIHRoZSByZXN1bHRpbmcgaW5kZXgsIGluIGJvdGggcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIGRp cmVjdGlvbnMuIFRoYXQKKyAgICBpbmZsdWVuY2UgZGVwZW5kcyBvbiB2YXJpb3VzIGZhY3RvcnMs IGxpa2UgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgaW5wdXQKKyAgICBkYXRhIGFuZCB0aGUgb3Bl cmF0b3IgY2xhc3MgaW1wbGVtZW50YXRpb24uCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAg IElmIHNvcnRpbmcgaXMgbm90IHBvc3NpYmxlLCB0aGVuIGJ5IGRlZmF1bHQgYSBHaVNUIGluZGV4 IGJ1aWxkIHN3aXRjaGVzCisgICAgdG8gdGhlIGJ1ZmZlcmluZyBtZXRob2Qgd2hlbiB0aGUgaW5k ZXggc2l6ZSByZWFjaGVzCisgICAgPHhyZWYgbGlua2VuZD0iZ3VjLWVmZmVjdGl2ZS1jYWNoZS1z aXplIi8+LiAgQnVmZmVyaW5nIGNhbiBiZSBtYW51YWxseQorICAgIGZvcmNlZCBvciBwcmV2ZW50 ZWQgYnkgdGhlIDxsaXRlcmFsPmJ1ZmZlcmluZzwvbGl0ZXJhbD4gcGFyYW1ldGVyIHRvIHRoZQor ICAgIENSRUFURSBJTkRFWCBjb21tYW5kLiAgVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgZ29vZCBm b3IgbW9zdCBjYXNlcywgYnV0CisgICAgdHVybmluZyBidWZmZXJpbmcgb2ZmIG1pZ2h0IHNwZWVk IHVwIHRoZSBidWlsZCBzb21ld2hhdCBpZiB0aGUgaW5wdXQgZGF0YQorICAgIGlzIG9yZGVyZWQu CisgICA8L3BhcmE+CisKKyAgPC9zZWN0Mz4KKyA8L3NlY3QyPgorCisgPHNlY3QyIGlkPSJnaXN0 LWV4YW1wbGVzIj4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRo ZSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHNvdXJjZSBkaXN0cmlidXRp b24gaW5jbHVkZXMKKyAgIHNldmVyYWwgZXhhbXBsZXMgb2YgaW5kZXggbWV0aG9kcyBpbXBsZW1l bnRlZCB1c2luZworICAgPGFjcm9ueW0+R2lTVDwvYWNyb255bT4uICBUaGUgY29yZSBzeXN0ZW0g Y3VycmVudGx5IHByb3ZpZGVzIHRleHQgc2VhcmNoCisgICBzdXBwb3J0IChpbmRleGluZyBmb3Ig PHR5cGU+dHN2ZWN0b3I8L3R5cGU+IGFuZCA8dHlwZT50c3F1ZXJ5PC90eXBlPikgYXMgd2VsbCBh cworICAgUi1UcmVlIGVxdWl2YWxlbnQgZnVuY3Rpb25hbGl0eSBmb3Igc29tZSBvZiB0aGUgYnVp bHQtaW4gZ2VvbWV0cmljIGRhdGEgdHlwZXMKKyAgIChzZWUgPGZpbGVuYW1lPnNyYy9iYWNrZW5k L2FjY2Vzcy9naXN0L2dpc3Rwcm9jLmM8L2ZpbGVuYW1lPikuICBUaGUgZm9sbG93aW5nCisgICA8 ZmlsZW5hbWU+Y29udHJpYjwvZmlsZW5hbWU+IG1vZHVsZXMgYWxzbyBjb250YWluIDxhY3Jvbnlt PkdpU1Q8L2Fjcm9ueW0+CisgICBvcGVyYXRvciBjbGFzc2VzOgorCisgIDx2YXJpYWJsZWxpc3Q+ CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxmaWxlbmFtZT5idHJlZV9naXN0PC9maWxl bmFtZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT5CLXRyZWUgZXF1aXZhbGVu dCBmdW5jdGlvbmFsaXR5IGZvciBzZXZlcmFsIGRhdGEgdHlwZXM8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxmaWxlbmFtZT5jdWJlPC9maWxlbmFtZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT5JbmRleGluZyBmb3IgbXVsdGlkaW1lbnNpb25hbCBjdWJlczwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PGZpbGVuYW1lPmhzdG9yZTwvZmlsZW5hbWU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+TW9kdWxlIGZvciBzdG9yaW5nIChrZXksIHZhbHVlKSBwYWlyczwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PGZpbGVuYW1lPmludGFycmF5PC9maWxlbmFtZT48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT5SRC1UcmVlIGZvciBvbmUtZGltZW5zaW9uYWwgYXJyYXkgb2YgaW50 NCB2YWx1ZXM8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxmaWxlbmFtZT5sdHJlZTwvZmlsZW5hbWU+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+SW5kZXhpbmcgZm9yIHRyZWUtbGlrZSBz dHJ1Y3R1cmVzPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48ZmlsZW5hbWU+cGdfdHJnbTwvZmlsZW5hbWU+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+VGV4dCBzaW1pbGFyaXR5IHVzaW5n IHRyaWdyYW0gbWF0Y2hpbmc8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxmaWxlbmFtZT5zZWc8L2ZpbGVu YW1lPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPkluZGV4aW5nIGZvciA8cXVv dGU+ZmxvYXQgcmFuZ2VzPC9xdW90ZT48L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyAgPC9wYXJhPgorCisgPC9zZWN0Mj4KKwor IDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9InNwZ2lzdCI+CisgPHRpdGxlPlNQLUdpU1QgSW5kZXhl czwvdGl0bGU+CisKKyAgICA8aW5kZXh0ZXJtPgorICAgICA8cHJpbWFyeT5pbmRleDwvcHJpbWFy eT4KKyAgICAgPHNlY29uZGFyeT5TUC1HaVNUPC9zZWNvbmRhcnk+CisgICAgPC9pbmRleHRlcm0+ CisKKyA8c2VjdDIgaWQ9InNwZ2lzdC1pbnRybyI+CisgIDx0aXRsZT5JbnRyb2R1Y3Rpb248L3Rp dGxlPgorCisgIDxwYXJhPgorICAgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4gaXMgYW4gYWJi cmV2aWF0aW9uIGZvciBzcGFjZS1wYXJ0aXRpb25lZAorICAgPGFjcm9ueW0+R2lTVDwvYWNyb255 bT4uICA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBzdXBwb3J0cyBwYXJ0aXRpb25lZAorICAg c2VhcmNoIHRyZWVzLCB3aGljaCBmYWNpbGl0YXRlIGRldmVsb3BtZW50IG9mIGEgd2lkZSByYW5n ZSBvZiBkaWZmZXJlbnQKKyAgIG5vbi1iYWxhbmNlZCBkYXRhIHN0cnVjdHVyZXMsIHN1Y2ggYXMg cXVhZC10cmVlcywgay1kIHRyZWVzLCBhbmQgcmFkaXgKKyAgIHRyZWVzICh0cmllcykuICBUaGUg Y29tbW9uIGZlYXR1cmUgb2YgdGhlc2Ugc3RydWN0dXJlcyBpcyB0aGF0IHRoZXkKKyAgIHJlcGVh dGVkbHkgZGl2aWRlIHRoZSBzZWFyY2ggc3BhY2UgaW50byBwYXJ0aXRpb25zIHRoYXQgbmVlZCBu b3QgYmUKKyAgIG9mIGVxdWFsIHNpemUuICBTZWFyY2hlcyB0aGF0IGFyZSB3ZWxsIG1hdGNoZWQg dG8gdGhlIHBhcnRpdGlvbmluZyBydWxlCisgICBjYW4gYmUgdmVyeSBmYXN0LgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBUaGVzZSBwb3B1bGFyIGRhdGEgc3RydWN0dXJlcyB3ZXJlIG9yaWdp bmFsbHkgZGV2ZWxvcGVkIGZvciBpbi1tZW1vcnkKKyAgIHVzYWdlLiAgSW4gbWFpbiBtZW1vcnks IHRoZXkgYXJlIHVzdWFsbHkgZGVzaWduZWQgYXMgYSBzZXQgb2YgZHluYW1pY2FsbHkKKyAgIGFs bG9jYXRlZCBub2RlcyBsaW5rZWQgYnkgcG9pbnRlcnMuICBUaGlzIGlzIG5vdCBzdWl0YWJsZSBm b3IgZGlyZWN0CisgICBzdG9yaW5nIG9uIGRpc2ssIHNpbmNlIHRoZXNlIGNoYWlucyBvZiBwb2lu dGVycyBjYW4gYmUgcmF0aGVyIGxvbmcgd2hpY2gKKyAgIHdvdWxkIHJlcXVpcmUgdG9vIG1hbnkg ZGlzayBhY2Nlc3Nlcy4gIEluIGNvbnRyYXN0LCBkaXNrLWJhc2VkIGRhdGEKKyAgIHN0cnVjdHVy ZXMgc2hvdWxkIGhhdmUgYSBoaWdoIGZhbm91dCB0byBtaW5pbWl6ZSBJL08uICBUaGUgY2hhbGxl bmdlCisgICBhZGRyZXNzZWQgYnkgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4gaXMgdG8gbWFw IHNlYXJjaCB0cmVlIG5vZGVzIHRvCisgICBkaXNrIHBhZ2VzIGluIHN1Y2ggYSB3YXkgdGhhdCBh IHNlYXJjaCBuZWVkIGFjY2VzcyBvbmx5IGEgZmV3IGRpc2sgcGFnZXMsCisgICBldmVuIGlmIGl0 IHRyYXZlcnNlcyBtYW55IG5vZGVzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBMaWtlIDxh Y3JvbnltPkdpU1Q8L2Fjcm9ueW0+LCA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBpcyBtZWFu dCB0byBhbGxvdworICAgdGhlIGRldmVsb3BtZW50IG9mIGN1c3RvbSBkYXRhIHR5cGVzIHdpdGgg dGhlIGFwcHJvcHJpYXRlIGFjY2VzcyBtZXRob2RzLAorICAgYnkgYW4gZXhwZXJ0IGluIHRoZSBk b21haW4gb2YgdGhlIGRhdGEgdHlwZSwgcmF0aGVyIHRoYW4gYSBkYXRhYmFzZSBleHBlcnQuCisg IDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFNvbWUgb2YgdGhlIGluZm9ybWF0aW9uIGhlcmUgaXMg ZGVyaXZlZCBmcm9tIFB1cmR1ZSBVbml2ZXJzaXR5J3MKKyAgIFNQLUdpU1QgSW5kZXhpbmcgUHJv amVjdAorICAgPHVsaW5rIHVybD0iaHR0cHM6Ly93d3cuY3MucHVyZHVlLmVkdS9zcGdpc3QvIj53 ZWIgc2l0ZTwvdWxpbms+LgorICAgVGhlIDxhY3JvbnltPlNQLUdpU1Q8L2Fjcm9ueW0+IGltcGxl bWVudGF0aW9uIGluCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGlz IHByaW1hcmlseSBtYWludGFpbmVkIGJ5IFRlb2RvcgorICAgU2lnYWV2IGFuZCBPbGVnIEJhcnR1 bm92LCBhbmQgdGhlcmUgaXMgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGVpcgorICAgPCEtLSBVUkwg d2lsbCBiZSBjaGFuZ2VkIC0tPgorICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy5zYWkubXN1LnN1 L35tZWdlcmEvd2lraS9zcGdpc3RfZGV2Ij53ZWIgc2l0ZTwvdWxpbms+LgorICA8L3BhcmE+CisK KyA8L3NlY3QyPgorCisgPHNlY3QyIGlkPSJzcGdpc3QtYnVpbHRpbi1vcGNsYXNzZXMiPgorICA8 dGl0bGU+QnVpbHQtaW4gT3BlcmF0b3IgQ2xhc3NlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBU aGUgY29yZSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGRpc3RyaWJ1dGlv bgorICAgaW5jbHVkZXMgdGhlIDxhY3JvbnltPlNQLUdpU1Q8L2Fjcm9ueW0+IG9wZXJhdG9yIGNs YXNzZXMgc2hvd24gaW4KKyAgIDx4cmVmIGxpbmtlbmQ9InNwZ2lzdC1idWlsdGluLW9wY2xhc3Nl cy10YWJsZSIvPi4KKyAgPC9wYXJhPgorCisgICA8dGFibGUgaWQ9InNwZ2lzdC1idWlsdGluLW9w Y2xhc3Nlcy10YWJsZSI+CisgICAgPHRpdGxlPkJ1aWx0LWluIDxhY3JvbnltPlNQLUdpU1Q8L2Fj cm9ueW0+IE9wZXJhdG9yIENsYXNzZXM8L3RpdGxlPgorICAgIDx0Z3JvdXAgY29scz0iMyI+Cisg ICAgIDx0aGVhZD4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAg ICAgIDxlbnRyeT5JbmRleGFibGUgT3BlcmF0b3JzPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+T3Jk ZXJpbmcgT3BlcmF0b3JzPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3RoZWFkPgorICAg ICA8dGJvZHk+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9y ZXJvd3M9IjExIj48bGl0ZXJhbD5ib3hfb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVu dHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAg IDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjExIj48bGl0ZXJhbD4mbHQ7LSZndDsg KGJveCxwb2ludCk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+JmFtcDsmbHQ7IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmZ3Q7IChib3gsYm94KTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyZndDsgKGJv eCxib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7QCAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPkAmZ3Q7IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAg ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fj0gKGJveCxib3gpPC9saXRlcmFsPjwvZW50cnk+PC9y b3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZhbXA7IChib3gsYm94KTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDt8 IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+JmFtcDsmbHQ7fCAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPnwmYW1wOyZndDsgKGJveCxib3gpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD58Jmd0OyZndDsgKGJveCxib3gp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHZh bGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iMTAiPjxsaXRlcmFsPmluZXRfb3BzPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChpbmV0LGluZXQpPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iMTAi PjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsm bHQ7PSAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+Jmd0OyZndDsgKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K KyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsmZ3Q7PSAoaW5ldCxpbmV0KTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+PSAoaW5ldCxpbmV0 KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0 OyZndDsgKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZsdDsgKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAg ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9IChpbmV0LGluZXQpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChpbmV0LGluZXQpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAo aW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+JmFtcDsmYW1wOyAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisg ICAgICA8cm93PgorICAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjUiPjxs aXRlcmFsPmtkX3BvaW50X29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0 ZXJhbD58Jmd0OyZndDsgKHBvaW50LHBvaW50KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxl bnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjUiPjxsaXRlcmFsPiZsdDstJmd0OyAocG9p bnQscG9pbnQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChwb2ludCxwb2ludCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsmZ3Q7IChwb2ludCxwb2ludCk8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7 fCAocG9pbnQscG9pbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD5+PSAocG9pbnQscG9pbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAocG9pbnQsYm94KTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9y ZXJvd3M9IjExIj48bGl0ZXJhbD5wb2x5X29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxl bnRyeT48bGl0ZXJhbD4mbHQ7Jmx0OyAocG9seWdvbixwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjExIj48bGl0ZXJhbD4m bHQ7LSZndDsgKHBvbHlnb24scG9pbnQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8L3Jvdz4K KyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmx0OyAocG9seWdvbixwb2x5Z29uKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsm Z3Q7IChwb2x5Z29uLHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0OyAocG9seWdvbixwb2x5Z29uKTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0O0AgKHBvbHlnb24scG9s eWdvbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFs PkAmZ3Q7IChwb2x5Z29uLHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD5+PSAocG9seWdvbixwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmYW1wOyAocG9seWdvbixw b2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmx0OyZsdDt8IChwb2x5Z29uLHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Cisg ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZsdDt8IChwb2x5Z29uLHBvbHlnb24pPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD58Jmd0OyZn dDsgKHBvbHlnb24scG9seWdvbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPnwmYW1wOyZndDsgKHBvbHlnb24scG9seWdvbik8L2xpdGVyYWw+PC9l bnRyeT48L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUi IG1vcmVyb3dzPSI1Ij48bGl0ZXJhbD5xdWFkX3BvaW50X29wczwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgIDxlbnRyeT48bGl0ZXJhbD58Jmd0OyZndDsgKHBvaW50LHBvaW50KTwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjUiPjxsaXRl cmFsPiZsdDstJmd0OyAocG9pbnQscG9pbnQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8L3Jv dz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChwb2ludCxwb2ludCk8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsmZ3Q7 IChwb2ludCxwb2ludCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZsdDsmbHQ7fCAocG9pbnQscG9pbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5+PSAocG9pbnQscG9pbnQpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAocG9pbnQsYm94 KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSB2 YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjkiPjxsaXRlcmFsPnJhbmdlX29wczwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD49IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI5 Ij48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1w OyZhbXA7IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChhbnlyYW5nZSxhbnllbGVtZW50KTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+QCZndDsgKGFueXJh bmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+ PGxpdGVyYWw+Jmx0O0AgKGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDsgKGFueXJhbmdlLGFueXJhbmdl KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0 OyZndDsgKGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmbHQ7IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmd0OyAo YW55cmFuZ2UsYW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4tfC0gKGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJv d3M9IjkiPjxsaXRlcmFsPnRleHRfb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5 PjxsaXRlcmFsPj0gKHRleHQsdGV4dCk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnkg dmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI5Ij48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7ICh0ZXh0LHRleHQpPC9saXRlcmFsPjwvZW50cnk+ PC9yb3c+CisgICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAodGV4dCx0ZXh0KTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAodGV4 dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmd0Oz0gKHRleHQsdGV4dCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPn4mbHQ7fiAodGV4dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fiZsdDs9fiAodGV4dCx0ZXh0KTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fiZndDs9fiAodGV4 dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+fiZndDt+ICh0ZXh0LHRleHQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD5eQCAodGV4dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgor ICAgICA8L3Rib2R5PgorICAgIDwvdGdyb3VwPgorICAgPC90YWJsZT4KKworICA8cGFyYT4KKyAg IE9mIHRoZSB0d28gb3BlcmF0b3IgY2xhc3NlcyBmb3IgdHlwZSA8dHlwZT5wb2ludDwvdHlwZT4s CisgICA8bGl0ZXJhbD5xdWFkX3BvaW50X29wczwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQuICA8 bGl0ZXJhbD5rZF9wb2ludF9vcHM8L2xpdGVyYWw+CisgICBzdXBwb3J0cyB0aGUgc2FtZSBvcGVy YXRvcnMgYnV0IHVzZXMgYSBkaWZmZXJlbnQgaW5kZXggZGF0YSBzdHJ1Y3R1cmUgdGhhdAorICAg bWF5IG9mZmVyIGJldHRlciBwZXJmb3JtYW5jZSBpbiBzb21lIGFwcGxpY2F0aW9ucy4KKyAgPC9w YXJhPgorICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5xdWFkX3BvaW50X29wczwvbGl0ZXJhbD4s IDxsaXRlcmFsPmtkX3BvaW50X29wczwvbGl0ZXJhbD4gYW5kCisgICA8bGl0ZXJhbD5wb2x5X29w czwvbGl0ZXJhbD4gb3BlcmF0b3IgY2xhc3NlcyBzdXBwb3J0IHRoZSA8bGl0ZXJhbD4mbHQ7LSZn dDs8L2xpdGVyYWw+CisgICBvcmRlcmluZyBvcGVyYXRvciwgd2hpY2ggZW5hYmxlcyB0aGUgay1u ZWFyZXN0IG5laWdoYm9yICg8bGl0ZXJhbD5rLU5OPC9saXRlcmFsPikKKyAgIHNlYXJjaCBvdmVy IGluZGV4ZWQgcG9pbnQgb3IgcG9seWdvbiBkYXRhIHNldHMuCisgIDwvcGFyYT4KKworIDwvc2Vj dDI+CisKKyA8c2VjdDIgaWQ9InNwZ2lzdC1leHRlbnNpYmlsaXR5Ij4KKyAgPHRpdGxlPkV4dGVu c2liaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255 bT4gb2ZmZXJzIGFuIGludGVyZmFjZSB3aXRoIGEgaGlnaCBsZXZlbCBvZgorICAgYWJzdHJhY3Rp b24sIHJlcXVpcmluZyB0aGUgYWNjZXNzIG1ldGhvZCBkZXZlbG9wZXIgdG8gaW1wbGVtZW50IG9u bHkKKyAgIG1ldGhvZHMgc3BlY2lmaWMgdG8gYSBnaXZlbiBkYXRhIHR5cGUuIFRoZSA8YWNyb255 bT5TUC1HaVNUPC9hY3JvbnltPiBjb3JlCisgICBpcyByZXNwb25zaWJsZSBmb3IgZWZmaWNpZW50 IGRpc2sgbWFwcGluZyBhbmQgc2VhcmNoaW5nIHRoZSB0cmVlIHN0cnVjdHVyZS4KKyAgIEl0IGFs c28gdGFrZXMgY2FyZSBvZiBjb25jdXJyZW5jeSBhbmQgbG9nZ2luZyBjb25zaWRlcmF0aW9ucy4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTGVhZiB0dXBsZXMgb2YgYW4gPGFjcm9ueW0+U1At R2lTVDwvYWNyb255bT4gdHJlZSB1c3VhbGx5IGNvbnRhaW4gdmFsdWVzCisgICBvZiB0aGUgc2Ft ZSBkYXRhIHR5cGUgYXMgdGhlIGluZGV4ZWQgY29sdW1uLCBhbHRob3VnaCBpdCBpcyBhbHNvIHBv c3NpYmxlCisgICBmb3IgdGhlbSB0byBjb250YWluIGxvc3N5IHJlcHJlc2VudGF0aW9ucyBvZiB0 aGUgaW5kZXhlZCBjb2x1bW4uCisgICBMZWFmIHR1cGxlcyBzdG9yZWQgYXQgdGhlIHJvb3QgbGV2 ZWwgd2lsbCBkaXJlY3RseSByZXByZXNlbnQKKyAgIHRoZSBvcmlnaW5hbCBpbmRleGVkIGRhdGEg dmFsdWUsIGJ1dCBsZWFmIHR1cGxlcyBhdCBsb3dlcgorICAgbGV2ZWxzIG1pZ2h0IGNvbnRhaW4g b25seSBhIHBhcnRpYWwgdmFsdWUsIHN1Y2ggYXMgYSBzdWZmaXguCisgICBJbiB0aGF0IGNhc2Ug dGhlIG9wZXJhdG9yIGNsYXNzIHN1cHBvcnQgZnVuY3Rpb25zIG11c3QgYmUgYWJsZSB0bworICAg cmVjb25zdHJ1Y3QgdGhlIG9yaWdpbmFsIHZhbHVlIHVzaW5nIGluZm9ybWF0aW9uIGFjY3VtdWxh dGVkIGZyb20gdGhlCisgICBpbm5lciB0dXBsZXMgdGhhdCBhcmUgcGFzc2VkIHRocm91Z2ggdG8g cmVhY2ggdGhlIGxlYWYgbGV2ZWwuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdoZW4gYW4g PGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4gaW5kZXggaXMgY3JlYXRlZCB3aXRoCisgICA8bGl0 ZXJhbD5JTkNMVURFPC9saXRlcmFsPiBjb2x1bW5zLCB0aGUgdmFsdWVzIG9mIHRob3NlIGNvbHVt bnMgYXJlIGFsc28KKyAgIHN0b3JlZCBpbiBsZWFmIHR1cGxlcy4gIFRoZSA8bGl0ZXJhbD5JTkNM VURFPC9saXRlcmFsPiBjb2x1bW5zIGFyZSBvZiBubworICAgY29uY2VybiB0byB0aGUgPGFjcm9u eW0+U1AtR2lTVDwvYWNyb255bT4gb3BlcmF0b3IgY2xhc3MsIHNvIHRoZXkgYXJlCisgICBub3Qg ZGlzY3Vzc2VkIGZ1cnRoZXIgaGVyZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgSW5uZXIg dHVwbGVzIGFyZSBtb3JlIGNvbXBsZXgsIHNpbmNlIHRoZXkgYXJlIGJyYW5jaGluZyBwb2ludHMg aW4gdGhlCisgICBzZWFyY2ggdHJlZS4gIEVhY2ggaW5uZXIgdHVwbGUgY29udGFpbnMgYSBzZXQg b2Ygb25lIG9yIG1vcmUKKyAgIDxmaXJzdHRlcm0+bm9kZXM8L2ZpcnN0dGVybT4sIHdoaWNoIHJl cHJlc2VudCBncm91cHMgb2Ygc2ltaWxhciBsZWFmIHZhbHVlcy4KKyAgIEEgbm9kZSBjb250YWlu cyBhIGRvd25saW5rIHRoYXQgbGVhZHMgZWl0aGVyIHRvIGFub3RoZXIsIGxvd2VyLWxldmVsIGlu bmVyCisgICB0dXBsZSwgb3IgdG8gYSBzaG9ydCBsaXN0IG9mIGxlYWYgdHVwbGVzIHRoYXQgYWxs IGxpZSBvbiB0aGUgc2FtZSBpbmRleCBwYWdlLgorICAgRWFjaCBub2RlIG5vcm1hbGx5IGhhcyBh IDxmaXJzdHRlcm0+bGFiZWw8L2ZpcnN0dGVybT4gdGhhdCBkZXNjcmliZXMgaXQ7IGZvciBleGFt cGxlLAorICAgaW4gYSByYWRpeCB0cmVlIHRoZSBub2RlIGxhYmVsIGNvdWxkIGJlIHRoZSBuZXh0 IGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nCisgICB2YWx1ZS4gIChBbHRlcm5hdGl2ZWx5LCBhbiBv cGVyYXRvciBjbGFzcyBjYW4gb21pdCB0aGUgbm9kZSBsYWJlbHMsIGlmIGl0CisgICB3b3JrcyB3 aXRoIGEgZml4ZWQgc2V0IG9mIG5vZGVzIGZvciBhbGwgaW5uZXIgdHVwbGVzOworICAgc2VlIDx4 cmVmIGxpbmtlbmQ9InNwZ2lzdC1udWxsLWxhYmVscyIvPi4pCisgICBPcHRpb25hbGx5LCBhbiBp bm5lciB0dXBsZSBjYW4gaGF2ZSBhIDxmaXJzdHRlcm0+cHJlZml4PC9maXJzdHRlcm0+IHZhbHVl CisgICB0aGF0IGRlc2NyaWJlcyBhbGwgaXRzIG1lbWJlcnMuICBJbiBhIHJhZGl4IHRyZWUgdGhp cyBjb3VsZCBiZSB0aGUgY29tbW9uCisgICBwcmVmaXggb2YgdGhlIHJlcHJlc2VudGVkIHN0cmlu Z3MuICBUaGUgcHJlZml4IHZhbHVlIGlzIG5vdCBuZWNlc3NhcmlseQorICAgcmVhbGx5IGEgcHJl Zml4LCBidXQgY2FuIGJlIGFueSBkYXRhIG5lZWRlZCBieSB0aGUgb3BlcmF0b3IgY2xhc3M7Cisg ICBmb3IgZXhhbXBsZSwgaW4gYSBxdWFkLXRyZWUgaXQgY2FuIHN0b3JlIHRoZSBjZW50cmFsIHBv aW50IHRoYXQgdGhlIGZvdXIKKyAgIHF1YWRyYW50cyBhcmUgbWVhc3VyZWQgd2l0aCByZXNwZWN0 IHRvLiAgQSBxdWFkLXRyZWUgaW5uZXIgdHVwbGUgd291bGQKKyAgIHRoZW4gYWxzbyBjb250YWlu IGZvdXIgbm9kZXMgY29ycmVzcG9uZGluZyB0byB0aGUgcXVhZHJhbnRzIGFyb3VuZCB0aGlzCisg ICBjZW50cmFsIHBvaW50LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBTb21lIHRyZWUgYWxn b3JpdGhtcyByZXF1aXJlIGtub3dsZWRnZSBvZiBsZXZlbCAob3IgZGVwdGgpIG9mIHRoZSBjdXJy ZW50CisgICB0dXBsZSwgc28gdGhlIDxhY3JvbnltPlNQLUdpU1Q8L2Fjcm9ueW0+IGNvcmUgcHJv dmlkZXMgdGhlIHBvc3NpYmlsaXR5IGZvcgorICAgb3BlcmF0b3IgY2xhc3NlcyB0byBtYW5hZ2Ug bGV2ZWwgY291bnRpbmcgd2hpbGUgZGVzY2VuZGluZyB0aGUgdHJlZS4KKyAgIFRoZXJlIGlzIGFs c28gc3VwcG9ydCBmb3IgaW5jcmVtZW50YWxseSByZWNvbnN0cnVjdGluZyB0aGUgcmVwcmVzZW50 ZWQKKyAgIHZhbHVlIHdoZW4gdGhhdCBpcyBuZWVkZWQsIGFuZCBmb3IgcGFzc2luZyBkb3duIGFk ZGl0aW9uYWwgZGF0YSAoY2FsbGVkCisgICA8Zmlyc3R0ZXJtPnRyYXZlcnNlIHZhbHVlczwvZmly c3R0ZXJtPikgZHVyaW5nIGEgdHJlZSBkZXNjZW50LgorICA8L3BhcmE+CisKKyAgPG5vdGU+Cisg ICA8cGFyYT4KKyAgICBUaGUgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4gY29yZSBjb2RlIHRh a2VzIGNhcmUgb2YgbnVsbCBlbnRyaWVzLgorICAgIEFsdGhvdWdoIDxhY3JvbnltPlNQLUdpU1Q8 L2Fjcm9ueW0+IGluZGV4ZXMgZG8gc3RvcmUgZW50cmllcyBmb3IgbnVsbHMKKyAgICBpbiBpbmRl eGVkIGNvbHVtbnMsIHRoaXMgaXMgaGlkZGVuIGZyb20gdGhlIGluZGV4IG9wZXJhdG9yIGNsYXNz IGNvZGU6CisgICAgbm8gbnVsbCBpbmRleCBlbnRyaWVzIG9yIHNlYXJjaCBjb25kaXRpb25zIHdp bGwgZXZlciBiZSBwYXNzZWQgdG8gdGhlCisgICAgb3BlcmF0b3IgY2xhc3MgbWV0aG9kcy4gIChJ dCBpcyBhc3N1bWVkIHRoYXQgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4KKyAgICBvcGVyYXRv cnMgYXJlIHN0cmljdCBhbmQgc28gY2Fubm90IHN1Y2NlZWQgZm9yIG51bGwgdmFsdWVzLikgIE51 bGwgdmFsdWVzCisgICAgYXJlIHRoZXJlZm9yZSBub3QgZGlzY3Vzc2VkIGZ1cnRoZXIgaGVyZS4K KyAgIDwvcGFyYT4KKyAgPC9ub3RlPgorCisgIDxwYXJhPgorICAgVGhlcmUgYXJlIGZpdmUgdXNl ci1kZWZpbmVkIG1ldGhvZHMgdGhhdCBhbiBpbmRleCBvcGVyYXRvciBjbGFzcyBmb3IKKyAgIDxh Y3JvbnltPlNQLUdpU1Q8L2Fjcm9ueW0+IG11c3QgcHJvdmlkZSwgYW5kIHR3byBhcmUgb3B0aW9u YWwuICBBbGwgZml2ZQorICAgbWFuZGF0b3J5IG1ldGhvZHMgZm9sbG93IHRoZSBjb252ZW50aW9u IG9mIGFjY2VwdGluZyB0d28gPHR5cGU+aW50ZXJuYWw8L3R5cGU+CisgICBhcmd1bWVudHMsIHRo ZSBmaXJzdCBvZiB3aGljaCBpcyBhIHBvaW50ZXIgdG8gYSBDIHN0cnVjdCBjb250YWluaW5nIGlu cHV0CisgICB2YWx1ZXMgZm9yIHRoZSBzdXBwb3J0IG1ldGhvZCwgd2hpbGUgdGhlIHNlY29uZCBh cmd1bWVudCBpcyBhIHBvaW50ZXIgdG8gYQorICAgQyBzdHJ1Y3Qgd2hlcmUgb3V0cHV0IHZhbHVl cyBtdXN0IGJlIHBsYWNlZC4gIEZvdXIgb2YgdGhlIG1hbmRhdG9yeSBtZXRob2RzIGp1c3QKKyAg IHJldHVybiA8dHlwZT52b2lkPC90eXBlPiwgc2luY2UgYWxsIHRoZWlyIHJlc3VsdHMgYXBwZWFy IGluIHRoZSBvdXRwdXQgc3RydWN0OyBidXQKKyAgIDxmdW5jdGlvbj5sZWFmX2NvbnNpc3RlbnQ8 L2Z1bmN0aW9uPiByZXR1cm5zIGEgPHR5cGU+Ym9vbGVhbjwvdHlwZT4gcmVzdWx0LgorICAgVGhl IG1ldGhvZHMgbXVzdCBub3QgbW9kaWZ5IGFueSBmaWVsZHMgb2YgdGhlaXIgaW5wdXQgc3RydWN0 cy4gIEluIGFsbAorICAgY2FzZXMsIHRoZSBvdXRwdXQgc3RydWN0IGlzIGluaXRpYWxpemVkIHRv IHplcm9lcyBiZWZvcmUgY2FsbGluZyB0aGUKKyAgIHVzZXItZGVmaW5lZCBtZXRob2QuICBUaGUg b3B0aW9uYWwgc2l4dGggbWV0aG9kIDxmdW5jdGlvbj5jb21wcmVzczwvZnVuY3Rpb24+CisgICBh Y2NlcHRzIGEgPHR5cGU+ZGF0dW08L3R5cGU+IHRvIGJlIGluZGV4ZWQgYXMgdGhlIG9ubHkgYXJn dW1lbnQgYW5kIHJldHVybnMgYSB2YWx1ZSBzdWl0YWJsZQorICAgZm9yIHBoeXNpY2FsIHN0b3Jh Z2UgaW4gYSBsZWFmIHR1cGxlLiAgVGhlIG9wdGlvbmFsIHNldmVudGggbWV0aG9kCisgICA8ZnVu Y3Rpb24+b3B0aW9uczwvZnVuY3Rpb24+IGFjY2VwdHMgYW4gPHR5cGU+aW50ZXJuYWw8L3R5cGU+ IHBvaW50ZXIgdG8gYSBDIHN0cnVjdCwgd2hlcmUKKyAgIG9wY2xhc3Mtc3BlY2lmaWMgcGFyYW1l dGVycyBzaG91bGQgYmUgcGxhY2VkLCBhbmQgcmV0dXJucyA8dHlwZT52b2lkPC90eXBlPi4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGZpdmUgbWFuZGF0b3J5IHVzZXItZGVmaW5lZCBt ZXRob2RzIGFyZToKKyAgPC9wYXJhPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgICA8dGVybT48ZnVuY3Rpb24+Y29uZmlnPC9mdW5jdGlvbj48L3Rlcm0+Cisg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFJldHVybnMgc3RhdGljIGlu Zm9ybWF0aW9uIGFib3V0IHRoZSBpbmRleCBpbXBsZW1lbnRhdGlvbiwgaW5jbHVkaW5nCisgICAg ICAgIHRoZSBkYXRhIHR5cGUgT0lEcyBvZiB0aGUgcHJlZml4IGFuZCBub2RlIGxhYmVsIGRhdGEg dHlwZXMuCisgICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIDxhY3Jvbnlt PlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtl IHRoaXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgRlVOQ1RJT04gbXlfY29uZmlnKGludGVy bmFsLCBpbnRlcm5hbCkgUkVUVVJOUyB2b2lkIC4uLgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAg ICBUaGUgZmlyc3QgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgPHN0cnVjdG5hbWU+c3BnQ29u ZmlnSW48L3N0cnVjdG5hbWU+CisgICAgICAgQyBzdHJ1Y3QsIGNvbnRhaW5pbmcgaW5wdXQgZGF0 YSBmb3IgdGhlIGZ1bmN0aW9uLgorICAgICAgIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgYSBwb2lu dGVyIHRvIGEgPHN0cnVjdG5hbWU+c3BnQ29uZmlnT3V0PC9zdHJ1Y3RuYW1lPgorICAgICAgIEMg c3RydWN0LCB3aGljaCB0aGUgZnVuY3Rpb24gbXVzdCBmaWxsIHdpdGggcmVzdWx0IGRhdGEuCis8 cHJvZ3JhbWxpc3Rpbmc+Cit0eXBlZGVmIHN0cnVjdCBzcGdDb25maWdJbgoreworICAgIE9pZCAg ICAgICAgIGF0dFR5cGU7ICAgICAgICAvKiBEYXRhIHR5cGUgdG8gYmUgaW5kZXhlZCAqLworfSBz cGdDb25maWdJbjsKKwordHlwZWRlZiBzdHJ1Y3Qgc3BnQ29uZmlnT3V0Cit7CisgICAgT2lkICAg ICAgICAgcHJlZml4VHlwZTsgICAgIC8qIERhdGEgdHlwZSBvZiBpbm5lci10dXBsZSBwcmVmaXhl cyAqLworICAgIE9pZCAgICAgICAgIGxhYmVsVHlwZTsgICAgICAvKiBEYXRhIHR5cGUgb2YgaW5u ZXItdHVwbGUgbm9kZSBsYWJlbHMgKi8KKyAgICBPaWQgICAgICAgICBsZWFmVHlwZTsgICAgICAg LyogRGF0YSB0eXBlIG9mIGxlYWYtdHVwbGUgdmFsdWVzICovCisgICAgYm9vbCAgICAgICAgY2Fu UmV0dXJuRGF0YTsgIC8qIE9wY2xhc3MgY2FuIHJlY29uc3RydWN0IG9yaWdpbmFsIGRhdGEgKi8K KyAgICBib29sICAgICAgICBsb25nVmFsdWVzT0s7ICAgLyogT3BjbGFzcyBjYW4gY29wZSB3aXRo IHZhbHVlcyAmZ3Q7IDEgcGFnZSAqLworfSBzcGdDb25maWdPdXQ7Cis8L3Byb2dyYW1saXN0aW5n PgorCisgICAgICAgPHN0cnVjdGZpZWxkPmF0dFR5cGU8L3N0cnVjdGZpZWxkPiBpcyBwYXNzZWQg aW4gb3JkZXIgdG8gc3VwcG9ydCBwb2x5bW9ycGhpYworICAgICAgIGluZGV4IG9wZXJhdG9yIGNs YXNzZXM7IGZvciBvcmRpbmFyeSBmaXhlZC1kYXRhLXR5cGUgb3BlcmF0b3IgY2xhc3NlcywgaXQK KyAgICAgICB3aWxsIGFsd2F5cyBoYXZlIHRoZSBzYW1lIHZhbHVlIGFuZCBzbyBjYW4gYmUgaWdu b3JlZC4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgRm9yIG9wZXJhdG9y IGNsYXNzZXMgdGhhdCBkbyBub3QgdXNlIHByZWZpeGVzLAorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cmVmaXhUeXBlPC9zdHJ1Y3RmaWVsZD4gY2FuIGJlIHNldCB0byA8bGl0ZXJhbD5WT0lET0lEPC9s aXRlcmFsPi4KKyAgICAgICBMaWtld2lzZSwgZm9yIG9wZXJhdG9yIGNsYXNzZXMgdGhhdCBkbyBu b3QgdXNlIG5vZGUgbGFiZWxzLAorICAgICAgIDxzdHJ1Y3RmaWVsZD5sYWJlbFR5cGU8L3N0cnVj dGZpZWxkPiBjYW4gYmUgc2V0IHRvIDxsaXRlcmFsPlZPSURPSUQ8L2xpdGVyYWw+LgorICAgICAg IDxzdHJ1Y3RmaWVsZD5jYW5SZXR1cm5EYXRhPC9zdHJ1Y3RmaWVsZD4gc2hvdWxkIGJlIHNldCB0 cnVlIGlmIHRoZSBvcGVyYXRvciBjbGFzcworICAgICAgIGlzIGNhcGFibGUgb2YgcmVjb25zdHJ1 Y3RpbmcgdGhlIG9yaWdpbmFsbHktc3VwcGxpZWQgaW5kZXggdmFsdWUuCisgICAgICAgPHN0cnVj dGZpZWxkPmxvbmdWYWx1ZXNPSzwvc3RydWN0ZmllbGQ+IHNob3VsZCBiZSBzZXQgdHJ1ZSBvbmx5 IHdoZW4gdGhlCisgICAgICAgPHN0cnVjdGZpZWxkPmF0dFR5cGU8L3N0cnVjdGZpZWxkPiBpcyBv ZiB2YXJpYWJsZSBsZW5ndGggYW5kIHRoZSBvcGVyYXRvcgorICAgICAgIGNsYXNzIGlzIGNhcGFi bGUgb2Ygc2VnbWVudGluZyBsb25nIHZhbHVlcyBieSByZXBlYXRlZCBzdWZmaXhpbmcKKyAgICAg ICAoc2VlIDx4cmVmIGxpbmtlbmQ9InNwZ2lzdC1saW1pdHMiLz4pLgorICAgICAgPC9wYXJhPgor CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+bGVhZlR5cGU8L3N0cnVjdGZpZWxk PiBzaG91bGQgbWF0Y2ggdGhlIGluZGV4IHN0b3JhZ2UgdHlwZQorICAgICAgIGRlZmluZWQgYnkg dGhlIG9wZXJhdG9yIGNsYXNzJ3MgPHN0cnVjdGZpZWxkPm9wY2tleXR5cGU8L3N0cnVjdGZpZWxk PgorICAgICAgIGNhdGFsb2cgZW50cnkuCisgICAgICAgKE5vdGUgdGhhdCA8c3RydWN0ZmllbGQ+ b3Bja2V5dHlwZTwvc3RydWN0ZmllbGQ+IGNhbiBiZSB6ZXJvLAorICAgICAgIGltcGx5aW5nIHRo ZSBzdG9yYWdlIHR5cGUgaXMgdGhlIHNhbWUgYXMgdGhlIG9wZXJhdG9yIGNsYXNzJ3MgaW5wdXQK KyAgICAgICB0eXBlLCB3aGljaCBpcyB0aGUgbW9zdCBjb21tb24gc2l0dWF0aW9uLikKKyAgICAg ICBGb3IgcmVhc29ucyBvZiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgPGZ1bmN0aW9uPmNv bmZpZzwvZnVuY3Rpb24+CisgICAgICAgbWV0aG9kIGNhbiBzZXQgPHN0cnVjdGZpZWxkPmxlYWZU eXBlPC9zdHJ1Y3RmaWVsZD4gdG8gc29tZSBvdGhlciB2YWx1ZSwKKyAgICAgICBhbmQgdGhhdCB2 YWx1ZSB3aWxsIGJlIHVzZWQ7IGJ1dCB0aGlzIGlzIGRlcHJlY2F0ZWQgc2luY2UgdGhlIGluZGV4 CisgICAgICAgY29udGVudHMgYXJlIHRoZW4gaW5jb3JyZWN0bHkgaWRlbnRpZmllZCBpbiB0aGUg Y2F0YWxvZ3MuCisgICAgICAgQWxzbywgaXQncyBwZXJtaXNzaWJsZSB0bworICAgICAgIGxlYXZl IDxzdHJ1Y3RmaWVsZD5sZWFmVHlwZTwvc3RydWN0ZmllbGQ+IHVuaW5pdGlhbGl6ZWQgKHplcm8p OworICAgICAgIHRoYXQgaXMgaW50ZXJwcmV0ZWQgYXMgbWVhbmluZyB0aGUgaW5kZXggc3RvcmFn ZSB0eXBlIGRlcml2ZWQgZnJvbQorICAgICAgIDxzdHJ1Y3RmaWVsZD5vcGNrZXl0eXBlPC9zdHJ1 Y3RmaWVsZD4uCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFdoZW4gPHN0 cnVjdGZpZWxkPmF0dFR5cGU8L3N0cnVjdGZpZWxkPgorICAgICAgIGFuZCA8c3RydWN0ZmllbGQ+ bGVhZlR5cGU8L3N0cnVjdGZpZWxkPiBhcmUgZGlmZmVyZW50LCB0aGUgb3B0aW9uYWwKKyAgICAg ICBtZXRob2QgPGZ1bmN0aW9uPmNvbXByZXNzPC9mdW5jdGlvbj4gbXVzdCBiZSBwcm92aWRlZC4K KyAgICAgICBNZXRob2QgPGZ1bmN0aW9uPmNvbXByZXNzPC9mdW5jdGlvbj4gaXMgcmVzcG9uc2li bGUKKyAgICAgICBmb3IgdHJhbnNmb3JtYXRpb24gb2YgZGF0dW1zIHRvIGJlIGluZGV4ZWQgZnJv bSA8c3RydWN0ZmllbGQ+YXR0VHlwZTwvc3RydWN0ZmllbGQ+CisgICAgICAgdG8gPHN0cnVjdGZp ZWxkPmxlYWZUeXBlPC9zdHJ1Y3RmaWVsZD4uCisgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3Rp dGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg PHRlcm0+PGZ1bmN0aW9uPmNob29zZTwvZnVuY3Rpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICAgQ2hvb3NlcyBhIG1ldGhvZCBmb3IgaW5zZXJ0aW5n IGEgbmV3IHZhbHVlIGludG8gYW4gaW5uZXIgdHVwbGUuCisgICAgICAgPC9wYXJhPgorCisgICAg ICA8cGFyYT4KKyAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBv ZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBGVU5DVElPTiBteV9jaG9vc2UoaW50ZXJuYWwsIGludGVybmFsKSBSRVRVUk5TIHZvaWQg Li4uCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgIFRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIHBv aW50ZXIgdG8gYSA8c3RydWN0bmFtZT5zcGdDaG9vc2VJbjwvc3RydWN0bmFtZT4KKyAgICAgICBD IHN0cnVjdCwgY29udGFpbmluZyBpbnB1dCBkYXRhIGZvciB0aGUgZnVuY3Rpb24uCisgICAgICAg VGhlIHNlY29uZCBhcmd1bWVudCBpcyBhIHBvaW50ZXIgdG8gYSA8c3RydWN0bmFtZT5zcGdDaG9v c2VPdXQ8L3N0cnVjdG5hbWU+CisgICAgICAgQyBzdHJ1Y3QsIHdoaWNoIHRoZSBmdW5jdGlvbiBt dXN0IGZpbGwgd2l0aCByZXN1bHQgZGF0YS4KKzxwcm9ncmFtbGlzdGluZz4KK3R5cGVkZWYgc3Ry dWN0IHNwZ0Nob29zZUluCit7CisgICAgRGF0dW0gICAgICAgZGF0dW07ICAgICAgICAgIC8qIG9y aWdpbmFsIGRhdHVtIHRvIGJlIGluZGV4ZWQgKi8KKyAgICBEYXR1bSAgICAgICBsZWFmRGF0dW07 ICAgICAgLyogY3VycmVudCBkYXR1bSB0byBiZSBzdG9yZWQgYXQgbGVhZiAqLworICAgIGludCAg ICAgICAgIGxldmVsOyAgICAgICAgICAvKiBjdXJyZW50IGxldmVsIChjb3VudGluZyBmcm9tIHpl cm8pICovCisKKyAgICAvKiBEYXRhIGZyb20gY3VycmVudCBpbm5lciB0dXBsZSAqLworICAgIGJv b2wgICAgICAgIGFsbFRoZVNhbWU7ICAgICAvKiB0dXBsZSBpcyBtYXJrZWQgYWxsLXRoZS1zYW1l PyAqLworICAgIGJvb2wgICAgICAgIGhhc1ByZWZpeDsgICAgICAvKiB0dXBsZSBoYXMgYSBwcmVm aXg/ICovCisgICAgRGF0dW0gICAgICAgcHJlZml4RGF0dW07ICAgIC8qIGlmIHNvLCB0aGUgcHJl Zml4IHZhbHVlICovCisgICAgaW50ICAgICAgICAgbk5vZGVzOyAgICAgICAgIC8qIG51bWJlciBv ZiBub2RlcyBpbiB0aGUgaW5uZXIgdHVwbGUgKi8KKyAgICBEYXR1bSAgICAgICpub2RlTGFiZWxz OyAgICAgLyogbm9kZSBsYWJlbCB2YWx1ZXMgKE5VTEwgaWYgbm9uZSkgKi8KK30gc3BnQ2hvb3Nl SW47CisKK3R5cGVkZWYgZW51bSBzcGdDaG9vc2VSZXN1bHRUeXBlCit7CisgICAgc3BnTWF0Y2hO b2RlID0gMSwgICAgICAgICAgIC8qIGRlc2NlbmQgaW50byBleGlzdGluZyBub2RlICovCisgICAg c3BnQWRkTm9kZSwgICAgICAgICAgICAgICAgIC8qIGFkZCBhIG5vZGUgdG8gdGhlIGlubmVyIHR1 cGxlICovCisgICAgc3BnU3BsaXRUdXBsZSAgICAgICAgICAgICAgIC8qIHNwbGl0IGlubmVyIHR1 cGxlIChjaGFuZ2UgaXRzIHByZWZpeCkgKi8KK30gc3BnQ2hvb3NlUmVzdWx0VHlwZTsKKwordHlw ZWRlZiBzdHJ1Y3Qgc3BnQ2hvb3NlT3V0Cit7CisgICAgc3BnQ2hvb3NlUmVzdWx0VHlwZSByZXN1 bHRUeXBlOyAgICAgLyogYWN0aW9uIGNvZGUsIHNlZSBhYm92ZSAqLworICAgIHVuaW9uCisgICAg eworICAgICAgICBzdHJ1Y3QgICAgICAgICAgICAgICAgICAvKiByZXN1bHRzIGZvciBzcGdNYXRj aE5vZGUgKi8KKyAgICAgICAgeworICAgICAgICAgICAgaW50ICAgICAgICAgbm9kZU47ICAgICAg LyogZGVzY2VuZCB0byB0aGlzIG5vZGUgKGluZGV4IGZyb20gMCkgKi8KKyAgICAgICAgICAgIGlu dCAgICAgICAgIGxldmVsQWRkOyAgIC8qIGluY3JlbWVudCBsZXZlbCBieSB0aGlzIG11Y2ggKi8K KyAgICAgICAgICAgIERhdHVtICAgICAgIHJlc3REYXR1bTsgIC8qIG5ldyBsZWFmIGRhdHVtICov CisgICAgICAgIH0gICAgICAgICAgIG1hdGNoTm9kZTsKKyAgICAgICAgc3RydWN0ICAgICAgICAg ICAgICAgICAgLyogcmVzdWx0cyBmb3Igc3BnQWRkTm9kZSAqLworICAgICAgICB7CisgICAgICAg ICAgICBEYXR1bSAgICAgICBub2RlTGFiZWw7ICAvKiBuZXcgbm9kZSdzIGxhYmVsICovCisgICAg ICAgICAgICBpbnQgICAgICAgICBub2RlTjsgICAgICAvKiB3aGVyZSB0byBpbnNlcnQgaXQgKGlu ZGV4IGZyb20gMCkgKi8KKyAgICAgICAgfSAgICAgICAgICAgYWRkTm9kZTsKKyAgICAgICAgc3Ry dWN0ICAgICAgICAgICAgICAgICAgLyogcmVzdWx0cyBmb3Igc3BnU3BsaXRUdXBsZSAqLworICAg ICAgICB7CisgICAgICAgICAgICAvKiBJbmZvIHRvIGZvcm0gbmV3IHVwcGVyLWxldmVsIGlubmVy IHR1cGxlIHdpdGggb25lIGNoaWxkIHR1cGxlICovCisgICAgICAgICAgICBib29sICAgICAgICBw cmVmaXhIYXNQcmVmaXg7ICAgIC8qIHR1cGxlIHNob3VsZCBoYXZlIGEgcHJlZml4PyAqLworICAg ICAgICAgICAgRGF0dW0gICAgICAgcHJlZml4UHJlZml4RGF0dW07ICAvKiBpZiBzbywgaXRzIHZh bHVlICovCisgICAgICAgICAgICBpbnQgICAgICAgICBwcmVmaXhOTm9kZXM7ICAgICAgIC8qIG51 bWJlciBvZiBub2RlcyAqLworICAgICAgICAgICAgRGF0dW0gICAgICAqcHJlZml4Tm9kZUxhYmVs czsgICAvKiB0aGVpciBsYWJlbHMgKG9yIE5VTEwgZm9yCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqIG5vIGxhYmVscykgKi8KKyAgICAgICAgICAgIGludCAg ICAgICAgIGNoaWxkTm9kZU47ICAgICAgICAgLyogd2hpY2ggbm9kZSBnZXRzIGNoaWxkIHR1cGxl ICovCisKKyAgICAgICAgICAgIC8qIEluZm8gdG8gZm9ybSBuZXcgbG93ZXItbGV2ZWwgaW5uZXIg dHVwbGUgd2l0aCBhbGwgb2xkIG5vZGVzICovCisgICAgICAgICAgICBib29sICAgICAgICBwb3N0 Zml4SGFzUHJlZml4OyAgIC8qIHR1cGxlIHNob3VsZCBoYXZlIGEgcHJlZml4PyAqLworICAgICAg ICAgICAgRGF0dW0gICAgICAgcG9zdGZpeFByZWZpeERhdHVtOyAvKiBpZiBzbywgaXRzIHZhbHVl ICovCisgICAgICAgIH0gICAgICAgICAgIHNwbGl0VHVwbGU7CisgICAgfSAgICAgICAgICAgcmVz dWx0OworfSBzcGdDaG9vc2VPdXQ7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAgIDxzdHJ1 Y3RmaWVsZD5kYXR1bTwvc3RydWN0ZmllbGQ+IGlzIHRoZSBvcmlnaW5hbCBkYXR1bSBvZgorICAg ICAgICA8c3RydWN0bmFtZT5zcGdDb25maWdJbjwvc3RydWN0bmFtZT4uPHN0cnVjdGZpZWxkPmF0 dFR5cGU8L3N0cnVjdGZpZWxkPgorICAgICAgICB0eXBlIHRoYXQgd2FzIHRvIGJlIGluc2VydGVk IGludG8gdGhlIGluZGV4LgorICAgICAgICA8c3RydWN0ZmllbGQ+bGVhZkRhdHVtPC9zdHJ1Y3Rm aWVsZD4gaXMgYSB2YWx1ZSBvZgorICAgICAgICA8c3RydWN0bmFtZT5zcGdDb25maWdPdXQ8L3N0 cnVjdG5hbWU+LjxzdHJ1Y3RmaWVsZD5sZWFmVHlwZTwvc3RydWN0ZmllbGQ+CisgICAgICAgIHR5 cGUsIHdoaWNoIGlzIGluaXRpYWxseSBhIHJlc3VsdCBvZiBtZXRob2QKKyAgICAgICAgPGZ1bmN0 aW9uPmNvbXByZXNzPC9mdW5jdGlvbj4gYXBwbGllZCB0byA8c3RydWN0ZmllbGQ+ZGF0dW08L3N0 cnVjdGZpZWxkPgorICAgICAgICB3aGVuIG1ldGhvZCA8ZnVuY3Rpb24+Y29tcHJlc3M8L2Z1bmN0 aW9uPiBpcyBwcm92aWRlZCwgb3IgdGhlIHNhbWUgdmFsdWUgYXMKKyAgICAgICAgPHN0cnVjdGZp ZWxkPmRhdHVtPC9zdHJ1Y3RmaWVsZD4gb3RoZXJ3aXNlLgorICAgICAgICA8c3RydWN0ZmllbGQ+ bGVhZkRhdHVtPC9zdHJ1Y3RmaWVsZD4gY2FuIGNoYW5nZSBhdCBsb3dlciBsZXZlbHMgb2YgdGhl IHRyZWUKKyAgICAgICAgaWYgdGhlIDxmdW5jdGlvbj5jaG9vc2U8L2Z1bmN0aW9uPiBvciA8ZnVu Y3Rpb24+cGlja3NwbGl0PC9mdW5jdGlvbj4KKyAgICAgICAgbWV0aG9kcyBjaGFuZ2UgaXQuICBX aGVuIHRoZSBpbnNlcnRpb24gc2VhcmNoIHJlYWNoZXMgYSBsZWFmIHBhZ2UsCisgICAgICAgIHRo ZSBjdXJyZW50IHZhbHVlIG9mIDxzdHJ1Y3RmaWVsZD5sZWFmRGF0dW08L3N0cnVjdGZpZWxkPiBp cyB3aGF0IHdpbGwgYmUgc3RvcmVkCisgICAgICAgIGluIHRoZSBuZXdseSBjcmVhdGVkIGxlYWYg dHVwbGUuCisgICAgICAgIDxzdHJ1Y3RmaWVsZD5sZXZlbDwvc3RydWN0ZmllbGQ+IGlzIHRoZSBj dXJyZW50IGlubmVyIHR1cGxlJ3MgbGV2ZWwsIHN0YXJ0aW5nIGF0CisgICAgICAgIHplcm8gZm9y IHRoZSByb290IGxldmVsLgorICAgICAgICA8c3RydWN0ZmllbGQ+YWxsVGhlU2FtZTwvc3RydWN0 ZmllbGQ+IGlzIHRydWUgaWYgdGhlIGN1cnJlbnQgaW5uZXIgdHVwbGUgaXMKKyAgICAgICAgbWFy a2VkIGFzIGNvbnRhaW5pbmcgbXVsdGlwbGUgZXF1aXZhbGVudCBub2RlcworICAgICAgICAoc2Vl IDx4cmVmIGxpbmtlbmQ9InNwZ2lzdC1hbGwtdGhlLXNhbWUiLz4pLgorICAgICAgICA8c3RydWN0 ZmllbGQ+aGFzUHJlZml4PC9zdHJ1Y3RmaWVsZD4gaXMgdHJ1ZSBpZiB0aGUgY3VycmVudCBpbm5l ciB0dXBsZSBjb250YWlucworICAgICAgICBhIHByZWZpeDsgaWYgc28sCisgICAgICAgIDxzdHJ1 Y3RmaWVsZD5wcmVmaXhEYXR1bTwvc3RydWN0ZmllbGQ+IGlzIGl0cyB2YWx1ZS4KKyAgICAgICAg PHN0cnVjdGZpZWxkPm5Ob2Rlczwvc3RydWN0ZmllbGQ+IGlzIHRoZSBudW1iZXIgb2YgY2hpbGQg bm9kZXMgY29udGFpbmVkIGluIHRoZQorICAgICAgICBpbm5lciB0dXBsZSwgYW5kCisgICAgICAg IDxzdHJ1Y3RmaWVsZD5ub2RlTGFiZWxzPC9zdHJ1Y3RmaWVsZD4gaXMgYW4gYXJyYXkgb2YgdGhl aXIgbGFiZWwgdmFsdWVzLCBvcgorICAgICAgICBOVUxMIGlmIHRoZXJlIGFyZSBubyBsYWJlbHMu CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8ZnVuY3Rpb24+ Y2hvb3NlPC9mdW5jdGlvbj4gZnVuY3Rpb24gY2FuIGRldGVybWluZSBlaXRoZXIgdGhhdAorICAg ICAgICB0aGUgbmV3IHZhbHVlIG1hdGNoZXMgb25lIG9mIHRoZSBleGlzdGluZyBjaGlsZCBub2Rl cywgb3IgdGhhdCBhIG5ldworICAgICAgICBjaGlsZCBub2RlIG11c3QgYmUgYWRkZWQsIG9yIHRo YXQgdGhlIG5ldyB2YWx1ZSBpcyBpbmNvbnNpc3RlbnQgd2l0aAorICAgICAgICB0aGUgdHVwbGUg cHJlZml4IGFuZCBzbyB0aGUgaW5uZXIgdHVwbGUgbXVzdCBiZSBzcGxpdCB0byBjcmVhdGUgYQor ICAgICAgICBsZXNzIHJlc3RyaWN0aXZlIHByZWZpeC4KKyAgICAgICA8L3BhcmE+CisKKyAgICAg ICA8cGFyYT4KKyAgICAgICAgSWYgdGhlIG5ldyB2YWx1ZSBtYXRjaGVzIG9uZSBvZiB0aGUgZXhp c3RpbmcgY2hpbGQgbm9kZXMsCisgICAgICAgIHNldCA8c3RydWN0ZmllbGQ+cmVzdWx0VHlwZTwv c3RydWN0ZmllbGQ+IHRvIDxsaXRlcmFsPnNwZ01hdGNoTm9kZTwvbGl0ZXJhbD4uCisgICAgICAg IFNldCA8c3RydWN0ZmllbGQ+bm9kZU48L3N0cnVjdGZpZWxkPiB0byB0aGUgaW5kZXggKGZyb20g emVybykgb2YgdGhhdCBub2RlIGluCisgICAgICAgIHRoZSBub2RlIGFycmF5LgorICAgICAgICBT ZXQgPHN0cnVjdGZpZWxkPmxldmVsQWRkPC9zdHJ1Y3RmaWVsZD4gdG8gdGhlIGluY3JlbWVudCBp bgorICAgICAgICA8c3RydWN0ZmllbGQ+bGV2ZWw8L3N0cnVjdGZpZWxkPiBjYXVzZWQgYnkgZGVz Y2VuZGluZyB0aHJvdWdoIHRoYXQgbm9kZSwKKyAgICAgICAgb3IgbGVhdmUgaXQgYXMgemVybyBp ZiB0aGUgb3BlcmF0b3IgY2xhc3MgZG9lcyBub3QgdXNlIGxldmVscy4KKyAgICAgICAgU2V0IDxz dHJ1Y3RmaWVsZD5yZXN0RGF0dW08L3N0cnVjdGZpZWxkPiB0byBlcXVhbCA8c3RydWN0ZmllbGQ+ bGVhZkRhdHVtPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICAgaWYgdGhlIG9wZXJhdG9yIGNsYXNzIGRv ZXMgbm90IG1vZGlmeSBkYXR1bXMgZnJvbSBvbmUgbGV2ZWwgdG8gdGhlCisgICAgICAgIG5leHQs IG9yIG90aGVyd2lzZSBzZXQgaXQgdG8gdGhlIG1vZGlmaWVkIHZhbHVlIHRvIGJlIHVzZWQgYXMK KyAgICAgICAgPHN0cnVjdGZpZWxkPmxlYWZEYXR1bTwvc3RydWN0ZmllbGQ+IGF0IHRoZSBuZXh0 IGxldmVsLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBJZiBhIG5l dyBjaGlsZCBub2RlIG11c3QgYmUgYWRkZWQsCisgICAgICAgIHNldCA8c3RydWN0ZmllbGQ+cmVz dWx0VHlwZTwvc3RydWN0ZmllbGQ+IHRvIDxsaXRlcmFsPnNwZ0FkZE5vZGU8L2xpdGVyYWw+Lgor ICAgICAgICBTZXQgPHN0cnVjdGZpZWxkPm5vZGVMYWJlbDwvc3RydWN0ZmllbGQ+IHRvIHRoZSBs YWJlbCB0byBiZSB1c2VkIGZvciB0aGUgbmV3CisgICAgICAgIG5vZGUsIGFuZCBzZXQgPHN0cnVj dGZpZWxkPm5vZGVOPC9zdHJ1Y3RmaWVsZD4gdG8gdGhlIGluZGV4IChmcm9tIHplcm8pIGF0IHdo aWNoCisgICAgICAgIHRvIGluc2VydCB0aGUgbm9kZSBpbiB0aGUgbm9kZSBhcnJheS4KKyAgICAg ICAgQWZ0ZXIgdGhlIG5vZGUgaGFzIGJlZW4gYWRkZWQsIHRoZSA8ZnVuY3Rpb24+Y2hvb3NlPC9m dW5jdGlvbj4KKyAgICAgICAgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYWdhaW4gd2l0aCB0aGUg bW9kaWZpZWQgaW5uZXIgdHVwbGU7CisgICAgICAgIHRoYXQgY2FsbCBzaG91bGQgcmVzdWx0IGlu IGFuIDxsaXRlcmFsPnNwZ01hdGNoTm9kZTwvbGl0ZXJhbD4gcmVzdWx0LgorICAgICAgIDwvcGFy YT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBJZiB0aGUgbmV3IHZhbHVlIGlzIGluY29uc2lz dGVudCB3aXRoIHRoZSB0dXBsZSBwcmVmaXgsCisgICAgICAgIHNldCA8c3RydWN0ZmllbGQ+cmVz dWx0VHlwZTwvc3RydWN0ZmllbGQ+IHRvIDxsaXRlcmFsPnNwZ1NwbGl0VHVwbGU8L2xpdGVyYWw+ LgorICAgICAgICBUaGlzIGFjdGlvbiBtb3ZlcyBhbGwgdGhlIGV4aXN0aW5nIG5vZGVzIGludG8g YSBuZXcgbG93ZXItbGV2ZWwKKyAgICAgICAgaW5uZXIgdHVwbGUsIGFuZCByZXBsYWNlcyB0aGUg ZXhpc3RpbmcgaW5uZXIgdHVwbGUgd2l0aCBhIHR1cGxlCisgICAgICAgIGhhdmluZyBhIHNpbmds ZSBkb3dubGluayBwb2ludGluZyB0byB0aGUgbmV3IGxvd2VyLWxldmVsIGlubmVyIHR1cGxlLgor ICAgICAgICBTZXQgPHN0cnVjdGZpZWxkPnByZWZpeEhhc1ByZWZpeDwvc3RydWN0ZmllbGQ+IHRv IGluZGljYXRlIHdoZXRoZXIgdGhlIG5ldworICAgICAgICB1cHBlciB0dXBsZSBzaG91bGQgaGF2 ZSBhIHByZWZpeCwgYW5kIGlmIHNvIHNldAorICAgICAgICA8c3RydWN0ZmllbGQ+cHJlZml4UHJl Zml4RGF0dW08L3N0cnVjdGZpZWxkPiB0byB0aGUgcHJlZml4IHZhbHVlLiAgVGhpcyBuZXcKKyAg ICAgICAgcHJlZml4IHZhbHVlIG11c3QgYmUgc3VmZmljaWVudGx5IGxlc3MgcmVzdHJpY3RpdmUg dGhhbiB0aGUgb3JpZ2luYWwKKyAgICAgICAgdG8gYWNjZXB0IHRoZSBuZXcgdmFsdWUgdG8gYmUg aW5kZXhlZC4KKyAgICAgICAgU2V0IDxzdHJ1Y3RmaWVsZD5wcmVmaXhOTm9kZXM8L3N0cnVjdGZp ZWxkPiB0byB0aGUgbnVtYmVyIG9mIG5vZGVzIG5lZWRlZCBpbiB0aGUKKyAgICAgICAgbmV3IHR1 cGxlLCBhbmQgc2V0IDxzdHJ1Y3RmaWVsZD5wcmVmaXhOb2RlTGFiZWxzPC9zdHJ1Y3RmaWVsZD4g dG8gYSBwYWxsb2MnZCBhcnJheQorICAgICAgICBob2xkaW5nIHRoZWlyIGxhYmVscywgb3IgdG8g TlVMTCBpZiBub2RlIGxhYmVscyBhcmUgbm90IHJlcXVpcmVkLgorICAgICAgICBOb3RlIHRoYXQg dGhlIHRvdGFsIHNpemUgb2YgdGhlIG5ldyB1cHBlciB0dXBsZSBtdXN0IGJlIG5vIG1vcmUKKyAg ICAgICAgdGhhbiB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgdHVwbGUgaXQgaXMgcmVwbGFjaW5nOyB0 aGlzIGNvbnN0cmFpbnMKKyAgICAgICAgdGhlIGxlbmd0aHMgb2YgdGhlIG5ldyBwcmVmaXggYW5k IG5ldyBsYWJlbHMuCisgICAgICAgIFNldCA8c3RydWN0ZmllbGQ+Y2hpbGROb2RlTjwvc3RydWN0 ZmllbGQ+IHRvIHRoZSBpbmRleCAoZnJvbSB6ZXJvKSBvZiB0aGUgbm9kZQorICAgICAgICB0aGF0 IHdpbGwgZG93bmxpbmsgdG8gdGhlIG5ldyBsb3dlci1sZXZlbCBpbm5lciB0dXBsZS4KKyAgICAg ICAgU2V0IDxzdHJ1Y3RmaWVsZD5wb3N0Zml4SGFzUHJlZml4PC9zdHJ1Y3RmaWVsZD4gdG8gaW5k aWNhdGUgd2hldGhlciB0aGUgbmV3CisgICAgICAgIGxvd2VyLWxldmVsIGlubmVyIHR1cGxlIHNo b3VsZCBoYXZlIGEgcHJlZml4LCBhbmQgaWYgc28gc2V0CisgICAgICAgIDxzdHJ1Y3RmaWVsZD5w b3N0Zml4UHJlZml4RGF0dW08L3N0cnVjdGZpZWxkPiB0byB0aGUgcHJlZml4IHZhbHVlLiAgVGhl CisgICAgICAgIGNvbWJpbmF0aW9uIG9mIHRoZXNlIHR3byBwcmVmaXhlcyBhbmQgdGhlIGRvd25s aW5rIG5vZGUncyBsYWJlbAorICAgICAgICAoaWYgYW55KSBtdXN0IGhhdmUgdGhlIHNhbWUgbWVh bmluZyBhcyB0aGUgb3JpZ2luYWwgcHJlZml4LCBiZWNhdXNlCisgICAgICAgIHRoZXJlIGlzIG5v IG9wcG9ydHVuaXR5IHRvIGFsdGVyIHRoZSBub2RlIGxhYmVscyB0aGF0IGFyZSBtb3ZlZCB0bwor ICAgICAgICB0aGUgbmV3IGxvd2VyLWxldmVsIHR1cGxlLCBub3IgdG8gY2hhbmdlIGFueSBjaGls ZCBpbmRleCBlbnRyaWVzLgorICAgICAgICBBZnRlciB0aGUgbm9kZSBoYXMgYmVlbiBzcGxpdCwg dGhlIDxmdW5jdGlvbj5jaG9vc2U8L2Z1bmN0aW9uPgorICAgICAgICBmdW5jdGlvbiB3aWxsIGJl IGNhbGxlZCBhZ2FpbiB3aXRoIHRoZSByZXBsYWNlbWVudCBpbm5lciB0dXBsZS4KKyAgICAgICAg VGhhdCBjYWxsIG1heSByZXR1cm4gYW4gPGxpdGVyYWw+c3BnQWRkTm9kZTwvbGl0ZXJhbD4gcmVz dWx0LCBpZiBubyBzdWl0YWJsZQorICAgICAgICBub2RlIHdhcyBjcmVhdGVkIGJ5IHRoZSA8bGl0 ZXJhbD5zcGdTcGxpdFR1cGxlPC9saXRlcmFsPiBhY3Rpb24uICBFdmVudHVhbGx5CisgICAgICAg IDxmdW5jdGlvbj5jaG9vc2U8L2Z1bmN0aW9uPiBtdXN0IHJldHVybiA8bGl0ZXJhbD5zcGdNYXRj aE5vZGU8L2xpdGVyYWw+IHRvCisgICAgICAgIGFsbG93IHRoZSBpbnNlcnRpb24gdG8gZGVzY2Vu ZCB0byB0aGUgbmV4dCBsZXZlbC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgor ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+ PGZ1bmN0aW9uPnBpY2tzcGxpdDwvZnVuY3Rpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgor ICAgICAgIDxwYXJhPgorICAgICAgICBEZWNpZGVzIGhvdyB0byBjcmVhdGUgYSBuZXcgaW5uZXIg dHVwbGUgb3ZlciBhIHNldCBvZiBsZWFmIHR1cGxlcy4KKyAgICAgICA8L3BhcmE+CisKKyAgICAg ICA8cGFyYT4KKyAgICAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IGRlY2xhcmF0aW9u IG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZSB0aGlzOgorPHByb2dyYW1saXN0aW5nPgor Q1JFQVRFIEZVTkNUSU9OIG15X3BpY2tzcGxpdChpbnRlcm5hbCwgaW50ZXJuYWwpIFJFVFVSTlMg dm9pZCAuLi4KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgVGhlIGZpcnN0IGFyZ3VtZW50IGlz IGEgcG9pbnRlciB0byBhIDxzdHJ1Y3RuYW1lPnNwZ1BpY2tTcGxpdEluPC9zdHJ1Y3RuYW1lPgor ICAgICAgIEMgc3RydWN0LCBjb250YWluaW5nIGlucHV0IGRhdGEgZm9yIHRoZSBmdW5jdGlvbi4K KyAgICAgICBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIGEgcG9pbnRlciB0byBhIDxzdHJ1Y3RuYW1l PnNwZ1BpY2tTcGxpdE91dDwvc3RydWN0bmFtZT4KKyAgICAgICBDIHN0cnVjdCwgd2hpY2ggdGhl IGZ1bmN0aW9uIG11c3QgZmlsbCB3aXRoIHJlc3VsdCBkYXRhLgorPHByb2dyYW1saXN0aW5nPgor dHlwZWRlZiBzdHJ1Y3Qgc3BnUGlja1NwbGl0SW4KK3sKKyAgICBpbnQgICAgICAgICBuVHVwbGVz OyAgICAgICAgLyogbnVtYmVyIG9mIGxlYWYgdHVwbGVzICovCisgICAgRGF0dW0gICAgICAqZGF0 dW1zOyAgICAgICAgIC8qIHRoZWlyIGRhdHVtcyAoYXJyYXkgb2YgbGVuZ3RoIG5UdXBsZXMpICov CisgICAgaW50ICAgICAgICAgbGV2ZWw7ICAgICAgICAgIC8qIGN1cnJlbnQgbGV2ZWwgKGNvdW50 aW5nIGZyb20gemVybykgKi8KK30gc3BnUGlja1NwbGl0SW47CisKK3R5cGVkZWYgc3RydWN0IHNw Z1BpY2tTcGxpdE91dAoreworICAgIGJvb2wgICAgICAgIGhhc1ByZWZpeDsgICAgICAvKiBuZXcg aW5uZXIgdHVwbGUgc2hvdWxkIGhhdmUgYSBwcmVmaXg/ICovCisgICAgRGF0dW0gICAgICAgcHJl Zml4RGF0dW07ICAgIC8qIGlmIHNvLCBpdHMgdmFsdWUgKi8KKworICAgIGludCAgICAgICAgIG5O b2RlczsgICAgICAgICAvKiBudW1iZXIgb2Ygbm9kZXMgZm9yIG5ldyBpbm5lciB0dXBsZSAqLwor ICAgIERhdHVtICAgICAgKm5vZGVMYWJlbHM7ICAgICAvKiB0aGVpciBsYWJlbHMgKG9yIE5VTEwg Zm9yIG5vIGxhYmVscykgKi8KKworICAgIGludCAgICAgICAgKm1hcFR1cGxlc1RvTm9kZXM7ICAg Lyogbm9kZSBpbmRleCBmb3IgZWFjaCBsZWFmIHR1cGxlICovCisgICAgRGF0dW0gICAgICAqbGVh ZlR1cGxlRGF0dW1zOyAgICAvKiBkYXR1bSB0byBzdG9yZSBpbiBlYWNoIG5ldyBsZWFmIHR1cGxl ICovCit9IHNwZ1BpY2tTcGxpdE91dDsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgICAgICAgPHN0 cnVjdGZpZWxkPm5UdXBsZXM8L3N0cnVjdGZpZWxkPiBpcyB0aGUgbnVtYmVyIG9mIGxlYWYgdHVw bGVzIHByb3ZpZGVkLgorICAgICAgICA8c3RydWN0ZmllbGQ+ZGF0dW1zPC9zdHJ1Y3RmaWVsZD4g aXMgYW4gYXJyYXkgb2YgdGhlaXIgZGF0dW0gdmFsdWVzIG9mCisgICAgICAgIDxzdHJ1Y3RuYW1l PnNwZ0NvbmZpZ091dDwvc3RydWN0bmFtZT4uPHN0cnVjdGZpZWxkPmxlYWZUeXBlPC9zdHJ1Y3Rm aWVsZD4KKyAgICAgICAgdHlwZS4KKyAgICAgICAgPHN0cnVjdGZpZWxkPmxldmVsPC9zdHJ1Y3Rm aWVsZD4gaXMgdGhlIGN1cnJlbnQgbGV2ZWwgdGhhdCBhbGwgdGhlIGxlYWYgdHVwbGVzCisgICAg ICAgIHNoYXJlLCB3aGljaCB3aWxsIGJlY29tZSB0aGUgbGV2ZWwgb2YgdGhlIG5ldyBpbm5lciB0 dXBsZS4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2V0IDxzdHJ1 Y3RmaWVsZD5oYXNQcmVmaXg8L3N0cnVjdGZpZWxkPiB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBu ZXcgaW5uZXIKKyAgICAgICAgdHVwbGUgc2hvdWxkIGhhdmUgYSBwcmVmaXgsIGFuZCBpZiBzbyBz ZXQKKyAgICAgICAgPHN0cnVjdGZpZWxkPnByZWZpeERhdHVtPC9zdHJ1Y3RmaWVsZD4gdG8gdGhl IHByZWZpeCB2YWx1ZS4KKyAgICAgICAgU2V0IDxzdHJ1Y3RmaWVsZD5uTm9kZXM8L3N0cnVjdGZp ZWxkPiB0byBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIG5vZGVzIHRoYXQKKyAgICAgICAgdGhlIG5l dyBpbm5lciB0dXBsZSB3aWxsIGNvbnRhaW4sIGFuZAorICAgICAgICBzZXQgPHN0cnVjdGZpZWxk Pm5vZGVMYWJlbHM8L3N0cnVjdGZpZWxkPiB0byBhbiBhcnJheSBvZiB0aGVpciBsYWJlbCB2YWx1 ZXMsCisgICAgICAgIG9yIHRvIE5VTEwgaWYgbm9kZSBsYWJlbHMgYXJlIG5vdCByZXF1aXJlZC4K KyAgICAgICAgU2V0IDxzdHJ1Y3RmaWVsZD5tYXBUdXBsZXNUb05vZGVzPC9zdHJ1Y3RmaWVsZD4g dG8gYW4gYXJyYXkgdGhhdCBnaXZlcyB0aGUgaW5kZXgKKyAgICAgICAgKGZyb20gemVybykgb2Yg dGhlIG5vZGUgdGhhdCBlYWNoIGxlYWYgdHVwbGUgc2hvdWxkIGJlIGFzc2lnbmVkIHRvLgorICAg ICAgICBTZXQgPHN0cnVjdGZpZWxkPmxlYWZUdXBsZURhdHVtczwvc3RydWN0ZmllbGQ+IHRvIGFu IGFycmF5IG9mIHRoZSB2YWx1ZXMgdG8KKyAgICAgICAgYmUgc3RvcmVkIGluIHRoZSBuZXcgbGVh ZiB0dXBsZXMgKHRoZXNlIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlCisgICAgICAgIGlucHV0IDxz dHJ1Y3RmaWVsZD5kYXR1bXM8L3N0cnVjdGZpZWxkPiBpZiB0aGUgb3BlcmF0b3IgY2xhc3MgZG9l cyBub3QgbW9kaWZ5CisgICAgICAgIGRhdHVtcyBmcm9tIG9uZSBsZXZlbCB0byB0aGUgbmV4dCku CisgICAgICAgIE5vdGUgdGhhdCB0aGUgPGZ1bmN0aW9uPnBpY2tzcGxpdDwvZnVuY3Rpb24+IGZ1 bmN0aW9uIGlzCisgICAgICAgIHJlc3BvbnNpYmxlIGZvciBwYWxsb2MnaW5nIHRoZQorICAgICAg ICA8c3RydWN0ZmllbGQ+bm9kZUxhYmVsczwvc3RydWN0ZmllbGQ+LCA8c3RydWN0ZmllbGQ+bWFw VHVwbGVzVG9Ob2Rlczwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgICA8c3RydWN0ZmllbGQ+bGVh ZlR1cGxlRGF0dW1zPC9zdHJ1Y3RmaWVsZD4gYXJyYXlzLgorICAgICAgIDwvcGFyYT4KKworICAg ICAgIDxwYXJhPgorICAgICAgICBJZiBtb3JlIHRoYW4gb25lIGxlYWYgdHVwbGUgaXMgc3VwcGxp ZWQsIGl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlCisgICAgICAgIDxmdW5jdGlvbj5waWNrc3BsaXQ8 L2Z1bmN0aW9uPiBmdW5jdGlvbiB3aWxsIGNsYXNzaWZ5IHRoZW0gaW50byBtb3JlIHRoYW4KKyAg ICAgICAgb25lIG5vZGU7IG90aGVyd2lzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gc3BsaXQgdGhl IGxlYWYgdHVwbGVzCisgICAgICAgIGFjcm9zcyBtdWx0aXBsZSBwYWdlcywgd2hpY2ggaXMgdGhl IHVsdGltYXRlIHB1cnBvc2Ugb2YgdGhpcworICAgICAgICBvcGVyYXRpb24uICBUaGVyZWZvcmUs IGlmIHRoZSA8ZnVuY3Rpb24+cGlja3NwbGl0PC9mdW5jdGlvbj4gZnVuY3Rpb24KKyAgICAgICAg ZW5kcyB1cCBwbGFjaW5nIGFsbCB0aGUgbGVhZiB0dXBsZXMgaW4gdGhlIHNhbWUgbm9kZSwgdGhl IGNvcmUKKyAgICAgICAgU1AtR2lTVCBjb2RlIHdpbGwgb3ZlcnJpZGUgdGhhdCBkZWNpc2lvbiBh bmQgZ2VuZXJhdGUgYW4gaW5uZXIKKyAgICAgICAgdHVwbGUgaW4gd2hpY2ggdGhlIGxlYWYgdHVw bGVzIGFyZSBhc3NpZ25lZCBhdCByYW5kb20gdG8gc2V2ZXJhbAorICAgICAgICBpZGVudGljYWxs eS1sYWJlbGVkIG5vZGVzLiAgU3VjaCBhIHR1cGxlIGlzIG1hcmtlZAorICAgICAgICA8bGl0ZXJh bD5hbGxUaGVTYW1lPC9saXRlcmFsPiB0byBzaWduaWZ5IHRoYXQgdGhpcyBoYXMgaGFwcGVuZWQu ICBUaGUKKyAgICAgICAgPGZ1bmN0aW9uPmNob29zZTwvZnVuY3Rpb24+IGFuZCA8ZnVuY3Rpb24+ aW5uZXJfY29uc2lzdGVudDwvZnVuY3Rpb24+IGZ1bmN0aW9ucworICAgICAgICBtdXN0IHRha2Ug c3VpdGFibGUgY2FyZSB3aXRoIHN1Y2ggaW5uZXIgdHVwbGVzLgorICAgICAgICBTZWUgPHhyZWYg bGlua2VuZD0ic3BnaXN0LWFsbC10aGUtc2FtZSIvPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAg ICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGZ1bmN0aW9uPnBpY2tzcGxp dDwvZnVuY3Rpb24+IGNhbiBiZSBhcHBsaWVkIHRvIGEgc2luZ2xlIGxlYWYgdHVwbGUgb25seQor ICAgICAgICBpbiB0aGUgY2FzZSB0aGF0IHRoZSA8ZnVuY3Rpb24+Y29uZmlnPC9mdW5jdGlvbj4g ZnVuY3Rpb24gc2V0CisgICAgICAgIDxzdHJ1Y3RmaWVsZD5sb25nVmFsdWVzT0s8L3N0cnVjdGZp ZWxkPiB0byB0cnVlIGFuZCBhIGxhcmdlci10aGFuLWEtcGFnZSBpbnB1dAorICAgICAgICB2YWx1 ZSBoYXMgYmVlbiBzdXBwbGllZC4gIEluIHRoaXMgY2FzZSB0aGUgcG9pbnQgb2YgdGhlIG9wZXJh dGlvbiBpcworICAgICAgICB0byBzdHJpcCBvZmYgYSBwcmVmaXggYW5kIHByb2R1Y2UgYSBuZXcs IHNob3J0ZXIgbGVhZiBkYXR1bSB2YWx1ZS4KKyAgICAgICAgVGhlIGNhbGwgd2lsbCBiZSByZXBl YXRlZCB1bnRpbCBhIGxlYWYgZGF0dW0gc2hvcnQgZW5vdWdoIHRvIGZpdCBvbgorICAgICAgICBh IHBhZ2UgaGFzIGJlZW4gcHJvZHVjZWQuICBTZWUgPHhyZWYgbGlua2VuZD0ic3BnaXN0LWxpbWl0 cyIvPiBmb3IKKyAgICAgICAgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgICA8L3BhcmE+CisgICAg ICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPmlubmVyX2NvbnNpc3RlbnQ8L2Z1bmN0aW9uPjwvdGVy bT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgUmV0dXJucyBzZXQg b2Ygbm9kZXMgKGJyYW5jaGVzKSB0byBmb2xsb3cgZHVyaW5nIHRyZWUgc2VhcmNoLgorICAgICAg IDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3Jv bnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBGVU5DVElPTiBteV9pbm5lcl9jb25zaXN0ZW50KGludGVy bmFsLCBpbnRlcm5hbCkgUkVUVVJOUyB2b2lkIC4uLgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAg ICBUaGUgZmlyc3QgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgPHN0cnVjdG5hbWU+c3BnSW5u ZXJDb25zaXN0ZW50SW48L3N0cnVjdG5hbWU+CisgICAgICAgQyBzdHJ1Y3QsIGNvbnRhaW5pbmcg aW5wdXQgZGF0YSBmb3IgdGhlIGZ1bmN0aW9uLgorICAgICAgIFRoZSBzZWNvbmQgYXJndW1lbnQg aXMgYSBwb2ludGVyIHRvIGEgPHN0cnVjdG5hbWU+c3BnSW5uZXJDb25zaXN0ZW50T3V0PC9zdHJ1 Y3RuYW1lPgorICAgICAgIEMgc3RydWN0LCB3aGljaCB0aGUgZnVuY3Rpb24gbXVzdCBmaWxsIHdp dGggcmVzdWx0IGRhdGEuCisKKzxwcm9ncmFtbGlzdGluZz4KK3R5cGVkZWYgc3RydWN0IHNwZ0lu bmVyQ29uc2lzdGVudEluCit7CisgICAgU2NhbktleSAgICAgc2NhbmtleXM7ICAgICAgIC8qIGFy cmF5IG9mIG9wZXJhdG9ycyBhbmQgY29tcGFyaXNvbiB2YWx1ZXMgKi8KKyAgICBTY2FuS2V5ICAg ICBvcmRlcmJ5czsgICAgICAgLyogYXJyYXkgb2Ygb3JkZXJpbmcgb3BlcmF0b3JzIGFuZCBjb21w YXJpc29uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHZhbHVlcyAqLworICAg IGludCAgICAgICAgIG5rZXlzOyAgICAgICAgICAvKiBsZW5ndGggb2Ygc2NhbmtleXMgYXJyYXkg Ki8KKyAgICBpbnQgICAgICAgICBub3JkZXJieXM7ICAgICAgLyogbGVuZ3RoIG9mIG9yZGVyYnlz IGFycmF5ICovCisKKyAgICBEYXR1bSAgICAgICByZWNvbnN0cnVjdGVkVmFsdWU7ICAgICAvKiB2 YWx1ZSByZWNvbnN0cnVjdGVkIGF0IHBhcmVudCAqLworICAgIHZvaWQgICAgICAgKnRyYXZlcnNh bFZhbHVlOyAvKiBvcGNsYXNzLXNwZWNpZmljIHRyYXZlcnNlIHZhbHVlICovCisgICAgTWVtb3J5 Q29udGV4dCB0cmF2ZXJzYWxNZW1vcnlDb250ZXh0OyAgIC8qIHB1dCBuZXcgdHJhdmVyc2UgdmFs dWVzIGhlcmUgKi8KKyAgICBpbnQgICAgICAgICBsZXZlbDsgICAgICAgICAgLyogY3VycmVudCBs ZXZlbCAoY291bnRpbmcgZnJvbSB6ZXJvKSAqLworICAgIGJvb2wgICAgICAgIHJldHVybkRhdGE7 ICAgICAvKiBvcmlnaW5hbCBkYXRhIG11c3QgYmUgcmV0dXJuZWQ/ICovCisKKyAgICAvKiBEYXRh IGZyb20gY3VycmVudCBpbm5lciB0dXBsZSAqLworICAgIGJvb2wgICAgICAgIGFsbFRoZVNhbWU7 ICAgICAvKiB0dXBsZSBpcyBtYXJrZWQgYWxsLXRoZS1zYW1lPyAqLworICAgIGJvb2wgICAgICAg IGhhc1ByZWZpeDsgICAgICAvKiB0dXBsZSBoYXMgYSBwcmVmaXg/ICovCisgICAgRGF0dW0gICAg ICAgcHJlZml4RGF0dW07ICAgIC8qIGlmIHNvLCB0aGUgcHJlZml4IHZhbHVlICovCisgICAgaW50 ICAgICAgICAgbk5vZGVzOyAgICAgICAgIC8qIG51bWJlciBvZiBub2RlcyBpbiB0aGUgaW5uZXIg dHVwbGUgKi8KKyAgICBEYXR1bSAgICAgICpub2RlTGFiZWxzOyAgICAgLyogbm9kZSBsYWJlbCB2 YWx1ZXMgKE5VTEwgaWYgbm9uZSkgKi8KK30gc3BnSW5uZXJDb25zaXN0ZW50SW47CisKK3R5cGVk ZWYgc3RydWN0IHNwZ0lubmVyQ29uc2lzdGVudE91dAoreworICAgIGludCAgICAgICAgIG5Ob2Rl czsgICAgICAgICAvKiBudW1iZXIgb2YgY2hpbGQgbm9kZXMgdG8gYmUgdmlzaXRlZCAqLworICAg IGludCAgICAgICAgKm5vZGVOdW1iZXJzOyAgICAvKiB0aGVpciBpbmRleGVzIGluIHRoZSBub2Rl IGFycmF5ICovCisgICAgaW50ICAgICAgICAqbGV2ZWxBZGRzOyAgICAgIC8qIGluY3JlbWVudCBs ZXZlbCBieSB0aGlzIG11Y2ggZm9yIGVhY2ggKi8KKyAgICBEYXR1bSAgICAgICpyZWNvbnN0cnVj dGVkVmFsdWVzOyAgICAvKiBhc3NvY2lhdGVkIHJlY29uc3RydWN0ZWQgdmFsdWVzICovCisgICAg dm9pZCAgICAgICoqdHJhdmVyc2FsVmFsdWVzOyAgICAgICAgLyogb3BjbGFzcy1zcGVjaWZpYyB0 cmF2ZXJzZSB2YWx1ZXMgKi8KKyAgICBkb3VibGUgICAgKipkaXN0YW5jZXM7ICAgICAgICAgICAg ICAvKiBhc3NvY2lhdGVkIGRpc3RhbmNlcyAqLworfSBzcGdJbm5lckNvbnNpc3RlbnRPdXQ7Cis8 L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAgIFRoZSBhcnJheSA8c3RydWN0ZmllbGQ+c2Nhbmtl eXM8L3N0cnVjdGZpZWxkPiwgb2YgbGVuZ3RoIDxzdHJ1Y3RmaWVsZD5ua2V5czwvc3RydWN0Zmll bGQ+LAorICAgICAgICBkZXNjcmliZXMgdGhlIGluZGV4IHNlYXJjaCBjb25kaXRpb24ocykuICBU aGVzZSBjb25kaXRpb25zIGFyZQorICAgICAgICBjb21iaW5lZCB3aXRoIEFORCAmbWRhc2g7IG9u bHkgaW5kZXggZW50cmllcyB0aGF0IHNhdGlzZnkgYWxsIG9mCisgICAgICAgIHRoZW0gYXJlIGlu dGVyZXN0aW5nLiAgKE5vdGUgdGhhdCA8c3RydWN0ZmllbGQ+bmtleXM8L3N0cnVjdGZpZWxkPiA9 IDAgaW1wbGllcworICAgICAgICB0aGF0IGFsbCBpbmRleCBlbnRyaWVzIHNhdGlzZnkgdGhlIHF1 ZXJ5LikgIFVzdWFsbHkgdGhlIGNvbnNpc3RlbnQKKyAgICAgICAgZnVuY3Rpb24gb25seSBjYXJl cyBhYm91dCB0aGUgPHN0cnVjdGZpZWxkPnNrX3N0cmF0ZWd5PC9zdHJ1Y3RmaWVsZD4gYW5kCisg ICAgICAgIDxzdHJ1Y3RmaWVsZD5za19hcmd1bWVudDwvc3RydWN0ZmllbGQ+IGZpZWxkcyBvZiBl YWNoIGFycmF5IGVudHJ5LCB3aGljaAorICAgICAgICByZXNwZWN0aXZlbHkgZ2l2ZSB0aGUgaW5k ZXhhYmxlIG9wZXJhdG9yIGFuZCBjb21wYXJpc29uIHZhbHVlLgorICAgICAgICBJbiBwYXJ0aWN1 bGFyIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2hlY2sgPHN0cnVjdGZpZWxkPnNrX2ZsYWdzPC9z dHJ1Y3RmaWVsZD4gdG8KKyAgICAgICAgc2VlIGlmIHRoZSBjb21wYXJpc29uIHZhbHVlIGlzIE5V TEwsIGJlY2F1c2UgdGhlIFNQLUdpU1QgY29yZSBjb2RlCisgICAgICAgIHdpbGwgZmlsdGVyIG91 dCBzdWNoIGNvbmRpdGlvbnMuCisgICAgICAgIFRoZSBhcnJheSA8c3RydWN0ZmllbGQ+b3JkZXJi eXM8L3N0cnVjdGZpZWxkPiwgb2YgbGVuZ3RoIDxzdHJ1Y3RmaWVsZD5ub3JkZXJieXM8L3N0cnVj dGZpZWxkPiwKKyAgICAgICAgZGVzY3JpYmVzIG9yZGVyaW5nIG9wZXJhdG9ycyAoaWYgYW55KSBp biB0aGUgc2FtZSBtYW5uZXIuCisgICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWNvbnN0cnVjdGVkVmFs dWU8L3N0cnVjdGZpZWxkPiBpcyB0aGUgdmFsdWUgcmVjb25zdHJ1Y3RlZCBmb3IgdGhlCisgICAg ICAgIHBhcmVudCB0dXBsZTsgaXQgaXMgPGxpdGVyYWw+KERhdHVtKSAwPC9saXRlcmFsPiBhdCB0 aGUgcm9vdCBsZXZlbCBvciBpZiB0aGUKKyAgICAgICAgPGZ1bmN0aW9uPmlubmVyX2NvbnNpc3Rl bnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbiBkaWQgbm90IHByb3ZpZGUgYSB2YWx1ZSBhdCB0aGUKKyAg ICAgICAgcGFyZW50IGxldmVsLgorICAgICAgICA8c3RydWN0ZmllbGQ+dHJhdmVyc2FsVmFsdWU8 L3N0cnVjdGZpZWxkPiBpcyBhIHBvaW50ZXIgdG8gYW55IHRyYXZlcnNlIGRhdGEKKyAgICAgICAg cGFzc2VkIGRvd24gZnJvbSB0aGUgcHJldmlvdXMgY2FsbCBvZiA8ZnVuY3Rpb24+aW5uZXJfY29u c2lzdGVudDwvZnVuY3Rpb24+CisgICAgICAgIG9uIHRoZSBwYXJlbnQgaW5kZXggdHVwbGUsIG9y IE5VTEwgYXQgdGhlIHJvb3QgbGV2ZWwuCisgICAgICAgIDxzdHJ1Y3RmaWVsZD50cmF2ZXJzYWxN ZW1vcnlDb250ZXh0PC9zdHJ1Y3RmaWVsZD4gaXMgdGhlIG1lbW9yeSBjb250ZXh0IGluIHdoaWNo CisgICAgICAgIHRvIHN0b3JlIG91dHB1dCB0cmF2ZXJzZSB2YWx1ZXMgKHNlZSBiZWxvdykuCisg ICAgICAgIDxzdHJ1Y3RmaWVsZD5sZXZlbDwvc3RydWN0ZmllbGQ+IGlzIHRoZSBjdXJyZW50IGlu bmVyIHR1cGxlJ3MgbGV2ZWwsIHN0YXJ0aW5nIGF0CisgICAgICAgIHplcm8gZm9yIHRoZSByb290 IGxldmVsLgorICAgICAgICA8c3RydWN0ZmllbGQ+cmV0dXJuRGF0YTwvc3RydWN0ZmllbGQ+IGlz IDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IGlmIHJlY29uc3RydWN0ZWQgZGF0YSBpcworICAgICAg ICByZXF1aXJlZCBmb3IgdGhpcyBxdWVyeTsgdGhpcyB3aWxsIG9ubHkgYmUgc28gaWYgdGhlCisg ICAgICAgIDxmdW5jdGlvbj5jb25maWc8L2Z1bmN0aW9uPiBmdW5jdGlvbiBhc3NlcnRlZCA8c3Ry dWN0ZmllbGQ+Y2FuUmV0dXJuRGF0YTwvc3RydWN0ZmllbGQ+LgorICAgICAgICA8c3RydWN0Zmll bGQ+YWxsVGhlU2FtZTwvc3RydWN0ZmllbGQ+IGlzIHRydWUgaWYgdGhlIGN1cnJlbnQgaW5uZXIg dHVwbGUgaXMKKyAgICAgICAgbWFya2VkIDxxdW90ZT5hbGwtdGhlLXNhbWU8L3F1b3RlPjsgaW4g dGhpcyBjYXNlIGFsbCB0aGUgbm9kZXMgaGF2ZSB0aGUKKyAgICAgICAgc2FtZSBsYWJlbCAoaWYg YW55KSBhbmQgc28gZWl0aGVyIGFsbCBvciBub25lIG9mIHRoZW0gbWF0Y2ggdGhlIHF1ZXJ5Cisg ICAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0ic3BnaXN0LWFsbC10aGUtc2FtZSIvPikuCisgICAg ICAgIDxzdHJ1Y3RmaWVsZD5oYXNQcmVmaXg8L3N0cnVjdGZpZWxkPiBpcyB0cnVlIGlmIHRoZSBj dXJyZW50IGlubmVyIHR1cGxlIGNvbnRhaW5zCisgICAgICAgIGEgcHJlZml4OyBpZiBzbywKKyAg ICAgICAgPHN0cnVjdGZpZWxkPnByZWZpeERhdHVtPC9zdHJ1Y3RmaWVsZD4gaXMgaXRzIHZhbHVl LgorICAgICAgICA8c3RydWN0ZmllbGQ+bk5vZGVzPC9zdHJ1Y3RmaWVsZD4gaXMgdGhlIG51bWJl ciBvZiBjaGlsZCBub2RlcyBjb250YWluZWQgaW4gdGhlCisgICAgICAgIGlubmVyIHR1cGxlLCBh bmQKKyAgICAgICAgPHN0cnVjdGZpZWxkPm5vZGVMYWJlbHM8L3N0cnVjdGZpZWxkPiBpcyBhbiBh cnJheSBvZiB0aGVpciBsYWJlbCB2YWx1ZXMsIG9yCisgICAgICAgIE5VTEwgaWYgdGhlIG5vZGVz IGRvIG5vdCBoYXZlIGxhYmVscy4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAg ICAgICAgPHN0cnVjdGZpZWxkPm5Ob2Rlczwvc3RydWN0ZmllbGQ+IG11c3QgYmUgc2V0IHRvIHRo ZSBudW1iZXIgb2YgY2hpbGQgbm9kZXMgdGhhdAorICAgICAgICBuZWVkIHRvIGJlIHZpc2l0ZWQg YnkgdGhlIHNlYXJjaCwgYW5kCisgICAgICAgIDxzdHJ1Y3RmaWVsZD5ub2RlTnVtYmVyczwvc3Ry dWN0ZmllbGQ+IG11c3QgYmUgc2V0IHRvIGFuIGFycmF5IG9mIHRoZWlyIGluZGV4ZXMuCisgICAg ICAgIElmIHRoZSBvcGVyYXRvciBjbGFzcyBrZWVwcyB0cmFjayBvZiBsZXZlbHMsIHNldAorICAg ICAgICA8c3RydWN0ZmllbGQ+bGV2ZWxBZGRzPC9zdHJ1Y3RmaWVsZD4gdG8gYW4gYXJyYXkgb2Yg dGhlIGxldmVsIGluY3JlbWVudHMKKyAgICAgICAgcmVxdWlyZWQgd2hlbiBkZXNjZW5kaW5nIHRv IGVhY2ggbm9kZSB0byBiZSB2aXNpdGVkLiAgKE9mdGVuIHRoZXNlCisgICAgICAgIGluY3JlbWVu dHMgd2lsbCBiZSB0aGUgc2FtZSBmb3IgYWxsIHRoZSBub2RlcywgYnV0IHRoYXQncyBub3QKKyAg ICAgICAgbmVjZXNzYXJpbHkgc28sIHNvIGFuIGFycmF5IGlzIHVzZWQuKQorICAgICAgICBJZiB2 YWx1ZSByZWNvbnN0cnVjdGlvbiBpcyBuZWVkZWQsIHNldAorICAgICAgICA8c3RydWN0ZmllbGQ+ cmVjb25zdHJ1Y3RlZFZhbHVlczwvc3RydWN0ZmllbGQ+IHRvIGFuIGFycmF5IG9mIHRoZSB2YWx1 ZXMKKyAgICAgICAgcmVjb25zdHJ1Y3RlZCBmb3IgZWFjaCBjaGlsZCBub2RlIHRvIGJlIHZpc2l0 ZWQ7IG90aGVyd2lzZSwgbGVhdmUKKyAgICAgICAgPHN0cnVjdGZpZWxkPnJlY29uc3RydWN0ZWRW YWx1ZXM8L3N0cnVjdGZpZWxkPiBhcyBOVUxMLgorICAgICAgICBUaGUgcmVjb25zdHJ1Y3RlZCB2 YWx1ZXMgYXJlIGFzc3VtZWQgdG8gYmUgb2YgdHlwZQorICAgICAgICA8c3RydWN0bmFtZT5zcGdD b25maWdPdXQ8L3N0cnVjdG5hbWU+LjxzdHJ1Y3RmaWVsZD5sZWFmVHlwZTwvc3RydWN0ZmllbGQ+ LgorICAgICAgICAoSG93ZXZlciwgc2luY2UgdGhlIGNvcmUgc3lzdGVtIHdpbGwgZG8gbm90aGlu ZyB3aXRoIHRoZW0gZXhjZXB0CisgICAgICAgIHBvc3NpYmx5IGNvcHkgdGhlbSwgaXQgaXMgc3Vm ZmljaWVudCBmb3IgdGhlbSB0byBoYXZlIHRoZQorICAgICAgICBzYW1lIDxsaXRlcmFsPnR5cGxl bjwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPnR5cGJ5dmFsPC9saXRlcmFsPgorICAgICAgICBwcm9w ZXJ0aWVzIGFzIDxzdHJ1Y3RmaWVsZD5sZWFmVHlwZTwvc3RydWN0ZmllbGQ+LikKKyAgICAgICAg SWYgb3JkZXJlZCBzZWFyY2ggaXMgcGVyZm9ybWVkLCBzZXQgPHN0cnVjdGZpZWxkPmRpc3RhbmNl czwvc3RydWN0ZmllbGQ+CisgICAgICAgIHRvIGFuIGFycmF5IG9mIGRpc3RhbmNlIHZhbHVlcyBh Y2NvcmRpbmcgdG8gPHN0cnVjdGZpZWxkPm9yZGVyYnlzPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICAg YXJyYXkgKG5vZGVzIHdpdGggbG93ZXN0IGRpc3RhbmNlcyB3aWxsIGJlIHByb2Nlc3NlZCBmaXJz dCkuICBMZWF2ZSBpdAorICAgICAgICBOVUxMIG90aGVyd2lzZS4KKyAgICAgICAgSWYgaXQgaXMg ZGVzaXJlZCB0byBwYXNzIGRvd24gYWRkaXRpb25hbCBvdXQtb2YtYmFuZCBpbmZvcm1hdGlvbgor ICAgICAgICAoPHF1b3RlPnRyYXZlcnNlIHZhbHVlczwvcXVvdGU+KSB0byBsb3dlciBsZXZlbHMg b2YgdGhlIHRyZWUgc2VhcmNoLAorICAgICAgICBzZXQgPHN0cnVjdGZpZWxkPnRyYXZlcnNhbFZh bHVlczwvc3RydWN0ZmllbGQ+IHRvIGFuIGFycmF5IG9mIHRoZSBhcHByb3ByaWF0ZQorICAgICAg ICB0cmF2ZXJzZSB2YWx1ZXMsIG9uZSBmb3IgZWFjaCBjaGlsZCBub2RlIHRvIGJlIHZpc2l0ZWQ7 IG90aGVyd2lzZSwKKyAgICAgICAgbGVhdmUgPHN0cnVjdGZpZWxkPnRyYXZlcnNhbFZhbHVlczwv c3RydWN0ZmllbGQ+IGFzIE5VTEwuCisgICAgICAgIE5vdGUgdGhhdCB0aGUgPGZ1bmN0aW9uPmlu bmVyX2NvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbiBpcworICAgICAgICByZXNwb25zaWJs ZSBmb3IgcGFsbG9jJ2luZyB0aGUKKyAgICAgICAgPHN0cnVjdGZpZWxkPm5vZGVOdW1iZXJzPC9z dHJ1Y3RmaWVsZD4sIDxzdHJ1Y3RmaWVsZD5sZXZlbEFkZHM8L3N0cnVjdGZpZWxkPiwKKyAgICAg ICAgPHN0cnVjdGZpZWxkPmRpc3RhbmNlczwvc3RydWN0ZmllbGQ+LAorICAgICAgICA8c3RydWN0 ZmllbGQ+cmVjb25zdHJ1Y3RlZFZhbHVlczwvc3RydWN0ZmllbGQ+LCBhbmQKKyAgICAgICAgPHN0 cnVjdGZpZWxkPnRyYXZlcnNhbFZhbHVlczwvc3RydWN0ZmllbGQ+IGFycmF5cyBpbiB0aGUgY3Vy cmVudCBtZW1vcnkgY29udGV4dC4KKyAgICAgICAgSG93ZXZlciwgYW55IG91dHB1dCB0cmF2ZXJz ZSB2YWx1ZXMgcG9pbnRlZCB0byBieQorICAgICAgICB0aGUgPHN0cnVjdGZpZWxkPnRyYXZlcnNh bFZhbHVlczwvc3RydWN0ZmllbGQ+IGFycmF5IHNob3VsZCBiZSBhbGxvY2F0ZWQKKyAgICAgICAg aW4gPHN0cnVjdGZpZWxkPnRyYXZlcnNhbE1lbW9yeUNvbnRleHQ8L3N0cnVjdGZpZWxkPi4KKyAg ICAgICAgRWFjaCB0cmF2ZXJzZSB2YWx1ZSBtdXN0IGJlIGEgc2luZ2xlIHBhbGxvYydkIGNodW5r LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48ZnVuY3Rpb24+bGVhZl9jb25z aXN0ZW50PC9mdW5jdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+ CisgICAgICAgIFJldHVybnMgdHJ1ZSBpZiBhIGxlYWYgdHVwbGUgc2F0aXNmaWVzIGEgcXVlcnku CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8YWNyb255bT5T UUw8L2Fjcm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZSB0 aGlzOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIEZVTkNUSU9OIG15X2xlYWZfY29uc2lzdGVu dChpbnRlcm5hbCwgaW50ZXJuYWwpIFJFVFVSTlMgYm9vbCAuLi4KKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgICAgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgcG9pbnRlciB0byBhIDxzdHJ1Y3RuYW1l PnNwZ0xlYWZDb25zaXN0ZW50SW48L3N0cnVjdG5hbWU+CisgICAgICAgQyBzdHJ1Y3QsIGNvbnRh aW5pbmcgaW5wdXQgZGF0YSBmb3IgdGhlIGZ1bmN0aW9uLgorICAgICAgIFRoZSBzZWNvbmQgYXJn dW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgPHN0cnVjdG5hbWU+c3BnTGVhZkNvbnNpc3RlbnRPdXQ8 L3N0cnVjdG5hbWU+CisgICAgICAgQyBzdHJ1Y3QsIHdoaWNoIHRoZSBmdW5jdGlvbiBtdXN0IGZp bGwgd2l0aCByZXN1bHQgZGF0YS4KKzxwcm9ncmFtbGlzdGluZz4KK3R5cGVkZWYgc3RydWN0IHNw Z0xlYWZDb25zaXN0ZW50SW4KK3sKKyAgICBTY2FuS2V5ICAgICBzY2Fua2V5czsgICAgICAgLyog YXJyYXkgb2Ygb3BlcmF0b3JzIGFuZCBjb21wYXJpc29uIHZhbHVlcyAqLworICAgIFNjYW5LZXkg ICAgIG9yZGVyYnlzOyAgICAgICAvKiBhcnJheSBvZiBvcmRlcmluZyBvcGVyYXRvcnMgYW5kIGNv bXBhcmlzb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdmFsdWVzICovCisg ICAgaW50ICAgICAgICAgbmtleXM7ICAgICAgICAgIC8qIGxlbmd0aCBvZiBzY2Fua2V5cyBhcnJh eSAqLworICAgIGludCAgICAgICAgIG5vcmRlcmJ5czsgICAgICAvKiBsZW5ndGggb2Ygb3JkZXJi eXMgYXJyYXkgKi8KKworICAgIERhdHVtICAgICAgIHJlY29uc3RydWN0ZWRWYWx1ZTsgICAgIC8q IHZhbHVlIHJlY29uc3RydWN0ZWQgYXQgcGFyZW50ICovCisgICAgdm9pZCAgICAgICAqdHJhdmVy c2FsVmFsdWU7IC8qIG9wY2xhc3Mtc3BlY2lmaWMgdHJhdmVyc2UgdmFsdWUgKi8KKyAgICBpbnQg ICAgICAgICBsZXZlbDsgICAgICAgICAgLyogY3VycmVudCBsZXZlbCAoY291bnRpbmcgZnJvbSB6 ZXJvKSAqLworICAgIGJvb2wgICAgICAgIHJldHVybkRhdGE7ICAgICAvKiBvcmlnaW5hbCBkYXRh IG11c3QgYmUgcmV0dXJuZWQ/ICovCisKKyAgICBEYXR1bSAgICAgICBsZWFmRGF0dW07ICAgICAg LyogZGF0dW0gaW4gbGVhZiB0dXBsZSAqLworfSBzcGdMZWFmQ29uc2lzdGVudEluOworCit0eXBl ZGVmIHN0cnVjdCBzcGdMZWFmQ29uc2lzdGVudE91dAoreworICAgIERhdHVtICAgICAgIGxlYWZW YWx1ZTsgICAgICAgIC8qIHJlY29uc3RydWN0ZWQgb3JpZ2luYWwgZGF0YSwgaWYgYW55ICovCisg ICAgYm9vbCAgICAgICAgcmVjaGVjazsgICAgICAgICAgLyogc2V0IHRydWUgaWYgb3BlcmF0b3Ig bXVzdCBiZSByZWNoZWNrZWQgKi8KKyAgICBib29sICAgICAgICByZWNoZWNrRGlzdGFuY2VzOyAv KiBzZXQgdHJ1ZSBpZiBkaXN0YW5jZXMgbXVzdCBiZSByZWNoZWNrZWQgKi8KKyAgICBkb3VibGUg ICAgICpkaXN0YW5jZXM7ICAgICAgICAvKiBhc3NvY2lhdGVkIGRpc3RhbmNlcyAqLworfSBzcGdM ZWFmQ29uc2lzdGVudE91dDsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgICAgICAgVGhlIGFycmF5 IDxzdHJ1Y3RmaWVsZD5zY2Fua2V5czwvc3RydWN0ZmllbGQ+LCBvZiBsZW5ndGggPHN0cnVjdGZp ZWxkPm5rZXlzPC9zdHJ1Y3RmaWVsZD4sCisgICAgICAgIGRlc2NyaWJlcyB0aGUgaW5kZXggc2Vh cmNoIGNvbmRpdGlvbihzKS4gIFRoZXNlIGNvbmRpdGlvbnMgYXJlCisgICAgICAgIGNvbWJpbmVk IHdpdGggQU5EICZtZGFzaDsgb25seSBpbmRleCBlbnRyaWVzIHRoYXQgc2F0aXNmeSBhbGwgb2YK KyAgICAgICAgdGhlbSBzYXRpc2Z5IHRoZSBxdWVyeS4gIChOb3RlIHRoYXQgPHN0cnVjdGZpZWxk Pm5rZXlzPC9zdHJ1Y3RmaWVsZD4gPSAwIGltcGxpZXMKKyAgICAgICAgdGhhdCBhbGwgaW5kZXgg ZW50cmllcyBzYXRpc2Z5IHRoZSBxdWVyeS4pICBVc3VhbGx5IHRoZSBjb25zaXN0ZW50CisgICAg ICAgIGZ1bmN0aW9uIG9ubHkgY2FyZXMgYWJvdXQgdGhlIDxzdHJ1Y3RmaWVsZD5za19zdHJhdGVn eTwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgICA8c3RydWN0ZmllbGQ+c2tfYXJndW1lbnQ8L3N0 cnVjdGZpZWxkPiBmaWVsZHMgb2YgZWFjaCBhcnJheSBlbnRyeSwgd2hpY2gKKyAgICAgICAgcmVz cGVjdGl2ZWx5IGdpdmUgdGhlIGluZGV4YWJsZSBvcGVyYXRvciBhbmQgY29tcGFyaXNvbiB2YWx1 ZS4KKyAgICAgICAgSW4gcGFydGljdWxhciBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNoZWNrIDxz dHJ1Y3RmaWVsZD5za19mbGFnczwvc3RydWN0ZmllbGQ+IHRvCisgICAgICAgIHNlZSBpZiB0aGUg Y29tcGFyaXNvbiB2YWx1ZSBpcyBOVUxMLCBiZWNhdXNlIHRoZSBTUC1HaVNUIGNvcmUgY29kZQor ICAgICAgICB3aWxsIGZpbHRlciBvdXQgc3VjaCBjb25kaXRpb25zLgorICAgICAgICBUaGUgYXJy YXkgPHN0cnVjdGZpZWxkPm9yZGVyYnlzPC9zdHJ1Y3RmaWVsZD4sIG9mIGxlbmd0aCA8c3RydWN0 ZmllbGQ+bm9yZGVyYnlzPC9zdHJ1Y3RmaWVsZD4sCisgICAgICAgIGRlc2NyaWJlcyB0aGUgb3Jk ZXJpbmcgb3BlcmF0b3JzIGluIHRoZSBzYW1lIG1hbm5lci4KKyAgICAgICAgPHN0cnVjdGZpZWxk PnJlY29uc3RydWN0ZWRWYWx1ZTwvc3RydWN0ZmllbGQ+IGlzIHRoZSB2YWx1ZSByZWNvbnN0cnVj dGVkIGZvciB0aGUKKyAgICAgICAgcGFyZW50IHR1cGxlOyBpdCBpcyA8bGl0ZXJhbD4oRGF0dW0p IDA8L2xpdGVyYWw+IGF0IHRoZSByb290IGxldmVsIG9yIGlmIHRoZQorICAgICAgICA8ZnVuY3Rp b24+aW5uZXJfY29uc2lzdGVudDwvZnVuY3Rpb24+IGZ1bmN0aW9uIGRpZCBub3QgcHJvdmlkZSBh IHZhbHVlIGF0IHRoZQorICAgICAgICBwYXJlbnQgbGV2ZWwuCisgICAgICAgIDxzdHJ1Y3RmaWVs ZD50cmF2ZXJzYWxWYWx1ZTwvc3RydWN0ZmllbGQ+IGlzIGEgcG9pbnRlciB0byBhbnkgdHJhdmVy c2UgZGF0YQorICAgICAgICBwYXNzZWQgZG93biBmcm9tIHRoZSBwcmV2aW91cyBjYWxsIG9mIDxm dW5jdGlvbj5pbm5lcl9jb25zaXN0ZW50PC9mdW5jdGlvbj4KKyAgICAgICAgb24gdGhlIHBhcmVu dCBpbmRleCB0dXBsZSwgb3IgTlVMTCBhdCB0aGUgcm9vdCBsZXZlbC4KKyAgICAgICAgPHN0cnVj dGZpZWxkPmxldmVsPC9zdHJ1Y3RmaWVsZD4gaXMgdGhlIGN1cnJlbnQgbGVhZiB0dXBsZSdzIGxl dmVsLCBzdGFydGluZyBhdAorICAgICAgICB6ZXJvIGZvciB0aGUgcm9vdCBsZXZlbC4KKyAgICAg ICAgPHN0cnVjdGZpZWxkPnJldHVybkRhdGE8L3N0cnVjdGZpZWxkPiBpcyA8bGl0ZXJhbD50cnVl PC9saXRlcmFsPiBpZiByZWNvbnN0cnVjdGVkIGRhdGEgaXMKKyAgICAgICAgcmVxdWlyZWQgZm9y IHRoaXMgcXVlcnk7IHRoaXMgd2lsbCBvbmx5IGJlIHNvIGlmIHRoZQorICAgICAgICA8ZnVuY3Rp b24+Y29uZmlnPC9mdW5jdGlvbj4gZnVuY3Rpb24gYXNzZXJ0ZWQgPHN0cnVjdGZpZWxkPmNhblJl dHVybkRhdGE8L3N0cnVjdGZpZWxkPi4KKyAgICAgICAgPHN0cnVjdGZpZWxkPmxlYWZEYXR1bTwv c3RydWN0ZmllbGQ+IGlzIHRoZSBrZXkgdmFsdWUgb2YKKyAgICAgICAgPHN0cnVjdG5hbWU+c3Bn Q29uZmlnT3V0PC9zdHJ1Y3RuYW1lPi48c3RydWN0ZmllbGQ+bGVhZlR5cGU8L3N0cnVjdGZpZWxk PgorICAgICAgICBzdG9yZWQgaW4gdGhlIGN1cnJlbnQgbGVhZiB0dXBsZS4KKyAgICAgICA8L3Bh cmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIGZ1bmN0aW9uIG11c3QgcmV0dXJuIDxs aXRlcmFsPnRydWU8L2xpdGVyYWw+IGlmIHRoZSBsZWFmIHR1cGxlIG1hdGNoZXMgdGhlCisgICAg ICAgIHF1ZXJ5LCBvciA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4gaWYgbm90LiAgSW4gdGhlIDxs aXRlcmFsPnRydWU8L2xpdGVyYWw+IGNhc2UsCisgICAgICAgIGlmIDxzdHJ1Y3RmaWVsZD5yZXR1 cm5EYXRhPC9zdHJ1Y3RmaWVsZD4gaXMgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gdGhlbgorICAg ICAgICA8c3RydWN0ZmllbGQ+bGVhZlZhbHVlPC9zdHJ1Y3RmaWVsZD4gbXVzdCBiZSBzZXQgdG8g dGhlIHZhbHVlIChvZiB0eXBlCisgICAgICAgIDxzdHJ1Y3RuYW1lPnNwZ0NvbmZpZ0luPC9zdHJ1 Y3RuYW1lPi48c3RydWN0ZmllbGQ+YXR0VHlwZTwvc3RydWN0ZmllbGQ+KQorICAgICAgICBvcmln aW5hbGx5IHN1cHBsaWVkIHRvIGJlIGluZGV4ZWQgZm9yIHRoaXMgbGVhZiB0dXBsZS4gIEFsc28s CisgICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWNoZWNrPC9zdHJ1Y3RmaWVsZD4gbWF5IGJlIHNldCB0 byA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiBpZiB0aGUgbWF0Y2gKKyAgICAgICAgaXMgdW5jZXJ0 YWluIGFuZCBzbyB0aGUgb3BlcmF0b3IocykgbXVzdCBiZSByZS1hcHBsaWVkIHRvIHRoZSBhY3R1 YWwKKyAgICAgICAgaGVhcCB0dXBsZSB0byB2ZXJpZnkgdGhlIG1hdGNoLgorICAgICAgICBJZiBv cmRlcmVkIHNlYXJjaCBpcyBwZXJmb3JtZWQsIHNldCA8c3RydWN0ZmllbGQ+ZGlzdGFuY2VzPC9z dHJ1Y3RmaWVsZD4KKyAgICAgICAgdG8gYW4gYXJyYXkgb2YgZGlzdGFuY2UgdmFsdWVzIGFjY29y ZGluZyB0byA8c3RydWN0ZmllbGQ+b3JkZXJieXM8L3N0cnVjdGZpZWxkPgorICAgICAgICBhcnJh eS4gIExlYXZlIGl0IE5VTEwgb3RoZXJ3aXNlLiAgSWYgYXQgbGVhc3Qgb25lIG9mIHJldHVybmVk IGRpc3RhbmNlcworICAgICAgICBpcyBub3QgZXhhY3QsIHNldCA8c3RydWN0ZmllbGQ+cmVjaGVj a0Rpc3RhbmNlczwvc3RydWN0ZmllbGQ+IHRvIHRydWUuCisgICAgICAgIEluIHRoaXMgY2FzZSwg dGhlIGV4ZWN1dG9yIHdpbGwgY2FsY3VsYXRlIHRoZSBleGFjdCBkaXN0YW5jZXMgYWZ0ZXIKKyAg ICAgICAgZmV0Y2hpbmcgdGhlIHR1cGxlIGZyb20gdGhlIGhlYXAsIGFuZCB3aWxsIHJlb3JkZXIg dGhlIHR1cGxlcyBpZiBuZWVkZWQuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4K KyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisKKyAgPHBhcmE+Cisg ICBUaGUgb3B0aW9uYWwgdXNlci1kZWZpbmVkIG1ldGhvZHMgYXJlOgorICA8L3BhcmE+CisKKyAg PHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxmdW5jdGlv bj5EYXR1bSBjb21wcmVzcyhEYXR1bSBpbik8L2Z1bmN0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgQ29udmVydHMgYSBkYXRhIGl0ZW0gaW50byBh IGZvcm1hdCBzdWl0YWJsZSBmb3IgcGh5c2ljYWwgc3RvcmFnZSBpbgorICAgICAgICBhIGxlYWYg dHVwbGUgb2YgdGhlIGluZGV4LiAgSXQgYWNjZXB0cyBhIHZhbHVlIG9mIHR5cGUKKyAgICAgICAg PHN0cnVjdG5hbWU+c3BnQ29uZmlnSW48L3N0cnVjdG5hbWU+LjxzdHJ1Y3RmaWVsZD5hdHRUeXBl PC9zdHJ1Y3RmaWVsZD4KKyAgICAgICAgYW5kIHJldHVybnMgYSB2YWx1ZSBvZiB0eXBlCisgICAg ICAgIDxzdHJ1Y3RuYW1lPnNwZ0NvbmZpZ091dDwvc3RydWN0bmFtZT4uPHN0cnVjdGZpZWxkPmxl YWZUeXBlPC9zdHJ1Y3RmaWVsZD4uCisgICAgICAgIFRoZSBvdXRwdXQgdmFsdWUgbXVzdCBub3Qg Y29udGFpbiBhbiBvdXQtb2YtbGluZSBUT0FTVCBwb2ludGVyLgorICAgICAgIDwvcGFyYT4KKwor ICAgICAgIDxwYXJhPgorICAgICAgICBOb3RlOiB0aGUgPGZ1bmN0aW9uPmNvbXByZXNzPC9mdW5j dGlvbj4gbWV0aG9kIGlzIG9ubHkgYXBwbGllZCB0bworICAgICAgICB2YWx1ZXMgdG8gYmUgc3Rv cmVkLiAgVGhlIGNvbnNpc3RlbnQgbWV0aG9kcyByZWNlaXZlIHF1ZXJ5CisgICAgICAgIDxzdHJ1 Y3RmaWVsZD5zY2Fua2V5czwvc3RydWN0ZmllbGQ+IHVuY2hhbmdlZCwgd2l0aG91dCB0cmFuc2Zv cm1hdGlvbgorICAgICAgICB1c2luZyA8ZnVuY3Rpb24+Y29tcHJlc3M8L2Z1bmN0aW9uPi4KKyAg ICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPm9wdGlvbnM8L2Z1bmN0 aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRGVm aW5lcyBhIHNldCBvZiB1c2VyLXZpc2libGUgcGFyYW1ldGVycyB0aGF0IGNvbnRyb2wgb3BlcmF0 b3IgY2xhc3MKKyAgICAgICAgYmVoYXZpb3IuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBh cmE+CisgICAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0 aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKKworPHByb2dyYW1saXN0aW5nPgorQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gbXlfb3B0aW9ucyhpbnRlcm5hbCkKK1JFVFVSTlMgdm9p ZAorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RSSUNUOworPC9wcm9ncmFtbGlz dGluZz4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIGZ1bmN0 aW9uIGlzIHBhc3NlZCBhIHBvaW50ZXIgdG8gYSA8c3RydWN0bmFtZT5sb2NhbF9yZWxvcHRzPC9z dHJ1Y3RuYW1lPgorICAgICAgICBzdHJ1Y3QsIHdoaWNoIG5lZWRzIHRvIGJlIGZpbGxlZCB3aXRo IGEgc2V0IG9mIG9wZXJhdG9yIGNsYXNzCisgICAgICAgIHNwZWNpZmljIG9wdGlvbnMuICBUaGUg b3B0aW9ucyBjYW4gYmUgYWNjZXNzZWQgZnJvbSBvdGhlciBzdXBwb3J0CisgICAgICAgIGZ1bmN0 aW9ucyB1c2luZyB0aGUgPGxpdGVyYWw+UEdfSEFTX09QQ0xBU1NfT1BUSU9OUygpPC9saXRlcmFs PiBhbmQKKyAgICAgICAgPGxpdGVyYWw+UEdfR0VUX09QQ0xBU1NfT1BUSU9OUygpPC9saXRlcmFs PiBtYWNyb3MuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFNpbmNl IHRoZSByZXByZXNlbnRhdGlvbiBvZiB0aGUga2V5IGluIDxhY3JvbnltPlNQLUdpU1Q8L2Fjcm9u eW0+IGlzCisgICAgICAgIGZsZXhpYmxlLCBpdCBtYXkgZGVwZW5kIG9uIHVzZXItc3BlY2lmaWVk IHBhcmFtZXRlcnMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92 YXJsaXN0ZW50cnk+CisgICA8L3ZhcmlhYmxlbGlzdD4KKworICAgPHBhcmE+CisgICAgQWxsIHRo ZSBTUC1HaVNUIHN1cHBvcnQgbWV0aG9kcyBhcmUgbm9ybWFsbHkgY2FsbGVkIGluIGEgc2hvcnQt bGl2ZWQKKyAgICBtZW1vcnkgY29udGV4dDsgdGhhdCBpcywgPHZhcm5hbWU+Q3VycmVudE1lbW9y eUNvbnRleHQ8L3Zhcm5hbWU+IHdpbGwgYmUgcmVzZXQKKyAgICBhZnRlciBwcm9jZXNzaW5nIG9m IGVhY2ggdHVwbGUuICBJdCBpcyB0aGVyZWZvcmUgbm90IHZlcnkgaW1wb3J0YW50IHRvCisgICAg d29ycnkgYWJvdXQgcGZyZWUnaW5nIGV2ZXJ5dGhpbmcgeW91IHBhbGxvYy4gIChUaGUgPGZ1bmN0 aW9uPmNvbmZpZzwvZnVuY3Rpb24+CisgICAgbWV0aG9kIGlzIGFuIGV4Y2VwdGlvbjogaXQgc2hv dWxkIHRyeSB0byBhdm9pZCBsZWFraW5nIG1lbW9yeS4gIEJ1dAorICAgIHVzdWFsbHkgdGhlIDxm dW5jdGlvbj5jb25maWc8L2Z1bmN0aW9uPiBtZXRob2QgbmVlZCBkbyBub3RoaW5nIGJ1dCBhc3Np Z24KKyAgICBjb25zdGFudHMgaW50byB0aGUgcGFzc2VkIHBhcmFtZXRlciBzdHJ1Y3QuKQorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJZiB0aGUgaW5kZXhlZCBjb2x1bW4gaXMgb2YgYSBj b2xsYXRhYmxlIGRhdGEgdHlwZSwgdGhlIGluZGV4IGNvbGxhdGlvbgorICAgIHdpbGwgYmUgcGFz c2VkIHRvIGFsbCB0aGUgc3VwcG9ydCBtZXRob2RzLCB1c2luZyB0aGUgc3RhbmRhcmQKKyAgICA8 ZnVuY3Rpb24+UEdfR0VUX0NPTExBVElPTigpPC9mdW5jdGlvbj4gbWVjaGFuaXNtLgorICAgPC9w YXJhPgorCisgPC9zZWN0Mj4KKworIDxzZWN0MiBpZD0ic3BnaXN0LWltcGxlbWVudGF0aW9uIj4K KyAgPHRpdGxlPkltcGxlbWVudGF0aW9uPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhpcyBz ZWN0aW9uIGNvdmVycyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFuZCBvdGhlciB0cmlja3MgdGhh dCBhcmUKKyAgICB1c2VmdWwgZm9yIGltcGxlbWVudGVycyBvZiA8YWNyb255bT5TUC1HaVNUPC9h Y3JvbnltPiBvcGVyYXRvciBjbGFzc2VzIHRvCisgICAga25vdy4KKyAgIDwvcGFyYT4KKworICA8 c2VjdDMgaWQ9InNwZ2lzdC1saW1pdHMiPgorICAgPHRpdGxlPlNQLUdpU1QgTGltaXRzPC90aXRs ZT4KKworICAgPHBhcmE+CisgICAgSW5kaXZpZHVhbCBsZWFmIHR1cGxlcyBhbmQgaW5uZXIgdHVw bGVzIG11c3QgZml0IG9uIGEgc2luZ2xlIGluZGV4IHBhZ2UKKyAgICAoOGtCIGJ5IGRlZmF1bHQp LiAgVGhlcmVmb3JlLCB3aGVuIGluZGV4aW5nIHZhbHVlcyBvZiB2YXJpYWJsZS1sZW5ndGgKKyAg ICBkYXRhIHR5cGVzLCBsb25nIHZhbHVlcyBjYW4gb25seSBiZSBzdXBwb3J0ZWQgYnkgbWV0aG9k cyBzdWNoIGFzIHJhZGl4CisgICAgdHJlZXMsIGluIHdoaWNoIGVhY2ggbGV2ZWwgb2YgdGhlIHRy ZWUgaW5jbHVkZXMgYSBwcmVmaXggdGhhdCBpcyBzaG9ydAorICAgIGVub3VnaCB0byBmaXQgb24g YSBwYWdlLCBhbmQgdGhlIGZpbmFsIGxlYWYgbGV2ZWwgaW5jbHVkZXMgYSBzdWZmaXggYWxzbwor ICAgIHNob3J0IGVub3VnaCB0byBmaXQgb24gYSBwYWdlLiAgVGhlIG9wZXJhdG9yIGNsYXNzIHNo b3VsZCBzZXQKKyAgICA8c3RydWN0ZmllbGQ+bG9uZ1ZhbHVlc09LPC9zdHJ1Y3RmaWVsZD4gdG8g dHJ1ZSBvbmx5IGlmIGl0IGlzIHByZXBhcmVkIHRvIGFycmFuZ2UgZm9yCisgICAgdGhpcyB0byBo YXBwZW4uICBPdGhlcndpc2UsIHRoZSA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBjb3JlIHdp bGwKKyAgICByZWplY3QgYW55IHJlcXVlc3QgdG8gaW5kZXggYSB2YWx1ZSB0aGF0IGlzIHRvbyBs YXJnZSB0byBmaXQKKyAgICBvbiBhbiBpbmRleCBwYWdlLgorICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBMaWtld2lzZSwgaXQgaXMgdGhlIG9wZXJhdG9yIGNsYXNzJ3MgcmVzcG9uc2liaWxp dHkgdGhhdCBpbm5lciB0dXBsZXMKKyAgICBkbyBub3QgZ3JvdyB0b28gbGFyZ2UgdG8gZml0IG9u IGFuIGluZGV4IHBhZ2U7IHRoaXMgbGltaXRzIHRoZSBudW1iZXIKKyAgICBvZiBjaGlsZCBub2Rl cyB0aGF0IGNhbiBiZSB1c2VkIGluIG9uZSBpbm5lciB0dXBsZSwgYXMgd2VsbCBhcyB0aGUKKyAg ICBtYXhpbXVtIHNpemUgb2YgYSBwcmVmaXggdmFsdWUuCisgICA8L3BhcmE+CisKKyAgIDxwYXJh PgorICAgIEFub3RoZXIgbGltaXRhdGlvbiBpcyB0aGF0IHdoZW4gYW4gaW5uZXIgdHVwbGUncyBu b2RlIHBvaW50cyB0byBhIHNldAorICAgIG9mIGxlYWYgdHVwbGVzLCB0aG9zZSB0dXBsZXMgbXVz dCBhbGwgYmUgaW4gdGhlIHNhbWUgaW5kZXggcGFnZS4KKyAgICAoVGhpcyBpcyBhIGRlc2lnbiBk ZWNpc2lvbiB0byByZWR1Y2Ugc2Vla2luZyBhbmQgc2F2ZSBzcGFjZSBpbiB0aGUKKyAgICBsaW5r cyB0aGF0IGNoYWluIHN1Y2ggdHVwbGVzIHRvZ2V0aGVyLikgIElmIHRoZSBzZXQgb2YgbGVhZiB0 dXBsZXMKKyAgICBncm93cyB0b28gbGFyZ2UgZm9yIGEgcGFnZSwgYSBzcGxpdCBpcyBwZXJmb3Jt ZWQgYW5kIGFuIGludGVybWVkaWF0ZQorICAgIGlubmVyIHR1cGxlIGlzIGluc2VydGVkLiAgRm9y IHRoaXMgdG8gZml4IHRoZSBwcm9ibGVtLCB0aGUgbmV3IGlubmVyCisgICAgdHVwbGUgPGVtcGhh c2lzPm11c3Q8L2VtcGhhc2lzPiBkaXZpZGUgdGhlIHNldCBvZiBsZWFmIHZhbHVlcyBpbnRvIG1v cmUgdGhhbiBvbmUKKyAgICBub2RlIGdyb3VwLiAgSWYgdGhlIG9wZXJhdG9yIGNsYXNzJ3MgPGZ1 bmN0aW9uPnBpY2tzcGxpdDwvZnVuY3Rpb24+IGZ1bmN0aW9uCisgICAgZmFpbHMgdG8gZG8gdGhh dCwgdGhlIDxhY3JvbnltPlNQLUdpU1Q8L2Fjcm9ueW0+IGNvcmUgcmVzb3J0cyB0bworICAgIGV4 dHJhb3JkaW5hcnkgbWVhc3VyZXMgZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9InNwZ2lzdC1h bGwtdGhlLXNhbWUiLz4uCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4gPHN0cnVj dGZpZWxkPmxvbmdWYWx1ZXNPSzwvc3RydWN0ZmllbGQ+IGlzIHRydWUsIGl0IGlzIGV4cGVjdGVk CisgICAgdGhhdCBzdWNjZXNzaXZlIGxldmVscyBvZiB0aGUgPGFjcm9ueW0+U1AtR2lTVDwvYWNy b255bT4gdHJlZSB3aWxsCisgICAgYWJzb3JiIG1vcmUgYW5kIG1vcmUgaW5mb3JtYXRpb24gaW50 byB0aGUgcHJlZml4ZXMgYW5kIG5vZGUgbGFiZWxzIG9mCisgICAgdGhlIGlubmVyIHR1cGxlcywg bWFraW5nIHRoZSByZXF1aXJlZCBsZWFmIGRhdHVtIHNtYWxsZXIgYW5kIHNtYWxsZXIsCisgICAg c28gdGhhdCBldmVudHVhbGx5IGl0IHdpbGwgZml0IG9uIGEgcGFnZS4KKyAgICBUbyBwcmV2ZW50 IGJ1Z3MgaW4gb3BlcmF0b3IgY2xhc3NlcyBmcm9tIGNhdXNpbmcgaW5maW5pdGUgaW5zZXJ0aW9u CisgICAgbG9vcHMsIHRoZSA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBjb3JlIHdpbGwgcmFp c2UgYW4gZXJyb3IgaWYgdGhlCisgICAgbGVhZiBkYXR1bSBkb2VzIG5vdCBiZWNvbWUgYW55IHNt YWxsZXIgd2l0aGluIHRlbiBjeWNsZXMKKyAgICBvZiA8ZnVuY3Rpb24+Y2hvb3NlPC9mdW5jdGlv bj4gbWV0aG9kIGNhbGxzLgorICAgPC9wYXJhPgorICA8L3NlY3QzPgorCisgIDxzZWN0MyBpZD0i c3BnaXN0LW51bGwtbGFiZWxzIj4KKyAgIDx0aXRsZT5TUC1HaVNUIFdpdGhvdXQgTm9kZSBMYWJl bHM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBTb21lIHRyZWUgYWxnb3JpdGhtcyB1c2UgYSBm aXhlZCBzZXQgb2Ygbm9kZXMgZm9yIGVhY2ggaW5uZXIgdHVwbGU7CisgICAgZm9yIGV4YW1wbGUs IGluIGEgcXVhZC10cmVlIHRoZXJlIGFyZSBhbHdheXMgZXhhY3RseSBmb3VyIG5vZGVzCisgICAg Y29ycmVzcG9uZGluZyB0byB0aGUgZm91ciBxdWFkcmFudHMgYXJvdW5kIHRoZSBpbm5lciB0dXBs ZSdzIGNlbnRyb2lkCisgICAgcG9pbnQuICBJbiBzdWNoIGEgY2FzZSB0aGUgY29kZSB0eXBpY2Fs bHkgd29ya3Mgd2l0aCB0aGUgbm9kZXMgYnkKKyAgICBudW1iZXIsIGFuZCB0aGVyZSBpcyBubyBu ZWVkIGZvciBleHBsaWNpdCBub2RlIGxhYmVscy4gIFRvIHN1cHByZXNzCisgICAgbm9kZSBsYWJl bHMgKGFuZCB0aGVyZWJ5IHNhdmUgc29tZSBzcGFjZSksIHRoZSA8ZnVuY3Rpb24+cGlja3NwbGl0 PC9mdW5jdGlvbj4KKyAgICBmdW5jdGlvbiBjYW4gcmV0dXJuIE5VTEwgZm9yIHRoZSA8c3RydWN0 ZmllbGQ+bm9kZUxhYmVsczwvc3RydWN0ZmllbGQ+IGFycmF5LAorICAgIGFuZCBsaWtld2lzZSB0 aGUgPGZ1bmN0aW9uPmNob29zZTwvZnVuY3Rpb24+IGZ1bmN0aW9uIGNhbiByZXR1cm4gTlVMTCBm b3IKKyAgICB0aGUgPHN0cnVjdGZpZWxkPnByZWZpeE5vZGVMYWJlbHM8L3N0cnVjdGZpZWxkPiBh cnJheSBkdXJpbmcKKyAgICBhIDxsaXRlcmFsPnNwZ1NwbGl0VHVwbGU8L2xpdGVyYWw+IGFjdGlv bi4KKyAgICBUaGlzIHdpbGwgaW4gdHVybiByZXN1bHQgaW4gPHN0cnVjdGZpZWxkPm5vZGVMYWJl bHM8L3N0cnVjdGZpZWxkPiBiZWluZyBOVUxMIGR1cmluZworICAgIHN1YnNlcXVlbnQgY2FsbHMg dG8gPGZ1bmN0aW9uPmNob29zZTwvZnVuY3Rpb24+IGFuZCA8ZnVuY3Rpb24+aW5uZXJfY29uc2lz dGVudDwvZnVuY3Rpb24+LgorICAgIEluIHByaW5jaXBsZSwgbm9kZSBsYWJlbHMgY291bGQgYmUg dXNlZCBmb3Igc29tZSBpbm5lciB0dXBsZXMgYW5kIG9taXR0ZWQKKyAgICBmb3Igb3RoZXJzIGlu IHRoZSBzYW1lIGluZGV4LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXaGVuIHdvcmtp bmcgd2l0aCBhbiBpbm5lciB0dXBsZSBoYXZpbmcgdW5sYWJlbGVkIG5vZGVzLCBpdCBpcyBhbiBl cnJvcgorICAgIGZvciA8ZnVuY3Rpb24+Y2hvb3NlPC9mdW5jdGlvbj4gdG8gcmV0dXJuIDxsaXRl cmFsPnNwZ0FkZE5vZGU8L2xpdGVyYWw+LCBzaW5jZSB0aGUgc2V0CisgICAgb2Ygbm9kZXMgaXMg c3VwcG9zZWQgdG8gYmUgZml4ZWQgaW4gc3VjaCBjYXNlcy4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0 Mz4KKworICA8c2VjdDMgaWQ9InNwZ2lzdC1hbGwtdGhlLXNhbWUiPgorICAgPHRpdGxlPjxxdW90 ZT5BbGwtdGhlLVNhbWU8L3F1b3RlPiBJbm5lciBUdXBsZXM8L3RpdGxlPgorCisgICA8cGFyYT4K KyAgICBUaGUgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4gY29yZSBjYW4gb3ZlcnJpZGUgdGhl IHJlc3VsdHMgb2YgdGhlCisgICAgb3BlcmF0b3IgY2xhc3MncyA8ZnVuY3Rpb24+cGlja3NwbGl0 PC9mdW5jdGlvbj4gZnVuY3Rpb24gd2hlbgorICAgIDxmdW5jdGlvbj5waWNrc3BsaXQ8L2Z1bmN0 aW9uPiBmYWlscyB0byBkaXZpZGUgdGhlIHN1cHBsaWVkIGxlYWYgdmFsdWVzIGludG8KKyAgICBh dCBsZWFzdCB0d28gbm9kZSBjYXRlZ29yaWVzLiAgV2hlbiB0aGlzIGhhcHBlbnMsIHRoZSBuZXcg aW5uZXIgdHVwbGUKKyAgICBpcyBjcmVhdGVkIHdpdGggbXVsdGlwbGUgbm9kZXMgdGhhdCBlYWNo IGhhdmUgdGhlIHNhbWUgbGFiZWwgKGlmIGFueSkKKyAgICB0aGF0IDxmdW5jdGlvbj5waWNrc3Bs aXQ8L2Z1bmN0aW9uPiBnYXZlIHRvIHRoZSBvbmUgbm9kZSBpdCBkaWQgdXNlLCBhbmQgdGhlCisg ICAgbGVhZiB2YWx1ZXMgYXJlIGRpdmlkZWQgYXQgcmFuZG9tIGFtb25nIHRoZXNlIGVxdWl2YWxl bnQgbm9kZXMuCisgICAgVGhlIDxsaXRlcmFsPmFsbFRoZVNhbWU8L2xpdGVyYWw+IGZsYWcgaXMg c2V0IG9uIHRoZSBpbm5lciB0dXBsZSB0byB3YXJuIHRoZQorICAgIDxmdW5jdGlvbj5jaG9vc2U8 L2Z1bmN0aW9uPiBhbmQgPGZ1bmN0aW9uPmlubmVyX2NvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBmdW5j dGlvbnMgdGhhdCB0aGUKKyAgICB0dXBsZSBkb2VzIG5vdCBoYXZlIHRoZSBub2RlIHNldCB0aGF0 IHRoZXkgbWlnaHQgb3RoZXJ3aXNlIGV4cGVjdC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+Cisg ICAgV2hlbiBkZWFsaW5nIHdpdGggYW4gPGxpdGVyYWw+YWxsVGhlU2FtZTwvbGl0ZXJhbD4gdHVw bGUsIGEgPGZ1bmN0aW9uPmNob29zZTwvZnVuY3Rpb24+CisgICAgcmVzdWx0IG9mIDxsaXRlcmFs PnNwZ01hdGNoTm9kZTwvbGl0ZXJhbD4gaXMgaW50ZXJwcmV0ZWQgdG8gbWVhbiB0aGF0IHRoZSBu ZXcKKyAgICB2YWx1ZSBjYW4gYmUgYXNzaWduZWQgdG8gYW55IG9mIHRoZSBlcXVpdmFsZW50IG5v ZGVzOyB0aGUgY29yZSBjb2RlIHdpbGwKKyAgICBpZ25vcmUgdGhlIHN1cHBsaWVkICA8c3RydWN0 ZmllbGQ+bm9kZU48L3N0cnVjdGZpZWxkPiB2YWx1ZSBhbmQgZGVzY2VuZCBpbnRvIG9uZQorICAg IG9mIHRoZSBub2RlcyBhdCByYW5kb20gKHNvIGFzIHRvIGtlZXAgdGhlIHRyZWUgYmFsYW5jZWQp LiAgSXQgaXMgYW4KKyAgICBlcnJvciBmb3IgPGZ1bmN0aW9uPmNob29zZTwvZnVuY3Rpb24+IHRv IHJldHVybiA8bGl0ZXJhbD5zcGdBZGROb2RlPC9saXRlcmFsPiwgc2luY2UKKyAgICB0aGF0IHdv dWxkIG1ha2UgdGhlIG5vZGVzIG5vdCBhbGwgZXF1aXZhbGVudDsgdGhlCisgICAgPGxpdGVyYWw+ c3BnU3BsaXRUdXBsZTwvbGl0ZXJhbD4gYWN0aW9uIG11c3QgYmUgdXNlZCBpZiB0aGUgdmFsdWUg dG8gYmUgaW5zZXJ0ZWQKKyAgICBkb2Vzbid0IG1hdGNoIHRoZSBleGlzdGluZyBub2Rlcy4KKyAg IDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBkZWFsaW5nIHdpdGggYW4gPGxpdGVyYWw+ YWxsVGhlU2FtZTwvbGl0ZXJhbD4gdHVwbGUsIHRoZQorICAgIDxmdW5jdGlvbj5pbm5lcl9jb25z aXN0ZW50PC9mdW5jdGlvbj4gZnVuY3Rpb24gc2hvdWxkIHJldHVybiBlaXRoZXIgYWxsIG9yIG5v bmUKKyAgICBvZiB0aGUgbm9kZXMgYXMgdGFyZ2V0cyBmb3IgY29udGludWluZyB0aGUgaW5kZXgg c2VhcmNoLCBzaW5jZSB0aGV5IGFyZQorICAgIGFsbCBlcXVpdmFsZW50LiAgVGhpcyBtYXkgb3Ig bWF5IG5vdCByZXF1aXJlIGFueSBzcGVjaWFsLWNhc2UgY29kZSwKKyAgICBkZXBlbmRpbmcgb24g aG93IG11Y2ggdGhlIDxmdW5jdGlvbj5pbm5lcl9jb25zaXN0ZW50PC9mdW5jdGlvbj4gZnVuY3Rp b24gbm9ybWFsbHkKKyAgICBhc3N1bWVzIGFib3V0IHRoZSBtZWFuaW5nIG9mIHRoZSBub2Rlcy4K KyAgIDwvcGFyYT4KKyAgPC9zZWN0Mz4KKworIDwvc2VjdDI+CisKKyA8c2VjdDIgaWQ9InNwZ2lz dC1leGFtcGxlcyI+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBU aGUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBzb3VyY2UgZGlzdHJpYnV0 aW9uIGluY2x1ZGVzCisgICBzZXZlcmFsIGV4YW1wbGVzIG9mIGluZGV4IG9wZXJhdG9yIGNsYXNz ZXMgZm9yIDxhY3JvbnltPlNQLUdpU1Q8L2Fjcm9ueW0+LAorICAgYXMgZGVzY3JpYmVkIGluIDx4 cmVmIGxpbmtlbmQ9InNwZ2lzdC1idWlsdGluLW9wY2xhc3Nlcy10YWJsZSIvPi4gIExvb2sKKyAg IGludG8gPGZpbGVuYW1lPnNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3QvPC9maWxlbmFtZT4KKyAg IGFuZCA8ZmlsZW5hbWU+c3JjL2JhY2tlbmQvdXRpbHMvYWR0LzwvZmlsZW5hbWU+IHRvIHNlZSB0 aGUgY29kZS4KKyAgPC9wYXJhPgorCisgPC9zZWN0Mj4KKworIDwvc2VjdDE+CisKKyA8c2VjdDEg aWQ9ImdpbiI+CisgPHRpdGxlPkdJTiBJbmRleGVzPC90aXRsZT4KKworICAgIDxpbmRleHRlcm0+ CisgICAgIDxwcmltYXJ5PmluZGV4PC9wcmltYXJ5PgorICAgICA8c2Vjb25kYXJ5PkdJTjwvc2Vj b25kYXJ5PgorICAgIDwvaW5kZXh0ZXJtPgorCisgPHNlY3QyIGlkPSJnaW4taW50cm8iPgorICA8 dGl0bGU+SW50cm9kdWN0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxhY3JvbnltPkdJTjwv YWNyb255bT4gc3RhbmRzIGZvciBHZW5lcmFsaXplZCBJbnZlcnRlZCBJbmRleC4KKyAgIDxhY3Jv bnltPkdJTjwvYWNyb255bT4gaXMgZGVzaWduZWQgZm9yIGhhbmRsaW5nIGNhc2VzIHdoZXJlIHRo ZSBpdGVtcworICAgdG8gYmUgaW5kZXhlZCBhcmUgY29tcG9zaXRlIHZhbHVlcywgYW5kIHRoZSBx dWVyaWVzIHRvIGJlIGhhbmRsZWQgYnkKKyAgIHRoZSBpbmRleCBuZWVkIHRvIHNlYXJjaCBmb3Ig ZWxlbWVudCB2YWx1ZXMgdGhhdCBhcHBlYXIgd2l0aGluCisgICB0aGUgY29tcG9zaXRlIGl0ZW1z LiAgRm9yIGV4YW1wbGUsIHRoZSBpdGVtcyBjb3VsZCBiZSBkb2N1bWVudHMsCisgICBhbmQgdGhl IHF1ZXJpZXMgY291bGQgYmUgc2VhcmNoZXMgZm9yIGRvY3VtZW50cyBjb250YWluaW5nIHNwZWNp ZmljIHdvcmRzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXZSB1c2UgdGhlIHdvcmQgPGZp cnN0dGVybT5pdGVtPC9maXJzdHRlcm0+IHRvIHJlZmVyIHRvIGEgY29tcG9zaXRlIHZhbHVlIHRo YXQKKyAgIGlzIHRvIGJlIGluZGV4ZWQsIGFuZCB0aGUgd29yZCA8Zmlyc3R0ZXJtPmtleTwvZmly c3R0ZXJtPiB0byByZWZlciB0byBhbiBlbGVtZW50CisgICB2YWx1ZS4gIDxhY3JvbnltPkdJTjwv YWNyb255bT4gYWx3YXlzIHN0b3JlcyBhbmQgc2VhcmNoZXMgZm9yIGtleXMsCisgICBub3QgaXRl bSB2YWx1ZXMgcGVyIHNlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBBIDxhY3JvbnltPkdJ TjwvYWNyb255bT4gaW5kZXggc3RvcmVzIGEgc2V0IG9mIChrZXksIHBvc3RpbmcgbGlzdCkgcGFp cnMsCisgICB3aGVyZSBhIDxmaXJzdHRlcm0+cG9zdGluZyBsaXN0PC9maXJzdHRlcm0+IGlzIGEg c2V0IG9mIHJvdyBJRHMgaW4gd2hpY2ggdGhlIGtleQorICAgb2NjdXJzLiAgVGhlIHNhbWUgcm93 IElEIGNhbiBhcHBlYXIgaW4gbXVsdGlwbGUgcG9zdGluZyBsaXN0cywgc2luY2UKKyAgIGFuIGl0 ZW0gY2FuIGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBrZXkuICBFYWNoIGtleSB2YWx1ZSBpcyBzdG9y ZWQgb25seQorICAgb25jZSwgc28gYSA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGluZGV4IGlzIHZl cnkgY29tcGFjdCBmb3IgY2FzZXMKKyAgIHdoZXJlIHRoZSBzYW1lIGtleSBhcHBlYXJzIG1hbnkg dGltZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIDxhY3JvbnltPkdJTjwvYWNyb255bT4g aXMgZ2VuZXJhbGl6ZWQgaW4gdGhlIHNlbnNlIHRoYXQgdGhlCisgICA8YWNyb255bT5HSU48L2Fj cm9ueW0+IGFjY2VzcyBtZXRob2QgY29kZSBkb2VzIG5vdCBuZWVkIHRvIGtub3cgdGhlCisgICBz cGVjaWZpYyBvcGVyYXRpb25zIHRoYXQgaXQgYWNjZWxlcmF0ZXMuCisgICBJbnN0ZWFkLCBpdCB1 c2VzIGN1c3RvbSBzdHJhdGVnaWVzIGRlZmluZWQgZm9yIHBhcnRpY3VsYXIgZGF0YSB0eXBlcy4K KyAgIFRoZSBzdHJhdGVneSBkZWZpbmVzIGhvdyBrZXlzIGFyZSBleHRyYWN0ZWQgZnJvbSBpbmRl eGVkIGl0ZW1zIGFuZAorICAgcXVlcnkgY29uZGl0aW9ucywgYW5kIGhvdyB0byBkZXRlcm1pbmUg d2hldGhlciBhIHJvdyB0aGF0IGNvbnRhaW5zCisgICBzb21lIG9mIHRoZSBrZXkgdmFsdWVzIGlu IGEgcXVlcnkgYWN0dWFsbHkgc2F0aXNmaWVzIHRoZSBxdWVyeS4KKyAgPC9wYXJhPgorCisgIDxw YXJhPgorICAgT25lIGFkdmFudGFnZSBvZiA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGlzIHRoYXQg aXQgYWxsb3dzIHRoZSBkZXZlbG9wbWVudAorICAgb2YgY3VzdG9tIGRhdGEgdHlwZXMgd2l0aCB0 aGUgYXBwcm9wcmlhdGUgYWNjZXNzIG1ldGhvZHMsIGJ5CisgICBhbiBleHBlcnQgaW4gdGhlIGRv bWFpbiBvZiB0aGUgZGF0YSB0eXBlLCByYXRoZXIgdGhhbiBhIGRhdGFiYXNlIGV4cGVydC4KKyAg IFRoaXMgaXMgbXVjaCB0aGUgc2FtZSBhZHZhbnRhZ2UgYXMgdXNpbmcgPGFjcm9ueW0+R2lTVDwv YWNyb255bT4uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSA8YWNyb255bT5HSU48L2Fj cm9ueW0+CisgICBpbXBsZW1lbnRhdGlvbiBpbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJv ZHVjdG5hbWU+IGlzIHByaW1hcmlseQorICAgbWFpbnRhaW5lZCBieSBUZW9kb3IgU2lnYWV2IGFu ZCBPbGVnIEJhcnR1bm92LiBUaGVyZSBpcyBtb3JlCisgICBpbmZvcm1hdGlvbiBhYm91dCA8YWNy b255bT5HSU48L2Fjcm9ueW0+IG9uIHRoZWlyCisgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LnNh aS5tc3Uuc3Uvfm1lZ2VyYS93aWtpL0dpbiI+d2Vic2l0ZTwvdWxpbms+LgorICA8L3BhcmE+Cisg PC9zZWN0Mj4KKworIDxzZWN0MiBpZD0iZ2luLWJ1aWx0aW4tb3BjbGFzc2VzIj4KKyAgPHRpdGxl PkJ1aWx0LWluIE9wZXJhdG9yIENsYXNzZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIGNv cmUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBkaXN0cmlidXRpb24KKyAg IGluY2x1ZGVzIHRoZSA8YWNyb255bT5HSU48L2Fjcm9ueW0+IG9wZXJhdG9yIGNsYXNzZXMgc2hv d24gaW4KKyAgIDx4cmVmIGxpbmtlbmQ9Imdpbi1idWlsdGluLW9wY2xhc3Nlcy10YWJsZSIvPi4K KyAgIChTb21lIG9mIHRoZSBvcHRpb25hbCBtb2R1bGVzIGRlc2NyaWJlZCBpbiA8eHJlZiBsaW5r ZW5kPSJjb250cmliIi8+CisgICBwcm92aWRlIGFkZGl0aW9uYWwgPGFjcm9ueW0+R0lOPC9hY3Jv bnltPiBvcGVyYXRvciBjbGFzc2VzLikKKyAgPC9wYXJhPgorCisgICA8dGFibGUgaWQ9Imdpbi1i dWlsdGluLW9wY2xhc3Nlcy10YWJsZSI+CisgICAgPHRpdGxlPkJ1aWx0LWluIDxhY3JvbnltPkdJ TjwvYWNyb255bT4gT3BlcmF0b3IgQ2xhc3NlczwvdGl0bGU+CisgICAgPHRncm91cCBjb2xzPSIy Ij4KKyAgICAgPHRoZWFkPgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+TmFtZTwvZW50cnk+ CisgICAgICAgPGVudHJ5PkluZGV4YWJsZSBPcGVyYXRvcnM8L2VudHJ5PgorICAgICAgPC9yb3c+ CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5 IG1vcmVyb3dzPSIzIiB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+YXJyYXlfb3BzPC9saXRlcmFs PjwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPiZhbXA7JmFtcDsgKGFueWFycmF5LGFu eWFycmF5KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5AJmd0OyAoYW55YXJyYXksYW55YXJyYXkpPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFs PiZsdDtAIChhbnlhcnJheSxhbnlhcnJheSk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDwvcm93 PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoYW55YXJyYXksYW55YXJy YXkpPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAg PGVudHJ5IG1vcmVyb3dzPSI1IiB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+anNvbmJfb3BzPC9s aXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChqc29uYixqc29u Yik8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8 ZW50cnk+PGxpdGVyYWw+QD8gKGpzb25iLGpzb25wYXRoKTwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5AQCAoanNvbmIs anNvbnBhdGgpPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+Cisg ICAgICAgPGVudHJ5PjxsaXRlcmFsPj8gKGpzb25iLHRleHQpPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPj98IChqc29u Yix0ZXh0W10pPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+Cisg ICAgICAgPGVudHJ5PjxsaXRlcmFsPj8mYW1wOyAoanNvbmIsdGV4dFtdKTwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSBtb3Jlcm93cz0i MiIgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPmpzb25iX3BhdGhfb3BzPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChqc29uYixqc29uYik8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVy YWw+QD8gKGpzb25iLGpzb25wYXRoKTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPC9yb3c+Cisg ICAgICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5AQCAoanNvbmIsanNvbnBhdGgpPC9s aXRlcmFsPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5 IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD50c3ZlY3Rvcl9vcHM8L2xpdGVyYWw+PC9lbnRyeT4K KyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QEAgKHRzdmVjdG9yLHRzcXVlcnkpPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9keT4KKyAgICA8L3Rncm91cD4KKyAgIDwv dGFibGU+CisKKyAgPHBhcmE+CisgICBPZiB0aGUgdHdvIG9wZXJhdG9yIGNsYXNzZXMgZm9yIHR5 cGUgPHR5cGU+anNvbmI8L3R5cGU+LCA8bGl0ZXJhbD5qc29uYl9vcHM8L2xpdGVyYWw+CisgICBp cyB0aGUgZGVmYXVsdC4gIDxsaXRlcmFsPmpzb25iX3BhdGhfb3BzPC9saXRlcmFsPiBzdXBwb3J0 cyBmZXdlciBvcGVyYXRvcnMgYnV0CisgICBvZmZlcnMgYmV0dGVyIHBlcmZvcm1hbmNlIGZvciB0 aG9zZSBvcGVyYXRvcnMuCisgICBTZWUgPHhyZWYgbGlua2VuZD0ianNvbi1pbmRleGluZyIvPiBm b3IgZGV0YWlscy4KKyAgPC9wYXJhPgorCisgPC9zZWN0Mj4KKworIDxzZWN0MiBpZD0iZ2luLWV4 dGVuc2liaWxpdHkiPgorICA8dGl0bGU+RXh0ZW5zaWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+ CisgICAgVGhlIDxhY3JvbnltPkdJTjwvYWNyb255bT4gaW50ZXJmYWNlIGhhcyBhIGhpZ2ggbGV2 ZWwgb2YgYWJzdHJhY3Rpb24sCisgICAgcmVxdWlyaW5nIHRoZSBhY2Nlc3MgbWV0aG9kIGltcGxl bWVudGVyIG9ubHkgdG8gaW1wbGVtZW50IHRoZSBzZW1hbnRpY3Mgb2YKKyAgICB0aGUgZGF0YSB0 eXBlIGJlaW5nIGFjY2Vzc2VkLiAgVGhlIDxhY3JvbnltPkdJTjwvYWNyb255bT4gbGF5ZXIgaXRz ZWxmCisgICAgdGFrZXMgY2FyZSBvZiBjb25jdXJyZW5jeSwgbG9nZ2luZyBhbmQgc2VhcmNoaW5n IHRoZSB0cmVlIHN0cnVjdHVyZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgIEFsbCBpdCB0 YWtlcyB0byBnZXQgYSA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGFjY2VzcyBtZXRob2Qgd29ya2lu ZyBpcyB0bworICAgIGltcGxlbWVudCBhIGZldyB1c2VyLWRlZmluZWQgbWV0aG9kcywgd2hpY2gg ZGVmaW5lIHRoZSBiZWhhdmlvciBvZgorICAgIGtleXMgaW4gdGhlIHRyZWUgYW5kIHRoZSByZWxh dGlvbnNoaXBzIGJldHdlZW4ga2V5cywgaW5kZXhlZCBpdGVtcywKKyAgICBhbmQgaW5kZXhhYmxl IHF1ZXJpZXMuIEluIHNob3J0LCA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGNvbWJpbmVzCisgICAg ZXh0ZW5zaWJpbGl0eSB3aXRoIGdlbmVyYWxpdHksIGNvZGUgcmV1c2UsIGFuZCBhIGNsZWFuIGlu dGVyZmFjZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgIFRoZXJlIGFyZSB0d28gbWV0aG9k cyB0aGF0IGFuIG9wZXJhdG9yIGNsYXNzIGZvcgorICAgIDxhY3JvbnltPkdJTjwvYWNyb255bT4g bXVzdCBwcm92aWRlOgorCisgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgPHRlcm0+PGZ1bmN0aW9uPkRhdHVtICpleHRyYWN0VmFsdWUoRGF0dW0gaXRlbVZhbHVl LCBpbnQzMiAqbmtleXMsCisgICAgICAgICBib29sICoqbnVsbEZsYWdzKTwvZnVuY3Rpb24+PC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBSZXR1cm5zIGEg cGFsbG9jJ2QgYXJyYXkgb2Yga2V5cyBnaXZlbiBhbiBpdGVtIHRvIGJlIGluZGV4ZWQuICBUaGUK KyAgICAgICAgbnVtYmVyIG9mIHJldHVybmVkIGtleXMgbXVzdCBiZSBzdG9yZWQgaW50byA8bGl0 ZXJhbD4qbmtleXM8L2xpdGVyYWw+LgorICAgICAgICBJZiBhbnkgb2YgdGhlIGtleXMgY2FuIGJl IG51bGwsIGFsc28gcGFsbG9jIGFuIGFycmF5IG9mCisgICAgICAgIDxsaXRlcmFsPipua2V5czwv bGl0ZXJhbD4gPHR5cGU+Ym9vbDwvdHlwZT4gZmllbGRzLCBzdG9yZSBpdHMgYWRkcmVzcyBhdAor ICAgICAgICA8bGl0ZXJhbD4qbnVsbEZsYWdzPC9saXRlcmFsPiwgYW5kIHNldCB0aGVzZSBudWxs IGZsYWdzIGFzIG5lZWRlZC4KKyAgICAgICAgPGxpdGVyYWw+Km51bGxGbGFnczwvbGl0ZXJhbD4g Y2FuIGJlIGxlZnQgPHN5bWJvbD5OVUxMPC9zeW1ib2w+IChpdHMgaW5pdGlhbCB2YWx1ZSkKKyAg ICAgICAgaWYgYWxsIGtleXMgYXJlIG5vbi1udWxsLgorICAgICAgICBUaGUgcmV0dXJuIHZhbHVl IGNhbiBiZSA8c3ltYm9sPk5VTEw8L3N5bWJvbD4gaWYgdGhlIGl0ZW0gY29udGFpbnMgbm8ga2V5 cy4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPkRhdHVtICpl eHRyYWN0UXVlcnkoRGF0dW0gcXVlcnksIGludDMyICpua2V5cywKKyAgICAgICAgIFN0cmF0ZWd5 TnVtYmVyIG4sIGJvb2wgKipwbWF0Y2gsIFBvaW50ZXIgKipleHRyYV9kYXRhLAorICAgICAgICAg Ym9vbCAqKm51bGxGbGFncywgaW50MzIgKnNlYXJjaE1vZGUpPC9mdW5jdGlvbj48L3Rlcm0+Cisg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFJldHVybnMgYSBwYWxsb2Mn ZCBhcnJheSBvZiBrZXlzIGdpdmVuIGEgdmFsdWUgdG8gYmUgcXVlcmllZDsgdGhhdCBpcywKKyAg ICAgICAgPGxpdGVyYWw+cXVlcnk8L2xpdGVyYWw+IGlzIHRoZSB2YWx1ZSBvbiB0aGUgcmlnaHQt aGFuZCBzaWRlIG9mIGFuCisgICAgICAgIGluZGV4YWJsZSBvcGVyYXRvciB3aG9zZSBsZWZ0LWhh bmQgc2lkZSBpcyB0aGUgaW5kZXhlZCBjb2x1bW4uCisgICAgICAgIDxsaXRlcmFsPm48L2xpdGVy YWw+IGlzIHRoZSBzdHJhdGVneSBudW1iZXIgb2YgdGhlIG9wZXJhdG9yIHdpdGhpbiB0aGUKKyAg ICAgICAgb3BlcmF0b3IgY2xhc3MgKHNlZSA8eHJlZiBsaW5rZW5kPSJ4aW5kZXgtc3RyYXRlZ2ll cyIvPikuCisgICAgICAgIE9mdGVuLCA8ZnVuY3Rpb24+ZXh0cmFjdFF1ZXJ5PC9mdW5jdGlvbj4g d2lsbCBuZWVkCisgICAgICAgIHRvIGNvbnN1bHQgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gdG8gZGV0 ZXJtaW5lIHRoZSBkYXRhIHR5cGUgb2YKKyAgICAgICAgPGxpdGVyYWw+cXVlcnk8L2xpdGVyYWw+ IGFuZCB0aGUgbWV0aG9kIGl0IHNob3VsZCB1c2UgdG8gZXh0cmFjdCBrZXkgdmFsdWVzLgorICAg ICAgICBUaGUgbnVtYmVyIG9mIHJldHVybmVkIGtleXMgbXVzdCBiZSBzdG9yZWQgaW50byA8bGl0 ZXJhbD4qbmtleXM8L2xpdGVyYWw+LgorICAgICAgICBJZiBhbnkgb2YgdGhlIGtleXMgY2FuIGJl IG51bGwsIGFsc28gcGFsbG9jIGFuIGFycmF5IG9mCisgICAgICAgIDxsaXRlcmFsPipua2V5czwv bGl0ZXJhbD4gPHR5cGU+Ym9vbDwvdHlwZT4gZmllbGRzLCBzdG9yZSBpdHMgYWRkcmVzcyBhdAor ICAgICAgICA8bGl0ZXJhbD4qbnVsbEZsYWdzPC9saXRlcmFsPiwgYW5kIHNldCB0aGVzZSBudWxs IGZsYWdzIGFzIG5lZWRlZC4KKyAgICAgICAgPGxpdGVyYWw+Km51bGxGbGFnczwvbGl0ZXJhbD4g Y2FuIGJlIGxlZnQgPHN5bWJvbD5OVUxMPC9zeW1ib2w+IChpdHMgaW5pdGlhbCB2YWx1ZSkKKyAg ICAgICAgaWYgYWxsIGtleXMgYXJlIG5vbi1udWxsLgorICAgICAgICBUaGUgcmV0dXJuIHZhbHVl IGNhbiBiZSA8c3ltYm9sPk5VTEw8L3N5bWJvbD4gaWYgdGhlIDxsaXRlcmFsPnF1ZXJ5PC9saXRl cmFsPiBjb250YWlucyBubyBrZXlzLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgor ICAgICAgICA8bGl0ZXJhbD5zZWFyY2hNb2RlPC9saXRlcmFsPiBpcyBhbiBvdXRwdXQgYXJndW1l bnQgdGhhdCBhbGxvd3MKKyAgICAgICAgPGZ1bmN0aW9uPmV4dHJhY3RRdWVyeTwvZnVuY3Rpb24+ IHRvIHNwZWNpZnkgZGV0YWlscyBhYm91dCBob3cgdGhlIHNlYXJjaAorICAgICAgICB3aWxsIGJl IGRvbmUuCisgICAgICAgIElmIDxsaXRlcmFsPipzZWFyY2hNb2RlPC9saXRlcmFsPiBpcyBzZXQg dG8KKyAgICAgICAgPGxpdGVyYWw+R0lOX1NFQVJDSF9NT0RFX0RFRkFVTFQ8L2xpdGVyYWw+ICh3 aGljaCBpcyB0aGUgdmFsdWUgaXQgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQgdG8gYmVmb3JlIGNh bGwpLCBvbmx5IGl0ZW1zIHRoYXQgbWF0Y2ggYXQgbGVhc3Qgb25lIG9mCisgICAgICAgIHRoZSBy ZXR1cm5lZCBrZXlzIGFyZSBjb25zaWRlcmVkIGNhbmRpZGF0ZSBtYXRjaGVzLgorICAgICAgICBJ ZiA8bGl0ZXJhbD4qc2VhcmNoTW9kZTwvbGl0ZXJhbD4gaXMgc2V0IHRvCisgICAgICAgIDxsaXRl cmFsPkdJTl9TRUFSQ0hfTU9ERV9JTkNMVURFX0VNUFRZPC9saXRlcmFsPiwgdGhlbiBpbiBhZGRp dGlvbiB0byBpdGVtcworICAgICAgICBjb250YWluaW5nIGF0IGxlYXN0IG9uZSBtYXRjaGluZyBr ZXksIGl0ZW1zIHRoYXQgY29udGFpbiBubyBrZXlzIGF0CisgICAgICAgIGFsbCBhcmUgY29uc2lk ZXJlZCBjYW5kaWRhdGUgbWF0Y2hlcy4gIChUaGlzIG1vZGUgaXMgdXNlZnVsIGZvcgorICAgICAg ICBpbXBsZW1lbnRpbmcgaXMtc3Vic2V0LW9mIG9wZXJhdG9ycywgZm9yIGV4YW1wbGUuKQorICAg ICAgICBJZiA8bGl0ZXJhbD4qc2VhcmNoTW9kZTwvbGl0ZXJhbD4gaXMgc2V0IHRvIDxsaXRlcmFs PkdJTl9TRUFSQ0hfTU9ERV9BTEw8L2xpdGVyYWw+LAorICAgICAgICB0aGVuIGFsbCBub24tbnVs bCBpdGVtcyBpbiB0aGUgaW5kZXggYXJlIGNvbnNpZGVyZWQgY2FuZGlkYXRlCisgICAgICAgIG1h dGNoZXMsIHdoZXRoZXIgdGhleSBtYXRjaCBhbnkgb2YgdGhlIHJldHVybmVkIGtleXMgb3Igbm90 LiAgKFRoaXMKKyAgICAgICAgbW9kZSBpcyBtdWNoIHNsb3dlciB0aGFuIHRoZSBvdGhlciB0d28g Y2hvaWNlcywgc2luY2UgaXQgcmVxdWlyZXMKKyAgICAgICAgc2Nhbm5pbmcgZXNzZW50aWFsbHkg dGhlIGVudGlyZSBpbmRleCwgYnV0IGl0IG1heSBiZSBuZWNlc3NhcnkgdG8KKyAgICAgICAgaW1w bGVtZW50IGNvcm5lciBjYXNlcyBjb3JyZWN0bHkuICBBbiBvcGVyYXRvciB0aGF0IG5lZWRzIHRo aXMgbW9kZQorICAgICAgICBpbiBtb3N0IGNhc2VzIGlzIHByb2JhYmx5IG5vdCBhIGdvb2QgY2Fu ZGlkYXRlIGZvciBhIEdJTiBvcGVyYXRvcgorICAgICAgICBjbGFzcy4pCisgICAgICAgIFRoZSBz eW1ib2xzIHRvIHVzZSBmb3Igc2V0dGluZyB0aGlzIG1vZGUgYXJlIGRlZmluZWQgaW4KKyAgICAg ICAgPGZpbGVuYW1lPmFjY2Vzcy9naW4uaDwvZmlsZW5hbWU+LgorICAgICAgIDwvcGFyYT4KKwor ICAgICAgIDxwYXJhPgorICAgICAgICA8bGl0ZXJhbD5wbWF0Y2g8L2xpdGVyYWw+IGlzIGFuIG91 dHB1dCBhcmd1bWVudCBmb3IgdXNlIHdoZW4gcGFydGlhbCBtYXRjaAorICAgICAgICBpcyBzdXBw b3J0ZWQuICBUbyB1c2UgaXQsIDxmdW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiBtdXN0 IGFsbG9jYXRlCisgICAgICAgIGFuIGFycmF5IG9mIDxsaXRlcmFsPipua2V5czwvbGl0ZXJhbD4g PHR5cGU+Ym9vbDwvdHlwZT5zIGFuZCBzdG9yZSBpdHMgYWRkcmVzcyBhdAorICAgICAgICA8bGl0 ZXJhbD4qcG1hdGNoPC9saXRlcmFsPi4gIEVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXkgc2hvdWxk IGJlIHNldCB0byB0cnVlCisgICAgICAgIGlmIHRoZSBjb3JyZXNwb25kaW5nIGtleSByZXF1aXJl cyBwYXJ0aWFsIG1hdGNoLCBmYWxzZSBpZiBub3QuCisgICAgICAgIElmIDxsaXRlcmFsPipwbWF0 Y2g8L2xpdGVyYWw+IGlzIHNldCB0byA8c3ltYm9sPk5VTEw8L3N5bWJvbD4gdGhlbiBHSU4gYXNz dW1lcyBwYXJ0aWFsIG1hdGNoCisgICAgICAgIGlzIG5vdCByZXF1aXJlZC4gIFRoZSB2YXJpYWJs ZSBpcyBpbml0aWFsaXplZCB0byA8c3ltYm9sPk5VTEw8L3N5bWJvbD4gYmVmb3JlIGNhbGwsCisg ICAgICAgIHNvIHRoaXMgYXJndW1lbnQgY2FuIHNpbXBseSBiZSBpZ25vcmVkIGJ5IG9wZXJhdG9y IGNsYXNzZXMgdGhhdCBkbworICAgICAgICBub3Qgc3VwcG9ydCBwYXJ0aWFsIG1hdGNoLgorICAg ICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICA8bGl0ZXJhbD5leHRyYV9kYXRh PC9saXRlcmFsPiBpcyBhbiBvdXRwdXQgYXJndW1lbnQgdGhhdCBhbGxvd3MKKyAgICAgICAgPGZ1 bmN0aW9uPmV4dHJhY3RRdWVyeTwvZnVuY3Rpb24+IHRvIHBhc3MgYWRkaXRpb25hbCBkYXRhIHRv IHRoZQorICAgICAgICA8ZnVuY3Rpb24+Y29uc2lzdGVudDwvZnVuY3Rpb24+IGFuZCA8ZnVuY3Rp b24+Y29tcGFyZVBhcnRpYWw8L2Z1bmN0aW9uPiBtZXRob2RzLgorICAgICAgICBUbyB1c2UgaXQs IDxmdW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiBtdXN0IGFsbG9jYXRlCisgICAgICAg IGFuIGFycmF5IG9mIDxsaXRlcmFsPipua2V5czwvbGl0ZXJhbD4gcG9pbnRlcnMgYW5kIHN0b3Jl IGl0cyBhZGRyZXNzIGF0CisgICAgICAgIDxsaXRlcmFsPipleHRyYV9kYXRhPC9saXRlcmFsPiwg dGhlbiBzdG9yZSB3aGF0ZXZlciBpdCB3YW50cyB0byBpbnRvIHRoZQorICAgICAgICBpbmRpdmlk dWFsIHBvaW50ZXJzLiAgVGhlIHZhcmlhYmxlIGlzIGluaXRpYWxpemVkIHRvIDxzeW1ib2w+TlVM TDwvc3ltYm9sPiBiZWZvcmUKKyAgICAgICAgY2FsbCwgc28gdGhpcyBhcmd1bWVudCBjYW4gc2lt cGx5IGJlIGlnbm9yZWQgYnkgb3BlcmF0b3IgY2xhc3NlcyB0aGF0CisgICAgICAgIGRvIG5vdCBy ZXF1aXJlIGV4dHJhIGRhdGEuICBJZiA8bGl0ZXJhbD4qZXh0cmFfZGF0YTwvbGl0ZXJhbD4gaXMg c2V0LCB0aGUKKyAgICAgICAgd2hvbGUgYXJyYXkgaXMgcGFzc2VkIHRvIHRoZSA8ZnVuY3Rpb24+ Y29uc2lzdGVudDwvZnVuY3Rpb24+IG1ldGhvZCwgYW5kCisgICAgICAgIHRoZSBhcHByb3ByaWF0 ZSBlbGVtZW50IHRvIHRoZSA8ZnVuY3Rpb24+Y29tcGFyZVBhcnRpYWw8L2Z1bmN0aW9uPiBtZXRo b2QuCisgICAgICAgPC9wYXJhPgorCisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3Rl bnRyeT4KKyAgIDwvdmFyaWFibGVsaXN0PgorCisgICBBbiBvcGVyYXRvciBjbGFzcyBtdXN0IGFs c28gcHJvdmlkZSBhIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGFuIGluZGV4ZWQgaXRlbQorICAgbWF0 Y2hlcyB0aGUgcXVlcnkuIEl0IGNvbWVzIGluIHR3byBmbGF2b3JzLCBhIEJvb2xlYW4gPGZ1bmN0 aW9uPmNvbnNpc3RlbnQ8L2Z1bmN0aW9uPgorICAgZnVuY3Rpb24sIGFuZCBhIHRlcm5hcnkgPGZ1 bmN0aW9uPnRyaUNvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KKyAgIDxmdW5jdGlvbj50 cmlDb25zaXN0ZW50PC9mdW5jdGlvbj4gY292ZXJzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGJvdGgs IHNvIHByb3ZpZGluZworICAgPGZ1bmN0aW9uPnRyaUNvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBhbG9u ZSBpcyBzdWZmaWNpZW50LiBIb3dldmVyLCBpZiB0aGUgQm9vbGVhbgorICAgdmFyaWFudCBpcyBz aWduaWZpY2FudGx5IGNoZWFwZXIgdG8gY2FsY3VsYXRlLCBpdCBjYW4gYmUgYWR2YW50YWdlb3Vz IHRvCisgICBwcm92aWRlIGJvdGguICBJZiBvbmx5IHRoZSBCb29sZWFuIHZhcmlhbnQgaXMgcHJv dmlkZWQsIHNvbWUgb3B0aW1pemF0aW9ucworICAgdGhhdCBkZXBlbmQgb24gcmVmdXRpbmcgaW5k ZXggaXRlbXMgYmVmb3JlIGZldGNoaW5nIGFsbCB0aGUga2V5cyBhcmUKKyAgIGRpc2FibGVkLgor CisgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGZ1 bmN0aW9uPmJvb2wgY29uc2lzdGVudChib29sIGNoZWNrW10sIFN0cmF0ZWd5TnVtYmVyIG4sIERh dHVtIHF1ZXJ5LAorICAgICAgICAgaW50MzIgbmtleXMsIFBvaW50ZXIgZXh0cmFfZGF0YVtdLCBi b29sICpyZWNoZWNrLAorICAgICAgICAgRGF0dW0gcXVlcnlLZXlzW10sIGJvb2wgbnVsbEZsYWdz W10pPC9mdW5jdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFJldHVybnMgdHJ1ZSBpZiBhbiBpbmRleGVkIGl0ZW0gc2F0aXNmaWVzIHRoZSBxdWVy eSBvcGVyYXRvciB3aXRoCisgICAgICAgIHN0cmF0ZWd5IG51bWJlciA8bGl0ZXJhbD5uPC9saXRl cmFsPiAob3IgbWlnaHQgc2F0aXNmeSBpdCwgaWYgdGhlIHJlY2hlY2sKKyAgICAgICAgaW5kaWNh dGlvbiBpcyByZXR1cm5lZCkuICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZGlyZWN0IGFj Y2VzcworICAgICAgICB0byB0aGUgaW5kZXhlZCBpdGVtJ3MgdmFsdWUsIHNpbmNlIDxhY3Jvbnlt PkdJTjwvYWNyb255bT4gZG9lcyBub3QKKyAgICAgICAgc3RvcmUgaXRlbXMgZXhwbGljaXRseS4g IFJhdGhlciwgd2hhdCBpcyBhdmFpbGFibGUgaXMga25vd2xlZGdlCisgICAgICAgIGFib3V0IHdo aWNoIGtleSB2YWx1ZXMgZXh0cmFjdGVkIGZyb20gdGhlIHF1ZXJ5IGFwcGVhciBpbiBhIGdpdmVu CisgICAgICAgIGluZGV4ZWQgaXRlbS4gIFRoZSA8bGl0ZXJhbD5jaGVjazwvbGl0ZXJhbD4gYXJy YXkgaGFzIGxlbmd0aAorICAgICAgICA8bGl0ZXJhbD5ua2V5czwvbGl0ZXJhbD4sIHdoaWNoIGlz IHRoZSBzYW1lIGFzIHRoZSBudW1iZXIgb2Yga2V5cyBwcmV2aW91c2x5CisgICAgICAgIHJldHVy bmVkIGJ5IDxmdW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiBmb3IgdGhpcyA8bGl0ZXJh bD5xdWVyeTwvbGl0ZXJhbD4gZGF0dW0uCisgICAgICAgIEVhY2ggZWxlbWVudCBvZiB0aGUKKyAg ICAgICAgPGxpdGVyYWw+Y2hlY2s8L2xpdGVyYWw+IGFycmF5IGlzIHRydWUgaWYgdGhlIGluZGV4 ZWQgaXRlbSBjb250YWlucyB0aGUKKyAgICAgICAgY29ycmVzcG9uZGluZyBxdWVyeSBrZXksIGku ZS4sIGlmIChjaGVja1tpXSA9PSB0cnVlKSB0aGUgaS10aCBrZXkgb2YgdGhlCisgICAgICAgIDxm dW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiByZXN1bHQgYXJyYXkgaXMgcHJlc2VudCBp biB0aGUgaW5kZXhlZCBpdGVtLgorICAgICAgICBUaGUgb3JpZ2luYWwgPGxpdGVyYWw+cXVlcnk8 L2xpdGVyYWw+IGRhdHVtIGlzCisgICAgICAgIHBhc3NlZCBpbiBjYXNlIHRoZSA8ZnVuY3Rpb24+ Y29uc2lzdGVudDwvZnVuY3Rpb24+IG1ldGhvZCBuZWVkcyB0byBjb25zdWx0IGl0LAorICAgICAg ICBhbmQgc28gYXJlIHRoZSA8bGl0ZXJhbD5xdWVyeUtleXNbXTwvbGl0ZXJhbD4gYW5kIDxsaXRl cmFsPm51bGxGbGFnc1tdPC9saXRlcmFsPgorICAgICAgICBhcnJheXMgcHJldmlvdXNseSByZXR1 cm5lZCBieSA8ZnVuY3Rpb24+ZXh0cmFjdFF1ZXJ5PC9mdW5jdGlvbj4uCisgICAgICAgIDxsaXRl cmFsPmV4dHJhX2RhdGE8L2xpdGVyYWw+IGlzIHRoZSBleHRyYS1kYXRhIGFycmF5IHJldHVybmVk IGJ5CisgICAgICAgIDxmdW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiwgb3IgPHN5bWJv bD5OVUxMPC9zeW1ib2w+IGlmIG5vbmUuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+ CisgICAgICAgIFdoZW4gPGZ1bmN0aW9uPmV4dHJhY3RRdWVyeTwvZnVuY3Rpb24+IHJldHVybnMg YSBudWxsIGtleSBpbgorICAgICAgICA8bGl0ZXJhbD5xdWVyeUtleXNbXTwvbGl0ZXJhbD4sIHRo ZSBjb3JyZXNwb25kaW5nIDxsaXRlcmFsPmNoZWNrW108L2xpdGVyYWw+IGVsZW1lbnQKKyAgICAg ICAgaXMgdHJ1ZSBpZiB0aGUgaW5kZXhlZCBpdGVtIGNvbnRhaW5zIGEgbnVsbCBrZXk7IHRoYXQg aXMsIHRoZQorICAgICAgICBzZW1hbnRpY3Mgb2YgPGxpdGVyYWw+Y2hlY2tbXTwvbGl0ZXJhbD4g YXJlIGxpa2UgPGxpdGVyYWw+SVMgTk9UIERJU1RJTkNUCisgICAgICAgIEZST008L2xpdGVyYWw+ LiAgVGhlIDxmdW5jdGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4gZnVuY3Rpb24gY2FuIGV4YW1p bmUgdGhlCisgICAgICAgIGNvcnJlc3BvbmRpbmcgPGxpdGVyYWw+bnVsbEZsYWdzW108L2xpdGVy YWw+IGVsZW1lbnQgaWYgaXQgbmVlZHMgdG8gdGVsbAorICAgICAgICB0aGUgZGlmZmVyZW5jZSBi ZXR3ZWVuIGEgcmVndWxhciB2YWx1ZSBtYXRjaCBhbmQgYSBudWxsIG1hdGNoLgorICAgICAgIDwv cGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBPbiBzdWNjZXNzLCA8bGl0ZXJhbD4qcmVj aGVjazwvbGl0ZXJhbD4gc2hvdWxkIGJlIHNldCB0byB0cnVlIGlmIHRoZSBoZWFwCisgICAgICAg IHR1cGxlIG5lZWRzIHRvIGJlIHJlY2hlY2tlZCBhZ2FpbnN0IHRoZSBxdWVyeSBvcGVyYXRvciwg b3IgZmFsc2UgaWYKKyAgICAgICAgdGhlIGluZGV4IHRlc3QgaXMgZXhhY3QuICBUaGF0IGlzLCBh IGZhbHNlIHJldHVybiB2YWx1ZSBndWFyYW50ZWVzCisgICAgICAgIHRoYXQgdGhlIGhlYXAgdHVw bGUgZG9lcyBub3QgbWF0Y2ggdGhlIHF1ZXJ5OyBhIHRydWUgcmV0dXJuIHZhbHVlIHdpdGgKKyAg ICAgICAgPGxpdGVyYWw+KnJlY2hlY2s8L2xpdGVyYWw+IHNldCB0byBmYWxzZSBndWFyYW50ZWVz IHRoYXQgdGhlIGhlYXAgdHVwbGUgZG9lcworICAgICAgICBtYXRjaCB0aGUgcXVlcnk7IGFuZCBh IHRydWUgcmV0dXJuIHZhbHVlIHdpdGgKKyAgICAgICAgPGxpdGVyYWw+KnJlY2hlY2s8L2xpdGVy YWw+IHNldCB0byB0cnVlIG1lYW5zIHRoYXQgdGhlIGhlYXAgdHVwbGUgbWlnaHQgbWF0Y2gKKyAg ICAgICAgdGhlIHF1ZXJ5LCBzbyBpdCBuZWVkcyB0byBiZSBmZXRjaGVkIGFuZCByZWNoZWNrZWQg YnkgZXZhbHVhdGluZyB0aGUKKyAgICAgICAgcXVlcnkgb3BlcmF0b3IgZGlyZWN0bHkgYWdhaW5z dCB0aGUgb3JpZ2luYWxseSBpbmRleGVkIGl0ZW0uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgIDx0ZXJtPjxmdW5jdGlvbj5HaW5UZXJuYXJ5VmFsdWUgdHJpQ29uc2lzdGVudChHaW5UZXJu YXJ5VmFsdWUgY2hlY2tbXSwgU3RyYXRlZ3lOdW1iZXIgbiwgRGF0dW0gcXVlcnksCisgICAgICAg ICBpbnQzMiBua2V5cywgUG9pbnRlciBleHRyYV9kYXRhW10sCisgICAgICAgICBEYXR1bSBxdWVy eUtleXNbXSwgYm9vbCBudWxsRmxhZ3NbXSk8L2Z1bmN0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGZ1bmN0aW9uPnRyaUNvbnNpc3RlbnQ8L2Z1 bmN0aW9uPiBpcyBzaW1pbGFyIHRvIDxmdW5jdGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4sCisg ICAgICAgIGJ1dCBpbnN0ZWFkIG9mIEJvb2xlYW5zIGluIHRoZSA8bGl0ZXJhbD5jaGVjazwvbGl0 ZXJhbD4gdmVjdG9yLCB0aGVyZSBhcmUKKyAgICAgICAgdGhyZWUgcG9zc2libGUgdmFsdWVzIGZv ciBlYWNoCisgICAgICAgIGtleTogPGxpdGVyYWw+R0lOX1RSVUU8L2xpdGVyYWw+LCA8bGl0ZXJh bD5HSU5fRkFMU0U8L2xpdGVyYWw+IGFuZAorICAgICAgICA8bGl0ZXJhbD5HSU5fTUFZQkU8L2xp dGVyYWw+LiA8bGl0ZXJhbD5HSU5fRkFMU0U8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5HSU5fVFJV RTwvbGl0ZXJhbD4KKyAgICAgICAgaGF2ZSB0aGUgc2FtZSBtZWFuaW5nIGFzIHJlZ3VsYXIgQm9v bGVhbiB2YWx1ZXMsIHdoaWxlCisgICAgICAgIDxsaXRlcmFsPkdJTl9NQVlCRTwvbGl0ZXJhbD4g bWVhbnMgdGhhdCB0aGUgcHJlc2VuY2Ugb2YgdGhhdCBrZXkgaXMgbm90IGtub3duLgorICAgICAg ICBXaGVuIDxsaXRlcmFsPkdJTl9NQVlCRTwvbGl0ZXJhbD4gdmFsdWVzIGFyZSBwcmVzZW50LCB0 aGUgZnVuY3Rpb24gc2hvdWxkIG9ubHkKKyAgICAgICAgcmV0dXJuIDxsaXRlcmFsPkdJTl9UUlVF PC9saXRlcmFsPiBpZiB0aGUgaXRlbSBjZXJ0YWlubHkgbWF0Y2hlcyB3aGV0aGVyIG9yCisgICAg ICAgIG5vdCB0aGUgaW5kZXggaXRlbSBjb250YWlucyB0aGUgY29ycmVzcG9uZGluZyBxdWVyeSBr ZXlzLiBMaWtld2lzZSwgdGhlCisgICAgICAgIGZ1bmN0aW9uIG11c3QgcmV0dXJuIDxsaXRlcmFs PkdJTl9GQUxTRTwvbGl0ZXJhbD4gb25seSBpZiB0aGUgaXRlbSBjZXJ0YWlubHkKKyAgICAgICAg ZG9lcyBub3QgbWF0Y2gsIHdoZXRoZXIgb3Igbm90IGl0IGNvbnRhaW5zIHRoZSA8bGl0ZXJhbD5H SU5fTUFZQkU8L2xpdGVyYWw+CisgICAgICAgIGtleXMuIElmIHRoZSByZXN1bHQgZGVwZW5kcyBv biB0aGUgPGxpdGVyYWw+R0lOX01BWUJFPC9saXRlcmFsPiBlbnRyaWVzLCBpLmUuLAorICAgICAg ICB0aGUgbWF0Y2ggY2Fubm90IGJlIGNvbmZpcm1lZCBvciByZWZ1dGVkIGJhc2VkIG9uIHRoZSBr bm93biBxdWVyeSBrZXlzLAorICAgICAgICB0aGUgZnVuY3Rpb24gbXVzdCByZXR1cm4gPGxpdGVy YWw+R0lOX01BWUJFPC9saXRlcmFsPi4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFdoZW4gdGhlcmUgYXJlIG5vIDxsaXRlcmFsPkdJTl9NQVlCRTwvbGl0ZXJhbD4gdmFs dWVzIGluIHRoZSA8bGl0ZXJhbD5jaGVjazwvbGl0ZXJhbD4KKyAgICAgICAgdmVjdG9yLCBhIDxs aXRlcmFsPkdJTl9NQVlCRTwvbGl0ZXJhbD4gcmV0dXJuIHZhbHVlIGlzIHRoZSBlcXVpdmFsZW50 IG9mCisgICAgICAgIHNldHRpbmcgdGhlIDxsaXRlcmFsPnJlY2hlY2s8L2xpdGVyYWw+IGZsYWcg aW4gdGhlCisgICAgICAgIEJvb2xlYW4gPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBm dW5jdGlvbi4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxp c3RlbnRyeT4KKyAgIDwvdmFyaWFibGVsaXN0PgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBJ biBhZGRpdGlvbiwgR0lOIG11c3QgaGF2ZSBhIHdheSB0byBzb3J0IHRoZSBrZXkgdmFsdWVzIHN0 b3JlZCBpbiB0aGUgaW5kZXguCisgICBUaGUgb3BlcmF0b3IgY2xhc3MgY2FuIGRlZmluZSB0aGUg c29ydCBvcmRlcmluZyBieSBzcGVjaWZ5aW5nIGEgY29tcGFyaXNvbgorICAgbWV0aG9kOgorCisg ICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGZ1bmN0 aW9uPmludCBjb21wYXJlKERhdHVtIGEsIERhdHVtIGIpPC9mdW5jdGlvbj48L3Rlcm0+CisgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIENvbXBhcmVzIHR3byBrZXlzIChu b3QgaW5kZXhlZCBpdGVtcyEpIGFuZCByZXR1cm5zIGFuIGludGVnZXIgbGVzcyB0aGFuCisgICAg ICAgIHplcm8sIHplcm8sIG9yIGdyZWF0ZXIgdGhhbiB6ZXJvLCBpbmRpY2F0aW5nIHdoZXRoZXIg dGhlIGZpcnN0IGtleSBpcworICAgICAgICBsZXNzIHRoYW4sIGVxdWFsIHRvLCBvciBncmVhdGVy IHRoYW4gdGhlIHNlY29uZC4gIE51bGwga2V5cyBhcmUgbmV2ZXIKKyAgICAgICAgcGFzc2VkIHRv IHRoaXMgZnVuY3Rpb24uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAg PC92YXJsaXN0ZW50cnk+CisgICA8L3ZhcmlhYmxlbGlzdD4KKworICAgQWx0ZXJuYXRpdmVseSwg aWYgdGhlIG9wZXJhdG9yIGNsYXNzIGRvZXMgbm90IHByb3ZpZGUgYSA8ZnVuY3Rpb24+Y29tcGFy ZTwvZnVuY3Rpb24+CisgICBtZXRob2QsIEdJTiB3aWxsIGxvb2sgdXAgdGhlIGRlZmF1bHQgYnRy ZWUgb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleAorICAga2V5IGRhdGEgdHlwZSwgYW5kIHVz ZSBpdHMgY29tcGFyaXNvbiBmdW5jdGlvbi4gIEl0IGlzIHJlY29tbWVuZGVkIHRvCisgICBzcGVj aWZ5IHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uIGluIGEgR0lOIG9wZXJhdG9yIGNsYXNzIHRoYXQg aXMgbWVhbnQgZm9yCisgICBqdXN0IG9uZSBkYXRhIHR5cGUsIGFzIGxvb2tpbmcgdXAgdGhlIGJ0 cmVlIG9wZXJhdG9yIGNsYXNzIGNvc3RzIGEgZmV3CisgICBjeWNsZXMuICBIb3dldmVyLCBwb2x5 bW9ycGhpYyBHSU4gb3BlcmF0b3IgY2xhc3NlcyAoc3VjaAorICAgYXMgPGxpdGVyYWw+YXJyYXlf b3BzPC9saXRlcmFsPikgdHlwaWNhbGx5IGNhbm5vdCBzcGVjaWZ5IGEgc2luZ2xlIGNvbXBhcmlz b24KKyAgIGZ1bmN0aW9uLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBBbiBvcGVyYXRvciBj bGFzcyBmb3IgPGFjcm9ueW0+R0lOPC9hY3JvbnltPiBjYW4gb3B0aW9uYWxseSBzdXBwbHkgdGhl CisgICBmb2xsb3dpbmcgbWV0aG9kczoKKworICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxmdW5jdGlvbj5pbnQgY29tcGFyZVBhcnRpYWwoRGF0dW0g cGFydGlhbF9rZXksIERhdHVtIGtleSwgU3RyYXRlZ3lOdW1iZXIgbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQb2ludGVyIGV4dHJhX2RhdGEpPC9mdW5jdGlvbj48L3Rlcm0+Cisg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIENvbXBhcmUgYSBwYXJ0aWFs LW1hdGNoIHF1ZXJ5IGtleSB0byBhbiBpbmRleCBrZXkuICBSZXR1cm5zIGFuIGludGVnZXIKKyAg ICAgICAgd2hvc2Ugc2lnbiBpbmRpY2F0ZXMgdGhlIHJlc3VsdDogbGVzcyB0aGFuIHplcm8gbWVh bnMgdGhlIGluZGV4IGtleQorICAgICAgICBkb2VzIG5vdCBtYXRjaCB0aGUgcXVlcnksIGJ1dCB0 aGUgaW5kZXggc2NhbiBzaG91bGQgY29udGludWU7IHplcm8KKyAgICAgICAgbWVhbnMgdGhhdCB0 aGUgaW5kZXgga2V5IGRvZXMgbWF0Y2ggdGhlIHF1ZXJ5OyBncmVhdGVyIHRoYW4gemVybworICAg ICAgICBpbmRpY2F0ZXMgdGhhdCB0aGUgaW5kZXggc2NhbiBzaG91bGQgc3RvcCBiZWNhdXNlIG5v IG1vcmUgbWF0Y2hlcworICAgICAgICBhcmUgcG9zc2libGUuICBUaGUgc3RyYXRlZ3kgbnVtYmVy IDxsaXRlcmFsPm48L2xpdGVyYWw+IG9mIHRoZSBvcGVyYXRvcgorICAgICAgICB0aGF0IGdlbmVy YXRlZCB0aGUgcGFydGlhbCBtYXRjaCBxdWVyeSBpcyBwcm92aWRlZCwgaW4gY2FzZSBpdHMKKyAg ICAgICAgc2VtYW50aWNzIGFyZSBuZWVkZWQgdG8gZGV0ZXJtaW5lIHdoZW4gdG8gZW5kIHRoZSBz Y2FuLiAgQWxzbywKKyAgICAgICAgPGxpdGVyYWw+ZXh0cmFfZGF0YTwvbGl0ZXJhbD4gaXMgdGhl IGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgZXh0cmEtZGF0YQorICAgICAgICBhcnJheSBt YWRlIGJ5IDxmdW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiwgb3IgPHN5bWJvbD5OVUxM PC9zeW1ib2w+IGlmIG5vbmUuCisgICAgICAgIE51bGwga2V5cyBhcmUgbmV2ZXIgcGFzc2VkIHRv IHRoaXMgZnVuY3Rpb24uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAg PC92YXJsaXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48ZnVuY3Rp b24+dm9pZCBvcHRpb25zKGxvY2FsX3JlbG9wdHMgKnJlbG9wdHMpPC9mdW5jdGlvbj48L3Rlcm0+ CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIERlZmluZXMgYSBzZXQg b2YgdXNlci12aXNpYmxlIHBhcmFtZXRlcnMgdGhhdCBjb250cm9sIG9wZXJhdG9yIGNsYXNzCisg ICAgICAgIGJlaGF2aW9yLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAg ICBUaGUgPGZ1bmN0aW9uPm9wdGlvbnM8L2Z1bmN0aW9uPiBmdW5jdGlvbiBpcyBwYXNzZWQgYSBw b2ludGVyIHRvIGEKKyAgICAgICAgPHN0cnVjdG5hbWU+bG9jYWxfcmVsb3B0czwvc3RydWN0bmFt ZT4gc3RydWN0LCB3aGljaCBuZWVkcyB0byBiZQorICAgICAgICBmaWxsZWQgd2l0aCBhIHNldCBv ZiBvcGVyYXRvciBjbGFzcyBzcGVjaWZpYyBvcHRpb25zLiAgVGhlIG9wdGlvbnMKKyAgICAgICAg Y2FuIGJlIGFjY2Vzc2VkIGZyb20gb3RoZXIgc3VwcG9ydCBmdW5jdGlvbnMgdXNpbmcgdGhlCisg ICAgICAgIDxsaXRlcmFsPlBHX0hBU19PUENMQVNTX09QVElPTlMoKTwvbGl0ZXJhbD4gYW5kCisg ICAgICAgIDxsaXRlcmFsPlBHX0dFVF9PUENMQVNTX09QVElPTlMoKTwvbGl0ZXJhbD4gbWFjcm9z LgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBTaW5jZSBib3RoIGtl eSBleHRyYWN0aW9uIG9mIGluZGV4ZWQgdmFsdWVzIGFuZCByZXByZXNlbnRhdGlvbiBvZiB0aGUK KyAgICAgICAga2V5IGluIDxhY3JvbnltPkdJTjwvYWNyb255bT4gYXJlIGZsZXhpYmxlLCB0aGV5 IG1heSBkZXBlbmQgb24KKyAgICAgICAgdXNlci1zcGVjaWZpZWQgcGFyYW1ldGVycy4KKyAgICAg ICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDwv dmFyaWFibGVsaXN0PgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBzdXBwb3J0IDxxdW90 ZT5wYXJ0aWFsIG1hdGNoPC9xdW90ZT4gcXVlcmllcywgYW4gb3BlcmF0b3IgY2xhc3MgbXVzdAor ICAgcHJvdmlkZSB0aGUgPGZ1bmN0aW9uPmNvbXBhcmVQYXJ0aWFsPC9mdW5jdGlvbj4gbWV0aG9k LCBhbmQgaXRzCisgICA8ZnVuY3Rpb24+ZXh0cmFjdFF1ZXJ5PC9mdW5jdGlvbj4gbWV0aG9kIG11 c3Qgc2V0IHRoZSA8bGl0ZXJhbD5wbWF0Y2g8L2xpdGVyYWw+CisgICBwYXJhbWV0ZXIgd2hlbiBh IHBhcnRpYWwtbWF0Y2ggcXVlcnkgaXMgZW5jb3VudGVyZWQuICBTZWUKKyAgIDx4cmVmIGxpbmtl bmQ9Imdpbi1wYXJ0aWFsLW1hdGNoIi8+IGZvciBkZXRhaWxzLgorICA8L3BhcmE+CisKKyAgPHBh cmE+CisgICBUaGUgYWN0dWFsIGRhdGEgdHlwZXMgb2YgdGhlIHZhcmlvdXMgPGxpdGVyYWw+RGF0 dW08L2xpdGVyYWw+IHZhbHVlcyBtZW50aW9uZWQKKyAgIGFib3ZlIHZhcnkgZGVwZW5kaW5nIG9u IHRoZSBvcGVyYXRvciBjbGFzcy4gIFRoZSBpdGVtIHZhbHVlcyBwYXNzZWQgdG8KKyAgIDxmdW5j dGlvbj5leHRyYWN0VmFsdWU8L2Z1bmN0aW9uPiBhcmUgYWx3YXlzIG9mIHRoZSBvcGVyYXRvciBj bGFzcydzIGlucHV0IHR5cGUsIGFuZAorICAgYWxsIGtleSB2YWx1ZXMgbXVzdCBiZSBvZiB0aGUg Y2xhc3MncyA8bGl0ZXJhbD5TVE9SQUdFPC9saXRlcmFsPiB0eXBlLiAgVGhlIHR5cGUgb2YKKyAg IHRoZSA8bGl0ZXJhbD5xdWVyeTwvbGl0ZXJhbD4gYXJndW1lbnQgcGFzc2VkIHRvIDxmdW5jdGlv bj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiwKKyAgIDxmdW5jdGlvbj5jb25zaXN0ZW50PC9mdW5j dGlvbj4gYW5kIDxmdW5jdGlvbj50cmlDb25zaXN0ZW50PC9mdW5jdGlvbj4gaXMgd2hhdGV2ZXIg aXMgdGhlCisgICByaWdodC1oYW5kIGlucHV0IHR5cGUgb2YgdGhlIGNsYXNzIG1lbWJlciBvcGVy YXRvciBpZGVudGlmaWVkIGJ5IHRoZQorICAgc3RyYXRlZ3kgbnVtYmVyLiAgVGhpcyBuZWVkIG5v dCBiZSB0aGUgc2FtZSBhcyB0aGUgaW5kZXhlZCB0eXBlLCBzbyBsb25nIGFzCisgICBrZXkgdmFs dWVzIG9mIHRoZSBjb3JyZWN0IHR5cGUgY2FuIGJlIGV4dHJhY3RlZCBmcm9tIGl0LiAgSG93ZXZl ciwgaXQgaXMKKyAgIHJlY29tbWVuZGVkIHRoYXQgdGhlIFNRTCBkZWNsYXJhdGlvbnMgb2YgdGhl c2UgdGhyZWUgc3VwcG9ydCBmdW5jdGlvbnMgdXNlCisgICB0aGUgb3BjbGFzcydzIGluZGV4ZWQg ZGF0YSB0eXBlIGZvciB0aGUgPGxpdGVyYWw+cXVlcnk8L2xpdGVyYWw+IGFyZ3VtZW50LCBldmVu CisgICB0aG91Z2ggdGhlIGFjdHVhbCB0eXBlIG1pZ2h0IGJlIHNvbWV0aGluZyBlbHNlIGRlcGVu ZGluZyBvbiB0aGUgb3BlcmF0b3IuCisgIDwvcGFyYT4KKworIDwvc2VjdDI+CisKKyA8c2VjdDIg aWQ9Imdpbi1pbXBsZW1lbnRhdGlvbiI+CisgIDx0aXRsZT5JbXBsZW1lbnRhdGlvbjwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICBJbnRlcm5hbGx5LCBhIDxhY3JvbnltPkdJTjwvYWNyb255bT4gaW5k ZXggY29udGFpbnMgYSBCLXRyZWUgaW5kZXgKKyAgIGNvbnN0cnVjdGVkIG92ZXIga2V5cywgd2hl cmUgZWFjaCBrZXkgaXMgYW4gZWxlbWVudCBvZiBvbmUgb3IgbW9yZSBpbmRleGVkCisgICBpdGVt cyAoYSBtZW1iZXIgb2YgYW4gYXJyYXksIGZvciBleGFtcGxlKSBhbmQgd2hlcmUgZWFjaCB0dXBs ZSBpbiBhIGxlYWYKKyAgIHBhZ2UgY29udGFpbnMgZWl0aGVyIGEgcG9pbnRlciB0byBhIEItdHJl ZSBvZiBoZWFwIHBvaW50ZXJzIChhCisgICA8cXVvdGU+cG9zdGluZyB0cmVlPC9xdW90ZT4pLCBv ciBhIHNpbXBsZSBsaXN0IG9mIGhlYXAgcG9pbnRlcnMgKGEgPHF1b3RlPnBvc3RpbmcKKyAgIGxp c3Q8L3F1b3RlPikgd2hlbiB0aGUgbGlzdCBpcyBzbWFsbCBlbm91Z2ggdG8gZml0IGludG8gYSBz aW5nbGUgaW5kZXggdHVwbGUgYWxvbmcKKyAgIHdpdGggdGhlIGtleSB2YWx1ZS4gIDx4cmVmIGxp bmtlbmQ9Imdpbi1pbnRlcm5hbHMtZmlndXJlIi8+IGlsbHVzdHJhdGVzCisgICB0aGVzZSBjb21w b25lbnRzIG9mIGEgR0lOIGluZGV4LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBBcyBvZiA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IDkuMSwgbnVsbCBrZXkgdmFsdWVz IGNhbiBiZQorICAgaW5jbHVkZWQgaW4gdGhlIGluZGV4LiAgQWxzbywgcGxhY2Vob2xkZXIgbnVs bHMgYXJlIGluY2x1ZGVkIGluIHRoZSBpbmRleAorICAgZm9yIGluZGV4ZWQgaXRlbXMgdGhhdCBh cmUgbnVsbCBvciBjb250YWluIG5vIGtleXMgYWNjb3JkaW5nIHRvCisgICA8ZnVuY3Rpb24+ZXh0 cmFjdFZhbHVlPC9mdW5jdGlvbj4uICBUaGlzIGFsbG93cyBzZWFyY2hlcyB0aGF0IHNob3VsZCBm aW5kIGVtcHR5CisgICBpdGVtcyB0byBkbyBzby4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg TXVsdGljb2x1bW4gPGFjcm9ueW0+R0lOPC9hY3JvbnltPiBpbmRleGVzIGFyZSBpbXBsZW1lbnRl ZCBieSBidWlsZGluZworICAgYSBzaW5nbGUgQi10cmVlIG92ZXIgY29tcG9zaXRlIHZhbHVlcyAo Y29sdW1uIG51bWJlciwga2V5IHZhbHVlKS4gIFRoZQorICAga2V5IHZhbHVlcyBmb3IgZGlmZmVy ZW50IGNvbHVtbnMgY2FuIGJlIG9mIGRpZmZlcmVudCB0eXBlcy4KKyAgPC9wYXJhPgorCisgIDxm aWd1cmUgaWQ9Imdpbi1pbnRlcm5hbHMtZmlndXJlIj4KKyAgIDx0aXRsZT5HSU4gSW50ZXJuYWxz PC90aXRsZT4KKyAgIDxtZWRpYW9iamVjdD4KKyAgICA8aW1hZ2VvYmplY3Q+CisgICAgIDxpbWFn ZWRhdGEgZmlsZXJlZj0iaW1hZ2VzL2dpbi5zdmciIGZvcm1hdD0iU1ZHIiB3aWR0aD0iMTAwJSIv PgorICAgIDwvaW1hZ2VvYmplY3Q+CisgICA8L21lZGlhb2JqZWN0PgorICA8L2ZpZ3VyZT4KKwor ICA8c2VjdDMgaWQ9Imdpbi1mYXN0LXVwZGF0ZSI+CisgICA8dGl0bGU+R0lOIEZhc3QgVXBkYXRl IFRlY2huaXF1ZTwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFVwZGF0aW5nIGEgPGFjcm9ueW0+ R0lOPC9hY3JvbnltPiBpbmRleCB0ZW5kcyB0byBiZSBzbG93IGJlY2F1c2Ugb2YgdGhlCisgICAg aW50cmluc2ljIG5hdHVyZSBvZiBpbnZlcnRlZCBpbmRleGVzOiBpbnNlcnRpbmcgb3IgdXBkYXRp bmcgb25lIGhlYXAgcm93CisgICAgY2FuIGNhdXNlIG1hbnkgaW5zZXJ0cyBpbnRvIHRoZSBpbmRl eCAob25lIGZvciBlYWNoIGtleSBleHRyYWN0ZWQKKyAgICBmcm9tIHRoZSBpbmRleGVkIGl0ZW0p LgorICAgIDxhY3JvbnltPkdJTjwvYWNyb255bT4gaXMgY2FwYWJsZSBvZiBwb3N0cG9uaW5nIG11 Y2ggb2YgdGhpcyB3b3JrIGJ5IGluc2VydGluZworICAgIG5ldyB0dXBsZXMgaW50byBhIHRlbXBv cmFyeSwgdW5zb3J0ZWQgbGlzdCBvZiBwZW5kaW5nIGVudHJpZXMuCisgICAgV2hlbiB0aGUgdGFi bGUgaXMgdmFjdXVtZWQgb3IgYXV0b2FuYWx5emVkLCBvciB3aGVuCisgICAgPGZ1bmN0aW9uPmdp bl9jbGVhbl9wZW5kaW5nX2xpc3Q8L2Z1bmN0aW9uPiBmdW5jdGlvbiBpcyBjYWxsZWQsIG9yIGlm IHRoZQorICAgIHBlbmRpbmcgbGlzdCBiZWNvbWVzIGxhcmdlciB0aGFuCisgICAgPHhyZWYgbGlu a2VuZD0iZ3VjLWdpbi1wZW5kaW5nLWxpc3QtbGltaXQiLz4sIHRoZSBlbnRyaWVzIGFyZSBtb3Zl ZCB0byB0aGUKKyAgICBtYWluIDxhY3JvbnltPkdJTjwvYWNyb255bT4gZGF0YSBzdHJ1Y3R1cmUg dXNpbmcgdGhlIHNhbWUgYnVsayBpbnNlcnQKKyAgICB0ZWNobmlxdWVzIHVzZWQgZHVyaW5nIGlu aXRpYWwgaW5kZXggY3JlYXRpb24uICBUaGlzIGdyZWF0bHkgaW1wcm92ZXMKKyAgICA8YWNyb255 bT5HSU48L2Fjcm9ueW0+IGluZGV4IHVwZGF0ZSBzcGVlZCwgZXZlbiBjb3VudGluZyB0aGUgYWRk aXRpb25hbAorICAgIHZhY3V1bSBvdmVyaGVhZC4gIE1vcmVvdmVyIHRoZSBvdmVyaGVhZCB3b3Jr IGNhbiBiZSBkb25lIGJ5IGEgYmFja2dyb3VuZAorICAgIHByb2Nlc3MgaW5zdGVhZCBvZiBpbiBm b3JlZ3JvdW5kIHF1ZXJ5IHByb2Nlc3NpbmcuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAg IFRoZSBtYWluIGRpc2FkdmFudGFnZSBvZiB0aGlzIGFwcHJvYWNoIGlzIHRoYXQgc2VhcmNoZXMg bXVzdCBzY2FuIHRoZSBsaXN0CisgICAgb2YgcGVuZGluZyBlbnRyaWVzIGluIGFkZGl0aW9uIHRv IHNlYXJjaGluZyB0aGUgcmVndWxhciBpbmRleCwgYW5kIHNvCisgICAgYSBsYXJnZSBsaXN0IG9m IHBlbmRpbmcgZW50cmllcyB3aWxsIHNsb3cgc2VhcmNoZXMgc2lnbmlmaWNhbnRseS4KKyAgICBB bm90aGVyIGRpc2FkdmFudGFnZSBpcyB0aGF0LCB3aGlsZSBtb3N0IHVwZGF0ZXMgYXJlIGZhc3Qs IGFuIHVwZGF0ZQorICAgIHRoYXQgY2F1c2VzIHRoZSBwZW5kaW5nIGxpc3QgdG8gYmVjb21lIDxx dW90ZT50b28gbGFyZ2U8L3F1b3RlPiB3aWxsIGluY3VyIGFuCisgICAgaW1tZWRpYXRlIGNsZWFu dXAgY3ljbGUgYW5kIHRodXMgYmUgbXVjaCBzbG93ZXIgdGhhbiBvdGhlciB1cGRhdGVzLgorICAg IFByb3BlciB1c2Ugb2YgYXV0b3ZhY3V1bSBjYW4gbWluaW1pemUgYm90aCBvZiB0aGVzZSBwcm9i bGVtcy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgSWYgY29uc2lzdGVudCByZXNwb25z ZSB0aW1lIGlzIG1vcmUgaW1wb3J0YW50IHRoYW4gdXBkYXRlIHNwZWVkLAorICAgIHVzZSBvZiBw ZW5kaW5nIGVudHJpZXMgY2FuIGJlIGRpc2FibGVkIGJ5IHR1cm5pbmcgb2ZmIHRoZQorICAgIDxs aXRlcmFsPmZhc3R1cGRhdGU8L2xpdGVyYWw+IHN0b3JhZ2UgcGFyYW1ldGVyIGZvciBhCisgICAg PGFjcm9ueW0+R0lOPC9hY3JvbnltPiBpbmRleC4gIFNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtY3Jl YXRlaW5kZXgiLz4KKyAgICBmb3IgZGV0YWlscy4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mz4KKwor ICA8c2VjdDMgaWQ9Imdpbi1wYXJ0aWFsLW1hdGNoIj4KKyAgIDx0aXRsZT5QYXJ0aWFsIE1hdGNo IEFsZ29yaXRobTwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIEdJTiBjYW4gc3VwcG9ydCA8cXVv dGU+cGFydGlhbCBtYXRjaDwvcXVvdGU+IHF1ZXJpZXMsIGluIHdoaWNoIHRoZSBxdWVyeQorICAg IGRvZXMgbm90IGRldGVybWluZSBhbiBleGFjdCBtYXRjaCBmb3Igb25lIG9yIG1vcmUga2V5cywg YnV0IHRoZSBwb3NzaWJsZQorICAgIG1hdGNoZXMgZmFsbCB3aXRoaW4gYSByZWFzb25hYmx5IG5h cnJvdyByYW5nZSBvZiBrZXkgdmFsdWVzICh3aXRoaW4gdGhlCisgICAga2V5IHNvcnRpbmcgb3Jk ZXIgZGV0ZXJtaW5lZCBieSB0aGUgPGZ1bmN0aW9uPmNvbXBhcmU8L2Z1bmN0aW9uPiBzdXBwb3J0 IG1ldGhvZCkuCisgICAgVGhlIDxmdW5jdGlvbj5leHRyYWN0UXVlcnk8L2Z1bmN0aW9uPiBtZXRo b2QsIGluc3RlYWQgb2YgcmV0dXJuaW5nIGEga2V5IHZhbHVlCisgICAgdG8gYmUgbWF0Y2hlZCBl eGFjdGx5LCByZXR1cm5zIGEga2V5IHZhbHVlIHRoYXQgaXMgdGhlIGxvd2VyIGJvdW5kIG9mCisg ICAgdGhlIHJhbmdlIHRvIGJlIHNlYXJjaGVkLCBhbmQgc2V0cyB0aGUgPGxpdGVyYWw+cG1hdGNo PC9saXRlcmFsPiBmbGFnIHRydWUuCisgICAgVGhlIGtleSByYW5nZSBpcyB0aGVuIHNjYW5uZWQg dXNpbmcgdGhlIDxmdW5jdGlvbj5jb21wYXJlUGFydGlhbDwvZnVuY3Rpb24+CisgICAgbWV0aG9k LiAgPGZ1bmN0aW9uPmNvbXBhcmVQYXJ0aWFsPC9mdW5jdGlvbj4gbXVzdCByZXR1cm4gemVybyBm b3IgYSBtYXRjaGluZworICAgIGluZGV4IGtleSwgbGVzcyB0aGFuIHplcm8gZm9yIGEgbm9uLW1h dGNoIHRoYXQgaXMgc3RpbGwgd2l0aGluIHRoZSByYW5nZQorICAgIHRvIGJlIHNlYXJjaGVkLCBv ciBncmVhdGVyIHRoYW4gemVybyBpZiB0aGUgaW5kZXgga2V5IGlzIHBhc3QgdGhlIHJhbmdlCisg ICAgdGhhdCBjb3VsZCBtYXRjaC4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mz4KKworIDwvc2VjdDI+ CisKKyA8c2VjdDIgaWQ9Imdpbi10aXBzIj4KKyA8dGl0bGU+R0lOIFRpcHMgYW5kIFRyaWNrczwv dGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ Q3JlYXRlIHZzLiBpbnNlcnQ8L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIEluc2VydGlvbiBpbnRvIGEgPGFjcm9ueW0+R0lOPC9hY3JvbnltPiBpbmRleCBjYW4gYmUg c2xvdworICAgICAgZHVlIHRvIHRoZSBsaWtlbGlob29kIG9mIG1hbnkga2V5cyBiZWluZyBpbnNl cnRlZCBmb3IgZWFjaCBpdGVtLgorICAgICAgU28sIGZvciBidWxrIGluc2VydGlvbnMgaW50byBh IHRhYmxlIGl0IGlzIGFkdmlzYWJsZSB0byBkcm9wIHRoZSBHSU4KKyAgICAgIGluZGV4IGFuZCBy ZWNyZWF0ZSBpdCBhZnRlciBmaW5pc2hpbmcgYnVsayBpbnNlcnRpb24uCisgICAgIDwvcGFyYT4K KworICAgICA8cGFyYT4KKyAgICAgIFdoZW4gPGxpdGVyYWw+ZmFzdHVwZGF0ZTwvbGl0ZXJhbD4g aXMgZW5hYmxlZCBmb3IgPGFjcm9ueW0+R0lOPC9hY3JvbnltPgorICAgICAgKHNlZSA8eHJlZiBs aW5rZW5kPSJnaW4tZmFzdC11cGRhdGUiLz4gZm9yIGRldGFpbHMpLCB0aGUgcGVuYWx0eSBpcwor ICAgICAgbGVzcyB0aGFuIHdoZW4gaXQgaXMgbm90LiAgQnV0IGZvciB2ZXJ5IGxhcmdlIHVwZGF0 ZXMgaXQgbWF5IHN0aWxsIGJlCisgICAgICBiZXN0IHRvIGRyb3AgYW5kIHJlY3JlYXRlIHRoZSBp bmRleC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48eHJlZiBsaW5rZW5kPSJndWMtbWFpbnRl bmFuY2Utd29yay1tZW0iLz48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIEJ1aWxkIHRpbWUgZm9yIGEgPGFjcm9ueW0+R0lOPC9hY3JvbnltPiBpbmRleCBpcyB2ZXJ5 IHNlbnNpdGl2ZSB0bworICAgICAgdGhlIDx2YXJuYW1lPm1haW50ZW5hbmNlX3dvcmtfbWVtPC92 YXJuYW1lPiBzZXR0aW5nOyBpdCBkb2Vzbid0IHBheSB0bworICAgICAgc2tpbXAgb24gd29yayBt ZW1vcnkgZHVyaW5nIGluZGV4IGNyZWF0aW9uLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjx4 cmVmIGxpbmtlbmQ9Imd1Yy1naW4tcGVuZGluZy1saXN0LWxpbWl0Ii8+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEdXJpbmcgYSBzZXJpZXMgb2YgaW5zZXJ0aW9u cyBpbnRvIGFuIGV4aXN0aW5nIDxhY3JvbnltPkdJTjwvYWNyb255bT4KKyAgICAgIGluZGV4IHRo YXQgaGFzIDxsaXRlcmFsPmZhc3R1cGRhdGU8L2xpdGVyYWw+IGVuYWJsZWQsIHRoZSBzeXN0ZW0g d2lsbCBjbGVhbiB1cAorICAgICAgdGhlIHBlbmRpbmctZW50cnkgbGlzdCB3aGVuZXZlciB0aGUg bGlzdCBncm93cyBsYXJnZXIgdGhhbgorICAgICAgPHZhcm5hbWU+Z2luX3BlbmRpbmdfbGlzdF9s aW1pdDwvdmFybmFtZT4uIFRvIGF2b2lkIGZsdWN0dWF0aW9ucyBpbiBvYnNlcnZlZAorICAgICAg cmVzcG9uc2UgdGltZSwgaXQncyBkZXNpcmFibGUgdG8gaGF2ZSBwZW5kaW5nLWxpc3QgY2xlYW51 cCBvY2N1ciBpbiB0aGUKKyAgICAgIGJhY2tncm91bmQgKGkuZS4sIHZpYSBhdXRvdmFjdXVtKS4g IEZvcmVncm91bmQgY2xlYW51cCBvcGVyYXRpb25zCisgICAgICBjYW4gYmUgYXZvaWRlZCBieSBp bmNyZWFzaW5nIDx2YXJuYW1lPmdpbl9wZW5kaW5nX2xpc3RfbGltaXQ8L3Zhcm5hbWU+CisgICAg ICBvciBtYWtpbmcgYXV0b3ZhY3V1bSBtb3JlIGFnZ3Jlc3NpdmUuCisgICAgICBIb3dldmVyLCBl bmxhcmdpbmcgdGhlIHRocmVzaG9sZCBvZiB0aGUgY2xlYW51cCBvcGVyYXRpb24gbWVhbnMgdGhh dAorICAgICAgaWYgYSBmb3JlZ3JvdW5kIGNsZWFudXAgZG9lcyBvY2N1ciwgaXQgd2lsbCB0YWtl IGV2ZW4gbG9uZ2VyLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAgPHZhcm5hbWU+ Z2luX3BlbmRpbmdfbGlzdF9saW1pdDwvdmFybmFtZT4gY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGlu ZGl2aWR1YWwKKyAgICAgIEdJTiBpbmRleGVzIGJ5IGNoYW5naW5nIHN0b3JhZ2UgcGFyYW1ldGVy cywgd2hpY2ggYWxsb3dzIGVhY2gKKyAgICAgIEdJTiBpbmRleCB0byBoYXZlIGl0cyBvd24gY2xl YW51cCB0aHJlc2hvbGQuCisgICAgICBGb3IgZXhhbXBsZSwgaXQncyBwb3NzaWJsZSB0byBpbmNy ZWFzZSB0aGUgdGhyZXNob2xkIG9ubHkgZm9yIHRoZSBHSU4KKyAgICAgIGluZGV4IHdoaWNoIGNh biBiZSB1cGRhdGVkIGhlYXZpbHksIGFuZCBkZWNyZWFzZSBpdCBvdGhlcndpc2UuCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PHhyZWYgbGlua2VuZD0iZ3VjLWdpbi1mdXp6eS1zZWFyY2gtbGlt aXQiLz48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBwcmlt YXJ5IGdvYWwgb2YgZGV2ZWxvcGluZyA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGluZGV4ZXMgd2Fz CisgICAgICB0byBjcmVhdGUgc3VwcG9ydCBmb3IgaGlnaGx5IHNjYWxhYmxlIGZ1bGwtdGV4dCBz ZWFyY2ggaW4KKyAgICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4sIGFu ZCB0aGVyZSBhcmUgb2Z0ZW4gc2l0dWF0aW9ucyB3aGVuCisgICAgICBhIGZ1bGwtdGV4dCBzZWFy Y2ggcmV0dXJucyBhIHZlcnkgbGFyZ2Ugc2V0IG9mIHJlc3VsdHMuICBNb3Jlb3ZlciwgdGhpcwor ICAgICAgb2Z0ZW4gaGFwcGVucyB3aGVuIHRoZSBxdWVyeSBjb250YWlucyB2ZXJ5IGZyZXF1ZW50 IHdvcmRzLCBzbyB0aGF0IHRoZQorICAgICAgbGFyZ2UgcmVzdWx0IHNldCBpcyBub3QgZXZlbiB1 c2VmdWwuICBTaW5jZSByZWFkaW5nIG1hbnkKKyAgICAgIHR1cGxlcyBmcm9tIHRoZSBkaXNrIGFu ZCBzb3J0aW5nIHRoZW0gY291bGQgdGFrZSBhIGxvdCBvZiB0aW1lLCB0aGlzIGlzCisgICAgICB1 bmFjY2VwdGFibGUgZm9yIHByb2R1Y3Rpb24uICAoTm90ZSB0aGF0IHRoZSBpbmRleCBzZWFyY2gg aXRzZWxmIGlzIHZlcnkKKyAgICAgIGZhc3QuKQorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgor ICAgICAgVG8gZmFjaWxpdGF0ZSBjb250cm9sbGVkIGV4ZWN1dGlvbiBvZiBzdWNoIHF1ZXJpZXMs CisgICAgICA8YWNyb255bT5HSU48L2Fjcm9ueW0+IGhhcyBhIGNvbmZpZ3VyYWJsZSBzb2Z0IHVw cGVyIGxpbWl0IG9uIHRoZQorICAgICAgbnVtYmVyIG9mIHJvd3MgcmV0dXJuZWQ6IHRoZQorICAg ICAgPHZhcm5hbWU+Z2luX2Z1enp5X3NlYXJjaF9saW1pdDwvdmFybmFtZT4gY29uZmlndXJhdGlv biBwYXJhbWV0ZXIuCisgICAgICBJdCBpcyBzZXQgdG8gMCAobWVhbmluZyBubyBsaW1pdCkgYnkg ZGVmYXVsdC4KKyAgICAgIElmIGEgbm9uLXplcm8gbGltaXQgaXMgc2V0LCB0aGVuIHRoZSByZXR1 cm5lZCBzZXQgaXMgYSBzdWJzZXQgb2YKKyAgICAgIHRoZSB3aG9sZSByZXN1bHQgc2V0LCBjaG9z ZW4gYXQgcmFuZG9tLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAgPHF1b3RlPlNv ZnQ8L3F1b3RlPiBtZWFucyB0aGF0IHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIHJlc3Vs dHMKKyAgICAgIGNvdWxkIGRpZmZlciBzb21ld2hhdCBmcm9tIHRoZSBzcGVjaWZpZWQgbGltaXQs IGRlcGVuZGluZyBvbiB0aGUgcXVlcnkKKyAgICAgIGFuZCB0aGUgcXVhbGl0eSBvZiB0aGUgc3lz dGVtJ3MgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+ CisgICAgICBGcm9tIGV4cGVyaWVuY2UsIHZhbHVlcyBpbiB0aGUgdGhvdXNhbmRzIChlLmcuLCA1 MDAwICZtZGFzaDsgMjAwMDApCisgICAgICB3b3JrIHdlbGwuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorCisgPC9z ZWN0Mj4KKworIDxzZWN0MiBpZD0iZ2luLWxpbWl0Ij4KKyAgPHRpdGxlPkxpbWl0YXRpb25zPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIDxhY3JvbnltPkdJTjwvYWNyb255bT4gYXNzdW1lcyB0aGF0 IGluZGV4YWJsZSBvcGVyYXRvcnMgYXJlIHN0cmljdC4gIFRoaXMKKyAgIG1lYW5zIHRoYXQgPGZ1 bmN0aW9uPmV4dHJhY3RWYWx1ZTwvZnVuY3Rpb24+IHdpbGwgbm90IGJlIGNhbGxlZCBhdCBhbGwg b24gYSBudWxsCisgICBpdGVtIHZhbHVlIChpbnN0ZWFkLCBhIHBsYWNlaG9sZGVyIGluZGV4IGVu dHJ5IGlzIGNyZWF0ZWQgYXV0b21hdGljYWxseSksCisgICBhbmQgPGZ1bmN0aW9uPmV4dHJhY3RR dWVyeTwvZnVuY3Rpb24+IHdpbGwgbm90IGJlIGNhbGxlZCBvbiBhIG51bGwgcXVlcnkKKyAgIHZh bHVlIGVpdGhlciAoaW5zdGVhZCwgdGhlIHF1ZXJ5IGlzIHByZXN1bWVkIHRvIGJlIHVuc2F0aXNm aWFibGUpLiAgTm90ZQorICAgaG93ZXZlciB0aGF0IG51bGwga2V5IHZhbHVlcyBjb250YWluZWQg d2l0aGluIGEgbm9uLW51bGwgY29tcG9zaXRlIGl0ZW0KKyAgIG9yIHF1ZXJ5IHZhbHVlIGFyZSBz dXBwb3J0ZWQuCisgIDwvcGFyYT4KKyA8L3NlY3QyPgorCisgPHNlY3QyIGlkPSJnaW4tZXhhbXBs ZXMiPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIGNvcmUg PHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBkaXN0cmlidXRpb24KKyAgIGlu Y2x1ZGVzIHRoZSA8YWNyb255bT5HSU48L2Fjcm9ueW0+IG9wZXJhdG9yIGNsYXNzZXMgcHJldmlv dXNseSBzaG93biBpbgorICAgPHhyZWYgbGlua2VuZD0iZ2luLWJ1aWx0aW4tb3BjbGFzc2VzLXRh YmxlIi8+LgorICAgVGhlIGZvbGxvd2luZyA8ZmlsZW5hbWU+Y29udHJpYjwvZmlsZW5hbWU+IG1v ZHVsZXMgYWxzbyBjb250YWluCisgICA8YWNyb255bT5HSU48L2Fjcm9ueW0+IG9wZXJhdG9yIGNs YXNzZXM6CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ PGZpbGVuYW1lPmJ0cmVlX2dpbjwvZmlsZW5hbWU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+Qi10cmVlIGVxdWl2YWxlbnQgZnVuY3Rpb25hbGl0eSBmb3Igc2V2ZXJhbCBkYXRh IHR5cGVzPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48ZmlsZW5hbWU+aHN0b3JlPC9maWxlbmFtZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT5Nb2R1bGUgZm9yIHN0b3JpbmcgKGtleSwg dmFsdWUpIHBhaXJzPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48ZmlsZW5hbWU+aW50YXJyYXk8L2ZpbGVu YW1lPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPkVuaGFuY2VkIHN1cHBvcnQg Zm9yIDx0eXBlPmludFtdPC90eXBlPjwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGZpbGVuYW1lPnBnX3Ry Z208L2ZpbGVuYW1lPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPlRleHQgc2lt aWxhcml0eSB1c2luZyB0cmlncmFtIG1hdGNoaW5nPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKyA8L3NlY3Qy PgorCisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0iYnJpbiI+CisgPHRpdGxlPkJSSU4gSW5kZXhl czwvdGl0bGU+CisKKyAgICA8aW5kZXh0ZXJtPgorICAgICA8cHJpbWFyeT5pbmRleDwvcHJpbWFy eT4KKyAgICAgPHNlY29uZGFyeT5CUklOPC9zZWNvbmRhcnk+CisgICAgPC9pbmRleHRlcm0+CisK KyA8c2VjdDIgaWQ9ImJyaW4taW50cm8iPgorICA8dGl0bGU+SW50cm9kdWN0aW9uPC90aXRsZT4K KworICA8cGFyYT4KKyAgIDxhY3JvbnltPkJSSU48L2Fjcm9ueW0+IHN0YW5kcyBmb3IgQmxvY2sg UmFuZ2UgSW5kZXguCisgICA8YWNyb255bT5CUklOPC9hY3JvbnltPiBpcyBkZXNpZ25lZCBmb3Ig aGFuZGxpbmcgdmVyeSBsYXJnZSB0YWJsZXMKKyAgIGluIHdoaWNoIGNlcnRhaW4gY29sdW1ucyBo YXZlIHNvbWUgbmF0dXJhbCBjb3JyZWxhdGlvbiB3aXRoIHRoZWlyCisgICBwaHlzaWNhbCBsb2Nh dGlvbiB3aXRoaW4gdGhlIHRhYmxlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICA8YWNyb255 bT5CUklOPC9hY3JvbnltPiB3b3JrcyBpbiB0ZXJtcyBvZiA8Zmlyc3R0ZXJtPmJsb2NrIHJhbmdl czwvZmlyc3R0ZXJtPgorICAgKG9yIDxxdW90ZT5wYWdlIHJhbmdlczwvcXVvdGU+KS4KKyAgIEEg YmxvY2sgcmFuZ2UgaXMgYSBncm91cCBvZiBwYWdlcyB0aGF0IGFyZSBwaHlzaWNhbGx5CisgICBh ZGphY2VudCBpbiB0aGUgdGFibGU7IGZvciBlYWNoIGJsb2NrIHJhbmdlLCBzb21lIHN1bW1hcnkg aW5mbyBpcyBzdG9yZWQKKyAgIGJ5IHRoZSBpbmRleC4KKyAgIEZvciBleGFtcGxlLCBhIHRhYmxl IHN0b3JpbmcgYSBzdG9yZSdzIHNhbGUgb3JkZXJzIG1pZ2h0IGhhdmUKKyAgIGEgZGF0ZSBjb2x1 bW4gb24gd2hpY2ggZWFjaCBvcmRlciB3YXMgcGxhY2VkLCBhbmQgbW9zdCBvZiB0aGUgdGltZQor ICAgdGhlIGVudHJpZXMgZm9yIGVhcmxpZXIgb3JkZXJzIHdpbGwgYXBwZWFyIGVhcmxpZXIgaW4g dGhlIHRhYmxlIGFzIHdlbGw7CisgICBhIHRhYmxlIHN0b3JpbmcgYSBaSVAgY29kZSBjb2x1bW4g bWlnaHQgaGF2ZSBhbGwgY29kZXMgZm9yIGEgY2l0eQorICAgZ3JvdXBlZCB0b2dldGhlciBuYXR1 cmFsbHkuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIDxhY3JvbnltPkJSSU48L2Fjcm9ueW0+ IGluZGV4ZXMgY2FuIHNhdGlzZnkgcXVlcmllcyB2aWEgcmVndWxhciBiaXRtYXAKKyAgIGluZGV4 IHNjYW5zLCBhbmQgd2lsbCByZXR1cm4gYWxsIHR1cGxlcyBpbiBhbGwgcGFnZXMgd2l0aGluIGVh Y2ggcmFuZ2UgaWYKKyAgIHRoZSBzdW1tYXJ5IGluZm8gc3RvcmVkIGJ5IHRoZSBpbmRleCBpcyA8 Zmlyc3R0ZXJtPmNvbnNpc3RlbnQ8L2ZpcnN0dGVybT4gd2l0aCB0aGUKKyAgIHF1ZXJ5IGNvbmRp dGlvbnMuCisgICBUaGUgcXVlcnkgZXhlY3V0b3IgaXMgaW4gY2hhcmdlIG9mIHJlY2hlY2tpbmcg dGhlc2UgdHVwbGVzIGFuZCBkaXNjYXJkaW5nCisgICB0aG9zZSB0aGF0IGRvIG5vdCBtYXRjaCB0 aGUgcXVlcnkgY29uZGl0aW9ucyAmbWRhc2g7IGluIG90aGVyIHdvcmRzLCB0aGVzZQorICAgaW5k ZXhlcyBhcmUgbG9zc3kuCisgICBCZWNhdXNlIGEgPGFjcm9ueW0+QlJJTjwvYWNyb255bT4gaW5k ZXggaXMgdmVyeSBzbWFsbCwgc2Nhbm5pbmcgdGhlIGluZGV4CisgICBhZGRzIGxpdHRsZSBvdmVy aGVhZCBjb21wYXJlZCB0byBhIHNlcXVlbnRpYWwgc2NhbiwgYnV0IG1heSBhdm9pZCBzY2Fubmlu ZworICAgbGFyZ2UgcGFydHMgb2YgdGhlIHRhYmxlIHRoYXQgYXJlIGtub3duIG5vdCB0byBjb250 YWluIG1hdGNoaW5nIHR1cGxlcy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNwZWNp ZmljIGRhdGEgdGhhdCBhIDxhY3JvbnltPkJSSU48L2Fjcm9ueW0+IGluZGV4IHdpbGwgc3RvcmUs CisgICBhcyB3ZWxsIGFzIHRoZSBzcGVjaWZpYyBxdWVyaWVzIHRoYXQgdGhlIGluZGV4IHdpbGwg YmUgYWJsZSB0byBzYXRpc2Z5LAorICAgZGVwZW5kIG9uIHRoZSBvcGVyYXRvciBjbGFzcyBzZWxl Y3RlZCBmb3IgZWFjaCBjb2x1bW4gb2YgdGhlIGluZGV4LgorICAgRGF0YSB0eXBlcyBoYXZpbmcg YSBsaW5lYXIgc29ydCBvcmRlciBjYW4gaGF2ZSBvcGVyYXRvciBjbGFzc2VzIHRoYXQKKyAgIHN0 b3JlIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHdpdGhpbiBlYWNoIGJsb2NrIHJhbmdl LCBmb3IgaW5zdGFuY2U7CisgICBnZW9tZXRyaWNhbCB0eXBlcyBtaWdodCBzdG9yZSB0aGUgYm91 bmRpbmcgYm94IGZvciBhbGwgdGhlIG9iamVjdHMKKyAgIGluIHRoZSBibG9jayByYW5nZS4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNpemUgb2YgdGhlIGJsb2NrIHJhbmdlIGlzIGRl dGVybWluZWQgYXQgaW5kZXggY3JlYXRpb24gdGltZSBieQorICAgdGhlIDxsaXRlcmFsPnBhZ2Vz X3Blcl9yYW5nZTwvbGl0ZXJhbD4gc3RvcmFnZSBwYXJhbWV0ZXIuICBUaGUgbnVtYmVyIG9mIGlu ZGV4CisgICBlbnRyaWVzIHdpbGwgYmUgZXF1YWwgdG8gdGhlIHNpemUgb2YgdGhlIHJlbGF0aW9u IGluIHBhZ2VzIGRpdmlkZWQgYnkKKyAgIHRoZSBzZWxlY3RlZCB2YWx1ZSBmb3IgPGxpdGVyYWw+ cGFnZXNfcGVyX3JhbmdlPC9saXRlcmFsPi4gIFRoZXJlZm9yZSwgdGhlIHNtYWxsZXIKKyAgIHRo ZSBudW1iZXIsIHRoZSBsYXJnZXIgdGhlIGluZGV4IGJlY29tZXMgKGJlY2F1c2Ugb2YgdGhlIG5l ZWQgdG8KKyAgIHN0b3JlIG1vcmUgaW5kZXggZW50cmllcyksIGJ1dCBhdCB0aGUgc2FtZSB0aW1l IHRoZSBzdW1tYXJ5IGRhdGEgc3RvcmVkIGNhbgorICAgYmUgbW9yZSBwcmVjaXNlIGFuZCBtb3Jl IGRhdGEgYmxvY2tzIGNhbiBiZSBza2lwcGVkIGR1cmluZyBhbiBpbmRleCBzY2FuLgorICA8L3Bh cmE+CisKKyAgPHNlY3QzIGlkPSJicmluLW9wZXJhdGlvbiI+CisgICA8dGl0bGU+SW5kZXggTWFp bnRlbmFuY2U8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBBdCB0aGUgdGltZSBvZiBjcmVhdGlv biwgYWxsIGV4aXN0aW5nIGhlYXAgcGFnZXMgYXJlIHNjYW5uZWQgYW5kIGEKKyAgICBzdW1tYXJ5 IGluZGV4IHR1cGxlIGlzIGNyZWF0ZWQgZm9yIGVhY2ggcmFuZ2UsIGluY2x1ZGluZyB0aGUKKyAg ICBwb3NzaWJseS1pbmNvbXBsZXRlIHJhbmdlIGF0IHRoZSBlbmQuCisgICAgQXMgbmV3IHBhZ2Vz IGFyZSBmaWxsZWQgd2l0aCBkYXRhLCBwYWdlIHJhbmdlcyB0aGF0IGFyZSBhbHJlYWR5CisgICAg c3VtbWFyaXplZCB3aWxsIGNhdXNlIHRoZSBzdW1tYXJ5IGluZm9ybWF0aW9uIHRvIGJlIHVwZGF0 ZWQgd2l0aCBkYXRhCisgICAgZnJvbSB0aGUgbmV3IHR1cGxlcy4KKyAgICBXaGVuIGEgbmV3IHBh Z2UgaXMgY3JlYXRlZCB0aGF0IGRvZXMgbm90IGZhbGwgd2l0aGluIHRoZSBsYXN0CisgICAgc3Vt bWFyaXplZCByYW5nZSwgdGhlIHJhbmdlIHRoYXQgdGhlIG5ldyBwYWdlIGJlbG9uZ3MgdG8KKyAg ICBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IGFjcXVpcmUgYSBzdW1tYXJ5IHR1cGxlOworICAgIHRo b3NlIHR1cGxlcyByZW1haW4gdW5zdW1tYXJpemVkIHVudGlsIGEgc3VtbWFyaXphdGlvbiBydW4g aXMKKyAgICBpbnZva2VkIGxhdGVyLCBjcmVhdGluZyB0aGUgaW5pdGlhbCBzdW1tYXJ5IGZvciB0 aGF0IHJhbmdlLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGVyZSBhcmUgc2V2ZXJh bCB3YXlzIHRvIHRyaWdnZXIgdGhlIGluaXRpYWwgc3VtbWFyaXphdGlvbiBvZiBhIHBhZ2UgcmFu Z2UuCisgICAgSWYgdGhlIHRhYmxlIGlzIHZhY3V1bWVkLCBlaXRoZXIgbWFudWFsbHkgb3IgYnkK KyAgICA8bGluayBsaW5rZW5kPSJhdXRvdmFjdXVtIj5hdXRvdmFjdXVtPC9saW5rPiwgYWxsIGV4 aXN0aW5nIHVuc3VtbWFyaXplZAorICAgIHBhZ2UgcmFuZ2VzIGFyZSBzdW1tYXJpemVkLgorICAg IEFsc28sIGlmIHRoZSBpbmRleCdzCisgICAgPHhyZWYgbGlua2VuZD0iaW5kZXgtcmVsb3B0aW9u LWF1dG9zdW1tYXJpemUiLz4gcGFyYW1ldGVyIGlzIGVuYWJsZWQsCisgICAgd2hpY2ggaXQgaXNu J3QgYnkgZGVmYXVsdCwKKyAgICB3aGVuZXZlciBhdXRvdmFjdXVtIHJ1bnMgaW4gdGhhdCBkYXRh YmFzZSwgc3VtbWFyaXphdGlvbiB3aWxsIG9jY3VyIGZvciBhbGwKKyAgICB1bnN1bW1hcml6ZWQg cGFnZSByYW5nZXMgdGhhdCBoYXZlIGJlZW4gZmlsbGVkLAorICAgIHJlZ2FyZGxlc3Mgb2Ygd2hl dGhlciB0aGUgdGFibGUgaXRzZWxmIGlzIHByb2Nlc3NlZCBieSBhdXRvdmFjdXVtOyBzZWUgYmVs b3cuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIExhc3RseSwgdGhlIGZvbGxvd2luZyBm dW5jdGlvbnMgY2FuIGJlIHVzZWQgKHdoaWxlIHRoZXNlIGZ1bmN0aW9ucyBydW4sCisgICAgPHhy ZWYgbGlua2VuZD0iZ3VjLXNlYXJjaC1wYXRoIi8+IGlzIHRlbXBvcmFyaWx5IGNoYW5nZWQgdG8K KyAgICA8bGl0ZXJhbD5wZ19jYXRhbG9nLCBwZ190ZW1wPC9saXRlcmFsPik6CisgICAgPHNpbXBs ZWxpc3Q+CisgICAgIDxtZW1iZXI+CisgICAgICA8ZnVuY3Rpb24+YnJpbl9zdW1tYXJpemVfbmV3 X3ZhbHVlcyhyZWdjbGFzcyk8L2Z1bmN0aW9uPgorICAgICAgd2hpY2ggc3VtbWFyaXplcyBhbGwg dW5zdW1tYXJpemVkIHJhbmdlczsKKyAgICAgPC9tZW1iZXI+CisgICAgIDxtZW1iZXI+CisgICAg ICA8ZnVuY3Rpb24+YnJpbl9zdW1tYXJpemVfcmFuZ2UocmVnY2xhc3MsIGJpZ2ludCk8L2Z1bmN0 aW9uPgorICAgICAgd2hpY2ggc3VtbWFyaXplcyBvbmx5IHRoZSByYW5nZSBjb250YWluaW5nIHRo ZSBnaXZlbiBwYWdlLAorICAgICAgaWYgaXQgaXMgdW5zdW1tYXJpemVkLgorICAgICA8L21lbWJl cj4KKyAgICA8L3NpbXBsZWxpc3Q+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4g YXV0b3N1bW1hcml6YXRpb24gaXMgZW5hYmxlZCwgYSByZXF1ZXN0IGlzIHNlbnQgdG8KKyAgICA8 bGl0ZXJhbD5hdXRvdmFjdXVtPC9saXRlcmFsPiB0byBleGVjdXRlIGEgdGFyZ2V0ZWQgc3VtbWFy aXphdGlvbgorICAgIGZvciBhIGJsb2NrIHJhbmdlIHdoZW4gYW4gaW5zZXJ0aW9uIGlzIGRldGVj dGVkIGZvciB0aGUgZmlyc3QgaXRlbQorICAgIG9mIHRoZSBmaXJzdCBwYWdlIG9mIHRoZSBuZXh0 IGJsb2NrIHJhbmdlLAorICAgIHRvIGJlIGZ1bGZpbGxlZCB0aGUgbmV4dCB0aW1lIGFuIGF1dG92 YWN1dW0KKyAgICB3b3JrZXIgZmluaXNoZXMgcnVubmluZyBpbiB0aGUKKyAgICBzYW1lIGRhdGFi YXNlLiAgSWYgdGhlIHJlcXVlc3QgcXVldWUgaXMgZnVsbCwgdGhlIHJlcXVlc3QgaXMgbm90IHJl Y29yZGVkCisgICAgYW5kIGEgbWVzc2FnZSBpcyBzZW50IHRvIHRoZSBzZXJ2ZXIgbG9nOgorIDxz Y3JlZW4+CisgTE9HOiAgcmVxdWVzdCBmb3IgQlJJTiByYW5nZSBzdW1tYXJpemF0aW9uIGZvciBp bmRleCAiYnJpbl93aV9pZHgiIHBhZ2UgMTI4IHdhcyBub3QgcmVjb3JkZWQKKyA8L3NjcmVlbj4K KyAgICBXaGVuIHRoaXMgaGFwcGVucywgdGhlIHJhbmdlIHdpbGwgcmVtYWluIHVuc3VtbWFyaXpl ZCB1bnRpbCB0aGUgbmV4dAorICAgIHJlZ3VsYXIgdmFjdXVtIHJ1biBvbiB0aGUgdGFibGUsIG9y IG9uZSBvZiB0aGUgZnVuY3Rpb25zIG1lbnRpb25lZCBhYm92ZQorICAgIGFyZSBpbnZva2VkLgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBDb252ZXJzZWx5LCBhIHJhbmdlIGNhbiBiZSBk ZS1zdW1tYXJpemVkIHVzaW5nIHRoZQorICAgIDxmdW5jdGlvbj5icmluX2Rlc3VtbWFyaXplX3Jh bmdlKHJlZ2NsYXNzLCBiaWdpbnQpPC9mdW5jdGlvbj4gZnVuY3Rpb24sCisgICAgd2hpY2ggaXMg dXNlZnVsIHdoZW4gdGhlIGluZGV4IHR1cGxlIGlzIG5vIGxvbmdlciBhIHZlcnkgZ29vZAorICAg IHJlcHJlc2VudGF0aW9uIGJlY2F1c2UgdGhlIGV4aXN0aW5nIHZhbHVlcyBoYXZlIGNoYW5nZWQu CisgICAgU2VlIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1hZG1pbi1pbmRleCIvPiBmb3IgZGV0 YWlscy4KKyAgIDwvcGFyYT4KKworICA8L3NlY3QzPgorIDwvc2VjdDI+CisKKyA8c2VjdDIgaWQ9 ImJyaW4tYnVpbHRpbi1vcGNsYXNzZXMiPgorICA8dGl0bGU+QnVpbHQtaW4gT3BlcmF0b3IgQ2xh c3NlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgY29yZSA8cHJvZHVjdG5hbWU+UG9zdGdy ZVNRTDwvcHJvZHVjdG5hbWU+IGRpc3RyaWJ1dGlvbgorICAgaW5jbHVkZXMgdGhlIDxhY3Jvbnlt PkJSSU48L2Fjcm9ueW0+IG9wZXJhdG9yIGNsYXNzZXMgc2hvd24gaW4KKyAgIDx4cmVmIGxpbmtl bmQ9ImJyaW4tYnVpbHRpbi1vcGNsYXNzZXMtdGFibGUiLz4uCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRoZSA8Zmlyc3R0ZXJtPm1pbm1heDwvZmlyc3R0ZXJtPgorICAgb3BlcmF0b3IgY2xh c3NlcyBzdG9yZSB0aGUgbWluaW11bSBhbmQgdGhlIG1heGltdW0gdmFsdWVzIGFwcGVhcmluZwor ICAgaW4gdGhlIGluZGV4ZWQgY29sdW1uIHdpdGhpbiB0aGUgcmFuZ2UuICBUaGUgPGZpcnN0dGVy bT5pbmNsdXNpb248L2ZpcnN0dGVybT4KKyAgIG9wZXJhdG9yIGNsYXNzZXMgc3RvcmUgYSB2YWx1 ZSB3aGljaCBpbmNsdWRlcyB0aGUgdmFsdWVzIGluIHRoZSBpbmRleGVkCisgICBjb2x1bW4gd2l0 aGluIHRoZSByYW5nZS4gIFRoZSA8Zmlyc3R0ZXJtPmJsb29tPC9maXJzdHRlcm0+IG9wZXJhdG9y CisgICBjbGFzc2VzIGJ1aWxkIGEgQmxvb20gZmlsdGVyIGZvciBhbGwgdmFsdWVzIGluIHRoZSBy YW5nZS4gIFRoZQorICAgPGZpcnN0dGVybT5taW5tYXgtbXVsdGk8L2ZpcnN0dGVybT4gb3BlcmF0 b3IgY2xhc3NlcyBzdG9yZSBtdWx0aXBsZQorICAgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMs IHJlcHJlc2VudGluZyB2YWx1ZXMgYXBwZWFyaW5nIGluIHRoZSBpbmRleGVkCisgICBjb2x1bW4g d2l0aGluIHRoZSByYW5nZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZSBpZD0iYnJpbi1idWlsdGlu LW9wY2xhc3Nlcy10YWJsZSI+CisgICA8dGl0bGU+QnVpbHQtaW4gPGFjcm9ueW0+QlJJTjwvYWNy b255bT4gT3BlcmF0b3IgQ2xhc3NlczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjIiPgorICAg IDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KKyAgICAgIDxl bnRyeT5JbmRleGFibGUgT3BlcmF0b3JzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVh ZD4KKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUi IG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5iaXRfbWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGJpdCxiaXQpPC9saXRlcmFsPjwvZW50cnk+CisgICAg IDwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7IChiaXQsYml0KTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChiaXQsYml0 KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7 PSAoYml0LGJpdCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmd0Oz0gKGJpdCxiaXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjEyIj48bGl0ZXJhbD5i b3hfaW5jbHVzaW9uX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFs PkAmZ3Q7IChib3gscG9pbnQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmx0OyAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmbHQ7IChib3gsYm94KTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZndDsg KGJveCxib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRl cmFsPiZndDsmZ3Q7IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K KyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+QCZndDsgKGJveCxib3gpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPn49IChib3gsYm94KTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZhbXA7IChi b3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7Jmx0O3wgKGJveCxib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmx0O3wgKGJveCxib3gpPC9saXRlcmFsPjwvZW50cnk+PC9y b3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPnwmYW1wOyZndDsgKGJveCxib3gpPC9saXRl cmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPnwmZ3Q7Jmd0OyAo Ym94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD5icGNoYXJfYmxvb21fb3BzPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoY2hhcmFjdGVyLGNoYXJhY3Rlcik8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2 YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPmJwY2hhcl9taW5tYXhfb3BzPC9s aXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoY2hhcmFjdGVyLGNoYXJh Y3Rlcik8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZsdDsgKGNoYXJhY3RlcixjaGFyYWN0ZXIpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9IChjaGFyYWN0ZXIsY2hhcmFjdGVyKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChj aGFyYWN0ZXIsY2hhcmFjdGVyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mZ3Q7PSAoY2hhcmFjdGVyLGNoYXJhY3Rlcik8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0 ZXJhbD5ieXRlYV9ibG9vbV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0 ZXJhbD49IChieXRlYSxieXRlYSk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRl cmFsPmJ5dGVhX21pbm1heF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0 ZXJhbD49IChieXRlYSxieXRlYSk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGJ5dGVhLGJ5dGVhKTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoYnl0ZWEsYnl0ZWEpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKGJ5 dGVhLGJ5dGVhKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD4mZ3Q7PSAoYnl0ZWEsYnl0ZWEpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+Y2hhcl9ibG9vbV9v cHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD49ICgiY2hhciIsImNo YXIiKTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+Y2hhcl9taW5tYXhf b3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoImNoYXIiLCJj aGFyIik8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZsdDsgKCJjaGFyIiwiY2hhciIpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9ICgiY2hhciIsImNoYXIiKTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICgiY2hhciIsImNoYXIi KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7 PSAoImNoYXIiLCJjaGFyIik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD5kYXRlX2Jsb29tX29wczwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGRhdGUsZGF0ZSk8L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxp Z249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPmRhdGVfbWlubWF4X29wczwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGRhdGUsZGF0ZSk8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGRh dGUsZGF0ZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmx0Oz0gKGRhdGUsZGF0ZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+Jmd0OyAoZGF0ZSxkYXRlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgor ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAoZGF0ZSxkYXRlKTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1v cmVyb3dzPSI0Ij48bGl0ZXJhbD5kYXRlX21pbm1heF9tdWx0aV9vcHM8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD49IChkYXRlLGRhdGUpPC9saXRlcmFsPjwvZW50cnk+ CisgICAgIDwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7IChkYXRlLGRhdGUp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9 IChkYXRlLGRhdGUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZndDsgKGRhdGUsZGF0ZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGRhdGUsZGF0ZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD5m bG9hdDRfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+ PSAoZmxvYXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFs PmZsb2F0NF9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVy YWw+PSAoZmxvYXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGZsb2F0NCxmbG9hdDQpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKGZsb2F0NCxmbG9hdDQp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9 IChmbG9hdDQsZmxvYXQ0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD4mZ3Q7PSAoZmxvYXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+ PGxpdGVyYWw+ZmxvYXQ0X21pbm1heF9tdWx0aV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg IDxlbnRyeT48bGl0ZXJhbD49IChmbG9hdDQsZmxvYXQ0KTwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAoZmxvYXQ0LGZsb2F0NCk8 L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAo ZmxvYXQ0LGZsb2F0NCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+ PGxpdGVyYWw+Jmx0Oz0gKGZsb2F0NCxmbG9hdDQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Cisg ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChmbG9hdDQsZmxvYXQ0KTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUi PjxsaXRlcmFsPmZsb2F0OF9ibG9vbV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT48bGl0ZXJhbD49IChmbG9hdDgsZmxvYXQ4KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0i NCI+PGxpdGVyYWw+ZmxvYXQ4X21pbm1heF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD49IChmbG9hdDgsZmxvYXQ4KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAoZmxvYXQ4LGZsb2F0OCk8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGZs b2F0OCxmbG9hdDgpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZndDsgKGZsb2F0OCxmbG9hdDgpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChmbG9hdDgsZmxvYXQ4KTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1v cmVyb3dzPSI0Ij48bGl0ZXJhbD5mbG9hdDhfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGZsb2F0OCxmbG9hdDgpPC9saXRlcmFsPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7IChmbG9h dDgsZmxvYXQ4KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD4mbHQ7PSAoZmxvYXQ4LGZsb2F0OCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoZmxvYXQ4LGZsb2F0OCk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGZsb2F0OCxmbG9hdDgp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxp Z249Im1pZGRsZSIgbW9yZXJvd3M9IjUiPjxsaXRlcmFsPmluZXRfaW5jbHVzaW9uX29wczwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChpbmV0LGluZXQp PC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7Jmx0Oz0gKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+Jmd0OyZndDsgKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyZndDs9IChpbmV0LGluZXQpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPj0gKGluZXQs aW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+ JmFtcDsmYW1wOyAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPmluZXRfYmxvb21fb3Bz PC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoaW5ldCxpbmV0KTwv bGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+aW5ldF9taW5tYXhfb3BzPC9s aXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoaW5ldCxpbmV0KTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0 OyAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mbHQ7PSAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChpbmV0LGluZXQpPC9saXRlcmFsPjwvZW50cnk+PC9y b3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChpbmV0LGluZXQpPC9saXRlcmFs PjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRs ZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPmluZXRfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGluZXQs aW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+ Jmx0Oz0gKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+Jmd0OyAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRl cmFsPmludDJfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVy YWw+PSAoaW50MixpbnQyKTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+ aW50Ml9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+ PSAoaW50MixpbnQyKTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+Jmx0OyAoaW50MixpbnQyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgor ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChpbnQyLGludDIpPC9saXRlcmFsPjwvZW50 cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9IChpbnQyLGludDIpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChp bnQyLGludDIpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPmludDJfbWlubWF4X211 bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGludDIs aW50Mik8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZsdDsgKGludDIsaW50Mik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoaW50MixpbnQyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoaW50MixpbnQyKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAoaW50MixpbnQy KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFs aWduPSJtaWRkbGUiPjxsaXRlcmFsPmludDRfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoaW50NCxpbnQ0KTwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jl cm93cz0iNCI+PGxpdGVyYWw+aW50NF9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAg ICA8ZW50cnk+PGxpdGVyYWw+PSAoaW50NCxpbnQ0KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAoaW50NCxpbnQ0KTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChpbnQ0LGlu dDQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZs dDs9IChpbnQ0LGludDQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZndDs9IChpbnQ0LGludDQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRl cmFsPmludDRfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPj0gKGludDQsaW50NCk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGludDQsaW50NCk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoaW50NCxpbnQ0KTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoaW50 NCxpbnQ0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mZ3Q7PSAoaW50NCxpbnQ0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPmludDhfYmxvb21fb3BzPC9s aXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoYmlnaW50LGJpZ2ludCk8 L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPmludDhfbWlubWF4X29wczwv bGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGJpZ2ludCxiaWdpbnQp PC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7IChiaWdpbnQsYmlnaW50KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChiaWdpbnQsYmlnaW50KTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoYmlnaW50LGJpZ2ludCk8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGJp Z2ludCxiaWdpbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPmludDhfbWlubWF4 X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKGJp Z2ludCxiaWdpbnQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mbHQ7IChiaWdpbnQsYmlnaW50KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChiaWdpbnQsYmlnaW50KTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoYmlnaW50 LGJpZ2ludCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmd0Oz0gKGJpZ2ludCxiaWdpbnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+aW50ZXJ2YWxfYmxv b21fb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoaW50ZXJ2 YWwsaW50ZXJ2YWwpPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5pbnRl cnZhbF9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+ PSAoaW50ZXJ2YWwsaW50ZXJ2YWwpPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7IChpbnRlcnZhbCxpbnRlcnZhbCk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGludGVydmFs LGludGVydmFsKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD4mZ3Q7IChpbnRlcnZhbCxpbnRlcnZhbCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAg ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGludGVydmFsLGludGVydmFsKTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRk bGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5pbnRlcnZhbF9taW5tYXhfbXVsdGlfb3BzPC9saXRl cmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAoaW50ZXJ2YWwsaW50ZXJ2YWwp PC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7IChpbnRlcnZhbCxpbnRlcnZhbCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKGludGVydmFsLGludGVydmFsKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChpbnRlcnZhbCxp bnRlcnZhbCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmd0Oz0gKGludGVydmFsLGludGVydmFsKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPm1hY2FkZHJf Ymxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAobWFj YWRkcixtYWNhZGRyKTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+bWFj YWRkcl9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+ PSAobWFjYWRkcixtYWNhZGRyKTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAobWFjYWRkcixtYWNhZGRyKTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAobWFjYWRkcixtYWNh ZGRyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m Z3Q7IChtYWNhZGRyLG1hY2FkZHIpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPiZndDs9IChtYWNhZGRyLG1hY2FkZHIpPC9saXRlcmFsPjwvZW50cnk+ PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJv d3M9IjQiPjxsaXRlcmFsPm1hY2FkZHJfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKG1hY2FkZHIsbWFjYWRkcik8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKG1hY2Fk ZHIsbWFjYWRkcik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmx0Oz0gKG1hY2FkZHIsbWFjYWRkcik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAg ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAobWFjYWRkcixtYWNhZGRyKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAobWFjYWRkcixt YWNhZGRyKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPm1hY2FkZHI4X2Jsb29tX29wczwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKG1hY2FkZHI4LG1hY2FkZHI4KTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZh bGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+bWFjYWRkcjhfbWlubWF4X29wczwv bGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKG1hY2FkZHI4LG1hY2Fk ZHI4KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmx0OyAobWFjYWRkcjgsbWFjYWRkcjgpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Cisg ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9IChtYWNhZGRyOCxtYWNhZGRyOCk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAobWFjYWRk cjgsbWFjYWRkcjgpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZndDs9IChtYWNhZGRyOCxtYWNhZGRyOCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+ PGxpdGVyYWw+bWFjYWRkcjhfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgPGVudHJ5PjxsaXRlcmFsPj0gKG1hY2FkZHI4LG1hY2FkZHI4KTwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAobWFjYWRkcjgs bWFjYWRkcjgpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRl cmFsPiZsdDs9IChtYWNhZGRyOCxtYWNhZGRyOCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAg ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAobWFjYWRkcjgsbWFjYWRkcjgpPC9saXRlcmFs PjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChtYWNhZGRy OCxtYWNhZGRyOCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD5uYW1lX2Jsb29tX29wczwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKG5hbWUsbmFtZSk8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1p ZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPm5hbWVfbWlubWF4X29wczwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKG5hbWUsbmFtZSk8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKG5hbWUsbmFt ZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0 Oz0gKG5hbWUsbmFtZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+ PGxpdGVyYWw+Jmd0OyAobmFtZSxuYW1lKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAobmFtZSxuYW1lKTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFs Pm51bWVyaWNfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVy YWw+PSAobnVtZXJpYyxudW1lcmljKTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxp dGVyYWw+bnVtZXJpY19taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+ PGxpdGVyYWw+PSAobnVtZXJpYyxudW1lcmljKTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jv dz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAobnVtZXJpYyxudW1lcmljKTwvbGl0 ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAobnVt ZXJpYyxudW1lcmljKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mZ3Q7IChudW1lcmljLG51bWVyaWMpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Cisg ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9IChudW1lcmljLG51bWVyaWMpPC9saXRlcmFs PjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRs ZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPm51bWVyaWNfbWlubWF4X211bHRpX29wczwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKG51bWVyaWMsbnVtZXJpYyk8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZs dDsgKG51bWVyaWMsbnVtZXJpYyk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKG51bWVyaWMsbnVtZXJpYyk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAobnVtZXJpYyxudW1lcmljKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAo bnVtZXJpYyxudW1lcmljKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPm9pZF9ibG9vbV9vcHM8L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD49IChvaWQsb2lkKTwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0i bWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+b2lkX21pbm1heF9vcHM8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD49IChvaWQsb2lkKTwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAob2lkLG9pZCk8 L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAo b2lkLG9pZCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmx0Oz0gKG9pZCxvaWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZndDs9IChvaWQsb2lkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0 ZXJhbD5vaWRfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPj0gKG9pZCxvaWQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7IChvaWQsb2lkKTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7IChvaWQsb2lkKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAob2lkLG9pZCk8 L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0g KG9pZCxvaWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSB2YWxpZ249Im1pZGRsZSI+PGxpdGVyYWw+cGdfbHNuX2Jsb29tX29wczwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKHBnX2xzbixwZ19sc24pPC9saXRlcmFs PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWdu PSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD5wZ19sc25fbWlubWF4X29wczwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKHBnX2xzbixwZ19sc24pPC9saXRl cmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7 IChwZ19sc24scGdfbHNuKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRy eT48bGl0ZXJhbD4mZ3Q7IChwZ19sc24scGdfbHNuKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgor ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAocGdfbHNuLHBnX2xzbik8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKHBnX2xzbixw Z19sc24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPnBnX2xzbl9taW5tYXhfbXVs dGlfb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAocGdfbHNu LHBnX2xzbik8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZsdDsgKHBnX2xzbixwZ19sc24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Cisg ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKHBnX2xzbixwZ19sc24pPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDs9IChwZ19sc24scGdf bHNuKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m Z3Q7PSAocGdfbHNuLHBnX2xzbik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iMTMiPjxsaXRlcmFsPnJh bmdlX2luY2x1c2lvbl9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJh bD49IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAoYW55cmFu Z2UsYW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZndDs9IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4K KyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAoYW55cmFuZ2UsYW55cmFuZ2UpPC9saXRl cmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7JmFtcDsg KGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD5AJmd0OyAoYW55cmFuZ2UsYW55ZWxlbWVudCk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+QCZndDsgKGFueXJhbmdlLGFueXJh bmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m bHQ7QCAoYW55cmFuZ2UsYW55cmFuZ2UpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyZndDsgKGFueXJh bmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mYW1wOyZsdDsgKGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZndDsgKGFueXJhbmdlLGFueXJh bmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4t fC0gKGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPnRleHRfYmxvb21fb3Bz PC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodGV4dCx0ZXh0KTwv bGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+dGV4dF9taW5tYXhfb3BzPC9s aXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodGV4dCx0ZXh0KTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0 OyAodGV4dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mbHQ7PSAodGV4dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh0ZXh0LHRleHQpPC9saXRlcmFsPjwvZW50cnk+PC9y b3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh0ZXh0LHRleHQpPC9saXRlcmFs PjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRs ZSI+PGxpdGVyYWw+dGlkX2Jsb29tX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPj0gKHRpZCx0aWQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0 ZXJhbD50aWRfbWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRl cmFsPj0gKHRpZCx0aWQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mbHQ7ICh0aWQsdGlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgor ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh0aWQsdGlkKTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAodGlkLHRpZCk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKHRpZCx0 aWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2 YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPnRpZF9taW5tYXhfbXVsdGlfb3Bz PC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodGlkLHRpZCk8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZs dDsgKHRpZCx0aWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPiZndDsgKHRpZCx0aWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPiZsdDs9ICh0aWQsdGlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgor ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAodGlkLHRpZCk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0 ZXJhbD50aW1lc3RhbXBfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+ PGxpdGVyYWw+PSAodGltZXN0YW1wLHRpbWVzdGFtcCk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJv d3M9IjQiPjxsaXRlcmFsPnRpbWVzdGFtcF9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodGltZXN0YW1wLHRpbWVzdGFtcCk8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKHRpbWVz dGFtcCx0aW1lc3RhbXApPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZsdDs9ICh0aW1lc3RhbXAsdGltZXN0YW1wKTwvbGl0ZXJhbD48L2VudHJ5Pjwv cm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh0aW1lc3RhbXAsdGltZXN0YW1w KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7 PSAodGltZXN0YW1wLHRpbWVzdGFtcCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+ dGltZXN0YW1wX21pbm1heF9tdWx0aV9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT48bGl0ZXJhbD49ICh0aW1lc3RhbXAsdGltZXN0YW1wKTwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodGltZXN0YW1wLHRpbWVz dGFtcCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+ Jmx0Oz0gKHRpbWVzdGFtcCx0aW1lc3RhbXApPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKHRpbWVzdGFtcCx0aW1lc3RhbXApPC9saXRlcmFs PjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh0aW1lc3Rh bXAsdGltZXN0YW1wKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPnRpbWVzdGFtcHR6X2Jsb29tX29wczwv bGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKHRpbWVzdGFtcHR6LHRp bWVzdGFtcHR6KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+dGltZXN0 YW1wdHpfbWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFs Pj0gKHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6KTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jv dz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodGltZXN0YW1wdHosdGltZXN0YW1w dHopPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZs dDs9ICh0aW1lc3RhbXB0eix0aW1lc3RhbXB0eik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAg ICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAodGltZXN0YW1wdHosdGltZXN0YW1wdHopPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh0 aW1lc3RhbXB0eix0aW1lc3RhbXB0eik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+ dGltZXN0YW1wdHpfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVu dHJ5PjxsaXRlcmFsPj0gKHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6KTwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodGltZXN0YW1w dHosdGltZXN0YW1wdHopPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZsdDs9ICh0aW1lc3RhbXB0eix0aW1lc3RhbXB0eik8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAodGltZXN0YW1wdHosdGlt ZXN0YW1wdHopPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRl cmFsPiZndDs9ICh0aW1lc3RhbXB0eix0aW1lc3RhbXB0eik8L2xpdGVyYWw+PC9lbnRyeT48L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIj48bGl0ZXJhbD50 aW1lX2Jsb29tX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0g KHRpbWUsdGltZSk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQiPjxsaXRlcmFsPnRpbWVf bWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPj0gKHRp bWUsdGltZSk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZsdDsgKHRpbWUsdGltZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAg PHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0Oz0gKHRpbWUsdGltZSk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAodGltZSx0aW1lKTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAodGltZSx0 aW1lKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg dmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJhbD50aW1lX21pbm1heF9tdWx0aV9v cHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD49ICh0aW1lLHRpbWUp PC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7ICh0aW1lLHRpbWUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVu dHJ5PjxsaXRlcmFsPiZsdDs9ICh0aW1lLHRpbWUpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Cisg ICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKHRpbWUsdGltZSk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKHRpbWUsdGltZSk8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0i bWlkZGxlIj48bGl0ZXJhbD50aW1ldHpfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50cnk+CisgICAg ICA8ZW50cnk+PGxpdGVyYWw+PSAodGltZXR6LHRpbWV0eik8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9y ZXJvd3M9IjQiPjxsaXRlcmFsPnRpbWV0el9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodGltZXR6LHRpbWV0eik8L2xpdGVyYWw+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKHRpbWV0eix0aW1l dHopPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZs dDs9ICh0aW1ldHosdGltZXR6KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93Pjxl bnRyeT48bGl0ZXJhbD4mZ3Q7ICh0aW1ldHosdGltZXR6KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7PSAodGltZXR6LHRpbWV0eik8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlk ZGxlIiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+dGltZXR6X21pbm1heF9tdWx0aV9vcHM8L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD49ICh0aW1ldHosdGltZXR6KTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0 OyAodGltZXR6LHRpbWV0eik8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+Jmx0Oz0gKHRpbWV0eix0aW1ldHopPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKHRpbWV0eix0aW1ldHopPC9saXRlcmFs PjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh0aW1ldHos dGltZXR6KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgdmFsaWduPSJtaWRkbGUiPjxsaXRlcmFsPnV1aWRfYmxvb21fb3BzPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodXVpZCx1dWlkKTwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxl IiBtb3Jlcm93cz0iNCI+PGxpdGVyYWw+dXVpZF9taW5tYXhfb3BzPC9saXRlcmFsPjwvZW50cnk+ CisgICAgICA8ZW50cnk+PGxpdGVyYWw+PSAodXVpZCx1dWlkKTwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyAodXVpZCx1dWlkKTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh1 dWlkLHV1aWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRl cmFsPiZsdDs9ICh1dWlkLHV1aWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+CisgICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh1dWlkLHV1aWQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjQi PjxsaXRlcmFsPnV1aWRfbWlubWF4X211bHRpX29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAg PGVudHJ5PjxsaXRlcmFsPj0gKHV1aWQsdXVpZCk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisgICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsgKHV1aWQsdXVpZCk8L2xpdGVyYWw+ PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0OyAodXVpZCx1dWlk KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7 PSAodXVpZCx1dWlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD4mZ3Q7PSAodXVpZCx1dWlkKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI0Ij48bGl0ZXJh bD52YXJiaXRfbWlubWF4X29wczwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRl cmFsPj0gKHZhcmJpdCx2YXJiaXQpPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgorICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7ICh2YXJiaXQsdmFyYml0KTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh2YXJiaXQsdmFyYml0 KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgorICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7 PSAodmFyYml0LHZhcmJpdCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KKyAgICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+Jmd0Oz0gKHZhcmJpdCx2YXJiaXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+ CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorCisgICA8c2VjdDMgaWQ9 ImJyaW4tYnVpbHRpbi1vcGNsYXNzZXMtLXBhcmFtZXRlcnMiPgorICAgIDx0aXRsZT5PcGVyYXRv ciBDbGFzcyBQYXJhbWV0ZXJzPC90aXRsZT4KKworICAgIDxwYXJhPgorICAgICBTb21lIG9mIHRo ZSBidWlsdC1pbiBvcGVyYXRvciBjbGFzc2VzIGFsbG93IHNwZWNpZnlpbmcgcGFyYW1ldGVycyBh ZmZlY3RpbmcKKyAgICAgYmVoYXZpb3Igb2YgdGhlIG9wZXJhdG9yIGNsYXNzLiAgRWFjaCBvcGVy YXRvciBjbGFzcyBoYXMgaXRzIG93biBzZXQgb2YKKyAgICAgYWxsb3dlZCBwYXJhbWV0ZXJzLiAg T25seSB0aGUgPGxpdGVyYWw+Ymxvb208L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5taW5tYXgtbXVs dGk8L2xpdGVyYWw+CisgICAgIG9wZXJhdG9yIGNsYXNzZXMgYWxsb3cgc3BlY2lmeWluZyBwYXJh bWV0ZXJzOgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBibG9vbSBvcGVyYXRvciBj bGFzc2VzIGFjY2VwdCB0aGVzZSBwYXJhbWV0ZXJzOgorICAgIDwvcGFyYT4KKworICAgIDx2YXJp YWJsZWxpc3Q+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+bl9kaXN0 aW5jdF9wZXJfcmFuZ2U8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgRGVmaW5lcyB0aGUgZXN0aW1hdGVkIG51bWJlciBvZiBkaXN0aW5jdCBub24t bnVsbCB2YWx1ZXMgaW4gdGhlIGJsb2NrCisgICAgICByYW5nZSwgdXNlZCBieSA8YWNyb255bT5C UklOPC9hY3JvbnltPiBibG9vbSBpbmRleGVzIGZvciBzaXppbmcgb2YgdGhlCisgICAgICBCbG9v bSBmaWx0ZXIuIEl0IGJlaGF2ZXMgc2ltaWxhcmx5IHRvIDxsaXRlcmFsPm5fZGlzdGluY3Q8L2xp dGVyYWw+IG9wdGlvbgorICAgICAgZm9yIDx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnRhYmxlIi8+ LiBXaGVuIHNldCB0byBhIHBvc2l0aXZlIHZhbHVlLAorICAgICAgZWFjaCBibG9jayByYW5nZSBp cyBhc3N1bWVkIHRvIGNvbnRhaW4gdGhpcyBudW1iZXIgb2YgZGlzdGluY3Qgbm9uLW51bGwKKyAg ICAgIHZhbHVlcy4gV2hlbiBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZSwgd2hpY2ggbXVzdCBiZSBn cmVhdGVyIHRoYW4gb3IKKyAgICAgIGVxdWFsIHRvIC0xLCB0aGUgbnVtYmVyIG9mIGRpc3RpbmN0 IG5vbi1udWxsIHZhbHVlcyBpcyBhc3N1bWVkIHRvIGdyb3cgbGluZWFybHkgd2l0aAorICAgICAg dGhlIG1heGltdW0gcG9zc2libGUgbnVtYmVyIG9mIHR1cGxlcyBpbiB0aGUgYmxvY2sgcmFuZ2Ug KGFib3V0IDI5MAorICAgICAgcm93cyBwZXIgYmxvY2spLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8 bGl0ZXJhbD4tMC4xPC9saXRlcmFsPiwgYW5kCisgICAgICB0aGUgbWluaW11bSBudW1iZXIgb2Yg ZGlzdGluY3Qgbm9uLW51bGwgdmFsdWVzIGlzIDxsaXRlcmFsPjE2PC9saXRlcmFsPi4KKyAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+ZmFsc2VfcG9zaXRpdmVfcmF0ZTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEZWZpbmVz IHRoZSBkZXNpcmVkIGZhbHNlIHBvc2l0aXZlIHJhdGUgdXNlZCBieSA8YWNyb255bT5CUklOPC9h Y3JvbnltPgorICAgICAgYmxvb20gaW5kZXhlcyBmb3Igc2l6aW5nIG9mIHRoZSBCbG9vbSBmaWx0 ZXIuIFRoZSB2YWx1ZXMgbXVzdCBiZQorICAgICAgYmV0d2VlbiAwLjAwMDEgYW5kIDAuMjUuIFRo ZSBkZWZhdWx0IHZhbHVlIGlzIDAuMDEsIHdoaWNoIGlzIDElIGZhbHNlCisgICAgICBwb3NpdGl2 ZSByYXRlLgorICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICA8L3ZhcmlhYmxlbGlzdD4KKworICAgIDxwYXJhPgorICAgICBtaW5tYXgtbXVs dGkgb3BlcmF0b3IgY2xhc3NlcyBhY2NlcHQgdGhlc2UgcGFyYW1ldGVyczoKKyAgICA8L3BhcmE+ CisKKyAgICA8dmFyaWFibGVsaXN0PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxs aXRlcmFsPnZhbHVlc19wZXJfcmFuZ2U8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgRGVmaW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdmFsdWVz IHN0b3JlZCBieSA8YWNyb255bT5CUklOPC9hY3JvbnltPgorICAgICAgbWlubWF4IGluZGV4ZXMg dG8gc3VtbWFyaXplIGEgYmxvY2sgcmFuZ2UuIEVhY2ggdmFsdWUgbWF5IHJlcHJlc2VudAorICAg ICAgZWl0aGVyIGEgcG9pbnQsIG9yIGEgYm91bmRhcnkgb2YgYW4gaW50ZXJ2YWwuIFZhbHVlcyBt dXN0IGJlIGJldHdlZW4KKyAgICAgIDggYW5kIDI1NiwgYW5kIHRoZSBkZWZhdWx0IHZhbHVlIGlz IDMyLgorICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgIDwvc2VjdDM+CisKKyA8L3NlY3QyPgorCisgPHNl Y3QyIGlkPSJicmluLWV4dGVuc2liaWxpdHkiPgorICA8dGl0bGU+RXh0ZW5zaWJpbGl0eTwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGFjcm9ueW0+QlJJTjwvYWNyb255bT4gaW50ZXJmYWNl IGhhcyBhIGhpZ2ggbGV2ZWwgb2YgYWJzdHJhY3Rpb24sCisgICByZXF1aXJpbmcgdGhlIGFjY2Vz cyBtZXRob2QgaW1wbGVtZW50ZXIgb25seSB0byBpbXBsZW1lbnQgdGhlIHNlbWFudGljcworICAg b2YgdGhlIGRhdGEgdHlwZSBiZWluZyBhY2Nlc3NlZC4gIFRoZSA8YWNyb255bT5CUklOPC9hY3Jv bnltPiBsYXllcgorICAgaXRzZWxmIHRha2VzIGNhcmUgb2YgY29uY3VycmVuY3ksIGxvZ2dpbmcg YW5kIHNlYXJjaGluZyB0aGUgaW5kZXggc3RydWN0dXJlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+ CisgICBBbGwgaXQgdGFrZXMgdG8gZ2V0IGEgPGFjcm9ueW0+QlJJTjwvYWNyb255bT4gYWNjZXNz IG1ldGhvZCB3b3JraW5nIGlzIHRvCisgICBpbXBsZW1lbnQgYSBmZXcgdXNlci1kZWZpbmVkIG1l dGhvZHMsIHdoaWNoIGRlZmluZSB0aGUgYmVoYXZpb3Igb2YKKyAgIHN1bW1hcnkgdmFsdWVzIHN0 b3JlZCBpbiB0aGUgaW5kZXggYW5kIHRoZSB3YXkgdGhleSBpbnRlcmFjdCB3aXRoCisgICBzY2Fu IGtleXMuCisgICBJbiBzaG9ydCwgPGFjcm9ueW0+QlJJTjwvYWNyb255bT4gY29tYmluZXMKKyAg IGV4dGVuc2liaWxpdHkgd2l0aCBnZW5lcmFsaXR5LCBjb2RlIHJldXNlLCBhbmQgYSBjbGVhbiBp bnRlcmZhY2UuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGFyZSBmb3VyIG1ldGhv ZHMgdGhhdCBhbiBvcGVyYXRvciBjbGFzcyBmb3IgPGFjcm9ueW0+QlJJTjwvYWNyb255bT4KKyAg IG11c3QgcHJvdmlkZToKKworICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8dmFybGlzdGVudHJ5Pgor ICAgICA8dGVybT48ZnVuY3Rpb24+QnJpbk9wY0luZm8gKm9wY0luZm8oT2lkIHR5cGVfb2lkKTwv ZnVuY3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBS ZXR1cm5zIGludGVybmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbmRleGVkIGNvbHVtbnMnIHN1 bW1hcnkgZGF0YS4KKyAgICAgICBUaGUgcmV0dXJuIHZhbHVlIG11c3QgcG9pbnQgdG8gYSBwYWxs b2MnZCA8c3RydWN0bmFtZT5CcmluT3BjSW5mbzwvc3RydWN0bmFtZT4sCisgICAgICAgd2hpY2gg aGFzIHRoaXMgZGVmaW5pdGlvbjoKKzxwcm9ncmFtbGlzdGluZz4KK3R5cGVkZWYgc3RydWN0IEJy aW5PcGNJbmZvCit7CisgICAgLyogTnVtYmVyIG9mIGNvbHVtbnMgc3RvcmVkIGluIGFuIGluZGV4 IGNvbHVtbiBvZiB0aGlzIG9wY2xhc3MgKi8KKyAgICB1aW50MTYgICAgICBvaV9uc3RvcmVkOwor CisgICAgLyogT3BhcXVlIHBvaW50ZXIgZm9yIHRoZSBvcGNsYXNzJyBwcml2YXRlIHVzZSAqLwor ICAgIHZvaWQgICAgICAgKm9pX29wYXF1ZTsKKworICAgIC8qIFR5cGUgY2FjaGUgZW50cmllcyBv ZiB0aGUgc3RvcmVkIGNvbHVtbnMgKi8KKyAgICBUeXBlQ2FjaGVFbnRyeSAqb2lfdHlwY2FjaGVb RkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKK30gQnJpbk9wY0luZm87Cis8L3Byb2dyYW1saXN0aW5n PgorICAgICAgIDxzdHJ1Y3RuYW1lPkJyaW5PcGNJbmZvPC9zdHJ1Y3RuYW1lPi48c3RydWN0Zmll bGQ+b2lfb3BhcXVlPC9zdHJ1Y3RmaWVsZD4gY2FuIGJlIHVzZWQgYnkgdGhlCisgICAgICAgb3Bl cmF0b3IgY2xhc3Mgcm91dGluZXMgdG8gcGFzcyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHN1cHBvcnQg ZnVuY3Rpb25zCisgICAgICAgZHVyaW5nIGFuIGluZGV4IHNjYW4uCisgICAgICA8L3BhcmE+Cisg ICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5 PgorICAgICA8dGVybT48ZnVuY3Rpb24+Ym9vbCBjb25zaXN0ZW50KEJyaW5EZXNjICpiZGVzYywg QnJpblZhbHVlcyAqY29sdW1uLAorICAgICAgICBTY2FuS2V5ICprZXlzLCBpbnQgbmtleXMpPC9m dW5jdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJl dHVybnMgd2hldGhlciBhbGwgdGhlIFNjYW5LZXkgZW50cmllcyBhcmUgY29uc2lzdGVudCB3aXRo IHRoZSBnaXZlbgorICAgICAgIGluZGV4ZWQgdmFsdWVzIGZvciBhIHJhbmdlLgorICAgICAgIFRo ZSBhdHRyaWJ1dGUgbnVtYmVyIHRvIHVzZSBpcyBwYXNzZWQgYXMgcGFydCBvZiB0aGUgc2NhbiBr ZXkuCisgICAgICAgTXVsdGlwbGUgc2NhbiBrZXlzIGZvciB0aGUgc2FtZSBhdHRyaWJ1dGUgbWF5 IGJlIHBhc3NlZCBhdCBvbmNlOyB0aGUKKyAgICAgICBudW1iZXIgb2YgZW50cmllcyBpcyBkZXRl cm1pbmVkIGJ5IHRoZSA8bGl0ZXJhbD5ua2V5czwvbGl0ZXJhbD4gcGFyYW1ldGVyLgorICAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPmJvb2wgY29uc2lzdGVudChCcmluRGVz YyAqYmRlc2MsIEJyaW5WYWx1ZXMgKmNvbHVtbiwKKyAgICAgICAgU2NhbktleSBrZXkpPC9mdW5j dGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJldHVy bnMgd2hldGhlciB0aGUgU2NhbktleSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGdpdmVuIGluZGV4 ZWQKKyAgICAgICB2YWx1ZXMgZm9yIGEgcmFuZ2UuCisgICAgICAgVGhlIGF0dHJpYnV0ZSBudW1i ZXIgdG8gdXNlIGlzIHBhc3NlZCBhcyBwYXJ0IG9mIHRoZSBzY2FuIGtleS4KKyAgICAgICBUaGlz IGlzIGFuIG9sZGVyIGJhY2t3YXJkLWNvbXBhdGlibGUgdmFyaWFudCBvZiB0aGUgY29uc2lzdGVu dCBmdW5jdGlvbi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj5ib29s IGFkZFZhbHVlKEJyaW5EZXNjICpiZGVzYywgQnJpblZhbHVlcyAqY29sdW1uLAorICAgICAgICBE YXR1bSBuZXd2YWwsIGJvb2wgaXNudWxsKTwvZnVuY3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0 ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZlbiBhbiBpbmRleCB0dXBsZSBhbmQgYW4gaW5k ZXhlZCB2YWx1ZSwgbW9kaWZpZXMgdGhlIGluZGljYXRlZAorICAgICAgIGF0dHJpYnV0ZSBvZiB0 aGUgdHVwbGUgc28gdGhhdCBpdCBhZGRpdGlvbmFsbHkgcmVwcmVzZW50cyB0aGUgbmV3IHZhbHVl LgorICAgICAgIElmIGFueSBtb2RpZmljYXRpb24gd2FzIGRvbmUgdG8gdGhlIHR1cGxlLCA8bGl0 ZXJhbD50cnVlPC9saXRlcmFsPiBpcworICAgICAgIHJldHVybmVkLgorICAgICAgPC9wYXJhPgor ICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPmJvb2wgdW5pb25UdXBsZXMoQnJpbkRlc2MgKmJkZXNj LCBCcmluVmFsdWVzICphLAorICAgICAgICBCcmluVmFsdWVzICpiKTwvZnVuY3Rpb24+PC90ZXJt PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBDb25zb2xpZGF0ZXMgdHdv IGluZGV4IHR1cGxlcy4gR2l2ZW4gdHdvIGluZGV4IHR1cGxlcywgbW9kaWZpZXMgdGhlCisgICAg ICAgaW5kaWNhdGVkIGF0dHJpYnV0ZSBvZiB0aGUgZmlyc3Qgb2YgdGhlbSBzbyB0aGF0IGl0IHJl cHJlc2VudHMgYm90aCB0dXBsZXMuCisgICAgICAgVGhlIHNlY29uZCB0dXBsZSBpcyBub3QgbW9k aWZpZWQuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50 cnk+CisgICA8L3ZhcmlhYmxlbGlzdD4KKworICAgQW4gb3BlcmF0b3IgY2xhc3MgZm9yIDxhY3Jv bnltPkJSSU48L2Fjcm9ueW0+IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdGhlCisgICBmb2xsb3dp bmcgbWV0aG9kOgorCisgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAg ICAgPHRlcm0+PGZ1bmN0aW9uPnZvaWQgb3B0aW9ucyhsb2NhbF9yZWxvcHRzICpyZWxvcHRzKTwv ZnVuY3Rpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAg ICBEZWZpbmVzIGEgc2V0IG9mIHVzZXItdmlzaWJsZSBwYXJhbWV0ZXJzIHRoYXQgY29udHJvbCBv cGVyYXRvciBjbGFzcworICAgICAgICBiZWhhdmlvci4KKyAgICAgICA8L3BhcmE+CisKKyAgICAg ICA8cGFyYT4KKyAgICAgICAgVGhlIDxmdW5jdGlvbj5vcHRpb25zPC9mdW5jdGlvbj4gZnVuY3Rp b24gaXMgcGFzc2VkIGEgcG9pbnRlciB0byBhCisgICAgICAgIDxzdHJ1Y3RuYW1lPmxvY2FsX3Jl bG9wdHM8L3N0cnVjdG5hbWU+IHN0cnVjdCwgd2hpY2ggbmVlZHMgdG8gYmUKKyAgICAgICAgZmls bGVkIHdpdGggYSBzZXQgb2Ygb3BlcmF0b3IgY2xhc3Mgc3BlY2lmaWMgb3B0aW9ucy4gIFRoZSBv cHRpb25zCisgICAgICAgIGNhbiBiZSBhY2Nlc3NlZCBmcm9tIG90aGVyIHN1cHBvcnQgZnVuY3Rp b25zIHVzaW5nIHRoZQorICAgICAgICA8bGl0ZXJhbD5QR19IQVNfT1BDTEFTU19PUFRJT05TKCk8 L2xpdGVyYWw+IGFuZAorICAgICAgICA8bGl0ZXJhbD5QR19HRVRfT1BDTEFTU19PUFRJT05TKCk8 L2xpdGVyYWw+IG1hY3Jvcy4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAg ICAgU2luY2UgYm90aCBrZXkgZXh0cmFjdGlvbiBvZiBpbmRleGVkIHZhbHVlcyBhbmQgcmVwcmVz ZW50YXRpb24gb2YgdGhlCisgICAgICAgIGtleSBpbiA8YWNyb255bT5CUklOPC9hY3JvbnltPiBh cmUgZmxleGlibGUsIHRoZXkgbWF5IGRlcGVuZCBvbgorICAgICAgICB1c2VyLXNwZWNpZmllZCBw YXJhbWV0ZXJzLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFy bGlzdGVudHJ5PgorICAgPC92YXJpYWJsZWxpc3Q+CisKKyAgIFRoZSBjb3JlIGRpc3RyaWJ1dGlv biBpbmNsdWRlcyBzdXBwb3J0IGZvciBmb3VyIHR5cGVzIG9mIG9wZXJhdG9yIGNsYXNzZXM6Cisg ICBtaW5tYXgsIG1pbm1heC1tdWx0aSwgaW5jbHVzaW9uIGFuZCBibG9vbS4gIE9wZXJhdG9yIGNs YXNzIGRlZmluaXRpb25zCisgICB1c2luZyB0aGVtIGFyZSBzaGlwcGVkIGZvciBpbi1jb3JlIGRh dGEgdHlwZXMgYXMgYXBwcm9wcmlhdGUuICBBZGRpdGlvbmFsCisgICBvcGVyYXRvciBjbGFzc2Vz IGNhbiBiZSBkZWZpbmVkIGJ5IHRoZSB1c2VyIGZvciBvdGhlciBkYXRhIHR5cGVzIHVzaW5nCisg ICBlcXVpdmFsZW50IGRlZmluaXRpb25zLCB3aXRob3V0IGhhdmluZyB0byB3cml0ZSBhbnkgc291 cmNlIGNvZGU7CisgICBhcHByb3ByaWF0ZSBjYXRhbG9nIGVudHJpZXMgYmVpbmcgZGVjbGFyZWQg aXMgZW5vdWdoLiAgTm90ZSB0aGF0CisgICBhc3N1bXB0aW9ucyBhYm91dCB0aGUgc2VtYW50aWNz IG9mIG9wZXJhdG9yIHN0cmF0ZWdpZXMgYXJlIGVtYmVkZGVkIGluIHRoZQorICAgc3VwcG9ydCBm dW5jdGlvbnMnIHNvdXJjZSBjb2RlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBPcGVyYXRv ciBjbGFzc2VzIHRoYXQgaW1wbGVtZW50IGNvbXBsZXRlbHkgZGlmZmVyZW50IHNlbWFudGljcyBh cmUgYWxzbworICAgcG9zc2libGUsIHByb3ZpZGVkIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgZm91 ciBtYWluIHN1cHBvcnQgZnVuY3Rpb25zCisgICBkZXNjcmliZWQgYWJvdmUgYXJlIHdyaXR0ZW4u ICBOb3RlIHRoYXQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYWNyb3NzIG1ham9yCisgICByZWxl YXNlcyBpcyBub3QgZ3VhcmFudGVlZDogZm9yIGV4YW1wbGUsIGFkZGl0aW9uYWwgc3VwcG9ydCBm dW5jdGlvbnMgbWlnaHQKKyAgIGJlIHJlcXVpcmVkIGluIGxhdGVyIHJlbGVhc2VzLgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBUbyB3cml0ZSBhbiBvcGVyYXRvciBjbGFzcyBmb3IgYSBkYXRh IHR5cGUgdGhhdCBpbXBsZW1lbnRzIGEgdG90YWxseQorICAgb3JkZXJlZCBzZXQsIGl0IGlzIHBv c3NpYmxlIHRvIHVzZSB0aGUgbWlubWF4IHN1cHBvcnQgZnVuY3Rpb25zCisgICBhbG9uZ3NpZGUg dGhlIGNvcnJlc3BvbmRpbmcgb3BlcmF0b3JzLCBhcyBzaG93biBpbgorICAgPHhyZWYgbGlua2Vu ZD0iYnJpbi1leHRlbnNpYmlsaXR5LW1pbm1heC10YWJsZSIvPi4KKyAgIEFsbCBvcGVyYXRvciBj bGFzcyBtZW1iZXJzIChmdW5jdGlvbnMgYW5kIG9wZXJhdG9ycykgYXJlIG1hbmRhdG9yeS4KKyAg PC9wYXJhPgorCisgIDx0YWJsZSBpZD0iYnJpbi1leHRlbnNpYmlsaXR5LW1pbm1heC10YWJsZSI+ CisgICA8dGl0bGU+RnVuY3Rpb24gYW5kIFN1cHBvcnQgTnVtYmVycyBmb3IgTWlubWF4IE9wZXJh dG9yIENsYXNzZXM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIyIj4KKyAgICA8Y29sc3BlYyBj b2xuYW1lPSJjb2wxIiBjb2x3aWR0aD0iMSoiLz4KKyAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wy IiBjb2x3aWR0aD0iMioiLz4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+ T3BlcmF0b3IgY2xhc3MgbWVtYmVyPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5PYmplY3Q8L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9uIDE8L2VudHJ5PgorICAgICAgPGVudHJ5PmludGVy bmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX21pbm1heF9vcGNpbmZvKCk8L2Z1bmN0aW9uPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PlN1cHBvcnQgRnVu Y3Rpb24gMjwvZW50cnk+CisgICAgICA8ZW50cnk+aW50ZXJuYWwgZnVuY3Rpb24gPGZ1bmN0aW9u PmJyaW5fbWlubWF4X2FkZF92YWx1ZSgpPC9mdW5jdGlvbj48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9uIDM8L2VudHJ5PgorICAg ICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX21pbm1heF9jb25zaXN0 ZW50KCk8L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAg PGVudHJ5PlN1cHBvcnQgRnVuY3Rpb24gNDwvZW50cnk+CisgICAgICA8ZW50cnk+aW50ZXJuYWwg ZnVuY3Rpb24gPGZ1bmN0aW9uPmJyaW5fbWlubWF4X3VuaW9uKCk8L2Z1bmN0aW9uPjwvZW50cnk+ CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5 IDE8L2VudHJ5PgorICAgICAgPGVudHJ5Pm9wZXJhdG9yIGxlc3MtdGhhbjwvZW50cnk+CisgICAg IDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDI8L2Vu dHJ5PgorICAgICAgPGVudHJ5Pm9wZXJhdG9yIGxlc3MtdGhhbi1vci1lcXVhbC10bzwvZW50cnk+ CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5 IDM8L2VudHJ5PgorICAgICAgPGVudHJ5Pm9wZXJhdG9yIGVxdWFsLXRvPC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgNDwvZW50 cnk+CisgICAgICA8ZW50cnk+b3BlcmF0b3IgZ3JlYXRlci10aGFuLW9yLWVxdWFsLXRvPC9lbnRy eT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRl Z3kgNTwvZW50cnk+CisgICAgICA8ZW50cnk+b3BlcmF0b3IgZ3JlYXRlci10aGFuPC9lbnRyeT4K KyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorCisg IDxwYXJhPgorICAgVG8gd3JpdGUgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIGEgY29tcGxleCBkYXRh IHR5cGUgd2hpY2ggaGFzIHZhbHVlcworICAgaW5jbHVkZWQgd2l0aGluIGFub3RoZXIgdHlwZSwg aXQncyBwb3NzaWJsZSB0byB1c2UgdGhlIGluY2x1c2lvbiBzdXBwb3J0CisgICBmdW5jdGlvbnMg YWxvbmdzaWRlIHRoZSBjb3JyZXNwb25kaW5nIG9wZXJhdG9ycywgYXMgc2hvd24KKyAgIGluIDx4 cmVmIGxpbmtlbmQ9ImJyaW4tZXh0ZW5zaWJpbGl0eS1pbmNsdXNpb24tdGFibGUiLz4uICBJdCBy ZXF1aXJlcworICAgb25seSBhIHNpbmdsZSBhZGRpdGlvbmFsIGZ1bmN0aW9uLCB3aGljaCBjYW4g YmUgd3JpdHRlbiBpbiBhbnkgbGFuZ3VhZ2UuCisgICBNb3JlIGZ1bmN0aW9ucyBjYW4gYmUgZGVm aW5lZCBmb3IgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5LiAgQWxsIG9wZXJhdG9ycworICAgYXJl IG9wdGlvbmFsLiAgU29tZSBvcGVyYXRvcnMgcmVxdWlyZSBvdGhlciBvcGVyYXRvcnMsIGFzIHNo b3duIGFzCisgICBkZXBlbmRlbmNpZXMgb24gdGhlIHRhYmxlLgorICA8L3BhcmE+CisKKyAgPHRh YmxlIGlkPSJicmluLWV4dGVuc2liaWxpdHktaW5jbHVzaW9uLXRhYmxlIj4KKyAgIDx0aXRsZT5G dW5jdGlvbiBhbmQgU3VwcG9ydCBOdW1iZXJzIGZvciBJbmNsdXNpb24gT3BlcmF0b3IgQ2xhc3Nl czwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNv bDEiIGNvbHdpZHRoPSIxKiIvPgorICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDIiIGNvbHdpZHRo PSIyKiIvPgorICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDMiIGNvbHdpZHRoPSIxKiIvPgorICAg IDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5PcGVyYXRvciBjbGFzcyBtZW1iZXI8 L2VudHJ5PgorICAgICAgPGVudHJ5Pk9iamVjdDwvZW50cnk+CisgICAgICA8ZW50cnk+RGVwZW5k ZW5jeTwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisgICAgPHRib2R5PgorICAg ICA8cm93PgorICAgICAgPGVudHJ5PlN1cHBvcnQgRnVuY3Rpb24gMTwvZW50cnk+CisgICAgICA8 ZW50cnk+aW50ZXJuYWwgZnVuY3Rpb24gPGZ1bmN0aW9uPmJyaW5faW5jbHVzaW9uX29wY2luZm8o KTwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9uIDI8L2VudHJ5PgorICAg ICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX2luY2x1c2lvbl9hZGRf dmFsdWUoKTwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9uIDM8L2VudHJ5 PgorICAgICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX2luY2x1c2lv bl9jb25zaXN0ZW50KCk8L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgICA8ZW50cnk+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+U3VwcG9ydCBGdW5jdGlvbiA0 PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5pbnRlcm5hbCBmdW5jdGlvbiA8ZnVuY3Rpb24+YnJpbl9p bmNsdXNpb25fdW5pb24oKTwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9u IDExPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5mdW5jdGlvbiB0byBtZXJnZSB0d28gZWxlbWVudHM8 L2VudHJ5PgorICAgICAgPGVudHJ5PjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5PlN1cHBvcnQgRnVuY3Rpb24gMTI8L2VudHJ5PgorICAgICAgPGVudHJ5Pm9w dGlvbmFsIGZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRoZXIgdHdvIGVsZW1lbnRzIGFyZSBtZXJnZWFi bGU8L2VudHJ5PgorICAgICAgPGVudHJ5PjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93 PgorICAgICAgPGVudHJ5PlN1cHBvcnQgRnVuY3Rpb24gMTM8L2VudHJ5PgorICAgICAgPGVudHJ5 Pm9wdGlvbmFsIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGFuIGVsZW1lbnQgaXMgY29udGFpbmVkIHdp dGhpbiBhbm90aGVyPC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5TdXBwb3J0IEZ1bmN0aW9uIDE0PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT5vcHRpb25hbCBmdW5jdGlvbiB0byBjaGVjayB3aGV0aGVyIGFuIGVsZW1lbnQg aXMgZW1wdHk8L2VudHJ5PgorICAgICAgPGVudHJ5PjwvZW50cnk+CisgICAgIDwvcm93PgorICAg ICA8cm93PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDE8L2VudHJ5PgorICAgICAg PGVudHJ5Pm9wZXJhdG9yIGxlZnQtb2Y8L2VudHJ5PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0 cmF0ZWd5IDQ8L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5P cGVyYXRvciBTdHJhdGVneSAyPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5vcGVyYXRvciBkb2VzLW5v dC1leHRlbmQtdG8tdGhlLXJpZ2h0LW9mPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5PcGVyYXRvciBT dHJhdGVneSA1PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+ T3BlcmF0b3IgU3RyYXRlZ3kgMzwvZW50cnk+CisgICAgICA8ZW50cnk+b3BlcmF0b3Igb3Zlcmxh cHM8L2VudHJ5PgorICAgICAgPGVudHJ5PjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93 PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDQ8L2VudHJ5PgorICAgICAgPGVudHJ5 Pm9wZXJhdG9yIGRvZXMtbm90LWV4dGVuZC10by10aGUtbGVmdC1vZjwvZW50cnk+CisgICAgICA8 ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgMTwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93 PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDU8L2VudHJ5PgorICAgICAgPGVudHJ5 Pm9wZXJhdG9yIHJpZ2h0LW9mPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVn eSAyPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0 b3IgU3RyYXRlZ3kgNiwgMTg8L2VudHJ5PgorICAgICAgPGVudHJ5Pm9wZXJhdG9yIHNhbWUtYXMt b3ItZXF1YWwtdG88L2VudHJ5PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDc8L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5PcGVyYXRvciBTdHJh dGVneSA3LCAxNiwgMjQsIDI1PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5vcGVyYXRvciBjb250YWlu cy1vci1lcXVhbC10bzwvZW50cnk+CisgICAgICA8ZW50cnk+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgOCwgMjYsIDI3PC9l bnRyeT4KKyAgICAgIDxlbnRyeT5vcGVyYXRvciBpcy1jb250YWluZWQtYnktb3ItZXF1YWwtdG88 L2VudHJ5PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDM8L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSA5PC9lbnRy eT4KKyAgICAgIDxlbnRyeT5vcGVyYXRvciBkb2VzLW5vdC1leHRlbmQtYWJvdmU8L2VudHJ5Pgor ICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDExPC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgIDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgMTA8L2VudHJ5PgorICAg ICAgPGVudHJ5Pm9wZXJhdG9yIGlzLWJlbG93PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5PcGVyYXRv ciBTdHJhdGVneSAxMjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVu dHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDExPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5vcGVyYXRvciBp cy1hYm92ZTwvZW50cnk+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgOTwvZW50cnk+ CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5 IDEyPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5vcGVyYXRvciBkb2VzLW5vdC1leHRlbmQtYmVsb3c8 L2VudHJ5PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDEwPC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgMjA8L2Vu dHJ5PgorICAgICAgPGVudHJ5Pm9wZXJhdG9yIGxlc3MtdGhhbjwvZW50cnk+CisgICAgICA8ZW50 cnk+T3BlcmF0b3IgU3RyYXRlZ3kgNTwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDIxPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5v cGVyYXRvciBsZXNzLXRoYW4tb3ItZXF1YWwtdG88L2VudHJ5PgorICAgICAgPGVudHJ5Pk9wZXJh dG9yIFN0cmF0ZWd5IDU8L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT5PcGVyYXRvciBTdHJhdGVneSAyMjwvZW50cnk+CisgICAgICA8ZW50cnk+b3BlcmF0b3Ig Z3JlYXRlci10aGFuPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5PcGVyYXRvciBTdHJhdGVneSAxPC9l bnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3Ry YXRlZ3kgMjM8L2VudHJ5PgorICAgICAgPGVudHJ5Pm9wZXJhdG9yIGdyZWF0ZXItdGhhbi1vci1l cXVhbC10bzwvZW50cnk+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgMTwvZW50cnk+ CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKwor ICA8cGFyYT4KKyAgICAgU3VwcG9ydCBmdW5jdGlvbiBudW1iZXJzIDEgdGhyb3VnaCAxMCBhcmUg cmVzZXJ2ZWQgZm9yIHRoZSBCUklOIGludGVybmFsCisgICAgIGZ1bmN0aW9ucywgc28gdGhlIFNR TCBsZXZlbCBmdW5jdGlvbnMgc3RhcnQgd2l0aCBudW1iZXIgMTEuICBTdXBwb3J0CisgICAgIGZ1 bmN0aW9uIG51bWJlciAxMSBpcyB0aGUgbWFpbiBmdW5jdGlvbiByZXF1aXJlZCB0byBidWlsZCB0 aGUgaW5kZXguCisgICAgIEl0IHNob3VsZCBhY2NlcHQgdHdvIGFyZ3VtZW50cyB3aXRoIHRoZSBz YW1lIGRhdGEgdHlwZSBhcyB0aGUgb3BlcmF0b3IgY2xhc3MsCisgICAgIGFuZCByZXR1cm4gdGhl IHVuaW9uIG9mIHRoZW0uICBUaGUgaW5jbHVzaW9uIG9wZXJhdG9yIGNsYXNzIGNhbiBzdG9yZSB1 bmlvbgorICAgICB2YWx1ZXMgd2l0aCBkaWZmZXJlbnQgZGF0YSB0eXBlcyBpZiBpdCBpcyBkZWZp bmVkIHdpdGggdGhlCisgICAgIDxsaXRlcmFsPlNUT1JBR0U8L2xpdGVyYWw+IHBhcmFtZXRlci4g IFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHVuaW9uCisgICAgIGZ1bmN0aW9uIHNob3VsZCBtYXRj aCB0aGUgPGxpdGVyYWw+U1RPUkFHRTwvbGl0ZXJhbD4gZGF0YSB0eXBlLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICAgIFN1cHBvcnQgZnVuY3Rpb24gbnVtYmVycyAxMiBhbmQgMTQgYXJlIHBy b3ZpZGVkIHRvIHN1cHBvcnQKKyAgICAgaXJyZWd1bGFyaXRpZXMgb2YgYnVpbHQtaW4gZGF0YSB0 eXBlcy4gIEZ1bmN0aW9uIG51bWJlciAxMgorICAgICBpcyB1c2VkIHRvIHN1cHBvcnQgbmV0d29y ayBhZGRyZXNzZXMgZnJvbSBkaWZmZXJlbnQgZmFtaWxpZXMgd2hpY2gKKyAgICAgYXJlIG5vdCBt ZXJnZWFibGUuICBGdW5jdGlvbiBudW1iZXIgMTQgaXMgdXNlZCB0byBzdXBwb3J0CisgICAgIGVt cHR5IHJhbmdlcy4gIEZ1bmN0aW9uIG51bWJlciAxMyBpcyBhbiBvcHRpb25hbCBidXQKKyAgICAg cmVjb21tZW5kZWQgb25lLCB3aGljaCBhbGxvd3MgdGhlIG5ldyB2YWx1ZSB0byBiZSBjaGVja2Vk IGJlZm9yZQorICAgICBpdCBpcyBwYXNzZWQgdG8gdGhlIHVuaW9uIGZ1bmN0aW9uLiAgQXMgdGhl IEJSSU4gZnJhbWV3b3JrIGNhbiBzaG9ydGN1dAorICAgICBzb21lIG9wZXJhdGlvbnMgd2hlbiB0 aGUgdW5pb24gaXMgbm90IGNoYW5nZWQsIHVzaW5nIHRoaXMKKyAgICAgZnVuY3Rpb24gY2FuIGlt cHJvdmUgaW5kZXggcGVyZm9ybWFuY2UuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHdy aXRlIGFuIG9wZXJhdG9yIGNsYXNzIGZvciBhIGRhdGEgdHlwZSB0aGF0IGltcGxlbWVudHMgb25s eSBhbiBlcXVhbGl0eQorICAgb3BlcmF0b3IgYW5kIHN1cHBvcnRzIGhhc2hpbmcsIGl0IGlzIHBv c3NpYmxlIHRvIHVzZSB0aGUgYmxvb20gc3VwcG9ydCBwcm9jZWR1cmVzCisgICBhbG9uZ3NpZGUg dGhlIGNvcnJlc3BvbmRpbmcgb3BlcmF0b3JzLCBhcyBzaG93biBpbgorICAgPHhyZWYgbGlua2Vu ZD0iYnJpbi1leHRlbnNpYmlsaXR5LWJsb29tLXRhYmxlIi8+LgorICAgQWxsIG9wZXJhdG9yIGNs YXNzIG1lbWJlcnMgKHByb2NlZHVyZXMgYW5kIG9wZXJhdG9ycykgYXJlIG1hbmRhdG9yeS4KKyAg PC9wYXJhPgorCisgIDx0YWJsZSBpZD0iYnJpbi1leHRlbnNpYmlsaXR5LWJsb29tLXRhYmxlIj4K KyAgIDx0aXRsZT5Qcm9jZWR1cmUgYW5kIFN1cHBvcnQgTnVtYmVycyBmb3IgQmxvb20gT3BlcmF0 b3IgQ2xhc3NlczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjIiPgorICAgIDx0aGVhZD4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeT5PcGVyYXRvciBjbGFzcyBtZW1iZXI8L2VudHJ5PgorICAg ICAgPGVudHJ5Pk9iamVjdDwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisgICAg PHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PlN1cHBvcnQgUHJvY2VkdXJlIDE8L2Vu dHJ5PgorICAgICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX2Jsb29t X29wY2luZm8oKTwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+U3VwcG9ydCBQcm9jZWR1cmUgMjwvZW50cnk+CisgICAgICA8ZW50cnk+aW50 ZXJuYWwgZnVuY3Rpb24gPGZ1bmN0aW9uPmJyaW5fYmxvb21fYWRkX3ZhbHVlKCk8L2Z1bmN0aW9u PjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PlN1cHBvcnQg UHJvY2VkdXJlIDM8L2VudHJ5PgorICAgICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5j dGlvbj5icmluX2Jsb29tX2NvbnNpc3RlbnQoKTwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+U3VwcG9ydCBQcm9jZWR1cmUgNDwvZW50cnk+ CisgICAgICA8ZW50cnk+aW50ZXJuYWwgZnVuY3Rpb24gPGZ1bmN0aW9uPmJyaW5fYmxvb21fdW5p b24oKTwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8 ZW50cnk+U3VwcG9ydCBQcm9jZWR1cmUgNTwvZW50cnk+CisgICAgICA8ZW50cnk+aW50ZXJuYWwg ZnVuY3Rpb24gPGZ1bmN0aW9uPmJyaW5fYmxvb21fb3B0aW9ucygpPC9mdW5jdGlvbj48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5TdXBwb3J0IFByb2NlZHVy ZSAxMTwvZW50cnk+CisgICAgICA8ZW50cnk+ZnVuY3Rpb24gdG8gY29tcHV0ZSBoYXNoIG9mIGFu IGVsZW1lbnQ8L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5P cGVyYXRvciBTdHJhdGVneSAxPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5vcGVyYXRvciBlcXVhbC10 bzwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90 YWJsZT4KKworICA8cGFyYT4KKyAgICAgU3VwcG9ydCBwcm9jZWR1cmUgbnVtYmVycyAxLTEwIGFy ZSByZXNlcnZlZCBmb3IgdGhlIEJSSU4gaW50ZXJuYWwKKyAgICAgZnVuY3Rpb25zLCBzbyB0aGUg U1FMIGxldmVsIGZ1bmN0aW9ucyBzdGFydCB3aXRoIG51bWJlciAxMS4gIFN1cHBvcnQKKyAgICAg ZnVuY3Rpb24gbnVtYmVyIDExIGlzIHRoZSBtYWluIGZ1bmN0aW9uIHJlcXVpcmVkIHRvIGJ1aWxk IHRoZSBpbmRleC4KKyAgICAgSXQgc2hvdWxkIGFjY2VwdCBvbmUgYXJndW1lbnQgd2l0aCB0aGUg c2FtZSBkYXRhIHR5cGUgYXMgdGhlIG9wZXJhdG9yIGNsYXNzLAorICAgICBhbmQgcmV0dXJuIGEg aGFzaCBvZiB0aGUgdmFsdWUuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBtaW5tYXgt bXVsdGkgb3BlcmF0b3IgY2xhc3MgaXMgYWxzbyBpbnRlbmRlZCBmb3IgZGF0YSB0eXBlcyBpbXBs ZW1lbnRpbmcKKyAgIGEgdG90YWxseSBvcmRlcmVkIHNldCwgYW5kIG1heSBiZSBzZWVuIGFzIGEg c2ltcGxlIGV4dGVuc2lvbiBvZiB0aGUgbWlubWF4CisgICBvcGVyYXRvciBjbGFzcy4gV2hpbGUg bWlubWF4IG9wZXJhdG9yIGNsYXNzIHN1bW1hcml6ZXMgdmFsdWVzIGZyb20gZWFjaCBibG9jawor ICAgcmFuZ2UgaW50byBhIHNpbmdsZSBjb250aWd1b3VzIGludGVydmFsLCBtaW5tYXgtbXVsdGkg YWxsb3dzIHN1bW1hcml6YXRpb24KKyAgIGludG8gbXVsdGlwbGUgc21hbGxlciBpbnRlcnZhbHMg dG8gaW1wcm92ZSBoYW5kbGluZyBvZiBvdXRsaWVyIHZhbHVlcy4KKyAgIEl0IGlzIHBvc3NpYmxl IHRvIHVzZSB0aGUgbWlubWF4LW11bHRpIHN1cHBvcnQgcHJvY2VkdXJlcyBhbG9uZ3NpZGUgdGhl CisgICBjb3JyZXNwb25kaW5nIG9wZXJhdG9ycywgYXMgc2hvd24gaW4KKyAgIDx4cmVmIGxpbmtl bmQ9ImJyaW4tZXh0ZW5zaWJpbGl0eS1taW5tYXgtbXVsdGktdGFibGUiLz4uCisgICBBbGwgb3Bl cmF0b3IgY2xhc3MgbWVtYmVycyAocHJvY2VkdXJlcyBhbmQgb3BlcmF0b3JzKSBhcmUgbWFuZGF0 b3J5LgorICA8L3BhcmE+CisKKyAgPHRhYmxlIGlkPSJicmluLWV4dGVuc2liaWxpdHktbWlubWF4 LW11bHRpLXRhYmxlIj4KKyAgIDx0aXRsZT5Qcm9jZWR1cmUgYW5kIFN1cHBvcnQgTnVtYmVycyBm b3IgbWlubWF4LW11bHRpIE9wZXJhdG9yIENsYXNzZXM8L3RpdGxlPgorICAgPHRncm91cCBjb2xz PSIyIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgY2xh c3MgbWVtYmVyPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5PYmplY3Q8L2VudHJ5PgorICAgICA8L3Jv dz4KKyAgICA8L3RoZWFkPgorICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5T dXBwb3J0IFByb2NlZHVyZSAxPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5pbnRlcm5hbCBmdW5jdGlv biA8ZnVuY3Rpb24+YnJpbl9taW5tYXhfbXVsdGlfb3BjaW5mbygpPC9mdW5jdGlvbj48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5TdXBwb3J0IFByb2NlZHVy ZSAyPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5pbnRlcm5hbCBmdW5jdGlvbiA8ZnVuY3Rpb24+YnJp bl9taW5tYXhfbXVsdGlfYWRkX3ZhbHVlKCk8L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PlN1cHBvcnQgUHJvY2VkdXJlIDM8L2VudHJ5Pgor ICAgICAgPGVudHJ5PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX21pbm1heF9tdWx0 aV9jb25zaXN0ZW50KCk8L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93 PgorICAgICAgPGVudHJ5PlN1cHBvcnQgUHJvY2VkdXJlIDQ8L2VudHJ5PgorICAgICAgPGVudHJ5 PmludGVybmFsIGZ1bmN0aW9uIDxmdW5jdGlvbj5icmluX21pbm1heF9tdWx0aV91bmlvbigpPC9m dW5jdGlvbj48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5T dXBwb3J0IFByb2NlZHVyZSA1PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5pbnRlcm5hbCBmdW5jdGlv biA8ZnVuY3Rpb24+YnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucygpPC9mdW5jdGlvbj48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5TdXBwb3J0IFByb2NlZHVy ZSAxMTwvZW50cnk+CisgICAgICA8ZW50cnk+ZnVuY3Rpb24gdG8gY29tcHV0ZSBkaXN0YW5jZSBi ZXR3ZWVuIHR3byB2YWx1ZXMgKGxlbmd0aCBvZiBhIHJhbmdlKTwvZW50cnk+CisgICAgIDwvcm93 PgorICAgICA8cm93PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDE8L2VudHJ5Pgor ICAgICAgPGVudHJ5Pm9wZXJhdG9yIGxlc3MtdGhhbjwvZW50cnk+CisgICAgIDwvcm93PgorICAg ICA8cm93PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDI8L2VudHJ5PgorICAgICAg PGVudHJ5Pm9wZXJhdG9yIGxlc3MtdGhhbi1vci1lcXVhbC10bzwvZW50cnk+CisgICAgIDwvcm93 PgorICAgICA8cm93PgorICAgICAgPGVudHJ5Pk9wZXJhdG9yIFN0cmF0ZWd5IDM8L2VudHJ5Pgor ICAgICAgPGVudHJ5Pm9wZXJhdG9yIGVxdWFsLXRvPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgNDwvZW50cnk+CisgICAgICA8 ZW50cnk+b3BlcmF0b3IgZ3JlYXRlci10aGFuLW9yLWVxdWFsLXRvPC9lbnRyeT4KKyAgICAgPC9y b3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+T3BlcmF0b3IgU3RyYXRlZ3kgNTwvZW50cnk+ CisgICAgICA8ZW50cnk+b3BlcmF0b3IgZ3JlYXRlci10aGFuPC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorCisgIDxwYXJhPgorICAg ICBCb3RoIG1pbm1heCBhbmQgaW5jbHVzaW9uIG9wZXJhdG9yIGNsYXNzZXMgc3VwcG9ydCBjcm9z cy1kYXRhLXR5cGUKKyAgICAgb3BlcmF0b3JzLCB0aG91Z2ggd2l0aCB0aGVzZSB0aGUgZGVwZW5k ZW5jaWVzIGJlY29tZSBtb3JlIGNvbXBsaWNhdGVkLgorICAgICBUaGUgbWlubWF4IG9wZXJhdG9y IGNsYXNzIHJlcXVpcmVzIGEgZnVsbCBzZXQgb2Ygb3BlcmF0b3JzIHRvIGJlCisgICAgIGRlZmlu ZWQgd2l0aCBib3RoIGFyZ3VtZW50cyBoYXZpbmcgdGhlIHNhbWUgZGF0YSB0eXBlLiAgSXQgYWxs b3dzCisgICAgIGFkZGl0aW9uYWwgZGF0YSB0eXBlcyB0byBiZSBzdXBwb3J0ZWQgYnkgZGVmaW5p bmcgZXh0cmEgc2V0cworICAgICBvZiBvcGVyYXRvcnMuICBJbmNsdXNpb24gb3BlcmF0b3IgY2xh c3Mgb3BlcmF0b3Igc3RyYXRlZ2llcyBhcmUgZGVwZW5kZW50CisgICAgIG9uIGFub3RoZXIgb3Bl cmF0b3Igc3RyYXRlZ3kgYXMgc2hvd24gaW4KKyAgICAgPHhyZWYgbGlua2VuZD0iYnJpbi1leHRl bnNpYmlsaXR5LWluY2x1c2lvbi10YWJsZSIvPiwgb3IgdGhlIHNhbWUKKyAgICAgb3BlcmF0b3Ig c3RyYXRlZ3kgYXMgdGhlbXNlbHZlcy4gIFRoZXkgcmVxdWlyZSB0aGUgZGVwZW5kZW5jeQorICAg ICBvcGVyYXRvciB0byBiZSBkZWZpbmVkIHdpdGggdGhlIDxsaXRlcmFsPlNUT1JBR0U8L2xpdGVy YWw+IGRhdGEgdHlwZSBhcyB0aGUKKyAgICAgbGVmdC1oYW5kLXNpZGUgYXJndW1lbnQgYW5kIHRo ZSBvdGhlciBzdXBwb3J0ZWQgZGF0YSB0eXBlIHRvIGJlIHRoZQorICAgICByaWdodC1oYW5kLXNp ZGUgYXJndW1lbnQgb2YgdGhlIHN1cHBvcnRlZCBvcGVyYXRvci4gIFNlZQorICAgICA8bGl0ZXJh bD5mbG9hdDRfbWlubWF4X29wczwvbGl0ZXJhbD4gYXMgYW4gZXhhbXBsZSBvZiBtaW5tYXgsIGFu ZAorICAgICA8bGl0ZXJhbD5ib3hfaW5jbHVzaW9uX29wczwvbGl0ZXJhbD4gYXMgYW4gZXhhbXBs ZSBvZiBpbmNsdXNpb24uCisgIDwvcGFyYT4KKyA8L3NlY3QyPgorIDwvc2VjdDE+CisKKyA8c2Vj dDEgaWQ9Imhhc2gtaW5kZXgiPgorIDx0aXRsZT5IYXNoIEluZGV4ZXM8L3RpdGxlPgorCisgICAg PGluZGV4dGVybT4KKyAgICAgPHByaW1hcnk+aW5kZXg8L3ByaW1hcnk+CisgICAgIDxzZWNvbmRh cnk+SGFzaDwvc2Vjb25kYXJ5PgorICAgIDwvaW5kZXh0ZXJtPgorCisgPHNlY3QyIGlkPSJoYXNo LWludHJvIj4KKyAgPHRpdGxlPk92ZXJ2aWV3PC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgIGluY2x1ZGVzIGFuIGltcGxlbWVu dGF0aW9uIG9mIHBlcnNpc3RlbnQgb24tZGlzayBoYXNoIGluZGV4ZXMsCisgICB3aGljaCBhcmUg ZnVsbHkgY3Jhc2ggcmVjb3ZlcmFibGUuIEFueSBkYXRhIHR5cGUgY2FuIGJlIGluZGV4ZWQgYnkg YQorICAgaGFzaCBpbmRleCwgaW5jbHVkaW5nIGRhdGEgdHlwZXMgdGhhdCBkbyBub3QgaGF2ZSBh IHdlbGwtZGVmaW5lZCBsaW5lYXIKKyAgIG9yZGVyaW5nLiBIYXNoIGluZGV4ZXMgc3RvcmUgb25s eSB0aGUgaGFzaCB2YWx1ZSBvZiB0aGUgZGF0YSBiZWluZworICAgaW5kZXhlZCwgdGh1cyB0aGVy ZSBhcmUgbm8gcmVzdHJpY3Rpb25zIG9uIHRoZSBzaXplIG9mIHRoZSBkYXRhIGNvbHVtbgorICAg YmVpbmcgaW5kZXhlZC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgSGFzaCBpbmRleGVzIHN1 cHBvcnQgb25seSBzaW5nbGUtY29sdW1uIGluZGV4ZXMgYW5kIGRvIG5vdCBhbGxvdworICAgdW5p cXVlbmVzcyBjaGVja2luZy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgSGFzaCBpbmRleGVz IHN1cHBvcnQgb25seSB0aGUgPGxpdGVyYWw+PTwvbGl0ZXJhbD4gb3BlcmF0b3IsCisgICBzbyBX SEVSRSBjbGF1c2VzIHRoYXQgc3BlY2lmeSByYW5nZSBvcGVyYXRpb25zIHdpbGwgbm90IGJlIGFi bGUgdG8gdGFrZQorICAgYWR2YW50YWdlIG9mIGhhc2ggaW5kZXhlcy4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgRWFjaCBoYXNoIGluZGV4IHR1cGxlIHN0b3JlcyBqdXN0IHRoZSA0LWJ5dGUg aGFzaCB2YWx1ZSwgbm90IHRoZSBhY3R1YWwKKyAgIGNvbHVtbiB2YWx1ZS4gQXMgYSByZXN1bHQs IGhhc2ggaW5kZXhlcyBtYXkgYmUgbXVjaCBzbWFsbGVyIHRoYW4gQi10cmVlcworICAgd2hlbiBp bmRleGluZyBsb25nZXIgZGF0YSBpdGVtcyBzdWNoIGFzIFVVSURzLCBVUkxzLCBldGMuIFRoZSBh YnNlbmNlIG9mCisgICB0aGUgY29sdW1uIHZhbHVlIGFsc28gbWFrZXMgYWxsIGhhc2ggaW5kZXgg c2NhbnMgbG9zc3kuIEhhc2ggaW5kZXhlcyBtYXkKKyAgIHRha2UgcGFydCBpbiBiaXRtYXAgaW5k ZXggc2NhbnMgYW5kIGJhY2t3YXJkIHNjYW5zLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBI YXNoIGluZGV4ZXMgYXJlIGJlc3Qgb3B0aW1pemVkIGZvciBTRUxFQ1QgYW5kIFVQREFURS1oZWF2 eSB3b3JrbG9hZHMKKyAgIHRoYXQgdXNlIGVxdWFsaXR5IHNjYW5zIG9uIGxhcmdlciB0YWJsZXMu IEluIGEgQi10cmVlIGluZGV4LCBzZWFyY2hlcyBtdXN0CisgICBkZXNjZW5kIHRocm91Z2ggdGhl IHRyZWUgdW50aWwgdGhlIGxlYWYgcGFnZSBpcyBmb3VuZC4gSW4gdGFibGVzIHdpdGgKKyAgIG1p bGxpb25zIG9mIHJvd3MsIHRoaXMgZGVzY2VudCBjYW4gaW5jcmVhc2UgYWNjZXNzIHRpbWUgdG8g ZGF0YS4gVGhlCisgICBlcXVpdmFsZW50IG9mIGEgbGVhZiBwYWdlIGluIGEgaGFzaCBpbmRleCBp cyByZWZlcnJlZCB0byBhcyBhIGJ1Y2tldCBwYWdlLiBJbgorICAgY29udHJhc3QsIGEgaGFzaCBp bmRleCBhbGxvd3MgYWNjZXNzaW5nIHRoZSBidWNrZXQgcGFnZXMgZGlyZWN0bHksCisgICB0aGVy ZWJ5IHBvdGVudGlhbGx5IHJlZHVjaW5nIGluZGV4IGFjY2VzcyB0aW1lIGluIGxhcmdlciB0YWJs ZXMuIFRoaXMKKyAgIHJlZHVjdGlvbiBpbiAibG9naWNhbCBJL08iIGJlY29tZXMgZXZlbiBtb3Jl IHByb25vdW5jZWQgb24gaW5kZXhlcy9kYXRhCisgICBsYXJnZXIgdGhhbiBzaGFyZWRfYnVmZmVy cy9SQU0uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEhhc2ggaW5kZXhlcyBoYXZlIGJlZW4g ZGVzaWduZWQgdG8gY29wZSB3aXRoIHVuZXZlbiBkaXN0cmlidXRpb25zIG9mCisgICBoYXNoIHZh bHVlcy4gRGlyZWN0IGFjY2VzcyB0byB0aGUgYnVja2V0IHBhZ2VzIHdvcmtzIHdlbGwgaWYgdGhl IGhhc2gKKyAgIHZhbHVlcyBhcmUgZXZlbmx5IGRpc3RyaWJ1dGVkLiBXaGVuIGluc2VydHMgbWVh biB0aGF0IHRoZSBidWNrZXQgcGFnZQorICAgYmVjb21lcyBmdWxsLCBhZGRpdGlvbmFsIG92ZXJm bG93IHBhZ2VzIGFyZSBjaGFpbmVkIHRvIHRoYXQgc3BlY2lmaWMKKyAgIGJ1Y2tldCBwYWdlLCBs b2NhbGx5IGV4cGFuZGluZyB0aGUgc3RvcmFnZSBmb3IgaW5kZXggdHVwbGVzIHRoYXQgbWF0Y2gK KyAgIHRoYXQgaGFzaCB2YWx1ZS4gV2hlbiBzY2FubmluZyBhIGhhc2ggYnVja2V0IGR1cmluZyBx dWVyaWVzLCB3ZSBuZWVkIHRvCisgICBzY2FuIHRocm91Z2ggYWxsIG9mIHRoZSBvdmVyZmxvdyBw YWdlcy4gVGh1cyBhbiB1bmJhbGFuY2VkIGhhc2ggaW5kZXgKKyAgIG1pZ2h0IGFjdHVhbGx5IGJl IHdvcnNlIHRoYW4gYSBCLXRyZWUgaW4gdGVybXMgb2YgbnVtYmVyIG9mIGJsb2NrCisgICBhY2Nl c3NlcyByZXF1aXJlZCwgZm9yIHNvbWUgZGF0YS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg QXMgYSByZXN1bHQgb2YgdGhlIG92ZXJmbG93IGNhc2VzLCB3ZSBjYW4gc2F5IHRoYXQgaGFzaCBp bmRleGVzIGFyZQorICAgbW9zdCBzdWl0YWJsZSBmb3IgdW5pcXVlLCBuZWFybHkgdW5pcXVlIGRh dGEgb3IgZGF0YSB3aXRoIGEgbG93IG51bWJlcgorICAgb2Ygcm93cyBwZXIgaGFzaCBidWNrZXQu CisgICBPbmUgcG9zc2libGUgd2F5IHRvIGF2b2lkIHByb2JsZW1zIGlzIHRvIGV4Y2x1ZGUgaGln aGx5IG5vbi11bmlxdWUKKyAgIHZhbHVlcyBmcm9tIHRoZSBpbmRleCB1c2luZyBhIHBhcnRpYWwg aW5kZXggY29uZGl0aW9uLCBidXQgdGhpcyBtYXkKKyAgIG5vdCBiZSBzdWl0YWJsZSBpbiBtYW55 IGNhc2VzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBMaWtlIEItVHJlZXMsIGhhc2ggaW5k ZXhlcyBwZXJmb3JtIHNpbXBsZSBpbmRleCB0dXBsZSBkZWxldGlvbi4gVGhpcworICAgaXMgYSBk ZWZlcnJlZCBtYWludGVuYW5jZSBvcGVyYXRpb24gdGhhdCBkZWxldGVzIGluZGV4IHR1cGxlcyB0 aGF0IGFyZQorICAga25vd24gdG8gYmUgc2FmZSB0byBkZWxldGUgKHRob3NlIHdob3NlIGl0ZW0g aWRlbnRpZmllcidzIExQX0RFQUQgYml0CisgICBpcyBhbHJlYWR5IHNldCkuIElmIGFuIGluc2Vy dCBmaW5kcyBubyBzcGFjZSBpcyBhdmFpbGFibGUgb24gYSBwYWdlIHdlCisgICB0cnkgdG8gYXZv aWQgY3JlYXRpbmcgYSBuZXcgb3ZlcmZsb3cgcGFnZSBieSBhdHRlbXB0aW5nIHRvIHJlbW92ZSBk ZWFkCisgICBpbmRleCB0dXBsZXMuIFJlbW92YWwgY2Fubm90IG9jY3VyIGlmIHRoZSBwYWdlIGlz IHBpbm5lZCBhdCB0aGF0IHRpbWUuCisgICBEZWxldGlvbiBvZiBkZWFkIGluZGV4IHBvaW50ZXJz IGFsc28gb2NjdXJzIGR1cmluZyBWQUNVVU0uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIElm IGl0IGNhbiwgVkFDVVVNIHdpbGwgYWxzbyB0cnkgdG8gc3F1ZWV6ZSB0aGUgaW5kZXggdHVwbGVz IG9udG8gYXMKKyAgIGZldyBvdmVyZmxvdyBwYWdlcyBhcyBwb3NzaWJsZSwgbWluaW1pemluZyB0 aGUgb3ZlcmZsb3cgY2hhaW4uIElmIGFuCisgICBvdmVyZmxvdyBwYWdlIGJlY29tZXMgZW1wdHks IG92ZXJmbG93IHBhZ2VzIGNhbiBiZSByZWN5Y2xlZCBmb3IgcmV1c2UKKyAgIGluIG90aGVyIGJ1 Y2tldHMsIHRob3VnaCB3ZSBuZXZlciByZXR1cm4gdGhlbSB0byB0aGUgb3BlcmF0aW5nIHN5c3Rl bS4KKyAgIFRoZXJlIGlzIGN1cnJlbnRseSBubyBwcm92aXNpb24gdG8gc2hyaW5rIGEgaGFzaCBp bmRleCwgb3RoZXIgdGhhbiBieQorICAgcmVidWlsZGluZyBpdCB3aXRoIFJFSU5ERVguCisgICBU aGVyZSBpcyBubyBwcm92aXNpb24gZm9yIHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgYnVja2V0cywg ZWl0aGVyLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBIYXNoIGluZGV4ZXMgbWF5IGV4cGFu ZCB0aGUgbnVtYmVyIG9mIGJ1Y2tldCBwYWdlcyBhcyB0aGUgbnVtYmVyIG9mCisgICByb3dzIGlu ZGV4ZWQgZ3Jvd3MuIFRoZSBoYXNoIGtleS10by1idWNrZXQtbnVtYmVyIG1hcHBpbmcgaXMgY2hv c2VuIHNvIHRoYXQKKyAgIHRoZSBpbmRleCBjYW4gYmUgaW5jcmVtZW50YWxseSBleHBhbmRlZC4g V2hlbiBhIG5ldyBidWNrZXQgaXMgdG8gYmUgYWRkZWQgdG8KKyAgIHRoZSBpbmRleCwgZXhhY3Rs eSBvbmUgZXhpc3RpbmcgYnVja2V0IHdpbGwgbmVlZCB0byBiZSAic3BsaXQiLCB3aXRoIHNvbWUg b2YKKyAgIGl0cyB0dXBsZXMgYmVpbmcgdHJhbnNmZXJyZWQgdG8gdGhlIG5ldyBidWNrZXQgYWNj b3JkaW5nIHRvIHRoZSB1cGRhdGVkCisgICBrZXktdG8tYnVja2V0LW51bWJlciBtYXBwaW5nLgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgZXhwYW5zaW9uIG9jY3VycyBpbiB0aGUgZm9y ZWdyb3VuZCwgd2hpY2ggY291bGQgaW5jcmVhc2UgZXhlY3V0aW9uCisgICB0aW1lIGZvciB1c2Vy IGluc2VydHMuIFRodXMsIGhhc2ggaW5kZXhlcyBtYXkgbm90IGJlIHN1aXRhYmxlIGZvciB0YWJs ZXMKKyAgIHdpdGggcmFwaWRseSBpbmNyZWFzaW5nIG51bWJlciBvZiByb3dzLgorICA8L3BhcmE+ CisKKyA8L3NlY3QyPgorCisgPHNlY3QyIGlkPSJoYXNoLWltcGxlbWVudGF0aW9uIj4KKyAgPHRp dGxlPkltcGxlbWVudGF0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGFyZSBmb3Vy IGtpbmRzIG9mIHBhZ2VzIGluIGEgaGFzaCBpbmRleDogdGhlIG1ldGEgcGFnZSAocGFnZSB6ZXJv KSwKKyAgIHdoaWNoIGNvbnRhaW5zIHN0YXRpY2FsbHkgYWxsb2NhdGVkIGNvbnRyb2wgaW5mb3Jt YXRpb247IHByaW1hcnkgYnVja2V0CisgICBwYWdlczsgb3ZlcmZsb3cgcGFnZXM7IGFuZCBiaXRt YXAgcGFnZXMsIHdoaWNoIGtlZXAgdHJhY2sgb2Ygb3ZlcmZsb3cKKyAgIHBhZ2VzIHRoYXQgaGF2 ZSBiZWVuIGZyZWVkIGFuZCBhcmUgYXZhaWxhYmxlIGZvciByZS11c2UuIEZvciBhZGRyZXNzaW5n CisgICBwdXJwb3NlcywgYml0bWFwIHBhZ2VzIGFyZSByZWdhcmRlZCBhcyBhIHN1YnNldCBvZiB0 aGUgb3ZlcmZsb3cgcGFnZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEJvdGggc2Nhbm5p bmcgdGhlIGluZGV4IGFuZCBpbnNlcnRpbmcgdHVwbGVzIHJlcXVpcmUgbG9jYXRpbmcgdGhlIGJ1 Y2tldAorICAgd2hlcmUgYSBnaXZlbiB0dXBsZSBvdWdodCB0byBiZSBsb2NhdGVkLiBUbyBkbyB0 aGlzLCB3ZSBuZWVkIHRoZSBidWNrZXQKKyAgIGNvdW50LCBoaWdobWFzaywgYW5kIGxvd21hc2sg ZnJvbSB0aGUgbWV0YXBhZ2U7IGhvd2V2ZXIsIGl0J3MgdW5kZXNpcmFibGUKKyAgIGZvciBwZXJm b3JtYW5jZSByZWFzb25zIHRvIGhhdmUgdG8gaGF2ZSB0byBsb2NrIGFuZCBwaW4gdGhlIG1ldGFw YWdlIGZvcgorICAgZXZlcnkgc3VjaCBvcGVyYXRpb24uIEluc3RlYWQsIHdlIHJldGFpbiBhIGNh Y2hlZCBjb3B5IG9mIHRoZSBtZXRhcGFnZQorICAgaW4gZWFjaCBiYWNrZW5kJ3MgcmVsY2FjaGUg ZW50cnkuIFRoaXMgd2lsbCBwcm9kdWNlIHRoZSBjb3JyZWN0IGJ1Y2tldAorICAgbWFwcGluZyBh cyBsb25nIGFzIHRoZSB0YXJnZXQgYnVja2V0IGhhc24ndCBiZWVuIHNwbGl0IHNpbmNlIHRoZSBs YXN0CisgICBjYWNoZSByZWZyZXNoLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBQcmltYXJ5 IGJ1Y2tldCBwYWdlcyBhbmQgb3ZlcmZsb3cgcGFnZXMgYXJlIGFsbG9jYXRlZCBpbmRlcGVuZGVu dGx5IHNpbmNlCisgICBhbnkgZ2l2ZW4gaW5kZXggbWlnaHQgbmVlZCBtb3JlIG9yIGZld2VyIG92 ZXJmbG93IHBhZ2VzIHJlbGF0aXZlIHRvIGl0cworICAgbnVtYmVyIG9mIGJ1Y2tldHMuIFRoZSBo YXNoIGNvZGUgdXNlcyBhbiBpbnRlcmVzdGluZyBzZXQgb2YgYWRkcmVzc2luZworICAgcnVsZXMg dG8gc3VwcG9ydCBhIHZhcmlhYmxlIG51bWJlciBvZiBvdmVyZmxvdyBwYWdlcyB3aGlsZSBub3Qg aGF2aW5nIHRvCisgICBtb3ZlIHByaW1hcnkgYnVja2V0IHBhZ2VzIGFyb3VuZCBhZnRlciB0aGV5 IGFyZSBjcmVhdGVkLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBFYWNoIHJvdyBpbiB0aGUg dGFibGUgaW5kZXhlZCBpcyByZXByZXNlbnRlZCBieSBhIHNpbmdsZSBpbmRleCB0dXBsZSBpbgor ICAgdGhlIGhhc2ggaW5kZXguIEhhc2ggaW5kZXggdHVwbGVzIGFyZSBzdG9yZWQgaW4gYnVja2V0 IHBhZ2VzLCBhbmQgaWYKKyAgIHRoZXkgZXhpc3QsIG92ZXJmbG93IHBhZ2VzLiBXZSBzcGVlZCB1 cCBzZWFyY2hlcyBieSBrZWVwaW5nIHRoZSBpbmRleCBlbnRyaWVzCisgICBpbiBhbnkgb25lIGlu ZGV4IHBhZ2Ugc29ydGVkIGJ5IGhhc2ggY29kZSwgdGh1cyBhbGxvd2luZyBiaW5hcnkgc2VhcmNo IHRvIGJlCisgICB1c2VkIHdpdGhpbiBhbiBpbmRleCBwYWdlLiBOb3RlIGhvd2V2ZXIgdGhhdCB0 aGVyZSBpcyAqbm8qIGFzc3VtcHRpb24gYWJvdXQKKyAgIHRoZSByZWxhdGl2ZSBvcmRlcmluZyBv ZiBoYXNoIGNvZGVzIGFjcm9zcyBkaWZmZXJlbnQgaW5kZXggcGFnZXMgb2YgYSBidWNrZXQuCisg IDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBidWNrZXQgc3BsaXR0aW5nIGFsZ29yaXRobXMg dG8gZXhwYW5kIHRoZSBoYXNoIGluZGV4IGFyZSB0b28gY29tcGxleCB0bworICAgYmUgd29ydGh5 IG9mIG1lbnRpb24gaGVyZSwgdGhvdWdoIGFyZSBkZXNjcmliZWQgaW4gbW9yZSBkZXRhaWwgaW4K KyAgIDxmaWxlbmFtZT5zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9SRUFETUU8L2ZpbGVuYW1lPi4K KyAgIFRoZSBzcGxpdCBhbGdvcml0aG0gaXMgY3Jhc2ggc2FmZSBhbmQgY2FuIGJlIHJlc3RhcnRl ZCBpZiBub3QgY29tcGxldGVkCisgICBzdWNjZXNzZnVsbHkuCisgIDwvcGFyYT4KKworIDwvc2Vj dDI+CisKKyA8L3NlY3QxPgorCis8L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cG9zdGdyZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy5zZ21sCmluZGV4IDczYjQ5N2Jj ZjguLjAyMzVjMGUzNTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy5zZ21sCkBAIC0yNTcsMTIgKzI1Nyw3IEBAIGJyZWFr IGlzIG5vdCBuZWVkZWQgaW4gYSB3aWRlciBvdXRwdXQgcmVuZGVyaW5nLgogICAmaW5kZXhhbTsK ICAgJmdlbmVyaWMtd2FsOwogICAmY3VzdG9tLXJtZ3I7Ci0gICZidHJlZTsKLSAgJmdpc3Q7Ci0g ICZzcGdpc3Q7Ci0gICZnaW47Ci0gICZicmluOwotICAmaGFzaDsKKyAgJmluZGV4dHlwZXM7CiAg ICZzdG9yYWdlOwogICAmdHJhbnNhY3Rpb247CiAgICZia2k7CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvc3BnaXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3BnaXN0LnNnbWwKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDEwMmY4NjI3YmQuLjAwMDAwMDAwMDAKLS0tIGEvZG9jL3NyYy9z Z21sL3NwZ2lzdC5zZ21sCisrKyAvZGV2L251bGwKQEAgLTEsMTA3NiArMCwwIEBACi08IS0tIGRv Yy9zcmMvc2dtbC9zcGdpc3Quc2dtbCAtLT4KLQotPGNoYXB0ZXIgaWQ9InNwZ2lzdCI+Ci08dGl0 bGU+U1AtR2lTVCBJbmRleGVzPC90aXRsZT4KLQotICAgPGluZGV4dGVybT4KLSAgICA8cHJpbWFy eT5pbmRleDwvcHJpbWFyeT4KLSAgICA8c2Vjb25kYXJ5PlNQLUdpU1Q8L3NlY29uZGFyeT4KLSAg IDwvaW5kZXh0ZXJtPgotCi08c2VjdDEgaWQ9InNwZ2lzdC1pbnRybyI+Ci0gPHRpdGxlPkludHJv ZHVjdGlvbjwvdGl0bGU+Ci0KLSA8cGFyYT4KLSAgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4g aXMgYW4gYWJicmV2aWF0aW9uIGZvciBzcGFjZS1wYXJ0aXRpb25lZAotICA8YWNyb255bT5HaVNU PC9hY3JvbnltPi4gIDxhY3JvbnltPlNQLUdpU1Q8L2Fjcm9ueW0+IHN1cHBvcnRzIHBhcnRpdGlv bmVkCi0gIHNlYXJjaCB0cmVlcywgd2hpY2ggZmFjaWxpdGF0ZSBkZXZlbG9wbWVudCBvZiBhIHdp ZGUgcmFuZ2Ugb2YgZGlmZmVyZW50Ci0gIG5vbi1iYWxhbmNlZCBkYXRhIHN0cnVjdHVyZXMsIHN1 Y2ggYXMgcXVhZC10cmVlcywgay1kIHRyZWVzLCBhbmQgcmFkaXgKLSAgdHJlZXMgKHRyaWVzKS4g IFRoZSBjb21tb24gZmVhdHVyZSBvZiB0aGVzZSBzdHJ1Y3R1cmVzIGlzIHRoYXQgdGhleQotICBy ZXBlYXRlZGx5IGRpdmlkZSB0aGUgc2VhcmNoIHNwYWNlIGludG8gcGFydGl0aW9ucyB0aGF0IG5l ZWQgbm90IGJlCi0gIG9mIGVxdWFsIHNpemUuICBTZWFyY2hlcyB0aGF0IGFyZSB3ZWxsIG1hdGNo ZWQgdG8gdGhlIHBhcnRpdGlvbmluZyBydWxlCi0gIGNhbiBiZSB2ZXJ5IGZhc3QuCi0gPC9wYXJh PgotCi0gPHBhcmE+Ci0gIFRoZXNlIHBvcHVsYXIgZGF0YSBzdHJ1Y3R1cmVzIHdlcmUgb3JpZ2lu YWxseSBkZXZlbG9wZWQgZm9yIGluLW1lbW9yeQotICB1c2FnZS4gIEluIG1haW4gbWVtb3J5LCB0 aGV5IGFyZSB1c3VhbGx5IGRlc2lnbmVkIGFzIGEgc2V0IG9mIGR5bmFtaWNhbGx5Ci0gIGFsbG9j YXRlZCBub2RlcyBsaW5rZWQgYnkgcG9pbnRlcnMuICBUaGlzIGlzIG5vdCBzdWl0YWJsZSBmb3Ig ZGlyZWN0Ci0gIHN0b3Jpbmcgb24gZGlzaywgc2luY2UgdGhlc2UgY2hhaW5zIG9mIHBvaW50ZXJz IGNhbiBiZSByYXRoZXIgbG9uZyB3aGljaAotICB3b3VsZCByZXF1aXJlIHRvbyBtYW55IGRpc2sg YWNjZXNzZXMuICBJbiBjb250cmFzdCwgZGlzay1iYXNlZCBkYXRhCi0gIHN0cnVjdHVyZXMgc2hv dWxkIGhhdmUgYSBoaWdoIGZhbm91dCB0byBtaW5pbWl6ZSBJL08uICBUaGUgY2hhbGxlbmdlCi0g IGFkZHJlc3NlZCBieSA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBpcyB0byBtYXAgc2VhcmNo IHRyZWUgbm9kZXMgdG8KLSAgZGlzayBwYWdlcyBpbiBzdWNoIGEgd2F5IHRoYXQgYSBzZWFyY2gg bmVlZCBhY2Nlc3Mgb25seSBhIGZldyBkaXNrIHBhZ2VzLAotICBldmVuIGlmIGl0IHRyYXZlcnNl cyBtYW55IG5vZGVzLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBMaWtlIDxhY3JvbnltPkdpU1Q8 L2Fjcm9ueW0+LCA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBpcyBtZWFudCB0byBhbGxvdwot ICB0aGUgZGV2ZWxvcG1lbnQgb2YgY3VzdG9tIGRhdGEgdHlwZXMgd2l0aCB0aGUgYXBwcm9wcmlh dGUgYWNjZXNzIG1ldGhvZHMsCi0gIGJ5IGFuIGV4cGVydCBpbiB0aGUgZG9tYWluIG9mIHRoZSBk YXRhIHR5cGUsIHJhdGhlciB0aGFuIGEgZGF0YWJhc2UgZXhwZXJ0LgotIDwvcGFyYT4KLQotIDxw YXJhPgotICBTb21lIG9mIHRoZSBpbmZvcm1hdGlvbiBoZXJlIGlzIGRlcml2ZWQgZnJvbSBQdXJk dWUgVW5pdmVyc2l0eSdzCi0gIFNQLUdpU1QgSW5kZXhpbmcgUHJvamVjdAotICA8dWxpbmsgdXJs PSJodHRwczovL3d3dy5jcy5wdXJkdWUuZWR1L3NwZ2lzdC8iPndlYiBzaXRlPC91bGluaz4uCi0g IFRoZSA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBpbXBsZW1lbnRhdGlvbiBpbgotICA8cHJv ZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGlzIHByaW1hcmlseSBtYWludGFpbmVk IGJ5IFRlb2RvcgotICBTaWdhZXYgYW5kIE9sZWcgQmFydHVub3YsIGFuZCB0aGVyZSBpcyBtb3Jl IGluZm9ybWF0aW9uIG9uIHRoZWlyCi0gIDwhLS0gVVJMIHdpbGwgYmUgY2hhbmdlZCAtLT4KLSAg PHVsaW5rIHVybD0iaHR0cDovL3d3dy5zYWkubXN1LnN1L35tZWdlcmEvd2lraS9zcGdpc3RfZGV2 Ij53ZWIgc2l0ZTwvdWxpbms+LgotIDwvcGFyYT4KLQotPC9zZWN0MT4KLQotPHNlY3QxIGlkPSJz cGdpc3QtYnVpbHRpbi1vcGNsYXNzZXMiPgotIDx0aXRsZT5CdWlsdC1pbiBPcGVyYXRvciBDbGFz c2VzPC90aXRsZT4KLQotIDxwYXJhPgotICBUaGUgY29yZSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNR TDwvcHJvZHVjdG5hbWU+IGRpc3RyaWJ1dGlvbgotICBpbmNsdWRlcyB0aGUgPGFjcm9ueW0+U1At R2lTVDwvYWNyb255bT4gb3BlcmF0b3IgY2xhc3NlcyBzaG93biBpbgotICA8eHJlZiBsaW5rZW5k PSJzcGdpc3QtYnVpbHRpbi1vcGNsYXNzZXMtdGFibGUiLz4uCi0gPC9wYXJhPgotCi0gIDx0YWJs ZSBpZD0ic3BnaXN0LWJ1aWx0aW4tb3BjbGFzc2VzLXRhYmxlIj4KLSAgIDx0aXRsZT5CdWlsdC1p biA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBPcGVyYXRvciBDbGFzc2VzPC90aXRsZT4KLSAg IDx0Z3JvdXAgY29scz0iMyI+Ci0gICAgPHRoZWFkPgotICAgICA8cm93PgotICAgICAgPGVudHJ5 Pk5hbWU8L2VudHJ5PgotICAgICAgPGVudHJ5PkluZGV4YWJsZSBPcGVyYXRvcnM8L2VudHJ5Pgot ICAgICAgPGVudHJ5Pk9yZGVyaW5nIE9wZXJhdG9yczwvZW50cnk+Ci0gICAgIDwvcm93PgotICAg IDwvdGhlYWQ+Ci0gICAgPHRib2R5PgotICAgICA8cm93PgotICAgICAgPGVudHJ5IHZhbGlnbj0i bWlkZGxlIiBtb3Jlcm93cz0iMTEiPjxsaXRlcmFsPmJveF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4K LSAgICAgIDxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmx0OyAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRy eT4KLSAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjExIj48bGl0ZXJhbD4m bHQ7LSZndDsgKGJveCxwb2ludCk8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgPC9yb3c+Ci0gICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmx0OyAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmZ3Q7IChib3gsYm94KTwv bGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0 OyAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmx0O0AgKGJveCxib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93Pgot ICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5+PSAoYm94LGJveCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmYW1wOyAoYm94LGJveCk8L2xp dGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDt8 IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0 ZXJhbD4mYW1wOyZsdDt8IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD58JmFtcDsmZ3Q7IChib3gsYm94KTwvbGl0ZXJhbD48L2VudHJ5 Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD58Jmd0OyZndDsgKGJveCxib3gpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICAgPHJvdz4KLSAgICAgIDxlbnRyeSB2YWxpZ249 Im1pZGRsZSIgbW9yZXJvd3M9IjEwIj48bGl0ZXJhbD5pbmV0X29wczwvbGl0ZXJhbD48L2VudHJ5 PgotICAgICAgPGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChpbmV0LGluZXQpPC9saXRlcmFsPjwv ZW50cnk+Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSIxMCI+PC9lbnRy eT4KLSAgICAgPC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7PSAoaW5l dCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mZ3Q7Jmd0OyAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0Oz0gKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+PSAoaW5ldCxpbmV0KTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmd0OyAoaW5ldCxp bmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4m bHQ7IChpbmV0LGluZXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5 PjxsaXRlcmFsPiZsdDs9IChpbmV0LGluZXQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsgKGluZXQsaW5ldCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+Jmd0Oz0gKGluZXQsaW5ldCk8L2xpdGVy YWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmYW1wOyAo aW5ldCxpbmV0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgIDxyb3c+Ci0gICAgICA8 ZW50cnkgdmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI1Ij48bGl0ZXJhbD5rZF9wb2ludF9vcHM8 L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgIDxlbnRyeT48bGl0ZXJhbD58Jmd0OyZndDsgKHBvaW50 LHBvaW50KTwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBt b3Jlcm93cz0iNSI+PGxpdGVyYWw+Jmx0Oy0mZ3Q7IChwb2ludCxwb2ludCk8L2xpdGVyYWw+PC9l bnRyeT4KLSAgICAgPC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChw b2ludCxwb2ludCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmd0OyZndDsgKHBvaW50LHBvaW50KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmx0O3wgKHBvaW50LHBvaW50KTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5+PSAocG9pbnQscG9pbnQp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZsdDtA IChwb2ludCxib3gpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICAgPHJvdz4KLSAgICAg IDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9IjExIj48bGl0ZXJhbD5wb2x5X29wczwv bGl0ZXJhbD48L2VudHJ5PgotICAgICAgPGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7IChwb2x5Z29u LHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUi IG1vcmVyb3dzPSIxMSI+PGxpdGVyYWw+Jmx0Oy0mZ3Q7IChwb2x5Z29uLHBvaW50KTwvbGl0ZXJh bD48L2VudHJ5PgotICAgICA8L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsm bHQ7IChwb2x5Z29uLHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+ PGVudHJ5PjxsaXRlcmFsPiZhbXA7Jmd0OyAocG9seWdvbixwb2x5Z29uKTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7Jmd0OyAocG9seWdvbixw b2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJh bD4mbHQ7QCAocG9seWdvbixwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8 cm93PjxlbnRyeT48bGl0ZXJhbD5AJmd0OyAocG9seWdvbixwb2x5Z29uKTwvbGl0ZXJhbD48L2Vu dHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD5+PSAocG9seWdvbixwb2x5Z29u KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1w OyZhbXA7IChwb2x5Z29uLHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxy b3c+PGVudHJ5PjxsaXRlcmFsPiZsdDsmbHQ7fCAocG9seWdvbixwb2x5Z29uKTwvbGl0ZXJhbD48 L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZsdDt8IChwb2x5 Z29uLHBvbHlnb24pPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5Pjxs aXRlcmFsPnwmZ3Q7Jmd0OyAocG9seWdvbixwb2x5Z29uKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD58JmFtcDsmZ3Q7IChwb2x5Z29uLHBvbHlnb24p PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0KLSAgICAgPHJvdz4KLSAgICAgIDxlbnRyeSB2YWxp Z249Im1pZGRsZSIgbW9yZXJvd3M9IjUiPjxsaXRlcmFsPnF1YWRfcG9pbnRfb3BzPC9saXRlcmFs PjwvZW50cnk+Ci0gICAgICA8ZW50cnk+PGxpdGVyYWw+fCZndDsmZ3Q7IChwb2ludCxwb2ludCk8 L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9 IjUiPjxsaXRlcmFsPiZsdDstJmd0OyAocG9pbnQscG9pbnQpPC9saXRlcmFsPjwvZW50cnk+Ci0g ICAgIDwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmx0OyAocG9pbnQscG9p bnQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZn dDsmZ3Q7IChwb2ludCxwb2ludCk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48 ZW50cnk+PGxpdGVyYWw+Jmx0OyZsdDt8IChwb2ludCxwb2ludCk8L2xpdGVyYWw+PC9lbnRyeT48 L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fj0gKHBvaW50LHBvaW50KTwvbGl0ZXJh bD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7QCAocG9pbnQs Ym94KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotCi0gICAgIDxyb3c+Ci0gICAgICA8ZW50cnkg dmFsaWduPSJtaWRkbGUiIG1vcmVyb3dzPSI5Ij48bGl0ZXJhbD5yYW5nZV9vcHM8L2xpdGVyYWw+ PC9lbnRyeT4KLSAgICAgIDxlbnRyeT48bGl0ZXJhbD49IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xp dGVyYWw+PC9lbnRyeT4KLSAgICAgIDxlbnRyeSB2YWxpZ249Im1pZGRsZSIgbW9yZXJvd3M9Ijki PjwvZW50cnk+Ci0gICAgIDwvcm93PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mYW1wOyZh bXA7IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJv dz48ZW50cnk+PGxpdGVyYWw+QCZndDsgKGFueXJhbmdlLGFueWVsZW1lbnQpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPkAmZ3Q7IChhbnlyYW5nZSxh bnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+Jmx0O0AgKGFueXJhbmdlLGFueXJhbmdlKTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAg ICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mbHQ7Jmx0OyAoYW55cmFuZ2UsYW55cmFuZ2UpPC9saXRl cmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDsmZ3Q7IChh bnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50 cnk+PGxpdGVyYWw+JmFtcDsmbHQ7IChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+JmFtcDsmZ3Q7IChhbnlyYW5nZSxh bnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVy YWw+LXwtIChhbnlyYW5nZSxhbnlyYW5nZSk8L2xpdGVyYWw+PC9lbnRyeT48L3Jvdz4KLQotICAg ICA8cm93PgotICAgICAgPGVudHJ5IHZhbGlnbj0ibWlkZGxlIiBtb3Jlcm93cz0iOSI+PGxpdGVy YWw+dGV4dF9vcHM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgIDxlbnRyeT48bGl0ZXJhbD49ICh0 ZXh0LHRleHQpPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICA8ZW50cnkgdmFsaWduPSJtaWRkbGUi IG1vcmVyb3dzPSI5Ij48L2VudHJ5PgotICAgICA8L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxp dGVyYWw+Jmx0OyAodGV4dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93 PjxlbnRyeT48bGl0ZXJhbD4mbHQ7PSAodGV4dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93 PgotICAgICA8cm93PjxlbnRyeT48bGl0ZXJhbD4mZ3Q7ICh0ZXh0LHRleHQpPC9saXRlcmFsPjwv ZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPiZndDs9ICh0ZXh0LHRleHQp PC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPn4mbHQ7 fiAodGV4dCx0ZXh0KTwvbGl0ZXJhbD48L2VudHJ5Pjwvcm93PgotICAgICA8cm93PjxlbnRyeT48 bGl0ZXJhbD5+Jmx0Oz1+ICh0ZXh0LHRleHQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAg IDxyb3c+PGVudHJ5PjxsaXRlcmFsPn4mZ3Q7PX4gKHRleHQsdGV4dCk8L2xpdGVyYWw+PC9lbnRy eT48L3Jvdz4KLSAgICAgPHJvdz48ZW50cnk+PGxpdGVyYWw+fiZndDt+ICh0ZXh0LHRleHQpPC9s aXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgIDxyb3c+PGVudHJ5PjxsaXRlcmFsPl5AICh0ZXh0 LHRleHQpPC9saXRlcmFsPjwvZW50cnk+PC9yb3c+Ci0gICAgPC90Ym9keT4KLSAgIDwvdGdyb3Vw PgotICA8L3RhYmxlPgotCi0gPHBhcmE+Ci0gIE9mIHRoZSB0d28gb3BlcmF0b3IgY2xhc3NlcyBm b3IgdHlwZSA8dHlwZT5wb2ludDwvdHlwZT4sCi0gIDxsaXRlcmFsPnF1YWRfcG9pbnRfb3BzPC9s aXRlcmFsPiBpcyB0aGUgZGVmYXVsdC4gIDxsaXRlcmFsPmtkX3BvaW50X29wczwvbGl0ZXJhbD4K LSAgc3VwcG9ydHMgdGhlIHNhbWUgb3BlcmF0b3JzIGJ1dCB1c2VzIGEgZGlmZmVyZW50IGluZGV4 IGRhdGEgc3RydWN0dXJlIHRoYXQKLSAgbWF5IG9mZmVyIGJldHRlciBwZXJmb3JtYW5jZSBpbiBz b21lIGFwcGxpY2F0aW9ucy4KLSA8L3BhcmE+Ci0gPHBhcmE+Ci0gIFRoZSA8bGl0ZXJhbD5xdWFk X3BvaW50X29wczwvbGl0ZXJhbD4sIDxsaXRlcmFsPmtkX3BvaW50X29wczwvbGl0ZXJhbD4gYW5k Ci0gIDxsaXRlcmFsPnBvbHlfb3BzPC9saXRlcmFsPiBvcGVyYXRvciBjbGFzc2VzIHN1cHBvcnQg dGhlIDxsaXRlcmFsPiZsdDstJmd0OzwvbGl0ZXJhbD4KLSAgb3JkZXJpbmcgb3BlcmF0b3IsIHdo aWNoIGVuYWJsZXMgdGhlIGstbmVhcmVzdCBuZWlnaGJvciAoPGxpdGVyYWw+ay1OTjwvbGl0ZXJh bD4pCi0gIHNlYXJjaCBvdmVyIGluZGV4ZWQgcG9pbnQgb3IgcG9seWdvbiBkYXRhIHNldHMuCi0g PC9wYXJhPgotCi08L3NlY3QxPgotCi08c2VjdDEgaWQ9InNwZ2lzdC1leHRlbnNpYmlsaXR5Ij4K LSA8dGl0bGU+RXh0ZW5zaWJpbGl0eTwvdGl0bGU+Ci0KLSA8cGFyYT4KLSAgPGFjcm9ueW0+U1At R2lTVDwvYWNyb255bT4gb2ZmZXJzIGFuIGludGVyZmFjZSB3aXRoIGEgaGlnaCBsZXZlbCBvZgot ICBhYnN0cmFjdGlvbiwgcmVxdWlyaW5nIHRoZSBhY2Nlc3MgbWV0aG9kIGRldmVsb3BlciB0byBp bXBsZW1lbnQgb25seQotICBtZXRob2RzIHNwZWNpZmljIHRvIGEgZ2l2ZW4gZGF0YSB0eXBlLiBU aGUgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4gY29yZQotICBpcyByZXNwb25zaWJsZSBmb3Ig ZWZmaWNpZW50IGRpc2sgbWFwcGluZyBhbmQgc2VhcmNoaW5nIHRoZSB0cmVlIHN0cnVjdHVyZS4K LSAgSXQgYWxzbyB0YWtlcyBjYXJlIG9mIGNvbmN1cnJlbmN5IGFuZCBsb2dnaW5nIGNvbnNpZGVy YXRpb25zLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBMZWFmIHR1cGxlcyBvZiBhbiA8YWNyb255 bT5TUC1HaVNUPC9hY3JvbnltPiB0cmVlIHVzdWFsbHkgY29udGFpbiB2YWx1ZXMKLSAgb2YgdGhl IHNhbWUgZGF0YSB0eXBlIGFzIHRoZSBpbmRleGVkIGNvbHVtbiwgYWx0aG91Z2ggaXQgaXMgYWxz byBwb3NzaWJsZQotICBmb3IgdGhlbSB0byBjb250YWluIGxvc3N5IHJlcHJlc2VudGF0aW9ucyBv ZiB0aGUgaW5kZXhlZCBjb2x1bW4uCi0gIExlYWYgdHVwbGVzIHN0b3JlZCBhdCB0aGUgcm9vdCBs ZXZlbCB3aWxsIGRpcmVjdGx5IHJlcHJlc2VudAotICB0aGUgb3JpZ2luYWwgaW5kZXhlZCBkYXRh IHZhbHVlLCBidXQgbGVhZiB0dXBsZXMgYXQgbG93ZXIKLSAgbGV2ZWxzIG1pZ2h0IGNvbnRhaW4g b25seSBhIHBhcnRpYWwgdmFsdWUsIHN1Y2ggYXMgYSBzdWZmaXguCi0gIEluIHRoYXQgY2FzZSB0 aGUgb3BlcmF0b3IgY2xhc3Mgc3VwcG9ydCBmdW5jdGlvbnMgbXVzdCBiZSBhYmxlIHRvCi0gIHJl Y29uc3RydWN0IHRoZSBvcmlnaW5hbCB2YWx1ZSB1c2luZyBpbmZvcm1hdGlvbiBhY2N1bXVsYXRl ZCBmcm9tIHRoZQotICBpbm5lciB0dXBsZXMgdGhhdCBhcmUgcGFzc2VkIHRocm91Z2ggdG8gcmVh Y2ggdGhlIGxlYWYgbGV2ZWwuCi0gPC9wYXJhPgotCi0gPHBhcmE+Ci0gIFdoZW4gYW4gPGFjcm9u eW0+U1AtR2lTVDwvYWNyb255bT4gaW5kZXggaXMgY3JlYXRlZCB3aXRoCi0gIDxsaXRlcmFsPklO Q0xVREU8L2xpdGVyYWw+IGNvbHVtbnMsIHRoZSB2YWx1ZXMgb2YgdGhvc2UgY29sdW1ucyBhcmUg YWxzbwotICBzdG9yZWQgaW4gbGVhZiB0dXBsZXMuICBUaGUgPGxpdGVyYWw+SU5DTFVERTwvbGl0 ZXJhbD4gY29sdW1ucyBhcmUgb2Ygbm8KLSAgY29uY2VybiB0byB0aGUgPGFjcm9ueW0+U1AtR2lT VDwvYWNyb255bT4gb3BlcmF0b3IgY2xhc3MsIHNvIHRoZXkgYXJlCi0gIG5vdCBkaXNjdXNzZWQg ZnVydGhlciBoZXJlLgotIDwvcGFyYT4KLQotIDxwYXJhPgotICBJbm5lciB0dXBsZXMgYXJlIG1v cmUgY29tcGxleCwgc2luY2UgdGhleSBhcmUgYnJhbmNoaW5nIHBvaW50cyBpbiB0aGUKLSAgc2Vh cmNoIHRyZWUuICBFYWNoIGlubmVyIHR1cGxlIGNvbnRhaW5zIGEgc2V0IG9mIG9uZSBvciBtb3Jl Ci0gIDxmaXJzdHRlcm0+bm9kZXM8L2ZpcnN0dGVybT4sIHdoaWNoIHJlcHJlc2VudCBncm91cHMg b2Ygc2ltaWxhciBsZWFmIHZhbHVlcy4KLSAgQSBub2RlIGNvbnRhaW5zIGEgZG93bmxpbmsgdGhh dCBsZWFkcyBlaXRoZXIgdG8gYW5vdGhlciwgbG93ZXItbGV2ZWwgaW5uZXIKLSAgdHVwbGUsIG9y IHRvIGEgc2hvcnQgbGlzdCBvZiBsZWFmIHR1cGxlcyB0aGF0IGFsbCBsaWUgb24gdGhlIHNhbWUg aW5kZXggcGFnZS4KLSAgRWFjaCBub2RlIG5vcm1hbGx5IGhhcyBhIDxmaXJzdHRlcm0+bGFiZWw8 L2ZpcnN0dGVybT4gdGhhdCBkZXNjcmliZXMgaXQ7IGZvciBleGFtcGxlLAotICBpbiBhIHJhZGl4 IHRyZWUgdGhlIG5vZGUgbGFiZWwgY291bGQgYmUgdGhlIG5leHQgY2hhcmFjdGVyIG9mIHRoZSBz dHJpbmcKLSAgdmFsdWUuICAoQWx0ZXJuYXRpdmVseSwgYW4gb3BlcmF0b3IgY2xhc3MgY2FuIG9t aXQgdGhlIG5vZGUgbGFiZWxzLCBpZiBpdAotICB3b3JrcyB3aXRoIGEgZml4ZWQgc2V0IG9mIG5v ZGVzIGZvciBhbGwgaW5uZXIgdHVwbGVzOwotICBzZWUgPHhyZWYgbGlua2VuZD0ic3BnaXN0LW51 bGwtbGFiZWxzIi8+LikKLSAgT3B0aW9uYWxseSwgYW4gaW5uZXIgdHVwbGUgY2FuIGhhdmUgYSA8 Zmlyc3R0ZXJtPnByZWZpeDwvZmlyc3R0ZXJtPiB2YWx1ZQotICB0aGF0IGRlc2NyaWJlcyBhbGwg aXRzIG1lbWJlcnMuICBJbiBhIHJhZGl4IHRyZWUgdGhpcyBjb3VsZCBiZSB0aGUgY29tbW9uCi0g IHByZWZpeCBvZiB0aGUgcmVwcmVzZW50ZWQgc3RyaW5ncy4gIFRoZSBwcmVmaXggdmFsdWUgaXMg bm90IG5lY2Vzc2FyaWx5Ci0gIHJlYWxseSBhIHByZWZpeCwgYnV0IGNhbiBiZSBhbnkgZGF0YSBu ZWVkZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzOwotICBmb3IgZXhhbXBsZSwgaW4gYSBxdWFkLXRy ZWUgaXQgY2FuIHN0b3JlIHRoZSBjZW50cmFsIHBvaW50IHRoYXQgdGhlIGZvdXIKLSAgcXVhZHJh bnRzIGFyZSBtZWFzdXJlZCB3aXRoIHJlc3BlY3QgdG8uICBBIHF1YWQtdHJlZSBpbm5lciB0dXBs ZSB3b3VsZAotICB0aGVuIGFsc28gY29udGFpbiBmb3VyIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8g dGhlIHF1YWRyYW50cyBhcm91bmQgdGhpcwotICBjZW50cmFsIHBvaW50LgotIDwvcGFyYT4KLQot IDxwYXJhPgotICBTb21lIHRyZWUgYWxnb3JpdGhtcyByZXF1aXJlIGtub3dsZWRnZSBvZiBsZXZl bCAob3IgZGVwdGgpIG9mIHRoZSBjdXJyZW50Ci0gIHR1cGxlLCBzbyB0aGUgPGFjcm9ueW0+U1At R2lTVDwvYWNyb255bT4gY29yZSBwcm92aWRlcyB0aGUgcG9zc2liaWxpdHkgZm9yCi0gIG9wZXJh dG9yIGNsYXNzZXMgdG8gbWFuYWdlIGxldmVsIGNvdW50aW5nIHdoaWxlIGRlc2NlbmRpbmcgdGhl IHRyZWUuCi0gIFRoZXJlIGlzIGFsc28gc3VwcG9ydCBmb3IgaW5jcmVtZW50YWxseSByZWNvbnN0 cnVjdGluZyB0aGUgcmVwcmVzZW50ZWQKLSAgdmFsdWUgd2hlbiB0aGF0IGlzIG5lZWRlZCwgYW5k IGZvciBwYXNzaW5nIGRvd24gYWRkaXRpb25hbCBkYXRhIChjYWxsZWQKLSAgPGZpcnN0dGVybT50 cmF2ZXJzZSB2YWx1ZXM8L2ZpcnN0dGVybT4pIGR1cmluZyBhIHRyZWUgZGVzY2VudC4KLSA8L3Bh cmE+Ci0KLSA8bm90ZT4KLSAgPHBhcmE+Ci0gICBUaGUgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255 bT4gY29yZSBjb2RlIHRha2VzIGNhcmUgb2YgbnVsbCBlbnRyaWVzLgotICAgQWx0aG91Z2ggPGFj cm9ueW0+U1AtR2lTVDwvYWNyb255bT4gaW5kZXhlcyBkbyBzdG9yZSBlbnRyaWVzIGZvciBudWxs cwotICAgaW4gaW5kZXhlZCBjb2x1bW5zLCB0aGlzIGlzIGhpZGRlbiBmcm9tIHRoZSBpbmRleCBv cGVyYXRvciBjbGFzcyBjb2RlOgotICAgbm8gbnVsbCBpbmRleCBlbnRyaWVzIG9yIHNlYXJjaCBj b25kaXRpb25zIHdpbGwgZXZlciBiZSBwYXNzZWQgdG8gdGhlCi0gICBvcGVyYXRvciBjbGFzcyBt ZXRob2RzLiAgKEl0IGlzIGFzc3VtZWQgdGhhdCA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPgot ICAgb3BlcmF0b3JzIGFyZSBzdHJpY3QgYW5kIHNvIGNhbm5vdCBzdWNjZWVkIGZvciBudWxsIHZh bHVlcy4pICBOdWxsIHZhbHVlcwotICAgYXJlIHRoZXJlZm9yZSBub3QgZGlzY3Vzc2VkIGZ1cnRo ZXIgaGVyZS4KLSAgPC9wYXJhPgotIDwvbm90ZT4KLQotIDxwYXJhPgotICBUaGVyZSBhcmUgZml2 ZSB1c2VyLWRlZmluZWQgbWV0aG9kcyB0aGF0IGFuIGluZGV4IG9wZXJhdG9yIGNsYXNzIGZvcgot ICA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBtdXN0IHByb3ZpZGUsIGFuZCB0d28gYXJlIG9w dGlvbmFsLiAgQWxsIGZpdmUKLSAgbWFuZGF0b3J5IG1ldGhvZHMgZm9sbG93IHRoZSBjb252ZW50 aW9uIG9mIGFjY2VwdGluZyB0d28gPHR5cGU+aW50ZXJuYWw8L3R5cGU+Ci0gIGFyZ3VtZW50cywg dGhlIGZpcnN0IG9mIHdoaWNoIGlzIGEgcG9pbnRlciB0byBhIEMgc3RydWN0IGNvbnRhaW5pbmcg aW5wdXQKLSAgdmFsdWVzIGZvciB0aGUgc3VwcG9ydCBtZXRob2QsIHdoaWxlIHRoZSBzZWNvbmQg YXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEKLSAgQyBzdHJ1Y3Qgd2hlcmUgb3V0cHV0IHZhbHVl cyBtdXN0IGJlIHBsYWNlZC4gIEZvdXIgb2YgdGhlIG1hbmRhdG9yeSBtZXRob2RzIGp1c3QKLSAg cmV0dXJuIDx0eXBlPnZvaWQ8L3R5cGU+LCBzaW5jZSBhbGwgdGhlaXIgcmVzdWx0cyBhcHBlYXIg aW4gdGhlIG91dHB1dCBzdHJ1Y3Q7IGJ1dAotICA8ZnVuY3Rpb24+bGVhZl9jb25zaXN0ZW50PC9m dW5jdGlvbj4gcmV0dXJucyBhIDx0eXBlPmJvb2xlYW48L3R5cGU+IHJlc3VsdC4KLSAgVGhlIG1l dGhvZHMgbXVzdCBub3QgbW9kaWZ5IGFueSBmaWVsZHMgb2YgdGhlaXIgaW5wdXQgc3RydWN0cy4g IEluIGFsbAotICBjYXNlcywgdGhlIG91dHB1dCBzdHJ1Y3QgaXMgaW5pdGlhbGl6ZWQgdG8gemVy b2VzIGJlZm9yZSBjYWxsaW5nIHRoZQotICB1c2VyLWRlZmluZWQgbWV0aG9kLiAgVGhlIG9wdGlv bmFsIHNpeHRoIG1ldGhvZCA8ZnVuY3Rpb24+Y29tcHJlc3M8L2Z1bmN0aW9uPgotICBhY2NlcHRz IGEgPHR5cGU+ZGF0dW08L3R5cGU+IHRvIGJlIGluZGV4ZWQgYXMgdGhlIG9ubHkgYXJndW1lbnQg YW5kIHJldHVybnMgYSB2YWx1ZSBzdWl0YWJsZQotICBmb3IgcGh5c2ljYWwgc3RvcmFnZSBpbiBh IGxlYWYgdHVwbGUuICBUaGUgb3B0aW9uYWwgc2V2ZW50aCBtZXRob2QKLSAgPGZ1bmN0aW9uPm9w dGlvbnM8L2Z1bmN0aW9uPiBhY2NlcHRzIGFuIDx0eXBlPmludGVybmFsPC90eXBlPiBwb2ludGVy IHRvIGEgQyBzdHJ1Y3QsIHdoZXJlCi0gIG9wY2xhc3Mtc3BlY2lmaWMgcGFyYW1ldGVycyBzaG91 bGQgYmUgcGxhY2VkLCBhbmQgcmV0dXJucyA8dHlwZT52b2lkPC90eXBlPi4KLSA8L3BhcmE+Ci0K LSA8cGFyYT4KLSAgVGhlIGZpdmUgbWFuZGF0b3J5IHVzZXItZGVmaW5lZCBtZXRob2RzIGFyZToK LSA8L3BhcmE+Ci0KLSA8dmFyaWFibGVsaXN0PgotICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgIDx0 ZXJtPjxmdW5jdGlvbj5jb25maWc8L2Z1bmN0aW9uPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgot ICAgICAgPHBhcmE+Ci0gICAgICAgUmV0dXJucyBzdGF0aWMgaW5mb3JtYXRpb24gYWJvdXQgdGhl IGluZGV4IGltcGxlbWVudGF0aW9uLCBpbmNsdWRpbmcKLSAgICAgICB0aGUgZGF0YSB0eXBlIE9J RHMgb2YgdGhlIHByZWZpeCBhbmQgbm9kZSBsYWJlbCBkYXRhIHR5cGVzLgotICAgICAgPC9wYXJh PgotICAgICA8cGFyYT4KLSAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IGRlY2xhcmF0 aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZSB0aGlzOgotPHByb2dyYW1saXN0aW5n PgotQ1JFQVRFIEZVTkNUSU9OIG15X2NvbmZpZyhpbnRlcm5hbCwgaW50ZXJuYWwpIFJFVFVSTlMg dm9pZCAuLi4KLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0gICAgICBUaGUgZmlyc3QgYXJndW1lbnQgaXMg YSBwb2ludGVyIHRvIGEgPHN0cnVjdG5hbWU+c3BnQ29uZmlnSW48L3N0cnVjdG5hbWU+Ci0gICAg ICBDIHN0cnVjdCwgY29udGFpbmluZyBpbnB1dCBkYXRhIGZvciB0aGUgZnVuY3Rpb24uCi0gICAg ICBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIGEgcG9pbnRlciB0byBhIDxzdHJ1Y3RuYW1lPnNwZ0Nv bmZpZ091dDwvc3RydWN0bmFtZT4KLSAgICAgIEMgc3RydWN0LCB3aGljaCB0aGUgZnVuY3Rpb24g bXVzdCBmaWxsIHdpdGggcmVzdWx0IGRhdGEuCi08cHJvZ3JhbWxpc3Rpbmc+Ci10eXBlZGVmIHN0 cnVjdCBzcGdDb25maWdJbgotewotICAgIE9pZCAgICAgICAgIGF0dFR5cGU7ICAgICAgICAvKiBE YXRhIHR5cGUgdG8gYmUgaW5kZXhlZCAqLwotfSBzcGdDb25maWdJbjsKLQotdHlwZWRlZiBzdHJ1 Y3Qgc3BnQ29uZmlnT3V0Ci17Ci0gICAgT2lkICAgICAgICAgcHJlZml4VHlwZTsgICAgIC8qIERh dGEgdHlwZSBvZiBpbm5lci10dXBsZSBwcmVmaXhlcyAqLwotICAgIE9pZCAgICAgICAgIGxhYmVs VHlwZTsgICAgICAvKiBEYXRhIHR5cGUgb2YgaW5uZXItdHVwbGUgbm9kZSBsYWJlbHMgKi8KLSAg ICBPaWQgICAgICAgICBsZWFmVHlwZTsgICAgICAgLyogRGF0YSB0eXBlIG9mIGxlYWYtdHVwbGUg dmFsdWVzICovCi0gICAgYm9vbCAgICAgICAgY2FuUmV0dXJuRGF0YTsgIC8qIE9wY2xhc3MgY2Fu IHJlY29uc3RydWN0IG9yaWdpbmFsIGRhdGEgKi8KLSAgICBib29sICAgICAgICBsb25nVmFsdWVz T0s7ICAgLyogT3BjbGFzcyBjYW4gY29wZSB3aXRoIHZhbHVlcyAmZ3Q7IDEgcGFnZSAqLwotfSBz cGdDb25maWdPdXQ7Ci08L3Byb2dyYW1saXN0aW5nPgotCi0gICAgICA8c3RydWN0ZmllbGQ+YXR0 VHlwZTwvc3RydWN0ZmllbGQ+IGlzIHBhc3NlZCBpbiBvcmRlciB0byBzdXBwb3J0IHBvbHltb3Jw aGljCi0gICAgICBpbmRleCBvcGVyYXRvciBjbGFzc2VzOyBmb3Igb3JkaW5hcnkgZml4ZWQtZGF0 YS10eXBlIG9wZXJhdG9yIGNsYXNzZXMsIGl0Ci0gICAgICB3aWxsIGFsd2F5cyBoYXZlIHRoZSBz YW1lIHZhbHVlIGFuZCBzbyBjYW4gYmUgaWdub3JlZC4KLSAgICAgPC9wYXJhPgotCi0gICAgIDxw YXJhPgotICAgICAgRm9yIG9wZXJhdG9yIGNsYXNzZXMgdGhhdCBkbyBub3QgdXNlIHByZWZpeGVz LAotICAgICAgPHN0cnVjdGZpZWxkPnByZWZpeFR5cGU8L3N0cnVjdGZpZWxkPiBjYW4gYmUgc2V0 IHRvIDxsaXRlcmFsPlZPSURPSUQ8L2xpdGVyYWw+LgotICAgICAgTGlrZXdpc2UsIGZvciBvcGVy YXRvciBjbGFzc2VzIHRoYXQgZG8gbm90IHVzZSBub2RlIGxhYmVscywKLSAgICAgIDxzdHJ1Y3Rm aWVsZD5sYWJlbFR5cGU8L3N0cnVjdGZpZWxkPiBjYW4gYmUgc2V0IHRvIDxsaXRlcmFsPlZPSURP SUQ8L2xpdGVyYWw+LgotICAgICAgPHN0cnVjdGZpZWxkPmNhblJldHVybkRhdGE8L3N0cnVjdGZp ZWxkPiBzaG91bGQgYmUgc2V0IHRydWUgaWYgdGhlIG9wZXJhdG9yIGNsYXNzCi0gICAgICBpcyBj YXBhYmxlIG9mIHJlY29uc3RydWN0aW5nIHRoZSBvcmlnaW5hbGx5LXN1cHBsaWVkIGluZGV4IHZh bHVlLgotICAgICAgPHN0cnVjdGZpZWxkPmxvbmdWYWx1ZXNPSzwvc3RydWN0ZmllbGQ+IHNob3Vs ZCBiZSBzZXQgdHJ1ZSBvbmx5IHdoZW4gdGhlCi0gICAgICA8c3RydWN0ZmllbGQ+YXR0VHlwZTwv c3RydWN0ZmllbGQ+IGlzIG9mIHZhcmlhYmxlIGxlbmd0aCBhbmQgdGhlIG9wZXJhdG9yCi0gICAg ICBjbGFzcyBpcyBjYXBhYmxlIG9mIHNlZ21lbnRpbmcgbG9uZyB2YWx1ZXMgYnkgcmVwZWF0ZWQg c3VmZml4aW5nCi0gICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9InNwZ2lzdC1saW1pdHMiLz4pLgot ICAgICA8L3BhcmE+Ci0KLSAgICAgPHBhcmE+Ci0gICAgICA8c3RydWN0ZmllbGQ+bGVhZlR5cGU8 L3N0cnVjdGZpZWxkPiBzaG91bGQgbWF0Y2ggdGhlIGluZGV4IHN0b3JhZ2UgdHlwZQotICAgICAg ZGVmaW5lZCBieSB0aGUgb3BlcmF0b3IgY2xhc3MncyA8c3RydWN0ZmllbGQ+b3Bja2V5dHlwZTwv c3RydWN0ZmllbGQ+Ci0gICAgICBjYXRhbG9nIGVudHJ5LgotICAgICAgKE5vdGUgdGhhdCA8c3Ry dWN0ZmllbGQ+b3Bja2V5dHlwZTwvc3RydWN0ZmllbGQ+IGNhbiBiZSB6ZXJvLAotICAgICAgaW1w bHlpbmcgdGhlIHN0b3JhZ2UgdHlwZSBpcyB0aGUgc2FtZSBhcyB0aGUgb3BlcmF0b3IgY2xhc3Mn cyBpbnB1dAotICAgICAgdHlwZSwgd2hpY2ggaXMgdGhlIG1vc3QgY29tbW9uIHNpdHVhdGlvbi4p Ci0gICAgICBGb3IgcmVhc29ucyBvZiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgPGZ1bmN0 aW9uPmNvbmZpZzwvZnVuY3Rpb24+Ci0gICAgICBtZXRob2QgY2FuIHNldCA8c3RydWN0ZmllbGQ+ bGVhZlR5cGU8L3N0cnVjdGZpZWxkPiB0byBzb21lIG90aGVyIHZhbHVlLAotICAgICAgYW5kIHRo YXQgdmFsdWUgd2lsbCBiZSB1c2VkOyBidXQgdGhpcyBpcyBkZXByZWNhdGVkIHNpbmNlIHRoZSBp bmRleAotICAgICAgY29udGVudHMgYXJlIHRoZW4gaW5jb3JyZWN0bHkgaWRlbnRpZmllZCBpbiB0 aGUgY2F0YWxvZ3MuCi0gICAgICBBbHNvLCBpdCdzIHBlcm1pc3NpYmxlIHRvCi0gICAgICBsZWF2 ZSA8c3RydWN0ZmllbGQ+bGVhZlR5cGU8L3N0cnVjdGZpZWxkPiB1bmluaXRpYWxpemVkICh6ZXJv KTsKLSAgICAgIHRoYXQgaXMgaW50ZXJwcmV0ZWQgYXMgbWVhbmluZyB0aGUgaW5kZXggc3RvcmFn ZSB0eXBlIGRlcml2ZWQgZnJvbQotICAgICAgPHN0cnVjdGZpZWxkPm9wY2tleXR5cGU8L3N0cnVj dGZpZWxkPi4KLSAgICAgPC9wYXJhPgotCi0gICAgIDxwYXJhPgotICAgICAgV2hlbiA8c3RydWN0 ZmllbGQ+YXR0VHlwZTwvc3RydWN0ZmllbGQ+Ci0gICAgICBhbmQgPHN0cnVjdGZpZWxkPmxlYWZU eXBlPC9zdHJ1Y3RmaWVsZD4gYXJlIGRpZmZlcmVudCwgdGhlIG9wdGlvbmFsCi0gICAgICBtZXRo b2QgPGZ1bmN0aW9uPmNvbXByZXNzPC9mdW5jdGlvbj4gbXVzdCBiZSBwcm92aWRlZC4KLSAgICAg IE1ldGhvZCA8ZnVuY3Rpb24+Y29tcHJlc3M8L2Z1bmN0aW9uPiBpcyByZXNwb25zaWJsZQotICAg ICAgZm9yIHRyYW5zZm9ybWF0aW9uIG9mIGRhdHVtcyB0byBiZSBpbmRleGVkIGZyb20gPHN0cnVj dGZpZWxkPmF0dFR5cGU8L3N0cnVjdGZpZWxkPgotICAgICAgdG8gPHN0cnVjdGZpZWxkPmxlYWZU eXBlPC9zdHJ1Y3RmaWVsZD4uCi0gICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLQotICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgIDx0ZXJtPjxmdW5jdGlv bj5jaG9vc2U8L2Z1bmN0aW9uPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+ Ci0gICAgICAgIENob29zZXMgYSBtZXRob2QgZm9yIGluc2VydGluZyBhIG5ldyB2YWx1ZSBpbnRv IGFuIGlubmVyIHR1cGxlLgotICAgICAgPC9wYXJhPgotCi0gICAgIDxwYXJhPgotICAgICAgVGhl IDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3Qg bG9vayBsaWtlIHRoaXM6Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1DUkVBVEUgRlVOQ1RJT04gbXlfY2hv b3NlKGludGVybmFsLCBpbnRlcm5hbCkgUkVUVVJOUyB2b2lkIC4uLgotPC9wcm9ncmFtbGlzdGlu Zz4KLSAgICAgIFRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIHBvaW50ZXIgdG8gYSA8c3RydWN0bmFt ZT5zcGdDaG9vc2VJbjwvc3RydWN0bmFtZT4KLSAgICAgIEMgc3RydWN0LCBjb250YWluaW5nIGlu cHV0IGRhdGEgZm9yIHRoZSBmdW5jdGlvbi4KLSAgICAgIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMg YSBwb2ludGVyIHRvIGEgPHN0cnVjdG5hbWU+c3BnQ2hvb3NlT3V0PC9zdHJ1Y3RuYW1lPgotICAg ICAgQyBzdHJ1Y3QsIHdoaWNoIHRoZSBmdW5jdGlvbiBtdXN0IGZpbGwgd2l0aCByZXN1bHQgZGF0 YS4KLTxwcm9ncmFtbGlzdGluZz4KLXR5cGVkZWYgc3RydWN0IHNwZ0Nob29zZUluCi17Ci0gICAg RGF0dW0gICAgICAgZGF0dW07ICAgICAgICAgIC8qIG9yaWdpbmFsIGRhdHVtIHRvIGJlIGluZGV4 ZWQgKi8KLSAgICBEYXR1bSAgICAgICBsZWFmRGF0dW07ICAgICAgLyogY3VycmVudCBkYXR1bSB0 byBiZSBzdG9yZWQgYXQgbGVhZiAqLwotICAgIGludCAgICAgICAgIGxldmVsOyAgICAgICAgICAv KiBjdXJyZW50IGxldmVsIChjb3VudGluZyBmcm9tIHplcm8pICovCi0KLSAgICAvKiBEYXRhIGZy b20gY3VycmVudCBpbm5lciB0dXBsZSAqLwotICAgIGJvb2wgICAgICAgIGFsbFRoZVNhbWU7ICAg ICAvKiB0dXBsZSBpcyBtYXJrZWQgYWxsLXRoZS1zYW1lPyAqLwotICAgIGJvb2wgICAgICAgIGhh c1ByZWZpeDsgICAgICAvKiB0dXBsZSBoYXMgYSBwcmVmaXg/ICovCi0gICAgRGF0dW0gICAgICAg cHJlZml4RGF0dW07ICAgIC8qIGlmIHNvLCB0aGUgcHJlZml4IHZhbHVlICovCi0gICAgaW50ICAg ICAgICAgbk5vZGVzOyAgICAgICAgIC8qIG51bWJlciBvZiBub2RlcyBpbiB0aGUgaW5uZXIgdHVw bGUgKi8KLSAgICBEYXR1bSAgICAgICpub2RlTGFiZWxzOyAgICAgLyogbm9kZSBsYWJlbCB2YWx1 ZXMgKE5VTEwgaWYgbm9uZSkgKi8KLX0gc3BnQ2hvb3NlSW47Ci0KLXR5cGVkZWYgZW51bSBzcGdD aG9vc2VSZXN1bHRUeXBlCi17Ci0gICAgc3BnTWF0Y2hOb2RlID0gMSwgICAgICAgICAgIC8qIGRl c2NlbmQgaW50byBleGlzdGluZyBub2RlICovCi0gICAgc3BnQWRkTm9kZSwgICAgICAgICAgICAg ICAgIC8qIGFkZCBhIG5vZGUgdG8gdGhlIGlubmVyIHR1cGxlICovCi0gICAgc3BnU3BsaXRUdXBs ZSAgICAgICAgICAgICAgIC8qIHNwbGl0IGlubmVyIHR1cGxlIChjaGFuZ2UgaXRzIHByZWZpeCkg Ki8KLX0gc3BnQ2hvb3NlUmVzdWx0VHlwZTsKLQotdHlwZWRlZiBzdHJ1Y3Qgc3BnQ2hvb3NlT3V0 Ci17Ci0gICAgc3BnQ2hvb3NlUmVzdWx0VHlwZSByZXN1bHRUeXBlOyAgICAgLyogYWN0aW9uIGNv ZGUsIHNlZSBhYm92ZSAqLwotICAgIHVuaW9uCi0gICAgewotICAgICAgICBzdHJ1Y3QgICAgICAg ICAgICAgICAgICAvKiByZXN1bHRzIGZvciBzcGdNYXRjaE5vZGUgKi8KLSAgICAgICAgewotICAg ICAgICAgICAgaW50ICAgICAgICAgbm9kZU47ICAgICAgLyogZGVzY2VuZCB0byB0aGlzIG5vZGUg KGluZGV4IGZyb20gMCkgKi8KLSAgICAgICAgICAgIGludCAgICAgICAgIGxldmVsQWRkOyAgIC8q IGluY3JlbWVudCBsZXZlbCBieSB0aGlzIG11Y2ggKi8KLSAgICAgICAgICAgIERhdHVtICAgICAg IHJlc3REYXR1bTsgIC8qIG5ldyBsZWFmIGRhdHVtICovCi0gICAgICAgIH0gICAgICAgICAgIG1h dGNoTm9kZTsKLSAgICAgICAgc3RydWN0ICAgICAgICAgICAgICAgICAgLyogcmVzdWx0cyBmb3Ig c3BnQWRkTm9kZSAqLwotICAgICAgICB7Ci0gICAgICAgICAgICBEYXR1bSAgICAgICBub2RlTGFi ZWw7ICAvKiBuZXcgbm9kZSdzIGxhYmVsICovCi0gICAgICAgICAgICBpbnQgICAgICAgICBub2Rl TjsgICAgICAvKiB3aGVyZSB0byBpbnNlcnQgaXQgKGluZGV4IGZyb20gMCkgKi8KLSAgICAgICAg fSAgICAgICAgICAgYWRkTm9kZTsKLSAgICAgICAgc3RydWN0ICAgICAgICAgICAgICAgICAgLyog cmVzdWx0cyBmb3Igc3BnU3BsaXRUdXBsZSAqLwotICAgICAgICB7Ci0gICAgICAgICAgICAvKiBJ bmZvIHRvIGZvcm0gbmV3IHVwcGVyLWxldmVsIGlubmVyIHR1cGxlIHdpdGggb25lIGNoaWxkIHR1 cGxlICovCi0gICAgICAgICAgICBib29sICAgICAgICBwcmVmaXhIYXNQcmVmaXg7ICAgIC8qIHR1 cGxlIHNob3VsZCBoYXZlIGEgcHJlZml4PyAqLwotICAgICAgICAgICAgRGF0dW0gICAgICAgcHJl Zml4UHJlZml4RGF0dW07ICAvKiBpZiBzbywgaXRzIHZhbHVlICovCi0gICAgICAgICAgICBpbnQg ICAgICAgICBwcmVmaXhOTm9kZXM7ICAgICAgIC8qIG51bWJlciBvZiBub2RlcyAqLwotICAgICAg ICAgICAgRGF0dW0gICAgICAqcHJlZml4Tm9kZUxhYmVsczsgICAvKiB0aGVpciBsYWJlbHMgKG9y IE5VTEwgZm9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq IG5vIGxhYmVscykgKi8KLSAgICAgICAgICAgIGludCAgICAgICAgIGNoaWxkTm9kZU47ICAgICAg ICAgLyogd2hpY2ggbm9kZSBnZXRzIGNoaWxkIHR1cGxlICovCi0KLSAgICAgICAgICAgIC8qIElu Zm8gdG8gZm9ybSBuZXcgbG93ZXItbGV2ZWwgaW5uZXIgdHVwbGUgd2l0aCBhbGwgb2xkIG5vZGVz ICovCi0gICAgICAgICAgICBib29sICAgICAgICBwb3N0Zml4SGFzUHJlZml4OyAgIC8qIHR1cGxl IHNob3VsZCBoYXZlIGEgcHJlZml4PyAqLwotICAgICAgICAgICAgRGF0dW0gICAgICAgcG9zdGZp eFByZWZpeERhdHVtOyAvKiBpZiBzbywgaXRzIHZhbHVlICovCi0gICAgICAgIH0gICAgICAgICAg IHNwbGl0VHVwbGU7Ci0gICAgfSAgICAgICAgICAgcmVzdWx0OwotfSBzcGdDaG9vc2VPdXQ7Ci08 L3Byb2dyYW1saXN0aW5nPgotCi0gICAgICAgPHN0cnVjdGZpZWxkPmRhdHVtPC9zdHJ1Y3RmaWVs ZD4gaXMgdGhlIG9yaWdpbmFsIGRhdHVtIG9mCi0gICAgICAgPHN0cnVjdG5hbWU+c3BnQ29uZmln SW48L3N0cnVjdG5hbWU+LjxzdHJ1Y3RmaWVsZD5hdHRUeXBlPC9zdHJ1Y3RmaWVsZD4KLSAgICAg ICB0eXBlIHRoYXQgd2FzIHRvIGJlIGluc2VydGVkIGludG8gdGhlIGluZGV4LgotICAgICAgIDxz dHJ1Y3RmaWVsZD5sZWFmRGF0dW08L3N0cnVjdGZpZWxkPiBpcyBhIHZhbHVlIG9mCi0gICAgICAg PHN0cnVjdG5hbWU+c3BnQ29uZmlnT3V0PC9zdHJ1Y3RuYW1lPi48c3RydWN0ZmllbGQ+bGVhZlR5 cGU8L3N0cnVjdGZpZWxkPgotICAgICAgIHR5cGUsIHdoaWNoIGlzIGluaXRpYWxseSBhIHJlc3Vs dCBvZiBtZXRob2QKLSAgICAgICA8ZnVuY3Rpb24+Y29tcHJlc3M8L2Z1bmN0aW9uPiBhcHBsaWVk IHRvIDxzdHJ1Y3RmaWVsZD5kYXR1bTwvc3RydWN0ZmllbGQ+Ci0gICAgICAgd2hlbiBtZXRob2Qg PGZ1bmN0aW9uPmNvbXByZXNzPC9mdW5jdGlvbj4gaXMgcHJvdmlkZWQsIG9yIHRoZSBzYW1lIHZh bHVlIGFzCi0gICAgICAgPHN0cnVjdGZpZWxkPmRhdHVtPC9zdHJ1Y3RmaWVsZD4gb3RoZXJ3aXNl LgotICAgICAgIDxzdHJ1Y3RmaWVsZD5sZWFmRGF0dW08L3N0cnVjdGZpZWxkPiBjYW4gY2hhbmdl IGF0IGxvd2VyIGxldmVscyBvZiB0aGUgdHJlZQotICAgICAgIGlmIHRoZSA8ZnVuY3Rpb24+Y2hv b3NlPC9mdW5jdGlvbj4gb3IgPGZ1bmN0aW9uPnBpY2tzcGxpdDwvZnVuY3Rpb24+Ci0gICAgICAg bWV0aG9kcyBjaGFuZ2UgaXQuICBXaGVuIHRoZSBpbnNlcnRpb24gc2VhcmNoIHJlYWNoZXMgYSBs ZWFmIHBhZ2UsCi0gICAgICAgdGhlIGN1cnJlbnQgdmFsdWUgb2YgPHN0cnVjdGZpZWxkPmxlYWZE YXR1bTwvc3RydWN0ZmllbGQ+IGlzIHdoYXQgd2lsbCBiZSBzdG9yZWQKLSAgICAgICBpbiB0aGUg bmV3bHkgY3JlYXRlZCBsZWFmIHR1cGxlLgotICAgICAgIDxzdHJ1Y3RmaWVsZD5sZXZlbDwvc3Ry dWN0ZmllbGQ+IGlzIHRoZSBjdXJyZW50IGlubmVyIHR1cGxlJ3MgbGV2ZWwsIHN0YXJ0aW5nIGF0 Ci0gICAgICAgemVybyBmb3IgdGhlIHJvb3QgbGV2ZWwuCi0gICAgICAgPHN0cnVjdGZpZWxkPmFs bFRoZVNhbWU8L3N0cnVjdGZpZWxkPiBpcyB0cnVlIGlmIHRoZSBjdXJyZW50IGlubmVyIHR1cGxl IGlzCi0gICAgICAgbWFya2VkIGFzIGNvbnRhaW5pbmcgbXVsdGlwbGUgZXF1aXZhbGVudCBub2Rl cwotICAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0ic3BnaXN0LWFsbC10aGUtc2FtZSIvPikuCi0g ICAgICAgPHN0cnVjdGZpZWxkPmhhc1ByZWZpeDwvc3RydWN0ZmllbGQ+IGlzIHRydWUgaWYgdGhl IGN1cnJlbnQgaW5uZXIgdHVwbGUgY29udGFpbnMKLSAgICAgICBhIHByZWZpeDsgaWYgc28sCi0g ICAgICAgPHN0cnVjdGZpZWxkPnByZWZpeERhdHVtPC9zdHJ1Y3RmaWVsZD4gaXMgaXRzIHZhbHVl LgotICAgICAgIDxzdHJ1Y3RmaWVsZD5uTm9kZXM8L3N0cnVjdGZpZWxkPiBpcyB0aGUgbnVtYmVy IG9mIGNoaWxkIG5vZGVzIGNvbnRhaW5lZCBpbiB0aGUKLSAgICAgICBpbm5lciB0dXBsZSwgYW5k Ci0gICAgICAgPHN0cnVjdGZpZWxkPm5vZGVMYWJlbHM8L3N0cnVjdGZpZWxkPiBpcyBhbiBhcnJh eSBvZiB0aGVpciBsYWJlbCB2YWx1ZXMsIG9yCi0gICAgICAgTlVMTCBpZiB0aGVyZSBhcmUgbm8g bGFiZWxzLgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAgICBUaGUgPGZ1bmN0 aW9uPmNob29zZTwvZnVuY3Rpb24+IGZ1bmN0aW9uIGNhbiBkZXRlcm1pbmUgZWl0aGVyIHRoYXQK LSAgICAgICB0aGUgbmV3IHZhbHVlIG1hdGNoZXMgb25lIG9mIHRoZSBleGlzdGluZyBjaGlsZCBu b2Rlcywgb3IgdGhhdCBhIG5ldwotICAgICAgIGNoaWxkIG5vZGUgbXVzdCBiZSBhZGRlZCwgb3Ig dGhhdCB0aGUgbmV3IHZhbHVlIGlzIGluY29uc2lzdGVudCB3aXRoCi0gICAgICAgdGhlIHR1cGxl IHByZWZpeCBhbmQgc28gdGhlIGlubmVyIHR1cGxlIG11c3QgYmUgc3BsaXQgdG8gY3JlYXRlIGEK LSAgICAgICBsZXNzIHJlc3RyaWN0aXZlIHByZWZpeC4KLSAgICAgIDwvcGFyYT4KLQotICAgICAg PHBhcmE+Ci0gICAgICAgSWYgdGhlIG5ldyB2YWx1ZSBtYXRjaGVzIG9uZSBvZiB0aGUgZXhpc3Rp bmcgY2hpbGQgbm9kZXMsCi0gICAgICAgc2V0IDxzdHJ1Y3RmaWVsZD5yZXN1bHRUeXBlPC9zdHJ1 Y3RmaWVsZD4gdG8gPGxpdGVyYWw+c3BnTWF0Y2hOb2RlPC9saXRlcmFsPi4KLSAgICAgICBTZXQg PHN0cnVjdGZpZWxkPm5vZGVOPC9zdHJ1Y3RmaWVsZD4gdG8gdGhlIGluZGV4IChmcm9tIHplcm8p IG9mIHRoYXQgbm9kZSBpbgotICAgICAgIHRoZSBub2RlIGFycmF5LgotICAgICAgIFNldCA8c3Ry dWN0ZmllbGQ+bGV2ZWxBZGQ8L3N0cnVjdGZpZWxkPiB0byB0aGUgaW5jcmVtZW50IGluCi0gICAg ICAgPHN0cnVjdGZpZWxkPmxldmVsPC9zdHJ1Y3RmaWVsZD4gY2F1c2VkIGJ5IGRlc2NlbmRpbmcg dGhyb3VnaCB0aGF0IG5vZGUsCi0gICAgICAgb3IgbGVhdmUgaXQgYXMgemVybyBpZiB0aGUgb3Bl cmF0b3IgY2xhc3MgZG9lcyBub3QgdXNlIGxldmVscy4KLSAgICAgICBTZXQgPHN0cnVjdGZpZWxk PnJlc3REYXR1bTwvc3RydWN0ZmllbGQ+IHRvIGVxdWFsIDxzdHJ1Y3RmaWVsZD5sZWFmRGF0dW08 L3N0cnVjdGZpZWxkPgotICAgICAgIGlmIHRoZSBvcGVyYXRvciBjbGFzcyBkb2VzIG5vdCBtb2Rp ZnkgZGF0dW1zIGZyb20gb25lIGxldmVsIHRvIHRoZQotICAgICAgIG5leHQsIG9yIG90aGVyd2lz ZSBzZXQgaXQgdG8gdGhlIG1vZGlmaWVkIHZhbHVlIHRvIGJlIHVzZWQgYXMKLSAgICAgICA8c3Ry dWN0ZmllbGQ+bGVhZkRhdHVtPC9zdHJ1Y3RmaWVsZD4gYXQgdGhlIG5leHQgbGV2ZWwuCi0gICAg ICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAgICAgIElmIGEgbmV3IGNoaWxkIG5vZGUgbXVz dCBiZSBhZGRlZCwKLSAgICAgICBzZXQgPHN0cnVjdGZpZWxkPnJlc3VsdFR5cGU8L3N0cnVjdGZp ZWxkPiB0byA8bGl0ZXJhbD5zcGdBZGROb2RlPC9saXRlcmFsPi4KLSAgICAgICBTZXQgPHN0cnVj dGZpZWxkPm5vZGVMYWJlbDwvc3RydWN0ZmllbGQ+IHRvIHRoZSBsYWJlbCB0byBiZSB1c2VkIGZv ciB0aGUgbmV3Ci0gICAgICAgbm9kZSwgYW5kIHNldCA8c3RydWN0ZmllbGQ+bm9kZU48L3N0cnVj dGZpZWxkPiB0byB0aGUgaW5kZXggKGZyb20gemVybykgYXQgd2hpY2gKLSAgICAgICB0byBpbnNl cnQgdGhlIG5vZGUgaW4gdGhlIG5vZGUgYXJyYXkuCi0gICAgICAgQWZ0ZXIgdGhlIG5vZGUgaGFz IGJlZW4gYWRkZWQsIHRoZSA8ZnVuY3Rpb24+Y2hvb3NlPC9mdW5jdGlvbj4KLSAgICAgICBmdW5j dGlvbiB3aWxsIGJlIGNhbGxlZCBhZ2FpbiB3aXRoIHRoZSBtb2RpZmllZCBpbm5lciB0dXBsZTsK LSAgICAgICB0aGF0IGNhbGwgc2hvdWxkIHJlc3VsdCBpbiBhbiA8bGl0ZXJhbD5zcGdNYXRjaE5v ZGU8L2xpdGVyYWw+IHJlc3VsdC4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAg ICAgSWYgdGhlIG5ldyB2YWx1ZSBpcyBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgdHVwbGUgcHJlZml4 LAotICAgICAgIHNldCA8c3RydWN0ZmllbGQ+cmVzdWx0VHlwZTwvc3RydWN0ZmllbGQ+IHRvIDxs aXRlcmFsPnNwZ1NwbGl0VHVwbGU8L2xpdGVyYWw+LgotICAgICAgIFRoaXMgYWN0aW9uIG1vdmVz IGFsbCB0aGUgZXhpc3Rpbmcgbm9kZXMgaW50byBhIG5ldyBsb3dlci1sZXZlbAotICAgICAgIGlu bmVyIHR1cGxlLCBhbmQgcmVwbGFjZXMgdGhlIGV4aXN0aW5nIGlubmVyIHR1cGxlIHdpdGggYSB0 dXBsZQotICAgICAgIGhhdmluZyBhIHNpbmdsZSBkb3dubGluayBwb2ludGluZyB0byB0aGUgbmV3 IGxvd2VyLWxldmVsIGlubmVyIHR1cGxlLgotICAgICAgIFNldCA8c3RydWN0ZmllbGQ+cHJlZml4 SGFzUHJlZml4PC9zdHJ1Y3RmaWVsZD4gdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgbmV3Ci0gICAg ICAgdXBwZXIgdHVwbGUgc2hvdWxkIGhhdmUgYSBwcmVmaXgsIGFuZCBpZiBzbyBzZXQKLSAgICAg ICA8c3RydWN0ZmllbGQ+cHJlZml4UHJlZml4RGF0dW08L3N0cnVjdGZpZWxkPiB0byB0aGUgcHJl Zml4IHZhbHVlLiAgVGhpcyBuZXcKLSAgICAgICBwcmVmaXggdmFsdWUgbXVzdCBiZSBzdWZmaWNp ZW50bHkgbGVzcyByZXN0cmljdGl2ZSB0aGFuIHRoZSBvcmlnaW5hbAotICAgICAgIHRvIGFjY2Vw dCB0aGUgbmV3IHZhbHVlIHRvIGJlIGluZGV4ZWQuCi0gICAgICAgU2V0IDxzdHJ1Y3RmaWVsZD5w cmVmaXhOTm9kZXM8L3N0cnVjdGZpZWxkPiB0byB0aGUgbnVtYmVyIG9mIG5vZGVzIG5lZWRlZCBp biB0aGUKLSAgICAgICBuZXcgdHVwbGUsIGFuZCBzZXQgPHN0cnVjdGZpZWxkPnByZWZpeE5vZGVM YWJlbHM8L3N0cnVjdGZpZWxkPiB0byBhIHBhbGxvYydkIGFycmF5Ci0gICAgICAgaG9sZGluZyB0 aGVpciBsYWJlbHMsIG9yIHRvIE5VTEwgaWYgbm9kZSBsYWJlbHMgYXJlIG5vdCByZXF1aXJlZC4K LSAgICAgICBOb3RlIHRoYXQgdGhlIHRvdGFsIHNpemUgb2YgdGhlIG5ldyB1cHBlciB0dXBsZSBt dXN0IGJlIG5vIG1vcmUKLSAgICAgICB0aGFuIHRoZSB0b3RhbCBzaXplIG9mIHRoZSB0dXBsZSBp dCBpcyByZXBsYWNpbmc7IHRoaXMgY29uc3RyYWlucwotICAgICAgIHRoZSBsZW5ndGhzIG9mIHRo ZSBuZXcgcHJlZml4IGFuZCBuZXcgbGFiZWxzLgotICAgICAgIFNldCA8c3RydWN0ZmllbGQ+Y2hp bGROb2RlTjwvc3RydWN0ZmllbGQ+IHRvIHRoZSBpbmRleCAoZnJvbSB6ZXJvKSBvZiB0aGUgbm9k ZQotICAgICAgIHRoYXQgd2lsbCBkb3dubGluayB0byB0aGUgbmV3IGxvd2VyLWxldmVsIGlubmVy IHR1cGxlLgotICAgICAgIFNldCA8c3RydWN0ZmllbGQ+cG9zdGZpeEhhc1ByZWZpeDwvc3RydWN0 ZmllbGQ+IHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG5ldwotICAgICAgIGxvd2VyLWxldmVsIGlu bmVyIHR1cGxlIHNob3VsZCBoYXZlIGEgcHJlZml4LCBhbmQgaWYgc28gc2V0Ci0gICAgICAgPHN0 cnVjdGZpZWxkPnBvc3RmaXhQcmVmaXhEYXR1bTwvc3RydWN0ZmllbGQ+IHRvIHRoZSBwcmVmaXgg dmFsdWUuICBUaGUKLSAgICAgICBjb21iaW5hdGlvbiBvZiB0aGVzZSB0d28gcHJlZml4ZXMgYW5k IHRoZSBkb3dubGluayBub2RlJ3MgbGFiZWwKLSAgICAgICAoaWYgYW55KSBtdXN0IGhhdmUgdGhl IHNhbWUgbWVhbmluZyBhcyB0aGUgb3JpZ2luYWwgcHJlZml4LCBiZWNhdXNlCi0gICAgICAgdGhl cmUgaXMgbm8gb3Bwb3J0dW5pdHkgdG8gYWx0ZXIgdGhlIG5vZGUgbGFiZWxzIHRoYXQgYXJlIG1v dmVkIHRvCi0gICAgICAgdGhlIG5ldyBsb3dlci1sZXZlbCB0dXBsZSwgbm9yIHRvIGNoYW5nZSBh bnkgY2hpbGQgaW5kZXggZW50cmllcy4KLSAgICAgICBBZnRlciB0aGUgbm9kZSBoYXMgYmVlbiBz cGxpdCwgdGhlIDxmdW5jdGlvbj5jaG9vc2U8L2Z1bmN0aW9uPgotICAgICAgIGZ1bmN0aW9uIHdp bGwgYmUgY2FsbGVkIGFnYWluIHdpdGggdGhlIHJlcGxhY2VtZW50IGlubmVyIHR1cGxlLgotICAg ICAgIFRoYXQgY2FsbCBtYXkgcmV0dXJuIGFuIDxsaXRlcmFsPnNwZ0FkZE5vZGU8L2xpdGVyYWw+ IHJlc3VsdCwgaWYgbm8gc3VpdGFibGUKLSAgICAgICBub2RlIHdhcyBjcmVhdGVkIGJ5IHRoZSA8 bGl0ZXJhbD5zcGdTcGxpdFR1cGxlPC9saXRlcmFsPiBhY3Rpb24uICBFdmVudHVhbGx5Ci0gICAg ICAgPGZ1bmN0aW9uPmNob29zZTwvZnVuY3Rpb24+IG11c3QgcmV0dXJuIDxsaXRlcmFsPnNwZ01h dGNoTm9kZTwvbGl0ZXJhbD4gdG8KLSAgICAgICBhbGxvdyB0aGUgaW5zZXJ0aW9uIHRvIGRlc2Nl bmQgdG8gdGhlIG5leHQgbGV2ZWwuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0g ICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48ZnVu Y3Rpb24+cGlja3NwbGl0PC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAg IDxwYXJhPgotICAgICAgIERlY2lkZXMgaG93IHRvIGNyZWF0ZSBhIG5ldyBpbm5lciB0dXBsZSBv dmVyIGEgc2V0IG9mIGxlYWYgdHVwbGVzLgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4K LSAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1 bmN0aW9uIG11c3QgbG9vayBsaWtlIHRoaXM6Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1DUkVBVEUgRlVO Q1RJT04gbXlfcGlja3NwbGl0KGludGVybmFsLCBpbnRlcm5hbCkgUkVUVVJOUyB2b2lkIC4uLgot PC9wcm9ncmFtbGlzdGluZz4KLSAgICAgIFRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIHBvaW50ZXIg dG8gYSA8c3RydWN0bmFtZT5zcGdQaWNrU3BsaXRJbjwvc3RydWN0bmFtZT4KLSAgICAgIEMgc3Ry dWN0LCBjb250YWluaW5nIGlucHV0IGRhdGEgZm9yIHRoZSBmdW5jdGlvbi4KLSAgICAgIFRoZSBz ZWNvbmQgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgPHN0cnVjdG5hbWU+c3BnUGlja1NwbGl0 T3V0PC9zdHJ1Y3RuYW1lPgotICAgICAgQyBzdHJ1Y3QsIHdoaWNoIHRoZSBmdW5jdGlvbiBtdXN0 IGZpbGwgd2l0aCByZXN1bHQgZGF0YS4KLTxwcm9ncmFtbGlzdGluZz4KLXR5cGVkZWYgc3RydWN0 IHNwZ1BpY2tTcGxpdEluCi17Ci0gICAgaW50ICAgICAgICAgblR1cGxlczsgICAgICAgIC8qIG51 bWJlciBvZiBsZWFmIHR1cGxlcyAqLwotICAgIERhdHVtICAgICAgKmRhdHVtczsgICAgICAgICAv KiB0aGVpciBkYXR1bXMgKGFycmF5IG9mIGxlbmd0aCBuVHVwbGVzKSAqLwotICAgIGludCAgICAg ICAgIGxldmVsOyAgICAgICAgICAvKiBjdXJyZW50IGxldmVsIChjb3VudGluZyBmcm9tIHplcm8p ICovCi19IHNwZ1BpY2tTcGxpdEluOwotCi10eXBlZGVmIHN0cnVjdCBzcGdQaWNrU3BsaXRPdXQK LXsKLSAgICBib29sICAgICAgICBoYXNQcmVmaXg7ICAgICAgLyogbmV3IGlubmVyIHR1cGxlIHNo b3VsZCBoYXZlIGEgcHJlZml4PyAqLwotICAgIERhdHVtICAgICAgIHByZWZpeERhdHVtOyAgICAv KiBpZiBzbywgaXRzIHZhbHVlICovCi0KLSAgICBpbnQgICAgICAgICBuTm9kZXM7ICAgICAgICAg LyogbnVtYmVyIG9mIG5vZGVzIGZvciBuZXcgaW5uZXIgdHVwbGUgKi8KLSAgICBEYXR1bSAgICAg ICpub2RlTGFiZWxzOyAgICAgLyogdGhlaXIgbGFiZWxzIChvciBOVUxMIGZvciBubyBsYWJlbHMp ICovCi0KLSAgICBpbnQgICAgICAgICptYXBUdXBsZXNUb05vZGVzOyAgIC8qIG5vZGUgaW5kZXgg Zm9yIGVhY2ggbGVhZiB0dXBsZSAqLwotICAgIERhdHVtICAgICAgKmxlYWZUdXBsZURhdHVtczsg ICAgLyogZGF0dW0gdG8gc3RvcmUgaW4gZWFjaCBuZXcgbGVhZiB0dXBsZSAqLwotfSBzcGdQaWNr U3BsaXRPdXQ7Ci08L3Byb2dyYW1saXN0aW5nPgotCi0gICAgICAgPHN0cnVjdGZpZWxkPm5UdXBs ZXM8L3N0cnVjdGZpZWxkPiBpcyB0aGUgbnVtYmVyIG9mIGxlYWYgdHVwbGVzIHByb3ZpZGVkLgot ICAgICAgIDxzdHJ1Y3RmaWVsZD5kYXR1bXM8L3N0cnVjdGZpZWxkPiBpcyBhbiBhcnJheSBvZiB0 aGVpciBkYXR1bSB2YWx1ZXMgb2YKLSAgICAgICA8c3RydWN0bmFtZT5zcGdDb25maWdPdXQ8L3N0 cnVjdG5hbWU+LjxzdHJ1Y3RmaWVsZD5sZWFmVHlwZTwvc3RydWN0ZmllbGQ+Ci0gICAgICAgdHlw ZS4KLSAgICAgICA8c3RydWN0ZmllbGQ+bGV2ZWw8L3N0cnVjdGZpZWxkPiBpcyB0aGUgY3VycmVu dCBsZXZlbCB0aGF0IGFsbCB0aGUgbGVhZiB0dXBsZXMKLSAgICAgICBzaGFyZSwgd2hpY2ggd2ls bCBiZWNvbWUgdGhlIGxldmVsIG9mIHRoZSBuZXcgaW5uZXIgdHVwbGUuCi0gICAgICA8L3BhcmE+ Ci0KLSAgICAgIDxwYXJhPgotICAgICAgIFNldCA8c3RydWN0ZmllbGQ+aGFzUHJlZml4PC9zdHJ1 Y3RmaWVsZD4gdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgbmV3IGlubmVyCi0gICAgICAgdHVwbGUg c2hvdWxkIGhhdmUgYSBwcmVmaXgsIGFuZCBpZiBzbyBzZXQKLSAgICAgICA8c3RydWN0ZmllbGQ+ cHJlZml4RGF0dW08L3N0cnVjdGZpZWxkPiB0byB0aGUgcHJlZml4IHZhbHVlLgotICAgICAgIFNl dCA8c3RydWN0ZmllbGQ+bk5vZGVzPC9zdHJ1Y3RmaWVsZD4gdG8gaW5kaWNhdGUgdGhlIG51bWJl ciBvZiBub2RlcyB0aGF0Ci0gICAgICAgdGhlIG5ldyBpbm5lciB0dXBsZSB3aWxsIGNvbnRhaW4s IGFuZAotICAgICAgIHNldCA8c3RydWN0ZmllbGQ+bm9kZUxhYmVsczwvc3RydWN0ZmllbGQ+IHRv IGFuIGFycmF5IG9mIHRoZWlyIGxhYmVsIHZhbHVlcywKLSAgICAgICBvciB0byBOVUxMIGlmIG5v ZGUgbGFiZWxzIGFyZSBub3QgcmVxdWlyZWQuCi0gICAgICAgU2V0IDxzdHJ1Y3RmaWVsZD5tYXBU dXBsZXNUb05vZGVzPC9zdHJ1Y3RmaWVsZD4gdG8gYW4gYXJyYXkgdGhhdCBnaXZlcyB0aGUgaW5k ZXgKLSAgICAgICAoZnJvbSB6ZXJvKSBvZiB0aGUgbm9kZSB0aGF0IGVhY2ggbGVhZiB0dXBsZSBz aG91bGQgYmUgYXNzaWduZWQgdG8uCi0gICAgICAgU2V0IDxzdHJ1Y3RmaWVsZD5sZWFmVHVwbGVE YXR1bXM8L3N0cnVjdGZpZWxkPiB0byBhbiBhcnJheSBvZiB0aGUgdmFsdWVzIHRvCi0gICAgICAg YmUgc3RvcmVkIGluIHRoZSBuZXcgbGVhZiB0dXBsZXMgKHRoZXNlIHdpbGwgYmUgdGhlIHNhbWUg YXMgdGhlCi0gICAgICAgaW5wdXQgPHN0cnVjdGZpZWxkPmRhdHVtczwvc3RydWN0ZmllbGQ+IGlm IHRoZSBvcGVyYXRvciBjbGFzcyBkb2VzIG5vdCBtb2RpZnkKLSAgICAgICBkYXR1bXMgZnJvbSBv bmUgbGV2ZWwgdG8gdGhlIG5leHQpLgotICAgICAgIE5vdGUgdGhhdCB0aGUgPGZ1bmN0aW9uPnBp Y2tzcGxpdDwvZnVuY3Rpb24+IGZ1bmN0aW9uIGlzCi0gICAgICAgcmVzcG9uc2libGUgZm9yIHBh bGxvYydpbmcgdGhlCi0gICAgICAgPHN0cnVjdGZpZWxkPm5vZGVMYWJlbHM8L3N0cnVjdGZpZWxk PiwgPHN0cnVjdGZpZWxkPm1hcFR1cGxlc1RvTm9kZXM8L3N0cnVjdGZpZWxkPiBhbmQKLSAgICAg ICA8c3RydWN0ZmllbGQ+bGVhZlR1cGxlRGF0dW1zPC9zdHJ1Y3RmaWVsZD4gYXJyYXlzLgotICAg ICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAgICBJZiBtb3JlIHRoYW4gb25lIGxlYWYg dHVwbGUgaXMgc3VwcGxpZWQsIGl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlCi0gICAgICAgPGZ1bmN0 aW9uPnBpY2tzcGxpdDwvZnVuY3Rpb24+IGZ1bmN0aW9uIHdpbGwgY2xhc3NpZnkgdGhlbSBpbnRv IG1vcmUgdGhhbgotICAgICAgIG9uZSBub2RlOyBvdGhlcndpc2UgaXQgaXMgbm90IHBvc3NpYmxl IHRvIHNwbGl0IHRoZSBsZWFmIHR1cGxlcwotICAgICAgIGFjcm9zcyBtdWx0aXBsZSBwYWdlcywg d2hpY2ggaXMgdGhlIHVsdGltYXRlIHB1cnBvc2Ugb2YgdGhpcwotICAgICAgIG9wZXJhdGlvbi4g IFRoZXJlZm9yZSwgaWYgdGhlIDxmdW5jdGlvbj5waWNrc3BsaXQ8L2Z1bmN0aW9uPiBmdW5jdGlv bgotICAgICAgIGVuZHMgdXAgcGxhY2luZyBhbGwgdGhlIGxlYWYgdHVwbGVzIGluIHRoZSBzYW1l IG5vZGUsIHRoZSBjb3JlCi0gICAgICAgU1AtR2lTVCBjb2RlIHdpbGwgb3ZlcnJpZGUgdGhhdCBk ZWNpc2lvbiBhbmQgZ2VuZXJhdGUgYW4gaW5uZXIKLSAgICAgICB0dXBsZSBpbiB3aGljaCB0aGUg bGVhZiB0dXBsZXMgYXJlIGFzc2lnbmVkIGF0IHJhbmRvbSB0byBzZXZlcmFsCi0gICAgICAgaWRl bnRpY2FsbHktbGFiZWxlZCBub2Rlcy4gIFN1Y2ggYSB0dXBsZSBpcyBtYXJrZWQKLSAgICAgICA8 bGl0ZXJhbD5hbGxUaGVTYW1lPC9saXRlcmFsPiB0byBzaWduaWZ5IHRoYXQgdGhpcyBoYXMgaGFw cGVuZWQuICBUaGUKLSAgICAgICA8ZnVuY3Rpb24+Y2hvb3NlPC9mdW5jdGlvbj4gYW5kIDxmdW5j dGlvbj5pbm5lcl9jb25zaXN0ZW50PC9mdW5jdGlvbj4gZnVuY3Rpb25zCi0gICAgICAgbXVzdCB0 YWtlIHN1aXRhYmxlIGNhcmUgd2l0aCBzdWNoIGlubmVyIHR1cGxlcy4KLSAgICAgICBTZWUgPHhy ZWYgbGlua2VuZD0ic3BnaXN0LWFsbC10aGUtc2FtZSIvPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4K LSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAgICAgPGZ1bmN0aW9uPnBpY2tzcGxp dDwvZnVuY3Rpb24+IGNhbiBiZSBhcHBsaWVkIHRvIGEgc2luZ2xlIGxlYWYgdHVwbGUgb25seQot ICAgICAgIGluIHRoZSBjYXNlIHRoYXQgdGhlIDxmdW5jdGlvbj5jb25maWc8L2Z1bmN0aW9uPiBm dW5jdGlvbiBzZXQKLSAgICAgICA8c3RydWN0ZmllbGQ+bG9uZ1ZhbHVlc09LPC9zdHJ1Y3RmaWVs ZD4gdG8gdHJ1ZSBhbmQgYSBsYXJnZXItdGhhbi1hLXBhZ2UgaW5wdXQKLSAgICAgICB2YWx1ZSBo YXMgYmVlbiBzdXBwbGllZC4gIEluIHRoaXMgY2FzZSB0aGUgcG9pbnQgb2YgdGhlIG9wZXJhdGlv biBpcwotICAgICAgIHRvIHN0cmlwIG9mZiBhIHByZWZpeCBhbmQgcHJvZHVjZSBhIG5ldywgc2hv cnRlciBsZWFmIGRhdHVtIHZhbHVlLgotICAgICAgIFRoZSBjYWxsIHdpbGwgYmUgcmVwZWF0ZWQg dW50aWwgYSBsZWFmIGRhdHVtIHNob3J0IGVub3VnaCB0byBmaXQgb24KLSAgICAgICBhIHBhZ2Ug aGFzIGJlZW4gcHJvZHVjZWQuICBTZWUgPHhyZWYgbGlua2VuZD0ic3BnaXN0LWxpbWl0cyIvPiBm b3IKLSAgICAgICBtb3JlIGluZm9ybWF0aW9uLgotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3Rp dGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0gICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRl cm0+PGZ1bmN0aW9uPmlubmVyX2NvbnNpc3RlbnQ8L2Z1bmN0aW9uPjwvdGVybT4KLSAgICAgPGxp c3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgUmV0dXJucyBzZXQgb2Ygbm9kZXMgKGJyYW5j aGVzKSB0byBmb2xsb3cgZHVyaW5nIHRyZWUgc2VhcmNoLgotICAgICAgPC9wYXJhPgotCi0gICAg ICA8cGFyYT4KLSAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBv ZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UgdGhpczoKLTxwcm9ncmFtbGlzdGluZz4KLUNS RUFURSBGVU5DVElPTiBteV9pbm5lcl9jb25zaXN0ZW50KGludGVybmFsLCBpbnRlcm5hbCkgUkVU VVJOUyB2b2lkIC4uLgotPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgIFRoZSBmaXJzdCBhcmd1bWVu dCBpcyBhIHBvaW50ZXIgdG8gYSA8c3RydWN0bmFtZT5zcGdJbm5lckNvbnNpc3RlbnRJbjwvc3Ry dWN0bmFtZT4KLSAgICAgIEMgc3RydWN0LCBjb250YWluaW5nIGlucHV0IGRhdGEgZm9yIHRoZSBm dW5jdGlvbi4KLSAgICAgIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgPHN0 cnVjdG5hbWU+c3BnSW5uZXJDb25zaXN0ZW50T3V0PC9zdHJ1Y3RuYW1lPgotICAgICAgQyBzdHJ1 Y3QsIHdoaWNoIHRoZSBmdW5jdGlvbiBtdXN0IGZpbGwgd2l0aCByZXN1bHQgZGF0YS4KLQotPHBy b2dyYW1saXN0aW5nPgotdHlwZWRlZiBzdHJ1Y3Qgc3BnSW5uZXJDb25zaXN0ZW50SW4KLXsKLSAg ICBTY2FuS2V5ICAgICBzY2Fua2V5czsgICAgICAgLyogYXJyYXkgb2Ygb3BlcmF0b3JzIGFuZCBj b21wYXJpc29uIHZhbHVlcyAqLwotICAgIFNjYW5LZXkgICAgIG9yZGVyYnlzOyAgICAgICAvKiBh cnJheSBvZiBvcmRlcmluZyBvcGVyYXRvcnMgYW5kIGNvbXBhcmlzb24KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICogdmFsdWVzICovCi0gICAgaW50ICAgICAgICAgbmtleXM7ICAg ICAgICAgIC8qIGxlbmd0aCBvZiBzY2Fua2V5cyBhcnJheSAqLwotICAgIGludCAgICAgICAgIG5v cmRlcmJ5czsgICAgICAvKiBsZW5ndGggb2Ygb3JkZXJieXMgYXJyYXkgKi8KLQotICAgIERhdHVt ICAgICAgIHJlY29uc3RydWN0ZWRWYWx1ZTsgICAgIC8qIHZhbHVlIHJlY29uc3RydWN0ZWQgYXQg cGFyZW50ICovCi0gICAgdm9pZCAgICAgICAqdHJhdmVyc2FsVmFsdWU7IC8qIG9wY2xhc3Mtc3Bl Y2lmaWMgdHJhdmVyc2UgdmFsdWUgKi8KLSAgICBNZW1vcnlDb250ZXh0IHRyYXZlcnNhbE1lbW9y eUNvbnRleHQ7ICAgLyogcHV0IG5ldyB0cmF2ZXJzZSB2YWx1ZXMgaGVyZSAqLwotICAgIGludCAg ICAgICAgIGxldmVsOyAgICAgICAgICAvKiBjdXJyZW50IGxldmVsIChjb3VudGluZyBmcm9tIHpl cm8pICovCi0gICAgYm9vbCAgICAgICAgcmV0dXJuRGF0YTsgICAgIC8qIG9yaWdpbmFsIGRhdGEg bXVzdCBiZSByZXR1cm5lZD8gKi8KLQotICAgIC8qIERhdGEgZnJvbSBjdXJyZW50IGlubmVyIHR1 cGxlICovCi0gICAgYm9vbCAgICAgICAgYWxsVGhlU2FtZTsgICAgIC8qIHR1cGxlIGlzIG1hcmtl ZCBhbGwtdGhlLXNhbWU/ICovCi0gICAgYm9vbCAgICAgICAgaGFzUHJlZml4OyAgICAgIC8qIHR1 cGxlIGhhcyBhIHByZWZpeD8gKi8KLSAgICBEYXR1bSAgICAgICBwcmVmaXhEYXR1bTsgICAgLyog aWYgc28sIHRoZSBwcmVmaXggdmFsdWUgKi8KLSAgICBpbnQgICAgICAgICBuTm9kZXM7ICAgICAg ICAgLyogbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBpbm5lciB0dXBsZSAqLwotICAgIERhdHVtICAg ICAgKm5vZGVMYWJlbHM7ICAgICAvKiBub2RlIGxhYmVsIHZhbHVlcyAoTlVMTCBpZiBub25lKSAq LwotfSBzcGdJbm5lckNvbnNpc3RlbnRJbjsKLQotdHlwZWRlZiBzdHJ1Y3Qgc3BnSW5uZXJDb25z aXN0ZW50T3V0Ci17Ci0gICAgaW50ICAgICAgICAgbk5vZGVzOyAgICAgICAgIC8qIG51bWJlciBv ZiBjaGlsZCBub2RlcyB0byBiZSB2aXNpdGVkICovCi0gICAgaW50ICAgICAgICAqbm9kZU51bWJl cnM7ICAgIC8qIHRoZWlyIGluZGV4ZXMgaW4gdGhlIG5vZGUgYXJyYXkgKi8KLSAgICBpbnQgICAg ICAgICpsZXZlbEFkZHM7ICAgICAgLyogaW5jcmVtZW50IGxldmVsIGJ5IHRoaXMgbXVjaCBmb3Ig ZWFjaCAqLwotICAgIERhdHVtICAgICAgKnJlY29uc3RydWN0ZWRWYWx1ZXM7ICAgIC8qIGFzc29j aWF0ZWQgcmVjb25zdHJ1Y3RlZCB2YWx1ZXMgKi8KLSAgICB2b2lkICAgICAgKip0cmF2ZXJzYWxW YWx1ZXM7ICAgICAgICAvKiBvcGNsYXNzLXNwZWNpZmljIHRyYXZlcnNlIHZhbHVlcyAqLwotICAg IGRvdWJsZSAgICAqKmRpc3RhbmNlczsgICAgICAgICAgICAgIC8qIGFzc29jaWF0ZWQgZGlzdGFu Y2VzICovCi19IHNwZ0lubmVyQ29uc2lzdGVudE91dDsKLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0KLSAg ICAgICBUaGUgYXJyYXkgPHN0cnVjdGZpZWxkPnNjYW5rZXlzPC9zdHJ1Y3RmaWVsZD4sIG9mIGxl bmd0aCA8c3RydWN0ZmllbGQ+bmtleXM8L3N0cnVjdGZpZWxkPiwKLSAgICAgICBkZXNjcmliZXMg dGhlIGluZGV4IHNlYXJjaCBjb25kaXRpb24ocykuICBUaGVzZSBjb25kaXRpb25zIGFyZQotICAg ICAgIGNvbWJpbmVkIHdpdGggQU5EICZtZGFzaDsgb25seSBpbmRleCBlbnRyaWVzIHRoYXQgc2F0 aXNmeSBhbGwgb2YKLSAgICAgICB0aGVtIGFyZSBpbnRlcmVzdGluZy4gIChOb3RlIHRoYXQgPHN0 cnVjdGZpZWxkPm5rZXlzPC9zdHJ1Y3RmaWVsZD4gPSAwIGltcGxpZXMKLSAgICAgICB0aGF0IGFs bCBpbmRleCBlbnRyaWVzIHNhdGlzZnkgdGhlIHF1ZXJ5LikgIFVzdWFsbHkgdGhlIGNvbnNpc3Rl bnQKLSAgICAgICBmdW5jdGlvbiBvbmx5IGNhcmVzIGFib3V0IHRoZSA8c3RydWN0ZmllbGQ+c2tf c3RyYXRlZ3k8L3N0cnVjdGZpZWxkPiBhbmQKLSAgICAgICA8c3RydWN0ZmllbGQ+c2tfYXJndW1l bnQ8L3N0cnVjdGZpZWxkPiBmaWVsZHMgb2YgZWFjaCBhcnJheSBlbnRyeSwgd2hpY2gKLSAgICAg ICByZXNwZWN0aXZlbHkgZ2l2ZSB0aGUgaW5kZXhhYmxlIG9wZXJhdG9yIGFuZCBjb21wYXJpc29u IHZhbHVlLgotICAgICAgIEluIHBhcnRpY3VsYXIgaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBjaGVj ayA8c3RydWN0ZmllbGQ+c2tfZmxhZ3M8L3N0cnVjdGZpZWxkPiB0bwotICAgICAgIHNlZSBpZiB0 aGUgY29tcGFyaXNvbiB2YWx1ZSBpcyBOVUxMLCBiZWNhdXNlIHRoZSBTUC1HaVNUIGNvcmUgY29k ZQotICAgICAgIHdpbGwgZmlsdGVyIG91dCBzdWNoIGNvbmRpdGlvbnMuCi0gICAgICAgVGhlIGFy cmF5IDxzdHJ1Y3RmaWVsZD5vcmRlcmJ5czwvc3RydWN0ZmllbGQ+LCBvZiBsZW5ndGggPHN0cnVj dGZpZWxkPm5vcmRlcmJ5czwvc3RydWN0ZmllbGQ+LAotICAgICAgIGRlc2NyaWJlcyBvcmRlcmlu ZyBvcGVyYXRvcnMgKGlmIGFueSkgaW4gdGhlIHNhbWUgbWFubmVyLgotICAgICAgIDxzdHJ1Y3Rm aWVsZD5yZWNvbnN0cnVjdGVkVmFsdWU8L3N0cnVjdGZpZWxkPiBpcyB0aGUgdmFsdWUgcmVjb25z dHJ1Y3RlZCBmb3IgdGhlCi0gICAgICAgcGFyZW50IHR1cGxlOyBpdCBpcyA8bGl0ZXJhbD4oRGF0 dW0pIDA8L2xpdGVyYWw+IGF0IHRoZSByb290IGxldmVsIG9yIGlmIHRoZQotICAgICAgIDxmdW5j dGlvbj5pbm5lcl9jb25zaXN0ZW50PC9mdW5jdGlvbj4gZnVuY3Rpb24gZGlkIG5vdCBwcm92aWRl IGEgdmFsdWUgYXQgdGhlCi0gICAgICAgcGFyZW50IGxldmVsLgotICAgICAgIDxzdHJ1Y3RmaWVs ZD50cmF2ZXJzYWxWYWx1ZTwvc3RydWN0ZmllbGQ+IGlzIGEgcG9pbnRlciB0byBhbnkgdHJhdmVy c2UgZGF0YQotICAgICAgIHBhc3NlZCBkb3duIGZyb20gdGhlIHByZXZpb3VzIGNhbGwgb2YgPGZ1 bmN0aW9uPmlubmVyX2NvbnNpc3RlbnQ8L2Z1bmN0aW9uPgotICAgICAgIG9uIHRoZSBwYXJlbnQg aW5kZXggdHVwbGUsIG9yIE5VTEwgYXQgdGhlIHJvb3QgbGV2ZWwuCi0gICAgICAgPHN0cnVjdGZp ZWxkPnRyYXZlcnNhbE1lbW9yeUNvbnRleHQ8L3N0cnVjdGZpZWxkPiBpcyB0aGUgbWVtb3J5IGNv bnRleHQgaW4gd2hpY2gKLSAgICAgICB0byBzdG9yZSBvdXRwdXQgdHJhdmVyc2UgdmFsdWVzIChz ZWUgYmVsb3cpLgotICAgICAgIDxzdHJ1Y3RmaWVsZD5sZXZlbDwvc3RydWN0ZmllbGQ+IGlzIHRo ZSBjdXJyZW50IGlubmVyIHR1cGxlJ3MgbGV2ZWwsIHN0YXJ0aW5nIGF0Ci0gICAgICAgemVybyBm b3IgdGhlIHJvb3QgbGV2ZWwuCi0gICAgICAgPHN0cnVjdGZpZWxkPnJldHVybkRhdGE8L3N0cnVj dGZpZWxkPiBpcyA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiBpZiByZWNvbnN0cnVjdGVkIGRhdGEg aXMKLSAgICAgICByZXF1aXJlZCBmb3IgdGhpcyBxdWVyeTsgdGhpcyB3aWxsIG9ubHkgYmUgc28g aWYgdGhlCi0gICAgICAgPGZ1bmN0aW9uPmNvbmZpZzwvZnVuY3Rpb24+IGZ1bmN0aW9uIGFzc2Vy dGVkIDxzdHJ1Y3RmaWVsZD5jYW5SZXR1cm5EYXRhPC9zdHJ1Y3RmaWVsZD4uCi0gICAgICAgPHN0 cnVjdGZpZWxkPmFsbFRoZVNhbWU8L3N0cnVjdGZpZWxkPiBpcyB0cnVlIGlmIHRoZSBjdXJyZW50 IGlubmVyIHR1cGxlIGlzCi0gICAgICAgbWFya2VkIDxxdW90ZT5hbGwtdGhlLXNhbWU8L3F1b3Rl PjsgaW4gdGhpcyBjYXNlIGFsbCB0aGUgbm9kZXMgaGF2ZSB0aGUKLSAgICAgICBzYW1lIGxhYmVs IChpZiBhbnkpIGFuZCBzbyBlaXRoZXIgYWxsIG9yIG5vbmUgb2YgdGhlbSBtYXRjaCB0aGUgcXVl cnkKLSAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9InNwZ2lzdC1hbGwtdGhlLXNhbWUiLz4pLgot ICAgICAgIDxzdHJ1Y3RmaWVsZD5oYXNQcmVmaXg8L3N0cnVjdGZpZWxkPiBpcyB0cnVlIGlmIHRo ZSBjdXJyZW50IGlubmVyIHR1cGxlIGNvbnRhaW5zCi0gICAgICAgYSBwcmVmaXg7IGlmIHNvLAot ICAgICAgIDxzdHJ1Y3RmaWVsZD5wcmVmaXhEYXR1bTwvc3RydWN0ZmllbGQ+IGlzIGl0cyB2YWx1 ZS4KLSAgICAgICA8c3RydWN0ZmllbGQ+bk5vZGVzPC9zdHJ1Y3RmaWVsZD4gaXMgdGhlIG51bWJl ciBvZiBjaGlsZCBub2RlcyBjb250YWluZWQgaW4gdGhlCi0gICAgICAgaW5uZXIgdHVwbGUsIGFu ZAotICAgICAgIDxzdHJ1Y3RmaWVsZD5ub2RlTGFiZWxzPC9zdHJ1Y3RmaWVsZD4gaXMgYW4gYXJy YXkgb2YgdGhlaXIgbGFiZWwgdmFsdWVzLCBvcgotICAgICAgIE5VTEwgaWYgdGhlIG5vZGVzIGRv IG5vdCBoYXZlIGxhYmVscy4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAgICAg PHN0cnVjdGZpZWxkPm5Ob2Rlczwvc3RydWN0ZmllbGQ+IG11c3QgYmUgc2V0IHRvIHRoZSBudW1i ZXIgb2YgY2hpbGQgbm9kZXMgdGhhdAotICAgICAgIG5lZWQgdG8gYmUgdmlzaXRlZCBieSB0aGUg c2VhcmNoLCBhbmQKLSAgICAgICA8c3RydWN0ZmllbGQ+bm9kZU51bWJlcnM8L3N0cnVjdGZpZWxk PiBtdXN0IGJlIHNldCB0byBhbiBhcnJheSBvZiB0aGVpciBpbmRleGVzLgotICAgICAgIElmIHRo ZSBvcGVyYXRvciBjbGFzcyBrZWVwcyB0cmFjayBvZiBsZXZlbHMsIHNldAotICAgICAgIDxzdHJ1 Y3RmaWVsZD5sZXZlbEFkZHM8L3N0cnVjdGZpZWxkPiB0byBhbiBhcnJheSBvZiB0aGUgbGV2ZWwg aW5jcmVtZW50cwotICAgICAgIHJlcXVpcmVkIHdoZW4gZGVzY2VuZGluZyB0byBlYWNoIG5vZGUg dG8gYmUgdmlzaXRlZC4gIChPZnRlbiB0aGVzZQotICAgICAgIGluY3JlbWVudHMgd2lsbCBiZSB0 aGUgc2FtZSBmb3IgYWxsIHRoZSBub2RlcywgYnV0IHRoYXQncyBub3QKLSAgICAgICBuZWNlc3Nh cmlseSBzbywgc28gYW4gYXJyYXkgaXMgdXNlZC4pCi0gICAgICAgSWYgdmFsdWUgcmVjb25zdHJ1 Y3Rpb24gaXMgbmVlZGVkLCBzZXQKLSAgICAgICA8c3RydWN0ZmllbGQ+cmVjb25zdHJ1Y3RlZFZh bHVlczwvc3RydWN0ZmllbGQ+IHRvIGFuIGFycmF5IG9mIHRoZSB2YWx1ZXMKLSAgICAgICByZWNv bnN0cnVjdGVkIGZvciBlYWNoIGNoaWxkIG5vZGUgdG8gYmUgdmlzaXRlZDsgb3RoZXJ3aXNlLCBs ZWF2ZQotICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWNvbnN0cnVjdGVkVmFsdWVzPC9zdHJ1Y3RmaWVs ZD4gYXMgTlVMTC4KLSAgICAgICBUaGUgcmVjb25zdHJ1Y3RlZCB2YWx1ZXMgYXJlIGFzc3VtZWQg dG8gYmUgb2YgdHlwZQotICAgICAgIDxzdHJ1Y3RuYW1lPnNwZ0NvbmZpZ091dDwvc3RydWN0bmFt ZT4uPHN0cnVjdGZpZWxkPmxlYWZUeXBlPC9zdHJ1Y3RmaWVsZD4uCi0gICAgICAgKEhvd2V2ZXIs IHNpbmNlIHRoZSBjb3JlIHN5c3RlbSB3aWxsIGRvIG5vdGhpbmcgd2l0aCB0aGVtIGV4Y2VwdAot ICAgICAgIHBvc3NpYmx5IGNvcHkgdGhlbSwgaXQgaXMgc3VmZmljaWVudCBmb3IgdGhlbSB0byBo YXZlIHRoZQotICAgICAgIHNhbWUgPGxpdGVyYWw+dHlwbGVuPC9saXRlcmFsPiBhbmQgPGxpdGVy YWw+dHlwYnl2YWw8L2xpdGVyYWw+Ci0gICAgICAgcHJvcGVydGllcyBhcyA8c3RydWN0ZmllbGQ+ bGVhZlR5cGU8L3N0cnVjdGZpZWxkPi4pCi0gICAgICAgSWYgb3JkZXJlZCBzZWFyY2ggaXMgcGVy Zm9ybWVkLCBzZXQgPHN0cnVjdGZpZWxkPmRpc3RhbmNlczwvc3RydWN0ZmllbGQ+Ci0gICAgICAg dG8gYW4gYXJyYXkgb2YgZGlzdGFuY2UgdmFsdWVzIGFjY29yZGluZyB0byA8c3RydWN0ZmllbGQ+ b3JkZXJieXM8L3N0cnVjdGZpZWxkPgotICAgICAgIGFycmF5IChub2RlcyB3aXRoIGxvd2VzdCBk aXN0YW5jZXMgd2lsbCBiZSBwcm9jZXNzZWQgZmlyc3QpLiAgTGVhdmUgaXQKLSAgICAgICBOVUxM IG90aGVyd2lzZS4KLSAgICAgICBJZiBpdCBpcyBkZXNpcmVkIHRvIHBhc3MgZG93biBhZGRpdGlv bmFsIG91dC1vZi1iYW5kIGluZm9ybWF0aW9uCi0gICAgICAgKDxxdW90ZT50cmF2ZXJzZSB2YWx1 ZXM8L3F1b3RlPikgdG8gbG93ZXIgbGV2ZWxzIG9mIHRoZSB0cmVlIHNlYXJjaCwKLSAgICAgICBz ZXQgPHN0cnVjdGZpZWxkPnRyYXZlcnNhbFZhbHVlczwvc3RydWN0ZmllbGQ+IHRvIGFuIGFycmF5 IG9mIHRoZSBhcHByb3ByaWF0ZQotICAgICAgIHRyYXZlcnNlIHZhbHVlcywgb25lIGZvciBlYWNo IGNoaWxkIG5vZGUgdG8gYmUgdmlzaXRlZDsgb3RoZXJ3aXNlLAotICAgICAgIGxlYXZlIDxzdHJ1 Y3RmaWVsZD50cmF2ZXJzYWxWYWx1ZXM8L3N0cnVjdGZpZWxkPiBhcyBOVUxMLgotICAgICAgIE5v dGUgdGhhdCB0aGUgPGZ1bmN0aW9uPmlubmVyX2NvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBmdW5jdGlv biBpcwotICAgICAgIHJlc3BvbnNpYmxlIGZvciBwYWxsb2MnaW5nIHRoZQotICAgICAgIDxzdHJ1 Y3RmaWVsZD5ub2RlTnVtYmVyczwvc3RydWN0ZmllbGQ+LCA8c3RydWN0ZmllbGQ+bGV2ZWxBZGRz PC9zdHJ1Y3RmaWVsZD4sCi0gICAgICAgPHN0cnVjdGZpZWxkPmRpc3RhbmNlczwvc3RydWN0Zmll bGQ+LAotICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWNvbnN0cnVjdGVkVmFsdWVzPC9zdHJ1Y3RmaWVs ZD4sIGFuZAotICAgICAgIDxzdHJ1Y3RmaWVsZD50cmF2ZXJzYWxWYWx1ZXM8L3N0cnVjdGZpZWxk PiBhcnJheXMgaW4gdGhlIGN1cnJlbnQgbWVtb3J5IGNvbnRleHQuCi0gICAgICAgSG93ZXZlciwg YW55IG91dHB1dCB0cmF2ZXJzZSB2YWx1ZXMgcG9pbnRlZCB0byBieQotICAgICAgIHRoZSA8c3Ry dWN0ZmllbGQ+dHJhdmVyc2FsVmFsdWVzPC9zdHJ1Y3RmaWVsZD4gYXJyYXkgc2hvdWxkIGJlIGFs bG9jYXRlZAotICAgICAgIGluIDxzdHJ1Y3RmaWVsZD50cmF2ZXJzYWxNZW1vcnlDb250ZXh0PC9z dHJ1Y3RmaWVsZD4uCi0gICAgICAgRWFjaCB0cmF2ZXJzZSB2YWx1ZSBtdXN0IGJlIGEgc2luZ2xl IHBhbGxvYydkIGNodW5rLgotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwv dmFybGlzdGVudHJ5PgotCi0gICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGZ1bmN0aW9u PmxlYWZfY29uc2lzdGVudDwvZnVuY3Rpb24+PC90ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAg ICA8cGFyYT4KLSAgICAgICBSZXR1cm5zIHRydWUgaWYgYSBsZWFmIHR1cGxlIHNhdGlzZmllcyBh IHF1ZXJ5LgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAgICBUaGUgPGFjcm9u eW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxp a2UgdGhpczoKLTxwcm9ncmFtbGlzdGluZz4KLUNSRUFURSBGVU5DVElPTiBteV9sZWFmX2NvbnNp c3RlbnQoaW50ZXJuYWwsIGludGVybmFsKSBSRVRVUk5TIGJvb2wgLi4uCi08L3Byb2dyYW1saXN0 aW5nPgotICAgICAgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgcG9pbnRlciB0byBhIDxzdHJ1Y3Ru YW1lPnNwZ0xlYWZDb25zaXN0ZW50SW48L3N0cnVjdG5hbWU+Ci0gICAgICBDIHN0cnVjdCwgY29u dGFpbmluZyBpbnB1dCBkYXRhIGZvciB0aGUgZnVuY3Rpb24uCi0gICAgICBUaGUgc2Vjb25kIGFy Z3VtZW50IGlzIGEgcG9pbnRlciB0byBhIDxzdHJ1Y3RuYW1lPnNwZ0xlYWZDb25zaXN0ZW50T3V0 PC9zdHJ1Y3RuYW1lPgotICAgICAgQyBzdHJ1Y3QsIHdoaWNoIHRoZSBmdW5jdGlvbiBtdXN0IGZp bGwgd2l0aCByZXN1bHQgZGF0YS4KLTxwcm9ncmFtbGlzdGluZz4KLXR5cGVkZWYgc3RydWN0IHNw Z0xlYWZDb25zaXN0ZW50SW4KLXsKLSAgICBTY2FuS2V5ICAgICBzY2Fua2V5czsgICAgICAgLyog YXJyYXkgb2Ygb3BlcmF0b3JzIGFuZCBjb21wYXJpc29uIHZhbHVlcyAqLwotICAgIFNjYW5LZXkg ICAgIG9yZGVyYnlzOyAgICAgICAvKiBhcnJheSBvZiBvcmRlcmluZyBvcGVyYXRvcnMgYW5kIGNv bXBhcmlzb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdmFsdWVzICovCi0g ICAgaW50ICAgICAgICAgbmtleXM7ICAgICAgICAgIC8qIGxlbmd0aCBvZiBzY2Fua2V5cyBhcnJh eSAqLwotICAgIGludCAgICAgICAgIG5vcmRlcmJ5czsgICAgICAvKiBsZW5ndGggb2Ygb3JkZXJi eXMgYXJyYXkgKi8KLQotICAgIERhdHVtICAgICAgIHJlY29uc3RydWN0ZWRWYWx1ZTsgICAgIC8q IHZhbHVlIHJlY29uc3RydWN0ZWQgYXQgcGFyZW50ICovCi0gICAgdm9pZCAgICAgICAqdHJhdmVy c2FsVmFsdWU7IC8qIG9wY2xhc3Mtc3BlY2lmaWMgdHJhdmVyc2UgdmFsdWUgKi8KLSAgICBpbnQg ICAgICAgICBsZXZlbDsgICAgICAgICAgLyogY3VycmVudCBsZXZlbCAoY291bnRpbmcgZnJvbSB6 ZXJvKSAqLwotICAgIGJvb2wgICAgICAgIHJldHVybkRhdGE7ICAgICAvKiBvcmlnaW5hbCBkYXRh IG11c3QgYmUgcmV0dXJuZWQ/ICovCi0KLSAgICBEYXR1bSAgICAgICBsZWFmRGF0dW07ICAgICAg LyogZGF0dW0gaW4gbGVhZiB0dXBsZSAqLwotfSBzcGdMZWFmQ29uc2lzdGVudEluOwotCi10eXBl ZGVmIHN0cnVjdCBzcGdMZWFmQ29uc2lzdGVudE91dAotewotICAgIERhdHVtICAgICAgIGxlYWZW YWx1ZTsgICAgICAgIC8qIHJlY29uc3RydWN0ZWQgb3JpZ2luYWwgZGF0YSwgaWYgYW55ICovCi0g ICAgYm9vbCAgICAgICAgcmVjaGVjazsgICAgICAgICAgLyogc2V0IHRydWUgaWYgb3BlcmF0b3Ig bXVzdCBiZSByZWNoZWNrZWQgKi8KLSAgICBib29sICAgICAgICByZWNoZWNrRGlzdGFuY2VzOyAv KiBzZXQgdHJ1ZSBpZiBkaXN0YW5jZXMgbXVzdCBiZSByZWNoZWNrZWQgKi8KLSAgICBkb3VibGUg ICAgICpkaXN0YW5jZXM7ICAgICAgICAvKiBhc3NvY2lhdGVkIGRpc3RhbmNlcyAqLwotfSBzcGdM ZWFmQ29uc2lzdGVudE91dDsKLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0KLSAgICAgICBUaGUgYXJyYXkg PHN0cnVjdGZpZWxkPnNjYW5rZXlzPC9zdHJ1Y3RmaWVsZD4sIG9mIGxlbmd0aCA8c3RydWN0Zmll bGQ+bmtleXM8L3N0cnVjdGZpZWxkPiwKLSAgICAgICBkZXNjcmliZXMgdGhlIGluZGV4IHNlYXJj aCBjb25kaXRpb24ocykuICBUaGVzZSBjb25kaXRpb25zIGFyZQotICAgICAgIGNvbWJpbmVkIHdp dGggQU5EICZtZGFzaDsgb25seSBpbmRleCBlbnRyaWVzIHRoYXQgc2F0aXNmeSBhbGwgb2YKLSAg ICAgICB0aGVtIHNhdGlzZnkgdGhlIHF1ZXJ5LiAgKE5vdGUgdGhhdCA8c3RydWN0ZmllbGQ+bmtl eXM8L3N0cnVjdGZpZWxkPiA9IDAgaW1wbGllcwotICAgICAgIHRoYXQgYWxsIGluZGV4IGVudHJp ZXMgc2F0aXNmeSB0aGUgcXVlcnkuKSAgVXN1YWxseSB0aGUgY29uc2lzdGVudAotICAgICAgIGZ1 bmN0aW9uIG9ubHkgY2FyZXMgYWJvdXQgdGhlIDxzdHJ1Y3RmaWVsZD5za19zdHJhdGVneTwvc3Ry dWN0ZmllbGQ+IGFuZAotICAgICAgIDxzdHJ1Y3RmaWVsZD5za19hcmd1bWVudDwvc3RydWN0Zmll bGQ+IGZpZWxkcyBvZiBlYWNoIGFycmF5IGVudHJ5LCB3aGljaAotICAgICAgIHJlc3BlY3RpdmVs eSBnaXZlIHRoZSBpbmRleGFibGUgb3BlcmF0b3IgYW5kIGNvbXBhcmlzb24gdmFsdWUuCi0gICAg ICAgSW4gcGFydGljdWxhciBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNoZWNrIDxzdHJ1Y3RmaWVs ZD5za19mbGFnczwvc3RydWN0ZmllbGQ+IHRvCi0gICAgICAgc2VlIGlmIHRoZSBjb21wYXJpc29u IHZhbHVlIGlzIE5VTEwsIGJlY2F1c2UgdGhlIFNQLUdpU1QgY29yZSBjb2RlCi0gICAgICAgd2ls bCBmaWx0ZXIgb3V0IHN1Y2ggY29uZGl0aW9ucy4KLSAgICAgICBUaGUgYXJyYXkgPHN0cnVjdGZp ZWxkPm9yZGVyYnlzPC9zdHJ1Y3RmaWVsZD4sIG9mIGxlbmd0aCA8c3RydWN0ZmllbGQ+bm9yZGVy YnlzPC9zdHJ1Y3RmaWVsZD4sCi0gICAgICAgZGVzY3JpYmVzIHRoZSBvcmRlcmluZyBvcGVyYXRv cnMgaW4gdGhlIHNhbWUgbWFubmVyLgotICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWNvbnN0cnVjdGVk VmFsdWU8L3N0cnVjdGZpZWxkPiBpcyB0aGUgdmFsdWUgcmVjb25zdHJ1Y3RlZCBmb3IgdGhlCi0g ICAgICAgcGFyZW50IHR1cGxlOyBpdCBpcyA8bGl0ZXJhbD4oRGF0dW0pIDA8L2xpdGVyYWw+IGF0 IHRoZSByb290IGxldmVsIG9yIGlmIHRoZQotICAgICAgIDxmdW5jdGlvbj5pbm5lcl9jb25zaXN0 ZW50PC9mdW5jdGlvbj4gZnVuY3Rpb24gZGlkIG5vdCBwcm92aWRlIGEgdmFsdWUgYXQgdGhlCi0g ICAgICAgcGFyZW50IGxldmVsLgotICAgICAgIDxzdHJ1Y3RmaWVsZD50cmF2ZXJzYWxWYWx1ZTwv c3RydWN0ZmllbGQ+IGlzIGEgcG9pbnRlciB0byBhbnkgdHJhdmVyc2UgZGF0YQotICAgICAgIHBh c3NlZCBkb3duIGZyb20gdGhlIHByZXZpb3VzIGNhbGwgb2YgPGZ1bmN0aW9uPmlubmVyX2NvbnNp c3RlbnQ8L2Z1bmN0aW9uPgotICAgICAgIG9uIHRoZSBwYXJlbnQgaW5kZXggdHVwbGUsIG9yIE5V TEwgYXQgdGhlIHJvb3QgbGV2ZWwuCi0gICAgICAgPHN0cnVjdGZpZWxkPmxldmVsPC9zdHJ1Y3Rm aWVsZD4gaXMgdGhlIGN1cnJlbnQgbGVhZiB0dXBsZSdzIGxldmVsLCBzdGFydGluZyBhdAotICAg ICAgIHplcm8gZm9yIHRoZSByb290IGxldmVsLgotICAgICAgIDxzdHJ1Y3RmaWVsZD5yZXR1cm5E YXRhPC9zdHJ1Y3RmaWVsZD4gaXMgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gaWYgcmVjb25zdHJ1 Y3RlZCBkYXRhIGlzCi0gICAgICAgcmVxdWlyZWQgZm9yIHRoaXMgcXVlcnk7IHRoaXMgd2lsbCBv bmx5IGJlIHNvIGlmIHRoZQotICAgICAgIDxmdW5jdGlvbj5jb25maWc8L2Z1bmN0aW9uPiBmdW5j dGlvbiBhc3NlcnRlZCA8c3RydWN0ZmllbGQ+Y2FuUmV0dXJuRGF0YTwvc3RydWN0ZmllbGQ+Lgot ICAgICAgIDxzdHJ1Y3RmaWVsZD5sZWFmRGF0dW08L3N0cnVjdGZpZWxkPiBpcyB0aGUga2V5IHZh bHVlIG9mCi0gICAgICAgPHN0cnVjdG5hbWU+c3BnQ29uZmlnT3V0PC9zdHJ1Y3RuYW1lPi48c3Ry dWN0ZmllbGQ+bGVhZlR5cGU8L3N0cnVjdGZpZWxkPgotICAgICAgIHN0b3JlZCBpbiB0aGUgY3Vy cmVudCBsZWFmIHR1cGxlLgotICAgICAgPC9wYXJhPgotCi0gICAgICA8cGFyYT4KLSAgICAgICBU aGUgZnVuY3Rpb24gbXVzdCByZXR1cm4gPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gaWYgdGhlIGxl YWYgdHVwbGUgbWF0Y2hlcyB0aGUKLSAgICAgICBxdWVyeSwgb3IgPGxpdGVyYWw+ZmFsc2U8L2xp dGVyYWw+IGlmIG5vdC4gIEluIHRoZSA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiBjYXNlLAotICAg ICAgIGlmIDxzdHJ1Y3RmaWVsZD5yZXR1cm5EYXRhPC9zdHJ1Y3RmaWVsZD4gaXMgPGxpdGVyYWw+ dHJ1ZTwvbGl0ZXJhbD4gdGhlbgotICAgICAgIDxzdHJ1Y3RmaWVsZD5sZWFmVmFsdWU8L3N0cnVj dGZpZWxkPiBtdXN0IGJlIHNldCB0byB0aGUgdmFsdWUgKG9mIHR5cGUKLSAgICAgICA8c3RydWN0 bmFtZT5zcGdDb25maWdJbjwvc3RydWN0bmFtZT4uPHN0cnVjdGZpZWxkPmF0dFR5cGU8L3N0cnVj dGZpZWxkPikKLSAgICAgICBvcmlnaW5hbGx5IHN1cHBsaWVkIHRvIGJlIGluZGV4ZWQgZm9yIHRo aXMgbGVhZiB0dXBsZS4gIEFsc28sCi0gICAgICAgPHN0cnVjdGZpZWxkPnJlY2hlY2s8L3N0cnVj dGZpZWxkPiBtYXkgYmUgc2V0IHRvIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IGlmIHRoZSBtYXRj aAotICAgICAgIGlzIHVuY2VydGFpbiBhbmQgc28gdGhlIG9wZXJhdG9yKHMpIG11c3QgYmUgcmUt YXBwbGllZCB0byB0aGUgYWN0dWFsCi0gICAgICAgaGVhcCB0dXBsZSB0byB2ZXJpZnkgdGhlIG1h dGNoLgotICAgICAgIElmIG9yZGVyZWQgc2VhcmNoIGlzIHBlcmZvcm1lZCwgc2V0IDxzdHJ1Y3Rm aWVsZD5kaXN0YW5jZXM8L3N0cnVjdGZpZWxkPgotICAgICAgIHRvIGFuIGFycmF5IG9mIGRpc3Rh bmNlIHZhbHVlcyBhY2NvcmRpbmcgdG8gPHN0cnVjdGZpZWxkPm9yZGVyYnlzPC9zdHJ1Y3RmaWVs ZD4KLSAgICAgICBhcnJheS4gIExlYXZlIGl0IE5VTEwgb3RoZXJ3aXNlLiAgSWYgYXQgbGVhc3Qg b25lIG9mIHJldHVybmVkIGRpc3RhbmNlcwotICAgICAgIGlzIG5vdCBleGFjdCwgc2V0IDxzdHJ1 Y3RmaWVsZD5yZWNoZWNrRGlzdGFuY2VzPC9zdHJ1Y3RmaWVsZD4gdG8gdHJ1ZS4KLSAgICAgICBJ biB0aGlzIGNhc2UsIHRoZSBleGVjdXRvciB3aWxsIGNhbGN1bGF0ZSB0aGUgZXhhY3QgZGlzdGFu Y2VzIGFmdGVyCi0gICAgICAgZmV0Y2hpbmcgdGhlIHR1cGxlIGZyb20gdGhlIGhlYXAsIGFuZCB3 aWxsIHJlb3JkZXIgdGhlIHR1cGxlcyBpZiBuZWVkZWQuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwv bGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICA8L3ZhcmlhYmxlbGlzdD4KLQotIDxw YXJhPgotICBUaGUgb3B0aW9uYWwgdXNlci1kZWZpbmVkIG1ldGhvZHMgYXJlOgotIDwvcGFyYT4K LQotIDx2YXJpYWJsZWxpc3Q+Ci0gICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGZ1bmN0 aW9uPkRhdHVtIGNvbXByZXNzKERhdHVtIGluKTwvZnVuY3Rpb24+PC90ZXJtPgotICAgICA8bGlz dGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBDb252ZXJ0cyBhIGRhdGEgaXRlbSBpbnRvIGEg Zm9ybWF0IHN1aXRhYmxlIGZvciBwaHlzaWNhbCBzdG9yYWdlIGluCi0gICAgICAgYSBsZWFmIHR1 cGxlIG9mIHRoZSBpbmRleC4gIEl0IGFjY2VwdHMgYSB2YWx1ZSBvZiB0eXBlCi0gICAgICAgPHN0 cnVjdG5hbWU+c3BnQ29uZmlnSW48L3N0cnVjdG5hbWU+LjxzdHJ1Y3RmaWVsZD5hdHRUeXBlPC9z dHJ1Y3RmaWVsZD4KLSAgICAgICBhbmQgcmV0dXJucyBhIHZhbHVlIG9mIHR5cGUKLSAgICAgICA8 c3RydWN0bmFtZT5zcGdDb25maWdPdXQ8L3N0cnVjdG5hbWU+LjxzdHJ1Y3RmaWVsZD5sZWFmVHlw ZTwvc3RydWN0ZmllbGQ+LgotICAgICAgIFRoZSBvdXRwdXQgdmFsdWUgbXVzdCBub3QgY29udGFp biBhbiBvdXQtb2YtbGluZSBUT0FTVCBwb2ludGVyLgotICAgICAgPC9wYXJhPgotCi0gICAgICA8 cGFyYT4KLSAgICAgICBOb3RlOiB0aGUgPGZ1bmN0aW9uPmNvbXByZXNzPC9mdW5jdGlvbj4gbWV0 aG9kIGlzIG9ubHkgYXBwbGllZCB0bwotICAgICAgIHZhbHVlcyB0byBiZSBzdG9yZWQuICBUaGUg Y29uc2lzdGVudCBtZXRob2RzIHJlY2VpdmUgcXVlcnkKLSAgICAgICA8c3RydWN0ZmllbGQ+c2Nh bmtleXM8L3N0cnVjdGZpZWxkPiB1bmNoYW5nZWQsIHdpdGhvdXQgdHJhbnNmb3JtYXRpb24KLSAg ICAgICB1c2luZyA8ZnVuY3Rpb24+Y29tcHJlc3M8L2Z1bmN0aW9uPi4KLSAgICAgIDwvcGFyYT4K LSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLQotICAgIDx2YXJsaXN0ZW50 cnk+Ci0gICAgIDx0ZXJtPjxmdW5jdGlvbj5vcHRpb25zPC9mdW5jdGlvbj48L3Rlcm0+Ci0gICAg IDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgIERlZmluZXMgYSBzZXQgb2YgdXNlci12 aXNpYmxlIHBhcmFtZXRlcnMgdGhhdCBjb250cm9sIG9wZXJhdG9yIGNsYXNzCi0gICAgICAgYmVo YXZpb3IuCi0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAgICAgICBUaGUgPGFjcm9u eW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxp a2UgdGhpczoKLQotPHByb2dyYW1saXN0aW5nPgotQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g bXlfb3B0aW9ucyhpbnRlcm5hbCkKLVJFVFVSTlMgdm9pZAotQVMgJ01PRFVMRV9QQVRITkFNRScK LUxBTkdVQUdFIEMgU1RSSUNUOwotPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgIDwvcGFyYT4KLQot ICAgICAgPHBhcmE+Ci0gICAgICAgVGhlIGZ1bmN0aW9uIGlzIHBhc3NlZCBhIHBvaW50ZXIgdG8g YSA8c3RydWN0bmFtZT5sb2NhbF9yZWxvcHRzPC9zdHJ1Y3RuYW1lPgotICAgICAgIHN0cnVjdCwg d2hpY2ggbmVlZHMgdG8gYmUgZmlsbGVkIHdpdGggYSBzZXQgb2Ygb3BlcmF0b3IgY2xhc3MKLSAg ICAgICBzcGVjaWZpYyBvcHRpb25zLiAgVGhlIG9wdGlvbnMgY2FuIGJlIGFjY2Vzc2VkIGZyb20g b3RoZXIgc3VwcG9ydAotICAgICAgIGZ1bmN0aW9ucyB1c2luZyB0aGUgPGxpdGVyYWw+UEdfSEFT X09QQ0xBU1NfT1BUSU9OUygpPC9saXRlcmFsPiBhbmQKLSAgICAgICA8bGl0ZXJhbD5QR19HRVRf T1BDTEFTU19PUFRJT05TKCk8L2xpdGVyYWw+IG1hY3Jvcy4KLSAgICAgIDwvcGFyYT4KLQotICAg ICAgPHBhcmE+Ci0gICAgICAgU2luY2UgdGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBrZXkgaW4g PGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4gaXMKLSAgICAgICBmbGV4aWJsZSwgaXQgbWF5IGRl cGVuZCBvbiB1c2VyLXNwZWNpZmllZCBwYXJhbWV0ZXJzLgotICAgICAgPC9wYXJhPgotICAgICA8 L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotICA8L3ZhcmlhYmxlbGlzdD4KLQotICA8 cGFyYT4KLSAgIEFsbCB0aGUgU1AtR2lTVCBzdXBwb3J0IG1ldGhvZHMgYXJlIG5vcm1hbGx5IGNh bGxlZCBpbiBhIHNob3J0LWxpdmVkCi0gICBtZW1vcnkgY29udGV4dDsgdGhhdCBpcywgPHZhcm5h bWU+Q3VycmVudE1lbW9yeUNvbnRleHQ8L3Zhcm5hbWU+IHdpbGwgYmUgcmVzZXQKLSAgIGFmdGVy IHByb2Nlc3Npbmcgb2YgZWFjaCB0dXBsZS4gIEl0IGlzIHRoZXJlZm9yZSBub3QgdmVyeSBpbXBv cnRhbnQgdG8KLSAgIHdvcnJ5IGFib3V0IHBmcmVlJ2luZyBldmVyeXRoaW5nIHlvdSBwYWxsb2Mu ICAoVGhlIDxmdW5jdGlvbj5jb25maWc8L2Z1bmN0aW9uPgotICAgbWV0aG9kIGlzIGFuIGV4Y2Vw dGlvbjogaXQgc2hvdWxkIHRyeSB0byBhdm9pZCBsZWFraW5nIG1lbW9yeS4gIEJ1dAotICAgdXN1 YWxseSB0aGUgPGZ1bmN0aW9uPmNvbmZpZzwvZnVuY3Rpb24+IG1ldGhvZCBuZWVkIGRvIG5vdGhp bmcgYnV0IGFzc2lnbgotICAgY29uc3RhbnRzIGludG8gdGhlIHBhc3NlZCBwYXJhbWV0ZXIgc3Ry dWN0LikKLSAgPC9wYXJhPgotCi0gIDxwYXJhPgotICAgSWYgdGhlIGluZGV4ZWQgY29sdW1uIGlz IG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUsIHRoZSBpbmRleCBjb2xsYXRpb24KLSAgIHdpbGwg YmUgcGFzc2VkIHRvIGFsbCB0aGUgc3VwcG9ydCBtZXRob2RzLCB1c2luZyB0aGUgc3RhbmRhcmQK LSAgIDxmdW5jdGlvbj5QR19HRVRfQ09MTEFUSU9OKCk8L2Z1bmN0aW9uPiBtZWNoYW5pc20uCi0g IDwvcGFyYT4KLQotPC9zZWN0MT4KLQotPHNlY3QxIGlkPSJzcGdpc3QtaW1wbGVtZW50YXRpb24i PgotIDx0aXRsZT5JbXBsZW1lbnRhdGlvbjwvdGl0bGU+Ci0KLSAgPHBhcmE+Ci0gICBUaGlzIHNl Y3Rpb24gY292ZXJzIGltcGxlbWVudGF0aW9uIGRldGFpbHMgYW5kIG90aGVyIHRyaWNrcyB0aGF0 IGFyZQotICAgdXNlZnVsIGZvciBpbXBsZW1lbnRlcnMgb2YgPGFjcm9ueW0+U1AtR2lTVDwvYWNy b255bT4gb3BlcmF0b3IgY2xhc3NlcyB0bwotICAga25vdy4KLSAgPC9wYXJhPgotCi0gPHNlY3Qy IGlkPSJzcGdpc3QtbGltaXRzIj4KLSAgPHRpdGxlPlNQLUdpU1QgTGltaXRzPC90aXRsZT4KLQot ICA8cGFyYT4KLSAgIEluZGl2aWR1YWwgbGVhZiB0dXBsZXMgYW5kIGlubmVyIHR1cGxlcyBtdXN0 IGZpdCBvbiBhIHNpbmdsZSBpbmRleCBwYWdlCi0gICAoOGtCIGJ5IGRlZmF1bHQpLiAgVGhlcmVm b3JlLCB3aGVuIGluZGV4aW5nIHZhbHVlcyBvZiB2YXJpYWJsZS1sZW5ndGgKLSAgIGRhdGEgdHlw ZXMsIGxvbmcgdmFsdWVzIGNhbiBvbmx5IGJlIHN1cHBvcnRlZCBieSBtZXRob2RzIHN1Y2ggYXMg cmFkaXgKLSAgIHRyZWVzLCBpbiB3aGljaCBlYWNoIGxldmVsIG9mIHRoZSB0cmVlIGluY2x1ZGVz IGEgcHJlZml4IHRoYXQgaXMgc2hvcnQKLSAgIGVub3VnaCB0byBmaXQgb24gYSBwYWdlLCBhbmQg dGhlIGZpbmFsIGxlYWYgbGV2ZWwgaW5jbHVkZXMgYSBzdWZmaXggYWxzbwotICAgc2hvcnQgZW5v dWdoIHRvIGZpdCBvbiBhIHBhZ2UuICBUaGUgb3BlcmF0b3IgY2xhc3Mgc2hvdWxkIHNldAotICAg PHN0cnVjdGZpZWxkPmxvbmdWYWx1ZXNPSzwvc3RydWN0ZmllbGQ+IHRvIHRydWUgb25seSBpZiBp dCBpcyBwcmVwYXJlZCB0byBhcnJhbmdlIGZvcgotICAgdGhpcyB0byBoYXBwZW4uICBPdGhlcndp c2UsIHRoZSA8YWNyb255bT5TUC1HaVNUPC9hY3JvbnltPiBjb3JlIHdpbGwKLSAgIHJlamVjdCBh bnkgcmVxdWVzdCB0byBpbmRleCBhIHZhbHVlIHRoYXQgaXMgdG9vIGxhcmdlIHRvIGZpdAotICAg b24gYW4gaW5kZXggcGFnZS4KLSAgPC9wYXJhPgotCi0gIDxwYXJhPgotICAgTGlrZXdpc2UsIGl0 IGlzIHRoZSBvcGVyYXRvciBjbGFzcydzIHJlc3BvbnNpYmlsaXR5IHRoYXQgaW5uZXIgdHVwbGVz Ci0gICBkbyBub3QgZ3JvdyB0b28gbGFyZ2UgdG8gZml0IG9uIGFuIGluZGV4IHBhZ2U7IHRoaXMg bGltaXRzIHRoZSBudW1iZXIKLSAgIG9mIGNoaWxkIG5vZGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4g b25lIGlubmVyIHR1cGxlLCBhcyB3ZWxsIGFzIHRoZQotICAgbWF4aW11bSBzaXplIG9mIGEgcHJl Zml4IHZhbHVlLgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBBbm90aGVyIGxpbWl0YXRpb24g aXMgdGhhdCB3aGVuIGFuIGlubmVyIHR1cGxlJ3Mgbm9kZSBwb2ludHMgdG8gYSBzZXQKLSAgIG9m IGxlYWYgdHVwbGVzLCB0aG9zZSB0dXBsZXMgbXVzdCBhbGwgYmUgaW4gdGhlIHNhbWUgaW5kZXgg cGFnZS4KLSAgIChUaGlzIGlzIGEgZGVzaWduIGRlY2lzaW9uIHRvIHJlZHVjZSBzZWVraW5nIGFu ZCBzYXZlIHNwYWNlIGluIHRoZQotICAgbGlua3MgdGhhdCBjaGFpbiBzdWNoIHR1cGxlcyB0b2dl dGhlci4pICBJZiB0aGUgc2V0IG9mIGxlYWYgdHVwbGVzCi0gICBncm93cyB0b28gbGFyZ2UgZm9y IGEgcGFnZSwgYSBzcGxpdCBpcyBwZXJmb3JtZWQgYW5kIGFuIGludGVybWVkaWF0ZQotICAgaW5u ZXIgdHVwbGUgaXMgaW5zZXJ0ZWQuICBGb3IgdGhpcyB0byBmaXggdGhlIHByb2JsZW0sIHRoZSBu ZXcgaW5uZXIKLSAgIHR1cGxlIDxlbXBoYXNpcz5tdXN0PC9lbXBoYXNpcz4gZGl2aWRlIHRoZSBz ZXQgb2YgbGVhZiB2YWx1ZXMgaW50byBtb3JlIHRoYW4gb25lCi0gICBub2RlIGdyb3VwLiAgSWYg dGhlIG9wZXJhdG9yIGNsYXNzJ3MgPGZ1bmN0aW9uPnBpY2tzcGxpdDwvZnVuY3Rpb24+IGZ1bmN0 aW9uCi0gICBmYWlscyB0byBkbyB0aGF0LCB0aGUgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4g Y29yZSByZXNvcnRzIHRvCi0gICBleHRyYW9yZGluYXJ5IG1lYXN1cmVzIGRlc2NyaWJlZCBpbiA8 eHJlZiBsaW5rZW5kPSJzcGdpc3QtYWxsLXRoZS1zYW1lIi8+LgotICA8L3BhcmE+Ci0KLSAgPHBh cmE+Ci0gICBXaGVuIDxzdHJ1Y3RmaWVsZD5sb25nVmFsdWVzT0s8L3N0cnVjdGZpZWxkPiBpcyB0 cnVlLCBpdCBpcyBleHBlY3RlZAotICAgdGhhdCBzdWNjZXNzaXZlIGxldmVscyBvZiB0aGUgPGFj cm9ueW0+U1AtR2lTVDwvYWNyb255bT4gdHJlZSB3aWxsCi0gICBhYnNvcmIgbW9yZSBhbmQgbW9y ZSBpbmZvcm1hdGlvbiBpbnRvIHRoZSBwcmVmaXhlcyBhbmQgbm9kZSBsYWJlbHMgb2YKLSAgIHRo ZSBpbm5lciB0dXBsZXMsIG1ha2luZyB0aGUgcmVxdWlyZWQgbGVhZiBkYXR1bSBzbWFsbGVyIGFu ZCBzbWFsbGVyLAotICAgc28gdGhhdCBldmVudHVhbGx5IGl0IHdpbGwgZml0IG9uIGEgcGFnZS4K LSAgIFRvIHByZXZlbnQgYnVncyBpbiBvcGVyYXRvciBjbGFzc2VzIGZyb20gY2F1c2luZyBpbmZp bml0ZSBpbnNlcnRpb24KLSAgIGxvb3BzLCB0aGUgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4g Y29yZSB3aWxsIHJhaXNlIGFuIGVycm9yIGlmIHRoZQotICAgbGVhZiBkYXR1bSBkb2VzIG5vdCBi ZWNvbWUgYW55IHNtYWxsZXIgd2l0aGluIHRlbiBjeWNsZXMKLSAgIG9mIDxmdW5jdGlvbj5jaG9v c2U8L2Z1bmN0aW9uPiBtZXRob2QgY2FsbHMuCi0gIDwvcGFyYT4KLSA8L3NlY3QyPgotCi0gPHNl Y3QyIGlkPSJzcGdpc3QtbnVsbC1sYWJlbHMiPgotICA8dGl0bGU+U1AtR2lTVCBXaXRob3V0IE5v ZGUgTGFiZWxzPC90aXRsZT4KLQotICA8cGFyYT4KLSAgIFNvbWUgdHJlZSBhbGdvcml0aG1zIHVz ZSBhIGZpeGVkIHNldCBvZiBub2RlcyBmb3IgZWFjaCBpbm5lciB0dXBsZTsKLSAgIGZvciBleGFt cGxlLCBpbiBhIHF1YWQtdHJlZSB0aGVyZSBhcmUgYWx3YXlzIGV4YWN0bHkgZm91ciBub2Rlcwot ICAgY29ycmVzcG9uZGluZyB0byB0aGUgZm91ciBxdWFkcmFudHMgYXJvdW5kIHRoZSBpbm5lciB0 dXBsZSdzIGNlbnRyb2lkCi0gICBwb2ludC4gIEluIHN1Y2ggYSBjYXNlIHRoZSBjb2RlIHR5cGlj YWxseSB3b3JrcyB3aXRoIHRoZSBub2RlcyBieQotICAgbnVtYmVyLCBhbmQgdGhlcmUgaXMgbm8g bmVlZCBmb3IgZXhwbGljaXQgbm9kZSBsYWJlbHMuICBUbyBzdXBwcmVzcwotICAgbm9kZSBsYWJl bHMgKGFuZCB0aGVyZWJ5IHNhdmUgc29tZSBzcGFjZSksIHRoZSA8ZnVuY3Rpb24+cGlja3NwbGl0 PC9mdW5jdGlvbj4KLSAgIGZ1bmN0aW9uIGNhbiByZXR1cm4gTlVMTCBmb3IgdGhlIDxzdHJ1Y3Rm aWVsZD5ub2RlTGFiZWxzPC9zdHJ1Y3RmaWVsZD4gYXJyYXksCi0gICBhbmQgbGlrZXdpc2UgdGhl IDxmdW5jdGlvbj5jaG9vc2U8L2Z1bmN0aW9uPiBmdW5jdGlvbiBjYW4gcmV0dXJuIE5VTEwgZm9y Ci0gICB0aGUgPHN0cnVjdGZpZWxkPnByZWZpeE5vZGVMYWJlbHM8L3N0cnVjdGZpZWxkPiBhcnJh eSBkdXJpbmcKLSAgIGEgPGxpdGVyYWw+c3BnU3BsaXRUdXBsZTwvbGl0ZXJhbD4gYWN0aW9uLgot ICAgVGhpcyB3aWxsIGluIHR1cm4gcmVzdWx0IGluIDxzdHJ1Y3RmaWVsZD5ub2RlTGFiZWxzPC9z dHJ1Y3RmaWVsZD4gYmVpbmcgTlVMTCBkdXJpbmcKLSAgIHN1YnNlcXVlbnQgY2FsbHMgdG8gPGZ1 bmN0aW9uPmNob29zZTwvZnVuY3Rpb24+IGFuZCA8ZnVuY3Rpb24+aW5uZXJfY29uc2lzdGVudDwv ZnVuY3Rpb24+LgotICAgSW4gcHJpbmNpcGxlLCBub2RlIGxhYmVscyBjb3VsZCBiZSB1c2VkIGZv ciBzb21lIGlubmVyIHR1cGxlcyBhbmQgb21pdHRlZAotICAgZm9yIG90aGVycyBpbiB0aGUgc2Ft ZSBpbmRleC4KLSAgPC9wYXJhPgotCi0gIDxwYXJhPgotICAgV2hlbiB3b3JraW5nIHdpdGggYW4g aW5uZXIgdHVwbGUgaGF2aW5nIHVubGFiZWxlZCBub2RlcywgaXQgaXMgYW4gZXJyb3IKLSAgIGZv ciA8ZnVuY3Rpb24+Y2hvb3NlPC9mdW5jdGlvbj4gdG8gcmV0dXJuIDxsaXRlcmFsPnNwZ0FkZE5v ZGU8L2xpdGVyYWw+LCBzaW5jZSB0aGUgc2V0Ci0gICBvZiBub2RlcyBpcyBzdXBwb3NlZCB0byBi ZSBmaXhlZCBpbiBzdWNoIGNhc2VzLgotICA8L3BhcmE+Ci0gPC9zZWN0Mj4KLQotIDxzZWN0MiBp ZD0ic3BnaXN0LWFsbC10aGUtc2FtZSI+Ci0gIDx0aXRsZT48cXVvdGU+QWxsLXRoZS1TYW1lPC9x dW90ZT4gSW5uZXIgVHVwbGVzPC90aXRsZT4KLQotICA8cGFyYT4KLSAgIFRoZSA8YWNyb255bT5T UC1HaVNUPC9hY3JvbnltPiBjb3JlIGNhbiBvdmVycmlkZSB0aGUgcmVzdWx0cyBvZiB0aGUKLSAg IG9wZXJhdG9yIGNsYXNzJ3MgPGZ1bmN0aW9uPnBpY2tzcGxpdDwvZnVuY3Rpb24+IGZ1bmN0aW9u IHdoZW4KLSAgIDxmdW5jdGlvbj5waWNrc3BsaXQ8L2Z1bmN0aW9uPiBmYWlscyB0byBkaXZpZGUg dGhlIHN1cHBsaWVkIGxlYWYgdmFsdWVzIGludG8KLSAgIGF0IGxlYXN0IHR3byBub2RlIGNhdGVn b3JpZXMuICBXaGVuIHRoaXMgaGFwcGVucywgdGhlIG5ldyBpbm5lciB0dXBsZQotICAgaXMgY3Jl YXRlZCB3aXRoIG11bHRpcGxlIG5vZGVzIHRoYXQgZWFjaCBoYXZlIHRoZSBzYW1lIGxhYmVsIChp ZiBhbnkpCi0gICB0aGF0IDxmdW5jdGlvbj5waWNrc3BsaXQ8L2Z1bmN0aW9uPiBnYXZlIHRvIHRo ZSBvbmUgbm9kZSBpdCBkaWQgdXNlLCBhbmQgdGhlCi0gICBsZWFmIHZhbHVlcyBhcmUgZGl2aWRl ZCBhdCByYW5kb20gYW1vbmcgdGhlc2UgZXF1aXZhbGVudCBub2Rlcy4KLSAgIFRoZSA8bGl0ZXJh bD5hbGxUaGVTYW1lPC9saXRlcmFsPiBmbGFnIGlzIHNldCBvbiB0aGUgaW5uZXIgdHVwbGUgdG8g d2FybiB0aGUKLSAgIDxmdW5jdGlvbj5jaG9vc2U8L2Z1bmN0aW9uPiBhbmQgPGZ1bmN0aW9uPmlu bmVyX2NvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbnMgdGhhdCB0aGUKLSAgIHR1cGxlIGRv ZXMgbm90IGhhdmUgdGhlIG5vZGUgc2V0IHRoYXQgdGhleSBtaWdodCBvdGhlcndpc2UgZXhwZWN0 LgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBXaGVuIGRlYWxpbmcgd2l0aCBhbiA8bGl0ZXJh bD5hbGxUaGVTYW1lPC9saXRlcmFsPiB0dXBsZSwgYSA8ZnVuY3Rpb24+Y2hvb3NlPC9mdW5jdGlv bj4KLSAgIHJlc3VsdCBvZiA8bGl0ZXJhbD5zcGdNYXRjaE5vZGU8L2xpdGVyYWw+IGlzIGludGVy cHJldGVkIHRvIG1lYW4gdGhhdCB0aGUgbmV3Ci0gICB2YWx1ZSBjYW4gYmUgYXNzaWduZWQgdG8g YW55IG9mIHRoZSBlcXVpdmFsZW50IG5vZGVzOyB0aGUgY29yZSBjb2RlIHdpbGwKLSAgIGlnbm9y ZSB0aGUgc3VwcGxpZWQgIDxzdHJ1Y3RmaWVsZD5ub2RlTjwvc3RydWN0ZmllbGQ+IHZhbHVlIGFu ZCBkZXNjZW5kIGludG8gb25lCi0gICBvZiB0aGUgbm9kZXMgYXQgcmFuZG9tIChzbyBhcyB0byBr ZWVwIHRoZSB0cmVlIGJhbGFuY2VkKS4gIEl0IGlzIGFuCi0gICBlcnJvciBmb3IgPGZ1bmN0aW9u PmNob29zZTwvZnVuY3Rpb24+IHRvIHJldHVybiA8bGl0ZXJhbD5zcGdBZGROb2RlPC9saXRlcmFs Piwgc2luY2UKLSAgIHRoYXQgd291bGQgbWFrZSB0aGUgbm9kZXMgbm90IGFsbCBlcXVpdmFsZW50 OyB0aGUKLSAgIDxsaXRlcmFsPnNwZ1NwbGl0VHVwbGU8L2xpdGVyYWw+IGFjdGlvbiBtdXN0IGJl IHVzZWQgaWYgdGhlIHZhbHVlIHRvIGJlIGluc2VydGVkCi0gICBkb2Vzbid0IG1hdGNoIHRoZSBl eGlzdGluZyBub2Rlcy4KLSAgPC9wYXJhPgotCi0gIDxwYXJhPgotICAgV2hlbiBkZWFsaW5nIHdp dGggYW4gPGxpdGVyYWw+YWxsVGhlU2FtZTwvbGl0ZXJhbD4gdHVwbGUsIHRoZQotICAgPGZ1bmN0 aW9uPmlubmVyX2NvbnNpc3RlbnQ8L2Z1bmN0aW9uPiBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGVp dGhlciBhbGwgb3Igbm9uZQotICAgb2YgdGhlIG5vZGVzIGFzIHRhcmdldHMgZm9yIGNvbnRpbnVp bmcgdGhlIGluZGV4IHNlYXJjaCwgc2luY2UgdGhleSBhcmUKLSAgIGFsbCBlcXVpdmFsZW50LiAg VGhpcyBtYXkgb3IgbWF5IG5vdCByZXF1aXJlIGFueSBzcGVjaWFsLWNhc2UgY29kZSwKLSAgIGRl cGVuZGluZyBvbiBob3cgbXVjaCB0aGUgPGZ1bmN0aW9uPmlubmVyX2NvbnNpc3RlbnQ8L2Z1bmN0 aW9uPiBmdW5jdGlvbiBub3JtYWxseQotICAgYXNzdW1lcyBhYm91dCB0aGUgbWVhbmluZyBvZiB0 aGUgbm9kZXMuCi0gIDwvcGFyYT4KLSA8L3NlY3QyPgotCi08L3NlY3QxPgotCi08c2VjdDEgaWQ9 InNwZ2lzdC1leGFtcGxlcyI+Ci0gPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KLQotIDxwYXJhPgot ICBUaGUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBzb3VyY2UgZGlzdHJp YnV0aW9uIGluY2x1ZGVzCi0gIHNldmVyYWwgZXhhbXBsZXMgb2YgaW5kZXggb3BlcmF0b3IgY2xh c3NlcyBmb3IgPGFjcm9ueW0+U1AtR2lTVDwvYWNyb255bT4sCi0gIGFzIGRlc2NyaWJlZCBpbiA8 eHJlZiBsaW5rZW5kPSJzcGdpc3QtYnVpbHRpbi1vcGNsYXNzZXMtdGFibGUiLz4uICBMb29rCi0g IGludG8gPGZpbGVuYW1lPnNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3QvPC9maWxlbmFtZT4KLSAg YW5kIDxmaWxlbmFtZT5zcmMvYmFja2VuZC91dGlscy9hZHQvPC9maWxlbmFtZT4gdG8gc2VlIHRo ZSBjb2RlLgotIDwvcGFyYT4KLQotPC9zZWN0MT4KLQotPC9jaGFwdGVyPgotLSAKMi4zOS4zIChB cHBsZSBHaXQtMTQ1KQoK --000000000000d8f3db06141a4941--