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.96) (envelope-from ) id 1wBpEb-001PWh-28 for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Apr 2026 07:27:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wBpEZ-001cY5-2l for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Apr 2026 07:27:56 +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.96) (envelope-from ) id 1wBpEZ-001cXv-06 for pgsql-hackers@lists.postgresql.org; Sun, 12 Apr 2026 07:27:56 +0000 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wBpEM-00000000dNy-3oyd for pgsql-hackers@postgresql.org; Sun, 12 Apr 2026 07:27:55 +0000 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-35da2d35eccso2519952a91.0 for ; Sun, 12 Apr 2026 00:27:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775978860; cv=none; d=google.com; s=arc-20240605; b=FwDV8fv69pOALeVtP1IFSAa/U5GFMUy05IKUF0WRwkrQvtGpaQGuz05VhyqbHItjLu oY/VXwTNwlbTIexZPrWWlZIFzaqKMtJXuveLZkywAZNRJ6nmdhL+srX3FtMwwEV+eQKa M1TL7pVi/cQ7QKrzURYATIEh560WZMfPinneO9Z/Y+yb4sQS37idGdDsRd85cXZ3I+w8 pnvuex0a2iRNMBOlQdAUzrPI/spfeEta2MYWC1G0kF+F36i2ZlHycf4MtbKDE1oA+xL3 JjMA+DuDtaSyeHMhn58nXY8Jcny7uT3vIR0y2q1QfhAty3k4Z4K8Orl7T2VD5SYOFm4z oGDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:dkim-signature; bh=h722m6BtYVUq4ee0OPljhylsr5rycSSZGOtHdhHJO1k=; fh=oZphN0i/E9AB7qyllHHwGla8H/+cwa63y0iE5dYm3UM=; b=OhT7hcann54n0h6Z2ZkGziZTR/0BNbqvkkGWD45aiR1MSmArIaCXDLSrbE+5ihe0vB TWc1+DR9c3R9/SfGfdsCi/UFyPG4d/yua5GWvZyO3JcTfjzGr01VwlEzPf1eUb+tAh0y CTB4zsujnmSvRWu3OglWirUJ+3AiRRixyWHC1h8wr1EioIpB/e+yEemH5zyb09Q2BiA/ DAFsdFQ97qTQSSDBcm37Ovh5+WBulX2nkbcN649hdtLubIhweykE3A0mo0MElFfDGOSf pnLV1lI3XWTt8r+CDndHycFd+Yv5gdhBypSTdhj0veRUUqy/+QVwuMEIN0M6sWLp8Rih py7Q==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775978860; x=1776583660; darn=postgresql.org; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=h722m6BtYVUq4ee0OPljhylsr5rycSSZGOtHdhHJO1k=; b=ovMsV/P7EAWf/g7MKENB/KXj9o0YGcHnqYeVEByHTc3aDrDUoPNUwb+30kynAeysmO tPLeNyEkVPRN1pmecYmmvZ4eo86M3zDyJRiPYTRNiyCfBhkW4qTl6jirpbG+jNDWyK7J PZ/jw1Komb+Mh0EYISpIz0Loj2MHpdWm23iM1tFgqkagYMsxdlpKRI7thhmXaBzBl1Uv UCNeJoiH6joEMXYAshcBVC7eX35mwGnDeIO395X0N5/UQLU8KiKxwvuV3dOkKo7cmGY7 qBp5aF4sHFQHeAVONM0ZZZoSAc7O9+SFXCImL+4+AjQxRF5m6HaBoR79Bz9GzMdedMV0 O7jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775978860; x=1776583660; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=h722m6BtYVUq4ee0OPljhylsr5rycSSZGOtHdhHJO1k=; b=AFCS+Paiq7zbCejs560lwCO6aHgKT9/rggmq4CkEDhoRkYizBTYszK1G9m0uCRBHSJ LZtDG+ocGYBRb08hAs1jMPwxcXINeN1NH83qsGdf2RzjFdpGEPVguus4d2YnrKwVMl7B zYAhIt1FNNp0w7JlOugrfupJxiqYQICJiMfW9msZnCJfAanL1MAnetpSPcWJTsXGzq43 bzMcIlBaPWTipABzMvTS/wtUxNZckBwQHKUAieZovxTcHD18ek8J5nHFkey/aYlifPai WY650Co+iB9Cbn8KU1Wi4s/5ol/Vt4hu0jiU8IqwY6HXzBTH7bw8eSmGZSjdxxOPDjUu LVrw== X-Forwarded-Encrypted: i=1; AFNElJ+rRVZLF03Y/sMedrqR5IL2AHCiZDIcysxxYVUh1k720KrSqmfp8z1T7L18Xet/Y3fx/rg8oEF1XuKDQyYY@postgresql.org X-Gm-Message-State: AOJu0YzaCKLkgTMGHkm1cHLyB3oOlDhpIXHU/c6V9vdYIJOJ8qlPpjUG QYTVv62xt0XYRCY4OzeLoQtyE890RfkqS/0zwfgUXg0KFve5G7mWi0wXBz/cEV4P1abS6w/PmYP qNsf2VKi9s5UGtzS83Y2mVquFPdgYFc0= X-Gm-Gg: AeBDies32kaD0uj7WUKpo1V6c3GmvGNqXC0S5uW+Xgg++jY8L3ReHRBkrdfzOsQMoAX jSDsmqNk5w4i24cIEyWs8pepmThHyxRPq2Mq9ZIhBQwshwZ7RKZN5Bego8F6fwmFMTtKEdulGP5 cIWFXUlKZHdQeYnUNYDn8oxgPSSeXoqRd/FP5pCzgD9TIbRdVAwBp5W7jJI/YQqsol5no7FgJr+ eBgg2v2ALjVBtzAvM7kGTn/CAPDB1gXbh4yKEdLCRR9AMqrkR9g3cr3yWx3TQa1nbK/EW33gEp/ IXo1Vie49Yo8AFO7SC8u8R8B2gvGPtxa7CZ2SHqESg== X-Received: by 2002:a17:90b:3e8a:b0:35d:a542:2dbf with SMTP id 98e67ed59e1d1-35e428320a8mr9151133a91.20.1775978860160; Sun, 12 Apr 2026 00:27:40 -0700 (PDT) MIME-Version: 1.0 References: <20260410.101847.595894887122872457.ishii@postgresql.org> <20260410.183515.1561517749674643173.ishii@postgresql.org> In-Reply-To: <20260410.183515.1561517749674643173.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Sun, 12 Apr 2026 16:27:26 +0900 X-Gm-Features: AQROBzAfX8x63lLfTKeEfpiUpXjXzrdK1-FAxe3CJgZDm4h3dHRSZaA2utOj4q4 Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: zsolt.parragi@percona.com, sjjang112233@gmail.com, vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="00000000000016da6c064f3e4dc0" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000016da6c064f3e4dc0 Content-Type: multipart/alternative; boundary="00000000000016da6b064f3e4dbe" --00000000000016da6b064f3e4dbe Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, When I started this work a little over three months ago, I had no idea it would grow into what it is today. There is still much to refine, but I would not have come this far without your guidance and support along the way. This series completes RPR navigation support, including PREV/NEXT, FIRST/LAST, and compound navigation such as PREV(FIRST(col)). Attached are 31 incremental patches on top of v46 (replacing the previous 15-patch set). Here is a summary of the changes from the previous version: 0001-0007: Unchanged from the previous set. 0008: Replace reduced frame map with single match result (revised: int -> int64 type widening for row_is_in_reduced_frame() and related variables, cascading from 0025) 0009: Add fixed-length group absorption for RPR (unchanged, design note [1]) 0010: Rename rpr_explain test views to descriptive names (unchanged) 0011: Fix quote_identifier() for RPR pattern variable name deparse (new) Pattern variable names that match SQL keywords were not being quoted in pg_get_viewdef() output, causing the deparsed view to fail on re-parse. 0012: Fix execRPR.o ordering in executor Makefile to match meson.build (new) Ensures consistent build file ordering between Make and Meson build systems. 0013: Remove unused force_colno parameter from RPR deparse functions (new) Dead parameter cleanup in get_rpr_pattern() and get_rpr_define() in ruleutils.c. 0014: Add CHECK_FOR_INTERRUPTS to RPR context cleanup and finalize loops (new) Extends interrupt checking to ExecRPRCleanupContexts() and ExecRPRFinalizeMatch() loops, complementing the earlier additions in 0002 and 0003. 0015: Narrow variable scope in ExecInitWindowAgg DEFINE clause loop (new) Moves local variable declarations into their respective loop bodies for clarity. 0016: Normalize RPR element flag macros to return bool (new) RPR_ELEM_IS_* macros now return bool instead of the raw bitmask value, consistent with PostgreSQL style. 0017: Implement 1-slot PREV/NEXT navigation for RPR (was 0011, context changes from 0008 int64) 0018: Add JIT compilation support for RPR PREV/NEXT (was 0012, unchanged) 0019: Add tuplestore trim optimization for RPR PREV navigation (was 0013, context changes from 0008 int64) 0020: Update RPR code comments to reflect 1-slot navigation model (was 0014, context only) 0021: Enable JIT compilation for PREV/NEXT navigation tests in RPR (new) Adds test coverage for JIT-compiled PREV/NEXT expressions under jit_above_cost=0, verifying that the slot reload path produces correct results. 0022: Add 2-arg PREV/NEXT test for row pattern navigation with host variable (new) Tests the PREV(value, offset) form where offset is a host variable (prepared statement parameter), exercising the RPR_NAV_OFFSET_NEEDS_EVAL path. 0023: Add Nav Mark Lookback to EXPLAIN and fix compute_nav_max_offset() (new) EXPLAIN now displays "Nav Mark Lookback: N" for RPR windows with PREV navigation, showing how many rows the tuplestore retains. Also fixes compute_nav_max_offset() to correctly handle non-constant offset expressions. 0024: Implement FIRST/LAST and compound navigation for RPR (was 0015, completed) The previous WIP patch is now complete with: - Compound navigation: PREV(FIRST(col)), NEXT(LAST(col, N)), etc. per SQL standard 5.6.4. Flattened into a single RPRNavExpr node with two offset values (inner position + outer offset). - RPRNavOffsetKind enum replaces sentinel macros for offset classification (CONSTANT, NEEDS_EVAL, FIRST_BASED). - Per-context DEFINE re-evaluation for match_start- dependent expressions (FIRST, LAST with offset), tracked via defineMatchStartDependent bitmapset computed by the planner. - Tuplestore mark handling extended for FIRST-based navigation: mark position accounts for both backward reach (PREV) and forward-from-match-start reach (FIRST). - Documentation added to func-window.sgml. See the design note [2] for the absorption safety analysis and evaluation sharing rules. 0025: Guard against int64 overflow in RPR bounded frame end computation (new) Widens frame position variables from int to int64 in row_is_in_reduced_frame() and related functions. Prevents overflow when frame end position exceeds INT_MAX in large partitions. 0026: Fix RPR error message style: hint format, terminology, capitalization (new) Aligns RPR error messages with PostgreSQL conventions: lowercase first word, consistent use of "row pattern" terminology, HINT format corrections. 0027: Fix comment typos, grammar, and inaccuracies in RPR code (new) Comment-only changes across execRPR.c, parse_rpr.c, nodeWindowAgg.c, and ruleutils.c. No functional changes. 0028: Fix RPR documentation: synopsis, grammar, and terminology (new) Updates select.sgml, advanced.sgml, and func-window.sgml for consistent terminology and corrected synopsis examples. 0029: Fix nav_slot pass-by-ref dangling pointer in RPR navigation (new) When a DEFINE expression contains multiple navigation calls targeting different positions (e.g., PREV(x,1) > PREV(x,2)), the second call re-fetches nav_slot, freeing the previous tuple via pfree. Any pass-by-ref datum extracted from the first navigation becomes a dangling pointer. Fix by copying pass-by-ref results into per-tuple memory in the RESTORE step. 0030: Add inline comments for complex RPR algorithms and design notes (new) Adds explanatory comments to key algorithms in execRPR.c and rpr.c (planner). Covers NFA absorption logic, match evaluation flow, navigation mark computation, and DEFINE re-evaluation decisions. Comment-only changes, no functional changes. 0031: Remove unused include and fix header ordering in RPR files (new) Removes an unnecessary include from execExprInterp.c, drops a redundant nodeWindowAgg.h include from nodeWindowAgg.c, and fixes header ordering in parse_rpr.c to match PostgreSQL convention. Changes from the previous version: - 0015 (FIRST/LAST) is now complete as 0024, with compound navigation, RPRNavOffsetKind, defineMatchStartDependent, and full test coverage. - 16 new patches (0011-0016, 0021-0023, 0025-0031) added since the previous set. These are all quality improvements: bug fixes, safety guards, style normalization, comments, and test coverage. - New features: compound navigation in 0024 (was "not yet done" in previous set), Nav Mark Lookback in EXPLAIN output (0023). All other new patches are quality improvements. I am planning to submit PREFIX pattern absorption [3] as a separate patch after this set is committed. The changes are confined to the Absorb phase with no external dependencies, so it can be submitted independently. The design itself has some complexity (shadow path tracking), and I would like to refine it further until I am fully confident in the approach. With this set I have covered the features I could foresee. Whether anything else belongs in scope is your call. From here, I think the emphasis should shift from adding features to raising overall quality. If there are directions you think should be explored, I am happy to work on them. Otherwise, I plan to focus on code review, test coverage, and stabilization, and will continue to submit bug fixes and test additions as I find them. I also very much welcome refactoring or restructuring suggestions from a committer's maintainability perspective. If anything in the current code will be painful to maintain long-term, I would much rather address it now than leave it for after commit. For stabilization, I am thinking of the same approach as in early January: gcov analysis, Valgrind runs, and expanding the test suite. **WITH THE PLANNER**, the biggest risk is what we do not know we are missing -- there are too many possible feature interactions to enumerate up front. To surface these, I plan to run RPR-only tests under gcov and review the uncovered planner paths: any line that RPR could plausibly reach but does not becomes a candidate risk, and a candidate for a new test. That turns the unknown into a concrete review list rather than a guess about which interactions to try. Does that seem like a good direction? If anything comes to mind that should be added or fixed -- at any time -- please let me know. [1] Fixed-length group absorption design note https://www.postgresql.org/message-id/CAAAe_zAKAGKpK9iHx3ZSuG59sP93r5dfootqv5tCfaMt%3Dw6wzA%40mail.gmail.com [2] FIRST/LAST navigation design note https://www.postgresql.org/message-id/CAAAe_zCUrKGBgZdaazdO_v9QWHsS_1DXuP%3DrLeNhO3iwsHwwbg%40mail.gmail.com [3] PREFIX pattern absorption design note https://www.postgresql.org/message-id/CAAAe_zDq7R8CaDfmh8C%2BH3_639Y5LtJD%2B2Z%3D1txDt%3DvaOr90rQ%40mail.gmail.com Best regards, Henson --00000000000016da6b064f3e4dbe Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tatsuo,

When I started this wor= k a little over three months ago, I had
no idea it would grow into what = it is today. There is still
much to refine, but I would not have come th= is far without
your guidance and support along the way.

This seri= es completes RPR navigation support, including
PREV/NEXT, FIRST/LAST, an= d compound navigation such as
PREV(FIRST(col)).

Attached are 31 i= ncremental patches on top of v46 (replacing
the previous 15-patch set). = Here is a summary of the changes
from the previous version:


= =C2=A0 0001-0007: Unchanged from the previous set.

=C2=A0 0008: Repl= ace reduced frame map with single match result
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 (revised: int -> int64 type widening for
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 row_is_in_reduced_frame() and related variables,
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 cascading from 0025)

=C2=A0 0009: Add fixed-length group = absorption for RPR
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (unchanged, design note [= 1])

=C2=A0 0010: Rename rpr_explain test views to descriptive
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 names (unchanged)


=C2=A0 0011: Fix quot= e_identifier() for RPR pattern variable
=C2=A0 =C2=A0 =C2=A0 =C2=A0 name= deparse (new)

=C2=A0 =C2=A0 =C2=A0 =C2=A0 Pattern variable names th= at match SQL keywords were
=C2=A0 =C2=A0 =C2=A0 =C2=A0 not being quoted = in pg_get_viewdef() output, causing
=C2=A0 =C2=A0 =C2=A0 =C2=A0 the depa= rsed view to fail on re-parse.

=C2=A0 0012: Fix execRPR.o ordering i= n executor Makefile to
=C2=A0 =C2=A0 =C2=A0 =C2=A0 match meson.build (ne= w)

=C2=A0 =C2=A0 =C2=A0 =C2=A0 Ensures consistent build file orderin= g between Make
=C2=A0 =C2=A0 =C2=A0 =C2=A0 and Meson build systems.
<= br>=C2=A0 0013: Remove unused force_colno parameter from RPR
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 deparse functions (new)

=C2=A0 =C2=A0 =C2=A0 =C2= =A0 Dead parameter cleanup in get_rpr_pattern() and
=C2=A0 =C2=A0 =C2=A0= =C2=A0 get_rpr_define() in ruleutils.c.

=C2=A0 0014: Add CHECK_FOR_= INTERRUPTS to RPR context cleanup
=C2=A0 =C2=A0 =C2=A0 =C2=A0 and finali= ze loops (new)

=C2=A0 =C2=A0 =C2=A0 =C2=A0 Extends interrupt checkin= g to ExecRPRCleanupContexts()
=C2=A0 =C2=A0 =C2=A0 =C2=A0 and ExecRPRFin= alizeMatch() loops, complementing the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 earlie= r additions in 0002 and 0003.

=C2=A0 0015: Narrow variable scope in = ExecInitWindowAgg DEFINE
=C2=A0 =C2=A0 =C2=A0 =C2=A0 clause loop (new)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Moves local variable declarations into th= eir
=C2=A0 =C2=A0 =C2=A0 =C2=A0 respective loop bodies for clarity.
<= br>=C2=A0 0016: Normalize RPR element flag macros to return bool
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 (new)

=C2=A0 =C2=A0 =C2=A0 =C2=A0 RPR_ELEM_IS_*= macros now return bool instead of the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 raw b= itmask value, consistent with PostgreSQL style.


=C2=A0 0017: Imp= lement 1-slot PREV/NEXT navigation for RPR
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (= was 0011, context changes from 0008 int64)

=C2=A0 0018: Add JIT comp= ilation support for RPR PREV/NEXT
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (was 0012,= unchanged)

=C2=A0 0019: Add tuplestore trim optimization for RPR PR= EV
=C2=A0 =C2=A0 =C2=A0 =C2=A0 navigation (was 0013, context changes fro= m 0008
=C2=A0 =C2=A0 =C2=A0 =C2=A0 int64)

=C2=A0 0020: Update RPR= code comments to reflect 1-slot
=C2=A0 =C2=A0 =C2=A0 =C2=A0 navigation = model (was 0014, context only)


=C2=A0 0021: Enable JIT compilati= on for PREV/NEXT navigation
=C2=A0 =C2=A0 =C2=A0 =C2=A0 tests in RPR (ne= w)

=C2=A0 =C2=A0 =C2=A0 =C2=A0 Adds test coverage for JIT-compiled P= REV/NEXT
=C2=A0 =C2=A0 =C2=A0 =C2=A0 expressions under jit_above_cost=3D= 0, verifying
=C2=A0 =C2=A0 =C2=A0 =C2=A0 that the slot reload path produ= ces correct results.

=C2=A0 0022: Add 2-arg PREV/NEXT test for row p= attern
=C2=A0 =C2=A0 =C2=A0 =C2=A0 navigation with host variable (new)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Tests the PREV(value, offset) form where = offset
=C2=A0 =C2=A0 =C2=A0 =C2=A0 is a host variable (prepared statemen= t parameter),
=C2=A0 =C2=A0 =C2=A0 =C2=A0 exercising the RPR_NAV_OFFSET_= NEEDS_EVAL path.

=C2=A0 0023: Add Nav Mark Lookback to EXPLAIN and f= ix
=C2=A0 =C2=A0 =C2=A0 =C2=A0 compute_nav_max_offset() (new)

=C2= =A0 =C2=A0 =C2=A0 =C2=A0 EXPLAIN now displays "Nav Mark Lookback: N&qu= ot; for
=C2=A0 =C2=A0 =C2=A0 =C2=A0 RPR windows with PREV navigation, sh= owing how
=C2=A0 =C2=A0 =C2=A0 =C2=A0 many rows the tuplestore retains. = Also fixes
=C2=A0 =C2=A0 =C2=A0 =C2=A0 compute_nav_max_offset() to corre= ctly handle
=C2=A0 =C2=A0 =C2=A0 =C2=A0 non-constant offset expressions.=


=C2=A0 0024: Implement FIRST/LAST and compound navigation
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 for RPR (was 0015, completed)

=C2=A0 =C2= =A0 =C2=A0 =C2=A0 The previous WIP patch is now complete with:

=C2= =A0 =C2=A0 =C2=A0 =C2=A0 - Compound navigation: PREV(FIRST(col)),
=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 NEXT(LAST(col, N)), etc. per SQL standard 5.6.= 4.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Flattened into a single RPRNavExpr= node with
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 two offset values (inner p= osition + outer offset).

=C2=A0 =C2=A0 =C2=A0 =C2=A0 - RPRNavOffsetK= ind enum replaces sentinel macros
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 for= offset classification (CONSTANT, NEEDS_EVAL,
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 FIRST_BASED).

=C2=A0 =C2=A0 =C2=A0 =C2=A0 - Per-context D= EFINE re-evaluation for match_start-
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = dependent expressions (FIRST, LAST with offset),
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 tracked via defineMatchStartDependent bitmapset
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 computed by the planner.

=C2=A0 =C2=A0 =C2= =A0 =C2=A0 - Tuplestore mark handling extended for FIRST-based
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 navigation: mark position accounts for both
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 backward reach (PREV) and forward-from-m= atch-start
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 reach (FIRST).

=C2= =A0 =C2=A0 =C2=A0 =C2=A0 - Documentation added to func-window.sgml.

= =C2=A0 =C2=A0 =C2=A0 =C2=A0 See the design note [2] for the absorption safe= ty
=C2=A0 =C2=A0 =C2=A0 =C2=A0 analysis and evaluation sharing rules.

=C2=A0 0025: Guard against int64 overflow in RPR bounded frame
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 end computation (new)

=C2=A0 =C2=A0 =C2= =A0 =C2=A0 Widens frame position variables from int to int64
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 in row_is_in_reduced_frame() and related functions.
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 Prevents overflow when frame end position excee= ds
=C2=A0 =C2=A0 =C2=A0 =C2=A0 INT_MAX in large partitions.

=C2= =A0 0026: Fix RPR error message style: hint format,
=C2=A0 =C2=A0 =C2=A0= =C2=A0 terminology, capitalization (new)

=C2=A0 =C2=A0 =C2=A0 =C2= =A0 Aligns RPR error messages with PostgreSQL conventions:
=C2=A0 =C2=A0= =C2=A0 =C2=A0 lowercase first word, consistent use of "row pattern&qu= ot;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 terminology, HINT format corrections.
=C2=A0 0027: Fix comment typos, grammar, and inaccuracies in
=C2=A0= =C2=A0 =C2=A0 =C2=A0 RPR code (new)

=C2=A0 =C2=A0 =C2=A0 =C2=A0 Com= ment-only changes across execRPR.c, parse_rpr.c,
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 nodeWindowAgg.c, and ruleutils.c. No functional
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 changes.

=C2=A0 0028: Fix RPR documentation: synopsis, gr= ammar, and
=C2=A0 =C2=A0 =C2=A0 =C2=A0 terminology (new)

=C2=A0 = =C2=A0 =C2=A0 =C2=A0 Updates select.sgml, advanced.sgml, and
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 func-window.sgml for consistent terminology
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 and corrected synopsis examples.

=C2=A0 0029: Fix = nav_slot pass-by-ref dangling pointer in RPR
=C2=A0 =C2=A0 =C2=A0 =C2=A0= navigation (new)

=C2=A0 =C2=A0 =C2=A0 =C2=A0 When a DEFINE expressi= on contains multiple navigation
=C2=A0 =C2=A0 =C2=A0 =C2=A0 calls target= ing different positions (e.g.,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 PREV(x,1) >= ; PREV(x,2)), the second call re-fetches
=C2=A0 =C2=A0 =C2=A0 =C2=A0 nav= _slot, freeing the previous tuple via pfree. Any
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 pass-by-ref datum extracted from the first navigation
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 becomes a dangling pointer. Fix by copying pass-by-ref=C2=A0 =C2=A0 =C2=A0 =C2=A0 results into per-tuple memory in the RESTORE s= tep.

=C2=A0 0030: Add inline comments for complex RPR algorithms and=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 design notes (new)

=C2=A0 =C2=A0 =C2= =A0 =C2=A0 Adds explanatory comments to key algorithms in
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 execRPR.c and rpr.c (planner). Covers NFA absorption
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 logic, match evaluation flow, navigation mark
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 computation, and DEFINE re-evaluation decisions= .
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Comment-only changes, no functional change= s.

=C2=A0 0031: Remove unused include and fix header ordering in RPR=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 files (new)

=C2=A0 =C2=A0 =C2=A0 =C2= =A0 Removes an unnecessary include from execExprInterp.c,
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 drops a redundant nodeWindowAgg.h include from
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 nodeWindowAgg.c, and fixes header ordering in
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 parse_rpr.c to match PostgreSQL convention.

Changes from the previous version:

=C2=A0 - 0015 (FIRST/LAST) is no= w complete as 0024, with compound
=C2=A0 =C2=A0 navigation, RPRNavOffset= Kind, defineMatchStartDependent,
=C2=A0 =C2=A0 and full test coverage.
=C2=A0 - 16 new patches (0011-0016, 0021-0023, 0025-0031) added
= =C2=A0 =C2=A0 since the previous set. These are all quality improvements:=C2=A0 =C2=A0 bug fixes, safety guards, style normalization, comments,=C2=A0 =C2=A0 and test coverage.

=C2=A0 - New features: compound na= vigation in 0024 (was "not
=C2=A0 =C2=A0 yet done" in previous= set), Nav Mark Lookback in
=C2=A0 =C2=A0 EXPLAIN output (0023). All oth= er new patches are
=C2=A0 =C2=A0 quality improvements.

I am plann= ing to submit PREFIX pattern absorption [3]
as a separate patch after th= is set is committed. The
changes are confined to the Absorb phase with n= o
external dependencies, so it can be submitted
independently. The de= sign itself has some complexity
(shadow path tracking), and I would like= to refine it
further until I am fully confident in the approach.
With this set I have covered the features I could
foresee. Whether anyt= hing else belongs in scope is
your call. From here, I think the emphasis= should
shift from adding features to raising overall
quality.
If = there are directions you think should be explored,
I am happy to work on= them. Otherwise, I plan to focus
on code review, test coverage, and sta= bilization, and
will continue to submit bug fixes and test additions
= as I find them.

I also very much welcome refactoring or restructurin= g
suggestions from a committer's maintainability
perspective. If = anything in the current code will be
painful to maintain long-term, I wo= uld much rather
address it now than leave it for after commit.

Fo= r stabilization, I am thinking of the same approach
as in early January:= gcov analysis, Valgrind runs, and
expanding the test suite.

**WI= TH THE PLANNER**, the biggest risk is what we do
not know we are missing= -- there are too many possible
feature interactions to enumerate up fro= nt. To surface
these, I plan to run RPR-only tests under gcov and
rev= iew the uncovered planner paths: any line that RPR
could plausibly reach= but does not becomes a candidate
risk, and a candidate for a new test. = That turns the
unknown into a concrete review list rather than a guessabout which interactions to try. Does that seem like a
good direction?=

If anything comes to mind that should be added or
fixed -- at an= y time -- please let me know.

[1] Fixed-length group absorption desi= gn note
= https://www.postgresql.org/message-id/CAAAe_zAKAGKpK9iHx3ZSuG59sP93r5dfootq= v5tCfaMt%3Dw6wzA%40mail.gmail.com
[2] FIRST/LAST navigation design n= ote
http= s://www.postgresql.org/message-id/CAAAe_zCUrKGBgZdaazdO_v9QWHsS_1DXuP%3DrLe= NhO3iwsHwwbg%40mail.gmail.com
[3] PREFIX pattern absorption design n= ote
https://www.postgresql.org/message-id/CAAAe_zDq7R8CaDfmh8C%2BH3_639Y5LtJD= %2B2Z%3D1txDt%3DvaOr90rQ%40mail.gmail.com

Best regards,
Henso= n

--00000000000016da6b064f3e4dbe-- --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0001-Remove-unused-regex-include.txt" Content-Disposition: attachment; filename="nocfbot-0001-Remove-unused-regex-include.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfmim50 RnJvbSBmNzlkNDM1OGJjMDAzM2JjNGZlOGI0ZjhjOWUzMjkwNGQzZGY2YTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDI0IE1hciAyMDI2IDE5OjA0OjE5ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gUmVtb3Zl IHVudXNlZCByZWdleC9yZWdleC5oIGluY2x1ZGUgZnJvbSBub2RlV2luZG93QWdnLmMKCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIHwgMSAtCiAxIGZpbGUgY2hhbmdl ZCwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVX aW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCA0 Zjg4MmI4NzdiMS4uMTg1ZDdhMGQ1YWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdn LmMKQEAgLTUwLDcgKzUwLDYgQEAKICNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2FnZy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIK LSNpbmNsdWRlICJyZWdleC9yZWdleC5oIgogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKLS0gCjIuNTAu MSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0002-CHECK_FOR_INTERRUPTS-nfa_add_state_unique.txt" Content-Disposition: attachment; filename="nocfbot-0002-CHECK_FOR_INTERRUPTS-nfa_add_state_unique.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfmkew1 RnJvbSAzMWUwN2RjYmQ1MzkxYjdmZjllZjgyOTNmY2IwOTBjZjhmODQ1YzcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDAwOjI1OjQwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIENI RUNLX0ZPUl9JTlRFUlJVUFRTKCkgdG8gbmZhX2FkZF9zdGF0ZV91bmlxdWUoKSBmb3IKIHN0YXRl IGV4cGxvc2lvbiBwYXR0ZXJucwoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMg fCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQ Ui5jCmluZGV4IGJhYjUyNTdmNjhmLi5jZjU0ZTBjNzZjMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIu YwpAQCAtMTc2Myw2ICsxNzYzLDggQEAgbmZhX2FkZF9zdGF0ZV91bmlxdWUoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsIFJQUk5GQVN0YXRlICoKIAkvKiBDaGVj ayBmb3IgZHVwbGljYXRlIGFuZCBmaW5kIHRhaWwgKi8KIAlmb3IgKHMgPSBjdHgtPnN0YXRlczsg cyAhPSBOVUxMOyBzID0gcy0+bmV4dCkKIAl7CisJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisK IAkJaWYgKG5mYV9zdGF0ZXNfZXF1YWwod2luc3RhdGUsIHMsIHN0YXRlKSkKIAkJewogCQkJLyoK LS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0003-CHECK_FOR_INTERRUPTS-nfa_try_absorb_context.txt" Content-Disposition: attachment; filename="nocfbot-0003-CHECK_FOR_INTERRUPTS-nfa_try_absorb_context.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfmmcd2 RnJvbSAwZjE1ZmRhYmMwMWZjMTUwM2YyYTEzMjUzZGY2NTg0NGVjZTRjODZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDExOjAzOjM5ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIENI RUNLX0ZPUl9JTlRFUlJVUFRTKCkgdG8gbmZhX3RyeV9hYnNvcmJfY29udGV4dCgpIGxvb3AKCi0t LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNS UFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRleCBjZjU0ZTBjNzZjMy4u NThmOWRhMGI4MTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTIwODQsNiArMjA4NCw4IEBA IG5mYV90cnlfYWJzb3JiX2NvbnRleHQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFD b250ZXh0ICpjdHgpCiAKIAlmb3IgKG9sZGVyID0gY3R4LT5wcmV2OyBvbGRlciAhPSBOVUxMOyBv bGRlciA9IG9sZGVyLT5wcmV2KQogCXsKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwogCQkv KgogCQkgKiBCeSBpbnZhcmlhbnQ6IGN0eC0+cHJldiBjaGFpbiBpcyBpbiBjcmVhdGlvbiBvcmRl ciAob2xkZXN0IGZpcnN0KSwKIAkJICogYW5kIGVhY2ggcm93IGNyZWF0ZXMgYXQgbW9zdCBvbmUg Y29udGV4dC4gU28gYWxsIGNvbnRleHRzIGluIHRoaXMKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0004-Fix-defineClause-TargetEntry-copy.txt" Content-Disposition: attachment; filename="nocfbot-0004-Fix-defineClause-TargetEntry-copy.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfmorr3 RnJvbSA2NjAxZGRhM2QyOTdlZTg5MjhiYmUxYzAzNTEwMmQ2ODNjNzgyNTFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDAwOjIwOjA1ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IGlu LXBsYWNlIG1vZGlmaWNhdGlvbiBvZiBkZWZpbmVDbGF1c2UgVGFyZ2V0RW50cnkgaW4KIHNldHJl ZnMuYwoKLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgfCA0ICsrKy0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggNjljZDE4NjFlOWIuLjgxM2EzMjZiZDc4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yNjMzLDcgKzI2MzMsNyBAQCBz ZXRfdXBwZXJfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwgUGxhbiAqcGxhbiwgaW50IHJ0 b2Zmc2V0KQogCQkJCQkgICBOVU1fRVhFQ19RVUFMKHBsYW4pKTsKIAogCS8qCi0JICogTW9kaWZp ZXMgYW4gZXhwcmVzc2lvbiB0cmVlIGluIGVhY2ggREVGSU5FIGNsYXVzZSBzbyB0aGF0IGFsbCBW YXIKKwkgKiBSZXBsYWNlIGFuIGV4cHJlc3Npb24gdHJlZSBpbiBlYWNoIERFRklORSBjbGF1c2Ug c28gdGhhdCBhbGwgVmFyCiAJICogbm9kZXMncyB2YXJubyByZWZlcnMgdG8gT1VURVJfVkFSLgog CSAqLwogCWlmIChJc0EocGxhbiwgV2luZG93QWdnKSkKQEAgLTI2NDYsNiArMjY0Niw3IEBAIHNl dF91cHBlcl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRv ZmZzZXQpCiAJCQl7CiAJCQkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmly c3QobCk7CiAKKwkJCQl0bGUgPSBmbGF0Q29weVRhcmdldEVudHJ5KHRsZSk7CiAJCQkJdGxlLT5l eHByID0gKEV4cHIgKikKIAkJCQkJZml4X3VwcGVyX2V4cHIocm9vdCwKIAkJCQkJCQkJICAgKE5v ZGUgKikgdGxlLT5leHByLApAQCAtMjY1NCw2ICsyNjU1LDcgQEAgc2V0X3VwcGVyX3JlZmVyZW5j ZXMoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAkJCQkJCQkJ ICAgcnRvZmZzZXQsCiAJCQkJCQkJCSAgIE5STV9FUVVBTCwKIAkJCQkJCQkJICAgTlVNX0VYRUNf UVVBTChwbGFuKSk7CisJCQkJbGZpcnN0KGwpID0gdGxlOwogCQkJfQogCQl9CiAJfQotLSAKMi41 MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0005-Fix-mark-handling-last_value-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0005-Fix-mark-handling-last_value-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfmr9q4 RnJvbSAzMWU3ZGFjYjhiMGZhNmVhZDYzZmY5MmMxOWFhNWRmYjBjZGU3NmExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDAwOjM3OjUwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IG1h cmsgaGFuZGxpbmcgZm9yIGxhc3RfdmFsdWUoKSB1bmRlciBSUFIKCkVuYWJsZSBtYXJrIGFkdmFu Y2VtZW50IGluIHdpbmRvd19sYXN0X3ZhbHVlKCkgZm9yCmJldHRlciB0dXBsZXN0b3JlIG1lbW9y eSB1c2FnZSBpbiBub24tUlBSIGNhc2VzLCB3aGlsZQphZGRpbmcgYSBndWFyZCBpbiBXaW5HZXRG dW5jQXJnSW5GcmFtZSB0byBzdXBwcmVzcyBpdApmb3IgUlBSIFNFRUtfVEFJTCB0byBwcmV2ZW50 IHBvc2l0aW9uIGludmFsaWRhdGlvbgpmcm9tIHJlZHVjZWQgZnJhbWUgc2hpZnRzLgotLS0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDEwICsrKysrKysrKysKIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQs IDExIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2lu ZG93QWdnLmMKaW5kZXggMTg1ZDdhMGQ1YWUuLmFlZDdjYmVmOTlhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC00OTMyLDcgKzQ5MzIsMTcgQEAgV2luR2V0U2xvdEluRnJh bWUoV2luZG93T2JqZWN0IHdpbm9iaiwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJaWYgKGlzb3V0 KQogCQkqaXNvdXQgPSBmYWxzZTsKIAlpZiAoc2V0X21hcmspCisJeworCQkvKgorCQkgKiBJZiBS UFIgaXMgZW5hYmxlZCBhbmQgc2VlayB0eXBlIGlzIFdJTkRPV19TRUVLX1RBSUwsIHdlIHNldCB0 aGUKKwkJICogbWFyayBwb3NpdGlvbiB1bmNvbmRpdGlvbmFsbHkgdG8gZnJhbWVoZWFkcG9zLiBJ biB0aGlzIGNhc2UgdGhlCisJCSAqIGZyYW1lIGFsd2F5cyBzdGFydHMgYXQgQ1VSUkVOVF9ST1cg YW5kIG5ldmVyIGdvZXMgYmFjaywgdGh1cworCQkgKiBzZXR0aW5nIHRoZSBtYXJrIGF0IHRoZSBw b3NpdGlvbiBpcyBzYWZlLgorCQkgKi8KKwkJaWYgKHdpbnN0YXRlLT5ycFBhdHRlcm4gIT0gTlVM TCAmJiBzZWVrdHlwZSA9PSBXSU5ET1dfU0VFS19UQUlMKQorCQkJbWFya19wb3MgPSB3aW5zdGF0 ZS0+ZnJhbWVoZWFkcG9zOwogCQlXaW5TZXRNYXJrUG9zaXRpb24od2lub2JqLCBtYXJrX3Bvcyk7 CisJfQogCXJldHVybiAwOwogCiBvdXRfb2ZfZnJhbWU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dm dW5jcy5jCmluZGV4IGVmYjYwYzk5MDUyLi43NGVmMTA5ZjcyZSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3dpbmRvd2Z1bmNzLmMKQEAgLTY4Miw3ICs2ODIsNyBAQCB3aW5kb3dfbGFzdF92YWx1ZShQR19G VU5DVElPTl9BUkdTKQogCiAJV2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudCh3aW5v YmosIHRydWUsIGZjaW5mbyk7CiAJcmVzdWx0ID0gV2luR2V0RnVuY0FyZ0luRnJhbWUod2lub2Jq LCAwLAotCQkJCQkJCQkgIDAsIFdJTkRPV19TRUVLX1RBSUwsIGZhbHNlLAorCQkJCQkJCQkgIDAs IFdJTkRPV19TRUVLX1RBSUwsIHRydWUsCiAJCQkJCQkJCSAgJmlzbnVsbCwgTlVMTCk7CiAJaWYg KGlzbnVsbCkKIAkJUEdfUkVUVVJOX05VTEwoKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkK Cg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0006-Fix-DEFINE-expression-handling-RPR-window-planning.txt" Content-Disposition: attachment; filename="nocfbot-0006-Fix-DEFINE-expression-handling-RPR-window-planning.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfmubq5 RnJvbSA3ZGQ4OTZhOGIyNzlhMWYwMmU4YTVkOWYyNDFkOWE1OWEzMmVlNTg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTE6NTU6MDIgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggREVG SU5FIGV4cHJlc3Npb24gaGFuZGxpbmcgaW4gUlBSIHdpbmRvdyBwbGFubmluZwoKdHJhbnNmb3Jt RGVmaW5lQ2xhdXNlKCkgYWRkZWQgZnVsbCBERUZJTkUgZXhwcmVzc2lvbnMgaW5jbHVkaW5nClJQ Uk5hdkV4cHIgKFBSRVYvTkVYVCkgbm9kZXMgdG8gdGhlIHF1ZXJ5IHRhcmdldGxpc3QuICBUaGVz ZQpwcm9wYWdhdGVkIHRvIHVwcGVyIFdpbmRvd0FnZyBub2RlcyB0aGF0IGxhY2sgUlBSIG5hdmln YXRpb24gc3RhdGUsCmNhdXNpbmcgYSBTSUdTRUdWIHdoZW4gUlBSIGFuZCBub24tUlBSIHdpbmRv d3MgY29leGlzdCBpbiB0aGUgc2FtZQpxdWVyeS4KCkFkZCBvbmx5IHRoZSBWYXIgbm9kZXMgcmVm ZXJlbmNlZCBieSBERUZJTkUgZXhwcmVzc2lvbnMgdG8gdGhlCnRhcmdldGxpc3QsIGFuZCBwcm90 ZWN0IHRob3NlIFZhcnMgZnJvbSByZW1vdmFsIGJ5CnJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0 cHV0cygpIHNvIHRoZXkgcmVtYWluIGF2YWlsYWJsZSBpbiB0aGUKdHVwbGVzdG9yZSBzbG90IGZv ciBwYXR0ZXJuIG1hdGNoaW5nIGV2YWx1YXRpb24uCgpNb3ZlIHRoZSBzdWJxdWVyeSB3cmFwcGlu ZyB0ZXN0cyBmcm9tIHJwci5zcWwgdG8gcnByX2ludGVncmF0aW9uLnNxbC4KLS0tCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jIHwgIDY4ICsrKysrKysrKysrKysrKysrCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgICAgICAgIHwgMTA2ICsrKysrKysrKysrKysr LS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspLCA0OCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRo cy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwppbmRleCBmNDJhMmJh ZTE0YS4uZjBlZjRlMjg5YTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRo L2FsbHBhdGhzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwpA QCAtNDc1MCw2ICs0NzUwLDc0IEBAIHJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0cyhRdWVy eSAqc3VicXVlcnksIFJlbE9wdEluZm8gKnJlbCwKIAkJaWYgKGNvbnRhaW5fdm9sYXRpbGVfZnVu Y3Rpb25zKHRleHByKSkKIAkJCWNvbnRpbnVlOwogCisJCS8qCisJCSAqIElmIGFueSBSUFIgd2lu ZG93IGNsYXVzZSByZWZlcmVuY2VzIHRoaXMgY29sdW1uIGluIGl0cyBERUZJTkUKKwkJICogY2xh dXNlLCBkb24ndCByZW1vdmUgaXQuICBUaGUgREVGSU5FIGV4cHJlc3Npb24gbmVlZHMgdGhlc2Ug Y29sdW1ucworCQkgKiBpbiB0aGUgdHVwbGVzdG9yZSBzbG90IGZvciBwYXR0ZXJuIG1hdGNoaW5n IGV2YWx1YXRpb24sIGV2ZW4gaWYgdGhlCisJCSAqIG91dGVyIHF1ZXJ5IGRvZXNuJ3QgcmVmZXJl bmNlIHRoZW0uCisJCSAqLworCQlpZiAoSXNBKHRleHByLCBWYXIpKQorCQl7CisJCQlWYXIJCSAg ICp2YXIgPSAoVmFyICopIHRleHByOworCQkJTGlzdENlbGwgICAqd2xjOworCQkJYm9vbAkJbmVl ZGVkX2J5X2RlZmluZSA9IGZhbHNlOworCisJCQlmb3JlYWNoKHdsYywgc3VicXVlcnktPndpbmRv d0NsYXVzZSkKKwkJCXsKKwkJCQlXaW5kb3dDbGF1c2UgKndjID0gbGZpcnN0X25vZGUoV2luZG93 Q2xhdXNlLCB3bGMpOworCisJCQkJaWYgKHdjLT5kZWZpbmVDbGF1c2UgIT0gTklMKQorCQkJCXsK KwkJCQkJTGlzdAkgICAqdmFycyA9IHB1bGxfdmFyX2NsYXVzZSgoTm9kZSAqKSB3Yy0+ZGVmaW5l Q2xhdXNlLCAwKTsKKwkJCQkJTGlzdENlbGwgICAqdmxjOworCisJCQkJCWZvcmVhY2godmxjLCB2 YXJzKQorCQkJCQl7CisJCQkJCQlWYXIJCSAgICpkdmFyID0gKFZhciAqKSBsZmlyc3QodmxjKTsK KworCQkJCQkJaWYgKGR2YXItPnZhcmF0dG5vID09IHZhci0+dmFyYXR0bm8pCisJCQkJCQl7CisJ CQkJCQkJbmVlZGVkX2J5X2RlZmluZSA9IHRydWU7CisJCQkJCQkJYnJlYWs7CisJCQkJCQl9CisJ CQkJCX0KKwkJCQkJbGlzdF9mcmVlKHZhcnMpOworCQkJCQlpZiAobmVlZGVkX2J5X2RlZmluZSkK KwkJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCWlmIChuZWVkZWRfYnlfZGVmaW5lKQorCQkJ CWNvbnRpbnVlOworCQl9CisKKwkJLyoKKwkJICogSWYgaXQncyBhIHdpbmRvdyBmdW5jdGlvbiBy ZWZlcmVuY2luZyBhIHdpbmRvdyBjbGF1c2Ugd2l0aCBSUFIgKFJvdworCQkgKiBQYXR0ZXJuIFJl Y29nbml0aW9uKSwgZG9uJ3QgcmVtb3ZlIGl0LiAgRXZlbiB3aGVuIHRoZSB3aW5kb3cKKwkJICog ZnVuY3Rpb24gcmVzdWx0IGlzIHVudXNlZCBieSB0aGUgb3V0ZXIgcXVlcnksIHRoZSBSUFIgcGF0 dGVybgorCQkgKiBtYXRjaGluZyAoZnJhbWUgcmVkdWN0aW9uIHZpYSBERUZJTkUvUEFUVEVSTikg bXVzdCBzdGlsbCBleGVjdXRlLgorCQkgKiBSZXBsYWNpbmcgdGhpcyB3aXRoIE5VTEwgd291bGQg bGVhdmUgbm8gYWN0aXZlIHdpbmRvdyBmdW5jdGlvbnMgZm9yCisJCSAqIHRoZSBXaW5kb3dDbGF1 c2UsIGNhdXNpbmcgdGhlIHBsYW5uZXIgdG8gb21pdCB0aGUgV2luZG93QWdnIG5vZGUKKwkJICog ZW50aXJlbHkuCisJCSAqLworCQlpZiAoSXNBKHRleHByLCBXaW5kb3dGdW5jKSkKKwkJeworCQkJ V2luZG93RnVuYyAqd2Z1bmMgPSAoV2luZG93RnVuYyAqKSB0ZXhwcjsKKwkJCUxpc3RDZWxsICAg KndsYzsKKworCQkJZm9yZWFjaCh3bGMsIHN1YnF1ZXJ5LT53aW5kb3dDbGF1c2UpCisJCQl7CisJ CQkJV2luZG93Q2xhdXNlICp3YyA9IGxmaXJzdF9ub2RlKFdpbmRvd0NsYXVzZSwgd2xjKTsKKwor CQkJCWlmICh3Yy0+d2lucmVmID09IHdmdW5jLT53aW5yZWYgJiYKKwkJCQkJd2MtPmRlZmluZUNs YXVzZSAhPSBOSUwpCisJCQkJeworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCQlpZiAod2xj ICE9IE5VTEwpCisJCQkJY29udGludWU7CisJCX0KKwogCQkvKgogCQkgKiBPSywgd2UgZG9uJ3Qg bmVlZCBpdC4gIFJlcGxhY2UgdGhlIGV4cHJlc3Npb24gd2l0aCBhIE5VTEwgY29uc3RhbnQuCiAJ CSAqIFByZXNlcnZlIHRoZSBleHBvc2VkIHR5cGUgb2YgdGhlIGV4cHJlc3Npb24sIGluIGNhc2Ug c29tZXRoaW5nCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKaW5kZXggNTUyODNhYjRiYmUuLmRiMTMwOWNh MzExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9k ZXMvbm9kZUZ1bmNzLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgogI2luY2x1 ZGUgIm9wdGltaXplci9ycHIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY2xhdXNlLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvbGxhdGUuaCIKQEAgLTMxMCw5ICszMTEsNyBAQCB0cmFu c2Zvcm1EZWZpbmVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5kb3dDbGF1c2UgKndjLCBX aW5kb3dEZWYgKndpbmRlZiwKIAlyZXN0YXJnZXRzID0gTklMOwogCWZvcmVhY2gobGMsIHdpbmRl Zi0+cnBDb21tb25TeW50YXgtPnJwRGVmcykKIAl7Ci0JCVRhcmdldEVudHJ5ICp0ZSwKLQkJCQkg ICAqdGVEZWZpbmU7Ci0JCWludAkJCWRlZmluZUV4cHJMb2NhdGlvbjsKKwkJVGFyZ2V0RW50cnkg KnRlRGVmaW5lOwogCiAJCXJlc3RhcmdldCA9IChSZXNUYXJnZXQgKikgbGZpcnN0KGxjKTsKIAkJ bmFtZSA9IHJlc3RhcmdldC0+bmFtZTsKQEAgLTMzNSw1NyArMzM0LDY4IEBAIHRyYW5zZm9ybURl ZmluZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0Rl ZiAqd2luZGVmLAogCQlyZXN0YXJnZXRzID0gbGFwcGVuZChyZXN0YXJnZXRzLCByZXN0YXJnZXQp OwogCiAJCS8qCi0JCSAqIFRyYW5zZm9ybSB0aGUgREVGSU5FIGV4cHJlc3Npb24gKHJlc3Rhcmdl dC0+dmFsKSBhbmQgYWRkIGl0IHRvIHRoZQotCQkgKiB0YXJnZXRsaXN0IGFzIGEgVGFyZ2V0RW50 cnkgaWYgbm90IGFscmVhZHkgcHJlc2VudCwgc28gdGhlIHBsYW5uZXIKLQkJICogY2FuIHByb3Bh Z2F0ZSB0aGUgcmVmZXJlbmNlZCBjb2x1bW5zIHRvIHRoZSBvdXRlciBwbGFuJ3MKLQkJICogdGFy Z2V0bGlzdC4KKwkJICogVHJhbnNmb3JtIHRoZSBERUZJTkUgZXhwcmVzc2lvbi4gIFdlIG11c3Qg Tk9UIGFkZCB0aGUgd2hvbGUKKwkJICogZXhwcmVzc2lvbiB0byB0aGUgcXVlcnkgdGFyZ2V0bGlz dCwgYmVjYXVzZSBpdCBtYXkgY29udGFpbgorCQkgKiBSUFJOYXZFeHByIG5vZGVzIChQUkVWL05F WFQpIHRoYXQgY2FuIG9ubHkgYmUgZXZhbHVhdGVkIGluc2lkZSB0aGUKKwkJICogb3duaW5nIFdp bmRvd0FnZy4KIAkJICoKLQkJICogTm90ZTogZmluZFRhcmdldGxpc3RFbnRyeVNRTDk5IHRyYW5z Zm9ybXMgYW5kIGNsb2JiZXJzCi0JCSAqIHJlc3RhcmdldC0+dmFsLgorCQkgKiBJbnN0ZWFkLCB3 ZSB0cmFuc2Zvcm0gdGhlIGV4cHJlc3Npb24gZGlyZWN0bHkgYW5kIG9ubHkgZW5zdXJlIHRoYXQK KwkJICogdGhlIGluZGl2aWR1YWwgVmFyIG5vZGVzIGl0IHJlZmVyZW5jZXMgYXJlIHByZXNlbnQg aW4gdGhlCisJCSAqIHRhcmdldGxpc3QsIHNvIHRoZSBwbGFubmVyIGNhbiBwcm9wYWdhdGUgdGhl IHJlZmVyZW5jZWQgY29sdW1ucy4KIAkJICovCisJCXsKKwkJCU5vZGUJICAgKmV4cHI7CisJCQlM aXN0CSAgICp2YXJzOworCQkJTGlzdENlbGwgICAqbGMyOwogCi0JCS8qCi0JCSAqIFNhdmUgdGhl IG9yaWdpbmFsIGV4cHJlc3Npb24gbG9jYXRpb24gYmVmb3JlIHRyYW5zZm9ybWF0aW9uLgotCQkg KiBmaW5kVGFyZ2V0bGlzdEVudHJ5U1FMOTkgbWF5IHJldHVybiBhbiBleGlzdGluZyBUYXJnZXRF bnRyeSB3aG9zZQotCQkgKiBsb2NhdGlvbiBwb2ludHMgdG8gd2hlcmUgaXQgd2FzIG9yaWdpbmFs bHkgY3JlYXRlZCAoZS5nLiwgT1JERVIKLQkJICogQlkpLCBub3QgdGhlIERFRklORSBjbGF1c2Uu IFdlIG5lZWQgdG8gcHJlc2VydmUgdGhlIERFRklORSBsb2NhdGlvbgotCQkgKiBmb3IgYWNjdXJh dGUgZXJyb3IgcmVwb3J0aW5nLgotCQkgKi8KLQkJZGVmaW5lRXhwckxvY2F0aW9uID0gZXhwckxv Y2F0aW9uKHJlc3RhcmdldC0+dmFsKTsKKwkJCWV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwg cmVzdGFyZ2V0LT52YWwsCisJCQkJCQkJCSBFWFBSX0tJTkRfUlBSX0RFRklORSk7CisKKwkJCS8q CisJCQkgKiBQdWxsIG91dCBWYXIgbm9kZXMgZnJvbSB0aGUgdHJhbnNmb3JtZWQgZXhwcmVzc2lv biBhbmQgZW5zdXJlCisJCQkgKiBlYWNoIG9uZSBpcyBwcmVzZW50IGluIHRoZSB0YXJnZXRsaXN0 LiAgVGhpcyBpcyBuZWVkZWQgc28gdGhlCisJCQkgKiBwbGFubmVyIHByb3BhZ2F0ZXMgdGhlIHJl ZmVyZW5jZWQgY29sdW1ucyB0aHJvdWdoIHRoZSBwbGFuCisJCQkgKiB0cmVlLCBtYWtpbmcgdGhl bSBhdmFpbGFibGUgdG8gdGhlIFdpbmRvd0FnZydzIERFRklORQorCQkJICogZXZhbHVhdGlvbi4K KwkJCSAqLworCQkJdmFycyA9IHB1bGxfdmFyX2NsYXVzZShleHByLCAwKTsKKwkJCWZvcmVhY2go bGMyLCB2YXJzKQorCQkJeworCQkJCVZhcgkJICAgKnZhciA9IChWYXIgKikgbGZpcnN0KGxjMik7 CisJCQkJYm9vbAkJZm91bmQgPSBmYWxzZTsKKwkJCQlMaXN0Q2VsbCAgICp0bDsKIAotCQl0ZSA9 IGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5OShwc3RhdGUsIHJlc3RhcmdldC0+dmFsLAotCQkJCQkJ CQkJICB0YXJnZXRsaXN0LCBFWFBSX0tJTkRfUlBSX0RFRklORSk7CisJCQkJZm9yZWFjaCh0bCwg KnRhcmdldGxpc3QpCisJCQkJeworCQkJCQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdldEVudHJ5 ICopIGxmaXJzdCh0bCk7CiAKLQkJLyogLS0tLS0tLS0tLS0tLS0tLS0tLQotCQkgKiBDb3B5IHRo ZSBUYXJnZXRFbnRyeSBmb3IgZGVmaW5lQ2xhdXNlIGFuZCBhbHdheXMgc2V0IHRoZSBwYXR0ZXJu Ci0JCSAqIHZhcmlhYmxlIG5hbWUuIFdlIHVzZSBjb3B5T2JqZWN0IHNvIHRoZSBvcmlnaW5hbCB0 YXJnZXRsaXN0IGVudHJ5Ci0JCSAqIGlzIG5vdCBtb2RpZmllZC4KLQkJICoKLQkJICogTm90ZTog V2UgbXVzdCBhbHdheXMgc2V0IHJlc25hbWUgdG8gdGhlIHBhdHRlcm4gdmFyaWFibGUgbmFtZS4K LQkJICogZmluZFRhcmdldGxpc3RFbnRyeVNRTDk5IGNyZWF0ZXMgbmV3IFRFcyB3aXRoIHJlc25h bWUgPSBOVUxMCi0JCSAqIChyZXNqdW5rIGVudHJpZXMpLCBidXQgcmV0dXJucyBleGlzdGluZyBU RXMgdW5jaGFuZ2VkIHdoZW4gdGhlCi0JCSAqIGV4cHJlc3Npb24gYWxyZWFkeSBleGlzdHMgaW4g dGFyZ2V0bGlzdC4KLQkJICoKLQkJICogRXhhbXBsZTogIlNFTEVDVCBpZCwgZmxhZywgLi4uIFdJ TkRPVyB3IEFTICguLi4gREVGSU5FIFQgQVMgZmxhZykiCi0JCSAqCi0JCSAqIDEuIFNFTEVDVCBs aXN0IHByb2Nlc3NpbmcgY3JlYXRlczogVEV7cmVzbmFtZT0iZmxhZyIsIGV4cHI9ZmxhZ30KLQkJ ICogMi4gREVGSU5FIFQgQVMgZmxhZzogZmluZFRhcmdldGxpc3RFbnRyeVNRTDk5IGZpbmRzIGV4 aXN0aW5nIFRFCi0JCSAqIDMuIHRlLT5yZXNuYW1lIGlzICJmbGFnIiAoZnJvbSBTRUxFQ1QpLCBu b3QgTlVMTAotCQkgKiA0LiBXaXRob3V0IHVuY29uZGl0aW9uYWxseSBzZXR0aW5nIHJlc25hbWUs IHRlRGVmaW5lLT5yZXNuYW1lCi0JCSAqICAgIHdvdWxkIHJlbWFpbiAiZmxhZyIgaW5zdGVhZCBv ZiBwYXR0ZXJuIHZhcmlhYmxlIG5hbWUgIlQiCi0JCSAqIDUuIGJ1aWxkUlBSUGF0dGVybiBidWls ZHMgZGVmaW5lVmFyaWFibGVMaXN0IGZyb20gcmVzbmFtZSwgc28KLQkJICogICAgaXQgd291bGQg Y29udGFpbiBbImZsYWciXSBpbnN0ZWFkIG9mIFsiVCJdCi0JCSAqIDYuIFBhdHRlcm4gdmFyaWFi bGUgIlQiIG5vdCBmb3VuZCAtPiBBc3NlcnQgZmFpbHVyZSBjcmFzaAotCQkgKi8KLQkJdGVEZWZp bmUgPSBjb3B5T2JqZWN0KHRlKTsKLQkJdGVEZWZpbmUtPnJlc25hbWUgPSBwc3RyZHVwKG5hbWUp OworCQkJCQlpZiAoSXNBKHRsZS0+ZXhwciwgVmFyKSAmJgorCQkJCQkJKChWYXIgKikgdGxlLT5l eHByKS0+dmFybm8gPT0gdmFyLT52YXJubyAmJgorCQkJCQkJKChWYXIgKikgdGxlLT5leHByKS0+ dmFyYXR0bm8gPT0gdmFyLT52YXJhdHRubykKKwkJCQkJeworCQkJCQkJZm91bmQgPSB0cnVlOwor CQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQl9CisJCQkJaWYgKCFmb3VuZCkKKwkJCQl7CisJCQkJ CVRhcmdldEVudHJ5ICpuZXd0bGU7CiAKLQkJLyoKLQkJICogVXBkYXRlIHRoZSBleHByZXNzaW9u IGxvY2F0aW9uIHRvIHBvaW50IHRvIHRoZSBERUZJTkUgY2xhdXNlLiBUaGlzCi0JCSAqIGVuc3Vy ZXMgZXJyb3IgbWVzc2FnZXMgcmVmZXJlbmNlIHRoZSBjb3JyZWN0IHNvdXJjZSBsb2NhdGlvbi4K LQkJICovCi0JCWlmIChkZWZpbmVFeHByTG9jYXRpb24gPj0gMCAmJiBJc0EodGVEZWZpbmUtPmV4 cHIsIFZhcikpCi0JCQkoKFZhciAqKSB0ZURlZmluZS0+ZXhwciktPmxvY2F0aW9uID0gZGVmaW5l RXhwckxvY2F0aW9uOworCQkJCQluZXd0bGUgPSBtYWtlVGFyZ2V0RW50cnkoKEV4cHIgKikgY29w eU9iamVjdCh2YXIpLAorCQkJCQkJCQkJCQkgbGlzdF9sZW5ndGgoKnRhcmdldGxpc3QpICsgMSwK KwkJCQkJCQkJCQkJIE5VTEwsCisJCQkJCQkJCQkJCSB0cnVlKTsKKwkJCQkJKnRhcmdldGxpc3Qg PSBsYXBwZW5kKCp0YXJnZXRsaXN0LCBuZXd0bGUpOworCQkJCX0KKwkJCX0KKwkJCWxpc3RfZnJl ZSh2YXJzKTsKKworCQkJLyogQnVpbGQgdGhlIGRlZmluZUNsYXVzZSBlbnRyeSBkaXJlY3RseSBm cm9tIHRoZSB0cmFuc2Zvcm1lZCBleHByICovCisJCQl0ZURlZmluZSA9IG1ha2VUYXJnZXRFbnRy eSgoRXhwciAqKSBleHByLAorCQkJCQkJCQkJICAgbGlzdF9sZW5ndGgoZGVmaW5lQ2xhdXNlKSAr IDEsCisJCQkJCQkJCQkgICBwc3RyZHVwKG5hbWUpLAorCQkJCQkJCQkJICAgdHJ1ZSk7CisJCX0K IAogCQkvKiBidWlsZCB0cmFuc2Zvcm1lZCBERUZJTkUgY2xhdXNlIChsaXN0IG9mIFRhcmdldEVu dHJ5KSAqLwogCQlkZWZpbmVDbGF1c2UgPSBsYXBwZW5kKGRlZmluZUNsYXVzZSwgdGVEZWZpbmUp OwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0007-Add-RPR-planner-integration-tests.txt" Content-Disposition: attachment; filename="nocfbot-0007-Add-RPR-planner-integration-tests.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfmwzo6 RnJvbSA0MTQxNjcwY2ZlNDdlOWFhMmNlYWM3MTdkYmEwZDA5MDE1ZmE4OWMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTQ6MDk6NTMgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgUlBS IHBsYW5uZXIgaW50ZWdyYXRpb24gdGVzdHMKCkFkZCBycHJfaW50ZWdyYXRpb24uc3FsIGNvdmVy aW5nIHBsYW5uZXIgb3B0aW1pemF0aW9uIGludGVyYWN0aW9ucwp3aXRoIFJQUiB3aW5kb3dzOiBm cmFtZSBvcHRpbWl6YXRpb24sIHJ1biBjb25kaXRpb24gcHVzaGRvd24sIHdpbmRvdwpkZWR1cGxp Y2F0aW9uLCB1bnVzZWQgd2luZG93IHJlbW92YWwsIGludmVyc2UgdHJhbnNpdGlvbiwgY29zdApl c3RpbWF0aW9uLCBzdWJxdWVyeSBmbGF0dGVuaW5nLCBERUZJTkUgZXhwcmVzc2lvbiBwcm9wYWdh dGlvbiwgYW5kCkxJTUlULiAgQWxzbyBjb3ZlcnMgaW50ZWdyYXRpb24gc2NlbmFyaW9zIHdpdGgg cGFydGl0aW9uZWQgdGFibGVzLApMQVRFUkFMLCByZWN1cnNpdmUgQ1RFcywgaW5jcmVtZW50YWwg c29ydCwgdm9sYXRpbGUgZnVuY3Rpb25zLCBhbmQKY29ycmVsYXRlZCBzdWJxdWVyaWVzLgotLS0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dCB8IDg4NSArKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAg ICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbCAg ICAgIHwgNTM3ICsrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE0MjMgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmEyMWFjNWE4NTg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CkBAIC0wLDAgKzEsODg1IEBACistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IFJQUiBJbnRlZ3JhdGlvbiBUZXN0cworLS0gUGxhbm5lciBvcHRpbWl6YXRpb24gaW50ZXJhY3Rp b24gdGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tCistLSBWZXJp ZmllcyB0aGF0IGVhY2ggcGxhbm5lciBvcHRpbWl6YXRpb24gY29ycmVjdGx5IGhhbmRsZXMgUlBS IHdpbmRvd3MuCistLSBFdmVuIGlmIGluZGl2aWR1YWwgb3B0aW1pemF0aW9ucyBhcmUgdGVzdGVk IGVsc2V3aGVyZSwgdGhpcyBmaWxlCistLSBwcm92aWRlcyBhIHNpbmdsZSBjaGVja3BvaW50IGZv ciBhbGwgcGxhbm5lci9SUFIgaW50ZXJhY3Rpb25zLgorLS0KKy0tIEEuIFBsYW5uZXIgT3B0aW1p emF0aW9uIFByb3RlY3Rpb24gVGVzdHMKKy0tICAgIEExLiBGcmFtZSBvcHRpbWl6YXRpb24gYnlw YXNzCistLSAgICBBMi4gUnVuIGNvbmRpdGlvbiBwdXNoZG93biBieXBhc3MKKy0tICAgIEEzLiBX aW5kb3cgZGVkdXAgcHJldmVudGlvbiAocGxhbm5lcikKKy0tICAgIEE0LiBXaW5kb3cgZGVkdXAg cHJldmVudGlvbiAocGFyc2VyKQorLS0gICAgQTUuIFVudXNlZCB3aW5kb3cgcmVtb3ZhbCBwcmV2 ZW50aW9uCistLSAgICBBNi4gSW52ZXJzZSB0cmFuc2l0aW9uIGJ5cGFzcworLS0gICAgQTcuIENv c3QgZXN0aW1hdGlvbiBSUFIgYXdhcmVuZXNzCistLSAgICBBOC4gU3VicXVlcnkgZmxhdHRlbmlu ZyBwcmV2ZW50aW9uCistLSAgICBBOS4gREVGSU5FIGV4cHJlc3Npb24gbm9uLXByb3BhZ2F0aW9u CistLSAgICBBMTAuIFJQUiArIExJTUlUCistLQorLS0gQi4gSW50ZWdyYXRpb24gU2NlbmFyaW8g VGVzdHMKKy0tICAgIEIxLiBSUFIgKyBDVEUKKy0tICAgIEIyLiBSUFIgKyBKT0lOCistLSAgICBC My4gUlBSICsgU2V0IG9wZXJhdGlvbnMKKy0tICAgIEI0LiBSUFIgKyBQcmVwYXJlZCBzdGF0ZW1l bnRzCistLSAgICBCNS4gUlBSICsgUGFydGl0aW9uZWQgdGFibGUKKy0tICAgIEI2LiBSUFIgKyBM QVRFUkFMCistLSAgICBCNy4gUlBSICsgUmVjdXJzaXZlIENURQorLS0gICAgQjguIFJQUiArIElu Y3JlbWVudGFsIHNvcnQKKy0tICAgIEI5LiBSUFIgKyBWb2xhdGlsZSBmdW5jdGlvbiBpbiBERUZJ TkUKKy0tICAgIEIxMC4gUlBSICsgQ29ycmVsYXRlZCBzdWJxdWVyeQorLS0KK0NSRUFURSBUQUJM RSBycHJfaW50ZWcgKGlkIElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfaW50ZWcgVkFM VUVTCisgICAgKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDE1KSwgKDQsIDI1KSwgKDUsIDUpLAorICAg ICg2LCAzMCksICg3LCAzNSksICg4LCAyMCksICg5LCA0MCksICgxMCwgNDUpOworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBBMS4gRnJhbWUgb3B0aW1pemF0aW9uIGJ5cGFzcworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBvcHRpbWl6ZV93aW5k b3dfY2xhdXNlcygpIG11c3Qgbm90IGFwcGx5IGZyYW1lIG9wdGltaXphdGlvbiB0byBSUFIgd2lu ZG93cy4KKy0tIE5vbi1SUFI6IGZyYW1lIGlzIG9wdGltaXplZCAoUkFOR0UgLT4gUk9XUyBjb252 ZXJzaW9uLCBldGMuKQorLS0gUlBSOiBmcmFtZSBtdXN0IHN0YXkgYXMgc3BlY2lmaWVkIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCistLSBOb24tUlBS IHdpbmRvdyB3aXRoIGRlZmF1bHQgZnJhbWUgLT4gZnJhbWUgb3B0aW1pemF0aW9uIGFwcGxpZWQK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50 ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCk7CisgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQpCisgICAtPiAgU29ydAorICAgICAgICAg U29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoNSByb3dz KQorCistLSBSUFIgd2luZG93IC0+IGZyYW1lIG9wdGltaXphdGlvbiBtdXN0IE5PVCBjaGFuZ2Ug dGhlIGZyYW1lCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZS T00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQor ICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKKyAgIFBhdHRlcm46IGEgYisKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQK KyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg2IHJvd3MpCisKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gQTIuIFJ1biBjb25kaXRpb24gcHVzaGRvd24gYnlwYXNzCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIGZpbmRfd2lu ZG93X3J1bl9jb25kaXRpb25zKCkgbXVzdCBub3QgcHVzaCBtb25vdG9uaWMgZmlsdGVycyBhcyBS dW4gQ29uZGl0aW9ucworLS0gZm9yIFJQUiB3aW5kb3dzLCBiZWNhdXNlIFJQUiByZXN1bHRzIGFy ZSBtYXRjaC1kZXBlbmRlbnQsIG5vdCBtb25vdG9uaWMuCistLSBOb24tUlBSOiBjb3VudCgqKSA+ IDAgcHVzaGVkIGRvd24gYXMgUnVuIENvbmRpdGlvbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUICogRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9N IHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCispIHQgV0hFUkUgY250 ID4gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24gdAorICAgLT4g IFdpbmRvd0FnZworICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgICAg ICAgUnVuIENvbmRpdGlvbjogKGNvdW50KCopIE9WRVIgdyA+IDApCisgICAgICAgICAtPiAgU29y dAorICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAorICAgICAgICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDcgcm93cykKKworLS0gUlBSOiBjb3VudCgqKSA+ IDAgbXVzdCBOT1QgYmUgcHVzaGVkIGRvd24gKGFwcGVhcnMgYXMgRmlsdGVyLCBub3QgUnVuIENv bmRpdGlvbikKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdCBXSEVSRSBjbnQgPiAwOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiB0CisgICBGaWx0ZXI6ICh0LmNudCA+IDApCisg ICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRl Zy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisg ICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAg U29ydCBLZXk6IHJwcl9pbnRlZy5pZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9pbnRlZworKDggcm93cykKKworLS0gVmVyaWZ5IHJlc3VsdHMgYXJlIGNvcnJlY3QKK1NFTEVD VCAqIEZST00gKAorICAgIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250Cisg ICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg IFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykg dCBXSEVSRSBjbnQgPiAwCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0t LS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAzIHwgIDE1IHwgICAyCisgIDUgfCAgIDUgfCAg IDMKKyAgOCB8ICAyMCB8ICAgMworKDQgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMy4gV2luZG93IGRl ZHVwIHByZXZlbnRpb24gKHBsYW5uZXIpCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIG9wdGltaXplX3dpbmRvd19jbGF1 c2VzKCkgbXVzdCBub3QgbWVyZ2UgUlBSIGFuZCBub24tUlBSIHdpbmRvd3MKKy0tIGV2ZW4gaWYg dGhleSBzaGFyZSB0aGUgc2FtZSBiYXNlIGZyYW1lLgorLS0gVHdvIHdpbmRvd3Mgd2l0aCBzYW1l IE9SREVSIEJZOiBvbmUgUlBSLCBvbmUgbm9uLVJQUiAtPiBzZXBhcmF0ZSBXaW5kb3dBZ2cgbm9k ZXMKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVAorICAgIGNvdW50KCopIE9WRVIgd19ycHIg QVMgcnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVSIHdfbm9ybWFsIEFTIG5vcm1hbF9jbnQKK0ZS T00gcnByX2ludGVnCitXSU5ET1cKKyAgICB3X3JwciBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg IFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSksCisg ICAgd19ub3JtYWwgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAg IFdpbmRvdzogd19ub3JtYWwgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdp bmRvdzogd19ycHIgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgIC0+ ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg4IHJvd3MpCisKKy0tIFZlcmlmeSBib3RoIHByb2R1Y2Ug ZGlmZmVyZW50IHJlc3VsdHMKK1NFTEVDVAorICAgIGlkLCB2YWwsCisgICAgY291bnQoKikgT1ZF UiB3X3JwciBBUyBycHJfY250LAorICAgIGNvdW50KCopIE9WRVIgd19ub3JtYWwgQVMgbm9ybWFs X2NudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVworICAgIHdfcnByIEFTIChPUkRFUiBCWSBpZAor ICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2 YWwpKSwKKyAgICB3X25vcm1hbCBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorT1JERVIgQlkgaWQ7CisgaWQg fCB2YWwgfCBycHJfY250IHwgbm9ybWFsX2NudCAKKy0tLS0rLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorICAxIHwgIDEwIHwgICAgICAgMiB8ICAgICAgICAgMTAKKyAgMiB8ICAyMCB8ICAg ICAgIDAgfCAgICAgICAgICA5CisgIDMgfCAgMTUgfCAgICAgICAyIHwgICAgICAgICAgOAorICA0 IHwgIDI1IHwgICAgICAgMCB8ICAgICAgICAgIDcKKyAgNSB8ICAgNSB8ICAgICAgIDMgfCAgICAg ICAgICA2CisgIDYgfCAgMzAgfCAgICAgICAwIHwgICAgICAgICAgNQorICA3IHwgIDM1IHwgICAg ICAgMCB8ICAgICAgICAgIDQKKyAgOCB8ICAyMCB8ICAgICAgIDMgfCAgICAgICAgICAzCisgIDkg fCAgNDAgfCAgICAgICAwIHwgICAgICAgICAgMgorIDEwIHwgIDQ1IHwgICAgICAgMCB8ICAgICAg ICAgIDEKKygxMCByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEE0LiBXaW5kb3cgZGVkdXAgcHJldmVudGlv biAocGFyc2VyKQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbCgpIG11c3Qgbm90 IG1lcmdlIHR3byBSUFIgd2luZG93cyB3aXRoIGRpZmZlcmVudCBERUZJTkUuCistLSBUd28gUlBS IHdpbmRvd3M6IHNhbWUgUEFUVEVSTiBzdHJ1Y3R1cmUsIGRpZmZlcmVudCBERUZJTkUgY29uZGl0 aW9ucy4KKy0tIEVYUExBSU46IG11c3Qgc2hvdyB0d28gc2VwYXJhdGUgV2luZG93QWdnIG5vZGVz CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QKKyAgICBjb3VudCgqKSBPVkVSIHcxIEFTIGNu dF91cCwKKyAgICBjb3VudCgqKSBPVkVSIHcyIEFTIGNudF9kb3duCitGUk9NIHJwcl9pbnRlZwor V0lORE9XCisgICAgdzEgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQor ICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpLAorICAgIHcyIEFTIChPUkRFUiBC WSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsIDwg UFJFVih2YWwpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3MiBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg UGF0dGVybjogYSBiKworICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgV2luZG93OiB3MSBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAg ICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9p bnRlZworKDkgcm93cykKKworLS0gVmVyaWZ5IHJlc3VsdHMgZGlmZmVyCitTRUxFQ1QKKyAgICBp ZCwgdmFsLAorICAgIGNvdW50KCopIE9WRVIgdzEgQVMgY250X3VwLAorICAgIGNvdW50KCopIE9W RVIgdzIgQVMgY250X2Rvd24KK0ZST00gcnByX2ludGVnCitXSU5ET1cKKyAgICB3MSBBUyAoT1JE RVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZh bCA+IFBSRVYodmFsKSksCisgICAgdzIgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJO IChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPCBQUkVWKHZhbCkpCitPUkRFUiBCWSBp ZDsKKyBpZCB8IHZhbCB8IGNudF91cCB8IGNudF9kb3duIAorLS0tLSstLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tCisgIDEgfCAgMTAgfCAgICAgIDIgfCAgICAgICAgMAorICAyIHwgIDIwIHwgICAg ICAwIHwgICAgICAgIDIKKyAgMyB8ICAxNSB8ICAgICAgMiB8ICAgICAgICAwCisgIDQgfCAgMjUg fCAgICAgIDAgfCAgICAgICAgMgorICA1IHwgICA1IHwgICAgICAzIHwgICAgICAgIDAKKyAgNiB8 ICAzMCB8ICAgICAgMCB8ICAgICAgICAwCisgIDcgfCAgMzUgfCAgICAgIDAgfCAgICAgICAgMgor ICA4IHwgIDIwIHwgICAgICAzIHwgICAgICAgIDAKKyAgOSB8ICA0MCB8ICAgICAgMCB8ICAgICAg ICAwCisgMTAgfCAgNDUgfCAgICAgIDAgfCAgICAgICAgMAorKDEwIHJvd3MpCisKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gQTUuIFVudXNlZCB3aW5kb3cgcmVtb3ZhbCBwcmV2ZW50aW9uCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIHJlbW92 ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0cygpIG11c3Qgbm90IHJlbW92ZSBSUFIgd2luZG93IGZ1 bmN0aW9ucworLS0gZXZlbiB3aGVuIHRoZWlyIG91dHB1dCBjb2x1bW5zIGFyZSBub3QgcmVmZXJl bmNlZCBieSB0aGUgb3V0ZXIgcXVlcnkuCistLSBSUFIgd2luZG93IG91dHB1dCBub3QgZGlyZWN0 bHkgcmVmZXJlbmNlZCwgYnV0IHBhdHRlcm4gbWF0Y2hpbmcgbXVzdCBzdGlsbCBleGVjdXRlCitT RUxFQ1QgY291bnQoKikgRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBGUk9NIHJw cl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAg ICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQ7CisgY291bnQgCistLS0tLS0tCisg ICAgMTAKKygxIHJvdykKKworLS0gV2l0aCBQUkVWIGluIERFRklORTogd2luZG93IG11c3QgYmUg cHJlc2VydmVkCitTRUxFQ1QgY291bnQoKiksIHN1bShjKSBGUk9NICgKKyAgICBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3IEFTIGMgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAg ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2YWwpKQor KSB0OworIGNvdW50IHwgc3VtIAorLS0tLS0tLSstLS0tLQorICAgIDEwIHwgICA2CisoMSByb3cp CisKKy0tIFdpdGhvdXQgUFJFViBidXQgd2l0aCBERUZJTkU6IHdpbmRvdyBtdXN0IHN0aWxsIGJl IHByZXNlcnZlZAorU0VMRUNUIGNvdW50KCopLCBzdW0oYykgRlJPTSAoCisgICAgU0VMRUNUIGNv dW50KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIFRSVUUpCispIHQ7CisgY291 bnQgfCBzdW0gCistLS0tLS0tKy0tLS0tCisgICAgMTAgfCAgMTAKKygxIHJvdykKKworLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBBNi4gSW52ZXJzZSB0cmFuc2l0aW9uIGJ5cGFzcworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBSUFIgd2luZG93 cyBtdXN0IG5vdCB1c2UgbW92aW5nIGFnZ3JlZ2F0ZSAoaW52ZXJzZSB0cmFuc2l0aW9uKSBvcHRp bWl6YXRpb24uCistLSBNb3ZpbmcgYWdncmVnYXRlcyByZWNhbGN1bGF0ZSBieSBzdWJ0cmFjdGlu ZyBsZWF2aW5nIHJvd3MsIGJ1dCBSUFIncworLS0gcmVkdWNlZCBmcmFtZXMgbWFrZSB0aGlzIGlu dmFsaWQuCistLSBzdW0oKSBzdXBwb3J0cyBpbnZlcnNlIHRyYW5zaXRpb24uIFdpdGggUlBSLCBp dCBtdXN0IG5vdCBiZSB1c2VkLgorLS0gVmVyaWZ5IGNvcnJlY3RuZXNzOiBzdW0gd2l0aCBSUFIg cGF0dGVybiBtYXRjaGluZworU0VMRUNUIGlkLCB2YWwsCisgICAgc3VtKHZhbCkgT1ZFUiB3IEFT IHBhdHRlcm5fc3VtCitGUk9NIHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBC WSBpZDsKKyBpZCB8IHZhbCB8IHBhdHRlcm5fc3VtIAorLS0tLSstLS0tLSstLS0tLS0tLS0tLS0t CisgIDEgfCAgMTAgfCAgICAgICAgICAzMAorICAyIHwgIDIwIHwgICAgICAgICAgICAKKyAgMyB8 ICAxNSB8ICAgICAgICAgIDQwCisgIDQgfCAgMjUgfCAgICAgICAgICAgIAorICA1IHwgICA1IHwg ICAgICAgICAgNzAKKyAgNiB8ICAzMCB8ICAgICAgICAgICAgCisgIDcgfCAgMzUgfCAgICAgICAg ICAgIAorICA4IHwgIDIwIHwgICAgICAgICAxMDUKKyAgOSB8ICA0MCB8ICAgICAgICAgICAgCisg MTAgfCAgNDUgfCAgICAgICAgICAgIAorKDEwIHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTcuIENvc3Qg ZXN0aW1hdGlvbiBSUFIgYXdhcmVuZXNzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIGNvc3Rfd2luZG93YWdnKCkgbXVz dCBhY2NvdW50IGZvciBERUZJTkUgZXhwcmVzc2lvbiBldmFsdWF0aW9uIGNvc3QuCistLSBWZXJp ZnkgUlBSIFdpbmRvd0FnZyBjb3N0ID4gbm9uLVJQUiBXaW5kb3dBZ2cgY29zdC4KK0NSRUFURSBG VU5DVElPTiBnZXRfd2luZG93YWdnX2Nvc3QocXVlcnkgdGV4dCkgUkVUVVJOUyBudW1lcmljIEFT ICQkCitERUNMQVJFCisgICAgcGxhbiBqc29uOworICAgIGNvc3QgbnVtZXJpYzsKK0JFR0lOCisg ICAgRVhFQ1VURSAnRVhQTEFJTiAoRk9STUFUIEpTT04pICcgfHwgcXVlcnkgSU5UTyBwbGFuOwor ICAgIGNvc3QgOj0gKHBsYW4tPjAtPidQbGFuJy0+PidUb3RhbCBDb3N0Jyk6Om51bWVyaWM7Cisg ICAgUkVUVVJOIGNvc3Q7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGdldF93 aW5kb3dhZ2dfY29zdCgKKyAgICAnU0VMRUNUIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9pbnRl ZworICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgICAgICBQQVRURVJOIChBIEIr IEMrKSBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCksIEMgQVMgdmFsIDwgUFJFVih2YWwpKScp CisgICAgPgorICAgIGdldF93aW5kb3dhZ2dfY29zdCgKKyAgICAnU0VMRUNUIGNvdW50KCopIE9W RVIgdyBGUk9NIHJwcl9pbnRlZworICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKScpCisgICAgQVMgcnBy X2Nvc3RfaXNfaGlnaGVyOworIHJwcl9jb3N0X2lzX2hpZ2hlciAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tCisgdAorKDEgcm93KQorCitEUk9QIEZVTkNUSU9OIGdldF93aW5kb3dhZ2dfY29zdCh0ZXh0 KTsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gQTguIFN1YnF1ZXJ5IGZsYXR0ZW5pbmcgcHJldmVudGlvbgorLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBpc19zaW1wbGVfc3VicXVlcnkoKSBwcmV2ZW50cyBwdWxsdXAgb2Ygc3VicXVlcmllcyB3 aXRoIHdpbmRvdyBmdW5jdGlvbnMuCistLSBSUFIgc3VicXVlcnkgbXVzdCBub3QgYmUgZmxhdHRl bmVkIGludG8gdGhlIG91dGVyIHF1ZXJ5LgorLS0gRVhQTEFJTiBtdXN0IHNob3cgU3VicXVlcnkg U2NhbiAobm90IGZsYXR0ZW5lZCkuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9N ICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00g cnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJO IChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHN1YgorV0hF UkUgY250ID4gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24gc3Vi CisgICBGaWx0ZXI6IChzdWIuY250ID4gMCkKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAg ICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtleTogcnByX2ludGVnLmlkCisgICAg ICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoOCByb3dzKQorCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIEE5LiBERUZJTkUgZXhwcmVzc2lvbiBub24tcHJvcGFnYXRpb24KKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gREVG SU5FIGV4cHJlc3Npb25zIG11c3Qgbm90IGFwcGVhciBpbiB1cHBlciBXaW5kb3dBZ2cncyB0YXJn ZXRsaXN0LgorLS0gT25seSBWYXIgbm9kZXMgc2hvdWxkIGJlIHByb3BhZ2F0ZWQsIG5vdCB0aGUg ZnVsbCBERUZJTkUgZXhwcmVzc2lvbi4KKy0tIEVYUExBSU4gVkVSQk9TRTogb3V0ZXIgV2luZG93 QWdnIG91dHB1dCBtdXN0IE5PVCBjb250YWluIERFRklORSBleHByZXNzaW9uLgorRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUCisgICAgY291bnQoKikgT1ZFUiB3X3JwciBBUyBy cHJfY250LAorICAgIGNvdW50KCopIE9WRVIgd19ub3JtYWwgQVMgbm9ybWFsX2NudAorRlJPTSBy cHJfaW50ZWcKK1dJTkRPVworICAgIHdfcnByIEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFU VEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSwKKyAgICB3 X25vcm1hbCBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnCisgICBPdXRwdXQ6IChjb3VudCgqKSBPVkVSIHdfcnByKSwgY291bnQoKikg T1ZFUiB3X25vcm1hbCwgaWQsIHZhbAorICAgV2luZG93OiB3X25vcm1hbCBBUyAoT1JERVIgQlkg cnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIE91dHB1dDogaWQsIHZhbCwgY291bnQo KikgT1ZFUiB3X3JwcgorICAgICAgICAgV2luZG93OiB3X3JwciBBUyAoT1JERVIgQlkgcnByX2lu dGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAg ICBPdXRwdXQ6IGlkLCB2YWwKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcuaWQK KyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMucnByX2ludGVnCisgICAgICAg ICAgICAgICAgICAgICBPdXRwdXQ6IGlkLCB2YWwKKygxMiByb3dzKQorCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEEx MC4gUlBSICsgTElNSVQKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gTElNSVQgbXVzdCBub3QgaW50ZXJmZXJlIHdpdGgg UlBSIHBhdHRlcm4gbWF0Y2hpbmcuCistLSBUaGUgcmVzdWx0IHNob3VsZCBiZSBhIHByZWZpeCBv ZiB0aGUgdW5saW1pdGVkIHF1ZXJ5LgorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK09SREVSIEJZIGlkCitM SU1JVCA1OworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwg ICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1IHwgICAwCisg IDUgfCAgIDUgfCAgIDMKKyg1IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQjEuIFJQUiArIENURQorLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBDVEUgd2l0aCBSUFIsIG91dGVyIHF1ZXJ5IGFnZ3JlZ2F0ZXMKK1dJVEggcnByX3Jl c3VsdCBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAg ICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAg UEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKQor U0VMRUNUIGNvdW50KCopIEFTIHRvdGFsX3Jvd3MsCisgICAgICAgY291bnQoKikgRklMVEVSIChX SEVSRSBjbnQgPiAwKSBBUyBtYXRjaGVkX3Jvd3MsCisgICAgICAgbWF4KGNudCkgQVMgbWF4X21h dGNoX2xlbgorRlJPTSBycHJfcmVzdWx0OworIHRvdGFsX3Jvd3MgfCBtYXRjaGVkX3Jvd3MgfCBt YXhfbWF0Y2hfbGVuIAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgMTAgfCAgICAgICAgICAgIDQgfCAgICAgICAgICAgICAzCisoMSByb3cpCisK Ky0tIE11bHRpcGxlIENURSByZWZlcmVuY2VzCitXSVRIIHJwcl9yZXN1bHQgQVMgKAorICAgIFNF TEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcK KyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisg ICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykKK1NFTEVDVCByMS5pZCwgcjEu Y250CitGUk9NIHJwcl9yZXN1bHQgcjEKK0pPSU4gcnByX3Jlc3VsdCByMiBPTiByMS5pZCA9IHIy LmlkIEFORCByMS5jbnQgPSByMi5jbnQKK1dIRVJFIHIxLmNudCA+IDAKK09SREVSIEJZIHIxLmlk OworIGlkIHwgY250IAorLS0tLSstLS0tLQorICAxIHwgICAyCisgIDMgfCAgIDIKKyAgNSB8ICAg MworICA4IHwgICAzCisoNCByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEIyLiBSUFIgKyBKT0lOCistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KK0NSRUFURSBUQUJMRSBycHJfaW50ZWcyIChpZCBJTlQsIGxhYmVsIFRFWFQpOworSU5TRVJU IElOVE8gcnByX2ludGVnMiBWQUxVRVMKKyAgICAoMSwgJ2EnKSwgKDIsICdiJyksICgzLCAnYycp LCAoNCwgJ2QnKSwgKDUsICdlJyksCisgICAgKDYsICdmJyksICg3LCAnZycpLCAoOCwgJ2gnKSwg KDksICdpJyksICgxMCwgJ2onKTsKKy0tIFJQUiBzdWJxdWVyeSBqb2luZWQgd2l0aCBhbm90aGVy IHRhYmxlCitTRUxFQ1Qgci5pZCwgci5jbnQsIGoubGFiZWwKK0ZST00gKAorICAgIFNFTEVDVCBp ZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJ TkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK0pPSU4gcnByX2ludGVnMiBqIE9OIHIuaWQg PSBqLmlkCitXSEVSRSByLmNudCA+IDAKK09SREVSIEJZIHIuaWQ7CisgaWQgfCBjbnQgfCBsYWJl bCAKKy0tLS0rLS0tLS0rLS0tLS0tLQorICAxIHwgICAyIHwgYQorICAzIHwgICAyIHwgYworICA1 IHwgICAzIHwgZQorICA4IHwgICAzIHwgaAorKDQgcm93cykKKworLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCMy4gUlBS ICsgU2V0IG9wZXJhdGlvbnMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVU5JT04gb2YgUlBSIGFuZCBub24tUlBSIHJl c3VsdHMKK1NFTEVDVCBpZCwgY250LCAncnByJyBBUyBzb3VyY2UgRlJPTSAoCisgICAgU0VMRUNU IGlkLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdCBXSEVSRSBjbnQgPiAwCitVTklPTiBBTEwK K1NFTEVDVCBpZCwgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQpIEFTIGNudCwgJ25vcm1hbCcg QVMgc291cmNlCitGUk9NIHJwcl9pbnRlZworT1JERVIgQlkgc291cmNlLCBpZDsKKyBpZCB8IGNu dCB8IHNvdXJjZSAKKy0tLS0rLS0tLS0rLS0tLS0tLS0KKyAgMSB8ICAgMSB8IG5vcm1hbAorICAy IHwgICAyIHwgbm9ybWFsCisgIDMgfCAgIDMgfCBub3JtYWwKKyAgNCB8ICAgNCB8IG5vcm1hbAor ICA1IHwgICA1IHwgbm9ybWFsCisgIDYgfCAgIDYgfCBub3JtYWwKKyAgNyB8ICAgNyB8IG5vcm1h bAorICA4IHwgICA4IHwgbm9ybWFsCisgIDkgfCAgIDkgfCBub3JtYWwKKyAxMCB8ICAxMCB8IG5v cm1hbAorICAxIHwgICAyIHwgcnByCisgIDMgfCAgIDIgfCBycHIKKyAgNSB8ICAgMyB8IHJwcgor ICA4IHwgICAzIHwgcnByCisoMTQgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCNC4gUlBSICsgUHJlcGFy ZWQgc3RhdGVtZW50cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBQbGFuIGNhY2hpbmcgbXVzdCBjb3JyZWN0bHkgc2Vy aWFsaXplL2Rlc2VyaWFsaXplIFJQUiBmaWVsZHMKK1BSRVBBUkUgcnByX3ByZXAgQVMKK1NFTEVD VCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9pbnRlZworV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwg PiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKy0tIEZpcnN0IGV4ZWN1dGlvbiAoY3VzdG9tIHBs YW4pCitFWEVDVVRFIHJwcl9wcmVwOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0t LQorICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0 IHwgIDI1IHwgICAwCisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1 IHwgICAwCisgIDggfCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAw CisoMTAgcm93cykKKworLS0gU3Vic2VxdWVudCBleGVjdXRpb25zIChtYXkgdXNlIGNhY2hlZCBw bGFuKQorRVhFQ1VURSBycHJfcHJlcDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0t LS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDIKKyAg NCB8ICAyNSB8ICAgMAorICA1IHwgICA1IHwgICAzCisgIDYgfCAgMzAgfCAgIDAKKyAgNyB8ICAz NSB8ICAgMAorICA4IHwgIDIwIHwgICAzCisgIDkgfCAgNDAgfCAgIDAKKyAxMCB8ICA0NSB8ICAg MAorKDEwIHJvd3MpCisKK0VYRUNVVEUgcnByX3ByZXA7CisgaWQgfCB2YWwgfCBjbnQgCistLS0t Ky0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1 IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworICA2IHwgIDMwIHwgICAw CisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAgMworICA5IHwgIDQwIHwgICAwCisgMTAg fCAgNDUgfCAgIDAKKygxMCByb3dzKQorCitFWEVDVVRFIHJwcl9wcmVwOworIGlkIHwgdmFsIHwg Y250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAK KyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1IHwgICAwCisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8 ICAzMCB8ICAgMAorICA3IHwgIDM1IHwgICAwCisgIDggfCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8 ICAgMAorIDEwIHwgIDQ1IHwgICAwCisoMTAgcm93cykKKworRVhFQ1VURSBycHJfcHJlcDsKKyBp ZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwg IDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDIKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgICA1IHwg ICAzCisgIDYgfCAgMzAgfCAgIDAKKyAgNyB8ICAzNSB8ICAgMAorICA4IHwgIDIwIHwgICAzCisg IDkgfCAgNDAgfCAgIDAKKyAxMCB8ICA0NSB8ICAgMAorKDEwIHJvd3MpCisKK0VYRUNVVEUgcnBy X3ByZXA7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAg IDIKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAg NSB8ICAgNSB8ICAgMworICA2IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAy MCB8ICAgMworICA5IHwgIDQwIHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCist LSBWZXJpZnkgY2FjaGVkIHBsYW4gcHJvZHVjZXMgc2FtZSByZXN1bHQKK0VYRUNVVEUgcnByX3By ZXA7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIK KyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8 ICAgNSB8ICAgMworICA2IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8 ICAgMworICA5IHwgIDQwIHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCitERUFM TE9DQVRFIHJwcl9wcmVwOworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCNS4gUlBSICsgUGFydGl0aW9uZWQgdGFibGUK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gUlBSIHBhdHRlcm4gbWF0Y2hpbmcgbXVzdCB3b3JrIGNvcnJlY3RseSBhY3Jv c3MgcGFydGl0aW9ucy4KK0NSRUFURSBUQUJMRSBycHJfcGFydCAoaWQgSU5ULCB2YWwgSU5UKSBQ QVJUSVRJT04gQlkgUkFOR0UgKGlkKTsKK0NSRUFURSBUQUJMRSBycHJfcGFydF8xIFBBUlRJVElP TiBPRiBycHJfcGFydCBGT1IgVkFMVUVTIEZST00gKDEpIFRPICg2KTsKK0NSRUFURSBUQUJMRSBy cHJfcGFydF8yIFBBUlRJVElPTiBPRiBycHJfcGFydCBGT1IgVkFMVUVTIEZST00gKDYpIFRPICgx MSk7CitJTlNFUlQgSU5UTyBycHJfcGFydCBTRUxFQ1QgaWQsIHZhbCBGUk9NIHJwcl9pbnRlZzsK Ky0tIFNhbWUgcXVlcnkgb24gcGFydGl0aW9uZWQgdnMgbm9uLXBhcnRpdGlvbmVkIHNob3VsZCBw cm9kdWNlIGlkZW50aWNhbCByZXN1bHRzCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfcGFydAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsK KyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAy IHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDIKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgICA1 IHwgICAzCisgIDYgfCAgMzAgfCAgIDAKKyAgNyB8ICAzNSB8ICAgMAorICA4IHwgIDIwIHwgICAz CisgIDkgfCAgNDAgfCAgIDAKKyAxMCB8ICA0NSB8ICAgMAorKDEwIHJvd3MpCisKKy0tIEVYUExB SU46IEFwcGVuZCB1bmRlciBTb3J0IHVuZGVyIFdpbmRvd0FnZworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9wYXJ0CitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFs KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9w YXJ0LmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgIFBhdHRlcm46IGEgYisKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogcnByX3Bh cnQuaWQKKyAgICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBycHJfcGFydF8xCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BhcnRfMgor KDggcm93cykKKworRFJPUCBUQUJMRSBycHJfcGFydDsKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQjYuIFJQUiArIExB VEVSQUwKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gUlBSIGluc2lkZSBhIExBVEVSQUwgc3VicXVlcnkuICBRdWFsaWZp ZWQgY29sdW1uIHJlZmVyZW5jZXMgZnJvbSB0aGUKKy0tIG91dGVyIHF1ZXJ5IGFyZSBub3QgeWV0 IHN1cHBvcnRlZCBpbiBERUZJTkUsIHNvIHRoaXMgdGVzdHMgdGhlIGJhc2ljCistLSBjYXNlIHdo ZXJlIExBVEVSQUwgcHJvdmlkZXMgZmlsdGVyaW5nIGJ1dCBERUZJTkUgdXNlcyBvbmx5IGxvY2Fs IGNvbHVtbnMuCitTRUxFQ1Qgby5pZCBBUyBvdXRlcl9pZCwgci5pZCwgci5jbnQKK0ZST00gcnBy X2ludGVnIG8sCitMQVRFUkFMICgKKyAgICBTRUxFQ1QgaWQsIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdIRVJFIGlkIDw9IG8uaWQKKyAgICBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgcgorV0hFUkUgci5jbnQgPiAwIEFORCBvLmlkIElO ICg1LCAxMCkKK09SREVSIEJZIG8uaWQsIHIuaWQ7Cisgb3V0ZXJfaWQgfCBpZCB8IGNudCAKKy0t LS0tLS0tLS0rLS0tLSstLS0tLQorICAgICAgICA1IHwgIDEgfCAgIDIKKyAgICAgICAgNSB8ICAz IHwgICAyCisgICAgICAgMTAgfCAgMSB8ICAgMgorICAgICAgIDEwIHwgIDMgfCAgIDIKKyAgICAg ICAxMCB8ICA1IHwgICAzCisgICAgICAgMTAgfCAgOCB8ICAgMworKDYgcm93cykKKworLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBCNy4gUlBSICsgUmVjdXJzaXZlIENURQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBSUFIgYXBwbGllZCB0byBy ZXN1bHRzIG9mIGEgcmVjdXJzaXZlIENURS4KK1dJVEggUkVDVVJTSVZFIHNlcSBBUyAoCisgICAg U0VMRUNUIDEgQVMgaWQsIDEwIEFTIHZhbAorICAgIFVOSU9OIEFMTAorICAgIFNFTEVDVCBpZCAr IDEsIHZhbCArIChDQVNFIFdIRU4gaWQgJSAzID0gMCBUSEVOIC0xNSBFTFNFIDEwIEVORCkKKyAg ICBGUk9NIHNlcSBXSEVSRSBpZCA8IDEwCispCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBzZXEKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JERVIgQlkgaWQ7Cisg aWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDMKKyAgMiB8 ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgMTUgfCAgIDMKKyAgNSB8ICAyNSB8 ICAgMAorICA2IHwgIDM1IHwgICAwCisgIDcgfCAgMjAgfCAgIDMKKyAgOCB8ICAzMCB8ICAgMAor ICA5IHwgIDQwIHwgICAwCisgMTAgfCAgMjUgfCAgIDAKKygxMCByb3dzKQorCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IEI4LiBSUFIgKyBJbmNyZW1lbnRhbCBzb3J0CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEluY3JlbWVudGFsIHNvcnQg bWF5IGJlIHVzZWQgd2hlbiBkYXRhIGlzIHBhcnRpYWxseSBzb3J0ZWQuCitDUkVBVEUgSU5ERVgg cnByX2ludGVnX2lkX2lkeCBPTiBycHJfaW50ZWcgKGlkKTsKK1NFVCBlbmFibGVfc2Vxc2NhbiA9 IG9mZjsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVS IHcgQVMgY250CitGUk9NIHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIrCisgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBycHJfaW50ZWdfaWRfaWR4IG9uIHJwcl9pbnRlZworKDQgcm93cykKKworU0VMRUNUIGlkLCB2 YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYo dmFsKSkKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQor ICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwg IDI1IHwgICAwCisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwg ICAwCisgIDggfCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAwCiso MTAgcm93cykKKworUkVTRVQgZW5hYmxlX3NlcXNjYW47CitEUk9QIElOREVYIHJwcl9pbnRlZ19p ZF9pZHg7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIEI5LiBSUFIgKyBWb2xhdGlsZSBmdW5jdGlvbiBpbiBERUZJTkUK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gVm9sYXRpbGUgZnVuY3Rpb25zIG11c3QgYmUgZXZhbHVhdGVkIHBlci1yb3cs IG5vdCBvcHRpbWl6ZWQgYXdheS4KK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMg Y250CitGUk9NIHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkgQU5EIHJhbmRvbSgpID49IDAu MCkKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAx IHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1 IHwgICAwCisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwgICAw CisgIDggfCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAwCisoMTAg cm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBCMTAuIFJQUiArIENvcnJlbGF0ZWQgc3VicXVlcnkgaW4gV0hF UkUKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gUlBSIHdpbmRvdyBpbiBhIGNvcnJlbGF0ZWQgc3VicXVlcnkuICBERUZJ TkUgcmVmZXJlbmNlcyBvbmx5IGxvY2FsCistLSBjb2x1bW5zIChubyBxdWFsaWZpZWQgcmVmcyks IHdoaWxlIGNvcnJlbGF0aW9uIGlzIGluIFdIRVJFLgorU0VMRUNUIG8uaWQsIG8udmFsLAorICAg IChTRUxFQ1QgY291bnQoKikgT1ZFUiB3CisgICAgIEZST00gcnByX2ludGVnIGkKKyAgICAgV0hF UkUgaS5pZCA8PSBvLmlkCisgICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICBQQVRURVJOIChBIEIrKQorICAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQor ICAgICBPUkRFUiBCWSBpZAorICAgICBMSU1JVCAxKSBBUyBmaXJzdF9jbnQKK0ZST00gcnByX2lu dGVnIG8KK09SREVSIEJZIG8uaWQ7CisgaWQgfCB2YWwgfCBmaXJzdF9jbnQgCistLS0tKy0tLS0t Ky0tLS0tLS0tLS0tCisgIDEgfCAgMTAgfCAgICAgICAgIDAKKyAgMiB8ICAyMCB8ICAgICAgICAg MgorICAzIHwgIDE1IHwgICAgICAgICAyCisgIDQgfCAgMjUgfCAgICAgICAgIDIKKyAgNSB8ICAg NSB8ICAgICAgICAgMgorICA2IHwgIDMwIHwgICAgICAgICAyCisgIDcgfCAgMzUgfCAgICAgICAg IDIKKyAgOCB8ICAyMCB8ICAgICAgICAgMgorICA5IHwgIDQwIHwgICAgICAgICAyCisgMTAgfCAg NDUgfCAgICAgICAgIDIKKygxMCByb3dzKQorCistLSBDbGVhbnVwCitEUk9QIFRBQkxFIHJwcl9p bnRlZzsKK0RST1AgVEFCTEUgcnByX2ludGVnMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl CmluZGV4IDZhMmQxOWQ0NDEwLi5kYmZhM2U4ZjJjYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlCkBAIC0xMDcsNyArMTA3LDcgQEAgdGVzdDogc2VsZWN0X3ZpZXdzIHBvcnRhbHNfcDIg Zm9yZWlnbl9rZXkgY2x1c3RlciBkZXBlbmRlbmN5IGd1YyBiaXRtYXBvcHMgY29tYm8KICMgLS0t LS0tLS0tLQogIyBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiB0ZXN0cwogIyAtLS0tLS0tLS0tCi10 ZXN0OiBycHIgcnByX2Jhc2UgcnByX2V4cGxhaW4gcnByX25mYQordGVzdDogcnByIHJwcl9iYXNl IHJwcl9leHBsYWluIHJwcl9uZmEgcnByX2ludGVncmF0aW9uCiAKICMgLS0tLS0tLS0tLQogIyBB bm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzIChKU09OIHJlbGF0ZWQpCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uMmFlNDJjOTJhMjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsCkBAIC0wLDAgKzEsNTM3IEBACistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IFJQUiBJbnRlZ3JhdGlvbiBUZXN0cworLS0gUGxhbm5lciBvcHRpbWl6YXRpb24gaW50ZXJhY3Rp b24gdGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tCistLSBWZXJp ZmllcyB0aGF0IGVhY2ggcGxhbm5lciBvcHRpbWl6YXRpb24gY29ycmVjdGx5IGhhbmRsZXMgUlBS IHdpbmRvd3MuCistLSBFdmVuIGlmIGluZGl2aWR1YWwgb3B0aW1pemF0aW9ucyBhcmUgdGVzdGVk IGVsc2V3aGVyZSwgdGhpcyBmaWxlCistLSBwcm92aWRlcyBhIHNpbmdsZSBjaGVja3BvaW50IGZv ciBhbGwgcGxhbm5lci9SUFIgaW50ZXJhY3Rpb25zLgorLS0KKy0tIEEuIFBsYW5uZXIgT3B0aW1p emF0aW9uIFByb3RlY3Rpb24gVGVzdHMKKy0tICAgIEExLiBGcmFtZSBvcHRpbWl6YXRpb24gYnlw YXNzCistLSAgICBBMi4gUnVuIGNvbmRpdGlvbiBwdXNoZG93biBieXBhc3MKKy0tICAgIEEzLiBX aW5kb3cgZGVkdXAgcHJldmVudGlvbiAocGxhbm5lcikKKy0tICAgIEE0LiBXaW5kb3cgZGVkdXAg cHJldmVudGlvbiAocGFyc2VyKQorLS0gICAgQTUuIFVudXNlZCB3aW5kb3cgcmVtb3ZhbCBwcmV2 ZW50aW9uCistLSAgICBBNi4gSW52ZXJzZSB0cmFuc2l0aW9uIGJ5cGFzcworLS0gICAgQTcuIENv c3QgZXN0aW1hdGlvbiBSUFIgYXdhcmVuZXNzCistLSAgICBBOC4gU3VicXVlcnkgZmxhdHRlbmlu ZyBwcmV2ZW50aW9uCistLSAgICBBOS4gREVGSU5FIGV4cHJlc3Npb24gbm9uLXByb3BhZ2F0aW9u CistLSAgICBBMTAuIFJQUiArIExJTUlUCistLQorLS0gQi4gSW50ZWdyYXRpb24gU2NlbmFyaW8g VGVzdHMKKy0tICAgIEIxLiBSUFIgKyBDVEUKKy0tICAgIEIyLiBSUFIgKyBKT0lOCistLSAgICBC My4gUlBSICsgU2V0IG9wZXJhdGlvbnMKKy0tICAgIEI0LiBSUFIgKyBQcmVwYXJlZCBzdGF0ZW1l bnRzCistLSAgICBCNS4gUlBSICsgUGFydGl0aW9uZWQgdGFibGUKKy0tICAgIEI2LiBSUFIgKyBM QVRFUkFMCistLSAgICBCNy4gUlBSICsgUmVjdXJzaXZlIENURQorLS0gICAgQjguIFJQUiArIElu Y3JlbWVudGFsIHNvcnQKKy0tICAgIEI5LiBSUFIgKyBWb2xhdGlsZSBmdW5jdGlvbiBpbiBERUZJ TkUKKy0tICAgIEIxMC4gUlBSICsgQ29ycmVsYXRlZCBzdWJxdWVyeQorLS0KKworQ1JFQVRFIFRB QkxFIHJwcl9pbnRlZyAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9pbnRlZyBW QUxVRVMKKyAgICAoMSwgMTApLCAoMiwgMjApLCAoMywgMTUpLCAoNCwgMjUpLCAoNSwgNSksCisg ICAgKDYsIDMwKSwgKDcsIDM1KSwgKDgsIDIwKSwgKDksIDQwKSwgKDEwLCA0NSk7CisKKy0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0gQTEuIEZyYW1lIG9wdGltaXphdGlvbiBieXBhc3MKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gb3B0aW1pemVf d2luZG93X2NsYXVzZXMoKSBtdXN0IG5vdCBhcHBseSBmcmFtZSBvcHRpbWl6YXRpb24gdG8gUlBS IHdpbmRvd3MuCistLSBOb24tUlBSOiBmcmFtZSBpcyBvcHRpbWl6ZWQgKFJBTkdFIC0+IFJPV1Mg Y29udmVyc2lvbiwgZXRjLikKKy0tIFJQUjogZnJhbWUgbXVzdCBzdGF5IGFzIHNwZWNpZmllZCAo Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorCistLSBO b24tUlBSIHdpbmRvdyB3aXRoIGRlZmF1bHQgZnJhbWUgLT4gZnJhbWUgb3B0aW1pemF0aW9uIGFw cGxpZWQKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBy cHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCk7CisKKy0tIFJQUiB3aW5kb3cgLT4g ZnJhbWUgb3B0aW1pemF0aW9uIG11c3QgTk9UIGNoYW5nZSB0aGUgZnJhbWUKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4g UFJFVih2YWwpKTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBBMi4gUnVuIGNvbmRpdGlvbiBwdXNoZG93biBieXBh c3MKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gZmluZF93aW5kb3dfcnVuX2NvbmRpdGlvbnMoKSBtdXN0IG5vdCBwdXNo IG1vbm90b25pYyBmaWx0ZXJzIGFzIFJ1biBDb25kaXRpb25zCistLSBmb3IgUlBSIHdpbmRvd3Ms IGJlY2F1c2UgUlBSIHJlc3VsdHMgYXJlIG1hdGNoLWRlcGVuZGVudCwgbm90IG1vbm90b25pYy4K KworLS0gTm9uLVJQUjogY291bnQoKikgPiAwIHB1c2hlZCBkb3duIGFzIFJ1biBDb25kaXRpb24K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorKSB0IFdIRVJFIGNudCA+IDA7CisKKy0tIFJQUjogY291bnQoKikgPiAwIG11 c3QgTk9UIGJlIHB1c2hlZCBkb3duIChhcHBlYXJzIGFzIEZpbHRlciwgbm90IFJ1biBDb25kaXRp b24pCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBB UyB2YWwgPiBQUkVWKHZhbCkpCispIHQgV0hFUkUgY250ID4gMDsKKworLS0gVmVyaWZ5IHJlc3Vs dHMgYXJlIGNvcnJlY3QKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBpZCwgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFT IHZhbCA+IFBSRVYodmFsKSkKKykgdCBXSEVSRSBjbnQgPiAwCitPUkRFUiBCWSBpZDsKKworLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBBMy4gV2luZG93IGRlZHVwIHByZXZlbnRpb24gKHBsYW5uZXIpCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IG9wdGltaXplX3dpbmRvd19jbGF1c2VzKCkgbXVzdCBub3QgbWVyZ2UgUlBSIGFuZCBub24tUlBS IHdpbmRvd3MKKy0tIGV2ZW4gaWYgdGhleSBzaGFyZSB0aGUgc2FtZSBiYXNlIGZyYW1lLgorCist LSBUd28gd2luZG93cyB3aXRoIHNhbWUgT1JERVIgQlk6IG9uZSBSUFIsIG9uZSBub24tUlBSIC0+ IHNlcGFyYXRlIFdpbmRvd0FnZyBub2RlcworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUCisg ICAgY291bnQoKikgT1ZFUiB3X3JwciBBUyBycHJfY250LAorICAgIGNvdW50KCopIE9WRVIgd19u b3JtYWwgQVMgbm9ybWFsX2NudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVworICAgIHdfcnByIEFT IChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIg QVMgdmFsID4gUFJFVih2YWwpKSwKKyAgICB3X25vcm1hbCBBUyAoT1JERVIgQlkgaWQKKyAgICAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKTsKKwor LS0gVmVyaWZ5IGJvdGggcHJvZHVjZSBkaWZmZXJlbnQgcmVzdWx0cworU0VMRUNUCisgICAgaWQs IHZhbCwKKyAgICBjb3VudCgqKSBPVkVSIHdfcnByIEFTIHJwcl9jbnQsCisgICAgY291bnQoKikg T1ZFUiB3X25vcm1hbCBBUyBub3JtYWxfY250CitGUk9NIHJwcl9pbnRlZworV0lORE9XCisgICAg d19ycHIgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBE RUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpLAorICAgIHdfbm9ybWFsIEFTIChPUkRFUiBCWSBp ZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCitPUkRFUiBCWSBpZDsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBNC4gV2luZG93IGRlZHVwIHByZXZlbnRp b24gKHBhcnNlcikKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoKSBtdXN0IG5v dCBtZXJnZSB0d28gUlBSIHdpbmRvd3Mgd2l0aCBkaWZmZXJlbnQgREVGSU5FLgorLS0gVHdvIFJQ UiB3aW5kb3dzOiBzYW1lIFBBVFRFUk4gc3RydWN0dXJlLCBkaWZmZXJlbnQgREVGSU5FIGNvbmRp dGlvbnMuCisKKy0tIEVYUExBSU46IG11c3Qgc2hvdyB0d28gc2VwYXJhdGUgV2luZG93QWdnIG5v ZGVzCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QKKyAgICBjb3VudCgqKSBPVkVSIHcxIEFT IGNudF91cCwKKyAgICBjb3VudCgqKSBPVkVSIHcyIEFTIGNudF9kb3duCitGUk9NIHJwcl9pbnRl ZworV0lORE9XCisgICAgdzEgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIr KQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpLAorICAgIHcyIEFTIChPUkRF UiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFs IDwgUFJFVih2YWwpKTsKKworLS0gVmVyaWZ5IHJlc3VsdHMgZGlmZmVyCitTRUxFQ1QKKyAgICBp ZCwgdmFsLAorICAgIGNvdW50KCopIE9WRVIgdzEgQVMgY250X3VwLAorICAgIGNvdW50KCopIE9W RVIgdzIgQVMgY250X2Rvd24KK0ZST00gcnByX2ludGVnCitXSU5ET1cKKyAgICB3MSBBUyAoT1JE RVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZh bCA+IFBSRVYodmFsKSksCisgICAgdzIgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJO IChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPCBQUkVWKHZhbCkpCitPUkRFUiBCWSBp ZDsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLSBBNS4gVW51c2VkIHdpbmRvdyByZW1vdmFsIHByZXZlbnRpb24KKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gcmVtb3ZlX3VudXNlZF9zdWJxdWVyeV9vdXRwdXRzKCkgbXVzdCBub3QgcmVtb3Zl IFJQUiB3aW5kb3cgZnVuY3Rpb25zCistLSBldmVuIHdoZW4gdGhlaXIgb3V0cHV0IGNvbHVtbnMg YXJlIG5vdCByZWZlcmVuY2VkIGJ5IHRoZSBvdXRlciBxdWVyeS4KKworLS0gUlBSIHdpbmRvdyBv dXRwdXQgbm90IGRpcmVjdGx5IHJlZmVyZW5jZWQsIGJ1dCBwYXR0ZXJuIG1hdGNoaW5nIG11c3Qg c3RpbGwgZXhlY3V0ZQorU0VMRUNUIGNvdW50KCopIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRU RVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0OworCist LSBXaXRoIFBSRVYgaW4gREVGSU5FOiB3aW5kb3cgbXVzdCBiZSBwcmVzZXJ2ZWQKK1NFTEVDVCBj b3VudCgqKSwgc3VtKGMpIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgYyBG Uk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQor ICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQ7CisKKy0tIFdpdGhvdXQg UFJFViBidXQgd2l0aCBERUZJTkU6IHdpbmRvdyBtdXN0IHN0aWxsIGJlIHByZXNlcnZlZAorU0VM RUNUIGNvdW50KCopLCBzdW0oYykgRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBB UyBjIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAo QSspCisgICAgICAgIERFRklORSBBIEFTIFRSVUUpCispIHQ7CisKKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTYuIElu dmVyc2UgdHJhbnNpdGlvbiBieXBhc3MKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUlBSIHdpbmRvd3MgbXVzdCBub3Qg dXNlIG1vdmluZyBhZ2dyZWdhdGUgKGludmVyc2UgdHJhbnNpdGlvbikgb3B0aW1pemF0aW9uLgor LS0gTW92aW5nIGFnZ3JlZ2F0ZXMgcmVjYWxjdWxhdGUgYnkgc3VidHJhY3RpbmcgbGVhdmluZyBy b3dzLCBidXQgUlBSJ3MKKy0tIHJlZHVjZWQgZnJhbWVzIG1ha2UgdGhpcyBpbnZhbGlkLgorCist LSBzdW0oKSBzdXBwb3J0cyBpbnZlcnNlIHRyYW5zaXRpb24uIFdpdGggUlBSLCBpdCBtdXN0IG5v dCBiZSB1c2VkLgorLS0gVmVyaWZ5IGNvcnJlY3RuZXNzOiBzdW0gd2l0aCBSUFIgcGF0dGVybiBt YXRjaGluZworU0VMRUNUIGlkLCB2YWwsCisgICAgc3VtKHZhbCkgT1ZFUiB3IEFTIHBhdHRlcm5f c3VtCitGUk9NIHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKwor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBBNy4gQ29zdCBlc3RpbWF0aW9uIFJQUiBhd2FyZW5lc3MKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g Y29zdF93aW5kb3dhZ2coKSBtdXN0IGFjY291bnQgZm9yIERFRklORSBleHByZXNzaW9uIGV2YWx1 YXRpb24gY29zdC4KKy0tIFZlcmlmeSBSUFIgV2luZG93QWdnIGNvc3QgPiBub24tUlBSIFdpbmRv d0FnZyBjb3N0LgorCitDUkVBVEUgRlVOQ1RJT04gZ2V0X3dpbmRvd2FnZ19jb3N0KHF1ZXJ5IHRl eHQpIFJFVFVSTlMgbnVtZXJpYyBBUyAkJAorREVDTEFSRQorICAgIHBsYW4ganNvbjsKKyAgICBj b3N0IG51bWVyaWM7CitCRUdJTgorICAgIEVYRUNVVEUgJ0VYUExBSU4gKEZPUk1BVCBKU09OKSAn IHx8IHF1ZXJ5IElOVE8gcGxhbjsKKyAgICBjb3N0IDo9IChwbGFuLT4wLT4nUGxhbictPj4nVG90 YWwgQ29zdCcpOjpudW1lcmljOworICAgIFJFVFVSTiBjb3N0OworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworU0VMRUNUIGdldF93aW5kb3dhZ2dfY29zdCgKKyAgICAnU0VMRUNUIGNvdW50 KCopIE9WRVIgdyBGUk9NIHJwcl9pbnRlZworICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgICAgICBQQVRURVJOIChBIEIrIEMrKSBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCks IEMgQVMgdmFsIDwgUFJFVih2YWwpKScpCisgICAgPgorICAgIGdldF93aW5kb3dhZ2dfY29zdCgK KyAgICAnU0VMRUNUIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9pbnRlZworICAgICBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKScpCisgICAgQVMgcnByX2Nvc3RfaXNfaGlnaGVyOworCitEUk9QIEZVTkNUSU9O IGdldF93aW5kb3dhZ2dfY29zdCh0ZXh0KTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBOC4gU3VicXVlcnkgZmxh dHRlbmluZyBwcmV2ZW50aW9uCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIGlzX3NpbXBsZV9zdWJxdWVyeSgpIHByZXZl bnRzIHB1bGx1cCBvZiBzdWJxdWVyaWVzIHdpdGggd2luZG93IGZ1bmN0aW9ucy4KKy0tIFJQUiBz dWJxdWVyeSBtdXN0IG5vdCBiZSBmbGF0dGVuZWQgaW50byB0aGUgb3V0ZXIgcXVlcnkuCistLSBF WFBMQUlOIG11c3Qgc2hvdyBTdWJxdWVyeSBTY2FuIChub3QgZmxhdHRlbmVkKS4KKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50 KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChP UkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMg dmFsID4gUFJFVih2YWwpKQorKSBzdWIKK1dIRVJFIGNudCA+IDA7CisKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTku IERFRklORSBleHByZXNzaW9uIG5vbi1wcm9wYWdhdGlvbgorLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBERUZJTkUgZXhw cmVzc2lvbnMgbXVzdCBub3QgYXBwZWFyIGluIHVwcGVyIFdpbmRvd0FnZydzIHRhcmdldGxpc3Qu CistLSBPbmx5IFZhciBub2RlcyBzaG91bGQgYmUgcHJvcGFnYXRlZCwgbm90IHRoZSBmdWxsIERF RklORSBleHByZXNzaW9uLgorLS0gRVhQTEFJTiBWRVJCT1NFOiBvdXRlciBXaW5kb3dBZ2cgb3V0 cHV0IG11c3QgTk9UIGNvbnRhaW4gREVGSU5FIGV4cHJlc3Npb24uCisKK0VYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikKK1NFTEVDVAorICAgIGNvdW50KCopIE9WRVIgd19ycHIgQVMgcnByX2Nu dCwKKyAgICBjb3VudCgqKSBPVkVSIHdfbm9ybWFsIEFTIG5vcm1hbF9jbnQKK0ZST00gcnByX2lu dGVnCitXSU5ET1cKKyAgICB3X3JwciBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4g KEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSksCisgICAgd19ub3Jt YWwgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORyk7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTEwLiBSUFIgKyBMSU1JVAorLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBMSU1JVCBtdXN0IG5vdCBpbnRlcmZlcmUgd2l0aCBSUFIgcGF0dGVybiBtYXRjaGlu Zy4KKy0tIFRoZSByZXN1bHQgc2hvdWxkIGJlIGEgcHJlZml4IG9mIHRoZSB1bmxpbWl0ZWQgcXVl cnkuCisKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9p bnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZAorTElNSVQgNTsKKworLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBCMS4gUlBSICsgQ1RFCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gQ1RFIHdpdGggUlBSLCBvdXRlciBxdWVy eSBhZ2dyZWdhdGVzCitXSVRIIHJwcl9yZXN1bHQgQVMgKAorICAgIFNFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBC IEFTIHZhbCA+IFBSRVYodmFsKSkKKykKK1NFTEVDVCBjb3VudCgqKSBBUyB0b3RhbF9yb3dzLAor ICAgICAgIGNvdW50KCopIEZJTFRFUiAoV0hFUkUgY250ID4gMCkgQVMgbWF0Y2hlZF9yb3dzLAor ICAgICAgIG1heChjbnQpIEFTIG1heF9tYXRjaF9sZW4KK0ZST00gcnByX3Jlc3VsdDsKKworLS0g TXVsdGlwbGUgQ1RFIHJlZmVyZW5jZXMKK1dJVEggcnByX3Jlc3VsdCBBUyAoCisgICAgU0VMRUNU IGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAg IFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAg ICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKQorU0VMRUNUIHIxLmlkLCByMS5jbnQK K0ZST00gcnByX3Jlc3VsdCByMQorSk9JTiBycHJfcmVzdWx0IHIyIE9OIHIxLmlkID0gcjIuaWQg QU5EIHIxLmNudCA9IHIyLmNudAorV0hFUkUgcjEuY250ID4gMAorT1JERVIgQlkgcjEuaWQ7CisK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gQjIuIFJQUiArIEpPSU4KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitDUkVBVEUgVEFCTEUgcnByX2lu dGVnMiAoaWQgSU5ULCBsYWJlbCBURVhUKTsKK0lOU0VSVCBJTlRPIHJwcl9pbnRlZzIgVkFMVUVT CisgICAgKDEsICdhJyksICgyLCAnYicpLCAoMywgJ2MnKSwgKDQsICdkJyksICg1LCAnZScpLAor ICAgICg2LCAnZicpLCAoNywgJ2cnKSwgKDgsICdoJyksICg5LCAnaScpLCAoMTAsICdqJyk7CisK Ky0tIFJQUiBzdWJxdWVyeSBqb2luZWQgd2l0aCBhbm90aGVyIHRhYmxlCitTRUxFQ1Qgci5pZCwg ci5jbnQsIGoubGFiZWwKK0ZST00gKAorICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFT IGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisg ICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZh bCkpCispIHIKK0pPSU4gcnByX2ludGVnMiBqIE9OIHIuaWQgPSBqLmlkCitXSEVSRSByLmNudCA+ IDAKK09SREVSIEJZIHIuaWQ7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQjMuIFJQUiArIFNldCBvcGVyYXRpb25z CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKworLS0gVU5JT04gb2YgUlBSIGFuZCBub24tUlBSIHJlc3VsdHMKK1NFTEVDVCBp ZCwgY250LCAncnByJyBBUyBzb3VyY2UgRlJPTSAoCisgICAgU0VMRUNUIGlkLCBjb3VudCgqKSBP VkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+ IFBSRVYodmFsKSkKKykgdCBXSEVSRSBjbnQgPiAwCitVTklPTiBBTEwKK1NFTEVDVCBpZCwgY291 bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQpIEFTIGNudCwgJ25vcm1hbCcgQVMgc291cmNlCitGUk9N IHJwcl9pbnRlZworT1JERVIgQlkgc291cmNlLCBpZDsKKworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCNC4gUlBSICsg UHJlcGFyZWQgc3RhdGVtZW50cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0tIFBsYW4gY2FjaGluZyBtdXN0IGNvcnJl Y3RseSBzZXJpYWxpemUvZGVzZXJpYWxpemUgUlBSIGZpZWxkcworUFJFUEFSRSBycHJfcHJlcCBB UworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVn CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBC IEFTIHZhbCA+IFBSRVYodmFsKSkKK09SREVSIEJZIGlkOworCistLSBGaXJzdCBleGVjdXRpb24g KGN1c3RvbSBwbGFuKQorRVhFQ1VURSBycHJfcHJlcDsKKworLS0gU3Vic2VxdWVudCBleGVjdXRp b25zIChtYXkgdXNlIGNhY2hlZCBwbGFuKQorRVhFQ1VURSBycHJfcHJlcDsKK0VYRUNVVEUgcnBy X3ByZXA7CitFWEVDVVRFIHJwcl9wcmVwOworRVhFQ1VURSBycHJfcHJlcDsKK0VYRUNVVEUgcnBy X3ByZXA7CisKKy0tIFZlcmlmeSBjYWNoZWQgcGxhbiBwcm9kdWNlcyBzYW1lIHJlc3VsdAorRVhF Q1VURSBycHJfcHJlcDsKKworREVBTExPQ0FURSBycHJfcHJlcDsKKworLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCNS4g UlBSICsgUGFydGl0aW9uZWQgdGFibGUKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUlBSIHBhdHRlcm4gbWF0Y2hpbmcg bXVzdCB3b3JrIGNvcnJlY3RseSBhY3Jvc3MgcGFydGl0aW9ucy4KKworQ1JFQVRFIFRBQkxFIHJw cl9wYXJ0IChpZCBJTlQsIHZhbCBJTlQpIFBBUlRJVElPTiBCWSBSQU5HRSAoaWQpOworQ1JFQVRF IFRBQkxFIHJwcl9wYXJ0XzEgUEFSVElUSU9OIE9GIHJwcl9wYXJ0IEZPUiBWQUxVRVMgRlJPTSAo MSkgVE8gKDYpOworQ1JFQVRFIFRBQkxFIHJwcl9wYXJ0XzIgUEFSVElUSU9OIE9GIHJwcl9wYXJ0 IEZPUiBWQUxVRVMgRlJPTSAoNikgVE8gKDExKTsKK0lOU0VSVCBJTlRPIHJwcl9wYXJ0IFNFTEVD VCBpZCwgdmFsIEZST00gcnByX2ludGVnOworCistLSBTYW1lIHF1ZXJ5IG9uIHBhcnRpdGlvbmVk IHZzIG5vbi1wYXJ0aXRpb25lZCBzaG91bGQgcHJvZHVjZSBpZGVudGljYWwgcmVzdWx0cworU0VM RUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX3BhcnQKK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFs ID4gUFJFVih2YWwpKQorT1JERVIgQlkgaWQ7CisKKy0tIEVYUExBSU46IEFwcGVuZCB1bmRlciBT b3J0IHVuZGVyIFdpbmRvd0FnZworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCop IE9WRVIgdyBGUk9NIHJwcl9wYXJ0CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSk7CisKK0RST1AgVEFCTEUg cnByX3BhcnQ7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gQjYuIFJQUiArIExBVEVSQUwKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUlBS IGluc2lkZSBhIExBVEVSQUwgc3VicXVlcnkuICBRdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZXMg ZnJvbSB0aGUKKy0tIG91dGVyIHF1ZXJ5IGFyZSBub3QgeWV0IHN1cHBvcnRlZCBpbiBERUZJTkUs IHNvIHRoaXMgdGVzdHMgdGhlIGJhc2ljCistLSBjYXNlIHdoZXJlIExBVEVSQUwgcHJvdmlkZXMg ZmlsdGVyaW5nIGJ1dCBERUZJTkUgdXNlcyBvbmx5IGxvY2FsIGNvbHVtbnMuCisKK1NFTEVDVCBv LmlkIEFTIG91dGVyX2lkLCByLmlkLCByLmNudAorRlJPTSBycHJfaW50ZWcgbywKK0xBVEVSQUwg KAorICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2lu dGVnCisgICAgV0hFUkUgaWQgPD0gby5pZAorICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAor ICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2 YWwpKQorKSByCitXSEVSRSByLmNudCA+IDAgQU5EIG8uaWQgSU4gKDUsIDEwKQorT1JERVIgQlkg by5pZCwgci5pZDsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBCNy4gUlBSICsgUmVjdXJzaXZlIENURQorLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBSUFIgYXBwbGllZCB0byByZXN1bHRzIG9mIGEgcmVjdXJzaXZlIENURS4KKworV0lUSCBS RUNVUlNJVkUgc2VxIEFTICgKKyAgICBTRUxFQ1QgMSBBUyBpZCwgMTAgQVMgdmFsCisgICAgVU5J T04gQUxMCisgICAgU0VMRUNUIGlkICsgMSwgdmFsICsgKENBU0UgV0hFTiBpZCAlIDMgPSAwIFRI RU4gLTE1IEVMU0UgMTAgRU5EKQorICAgIEZST00gc2VxIFdIRVJFIGlkIDwgMTAKKykKK1NFTEVD VCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHNlcQorV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVW KHZhbCkpCitPUkRFUiBCWSBpZDsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCOC4gUlBSICsgSW5jcmVtZW50YWwg c29ydAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLSBJbmNyZW1lbnRhbCBzb3J0IG1heSBiZSB1c2VkIHdoZW4gZGF0YSBp cyBwYXJ0aWFsbHkgc29ydGVkLgorCitDUkVBVEUgSU5ERVggcnByX2ludGVnX2lkX2lkeCBPTiBy cHJfaW50ZWcgKGlkKTsKK1NFVCBlbmFibGVfc2Vxc2NhbiA9IG9mZjsKKworRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnBy X2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSk7CisKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgQVMgY250CitGUk9NIHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBC WSBpZDsKKworUkVTRVQgZW5hYmxlX3NlcXNjYW47CitEUk9QIElOREVYIHJwcl9pbnRlZ19pZF9p ZHg7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gQjkuIFJQUiArIFZvbGF0aWxlIGZ1bmN0aW9uIGluIERFRklORQor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBWb2xhdGlsZSBmdW5jdGlvbnMgbXVzdCBiZSBldmFsdWF0ZWQgcGVyLXJvdywg bm90IG9wdGltaXplZCBhd2F5LgorCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFT IGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpIEFORCByYW5kb20oKSA+PSAw LjApCitPUkRFUiBCWSBpZDsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCMTAuIFJQUiArIENvcnJlbGF0ZWQgc3Vi cXVlcnkgaW4gV0hFUkUKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gUlBSIHdpbmRvdyBpbiBhIGNvcnJlbGF0ZWQgc3Vi cXVlcnkuICBERUZJTkUgcmVmZXJlbmNlcyBvbmx5IGxvY2FsCistLSBjb2x1bW5zIChubyBxdWFs aWZpZWQgcmVmcyksIHdoaWxlIGNvcnJlbGF0aW9uIGlzIGluIFdIRVJFLgorCitTRUxFQ1Qgby5p ZCwgby52YWwsCisgICAgKFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKKyAgICAgRlJPTSBycHJfaW50 ZWcgaQorICAgICBXSEVSRSBpLmlkIDw9IG8uaWQKKyAgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkCisgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICBERUZJTkUgQiBBUyB2YWwg PiBQUkVWKHZhbCkpCisgICAgIE9SREVSIEJZIGlkCisgICAgIExJTUlUIDEpIEFTIGZpcnN0X2Nu dAorRlJPTSBycHJfaW50ZWcgbworT1JERVIgQlkgby5pZDsKKworLS0gQ2xlYW51cAorRFJPUCBU QUJMRSBycHJfaW50ZWc7CitEUk9QIFRBQkxFIHJwcl9pbnRlZzI7Ci0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0008-Replace-reduced-frame-map-with-single-match-result.txt" Content-Disposition: attachment; filename="nocfbot-0008-Replace-reduced-frame-map-with-single-match-result.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfmz2r7 RnJvbSA1OWU5OWM2YjkzMjJmNDAyZGY1NjBiYzY5Mzg2MzQ5MTQ4N2UxMmRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTQ6MDk6MTIgKzA5MDAKU3ViamVjdDogW1BBVENIXSBSZXBsYWNl IHJlZHVjZWQgZnJhbWUgbWFwIHdpdGggc2luZ2xlIG1hdGNoIHJlc3VsdAoKVGhlIHJlZHVjZWQg ZnJhbWUgbWFwIHdhcyBhIHBlci1yb3cgYnl0ZSBhcnJheSB0cmFja2luZyBtYXRjaCBzdGF0dXMu ClNpbmNlIHJvd3MgYXJlIHByb2Nlc3NlZCBzZXF1ZW50aWFsbHkgYW5kIG9ubHkgb25lIG1hdGNo IGlzIGFjdGl2ZQphdCBhIHRpbWUsIHJlcGxhY2UgaXQgd2l0aCBmb3VyIHNjYWxhciBmaWVsZHM6 IHZhbGlkLCBtYXRjaGVkLApzdGFydCwgYW5kIGxlbmd0aC4KCkFsc28gZGlzdGluZ3Vpc2ggZW1w dHkgbWF0Y2hlcyAoRklOIHJlYWNoZWQgd2l0aCB6ZXJvIHJvd3MgY29uc3VtZWQpCmZyb20gdW5t YXRjaGVkIHJvd3MgdmlhIFJGX0VNUFRZX01BVENILCBjb3VudGVkIGFzIG1hdGNoZWQgaW4gTkZB CnN0YXRpc3RpY3MuCgpXaWRlbiByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZSgpIHJldHVybiB0eXBl IGZyb20gaW50IHRvIGludDY0LApzaW5jZSBpdCByZXR1cm5zIHJwcl9tYXRjaF9sZW5ndGggd2hp Y2ggaXMgaW50NjQuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAgICAgICAg ICAgfCAgNTYgKysrLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgICAg ICB8IDIzMyArKysrKysrKystLS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9k ZXMuaCAgICAgICAgICAgICB8ICAyMSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf ZXhwbGFpbi5vdXQgfCAgIDggKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTMyIGluc2VydGlvbnMoKyks IDE4NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggNThmOWRhMGI4MTQu LjFjYmU4ZTE0NzgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC01NDksNyArNTQ5LDcgQEAK ICAqCiAgKiAgICgxKSBGaW5kIG9yIGNyZWF0ZSBhIGNvbnRleHQgZm9yIHRoZSB0YXJnZXQgcm93 CiAgKiAgICgyKSBFbnRlciB0aGUgcm93IHByb2Nlc3NpbmcgbG9vcAotICogICAoMykgQWZ0ZXIg dGhlIGxvb3AgZW5kcywgcmVjb3JkIHRoZSByZXN1bHQgaW4gcmVkdWNlZF9mcmFtZV9tYXAKKyAq ICAgKDMpIEFmdGVyIHRoZSBsb29wIGVuZHMsIHJlY29yZCB0aGUgbWF0Y2ggcmVzdWx0CiAgKgog ICogUHNldWRvY29kZSBvZiB0aGUgcm93IHByb2Nlc3NpbmcgbG9vcDoKICAqCkBAIC05MjMsMTgg KzkyMywxOSBAQAogICogQ2hhcHRlciBYICBNYXRjaCBSZXN1bHQgUHJvY2Vzc2luZwogICogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogICoKLSAqIFgtMS4gUmVkdWNlZCBGcmFtZSBNYXAKKyAqIFgtMS4g TWF0Y2ggUmVzdWx0CiAgKgotICogUlBSIG1hdGNoIHJlc3VsdHMgYXJlIHJlY29yZGVkIGluIGEg Ynl0ZSBhcnJheSBjYWxsZWQgcmVkdWNlZF9mcmFtZV9tYXAuCi0gKiBPbmUgYnl0ZSBpcyBhbGxv Y2F0ZWQgcGVyIHJvdywgYW5kIHRoZSB2YWx1ZSBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyAq IFJQUiB0cmFja3MgdGhlIGN1cnJlbnQgbWF0Y2ggcmVzdWx0IGFzIGEgc2luZ2xlIGVudHJ5IGlu IFdpbmRvd0FnZ1N0YXRlCisgKiB3aXRoIGZvdXIgZmllbGRzOiBycHJfbWF0Y2hfdmFsaWQsIHJw cl9tYXRjaF9tYXRjaGVkLCBycHJfbWF0Y2hfc3RhcnQsCisgKiBhbmQgcnByX21hdGNoX2xlbmd0 aC4gIFdoZW4gdmFsaWQgaXMgdHJ1ZSwgdGhlIGVudHJ5IGRlc2NyaWJlcyB0aGUKKyAqIG1hdGNo IHJlc3VsdCBmb3IgdGhlIHBvc2l0aW9uIGF0IHJwcl9tYXRjaF9zdGFydDogbWF0Y2hlZCBpbmRp Y2F0ZXMKKyAqIHN1Y2Nlc3Mgb3IgZmFpbHVyZSwgYW5kIGxlbmd0aCBnaXZlcyB0aGUgbnVtYmVy IG9mIHJvd3MgY29uc3VtZWQuCisgKiBBIG1hdGNoIHdpdGggbGVuZ3RoIDAgcmVwcmVzZW50cyBh biBlbXB0eSBtYXRjaCAocGF0dGVybiBtYXRjaGVkIGJ1dAorICogY29uc3VtZWQgbm8gcm93cyku ICBXaGVuIHZhbGlkIGlzIGZhbHNlLCB0aGUgcG9zaXRpb24gaGFzIG5vdCBiZWVuCisgKiBldmFs dWF0ZWQgeWV0IChSRl9OT1RfREVURVJNSU5FRCkuCiAgKgotICogICBSRl9OT1RfREVURVJNSU5F RCAoMCkgIE5vdCB5ZXQgcHJvY2Vzc2VkCi0gKiAgIFJGX0ZSQU1FX0hFQUQgICAgICgxKSAgU3Rh cnQgcm93IG9mIHRoZSBtYXRjaAotICogICBSRl9TS0lQUEVEICAgICAgICAoMikgIEludGVyaW9y IHJvdyBvZiB0aGUgbWF0Y2ggKHNraXBwZWQgaW4gZnJhbWUpCi0gKiAgIFJGX1VOTUFUQ0hFRCAg ICAgICgzKSAgTWF0Y2ggZmFpbHVyZQotICoKLSAqIFRoZSB3aW5kb3cgZnVuY3Rpb24gcmVmZXJl bmNlcyB0aGlzIG1hcCB0byBkZXRlcm1pbmUgZnJhbWUgaW5jbHVzaW9uIGZvcgotICogZWFjaCBy b3cuCisgKiBUaGUgd2luZG93IGZ1bmN0aW9uIGNhbGxzIGdldF9yZWR1Y2VkX2ZyYW1lX3N0YXR1 cygpIHRvIGxvb2sgdXAgYQorICogcm93J3Mgc3RhdHVzIGFnYWluc3QgdGhlIGN1cnJlbnQgbWF0 Y2ggcmVzdWx0LgogICoKICAqIFgtMi4gQUZURVIgTUFUQ0ggU0tJUAogICoKQEAgLTEwMjgsOCAr MTAyOSw3IEBACiAgKiAgICAgUGhhc2UgMyAoQWR2YW5jZSk6IHNraXBwZWQgKG5vIHN0YXRlcykK ICAqCiAgKiAgIEMwLnN0YXRlcyBpcyBlbXB0eSwgc28gdGhlIGxvb3AgdGVybWluYXRlcy4KLSAq ICAgbWF0Y2hFbmRSb3cgPCBtYXRjaFN0YXJ0Um93IC0+IFJGX1VOTUFUQ0hFRC4KLSAqICAgcmVn aXN0ZXJfcmVkdWNlZF9mcmFtZV9tYXAoMCwgUkZfVU5NQVRDSEVEKS4KKyAqICAgbWF0Y2hFbmRS b3cgPCBtYXRjaFN0YXJ0Um93IC0+IHVubWF0Y2hlZC4KICAqCiAgKiAtLS0gUm93IDEgKHByaWNl PTExMCkgLS0tCiAgKgpAQCAtMTExMyw5ICsxMTEzLDcgQEAKICAqCiAgKiAgIEMxLnN0YXRlcyBp cyBlbXB0eSBhbmQgbWF0Y2hFbmRSb3c9MyA+PSBtYXRjaFN0YXJ0Um93PTEgLT4gbWF0Y2ggc3Vj Y2VlZHMuCiAgKgotICogICByZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCgxLCBSRl9GUkFNRV9I RUFEKQotICogICByZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCgyLCBSRl9TS0lQUEVEKQotICog ICByZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCgzLCBSRl9TS0lQUEVEKQorICogICBycHJfbWF0 Y2hfc3RhcnQgPSAxLCBycHJfbWF0Y2hfbGVuZ3RoID0gMwogICoKICAqIC0tLSBSb3cgNCAocHJp Y2U9MTMwKSAtLS0KICAqCkBAIC0xMTI4LDE1ICsxMTI2LDE1IEBACiAgKiAgICAgQjogMTMwIDwg UFJFVigxMTUpIC0+IGZhbHNlCiAgKgogICogICAuLi4gTm8gc3Vic2VxdWVudCByb3dzLCBzbyBF eGVjUlBSRmluYWxpemVBbGxDb250ZXh0cygpIGlzIGNhbGxlZC4KLSAqICAgTWF0Y2ggaW5jb21w bGV0ZSAtPiBSRl9VTk1BVENIRUQuCisgKiAgIE1hdGNoIGluY29tcGxldGUgLT4gdW5tYXRjaGVk LgogICoKICAqIFhJLTUuIEZpbmFsIFJlc3VsdAogICoKLSAqICAgUm93IDA6IFJGX1VOTUFUQ0hF RCAgLT4gZnJhbWUgPSB0aGUgcm93IGl0c2VsZgotICogICBSb3cgMTogUkZfRlJBTUVfSEVBRCAt PiBmcmFtZSA9IHJvd3MgMSB0aHJvdWdoIDMKLSAqICAgUm93IDI6IFJGX1NLSVBQRUQgICAgLT4g aW5zaWRlIHJvdyAxJ3MgbWF0Y2gKLSAqICAgUm93IDM6IFJGX1NLSVBQRUQgICAgLT4gaW5zaWRl IHJvdyAxJ3MgbWF0Y2gKLSAqICAgUm93IDQ6IFJGX1VOTUFUQ0hFRCAgLT4gZnJhbWUgPSB0aGUg cm93IGl0c2VsZgorICogICBSb3cgMDogdW5tYXRjaGVkICAgICAtPiBmcmFtZSA9IHRoZSByb3cg aXRzZWxmCisgKiAgIFJvdyAxOiBtYXRjaCBoZWFkICAgIC0+IGZyYW1lID0gcm93cyAxIHRocm91 Z2ggMworICogICBSb3cgMjogaW5zaWRlIG1hdGNoICAtPiBza2lwcGVkCisgKiAgIFJvdyAzOiBp bnNpZGUgbWF0Y2ggIC0+IHNraXBwZWQKKyAqICAgUm93IDQ6IHVubWF0Y2hlZCAgICAgLT4gZnJh bWUgPSB0aGUgcm93IGl0c2VsZgogICoKICAqIENoYXB0ZXIgWElJICBTdW1tYXJ5IG9mIEtleSBE ZXNpZ24gRGVjaXNpb25zCiAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xNTc5LDEyICsxNTc3 LDE0IEBAIHN0YXRpYyB2b2lkIG5mYV9hZHZhbmNlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwg UlBSTkZBQ29udGV4dCAqY3R4LAogICoKICAqIC0gRW1wdHkgbWF0Y2ggaGFuZGxpbmc6IFRoZSBp bml0aWFsIGFkdmFuY2UgdXNlcyBjdXJyZW50UG9zID0KICAqICAgc3RhcnRQb3MgLSAxIChiZWZv cmUgYW55IHJvdyBpcyBjb25zdW1lZCkuIElmIEZJTiBpcyByZWFjaGVkIHZpYQotICogICBlcHNp bG9uIHRyYW5zaXRpb25zIGFsb25lLCBtYXRjaEVuZFJvdyA9IHN0YXJ0UG9zIC0gMSA8IG1hdGNo U3RhcnRSb3csCi0gKiAgIHJlc3VsdGluZyBpbiBVTk1BVENIRUQuIEZvciByZWx1Y3RhbnQgbWlu PTAgcGF0dGVybnMgKEEqPywgQT8/KSwKLSAqICAgdGhlIHNraXAgcGF0aCByZWFjaGVzIEZJTiBm aXJzdCBhbmQgZWFybHkgdGVybWluYXRpb24gcHJ1bmVzIGVudGVyCi0gKiAgIHBhdGhzLCB5aWVs ZGluZyBhbiBpbW1lZGlhdGUgZW1wdHkgKHVubWF0Y2hlZCkgcmVzdWx0LiBGb3IKLSAqICAgZ3Jl ZWR5IHBhdHRlcm5zIChBKiksIHRoZSBlbnRlciBwYXRoIGFkZHMgVkFSIHN0YXRlcyBmaXJzdCwg dGhlbgotICogICB0aGUgc2tpcCBGSU4gaXMgcmVjb3JkZWQgYnV0IFZBUiBzdGF0ZXMgc3Vydml2 ZSBmb3IgbGF0ZXIgbWF0Y2hpbmcuCisgKiAgIGVwc2lsb24gdHJhbnNpdGlvbnMgYWxvbmUsIG1h dGNoRW5kUm93ID0gc3RhcnRQb3MgLSAxIDwgbWF0Y2hTdGFydFJvdy4KKyAqICAgSWYgbWF0Y2hl ZFN0YXRlIGlzIHNldCAoRklOIHdhcyByZWFjaGVkKSwgdGhpcyBpcyBhbiBlbXB0eSBtYXRjaAor ICogICAoUkZfRU1QVFlfTUFUQ0gpOyBvdGhlcndpc2UgaXQgaXMgdW5tYXRjaGVkIChSRl9VTk1B VENIRUQpLgorICogICBGb3IgcmVsdWN0YW50IG1pbj0wIHBhdHRlcm5zIChBKj8sIEE/PyksIHRo ZSBza2lwIHBhdGggcmVhY2hlcworICogICBGSU4gZmlyc3QgYW5kIGVhcmx5IHRlcm1pbmF0aW9u IHBydW5lcyBlbnRlciBwYXRocywgeWllbGRpbmcgYW4KKyAqICAgaW1tZWRpYXRlIGVtcHR5IG1h dGNoIHJlc3VsdC4gRm9yIGdyZWVkeSBwYXR0ZXJucyAoQSopLCB0aGUgZW50ZXIKKyAqICAgcGF0 aCBhZGRzIFZBUiBzdGF0ZXMgZmlyc3QsIHRoZW4gdGhlIHNraXAgRklOIGlzIHJlY29yZGVkIGJ1 dCBWQVIKKyAqICAgc3RhdGVzIHN1cnZpdmUgZm9yIGxhdGVyIG1hdGNoaW5nLgogICoKICAqIENv bnRleHQgQWJzb3JwdGlvbiBSdW50aW1lOgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggYWVkN2NiZWY5OWEuLmRjYTJk ZTU3MGU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC0yNDcsMTMgKzI0 NywxMCBAQCBzdGF0aWMgdm9pZCBhdHRub19tYXAoTm9kZSAqbm9kZSk7CiBzdGF0aWMgYm9vbCBh dHRub19tYXBfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogCiBzdGF0aWMgYm9v bCBycHJfaXNfZGVmaW5lZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwotc3RhdGljIGludAly b3dfaXNfaW5fcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpOwor c3RhdGljIGludDY0IHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmos IGludDY0IHBvcyk7CiAKLXN0YXRpYyB2b2lkIGNyZWF0ZV9yZWR1Y2VkX2ZyYW1lX21hcChXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwotc3RhdGljIHZvaWQgY2xlYXJfcmVkdWNlZF9mcmFtZV9t YXAoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKLXN0YXRpYyBpbnQJZ2V0X3JlZHVjZWRfZnJh bWVfbWFwKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zKTsKLXN0YXRpYyB2b2lk IHJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50 NjQgcG9zLAotCQkJCQkJCQkJICAgaW50IHZhbCk7CitzdGF0aWMgdm9pZCBjbGVhcl9yZWR1Y2Vk X2ZyYW1lKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7CitzdGF0aWMgaW50CWdldF9yZWR1Y2Vk X2ZyYW1lX3N0YXR1cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcyk7CiBzdGF0 aWMgdm9pZCB1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBw b3MpOwogCiBzdGF0aWMgdm9pZCBjaGVja19ycHJfbmF2aWdhdGlvbihOb2RlICpub2RlLCBib29s IGlzX3ByZXYpOwpAQCAtMTAzNSwxMyArMTAzMiw3IEBAIGV2YWxfd2luZG93YWdncmVnYXRlcyhX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJICovCiAJZm9yICg7OykKIAl7Ci0JCWludAkJCXJl dDsKLQotI2lmZGVmIFJQUl9ERUJVRwotCQlwcmludGYoIj09PT09IGxvb3AgaW4gZnJhbWUgc3Rh cnRzOiBhZ2dyZWdhdGVkdXB0bzogIiBJTlQ2NF9GT1JNQVQgIiBhZ2dyZWdhdGVkYmFzZTogIiBJ TlQ2NF9GT1JNQVQgIlxuIiwKLQkJCSAgIHdpbnN0YXRlLT5hZ2dyZWdhdGVkdXB0bywKLQkJCSAg IHdpbnN0YXRlLT5hZ2dyZWdhdGVkYmFzZSk7Ci0jZW5kaWYKKwkJaW50NjQJCXJldDsKIAogCQkv KiBGZXRjaCBuZXh0IHJvdyBpZiB3ZSBkaWRuJ3QgYWxyZWFkeSAqLwogCQlpZiAoVHVwSXNOdWxs KGFnZ19yb3dfc2xvdCkpCkBAIC0xMDY1LDI3ICsxMDU2LDE4IEBAIGV2YWxfd2luZG93YWdncmVn YXRlcyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAKIAkJaWYgKHJwcl9pc19kZWZpbmVkKHdp bnN0YXRlKSkKIAkJewotI2lmZGVmIFJQUl9ERUJVRwotCQkJcHJpbnRmKCJyZWR1Y2VkX2ZyYW1l X21hcDogJWQgYWdncmVnYXRlZHVwdG86ICIgSU5UNjRfRk9STUFUICIgYWdncmVnYXRlZGJhc2U6 ICIgSU5UNjRfRk9STUFUICJcbiIsCi0JCQkJICAgZ2V0X3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0 YXRlLAotCQkJCQkJCQkJCSB3aW5zdGF0ZS0+YWdncmVnYXRlZHVwdG8pLAotCQkJCSAgIHdpbnN0 YXRlLT5hZ2dyZWdhdGVkdXB0bywKLQkJCQkgICB3aW5zdGF0ZS0+YWdncmVnYXRlZGJhc2UpOwot I2VuZGlmCi0KIAkJCS8qCi0JCQkgKiBJZiB0aGUgcm93IHN0YXR1cyBhdCBjdXJyZW50cG9zIGlz IGFscmVhZHkgZGVjaWRlZCBhbmQgY3VycmVudAotCQkJICogcm93IHN0YXR1cyBpcyBub3QgZGVj aWRlZCB5ZXQsIGl0IG1lYW5zIHdlIHBhc3NlZCB0aGUgbGFzdAotCQkJICogcmVkdWNlZCBmcmFt ZS4gVGltZSB0byBicmVhayB0aGUgbG9vcC4KKwkJCSAqIElmIGN1cnJlbnRwb3MgaXMgYWxyZWFk eSBkZWNpZGVkIGJ1dCBhZ2dyZWdhdGVkdXB0byBpcyBub3QgeWV0CisJCQkgKiBkZXRlcm1pbmVk LCB3ZSd2ZSBwYXNzZWQgdGhlIGxhc3QgcmVkdWNlZCBmcmFtZS4KIAkJCSAqLwotCQkJaWYgKGdl dF9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgd2luc3RhdGUtPmN1cnJlbnRwb3MpCisJCQlp ZiAoZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKHdpbnN0YXRlLCB3aW5zdGF0ZS0+Y3VycmVudHBv cykKIAkJCQkhPSBSRl9OT1RfREVURVJNSU5FRCAmJgotCQkJCWdldF9yZWR1Y2VkX2ZyYW1lX21h cCh3aW5zdGF0ZSwgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvKQorCQkJCWdldF9yZWR1Y2VkX2Zy YW1lX3N0YXR1cyh3aW5zdGF0ZSwgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvKQogCQkJCT09IFJG X05PVF9ERVRFUk1JTkVEKQogCQkJCWJyZWFrOwogCiAJCQkvKgotCQkJICogT3RoZXJ3aXNlIHdl IG5lZWQgdG8gY2FsY3VsYXRlIHRoZSByZWR1Y2VkIGZyYW1lLgorCQkJICogQ2FsY3VsYXRlIHRo ZSByZWR1Y2VkIGZyYW1lIGZvciBhZ2dyZWdhdGVkdXB0by4KIAkJCSAqLwogCQkJcmV0ID0gcm93 X2lzX2luX3JlZHVjZWRfZnJhbWUod2luc3RhdGUtPmFnZ193aW5vYmosCiAJCQkJCQkJCQkJICB3 aW5zdGF0ZS0+YWdncmVnYXRlZHVwdG8pOwpAQCAtMTA5MywxNyArMTA3NSwxMyBAQCBldmFsX3dp bmRvd2FnZ3JlZ2F0ZXMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQkJCWJyZWFrOwogCiAJ CQkvKgotCQkJICogQ2hlY2sgaWYgY3VycmVudCByb3cgbmVlZHMgdG8gYmUgc2tpcHBlZCBkdWUg dG8gbm8gbWF0Y2guCisJCQkgKiBDaGVjayBpZiBjdXJyZW50IHJvdyBpcyBpbnNpZGUgYSBtYXRj aCBidXQgbm90IHRoZSBoZWFkCisJCQkgKiAoc2tpcHBlZCksIGFuZCBpdCdzIHRoZSBiYXNlIHJv dyBmb3IgYWdncmVnYXRpb24uCiAJCQkgKi8KLQkJCWlmIChnZXRfcmVkdWNlZF9mcmFtZV9tYXAo d2luc3RhdGUsCi0JCQkJCQkJCQkgIHdpbnN0YXRlLT5hZ2dyZWdhdGVkdXB0bykgPT0gUkZfU0tJ UFBFRCAmJgorCQkJaWYgKGdldF9yZWR1Y2VkX2ZyYW1lX3N0YXR1cyh3aW5zdGF0ZSwKKwkJCQkJ CQkJCQkgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvKSA9PSBSRl9TS0lQUEVEICYmCiAJCQkJd2lu c3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvID09IHdpbnN0YXRlLT5hZ2dyZWdhdGVkYmFzZSkKLQkJCXsK LSNpZmRlZiBSUFJfREVCVUcKLQkJCQlwcmludGYoInNraXAgY3VycmVudCByb3cgZm9yIGFnZ3Jl Z2F0aW9uXG4iKTsKLSNlbmRpZgogCQkJCWJyZWFrOwotCQkJfQogCQl9CiAKIAkJLyogU2V0IHR1 cGxlIGNvbnRleHQgZm9yIGV2YWx1YXRpb24gb2YgYWdncmVnYXRlIGFyZ3VtZW50cyAqLwpAQCAt MTM1OCw3ICsxMzM2LDggQEAgYmVnaW5fcGFydGl0aW9uKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSkKIAl3aW5zdGF0ZS0+ZnJhbWVoZWFkX3ZhbGlkID0gZmFsc2U7CiAJd2luc3RhdGUtPmZyYW1l dGFpbF92YWxpZCA9IGZhbHNlOwogCXdpbnN0YXRlLT5ncm91cHRhaWxfdmFsaWQgPSBmYWxzZTsK LQljcmVhdGVfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUpOworCWlmIChycHJfaXNfZGVmaW5l ZCh3aW5zdGF0ZSkpCisJCWNsZWFyX3JlZHVjZWRfZnJhbWUod2luc3RhdGUpOwogCXdpbnN0YXRl LT5zcG9vbGVkX3Jvd3MgPSAwOwogCXdpbnN0YXRlLT5jdXJyZW50cG9zID0gMDsKIAl3aW5zdGF0 ZS0+ZnJhbWVoZWFkcG9zID0gMDsKQEAgLTE1ODEsOSArMTU2MCw4IEBAIHJlbGVhc2VfcGFydGl0 aW9uKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIAl3aW5zdGF0ZS0+cGFydGl0aW9uX3Nwb29s ZWQgPSBmYWxzZTsKIAl3aW5zdGF0ZS0+bmV4dF9wYXJ0aXRpb24gPSB0cnVlOwogCi0JLyogUmVz ZXQgUlBSIHJlZHVjZWQgZnJhbWUgbWFwICovCi0Jd2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFw ID0gTlVMTDsKLQl3aW5zdGF0ZS0+YWxsb2Nfc3ogPSAwOworCS8qIFJlc2V0IFJQUiBtYXRjaCBy ZXN1bHRzICovCisJY2xlYXJfcmVkdWNlZF9mcmFtZSh3aW5zdGF0ZSk7CiAKIAkvKiBSZXNldCBO RkEgc3RhdGUgZm9yIG5ldyBwYXJ0aXRpb24gKi8KIAl3aW5zdGF0ZS0+bmZhQ29udGV4dCA9IE5V TEw7CkBAIC0yMzY2LDExICsyMzQ0LDYgQEAgRXhlY1dpbmRvd0FnZyhQbGFuU3RhdGUgKnBzdGF0 ZSkKIAogCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CiAKLSNpZmRlZiBSUFJfREVCVUcKLQlwcmlu dGYoIkV4ZWNXaW5kb3dBZ2cgY2FsbGVkLiBwb3M6ICIgSU5UNjRfRk9STUFUICJcbiIsCi0JCSAg IHdpbnN0YXRlLT5jdXJyZW50cG9zKTsKLSNlbmRpZgotCiAJaWYgKHdpbnN0YXRlLT5zdGF0dXMg PT0gV0lORE9XQUdHX0RPTkUpCiAJCXJldHVybiBOVUxMOwogCkBAIC0yNDgwLDE0ICsyNDUzLDEz IEBAIEV4ZWNXaW5kb3dBZ2coUGxhblN0YXRlICpwc3RhdGUpCiAJCWlmICh3aW5zdGF0ZS0+c3Rh dHVzID09IFdJTkRPV0FHR19SVU4pCiAJCXsKIAkJCS8qCi0JCQkgKiBJZiBSUFIgaXMgZGVmaW5l ZCBhbmQgc2tpcCBtb2RlIGlzIG5leHQgcm93LCB3ZSBuZWVkIHRvIGNsZWFyCi0JCQkgKiBleGlz dGluZyByZWR1Y2VkIGZyYW1lIGluZm8gc28gdGhhdCB3ZSBuZXdseSBjYWxjdWxhdGUgdGhlIGlu Zm8KLQkJCSAqIHN0YXJ0aW5nIGZyb20gY3VycmVudCByb3cuCisJCQkgKiBJZiBSUFIgaXMgZGVm aW5lZCBhbmQgc2tpcCBtb2RlIGlzIG5leHQgcm93LCBjbGVhciB0aGUgY3VycmVudAorCQkJICog bWF0Y2ggc28gdGhlIG5leHQgcm93IHRyaWdnZXJzIHJlLWV2YWx1YXRpb24uCiAJCQkgKi8KIAkJ CWlmIChycHJfaXNfZGVmaW5lZCh3aW5zdGF0ZSkpCiAJCQl7CiAJCQkJaWYgKHdpbnN0YXRlLT5y cFNraXBUbyA9PSBTVF9ORVhUX1JPVykKLQkJCQkJY2xlYXJfcmVkdWNlZF9mcmFtZV9tYXAod2lu c3RhdGUpOworCQkJCQljbGVhcl9yZWR1Y2VkX2ZyYW1lKHdpbnN0YXRlKTsKIAkJCX0KIAogCQkJ LyoKQEAgLTI5ODYsOSArMjk1OCw2IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9k ZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJCQluYW1lID0gdGUtPnJlc25hbWU7CiAJ CQlleHByID0gdGUtPmV4cHI7CiAKLSNpZmRlZiBSUFJfREVCVUcKLQkJCXByaW50ZigiZGVmaW5l VmFyaWFibGUgbmFtZTogJXNcbiIsIG5hbWUpOwotI2VuZGlmCiAJCQl3aW5zdGF0ZS0+ZGVmaW5l VmFyaWFibGVMaXN0ID0KIAkJCQlsYXBwZW5kKHdpbnN0YXRlLT5kZWZpbmVWYXJpYWJsZUxpc3Qs CiAJCQkJCQltYWtlU3RyaW5nKHBzdHJkdXAobmFtZSkpKTsKQEAgLTM2NjgsNyArMzYzNyw3IEBA IGlnbm9yZW51bGxzX2dldGZ1bmNhcmdpbmZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludCBh cmdubywKIAlpbnQJCQlub3RudWxsX29mZnNldDsKIAlpbnQJCQlub3RudWxsX3JlbHBvczsKIAlp bnQJCQlmb3J3YXJkOwotCWludAkJCW51bV9yZWR1Y2VkX2ZyYW1lOworCWludDY0CQludW1fcmVk dWNlZF9mcmFtZTsKIAogCUFzc2VydChXaW5kb3dPYmplY3RJc1ZhbGlkKHdpbm9iaikpOwogCXdp bnN0YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKQEAgLTM5NjgsMTQgKzM5MzcsMTIgQEAgcnByX2lz X2RlZmluZWQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogICogQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCiAgKiAtLS0tLS0tLS0tLS0tLS0tLQogICovCi1zdGF0aWMgaW50CitzdGF0 aWMgaW50NjQKIHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGlu dDY0IHBvcykKIHsKIAlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRl OwogCWludAkJCXN0YXRlOwotCWludAkJCXJ0bjsKLQlpbnQ2NAkJaTsKLQlpbnQJCQludW1fcmVk dWNlZF9yb3dzOworCWludDY0CQlydG47CiAKIAlpZiAoIXJwcl9pc19kZWZpbmVkKHdpbnN0YXRl KSkKIAl7CkBAIC0zOTg0LDE0ICszOTUxLDEwIEBAIHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKFdp bmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcykKIAkJICogd2luZG93IGZyYW1lLgogCQkgKi8K IAkJcnRuID0gMDsKLSNpZmRlZiBSUFJfREVCVUcKLQkJcHJpbnRmKCJyb3dfaXNfaW5fcmVkdWNl ZF9mcmFtZSByZXR1cm5zICVkOiBwb3M6ICIgSU5UNjRfRk9STUFUICJcbiIsCi0JCQkgICBydG4s IHBvcyk7Ci0jZW5kaWYKIAkJcmV0dXJuIHJ0bjsKIAl9CiAKLQlzdGF0ZSA9IGdldF9yZWR1Y2Vk X2ZyYW1lX21hcCh3aW5zdGF0ZSwgcG9zKTsKKwlzdGF0ZSA9IGdldF9yZWR1Y2VkX2ZyYW1lX3N0 YXR1cyh3aW5zdGF0ZSwgcG9zKTsKIAogCWlmIChzdGF0ZSA9PSBSRl9OT1RfREVURVJNSU5FRCkK IAl7CkBAIC0zOTk5LDE2ICszOTYyLDEyIEBAIHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKFdpbmRv d09iamVjdCB3aW5vYmosIGludDY0IHBvcykKIAkJdXBkYXRlX3JlZHVjZWRfZnJhbWUod2lub2Jq LCBwb3MpOwogCX0KIAotCXN0YXRlID0gZ2V0X3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0YXRlLCBw b3MpOworCXN0YXRlID0gZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKHdpbnN0YXRlLCBwb3MpOwog CiAJc3dpdGNoIChzdGF0ZSkKIAl7CiAJCWNhc2UgUkZfRlJBTUVfSEVBRDoKLQkJCW51bV9yZWR1 Y2VkX3Jvd3MgPSAxOwotCQkJZm9yIChpID0gcG9zICsgMTsKLQkJCQkgZ2V0X3JlZHVjZWRfZnJh bWVfbWFwKHdpbnN0YXRlLCBpKSA9PSBSRl9TS0lQUEVEOyBpKyspCi0JCQkJbnVtX3JlZHVjZWRf cm93cysrOwotCQkJcnRuID0gbnVtX3JlZHVjZWRfcm93czsKKwkJCXJ0biA9IHdpbnN0YXRlLT5y cHJfbWF0Y2hfbGVuZ3RoOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBSRl9TS0lQUEVEOgpAQCAtNDAx Niw2ICszOTc1LDcgQEAgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9i aiwgaW50NjQgcG9zKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBSRl9VTk1BVENIRUQ6CisJCWNhc2Ug UkZfRU1QVFlfTUFUQ0g6CiAJCQlydG4gPSAtMTsKIAkJCWJyZWFrOwogCkBAIC00MDI1LDkxICsz OTg1LDU2IEBAIHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGlu dDY0IHBvcykKIAkJCWJyZWFrOwogCX0KIAotI2lmZGVmIFJQUl9ERUJVRwotCXByaW50Zigicm93 X2lzX2luX3JlZHVjZWRfZnJhbWUgcmV0dXJucyAlZDogcG9zOiAiIElOVDY0X0ZPUk1BVCAiXG4i LAotCQkgICBydG4sIHBvcyk7Ci0jZW5kaWYKIAlyZXR1cm4gcnRuOwogfQogCi0jZGVmaW5lIFJF RFVDRURfRlJBTUVfTUFQX0lOSVRfU0laRQkxMDI0TAotCiAvKgotICogY3JlYXRlX3JlZHVjZWRf ZnJhbWVfbWFwCi0gKiBDcmVhdGUgcmVkdWNlZCBmcmFtZSBtYXAKKyAqIGNsZWFyX3JlZHVjZWRf ZnJhbWUKKyAqIENsZWFyIHJlZHVjZWQgZnJhbWUgc3RhdHVzCiAgKi8KIHN0YXRpYyB2b2lkCi1j cmVhdGVfcmVkdWNlZF9mcmFtZV9tYXAoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQorY2xlYXJf cmVkdWNlZF9mcmFtZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiB7Ci0Jd2luc3RhdGUtPnJl ZHVjZWRfZnJhbWVfbWFwID0KLQkJTWVtb3J5Q29udGV4dEFsbG9jKHdpbnN0YXRlLT5wYXJ0Y29u dGV4dCwKLQkJCQkJCSAgIFJFRFVDRURfRlJBTUVfTUFQX0lOSVRfU0laRSk7Ci0Jd2luc3RhdGUt PmFsbG9jX3N6ID0gUkVEVUNFRF9GUkFNRV9NQVBfSU5JVF9TSVpFOwotCWNsZWFyX3JlZHVjZWRf ZnJhbWVfbWFwKHdpbnN0YXRlKTsKKwl3aW5zdGF0ZS0+cnByX21hdGNoX3ZhbGlkID0gZmFsc2U7 CisJd2luc3RhdGUtPnJwcl9tYXRjaF9tYXRjaGVkID0gZmFsc2U7CisJd2luc3RhdGUtPnJwcl9t YXRjaF9zdGFydCA9IC0xOworCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbGVuZ3RoID0gMDsKIH0KIAog LyoKLSAqIGNsZWFyX3JlZHVjZWRfZnJhbWVfbWFwCi0gKiBDbGVhciByZWR1Y2VkIGZyYW1lIG1h cAotICovCi1zdGF0aWMgdm9pZAotY2xlYXJfcmVkdWNlZF9mcmFtZV9tYXAoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlKQotewotCUFzc2VydCh3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9tYXAgIT0g TlVMTCk7Ci0JTWVtU2V0KHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcCwgUkZfTk9UX0RFVEVS TUlORUQsCi0JCSAgIHdpbnN0YXRlLT5hbGxvY19zeik7Ci19Ci0KLS8qCi0gKiBnZXRfcmVkdWNl ZF9mcmFtZV9tYXAKLSAqIEdldCByZWR1Y2VkIGZyYW1lIG1hcCBzcGVjaWZpZWQgYnkgcG9zCisg KiBnZXRfcmVkdWNlZF9mcmFtZV9zdGF0dXMKKyAqCQlMb29rIHVwIGEgcG9zaXRpb24gYWdhaW5z dCB0aGUgY3VycmVudCBtYXRjaC4KKyAqCisgKiBSZXR1cm5zIG9uZSBvZiB0aGUgUkZfKiBjb25z dGFudHM6CisgKiAgIFJGX05PVF9ERVRFUk1JTkVEICBwb3MgaGFzIG5vdCBiZWVuIHByb2Nlc3Nl ZCB5ZXQKKyAqICAgUkZfRlJBTUVfSEVBRCAgICAgIHBvcyBpcyB0aGUgc3RhcnQgb2YgdGhlIGN1 cnJlbnQgbWF0Y2gKKyAqICAgUkZfU0tJUFBFRCAgICAgICAgIHBvcyBpcyBpbnNpZGUgdGhlIGN1 cnJlbnQgbWF0Y2ggYnV0IG5vdCB0aGUgc3RhcnQKKyAqICAgUkZfVU5NQVRDSEVEICAgICAgIHBv cyBpcyBwcm9jZXNzZWQgYnV0IG5vdCBwYXJ0IG9mIGFueSBtYXRjaAogICovCiBzdGF0aWMgaW50 Ci1nZXRfcmVkdWNlZF9mcmFtZV9tYXAoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBw b3MpCitnZXRfcmVkdWNlZF9mcmFtZV9zdGF0dXMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBp bnQ2NCBwb3MpCiB7Ci0JQXNzZXJ0KHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcCAhPSBOVUxM KTsKLQlBc3NlcnQocG9zID49IDApOworCWludDY0CQlzdGFydCA9IHdpbnN0YXRlLT5ycHJfbWF0 Y2hfc3RhcnQ7CisJaW50NjQJCWxlbmd0aCA9IHdpbnN0YXRlLT5ycHJfbWF0Y2hfbGVuZ3RoOwog Ci0JLyoKLQkgKiBJZiBwb3MgaXMgbm90IGluIHRoZSByZWR1Y2VkIGZyYW1lIG1hcCwgaXQgbWVh bnMgdGhhdCBhbnkgaW5mbwotCSAqIHJlZ2FyZGluZyB0aGUgcG9zIGhhcyBub3QgYmVlbiByZWdp c3RlcmVkIHlldC4gU28gd2UgcmV0dXJuCi0JICogUkZfTk9UX0RFVEVSTUlORUQuCi0JICovCi0J aWYgKHBvcyA+PSB3aW5zdGF0ZS0+YWxsb2Nfc3opCisJaWYgKCF3aW5zdGF0ZS0+cnByX21hdGNo X3ZhbGlkKQogCQlyZXR1cm4gUkZfTk9UX0RFVEVSTUlORUQ7CiAKLQlyZXR1cm4gd2luc3RhdGUt PnJlZHVjZWRfZnJhbWVfbWFwW3Bvc107Ci19CisJLyogRW1wdHkgbWF0Y2g6IGNvdmVycyBvbmx5 IHRoZSBzdGFydCBwb3NpdGlvbiAqLworCWlmIChwb3MgPT0gc3RhcnQgJiYgd2luc3RhdGUtPnJw cl9tYXRjaF9tYXRjaGVkICYmIGxlbmd0aCA9PSAwKQorCQlyZXR1cm4gUkZfRU1QVFlfTUFUQ0g7 CiAKLS8qCi0gKiByZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcAotICogQWRkL3JlcGxhY2UgcmVk dWNlZCBmcmFtZSBtYXAgbWVtYmVyIGF0IHBvcy4KLSAqIElmIHRoZXJlJ3Mgbm8gZW5vdWdoIHNw YWNlLCBleHBhbmQgdGhlIG1hcC4KLSAqLwotc3RhdGljIHZvaWQKLXJlZ2lzdGVyX3JlZHVjZWRf ZnJhbWVfbWFwKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zLCBpbnQgdmFsKQot ewotCWludDY0CQlyZWFsbG9jX3N6OwotCi0JQXNzZXJ0KHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1l X21hcCAhPSBOVUxMKTsKLQotCWlmIChwb3MgPCAwKQotCQllbG9nKEVSUk9SLCAid3JvbmcgcG9z OiAiIElOVDY0X0ZPUk1BVCwgcG9zKTsKLQotCXdoaWxlIChwb3MgPiB3aW5zdGF0ZS0+YWxsb2Nf c3ogLSAxKQotCXsKLQkJcmVhbGxvY19zeiA9IHdpbnN0YXRlLT5hbGxvY19zeiAqIDI7Ci0KLQkJ d2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwID0KLQkJCXJlcGFsbG9jKHdpbnN0YXRlLT5yZWR1 Y2VkX2ZyYW1lX21hcCwgcmVhbGxvY19zeik7CisJLyogT3V0c2lkZSB0aGUgcmVzdWx0IHJhbmdl ICovCisJaWYgKHBvcyA8IHN0YXJ0IHx8IHBvcyA+PSBzdGFydCArIGxlbmd0aCkKKwkJcmV0dXJu IFJGX05PVF9ERVRFUk1JTkVEOwogCi0JCU1lbVNldCh3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9t YXAgKyB3aW5zdGF0ZS0+YWxsb2Nfc3osCi0JCQkgICBSRl9OT1RfREVURVJNSU5FRCwgcmVhbGxv Y19zeiAtIHdpbnN0YXRlLT5hbGxvY19zeik7CisJaWYgKCF3aW5zdGF0ZS0+cnByX21hdGNoX21h dGNoZWQpCisJCXJldHVybiBSRl9VTk1BVENIRUQ7CiAKLQkJd2luc3RhdGUtPmFsbG9jX3N6ID0g cmVhbGxvY19zejsKLQl9CisJaWYgKHBvcyA9PSBzdGFydCkKKwkJcmV0dXJuIFJGX0ZSQU1FX0hF QUQ7CiAKLQl3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9tYXBbcG9zXSA9IHZhbDsKKwlyZXR1cm4g UkZfU0tJUFBFRDsKIH0KIAogLyoKQEAgLTQxNTYsNyArNDA4MSwxMSBAQCB1cGRhdGVfcmVkdWNl ZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpCiAJaWYgKHdpbnN0YXRlLT5u ZmFDb250ZXh0ICE9IE5VTEwgJiYKIAkJcG9zIDwgd2luc3RhdGUtPm5mYUNvbnRleHQtPm1hdGNo U3RhcnRSb3cpCiAJewotCQlyZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgcG9z LCBSRl9VTk1BVENIRUQpOworCQkvKiBhbHJlYWR5IHByb2Nlc3NlZCwgdW5tYXRjaGVkICovCisJ CXdpbnN0YXRlLT5ycHJfbWF0Y2hfdmFsaWQgPSB0cnVlOworCQl3aW5zdGF0ZS0+cnByX21hdGNo X21hdGNoZWQgPSBmYWxzZTsKKwkJd2luc3RhdGUtPnJwcl9tYXRjaF9zdGFydCA9IHBvczsKKwkJ d2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGggPSAxOwogCQlyZXR1cm47CiAJfQogCkBAIC00MTcz LDcgKzQxMDIsMTEgQEAgdXBkYXRlX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwg aW50NjQgcG9zKQogCQkgKi8KIAkJaWYgKHBvcyA8PSB3aW5zdGF0ZS0+bmZhTGFzdFByb2Nlc3Nl ZFJvdykKIAkJewotCQkJcmVnaXN0ZXJfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsIHBvcywg UkZfVU5NQVRDSEVEKTsKKwkJCS8qIGFscmVhZHkgcHJvY2Vzc2VkLCB1bm1hdGNoZWQgKi8KKwkJ CXdpbnN0YXRlLT5ycHJfbWF0Y2hfdmFsaWQgPSB0cnVlOworCQkJd2luc3RhdGUtPnJwcl9tYXRj aF9tYXRjaGVkID0gZmFsc2U7CisJCQl3aW5zdGF0ZS0+cnByX21hdGNoX3N0YXJ0ID0gcG9zOwor CQkJd2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGggPSAxOwogCQkJcmV0dXJuOwogCQl9CiAJCS8q IE5vdCB5ZXQgcHJvY2Vzc2VkIC0gY3JlYXRlIG5ldyBjb250ZXh0IGFuZCBzdGFydCBmcmVzaCAq LwpAQCAtNDI0NSwyNiArNDE3OCwzOCBAQCByZWdpc3Rlcl9yZXN1bHQ6CiAJQXNzZXJ0KHBvcyA9 PSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3cpOwogCiAJLyoKLQkgKiBSZWdpc3RlciByZWR1Y2Vk IGZyYW1lIG1hcCBiYXNlZCBvbiBtYXRjaCByZXN1bHQuCisJICogUmVjb3JkIG1hdGNoIHJlc3Vs dC4KIAkgKi8KKwl3aW5zdGF0ZS0+cnByX21hdGNoX3ZhbGlkID0gdHJ1ZTsKKwl3aW5zdGF0ZS0+ cnByX21hdGNoX3N0YXJ0ID0gdGFyZ2V0Q3R4LT5tYXRjaFN0YXJ0Um93OworCiAJaWYgKHRhcmdl dEN0eC0+bWF0Y2hFbmRSb3cgPCB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3cpCiAJewogCQltYXRj aExlbiA9IHRhcmdldEN0eC0+bGFzdFByb2Nlc3NlZFJvdyAtIHRhcmdldEN0eC0+bWF0Y2hTdGFy dFJvdyArIDE7CiAKLQkJcmVnaXN0ZXJfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsIHRhcmdl dEN0eC0+bWF0Y2hTdGFydFJvdywgUkZfVU5NQVRDSEVEKTsKLQkJRXhlY1JQUlJlY29yZENvbnRl eHRGYWlsdXJlKHdpbnN0YXRlLCBtYXRjaExlbik7CisJCWlmICh0YXJnZXRDdHgtPm1hdGNoZWRT dGF0ZSAhPSBOVUxMKQorCQl7CisJCQkvKiBFbXB0eSBtYXRjaDogRklOIHJlYWNoZWQgYnV0IDAg cm93cyBjb25zdW1lZCAqLworCQkJd2luc3RhdGUtPnJwcl9tYXRjaF9tYXRjaGVkID0gdHJ1ZTsK KwkJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbGVuZ3RoID0gMDsKKwkJCUV4ZWNSUFJSZWNvcmRDb250 ZXh0U3VjY2Vzcyh3aW5zdGF0ZSwgMCk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBObyBtYXRj aCAqLworCQkJd2luc3RhdGUtPnJwcl9tYXRjaF9tYXRjaGVkID0gZmFsc2U7CisJCQl3aW5zdGF0 ZS0+cnByX21hdGNoX2xlbmd0aCA9IDE7CisJCQlFeGVjUlBSUmVjb3JkQ29udGV4dEZhaWx1cmUo d2luc3RhdGUsIG1hdGNoTGVuKTsKKwkJfQogCQlFeGVjUlBSRnJlZUNvbnRleHQod2luc3RhdGUs IHRhcmdldEN0eCk7CiAJCXJldHVybjsKIAl9CiAKLQkvKiBNYXRjaCBzdWNjZWVkZWQgLSByZWdp c3RlciBmcmFtZSBtYXAgYW5kIHJlY29yZCBzdGF0aXN0aWNzICovCisJLyogTWF0Y2ggc3VjY2Vl ZGVkICovCiAJbWF0Y2hMZW4gPSB0YXJnZXRDdHgtPm1hdGNoRW5kUm93IC0gdGFyZ2V0Q3R4LT5t YXRjaFN0YXJ0Um93ICsgMTsKIAotCXJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0YXRl LCB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3csIFJGX0ZSQU1FX0hFQUQpOwotCWZvciAoaW50NjQg aSA9IHRhcmdldEN0eC0+bWF0Y2hTdGFydFJvdyArIDE7IGkgPD0gdGFyZ2V0Q3R4LT5tYXRjaEVu ZFJvdzsgaSsrKQotCXsKLQkJcmVnaXN0ZXJfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsIGks IFJGX1NLSVBQRUQpOwotCX0KKwl3aW5zdGF0ZS0+cnByX21hdGNoX21hdGNoZWQgPSB0cnVlOwor CXdpbnN0YXRlLT5ycHJfbWF0Y2hfbGVuZ3RoID0gbWF0Y2hMZW47CiAJRXhlY1JQUlJlY29yZENv bnRleHRTdWNjZXNzKHdpbnN0YXRlLCBtYXRjaExlbik7CiAKIAkvKiBSZW1vdmUgdGhlIG1hdGNo ZWQgY29udGV4dCAqLwpAQCAtNDc0Nyw3ICs0NjkyLDcgQEAgV2luR2V0U2xvdEluRnJhbWUoV2lu ZG93T2JqZWN0IHdpbm9iaiwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJV2luZG93QWdnU3RhdGUg KndpbnN0YXRlOwogCWludDY0CQlhYnNfcG9zOwogCWludDY0CQltYXJrX3BvczsKLQlpbnQJCQlu dW1fcmVkdWNlZF9mcmFtZTsKKwlpbnQ2NAkJbnVtX3JlZHVjZWRfZnJhbWU7CiAKIAlBc3NlcnQo V2luZG93T2JqZWN0SXNWYWxpZCh3aW5vYmopKTsKIAl3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3Rh dGU7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDMzMDI4YzNmMTBiLi5jNjcyZDI5ZjM1YiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvZXhlY25vZGVzLmgKQEAgLTI0OTksMTAgKzI0OTksMTIgQEAgdHlwZWRlZiBlbnVtIFdp bmRvd0FnZ1N0YXR1cwogCQkJCQkJCQkJICogdHVwbGVzIGR1cmluZyBzcG9vbCAqLwogfSBXaW5k b3dBZ2dTdGF0dXM7CiAKLSNkZWZpbmUJUkZfTk9UX0RFVEVSTUlORUQJMAotI2RlZmluZQlSRl9G UkFNRV9IRUFECQkxCi0jZGVmaW5lCVJGX1NLSVBQRUQJCQkyCi0jZGVmaW5lCVJGX1VOTUFUQ0hF RAkJMworLyogUlBSIHJlZHVjZWQgZnJhbWUgc3RhdGVzIHJldHVybmVkIGJ5IGdldF9yZWR1Y2Vk X2ZyYW1lX3N0YXR1cygpICovCisjZGVmaW5lCVJGX05PVF9ERVRFUk1JTkVECTAJLyogbm90IHll dCBwcm9jZXNzZWQgKi8KKyNkZWZpbmUJUkZfRlJBTUVfSEVBRAkJMQkvKiBzdGFydCByb3cgb2Yg YSBtYXRjaCAqLworI2RlZmluZQlSRl9TS0lQUEVECQkJMgkvKiBpbnRlcmlvciByb3cgb2YgYSBt YXRjaCAqLworI2RlZmluZQlSRl9VTk1BVENIRUQJCTMJLyogbm8gbWF0Y2ggYXQgdGhpcyByb3cg Ki8KKyNkZWZpbmUJUkZfRU1QVFlfTUFUQ0gJCTQJLyogZW1wdHkgbWF0Y2ggKDAgcm93cyk7IHRy ZWF0ZWQgYXMgdW5tYXRjaGVkICovCiAKIC8qCiAgKiBSUFJORkFTdGF0ZSAtIHNpbmdsZSBORkEg c3RhdGUgZm9yIHBhdHRlcm4gbWF0Y2hpbmcKQEAgLTI2OTQsMTIgKzI2OTYsMTEgQEAgdHlwZWRl ZiBzdHJ1Y3QgV2luZG93QWdnU3RhdGUKIAlUdXBsZVRhYmxlU2xvdCAqbmV4dF9zbG90OwkvKiBO RVhUIHJvdyBuYXZpZ2F0aW9uIG9wZXJhdG9yICovCiAJVHVwbGVUYWJsZVNsb3QgKm51bGxfc2xv dDsJLyogYWxsIE5VTEwgc2xvdCAqLwogCi0JLyoKLQkgKiBFYWNoIGJ5dGUgY29ycmVzcG9uZHMg dG8gYSByb3cgcG9zaXRpb25lZCBhdCBhYnNvbHV0ZSBpdHMgcG9zIGluCi0JICogcGFydGl0aW9u LiAgU2VlIGFib3ZlIGRlZmluaXRpb24gZm9yIFJGXyouIFVzZWQgZm9yIFJQUi4KLQkgKi8KLQlj aGFyCSAgICpyZWR1Y2VkX2ZyYW1lX21hcDsKLQlpbnQ2NAkJYWxsb2Nfc3o7CQkvKiBzaXplIG9m IHRoZSBtYXAgKi8KKwkvKiBSUFIgY3VycmVudCBtYXRjaCByZXN1bHQgKi8KKwlib29sCQlycHJf bWF0Y2hfdmFsaWQ7CS8qIHRydWUgaWYgYSBtYXRjaCByZXN1bHQgaXMgc2V0ICovCisJYm9vbAkJ cnByX21hdGNoX21hdGNoZWQ7CS8qIHRydWUgaWYgdGhlIHJlc3VsdCB3YXMgYSBtYXRjaCAqLwor CWludDY0CQlycHJfbWF0Y2hfc3RhcnQ7CS8qIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBtYXRjaCBy ZXN1bHQgKi8KKwlpbnQ2NAkJcnByX21hdGNoX2xlbmd0aDsJLyogbnVtYmVyIG9mIHJvd3MgbWF0 Y2hlZCAoMCA9IGVtcHR5KSAqLwogfSBXaW5kb3dBZ2dTdGF0ZTsKIAogLyogLS0tLS0tLS0tLS0t LS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dAppbmRleCBiZDM0 NTkwNjEzMy4uNzljYmMyNDYwMzkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnByX2V4cGxhaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4 cGxhaW4ub3V0CkBAIC0zMzQ4LDggKzMzNDgsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICBQYXR0ZXJu OiAoKGEnIGInKSsiIGMpKgogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5r QgogICAgTkZBIFN0YXRlczogOSBwZWFrLCAxNzggdG90YWwsIDAgbWVyZ2VkCi0gICBORkEgQ29u dGV4dHM6IDQgcGVhaywgNjEgdG90YWwsIDIyIHBydW5lZAotICAgTkZBOiAxIG1hdGNoZWQgKGxl biA1Ny81Ny81Ny4wKSwgMCBtaXNtYXRjaGVkCisgICBORkEgQ29udGV4dHM6IDQgcGVhaywgNjEg dG90YWwsIDIwIHBydW5lZAorICAgTkZBOiAzIG1hdGNoZWQgKGxlbiAwLzU3LzE5LjApLCAwIG1p c21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMzcgc2tpcHBlZCAobGVuIDEvMy8yLjApCiAg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAu MDAgbG9vcHM9MSkKICg5IHJvd3MpCkBAIC0zMzg1LDggKzMzODUsOCBAQCBXSU5ET1cgdyBBUyAo CiAgICBQYXR0ZXJuOiAoYSAoYiBjKSspKgogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0 b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNyBwZWFrLCAxNjAgdG90YWwsIDAgbWVyZ2VkCi0g ICBORkEgQ29udGV4dHM6IDQgcGVhaywgNjEgdG90YWwsIDIyIHBydW5lZAotICAgTkZBOiAxIG1h dGNoZWQgKGxlbiA1Ny81Ny81Ny4wKSwgMCBtaXNtYXRjaGVkCisgICBORkEgQ29udGV4dHM6IDQg cGVhaywgNjEgdG90YWwsIDIwIHBydW5lZAorICAgTkZBOiAzIG1hdGNoZWQgKGxlbiAwLzU3LzE5 LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMzcgc2tpcHBlZCAobGVuIDEv My8yLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFs IHJvd3M9NjAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUp Cgo= --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0009-Add-fixed-length-group-absorption-for-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0009-Add-fixed-length-group-absorption-for-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfn1fp8 RnJvbSA3ZDljNjhmZmZjZjZlZWViZWEzOTUwMzNkYTU1MGM5NjY0NTZkZWYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDQgQXByIDIwMjYgMjE6NDc6MDEgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgZml4 ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb24gZm9yIFJQUgoKRXh0ZW5kIGNvbnRleHQgYWJzb3Jw dGlvbiB0byB1bmJvdW5kZWQgZ3JvdXBzIHdpdGggZml4ZWQtbGVuZ3RoCmNoaWxkcmVuIChtaW4g PT0gbWF4LCByZWN1cnNpdmVseSkuICBQYXR0ZXJucyBsaWtlIChBIEJ7Mn0pKyBvcgooKEEgKEIg Qyl7Mn0pezJ9KSsgYXJlIG5vdyBhYnNvcmJhYmxlLCBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0 bwp7MSwxfSBWQVJzIGF0IGNvbXBpbGUgdGltZSB3aXRob3V0IGFjdHVhbGx5IHVucm9sbGluZy4K CmlzRml4ZWRMZW5ndGhDaGlsZHJlbigpIHJlY3Vyc2l2ZWx5IHZlcmlmaWVzIG1pbiA9PSBtYXgg Zm9yIGFsbApjaGlsZHJlbiBpbmNsdWRpbmcgbmVzdGVkIHN1Ymdyb3VwcywgZXh0ZW5kaW5nIHRo ZSBleGlzdGluZyBDYXNlIDIKaW4gaXNVbmJvdW5kZWRTdGFydCgpLgoKQWJzb3JwdGlvbiBjb21w YXJpc29uIGluIG5mYV9zdGF0ZXNfY292ZXJlZCByZXF1aXJlcyBzdGF0ZXMgdG8gYmUgYXQKYW4g QUJTT1JCQUJMRSBqdWRnbWVudCBwb2ludCwgd2hlcmUgY291bnQtZG9taW5hbmNlIGlzIGd1YXJh bnRlZWQuClRoZSBpbmxpbmUgYWR2YW5jZSBpbiBuZmFfbWF0Y2ggaXMgZ2VuZXJhbGl6ZWQgdG8g YWR2YW5jZSBib3VuZGVkClZBUnMgd2l0aGluIHRoZSBhYnNvcmJhYmxlIHJlZ2lvbiB0aHJvdWdo IEVORCBjaGFpbnMgdG8gcmVhY2ggdGhlCmp1ZGdtZW50IHBvaW50LgoKRml4IGlzQWJzb3JiYWJs ZSBwcm9wYWdhdGlvbiBpbiBuZmFfYWR2YW5jZV92YXIgYW5kIG5mYV9hZHZhbmNlX2VuZApleGl0 IHBhdGhzLCB3aGVyZSByZXVzaW5nIGEgc3RhdGUgb2JqZWN0IHNraXBwZWQgcmVjb21wdXRhdGlv bi4KCk1hcmsgVkFSIGVsZW1lbnRzIGluIHRoZSBERlMgdmlzaXRlZCBiaXRtYXAgYXQgbmZhX2Fk ZF9zdGF0ZV91bmlxdWUKaW5zdGVhZCBvZiBhdCBuZmFfYWR2YW5jZV9zdGF0ZSBlbnRyeSwgc28g dGhhdCBsb29wLWJhY2sgdGhyb3VnaCBBTFQKdG8gdGhlIHNhbWUgVkFSIGlzIG5vdCBpbmNvcnJl Y3RseSBibG9ja2VkIGJ5IGN5Y2xlIGRldGVjdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUlBSLmMgICAgICAgICAgICB8IDExMCArKysrKystLQogc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vcnByLmMgICAgICAgICAgfCAxMzYgKysrKysrKy0tCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9iYXNlLm91dCAgICB8ICA4MyArKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0IHwgMjA2ICsrKysrKysrKysrKystCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0ICAgICB8IDMyMSArKysrKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgICAgICAgICB8ICAzNiArKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCAgICAgIHwgMTE0ICsrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAgICAgICAgICB8IDE2OCArKysrKysr KysrKwogOCBmaWxlcyBjaGFuZ2VkLCAxMTExIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRleCAxY2JlOGUxNDc4MC4uOGYwNDU3ZTJiM2MgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTE3NjAsNiArMTc2MCwxMCBAQCBuZmFfYWRkX3N0YXRl X3VuaXF1ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgUlBS TkZBU3RhdGUgKgogCVJQUk5GQVN0YXRlICpzOwogCVJQUk5GQVN0YXRlICp0YWlsID0gTlVMTDsK IAorCS8qIE1hcmsgVkFSIGluIHZpc2l0ZWQgYmVmb3JlIGR1cGxpY2F0ZSBjaGVjayB0byBwcmV2 ZW50IERGUyBsb29wcyAqLworCXdpbnN0YXRlLT5uZmFWaXNpdGVkRWxlbXNbV09SRE5VTShzdGF0 ZS0+ZWxlbUlkeCldIHw9CisJCSgoYml0bWFwd29yZCkgMSA8PCBCSVROVU0oc3RhdGUtPmVsZW1J ZHgpKTsKKwogCS8qIENoZWNrIGZvciBkdXBsaWNhdGUgYW5kIGZpbmQgdGFpbCAqLwogCWZvciAo cyA9IGN0eC0+c3RhdGVzOyBzICE9IE5VTEw7IHMgPSBzLT5uZXh0KQogCXsKQEAgLTIwMzMsNiAr MjAzNywxNCBAQCBuZmFfc3RhdGVzX2NvdmVyZWQoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSTkZB Q29udGV4dCAqb2xkZXIsIFJQUk5GQUNvbnRleHQgKm5ldwogCQllbGVtID0gJnBhdHRlcm4tPmVs ZW1lbnRzW25ld2VyU3RhdGUtPmVsZW1JZHhdOwogCQlkZXB0aCA9IGVsZW0tPmRlcHRoOwogCisJ CS8qCisJCSAqIE9ubHkgY29tcGFyZSBhdCBhYnNvcnB0aW9uIGp1ZGdtZW50IHBvaW50cyAoUlBS X0VMRU1fQUJTT1JCQUJMRSkuCisJCSAqIEp1ZGdtZW50IHBvaW50cyBhcmUgd2hlcmUgY291bnQt ZG9taW5hbmNlIGd1YXJhbnRlZXMgdGhlIG5ld2VyCisJCSAqIGNvbnRleHQncyBmdXR1cmUgbWF0 Y2hlcyBhcmUgYSBzdWJzZXQgb2YgdGhlIG9sZGVyJ3MuCisJCSAqLworCQlpZiAoIVJQUkVsZW1J c0Fic29yYmFibGUoZWxlbSkpCisJCQlyZXR1cm4gZmFsc2U7CisKIAkJZm9yIChvbGRlclN0YXRl ID0gb2xkZXItPnN0YXRlczsgb2xkZXJTdGF0ZSAhPSBOVUxMOyBvbGRlclN0YXRlID0gb2xkZXJT dGF0ZS0+bmV4dCkKIAkJewogCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKQEAgLTIxNzUsOSAr MjE4NywxMCBAQCBuZmFfZXZhbF92YXJfbWF0Y2goV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBS UFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwKICAqICAgLSBub3QgbWF0Y2hlZDogcmVtb3ZlIHN0YXRl IChleGl0IGFsdGVybmF0aXZlcyBhbHJlYWR5IGV4aXN0IGZyb20KICAqICAgICBwcmV2aW91cyBh ZHZhbmNlIHdoZW4gY291bnQgPj0gbWluIHdhcyBzYXRpc2ZpZWQpCiAgKgotICogRm9yIHNpbXBs ZSBWQVJzIChtaW49bWF4PTEpIGZvbGxvd2VkIGJ5IEVORDoKLSAqICAgLSBBZHZhbmNlIHRvIEVO RCBhbmQgdXBkYXRlIGdyb3VwIGNvdW50IGJlZm9yZSBhYnNvcmIgcGhhc2UKLSAqICAgLSBUaGlz IGVuc3VyZXMgYWJzb3JwdGlvbiBjYW4gY29tcGFyZSBzdGF0ZXMgYnkgZ3JvdXAgY29tcGxldGlv bgorICogRm9yIFZBUnMgdGhhdCByZWFjaGVkIG1heCBjb3VudCBmb2xsb3dlZCBieSBFTkQ6Cisg KiAgIC0gQWR2YW5jZSB0aHJvdWdoIEVORCBjaGFpbiB0byByZWFjaCBhYnNvcnB0aW9uIGp1ZGdt ZW50IHBvaW50CisgKiAgIC0gT25seSBkZXRlcm1pbmlzdGljIGV4aXRzIChjb3VudCA+PSBtYXgs IG1heCAhPSBJTkYpIGFyZSBoYW5kbGVkCisgKiAgIC0gQ2hhaW5zIHRocm91Z2ggRU5EIGVsZW1l bnRzIHdoaWxlIGNvdW50ID49IG1heCAobXVzdC1leGl0IHBhdGgpCiAgKgogICogTm9uLVZBUiBl bGVtZW50cyAoQUxULCBFTkQsIEZJTikgYXJlIGtlcHQgYXMtaXMgZm9yIGFkdmFuY2UgcGhhc2Uu CiAgKi8KQEAgLTIxOTEsOSArMjIwNCw5IEBAIG5mYV9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0Y2hlZCkKIAlSUFJORkFTdGF0 ZSAqbmV4dFN0YXRlOwogCiAJLyoKLQkgKiBFdmFsdWF0ZSBWQVIgZWxlbWVudHMgYWdhaW5zdCBj dXJyZW50IHJvdy4gRm9yIHNpbXBsZSBWQVJzIHdpdGggRU5ECi0JICogbmV4dCwgYWR2YW5jZSB0 byBFTkQgYW5kIHVwZGF0ZSBncm91cCBjb3VudCBpbmxpbmUgc28gYWJzb3JiIHBoYXNlIGNhbgot CSAqIGNvbXBhcmUgc3RhdGVzIHByb3Blcmx5LgorCSAqIEV2YWx1YXRlIFZBUiBlbGVtZW50cyBh Z2FpbnN0IGN1cnJlbnQgcm93LiBGb3IgVkFScyB0aGF0IHJlYWNoIG1heAorCSAqIGNvdW50IHdp dGggRU5EIG5leHQsIGFkdmFuY2UgdGhyb3VnaCBFTkQgY2hhaW4gaW5saW5lIHNvIGFic29yYiBw aGFzZQorCSAqIGNhbiBjb21wYXJlIHN0YXRlcyBhdCBqdWRnbWVudCBwb2ludHMuCiAJICovCiAJ Zm9yIChzdGF0ZSA9IGN0eC0+c3RhdGVzOyBzdGF0ZSAhPSBOVUxMOyBzdGF0ZSA9IG5leHRTdGF0 ZSkKIAl7CkBAIC0yMjIzLDM0ICsyMjM2LDYxIEBAIG5mYV9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0Y2hlZCkKIAkJCQlzdGF0 ZS0+Y291bnRzW2RlcHRoXSA9IGNvdW50OwogCiAJCQkJLyoKLQkJCQkgKiBGb3Igc2ltcGxlIFZB UiAobWluPW1heD0xKSB3aXRoIEVORCBuZXh0LCBhZHZhbmNlIHRvIEVORAotCQkJCSAqIGFuZCB1 cGRhdGUgZ3JvdXAgY291bnQgaW5saW5lLiBUaGlzIGtlZXBzIHN0YXRlIGluIHBsYWNlLAotCQkJ CSAqIHByZXNlcnZpbmcgbGV4aWNhbCBvcmRlci4KKwkJCQkgKiBGb3IgVkFSIGF0IG1heCBjb3Vu dCB3aXRoIEVORCBuZXh0LCBhZHZhbmNlIHRocm91Z2ggRU5ECisJCQkJICogY2hhaW4gdG8gcmVh Y2ggdGhlIGFic29ycHRpb24ganVkZ21lbnQgcG9pbnQuIE9ubHkKKwkJCQkgKiBkZXRlcm1pbmlz dGljIGV4aXRzIChjb3VudCA+PSBtYXgsIG1heCBmaW5pdGUpIGFyZSBoYW5kbGVkOworCQkJCSAq IHVuYm91bmRlZCBWQVJzIHN0YXkgZm9yIGFkdmFuY2UgcGhhc2UuCiAJCQkJICovCi0JCQkJaWYg KGVsZW0tPm1pbiA9PSAxICYmIGVsZW0tPm1heCA9PSAxICYmCisJCQkJaWYgKFJQUkVsZW1Jc0Fi c29yYmFibGVCcmFuY2goZWxlbSkgJiYKKwkJCQkJIVJQUkVsZW1Jc0Fic29yYmFibGUoZWxlbSkg JiYKKwkJCQkJY291bnQgPj0gZWxlbS0+bWF4ICYmCiAJCQkJCVJQUkVsZW1Jc0VuZCgmZWxlbWVu dHNbZWxlbS0+bmV4dF0pKQogCQkJCXsKIAkJCQkJUlBSUGF0dGVybkVsZW1lbnQgKmVuZEVsZW0g PSAmZWxlbWVudHNbZWxlbS0+bmV4dF07CiAJCQkJCWludAkJCWVuZERlcHRoID0gZW5kRWxlbS0+ ZGVwdGg7CiAJCQkJCWludDMyCQllbmRDb3VudCA9IHN0YXRlLT5jb3VudHNbZW5kRGVwdGhdOwog Ci0JCQkJCUFzc2VydChjb3VudCA9PSAxKTsKLQotCQkJCQkvKiBJbmNyZW1lbnQgZ3JvdXAgY291 bnQgd2l0aCBvdmVyZmxvdyBwcm90ZWN0aW9uICovCisJCQkJCS8qIEluY3JlbWVudCBncm91cCBj b3VudCAqLwogCQkJCQlpZiAoZW5kQ291bnQgPCBSUFJfQ09VTlRfTUFYKQogCQkJCQkJZW5kQ291 bnQrKzsKLQotCQkJCQkvKgotCQkJCQkgKiBFTkQncyBtYXggY2FuIG5ldmVyIGJlIGV4Y2VlZGVk IGhlcmUgYmVjYXVzZQotCQkJCQkgKiBuZmFfYWR2YW5jZV9lbmQgb25seSBsb29wcyB3aGVuIGNv dW50IDwgbWF4LCBzbwotCQkJCQkgKiBlbmRDb3VudCBlbnRlcmluZyBpbmxpbmUgYWR2YW5jZSBp cyBhdCBtb3N0IG1heC0xLCBhbmQKLQkJCQkJICogaW5jcmVtZW50aW5nIHlpZWxkcyBhdCBtb3N0 IG1heC4KLQkJCQkJICovCiAJCQkJCUFzc2VydChlbmRFbGVtLT5tYXggPT0gUlBSX1FVQU5USVRZ X0lORiB8fAogCQkJCQkJICAgZW5kQ291bnQgPD0gZW5kRWxlbS0+bWF4KTsKIAogCQkJCQlzdGF0 ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CiAJCQkJCXN0YXRlLT5jb3VudHNbZW5kRGVwdGhdID0g ZW5kQ291bnQ7CisKKwkJCQkJLyoKKwkJCQkJICogQ2hhaW4gdGhyb3VnaCBFTkQgZWxlbWVudHMg d2l0aGluIHRoZSBhYnNvcmJhYmxlIHJlZ2lvbgorCQkJCQkgKiAoQUJTT1JCQUJMRV9CUkFOQ0gp IHVudGlsIHJlYWNoaW5nIHRoZSBqdWRnbWVudCBwb2ludAorCQkJCQkgKiAoQUJTT1JCQUJMRSku ICBDb250aW51ZSBvbmx5IG9uIG11c3QtZXhpdCBwYXRoIChjb3VudAorCQkJCQkgKiA+PSBtYXgp IHdpdGggRU5EIG5leHQuCisJCQkJCSAqLworCQkJCQl3aGlsZSAoUlBSRWxlbUlzQWJzb3JiYWJs ZUJyYW5jaChlbmRFbGVtKSAmJgorCQkJCQkJICAgIVJQUkVsZW1Jc0Fic29yYmFibGUoZW5kRWxl bSkgJiYKKwkJCQkJCSAgIGVuZENvdW50ID49IGVuZEVsZW0tPm1heCAmJgorCQkJCQkJICAgUlBS RWxlbUlzRW5kKCZlbGVtZW50c1tlbmRFbGVtLT5uZXh0XSkpCisJCQkJCXsKKwkJCQkJCVJQUlBh dHRlcm5FbGVtZW50ICpvdXRlckVuZCA9ICZlbGVtZW50c1tlbmRFbGVtLT5uZXh0XTsKKwkJCQkJ CWludAkJCW91dGVyRGVwdGggPSBvdXRlckVuZC0+ZGVwdGg7CisJCQkJCQlpbnQzMgkJb3V0ZXJD b3VudCA9IHN0YXRlLT5jb3VudHNbb3V0ZXJEZXB0aF07CisKKwkJCQkJCS8qIFJlc2V0IGV4aXRl ZCBncm91cCdzIGNvdW50ICovCisJCQkJCQlzdGF0ZS0+Y291bnRzW2VuZERlcHRoXSA9IDA7CisK KwkJCQkJCS8qIEluY3JlbWVudCBvdXRlciBncm91cCBjb3VudCAqLworCQkJCQkJaWYgKG91dGVy Q291bnQgPCBSUFJfQ09VTlRfTUFYKQorCQkJCQkJCW91dGVyQ291bnQrKzsKKwkJCQkJCUFzc2Vy dChvdXRlckVuZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwKKwkJCQkJCQkgICBvdXRlckNv dW50IDw9IG91dGVyRW5kLT5tYXgpOworCisJCQkJCQlzdGF0ZS0+ZWxlbUlkeCA9IGVuZEVsZW0t Pm5leHQ7CisJCQkJCQlzdGF0ZS0+Y291bnRzW291dGVyRGVwdGhdID0gb3V0ZXJDb3VudDsKKwor CQkJCQkJLyogQWR2YW5jZSB0byBuZXh0IEVORCBpbiBjaGFpbiAqLworCQkJCQkJZW5kRWxlbSA9 IG91dGVyRW5kOworCQkJCQkJZW5kRGVwdGggPSBvdXRlckRlcHRoOworCQkJCQkJZW5kQ291bnQg PSBvdXRlckNvdW50OworCQkJCQl9CiAJCQkJfQogCQkJCS8qIGVsc2U6IHN0YXkgYXQgVkFSIGZv ciBhZHZhbmNlIHBoYXNlICovCiAJCQl9CkBAIC0yNDY4LDYgKzI1MDgsMTAgQEAgbmZhX2FkdmFu Y2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQlz dGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CiAJCW5leHRFbGVtID0gJmVsZW1lbnRzW3N0YXRl LT5lbGVtSWR4XTsKIAorCQkvKiBVcGRhdGUgaXNBYnNvcmJhYmxlIGZvciB0YXJnZXQgZWxlbWVu dCAobW9ub3RvbmljKSAqLworCQlzdGF0ZS0+aXNBYnNvcmJhYmxlID0gc3RhdGUtPmlzQWJzb3Ji YWJsZSAmJgorCQkJUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChuZXh0RWxlbSk7CisKIAkJLyog RU5ELT5FTkQ6IGluY3JlbWVudCBvdXRlciBFTkQncyBjb3VudCAqLwogCQlpZiAoUlBSRWxlbUlz RW5kKG5leHRFbGVtKSAmJiBzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09V TlRfTUFYKQogCQkJc3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdKys7CkBAIC0yNjIxLDYg KzI2NjUsMTMgQEAgbmZhX2FkdmFuY2VfdmFyKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBS TkZBQ29udGV4dCAqY3R4LAogCQkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0OwogCQkJbmV4 dEVsZW0gPSAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdOwogCisJCQkvKgorCQkJICogVXBkYXRl IGlzQWJzb3JiYWJsZSBmb3IgdGFyZ2V0IGVsZW1lbnQgKG1vbm90b25pYzogQU5ECisJCQkgKiBw cmVzZXJ2ZXMgZmFsc2UpCisJCQkgKi8KKwkJCXN0YXRlLT5pc0Fic29yYmFibGUgPSBzdGF0ZS0+ aXNBYnNvcmJhYmxlICYmCisJCQkJUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChuZXh0RWxlbSk7 CisKIAkJCS8qCiAJCQkgKiBXaGVuIGV4aXRpbmcgZGlyZWN0bHkgdG8gYW4gb3V0ZXIgRU5ELCBp bmNyZW1lbnQgaXRzIGl0ZXJhdGlvbgogCQkJICogY291bnQuICBTaW1wbGUgVkFScyAobWluPW1h eD0xKSBoYW5kbGUgdGhpcyB2aWEgaW5saW5lIGFkdmFuY2UKQEAgLTI2NTAsNiArMjcwMSwxMyBA QCBuZmFfYWR2YW5jZV92YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0 ICpjdHgsCiAJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKIAkJbmV4dEVsZW0gPSAmZWxl bWVudHNbc3RhdGUtPmVsZW1JZHhdOwogCisJCS8qCisJCSAqIFVwZGF0ZSBpc0Fic29yYmFibGUg Zm9yIHRhcmdldCBlbGVtZW50IChtb25vdG9uaWM6IEFORCBwcmVzZXJ2ZXMKKwkJICogZmFsc2Up CisJCSAqLworCQlzdGF0ZS0+aXNBYnNvcmJhYmxlID0gc3RhdGUtPmlzQWJzb3JiYWJsZSAmJgor CQkJUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChuZXh0RWxlbSk7CisKIAkJLyogU2VlIGNvbW1l bnQgYWJvdmU6IGluY3JlbWVudCBvdXRlciBFTkQgY291bnQgZm9yIHF1YW50aWZpZWQgVkFScyAq LwogCQlpZiAoUlBSRWxlbUlzRW5kKG5leHRFbGVtKSkKIAkJewpAQCAtMjY4NiwxMSArMjc0NCwx OSBAQCBuZmFfYWR2YW5jZV9zdGF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNv bnRleHQgKmN0eCwKIAkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKIAkJcmV0dXJu OwogCX0KLQl3aW5zdGF0ZS0+bmZhVmlzaXRlZEVsZW1zW1dPUkROVU0oc3RhdGUtPmVsZW1JZHgp XSB8PQotCQkoKGJpdG1hcHdvcmQpIDEgPDwgQklUTlVNKHN0YXRlLT5lbGVtSWR4KSk7CiAKIAll bGVtID0gJnBhdHRlcm4tPmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKIAorCS8qCisJICogTWFy ayBlcHNpbG9uIGVsZW1lbnRzIChFTkQsIEFMVCwgQkVHSU4sIEZJTikgaW4gdmlzaXRlZCB0byBw cmV2ZW50CisJICogaW5maW5pdGUgZXBzaWxvbiBjeWNsZXMuICBWQVIgZWxlbWVudHMgYXJlIG1h cmtlZCBsYXRlciB3aGVuIGFkZGVkIHRvCisJICogdGhlIHN0YXRlIGxpc3QgKG5mYV9hZGRfc3Rh dGVfdW5pcXVlKSwgYWxsb3dpbmcgbGVnaXRpbWF0ZSBsb29wLWJhY2sgdG8KKwkgKiB0aGUgc2Ft ZSBWQVIgaW4gYSBuZXcgaXRlcmF0aW9uLgorCSAqLworCWlmICghUlBSRWxlbUlzVmFyKGVsZW0p KQorCQl3aW5zdGF0ZS0+bmZhVmlzaXRlZEVsZW1zW1dPUkROVU0oc3RhdGUtPmVsZW1JZHgpXSB8 PQorCQkJKChiaXRtYXB3b3JkKSAxIDw8IEJJVE5VTShzdGF0ZS0+ZWxlbUlkeCkpOworCiAJc3dp dGNoIChlbGVtLT52YXJJZCkKIAl7CiAJCWNhc2UgUlBSX1ZBUklEX0ZJTjoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcnByLmMKaW5kZXggMjcyOGEwYjlmY2EuLmMwZTlkMTM0YWE5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9ycHIuYwpAQCAtOTIsNiArOTIsOCBAQCBzdGF0aWMgYm9vbCBmaWxsUlBSUGF0dGVy bihSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LAogc3RhdGljIHZvaWQgZmlu YWxpemVSUFJQYXR0ZXJuKFJQUlBhdHRlcm4gKnJlc3VsdCk7CiAKIC8qIEZvcndhcmQgZGVjbGFy YXRpb25zIC0gY29udGV4dCBhYnNvcnB0aW9uICovCitzdGF0aWMgYm9vbCBpc0ZpeGVkTGVuZ3Ro Q2hpbGRyZW4oUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgsCisJCQkJCQkJCSAg UlBSRGVwdGggc2NvcGVEZXB0aCk7CiBzdGF0aWMgYm9vbCBpc1VuYm91bmRlZFN0YXJ0KFJQUlBh dHRlcm4gKnBhdHRlcm4sIFJQUkVsZW1JZHggaWR4KTsKIHN0YXRpYyB2b2lkIGNvbXB1dGVBYnNv cmJhYmlsaXR5UmVjdXJzaXZlKFJQUlBhdHRlcm4gKnBhdHRlcm4sCiAJCQkJCQkJCQkJICBSUFJF bGVtSWR4IHN0YXJ0SWR4LApAQCAtMTUyNCw2ICsxNTI2LDcwIEBAIGZpbmFsaXplUlBSUGF0dGVy bihSUFJQYXR0ZXJuICpyZXN1bHQpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCisvKgorICog aXNGaXhlZExlbmd0aENoaWxkcmVuCisgKgkJQ2hlY2sgaWYgYWxsIGNoaWxkcmVuIGF0IHNjb3Bl RGVwdGggaGF2ZSBmaXhlZC1sZW5ndGggcXVhbnRpZmllcnMKKyAqCQkobWluID09IG1heCksIHJl Y3Vyc2l2ZWx5IGZvciBuZXN0ZWQgc3ViZ3JvdXBzLgorICoKKyAqIEEgZml4ZWQtbGVuZ3RoIGdy b3VwIGlzIHNlbWFudGljYWxseSBlcXVpdmFsZW50IHRvIHVucm9sbGluZyBlYWNoIGNoaWxkCisg KiB0byB7MSwxfSBjb3BpZXMsIHdoaWNoIGlzIHRoZSBleGlzdGluZyBDYXNlIDIgYWxyZWFkeSBw cm92ZW4gY29ycmVjdAorICogZm9yIGFic29ycHRpb24uICBUaGlzIGNoZWNrIHJlY29nbml6ZXMg Zml4ZWQtbGVuZ3RoIGdyb3VwcyBhdCBjb21waWxlCisgKiB0aW1lIHdpdGhvdXQgYWN0dWFsbHkg dW5yb2xsaW5nIHRoZW0uCisgKgorICogVHJhdmVyc2VzIHRoZSBmbGF0IGVsZW1lbnQgYXJyYXkg c3RhcnRpbmcgYXQgaWR4LiAgRm9yIFZBUiBlbGVtZW50cywKKyAqIGNoZWNrcyBtaW4gPT0gbWF4 LiAgRm9yIEJFR0lOIGVsZW1lbnRzIChuZXN0ZWQgc3ViZ3JvdXBzKSwgcmVjdXJzZXMKKyAqIGlu dG8gdGhlIHN1Ymdyb3VwIGFuZCBhbHNvIGNoZWNrcyB0aGUgc3ViZ3JvdXAncyBFTkQgcXVhbnRp Zmllci4KKyAqIEFMVCBlbGVtZW50cyBhcmUgcmVqZWN0ZWQgKGFsdGVybmF0aW9uIGluc2lkZSBh YnNvcmJhYmxlIGdyb3VwIGlzCisgKiBub3Qgc3VwcG9ydGVkKS4KKyAqCisgKiBSZXR1cm5zIHRy dWUgaWYgYWxsIGNoaWxkcmVuIGFyZSBmaXhlZC1sZW5ndGgsIHN0b3BwaW5nIGF0IHRoZSBFTkQK KyAqIGVsZW1lbnQgYXQgc2NvcGVEZXB0aCAtIDEuCisgKi8KK3N0YXRpYyBib29sCitpc0ZpeGVk TGVuZ3RoQ2hpbGRyZW4oUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgsIFJQUkRl cHRoIHNjb3BlRGVwdGgpCit7CisJUlBSUGF0dGVybkVsZW1lbnQgKmUgPSAmcGF0dGVybi0+ZWxl bWVudHNbaWR4XTsKKworCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisKKwl3aGlsZSAoZS0+ZGVwdGgg PT0gc2NvcGVEZXB0aCkKKwl7CisJCWlmIChSUFJFbGVtSXNWYXIoZSkpCisJCXsKKwkJCWlmIChl LT5taW4gIT0gZS0+bWF4KQorCQkJCXJldHVybiBmYWxzZTsKKwkJfQorCQllbHNlIGlmIChSUFJF bGVtSXNCZWdpbihlKSkKKwkJeworCQkJUlBSRWxlbUlkeAljaGlsZElkeCA9IGUtPm5leHQ7CisK KwkJCS8qIFJlY3Vyc2UgaW50byBzdWJncm91cCBjaGlsZHJlbiBhdCBzY29wZURlcHRoICsgMSAq LworCQkJaWYgKCFpc0ZpeGVkTGVuZ3RoQ2hpbGRyZW4ocGF0dGVybiwgY2hpbGRJZHgsIHNjb3Bl RGVwdGggKyAxKSkKKwkJCQlyZXR1cm4gZmFsc2U7CisKKwkJCS8qIEFkdmFuY2UgcGFzdCB0aGUg c3ViZ3JvdXAgdG8gaXRzIEVORCBlbGVtZW50ICovCisJCQllID0gJnBhdHRlcm4tPmVsZW1lbnRz W2UtPm5leHRdOworCQkJd2hpbGUgKGUtPmRlcHRoID4gc2NvcGVEZXB0aCkKKwkJCQllID0gJnBh dHRlcm4tPmVsZW1lbnRzW2UtPm5leHRdOworCisJCQkvKiBlIGlzIG5vdyB0aGUgRU5EIGF0IHNj b3BlRGVwdGg7IGNoZWNrIGl0cyBxdWFudGlmaWVyICovCisJCQlBc3NlcnQoUlBSRWxlbUlzRW5k KGUpICYmIGUtPmRlcHRoID09IHNjb3BlRGVwdGgpOworCQkJaWYgKGUtPm1pbiAhPSBlLT5tYXgp CisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCWVsc2UKKwkJeworCQkJLyogQUxUIGluc2lkZSBn cm91cDogbm90IHN1cHBvcnRlZCBmb3IgYWJzb3JwdGlvbiAqLworCQkJcmV0dXJuIGZhbHNlOwor CQl9CisKKwkJQXNzZXJ0KGUtPm5leHQgIT0gUlBSX0VMRU1JRFhfSU5WQUxJRCk7CisJCWUgPSAm cGF0dGVybi0+ZWxlbWVudHNbZS0+bmV4dF07CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKIC8q CiAgKiBpc1VuYm91bmRlZFN0YXJ0CiAgKgkJQ2hlY2sgaWYgdGhlIGVsZW1lbnQgYXQgaWR4IHN0 YXJ0cyBhbiB1bmJvdW5kZWQgZ3JlZWR5IHNlcXVlbmNlLgpAQCAtMTUzMywyOSArMTU5OSwzMSBA QCBmaW5hbGl6ZVJQUlBhdHRlcm4oUlBSUGF0dGVybiAqcmVzdWx0KQogICogICAtIEdyZWVkeSAo bm90IHJlbHVjdGFudCkKICAqICAgLSBBdCB0aGUgc3RhcnQgb2YgY3VycmVudCBzY29wZQogICoK LSAqIEFsZ29yaXRobToKLSAqICAgLSBUcmF2ZXJzZSBlbGVtZW50cyB3aXRoaW4gY3VycmVudCBz Y29wZSAocGFyZW50RGVwdGggdG8gc3RhcnREZXB0aCkKLSAqICAgLSBGb3IgR1JPVVA6IG11c3Qg YmUgdW5ib3VuZGVkIGdyZWVkeSBBTkQgY29udGFpbiBvbmx5IHNpbXBsZSB7MSwxfSBWQVJzCi0g KiAgIC0gU2V0cyBBQlNPUkJBQkxFIGFuZCBBQlNPUkJBQkxFX0JSQU5DSCBmbGFncyBvbiBtYXRj aGluZyBlbGVtZW50cwotICoKICAqIFR3byBjYXNlcyBhcmUgaGFuZGxlZDoKICAqICAgMS4gU2lt cGxlIFZBUjogQSsgQiBDIC0gQSBoYXMgbWF4PUlORiwgZ2V0cyBib3RoIGZsYWdzCi0gKiAgIDIu IEdyb3VwOiAoQSBCKSsgQyAtIEVORCBoYXMgbWF4PUlORiwgYWxsIGNoaWxkcmVuIGFyZSB7MSwx fSBWQVJzCi0gKiAgICAgIEEsQixFTkQgZ2V0IEFCU09SQkFCTEVfQlJBTkNILCBvbmx5IEVORCBn ZXRzIEFCU09SQkFCTEUKKyAqICAgMi4gVW5ib3VuZGVkIEdST1VQIHdpdGggZml4ZWQtbGVuZ3Ro IGNoaWxkcmVuOiAoQSBCezJ9KSsgQworICogICAgICBBbGwgY2hpbGRyZW4gbXVzdCBoYXZlIG1p biA9PSBtYXggKHJlY3Vyc2l2ZWx5IGZvciBuZXN0ZWQgc3ViZ3JvdXBzKS4KKyAqICAgICAgVGhp cyBpcyBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0byB7MSwxfSBWQVJzLCBlLmcuLCAoQSBCIEIp KyBDLgorICogICAgICBBbGwgZWxlbWVudHMgd2l0aGluIHRoZSBncm91cCBnZXQgQUJTT1JCQUJM RV9CUkFOQ0guCisgKiAgICAgIE9ubHkgdGhlIHVuYm91bmRlZCBFTkQgZ2V0cyBBQlNPUkJBQkxF IChqdWRnbWVudCBwb2ludCkuCisgKiAgICAgIEV4YW1wbGVzOgorICogICAgICAgIChBIEJ7Mn0p KyBDICAgICAgICAgIC0gQnsyfSBoYXMgbWluPT1tYXgsIHN0ZXA9MworICogICAgICAgIChBIChC IEMpezJ9IEQpKyBFICAgIC0gbmVzdGVkIHsyfSBzdWJncm91cCwgc3RlcD02CisgKiAgICAgICAg KChBIChCIEMpezJ9KXsyfSkrICAgLSBkb3VibHkgbmVzdGVkIHsyfSwgc3RlcD0xMAorICogICAg ICAgIChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsgRiAgLSBkZWVwIG5lc3RpbmcsIHN0ZXA9MjAK ICAqCiAgKiBSZXR1cm5zIGZhbHNlIGZvciBwYXR0ZXJucyB3aGVyZSBhYnNvcnB0aW9uIGNhbm5v dCB3b3JrOgogICogICAtIEEgQisgKHVuYm91bmRlZCBub3QgYXQgc3RhcnQpCiAgKiAgIC0gQSs/ IEIgKHJlbHVjdGFudCBxdWFudGlmaWVyKQogICogICAtIChBIHwgQikrIChBTFQgaW5zaWRlIGdy b3VwKQotICogICAtIChBIEIrKSsgKHVuYm91bmRlZCBlbGVtZW50IGluc2lkZSBncm91cCkKLSAq ICAgLSAoKEEgQikrIEMpKyAobmVzdGVkIHVuYm91bmRlZCBncm91cHMpCisgKiAgIC0gKEEgQisp KyAodmFyaWFibGUtbGVuZ3RoIGVsZW1lbnQgaW5zaWRlIGdyb3VwKQorICogICAtIChBIEJ7Miw1 fSkrIChtaW4gIT0gbWF4IGluc2lkZSBncm91cCkKICAqLwogc3RhdGljIGJvb2wKIGlzVW5ib3Vu ZGVkU3RhcnQoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgpCiB7CiAJUlBSUGF0 dGVybkVsZW1lbnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbaWR4XTsKIAlSUFJEZXB0aAlz dGFydERlcHRoID0gZWxlbS0+ZGVwdGg7Ci0JUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVtOwog CVJQUlBhdHRlcm5FbGVtZW50ICplOwogCiAJLyogQ2FzZSAxOiBTaW1wbGUgdW5ib3VuZGVkIFZB UiBhdCBzdGFydCAoZ3JlZWR5IG9ubHkpICovCkBAIC0xNTY4LDIxICsxNjM2LDE5IEBAIGlzVW5i b3VuZGVkU3RhcnQoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgpCiAJfQogCiAJ LyoKLQkgKiBDYXNlIDI6IFVuYm91bmRlZCBHUk9VUCAtIHRyYXZlcnNlIHNpYmxpbmdzIGF0IHN0 YXJ0RGVwdGggYW5kIGNoZWNrIGlmCi0JICogdGhleSdyZSBhbGwgc2ltcGxlIHsxLDF9IFZBUnMs IHRoZW4gY2hlY2sgaWYgRU5EIGF0IHN0YXJ0RGVwdGggLSAxIGlzCi0JICogdW5ib3VuZGVkIGdy ZWVkeS4KKwkgKiBDYXNlIDI6IFVuYm91bmRlZCBHUk9VUCB3aXRoIGZpeGVkLWxlbmd0aCBjaGls ZHJlbi4gIEVhY2ggY2hpbGQgbXVzdAorCSAqIGhhdmUgbWluID09IG1heCAocmVjdXJzaXZlbHkg Zm9yIG5lc3RlZCBzdWJncm91cHMpLCBlbnN1cmluZyBhIGZpeGVkCisJICogc3RlcCBzaXplIHBl ciBpdGVyYXRpb24gc28gdGhhdCBjb3VudC1kb21pbmFuY2UgaG9sZHMuCiAJICovCi0JZm9yIChl ID0gZWxlbTsgZS0+ZGVwdGggPT0gc3RhcnREZXB0aDsgZSA9IG5leHRFbGVtKQotCXsKLQkJLyog TXVzdCBiZSBzaW1wbGUgezEsMX0gVkFSICovCi0JCWlmICghUlBSRWxlbUlzVmFyKGUpIHx8IGUt Pm1pbiAhPSAxIHx8IGUtPm1heCAhPSAxKQotCQkJcmV0dXJuIGZhbHNlOworCWlmICghaXNGaXhl ZExlbmd0aENoaWxkcmVuKHBhdHRlcm4sIGlkeCwgc3RhcnREZXB0aCkpCisJCXJldHVybiBmYWxz ZTsKIAotCQlBc3NlcnQoZS0+bmV4dCAhPSBSUFJfRUxFTUlEWF9JTlZBTElEKTsKLQkJbmV4dEVs ZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbZS0+bmV4dF07Ci0JfQorCS8qIEZpbmQgdGhlIEVORCBl bGVtZW50IGF0IHN0YXJ0RGVwdGggLSAxICovCisJZSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tpZHhd OworCXdoaWxlIChlLT5kZXB0aCA+PSBzdGFydERlcHRoKQorCQllID0gJnBhdHRlcm4tPmVsZW1l bnRzW2UtPm5leHRdOwogCi0JLyogTm93IGUgc2hvdWxkIGJlIEVORCBhdCBzdGFydERlcHRoIC0g MSAqLworCS8qIEVORCBtdXN0IGJlIHVuYm91bmRlZCBncmVlZHkgKi8KIAlpZiAoZS0+ZGVwdGgg PT0gc3RhcnREZXB0aCAtIDEgJiYKIAkJUlBSRWxlbUlzRW5kKGUpICYmIGUtPm1heCA9PSBSUFJf UVVBTlRJVFlfSU5GICYmCiAJCSFSUFJFbGVtSXNSZWx1Y3RhbnQoZSkpCkBAIC0xNTkwLDcgKzE2 NTYsOCBAQCBpc1VuYm91bmRlZFN0YXJ0KFJQUlBhdHRlcm4gKnBhdHRlcm4sIFJQUkVsZW1JZHgg aWR4KQogCQlBc3NlcnQoZS0+anVtcCA9PSBpZHgpOyAvKiBFTkQgcG9pbnRzIGJhY2sgdG8gZmly c3QgY2hpbGQgKi8KIAogCQkvKiBTZXQgQUJTT1JCQUJMRV9CUkFOQ0ggb24gYWxsIGNoaWxkcmVu LCBBQlNPUkJBQkxFIG9uIEVORCBvbmx5ICovCi0JCWZvciAoZSA9IGVsZW07ICFSUFJFbGVtSXNF bmQoZSk7IGUgPSAmcGF0dGVybi0+ZWxlbWVudHNbZS0+bmV4dF0pCisJCWZvciAoZSA9IGVsZW07 ICFSUFJFbGVtSXNFbmQoZSkgfHwgZS0+ZGVwdGggPj0gc3RhcnREZXB0aDsKKwkJCSBlID0gJnBh dHRlcm4tPmVsZW1lbnRzW2UtPm5leHRdKQogCQkJZS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JC QUJMRV9CUkFOQ0g7CiAJCWUtPmZsYWdzIHw9IFJQUl9FTEVNX0FCU09SQkFCTEVfQlJBTkNIIHwg UlBSX0VMRU1fQUJTT1JCQUJMRTsKIAkJcmV0dXJuIHRydWU7CkBAIC0xNjU0LDEyICsxNzIxLDI1 IEBAIGNvbXB1dGVBYnNvcmJhYmlsaXR5UmVjdXJzaXZlKFJQUlBhdHRlcm4gKnBhdHRlcm4sIFJQ UkVsZW1JZHggc3RhcnRJZHgsCiAJfQogCWVsc2UgaWYgKFJQUkVsZW1Jc0JlZ2luKGVsZW0pKQog CXsKLQkJLyogQkVHSU46IHNraXAgdG8gZmlyc3QgY2hpbGQgYW5kIGNoZWNrIHRoYXQgKi8KLQkJ Y29tcHV0ZUFic29yYmFiaWxpdHlSZWN1cnNpdmUocGF0dGVybiwgZWxlbS0+bmV4dCwgaGFzQWJz b3JiYWJsZSk7Ci0KLQkJLyogTWFyayBCRUdJTiBlbGVtZW50IGlmIGNvbnRlbnRzIGFyZSBhYnNv cmJhYmxlICovCi0JCWlmICgqaGFzQWJzb3JiYWJsZSkKKwkJLyoKKwkJICogQkVHSU46IGZpcnN0 IHRyeSB0byB0cmVhdCB0aGlzIEJFR0lOJ3MgY2hpbGRyZW4gYXMgYW4gdW5ib3VuZGVkCisJCSAq IGdyb3VwIGRpcmVjdGx5IChoYW5kbGVzIG5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXBzIGxpa2Ug KChBezJ9CisJCSAqIEJ7M30pezJ9KSspLiAgSWYgdGhhdCBmYWlscywgc2tpcCB0byBmaXJzdCBj aGlsZCBhbmQgcmVjdXJzZSBhcworCQkgKiBiZWZvcmUuCisJCSAqLworCQlpZiAoaXNVbmJvdW5k ZWRTdGFydChwYXR0ZXJuLCBlbGVtLT5uZXh0KSkKKwkJeworCQkJKmhhc0Fic29yYmFibGUgPSB0 cnVlOwogCQkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0g7CisJCX0K KwkJZWxzZQorCQl7CisJCQljb21wdXRlQWJzb3JiYWJpbGl0eVJlY3Vyc2l2ZShwYXR0ZXJuLCBl bGVtLT5uZXh0LCBoYXNBYnNvcmJhYmxlKTsKKworCQkJLyogTWFyayBCRUdJTiBlbGVtZW50IGlm IGNvbnRlbnRzIGFyZSBhYnNvcmJhYmxlICovCisJCQlpZiAoKmhhc0Fic29yYmFibGUpCisJCQkJ ZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0g7CisJCX0KIAl9CiAJZWxz ZQogCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggMzE2ODQ2OGQw YWUuLjc0NTJjZjFiM2FiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApA QCAtMzMxMiw3ICszMzEyLDcgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICBQYXR0ZXJuOiAoYXsy fSl7Mix9CisgICBQYXR0ZXJuOiAoYXsyfScpezIsfSIKICAgIC0+ICBTb3J0CiAgICAgICAgICBT b3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgpAQCAtNDA5NSw2 ICs0MDk1LDg3IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfcGxhbgogKDYgcm93cykKIAorLS0gRml4ZWQtbGVuZ3RoIGdyb3VwIGFic29yYmFibGU6IChB ezJ9IEJ7M30pKyAtPiAoYXsyfScgYnszfScpezIsfSIKKy0tIEFsbCBjaGlsZHJlbiBoYXZlIG1p biA9PSBtYXgsIGVxdWl2YWxlbnQgdG8gdW5yb2xsaW5nIHRvIHsxLDF9CitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVS TiAoKEF7Mn0gQnszfSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBB UyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhezJ9 JyBiezN9JykrIgorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNiByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQtbGVu Z3RoIGdyb3VwOiAoQSAoQiBDKXsyfSBEKSsgLT4gYWJzb3JiYWJsZQorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4g KChBIChCIEMpezJ9IEQpKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gMjAsIEIg QVMgdmFsIDw9IDQwLCBDIEFTIHZhbCA8PSA2MCwgRCBBUyB2YWwgPiA2MCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyAoYicgYycpezJ9JyBkJykrIgorICAgLT4g IFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9wbGFuCisoNiByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIHdpdGggaW5uZXIgcXVh bnRpZmllcjogKChBezJ9IEJ7M30pezJ9KSsgLT4gYWJzb3JiYWJsZQorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4g KCgoQXsyfSBCezN9KXsyfSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwg QiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46ICgo YXsyfScgYnszfScpezJ9JykrIgorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAor ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNiByb3dzKQorCistLSBOb24tYWJz b3JiYWJsZSBmaXhlZC1sZW5ndGg6IChBIEJ7Miw1fSkrIC0+IG5vIG1hcmtlcnMgKG1pbiAhPSBt YXgpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgQnsyLDV9KSspCisgICAgICAgICAgICAgREVGSU5FIEEg QVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgUGF0dGVybjogKGEgYnsyLDV9KSsKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTog aWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDYgcm93cykKKworLS0gTm9u LWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCPykrIC0+IG5vIG1hcmtlcnMgKG1pbiAhPSBt YXgpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgQj8pKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2 YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiAoYSBiPykrCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg2IHJvd3MpCisKIC0tIE5vbi1hYnNvcmJh YmxlICh1bmJvdW5kZWQgbm90IGF0IHN0YXJ0KTogQSBCKyAtPiBhIGIrIChubyBtYXJrZXJzKQog RVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFu CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDc5Y2JjMjQ2 MDM5Li41NjBmMjFmNDRjMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFp bi5vdXQKQEAgLTQ2MiwxMCArNDYyLDEwIEBAIFdJTkRPVyB3IEFTICgKICAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogKGEnIGInKSsiCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTog TmtCCi0gICBORkEgU3RhdGVzOiAzIHBlYWssIDkxIHRvdGFsLCAwIG1lcmdlZAotICAgTkZBIENv bnRleHRzOiAyIHBlYWssIDYxIHRvdGFsLCAwIHBydW5lZAorICAgTkZBIFN0YXRlczogNCBwZWFr LCA5MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA2MSB0b3RhbCwg MCBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gNjAvNjAvNjAuMCksIDAgbWlzbWF0Y2hl ZAotICAgTkZBOiAyOSBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAzMCBza2lwcGVkIChsZW4gMS8x LzEuMCkKKyAgIE5GQTogMjkgYWJzb3JiZWQgKGxlbiAyLzIvMi4wKSwgMzAgc2tpcHBlZCAobGVu IDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0 dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKQEAgLTkwNCw2ICs5MDQsMTg4IEBA IFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKKy0tIEZpeGVkLWxlbmd0 aCBncm91cCBhYnNvcnB0aW9uOiAoQSBCIEIpKyBDCistLSBCIEIgbWVyZ2VkIHRvIEJ7Mn07IGFi c29yYmFibGUgd2l0aCBmaXhlZC1sZW5ndGggY2hlY2sKKy0tIHN0ZXBfc2l6ZT0zIChBICsgQiAr IEIpOyB2ICUgNyBjeWNsZSBnaXZlcyAyIGl0ZXJhdGlvbnMgcGVyIG1hdGNoCitDUkVBVEUgVklF VyBycHJfZXYyMGIgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDcwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQiBCKSsgQykKKyAgICBERUZJTkUgQSBBUyB2ICUg NyBJTiAoMSwgNCksIEIgQVMgdiAlIDcgSU4gKDIsIDMsIDUsIDYpLCBDIEFTIHYgJSA3ID0gMAor KTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MjBiJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor ICAgICAgICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg UEFUVEVSTiAoKGEgYiBiKSsgYykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA3MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIgQikrIEMpCisgICAgREVGSU5FIEEgQVMgdiAl IDcgSU4gKDEsIDQpLCBCIEFTIHYgJSA3IElOICgyLCAzLCA1LCA2KSwgQyBBUyB2ICUgNyA9IDAK Kyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwg cm93cz03MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYScgYnsyfScpKyIg YworICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRl czogMyBwZWFrLCA5MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogNCBwZWFrLCA3 MSB0b3RhbCwgNDAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA3LzcvNy4wKSwgMCBt aXNtYXRjaGVkCisgICBORkE6IDEwIGFic29yYmVkIChsZW4gMy8zLzMuMCksIDEwIHNraXBwZWQg KGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTcwLjAwIGxvb3BzPTEpCisoOSByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQt bGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCistLSBzdGVwX3NpemUg PSAxICsgKDErMSkqMiArIDEgPSA2OyB2ICUgMTMgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsg RQorQ1JFQVRFIFZJRVcgcnByX2V2MjBjIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA2NSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKyBFKQor ICAgIERFRklORSBBIEFTIHYgJSAxMyBJTiAoMSwgNyksIEIgQVMgdiAlIDEzIElOICgyLCA0LCA4 LCAxMCksCisgICAgICAgICAgIEMgQVMgdiAlIDEzIElOICgzLCA1LCA5LCAxMSksIEQgQVMgdiAl IDEzIElOICg2LCAxMiksCisgICAgICAgICAgIEUgQVMgdiAlIDEzID0gMAorKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBj JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAg ICBsaW5lICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICBQQVRURVJOICgoYSAoYiBjKXsyfSBkKSsgZSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA2NSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKyBFKQorICAg IERFRklORSBBIEFTIHYgJSAxMyBJTiAoMSwgNyksIEIgQVMgdiAlIDEzIElOICgyLCA0LCA4LCAx MCksCisgICAgICAgICAgIEMgQVMgdiAlIDEzIElOICgzLCA1LCA5LCAxMSksIEQgQVMgdiAlIDEz IElOICg2LCAxMiksCisgICAgICAgICAgIEUgQVMgdiAlIDEzID0gMAorKTsnKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTY1LjAwIGxvb3Bz PTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyAoYicgYycpezJ9JyBkJykrIiBlCisgICBT dG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBl YWssIDc2IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDY2IHRvdGFs LCA1MCBwcnVuZWQKKyAgIE5GQTogNSBtYXRjaGVkIChsZW4gMTMvMTMvMTMuMCksIDAgbWlzbWF0 Y2hlZAorICAgTkZBOiA1IGFic29yYmVkIChsZW4gNi82LzYuMCksIDUgc2tpcHBlZCAobGVuIDEv MS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFs IHJvd3M9NjUuMDAgbG9vcHM9MSkKKyg5IHJvd3MpCisKKy0tIERvdWJseSBuZXN0ZWQgZml4ZWQt bGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsgRgorLS0g c3RlcF9zaXplID0gMSArICgoMSszKSoyKzEpKjIgKyAxID0gMjA7IHYgJSA0MSBjeWNsZSBnaXZl cyAyIGl0ZXJhdGlvbnMgKyBGCitDUkVBVEUgVklFVyBycHJfZXYyMGQgQVMKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEg KChCIEMgQyBDKXsyfSBEKXsyfSBFKSsgRikKKyAgICBERUZJTkUgQSBBUyB2ICUgNDEgSU4gKDEs IDIxKSwKKyAgICAgICAgICAgQiBBUyB2ICUgNDEgSU4gKDIsIDYsIDExLCAxNSwgMjIsIDI2LCAz MSwgMzUpLAorICAgICAgICAgICBDIEFTIHYgJSA0MSBJTiAoMyw0LDUsIDcsOCw5LCAxMiwxMywx NCwgMTYsMTcsMTgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAyMywyNCwyNSwgMjcsMjgs MjksIDMyLDMzLDM0LCAzNiwzNywzOCksCisgICAgICAgICAgIEQgQVMgdiAlIDQxIElOICgxMCwg MTksIDMwLCAzOSksCisgICAgICAgICAgIEUgQVMgdiAlIDQxIElOICgyMCwgNDApLAorICAgICAg ICAgICBGIEFTIHYgJSA0MSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIwZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg IFBBVFRFUk4gKChhICgoYiBjIGMgYyl7Mn0gZCl7Mn0gZSkrIGYpIAorKDEgcm93KQorCitTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgODIpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoKEIgQyBDIEMp ezJ9IEQpezJ9IEUpKyBGKQorICAgIERFRklORSBBIEFTIHYgJSA0MSBJTiAoMSwgMjEpLAorICAg ICAgICAgICBCIEFTIHYgJSA0MSBJTiAoMiwgNiwgMTEsIDE1LCAyMiwgMjYsIDMxLCAzNSksCisg ICAgICAgICAgIEMgQVMgdiAlIDQxIElOICgzLDQsNSwgNyw4LDksIDEyLDEzLDE0LCAxNiwxNywx OCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLDI0LDI1LCAyNywyOCwyOSwgMzIsMzMs MzQsIDM2LDM3LDM4KSwKKyAgICAgICAgICAgRCBBUyB2ICUgNDEgSU4gKDEwLCAxOSwgMzAsIDM5 KSwKKyAgICAgICAgICAgRSBBUyB2ICUgNDEgSU4gKDIwLCA0MCksCisgICAgICAgICAgIEYgQVMg diAlIDQxID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5f ZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cgKGFjdHVhbCByb3dzPTgyLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChh JyAoKGInIGN7M30nKXsyfScgZCcpezJ9JyBlJykrIiBmCisgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDg3IHRvdGFsLCAwIG1l cmdlZAorICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDgzIHRvdGFsLCA3NiBwcnVuZWQKKyAgIE5G QTogMiBtYXRjaGVkIChsZW4gNDEvNDEvNDEuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAyIGFi c29yYmVkIChsZW4gMjAvMjAvMjAuMCksIDIgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9ODIuMDAgbG9v cHM9MSkKKyg5IHJvd3MpCisKKy0tIDMtbGV2ZWwgRU5EIGNoYWluIGFic29ycHRpb246ICgoQSAo QiBDKXsyfSl7Mn0pKworLS0gc3RlcF9zaXplID0gKDEgKyAoMSsxKSoyKSAqIDIgPSAxMDsgdiAl IDIxIGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucworLS0gRU5EIGNoYWluOiBFTkQoQkN7Mn0pIC0+ IEVORChBLi57Mn0pIC0+IEVORCgrLCBBQlNPUkJBQkxFKQorQ1JFQVRFIFZJRVcgcnByX2V2MjBl IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0Mikg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKCgoQSAoQiBDKXsyfSl7Mn0pKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMjEg SU4gKDEsIDYsIDExLCAxNiksCisgICAgICAgICAgIEIgQVMgdiAlIDIxIElOICgyLCA0LCA3LCA5 LCAxMiwgMTQsIDE3LCAxOSksCisgICAgICAgICAgIEMgQVMgdiAlIDIxIElOICgzLCA1LCA4LCAx MCwgMTMsIDE1LCAxOCwgMjApCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKChhIChiIGMpezJ9 KXsyfSkrKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQyKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkrKQorICAgIERFRklORSBBIEFTIHYgJSAyMSBJ TiAoMSwgNiwgMTEsIDE2KSwKKyAgICAgICAgICAgQiBBUyB2ICUgMjEgSU4gKDIsIDQsIDcsIDks IDEyLCAxNCwgMTcsIDE5KSwKKyAgICAgICAgICAgQyBBUyB2ICUgMjEgSU4gKDMsIDUsIDgsIDEw LCAxMywgMTUsIDE4LCAyMCkKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9l eHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg V2luZG93QWdnIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0 ZXJuOiAoKGEnIChiJyBjJyl7Mn0nKXsyfScpKyIKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgNDcgdG90YWwsIDAgbWVyZ2Vk CisgICBORkEgQ29udGV4dHM6IDUgcGVhaywgNDMgdG90YWwsIDMwIHBydW5lZAorICAgTkZBOiAy IG1hdGNoZWQgKGxlbiAyMC8yMC8yMC4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDIgYWJzb3Ji ZWQgKGxlbiAxMC8xMC8xMC4wKSwgOCBza2lwcGVkIChsZW4gMS81LzMuMCkKKyAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0x KQorKDkgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLSBNYXRjaCBMZW5ndGggU3RhdGlzdGljcyBUZXN0cwog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CkBAIC0xODk0LDEwICsyMDc2LDEwIEBAIFdJTkRPVyB3IEFTICgKICAgIFdpbmRvdzog dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQog ICAgUGF0dGVybjogKGEnIGInIGMnKSsiCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCi0gICBORkEgU3RhdGVzOiAzIHBlYWssIDgxIHRvdGFsLCAwIG1lcmdlZAotICAg TkZBIENvbnRleHRzOiAzIHBlYWssIDYxIHRvdGFsLCAyMCBwcnVuZWQKKyAgIE5GQSBTdGF0ZXM6 IDQgcGVhaywgODEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDQgcGVhaywgNjEg dG90YWwsIDIwIHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA2MC82MC82MC4wKSwgMCBt aXNtYXRjaGVkCi0gICBORkE6IDE5IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDIwIHNraXBwZWQg KGxlbiAxLzEvMS4wKQorICAgTkZBOiAxOSBhYnNvcmJlZCAobGVuIDMvMy8zLjApLCAyMCBza2lw cGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogKDkgcm93cykKIApAQCAtMjQ2MSw3ICsy NjQzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgTkZBIFN0YXRlczogNCBwZWFrLCAxMDIgdG90YWws IDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNDEgdG90YWwsIDEwIHBydW5lZAog ICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDAgbWlzbWF0Y2hlZAotICAgTkZBOiAy MCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAwIHNraXBwZWQKKyAgIE5GQTogMTAgYWJzb3JiZWQg KGxlbiAxLzEvMS4wKSwgMTAgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICg5 IHJvd3MpCiAKQEAgLTMxNTgsMTAgKzMzNDAsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CiAgICBQYXR0ZXJuOiAoYScgYicpKyIKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKLSAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgNjEgdG90YWwsIDAgbWVyZ2VkCi0gICBO RkEgQ29udGV4dHM6IDIgcGVhaywgNDEgdG90YWwsIDAgcHJ1bmVkCisgICBORkEgU3RhdGVzOiA0 IHBlYWssIDYxIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDQxIHRv dGFsLCAwIHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA0MC80MC80MC4wKSwgMCBtaXNt YXRjaGVkCi0gICBORkE6IDE5IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDIwIHNraXBwZWQgKGxl biAxLzEvMS4wKQorICAgTkZBOiAxOSBhYnNvcmJlZCAobGVuIDIvMi8yLjApLCAyMCBza2lwcGVk IChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQogKDkgcm93cykKIApAQCAtMzIzNCwxMiArMzQx NiwxMiBAQCBXSU5ET1cgdyBBUyAoCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgV2luZG93QWdnIChhY3R1YWwg cm93cz02MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICBQYXR0ZXJuOiAoKGEgYil7Mn0pKwor ICAgUGF0dGVybjogKChhJyBiJyl7Mn0nKSsiCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0g U3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA1IHBlYWssIDc2IHRvdGFsLCAwIG1lcmdlZAog ICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDYxIHRvdGFsLCAxNSBwcnVuZWQKICAgIE5GQTogMSBt YXRjaGVkIChsZW4gNjAvNjAvNjAuMCksIDAgbWlzbWF0Y2hlZAotICAgTkZBOiAwIGFic29yYmVk LCA0NCBza2lwcGVkIChsZW4gMS80LzIuMykKKyAgIE5GQTogMTQgYWJzb3JiZWQgKGxlbiA0LzQv NC4wKSwgMzAgc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CmluZGV4IDdiNWExN2ZiNjcxLi4yNTBm N2YxMzFiMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CkBAIC00NDcsNiAr NDQ3LDMyNyBAQCBXSU5ET1cgdyBBUyAoCiAgIDcgfCB7WH0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCiAoNyByb3dzKQogCistLSBGaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEg QnsyfSkrIEMKKy0tIEJ7Mn0gaGFzIG1pbiA9PSBtYXgsIGVxdWl2YWxlbnQgdG8gdW5yb2xsaW5n IHRvIChBIEIgQikrIEMKK1dJVEggdGVzdF9hYnNvcmJfZml4ZWRsZW4gQVMgKAorICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwg IEFSUkFZWydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgIEFS UkFZWydBJ10pLAorICAgICAgICAoNSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNiwgIEFSUkFZ WydCJ10pLAorICAgICAgICAoNywgIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydC J10pLAorICAgICAgICAoOSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydDJ10p LAorICAgICAgICAoMTEsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NF TEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxh c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfZml4ZWRs ZW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEJ7Mn0pKyBDKQorICAgIERFRklORQorICAgICAg ICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9z dGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDEwCisgIDIgfCB7Qn0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgIDQgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgIDcgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDggfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7Qn0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMTAgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTEgfCB7 WH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoMTEgcm93cykKKworLS0gQ29uc2VjdXRp dmUgdmFycyBtZXJnZWQgdG8gZml4ZWQtbGVuZ3RoOiAoQSBCIEIpKyAtPiAoQSBCezJ9KSsKKy0t IG1lcmdlQ29uc2VjdXRpdmVWYXJzIHByb2R1Y2VzIEJ7Mn07IG5vdyBhYnNvcmJhYmxlIHdpdGgg Zml4ZWQtbGVuZ3RoIGNoZWNrCitXSVRIIHRlc3RfYWJzb3JiX2NvbnNlY3V0aXZlIEFTICgKKyAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsICBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDIsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsICBBUlJBWVsnQiddKSwKKyAgICAgICAg KDQsICBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDYs ICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcsICBBUlJBWVsnQSddKSwKKyAgICAgICAgKDgsICBB UlJBWVsnQiddKSwKKyAgICAgICAgKDksICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDEwLCBBUlJB WVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2NvbnNlY3V0aXZlCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOICgoQSBCIEIpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxh Z3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1h dGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDkKKyAgMiB8IHtCfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgNCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtCfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAgNyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOSB8IHtCfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAxMCB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKygx MCByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIChC IEMpezJ9IEQpKyBFCistLSBJbm5lciBncm91cCB7Mn0gaGFzIG1pbiA9PSBtYXg7IGFic29yYmFi bGUgdmlhIHJlY3Vyc2l2ZSBjaGVjaworLS0gc3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0g NgorV0lUSCB0ZXN0X2Fic29yYl9uZXN0ZWRfZml4ZWRsZW4gQVMgKAorICAgIFNFTEVDVCAqIEZS T00gKFZBTFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgIEFSUkFZ WydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgIEFSUkFZWydC J10pLAorICAgICAgICAoNSwgIEFSUkFZWydDJ10pLAorICAgICAgICAoNiwgIEFSUkFZWydEJ10p LAorICAgICAgICAoNywgIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydCJ10pLAor ICAgICAgICAoOSwgIEFSUkFZWydDJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydCJ10pLAorICAg ICAgICAoMTEsIEFSUkFZWydDJ10pLAorICAgICAgICAoMTIsIEFSUkFZWydEJ10pLAorICAgICAg ICAoMTMsIEFSUkFZWydFJ10pLAorICAgICAgICAoMTQsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0 KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00g dGVzdF9hYnNvcmJfbmVzdGVkX2ZpeGVkbGVuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoQiBD KXsyfSBEKSsgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9 IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAor LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAg ICAgICAgIDEgfCAgICAgICAgMTMKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAgMyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtCfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgNiB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNyB8IHtBfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgOSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMCB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMSB8IHtDfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAxMiB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMyB8 IHtFfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxNCB8IHtYfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKygxNCByb3dzKQorCistLSBEb3VibHkgbmVzdGVkIGZpeGVkLWxlbmd0 aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoKEIgQ3szfSl7Mn0gRCl7Mn0gRSkrIEYKKy0tIHN0ZXBf c2l6ZSA9IDEgKyAoKDErMykqMisxKSoyICsgMSA9IDIwOyAyIGl0ZXJhdGlvbnMgKyBGID0gNDEg cm93cworV0lUSCB0ZXN0X2Fic29yYl9kb3VibHlfbmVzdGVkIEFTICgKKyAgICBTRUxFQ1QgdiBB UyBpZCwgQVJSQVlbCisgICAgICAgIENBU0UKKyAgICAgICAgICAgIFdIRU4gdiAlIDQxIElOICgx LCAyMSkgIFRIRU4gJ0EnCisgICAgICAgICAgICBXSEVOIHYgJSA0MSBJTiAoMiwgNiwgMTEsIDE1 LCAyMiwgMjYsIDMxLCAzNSkgVEhFTiAnQicKKyAgICAgICAgICAgIFdIRU4gdiAlIDQxIElOICgz LDQsNSwgNyw4LDksIDEyLDEzLDE0LCAxNiwxNywxOCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAyMywyNCwyNSwgMjcsMjgsMjksIDMyLDMzLDM0LCAzNiwzNywzOCkgVEhFTiAnQycKKyAg ICAgICAgICAgIFdIRU4gdiAlIDQxIElOICgxMCwgMTksIDMwLCAzOSkgVEhFTiAnRCcKKyAgICAg ICAgICAgIFdIRU4gdiAlIDQxIElOICgyMCwgNDApIFRIRU4gJ0UnCisgICAgICAgICAgICBXSEVO IHYgJSA0MSA9IDAgVEhFTiAnRicKKyAgICAgICAgICAgIEVMU0UgJ1gnCisgICAgICAgIEVORAor ICAgIF0gQVMgZmxhZ3MKKyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA4MikgQVMgcyh2KQor KQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFy dCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9k b3VibHlfbmVzdGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoKEIgQyBDIEMpezJ9IEQpezJ9 IEUpKyBGKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgRiBBUyAnRicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3Mg fCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDQxCisgIDIgfCB7 Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUg fCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgMTAgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgMTEgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTIgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgMTMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgMTQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTUgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTYgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgMTcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTggfCB7Q30g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTkgfCB7RH0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMjAgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjEgfCB7 QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjIgfCB7Qn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgMjMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjQg fCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjUgfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgMjYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg MjcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjggfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgMjkgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgMzAgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzEgfCB7Qn0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgMzIgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgMzMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzQgfCB7Q30gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzUgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgMzYgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzcgfCB7Q30g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzggfCB7Q30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMzkgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDAgfCB7 RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDEgfCB7Rn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgNDIgfCB7QX0gICB8ICAgICAgICAgIDQyIHwgICAgICAgIDgyCisgNDMg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDQgfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgNDUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg NDYgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDcgfCB7Qn0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgNDggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgNDkgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTAgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgNTEgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgNTIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTMgfCB7Q30gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgNTUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTYgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTcgfCB7Q30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgNTggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTkgfCB7 Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjAgfCB7RH0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgNjEgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjIg fCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjMgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgNjQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg NjUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjYgfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgNjcgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgNjggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjkgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgNzAgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgNzEgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzIgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgNzQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzUgfCB7Q30g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgNzcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzggfCB7 Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzkgfCB7Q30gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgODAgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgODEg fCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgODIgfCB7Rn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisoODIgcm93cykKKworLS0gMy1sZXZlbCBFTkQgY2hhaW46ICgoQSAo QiBDKXsyfSl7Mn0pKworLS0gVGVzdHMgRU5EKEJDezJ9KSAtPiBFTkQoQS4uezJ9KSAtPiBFTkQo KykgY2hhaW5pbmcKKy0tIDIgaXRlcmF0aW9ucyBvZiArLCBlYWNoIDEwIHJvd3M6IChBIEIgQyBC IEMpKEEgQiBDIEIgQykKK1dJVEggdGVzdF9hYnNvcmJfM2xldmVsX2VuZCBBUyAoCisgICAgU0VM RUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksICAtLSAxc3QgKyBp dGVyLCAxc3QgezJ9LCBBCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAg QVJSQVlbJ0MnXSksCisgICAgICAgICg0LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCAgQVJS QVlbJ0MnXSksICAtLSAxc3QgKEJDKXsyfSBkb25lCisgICAgICAgICg2LCAgQVJSQVlbJ0EnXSks ICAtLSAxc3QgKyBpdGVyLCAybmQgezJ9LCBBCisgICAgICAgICg3LCAgQVJSQVlbJ0InXSksCisg ICAgICAgICg4LCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAg ICAgICgxMCwgQVJSQVlbJ0MnXSksICAtLSAybmQgKEJDKXsyfSBkb25lLCAxc3QgezJ9IGRvbmUs IDFzdCArIGl0ZXIgZG9uZQorICAgICAgICAoMTEsIEFSUkFZWydBJ10pLCAgLS0gMm5kICsgaXRl ciwgMXN0IHsyfSwgQQorICAgICAgICAoMTIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTMsIEFS UkFZWydDJ10pLAorICAgICAgICAoMTQsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTUsIEFSUkFZ WydDJ10pLAorICAgICAgICAoMTYsIEFSUkFZWydBJ10pLCAgLS0gMm5kICsgaXRlciwgMm5kIHsy fSwgQQorICAgICAgICAoMTcsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTgsIEFSUkFZWydDJ10p LAorICAgICAgICAoMTksIEFSUkFZWydCJ10pLAorICAgICAgICAoMjAsIEFSUkFZWydDJ10pLCAg LS0gMm5kICsgaXRlciBkb25lCisgICAgICAgICgyMSwgQVJSQVlbJ1gnXSkgICAtLSBubyBtYXRj aCwgKyBlbmRzCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfM2xldmVsX2VuZAorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdB JyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAg QyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1h dGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7 QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDIwCisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDcgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDggfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgMTAgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTEgfCB7QX0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgMTIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgMTMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTQgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgMTYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTcgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTggfCB7Q30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMTkgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjAgfCB7 Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjEgfCB7WH0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisoMjEgcm93cykKKwogLS0gTXVsdGlwbGUgdW5ib3VuZGVkOiBBKyBCKyAo Zmlyc3QgZWxlbWVudCB1bmJvdW5kZWQgZW5hYmxlcyBhYnNvcnB0aW9uKQogV0lUSCB0ZXN0X211 bHRpX3VuYm91bmRlZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfYmFzZS5zcWwKaW5kZXggY2Y2YzA2MmFlODUuLjhjMjNjNzU5OGEzIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0yNjAwLDYgKzI2MDAsNDIgQEAgV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwogICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRURVJOICgo QSsgQiB8IEEgQikqKQogICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2 YWwgPiA1MCk7CiAKKy0tIEZpeGVkLWxlbmd0aCBncm91cCBhYnNvcmJhYmxlOiAoQXsyfSBCezN9 KSsgLT4gKGF7Mn0nIGJ7M30nKXsyLH0iCistLSBBbGwgY2hpbGRyZW4gaGF2ZSBtaW4gPT0gbWF4 LCBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0byB7MSwxfQorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBezJ9 IEJ7M30pKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4g NTApOworCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwOiAoQSAoQiBDKXsyfSBEKSsgLT4g YWJzb3JiYWJsZQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBG Uk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKykKKyAgICAgICAgICAg ICBERUZJTkUgQSBBUyB2YWwgPD0gMjAsIEIgQVMgdmFsIDw9IDQwLCBDIEFTIHZhbCA8PSA2MCwg RCBBUyB2YWwgPiA2MCk7CisKKy0tIE5lc3RlZCBmaXhlZC1sZW5ndGggd2l0aCBpbm5lciBxdWFu dGlmaWVyOiAoKEF7Mn0gQnszfSl7Mn0pKyAtPiBhYnNvcmJhYmxlCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAo KChBezJ9IEJ7M30pezJ9KSspCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBC IEFTIHZhbCA+IDUwKTsKKworLS0gTm9uLWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCezIs NX0pKyAtPiBubyBtYXJrZXJzIChtaW4gIT0gbWF4KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIEJ7Miw1 fSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7 CisKKy0tIE5vbi1hYnNvcmJhYmxlIGZpeGVkLWxlbmd0aDogKEEgQj8pKyAtPiBubyBtYXJrZXJz IChtaW4gIT0gbWF4KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIg dyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIEI/KSspCisgICAgICAgICAgICAgREVG SU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKwogLS0gTm9uLWFic29yYmFibGUg KHVuYm91bmRlZCBub3QgYXQgc3RhcnQpOiBBIEIrIC0+IGEgYisgKG5vIG1hcmtlcnMpCiBFWFBM QUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAppbmRleCA5M2UwNmIwY2JkZi4uMjM3ZjAzNjY2 MzEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKQEAgLTU3OCw2ICs1NzgsMTIw IEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMg PSAyLCBDIEFTIHYgJSAzID0gMAogKTsnKTsKIAorLS0gRml4ZWQtbGVuZ3RoIGdyb3VwIGFic29y cHRpb246IChBIEIgQikrIEMKKy0tIEIgQiBtZXJnZWQgdG8gQnsyfTsgYWJzb3JiYWJsZSB3aXRo IGZpeGVkLWxlbmd0aCBjaGVjaworLS0gc3RlcF9zaXplPTMgKEEgKyBCICsgQik7IHYgJSA3IGN5 Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucyBwZXIgbWF0Y2gKK0NSRUFURSBWSUVXIHJwcl9ldjIwYiBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOICgoQSBCIEIpKyBDKQorICAgIERFRklORSBBIEFTIHYgJSA3IElOICgxLCA0KSwg QiBBUyB2ICUgNyBJTiAoMiwgMywgNSwgNiksIEMgQVMgdiAlIDcgPSAwCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGIn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCIEIpKyBDKQorICAgIERFRklO RSBBIEFTIHYgJSA3IElOICgxLCA0KSwgQiBBUyB2ICUgNyBJTiAoMiwgMywgNSwgNiksIEMgQVMg diAlIDcgPSAwCispOycpOworCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRp b246IChBIChCIEMpezJ9IEQpKyBFCistLSBzdGVwX3NpemUgPSAxICsgKDErMSkqMiArIDEgPSA2 OyB2ICUgMTMgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsgRQorQ1JFQVRFIFZJRVcgcnByX2V2 MjBjIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2 NSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKyBFKQorICAgIERFRklORSBBIEFTIHYgJSAx MyBJTiAoMSwgNyksIEIgQVMgdiAlIDEzIElOICgyLCA0LCA4LCAxMCksCisgICAgICAgICAgIEMg QVMgdiAlIDEzIElOICgzLCA1LCA5LCAxMSksIEQgQVMgdiAlIDEzIElOICg2LCAxMiksCisgICAg ICAgICAgIEUgQVMgdiAlIDEzID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBjJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDY1 KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoKEEgKEIgQyl7Mn0gRCkrIEUpCisgICAgREVGSU5FIEEgQVMgdiAlIDEz IElOICgxLCA3KSwgQiBBUyB2ICUgMTMgSU4gKDIsIDQsIDgsIDEwKSwKKyAgICAgICAgICAgQyBB UyB2ICUgMTMgSU4gKDMsIDUsIDksIDExKSwgRCBBUyB2ICUgMTMgSU4gKDYsIDEyKSwKKyAgICAg ICAgICAgRSBBUyB2ICUgMTMgPSAwCispOycpOworCistLSBEb3VibHkgbmVzdGVkIGZpeGVkLWxl bmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoKEIgQ3szfSl7Mn0gRCl7Mn0gRSkrIEYKKy0tIHN0 ZXBfc2l6ZSA9IDEgKyAoKDErMykqMisxKSoyICsgMSA9IDIwOyB2ICUgNDEgY3ljbGUgZ2l2ZXMg MiBpdGVyYXRpb25zICsgRgorQ1JFQVRFIFZJRVcgcnByX2V2MjBkIEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA4MikgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBICgo QiBDIEMgQyl7Mn0gRCl7Mn0gRSkrIEYpCisgICAgREVGSU5FIEEgQVMgdiAlIDQxIElOICgxLCAy MSksCisgICAgICAgICAgIEIgQVMgdiAlIDQxIElOICgyLCA2LCAxMSwgMTUsIDIyLCAyNiwgMzEs IDM1KSwKKyAgICAgICAgICAgQyBBUyB2ICUgNDEgSU4gKDMsNCw1LCA3LDgsOSwgMTIsMTMsMTQs IDE2LDE3LDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMsMjQsMjUsIDI3LDI4LDI5 LCAzMiwzMywzNCwgMzYsMzcsMzgpLAorICAgICAgICAgICBEIEFTIHYgJSA0MSBJTiAoMTAsIDE5 LCAzMCwgMzkpLAorICAgICAgICAgICBFIEFTIHYgJSA0MSBJTiAoMjAsIDQwKSwKKyAgICAgICAg ICAgRiBBUyB2ICUgNDEgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgODIpIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOICgoQSAoKEIgQyBDIEMpezJ9IEQpezJ9IEUpKyBGKQorICAgIERFRklORSBBIEFT IHYgJSA0MSBJTiAoMSwgMjEpLAorICAgICAgICAgICBCIEFTIHYgJSA0MSBJTiAoMiwgNiwgMTEs IDE1LCAyMiwgMjYsIDMxLCAzNSksCisgICAgICAgICAgIEMgQVMgdiAlIDQxIElOICgzLDQsNSwg Nyw4LDksIDEyLDEzLDE0LCAxNiwxNywxOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIz LDI0LDI1LCAyNywyOCwyOSwgMzIsMzMsMzQsIDM2LDM3LDM4KSwKKyAgICAgICAgICAgRCBBUyB2 ICUgNDEgSU4gKDEwLCAxOSwgMzAsIDM5KSwKKyAgICAgICAgICAgRSBBUyB2ICUgNDEgSU4gKDIw LCA0MCksCisgICAgICAgICAgIEYgQVMgdiAlIDQxID0gMAorKTsnKTsKKworLS0gMy1sZXZlbCBF TkQgY2hhaW4gYWJzb3JwdGlvbjogKChBIChCIEMpezJ9KXsyfSkrCistLSBzdGVwX3NpemUgPSAo MSArICgxKzEpKjIpICogMiA9IDEwOyB2ICUgMjEgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zCist LSBFTkQgY2hhaW46IEVORChCQ3syfSkgLT4gRU5EKEEuLnsyfSkgLT4gRU5EKCssIEFCU09SQkFC TEUpCitDUkVBVEUgVklFVyBycHJfZXYyMGUgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQyKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkr KQorICAgIERFRklORSBBIEFTIHYgJSAyMSBJTiAoMSwgNiwgMTEsIDE2KSwKKyAgICAgICAgICAg QiBBUyB2ICUgMjEgSU4gKDIsIDQsIDcsIDksIDEyLCAxNCwgMTcsIDE5KSwKKyAgICAgICAgICAg QyBBUyB2ICUgMjEgSU4gKDMsIDUsIDgsIDEwLCAxMywgMTUsIDE4LCAyMCkKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIw ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA0MikgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCgoQSAoQiBDKXsyfSl7Mn0pKykK KyAgICBERUZJTkUgQSBBUyB2ICUgMjEgSU4gKDEsIDYsIDExLCAxNiksCisgICAgICAgICAgIEIg QVMgdiAlIDIxIElOICgyLCA0LCA3LCA5LCAxMiwgMTQsIDE3LCAxOSksCisgICAgICAgICAgIEMg QVMgdiAlIDIxIElOICgzLCA1LCA4LCAxMCwgMTMsIDE1LCAxOCwgMjApCispOycpOworCiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnByX25mYS5zcWwKaW5kZXggNWVkY2IzMzU3ZTYuLmFhYTdiNDRmNzg5IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfbmZhLnNxbApAQCAtMzQ2LDYgKzM0NiwxNzQgQEAgV0lORE9XIHcgQVMgKAogICAgICAg ICBCIEFTICdCJyA9IEFOWShmbGFncykKICk7CiAKKy0tIEZpeGVkLWxlbmd0aCBncm91cCBhYnNv cnB0aW9uOiAoQSBCezJ9KSsgQworLS0gQnsyfSBoYXMgbWluID09IG1heCwgZXF1aXZhbGVudCB0 byB1bnJvbGxpbmcgdG8gKEEgQiBCKSsgQworV0lUSCB0ZXN0X2Fic29yYl9maXhlZGxlbiBBUyAo CisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksCisg ICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAgQVJSQVlbJ0InXSksCisgICAg ICAgICg0LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCAgQVJSQVlbJ0InXSksCisgICAgICAg ICg2LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg3LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg4 LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAgICgxMCwg QVJSQVlbJ0MnXSksCisgICAgICAgICgxMSwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZs YWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fi c29yYl9maXhlZGxlbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQnsyfSkrIEMpCisgICAgREVG SU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBB TlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisKKy0tIENvbnNl Y3V0aXZlIHZhcnMgbWVyZ2VkIHRvIGZpeGVkLWxlbmd0aDogKEEgQiBCKSsgLT4gKEEgQnsyfSkr CistLSBtZXJnZUNvbnNlY3V0aXZlVmFycyBwcm9kdWNlcyBCezJ9OyBub3cgYWJzb3JiYWJsZSB3 aXRoIGZpeGVkLWxlbmd0aCBjaGVjaworV0lUSCB0ZXN0X2Fic29yYl9jb25zZWN1dGl2ZSBBUyAo CisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksCisg ICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAgQVJSQVlbJ0InXSksCisgICAg ICAgICg0LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCAgQVJSQVlbJ0InXSksCisgICAgICAg ICg2LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg3LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg4 LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAgICgxMCwg QVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9jb25zZWN1dGl2ZQorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKEEgQiBCKSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBOZXN0ZWQg Zml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCistLSBJbm5l ciBncm91cCB7Mn0gaGFzIG1pbiA9PSBtYXg7IGFic29yYmFibGUgdmlhIHJlY3Vyc2l2ZSBjaGVj aworLS0gc3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0gNgorV0lUSCB0ZXN0X2Fic29yYl9u ZXN0ZWRfZml4ZWRsZW4gQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAo MSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMywg IEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgIEFS UkFZWydDJ10pLAorICAgICAgICAoNiwgIEFSUkFZWydEJ10pLAorICAgICAgICAoNywgIEFSUkFZ WydBJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydCJ10pLAorICAgICAgICAoOSwgIEFSUkFZWydD J10pLAorICAgICAgICAoMTAsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTEsIEFSUkFZWydDJ10p LAorICAgICAgICAoMTIsIEFSUkFZWydEJ10pLAorICAgICAgICAoMTMsIEFSUkFZWydFJ10pLAor ICAgICAgICAoMTQsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVD VCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfbmVzdGVkX2Zp eGVkbGVuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoQiBDKXsyfSBEKSsgRSkKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFO WShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAn RCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKKyk7CisKKy0t IERvdWJseSBuZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBICgoQiBDezN9 KXsyfSBEKXsyfSBFKSsgRgorLS0gc3RlcF9zaXplID0gMSArICgoMSszKSoyKzEpKjIgKyAxID0g MjA7IDIgaXRlcmF0aW9ucyArIEYgPSA0MSByb3dzCitXSVRIIHRlc3RfYWJzb3JiX2RvdWJseV9u ZXN0ZWQgQVMgKAorICAgIFNFTEVDVCB2IEFTIGlkLCBBUlJBWVsKKyAgICAgICAgQ0FTRQorICAg ICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDEsIDIxKSAgVEhFTiAnQScKKyAgICAgICAgICAgIFdI RU4gdiAlIDQxIElOICgyLCA2LCAxMSwgMTUsIDIyLCAyNiwgMzEsIDM1KSBUSEVOICdCJworICAg ICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDMsNCw1LCA3LDgsOSwgMTIsMTMsMTQsIDE2LDE3LDE4 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLDI0LDI1LCAyNywyOCwyOSwgMzIsMzMs MzQsIDM2LDM3LDM4KSBUSEVOICdDJworICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDEwLCAx OSwgMzAsIDM5KSBUSEVOICdEJworICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDIwLCA0MCkg VEhFTiAnRScKKyAgICAgICAgICAgIFdIRU4gdiAlIDQxID0gMCBUSEVOICdGJworICAgICAgICAg ICAgRUxTRSAnWCcKKyAgICAgICAgRU5ECisgICAgXSBBUyBmbGFncworICAgIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2RvdWJseV9uZXN0ZWQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKChBICgoQiBDIEMgQyl7Mn0gRCl7Mn0gRSkrIEYpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAg ICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgRSBBUyAnRScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBGIEFTICdGJyA9IEFO WShmbGFncykKKyk7CisKKy0tIDMtbGV2ZWwgRU5EIGNoYWluOiAoKEEgKEIgQyl7Mn0pezJ9KSsK Ky0tIFRlc3RzIEVORChCQ3syfSkgLT4gRU5EKEEuLnsyfSkgLT4gRU5EKCspIGNoYWluaW5nCist LSAyIGl0ZXJhdGlvbnMgb2YgKywgZWFjaCAxMCByb3dzOiAoQSBCIEMgQiBDKShBIEIgQyBCIEMp CitXSVRIIHRlc3RfYWJzb3JiXzNsZXZlbF9lbmQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZB TFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLCAgLS0gMXN0ICsgaXRlciwgMXN0IHsyfSwg QQorICAgICAgICAoMiwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydDJ10pLAor ICAgICAgICAoNCwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgIEFSUkFZWydDJ10pLCAgLS0g MXN0IChCQyl7Mn0gZG9uZQorICAgICAgICAoNiwgIEFSUkFZWydBJ10pLCAgLS0gMXN0ICsgaXRl ciwgMm5kIHsyfSwgQQorICAgICAgICAoNywgIEFSUkFZWydCJ10pLAorICAgICAgICAoOCwgIEFS UkFZWydDJ10pLAorICAgICAgICAoOSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMTAsIEFSUkFZ WydDJ10pLCAgLS0gMm5kIChCQyl7Mn0gZG9uZSwgMXN0IHsyfSBkb25lLCAxc3QgKyBpdGVyIGRv bmUKKyAgICAgICAgKDExLCBBUlJBWVsnQSddKSwgIC0tIDJuZCArIGl0ZXIsIDFzdCB7Mn0sIEEK KyAgICAgICAgKDEyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDEzLCBBUlJBWVsnQyddKSwKKyAg ICAgICAgKDE0LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDE1LCBBUlJBWVsnQyddKSwKKyAgICAg ICAgKDE2LCBBUlJBWVsnQSddKSwgIC0tIDJuZCArIGl0ZXIsIDJuZCB7Mn0sIEEKKyAgICAgICAg KDE3LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDE4LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDE5 LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIwLCBBUlJBWVsnQyddKSwgIC0tIDJuZCArIGl0ZXIg ZG9uZQorICAgICAgICAoMjEsIEFSUkFZWydYJ10pICAgLS0gbm8gbWF0Y2gsICsgZW5kcworICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5k CitGUk9NIHRlc3RfYWJzb3JiXzNsZXZlbF9lbmQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCgoQSAo QiBDKXsyfSl7Mn0pKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5Z KGZsYWdzKQorKTsKKwogLS0gTXVsdGlwbGUgdW5ib3VuZGVkOiBBKyBCKyAoZmlyc3QgZWxlbWVu dCB1bmJvdW5kZWQgZW5hYmxlcyBhYnNvcnB0aW9uKQogV0lUSCB0ZXN0X211bHRpX3VuYm91bmRl ZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0x NTUpCgo= --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0010-Rename-rpr_explain-test-views-to-descriptive-names.txt" Content-Disposition: attachment; filename="nocfbot-0010-Rename-rpr_explain-test-views-to-descriptive-names.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfn3wo9 RnJvbSAzZTRkNjViOWY3NTQ0NGZmNThjYjFiNzg1ODU1OGJiZTZjNzc2MTZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDQgQXByIDIwMjYgMjI6MDA6NTAgKzA5MDAKU3ViamVjdDogW1BBVENIXSBSZW5hbWUg cnByX2V4cGxhaW4gdGVzdCB2aWV3cyBmcm9tIHNlcXVlbnRpYWwgbnVtYmVycyB0bwogZGVzY3Jp cHRpdmUgbmFtZXMKClJlcGxhY2UgcnByX2V2MDEuLnJwcl9ldjg5IHdpdGggc2VjdGlvbi1iYXNl ZCBuYW1lcyBsaWtlCnJwcl9ldl9jdHhfYWJzb3JiX2dyb3VwLCBycHJfZXZfYWx0X25lc3RlZF9z dGFydCwgZXRjLgpUaGlzIGF2b2lkcyBudW1iZXJpbmcgY29uZmxpY3RzIHdoZW4gaW5zZXJ0aW5n IG5ldyB0ZXN0cy4KLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91 dCB8IDM3OCArKysrKysrKysrKy0tLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJf ZXhwbGFpbi5zcWwgICAgICB8IDM3MiArKysrKysrKysrLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMzc1IGluc2VydGlvbnMoKyksIDM3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDU2MGYyMWY0NGMyLi5mNjZjYWY4OTA4 ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTExMSw3 ICsxMTEsNyBAQCBWQUxVRVMKIC0tIEJhc2ljIE5GQSBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tIFNpbXBsZSBwYXR0ZXJuIC0gc2hvdWxkIHNob3cgYmFzaWMgc3RhdGlzdGljcwotQ1JFQVRF IFZJRVcgcnByX2V2MDEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9iYXNpY19zaW1wbGUgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBA IC0xMjAsNyArMTIwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQikKICAgICBE RUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InCiApOwotU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwMScpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX3NpbXBsZScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIpIApAQCAtMTUwLDcgKzE1 MCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFBhdHRlcm4gd2l0aCBubyBtYXRj aGVzIC0gMCBtYXRjaGVkCi1DUkVBVEUgVklFVyBycHJfZXYwMiBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X2Jhc2ljX25vbWF0Y2ggQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25m YV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xNTksNyArMTU5LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKFggWSBaKQogICAgIERFRklORSBYIEFTIGNhdCA9ICdYJywgWSBBUyBjYXQg PSAnWScsIFogQVMgY2F0ID0gJ1onCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX25vbWF0Y2gnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKHggeSB6KSAKQEAgLTE4OCw3ICsxODgsNyBAQCBX SU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBQYXR0ZXJuIG1hdGNoaW5nIGV2ZXJ5IHJvdyAt IGhpZ2ggbWF0Y2ggY291bnQKLUNSRUFURSBWSUVXIHJwcl9ldjAzIEFTCitDUkVBVEUgVklFVyBy cHJfZXZfYmFzaWNfYWxscm93cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBycHJf bmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTE5Nyw3ICsxOTcsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoUikKICAgICBERUZJTkUgUiBBUyBUUlVFCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwMycpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX2FsbHJv d3MnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICBsaW5l ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChyKSAKQEAgLTIyNyw3ICsyMjcs NyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIFJlZ3Jlc3Npb24gdGVzdDogU3BhY2UgYmVmb3JlIHBh cmVudGhlc2lzIGluIHBhdHRlcm4gZGVwYXJzZQogLS0gVmVyaWZpZXMgdGhhdCAiQSAoQiB8IEMp IiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiYSAoYiB8IGMpIiB3aXRoIHNwYWNlCi1DUkVBVEUgVklF VyBycHJfZXYwNCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX2RlcGFyc2Vfc3BhY2UgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBz KHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzUsNyArMjM1LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEEgKEIgfCBDKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAl IDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MDQnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9iYXNpY19kZXBhcnNlX3NwYWNlJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgIGxpbmUgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGEgKGIgfCBjKSkgCkBA IC0yNjYsNyArMjY2LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gUmVncmVzc2lvbiB0ZXN0OiBTZXF1 ZW50aWFsIGFsdGVybmF0aW9ucyBhdCBzYW1lIGRlcHRoCiAtLSBWZXJpZmllcyB0aGF0ICIoKEIg fCBDKSAoRCB8IEUpKSIgY29ycmVjdGx5IG91dHB1dHMgYXMgIihiIHwgYykgKGQgfCBlKSIKIC0t IFByZXZpb3VzbHkgZmFpbGVkIGR1ZSB0byBtaXNzaW5nIHBhcmVudGhlc2VzIG9uIEFMVCBkZXB0 aCBkZWNyZWFzZQotQ1JFQVRFIFZJRVcgcnByX2V2MDUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9i YXNpY19kZXBhcnNlX3NlcWFsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI3NCw3ICsyNzQs NyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSAoKEIgfCBDKSAoRCB8IEUpKSopCiAg ICAgREVGSU5FIEEgQVMgdiAlIDUgPSAxLCBCIEFTIHYgJSA1ID0gMiwgQyBBUyB2ICUgNSA9IDMs IEQgQVMgdiAlIDUgPSA0LCBFIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MDUnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9iYXNpY19kZXBhcnNlX3NlcWFs dCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAg ICAgIGxpbmUgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAgUEFUVEVSTiAoYSAoKGIgfCBjKSAoZCB8IGUpKSopIApAQCAtMzA1LDcgKzMwNSw3 IEBAIFdJTkRPVyB3IEFTICgKIC0tIFN0YXRlIFN0YXRpc3RpY3MgVGVzdHMgKHBlYWssIHRvdGFs LCBtZXJnZWQpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIFNpbXBsZSBxdWFudGlmaWVyIHBhdHRlcm4gLSBBKyB3aXRo IHNob3J0IG1hdGNoZXMgKG5vIG1lcmdpbmcpCi1DUkVBVEUgVklFVyBycHJfZXYwNiBBUworQ1JF QVRFIFZJRVcgcnByX2V2X3N0YXRlX3NpbXBsZV9xdWFudCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTMxNCw3ICszMTQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAg REVGSU5FIEEgQVMgdiAlIDIgPSAxCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX3NpbXBsZV9xdWFudCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgIGxpbmUgICAgICAgCiAtLS0t LS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSspIApAQCAtMzQzLDcgKzM0Myw3IEBAIFdJTkRP VyB3IEFTICgKICg4IHJvd3MpCiAKIC0tIEFsdGVybmF0aW9uIHBhdHRlcm4gLSBtdWx0aXBsZSBz dGF0ZSBicmFuY2hlcwotQ1JFQVRFIFZJRVcgcnByX2V2MDcgQVMKK0NSRUFURSBWSUVXIHJwcl9l dl9zdGF0ZV9hbHQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0 CiBXSU5ET1cgdyBBUyAoCkBAIC0zNTQsNyArMzU0LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAg ICBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAogICAgICAg ICBEIEFTIGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjA3JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICAgbGluZSAg ICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFU VEVSTiAoKGEgfCBiIHwgYykgKGQgfCBlKSkgCkBAIC0zODYsNyArMzg2LDcgQEAgV0lORE9XIHcg QVMgKAogKDkgcm93cykKIAogLS0gQ29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBzdGF0ZSBjb3Vu dAotQ1JFQVRFIFZJRVcgcnByX2V2MDggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9jb21w bGV4IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAx MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM5OCw3ICszOTgsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgICAgIEIgQVMgdiAlIDMgPSAyLAogICAgICAgICBDIEFTIHYgJSAzID0gMAogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MDgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9zdGF0ZV9jb21wbGV4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQ QVRURVJOIChhKyBiKiBjKykgCkBAIC00MzEsNyArNDMxLDcgQEAgV0lORE9XIHcgQVMgKAogKDkg cm93cykKIAogLS0gR3JvdXBlZCBwYXR0ZXJuIHdpdGggcXVhbnRpZmllciAtIHN0YXRlIGNvdW50 IHdpdGggZ3JvdXBpbmcKLUNSRUFURSBWSUVXIHJwcl9ldjA5IEFTCitDUkVBVEUgVklFVyBycHJf ZXZfc3RhdGVfZ3JvdXBfcXVhbnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC00NDAsNyArNDQw LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIEIpKykKICAgICBERUZJTkUgQSBB UyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwOScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2dyb3VwX3F1YW50JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICBsaW5lICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIGIpKykgCkBAIC00NzEs NyArNDcxLDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBTdGF0ZSBleHBsb3Npb24gcGF0dGVybiAt IG1hbnkgYWx0ZXJuYXRpb25zCiAtLSBQYXR0ZXJuIChBfEIpKEF8QikoQXxCKShBfEIpIGNhbiBj cmVhdGUgbWFueSBwYXJhbGxlbCBzdGF0ZXMKLUNSRUFURSBWSUVXIHJwcl9ldjEwIEFTCitDUkVB VEUgVklFVyBycHJfZXZfc3RhdGVfZXhwbG9zaW9uIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAg LTQ4MCw3ICs0ODAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8 IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpKQogICAg IERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEwJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfZXhwbG9z aW9uJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikg KGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEgfCBiKSkg CkBAIC01MTEsNyArNTExLDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBDb25zZWN1dGl2ZSBBTFQg bWVyZ2UgZm9sbG93ZWQgYnkgZGlmZmVyZW50IEFMVAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2 ZUFsdHMgZmx1c2ggb24gQUxUIGNoYW5nZTogKEF8Qil7Mn0gKEN8RCkKLUNSRUFURSBWSUVXIHJw cl9ldjExIEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X21lcmdlX2FsdCBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTUyMCw3ICs1MjAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoKEEgfCBCKSAoQSB8IEIpIChDIHwgRCkpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAw LCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYxMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0 YXRlX2FsdF9tZXJnZV9hbHQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikgKGEgfCBiKSAo YyB8IGQpKSAKQEAgLTU1MSw3ICs1NTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIENvbnNlY3V0 aXZlIEFMVCBtZXJnZSBmb2xsb3dlZCBieSBub24tQUxUIGVsZW1lbnQKIC0tIFRlc3RzIG1lcmdl Q29uc2VjdXRpdmVBbHRzIGZsdXNoIG9uIG5vbi1BTFQ6IChBfEIpezJ9IGMKLUNSRUFURSBWSUVX IHJwcl9ldjEyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X21lcmdlX25vbmFsdCBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTU2MCw3ICs1NjAsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAw LCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEyJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0X21lcmdlX25v bmFsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAg ICAgICAgbGluZSAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgUEFUVEVSTiAoKGEgfCBiKSAoYSB8IGIpIGMpIApAQCAtNTkwLDcgKzU5MCw3IEBAIFdJ TkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEFMVCBwcmVmaXgvc3VmZml4IGFic29yYmVkIGlu dG8gR1JPVVA6IChBfEIpIChBfEIpKyAoQXxCKSAtPiAoQXxCKXszLH0KLUNSRUFURSBWSUVXIHJw cl9ldjEzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X2Fic29yYl9ncm91cCBBUwog U0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHMo dikKIFdJTkRPVyB3IEFTICgKQEAgLTU5OSw3ICs1OTksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpKyAoQSB8IEIpKQogICAgIERFRklORSBBIEFTIHYgJSAy ID0gMCwgQiBBUyB2ICUgMiA9IDEKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0X2Fic29yYl9ncm91cCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgICAgbGlu ZSAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikrIChhIHwgYikpIApAQCAtNjI5LDcgKzYy OSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEhpZ2ggc3RhdGUgY291bnQgLSBh bHRlcm5hdGlvbiB3aXRoIHBsdXMgcXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2MTQgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAo CkBAIC02MzgsNyArNjM4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQiB8 IEMpKyBEKQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMg diAlIDQgPSAzLCBEIEFTIHYgJSA0ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfcGx1cycpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgIGxpbmUgICAgICAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgfCBi IHwgYykrIGQpIApAQCAtNjY5LDcgKzY2OSw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gRWFybHkg dGVybWluYXRpb246IGZpcnN0IEFMVCBicmFuY2ggKEEpIHJlYWNoZXMgRklOIGltbWVkaWF0ZWx5 LAogLS0gcHJ1bmluZyBzZWNvbmQgYnJhbmNoIChBIEIrKSBiZWZvcmUgaXQgY2FuIGFjY3VtdWxh dGUgQiByZXBldGl0aW9ucy4KLUNSRUFURSBWSUVXIHJwcl9ldjE1IEFTCitDUkVBVEUgVklFVyBy cHJfZXZfc3RhdGVfYWx0X3BydW5lIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTY3OCw3ICs2 NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBBIEIpKykKICAgICBERUZJ TkUgQSBBUyB2ID0gMSwgQiBBUyB2ID4gMQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTUnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfcHJ1bmUnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGEgYikrKSAK QEAgLTcwNyw3ICs3MDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBOZXN0ZWQg cXVhbnRpZmllcnMgY2F1c2luZyBzdGF0ZSBncm93dGgKLUNSRUFURSBWSUVXIHJwcl9ldjE2IEFT CitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfbmVzdGVkX3F1YW50IEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC03MTYsNyArNzE2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKCgo QSB8IEIpKykrKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIKICk7 Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjE2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfc3RhdGVfbmVzdGVkX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOICgoKGEgfCBiKSspKykgCkBAIC03NDksNyArNzQ5LDcgQEAgV0lO RE9XIHcgQVMgKAogLS0gQ29udGV4dCBTdGF0aXN0aWNzIFRlc3RzIChwZWFrLCB0b3RhbCwgcHJ1 bmVkICsgYWJzb3JiZWQvc2tpcHBlZCkKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQ29udGV4dCBhYnNvcnB0aW9uIHdp dGggdW5ib3VuZGVkIHF1YW50aWZpZXIgYXQgc3RhcnQKLUNSRUFURSBWSUVXIHJwcl9ldjE3IEFT CitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl91bmJvdW5kZWQgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC03NTgsNyArNzU4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEr IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djE3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4 X2Fic29yYl91bmJvdW5kZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTc4OCw3ICs3ODgsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAt LSBObyBhYnNvcnB0aW9uIC0gYm91bmRlZCBxdWFudGlmaWVyCi1DUkVBVEUgVklFVyBycHJfZXYx OCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19hYnNvcmIgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBB UyAoCkBAIC03OTcsNyArNzk3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Miw0 fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYxOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0 eF9ub19hYnNvcmInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAg ICAgICAgICBsaW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRF Uk4gKGF7Miw0fSBiKSAKQEAgLTgyNyw3ICs4MjcsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dz KQogCiAtLSBDb250ZXh0cyBza2lwcGVkIGJ5IFNLSVAgUEFTVCBMQVNUIFJPVwotQ1JFQVRFIFZJ RVcgcnByX2V2MTkgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9jdHhfc2tpcCBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5E T1cgdyBBUyAoCkBAIC04MzYsNyArODM2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEEgQiBDKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA9IDEsIEIgQVMgdiAlIDEwID0gMiwgQyBB UyB2ICUgMTAgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxOScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X2N0eF9za2lwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICBQQVRURVJOIChhIGIgYykgCkBAIC04NjYsNyArODY2LDcgQEAgV0lORE9XIHcgQVMgKAog KDkgcm93cykKIAogLS0gSGlnaCBjb250ZXh0IGFic29ycHRpb24gLSB1bmJvdW5kZWQgZ3JvdXAK LUNSRUFURSBWSUVXIHJwcl9ldjIwIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9n cm91cCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC04NzUsNyArODc1LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKChBIEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwg QiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMCcpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNvcmJfZ3JvdXAnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBsaW5lICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIGIpKyBjKSAK QEAgLTkwNyw3ICs5MDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBGaXhlZC1sZW5ndGggZ3JvdXAg YWJzb3JwdGlvbjogKEEgQiBCKSsgQwogLS0gQiBCIG1lcmdlZCB0byBCezJ9OyBhYnNvcmJhYmxl IHdpdGggZml4ZWQtbGVuZ3RoIGNoZWNrCiAtLSBzdGVwX3NpemU9MyAoQSArIEIgKyBCKTsgdiAl IDcgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zIHBlciBtYXRjaAotQ1JFQVRFIFZJRVcgcnByX2V2 MjBiIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9maXhlZHZhciBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTkxNiw3ICs5MTYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoKEEgQiBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNyBJTiAoMSwgNCksIEIgQVMgdiAl IDcgSU4gKDIsIDMsIDUsIDYpLCBDIEFTIHYgJSA3ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBiJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9maXhl ZHZhcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAg ICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4g KChhIGIgYikrIGMpIApAQCAtOTQ3LDcgKzk0Nyw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gTmVz dGVkIGZpeGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoQiBDKXsyfSBEKSsgRQogLS0g c3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0gNjsgdiAlIDEzIGN5Y2xlIGdpdmVzIDIgaXRl cmF0aW9ucyArIEUKLUNSRUFURSBWSUVXIHJwcl9ldjIwYyBBUworQ1JFQVRFIFZJRVcgcnByX2V2 X2N0eF9hYnNvcmJfbmVzdGVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA2NSkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtOTU4LDcgKzk1OCw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgICAgQyBBUyB2ICUgMTMgSU4gKDMsIDUsIDksIDEx KSwgRCBBUyB2ICUgMTMgSU4gKDYsIDEyKSwKICAgICAgICAgICAgRSBBUyB2ICUgMTMgPSAwCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYyMGMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9jdHhfYWJzb3JiX25lc3RlZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKICAgICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgKGIgYyl7Mn0gZCkrIGUpIApAQCAt OTkxLDcgKzk5MSw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gRG91Ymx5IG5lc3RlZCBmaXhlZC1s ZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKChCIEN7M30pezJ9IEQpezJ9IEUpKyBGCiAtLSBz dGVwX3NpemUgPSAxICsgKCgxKzMpKjIrMSkqMiArIDEgPSAyMDsgdiAlIDQxIGN5Y2xlIGdpdmVz IDIgaXRlcmF0aW9ucyArIEYKLUNSRUFURSBWSUVXIHJwcl9ldjIwZCBBUworQ1JFQVRFIFZJRVcg cnByX2V2X2N0eF9hYnNvcmJfZGVlcCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgODIpIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEwMDYsNyAr MTAwNiw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgICAgRSBBUyB2ICUgNDEgSU4gKDIwLCA0 MCksCiAgICAgICAgICAgIEYgQVMgdiAlIDQxID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBkJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9kZWVwJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICAg ICAgIGxpbmUgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgKChiIGMgYyBjKXsyfSBkKXsyfSBlKSsg ZikgCkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSAzLWxldmVsIEVORCBj aGFpbiBhYnNvcnB0aW9uOiAoKEEgKEIgQyl7Mn0pezJ9KSsKIC0tIHN0ZXBfc2l6ZSA9ICgxICsg KDErMSkqMikgKiAyID0gMTA7IHYgJSAyMSBjeWNsZSBnaXZlcyAyIGl0ZXJhdGlvbnMKIC0tIEVO RCBjaGFpbjogRU5EKEJDezJ9KSAtPiBFTkQoQS4uezJ9KSAtPiBFTkQoKywgQUJTT1JCQUJMRSkK LUNSRUFURSBWSUVXIHJwcl9ldjIwZSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJf ZW5kY2hhaW4gQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDQyKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMDU1LDcgKzEwNTUsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgICAgICAgIEIgQVMgdiAlIDIxIElOICgyLCA0LCA3LCA5LCAxMiwgMTQs IDE3LCAxOSksCiAgICAgICAgICAgIEMgQVMgdiAlIDIxIElOICgzLCA1LCA4LCAxMCwgMTMsIDE1 LCAxOCwgMjApCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXYyMGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2VuZGNoYWluJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKCgoYSAoYiBj KXsyfSl7Mn0pKykgCkBAIC0xMDkwLDcgKzEwOTAsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBNYXRj aCBMZW5ndGggU3RhdGlzdGljcyBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBGaXhlZCBsZW5ndGggbWF0Y2hl cyAtIGFsbCBzYW1lIGxlbmd0aAotQ1JFQVRFIFZJRVcgcnByX2V2MjEgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl9tbGVuX2ZpeGVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9u ZmFfdGVzdAogV0lORE9XIHcgQVMgKApAQCAtMTEwMSw3ICsxMTAxLDcgQEAgV0lORE9XIHcgQVMg KAogICAgICAgICBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0Mn LAogICAgICAgICBEIEFTIGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIxJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxlbl9maXhl ZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBs aW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIg YyBkIGUpIApAQCAtMTEzMyw3ICsxMTMzLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAog LS0gVmFyaWFibGUgbGVuZ3RoIG1hdGNoZXMgLSBtaW4vbWF4L2F2ZyBkaWZmZXIKLUNSRUFURSBW SUVXIHJwcl9ldjIyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl92YXJpYWJsZSBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAg PSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYyMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X21sZW5fdmFyaWFibGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQ QVRURVJOIChhKyBiKSAKQEAgLTExNzIsNyArMTE3Miw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJv d3MpCiAKIC0tIFZlcnkgbG9uZyBtYXRjaGVzCi1DUkVBVEUgVklFVyBycHJfZXYyMyBBUworQ1JF QVRFIFZJRVcgcnByX2V2X21sZW5fbG9uZyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMTgx LDcgKzExODEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJ TkUgQSBBUyB2IDw9IDE5NSwgQiBBUyB2ID4gMTk1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMycpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X21sZW5fbG9uZycpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0t LS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMTIxMSw3ICsxMjExLDcg QEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVW5pZm9ybSBtYXRjaCBsZW5ndGggd2l0 aCBtaXNtYXRjaGVzIGZyb20gZ2FwIHJvd3MgKHYlMjAgPSAxMS4uMTUpCi1DUkVBVEUgVklFVyBy cHJfZXYyNCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fd2l0aF9taXNtYXRjaCBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0xMjIyLDcgKzEyMjIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg ICAgIEEgQVMgKHYgJSAyMCA8PiAwKSBBTkQgKHYgJSAyMCA8PSAxMCBPUiB2ICUgMjAgPiAxNSks CiAgICAgICAgIEIgQVMgdiAlIDIwID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX3dpdGhfbWlzbWF0Y2gnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTEyNTgsNyArMTI1 OCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUGF0dGVybiB3aXRoIGNvbXBsZXRlIG1h dGNoIGV2ZXJ5IGN5Y2xlOiAwIG1pc21hdGNoZWQKIC0tIEEoMSwyLDMpIEIoNCw1KSBDKDYpIHJl cGVhdHMgcGVyZmVjdGx5OyBYIHJvd3MgYXJlIHBydW5lZCwgbm90IG1pc21hdGNoZWQKLUNSRUFU RSBWSUVXIHJwcl9ldjI1IEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9ub19taXNtYXRjaCBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIHYsCkBAIC0xMjc0 LDcgKzEyNzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykKICAgICBE RUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MjUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9tbGVuX25vX21pc21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg UEFUVEVSTiAoYSsgYisgYykgCkBAIC0xMzExLDcgKzEzMTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAo OSByb3dzKQogCiAtLSBMb25nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0IGZhaWwKLUNSRUFURSBWSUVX IHJwcl9ldjI2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9sb25nX3BhcnRpYWwgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gKAogICAgIFNFTEVDVCBpIEFTIHYsCkBAIC0xMzMy LDcgKzEzMzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykKICAgICBE RUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MjYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9tbGVuX2xvbmdfcGFydGlhbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKICAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKGErIGIrIGMpIApAQCAtMTM3Nyw3ICsxMzc3LDcgQEAgV0lORE9XIHcgQVMgKAog LS0gSlNPTiBGb3JtYXQgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gSlNPTiBmb3JtYXQgb3V0cHV0IHdpdGgg YWxsIHN0YXRpc3RpY3MKLUNSRUFURSBWSUVXIHJwcl9ldjI3IEFTCitDUkVBVEUgVklFVyBycHJf ZXZfanNvbl9iYXNpYyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEzODYsNyArMTM4Niw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKykKICAgICBERUZJTkUgQSBBUyB2ICUg MyA9IDEsIEIgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fYmFzaWMnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIrKSAKQEAgLTE0NTQsNyArMTQ1NCw3IEBAIFdJ TkRPVyB3IEFTICgKICgxIHJvdykKIAogLS0gSlNPTiBmb3JtYXQgd2l0aCBtYXRjaCBsZW5ndGgg c3RhdGlzdGljcwotQ1JFQVRFIFZJRVcgcnByX2V2MjggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9q c29uX21hdGNobGVuIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE0NjMsNyArMTQ2Myw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSAx MCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI4JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfanNvbl9tYXRjaGxlbicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMTUzNSw3ICsxNTM1LDcgQEAg V0lORE9XIHcgQVMgKAogCiAtLSBKU09OIGZvcm1hdCB3aXRoIG1pc21hdGNoIHN0YXRpc3RpY3MK IC0tIFBhdHRlcm4gQSBCIEMgZXhwZWN0cyAxLDIsMyBidXQgZ2V0cyAxLDIsNCB0d2ljZSBjYXVz aW5nIG1pc21hdGNoZXMKLUNSRUFURSBWSUVXIHJwcl9ldjI5IEFTCitDUkVBVEUgVklFVyBycHJf ZXZfanNvbl9taXNtYXRjaCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoVkFMVUVT ICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFTIHQodikKIFdJTkRPVyB3 IEFTICgKQEAgLTE1NDQsNyArMTU0NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB IEIgQykKICAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBBUyB2ID0gMwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MjknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9qc29uX21pc21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhIGIgYykgCkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIEpTT04g Zm9ybWF0IHdpdGggc2tpcHBlZCBjb250ZXh0IHN0YXRpc3RpY3MKIC0tIEFsdGVybmF0aW9uIHBh dHRlcm4gd2l0aCBTS0lQIFBBU1QgTEFTVCBST1cgY2F1c2VzIG1hbnkgY29udGV4dHMgdG8gYmUg c2tpcHBlZAotQ1JFQVRFIFZJRVcgcnByX2V2MzAgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9qc29u X3NraXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTYyNCw3ICsxNjI0LDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEg fCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEs IEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2pzb25fc2tpcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwg YikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikpIApAQCAtMTY5OCw3ICsxNjk4LDcgQEAgV0lORE9X IHcgQVMgKAogLS0gWE1MIEZvcm1hdCBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBYTUwgZm9ybWF0IG91dHB1 dAotQ1JFQVRFIFZJRVcgcnByX2V2MzEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl94bWxfYmFzaWMg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNzA3LDcgKzE3MDcsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUg MiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjMxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfeG1sX2Jhc2ljJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRF Uk4gKGEgYikgCkBAIC0xNzc4LDcgKzE3NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBNdWx0aXBs ZSBQYXJ0aXRpb25zIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFN0YXRpc3RpY3MgYWNyb3NzIG11bHRpcGxl IHBhcnRpdGlvbnMKLUNSRUFURSBWSUVXIHJwcl9ldjMyIEFTCitDUkVBVEUgVklFVyBycHJfZXZf cGFydF9tdWx0aSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNU IHAsIHYKQEAgLTE3OTIsNyArMTc5Miw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB KyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYzMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3Bh cnRfbXVsdGknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAg ICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAK QEAgLTE4MzIsNyArMTgzMiw3IEBAIFdJTkRPVyB3IEFTICgKICgxNCByb3dzKQogCiAtLSBEaWZm ZXJlbnQgcGF0dGVybiBiZWhhdmlvciBwZXIgcGFydGl0aW9uCi1DUkVBVEUgVklFVyBycHJfZXYz MyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3BhcnRfZGlmZiBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSAoCiAgICAgU0VMRUNUCkBAIC0xODQ3LDcgKzE4NDcsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2YWwgPCA1LCBCIEFTIHZh bCA+PSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXYzMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2X3BhcnRfZGlmZicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBB VFRFUk4gKGErIGIpIApAQCAtMTg4OSw3ICsxODg5LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gRWRn ZSBDYXNlcwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLSBFbXB0eSByZXN1bHQgc2V0Ci1DUkVBVEUgVklFVyBycHJfZXYz NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2VfZW1wdHkgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTE4OTgsNyArMTg5OCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIpCiAg ICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM0JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZWRnZV9lbXB0eScpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIpIApAQCAtMTkyMyw3ICsxOTIzLDcg QEAgV0lORE9XIHcgQVMgKAogKDQgcm93cykKIAogLS0gU2luZ2xlIHJvdwotQ1JFQVRFIFZJRVcg cnByX2V2MzUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9yb3cgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTE5MzIsNyArMTkzMiw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBKQogICAgIERFRklORSBBIEFTIFRSVUUKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM1JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZWRnZV9zaW5nbGVfcm93JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgbGluZSAgICAgIAog LS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSkgCkBAIC0xOTYxLDcgKzE5NjEsNyBAQCBX SU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBQYXR0ZXJuIGxvbmdlciB0aGFuIGRhdGEKLUNS RUFURSBWSUVXIHJwcl9ldjM2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfZWRnZV9wYXR0ZXJuX2xv bmdlciBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NSkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTk3Miw3ICsxOTcyLDcgQEAgV0lORE9XIHcg QVMgKAogICAgICAgICBBIEFTIHYgPSAxLCBCIEFTIHYgPSAyLCBDIEFTIHYgPSAzLCBEIEFTIHYg PSA0LCBFIEFTIHYgPSA1LAogICAgICAgICBGIEFTIHYgPSA2LCBHIEFTIHYgPSA3LCBIIEFTIHYg PSA4LCBJIEFTIHYgPSA5LCBKIEFTIHYgPSAxMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzYnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9lZGdlX3BhdHRlcm5fbG9uZ2VyJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICAg bGluZSAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgUEFUVEVSTiAoYSBiIGMgZCBlIGYgZyBoIGkgaikgCkBAIC0yMDAzLDcgKzIwMDMsNyBAQCBX SU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBBbGwgcm93cyBtYXRjaCBhcyBzaW5nbGUgbWF0 Y2gKLUNSRUFURSBWSUVXIHJwcl9ldjM3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfZWRnZV9zaW5n bGVfbWF0Y2ggQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMDEyLDcgKzIwMTIsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgVFJVRQogKTsKLVNF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2MzcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9l ZGdlX3NpbmdsZV9tYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSsp IApAQCAtMjA0NSw3ICsyMDQ1LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gQ29tcGxleCBQYXR0ZXJu IFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIE5lc3RlZCBncm91cHMKLUNSRUFURSBWSUVXIHJwcl9ldjM4IEFT CitDUkVBVEUgVklFVyBycHJfZXZfY3B4X25lc3RlZCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAg LTIwNTQsNyArMjA1NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQikgQykr KQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMg PSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYzOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X2NweF9uZXN0ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgICBQQVRURVJOICgoKGEgYikgYykrKSAKQEAgLTIwODQsNyArMjA4NCw3IEBAIFdJTkRP VyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIE11bHRpcGxlIGFsdGVybmF0aW9ucwotQ1JFQVRFIFZJ RVcgcnByX2V2MzkgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9jcHhfbXVsdGlfYWx0IEFTCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMgKApAQCAt MjA5NSw3ICsyMDk1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTIGNhdCA9ICdBJywg QiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAogICAgICAgICBEIEFTIGNhdCA9ICdEJywg RSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X211bHRpX2FsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikg KGMgfCBkIHwgZSkpIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93 cykKIAogLS0gT3B0aW9uYWwgZWxlbWVudHMKLUNSRUFURSBWSUVXIHJwcl9ldjQwIEFTCitDUkVB VEUgVklFVyBycHJfZXZfY3B4X29wdGlvbmFsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjEz Niw3ICsyMTM2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQj8gQykKICAgICBE RUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAyLCBDIEFTIHYgJSA0ID0gMwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2NDAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9jcHhfb3B0aW9uYWwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVS TiAoYSBiPyBjKSAKQEAgLTIxNjYsNyArMjE2Niw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3Mp CiAKIC0tIEJvdW5kZWQgcXVhbnRpZmllcnMKLUNSRUFURSBWSUVXIHJwcl9ldjQxIEFTCitDUkVB VEUgVklFVyBycHJfZXZfY3B4X2JvdW5kZWQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjE3 NSw3ICsyMTc1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Miw1fSBCKQogICAg IERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQxJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X2JvdW5k ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBs aW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGF7Miw1 fSBiKSAKQEAgLTIyMDUsNyArMjIwNSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0t IFN0YXIgcXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2NDIgQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9jcHhfc3RhciBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIyMTQsNyArMjIxNCw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIqIEMpCiAgICAgREVGSU5FIEEgQVMgdiAl IDEwID0gMSwgQiBBUyB2ICUgMTAgSU4gKDIsMyw0LDUsNiw3LDgpLCBDIEFTIHYgJSAxMCA9IDkK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjQyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfY3B4X3N0YXInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVS TiAoYSBiKiBjKSAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIFJlYWwt d29ybGQgUGF0dGVybiBFeGFtcGxlcwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTdG9jayBwcmljZSBwYXR0ZXJuIC0g Vi1zaGFwZSAoZG93biB0aGVuIHVwKQotQ1JFQVRFIFZJRVcgcnByX2V2NDMgQVMKK0NSRUFURSBW SUVXIHJwcl9ldl9yZWFsX3ZzaGFwZSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBy cHJfbmZhX2NvbXBsZXgKIFdJTkRPVyB3IEFTICgKQEAgLTIyNTYsNyArMjI1Niw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChEKyBVKykKICAgICBERUZJTkUgRCBBUyB0cmVuZCA9ICdE JywgVSBBUyB0cmVuZCA9ICdVJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWFsX3ZzaGFwZScpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgUEFUVEVSTiAoZCsgdSspIApAQCAtMjI4Niw3ICsyMjg2LDcgQEAgV0lO RE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVw LCBzdGFibGUsIGRvd24pCi1DUkVBVEUgVklFVyBycHJfZXY0NCBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X3JlYWxfcGVhayBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBycHJfbmZhX2Nv bXBsZXgKIFdJTkRPVyB3IEFTICgKQEAgLTIyOTUsNyArMjI5NSw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChVKyBTKiBEKykKICAgICBERUZJTkUgVSBBUyB0cmVuZCA9ICdVJywgUyBB UyB0cmVuZCA9ICdTJywgRCBBUyB0cmVuZCA9ICdEJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDQnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWFsX3BlYWsnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBsaW5lICAgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKHUrIHMqIGQrKSAKQEAgLTIz MjUsNyArMjMyNSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIENvbnNlY3V0aXZl IGluY3JlYXNpbmcgdmFsdWVzICh1c2luZyBQUkVWKQotQ1JFQVRFIFZJRVcgcnByX2V2NDUgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9yZWFsX2luY3JlYXNpbmcgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAo CkBAIC0yMzM0LDcgKzIzMzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXszLH0p CiAgICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodikgT1IgUFJFVih2KSBJUyBOVUxMCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXY0NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3Jl YWxfaW5jcmVhc2luZycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK ICAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAo YXszLH0pIApAQCAtMjM2Nyw3ICsyMzY3LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gUGVyZm9ybWFu Y2Utb3JpZW50ZWQgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTGFyZ2UgZGF0YXNldCB3aXRoIHNpbXBsZSBw YXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY0NiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3BlcmZf bGFyZ2Vfc2ltcGxlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzc2LDcgKzIzNzYsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgJSAy ID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGVyZl9sYXJnZV9zaW1wbGUnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiKSAKQEAgLTI0MDYsNyArMjQwNiw3IEBAIFdJ TkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIExhcmdlIGRhdGFzZXQgd2l0aCBhYnNvcnB0aW9u Ci1DUkVBVEUgVklFVyBycHJfZXY0NyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3BlcmZfbGFyZ2Vf YWJzb3JiIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAxMDAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNDE1LDcgKzI0MTUsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAwIDw+ IDAsIEIgQVMgdiAlIDEwMCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGVyZl9sYXJnZV9hYnNvcmInKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0t LS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTI0NDUsNyArMjQ0NSw3IEBA IFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEhpZ2ggc3RhdGUgbWVyZ2UgcmF0aW8KLUNS RUFURSBWSUVXIHJwcl9ldjQ4IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcGVyZl9oaWdoX21lcmdl IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDAp IEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI0NTQsNyArMjQ1NCw3IEBAIFdJTkRPVyB3IEFT ICgKICAgICBQQVRURVJOICgoQSB8IEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwg QiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0OCcpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3BlcmZfaGlnaF9tZXJnZScpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBsaW5lICAg ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikr IGMpIApAQCAtMjQ4Nyw3ICsyNDg3LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gSU5JVElBTCB2cyBu byBJTklUSUFMIGNvbXBhcmlzb24KIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gV2l0aCBJTklUSUFMIGtleXdvcmQKLUNS RUFURSBWSUVXIHJwcl9ldjQ5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRoIEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMg cyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjQ5Nyw3ICsyNDk3LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUg NSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjQ5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfaW5pdGlhbF93aXRoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg UEFUVEVSTiAoYSsgYikgCkBAIC0yNTI4LDcgKzI1MjgsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSBy b3dzKQogCiAtLSBXaXRob3V0IElOSVRJQUwga2V5d29yZCAoc2FtZSBiZWhhdmlvciBjdXJyZW50 bHkpCi1DUkVBVEUgVklFVyBycHJfZXY1MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2luaXRpYWxf d2l0aG91dCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI1MzcsNyArMjUzNyw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAs IEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2luaXRpYWxfd2l0aG91dCcpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0t LS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMjU3MCw3ICsyNTcwLDcgQEAgV0lORE9X IHcgQVMgKAogLS0gUXVhbnRpZmllciBWYXJpYXRpb25zCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFBsdXMgcXVhbnRp ZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2NTEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9xdWFudF9w bHVzIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjU3OSw3ICsyNTc5LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHYgJSA0IDw+IDAKICk7Ci1T RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldjUxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZf cXVhbnRfcGx1cycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSspIApAQCAt MjYwOSw3ICsyNjA5LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gU3RhciBxdWFu dGlmaWVyICh6ZXJvIG9yIG1vcmUpCi1DUkVBVEUgVklFVyBycHJfZXY1MiBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X3F1YW50X3N0YXIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNjE4LDcgKzI2 MTgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSogQikKICAgICBERUZJTkUgQSBB UyB2ICUgNCBJTiAoMSwgMiksIEIgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3N0YXInKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKiBiKSAKQEAgLTI2NDgsNyArMjY0 OCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFF1ZXN0aW9uIG1hcmsgKHplcm8g b3Igb25lKQotQ1JFQVRFIFZJRVcgcnByX2V2NTMgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9xdWFu dF9xdWVzdGlvbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI2NTcsNyArMjY1Nyw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBPyBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQg PSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjUzJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfcXVlc3Rpb24n KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUg ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYT8gYiBjKSAKQEAg LTI2ODcsNyArMjY4Nyw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEV4YWN0IGNv dW50IHtufQotQ1JFQVRFIFZJRVcgcnByX2V2NTQgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9xdWFu dF9leGFjdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI2OTYsNyArMjY5Niw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBezN9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4g MCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjU0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfZXhhY3QnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYXszfSBiKSAKQEAgLTI3MjYsNyArMjcyNiw3IEBAIFdJ TkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFJhbmdlIHtuLG19Ci1DUkVBVEUgVklFVyBycHJf ZXY1NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3JhbmdlIEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtMjczNSw3ICsyNzM1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7 Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY1NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X3F1YW50X3JhbmdlJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwog ICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRU RVJOIChhezIsNH0gYikgCkBAIC0yNzY1LDcgKzI3NjUsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSBy b3dzKQogCiAtLSBBdCBsZWFzdCB7bix9Ci1DUkVBVEUgVklFVyBycHJfZXY1NiBBUworQ1JFQVRF IFZJRVcgcnByX2V2X3F1YW50X2F0bGVhc3QgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNzc0 LDcgKzI3NzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXszLH0gQikKICAgICBE RUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAgPSAwCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1NicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X2F0bGVh c3QnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBs aW5lICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhezMsfSBi KSAKQEAgLTI4MDgsNyArMjgwOCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gVmVyaWZ5 IHN0YXRlIGNvdW50IGFjY3VyYWN5CiAtLSBQYXR0ZXJuIEErIEIgd2l0aCAyMCByb3dzIHNob3Vs ZCBzaG93IHByZWRpY3RhYmxlIHN0YXRlIGJlaGF2aW9yCi1DUkVBVEUgVklFVyBycHJfZXY1NyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19zdGF0ZV9jb3VudCBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKIFdJTkRPVyB3IEFT ICgKQEAgLTI4MTcsNyArMjgxNyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBC KQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1 NycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3JlZ19z dGF0ZV9jb3VudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIp IApAQCAtMjg0Nyw3ICsyODQ3LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVmVy aWZ5IGNvbnRleHQgY291bnQgd2l0aCBrbm93biBhYnNvcnB0aW9uCi1DUkVBVEUgVklFVyBycHJf ZXY1OCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19jdHhfYWJzb3JiIEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtMjg1Niw3ICsyODU2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEErIEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgSU4gKDEsMiwzLDQsNSw2LDcpLCBCIEFT IHYgJSAxMCA9IDgsIEMgQVMgdiAlIDEwID0gOQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTgnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfY3R4X2Fic29yYicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiIGMpIApAQCAtMjg4Niw3 ICsyODg2LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVmVyaWZ5IG1hdGNoIGxl bmd0aCB3aXRoIGZpeGVkLWxlbmd0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY1OSBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X3JlZ19tYXRjaGxlbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAg LTI4OTUsNyArMjg5NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIgQykKICAg ICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2NTknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9yZWdfbWF0Y2hsZW4nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRF Uk4gKGEgYiBjKSAKQEAgLTI5MjgsNyArMjkyOCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIEFsdGVy bmF0aW9uIFBhdHRlcm4gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU2ltcGxlIGFsdGVybmF0aW9uCi1DUkVB VEUgVklFVyBycHJfZXY2MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9zaW1wbGUgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBA IC0yOTM3LDcgKzI5MzcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSBD KQogICAgIERFRklORSBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0g J0MnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY2MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X2FsdF9zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgUEFUVEVSTiAoKGEgfCBiKSBjKSAKQEAgLTI5NjcsNyArMjk2Nyw3IEBAIFdJTkRPVyB3 IEFTICgKICg5IHJvd3MpCiAKIC0tIE11bHRpcGxlIGl0ZW1zIGluIGFsdGVybmF0aW9uCi1DUkVB VEUgVklFVyBycHJfZXY2MSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9tdWx0aV9pdGVtIEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMg KApAQCAtMjk3OCw3ICsyOTc4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTIGNhdCA9 ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAogICAgICAgICBEIEFTIGNhdCA9 ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjYxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X211bHRpX2l0ZW0nKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwg YiB8IGMgfCBkKSBlKSAKQEAgLTMwMTAsNyArMzAxMCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJv d3MpCiAKIC0tIEFsdGVybmF0aW9uIHdpdGggcXVhbnRpZmllcnMKLUNSRUFURSBWSUVXIHJwcl9l djYyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3dpdGhfcXVhbnQgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC0zMDE5LDcgKzMwMTksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo KEEgfCBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBD IEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2NjInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfd2l0aF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikrIGMpIApAQCAtMzA0OSw3ICsz MDQ5LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gTXVsdGlwbGUgYWx0ZXJuYXRp dmVzICg0KykKLUNSRUFURSBWSUVXIHJwcl9ldjYzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0 X2ZvdXJfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMDU3LDcgKzMwNTcsNyBAQCBX SU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCiAgICAgREVGSU5F IEEgQVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMgdiAl IDUgPSAzLCBFIEFTIHYgJSA1ID0gNAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjMnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZm91cl9wbHVzJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICBsaW5lICAgICAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIHwg YiB8IGMgfCBkIHwgZSkgCkBAIC0zMDg1LDcgKzMwODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOCBy b3dzKQogCiAtLSBBbHRlcm5hdGlvbiBhdCBzdGFydAotQ1JFQVRFIFZJRVcgcnByX2V2NjQgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfYXRfc3RhcnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBA IC0zMDkzLDcgKzMwOTMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSBD IEQpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUg NCA9IDIsIEQgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9hdF9zdGFydCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgbGluZSAgICAgICAgICAgCiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgfCBiKSBjIGQpIApAQCAt MzEyMiw3ICszMTIyLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gTXVsdGlwbGUg c2VxdWVudGlhbCBhbHRlcm5hdGlvbnMKLUNSRUFURSBWSUVXIHJwcl9ldjY1IEFTCitDUkVBVEUg VklFVyBycHJfZXZfYWx0X3NlcXVlbnRpYWwgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzEz MCw3ICszMTMwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgQyAoRCB8 IEUpIEYpCiAgICAgREVGSU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0gMSwgQyBBUyB2 ICUgNiA9IDIsIEQgQVMgdiAlIDYgPSAzLCBFIEFTIHYgJSA2ID0gNCwgRiBBUyB2ICUgNiA9IDUK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjY1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfYWx0X3NlcXVlbnRpYWwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIGMgKGQgfCBlKSBmKSAK QEAgLTMxNTgsNyArMzE1OCw3IEBAIFdJTkRPVyB3IEFTICgKICg4IHJvd3MpCiAKIC0tIFF1YW50 aWZpZWQgYWx0ZXJuYXRpdmVzCi1DUkVBVEUgVklFVyBycHJfZXY2NiBBUworQ1JFQVRFIFZJRVcg cnByX2V2X2FsdF9xdWFudGlmaWVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzE2Niw3ICsz MTY2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBKyB8IEIrKSBDKQogICAgIERF RklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY2NicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X2FsdF9xdWFudGlmaWVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICBQQVRURVJOICgoYSsgfCBiKykgYykgCkBAIC0zMTk1LDcgKzMxOTUsNyBAQCBXSU5ET1cg dyBBUyAoCiAoOSByb3dzKQogCiAtLSBBbHRlcm5hdGlvbiBhdCBlbmQKLUNSRUFURSBWSUVXIHJw cl9ldjY3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2F0X2VuZCBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3 IEFTICgKQEAgLTMyMDMsNyArMzIwMyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB IEIgKEMgfCBEKSkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBD IEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY3JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2F0X2VuZCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgbGluZSAgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiIChjIHwgZCkp IApAQCAtMzIzMyw3ICszMjMzLDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBOZXN0ZWQgQUxUIGF0 IHN0YXJ0IG9mIGJyYW5jaCBpbnNpZGUgb3V0ZXIgQUxUCiAtLSBQYXR0ZXJuOiAoQSAoKEIgfCBD KSBEIHwgRSkpIC0gcHJlY2VkaW5nIFZBUiArIGlubmVyIEFMVCBhcyBmaXJzdCBicmFuY2ggZWxl bWVudAotQ1JFQVRFIFZJRVcgcnByX2V2NjggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfbmVz dGVkX3N0YXJ0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAyMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzI0MSw3ICszMjQxLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgKChCIHwgQykgRCB8IEUpKQogICAgIERFRklORSBB IEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMgdiAlIDUgPSAyLCBEIEFTIHYgJSA1 ID0gMywgRSBBUyB2ICUgNSA9IDQKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X25lc3RlZF9zdGFydCcpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgbGluZSAgICAgICAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSAo KGIgfCBjKSBkIHwgZSkpIApAQCAtMzI3MCw3ICszMjcwLDcgQEAgV0lORE9XIHcgQVMgKAogCiAt LSBOZXN0ZWQgQUxUIGF0IGVuZCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAogLS0gUGF0dGVy bjogKEMgKEEgfCBCKSB8IEQpIC0gaW5uZXIgQUxUIGlzIGxhc3QgZWxlbWVudCBpbiBvdXRlciBi cmFuY2gKLUNSRUFURSBWSUVXIHJwcl9ldjY5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X25l c3RlZF9lbmQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMjc4LDcgKzMyNzgsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkKICAgICBERUZJTkUgQSBBUyB2 ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjY5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfYWx0X25lc3RlZF9lbmQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICBQQVRURVJOIChjIChhIHwgYikgfCBkKSAKQEAgLTMzMDksNyArMzMwOSw3 IEBAIFdJTkRPVyB3IEFTICgKIC0tIEdyb3VwIFBhdHRlcm4gVGVzdHMKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU2lt cGxlIGdyb3VwCi1DUkVBVEUgVklFVyBycHJfZXY3MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dy cF9zaW1wbGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzE4LDcgKzMzMTgsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQikrKQogICAgIERFRklORSBBIEFTIHYgJSAyID0g MSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjcwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3JwX3NpbXBsZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSBiKSspIApAQCAtMzM0OCw3ICszMzQ4LDcgQEAgV0lO RE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gR3JvdXAgd2l0aCBib3VuZGVkIHF1YW50aWZpZXIK LUNSRUFURSBWSUVXIHJwcl9ldjcxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2JvdW5kZWQg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzU3LDcgKzMzNTcsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoKEEgQil7Miw0fSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIg QVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X2dycF9ib3VuZGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgIGxpbmUgICAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgYil7Miw0fSkgCkBAIC0zMzg3LDcgKzMzODcs NyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAtLSBOZXN0ZWQgZ3JvdXBzCi1DUkVBVEUg VklFVyBycHJfZXY3MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9uZXN0ZWQgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0zMzk2LDcgKzMzOTYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoKChBIEIpezJ9KSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAy ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2NzInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9ncnBfbmVzdGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOICgoKGEgYil7Mn0pKykgCkBAIC0zNDI2LDcgKzM0MjYsNyBAQCBX SU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAtLSBEZWVwIG5lc3RpbmcgKDMrIGxldmVscykKLUNS RUFURSBWSUVXIHJwcl9ldjczIEFTCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2RlZXAgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0zNDM0LDcgKzM0MzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoKCgoQSB8IEIpKykrKSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAwLCBCIEFT IHYgJSAyID0gMQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2NzMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9ncnBfZGVlcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKCgoYSB8IGIpKykrKSspIApAQCAtMzQ2Myw3 ICszNDYzLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gQm91bmRlZCBxdWFudGlm aWVyIG9uIGFsdGVybmF0aW9uCi1DUkVBVEUgVklFVyBycHJfZXY3NCBBUworQ1JFQVRFIFZJRVcg cnByX2V2X2dycF9ib3VuZGVkX2FsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM0NzEsNyAr MzQ3MSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpezIsM30gQykKICAg ICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2NzQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9ncnBfYm91bmRlZF9hbHQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYil7MiwzfSBjKSAKQEAgLTM1MDAsNyArMzUw MCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIE5lc3RlZCBncm91cHMgd2l0aCBx dWFudGlmaWVycwotQ1JFQVRFIFZJRVcgcnByX2V2NzUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9n cnBfbmVzdGVkX3F1YW50IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzUwOCw3ICszNTA4LDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKCgoQSBCKSsgQykqKQogICAgIERFRklORSBB IEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3 NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9u ZXN0ZWRfcXVhbnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAg ICAgICAgICAgIGxpbmUgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKCgoYSBiKSsgYykqKSAKQEAgLTM1MzcsNyArMzUzNyw3IEBAIFdJTkRPVyB3IEFT ICgKICg5IHJvd3MpCiAKIC0tIFBhcnRpYWwgbmVzdGVkIHF1YW50aWZpY2F0aW9uCi1DUkVBVEUg VklFVyBycHJfZXY3NiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9wYXJ0aWFsX3F1YW50IEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMg cyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzU0NSw3ICszNTQ1LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKChBIChCIEMpKykqKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBB UyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3NicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9wYXJ0aWFsX3F1YW50JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICBsaW5lICAg ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSAoYiBj KSspKikgCkBAIC0zNTc3LDcgKzM1NzcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBXaW5kb3cgRnVu Y3Rpb24gQ29tYmluYXRpb25zCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIGNvdW50KCopIHdpdGggcGF0dGVybgotQ1JF QVRFIFZJRVcgcnByX2V2NzcgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl93Zm5fY291bnQgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0zNTg2LDcgKzM1ODYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0g MAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2NzcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl93Zm5fY291bnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTM2MTYsNyArMzYxNiw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAK IC0tIGZpcnN0X3ZhbHVlIHdpdGggcGF0dGVybgotQ1JFQVRFIFZJRVcgcnByX2V2NzggQVMKK0NS RUFURSBWSUVXIHJwcl9ldl93Zm5fZmlyc3RfdmFsdWUgQVMKIFNFTEVDVCBmaXJzdF92YWx1ZSh2 KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBB UyAoCkBAIC0zNjI1LDcgKzM2MjUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsg QikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 NzgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5f Zmlyc3RfdmFsdWUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAg ICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBi KSAKQEAgLTM2NTUsNyArMzY1NSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIGxh c3RfdmFsdWUgd2l0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY3OSBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X3dmbl9sYXN0X3ZhbHVlIEFTCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0z NjY0LDcgKzM2NjQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBE RUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzknKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fbGFzdF92YWx1 ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5l ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMzY5 NCw3ICszNjk0LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gTXVsdGlwbGUgd2lu ZG93IGZ1bmN0aW9ucwotQ1JFQVRFIFZJRVcgcnByX2V2ODAgQVMKK0NSRUFURSBWSUVXIHJwcl9l dl93Zm5fbXVsdGkgQVMKIFNFTEVDVAogICAgIGNvdW50KCopIE9WRVIgdywKICAgICBmaXJzdF92 YWx1ZSh2KSBPVkVSIHcsCkBAIC0zNzA2LDcgKzM3MDYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0g MAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2ODAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl93Zm5fbXVsdGknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTM3NDIsNyArMzc0Miw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIERFRklORSBF eHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQ29tcGxleCBib29sZWFuIGV4cHJlc3Np b25zCi1DUkVBVEUgVklFVyBycHJfZXY4MSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2RlZl9jb21w bGV4X2Jvb2wgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zNzUzLDcgKzM3NTMsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgICAgIEEgQVMgKHYgJSA1IDw+IDApIEFORCAodiAlIDMgPD4gMCksCiAg ICAgICAgIEIgQVMgKHYgJSA1ID0gMCkgT1IgKHYgJSAzID0gMCkKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjgxJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZGVmX2NvbXBsZXhf Ym9vbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBs aW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAt Mzc4NSw3ICszNzg1LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVXNpbmcgUFJF ViBmdW5jdGlvbgotQ1JFQVRFIFZJRVcgcnByX2V2ODIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9k ZWZfcHJldiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM3OTcsNyArMzc5Nyw3IEBAIFdJTkRP VyB3IEFTICgKICAgICAgICAgVSBBUyB2ID4gUFJFVih2KSwKICAgICAgICAgRCBBUyB2IDwgUFJF Vih2KQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2ODInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9kZWZfcHJldicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKICAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKHMgdSsgZCspIApAQCAtMzgyOSw3ICszODI5LDcgQEAgV0lORE9XIHcgQVMgKAog KDggcm93cykKIAogLS0gVXNpbmcgTlVMTCBjb21wYXJpc29ucwotQ1JFQVRFIFZJRVcgcnByX2V2 ODMgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9kZWZfbnVsbCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIENBU0UgV0hFTiB2ICUgNSA9IDAgVEhFTiBOVUxMIEVM U0UgdiBFTkQgQVMgdgpAQCAtMzg0MSw3ICszODQxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiBJUyBOT1QgTlVMTCwgQiBBUyB2IElTIE5V TEwKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjgzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfZGVmX251bGwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTM4NzcsNyArMzg3Nyw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIExhcmdlIFNj YWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIDUwMCByb3dzIC0gdmVyaWZ5 IHN0YXRpc3RpY3Mgc2NhbGUgY29ycmVjdGx5Ci1DUkVBVEUgVklFVyBycHJfZXY4NCBBUworQ1JF QVRFIFZJRVcgcnByX2V2X3NjYWxlXzUwMHJvd3MgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAt Mzg4Niw3ICszODg2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIgQykKICAg ICBERUZJTkUgQSBBUyB2ICUgMTAgPCA3LCBCIEFTIHYgJSAxMCA9IDcsIEMgQVMgdiAlIDEwID0g OAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2ODQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9zY2FsZV81MDByb3dzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICBsaW5lICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKGErIGIgYykgCkBAIC0zOTE2LDcgKzM5MTYsNyBAQCBXSU5ET1cgdyBBUyAoCiAo OSByb3dzKQogCiAtLSBIaWdoIG1hdGNoIGNvdW50IHNjZW5hcmlvCi1DUkVBVEUgVklFVyBycHJf ZXY4NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3NjYWxlX2hpZ2hfbWF0Y2ggQVMKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lO RE9XIHcgQVMgKApAQCAtMzkyNSw3ICszOTI1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEEgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY4NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X3NjYWxlX2hpZ2hfbWF0Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAo YSBiKSAKQEAgLTM5NTUsNyArMzk1NSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0t IEhpZ2ggc2tpcCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcgcnByX2V2ODYgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX3NraXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAt Mzk2OSw3ICszOTY5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBEIEFTIHYgJSAxMDAgPSA0 LAogICAgICAgICBFIEFTIHYgJSAxMDAgPSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3NjYWxlX2hpZ2hfc2tpcCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBsaW5lICAgICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIgYyBkIGUpIApA QCAtNDAxMywxNyArNDAxMywxNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBUZXN0IHdpdGggcm93X251 bWJlcigpIGFzIHJlcHJlc2VudGF0aXZlIGNhc2UuCiAtLQogLS0gV2l0aG91dCBSUFI6IHJvd19u dW1iZXIoKSBmcmFtZSBpcyBvcHRpbWl6ZWQgdG8gUk9XUyBVTkJPVU5ERUQgUFJFQ0VESU5HCi1D UkVBVEUgVklFVyBycHJfZXY4NyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X29wdF9ub19ycHIgQVMK IFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIHYKICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICk7Ci1FWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gcnByX2V2ODc7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gcnByX2V2X29wdF9ub19ycHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTdWJxdWVyeSBTY2FuIG9u IHJwcl9ldjg3CisgU3VicXVlcnkgU2NhbiBvbiBycHJfZXZfb3B0X25vX3JwcgogICAgLT4gIFdp bmRvd0FnZwogICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBzLnYgUk9XUyBVTkJPVU5E RUQgUFJFQ0VESU5HKQogICAgICAgICAgLT4gIFNvcnQKQEAgLTQwMzIsNyArNDAzMiw3IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4NzsKICg2IHJvd3MpCiAKIC0t IFdpdGggUlBSOiBmcmFtZSBtdXN0IHJlbWFpbiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKLUNSRUFURSBWSUVXIHJwcl9ldjg4IEFTCitDUkVBVEUgVklF VyBycHJfZXZfb3B0X3dpdGhfcnByIEFTCiBTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTQwNDMs MTAgKzQwNDMsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORQogICAgICAgICBCIEFTIHYg PiBQUkVWKHYpCiApOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldjg4 OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldl9vcHRfd2l0aF9ycHI7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSBTdWJxdWVyeSBTY2FuIG9uIHJwcl9ldjg4CisgU3VicXVlcnkgU2NhbiBvbiBycHJf ZXZfb3B0X3dpdGhfcnByCiAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCkBAIC00MDU5LDcgKzQwNTksNyBAQCBFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcnByX2V2ODg7CiAtLSBQbGFubmVyIG9wdGlt aXphdGlvbjogbm9uLVJQUiBhbmQgUlBSIHdpbmRvd3MgdGhhdCBzaGFyZSB0aGUgc2FtZSBiYXNl IGZyYW1lCiAtLSBhZnRlciBmcmFtZSBvcHRpbWl6YXRpb24gYXJlIGtlcHQgYXMgc2VwYXJhdGUg V2luZG93QWdnIG5vZGVzLgogLS0KLUNSRUFURSBWSUVXIHJwcl9ldjg5IEFTCitDUkVBVEUgVklF VyBycHJfZXZfb3B0X21peGVkIEFTCiBTRUxFQ1QKICAgICByb3dfbnVtYmVyKCkgT1ZFUiB3X25v cm1hbCBBUyBybl9ub3JtYWwsCiAgICAgcm93X251bWJlcigpIE9WRVIgd19ycHIgQVMgcm5fcnBy CkBAIC00MDcyLDEwICs0MDcyLDEwIEBAIFdJTkRPVwogICAgICAgICBQQVRURVJOIChBKykKICAg ICAgICAgREVGSU5FIEEgQVMgdiA+IDEKICAgICApOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHJwcl9ldjg5OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJw cl9ldl9vcHRfbWl4ZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24gcnByX2V2ODkK KyBTdWJxdWVyeSBTY2FuIG9uIHJwcl9ldl9vcHRfbWl4ZWQKICAgIC0+ICBXaW5kb3dBZ2cKICAg ICAgICAgIFdpbmRvdzogd19ycHIgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhKyIKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAppbmRleCAyMzdmMDM2NjYzMS4uNjVhNzc1ZmRh ZDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKQEAgLTExOCw3ICsxMTgsNyBA QCBWQUxVRVMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogCiAtLSBTaW1wbGUgcGF0dGVybiAtIHNob3VsZCBzaG93IGJhc2lj IHN0YXRpc3RpY3MKLUNSRUFURSBWSUVXIHJwcl9ldjAxIEFTCitDUkVBVEUgVklFVyBycHJfZXZf YmFzaWNfc2ltcGxlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVz dAogV0lORE9XIHcgQVMgKApAQCAtMTI3LDcgKzEyNyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJwog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MDEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9iYXNpY19zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwpAQCAtMTQwLDcgKzE0MCw3IEBAIFdJTkRPVyB3IEFTICgKICknKTsKIAogLS0g UGF0dGVybiB3aXRoIG5vIG1hdGNoZXMgLSAwIG1hdGNoZWQKLUNSRUFURSBWSUVXIHJwcl9ldjAy IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYmFzaWNfbm9tYXRjaCBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTE0OSw3ICsxNDks NyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoWCBZIFopCiAgICAgREVGSU5FIFggQVMg Y2F0ID0gJ1gnLCBZIEFTIGNhdCA9ICdZJywgWiBBUyBjYXQgPSAnWicKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjAyJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYmFzaWNfbm9t YXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBA IC0xNjIsNyArMTYyLDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gUGF0dGVybiBtYXRj aGluZyBldmVyeSByb3cgLSBoaWdoIG1hdGNoIGNvdW50Ci1DUkVBVEUgVklFVyBycHJfZXYwMyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX2FsbHJvd3MgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xNzEsNyArMTcxLDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKFIpCiAgICAgREVGSU5FIFIgQVMgVFJVRQog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MDMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9iYXNpY19hbGxyb3dzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTE4NSw3ICsxODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIFJlZ3Jl c3Npb24gdGVzdDogU3BhY2UgYmVmb3JlIHBhcmVudGhlc2lzIGluIHBhdHRlcm4gZGVwYXJzZQog LS0gVmVyaWZpZXMgdGhhdCAiQSAoQiB8IEMpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiYSAoYiB8 IGMpIiB3aXRoIHNwYWNlCi1DUkVBVEUgVklFVyBycHJfZXYwNCBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X2Jhc2ljX2RlcGFyc2Vfc3BhY2UgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xOTMsNyAr MTkzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgKEIgfCBDKSkKICAgICBERUZJ TkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2MDQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9i YXNpY19kZXBhcnNlX3NwYWNlJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTIwNyw3ICsyMDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBSZWdyZXNz aW9uIHRlc3Q6IFNlcXVlbnRpYWwgYWx0ZXJuYXRpb25zIGF0IHNhbWUgZGVwdGgKIC0tIFZlcmlm aWVzIHRoYXQgIigoQiB8IEMpIChEIHwgRSkpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiKGIgfCBj KSAoZCB8IGUpIgogLS0gUHJldmlvdXNseSBmYWlsZWQgZHVlIHRvIG1pc3NpbmcgcGFyZW50aGVz ZXMgb24gQUxUIGRlcHRoIGRlY3JlYXNlCi1DUkVBVEUgVklFVyBycHJfZXYwNSBBUworQ1JFQVRF IFZJRVcgcnByX2V2X2Jhc2ljX2RlcGFyc2Vfc2VxYWx0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApA QCAtMjE1LDcgKzIxNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBICgoQiB8IEMp IChEIHwgRSkpKikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDEsIEIgQVMgdiAlIDUgPSAyLCBD IEFTIHYgJSA1ID0gMywgRCBBUyB2ICUgNSA9IDQsIEUgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYw NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2lj X2RlcGFyc2Vfc2VxYWx0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTIzMSw3ICsyMzEsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0g U2ltcGxlIHF1YW50aWZpZXIgcGF0dGVybiAtIEErIHdpdGggc2hvcnQgbWF0Y2hlcyAobm8gbWVy Z2luZykKLUNSRUFURSBWSUVXIHJwcl9ldjA2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVf c2ltcGxlX3F1YW50IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjQwLDcgKzI0MCw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjA2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfc3RhdGVfc2ltcGxlX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKQEAgLTI1Myw3ICsyNTMsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycp OwogCiAtLSBBbHRlcm5hdGlvbiBwYXR0ZXJuIC0gbXVsdGlwbGUgc3RhdGUgYnJhbmNoZXMKLUNS RUFURSBWSUVXIHJwcl9ldjA3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0IEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMgKApA QCAtMjY0LDcgKzI2NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyBjYXQgPSAnQScs IEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKICAgICAgICAgRCBBUyBjYXQgPSAnRCcs IEUgQVMgY2F0ID0gJ0UnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yNzksNyArMjc5LDcgQEAgV0lORE9XIHcgQVMg KAogKTsnKTsKIAogLS0gQ29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBzdGF0ZSBjb3VudAotQ1JF QVRFIFZJRVcgcnByX2V2MDggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9jb21wbGV4IEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI5MSw3ICsyOTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgIEIgQVMgdiAlIDMgPSAyLAogICAgICAgICBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 MDgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0 ZV9jb21wbGV4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTMwNyw3ICszMDcsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBHcm91cGVk IHBhdHRlcm4gd2l0aCBxdWFudGlmaWVyIC0gc3RhdGUgY291bnQgd2l0aCBncm91cGluZwotQ1JF QVRFIFZJRVcgcnByX2V2MDkgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9ncm91cF9xdWFu dCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjAp IEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTMxNiw3ICszMTYsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoKEEgQikrKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2 ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjA5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXZfc3RhdGVfZ3JvdXBfcXVhbnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMzMwLDcgKzMzMCw3IEBAIFdJTkRPVyB3IEFT ICgKIAogLS0gU3RhdGUgZXhwbG9zaW9uIHBhdHRlcm4gLSBtYW55IGFsdGVybmF0aW9ucwogLS0g UGF0dGVybiAoQXxCKShBfEIpKEF8QikoQXxCKSBjYW4gY3JlYXRlIG1hbnkgcGFyYWxsZWwgc3Rh dGVzCi1DUkVBVEUgVklFVyBycHJfZXYxMCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2V4 cGxvc2lvbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzksNyArMzM5LDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEg fCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEs IEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2V4cGxvc2lvbicpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0zNTMsNyArMzUzLDcgQEAgV0lORE9X IHcgQVMgKAogCiAtLSBDb25zZWN1dGl2ZSBBTFQgbWVyZ2UgZm9sbG93ZWQgYnkgZGlmZmVyZW50 IEFMVAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMgZmx1c2ggb24gQUxUIGNoYW5nZTog KEF8Qil7Mn0gKEN8RCkKLUNSRUFURSBWSUVXIHJwcl9ldjExIEFTCitDUkVBVEUgVklFVyBycHJf ZXZfc3RhdGVfYWx0X21lcmdlX2FsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM2Miw3ICsz NjIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIChDIHwg RCkpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUg NCA9IDIsIEQgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdF9tZXJnZV9hbHQnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMzc2LDcgKzM3Niw3 IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZvbGxvd2VkIGJ5 IG5vbi1BTFQgZWxlbWVudAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMgZmx1c2ggb24g bm9uLUFMVDogKEF8Qil7Mn0gYwotQ1JFQVRFIFZJRVcgcnByX2V2MTIgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl9zdGF0ZV9hbHRfbWVyZ2Vfbm9uYWx0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAt Mzg1LDcgKzM4NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpIChBIHwg QikgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYg JSAzID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2MTInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfbWVyZ2Vfbm9uYWx0JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTM5OCw3ICszOTgsNyBAQCBXSU5ET1cg dyBBUyAoCiApOycpOwogCiAtLSBBTFQgcHJlZml4L3N1ZmZpeCBhYnNvcmJlZCBpbnRvIEdST1VQ OiAoQXxCKSAoQXxCKSsgKEF8QikgLT4gKEF8Qil7Myx9Ci1DUkVBVEUgVklFVyBycHJfZXYxMyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2FsdF9hYnNvcmJfZ3JvdXAgQVMKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5E T1cgdyBBUyAoCkBAIC00MDcsNyArNDA3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KChBIHwgQikgKEEgfCBCKSsgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDAsIEIg QVMgdiAlIDIgPSAxCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdF9hYnNvcmJfZ3JvdXAnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNDIwLDcgKzQyMCw3IEBAIFdJ TkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEhpZ2ggc3RhdGUgY291bnQgLSBhbHRlcm5hdGlvbiB3 aXRoIHBsdXMgcXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2MTQgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl9zdGF0ZV9hbHRfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC00MjksNyAr NDI5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQiB8IEMpKyBEKQogICAg IERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAlIDQgPSAzLCBE IEFTIHYgJSA0ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2MTQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfcGx1cycpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC00NDMsNyArNDQzLDcgQEAgV0lORE9XIHcg QVMgKAogCiAtLSBFYXJseSB0ZXJtaW5hdGlvbjogZmlyc3QgQUxUIGJyYW5jaCAoQSkgcmVhY2hl cyBGSU4gaW1tZWRpYXRlbHksCiAtLSBwcnVuaW5nIHNlY29uZCBicmFuY2ggKEEgQispIGJlZm9y ZSBpdCBjYW4gYWNjdW11bGF0ZSBCIHJlcGV0aXRpb25zLgotQ1JFQVRFIFZJRVcgcnByX2V2MTUg QVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfcHJ1bmUgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtNDUyLDcgKzQ1Miw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8 IEEgQikrKQogICAgIERFRklORSBBIEFTIHYgPSAxLCBCIEFTIHYgPiAxCiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxNScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2Fs dF9wcnVuZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC00NjUsNyArNDY1LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTmVzdGVkIHF1 YW50aWZpZXJzIGNhdXNpbmcgc3RhdGUgZ3Jvd3RoCi1DUkVBVEUgVklFVyBycHJfZXYxNiBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX25lc3RlZF9xdWFudCBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtNDc0LDcgKzQ3NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEg fCBCKSspKykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXYxNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X3N0YXRlX25lc3RlZF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC00OTEsNyArNDkxLDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAK IC0tIENvbnRleHQgYWJzb3JwdGlvbiB3aXRoIHVuYm91bmRlZCBxdWFudGlmaWVyIGF0IHN0YXJ0 Ci1DUkVBVEUgVklFVyBycHJfZXYxNyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJf dW5ib3VuZGVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNTAwLDcgKzUwMCw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAs IEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNvcmJfdW5ib3VuZGVkJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTUxMyw3ICs1MTMsNyBAQCBX SU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBObyBhYnNvcnB0aW9uIC0gYm91bmRlZCBxdWFudGlm aWVyCi1DUkVBVEUgVklFVyBycHJfZXYxOCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19h YnNvcmIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC01MjIsNyArNTIyLDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEF7Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAs IEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2N0eF9ub19hYnNvcmInKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNTM1LDcgKzUzNSw3IEBAIFdJTkRPVyB3 IEFTICgKICk7Jyk7CiAKIC0tIENvbnRleHRzIHNraXBwZWQgYnkgU0tJUCBQQVNUIExBU1QgUk9X Ci1DUkVBVEUgVklFVyBycHJfZXYxOSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9za2lwIEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTU0NCw3ICs1NDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoQSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBBUyB2ICUg MTAgPSAyLCBDIEFTIHYgJSAxMCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjE5JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X3NraXAnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNTU3LDcgKzU1Nyw3IEBAIFdJTkRP VyB3IEFTICgKICk7Jyk7CiAKIC0tIEhpZ2ggY29udGV4dCBhYnNvcnB0aW9uIC0gdW5ib3VuZGVk IGdyb3VwCi1DUkVBVEUgVklFVyBycHJfZXYyMCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9h YnNvcmJfZ3JvdXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNTY2LDcgKzU2Niw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUg MyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjAnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2dy b3VwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAg LTU4MSw3ICs1ODEsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBGaXhlZC1sZW5ndGggZ3JvdXAgYWJz b3JwdGlvbjogKEEgQiBCKSsgQwogLS0gQiBCIG1lcmdlZCB0byBCezJ9OyBhYnNvcmJhYmxlIHdp dGggZml4ZWQtbGVuZ3RoIGNoZWNrCiAtLSBzdGVwX3NpemU9MyAoQSArIEIgKyBCKTsgdiAlIDcg Y3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zIHBlciBtYXRjaAotQ1JFQVRFIFZJRVcgcnByX2V2MjBi IEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9maXhlZHZhciBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFTIHModikKIFdJTkRP VyB3IEFTICgKQEAgLTU5MCw3ICs1OTAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo KEEgQiBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNyBJTiAoMSwgNCksIEIgQVMgdiAlIDcg SU4gKDIsIDMsIDUsIDYpLCBDIEFTIHYgJSA3ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBiJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9maXhlZHZh cicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC02 MDQsNyArNjA0LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdy b3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCiAtLSBzdGVwX3NpemUgPSAxICsgKDEr MSkqMiArIDEgPSA2OyB2ICUgMTMgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsgRQotQ1JFQVRF IFZJRVcgcnByX2V2MjBjIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9uZXN0ZWQg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDY1KSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC02MTUsNyArNjE1LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgICAgICAgICBDIEFTIHYgJSAxMyBJTiAoMywgNSwgOSwgMTEpLCBEIEFTIHYgJSAxMyBJTiAo NiwgMTIpLAogICAgICAgICAgICBFIEFTIHYgJSAxMyA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIwYycpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNvcmJfbmVz dGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAg LTYzMSw3ICs2MzEsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIERvdWJseSBuZXN0ZWQgZml4ZWQt bGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsgRgogLS0g c3RlcF9zaXplID0gMSArICgoMSszKSoyKzEpKjIgKyAxID0gMjA7IHYgJSA0MSBjeWNsZSBnaXZl cyAyIGl0ZXJhdGlvbnMgKyBGCi1DUkVBVEUgVklFVyBycHJfZXYyMGQgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl9jdHhfYWJzb3JiX2RlZXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC02NDYsNyAr NjQ2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICAgICBFIEFTIHYgJSA0MSBJTiAoMjAsIDQw KSwKICAgICAgICAgICAgRiBBUyB2ICUgNDEgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGQnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2RlZXAnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNjY3LDcg KzY2Nyw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIDMtbGV2ZWwgRU5EIGNoYWluIGFic29ycHRpb246 ICgoQSAoQiBDKXsyfSl7Mn0pKwogLS0gc3RlcF9zaXplID0gKDEgKyAoMSsxKSoyKSAqIDIgPSAx MDsgdiAlIDIxIGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucwogLS0gRU5EIGNoYWluOiBFTkQoQkN7 Mn0pIC0+IEVORChBLi57Mn0pIC0+IEVORCgrLCBBQlNPUkJBQkxFKQotQ1JFQVRFIFZJRVcgcnBy X2V2MjBlIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9lbmRjaGFpbiBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDIpIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTY3OCw3ICs2NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAg ICAgIEIgQVMgdiAlIDIxIElOICgyLCA0LCA3LCA5LCAxMiwgMTQsIDE3LCAxOSksCiAgICAgICAg ICAgIEMgQVMgdiAlIDIxIElOICgzLCA1LCA4LCAxMCwgMTMsIDE1LCAxOCwgMjApCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYyMGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9j dHhfYWJzb3JiX2VuZGNoYWluJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTY5Nyw3ICs2OTcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAog LS0gRml4ZWQgbGVuZ3RoIG1hdGNoZXMgLSBhbGwgc2FtZSBsZW5ndGgKLUNSRUFURSBWSUVXIHJw cl9ldjIxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9maXhlZCBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTcwOCw3ICs3 MDgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9 ICdCJywgQyBBUyBjYXQgPSAnQycsCiAgICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9 ICdFJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2MjEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9tbGVuX2ZpeGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTcyMyw3ICs3MjMsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwog CiAtLSBWYXJpYWJsZSBsZW5ndGggbWF0Y2hlcyAtIG1pbi9tYXgvYXZnIGRpZmZlcgotQ1JFQVRF IFZJRVcgcnByX2V2MjIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX3ZhcmlhYmxlIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHMo dikKIFdJTkRPVyB3IEFTICgKQEAgLTczMiw3ICs3MzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAg PSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYyMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X21sZW5fdmFyaWFibGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtNzQ1LDcgKzc0NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7 CiAKIC0tIFZlcnkgbG9uZyBtYXRjaGVzCi1DUkVBVEUgVklFVyBycHJfZXYyMyBBUworQ1JFQVRF IFZJRVcgcnByX2V2X21sZW5fbG9uZyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC03NTQsNyAr NzU0LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEg QVMgdiA8PSAxOTUsIEIgQVMgdiA+IDE5NQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjMnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX2xvbmcnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNzY3LDcgKzc2Nyw3IEBAIFdJ TkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIFVuaWZvcm0gbWF0Y2ggbGVuZ3RoIHdpdGggbWlzbWF0 Y2hlcyBmcm9tIGdhcCByb3dzICh2JTIwID0gMTEuLjE1KQotQ1JFQVRFIFZJRVcgcnByX2V2MjQg QVMKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX3dpdGhfbWlzbWF0Y2ggQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtNzc4LDcgKzc3OCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyAo diAlIDIwIDw+IDApIEFORCAodiAlIDIwIDw9IDEwIE9SIHYgJSAyMCA+IDE1KSwKICAgICAgICAg QiBBUyB2ICUgMjAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X21sZW5fd2l0aF9taXNtYXRjaCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC03OTgsNyArNzk4LDcgQEAgV0lO RE9XIHcgQVMgKAogCiAtLSBQYXR0ZXJuIHdpdGggY29tcGxldGUgbWF0Y2ggZXZlcnkgY3ljbGU6 IDAgbWlzbWF0Y2hlZAogLS0gQSgxLDIsMykgQig0LDUpIEMoNikgcmVwZWF0cyBwZXJmZWN0bHk7 IFggcm93cyBhcmUgcHJ1bmVkLCBub3QgbWlzbWF0Y2hlZAotQ1JFQVRFIFZJRVcgcnByX2V2MjUg QVMKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX25vX21pc21hdGNoIEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CiBGUk9NICgKICAgICBTRUxFQ1QgdiwKQEAgLTgxNCw3ICs4MTQsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykKICAgICBERUZJTkUgQSBBUyBjYXQgPSAn QScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsKLVNFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjUnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX25vX21pc21hdGNo JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTgz NCw3ICs4MzQsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBMb25nIHBhcnRpYWwgbWF0 Y2hlcyB0aGF0IGZhaWwKLUNSRUFURSBWSUVXIHJwcl9ldjI2IEFTCitDUkVBVEUgVklFVyBycHJf ZXZfbWxlbl9sb25nX3BhcnRpYWwgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gKAog ICAgIFNFTEVDVCBpIEFTIHYsCkBAIC04NTUsNyArODU1LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErIEIrIEMpCiAgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9 ICdCJywgQyBBUyBjYXQgPSAnQycKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxlbl9sb25nX3BhcnRpYWwnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtODg0LDcgKzg4NCw3IEBA IFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBKU09OIGZvcm1hdCBvdXRwdXQgd2l0aCBhbGwg c3RhdGlzdGljcwotQ1JFQVRFIFZJRVcgcnByX2V2MjcgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9q c29uX2Jhc2ljIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtODkzLDcgKzg5Myw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEs IEIgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2pzb25fYmFzaWMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG LCBGT1JNQVQgSlNPTikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTkwNiw3ICs5MDYsNyBA QCBXSU5ET1cgdyBBUyAoCiApJyk7CiAKIC0tIEpTT04gZm9ybWF0IHdpdGggbWF0Y2ggbGVuZ3Ro IHN0YXRpc3RpY3MKLUNSRUFURSBWSUVXIHJwcl9ldjI4IEFTCitDUkVBVEUgVklFVyBycHJfZXZf anNvbl9tYXRjaGxlbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC05MTUsNyArOTE1LDcgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEw IDw+IDAsIEIgQVMgdiAlIDEwID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjgnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9qc29uX21hdGNobGVuJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRiwgRk9STUFUIEpTT04pCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC05Mjks NyArOTI5LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBKU09OIGZvcm1hdCB3aXRoIG1pc21hdGNo IHN0YXRpc3RpY3MKIC0tIFBhdHRlcm4gQSBCIEMgZXhwZWN0cyAxLDIsMyBidXQgZ2V0cyAxLDIs NCB0d2ljZSBjYXVzaW5nIG1pc21hdGNoZXMKLUNSRUFURSBWSUVXIHJwcl9ldjI5IEFTCitDUkVB VEUgVklFVyBycHJfZXZfanNvbl9taXNtYXRjaCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSAoVkFMVUVTICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFTIHQo dikKIFdJTkRPVyB3IEFTICgKQEAgLTkzOCw3ICs5MzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIsIEMgQVMg diA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjI5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfanNvbl9taXNtYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1B VCBKU09OKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtOTUyLDcgKzk1Miw3IEBAIFdJTkRP VyB3IEFTICgKIAogLS0gSlNPTiBmb3JtYXQgd2l0aCBza2lwcGVkIGNvbnRleHQgc3RhdGlzdGlj cwogLS0gQWx0ZXJuYXRpb24gcGF0dGVybiB3aXRoIFNLSVAgUEFTVCBMQVNUIFJPVyBjYXVzZXMg bWFueSBjb250ZXh0cyB0byBiZSBza2lwcGVkCi1DUkVBVEUgVklFVyBycHJfZXYzMCBBUworQ1JF QVRFIFZJRVcgcnByX2V2X2pzb25fc2tpcCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC05NjEs NyArOTYxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAo QSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJ TkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fc2tpcCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1BVCBKU09OKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtOTc4LDcgKzk3OCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBYTUwgZm9ybWF0 IG91dHB1dAotQ1JFQVRFIFZJRVcgcnByX2V2MzEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl94bWxf YmFzaWMgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC05ODcsNyArOTg3LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEEgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMg diAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXYzMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X3htbF9iYXNpYycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1B VCBYTUwpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMDA0LDcgKzEwMDQsNyBAQCBXSU5E T1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIAogLS0gU3RhdGlzdGljcyBhY3Jvc3MgbXVsdGlwbGUgcGFydGl0 aW9ucwotQ1JFQVRFIFZJRVcgcnByX2V2MzIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9wYXJ0X211 bHRpIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NICgKICAgICBTRUxFQ1QgcCwgdgpA QCAtMTAxOCw3ICsxMDE4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAg ICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjMyJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGFydF9tdWx0 aScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0x MDM2LDcgKzEwMzYsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBEaWZmZXJlbnQgcGF0 dGVybiBiZWhhdmlvciBwZXIgcGFydGl0aW9uCi1DUkVBVEUgVklFVyBycHJfZXYzMyBBUworQ1JF QVRFIFZJRVcgcnByX2V2X3BhcnRfZGlmZiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSAoCiAgICAgU0VMRUNUCkBAIC0xMDUxLDcgKzEwNTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2YWwgPCA1LCBCIEFTIHZhbCA+PSA1CiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYzMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X3BhcnRfZGlmZicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK IFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CkBAIC0xMDc0LDcgKzEwNzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0g RW1wdHkgcmVzdWx0IHNldAotQ1JFQVRFIFZJRVcgcnByX2V2MzQgQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9lZGdlX2VtcHR5IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMDgzLDcgKzEwODMsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgPSAx LCBCIEFTIHYgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzNCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X2VkZ2VfZW1wdHknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTA5Niw3ICsxMDk2LDcgQEAgV0lORE9XIHcgQVMg KAogKTsnKTsKIAogLS0gU2luZ2xlIHJvdwotQ1JFQVRFIFZJRVcgcnByX2V2MzUgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9yb3cgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEx MDUsNyArMTEwNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKQogICAgIERFRklO RSBBIEFTIFRSVUUKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfZWRnZV9zaW5nbGVfcm93JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTExMTgsNyArMTExOCw3IEBAIFdJTkRPVyB3 IEFTICgKICk7Jyk7CiAKIC0tIFBhdHRlcm4gbG9uZ2VyIHRoYW4gZGF0YQotQ1JFQVRFIFZJRVcg cnByX2V2MzYgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3BhdHRlcm5fbG9uZ2VyIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1KSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0xMTI5LDcgKzExMjksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg ICAgIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIsIEMgQVMgdiA9IDMsIEQgQVMgdiA9IDQsIEUgQVMg diA9IDUsCiAgICAgICAgIEYgQVMgdiA9IDYsIEcgQVMgdiA9IDcsIEggQVMgdiA9IDgsIEkgQVMg diA9IDksIEogQVMgdiA9IDEwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2VkZ2VfcGF0dGVybl9sb25nZXInKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTE0NCw3ICsxMTQ0LDcg QEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gQWxsIHJvd3MgbWF0Y2ggYXMgc2luZ2xlIG1h dGNoCi1DUkVBVEUgVklFVyBycHJfZXYzNyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2Vfc2lu Z2xlX21hdGNoIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTE1Myw3ICsxMTUzLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIFRSVUUKICk7Ci1T RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldjM3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZf ZWRnZV9zaW5nbGVfbWF0Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwpAQCAtMTE3MCw3ICsxMTcwLDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAK IC0tIE5lc3RlZCBncm91cHMKLUNSRUFURSBWSUVXIHJwcl9ldjM4IEFTCitDUkVBVEUgVklFVyBy cHJfZXZfY3B4X25lc3RlZCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTExNzksNyArMTE3OSw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQikgQykrKQogICAgIERFRklORSBB IEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYz OCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2NweF9u ZXN0ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMTE5Miw3ICsxMTkyLDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTXVsdGlwbGUg YWx0ZXJuYXRpb25zCi1DUkVBVEUgVklFVyBycHJfZXYzOSBBUworQ1JFQVRFIFZJRVcgcnByX2V2 X2NweF9tdWx0aV9hbHQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90 ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xMjAzLDcgKzEyMDMsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycsCiAg ICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9ICdFJwogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzknKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfbXVsdGlfYWx0 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTEy MTgsNyArMTIxOCw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIE9wdGlvbmFsIGVsZW1l bnRzCi1DUkVBVEUgVklFVyBycHJfZXY0MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2NweF9vcHRp b25hbCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEyMjcsNyArMTIyNyw3IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBIEI/IEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBC IEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQwJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X29wdGlvbmFsJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTEyNDAsNyArMTI0 MCw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEJvdW5kZWQgcXVhbnRpZmllcnMKLUNS RUFURSBWSUVXIHJwcl9ldjQxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3B4X2JvdW5kZWQgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMg cyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTI0OSw3ICsxMjQ5LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEF7Miw1fSBCKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFT IHYgJSAxMCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfY3B4X2JvdW5kZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTI2Miw3ICsxMjYyLDcgQEAgV0lORE9XIHcgQVMg KAogKTsnKTsKIAogLS0gU3RhciBxdWFudGlmaWVyCi1DUkVBVEUgVklFVyBycHJfZXY0MiBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X2NweF9zdGFyIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTI3 MSw3ICsxMjcxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiogQykKICAgICBE RUZJTkUgQSBBUyB2ICUgMTAgPSAxLCBCIEFTIHYgJSAxMCBJTiAoMiwzLDQsNSw2LDcsOCksIEMg QVMgdiAlIDEwID0gOQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2NDInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfc3RhcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMjg4LDcgKzEyODgsNyBAQCBXSU5ET1cgdyBBUyAo CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIFYtc2hhcGUgKGRvd24gdGhlbiB1 cCkKLUNSRUFURSBWSUVXIHJwcl9ldjQzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfcmVhbF92c2hh cGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV9jb21wbGV4CiBXSU5E T1cgdyBBUyAoCkBAIC0xMjk3LDcgKzEyOTcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoRCsgVSspCiAgICAgREVGSU5FIEQgQVMgdHJlbmQgPSAnRCcsIFUgQVMgdHJlbmQgPSAnVScK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjQzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfcmVhbF92c2hhcGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwpAQCAtMTMxMCw3ICsxMzEwLDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAog LS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVwLCBzdGFibGUsIGRvd24pCi1DUkVBVEUg VklFVyBycHJfZXY0NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlYWxfcGVhayBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBycHJfbmZhX2NvbXBsZXgKIFdJTkRPVyB3IEFTICgKQEAg LTEzMTksNyArMTMxOSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChVKyBTKiBEKykK ICAgICBERUZJTkUgVSBBUyB0cmVuZCA9ICdVJywgUyBBUyB0cmVuZCA9ICdTJywgRCBBUyB0cmVu ZCA9ICdEJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2NDQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl9yZWFsX3BlYWsnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtMTMzMiw3ICsxMzMyLDcgQEAgV0lORE9XIHcgQVMgKAogKTsn KTsKIAogLS0gQ29uc2VjdXRpdmUgaW5jcmVhc2luZyB2YWx1ZXMgKHVzaW5nIFBSRVYpCi1DUkVB VEUgVklFVyBycHJfZXY0NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlYWxfaW5jcmVhc2luZyBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEzNDEsNyArMTM0MSw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBezMsfSkKICAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2KSBPUiBQUkVW KHYpIElTIE5VTEwKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfcmVhbF9pbmNyZWFzaW5nJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTEzNTgsNyArMTM1OCw3IEBAIFdJTkRPVyB3 IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogCiAtLSBMYXJnZSBkYXRhc2V0IHdpdGggc2ltcGxlIHBhdHRlcm4KLUNS RUFURSBWSUVXIHJwcl9ldjQ2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcGVyZl9sYXJnZV9zaW1w bGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEw MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEzNjcsNyArMTM2Nyw3IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFT IHYgJSAyID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2NDYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9wZXJmX2xhcmdlX3NpbXBsZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMzgwLDcgKzEzODAsNyBAQCBXSU5ET1cg dyBBUyAoCiApOycpOwogCiAtLSBMYXJnZSBkYXRhc2V0IHdpdGggYWJzb3JwdGlvbgotQ1JFQVRF IFZJRVcgcnByX2V2NDcgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9wZXJmX2xhcmdlX2Fic29yYiBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTM4OSw3ICsxMzg5LDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwMCA8PiAwLCBCIEFT IHYgJSAxMDAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0NycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3BlcmZfbGFyZ2VfYWJzb3JiJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0MDIsNyArMTQwMiw3IEBAIFdJTkRP VyB3IEFTICgKICk7Jyk7CiAKIC0tIEhpZ2ggc3RhdGUgbWVyZ2UgcmF0aW8KLUNSRUFURSBWSUVX IHJwcl9ldjQ4IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcGVyZl9oaWdoX21lcmdlIEFTCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTE0MTEsNyArMTQxMSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOICgoQSB8IEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUg MyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0OCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3BlcmZfaGlnaF9tZXJnZScpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNDI4LDcgKzE0MjgsNyBA QCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gV2l0aCBJTklUSUFMIGtleXdvcmQKLUNSRUFU RSBWSUVXIHJwcl9ldjQ5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRoIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2 KQogV0lORE9XIHcgQVMgKApAQCAtMTQzOCw3ICsxNDM4LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9 IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjQ5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfaW5pdGlhbF93aXRoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTE0NTIsNyArMTQ1Miw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7 CiAKIC0tIFdpdGhvdXQgSU5JVElBTCBrZXl3b3JkIChzYW1lIGJlaGF2aW9yIGN1cnJlbnRseSkK LUNSRUFURSBWSUVXIHJwcl9ldjUwIEFTCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRo b3V0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBB UyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjUwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfaW5pdGlhbF93aXRob3V0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0NzgsNyArMTQ3OCw3IEBAIFdJTkRPVyB3 IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogCiAtLSBQbHVzIHF1YW50aWZpZXIKLUNSRUFURSBWSUVXIHJwcl9ldjUx IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTE0ODcsNyArMTQ4Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAg ICBERUZJTkUgQSBBUyB2ICUgNCA8PiAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MScpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3BsdXMnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTUwMCw3ICsxNTAwLDcgQEAg V0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gU3RhciBxdWFudGlmaWVyICh6ZXJvIG9yIG1vcmUp Ci1DUkVBVEUgVklFVyBycHJfZXY1MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3N0YXIg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNTA5LDcgKzE1MDksNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSogQikKICAgICBERUZJTkUgQSBBUyB2ICUgNCBJTiAoMSwgMiksIEIg QVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3F1YW50X3N0YXInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTUyMiw3ICsxNTIyLDcgQEAgV0lORE9XIHcgQVMg KAogKTsnKTsKIAogLS0gUXVlc3Rpb24gbWFyayAoemVybyBvciBvbmUpCi1DUkVBVEUgVklFVyBy cHJfZXY1MyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3F1ZXN0aW9uIEFTCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQogV0lO RE9XIHcgQVMgKApAQCAtMTUzMSw3ICsxNTMxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEE/IEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAyLCBD IEFTIHYgJSA0ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2NTMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9xdWFudF9xdWVzdGlvbicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNTQ0LDcgKzE1NDQsNyBAQCBXSU5ET1cg dyBBUyAoCiApOycpOwogCiAtLSBFeGFjdCBjb3VudCB7bn0KLUNSRUFURSBWSUVXIHJwcl9ldjU0 IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfZXhhY3QgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAo CkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXszfSBC KQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1 NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50 X2V4YWN0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK QEAgLTE1NjYsNyArMTU2Niw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIFJhbmdlIHtu LG19Ci1DUkVBVEUgVklFVyBycHJfZXY1NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3Jh bmdlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTU3NSw3ICsxNTc1LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEF7Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAs IEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3JhbmdlJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE1ODgsNyArMTU4OCw3IEBAIFdJTkRPVyB3 IEFTICgKICk7Jyk7CiAKIC0tIEF0IGxlYXN0IHtuLH0KLUNSRUFURSBWSUVXIHJwcl9ldjU2IEFT CitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfYXRsZWFzdCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTE1OTcsNyArMTU5Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezMsfSBC KQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djU2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVh bnRfYXRsZWFzdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIFZlcmlmeSBzdGF0 ZSBjb3VudCBhY2N1cmFjeQogLS0gUGF0dGVybiBBKyBCIHdpdGggMjAgcm93cyBzaG91bGQgc2hv dyBwcmVkaWN0YWJsZSBzdGF0ZSBiZWhhdmlvcgotQ1JFQVRFIFZJRVcgcnByX2V2NTcgQVMKK0NS RUFURSBWSUVXIHJwcl9ldl9yZWdfc3RhdGVfY291bnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBA IC0xNjI0LDcgKzE2MjQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAg ICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTcnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfc3RhdGVf Y291bnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMTYzNyw3ICsxNjM3LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gVmVyaWZ5IGNv bnRleHQgY291bnQgd2l0aCBrbm93biBhYnNvcnB0aW9uCi1DUkVBVEUgVklFVyBycHJfZXY1OCBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19jdHhfYWJzb3JiIEFTCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMg KApAQCAtMTY0Niw3ICsxNjQ2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIg QykKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgSU4gKDEsMiwzLDQsNSw2LDcpLCBCIEFTIHYgJSAx MCA9IDgsIEMgQVMgdiAlIDEwID0gOQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTgnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfY3R4X2Fic29yYicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNjU5LDcgKzE2NTksNyBA QCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBWZXJpZnkgbWF0Y2ggbGVuZ3RoIHdpdGggZml4 ZWQtbGVuZ3RoIHBhdHRlcm4KLUNSRUFURSBWSUVXIHJwcl9ldjU5IEFTCitDUkVBVEUgVklFVyBy cHJfZXZfcmVnX21hdGNobGVuIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTY2OCw3ICsxNjY4 LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiBDKQogICAgIERFRklORSBBIEFT IHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1OScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3JlZ19tYXRj aGxlbicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBA IC0xNjg1LDcgKzE2ODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gU2ltcGxlIGFs dGVybmF0aW9uCi1DUkVBVEUgVklFVyBycHJfZXY2MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2Fs dF9zaW1wbGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBX SU5ET1cgdyBBUyAoCkBAIC0xNjk0LDcgKzE2OTQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoKEEgfCBCKSBDKQogICAgIERFRklORSBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAn QicsIEMgQVMgY2F0ID0gJ0MnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTcwNyw3ICsxNzA3LDcgQEAgV0lORE9X IHcgQVMgKAogKTsnKTsKIAogLS0gTXVsdGlwbGUgaXRlbXMgaW4gYWx0ZXJuYXRpb24KLUNSRUFU RSBWSUVXIHJwcl9ldjYxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X211bHRpX2l0ZW0gQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAo CkBAIC0xNzE4LDcgKzE3MTgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMgY2F0ID0g J0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycsCiAgICAgICAgIEQgQVMgY2F0ID0g J0QnLCBFIEFTIGNhdCA9ICdFJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfbXVsdGlfaXRlbScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNzMzLDcgKzE3MzMsNyBAQCBX SU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBBbHRlcm5hdGlvbiB3aXRoIHF1YW50aWZpZXJzCi1D UkVBVEUgVklFVyBycHJfZXY2MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF93aXRoX3F1YW50 IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTc0Miw3ICsxNzQyLDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKChBIHwgQikrIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBC IEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjYyJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X3dpdGhfcXVhbnQnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTc1NSw3ICsx NzU1LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTXVsdGlwbGUgYWx0ZXJuYXRpdmVz ICg0KykKLUNSRUFURSBWSUVXIHJwcl9ldjYzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2Zv dXJfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNzYzLDcgKzE3NjMsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCiAgICAgREVGSU5FIEEg QVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMgdiAlIDUg PSAzLCBFIEFTIHYgJSA1ID0gNAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZm91cl9wbHVzJyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE3NzUsNyArMTc3NSw3IEBAIFdJ TkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEFsdGVybmF0aW9uIGF0IHN0YXJ0Ci1DUkVBVEUgVklF VyBycHJfZXY2NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9hdF9zdGFydCBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTE3ODMsNyArMTc4Myw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOICgoQSB8IEIpIEMgRCkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQg PSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY0JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2F0X3N0YXJ0Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE3OTUs NyArMTc5NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIE11bHRpcGxlIHNlcXVlbnRp YWwgYWx0ZXJuYXRpb25zCi1DUkVBVEUgVklFVyBycHJfZXY2NSBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X2FsdF9zZXF1ZW50aWFsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE4MDMsNyArMTgw Myw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpIEMgKEQgfCBFKSBGKQog ICAgIERFRklORSBBIEFTIHYgJSA2ID0gMCwgQiBBUyB2ICUgNiA9IDEsIEMgQVMgdiAlIDYgPSAy LCBEIEFTIHYgJSA2ID0gMywgRSBBUyB2ICUgNiA9IDQsIEYgQVMgdiAlIDYgPSA1CiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXY2NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Fs dF9zZXF1ZW50aWFsJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwog U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKQEAgLTE4MTUsNyArMTgxNSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIFF1 YW50aWZpZWQgYWx0ZXJuYXRpdmVzCi1DUkVBVEUgVklFVyBycHJfZXY2NiBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X2FsdF9xdWFudGlmaWVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTgyMyw3 ICsxODIzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBKyB8IEIrKSBDKQogICAg IERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXY2NicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X2FsdF9xdWFudGlmaWVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTE4MzUsNyArMTgzNSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAK IC0tIEFsdGVybmF0aW9uIGF0IGVuZAotQ1JFQVRFIFZJRVcgcnByX2V2NjcgQVMKK0NSRUFURSBW SUVXIHJwcl9ldl9hbHRfYXRfZW5kIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTg0Myw3ICsx ODQzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiAoQyB8IEQpKQogICAgIERF RklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFT IHYgJSA0ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2NjcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfYXRfZW5kJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE4NTYsNyArMTg1Niw3IEBAIFdJTkRPVyB3IEFTICgK IAogLS0gTmVzdGVkIEFMVCBhdCBzdGFydCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAogLS0g UGF0dGVybjogKEEgKChCIHwgQykgRCB8IEUpKSAtIHByZWNlZGluZyBWQVIgKyBpbm5lciBBTFQg YXMgZmlyc3QgYnJhbmNoIGVsZW1lbnQKLUNSRUFURSBWSUVXIHJwcl9ldjY4IEFTCitDUkVBVEUg VklFVyBycHJfZXZfYWx0X25lc3RlZF9zdGFydCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE4 NjQsNyArMTg2NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBICgoQiB8IEMpIEQg fCBFKSkKICAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDAsIEIgQVMgdiAlIDUgPSAxLCBDIEFTIHYg JSA1ID0gMiwgRCBBUyB2ICUgNSA9IDMsIEUgQVMgdiAlIDUgPSA0CiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2OCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9uZXN0ZWRf c3RhcnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMTg3Nyw3ICsxODc3LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBOZXN0ZWQgQUxUIGF0IGVu ZCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAogLS0gUGF0dGVybjogKEMgKEEgfCBCKSB8IEQp IC0gaW5uZXIgQUxUIGlzIGxhc3QgZWxlbWVudCBpbiBvdXRlciBicmFuY2gKLUNSRUFURSBWSUVX IHJwcl9ldjY5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X25lc3RlZF9lbmQgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0xODg1LDcgKzE4ODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQyAoQSB8IEIpIHwgRCkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAl IDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY5JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X25lc3RlZF9l bmQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAt MTkwMSw3ICsxOTAxLDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0tIFNpbXBsZSBncm91 cAotQ1JFQVRFIFZJRVcgcnByX2V2NzAgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9ncnBfc2ltcGxl IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTkxMCw3ICsxOTEwLDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKChBIEIpKykKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMg diAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXY3MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X2dycF9zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTkyMyw3ICsxOTIzLDcgQEAgV0lORE9XIHcgQVMgKAog KTsnKTsKIAogLS0gR3JvdXAgd2l0aCBib3VuZGVkIHF1YW50aWZpZXIKLUNSRUFURSBWSUVXIHJw cl9ldjcxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2JvdW5kZWQgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC0xOTMyLDcgKzE5MzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo KEEgQil7Miw0fSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXY3MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X2dycF9ib3VuZGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTE5NDUsNyArMTk0NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0t IE5lc3RlZCBncm91cHMKLUNSRUFURSBWSUVXIHJwcl9ldjcyIEFTCitDUkVBVEUgVklFVyBycHJf ZXZfZ3JwX25lc3RlZCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE5NTQsNyArMTk1NCw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQil7Mn0pKykKICAgICBERUZJTkUgQSBB UyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3MicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9uZXN0ZWQnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTk2Nyw3ICsxOTY3LDcg QEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gRGVlcCBuZXN0aW5nICgzKyBsZXZlbHMpCi1D UkVBVEUgVklFVyBycHJfZXY3MyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9kZWVwIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2 KQogV0lORE9XIHcgQVMgKApAQCAtMTk3NSw3ICsxOTc1LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKCgoKEEgfCBCKSspKykrKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMCwgQiBB UyB2ICUgMiA9IDEKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjczJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfZ3JwX2RlZXAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTk4Nyw3ICsxOTg3LDcgQEAgV0lORE9XIHcgQVMgKAog KTsnKTsKIAogLS0gQm91bmRlZCBxdWFudGlmaWVyIG9uIGFsdGVybmF0aW9uCi1DUkVBVEUgVklF VyBycHJfZXY3NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9ib3VuZGVkX2FsdCBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTE5OTUsNyArMTk5NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOICgoQSB8IEIpezIsM30gQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMg diAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9ncnBfYm91bmRlZF9hbHQnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjAwNyw3ICsyMDA3 LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTmVzdGVkIGdyb3VwcyB3aXRoIHF1YW50 aWZpZXJzCi1DUkVBVEUgVklFVyBycHJfZXY3NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9u ZXN0ZWRfcXVhbnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBX SU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIpKyBDKSopCiAgICAgREVGSU5FIEEgQVMg diAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjc1Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3JwX25lc3Rl ZF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC0yMDI3LDcgKzIwMjcsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBQYXJ0aWFs IG5lc3RlZCBxdWFudGlmaWNhdGlvbgotQ1JFQVRFIFZJRVcgcnByX2V2NzYgQVMKK0NSRUFURSBW SUVXIHJwcl9ldl9ncnBfcGFydGlhbF9xdWFudCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIw MzUsNyArMjAzNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSAoQiBDKSspKikK ICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0g MgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2NzYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9ncnBfcGFydGlhbF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMDUxLDcgKzIwNTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIAogLS0gY291bnQoKikgd2l0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY3NyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3dmbl9jb3VudCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAg LTIwNjAsNyArMjA2MCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAg IERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3NycpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3dmbl9jb3VudCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMDcz LDcgKzIwNzMsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBmaXJzdF92YWx1ZSB3aXRo IHBhdHRlcm4KLUNSRUFURSBWSUVXIHJwcl9ldjc4IEFTCitDUkVBVEUgVklFVyBycHJfZXZfd2Zu X2ZpcnN0X3ZhbHVlIEFTCiBTRUxFQ1QgZmlyc3RfdmFsdWUodikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjA4Miw3ICsyMDgy LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMg diAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjc4JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfd2ZuX2ZpcnN0X3ZhbHVlJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBmaXJzdF92YWx1ZSh2KSBPVkVSIHcKQEAgLTIwOTUs NyArMjA5NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIGxhc3RfdmFsdWUgd2l0aCBw YXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY3OSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3dmbl9s YXN0X3ZhbHVlIEFTCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMTA0LDcgKzIxMDQsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUg NSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzknKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fbGFzdF92YWx1ZScpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcKQEAgLTIxMTcsNyArMjEx Nyw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIE11bHRpcGxlIHdpbmRvdyBmdW5jdGlv bnMKLUNSRUFURSBWSUVXIHJwcl9ldjgwIEFTCitDUkVBVEUgVklFVyBycHJfZXZfd2ZuX211bHRp IEFTCiBTRUxFQ1QKICAgICBjb3VudCgqKSBPVkVSIHcsCiAgICAgZmlyc3RfdmFsdWUodikgT1ZF UiB3LApAQCAtMjEyOSw3ICsyMTI5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEr IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djgwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfd2Zu X211bHRpJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVApAQCAtMjE0OSw3ICsyMTQ5 LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0tIENvbXBsZXggYm9vbGVhbiBleHByZXNz aW9ucwotQ1JFQVRFIFZJRVcgcnByX2V2ODEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9kZWZfY29t cGxleF9ib29sIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjE2MCw3ICsyMTYwLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgICAgICBBIEFTICh2ICUgNSA8PiAwKSBBTkQgKHYgJSAzIDw+IDApLAog ICAgICAgICBCIEFTICh2ICUgNSA9IDApIE9SICh2ICUgMyA9IDApCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4MScpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2RlZl9jb21wbGV4 X2Jvb2wnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMjE3NSw3ICsyMTc1LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gVXNpbmcgUFJF ViBmdW5jdGlvbgotQ1JFQVRFIFZJRVcgcnByX2V2ODIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9k ZWZfcHJldiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIxODcsNyArMjE4Nyw3IEBAIFdJTkRP VyB3IEFTICgKICAgICAgICAgVSBBUyB2ID4gUFJFVih2KSwKICAgICAgICAgRCBBUyB2IDwgUFJF Vih2KQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2ODInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9kZWZfcHJldicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC0yMjAzLDcgKzIyMDMsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwog CiAtLSBVc2luZyBOVUxMIGNvbXBhcmlzb25zCi1DUkVBVEUgVklFVyBycHJfZXY4MyBBUworQ1JF QVRFIFZJRVcgcnByX2V2X2RlZl9udWxsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N ICgKICAgICBTRUxFQ1QgQ0FTRSBXSEVOIHYgJSA1ID0gMCBUSEVOIE5VTEwgRUxTRSB2IEVORCBB UyB2CkBAIC0yMjE1LDcgKzIyMTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsg QikKICAgICBERUZJTkUgQSBBUyB2IElTIE5PVCBOVUxMLCBCIEFTIHYgSVMgTlVMTAogKTsKLVNF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2ODMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9k ZWZfbnVsbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC0yMjM1LDcgKzIyMzUsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gNTAwIHJv d3MgLSB2ZXJpZnkgc3RhdGlzdGljcyBzY2FsZSBjb3JyZWN0bHkKLUNSRUFURSBWSUVXIHJwcl9l djg0IEFTCitDUkVBVEUgVklFVyBycHJfZXZfc2NhbGVfNTAwcm93cyBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC0yMjQ0LDcgKzIyNDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QSsgQiBDKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8IDcsIEIgQVMgdiAlIDEwID0gNywgQyBB UyB2ICUgMTAgPSA4CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3NjYWxlXzUwMHJvd3MnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjI1Nyw3ICsyMjU3LDcgQEAgV0lORE9XIHcg QVMgKAogKTsnKTsKIAogLS0gSGlnaCBtYXRjaCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcg cnByX2V2ODUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX21hdGNoIEFTCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTIyNjYsNyArMjI2Niw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2ODUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9zY2FsZV9oaWdoX21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTIyNzksNyArMjI3OSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7 CiAKIC0tIEhpZ2ggc2tpcCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcgcnByX2V2ODYgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX3NraXAgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMg KApAQCAtMjI5Myw3ICsyMjkzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBEIEFTIHYgJSAx MDAgPSA0LAogICAgICAgICBFIEFTIHYgJSAxMDAgPSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3NjYWxlX2hpZ2hfc2tpcCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMzIx LDcgKzIzMjEsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLQogCiAtLSBXaXRob3V0IFJQUjogcm93X251 bWJlcigpIGZyYW1lIGlzIG9wdGltaXplZCB0byBST1dTIFVOQk9VTkRFRCBQUkVDRURJTkcKLUNS RUFURSBWSUVXIHJwcl9ldjg3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfb3B0X25vX3JwciBBUwog U0VMRUNUIHJvd19udW1iZXIoKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzI5LDEwICsyMzI5LDEwIEBAIFdJTkRPVyB3IEFT ICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK ICk7CiAKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4NzsKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXZfb3B0X25vX3JwcjsKIAogLS0gV2l0 aCBSUFI6IGZyYW1lIG11c3QgcmVtYWluIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwotQ1JFQVRFIFZJRVcgcnByX2V2ODggQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9vcHRfd2l0aF9ycHIgQVMKIFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAxMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjM0NCwxMyAr MjM0NCwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEIgQVMgdiA+IFBSRVYodikKICk7CiAK LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4ODsKK0VYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXZfb3B0X3dpdGhfcnByOwogCiAtLQogLS0gUGxh bm5lciBvcHRpbWl6YXRpb246IG5vbi1SUFIgYW5kIFJQUiB3aW5kb3dzIHRoYXQgc2hhcmUgdGhl IHNhbWUgYmFzZSBmcmFtZQogLS0gYWZ0ZXIgZnJhbWUgb3B0aW1pemF0aW9uIGFyZSBrZXB0IGFz IHNlcGFyYXRlIFdpbmRvd0FnZyBub2Rlcy4KIC0tCi1DUkVBVEUgVklFVyBycHJfZXY4OSBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X29wdF9taXhlZCBBUwogU0VMRUNUCiAgICAgcm93X251bWJlcigp IE9WRVIgd19ub3JtYWwgQVMgcm5fbm9ybWFsLAogICAgIHJvd19udW1iZXIoKSBPVkVSIHdfcnBy IEFTIHJuX3JwcgpAQCAtMjM2NCw3ICsyMzY0LDcgQEAgV0lORE9XCiAgICAgICAgIERFRklORSBB IEFTIHYgPiAxCiAgICAgKTsKIAotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJw cl9ldjg5OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldl9vcHRfbWl4 ZWQ7CiAKIC0tCiAtLSBQbGFubmVyIG9wdGltaXphdGlvbjogZmluZF93aW5kb3dfcnVuX2NvbmRp dGlvbnMgbXVzdCBub3QgcHVzaCBkb3duCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0011-Fix-quote_identifier-deparse.txt" Content-Disposition: attachment; filename="nocfbot-0011-Fix-quote_identifier-deparse.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfn77q10 RnJvbSAxMTU0MjVhMDU3NzY3ZWJmMmI2ZTRjODc3NjQxZWQxNTZiMGVkMDdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDg6NTM6NDYgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggcXVv dGVfaWRlbnRpZmllcigpIGZvciBSUFIgcGF0dGVybiB2YXJpYWJsZSBuYW1lIGRlcGFyc2UKCkFk ZCBxdW90ZV9pZGVudGlmaWVyKCkgdG8gUEFUVEVSTiBhbmQgREVGSU5FIHZhcmlhYmxlIG5hbWUg b3V0cHV0CmluIHJ1bGV1dGlscy5jIGFuZCBleHBsYWluLmMuICBXaXRob3V0IHF1b3RpbmcsIG1p eGVkLWNhc2Ugb3IKcmVzZXJ2ZWQtd29yZCB2YXJpYWJsZSBuYW1lcyAoZS5nLiwgIlN0YXJ0Iiwg IlVwIikgbG9zZSB0aGVpcgpjYXNlIG9yIGNvbmZsaWN0IHdpdGgga2V5d29yZHMgaW4gcGdfZ2V0 X3ZpZXdkZWYoKSBvdXRwdXQsCmJyZWFraW5nIHBnX2R1bXAvcGdfcmVzdG9yZSByb3VuZC10cmlw cy4KCkFkZCByZWdyZXNzaW9uIHRlc3Qgd2l0aCBxdW90ZWQgaWRlbnRpZmllcnMgKCJTdGFydCIs ICJVcCIpIHRvCnZlcmlmeSBjb3JyZWN0IGRlcGFyc2UgaW4gYm90aCBwZ19nZXRfdmlld2RlZiBh bmQgRVhQTEFJTiBvdXRwdXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAg ICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAg ICAgfCAgNCArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCAgICB8 IDI0ICsrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9leHBsYWluLm91dCB8IDE5ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByX2Jhc2Uuc3FsICAgICAgICAgfCAxMCArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHJfZXhwbGFpbi5zcWwgICAgICB8IDEyICsrKysrKysrKysrKwogNiBmaWxlcyBjaGFu Z2VkLCA2OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4u YwppbmRleCA3ZjAzNjdjZTU0Ni4uOTMzZWFkYWI3MWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMK QEAgLTMxNzYsNyArMzE3Niw3IEBAIGRlcGFyc2VfcnByX3ZhcihSUFJQYXR0ZXJuICpwYXR0ZXJu LCBpbnQgKmlkeCwgU3RyaW5nSW5mb0RhdGEgKmJ1ZiwKIAkJYXBwZW5kU3RyaW5nSW5mb0NoYXIo YnVmLCAnICcpOwogCiAJQXNzZXJ0KGVsZW0tPnZhcklkIDwgcGF0dGVybi0+bnVtVmFycyk7Ci0J YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHBhdHRlcm4tPnZhck5hbWVzW2VsZW0tPnZhcklk XSk7CisJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIocGF0dGVy bi0+dmFyTmFtZXNbZWxlbS0+dmFySWRdKSk7CiAJYXBwZW5kX3Jwcl9xdWFudGlmaWVyKGJ1Ziwg ZWxlbSk7CiAJKm5lZWRTcGFjZSA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpp bmRleCBjZmUyNGRlNDNjZi4uYzc1NWE0MmVmZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMKQEAgLTcxNjAsNyArNzE2MCw3IEBAIGdldF9ydWxlX3BhdHRlcm5fbm9kZShSUFJQYXR0ZXJu Tm9kZSAqbm9kZSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCXN3aXRjaCAobm9kZS0+bm9k ZVR5cGUpCiAJewogCQljYXNlIFJQUl9QQVRURVJOX1ZBUjoKLQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoYnVmLCBub2RlLT52YXJOYW1lKTsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm LCBxdW90ZV9pZGVudGlmaWVyKG5vZGUtPnZhck5hbWUpKTsKIAkJCWFwcGVuZF9wYXR0ZXJuX3F1 YW50aWZpZXIoYnVmLCBub2RlKTsKIAkJCWJyZWFrOwogCkBAIC03MjI5LDcgKzcyMjksNyBAQCBn ZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBib29sIGZvcmNlX2NvbG5vLCBkZXBh cnNlX2NvbnRleHQgKmNvbnRleHQpCiAJewogCQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50 cnkgKikgbGZpcnN0KGxjX2RlZik7CiAKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlcyVzIEFT ICIsIHNlcCwgdGUtPnJlc25hbWUpOworCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzJXMgQVMg Iiwgc2VwLCBxdW90ZV9pZGVudGlmaWVyKHRlLT5yZXNuYW1lKSk7CiAJCWdldF9ydWxlX2V4cHIo KE5vZGUgKikgdGUtPmV4cHIsIGNvbnRleHQsIGZhbHNlKTsKIAkJc2VwID0gIixcbiAgIjsKIAl9 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IDc0NTJjZjFiM2FiLi42 NTI2MzY1ZGQ2YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFz ZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKQEAgLTIy NTIsNiArMjI1MiwzMCBAQCBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9xdWFudF9yZWx1Y3Rh bnRfdic6OnJlZ2NsYXNzKTsKICAgIGIgQVMgKHZhbCA+IDApICk7CiAoMSByb3cpCiAKKy0tIFF1 b3RlZCBpZGVudGlmaWVyIHJvdW5kLXRyaXA6IG1peGVkIGNhc2UgYW5kIHJlc2VydmVkIHdvcmRz IG5lZWQgcXVvdGluZworQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9xdW90ZWQgQVMKK1NFTEVDVCBp ZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoIlN0YXJ0IiAiVXAiKykKKyAg ICAgICAgICAgICBERUZJTkUgIlN0YXJ0IiBBUyBUUlVFLCAiVXAiIEFTIHZhbCA+IFBSRVYodmFs KSk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfcXVvdGVkJzo6cmVnY2xhc3Mp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNU IGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIg dyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgUEFUVEVSTiAoIlN0YXJ0 IiAiVXAiKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICJTdGFydCIgQVMgdHJ1ZSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIlVw IiBBUyAodmFsID4gcHJldih2YWwpKSApOworKDEgcm93KQorCiAtLSBNYXRlcmlhbGl6ZWQgdmll dyAoaWYgc3VwcG9ydGVkKQogQ1JFQVRFIFRBQkxFIHJwcl9tdmlldyAoaWQgSU5ULCB2YWwgSU5U KTsKIElOU0VSVCBJTlRPIHJwcl9tdmlldyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDMw KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKaW5kZXggZjY2Y2Fm ODkwOGUuLmE2OGVjNjFlMTBmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9leHBsYWluLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBs YWluLm91dApAQCAtMzAxLDYgKzMwMSwyNSBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkK ICg4IHJvd3MpCiAKKy0tIFJlZ3Jlc3Npb24gdGVzdDogUXVvdGVkIGlkZW50aWZpZXJzIGluIEVY UExBSU4gcGF0dGVybiBkZXBhcnNlCistLSBNaXhlZCBjYXNlIG5hbWVzIG11c3QgYmUgcXVvdGVk IHRvIHByZXNlcnZlIHJvdW5kLXRyaXAgc2FmZXR5CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoIlN0 YXJ0IiAiVXAiKykKKyAgICBERUZJTkUgIlN0YXJ0IiBBUyBUUlVFLCAiVXAiIEFTIHYgPiBQUkVW KHYpCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CisgICBQYXR0ZXJuOiAiU3RhcnQiICJVcCIrCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcworKDQgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTdGF0ZSBTdGF0aXN0aWNzIFRl c3RzIChwZWFrLCB0b3RhbCwgbWVyZ2VkKQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5z cWwKaW5kZXggOGMyM2M3NTk4YTMuLjNhY2NlY2I3M2JhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jh c2Uuc3FsCkBAIC0xNTU5LDYgKzE1NTksMTYgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCiAg ICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiAwKTsKIFNFTEVDVCBw Z19nZXRfdmlld2RlZigncnByX3F1YW50X3JlbHVjdGFudF92Jzo6cmVnY2xhc3MpOwogCistLSBR dW90ZWQgaWRlbnRpZmllciByb3VuZC10cmlwOiBtaXhlZCBjYXNlIGFuZCByZXNlcnZlZCB3b3Jk cyBuZWVkIHF1b3RpbmcKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfcXVvdGVkIEFTCitTRUxFQ1Qg aWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChP UkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKCJTdGFydCIgIlVwIispCisg ICAgICAgICAgICAgREVGSU5FICJTdGFydCIgQVMgVFJVRSwgIlVwIiBBUyB2YWwgPiBQUkVWKHZh bCkpOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3F1b3RlZCc6OnJlZ2NsYXNz KTsKKwogLS0gTWF0ZXJpYWxpemVkIHZpZXcgKGlmIHN1cHBvcnRlZCkKIAogQ1JFQVRFIFRBQkxF IHJwcl9tdmlldyAoaWQgSU5ULCB2YWwgSU5UKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9leHBsYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWlu LnNxbAppbmRleCA2NWE3NzVmZGFkOS4uNzAzZWNkM2IyM2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHJfZXhwbGFpbi5zcWwKQEAgLTIyNiw2ICsyMjYsMTggQEAgV0lORE9XIHcgQVMgKAogICAgIERF RklORSBBIEFTIHYgJSA1ID0gMSwgQiBBUyB2ICUgNSA9IDIsIEMgQVMgdiAlIDUgPSAzLCBEIEFT IHYgJSA1ID0gNCwgRSBBUyB2ICUgNSA9IDAKICk7Jyk7CiAKKy0tIFJlZ3Jlc3Npb24gdGVzdDog UXVvdGVkIGlkZW50aWZpZXJzIGluIEVYUExBSU4gcGF0dGVybiBkZXBhcnNlCistLSBNaXhlZCBj YXNlIG5hbWVzIG11c3QgYmUgcXVvdGVkIHRvIHByZXNlcnZlIHJvdW5kLXRyaXAgc2FmZXR5CitT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoIlN0YXJ0IiAiVXAiKykKKyAgICBERUZJTkUgIlN0YXJ0IiBB UyBUUlVFLCAiVXAiIEFTIHYgPiBQUkVWKHYpCispOycpOworCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFN0YXRlIFN0 YXRpc3RpY3MgVGVzdHMgKHBlYWssIHRvdGFsLCBtZXJnZWQpCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0gCjIuNTAuMSAo QXBwbGUgR2l0LTE1NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0012-Fix-execRPR-Makefile-ordering.txt" Content-Disposition: attachment; filename="nocfbot-0012-Fix-execRPR-Makefile-ordering.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfnb8n11 RnJvbSBiNDZlMGVmYzJkYWM4MjJkN2I2ODczNDM0NWNkOWUwNTFlOGFhMjM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6MTQ6NTkgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggZXhl Y1JQUi5vIG9yZGVyaW5nIGluIGV4ZWN1dG9yIE1ha2VmaWxlIHRvIG1hdGNoCiBtZXNvbi5idWls ZAoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKaW5k ZXggZWVlZDlhOTA0ZTUuLjJiMjU3NDI3Nzk1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpAQCAtMjUs OCArMjUsOCBAQCBPQkpTID0gXAogCWV4ZWNQYXJhbGxlbC5vIFwKIAlleGVjUGFydGl0aW9uLm8g XAogCWV4ZWNQcm9jbm9kZS5vIFwKLQlleGVjUmVwbGljYXRpb24ubyBcCiAJZXhlY1JQUi5vIFwK KwlleGVjUmVwbGljYXRpb24ubyBcCiAJZXhlY1NSRi5vIFwKIAlleGVjU2Nhbi5vIFwKIAlleGVj VHVwbGVzLm8gXAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0013-Remove-unused-force_colno.txt" Content-Disposition: attachment; filename="nocfbot-0013-Remove-unused-force_colno.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfnfnx12 RnJvbSA0ZDY0Y2IzOTA3ZTk1ZDNmZmU2MWQyMDYwNDBiNjUyMDdiMzE5NTBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6NDA6NTMgKzA5MDAKU3ViamVjdDogW1BBVENIXSBSZW1vdmUg dW51c2VkIGZvcmNlX2NvbG5vIHBhcmFtZXRlciBmcm9tIFJQUiBkZXBhcnNlCiBmdW5jdGlvbnMK Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIHwgMTUgKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCBjNzU1YTQyZWZkNi4uZTkzYzAzYTM1MWMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTQ0OSwxMCArNDQ5LDggQEAgc3RhdGljIHZv aWQgZ2V0X3J1bGVfb3JkZXJieShMaXN0ICpvcmRlckxpc3QsIExpc3QgKnRhcmdldExpc3QsCiAJ CQkJCQkJIGJvb2wgZm9yY2VfY29sbm8sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7CiBzdGF0 aWMgdm9pZCBhcHBlbmRfcGF0dGVybl9xdWFudGlmaWVyKFN0cmluZ0luZm8gYnVmLCBSUFJQYXR0 ZXJuTm9kZSAqbm9kZSk7CiBzdGF0aWMgdm9pZCBnZXRfcnVsZV9wYXR0ZXJuX25vZGUoUlBSUGF0 dGVybk5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7Ci1zdGF0aWMgdm9pZCBn ZXRfcnVsZV9wYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm4sIGJvb2wgZm9yY2VfY29s bm8sCi0JCQkJCQkJIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7Ci1zdGF0aWMgdm9pZCBnZXRf cnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBib29sIGZvcmNlX2NvbG5vLAotCQkJCQkJ CWRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7CitzdGF0aWMgdm9pZCBnZXRfcnVsZV9wYXR0ZXJu KFJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7Citz dGF0aWMgdm9pZCBnZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBkZXBhcnNlX2Nv bnRleHQgKmNvbnRleHQpOwogc3RhdGljIHZvaWQgZ2V0X3J1bGVfd2luZG93Y2xhdXNlKFF1ZXJ5 ICpxdWVyeSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KTsKIHN0YXRpYyB2b2lkIGdldF9ydWxl X3dpbmRvd3NwZWMoV2luZG93Q2xhdXNlICp3YywgTGlzdCAqdGFyZ2V0TGlzdCwKIAkJCQkJCQkJ ZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KTsKQEAgLTcyMDMsOCArNzIwMSw3IEBAIGdldF9ydWxl X3BhdHRlcm5fbm9kZShSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgZGVwYXJzZV9jb250ZXh0ICpjb250 ZXh0KQogICogRGlzcGxheSBhIFBBVFRFUk4gY2xhdXNlLgogICovCiBzdGF0aWMgdm9pZAotZ2V0 X3J1bGVfcGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcnBQYXR0ZXJuLCBib29sIGZvcmNlX2NvbG5v LAotCQkJCSBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCitnZXRfcnVsZV9wYXR0ZXJuKFJQUlBh dHRlcm5Ob2RlICpycFBhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIHsKIAlTdHJp bmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKIApAQCAtNzIxNyw3ICs3MjE0LDcgQEAgZ2V0X3J1 bGVfcGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcnBQYXR0ZXJuLCBib29sIGZvcmNlX2NvbG5vLAog ICogRGlzcGxheSBhIERFRklORSBjbGF1c2UuCiAgKi8KIHN0YXRpYyB2b2lkCi1nZXRfcnVsZV9k ZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBib29sIGZvcmNlX2NvbG5vLCBkZXBhcnNlX2NvbnRl eHQgKmNvbnRleHQpCitnZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBkZXBhcnNl X2NvbnRleHQgKmNvbnRleHQpCiB7CiAJU3RyaW5nSW5mbwlidWYgPSBjb250ZXh0LT5idWY7CiAJ Y29uc3QgY2hhciAqc2VwOwpAQCAtNzM1Niw3ICs3MzUzLDcgQEAgZ2V0X3J1bGVfd2luZG93c3Bl YyhXaW5kb3dDbGF1c2UgKndjLCBMaXN0ICp0YXJnZXRMaXN0LAogCQlpZiAobmVlZHNwYWNlKQog CQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnICcpOwogCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKGJ1ZiwgIlxuICBQQVRURVJOICIpOwotCQlnZXRfcnVsZV9wYXR0ZXJuKHdjLT5ycFBhdHRl cm4sIGZhbHNlLCBjb250ZXh0KTsKKwkJZ2V0X3J1bGVfcGF0dGVybih3Yy0+cnBQYXR0ZXJuLCBj b250ZXh0KTsKIAkJbmVlZHNwYWNlID0gdHJ1ZTsKIAl9CiAKQEAgLTczNjUsNyArNzM2Miw3IEBA IGdldF9ydWxlX3dpbmRvd3NwZWMoV2luZG93Q2xhdXNlICp3YywgTGlzdCAqdGFyZ2V0TGlzdCwK IAkJaWYgKG5lZWRzcGFjZSkKIAkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyAnKTsKIAkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJcbiAgREVGSU5FXG4iKTsKLQkJZ2V0X3J1bGVf ZGVmaW5lKHdjLT5kZWZpbmVDbGF1c2UsIGZhbHNlLCBjb250ZXh0KTsKKwkJZ2V0X3J1bGVfZGVm aW5lKHdjLT5kZWZpbmVDbGF1c2UsIGNvbnRleHQpOwogCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihi dWYsICcgJyk7CiAJfQogCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0014-CHECK_FOR_INTERRUPTS-cleanup-finalize.txt" Content-Disposition: attachment; filename="nocfbot-0014-CHECK_FOR_INTERRUPTS-cleanup-finalize.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfnjs313 RnJvbSA0Zjc3OWVkMzY1OGQ3YjRkOTc4MTliNWNjYTM5ZDZhMWQ1NTVkNjdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6NDM6MDcgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgQ0hF Q0tfRk9SX0lOVEVSUlVQVFMgdG8gUlBSIGNvbnRleHQgY2xlYW51cCBhbmQgZmluYWxpemUKIGxv b3BzCgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyB8IDQgKysrKwogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRleCA4ZjA0 NTdlMmIzYy4uOTdlZmE5YTQ5MjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNSUFIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTMwNjgsNiAr MzA2OCw4IEBAIEV4ZWNSUFJDbGVhbnVwRGVhZENvbnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBQ29udGV4dCAqZXhjbHVkZUN0eCkKIAogCWZvciAoY3R4ID0gd2luc3RhdGUt Pm5mYUNvbnRleHQ7IGN0eCAhPSBOVUxMOyBjdHggPSBuZXh0KQogCXsKKwkJQ0hFQ0tfRk9SX0lO VEVSUlVQVFMoKTsKKwogCQluZXh0ID0gY3R4LT5uZXh0OwogCiAJCS8qIFNraXAgdGhlIHRhcmdl dCBjb250ZXh0IGFuZCBjb250ZXh0cyBzdGlsbCBwcm9jZXNzaW5nICovCkBAIC0zMTA4LDYgKzMx MTAsOCBAQCBFeGVjUlBSRmluYWxpemVBbGxDb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUsIGludDY0IGxhc3RQb3MpCiAKIAlmb3IgKGN0eCA9IHdpbnN0YXRlLT5uZmFDb250ZXh0OyBj dHggIT0gTlVMTDsgY3R4ID0gY3R4LT5uZXh0KQogCXsKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMo KTsKKwogCQlpZiAoY3R4LT5zdGF0ZXMgIT0gTlVMTCkKIAkJewogCQkJbmZhX21hdGNoKHdpbnN0 YXRlLCBjdHgsIE5VTEwpOwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0015-Narrow-variable-scope-DEFINE-loop.txt" Content-Disposition: attachment; filename="nocfbot-0015-Narrow-variable-scope-DEFINE-loop.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfnmqy14 RnJvbSAzNjYwNjhmODlmZDAzODVjMzIzMWIyZjFiZDdkN2U3NWY5NjQxNzE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6NDg6NTUgKzA5MDAKU3ViamVjdDogW1BBVENIXSBOYXJyb3cg dmFyaWFibGUgc2NvcGUgaW4gRXhlY0luaXRXaW5kb3dBZ2cgREVGSU5FIGNsYXVzZSBsb29wCgot LS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDExICsrKy0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCBkY2EyZGU1NzBlOC4uMDIwMmM1MDgzMjMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTI2MjgsOSArMjYyOCw2IEBA IEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBl ZmxhZ3MpCiAJVHVwbGVEZXNjCXNjYW5EZXNjOwogCUxpc3RDZWxsICAgKmw7CiAKLQlUYXJnZXRF bnRyeSAqdGU7Ci0JRXhwcgkgICAqZXhwcjsKLQogCS8qIGNoZWNrIGZvciB1bnN1cHBvcnRlZCBm bGFncyAqLwogCUFzc2VydCghKGVmbGFncyAmIChFWEVDX0ZMQUdfQkFDS1dBUkQgfCBFWEVDX0ZM QUdfTUFSSykpKTsKIApAQCAtMjk1MSwxMyArMjk0OCwxMSBAQCBFeGVjSW5pdFdpbmRvd0FnZyhX aW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQkgKi8KIAkJZm9y ZWFjaChsLCBub2RlLT5kZWZpbmVDbGF1c2UpCiAJCXsKLQkJCWNoYXIJICAgKm5hbWU7CisJCQlU YXJnZXRFbnRyeSAqdGUgPSBsZmlyc3QobCk7CisJCQljaGFyCSAgICpuYW1lID0gdGUtPnJlc25h bWU7CisJCQlFeHByCSAgICpleHByID0gdGUtPmV4cHI7CiAJCQlFeHByU3RhdGUgICpleHBzOwog Ci0JCQl0ZSA9IGxmaXJzdChsKTsKLQkJCW5hbWUgPSB0ZS0+cmVzbmFtZTsKLQkJCWV4cHIgPSB0 ZS0+ZXhwcjsKLQogCQkJd2luc3RhdGUtPmRlZmluZVZhcmlhYmxlTGlzdCA9CiAJCQkJbGFwcGVu ZCh3aW5zdGF0ZS0+ZGVmaW5lVmFyaWFibGVMaXN0LAogCQkJCQkJbWFrZVN0cmluZyhwc3RyZHVw KG5hbWUpKSk7Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0016-Normalize-flag-macros-to-bool.txt" Content-Disposition: attachment; filename="nocfbot-0016-Normalize-flag-macros-to-bool.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfnpro15 RnJvbSBkNDQ1NGI5YTZiNTc2YTc5YWRjYTdmMmZmOTZhYmQwYjI4ZGIzYTg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTE6MzI6NTYgKzA5MDAKU3ViamVjdDogW1BBVENIXSBOb3JtYWxp emUgUlBSIGVsZW1lbnQgZmxhZyBtYWNyb3MgdG8gcmV0dXJuIGJvb2wKCi0tLQogc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3Jwci5oIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6 ZXIvcnByLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKaW5kZXggZTc4MDkyNjc4YmIu LjM2MGUxYmI3NzdmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKKysr IGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCkBAIC00NCwxMCArNDQsMTAgQEAKICNkZWZp bmUgUlBSX0VMRU1fQUJTT1JCQUJMRQkJCTB4MDgJLyogYWJzb3JwdGlvbiBqdWRnbWVudCBwb2lu dCAqLwogCiAvKiBBY2Nlc3NvciBtYWNyb3MgZm9yIFJQUlBhdHRlcm5FbGVtZW50ICovCi0jZGVm aW5lIFJQUkVsZW1Jc1JlbHVjdGFudChlKQkJCSgoZSktPmZsYWdzICYgUlBSX0VMRU1fUkVMVUNU QU5UKQotI2RlZmluZSBSUFJFbGVtQ2FuRW1wdHlMb29wKGUpCQkJKChlKS0+ZmxhZ3MgJiBSUFJf RUxFTV9FTVBUWV9MT09QKQotI2RlZmluZSBSUFJFbGVtSXNBYnNvcmJhYmxlQnJhbmNoKGUpCSgo ZSktPmZsYWdzICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0gpCi0jZGVmaW5lIFJQUkVsZW1J c0Fic29yYmFibGUoZSkJCQkoKGUpLT5mbGFncyAmIFJQUl9FTEVNX0FCU09SQkFCTEUpCisjZGVm aW5lIFJQUkVsZW1Jc1JlbHVjdGFudChlKQkJCSgoKGUpLT5mbGFncyAmIFJQUl9FTEVNX1JFTFVD VEFOVCkgIT0gMCkKKyNkZWZpbmUgUlBSRWxlbUNhbkVtcHR5TG9vcChlKQkJCSgoKGUpLT5mbGFn cyAmIFJQUl9FTEVNX0VNUFRZX0xPT1ApICE9IDApCisjZGVmaW5lIFJQUkVsZW1Jc0Fic29yYmFi bGVCcmFuY2goZSkJKCgoZSktPmZsYWdzICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0gpICE9 IDApCisjZGVmaW5lIFJQUkVsZW1Jc0Fic29yYmFibGUoZSkJCQkoKChlKS0+ZmxhZ3MgJiBSUFJf RUxFTV9BQlNPUkJBQkxFKSAhPSAwKQogI2RlZmluZSBSUFJFbGVtSXNWYXIoZSkJCQkoKGUpLT52 YXJJZCA8PSBSUFJfVkFSSURfTUFYKQogI2RlZmluZSBSUFJFbGVtSXNCZWdpbihlKQkJKChlKS0+ dmFySWQgPT0gUlBSX1ZBUklEX0JFR0lOKQogI2RlZmluZSBSUFJFbGVtSXNFbmQoZSkJCQkoKGUp LT52YXJJZCA9PSBSUFJfVkFSSURfRU5EKQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0017-Implement-1-slot-PREV-NEXT-navigation-for-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0017-Implement-1-slot-PREV-NEXT-navigation-for-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfns2k16 RnJvbSA4N2Q5YjBiMjg4YjlmMDc2NjNkY2I1MTkxZGIwYzM0YTNlZGI1NDczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIzOjUyOjQyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gSW1wbGVt ZW50IDEtc2xvdCBQUkVWL05FWFQgbmF2aWdhdGlvbiBmb3IgUlBSCgpBZGQgUFJFVih2YWx1ZSBb LCBvZmZzZXRdKSBhbmQgTkVYVCh2YWx1ZSBbLCBvZmZzZXRdKSBuYXZpZ2F0aW9uCmZ1bmN0aW9u cyBmb3IgdXNlIGluIHRoZSBERUZJTkUgY2xhdXNlIG9mIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9u LgoKVGhlc2UgZnVuY3Rpb25zIHJldHVybiB0aGUgY29sdW1uIHZhbHVlIGF0IGEgcm93IG9mZnNl dCByb3dzCmJlZm9yZS9hZnRlciB0aGUgY3VycmVudCByb3cgd2l0aGluIHRoZSBwYXJ0aXRpb24s IHJldHVybmluZyBOVUxMCmlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHBhcnRpdGlv bi4gVGhlIG9mZnNldCBkZWZhdWx0cwp0byAxIGlmIG9taXR0ZWQ7IG9mZnNldD0wIHJlZmVycyB0 byB0aGUgY3VycmVudCByb3cgaXRzZWxmOwpOVUxMIG9yIG5lZ2F0aXZlIG9mZnNldCByYWlzZXMg YW4gZXJyb3IuCgpLZXkgZGVzaWduOiBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91cyAzLXNsb3QgbW9k ZWwgKG91dGVyL3NjYW4vaW5uZXIpLAphIHNpbmdsZS1zbG90IHN3YXAgbW9kZWwgaXMgdXNlZC4g RUVPUF9SUFJfTkFWX1NFVCB0ZW1wb3JhcmlseQpyZXBsYWNlcyBlY3h0X291dGVydHVwbGUgd2l0 aCB0aGUgdGFyZ2V0IHJvdywgdGhlIGFyZ3VtZW50CmV4cHJlc3Npb24gZXZhbHVhdGVzIGFnYWlu c3QgaXQsIGFuZCBFRU9QX1JQUl9OQVZfUkVTVE9SRSByZXN0b3Jlcwp0aGUgb3JpZ2luYWwgc2xv dC4gVGhpcyBlbGltaW5hdGVzIHZhcm5vIHJld3JpdGluZyBhbmQgbmF0dXJhbGx5CnN1cHBvcnRz IGFyYml0cmFyeSBvZmZzZXRzLgoKQSBkZWRpY2F0ZWQgbmF2X3dpbm9iaiB3aXRoIGl0cyBvd24g dHVwbGVzdG9yZSByZWFkIHBvaW50ZXIgYXZvaWRzCmludGVyZmVyZW5jZSB3aXRoIGFnZ3JlZ2F0 ZSBwcm9jZXNzaW5nLiBBIG1hcmsgcG9pbnRlciBwaW5uZWQgYXQKcG9zaXRpb24gMCBwcmV2ZW50 cyB0dXBsZXN0b3JlIHRydW5jYXRpb24gc28gdGhhdCBQUkVWKGV4cHIsIE4pCmNhbiByZWFjaCBh bnkgcHJpb3Igcm93LgoKUlBSTmF2RXhwciBpcyBhIG5ldyBleHByZXNzaW9uIG5vZGUgdGhhdCBy ZXBsYWNlcyB0aGUgcHJldmlvdXMKYXBwcm9hY2ggb2YgaWRlbnRpZnlpbmcgUFJFVi9ORVhUIGJ5 IGZ1bmNpZC4gVGhlIHBhcnNlciB0cmFuc2Zvcm1zClBSRVYvTkVYVCBmdW5jdGlvbiBjYWxscyBp bnRvIFJQUk5hdkV4cHIgbm9kZXMgaW4gUGFyc2VGdW5jT3JDb2x1bW4oKS4KVmFsaWRhdGlvbiBp biBwYXJzZV9ycHIuYyByZWplY3RzIG5lc3RlZCBQUkVWL05FWFQsIHJlcXVpcmVzIGF0CmxlYXN0 IG9uZSBjb2x1bW4gcmVmZXJlbmNlIGluIHRoZSBmaXJzdCBhcmd1bWVudCwgYW5kIGVuc3VyZXMK dGhlIG9mZnNldCBpcyBhIHJ1bi10aW1lIGNvbnN0YW50LgoKUlBSTmF2S2luZCB1c2VzIHBsYWlu IGVudW0gdmFsdWVzIChub3QgLTEvKzEpIHNvIHRoYXQgRklSU1QvTEFTVApjYW4gYmUgYWRkZWQg bGF0ZXIgd2l0aG91dCBhcml0aG1ldGljIHRyaWNrcy4KCkxMVk0gSklUIGZhbGxzIGJhY2sgdG8g dGhlIGludGVycHJldGVyIGZvciBleHByZXNzaW9ucyBjb250YWluaW5nClJQUiBuYXZpZ2F0aW9u IG9wY29kZXMsIGJlY2F1c2UgSklUIGNvZGUgY2FjaGVzIHRoZSBvdXRlcnR1cGxlJ3MKdHRzX3Zh bHVlcy90dHNfaXNudWxsIHBvaW50ZXJzIGluIHRoZSBlbnRyeSBibG9jayBhbmQgdGhlCm1pZC1l eHByZXNzaW9uIHNsb3Qgc3dhcCBsZWF2ZXMgdGhlbSBzdGFsZS4gT25seSBERUZJTkUgY2xhdXNl CmV4cHJlc3Npb25zIHdpdGggUFJFVi9ORVhUIGFyZSBhZmZlY3RlZDsgb3RoZXIgZXhwcmVzc2lv bnMgaW4KdGhlIHNhbWUgcXVlcnkgYXJlIHN0aWxsIEpJVC1jb21waWxlZCBub3JtYWxseS4KLS0t CiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sICAgICAgICB8ICAyMiArLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgfCAgNTYgKysrCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICB8IDExMCArKysrKwogc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICAgICAgfCAyNDMgKysrKy0tLS0tLQogc3JjL2Jh Y2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgfCAgNDAgKysKIHNyYy9iYWNrZW5k L2ppdC9sbHZtL2xsdm1qaXRfdHlwZXMuYyAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jICAgICAgICAgICAgIHwgIDMzICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZnVuYy5jICAgICAgICAgICB8ICAzMCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jw ci5jICAgICAgICAgICAgfCAgODYgKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jICAgICAgICAgfCAgMTYgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMg ICAgICAgfCAgNTIgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAg IHwgICA2ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgICAgIHwgIDE4 ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaCAgICAgIHwgICAzICsKIHNy Yy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgIHwgIDEwICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICB8ICAzMSArKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ycHIub3V0ICAgICAgICAgfCA1NTEgKysrKysrKysrKysrKysrKysrKysr LQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgICAgfCAgIDIgKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0IHwgIDgwICsrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgICAgICAgICAgICAgIHwgMzIyICsrKysrKysrKysrKy0K IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCAgICAgIHwgIDU2ICsrKwogc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgfCAgIDMgKy0KIDIyIGZpbGVz IGNoYW5nZWQsIDE2MDcgaW5zZXJ0aW9ucygrKSwgMTY1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVu Yy9mdW5jLXdpbmRvdy5zZ21sCmluZGV4IGFlMzZlMGYzMTM1Li4xYjliOTkzYTgxNyAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCkBAIC0zMDQsMTIgKzMwNCwxNyBAQAogICAgICAgICA8 aW5kZXh0ZXJtPgogICAgICAgICAgPHByaW1hcnk+cHJldjwvcHJpbWFyeT4KICAgICAgICAgPC9p bmRleHRlcm0+Ci0gICAgICAgIDxmdW5jdGlvbj5wcmV2PC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVy PnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+ICkKKyAgICAgICAgPGZ1 bmN0aW9uPnByZXY8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFsdWU8L3BhcmFtZXRlcj4gPHR5 cGU+YW55ZWxlbWVudDwvdHlwZT4gWywgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gPHR5 cGU+YmlnaW50PC90eXBlPiBdICkKICAgICAgICAgPHJldHVybnZhbHVlPmFueWVsZW1lbnQ8L3Jl dHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgUmV0dXJu cyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSBwcmV2aW91cyByb3c7Ci0gICAgICAgIHJldHVybnMg TlVMTCBpZiB0aGVyZSBpcyBubyBwcmV2aW91cyByb3cgaW4gdGhlIHdpbmRvdyBmcmFtZS4KKyAg ICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSByb3cgPHBhcmFtZXRlcj5vZmZz ZXQ8L3BhcmFtZXRlcj4KKyAgICAgICAgcm93cyBiZWZvcmUgdGhlIGN1cnJlbnQgcm93IHdpdGhp biB0aGUgd2luZG93IGZyYW1lOworICAgICAgICByZXR1cm5zIE5VTEwgaWYgdGhlIHRhcmdldCBy b3cgaXMgb3V0c2lkZSB0aGUgd2luZG93IGZyYW1lLgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNl dDwvcGFyYW1ldGVyPiBkZWZhdWx0cyB0byAxIGlmIG9taXR0ZWQuCisgICAgICAgIDxwYXJhbWV0 ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcjsKKyAg ICAgICAgYW4gb2Zmc2V0IG9mIDAgcmVmZXJzIHRvIHRoZSBjdXJyZW50IHJvdyBpdHNlbGYuCisg ICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3Qgbm90IGJlIE5VTEwuCiAg ICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIApAQCAtMzE4LDEyICszMjMsMTcg QEAKICAgICAgICAgPGluZGV4dGVybT4KICAgICAgICAgIDxwcmltYXJ5Pm5leHQ8L3ByaW1hcnk+ CiAgICAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgICA8ZnVuY3Rpb24+bmV4dDwvZnVuY3Rpb24+ ICggPHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnllbGVtZW50PC90eXBlPiAp CisgICAgICAgIDxmdW5jdGlvbj5uZXh0PC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhbHVlPC9w YXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+IFssIDxwYXJhbWV0ZXI+b2Zmc2V0PC9w YXJhbWV0ZXI+IDx0eXBlPmJpZ2ludDwvdHlwZT4gXSApCiAgICAgICAgIDxyZXR1cm52YWx1ZT5h bnllbGVtZW50PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+Ci0g ICAgICAgIFJldHVybnMgdGhlIGNvbHVtbiB2YWx1ZSBhdCB0aGUgbmV4dCByb3c7Ci0gICAgICAg IHJldHVybnMgTlVMTCBpZiB0aGVyZSBpcyBubyBuZXh0IHJvdyBpbiB0aGUgd2luZG93IGZyYW1l LgorICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUgYXQgdGhlIHJvdyA8cGFyYW1ldGVy Pm9mZnNldDwvcGFyYW1ldGVyPgorICAgICAgICByb3dzIGFmdGVyIHRoZSBjdXJyZW50IHJvdyB3 aXRoaW4gdGhlIHdpbmRvdyBmcmFtZTsKKyAgICAgICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0YXJn ZXQgcm93IGlzIG91dHNpZGUgdGhlIHdpbmRvdyBmcmFtZS4KKyAgICAgICAgPHBhcmFtZXRlcj5v ZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8gMSBpZiBvbWl0dGVkLgorICAgICAgICA8cGFy YW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXI7 CisgICAgICAgIGFuIG9mZnNldCBvZiAwIHJlZmVycyB0byB0aGUgY3VycmVudCByb3cgaXRzZWxm LgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IG5vdCBiZSBOVUxM LgogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwci5jCmluZGV4IDc3MjI5MTQxYjM4Li5kYmVkNGY0OGEwZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwci5jCkBAIC0xMjIyLDYgKzEyMjIsNjIgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUs IEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX1JQUk5hdkV4 cHI6CisJCQl7CisJCQkJLyoKKwkJCQkgKiBSUFIgbmF2aWdhdGlvbiBmdW5jdGlvbnMgKFBSRVYv TkVYVCkgYXJlIGNvbXBpbGVkIGludG8KKwkJCQkgKiBFRU9QX1JQUl9OQVZfU0VUIC8gRUVPUF9S UFJfTkFWX1JFU1RPUkUgb3Bjb2RlcyBpbnN0ZWFkIG9mCisJCQkJICogYSBub3JtYWwgZnVuY3Rp b24gY2FsbC4gIFRoZSBTRVQgb3Bjb2RlIHN3YXBzCisJCQkJICogZWN4dF9vdXRlcnR1cGxlIHRv IHRoZSB0YXJnZXQgcm93LCB0aGUgYXJndW1lbnQgZXhwcmVzc2lvbgorCQkJCSAqIGlzIGNvbXBp bGVkIG5vcm1hbGx5IChyZWFkcyBmcm9tIHRoZSBzd2FwcGVkIHNsb3QpLCBhbmQgdGhlCisJCQkJ ICogUkVTVE9SRSBvcGNvZGUgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIHNsb3QuCisJCQkJICovCisJ CQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikgbm9kZTsKKwkJCQlXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGU7CisKKwkJCQlBc3NlcnQoc3RhdGUtPnBhcmVudCAmJiBJc0Eoc3RhdGUt PnBhcmVudCwgV2luZG93QWdnU3RhdGUpKTsKKwkJCQl3aW5zdGF0ZSA9IChXaW5kb3dBZ2dTdGF0 ZSAqKSBzdGF0ZS0+cGFyZW50OworCisJCQkJLyogRW1pdCBTRVQgb3Bjb2RlOiBzd2FwIHNsb3Qg dG8gdGFyZ2V0IHJvdyAqLworCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9SUFJfTkFWX1NFVDsK KwkJCQlzY3JhdGNoLmQucnByX25hdi53aW5zdGF0ZSA9IHdpbnN0YXRlOworCQkJCXNjcmF0Y2gu ZC5ycHJfbmF2LmtpbmQgPSBuYXYtPmtpbmQ7CisKKwkJCQlpZiAobmF2LT5vZmZzZXRfYXJnICE9 IE5VTEwpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBBbGxvY2F0ZSBzdG9yYWdlIGZvciB0aGUg cnVudGltZSBvZmZzZXQgdmFsdWUuICBUaGUKKwkJCQkJICogb2Zmc2V0IGV4cHJlc3Npb24gaXMg Y29tcGlsZWQgYmVsb3cgc28gaXQgcnVucyBiZWZvcmUKKwkJCQkJICogRUVPUF9SUFJfTkFWX1NF VC4KKwkJCQkJICovCisJCQkJCURhdHVtCSAgICpvZmZzZXRfdmFsdWUgPSBwYWxsb2Nfb2JqZWN0 KERhdHVtKTsKKwkJCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVsbCA9IHBhbGxvY19vYmplY3QoYm9v bCk7CisKKwkJCQkJLyogQ29tcGlsZSB0aGUgb2Zmc2V0IGV4cHJlc3Npb24gaW50byB0aGUgdGVt cCBzdG9yYWdlICovCisJCQkJCUV4ZWNJbml0RXhwclJlYyhuYXYtPm9mZnNldF9hcmcsIHN0YXRl LAorCQkJCQkJCQkJb2Zmc2V0X3ZhbHVlLCBvZmZzZXRfaXNudWxsKTsKKworCQkJCQlzY3JhdGNo LmQucnByX25hdi5vZmZzZXRfdmFsdWUgPSBvZmZzZXRfdmFsdWU7CisJCQkJCXNjcmF0Y2guZC5y cHJfbmF2Lm9mZnNldF9pc251bGwgPSBvZmZzZXRfaXNudWxsOworCQkJCX0KKwkJCQllbHNlCisJ CQkJeworCQkJCQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRfdmFsdWUgPSBOVUxMOworCQkJCQlz Y3JhdGNoLmQucnByX25hdi5vZmZzZXRfaXNudWxsID0gTlVMTDsKKwkJCQl9CisKKwkJCQlFeHBy RXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisKKwkJCQkvKiBDb21waWxlIHRoZSBhcmd1 bWVudCBleHByZXNzaW9uIG5vcm1hbGx5ICovCisJCQkJRXhlY0luaXRFeHByUmVjKG5hdi0+YXJn LCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisKKwkJCQkvKiBFbWl0IFJFU1RPUkUgb3Bjb2RlOiBy ZXN0b3JlIG9yaWdpbmFsIHNsb3QgKi8KKwkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfUlBSX05B Vl9SRVNUT1JFOworCQkJCXNjcmF0Y2guZC5ycHJfbmF2LndpbnN0YXRlID0gd2luc3RhdGU7CisJ CQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJCWJyZWFrOworCQkJfQor CiAJCWNhc2UgVF9GdW5jRXhwcjoKIAkJCXsKIAkJCQlGdW5jRXhwciAgICpmdW5jID0gKEZ1bmNF eHByICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwcklu dGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCAzYzQ4 NDNjZGU4Ni4uZTQxZmFhOTViZTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAu YwpAQCAtNTYsMTIgKzU2LDE0IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5j bHVkZSAiY29tbW9uL2ludC5oIgogI2luY2x1ZGUgImFjY2Vzcy9oZWFwdG9hc3QuaCIKICNpbmNs dWRlICJhY2Nlc3MvdHVwY29udmVydC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4 cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5oIgorI2luY2x1ZGUgImV4ZWN1 dG9yL25vZGVXaW5kb3dBZ2cuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAibWlz Y2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWlzY25vZGVzLmgiCkBAIC01NzgsNiArNTgwLDgg QEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0 LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1dJTkRPV19GVU5DLAogCQkmJkNBU0VfRUVP UF9NRVJHRV9TVVBQT1JUX0ZVTkMsCiAJCSYmQ0FTRV9FRU9QX1NVQlBMQU4sCisJCSYmQ0FTRV9F RU9QX1JQUl9OQVZfU0VULAorCQkmJkNBU0VfRUVPUF9SUFJfTkFWX1JFU1RPUkUsCiAJCSYmQ0FT RV9FRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkUsCiAJCSYmQ0FTRV9FRU9QX0FHR19ERVNFUklB TElaRSwKIAkJJiZDQVNFX0VFT1BfQUdHX1NUUklDVF9JTlBVVF9DSEVDS19BUkdTLApAQCAtMjAw NSw2ICsyMDA5LDI0IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250 ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCS8q IFJQUiBuYXZpZ2F0aW9uOiBzd2FwIHNsb3QgdG8gdGFyZ2V0IHJvdyAqLworCQlFRU9fQ0FTRShF RU9QX1JQUl9OQVZfU0VUKQorCQl7CisJCQlFeGVjRXZhbFJQUk5hdlNldChzdGF0ZSwgb3AsIGVj b250ZXh0KTsKKwkJCW91dGVyc2xvdCA9IGVjb250ZXh0LT5lY3h0X291dGVydHVwbGU7CisKKwkJ CUVFT19ORVhUKCk7CisJCX0KKworCQkvKiBSUFIgbmF2aWdhdGlvbjogcmVzdG9yZSBzbG90IHRv IG9yaWdpbmFsIHJvdyAqLworCQlFRU9fQ0FTRShFRU9QX1JQUl9OQVZfUkVTVE9SRSkKKwkJewor CQkJRXhlY0V2YWxSUFJOYXZSZXN0b3JlKHN0YXRlLCBvcCwgZWNvbnRleHQpOworCQkJb3V0ZXJz bG90ID0gZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBsZTsKKworCQkJRUVPX05FWFQoKTsKKwkJfQor CiAJCS8qIGV2YWx1YXRlIGEgc3RyaWN0IGFnZ3JlZ2F0ZSBkZXNlcmlhbGl6YXRpb24gZnVuY3Rp b24gKi8KIAkJRUVPX0NBU0UoRUVPUF9BR0dfU1RSSUNUX0RFU0VSSUFMSVpFKQogCQl7CkBAIC01 OTE4LDMgKzU5NDAsOTEgQEAgRXhlY0FnZ1BsYWluVHJhbnNCeVJlZihBZ2dTdGF0ZSAqYWdnc3Rh dGUsIEFnZ1N0YXRlUGVyVHJhbnMgcGVydHJhbnMsCiAKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkQ29udGV4dCk7CiB9CisKKy8qCisgKiBFdmFsdWF0ZSBSUFIgUFJFVi9ORVhUIG5hdmlnYXRp b246IHN3YXAgc2xvdCB0byB0YXJnZXQgcm93LgorICoKKyAqIFNhdmVzIHRoZSBjdXJyZW50IG91 dGVydHVwbGUgaW50byB3aW5zdGF0ZSBmb3IgbGF0ZXIgcmVzdG9yZSwgY29tcHV0ZXMKKyAqIHRo ZSB0YXJnZXQgcm93IHBvc2l0aW9uLCBmZXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHNsb3QgZnJv bSB0aGUKKyAqIHR1cGxlc3RvcmUsIGFuZCByZXBsYWNlcyBlY29udGV4dC0+ZWN4dF9vdXRlcnR1 cGxlIHdpdGggaXQuCisgKgorICogVGhpcyBpcyBjYWxsZWQgYm90aCBmcm9tIHRoZSBpbnRlcnBy ZXRlciBpbmxpbmUgaGFuZGxlciBhbmQgZnJvbQorICogSklULWNvbXBpbGVkIGV4cHJlc3Npb25z IHZpYSBidWlsZF9FdmFsWEZ1bmMuCisgKi8KK3ZvaWQKK0V4ZWNFdmFsUlBSTmF2U2V0KEV4cHJT dGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsIEV4cHJDb250ZXh0ICplY29udGV4dCkKK3sK KwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUgPSBvcC0+ZC5ycHJfbmF2LndpbnN0YXRlOworCWlu dDY0CQlvZmZzZXQ7CisJaW50NjQJCXRhcmdldF9wb3M7CisJVHVwbGVUYWJsZVNsb3QgKnRhcmdl dF9zbG90OworCisJLyogU2F2ZSBjdXJyZW50IHNsb3QgZm9yIGxhdGVyIHJlc3RvcmUgKi8KKwl3 aW5zdGF0ZS0+bmF2X3NhdmVkX291dGVydHVwbGUgPSBlY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxl OworCisJLyoKKwkgKiBEZXRlcm1pbmUgdGhlIHVuc2lnbmVkIG9mZnNldC4gIEZvciAyLWFyZyBQ UkVWL05FWFQgdGhlIG9mZnNldAorCSAqIGV4cHJlc3Npb24gaGFzIGFscmVhZHkgYmVlbiBldmFs dWF0ZWQgaW50byBvZmZzZXRfdmFsdWUuICBOVUxMIG9yCisJICogbmVnYXRpdmUgb2Zmc2V0cyBh cmUgZXJyb3JzIHBlciB0aGUgU1FMIHN0YW5kYXJkIChJU08vSUVDIDkwNzUtMiwKKwkgKiBTdWJj bGF1c2UgNS42LjIpLgorCSAqLworCWlmIChvcC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSAhPSBO VUxMKQorCXsKKwkJaWYgKCpvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251bGwpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAor CQkJCQkgZXJybXNnKCJQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwiKSkpOworCisJ CW9mZnNldCA9IERhdHVtR2V0SW50NjQoKm9wLT5kLnJwcl9uYXYub2Zmc2V0X3ZhbHVlKTsKKwor CQlpZiAob2Zmc2V0IDwgMCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJQUkVWL05FWFQgb2Zm c2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlIikpKTsKKwl9CisJZWxzZQorCQlvZmZzZXQgPSAxOwor CisJLyoKKwkgKiBDYWxjdWxhdGUgdGFyZ2V0IHBvc2l0aW9uIGJhc2VkIG9uIG5hdmlnYXRpb24g ZGlyZWN0aW9uLiAgT24gb3ZlcmZsb3csCisJICogdXNlIC0xIHNvIHRoYXQgRXhlY1JQUk5hdkdl dFNsb3QgdHJlYXRzIGl0IGFzIG91dCBvZiByYW5nZS4KKwkgKi8KKwlzd2l0Y2ggKG9wLT5kLnJw cl9uYXYua2luZCkKKwl7CisJCWNhc2UgUlBSX05BVl9QUkVWOgorCQkJaWYgKHBnX3N1Yl9zNjRf b3ZlcmZsb3cod2luc3RhdGUtPmN1cnJlbnRwb3MsIG9mZnNldCwgJnRhcmdldF9wb3MpKQorCQkJ CXRhcmdldF9wb3MgPSAtMTsKKwkJCWJyZWFrOworCQljYXNlIFJQUl9OQVZfTkVYVDoKKwkJCWlm IChwZ19hZGRfczY0X292ZXJmbG93KHdpbnN0YXRlLT5jdXJyZW50cG9zLCBvZmZzZXQsICZ0YXJn ZXRfcG9zKSkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CisJCQlicmVhazsKKwl9CisKKwkvKiBGZXRj aCB0YXJnZXQgcm93IHNsb3QgKHJldHVybnMgbmF2X251bGxfc2xvdCBpZiBvdXQgb2YgcmFuZ2Up ICovCisJdGFyZ2V0X3Nsb3QgPSBFeGVjUlBSTmF2R2V0U2xvdCh3aW5zdGF0ZSwgdGFyZ2V0X3Bv cyk7CisKKwkvKgorCSAqIFVwZGF0ZSBlY29udGV4dCB0byBwb2ludCB0byB0aGUgdGFyZ2V0IHNs b3QuICBBbHNvIGRlY29tcHJlc3MgdGhlIG5ldworCSAqIHNsb3QncyBhdHRyaWJ1dGVzIHNpbmNl IEZFVENIU09NRSBhbHJlYWR5IHJhbiBmb3IgdGhlIG9yaWdpbmFsIHNsb3QuCisJICogVGhlIGNh bGxlciAoaW50ZXJwcmV0ZXIgb3IgSklUKSBpcyByZXNwb25zaWJsZSBmb3IgdXBkYXRpbmcgYW55 IGxvY2FsCisJICogc2xvdCBjYWNoZSAoZS5nLiBvdXRlcnNsb3QpIGZyb20gZWNvbnRleHQgYWZ0 ZXIgd2UgcmV0dXJuLgorCSAqLworCXNsb3RfZ2V0YWxsYXR0cnModGFyZ2V0X3Nsb3QpOworCWVj b250ZXh0LT5lY3h0X291dGVydHVwbGUgPSB0YXJnZXRfc2xvdDsKK30KKworLyoKKyAqIEV2YWx1 YXRlIFJQUiBQUkVWL05FWFQgbmF2aWdhdGlvbjogcmVzdG9yZSBzbG90IHRvIG9yaWdpbmFsIHJv dy4KKyAqCisgKiBSZXN0b3JlcyBlY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlIGZyb20gdGhlIHNh dmVkIHNsb3QgaW4gd2luc3RhdGUuCisgKiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciB1 cGRhdGluZyBhbnkgbG9jYWwgc2xvdCBjYWNoZS4KKyAqLwordm9pZAorRXhlY0V2YWxSUFJOYXZS ZXN0b3JlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCisJCQkJCSAgRXhwckNv bnRleHQgKmVjb250ZXh0KQoreworCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSA9IG9wLT5kLnJw cl9uYXYud2luc3RhdGU7CisKKwllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlID0gd2luc3RhdGUt Pm5hdl9zYXZlZF9vdXRlcnR1cGxlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5j CmluZGV4IDAyMDJjNTA4MzIzLi40ZTY0M2RmOTRjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVX aW5kb3dBZ2cuYwpAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2lu Y2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKLSNpbmNs dWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2V4cGFuZGVkZGF0dW0uaCIK ICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5o IgpAQCAtMTc3LDE0ICsxNzYsNiBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dTdGF0ZVBlckFnZ0Rh dGEKIAlib29sCQlyZXN0YXJ0OwkJLyogbmVlZCB0byByZXN0YXJ0IHRoaXMgYWdnIGluIHRoaXMg Y3ljbGU/ICovCiB9IFdpbmRvd1N0YXRlUGVyQWdnRGF0YTsKIAotLyoKLSAqIFN0cnVjdHVyZSB1 c2VkIGJ5IGNoZWNrX3Jwcl9uYXZpZ2F0aW9uKCkgYW5kIHJwcl9uYXZpZ2F0aW9uX3dhbGtlcigp LgotICovCi10eXBlZGVmIHN0cnVjdCBOYXZpZ2F0aW9uSW5mbwotewotCWJvb2wJCWlzX3ByZXY7 CQkvKiB0cnVlIGlmIFBSRVYgKi8KLQlpbnQJCQludW1fdmFyczsJCS8qIG51bWJlciBvZiB2YXIg bm9kZXMgKi8KLX0gTmF2aWdhdGlvbkluZm87CiAKIHN0YXRpYyB2b2lkIGluaXRpYWxpemVfd2lu ZG93YWdncmVnYXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwKIAkJCQkJCQkJCSAgIFdpbmRv d1N0YXRlUGVyRnVuYyBwZXJmdW5jc3RhdGUsCkBAIC0yNDMsOSArMjM0LDYgQEAgc3RhdGljIHVp bnQ4IGdldF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwKIAkJCQkJCQkgIGludDY0 IHBvcywgaW50IGFyZ25vKTsKIHN0YXRpYyB2b2lkIHB1dF9ub3RudWxsX2luZm8oV2luZG93T2Jq ZWN0IHdpbm9iaiwKIAkJCQkJCQkgaW50NjQgcG9zLCBpbnQgYXJnbm8sIGJvb2wgaXNudWxsKTsK LXN0YXRpYyB2b2lkIGF0dG5vX21hcChOb2RlICpub2RlKTsKLXN0YXRpYyBib29sIGF0dG5vX21h cF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7Ci0KIHN0YXRpYyBib29sIHJwcl9p c19kZWZpbmVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7CiBzdGF0aWMgaW50NjQgcm93X2lz X2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKTsKIApAQCAt MjUzLDkgKzI0MSw2IEBAIHN0YXRpYyB2b2lkIGNsZWFyX3JlZHVjZWRfZnJhbWUoV2luZG93QWdn U3RhdGUgKndpbnN0YXRlKTsKIHN0YXRpYyBpbnQJZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9y ZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcyk7CiAKLXN0YXRpYyB2 b2lkIGNoZWNrX3Jwcl9uYXZpZ2F0aW9uKE5vZGUgKm5vZGUsIGJvb2wgaXNfcHJldik7Ci1zdGF0 aWMgYm9vbCBycHJfbmF2aWdhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7 Ci0KIC8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIHJvdyBldmFsdWF0aW9uICovCiBzdGF0 aWMgYm9vbCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcywg Ym9vbCAqdmFyTWF0Y2hlZCk7CiAKQEAgLTEyODAsNiArMTI2NSwyNSBAQCBwcmVwYXJlX3R1cGxl c3RvcmUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQl9CiAJfQogCisJLyogQ3JlYXRlIHJl YWQvbWFyayBwb2ludGVycyBmb3IgUlBSIG5hdmlnYXRpb24gaWYgbmVlZGVkICovCisJaWYgKHdp bnN0YXRlLT5uYXZfd2lub2JqKQorCXsKKwkJLyoKKwkJICogQWxsb2NhdGUgYSBtYXJrIHBvaW50 ZXIgcGlubmVkIGF0IHBvc2l0aW9uIDAgc28gdGhhdCB0aGUgdHVwbGVzdG9yZQorCQkgKiBuZXZl ciB0cnVuY2F0ZXMgcm93cyB0aGF0IGEgUFJFVihleHByLCBOKSBtaWdodCBuZWVkLgorCQkgKgor CQkgKiBYWFggVGhpcyByZXRhaW5zIHRoZSBlbnRpcmUgcGFydGl0aW9uIGluIHRoZSB0dXBsZXN0 b3JlLiAgSWYgdGhlCisJCSAqIERFRklORSBjbGF1c2Ugb25seSB1c2VzIFBSRVYvTkVYVCB3aXRo IHNtYWxsIGNvbnN0YW50IG9mZnNldHMsIHdlCisJCSAqIGNvdWxkIGFkdmFuY2UgdGhlIG1hcmsg dG8gKGN1cnJlbnRwb3MgLSBtYXhfb2Zmc2V0KSBpbnN0ZWFkLgorCQkgKi8KKwkJd2luc3RhdGUt Pm5hdl93aW5vYmotPm1hcmtwdHIgPQorCQkJdHVwbGVzdG9yZV9hbGxvY19yZWFkX3BvaW50ZXIo d2luc3RhdGUtPmJ1ZmZlciwgMCk7CisJCXdpbnN0YXRlLT5uYXZfd2lub2JqLT5yZWFkcHRyID0K KwkJCXR1cGxlc3RvcmVfYWxsb2NfcmVhZF9wb2ludGVyKHdpbnN0YXRlLT5idWZmZXIsCisJCQkJ CQkJCQkJICBFWEVDX0ZMQUdfQkFDS1dBUkQpOworCQl3aW5zdGF0ZS0+bmF2X3dpbm9iai0+bWFy a3BvcyA9IDA7CisJfQorCiAJLyoKIAkgKiBJZiB3ZSBhcmUgaW4gUkFOR0Ugb3IgR1JPVVBTIG1v ZGUsIHRoZW4gZGV0ZXJtaW5pbmcgZnJhbWUgYm91bmRhcmllcwogCSAqIHJlcXVpcmVzIHBoeXNp Y2FsIGFjY2VzcyB0byB0aGUgZnJhbWUgZW5kcG9pbnQgcm93cywgZXhjZXB0IGluIGNlcnRhaW4K QEAgLTEzOTEsNiArMTM5NSwxMyBAQCBiZWdpbl9wYXJ0aXRpb24oV2luZG93QWdnU3RhdGUgKndp bnN0YXRlKQogCQl3aW5zdGF0ZS0+YWdncmVnYXRlZHVwdG8gPSAwOwogCX0KIAorCS8qIHJlc2V0 IG1hcmsgYW5kIHNlZWsgcG9zaXRpb25zIGZvciBSUFIgbmF2aWdhdGlvbiAqLworCWlmICh3aW5z dGF0ZS0+bmF2X3dpbm9iaikKKwl7CisJCXdpbnN0YXRlLT5uYXZfd2lub2JqLT5tYXJrcG9zID0g LTE7CisJCXdpbnN0YXRlLT5uYXZfd2lub2JqLT5zZWVrcG9zID0gLTE7CisJfQorCiAJLyogcmVz ZXQgbWFyayBhbmQgc2VlayBwb3NpdGlvbnMgZm9yIGVhY2ggcmVhbCB3aW5kb3cgZnVuY3Rpb24g Ki8KIAlmb3IgKGludCBpID0gMDsgaSA8IG51bWZ1bmNzOyBpKyspCiAJewpAQCAtMjcyNiwxNSAr MjczNywxOCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0 YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRlLT50ZW1wX3Nsb3RfMiA9IEV4ZWNJbml0RXh0cmFU dXBsZVNsb3QoZXN0YXRlLCBzY2FuRGVzYywKIAkJCQkJCQkJCQkJCSAgICZUVFNPcHNNaW5pbWFs VHVwbGUpOwogCi0Jd2luc3RhdGUtPnByZXZfc2xvdCA9IEV4ZWNJbml0RXh0cmFUdXBsZVNsb3Qo ZXN0YXRlLCBzY2FuRGVzYywKLQkJCQkJCQkJCQkJCSAmVFRTT3BzTWluaW1hbFR1cGxlKTsKKwlp ZiAobm9kZS0+cnBQYXR0ZXJuICE9IE5VTEwpCisJeworCQl3aW5zdGF0ZS0+bmF2X3Nsb3QgPSBF eGVjSW5pdEV4dHJhVHVwbGVTbG90KGVzdGF0ZSwgc2NhbkRlc2MsCisJCQkJCQkJCQkJCQkJJlRU U09wc01pbmltYWxUdXBsZSk7CisJCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsKIAotCXdp bnN0YXRlLT5uZXh0X3Nsb3QgPSBFeGVjSW5pdEV4dHJhVHVwbGVTbG90KGVzdGF0ZSwgc2NhbkRl c2MsCi0JCQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxUdXBsZSk7CisJCXdpbnN0YXRlLT5uYXZf bnVsbF9zbG90ID0gRXhlY0luaXRFeHRyYVR1cGxlU2xvdChlc3RhdGUsIHNjYW5EZXNjLAorCQkJ CQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxUdXBsZSk7CisJCXdpbnN0YXRlLT5uYXZfbnVsbF9z bG90ID0gRXhlY1N0b3JlQWxsTnVsbFR1cGxlKHdpbnN0YXRlLT5uYXZfbnVsbF9zbG90KTsKIAot CXdpbnN0YXRlLT5udWxsX3Nsb3QgPSBFeGVjSW5pdEV4dHJhVHVwbGVTbG90KGVzdGF0ZSwgc2Nh bkRlc2MsCi0JCQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxUdXBsZSk7Ci0Jd2luc3RhdGUtPm51 bGxfc2xvdCA9IEV4ZWNTdG9yZUFsbE51bGxUdXBsZSh3aW5zdGF0ZS0+bnVsbF9zbG90KTsKKwkJ d2luc3RhdGUtPm5hdl9zYXZlZF9vdXRlcnR1cGxlID0gTlVMTDsKKwl9CiAKIAkvKgogCSAqIGNy ZWF0ZSBmcmFtZSBoZWFkIGFuZCB0YWlsIHNsb3RzIG9ubHkgaWYgbmVlZGVkIChtdXN0IGNyZWF0 ZSBzbG90cyBpbgpAQCAtMjkwNCw2ICsyOTE4LDIzIEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRv d0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJCXdpbnN0YXRlLT5hZ2df d2lub2JqID0gYWdnX3dpbm9iajsKIAl9CiAKKwkvKgorCSAqIFNldCB1cCBXaW5kb3dPYmplY3Qg Zm9yIFJQUiBuYXZpZ2F0aW9uIG9wY29kZXMuICBUaGlzIGlzIHNlcGFyYXRlIGZyb20KKwkgKiBh Z2dfd2lub2JqIGJlY2F1c2UgaXQgbmVlZHMgaXRzIG93biByZWFkIHBvaW50ZXIgdG8gYXZvaWQg aW50ZXJmZXJpbmcKKwkgKiB3aXRoIGFnZ3JlZ2F0ZSBwcm9jZXNzaW5nLgorCSAqLworCWlmIChu b2RlLT5ycFBhdHRlcm4gIT0gTlVMTCkKKwl7CisJCVdpbmRvd09iamVjdCBuYXZfd2lub2JqID0g bWFrZU5vZGUoV2luZG93T2JqZWN0RGF0YSk7CisKKwkJbmF2X3dpbm9iai0+d2luc3RhdGUgPSB3 aW5zdGF0ZTsKKwkJbmF2X3dpbm9iai0+YXJnc3RhdGVzID0gTklMOworCQluYXZfd2lub2JqLT5s b2NhbG1lbSA9IE5VTEw7CisJCW5hdl93aW5vYmotPm1hcmtwdHIgPSAtMTsKKwkJbmF2X3dpbm9i ai0+cmVhZHB0ciA9IC0xOworCQl3aW5zdGF0ZS0+bmF2X3dpbm9iaiA9IG5hdl93aW5vYmo7CisJ fQorCiAJLyogU2V0IHRoZSBzdGF0dXMgdG8gcnVubmluZyAqLwogCXdpbnN0YXRlLT5zdGF0dXMg PSBXSU5ET1dBR0dfUlVOOwogCkBAIC0yOTQ0LDcgKzI5NzUsOSBAQCBFeGVjSW5pdFdpbmRvd0Fn ZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCWlmIChub2Rl LT5kZWZpbmVDbGF1c2UgIT0gTklMKQogCXsKIAkJLyoKLQkJICogVHdlYWsgYXJnIHZhciBvZiBQ UkVWL05FWFQgc28gdGhhdCBpdCByZWZlcnMgdG8gc2Nhbi9pbm5lciBzbG90LgorCQkgKiBDb21w aWxlIERFRklORSBjbGF1c2UgZXhwcmVzc2lvbnMuICBQUkVWL05FWFQgbmF2aWdhdGlvbiBpcyBo YW5kbGVkCisJCSAqIGJ5IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBvcGNvZGVzIGVtaXR0ZWQg ZHVyaW5nIEV4ZWNJbml0RXhwciwgc28KKwkJICogbm8gdmFybm8gcmV3cml0aW5nIGlzIG5lZWRl ZCBoZXJlLgogCQkgKi8KIAkJZm9yZWFjaChsLCBub2RlLT5kZWZpbmVDbGF1c2UpCiAJCXsKQEAg LTI5NTYsNyArMjk4OSw2IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0 YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJCQl3aW5zdGF0ZS0+ZGVmaW5lVmFyaWFibGVMaXN0 ID0KIAkJCQlsYXBwZW5kKHdpbnN0YXRlLT5kZWZpbmVWYXJpYWJsZUxpc3QsCiAJCQkJCQltYWtl U3RyaW5nKHBzdHJkdXAobmFtZSkpKTsKLQkJCWF0dG5vX21hcCgoTm9kZSAqKSBleHByKTsKIAkJ CWV4cHMgPSBFeGVjSW5pdEV4cHIoZXhwciwgKFBsYW5TdGF0ZSAqKSB3aW5zdGF0ZSk7CiAJCQl3 aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlzdCA9CiAJCQkJbGFwcGVuZCh3aW5zdGF0ZS0+ZGVmaW5l Q2xhdXNlTGlzdCwgZXhwcyk7CkBAIC0yOTkxLDEwNyArMzAyMywzOCBAQCBFeGVjSW5pdFdpbmRv d0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogfQogCiAv KgotICogUmV3cml0ZSB2YXJubyBvZiBWYXIgbm9kZXMgdGhhdCBhcmUgdGhlIGFyZ3VtZW50IG9m IFBSRVYvTkVUIHNvIHRoYXQgdGhleQotICogc2VlIHNjYW4gdHVwbGUgKFBSRVYpIG9yIGlubmVy IHR1cGxlIChORVhUKS4gIEFsc28gd2UgY2hlY2sgdGhlIGFyZ3VtZW50cwotICogb2YgUFJFVi9O RVhUIGluY2x1ZGUgYXQgbGVhc3QgMSBjb2x1bW4gcmVmZXJlbmNlLiBUaGlzIGlzIHJlcXVpcmVk IGJ5IHRoZQotICogU1FMIHN0YW5kYXJkLgorICogRXhlY1JQUk5hdkdldFNsb3QKKyAqCisgKiBG ZXRjaCB0dXBsZSBhdCBnaXZlbiBwb3NpdGlvbiBmb3IgUlBSIG5hdmlnYXRpb24gb3Bjb2Rlcy4K KyAqIFJldHVybnMgbmF2X3Nsb3Qgd2l0aCB0aGUgdHVwbGUgbG9hZGVkLCBvciBuYXZfbnVsbF9z bG90IGlmIG91dCBvZiByYW5nZS4KICAqLwotc3RhdGljIHZvaWQKLWF0dG5vX21hcChOb2RlICpu b2RlKQorVHVwbGVUYWJsZVNsb3QgKgorRXhlY1JQUk5hdkdldFNsb3QoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBpbnQ2NCBwb3MpCiB7Ci0JKHZvaWQpIGV4cHJlc3Npb25fdHJlZV93YWxrZXIo bm9kZSwgYXR0bm9fbWFwX3dhbGtlciwgTlVMTCk7Ci19CisJV2luZG93T2JqZWN0IHdpbm9iaiA9 IHdpbnN0YXRlLT5uYXZfd2lub2JqOworCVR1cGxlVGFibGVTbG90ICpzbG90ID0gd2luc3RhdGUt Pm5hdl9zbG90OwogCi1zdGF0aWMgYm9vbAotYXR0bm9fbWFwX3dhbGtlcihOb2RlICpub2RlLCB2 b2lkICpjb250ZXh0KQotewotCUZ1bmNFeHByICAgKmZ1bmM7Ci0JaW50CQkJbmFyZ3M7Ci0JYm9v bAkJaXNfcHJldjsKKwlpZiAocG9zIDwgMCkKKwkJcmV0dXJuIHdpbnN0YXRlLT5uYXZfbnVsbF9z bG90OwogCi0JaWYgKG5vZGUgPT0gTlVMTCkKLQkJcmV0dXJuIGZhbHNlOworCS8qCisJICogSWYg bmF2X3Nsb3QgYWxyZWFkeSBob2xkcyB0aGlzIHBvc2l0aW9uLCByZXR1cm4gaXQgd2l0aG91dCBy ZS1mZXRjaGluZy4KKwkgKiBUaGlzIGlzIGNyaXRpY2FsIHdoZW4gbXVsdGlwbGUgUFJFVi9ORVhU IGNhbGxzIGluIHRoZSBzYW1lIGV4cHJlc3Npb24KKwkgKiBuYXZpZ2F0ZSB0byB0aGUgc2FtZSBy b3csIGJlY2F1c2UgcmUtZmV0Y2hpbmcgd291bGQgZnJlZSB0aGUgc2xvdCdzCisJICogdHVwbGUg bWVtb3J5IGFuZCBpbnZhbGlkYXRlIGFueSBwYXNzLWJ5LXJlZiBEYXR1bSBwb2ludGVycyBmcm9t IGVhcmxpZXIKKwkgKiBuYXZpZ2F0aW9uIHJlc3VsdHMuCisJICovCisJaWYgKHdpbnN0YXRlLT5u YXZfc2xvdF9wb3MgPT0gcG9zKQorCQlyZXR1cm4gc2xvdDsKIAotCWlmIChJc0Eobm9kZSwgRnVu Y0V4cHIpKQorCWlmICghd2luZG93X2dldHR1cGxlc2xvdCh3aW5vYmosIHBvcywgc2xvdCkpCiAJ ewotCQlmdW5jID0gKEZ1bmNFeHByICopIG5vZGU7Ci0KLQkJaWYgKGZ1bmMtPmZ1bmNpZCA9PSBG X1BSRVYgfHwgZnVuYy0+ZnVuY2lkID09IEZfTkVYVCkKLQkJewotCQkJLyoKLQkJCSAqIFRoZSBT UUwgc3RhbmRhcmQgYWxsb3dzIHRvIGhhdmUgdHdvIG1vcmUgYXJndW1lbnRzIGZvcm0gb2YKLQkJ CSAqIFBSRVYvTkVYVC4gIEJ1dCBjdXJyZW50bHkgd2UgYWxsb3cgb25seSAxIGFyZ3VtZW50IGZv cm0uCi0JCQkgKi8KLQkJCW5hcmdzID0gbGlzdF9sZW5ndGgoZnVuYy0+YXJncyk7Ci0JCQlpZiAo bGlzdF9sZW5ndGgoZnVuYy0+YXJncykgIT0gMSkKLQkJCQllbG9nKEVSUk9SLCAiUFJFVi9ORVhU IG11c3QgaGF2ZSAxIGFyZ3VtZW50IGJ1dCBmdW5jdGlvbiAlZCBoYXMgJWQgYXJncyIsCi0JCQkJ CSBmdW5jLT5mdW5jaWQsIG5hcmdzKTsKLQotCQkJLyoKLQkJCSAqIENoZWNrIGV4cHIgb2YgUFJF Vi9ORVhUIGFydWd1bWVudHMgYW5kIHJlcGxhY2UgdmFybm8uCi0JCQkgKi8KLQkJCWlzX3ByZXYg PSAoZnVuYy0+ZnVuY2lkID09IEZfUFJFVikgPyB0cnVlIDogZmFsc2U7Ci0JCQljaGVja19ycHJf bmF2aWdhdGlvbihub2RlLCBpc19wcmV2KTsKLQkJfQorCQl3aW5zdGF0ZS0+bmF2X3Nsb3RfcG9z ID0gLTE7CisJCXJldHVybiB3aW5zdGF0ZS0+bmF2X251bGxfc2xvdDsKIAl9Ci0JcmV0dXJuIGV4 cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgYXR0bm9fbWFwX3dhbGtlciwgTlVMTCk7Ci19CiAK LS8qCi0gKiBSZXdyaXRlIHZhcm5vIG9mIFZhciBvZiBSUFIgbmF2aWdhdGlvbiBvcGVyYXRpb25z IChQUkVWL05FWFQpLgotICogSWYgaXNfcHJldiBpcyB0cnVlLCB3ZSB0YWtlIGNhcmUgUFJFViwg b3RoZXJ3aXNlIE5FWFQuCi0gKi8KLXN0YXRpYyB2b2lkCi1jaGVja19ycHJfbmF2aWdhdGlvbihO b2RlICpub2RlLCBib29sIGlzX3ByZXYpCi17Ci0JTmF2aWdhdGlvbkluZm8gY29udGV4dDsKLQot CWNvbnRleHQuaXNfcHJldiA9IGlzX3ByZXY7Ci0JY29udGV4dC5udW1fdmFycyA9IDA7Ci0JKHZv aWQpIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgcnByX25hdmlnYXRpb25fd2Fsa2VyLCAm Y29udGV4dCk7Ci0JaWYgKGNvbnRleHQubnVtX3ZhcnMgPCAxKQotCQllcmVwb3J0KEVSUk9SLAot CQkJCWVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24ncyBhcmd1bWVudCBt dXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZlcmVuY2UiKSk7Ci19Ci0KLXN0YXRp YyBib29sCi1ycHJfbmF2aWdhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkK LXsKLQlOYXZpZ2F0aW9uSW5mbyAqbmF2ID0gKE5hdmlnYXRpb25JbmZvICopIGNvbnRleHQ7Ci0K LQlpZiAobm9kZSA9PSBOVUxMKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlzd2l0Y2ggKG5vZGVUYWco bm9kZSkpCi0JewotCQljYXNlIFRfVmFyOgotCQkJewotCQkJCVZhcgkJICAgKnZhciA9IChWYXIg Kikgbm9kZTsKLQotCQkJCW5hdi0+bnVtX3ZhcnMrKzsKLQotCQkJCWlmIChuYXYtPmlzX3ByZXYp Ci0JCQkJewotCQkJCQkvKgotCQkJCQkgKiBSZXdyaXRlIHZhcm5vIGZyb20gT1VURVJfVkFSIHRv IHJlZ3VsYXIgdmFyIG5vIHNvIHRoYXQKLQkJCQkJICogdGhlIHZhciByZWZlcmVuY2VzIHNjYW4g dHVwbGUuCi0JCQkJCSAqLwotCQkJCQl2YXItPnZhcm5vID0gdmFyLT52YXJub3N5bjsKLQkJCQl9 Ci0JCQkJZWxzZQotCQkJCQl2YXItPnZhcm5vID0gSU5ORVJfVkFSOwotCQkJfQotCQkJYnJlYWs7 Ci0JCWNhc2UgVF9Db25zdDoKLQkJY2FzZSBUX0Z1bmNFeHByOgotCQljYXNlIFRfT3BFeHByOgot CQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCWVycm1zZygi cm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24ncyBhcmd1bWVudCBpbmNsdWRlcyB1bnN1 cHBvcnRlZCBleHByZXNzaW9uIikpOwotCX0KLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtl cihub2RlLCBycHJfbmF2aWdhdGlvbl93YWxrZXIsIGNvbnRleHQpOworCXdpbnN0YXRlLT5uYXZf c2xvdF9wb3MgPSBwb3M7CisJcmV0dXJuIHNsb3Q7CiB9CiAKIApAQCAtMzE1Miw4ICszMTE1LDgg QEAgRXhlY1JlU2NhbldpbmRvd0FnZyhXaW5kb3dBZ2dTdGF0ZSAqbm9kZSkKIAlFeGVjQ2xlYXJU dXBsZShub2RlLT5hZ2dfcm93X3Nsb3QpOwogCUV4ZWNDbGVhclR1cGxlKG5vZGUtPnRlbXBfc2xv dF8xKTsKIAlFeGVjQ2xlYXJUdXBsZShub2RlLT50ZW1wX3Nsb3RfMik7Ci0JRXhlY0NsZWFyVHVw bGUobm9kZS0+cHJldl9zbG90KTsKLQlFeGVjQ2xlYXJUdXBsZShub2RlLT5uZXh0X3Nsb3QpOwor CWlmIChub2RlLT5uYXZfc2xvdCkKKwkJRXhlY0NsZWFyVHVwbGUobm9kZS0+bmF2X3Nsb3QpOwog CWlmIChub2RlLT5mcmFtZWhlYWRfc2xvdCkKIAkJRXhlY0NsZWFyVHVwbGUobm9kZS0+ZnJhbWVo ZWFkX3Nsb3QpOwogCWlmIChub2RlLT5mcmFtZXRhaWxfc2xvdCkKQEAgLTQyMTgsNiArNDE4MSwx MCBAQCByZWdpc3Rlcl9yZXN1bHQ6CiAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJvdyBleGlzdHMs IGZhbHNlIGlmIG91dCBvZiBwYXJ0aXRpb24uCiAgKiBJZiByb3cgZXhpc3RzLCBmaWxscyB2YXJN YXRjaGVkIGFycmF5LgogICogdmFyTWF0Y2hlZFtpXSA9IHRydWUgaWYgdmFyaWFibGUgaSBtYXRj aGVkIGF0IGN1cnJlbnQgcm93LgorICoKKyAqIFVzZXMgMS1zbG90IG1vZGVsOiBvbmx5IGVjeHRf b3V0ZXJ0dXBsZSBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgcm93LgorICogUFJFVi9ORVhUIG5hdmln YXRpb24gaXMgaGFuZGxlZCBieSBFRU9QX1JQUl9OQVZfU0VUL1JFU1RPUkUgb3Bjb2RlcworICog ZHVyaW5nIGV4cHJlc3Npb24gZXZhbHVhdGlvbiwgd2hpY2ggdGVtcG9yYXJpbHkgc3dhcCB0aGUg c2xvdC4KICAqLwogc3RhdGljIGJvb2wKIG5mYV9ldmFsdWF0ZV9yb3coV2luZG93T2JqZWN0IHdp bm9iaiwgaW50NjQgcG9zLCBib29sICp2YXJNYXRjaGVkKQpAQCAtNDIyOCwzNyArNDE5NSwyNSBA QCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcywgYm9vbCAq dmFyTWF0Y2hlZCkKIAlMaXN0Q2VsbCAgICpsYzsKIAlpbnQJCQl2YXJJZHggPSAwOwogCVR1cGxl VGFibGVTbG90ICpzbG90OworCWludDY0CQlzYXZlZF9wb3M7CiAKLQkvKgotCSAqIFNldCB1cCBz bG90cyBmb3IgY3VycmVudCwgcHJldmlvdXMsIGFuZCBuZXh0IHJvd3MuIFdlIGRvbid0IGNhbGwK LQkgKiBnZXRfc2xvdHMoKSBoZXJlIHRvIGF2b2lkIHJlY3Vyc2lvbiB0aHJvdWdoIHJvd19pc19p bl9mcmFtZSAtPgotCSAqIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lIC0+IEV4ZWNSUFJQcm9jZXNzUm93 LgotCSAqLwotCi0JLyogQ3VycmVudCByb3cgLT4gZWN4dF9vdXRlcnR1cGxlICovCisJLyogRmV0 Y2ggY3VycmVudCByb3cgaW50byB0ZW1wX3Nsb3RfMSAqLwogCXNsb3QgPSB3aW5zdGF0ZS0+dGVt cF9zbG90XzE7CiAJaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9iaiwgcG9zLCBzbG90KSkK IAkJcmV0dXJuIGZhbHNlOwkJCS8qIE5vIHJvdyBleGlzdHMgKi8KKworCS8qIFNldCB1cCAxLXNs b3QgY29udGV4dDogb25seSBlY3h0X291dGVydHVwbGUgKi8KIAllY29udGV4dC0+ZWN4dF9vdXRl cnR1cGxlID0gc2xvdDsKIAotCS8qIFByZXZpb3VzIHJvdyAtPiBlY3h0X3NjYW50dXBsZSAoZm9y IFBSRVYpICovCi0JaWYgKHBvcyA+IDApCi0JewotCQlzbG90ID0gd2luc3RhdGUtPnByZXZfc2xv dDsKLQkJaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9iaiwgcG9zIC0gMSwgc2xvdCkpCi0J CQllY29udGV4dC0+ZWN4dF9zY2FudHVwbGUgPSB3aW5zdGF0ZS0+bnVsbF9zbG90OwotCQllbHNl Ci0JCQllY29udGV4dC0+ZWN4dF9zY2FudHVwbGUgPSBzbG90OwotCX0KLQllbHNlCi0JCWVjb250 ZXh0LT5lY3h0X3NjYW50dXBsZSA9IHdpbnN0YXRlLT5udWxsX3Nsb3Q7CisJLyoKKwkgKiBTYXZl IGFuZCBzZXQgY3VycmVudHBvcyBzbyB0aGF0IEVFT1BfUlBSX05BVl9TRVQgb3Bjb2RlcyBjYW4g Y2FsY3VsYXRlCisJICogdGFyZ2V0IHBvc2l0aW9ucyAoY3VycmVudHBvcyArLy0gb2Zmc2V0KS4K KwkgKi8KKwlzYXZlZF9wb3MgPSB3aW5zdGF0ZS0+Y3VycmVudHBvczsKKwl3aW5zdGF0ZS0+Y3Vy cmVudHBvcyA9IHBvczsKIAotCS8qIE5leHQgcm93IC0+IGVjeHRfaW5uZXJ0dXBsZSAoZm9yIE5F WFQpICovCi0Jc2xvdCA9IHdpbnN0YXRlLT5uZXh0X3Nsb3Q7Ci0JaWYgKCF3aW5kb3dfZ2V0dHVw bGVzbG90KHdpbm9iaiwgcG9zICsgMSwgc2xvdCkpCi0JCWVjb250ZXh0LT5lY3h0X2lubmVydHVw bGUgPSB3aW5zdGF0ZS0+bnVsbF9zbG90OwotCWVsc2UKLQkJZWNvbnRleHQtPmVjeHRfaW5uZXJ0 dXBsZSA9IHNsb3Q7CisJLyogSW52YWxpZGF0ZSBuYXZfc2xvdCBjYWNoZSBzbyBQUkVWL05FWFQg cmUtZmV0Y2ggZm9yIG5ldyByb3cgKi8KKwl3aW5zdGF0ZS0+bmF2X3Nsb3RfcG9zID0gLTE7CiAK IAlmb3JlYWNoKGxjLCB3aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlzdCkKIAl7CkBAIC00Mjc2LDYg KzQyMzEsOCBAQCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBv cywgYm9vbCAqdmFyTWF0Y2hlZCkKIAkJCWJyZWFrOwogCX0KIAorCXdpbnN0YXRlLT5jdXJyZW50 cG9zID0gc2F2ZWRfcG9zOworCiAJcmV0dXJuIHRydWU7CQkJCS8qIFJvdyBleGlzdHMgKi8KIH0K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgYi9zcmMv YmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwppbmRleCA2NTBmMWQ0MmE5My4uZDE1OGUz N2U3YjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCisr KyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCkBAIC0yOTYsNiArMjk2LDQw IEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJCQkJCSAgIEZJRUxE Tk9fRVhQUkNPTlRFWFRfQUdHTlVMTFMsCiAJCQkJCQkJCSAgICJ2LmVjb250ZXh0LmFnZ251bGxz Iik7CiAKKwkvKgorCSAqIFJQUiBuYXZpZ2F0aW9uIG9wY29kZXMgKFBSRVYvTkVYVCkgc3dhcCBl Y3h0X291dGVydHVwbGUgdG8gYSBkaWZmZXJlbnQKKwkgKiByb3cgbWlkLWV4cHJlc3Npb24uICBU aGUgSklUIGNvZGUgbG9hZHMgdl9vdXRlcnZhbHVlcyBhbmQgdl9vdXRlcm51bGxzCisJICogb25j ZSBpbiB0aGUgZW50cnkgYmxvY2sgYW5kIHJldXNlcyB0aGVtIGZvciBhbGwgRUVPUF9PVVRFUl9W QVIgc3RlcHMuCisJICogQWZ0ZXIgYSBzbG90IHN3YXAsIHRoZXNlIHBvaW50ZXJzIGJlY29tZSBz dGFsZSBiZWNhdXNlIHRoZSBuZXcgc2xvdCBoYXMKKwkgKiBpdHMgb3duIHR0c192YWx1ZXMvdHRz X2lzbnVsbCBhcnJheXMuICBGYWxsIGJhY2sgdG8gdGhlIGludGVycHJldGVyIGZvcgorCSAqIHRo ZXNlIGV4cHJlc3Npb25zLgorCSAqCisJICogWFhYIFRvIEpJVC1jb21waWxlIHRoZXNlIGV4cHJl c3Npb25zIHByb3Blcmx5LCB0aGUgTkFWX1NFVCBhbmQKKwkgKiBOQVZfUkVTVE9SRSBoYW5kbGVy cyB3b3VsZCBuZWVkIHRvIHJlbG9hZCB0aGUgdHRzX3ZhbHVlcyBhbmQgdHRzX2lzbnVsbAorCSAq IHBvaW50ZXJzIGZyb20gdGhlIG5ldyBzbG90LiAgSG93ZXZlciwgTExWTSB1c2VzIFNTQSAoU3Rh dGljIFNpbmdsZQorCSAqIEFzc2lnbm1lbnQpIGZvcm0gd2hlcmUgZWFjaCB2YWx1ZSBpcyBkZWZp bmVkIGV4YWN0bHkgb25jZS4gIFdoZW4KKwkgKiBkaWZmZXJlbnQgYmFzaWMgYmxvY2tzIHByb2R1 Y2UgZGlmZmVyZW50IHZhbHVlcyBmb3IgdGhlIHNhbWUgcG9pbnRlciwKKwkgKiBMTFZNIHJlcXVp cmVzIFBISSBub2RlcyBhdCB0aGUgbWVyZ2UgcG9pbnQgdG8gc2VsZWN0IHRoZSBjb3JyZWN0IG9u ZS4KKwkgKiBXaXRob3V0IHRoYXQgcGx1bWJpbmcsIE9VVEVSX1ZBUiBzdGVwcyBhZnRlciBhIHNs b3Qgc3dhcCB3b3VsZCByZWFkCisJICogZnJvbSB0aGUgd3JvbmcgcG9pbnRlci4KKwkgKi8KKwlp ZiAocGFyZW50ICYmIElzQShwYXJlbnQsIFdpbmRvd0FnZ1N0YXRlKSAmJgorCQkoKFdpbmRvd0Fn ZyAqKSBwYXJlbnQtPnBsYW4pLT5ycFBhdHRlcm4gIT0gTlVMTCkKKwl7CisJCWZvciAoaW50IG9w bm8gPSAwOyBvcG5vIDwgc3RhdGUtPnN0ZXBzX2xlbjsgb3BubysrKQorCQl7CisJCQlFeHByRXZh bE9wCW9wY29kZSA9IEV4ZWNFdmFsU3RlcE9wKHN0YXRlLCAmc3RhdGUtPnN0ZXBzW29wbm9dKTsK KworCQkJaWYgKG9wY29kZSA9PSBFRU9QX1JQUl9OQVZfU0VUIHx8CisJCQkJb3Bjb2RlID09IEVF T1BfUlBSX05BVl9SRVNUT1JFKQorCQkJeworCQkJCUxMVk1EZWxldGVGdW5jdGlvbihldmFsX2Zu KTsKKwkJCQlMTFZNRGlzcG9zZUJ1aWxkZXIoYik7CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQor CQl9CisJfQorCiAJLyogYWxsb2NhdGUgYmxvY2tzIGZvciBlYWNoIG9wIHVwZnJvbnQsIHNvIHdl IGNhbiBkbyBqdW1wcyBlYXNpbHkgKi8KIAlvcGJsb2NrcyA9IHBhbGxvY19hcnJheShMTFZNQmFz aWNCbG9ja1JlZiwgc3RhdGUtPnN0ZXBzX2xlbik7CiAJZm9yIChpbnQgb3BubyA9IDA7IG9wbm8g PCBzdGF0ZS0+c3RlcHNfbGVuOyBvcG5vKyspCkBAIC0yNDMyLDYgKzI0NjYsMTIgQEAgbGx2bV9j b21waWxlX2V4cHIoRXhwclN0YXRlICpzdGF0ZSkKIAkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nr c1tvcG5vICsgMV0pOwogCQkJCWJyZWFrOwogCisJCQljYXNlIEVFT1BfUlBSX05BVl9TRVQ6CisJ CQljYXNlIEVFT1BfUlBSX05BVl9SRVNUT1JFOgorCQkJCS8qIHVucmVhY2hhYmxlOiBmaWx0ZXJl ZCBvdXQgYnkgdGhlIHByZS1zY2FuIGFib3ZlICovCisJCQkJQXNzZXJ0KGZhbHNlKTsKKwkJCQly ZXR1cm4gZmFsc2U7CisKIAkJCWNhc2UgRUVPUF9BR0dfU1RSSUNUX0RFU0VSSUFMSVpFOgogCQkJ Y2FzZSBFRU9QX0FHR19ERVNFUklBTElaRToKIAkJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0 X3R5cGVzLmMKaW5kZXggYzhhMWY4NDEyOTMuLmU3OGIzMWQ3NzVmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xs dm0vbGx2bWppdF90eXBlcy5jCkBAIC0xNjgsNiArMTY4LDggQEAgdm9pZAkgICAqcmVmZXJlbmNl ZF9mdW5jdGlvbnNbXSA9CiAJRXhlY0V2YWxTY2FsYXJBcnJheU9wLAogCUV4ZWNFdmFsSGFzaGVk U2NhbGFyQXJyYXlPcCwKIAlFeGVjRXZhbFN1YlBsYW4sCisJRXhlY0V2YWxSUFJOYXZTZXQsCisJ RXhlY0V2YWxSUFJOYXZSZXN0b3JlLAogCUV4ZWNFdmFsU3lzVmFyLAogCUV4ZWNFdmFsV2hvbGVS b3dWYXIsCiAJRXhlY0V2YWxYbWxFeHByLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCAxYWRkYTdj NWQ4NC4uZDJmMTk1ODQwNzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC02OSw2ICs2OSw5IEBA IGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgog CQkJdHlwZSA9ICgoY29uc3QgTWVyZ2VTdXBwb3J0RnVuYyAqKSBleHByKS0+bXNmdHlwZTsKIAkJ CWJyZWFrOworCQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCXR5cGUgPSAoKGNvbnN0IFJQUk5hdkV4 cHIgKikgZXhwciktPnJlc3VsdHR5cGU7CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGlu Z1JlZjoKIAkJCXR5cGUgPSAoKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqKSBleHByKS0+cmVmcmVz dHlwZTsKIAkJCWJyZWFrOwpAQCAtODUzLDYgKzg1Niw5IEBAIGV4cHJDb2xsYXRpb24oY29uc3Qg Tm9kZSAqZXhwcikKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CiAJCQljb2xsID0gKChjb25z dCBNZXJnZVN1cHBvcnRGdW5jICopIGV4cHIpLT5tc2Zjb2xsaWQ7CiAJCQlicmVhazsKKwkJY2Fz ZSBUX1JQUk5hdkV4cHI6CisJCQljb2xsID0gKChjb25zdCBSUFJOYXZFeHByICopIGV4cHIpLT5y ZXN1bHRjb2xsaWQ7CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCWNv bGwgPSAoKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqKSBleHByKS0+cmVmY29sbGlkOwogCQkJYnJl YWs7CkBAIC0xMTU0LDYgKzExNjAsOSBAQCBleHByU2V0Q29sbGF0aW9uKE5vZGUgKmV4cHIsIE9p ZCBjb2xsYXRpb24pCiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgogCQkJKChNZXJnZVN1cHBv cnRGdW5jICopIGV4cHIpLT5tc2Zjb2xsaWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKKwkJY2Fz ZSBUX1JQUk5hdkV4cHI6CisJCQkoKFJQUk5hdkV4cHIgKikgZXhwciktPnJlc3VsdGNvbGxpZCA9 IGNvbGxhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJKChT dWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFr OwpAQCAtMTQyNiw2ICsxNDM1LDkgQEAgZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJ CWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgogCQkJbG9jID0gKChjb25zdCBNZXJnZVN1cHBvcnRG dW5jICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfUlBSTmF2RXhwcjoK KwkJCWxvYyA9ICgoY29uc3QgUlBSTmF2RXhwciAqKSBleHByKS0+bG9jYXRpb247CisJCQlicmVh azsKIAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCS8qIGp1c3QgdXNlIGNvbnRhaW5lciBh cmd1bWVudCdzIGxvY2F0aW9uICovCiAJCQlsb2MgPSBleHByTG9jYXRpb24oKE5vZGUgKikgKChj b25zdCBTdWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmV4cHIpOwpAQCAtMjE4Nyw2ICsyMTk5 LDE2IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1 cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCXsKKwkJ CQlSUFJOYXZFeHByICpleHByID0gKFJQUk5hdkV4cHIgKikgbm9kZTsKKworCQkJCWlmIChXQUxL KGV4cHItPmFyZykpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChleHByLT5vZmZzZXRfYXJn ICYmIFdBTEsoZXhwci0+b2Zmc2V0X2FyZykpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJ YnJlYWs7CiAJCWNhc2UgVF9TdWJzY3JpcHRpbmdSZWY6CiAJCQl7CiAJCQkJU3Vic2NyaXB0aW5n UmVmICpzYnNyZWYgPSAoU3Vic2NyaXB0aW5nUmVmICopIG5vZGU7CkBAIC0zMTE2LDYgKzMxMzgs MTcgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1wbChOb2RlICpub2RlLAogCQkJCXJldHVy biAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9SUFJOYXZFeHBy OgorCQkJeworCQkJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisJCQkJ UlBSTmF2RXhwciAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZKG5ld25vZGUsIG5hdiwgUlBSTmF2 RXhwcik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmFyZywgbmF2LT5hcmcsIEV4cHIgKik7CisJCQkJ TVVUQVRFKG5ld25vZGUtPm9mZnNldF9hcmcsIG5hdi0+b2Zmc2V0X2FyZywgRXhwciAqKTsKKwkJ CQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vi c2NyaXB0aW5nUmVmOgogCQkJewogCQkJCVN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmID0gKFN1YnNj cmlwdGluZ1JlZiAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggMjNiMDJmYjNi YzAuLmUxNGZmNGRjNDk0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVu Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTc2MCw3ICs3NjAs OCBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1l LCBMaXN0ICpmYXJncywKIAkvKiBuZXh0KCkgYW5kIHByZXYoKSBhcmUgb25seSBhbGxvd2VkIGlu IGEgV0lORE9XIERFRklORSBjbGF1c2UgKi8KIAlpZiAoZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9O T1JNQUwgJiYKIAkJcHN0YXRlLT5wX2V4cHJfa2luZCAhPSBFWFBSX0tJTkRfUlBSX0RFRklORSAm JgotCQkoZnVuY2lkID09IEZfUFJFViB8fCBmdW5jaWQgPT0gRl9ORVhUKSkKKwkJKGZ1bmNpZCA9 PSBGX1BSRVZfQU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKKwkJ IGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxFTUVOVF9JTlQ4IHx8IGZ1bmNpZCA9PSBGX05FWFRfQU5Z RUxFTUVOVF9JTlQ4KSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCiAJCQkJIGVycm1zZygiJXMgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklO RSBjbGF1c2UiLApAQCAtNzY4LDcgKzc2OSwzMiBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0 YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CiAKIAkvKiBidWlsZCB0aGUgYXBwcm9wcmlh dGUgb3V0cHV0IHN0cnVjdHVyZSAqLwotCWlmIChmZHJlc3VsdCA9PSBGVU5DREVUQUlMX05PUk1B TCB8fCBmZHJlc3VsdCA9PSBGVU5DREVUQUlMX1BST0NFRFVSRSkKKwlpZiAoZmRyZXN1bHQgPT0g RlVOQ0RFVEFJTF9OT1JNQUwgJiYKKwkJKGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxFTUVOVCB8fCBm dW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKKwkJIGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxF TUVOVF9JTlQ4IHx8IGZ1bmNpZCA9PSBGX05FWFRfQU5ZRUxFTUVOVF9JTlQ4KSkKKwl7CisJCS8q CisJCSAqIFBSRVYoKSBhbmQgTkVYVCgpIGFyZSBjb21waWxlZCBpbnRvIEVFT1BfUlBSX05BVl9T RVQgLworCQkgKiBFRU9QX1JQUl9OQVZfUkVTVE9SRSBvcGNvZGVzIGluc3RlYWQgb2YgYSBub3Jt YWwgZnVuY3Rpb24gY2FsbC4KKwkJICogUmVwcmVzZW50IHRoZW0gYXMgUlBSTmF2RXhwciBub2Rl cyBzbyB0aGF0IGxhdGVyIHN0YWdlcyBjYW4KKwkJICogaWRlbnRpZnkgdGhlbSB3aXRob3V0IHJl bHlpbmcgb24gZnVuY2lkIGNvbXBhcmlzb25zLgorCQkgKi8KKwkJYm9vbAkJaXNfbmV4dCA9IChm dW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKKwkJCQkJCQkgICBmdW5jaWQgPT0gRl9ORVhU X0FOWUVMRU1FTlRfSU5UOCk7CisJCWJvb2wJCWhhc19vZmZzZXQgPSAoZnVuY2lkID09IEZfUFJF Vl9BTllFTEVNRU5UX0lOVDggfHwKKwkJCQkJCQkJICBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1F TlRfSU5UOCk7CisJCVJQUk5hdkV4cHIgKm5hdmV4cHIgPSBtYWtlTm9kZShSUFJOYXZFeHByKTsK KworCQluYXZleHByLT5raW5kID0gaXNfbmV4dCA/IFJQUl9OQVZfTkVYVCA6IFJQUl9OQVZfUFJF VjsKKwkJbmF2ZXhwci0+YXJnID0gKEV4cHIgKikgbGluaXRpYWwoZmFyZ3MpOworCQluYXZleHBy LT5vZmZzZXRfYXJnID0gaGFzX29mZnNldCA/IChFeHByICopIGxzZWNvbmQoZmFyZ3MpIDogTlVM TDsKKwkJbmF2ZXhwci0+cmVzdWx0dHlwZSA9IHJldHR5cGU7CisJCS8qIHJlc3VsdGNvbGxpZCB3 aWxsIGJlIHNldCBieSBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJbmF2ZXhwci0+bG9jYXRpb24gPSBs b2NhdGlvbjsKKworCQlyZXR2YWwgPSAoTm9kZSAqKSBuYXZleHByOworCX0KKwllbHNlIGlmIChm ZHJlc3VsdCA9PSBGVU5DREVUQUlMX05PUk1BTCB8fCBmZHJlc3VsdCA9PSBGVU5DREVUQUlMX1BS T0NFRFVSRSkKIAl7CiAJCUZ1bmNFeHByICAgKmZ1bmNleHByID0gbWFrZU5vZGUoRnVuY0V4cHIp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKaW5kZXggZGIxMzA5Y2EzMTEuLjNmYjVkOTRhYmU5IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3Jwci5jCkBAIC00Miw2ICs0Miw4IEBAIHN0YXRpYyB2b2lkIHZhbGlk YXRlUlBSUGF0dGVyblZhckNvdW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUlBSUGF0dGVybk5vZGUg Km5vZGUsCiAJCQkJCQkJCQkgICBMaXN0ICpycERlZnMsIExpc3QgKip2YXJOYW1lcyk7CiBzdGF0 aWMgTGlzdCAqdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93 Q2xhdXNlICp3YywKIAkJCQkJCQkJICAgV2luZG93RGVmICp3aW5kZWYsIExpc3QgKip0YXJnZXRs aXN0KTsKK3N0YXRpYyB2b2lkIGNoZWNrX3Jwcl9uYXZfZXhwcihSUFJOYXZFeHByICpuYXYsIFBh cnNlU3RhdGUgKnBzdGF0ZSk7CitzdGF0aWMgYm9vbCBjaGVja19ycHJfbmF2X25lc3Rpbmdfd2Fs a2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogCiAvKgogICogdHJhbnNmb3JtUlBSCkBA IC00MTAsNiArNDEyLDEwIEBAIHRyYW5zZm9ybURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpwc3Rh dGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAogCWZvcmVhY2hfcHRyKFRh cmdldEVudHJ5LCB0ZSwgZGVmaW5lQ2xhdXNlKQogCQl0ZS0+ZXhwciA9IChFeHByICopIGNvZXJj ZV90b19ib29sZWFuKHBzdGF0ZSwgKE5vZGUgKikgdGUtPmV4cHIsICJERUZJTkUiKTsKIAorCS8q IGNoZWNrIGZvciBuZXN0ZWQgUFJFVi9ORVhUIGFuZCBtaXNzaW5nIGNvbHVtbiByZWZlcmVuY2Vz ICovCisJZm9yZWFjaF9wdHIoVGFyZ2V0RW50cnksIHRlLCBkZWZpbmVDbGF1c2UpCisJCSh2b2lk KSBjaGVja19ycHJfbmF2X25lc3Rpbmdfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCBwc3RhdGUp OworCiAJLyogbWFyayBjb2x1bW4gb3JpZ2lucyAqLwogCW1hcmtUYXJnZXRMaXN0T3JpZ2lucyhw c3RhdGUsIGRlZmluZUNsYXVzZSk7CiAKQEAgLTQxOCwzICs0MjQsODMgQEAgdHJhbnNmb3JtRGVm aW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVm ICp3aW5kZWYsCiAKIAlyZXR1cm4gZGVmaW5lQ2xhdXNlOwogfQorCisvKgorICogY2hlY2tfcnBy X25hdl9leHByCisgKgkJVmFsaWRhdGUgYSBzaW5nbGUgUlBSTmF2RXhwciBub2RlIGJ5IHdhbGtp bmcgaXRzIGFyZyBhbmQgb2Zmc2V0X2FyZworICoJCXN1YnRyZWVzIGluIGEgc2luZ2xlIHBhc3Mg ZWFjaC4gIENoZWNrcyBmb3IgbmVzdGVkIFBSRVYvTkVYVCwgbWlzc2luZworICoJCWNvbHVtbiBy ZWZlcmVuY2VzLCBhbmQgbm9uLWNvbnN0YW50IG9mZnNldCBleHByZXNzaW9ucy4KKyAqLwordHlw ZWRlZiBzdHJ1Y3QKK3sKKwlib29sCQloYXNfbmF2OwkJLyogUlBSTmF2RXhwciBmb3VuZCAobmVz dGluZykgKi8KKwlib29sCQloYXNfY29sdW1uX3JlZjsgLyogVmFyIGZvdW5kICovCit9CQkJTmF2 Q2hlY2tSZXN1bHQ7CisKK3N0YXRpYyBib29sCituYXZfY2hlY2tfd2Fsa2VyKE5vZGUgKm5vZGUs IHZvaWQgKmNvbnRleHQpCit7CisJTmF2Q2hlY2tSZXN1bHQgKnJlc3VsdCA9IChOYXZDaGVja1Jl c3VsdCAqKSBjb250ZXh0OworCisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOwor CWlmIChJc0Eobm9kZSwgUlBSTmF2RXhwcikpCisJCXJlc3VsdC0+aGFzX25hdiA9IHRydWU7CisJ aWYgKElzQShub2RlLCBWYXIpKQorCQlyZXN1bHQtPmhhc19jb2x1bW5fcmVmID0gdHJ1ZTsKKwor CXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG5hdl9jaGVja193YWxrZXIsIGNv bnRleHQpOworfQorCitzdGF0aWMgdm9pZAorY2hlY2tfcnByX25hdl9leHByKFJQUk5hdkV4cHIg Km5hdiwgUGFyc2VTdGF0ZSAqcHN0YXRlKQoreworCU5hdkNoZWNrUmVzdWx0IHJlc3VsdDsKKwor CS8qIENoZWNrIGFyZyBzdWJ0cmVlOiBuZXN0aW5nICsgY29sdW1uIHJlZmVyZW5jZSBpbiBvbmUg d2FsayAqLworCW1lbXNldCgmcmVzdWx0LCAwLCBzaXplb2YocmVzdWx0KSk7CisJKHZvaWQpIG5h dl9jaGVja193YWxrZXIoKE5vZGUgKikgbmF2LT5hcmcsICZyZXN1bHQpOworCisJaWYgKHJlc3Vs dC5oYXNfbmF2KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJQUkVWIGFuZCBORVhUIGNhbm5vdCBiZSBu ZXN0ZWQiKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikp KTsKKwlpZiAoIXJlc3VsdC5oYXNfY29sdW1uX3JlZikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1zZygiYXJndW1lbnQgb2Yg cm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9u ZSBjb2x1bW4gcmVmZXJlbmNlIiksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5h di0+bG9jYXRpb24pKSk7CisKKwkvKiBDaGVjayBvZmZzZXRfYXJnOiBjb2x1bW4gcmVmICsgdm9s YXRpbGUgaW4gb25lIHdhbGsgKi8KKwlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJewor CQltZW1zZXQoJnJlc3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkpOworCQkodm9pZCkgbmF2X2NoZWNr X3dhbGtlcigoTm9kZSAqKSBuYXYtPm9mZnNldF9hcmcsICZyZXN1bHQpOworCisJCWlmIChyZXN1 bHQuaGFzX2NvbHVtbl9yZWYgfHwKKwkJCWNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rpb25zKChOb2Rl ICopIG5hdi0+b2Zmc2V0X2FyZykpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coIlBSRVYvTkVYVCBv ZmZzZXQgbXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50IiksCisJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCX0KK30KKworLyoKKyAqIGNoZWNrX3Jw cl9uYXZfbmVzdGluZ193YWxrZXIKKyAqCQlXYWxrIHRoZSBERUZJTkUgY2xhdXNlIGV4cHJlc3Np b24gdHJlZSBhbmQgdmFsaWRhdGUgZWFjaCBSUFJOYXZFeHByLgorICovCitzdGF0aWMgYm9vbAor Y2hlY2tfcnByX25hdl9uZXN0aW5nX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQor eworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwlpZiAoSXNBKG5vZGUsIFJQ Uk5hdkV4cHIpKQorCXsKKwkJY2hlY2tfcnByX25hdl9leHByKChSUFJOYXZFeHByICopIG5vZGUs IChQYXJzZVN0YXRlICopIGNvbnRleHQpOworCQkvKiBkb24ndCByZWN1cnNlIGludG8gYXJnOyBu ZXN0aW5nIGFscmVhZHkgY2hlY2tlZCBhYm92ZSAqLworCQlyZXR1cm4gZmFsc2U7CisJfQorCXJl dHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGNoZWNrX3Jwcl9uYXZfbmVzdGluZ193 YWxrZXIsIGNvbnRleHQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IGU5M2Mw M2EzNTFjLi5hNGZlNzI1NjQ2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTAx MDMsNiArMTAxMDMsMjIgQEAgZ2V0X3J1bGVfZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRl eHQgKmNvbnRleHQsCiAJCQlnZXRfZnVuY19leHByKChGdW5jRXhwciAqKSBub2RlLCBjb250ZXh0 LCBzaG93aW1wbGljaXQpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQl7 CisJCQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikgbm9kZTsKKworCQkJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoYnVmLAorCQkJCQkJCQkJICAgbmF2LT5raW5kID09IFJQUl9OQVZf UFJFViA/ICJQUkVWKCIgOiAiTkVYVCgiKTsKKwkJCQlnZXRfcnVsZV9leHByKChOb2RlICopIG5h di0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJCWlmIChuYXYtPm9mZnNldF9hcmcg IT0gTlVMTCkKKwkJCQl7CisJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLCAiKTsK KwkJCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSBuYXYtPm9mZnNldF9hcmcsIGNvbnRleHQsIHNo b3dpbXBsaWNpdCk7CisJCQkJfQorCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsK KwkJCX0KKwkJCWJyZWFrOworCiAJCWNhc2UgVF9OYW1lZEFyZ0V4cHI6CiAJCQl7CiAJCQkJTmFt ZWRBcmdFeHByICpuYSA9IChOYW1lZEFyZ0V4cHIgKikgbm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dp bmRvd2Z1bmNzLmMKaW5kZXggNzRlZjEwOWY3MmUuLjA5MTI2MGQyY2NlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvd2luZG93ZnVuY3MuYwpAQCAtNzI2LDIyICs3MjYsNjIgQEAgd2luZG93X250aF92YWx1 ZShQR19GVU5DVElPTl9BUkdTKQogCiAvKgogICogcHJldgotICogRHVtbXkgZnVuY3Rpb24gdG8g aW52b2tlIFJQUidzIG5hdmlnYXRpb24gb3BlcmF0b3IgIlBSRVYiLgotICogVGhpcyBpcyAqbm90 KiBhIHdpbmRvdyBmdW5jdGlvbi4KKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIFBS RVYgbmF2aWdhdGlvbiBvcGVyYXRvci4KKyAqCisgKiBUaGUgcGFyc2VyIHRyYW5zZm9ybXMgcHJl digpIGNhbGxzIGluc2lkZSBERUZJTkUgaW50byBSUFJOYXZFeHByIG5vZGVzLAorICogc28gdGhp cyBmdW5jdGlvbiBpcyBuZXZlciByZWFjaGVkIGR1cmluZyBub3JtYWwgUlBSIGV4ZWN1dGlvbi4g IEl0IGV4aXN0cworICogb25seSBzbyB0aGF0IHRoZSBwYXJzZXIgY2FuIHJlc29sdmUgdGhlIGZ1 bmN0aW9uIG5hbWUgZnJvbSBwZ19wcm9jLgorICogQ2FsbHMgb3V0c2lkZSBERUZJTkUgYXJlIHJl amVjdGVkIGJ5IHBhcnNlX2Z1bmMuYyAoRVhQUl9LSU5EX1JQUl9ERUZJTkUKKyAqIGNoZWNrKS4g IFRoZSBlcnJvciBiZWxvdyBpcyBhIGRlZmVuc2l2ZSBtZWFzdXJlIGluIGNhc2UgdGhhdCBjaGVj ayBpcworICogYnlwYXNzZWQgKGUuZy4sIGRpcmVjdCBDLWxldmVsIGZ1bmN0aW9uIGludm9jYXRp b24pLgogICovCiBEYXR1bQogd2luZG93X3ByZXYoUEdfRlVOQ1RJT05fQVJHUykKIHsKLQlQR19S RVRVUk5fREFUVU0oUEdfR0VUQVJHX0RBVFVNKDApKTsKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygicHJldigp IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwlQR19SRVRVUk5fTlVM TCgpOwkJCS8qIG5vdCByZWFjaGVkICovCiB9CiAKIC8qCiAgKiBuZXh0Ci0gKiBEdW1teSBmdW5j dGlvbiB0byBpbnZva2UgUlBSJ3MgbmF2aWdhdGlvbiBvcGVyYXRpb24gIk5FWFQiLgotICogVGhp cyBpcyAqbm90KiBhIHdpbmRvdyBmdW5jdGlvbi4KKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9y IFJQUidzIE5FWFQgbmF2aWdhdGlvbiBvcGVyYXRvci4KKyAqIFNlZSB3aW5kb3dfcHJldigpIGZv ciBkZXRhaWxzLgogICovCiBEYXR1bQogd2luZG93X25leHQoUEdfRlVOQ1RJT05fQVJHUykKIHsK LQlQR19SRVRVUk5fREFUVU0oUEdfR0VUQVJHX0RBVFVNKDApKTsKKwllcmVwb3J0KEVSUk9SLAor CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygi bmV4dCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwlQR19SRVRV Uk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCit9CisKKy8qCisgKiBwcmV2KHZhbHVlLCBv ZmZzZXQpCisgKiBDYXRhbG9nIHBsYWNlaG9sZGVyIGZvciBSUFIncyBQUkVWIG5hdmlnYXRpb24g b3BlcmF0b3Igd2l0aCBvZmZzZXQuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3IgZGV0YWlscy4K KyAqLworRGF0dW0KK3dpbmRvd19wcmV2X29mZnNldChQR19GVU5DVElPTl9BUkdTKQoreworCWVy ZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkgZXJybXNnKCJwcmV2KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2Ui KSkpOworCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQgKi8KK30KKworLyoKKyAq IG5leHQodmFsdWUsIG9mZnNldCkKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIE5F WFQgbmF2aWdhdGlvbiBvcGVyYXRvciB3aXRoIG9mZnNldC4KKyAqIFNlZSB3aW5kb3dfcHJldigp IGZvciBkZXRhaWxzLgorICovCitEYXR1bQord2luZG93X25leHRfb2Zmc2V0KFBHX0ZVTkNUSU9O X0FSR1MpCit7CisJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJtc2coIm5leHQoKSBjYW4gb25seSBiZSB1c2VkIGluIGEg REVGSU5FIGNsYXVzZSIpKSk7CisJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAq LwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggZGRmOTIyZDE2ZDcuLjhlOTUxNjliN2Iw IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTEwOTc1LDkgKzEwOTc1LDE1IEBACiB7IG9p ZCA9PiAnODEyNicsIGRlc2NyID0+ICdwcmV2aW91cyB2YWx1ZScsCiAgIHByb25hbWUgPT4gJ3By ZXYnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAogICBw cm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVudCcsIHByb3NyYyA9PiAnd2luZG93X3ByZXYnIH0sCit7 IG9pZCA9PiAnODEyOCcsIGRlc2NyID0+ICdwcmV2aW91cyB2YWx1ZSBhdCBvZmZzZXQnLAorICBw cm9uYW1lID0+ICdwcmV2JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9pc3N0cmljdCA9PiAnZics IHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVu dCBpbnQ4JywgcHJvc3JjID0+ICd3aW5kb3dfcHJldl9vZmZzZXQnIH0sCiB7IG9pZCA9PiAnODEy NycsIGRlc2NyID0+ICduZXh0IHZhbHVlJywKICAgcHJvbmFtZSA9PiAnbmV4dCcsIHByb3ZvbGF0 aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVudCcsCiAgIHByb2FyZ3R5cGVzID0+ ICdhbnllbGVtZW50JywgcHJvc3JjID0+ICd3aW5kb3dfbmV4dCcgfSwKK3sgb2lkID0+ICc4MTI5 JywgZGVzY3IgPT4gJ25leHQgdmFsdWUgYXQgb2Zmc2V0JywKKyAgcHJvbmFtZSA9PiAnbmV4dCcs IHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3QgPT4gJ2YnLCBwcm9yZXR0eXBlID0+ICdh bnllbGVtZW50JywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQgaW50OCcsIHByb3NyYyA9 PiAnd2luZG93X25leHRfb2Zmc2V0JyB9LAogCiAjIGZ1bmN0aW9ucyBmb3IgcmFuZ2UgdHlwZXMK IHsgb2lkID0+ICczODMyJywgZGVzY3IgPT4gJ0kvTycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjRXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApp bmRleCBhYTliMzYxZmEzMS4uZmFjMzdjOTY4OTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApA QCAtMjc0LDYgKzI3NCwxMCBAQCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVFT1BfTUVSR0Vf U1VQUE9SVF9GVU5DLAogCUVFT1BfU1VCUExBTiwKIAorCS8qIHJvdyBwYXR0ZXJuIG5hdmlnYXRp b24gKFJQUiBQUkVWL05FWFQpICovCisJRUVPUF9SUFJfTkFWX1NFVCwKKwlFRU9QX1JQUl9OQVZf UkVTVE9SRSwKKwogCS8qIGFnZ3JlZ2F0aW9uIHJlbGF0ZWQgbm9kZXMgKi8KIAlFRU9QX0FHR19T VFJJQ1RfREVTRVJJQUxJWkUsCiAJRUVPUF9BR0dfREVTRVJJQUxJWkUsCkBAIC02OTEsNiArNjk1 LDE2IEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJU3ViUGxhblN0YXRlICpzc3Rh dGU7CiAJCX0JCQlzdWJwbGFuOwogCisJCS8qIGZvciBFRU9QX1JQUl9OQVZfU0VUIC8gRUVPUF9S UFJfTkFWX1JFU1RPUkUgKi8KKwkJc3RydWN0CisJCXsKKwkJCVdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZTsKKwkJCVJQUk5hdktpbmQJa2luZDsJLyogUFJFViBvciBORVhUICovCisJCQlEYXR1bQkg ICAqb2Zmc2V0X3ZhbHVlOwkvKiAyLWFyZzogcnVudGltZSBvZmZzZXQgdmFsdWUsIG9yCisJCQkJ CQkJCQkJICogTlVMTCAqLworCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVsbDsJLyogMi1hcmc6IHJ1 bnRpbWUgb2Zmc2V0IG51bGwgZmxhZyAqLworCQl9CQkJcnByX25hdjsKKwogCQkvKiBmb3IgRUVP UF9BR0dfKkRFU0VSSUFMSVpFICovCiAJCXN0cnVjdAogCQl7CkBAIC04OTgsNiArOTEyLDEwIEBA IGV4dGVybiB2b2lkIEV4ZWNFdmFsTWVyZ2VTdXBwb3J0RnVuYyhFeHByU3RhdGUgKnN0YXRlLCBF eHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRl cm4gdm9pZCBFeGVjRXZhbFN1YlBsYW4oRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpv cCwKIAkJCQkJCQlFeHByQ29udGV4dCAqZWNvbnRleHQpOworZXh0ZXJuIHZvaWQgRXhlY0V2YWxS UFJOYXZTZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKKwkJCQkJCQkgIEV4 cHJDb250ZXh0ICplY29udGV4dCk7CitleHRlcm4gdm9pZCBFeGVjRXZhbFJQUk5hdlJlc3RvcmUo RXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKKwkJCQkJCQkJICBFeHByQ29udGV4 dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxXaG9sZVJvd1ZhcihFeHByU3RhdGUg KnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCQlFeHByQ29udGV4dCAqZWNvbnRleHQp OwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxTeXNWYXIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxT dGVwICpvcCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cu aCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaAppbmRleCBhZGE0YTFjNDU4 Yy4uZjZmNjY0NTEzMWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVXaW5k b3dBZ2cuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlV2luZG93QWdnLmgKQEAgLTIw LDQgKzIwLDcgQEAgZXh0ZXJuIFdpbmRvd0FnZ1N0YXRlICpFeGVjSW5pdFdpbmRvd0FnZyhXaW5k b3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWYKIGV4dGVybiB2b2lkIEV4ZWNFbmRX aW5kb3dBZ2coV2luZG93QWdnU3RhdGUgKm5vZGUpOwogZXh0ZXJuIHZvaWQgRXhlY1JlU2Nhbldp bmRvd0FnZyhXaW5kb3dBZ2dTdGF0ZSAqbm9kZSk7CiAKKy8qIFJQUiBuYXZpZ2F0aW9uIHN1cHBv cnQgZm9yIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBvcGNvZGVzICovCitleHRlcm4gVHVwbGVUYWJs ZVNsb3QgKkV4ZWNSUFJOYXZHZXRTbG90KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQg cG9zKTsKKwogI2VuZGlmCQkJCQkJCS8qIE5PREVXSU5ET1dBR0dfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9k ZXMuaAppbmRleCBjNjcyZDI5ZjM1Yi4uNzRhNmI2ODIxMzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5o CkBAIC0yNjkxLDEwICsyNjkxLDEyIEBAIHR5cGVkZWYgc3RydWN0IFdpbmRvd0FnZ1N0YXRlCiAJ VHVwbGVUYWJsZVNsb3QgKnRlbXBfc2xvdF8xOwogCVR1cGxlVGFibGVTbG90ICp0ZW1wX3Nsb3Rf MjsKIAotCS8qIHRlbXBvcmFyeSBzbG90cyBmb3IgUlBSICovCi0JVHVwbGVUYWJsZVNsb3QgKnBy ZXZfc2xvdDsJLyogUFJFViByb3cgbmF2aWdhdGlvbiBvcGVyYXRvciAqLwotCVR1cGxlVGFibGVT bG90ICpuZXh0X3Nsb3Q7CS8qIE5FWFQgcm93IG5hdmlnYXRpb24gb3BlcmF0b3IgKi8KLQlUdXBs ZVRhYmxlU2xvdCAqbnVsbF9zbG90OwkvKiBhbGwgTlVMTCBzbG90ICovCisJLyogUlBSIG5hdmln YXRpb24gKi8KKwlzdHJ1Y3QgV2luZG93T2JqZWN0RGF0YSAqbmF2X3dpbm9iajsJLyogd2lub2Jq IGZvciBSUFIgbmF2IGZldGNoICovCisJaW50NjQJCW5hdl9zbG90X3BvczsJLyogcG9zaXRpb24g Y2FjaGVkIGluIG5hdl9zbG90LCBvciAtMSAqLworCVR1cGxlVGFibGVTbG90ICpuYXZfc2xvdDsJ Lyogc2xvdCBmb3IgUFJFVi9ORVhUIHRhcmdldCByb3cgKi8KKwlUdXBsZVRhYmxlU2xvdCAqbmF2 X3NhdmVkX291dGVydHVwbGU7CS8qIHNhdmVkIHNsb3QgZHVyaW5nIG5hdiBzd2FwICovCisJVHVw bGVUYWJsZVNsb3QgKm5hdl9udWxsX3Nsb3Q7CS8qIGFsbCBOVUxMIHNsb3QgKi8KIAogCS8qIFJQ UiBjdXJyZW50IG1hdGNoIHJlc3VsdCAqLwogCWJvb2wJCXJwcl9tYXRjaF92YWxpZDsJLyogdHJ1 ZSBpZiBhIG1hdGNoIHJlc3VsdCBpcyBzZXQgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggZjVi NmI0NTY2NGEuLjk0NzIzYTNiOTA5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmlt bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNjQ4LDYgKzY0 OCwzNyBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dGdW5jUnVuQ29uZGl0aW9uCiAJRXhwcgkgICAq YXJnOwogfSBXaW5kb3dGdW5jUnVuQ29uZGl0aW9uOwogCisvKgorICogUlBSTmF2RXhwcgorICoK KyAqIFJlcHJlc2VudHMgYSBQUkVWKCkgb3IgTkVYVCgpIG5hdmlnYXRpb24gY2FsbCBpbiBhbiBS UFIgREVGSU5FIGNsYXVzZS4KKyAqIEF0IGV4cHJlc3Npb24gY29tcGlsZSB0aW1lIHRoaXMgaXMg dHJhbnNsYXRlZCBpbnRvIEVFT1BfUlBSX05BVl9TRVQgLworICogRUVPUF9SUFJfTkFWX1JFU1RP UkUgb3Bjb2RlcyByYXRoZXIgdGhhbiBhIG5vcm1hbCBmdW5jdGlvbiBjYWxsLgorICoKKyAqIGtp bmQ6ICAgICAgIFJQUl9OQVZfUFJFViBvciBSUFJfTkFWX05FWFQKKyAqIGFyZzogICAgICAgIHRo ZSBleHByZXNzaW9uIHRvIGV2YWx1YXRlIGFnYWluc3QgdGhlIHRhcmdldCByb3cKKyAqIG9mZnNl dF9hcmc6IG9wdGlvbmFsIGV4cGxpY2l0IG9mZnNldCBleHByZXNzaW9uICgyLWFyZyBmb3JtKTsg TlVMTCBmb3IKKyAqICAgICAgICAgICAgIHRoZSAxLWFyZyBmb3JtIHdoaWNoIHVzZXMgYW4gaW1w bGljaXQgb2Zmc2V0IG9mIDEKKyAqLwordHlwZWRlZiBlbnVtIFJQUk5hdktpbmQKK3sKKwlSUFJf TkFWX1BSRVYsCisJUlBSX05BVl9ORVhULAorfSBSUFJOYXZLaW5kOworCit0eXBlZGVmIHN0cnVj dCBSUFJOYXZFeHByCit7CisJRXhwcgkJeHByOworCVJQUk5hdktpbmQJa2luZDsJCQkvKiBQUkVW IG9yIE5FWFQgKi8KKwlFeHByCSAgICphcmc7CQkJLyogYXJndW1lbnQgZXhwcmVzc2lvbiAqLwor CUV4cHIJICAgKm9mZnNldF9hcmc7CQkvKiBvZmZzZXQgZXhwcmVzc2lvbiwgb3IgTlVMTCBmb3Ig MS1hcmcgZm9ybSAqLworCU9pZAkJCXJlc3VsdHR5cGU7CQkvKiByZXN1bHQgdHlwZSAoc2FtZSBh cyBhcmcncyB0eXBlKSAqLworCS8qIE9JRCBvZiBjb2xsYXRpb24gb2YgcmVzdWx0ICovCisJT2lk CQkJcmVzdWx0Y29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiB0 b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLworCVBhcnNlTG9jCWxvY2F0aW9uOwor fSBSUFJOYXZFeHByOworCiAvKgogICogTWVyZ2VTdXBwb3J0RnVuYwogICoKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByLm91dAppbmRleCBlNzIxNzEwNTBjNy4uZDU4NmUxN2UwYTEgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwci5vdXQKQEAgLTEwMTgsNiArMTAxOCw1NTUgQEAgV0lORE9XIHcgQVMgKAog ICA1IHwgICAgIDAuMSB8ICAgICAwCiAoNSByb3dzKQogCistLQorLS0gRXJyb3IgY2FzZXM6IFBS RVYvTkVYVCB1c2FnZSByZXN0cmljdGlvbnMKKy0tCistLSBQUkVWIG91dHNpZGUgREVGSU5FIGNs YXVzZQorU0VMRUNUIHByZXYocHJpY2UpIEZST00gc3RvY2s7CitFUlJPUjogIHByZXYgY2FuIG9u bHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VMRUNUIHByZXYocHJpY2Up IEZST00gc3RvY2s7CisgICAgICAgICAgICAgICBeCistLSBORVhUIG91dHNpZGUgREVGSU5FIGNs YXVzZQorU0VMRUNUIG5leHQocHJpY2UpIEZST00gc3RvY2s7CitFUlJPUjogIG5leHQgY2FuIG9u bHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VMRUNUIG5leHQocHJpY2Up IEZST00gc3RvY2s7CisgICAgICAgICAgICAgICBeCistLSBOZXN0ZWQgUFJFVgorU0VMRUNUIHBy aWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihQ UkVWKHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGJlIG5lc3RlZAor TElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYocHJpY2UpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBOZXN0ZWQgTkVYVAorU0VMRUNUIHByaWNl IEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElO SVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChORVhU KHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGJlIG5lc3RlZAorTElO RSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKE5FWFQocHJpY2UpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCistLSBQUkVWIG5lc3RlZCBpbnNpZGUgTkVYVAorU0VM RUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29t cGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4g TkVYVChQUkVWKHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGJlIG5l c3RlZAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKFBSRVYocHJpY2UpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBQUkVWIG5lc3RlZCBpbnNpZGUg ZXhwcmVzc2lvbiBpbnNpZGUgTkVYVAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3 IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChB KQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChwcmljZSAqIFBSRVYocHJpY2UpKQorKTsK K0VSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkCitMSU5FIDc6ICAgICBERUZJ TkUgQSBBUyBwcmljZSA+IE5FWFQocHJpY2UgKiBQUkVWKHByaWNlKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgorLS0gVHJpcGxlIG5lc3Rpbmc6IGVycm9yIHJlcG9ydGVkIGF0 IG91dGVybW9zdCBQUkVWCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAor ICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAg REVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYoUFJFVihwcmljZSkpKQorKTsKK0VSUk9SOiAg UFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBw cmljZSA+IFBSRVYoUFJFVihQUkVWKHByaWNlKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KKy0tIE5vIGNvbHVtbiByZWZlcmVuY2UgaW4gUFJFVi9ORVhUIGFyZ3VtZW50Cist LSBQUkVWKDEpOiBjb25zdGFudCBvbmx5LCBubyBjb2x1bW4gcmVmZXJlbmNlCitTRUxFQ1QgcHJp Y2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55Cisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg SU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVigxKSA+IDAKKyk7 CitFUlJPUjogIGFyZ3VtZW50IG9mIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uIG11 c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1uIHJlZmVyZW5jZQorTElORSA3OiAgICAgREVG SU5FIEEgQVMgUFJFVigxKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIE5FWFQo MSArIDIpOiBjb25zdGFudCBleHByZXNzaW9uLCBubyBjb2x1bW4gcmVmZXJlbmNlCitTRUxFQ1Qg cHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55 CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgTkVYVCgxICsgMikg PiAwCispOworRVJST1I6ICBhcmd1bWVudCBvZiByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9wZXJh dGlvbiBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZlcmVuY2UKK0xJTkUgNzog ICAgIERFRklORSBBIEFTIE5FWFQoMSArIDIpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAg XgorLS0gMi1hcmcgZm9ybTogUFJFVigxLCAxKTogY29uc3RhbnQgZXhwcmVzc2lvbiBhcyBmaXJz dCBhcmcKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElU SU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBB UyBQUkVWKDEsIDEpID4gMAorKTsKK0VSUk9SOiAgYXJndW1lbnQgb2Ygcm93IHBhdHRlcm4gbmF2 aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBjb2x1bW4gcmVmZXJl bmNlCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKDEsIDEpID4gMAorICAgICAgICAgICAg ICAgICAgICAgICAgXgorLS0gTm9uLWNvbnN0YW50IG9mZnNldDogY29sdW1uIHJlZmVyZW5jZSBh cyBvZmZzZXQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFS VElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUg QSBBUyBQUkVWKHByaWNlLCBwcmljZSkgPiAwCispOworRVJST1I6ICBQUkVWL05FWFQgb2Zmc2V0 IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJF VihwcmljZSwgcHJpY2UpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gTm9uLWNv bnN0YW50IG9mZnNldDogdm9sYXRpbGUgZnVuY3Rpb24gYXMgb2Zmc2V0CitTRUxFQ1QgcHJpY2Ug RlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5J VElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgcmFuZG9t KCk6OmludCkgPiAwCispOworRVJST1I6ICBQUkVWL05FWFQgb2Zmc2V0IG11c3QgYmUgYSBydW4t dGltZSBjb25zdGFudAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgcmFuZG9t KCk6OmludCkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBOb24tY29uc3RhbnQg b2Zmc2V0OiBzdWJxdWVyeSBhcyBvZmZzZXQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5E T1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVS TiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCAoU0VMRUNUIDEpKSA+IDAKKyk7CitF UlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGSU5FIGV4cHJlc3Npb24KK0xJTkUgNzog ICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIChTRUxFQ1QgMSkpID4gMAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRmlyc3QgYXJnOiBzdWJxdWVyeSAoY2F1Z2h0 IGJ5IERFRklORS1sZXZlbCBzdWJxdWVyeSByZXN0cmljdGlvbikKK1NFTEVDVCBwcmljZSBGUk9N IHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFM CisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlICsgKFNFTEVDVCAx KSkgPiAwCispOworRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRklORSBleHByZXNz aW9uCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlICsgKFNFTEVDVCAxKSkgPiAw CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRmlyc3QgYXJnOiB2 b2xhdGlsZSBmdW5jdGlvbiBpcyBhbGxvd2VkIChldmFsdWF0ZWQgb24gdGFyZ2V0IHJvdykKK1NF TEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9W RVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3Rv Y2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0 ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UgKyByYW5kb20oKSAq IDApID49IDAKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1 ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAy MyB8ICAgMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8 IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgMjAwIHwgICAgICAgIDEzMCB8ICAgICA5Cisg Y29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAg OTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDct MjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwg IDIwMDAgfCAgICAgICAgMjAwMCB8ICAgICAgIDEzMDAgfCAgICAgOQorIGNvbXBhbnkyIHwgMDct MDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOC0yMDIz IHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisoMjAgcm93cykKKworLS0KKy0tIDItYXJnIFBSRVYvTkVYVDogZnVuY3Rpb25hbCB0 ZXN0cworLS0KKy0tIFBSRVYocHJpY2UsIDIpOiBtYXRjaCByb3dzIHdoZXJlIGN1cnJlbnQgcHJp Y2UgPiBwcmljZSAyIHJvd3MgYmFjaworLS0gc3RvY2s6IDEwMCwgOTAsIDgwLCA5NSwgMTEwCist LSBQYXR0ZXJuIChBIEIrKTogQT1hbnksIEIgd2hlcmUgcHJpY2UgPiBQUkVWKHByaWNlLCAyKQor LS0gQXQgcG9zIDIgKDgwKTogQSBtYXRjaGVzLiBwb3MgMyAoOTUpOiA5NSA+IFBSRVYoOTUsMik9 OTAgVFJVRS4KKy0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgNCAoMTEwKTogMTEw ID4gUFJFVigxMTAsMik9ODAgVFJVRS4gTWF0Y2ghCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHBy aWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2Up IE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAg UEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAg IERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgcHJpY2UgPiBQUkVWKHBy aWNlLCAyKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGZpcnN0X3ZhbHVl IHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIz IHwgICAxMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwg MDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAyMDAgfCAgICAgICAgMTUwIHwgICAgIDIKKyBj b21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5 MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNy0y MDIzIHwgICAxMTAgfCAgICAgICAgIDExMCB8ICAgICAgICAxMjAgfCAgICAgMworIGNvbXBhbnkx IHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAg MjAwMCB8ICAgICAgICAyMDAwIHwgICAgICAgMTUwMCB8ICAgICAyCisgY29tcGFueTIgfCAwNy0w My0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwg ICAgICAgIDExMDAgfCAgICAgICAxMjAwIHwgICAgIDMKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMg fCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKygyMCByb3dzKQorCistLSBORVhUKHByaWNlLCAyKTogbWF0Y2ggcm93cyB3aGVyZSBj dXJyZW50IHByaWNlID4gcHJpY2UgMiByb3dzIGFoZWFkCistLSBwb3MgMCAoMTAwKTogTkVYVCgx MDAsMik9ODAsIDEwMD44MCBUUlVFLiBwb3MgMSAoOTApOiBORVhUKDkwLDIpPTk1LCA5MD45NSBG QUxTRS4gTWF0Y2ggZW5kcy4KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAg Zmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkg Y29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHBy aWNlID4gTkVYVChwcmljZSwgMikKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2Ug fCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIGNvbXBhbnkx IHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgMjAwIHwgICAgICAgIDIw MCB8ICAgICAxCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAg ICAgICAxNDAgfCAgICAgICAgMTUwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAg IDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0w Ni0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMg fCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgMjAwMCB8ICAgICAgIDIwMDAgfCAgICAgMQorIGNv bXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAxNDAwIHwgICAg ICAgMTUwMCB8ICAgICAyCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIw MjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0gRXhwcmVzc2lvbnMgaW5zaWRlIFBS RVYvTkVYVCBhcmc6IGV4cHIgaXMgZXZhbHVhdGVkIG9uIHRhcmdldCByb3cKKy0tIFBSRVYocHJp Y2UgLSA1MCwgMSk6IGZldGNoZXMgKHByaWNlIC0gNTApIGZyb20gMSByb3cgYmFjaworU0VMRUNU IGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKHByaWNlIC0gNTAsIDEp CispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0 X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEw MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0y MDIzIHwgICAyMDAgfCAgICAgICAgIDIwMCB8ICAgICAgICAyMDAgfCAgICAgMQorIGNvbXBhbnkx IHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgMTQwIHwgICAgICAgIDE1 MCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAg IDExMCB8ICAgICAgICAgMTEwIHwgICAgICAgIDEzMCB8ICAgICA0CisgY29tcGFueTEgfCAwNy0w OC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwg ICAgICAgIDIwMDAgfCAgICAgICAyMDAwIHwgICAgIDEKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMg fCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgIDE1MDAgfCAgICAgICAxNTAwIHwg ICAgIDEKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAg MTEwMCB8ICAgICAgIDEzMDAgfCAgICAgMgorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIw MjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgMTMwMCB8ICAgICAgIDEzMDAgfCAgICAgMQor KDIwIHJvd3MpCisKKy0tIE5FWFQocHJpY2UgKiAyLCAxKTogZmV0Y2hlcyAocHJpY2UgKiAyKSBm cm9tIDEgcm93IGFoZWFkCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZp cnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQo KikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNv bXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmlj ZSA8IE5FWFQocHJpY2UgKiAyLCAxKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmlj ZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgY29tcGFu eTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgIDEwMCB8ICAgICAgICAxMjAgfCAgICAg OQorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8 ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAy MyB8ICAgIDUwIHwgICAgICAgICAgNTAgfCAgICAgICAxNDAwIHwgICAgIDQKKyBjb21wYW55MiB8 IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAg NjAgfCAgICAgICAgICA2MCB8ICAgICAgIDEyMDAgfCAgICAgNAorIGNvbXBhbnkyIHwgMDctMDct MjAyMyB8ICAxMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCistLSBMYXJnZSBvZmZzZXQ6IFBSRVYo dmFsLCA5OTkpIG9uIDEwMDAtcm93IHNlcmllcyBtYXRjaGVzIG9ubHkgbGFzdCByb3cKKy0tIE5F WFQodmFsLCA5OTkpIG1hdGNoZXMgb25seSBmaXJzdCByb3cKK1NFTEVDVCB2YWwsIGZpcnN0X3Zh bHVlKHZhbCkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcK K0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHQodmFsKQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodmFsLCA5OTkpID0gMQorKQorT1JE RVIgQlkgdmFsIERFU0MgTElNSVQgMzsKKyB2YWwgIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVl IHwgY291bnQgCistLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIDEw MDAgfCAgICAgICAgMTAwMCB8ICAgICAgIDEwMDAgfCAgICAgMQorICA5OTkgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorICA5OTggfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorKDMgcm93cykKKworU0VMRUNUIHZhbCwgZmlyc3RfdmFsdWUodmFsKSBPVkVSIHcs IGxhc3RfdmFsdWUodmFsKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwMCkgQVMgdCh2YWwpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgTkVYVCh2YWwsIDk5OSkgPSAxMDAwCispCitMSU1JVCAzOworIHZhbCB8 IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLQorICAgMSB8ICAgICAgICAgICAxIHwgICAgICAgICAgMSB8ICAg ICAxCisgICAyIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyAgIDMgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDMgcm93cykKKworLS0gUFJFVihwcmljZSwg MCk6IG9mZnNldCAwIG1lYW5zIGN1cnJlbnQgcm93LCBhbHdheXMgZXF1YWwgdG8gcHJpY2UKKy0t IEErIG1hdGNoZXMgZW50aXJlIHBhcnRpdGlvbiBhcyBvbmUgZ3JvdXA7IGNvdW50ID0gcGFydGl0 aW9uIHNpemUKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFs dWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVS IHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBP UkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYocHJpY2Us IDApID0gcHJpY2UKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92 YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEt MjAyMyB8ICAgMTAwIHwgICAgICAgICAxMDAgfCAgICAgICAgMTMwIHwgICAgMTAKKyBjb21wYW55 MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwg ICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDct MDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8 ICAgICAgICAgIDUwIHwgICAgICAgMTMwMCB8ICAgIDEwCisgY29tcGFueTIgfCAwNy0wMi0yMDIz IHwgIDIwMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEw MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOC0y MDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnky IHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisoMjAgcm93cykKKworLS0gMi1hcmcgUFJFVi9ORVhUIG91dHNpZGUgREVGSU5F IGNsYXVzZQorU0VMRUNUIHByZXYocHJpY2UsIDIpIEZST00gc3RvY2s7CitFUlJPUjogIHByZXYg Y2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VMRUNUIHByZXYo cHJpY2UsIDIpIEZST00gc3RvY2s7CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgbmV4dChwcmlj ZSwgMikgRlJPTSBzdG9jazsKK0VSUk9SOiAgbmV4dCBjYW4gb25seSBiZSB1c2VkIGluIGEgREVG SU5FIGNsYXVzZQorTElORSAxOiBTRUxFQ1QgbmV4dChwcmljZSwgMikgRlJPTSBzdG9jazsKKyAg ICAgICAgICAgICAgIF4KKy0tIDItYXJnIFBSRVYvTkVYVDogbmVnYXRpdmUgb2Zmc2V0CitTRUxF Q1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9N IHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkg dGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCAtMSkgSVMg Tk9UIE5VTEwKKyk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRp dmUKKy0tIDItYXJnIFBSRVYvTkVYVDogTlVMTCBvZmZzZXQgKHR5cGVkKQorU0VMRUNUIGNvbXBh bnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdworRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgTlVMTDo6aW50OCkgSVMg Tk9UIE5VTEwKKyk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbnVsbAor LS0gMi1hcmcgUFJFVi9ORVhUOiBOVUxMIG9mZnNldCAodW50eXBlZCkKK1NFTEVDVCBjb21wYW55 LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJ TkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIE5VTEwpIElTIE5PVCBOVUxM CispOworRVJST1I6ICBQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKKy0tIDItYXJn IFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSBuZWdhdGl2ZSBhbmQgTlVMTAorUFJFUEFSRSB0ZXN0 X3ByZXZfb2Zmc2V0KGludDgpIEFTCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJz dF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFS VElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJ TkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQorKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29m ZnNldCgtMSk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUK K0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKK0VSUk9SOiAgUFJFVi9ORVhUIG9mZnNl dCBtdXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRFIHRlc3RfcHJldl9vZmZzZXQ7CistLSAyLWFy ZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgd2l0aCBleHByZXNzaW9uICgwICsgJDEpCitQUkVQ QVJFIHRlc3RfcHJldl9vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJp Y2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgK KyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQor ICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSwgMCArICQxKQorKTsKK0VYRUNVVEUg dGVzdF9wcmV2X29mZnNldCgtMSk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3Qg YmUgbmVnYXRpdmUKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKK0VSUk9SOiAgUFJF Vi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRFIHRlc3RfcHJldl9vZmZz ZXQ7CistLSAyLWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBpbiBzYW1lIERF RklORSBjbGF1c2UKKy0tIEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJhY2sgYW5kIDItYmFjayB2 YWx1ZXMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUo cHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcK K0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRF UiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBwcmlj ZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmljZSA+IFBSRVYocHJpY2UsIDIpCispOworIGNvbXBh bnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291 bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAy MyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8 IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAg ICAgMTEwIHwgICAgICAgIDEzMCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAx MzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDkt MjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwg IDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDct MDUtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAg IDEzMDAgfCAgICAgMgorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIz IHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisK Ky0tIDItYXJnOiBQUkVWIGFuZCBORVhUIHdpdGggZXhwbGljaXQgb2Zmc2V0cyBpbiBzYW1lIERF RklORSBjbGF1c2UKKy0tIEE6IHByaWNlIGV4Y2VlZHMgMS1iYWNrIGFuZCBpcyBiZWxvdyAxLWFo ZWFkIChhc2NlbmRpbmcgaW50ZXJpb3IgcG9pbnQpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHBy aWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2Up IE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAg UEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBS RVYocHJpY2UsIDEpIEFORCBwcmljZSA8IE5FWFQocHJpY2UsIDEpCispOworIGNvbXBhbnkgIHwg ICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCist LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAg MTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0 LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEw IHwgICAgICAgIDExMCB8ICAgICAxCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8 ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAy MyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDExMDAg fCAgICAgMQorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEz MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKIC0tCiAt LSBTS0lQIFRPIC8gQmFja3RyYWNraW5nIC8gRnJhbWUgYm91bmRhcnkKIC0tCkBAIC0xNDc5LDcg KzIwMjgsNyBAQCBjb3VudCgqKSBPVkVSIHcKICgxNCByb3dzKQogCiAtLSBSZVNjYW4gdGVzdDog TEFURVJBTCBqb2luIGZvcmNlcyBXaW5kb3dBZ2cgcmVzY2FuIHdpdGggUlBSCi0tLSBUZXN0cyBF eGVjUmVTY2FuV2luZG93QWdnIGNsZWFyaW5nIHByZXZfc2xvdC9uZXh0X3Nsb3QKKy0tIFRlc3Rz IEV4ZWNSZVNjYW5XaW5kb3dBZ2cgY2xlYXJpbmcgbmF2X3Nsb3QKIFNFTEVDVCBnLngsIHN1Yi4q CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBnKHgpLAogTEFURVJBTCAoCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IDY1MjYzNjVkZDZhLi4zN2FhODFlYmRlYSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKQEAgLTIyNzMsNyArMjI3Myw3 IEBAIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9xdW90ZWQnOjpyZWdjbGFzcyk7 CiAgICBQQVRURVJOICgiU3RhcnQiICJVcCIrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKICAgIERFRklORSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgIlN0YXJ0 IiBBUyB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCi0gICAiVXAiIEFTICh2YWwgPiBwcmV2KHZhbCkpICk7CisgICAiVXAiIEFT ICh2YWwgPiBQUkVWKHZhbCkpICk7CiAoMSByb3cpCiAKIC0tIE1hdGVyaWFsaXplZCB2aWV3IChp ZiBzdXBwb3J0ZWQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9l eHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0Cmlu ZGV4IGE2OGVjNjFlMTBmLi5kYzMwNzVlNmJkMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTM4NDcsNiArMzg0Nyw4NiBAQCBXSU5ET1cgdyBBUyAoCiAg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAu MDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKKy0tIFVzaW5nIDEtYXJnIFBSRVYgKGltcGxpY2l0IG9m ZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9wcmV2MSBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQor ICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgdiA+IFBSRVYodikK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9uYXZfcHJldjEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKyAgICAgICAgICBsaW5lICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgYispIAorICAgREVGSU5FCisgICBi IEFTICh2ID4gUFJFVih2KSkgKTsKKygzIHJvd3MpCisKKy0tIFVzaW5nIDEtYXJnIE5FWFQgKGlt cGxpY2l0IG9mZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9uZXh0MSBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgdiA8 IE5FWFQodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9uYXZfbmV4dDEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKyAgICAgICAgICBsaW5lICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgYispIAorICAgREVG SU5FCisgICBiIEFTICh2IDwgTkVYVCh2KSkgKTsKKygzIHJvd3MpCisKKy0tIFVzaW5nIDItYXJn IFBSRVYgKGV4cGxpY2l0IG9mZnNldCkKK0NSRUFURSBWSUVXIHJwcl9ldl9uYXZfcHJldjIgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBUUlVFLAorICAgICAgICBC IEFTIHYgPiBQUkVWKHYsIDIpCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbmF2X3ByZXYyJyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8TkVYVCc7CisgICAgICAgICAgICAg ICAgIGxpbmUgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgYispIAorICAgREVGSU5FCisgICBiIEFTICh2ID4gUFJF Vih2LCAoMik6OmJpZ2ludCkpICk7CisoMyByb3dzKQorCistLSBVc2luZyAyLWFyZyBORVhUIChl eHBsaWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X25leHQyIEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyB2IDwg TkVYVCh2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X25hdl9uZXh0MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworICAgICAgICAgICAgICAgICBsaW5l ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICBQQVRURVJOIChhIGIrKSAKKyAgIERFRklORQorICAgYiBBUyAodiA8IE5FWFQodiwgKDIp OjpiaWdpbnQpKSApOworKDMgcm93cykKKwogLS0gVXNpbmcgTlVMTCBjb21wYXJpc29ucwogQ1JF QVRFIFZJRVcgcnByX2V2X2RlZl9udWxsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByLnNxbAppbmRleCA5NTc5NGQ0MDllMS4uNTA0NDc2YTJiMDIgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy LnNxbApAQCAtNDQwLDYgKzQ0MCwzMjYgQEAgV0lORE9XIHcgQVMgKAogICBCIEFTIHZhbCA+IFBS RVYodmFsKSAqIDAuOTkKICk7CiAKKy0tCistLSBFcnJvciBjYXNlczogUFJFVi9ORVhUIHVzYWdl IHJlc3RyaWN0aW9ucworLS0KKworLS0gUFJFViBvdXRzaWRlIERFRklORSBjbGF1c2UKK1NFTEVD VCBwcmV2KHByaWNlKSBGUk9NIHN0b2NrOworCistLSBORVhUIG91dHNpZGUgREVGSU5FIGNsYXVz ZQorU0VMRUNUIG5leHQocHJpY2UpIEZST00gc3RvY2s7CisKKy0tIE5lc3RlZCBQUkVWCitTRUxF Q1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21w YW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQ UkVWKFBSRVYocHJpY2UpKQorKTsKKworLS0gTmVzdGVkIE5FWFQKK1NFTEVDVCBwcmljZSBGUk9N IHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFM CisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IE5FWFQoTkVYVChwcmlj ZSkpCispOworCistLSBQUkVWIG5lc3RlZCBpbnNpZGUgTkVYVAorU0VMRUNUIHByaWNlIEZST00g c3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwK KyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChQUkVWKHByaWNl KSkKKyk7CisKKy0tIFBSRVYgbmVzdGVkIGluc2lkZSBleHByZXNzaW9uIGluc2lkZSBORVhUCitT RUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBj b21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgcHJpY2Ug PiBORVhUKHByaWNlICogUFJFVihwcmljZSkpCispOworCistLSBUcmlwbGUgbmVzdGluZzogZXJy b3IgcmVwb3J0ZWQgYXQgb3V0ZXJtb3N0IFBSRVYKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitX SU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFU VEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihQUkVWKHByaWNlKSkp CispOworCistLSBObyBjb2x1bW4gcmVmZXJlbmNlIGluIFBSRVYvTkVYVCBhcmd1bWVudAorLS0g UFJFVigxKTogY29uc3RhbnQgb25seSwgbm8gY29sdW1uIHJlZmVyZW5jZQorU0VMRUNUIHByaWNl IEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElO SVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFBSRVYoMSkgPiAwCispOwor CistLSBORVhUKDEgKyAyKTogY29uc3RhbnQgZXhwcmVzc2lvbiwgbm8gY29sdW1uIHJlZmVyZW5j ZQorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04g QlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIE5F WFQoMSArIDIpID4gMAorKTsKKworLS0gMi1hcmcgZm9ybTogUFJFVigxLCAxKTogY29uc3RhbnQg ZXhwcmVzc2lvbiBhcyBmaXJzdCBhcmcKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cg dyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAo QSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKDEsIDEpID4gMAorKTsKKworLS0gTm9uLWNvbnN0YW50 IG9mZnNldDogY29sdW1uIHJlZmVyZW5jZSBhcyBvZmZzZXQKK1NFTEVDVCBwcmljZSBGUk9NIHN0 b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisg ICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCBwcmljZSkgPiAwCisp OworCistLSBOb24tY29uc3RhbnQgb2Zmc2V0OiB2b2xhdGlsZSBmdW5jdGlvbiBhcyBvZmZzZXQK K1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZ IGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVW KHByaWNlLCByYW5kb20oKTo6aW50KSA+IDAKKyk7CisKKy0tIE5vbi1jb25zdGFudCBvZmZzZXQ6 IHN1YnF1ZXJ5IGFzIG9mZnNldAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFT ICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQor ICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIChTRUxFQ1QgMSkpID4gMAorKTsKKworLS0gRmly c3QgYXJnOiBzdWJxdWVyeSAoY2F1Z2h0IGJ5IERFRklORS1sZXZlbCBzdWJxdWVyeSByZXN0cmlj dGlvbikKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElU SU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBB UyBQUkVWKHByaWNlICsgKFNFTEVDVCAxKSkgPiAwCispOworCistLSBGaXJzdCBhcmc6IHZvbGF0 aWxlIGZ1bmN0aW9uIGlzIGFsbG93ZWQgKGV2YWx1YXRlZCBvbiB0YXJnZXQgcm93KQorU0VMRUNU IGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSArIHJhbmRvbSgpICogMCkg Pj0gMAorKTsKKworLS0KKy0tIDItYXJnIFBSRVYvTkVYVDogZnVuY3Rpb25hbCB0ZXN0cworLS0K KworLS0gUFJFVihwcmljZSwgMik6IG1hdGNoIHJvd3Mgd2hlcmUgY3VycmVudCBwcmljZSA+IHBy aWNlIDIgcm93cyBiYWNrCistLSBzdG9jazogMTAwLCA5MCwgODAsIDk1LCAxMTAKKy0tIFBhdHRl cm4gKEEgQispOiBBPWFueSwgQiB3aGVyZSBwcmljZSA+IFBSRVYocHJpY2UsIDIpCistLSBBdCBw b3MgMiAoODApOiBBIG1hdGNoZXMuIHBvcyAzICg5NSk6IDk1ID4gUFJFVig5NSwyKT05MCBUUlVF LgorLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA0ICgxMTApOiAxMTAgPiBQUkVW KDExMCwyKT04MCBUUlVFLiBNYXRjaCEKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisg ICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJ T04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDIp CispOworCistLSBORVhUKHByaWNlLCAyKTogbWF0Y2ggcm93cyB3aGVyZSBjdXJyZW50IHByaWNl ID4gcHJpY2UgMiByb3dzIGFoZWFkCistLSBwb3MgMCAoMTAwKTogTkVYVCgxMDAsMik9ODAsIDEw MD44MCBUUlVFLiBwb3MgMSAoOTApOiBORVhUKDkwLDIpPTk1LCA5MD45NSBGQUxTRS4gTWF0Y2gg ZW5kcy4KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUo cHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcK K0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRF UiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChw cmljZSwgMikKKyk7CisKKy0tIEV4cHJlc3Npb25zIGluc2lkZSBQUkVWL05FWFQgYXJnOiBleHBy IGlzIGV2YWx1YXRlZCBvbiB0YXJnZXQgcm93CistLSBQUkVWKHByaWNlIC0gNTAsIDEpOiBmZXRj aGVzIChwcmljZSAtIDUwKSBmcm9tIDEgcm93IGJhY2sKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwg cHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAg ICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSAtIDUwLCAxKQorKTsKKworLS0gTkVYVChw cmljZSAqIDIsIDEpOiBmZXRjaGVzIChwcmljZSAqIDIpIGZyb20gMSByb3cgYWhlYWQKK1NFTEVD VCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIg dywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sK K1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHByaWNlIDwgTkVYVChwcmljZSAqIDIsIDEp CispOworCistLSBMYXJnZSBvZmZzZXQ6IFBSRVYodmFsLCA5OTkpIG9uIDEwMDAtcm93IHNlcmll cyBtYXRjaGVzIG9ubHkgbGFzdCByb3cKKy0tIE5FWFQodmFsLCA5OTkpIG1hdGNoZXMgb25seSBm aXJzdCByb3cKK1NFTEVDVCB2YWwsIGZpcnN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBsYXN0X3ZhbHVl KHZhbCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEw MDApIEFTIHQodmFsKQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIFBSRVYodmFsLCA5OTkpID0gMQorKQorT1JERVIgQlkgdmFsIERFU0MgTElNSVQgMzsKKwor U0VMRUNUIHZhbCwgZmlyc3RfdmFsdWUodmFsKSBPVkVSIHcsIGxhc3RfdmFsdWUodmFsKSBPVkVS IHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgdCh2 YWwpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVCh2 YWwsIDk5OSkgPSAxMDAwCispCitMSU1JVCAzOworCistLSBQUkVWKHByaWNlLCAwKTogb2Zmc2V0 IDAgbWVhbnMgY3VycmVudCByb3csIGFsd2F5cyBlcXVhbCB0byBwcmljZQorLS0gQSsgbWF0Y2hl cyBlbnRpcmUgcGFydGl0aW9uIGFzIG9uZSBncm91cDsgY291bnQgPSBwYXJ0aXRpb24gc2l6ZQor U0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkg T1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBz dG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRk YXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgMCkgPSBwcmlj ZQorKTsKKworLS0gMi1hcmcgUFJFVi9ORVhUIG91dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNU IHByZXYocHJpY2UsIDIpIEZST00gc3RvY2s7CitTRUxFQ1QgbmV4dChwcmljZSwgMikgRlJPTSBz dG9jazsKKworLS0gMi1hcmcgUFJFVi9ORVhUOiBuZWdhdGl2ZSBvZmZzZXQKK1NFTEVDVCBjb21w YW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sK K1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIC0xKSBJUyBOT1QgTlVM TAorKTsKKworLS0gMi1hcmcgUFJFVi9ORVhUOiBOVUxMIG9mZnNldCAodHlwZWQpCitTRUxFQ1Qg Y29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0 b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRh dGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCBOVUxMOjppbnQ4 KSBJUyBOT1QgTlVMTAorKTsKKworLS0gMi1hcmcgUFJFVi9ORVhUOiBOVUxMIG9mZnNldCAodW50 eXBlZCkKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBP VkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFu eSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYocHJp Y2UsIE5VTEwpIElTIE5PVCBOVUxMCispOworCistLSAyLWFyZyBQUkVWL05FWFQ6IGhvc3QgdmFy aWFibGUgbmVnYXRpdmUgYW5kIE5VTEwKK1BSRVBBUkUgdGVzdF9wcmV2X29mZnNldChpbnQ4KSBB UworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIg dworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9S REVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVW KHByaWNlLCAkMSkKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoLTEpOworRVhFQ1VURSB0 ZXN0X3ByZXZfb2Zmc2V0KE5VTEwpOworREVBTExPQ0FURSB0ZXN0X3ByZXZfb2Zmc2V0OworCist LSAyLWFyZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgd2l0aCBleHByZXNzaW9uICgwICsgJDEp CitQUkVQQVJFIHRlc3RfcHJldl9vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb21wYW55LCB0ZGF0 ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3 IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEErKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSwgMCArICQxKQorKTsKK0VY RUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoTlVM TCk7CitERUFMTE9DQVRFIHRlc3RfcHJldl9vZmZzZXQ7CisKKy0tIDItYXJnOiB0d28gUFJFViB3 aXRoIGRpZmZlcmVudCBvZmZzZXRzIGluIHNhbWUgREVGSU5FIGNsYXVzZQorLS0gQjogcHJpY2Ug ZXhjZWVkcyBib3RoIDEtYmFjayBhbmQgMi1iYWNrIHZhbHVlcworU0VMRUNUIGNvbXBhbnksIHRk YXRlLCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVl KHByaWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMg KAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAg ICAgQSBBUyBUUlVFLAorICAgICAgICBCIEFTIHByaWNlID4gUFJFVihwcmljZSwgMSkgQU5EIHBy aWNlID4gUFJFVihwcmljZSwgMikKKyk7CisKKy0tIDItYXJnOiBQUkVWIGFuZCBORVhUIHdpdGgg ZXhwbGljaXQgb2Zmc2V0cyBpbiBzYW1lIERFRklORSBjbGF1c2UKKy0tIEE6IHByaWNlIGV4Y2Vl ZHMgMS1iYWNrIGFuZCBpcyBiZWxvdyAxLWFoZWFkIChhc2NlbmRpbmcgaW50ZXJpb3IgcG9pbnQp CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNl KSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9N IHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkg dGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmljZSA8IE5FWFQo cHJpY2UsIDEpCispOworCiAtLQogLS0gU0tJUCBUTyAvIEJhY2t0cmFja2luZyAvIEZyYW1lIGJv dW5kYXJ5CiAtLQpAQCAtNjcxLDcgKzk5MSw3IEBAIGNvdW50KCopIE9WRVIgdwogKTsKIAogLS0g UmVTY2FuIHRlc3Q6IExBVEVSQUwgam9pbiBmb3JjZXMgV2luZG93QWdnIHJlc2NhbiB3aXRoIFJQ UgotLS0gVGVzdHMgRXhlY1JlU2NhbldpbmRvd0FnZyBjbGVhcmluZyBwcmV2X3Nsb3QvbmV4dF9z bG90CistLSBUZXN0cyBFeGVjUmVTY2FuV2luZG93QWdnIGNsZWFyaW5nIG5hdl9zbG90CiBTRUxF Q1QgZy54LCBzdWIuKgogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMikgZyh4KSwKIExBVEVSQUwg KApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCmluZGV4IDcwM2VjZDNiMjNiLi5lMzM5 ZWRkN2U5MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbApAQCAtMjIxNCw2ICsy MjE0LDYyIEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgRCBBUyB2IDwgUFJFVih2KQogKTsnKTsK IAorLS0gVXNpbmcgMS1hcmcgUFJFViAoaW1wbGljaXQgb2Zmc2V0IDEpCitDUkVBVEUgVklFVyBy cHJfZXZfbmF2X3ByZXYxIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgVFJVRSwKKyAgICAgICAgQiBBUyB2ID4gUFJFVih2KQorKTsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X25hdl9wcmV2MScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQn OworCistLSBVc2luZyAxLWFyZyBORVhUIChpbXBsaWNpdCBvZmZzZXQgMSkKK0NSRUFURSBWSUVX IHJwcl9ldl9uYXZfbmV4dDEgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyBUUlVFLAorICAgICAgICBCIEFTIHYgPCBORVhUKHYpCispOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbmF2X25leHQx JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8TkVY VCc7CisKKy0tIFVzaW5nIDItYXJnIFBSRVYgKGV4cGxpY2l0IG9mZnNldCkKK0NSRUFURSBWSUVX IHJwcl9ldl9uYXZfcHJldjIgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyBUUlVFLAorICAgICAgICBCIEFTIHYgPiBQUkVWKHYsIDIpCispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbmF2X3By ZXYyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8 TkVYVCc7CisKKy0tIFVzaW5nIDItYXJnIE5FWFQgKGV4cGxpY2l0IG9mZnNldCkKK0NSRUFURSBW SUVXIHJwcl9ldl9uYXZfbmV4dDIgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAg ICAgQSBBUyBUUlVFLAorICAgICAgICBCIEFTIHYgPCBORVhUKHYsIDIpCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbmF2 X25leHQyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBS RVZ8TkVYVCc7CisKIC0tIFVzaW5nIE5VTEwgY29tcGFyaXNvbnMKIENSRUFURSBWSUVXIHJwcl9l dl9kZWZfbnVsbCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAppbmRleCA2MDkwYzJkODk1MC4uMTZkZTE0MjEzMDIgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC0xODAxLDcgKzE4MDEsNiBAQCBOYW1lZExXTG9ja1RyYW5jaGVSZXF1ZXN0CiBO YW1lZFR1cGxlc3RvcmVTY2FuCiBOYW1lZFR1cGxlc3RvcmVTY2FuU3RhdGUKIE5hbWVzcGFjZUlu Zm8KLU5hdmlnYXRpb25JbmZvCiBOZXN0TG9vcAogTmVzdExvb3BQYXJhbQogTmVzdExvb3BTdGF0 ZQpAQCAtMjQ3OCw2ICsyNDc3LDggQEAgUXVlcnlTb3VyY2UKIFF1ZXVlQmFja2VuZFN0YXR1cwog UXVldWVQb3NpdGlvbgogUXVpdFNpZ25hbFJlYXNvbgorUlBSTmF2RXhwcgorUlBSTmF2S2luZAog UkJUTm9kZQogUkJUT3JkZXJDb250cm9sCiBSQlRyZWUKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0018-JIT-support-for-PREV-NEXT.txt" Content-Disposition: attachment; filename="nocfbot-0018-JIT-support-for-PREV-NEXT.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfnupk17 RnJvbSA0OTU1NTY2OWIwMGExMWVjNmIxMDYwMjZmMDc1YjAzODI1ZjZiYzNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTA6NTQ6MzAgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgSklU IGNvbXBpbGF0aW9uIHN1cHBvcnQgZm9yIFJQUiBQUkVWL05FWFQgbmF2aWdhdGlvbgoKLS0tCiBz cmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYyB8IDcyICsrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgICB8IDMxICsr KysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgICAgICAgIHwgMjcgKysr KysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIv c3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggZDE1OGUzN2U3YjUuLjQ5 MDFiMmE3ZmY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIu YworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMTI3LDYgKzEy Nyw5IEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJTExWTVZhbHVlUmVm IHZfYWdndmFsdWVzOwogCUxMVk1WYWx1ZVJlZiB2X2FnZ251bGxzOwogCisJLyogUlBSIG5hdmln YXRpb246IHdoZW4gdHJ1ZSwgRUVPUF9PVVRFUl9WQVIgcmVsb2FkcyBmcm9tIGVjb250ZXh0ICov CisJYm9vbAkJaGFzX3Jwcl9uYXY7CisKIAlpbnN0cl90aW1lCXN0YXJ0dGltZTsKIAlpbnN0cl90 aW1lCWRlZm9ybV9zdGFydHRpbWU7CiAJaW5zdHJfdGltZQllbmR0aW1lOwpAQCAtMzAwLDE5ICsz MDMsMTYgQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRlICpzdGF0ZSkKIAkgKiBSUFIgbmF2 aWdhdGlvbiBvcGNvZGVzIChQUkVWL05FWFQpIHN3YXAgZWN4dF9vdXRlcnR1cGxlIHRvIGEgZGlm ZmVyZW50CiAJICogcm93IG1pZC1leHByZXNzaW9uLiAgVGhlIEpJVCBjb2RlIGxvYWRzIHZfb3V0 ZXJ2YWx1ZXMgYW5kIHZfb3V0ZXJudWxscwogCSAqIG9uY2UgaW4gdGhlIGVudHJ5IGJsb2NrIGFu ZCByZXVzZXMgdGhlbSBmb3IgYWxsIEVFT1BfT1VURVJfVkFSIHN0ZXBzLgotCSAqIEFmdGVyIGEg c2xvdCBzd2FwLCB0aGVzZSBwb2ludGVycyBiZWNvbWUgc3RhbGUgYmVjYXVzZSB0aGUgbmV3IHNs b3QgaGFzCi0JICogaXRzIG93biB0dHNfdmFsdWVzL3R0c19pc251bGwgYXJyYXlzLiAgRmFsbCBi YWNrIHRvIHRoZSBpbnRlcnByZXRlciBmb3IKLQkgKiB0aGVzZSBleHByZXNzaW9ucy4KKwkgKiBB ZnRlciBhIHNsb3Qgc3dhcCwgdGhlc2UgY2FjaGVkIHBvaW50ZXJzIGJlY29tZSBzdGFsZSBiZWNh dXNlIHRoZSBuZXcKKwkgKiBzbG90IGhhcyBpdHMgb3duIHR0c192YWx1ZXMvdHRzX2lzbnVsbCBh cnJheXMuCiAJICoKLQkgKiBYWFggVG8gSklULWNvbXBpbGUgdGhlc2UgZXhwcmVzc2lvbnMgcHJv cGVybHksIHRoZSBOQVZfU0VUIGFuZAotCSAqIE5BVl9SRVNUT1JFIGhhbmRsZXJzIHdvdWxkIG5l ZWQgdG8gcmVsb2FkIHRoZSB0dHNfdmFsdWVzIGFuZCB0dHNfaXNudWxsCi0JICogcG9pbnRlcnMg ZnJvbSB0aGUgbmV3IHNsb3QuICBIb3dldmVyLCBMTFZNIHVzZXMgU1NBIChTdGF0aWMgU2luZ2xl Ci0JICogQXNzaWdubWVudCkgZm9ybSB3aGVyZSBlYWNoIHZhbHVlIGlzIGRlZmluZWQgZXhhY3Rs eSBvbmNlLiAgV2hlbgotCSAqIGRpZmZlcmVudCBiYXNpYyBibG9ja3MgcHJvZHVjZSBkaWZmZXJl bnQgdmFsdWVzIGZvciB0aGUgc2FtZSBwb2ludGVyLAotCSAqIExMVk0gcmVxdWlyZXMgUEhJIG5v ZGVzIGF0IHRoZSBtZXJnZSBwb2ludCB0byBzZWxlY3QgdGhlIGNvcnJlY3Qgb25lLgotCSAqIFdp dGhvdXQgdGhhdCBwbHVtYmluZywgT1VURVJfVkFSIHN0ZXBzIGFmdGVyIGEgc2xvdCBzd2FwIHdv dWxkIHJlYWQKLQkgKiBmcm9tIHRoZSB3cm9uZyBwb2ludGVyLgorCSAqIFdoZW4gUlBSIG5hdmln YXRpb24gb3Bjb2RlcyBhcmUgcHJlc2VudCwgRUVPUF9PVVRFUl9WQVIgcmVsb2FkcyB0aGUKKwkg KiBzbG90IHBvaW50ZXIgZnJvbSBlY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlIG9uIGV2ZXJ5IGFj Y2VzcyBpbnN0ZWFkIG9mCisJICogdXNpbmcgdGhlIGNhY2hlZCBlbnRyeS1ibG9jayB2YWx1ZXMu ICBUaGlzIGF2b2lkcyB0aGUgU1NBL1BISQorCSAqIGNvbXBsZXhpdHkgd2hpbGUga2VlcGluZyB0 aGUgcmVzdCBvZiB0aGUgZXhwcmVzc2lvbiBKSVQtY29tcGlsZWQuCisJICogRXhwcmVzc2lvbnMg d2l0aG91dCBSUFIgbmF2aWdhdGlvbiB1c2UgdGhlIGNhY2hlZCB2YWx1ZXMgYXMgYmVmb3JlLgog CSAqLworCWhhc19ycHJfbmF2ID0gZmFsc2U7CiAJaWYgKHBhcmVudCAmJiBJc0EocGFyZW50LCBX aW5kb3dBZ2dTdGF0ZSkgJiYKIAkJKChXaW5kb3dBZ2cgKikgcGFyZW50LT5wbGFuKS0+cnBQYXR0 ZXJuICE9IE5VTEwpCiAJewpAQCAtMzIzLDkgKzMyMyw4IEBAIGxsdm1fY29tcGlsZV9leHByKEV4 cHJTdGF0ZSAqc3RhdGUpCiAJCQlpZiAob3Bjb2RlID09IEVFT1BfUlBSX05BVl9TRVQgfHwKIAkJ CQlvcGNvZGUgPT0gRUVPUF9SUFJfTkFWX1JFU1RPUkUpCiAJCQl7Ci0JCQkJTExWTURlbGV0ZUZ1 bmN0aW9uKGV2YWxfZm4pOwotCQkJCUxMVk1EaXNwb3NlQnVpbGRlcihiKTsKLQkJCQlyZXR1cm4g ZmFsc2U7CisJCQkJaGFzX3Jwcl9uYXYgPSB0cnVlOworCQkJCWJyZWFrOwogCQkJfQogCQl9CiAJ fQpAQCAtNDkyLDggKzQ5MSwzNyBAQCBsbHZtX2NvbXBpbGVfZXhwcihFeHByU3RhdGUgKnN0YXRl KQogCQkJCQl9CiAJCQkJCWVsc2UgaWYgKG9wY29kZSA9PSBFRU9QX09VVEVSX1ZBUikKIAkJCQkJ ewotCQkJCQkJdl92YWx1ZXMgPSB2X291dGVydmFsdWVzOwotCQkJCQkJdl9udWxscyA9IHZfb3V0 ZXJudWxsczsKKwkJCQkJCWlmIChoYXNfcnByX25hdikKKwkJCQkJCXsKKwkJCQkJCQkvKgorCQkJ CQkJCSAqIFJQUiBuYXZpZ2F0aW9uIHN3YXBzIGVjeHRfb3V0ZXJ0dXBsZQorCQkJCQkJCSAqIG1p ZC1leHByZXNzaW9uLiAgUmVsb2FkIHNsb3QgcG9pbnRlciBmcm9tCisJCQkJCQkJICogZWNvbnRl eHQgb24gZXZlcnkgYWNjZXNzIHNvIHdlIHJlYWQgZnJvbSB0aGUKKwkJCQkJCQkgKiBjdXJyZW50 IChwb3NzaWJseSBzd2FwcGVkKSBzbG90LgorCQkJCQkJCSAqLworCQkJCQkJCUxMVk1WYWx1ZVJl ZiB2X3RtcHNsb3Q7CisKKwkJCQkJCQl2X3RtcHNsb3QgPSBsX2xvYWRfc3RydWN0X2dlcChiLAor CQkJCQkJCQkJCQkJCQkgIFN0cnVjdEV4cHJDb250ZXh0LAorCQkJCQkJCQkJCQkJCQkgIHZfZWNv bnRleHQsCisJCQkJCQkJCQkJCQkJCSAgRklFTEROT19FWFBSQ09OVEVYVF9PVVRFUlRVUExFLAor CQkJCQkJCQkJCQkJCQkgICJ2X291dGVyc2xvdF9yZWxvYWQiKTsKKwkJCQkJCQl2X3ZhbHVlcyA9 IGxfbG9hZF9zdHJ1Y3RfZ2VwKGIsCisJCQkJCQkJCQkJCQkJCSBTdHJ1Y3RUdXBsZVRhYmxlU2xv dCwKKwkJCQkJCQkJCQkJCQkJIHZfdG1wc2xvdCwKKwkJCQkJCQkJCQkJCQkJIEZJRUxETk9fVFVQ TEVUQUJMRVNMT1RfVkFMVUVTLAorCQkJCQkJCQkJCQkJCQkgInZfb3V0ZXJ2YWx1ZXNfcmVsb2Fk Iik7CisJCQkJCQkJdl9udWxscyA9IGxfbG9hZF9zdHJ1Y3RfZ2VwKGIsCisJCQkJCQkJCQkJCQkJ CVN0cnVjdFR1cGxlVGFibGVTbG90LAorCQkJCQkJCQkJCQkJCQl2X3RtcHNsb3QsCisJCQkJCQkJ CQkJCQkJCUZJRUxETk9fVFVQTEVUQUJMRVNMT1RfSVNOVUxMLAorCQkJCQkJCQkJCQkJCQkidl9v dXRlcm51bGxzX3JlbG9hZCIpOworCQkJCQkJfQorCQkJCQkJZWxzZQorCQkJCQkJeworCQkJCQkJ CXZfdmFsdWVzID0gdl9vdXRlcnZhbHVlczsKKwkJCQkJCQl2X251bGxzID0gdl9vdXRlcm51bGxz OworCQkJCQkJfQogCQkJCQl9CiAJCQkJCWVsc2UgaWYgKG9wY29kZSA9PSBFRU9QX1NDQU5fVkFS KQogCQkJCQl7CkBAIC0yNDY3LDEwICsyNDk1LDE2IEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJT dGF0ZSAqc3RhdGUpCiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgRUVPUF9SUFJfTkFWX1NFVDoKKwkJ CQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxSUFJOYXZTZXQiLAorCQkJCQkJCQl2 X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CisJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3Bu byArIDFdKTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBFRU9QX1JQUl9OQVZfUkVTVE9SRToKLQkJ CQkvKiB1bnJlYWNoYWJsZTogZmlsdGVyZWQgb3V0IGJ5IHRoZSBwcmUtc2NhbiBhYm92ZSAqLwot CQkJCUFzc2VydChmYWxzZSk7Ci0JCQkJcmV0dXJuIGZhbHNlOworCQkJCWJ1aWxkX0V2YWxYRnVu YyhiLCBtb2QsICJFeGVjRXZhbFJQUk5hdlJlc3RvcmUiLAorCQkJCQkJCQl2X3N0YXRlLCBvcCwg dl9lY29udGV4dCk7CisJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKKwkJ CQlicmVhazsKIAogCQkJY2FzZSBFRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkU6CiAJCQljYXNl IEVFT1BfQUdHX0RFU0VSSUFMSVpFOgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHIub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CmluZGV4IGQ1 ODZlMTdlMGExLi5kZTZjZTRmYmE4YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAt MjE1Myw2ICsyMTUzLDM3IEBAIFNFTEVDVCBtYXRjaF9maXJzdCwgbWF0Y2hfbGFzdCwgbWF0Y2hf bGVuIEZST00gcmVzdWx0IFdIRVJFIG1hdGNoX2xlbiA+IDA7CiAgICAgICAgICAgIDAgfCAgICAg IDk5OTk4IHwgICAgIDk5OTk5CiAoMSByb3cpCiAKKy0tIEpJVCBQUkVWL05FWFQgbmF2aWdhdGlv biB0ZXN0OiAxMDBLIHJvd3Mgd2l0aCBQUkVWIGluIERFRklORS4KKy0tIEV4ZXJjaXNlcyBFRU9Q X1JQUl9OQVZfU0VUL1JFU1RPUkUgSklUIGNvZGUgcGF0aHMgKGhhc19ycHJfbmF2IHJlbG9hZCkK Ky0tIGF0IHNjYWxlLiBWLXNoYXBlOiBwcmljZSByaXNlcyB0aGVuIGZhbGxzLCByZXBlYXRlZCBh Y3Jvc3MgcGFydGl0aW9uLgorU0VUIGppdF9hYm92ZV9jb3N0ID0gMDsKK1dJVEggZGF0YSBBUyAo CisgU0VMRUNUIGksIGFicyg1MDAwMCAtIGkpIEFTIHByaWNlCisgRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMTAwMDAwKSBpCispLAorcmVzdWx0IEFTICgKKyBTRUxFQ1QgaSwgcHJpY2UsCisgICAg ICAgIGNvdW50KCopIE9WRVIgdyBBUyBtYXRjaF9sZW4sCisgICAgICAgIGZpcnN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcgQVMgbWF0Y2hfZmlyc3QKKyBGUk9NIGRhdGEKKyBXSU5ET1cgdyBBUyAoCisg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgSU5JVElBTAorICBQQVRURVJOIChET1dOKyBV UCspCisgIERFRklORQorICAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2UpLAorICAgVVAgQVMg cHJpY2UgPiBQUkVWKHByaWNlKQorICkKKykKK1NFTEVDVCBjb3VudCgqKSBBUyBtYXRjaGVkX3Jv d3MsIG1heChtYXRjaF9sZW4pIEFTIGxvbmdlc3RfbWF0Y2gKK0ZST00gcmVzdWx0IFdIRVJFIG1h dGNoX2xlbiA+IDA7CisgbWF0Y2hlZF9yb3dzIHwgbG9uZ2VzdF9tYXRjaCAKKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgMSB8ICAgICAgICAgOTk5OTkKKygxIHJv dykKKworUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CiAtLQogLS0gSUdOT1JFIE5VTExTCiAtLQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwci5zcWwKaW5kZXggNTA0NDc2YTJiMDIuLmIzYmJjODI1NGM0IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw ci5zcWwKQEAgLTEwODQsNiArMTA4NCwzMyBAQCByZXN1bHQgQVMgKAogLS0gU2hvdWxkIG1hdGNo OiBBICgzMzMzMyByb3dzKSArIEIgKDMzMzMzIHJvd3MpICsgQyAoMzMzMzMgcm93cykgPSA5OTk5 OSByb3dzCiBTRUxFQ1QgbWF0Y2hfZmlyc3QsIG1hdGNoX2xhc3QsIG1hdGNoX2xlbiBGUk9NIHJl c3VsdCBXSEVSRSBtYXRjaF9sZW4gPiAwOwogCistLSBKSVQgUFJFVi9ORVhUIG5hdmlnYXRpb24g dGVzdDogMTAwSyByb3dzIHdpdGggUFJFViBpbiBERUZJTkUuCistLSBFeGVyY2lzZXMgRUVPUF9S UFJfTkFWX1NFVC9SRVNUT1JFIEpJVCBjb2RlIHBhdGhzIChoYXNfcnByX25hdiByZWxvYWQpCist LSBhdCBzY2FsZS4gVi1zaGFwZTogcHJpY2UgcmlzZXMgdGhlbiBmYWxscywgcmVwZWF0ZWQgYWNy b3NzIHBhcnRpdGlvbi4KK1NFVCBqaXRfYWJvdmVfY29zdCA9IDA7CitXSVRIIGRhdGEgQVMgKAor IFNFTEVDVCBpLCBhYnMoNTAwMDAgLSBpKSBBUyBwcmljZQorIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDEwMDAwMCkgaQorKSwKK3Jlc3VsdCBBUyAoCisgU0VMRUNUIGksIHByaWNlLAorICAgICAg ICBjb3VudCgqKSBPVkVSIHcgQVMgbWF0Y2hfbGVuLAorICAgICAgICBmaXJzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3IEFTIG1hdGNoX2ZpcnN0CisgRlJPTSBkYXRhCisgV0lORE9XIHcgQVMgKAorICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgIElOSVRJQUwKKyAgUEFUVEVSTiAoRE9XTisgVVAr KQorICBERUZJTkUKKyAgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKSwKKyAgIFVQIEFTIHBy aWNlID4gUFJFVihwcmljZSkKKyApCispCitTRUxFQ1QgY291bnQoKikgQVMgbWF0Y2hlZF9yb3dz LCBtYXgobWF0Y2hfbGVuKSBBUyBsb25nZXN0X21hdGNoCitGUk9NIHJlc3VsdCBXSEVSRSBtYXRj aF9sZW4gPiAwOworUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CisKIC0tCiAtLSBJR05PUkUgTlVMTFMK IC0tCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0019-Add-tuplestore-trim-optimization-for-RPR-PREV.txt" Content-Disposition: attachment; filename="nocfbot-0019-Add-tuplestore-trim-optimization-for-RPR-PREV.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfo3ey18 RnJvbSAwYjcxYzZiOTQ3ZTZiMjc5YmZmMzNkMzRjMmUyNjM4MzNmOWY1NDA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDQgQXByIDIwMjYgMTE6NDk6MzIgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgdHVw bGVzdG9yZSB0cmltIG9wdGltaXphdGlvbiBmb3IgUlBSIFBSRVYgbmF2aWdhdGlvbgoKQWR2YW5j ZSB0aGUgdHVwbGVzdG9yZSBtYXJrIHBvaW50ZXIgYmFzZWQgb24gdGhlIG1heGltdW0gUFJFViBv ZmZzZXQKZm91bmQgaW4gREVGSU5FIGNsYXVzZSBleHByZXNzaW9ucywgYWxsb3dpbmcgdHVwbGVz dG9yZV90cmltKCkgdG8KZnJlZSByb3dzIHRoYXQgUFJFViBjYW4gbm8gbG9uZ2VyIHJlYWNoLgoK VGhlIHBsYW5uZXIgd2Fsa3MgREVGSU5FIGV4cHJlc3Npb25zIHRvIGZpbmQgdGhlIG1heGltdW0g UFJFViBvZmZzZXQuCklmIGFsbCBvZmZzZXRzIGFyZSBjb25zdGFudHMsIG5hdk1heE9mZnNldCBp cyBzZXQgZGlyZWN0bHkuIElmIGFueQpvZmZzZXQgaXMgbm9uLWNvbnN0YW50IChwYXJhbWV0ZXIg b3IgZXhwcmVzc2lvbiksIHRoZSBwbGFubmVyIHNldHMKUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZB TCBhbmQgdGhlIGV4ZWN1dG9yIGV2YWx1YXRlcyBhbGwgUFJFViBvZmZzZXRzCmF0IGluaXQgdGlt ZS4gVGhlIGV4ZWN1dG9yIHRoZW4gYWR2YW5jZXMgdGhlIG1hcmsgdG8KKGN1cnJlbnRwb3MgLSBu YXZNYXhPZmZzZXQpIGVhY2ggcm93LgoKTkVYVCBvZmZzZXRzIGFyZSBpZ25vcmVkIHNpbmNlIHRo ZXkgbG9vayBmb3J3YXJkIGFuZCBkbyBub3QgYWZmZWN0CnRyaW0uIFJQUl9OQVZfT0ZGU0VUX1JF VEFJTl9BTEwgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSBuYXZpZ2F0aW9uCmZ1bmN0aW9ucyAoRklS U1QvTEFTVCkgdGhhdCByZXF1aXJlIHRoZSBlbnRpcmUgcGFydGl0aW9uLgotLS0KIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyAgICB8IDEzNiArKysrKysrKysrKysrKysrKysr KysrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyB8IDEwMSArKysr KysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICB8 ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgfCAgIDkgKysK IHNyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaCAgICAgICAgICAgICB8ICAgOSArKwogNSBmaWxl cyBjaGFuZ2VkLCAyNDYgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDRlNjQzZGY5NGNmLi45Nzg3ZWY3NzU2ZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtMjQ0LDYgKzI0NCwxMCBAQCBzdGF0 aWMgdm9pZCB1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBw b3MpOwogLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBORkEgcm93IGV2YWx1YXRpb24gKi8KIHN0 YXRpYyBib29sIG5mYV9ldmFsdWF0ZV9yb3coV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9z LCBib29sICp2YXJNYXRjaGVkKTsKIAorLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBuYXZpZ2F0 aW9uIG9mZnNldCBldmFsdWF0aW9uICovCitzdGF0aWMgYm9vbCBjb2xsZWN0X3ByZXZfb2Zmc2V0 X3dhbGtlcihOb2RlICpub2RlLCBMaXN0ICoqb2Zmc2V0cyk7CitzdGF0aWMgdm9pZCBldmFsX25h dl9tYXhfb2Zmc2V0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNl KTsKKwogLyoKICAqIE5vdCBudWxsIGluZm8gYml0IGFycmF5IGNvbnNpc3RzIG9mIDItYml0IGl0 ZW1zCiAgKi8KQEAgLTkzNCwxMiArOTM4LDE4IEBAIGV2YWxfd2luZG93YWdncmVnYXRlcyhXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJCWlmIChycHJfaXNfZGVmaW5lZCh3aW5zdGF0ZSkpCiAJ CXsKIAkJCS8qCi0JCQkgKiBJZiBSUFIgaXMgdXNlZCwgaXQgaXMgcG9zc2libGUgUFJFViB3YW50 cyB0byBsb29rIGF0IHRoZQotCQkJICogcHJldmlvdXMgcm93LiAgU28gdGhlIG1hcmsgcG9zIHNo b3VsZCBiZSBmcmFtZWhlYWRwb3MgLSAxCi0JCQkgKiB1bmxlc3MgaXQgaXMgYmVsb3cgMC4KKwkJ CSAqIElmIFJQUiBpcyB1c2VkLCBQUkVWIG1heSBuZWVkIHRvIGxvb2sgYXQgcm93cyBiZWZvcmUg dGhlIGZyYW1lCisJCQkgKiBoZWFkLiAgQWRqdXN0IG1hcmsgYnkgbmF2TWF4T2Zmc2V0IGlmIGtu b3duLCBvdGhlcndpc2UgcmV0YWluCisJCQkgKiBmcm9tIHBvc2l0aW9uIDAuCiAJCQkgKi8KLQkJ CW1hcmtwb3MgLT0gMTsKLQkJCWlmIChtYXJrcG9zIDwgMCkKKwkJCWlmICh3aW5zdGF0ZS0+bmF2 TWF4T2Zmc2V0ID49IDApCisJCQl7CisJCQkJaWYgKG1hcmtwb3MgPiB3aW5zdGF0ZS0+bmF2TWF4 T2Zmc2V0KQorCQkJCQltYXJrcG9zIC09IHdpbnN0YXRlLT5uYXZNYXhPZmZzZXQ7CisJCQkJZWxz ZQorCQkJCQltYXJrcG9zID0gMDsKKwkJCX0KKwkJCWVsc2UKIAkJCQltYXJrcG9zID0gMDsKIAkJ fQogCQlXaW5TZXRNYXJrUG9zaXRpb24oYWdnX3dpbm9iaiwgbWFya3Bvcyk7CkBAIC0xMjY5LDEy ICsxMjc5LDE1IEBAIHByZXBhcmVfdHVwbGVzdG9yZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUp CiAJaWYgKHdpbnN0YXRlLT5uYXZfd2lub2JqKQogCXsKIAkJLyoKLQkJICogQWxsb2NhdGUgYSBt YXJrIHBvaW50ZXIgcGlubmVkIGF0IHBvc2l0aW9uIDAgc28gdGhhdCB0aGUgdHVwbGVzdG9yZQot CQkgKiBuZXZlciB0cnVuY2F0ZXMgcm93cyB0aGF0IGEgUFJFVihleHByLCBOKSBtaWdodCBuZWVk LgorCQkgKiBBbGxvY2F0ZSBtYXJrIGFuZCByZWFkIHBvaW50ZXJzIGZvciBQUkVWL05FWFQgbmF2 aWdhdGlvbi4KKwkJICoKKwkJICogSWYgbmF2TWF4T2Zmc2V0ID49IDAsIHdlIGFkdmFuY2UgdGhl IG1hcmsgdG8gKGN1cnJlbnRwb3MgLQorCQkgKiBuYXZNYXhPZmZzZXQpIGFzIHJvd3MgYXJlIHBy b2Nlc3NlZCwgYWxsb3dpbmcgdHVwbGVzdG9yZV90cmltKCkgdG8KKwkJICogZnJlZSByb3dzIHRo YXQgYXJlIG5vIGxvbmdlciByZWFjaGFibGUuCiAJCSAqCi0JCSAqIFhYWCBUaGlzIHJldGFpbnMg dGhlIGVudGlyZSBwYXJ0aXRpb24gaW4gdGhlIHR1cGxlc3RvcmUuICBJZiB0aGUKLQkJICogREVG SU5FIGNsYXVzZSBvbmx5IHVzZXMgUFJFVi9ORVhUIHdpdGggc21hbGwgY29uc3RhbnQgb2Zmc2V0 cywgd2UKLQkJICogY291bGQgYWR2YW5jZSB0aGUgbWFyayB0byAoY3VycmVudHBvcyAtIG1heF9v ZmZzZXQpIGluc3RlYWQuCisJCSAqIElmIG5hdk1heE9mZnNldCA8IDAgKFJQUl9OQVZfT0ZGU0VU X05FRURTX0VWQUwgb3IKKwkJICogUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCksIHRoZSBtYXJr IHN0YXlzIGF0IDAsIHJldGFpbmluZyB0aGUKKwkJICogZW50aXJlIHBhcnRpdGlvbiBpbiB0aGUg dHVwbGVzdG9yZS4KIAkJICovCiAJCXdpbnN0YXRlLT5uYXZfd2lub2JqLT5tYXJrcHRyID0KIAkJ CXR1cGxlc3RvcmVfYWxsb2NfcmVhZF9wb2ludGVyKHdpbnN0YXRlLT5idWZmZXIsIDApOwpAQCAt MjUxMiw2ICsyNTI1LDI0IEBAIEV4ZWNXaW5kb3dBZ2coUGxhblN0YXRlICpwc3RhdGUpCiAJCWlm ICh3aW5zdGF0ZS0+Z3JvdXB0YWlsX3B0ciA+PSAwKQogCQkJdXBkYXRlX2dyb3VwdGFpbHBvcyh3 aW5zdGF0ZSk7CiAKKwkJLyoKKwkJICogQWR2YW5jZSBSUFIgbmF2aWdhdGlvbiBtYXJrIHBvaW50 ZXIgaWYgcG9zc2libGUsIHNvIHRoYXQKKwkJICogdHVwbGVzdG9yZV90cmltKCkgY2FuIGZyZWUg cm93cyBubyBsb25nZXIgcmVhY2hhYmxlIGJ5IFBSRVYuCisJCSAqLworCQlpZiAod2luc3RhdGUt Pm5hdl93aW5vYmogJiYKKwkJCXdpbnN0YXRlLT5ycFBhdHRlcm4gIT0gTlVMTCAmJgorCQkJd2lu c3RhdGUtPm5hdk1heE9mZnNldCA+PSAwKQorCQl7CisJCQlpbnQ2NAkJbmF2bWFya3BvczsKKwor CQkJaWYgKHdpbnN0YXRlLT5jdXJyZW50cG9zID4gd2luc3RhdGUtPm5hdk1heE9mZnNldCkKKwkJ CQluYXZtYXJrcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3MgLSB3aW5zdGF0ZS0+bmF2TWF4T2Zm c2V0OworCQkJZWxzZQorCQkJCW5hdm1hcmtwb3MgPSAwOworCQkJaWYgKG5hdm1hcmtwb3MgPiB3 aW5zdGF0ZS0+bmF2X3dpbm9iai0+bWFya3BvcykKKwkJCQlXaW5TZXRNYXJrUG9zaXRpb24od2lu c3RhdGUtPm5hdl93aW5vYmosIG5hdm1hcmtwb3MpOworCQl9CisKIAkJLyoKIAkJICogVHJ1bmNh dGUgYW55IG5vLWxvbmdlci1uZWVkZWQgcm93cyBmcm9tIHRoZSB0dXBsZXN0b3JlLgogCQkgKi8K QEAgLTI5NTcsNiArMjk4OCwxMCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUs IEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRlLT5ycFNraXBUbyA9IG5vZGUt PnJwU2tpcFRvOwogCS8qIFNldCB1cCByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBQQVRURVJOIGNs YXVzZSAoY29tcGlsZWQgTkZBKSAqLwogCXdpbnN0YXRlLT5ycFBhdHRlcm4gPSBub2RlLT5ycFBh dHRlcm47CisJLyogU2V0IHVwIG1heCBQUkVWIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0cmltICov CisJd2luc3RhdGUtPm5hdk1heE9mZnNldCA9IG5vZGUtPm5hdk1heE9mZnNldDsKKwlpZiAod2lu c3RhdGUtPm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQorCQlldmFs X25hdl9tYXhfb2Zmc2V0KHdpbnN0YXRlLCBub2RlLT5kZWZpbmVDbGF1c2UpOwogCiAJLyogQ2Fs Y3VsYXRlIE5GQSBzdGF0ZSBzaXplIGFuZCBhbGxvY2F0ZSBjeWNsZSBkZXRlY3Rpb24gYml0bWFw ICovCiAJaWYgKG5vZGUtPnJwUGF0dGVybiAhPSBOVUxMKQpAQCAtMzg2Nyw2ICszOTAyLDg3IEBA IHB1dF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBpbnQgYXJn bm8sIGJvb2wgaXNudWxsKQogCW1icFticG9zXSA9IG1iOwogfQogCisvKgorICogY29sbGVjdF9w cmV2X29mZnNldF93YWxrZXIKKyAqCQlXYWxrIGV4cHJlc3Npb24gdHJlZSB0byBjb2xsZWN0IFBS RVYgb2Zmc2V0X2FyZyBleHByZXNzaW9ucy4KKyAqLworc3RhdGljIGJvb2wKK2NvbGxlY3RfcHJl dl9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIExpc3QgKipvZmZzZXRzKQoreworCWlmIChub2Rl ID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChJc0Eobm9kZSwgUlBSTmF2RXhwcikp CisJeworCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOworCisJCWlmIChu YXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWICYmIG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJ Km9mZnNldHMgPSBsYXBwZW5kKCpvZmZzZXRzLCBuYXYtPm9mZnNldF9hcmcpOworCisJCS8qIERv bid0IHdhbGsgaW50byBSUFJOYXZFeHByIGNoaWxkcmVuICovCisJCXJldHVybiBmYWxzZTsKKwl9 CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBjb2xsZWN0X3ByZXZfb2Zm c2V0X3dhbGtlciwgb2Zmc2V0cyk7Cit9CisKKy8qCisgKiBldmFsX25hdl9tYXhfb2Zmc2V0Cisg KgkJRXZhbHVhdGUgbm9uLWNvbnN0YW50IFBSRVYgb2Zmc2V0cyBhdCBleGVjdXRvciBpbml0IHRp bWUuCisgKgorICogQ2FsbGVkIHdoZW4gdGhlIHBsYW5uZXIgc2V0IG5hdk1heE9mZnNldCB0byBS UFJfTkFWX09GRlNFVF9ORUVEU19FVkFMCisgKiBiZWNhdXNlIHNvbWUgUFJFViBvZmZzZXQgY29u dGFpbnMgYSBwYXJhbWV0ZXIgb3Igbm9uLWZvbGRhYmxlIGV4cHJlc3Npb24uCisgKiBXYWxrcyB0 aGUgb3JpZ2luYWwgZGVmaW5lQ2xhdXNlIGV4cHJlc3Npb24gdHJlZXMsIGNvbXBpbGVzIGFuZCBl dmFsdWF0ZXMKKyAqIGVhY2ggUFJFViBvZmZzZXRfYXJnLCBhbmQgc3RvcmVzIHRoZSBtYXhpbXVt IGluIHdpbnN0YXRlLT5uYXZNYXhPZmZzZXQuCisgKi8KK3N0YXRpYyB2b2lkCitldmFsX25hdl9t YXhfb2Zmc2V0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNlKQor eworCUV4cHJDb250ZXh0ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5wc19FeHByQ29udGV4 dDsKKwlMaXN0CSAgICpvZmZzZXRzID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCWludDY0CQlt YXhPZmZzZXQgPSAwOworCisJLyogQ29sbGVjdCBhbGwgUFJFViBvZmZzZXQgZXhwcmVzc2lvbnMg ZnJvbSBERUZJTkUgY2xhdXNlICovCisJZm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQorCXsKKwkJ VGFyZ2V0RW50cnkgKnRlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CisKKwkJY29sbGVj dF9wcmV2X29mZnNldF93YWxrZXIoKE5vZGUgKikgdGUtPmV4cHIsICZvZmZzZXRzKTsKKwl9CisK KwkvKiBFdmFsdWF0ZSBlYWNoIG9mZnNldCBhbmQgZmluZCBtYXhpbXVtICovCisJZm9yZWFjaChs Yywgb2Zmc2V0cykKKwl7CisJCUV4cHIJICAgKm9mZnNldF9leHByID0gKEV4cHIgKikgbGZpcnN0 KGxjKTsKKwkJRXhwclN0YXRlICAqZXN0YXRlOworCQlEYXR1bQkJdmFsOworCQlib29sCQlpc251 bGw7CisJCWludDY0CQlvZmZzZXQ7CisKKwkJZXN0YXRlID0gRXhlY0luaXRFeHByKG9mZnNldF9l eHByLCAoUGxhblN0YXRlICopIHdpbnN0YXRlKTsKKwkJdmFsID0gRXhlY0V2YWxFeHByU3dpdGNo Q29udGV4dChlc3RhdGUsIGVjb250ZXh0LCAmaXNudWxsKTsKKworCQkvKgorCQkgKiBOVUxMIG9y IG5lZ2F0aXZlIG9mZnNldHMgd2lsbCBjYXVzZSBhIHJ1bnRpbWUgZXJyb3Igd2hlbiBQUkVWIGlz CisJCSAqIGFjdHVhbGx5IGV2YWx1YXRlZC4gIEZvciB0cmltIHB1cnBvc2VzLCB0cmVhdCB0aGVt IGFzIDAuCisJCSAqLworCQlpZiAoaXNudWxsKQorCQkJY29udGludWU7CisKKwkJb2Zmc2V0ID0g RGF0dW1HZXRJbnQ2NCh2YWwpOworCQlpZiAob2Zmc2V0IDwgMCkKKwkJCWNvbnRpbnVlOworCisJ CWlmIChvZmZzZXQgPiBtYXhPZmZzZXQpCisJCQltYXhPZmZzZXQgPSBvZmZzZXQ7CisJfQorCisJ d2luc3RhdGUtPm5hdk1heE9mZnNldCA9IG1heE9mZnNldDsKKworCWxpc3RfZnJlZShvZmZzZXRz KTsKK30KKwogLyoKICAqIHJwcl9pc19kZWZpbmVkCiAgKiByZXR1cm4gdHJ1ZSBpZiBSb3cgcGF0 dGVybiByZWNvZ25pdGlvbiBpcyBkZWZpbmVkLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3Jl YXRlcGxhbi5jCmluZGV4IDlhYzI0Y2MyMjJkLi5lZTJkNTNiNTkyNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpAQCAtMjQ2MSw2ICsyNDYxLDEwNCBAQCBjcmVhdGVf bWlubWF4YWdnX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIE1pbk1heEFnZ1BhdGggKmJlc3RfcGF0 aCkKIAlyZXR1cm4gcGxhbjsKIH0KIAorLyoKKyAqIG5hdl9tYXhfb2Zmc2V0X3dhbGtlcgorICoJ CVdhbGsgZXhwcmVzc2lvbiB0cmVlIHRvIGZpbmQgdGhlIG1heGltdW0gUFJFViBvZmZzZXQuCisg KgorICogT25seSBQUkVWIGlzIHJlbGV2YW50IGZvciB0dXBsZXN0b3JlIHRyaW0gc2luY2UgaXQg bG9va3MgYmFja3dhcmQ7CisgKiBORVhUIGxvb2tzIGZvcndhcmQgYW5kIG5ldmVyIHJlZmVyZW5j ZXMgYWxyZWFkeS10cmltbWVkIHJvd3MuCisgKgorICogUmV0dXJucyB0cnVlICh0byBzdG9wIHdh bGtpbmcpIGlmIGEgbm9uLWNvbnN0YW50IFBSRVYgb2Zmc2V0IGlzIGZvdW5kLAorICogaW4gd2hp Y2ggY2FzZSAqbWF4T2Zmc2V0IGlzIHNldCB0byAtMS4gIE90aGVyd2lzZSBhY2N1bXVsYXRlcyB0 aGUKKyAqIG1heGltdW0gY29uc3RhbnQgb2Zmc2V0IHZhbHVlLgorICovCitzdGF0aWMgYm9vbAor bmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIGludDY0ICptYXhPZmZzZXQpCit7CisJ aWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKElzQShub2RlLCBSUFJO YXZFeHByKSkKKwl7CisJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisK KwkJLyogT25seSBQUkVWIGxvb2tzIGJhY2t3YXJkOyBORVhUIGlzIGlycmVsZXZhbnQgZm9yIHRy aW0gKi8KKwkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVYpCisJCXsKKwkJCWludDY0CQlv ZmZzZXQ7CisKKwkJCWlmIChuYXYtPm9mZnNldF9hcmcgPT0gTlVMTCkKKwkJCXsKKwkJCQkvKiAx LWFyZyBmb3JtOiBpbXBsaWNpdCBvZmZzZXQgb2YgMSAqLworCQkJCW9mZnNldCA9IDE7CisJCQl9 CisJCQllbHNlIGlmIChJc0EobmF2LT5vZmZzZXRfYXJnLCBDb25zdCkpCisJCQl7CisJCQkJQ29u c3QJICAgKmMgPSAoQ29uc3QgKikgbmF2LT5vZmZzZXRfYXJnOworCisJCQkJaWYgKGMtPmNvbnN0 aXNudWxsKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogTlVMTCBvZmZzZXQgY2F1c2VzIGEgcnVu dGltZSBlcnJvciwgc28gdGhpcyBwYXRoIGlzCisJCQkJCSAqIG5ldmVyIGFjdHVhbGx5IHJlYWNo ZWQgZHVyaW5nIGV4ZWN1dGlvbi4gIFVzZSAwIGFzIGEKKwkJCQkJICogc2FmZSBwbGFjZWhvbGRl ciBmb3IgcGxhbm5pbmcgcHVycG9zZXMuCisJCQkJCSAqLworCQkJCQlvZmZzZXQgPSAwOworCQkJ CX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlvZmZzZXQgPSBEYXR1bUdldEludDY0KGMtPmNvbnN0 dmFsdWUpOworCQkJCQlpZiAob2Zmc2V0IDwgMCkKKwkJCQkJCW9mZnNldCA9IDA7IC8qIG5lZ2F0 aXZlIG9mZnNldCBjYXVzZXMgcnVudGltZSBlcnJvciAqLworCQkJCX0KKwkJCX0KKwkJCWVsc2UK KwkJCXsKKwkJCQkvKgorCQkJCSAqIE5vbi1jb25zdGFudCBvZmZzZXQgKFBhcmFtLCBzdGFibGUg ZnVuY3Rpb24sIGV0Yy4pLiBUaGUKKwkJCQkgKiBwYXJzZXIgZ3VhcmFudGVlcyBvZmZzZXQgaXMg YSBydW50aW1lIGNvbnN0YW50LCBzbyBpdCBjYW4KKwkJCQkgKiBiZSBldmFsdWF0ZWQgYXQgZXhl Y3V0b3IgaW5pdCB0aW1lLgorCQkJCSAqLworCQkJCSptYXhPZmZzZXQgPSBSUFJfTkFWX09GRlNF VF9ORUVEU19FVkFMOworCQkJCXJldHVybiB0cnVlOwkvKiBzdG9wIHdhbGtpbmcgKi8KKwkJCX0K KworCQkJaWYgKG9mZnNldCA+ICptYXhPZmZzZXQpCisJCQkJKm1heE9mZnNldCA9IG9mZnNldDsK KwkJfQorCisJCS8qIERvbid0IHdhbGsgaW50byBSUFJOYXZFeHByIGNoaWxkcmVuIC0gb2Zmc2V0 X2FyZyBhbHJlYWR5IGhhbmRsZWQgKi8KKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiBl eHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG5hdl9tYXhfb2Zmc2V0X3dhbGtlciwgbWF4T2Zm c2V0KTsKK30KKworLyoKKyAqIGNvbXB1dGVfbmF2X21heF9vZmZzZXQKKyAqCQlDb21wdXRlIHRo ZSBtYXhpbXVtIFBSRVYgb2Zmc2V0IGZyb20gREVGSU5FIGNsYXVzZSBleHByZXNzaW9ucy4KKyAq CisgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIGNvbnN0YW50IG9mZnNldCBmb3VuZCwgb3IgLTEgaWYg YW55IFBSRVYgb2Zmc2V0CisgKiBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBzdGF0aWNhbGx5LiAgTkVY VCBvZmZzZXRzIGFyZSBpZ25vcmVkIHNpbmNlIHRoZXkKKyAqIGxvb2sgZm9yd2FyZCBhbmQgZG9u J3QgYWZmZWN0IHR1cGxlc3RvcmUgdHJpbS4KKyAqLworc3RhdGljIGludDY0Citjb21wdXRlX25h dl9tYXhfb2Zmc2V0KExpc3QgKmRlZmluZUNsYXVzZSkKK3sKKwlpbnQ2NAkJbWF4T2Zmc2V0ID0g MDsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIGRlZmluZUNsYXVzZSkKKwl7CisJ CVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCisJCWlmIChu YXZfbWF4X29mZnNldF93YWxrZXIoKE5vZGUgKikgdGUtPmV4cHIsICZtYXhPZmZzZXQpKQorCQkJ cmV0dXJuIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUw7CisJfQorCisJcmV0dXJuIG1heE9mZnNl dDsKK30KKwogLyoKICAqIGNyZWF0ZV93aW5kb3dhZ2dfcGxhbgogICoKQEAgLTY2NzgsNiArNjc3 Niw5IEBAIG1ha2Vfd2luZG93YWdnKExpc3QgKnRsaXN0LCBXaW5kb3dDbGF1c2UgKndjLAogCiAJ bm9kZS0+ZGVmaW5lQ2xhdXNlID0gZGVmaW5lQ2xhdXNlOwogCisJLyogQ29tcHV0ZSBtYXggUFJF ViBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbSBvcHRpbWl6YXRpb24gKi8KKwlub2RlLT5uYXZN YXhPZmZzZXQgPSBjb21wdXRlX25hdl9tYXhfb2Zmc2V0KGRlZmluZUNsYXVzZSk7CisKIAlwbGFu LT50YXJnZXRsaXN0ID0gdGxpc3Q7CiAJcGxhbi0+bGVmdHRyZWUgPSBsZWZ0dHJlZTsKIAlwbGFu LT5yaWdodHRyZWUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCA3NGE2YjY4MjEzMi4u ZmY2ZDdkNzBhNjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0yNjkyLDYgKzI2OTIsNyBAQCB0 eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2dTdGF0ZQogCVR1cGxlVGFibGVTbG90ICp0ZW1wX3Nsb3Rf MjsKIAogCS8qIFJQUiBuYXZpZ2F0aW9uICovCisJaW50NjQJCW5hdk1heE9mZnNldDsJLyogbWF4 IFBSRVYgb2Zmc2V0OyBzZWUgUlBSX05BVl9PRkZTRVRfKiAqLwogCXN0cnVjdCBXaW5kb3dPYmpl Y3REYXRhICpuYXZfd2lub2JqOwkvKiB3aW5vYmogZm9yIFJQUiBuYXYgZmV0Y2ggKi8KIAlpbnQ2 NAkJbmF2X3Nsb3RfcG9zOwkvKiBwb3NpdGlvbiBjYWNoZWQgaW4gbmF2X3Nsb3QsIG9yIC0xICov CiAJVHVwbGVUYWJsZVNsb3QgKm5hdl9zbG90OwkvKiBzbG90IGZvciBQUkVWL05FWFQgdGFyZ2V0 IHJvdyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCBjZWFhYjRkOTdiMC4uMjdhMmU3YjQ4Yzcg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xMzg2LDYgKzEzODYsMTUgQEAgdHlwZWRlZiBzdHJ1 Y3QgV2luZG93QWdnCiAJLyogUm93IFBhdHRlcm4gREVGSU5FIGNsYXVzZSAobGlzdCBvZiBUYXJn ZXRFbnRyeSkgKi8KIAlMaXN0CSAgICpkZWZpbmVDbGF1c2U7CiAKKwkvKgorCSAqIE1heGltdW0g UFJFViBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgbWFyayBvcHRpbWl6YXRpb24uID49IDA6IHN0YXRp Y2FsbHkKKwkgKiBkZXRlcm1pbmVkIG1heCBvZmZzZXQgKG1hcmsgPSBjdXJyZW50cG9zIC0gb2Zm c2V0KS4KKwkgKiBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOiBoYXMgbm9uLWNvbnN0YW50IG9m ZnNldDsgZXZhbHVhdGUgYXQKKwkgKiBleGVjdXRvciBpbml0LiAgUlBSX05BVl9PRkZTRVRfUkVU QUlOX0FMTDogbXVzdCByZXRhaW4gZW50aXJlIHBhcnRpdGlvbgorCSAqIChubyB0cmltIHBvc3Np YmxlKS4KKwkgKi8KKwlpbnQ2NAkJbmF2TWF4T2Zmc2V0OworCiAJLyoKIAkgKiBmYWxzZSBmb3Ig YWxsIGFwYXJ0IGZyb20gdGhlIFdpbmRvd0FnZyB0aGF0J3MgY2xvc2VzdCB0byB0aGUgcm9vdCBv ZgogCSAqIHRoZSBwbGFuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgg Yi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKaW5kZXggMzYwZTFiYjc3N2YuLjAwYTI4YWJl MmI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKKysrIGIvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL3Jwci5oCkBAIC01NSw2ICs1NSwxNSBAQAogI2RlZmluZSBSUFJFbGVt SXNGaW4oZSkJCQkoKGUpLT52YXJJZCA9PSBSUFJfVkFSSURfRklOKQogI2RlZmluZSBSUFJFbGVt Q2FuU2tpcChlKQkJKChlKS0+bWluID09IDApCiAKKy8qCisgKiBuYXZNYXhPZmZzZXQgc2VudGlu ZWwgdmFsdWVzLgorICogTm9uLW5lZ2F0aXZlIHZhbHVlcyByZXByZXNlbnQgYSBzdGF0aWNhbGx5 IGRldGVybWluZWQgbWF4aW11bSBQUkVWIG9mZnNldC4KKyAqLworI2RlZmluZSBSUFJfTkFWX09G RlNFVF9ORUVEU19FVkFMCSgtMSkJLyogaGFzIG5vbi1jb25zdGFudCBQUkVWIG9mZnNldDsKKwkJ CQkJCQkJCQkJICogZXZhbHVhdGUgYXQgZXhlY3V0b3IgaW5pdCAqLworI2RlZmluZSBSUFJfTkFW X09GRlNFVF9SRVRBSU5fQUxMCSgtMikJLyogbXVzdCByZXRhaW4gZW50aXJlIHBhcnRpdGlvbgor CQkJCQkJCQkJCQkgKiAoZS5nLiwgZnV0dXJlIEZJUlNUL0xBU1QpICovCisKIGV4dGVybiBMaXN0 ICpjb2xsZWN0UGF0dGVyblZhcmlhYmxlcyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybik7CiBleHRl cm4gdm9pZCBidWlsZERlZmluZVZhcmlhYmxlTGlzdChMaXN0ICpkZWZpbmVDbGF1c2UsCiAJCQkJ CQkJCQlMaXN0ICoqZGVmaW5lVmFyaWFibGVMaXN0KTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0020-Update-RPR-code-comments-for-1-slot-navigation.txt" Content-Disposition: attachment; filename="nocfbot-0020-Update-RPR-code-comments-for-1-slot-navigation.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfo5sn19 RnJvbSAwOGM5OGFlNDAwMjg1NTllNjA0N2NkYmQ0ZjIwZjIzODhjY2FiODZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTY6MDY6MDYgKzA5MDAKU3ViamVjdDogW1BBVENIXSBVcGRhdGUg UlBSIGNvZGUgY29tbWVudHMgdG8gcmVmbGVjdCAxLXNsb3QgbmF2aWdhdGlvbiBtb2RlbAoKLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgfCA0NSArKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgfCAgMyArKy0K IDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1JQUi5jCmluZGV4IDk3ZWZhOWE0OTI0Li45OTVhY2RkN2JlNSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYwpAQCAtMTkxLDEwICsxOTEsMTUgQEAKICAqIHRyYW5zZm9ybURlZmluZUNs YXVzZSgpIHByb2Nlc3NlcyBlYWNoIERFRklORSB2YXJpYWJsZSBhcyBmb2xsb3dzOgogICoKICAq ICAgKDEpIENoZWNrcyBmb3IgZHVwbGljYXRlIHZhcmlhYmxlIG5hbWVzCi0gKiAgICgyKSBUcmFu c2Zvcm1zIHRoZSBleHByZXNzaW9uIGludG8gYSBzdGFuZGFyZCBTUUwgZXhwcmVzc2lvbgotICog ICAoMykgQ29lcmNlcyB0byBCb29sZWFuIHR5cGUgKGNvZXJjZV90b19ib29sZWFuKQorICogICAo MikgVHJhbnNmb3JtcyB0aGUgZXhwcmVzc2lvbiB2aWEgdHJhbnNmb3JtRXhwcigpCisgKiAgICgz KSBFeHRyYWN0cyBWYXIgbm9kZXMgdmlhIHB1bGxfdmFyX2NsYXVzZSgpIGFuZCBlbnN1cmVzIGVh Y2ggaXMKKyAqICAgICAgIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IHRhcmdldGxpc3QsIHNvIHRoZSBw bGFubmVyIHByb3BhZ2F0ZXMgdGhlCisgKiAgICAgICByZWZlcmVuY2VkIGNvbHVtbnMgdGhyb3Vn aCB0aGUgcGxhbiB0cmVlCiAgKiAgICg0KSBXcmFwcyBpbiBhIFRhcmdldEVudHJ5IHdpdGggdGhl IHZhcmlhYmxlIG5hbWUgc2V0IGluIHJlc25hbWUKICAqCisgKiBBZnRlciBhbGwgdmFyaWFibGVz IGFyZSBwcm9jZXNzZWQ6CisgKiAgICg1KSBDb2VyY2VzIGVhY2ggZXhwcmVzc2lvbiB0byBCb29s ZWFuIHR5cGUgKGNvZXJjZV90b19ib29sZWFuKQorICoKICAqIFZhcmlhYmxlcyB0aGF0IGFyZSB1 c2VkIGluIFBBVFRFUk4gYnV0IG5vdCBkZWZpbmVkIGluIERFRklORSBhcmUgaW1wbGljaXRseQog ICogZXZhbHVhdGVkIGFzIFRSVUUgKG1hdGNoaW5nIGFsbCByb3dzKS4KICAqCkBAIC00MzEsOCAr NDM2LDkgQEAKICAqCiAgKiAgIENhc2UgMTogU2ltcGxlIFZBUisgKGUuZy4sIEErKQogICogICAg ICAgICAgIC0+IEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBzZXQgb24gdGhlIFZBUgot ICogICBDYXNlIDI6IEdST1VQKyB3aG9zZSBib2R5IGNvbnNpc3RzIG9ubHkgb2YgezEsMX0gVkFS cyAoZS5nLiwgKEEgQikrKQotICogICAgICAgICAgIC0+IEFCU09SQkFCTEVfQlJBTkNIIG9uIGNo aWxkcmVuLAorICogICBDYXNlIDI6IEdST1VQKyB3aXRoIGZpeGVkLWxlbmd0aCBjaGlsZHJlbiAo bWluID09IG1heCwgcmVjdXJzaXZlbHkpCisgKiAgICAgICAgICAgZS5nLiwgKEEgQikrLCAoQSBC ezJ9KSssICgoQSAoQiBDKXsyfSl7Mn0pKworICogICAgICAgICAgIC0+IEFCU09SQkFCTEVfQlJB TkNIIG9uIGFsbCBlbGVtZW50cyB3aXRoaW4gdGhlIGdyb3VwLAogICogICAgICAgICAgICAgQUJT T1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNIIG9uIEVORAogICogICBDYXNlIDM6IEdST1VQKyB3 aG9zZSBib2R5IHN0YXJ0cyB3aXRoIFZBUisgKGUuZy4sIChBKyBCKSspCiAgKiAgICAgICAgICAg LT4gUmVjdXJzZXMgZnJvbSBCRUdJTiBpbnRvIHRoZSBib2R5LCBhcHBseWluZyBDYXNlIDEuCkBA IC02MDQsMTEgKzYxMCwxNyBAQAogICogICAgICAgdmFyTWF0Y2hlZFtpXSA9IChub3QgbnVsbCBh bmQgdHJ1ZSkKICAqCiAgKiBUbyBzdXBwb3J0IHJvdyBuYXZpZ2F0aW9uIG9wZXJhdG9ycyBzdWNo IGFzIFBSRVYoKSBhbmQgTkVYVCgpLAotICogdGhlIHByZXZpb3VzIHJvdywgY3VycmVudCByb3cs IGFuZCBuZXh0IHJvdyBhcmUgc2V0IGluIHNlcGFyYXRlIHNsb3RzOgorICogYSAxLXNsb3QgbW9k ZWwgaXMgdXNlZDogb25seSBlY3h0X291dGVydHVwbGUgaXMgc2V0IHRvIHRoZSBjdXJyZW50Cisg KiByb3cuICBQUkVWL05FWFQgbmF2aWdhdGlvbiBpcyBoYW5kbGVkIGJ5IEVFT1BfUlBSX05BVl9T RVQvUkVTVE9SRQorICogb3Bjb2RlcyBlbWl0dGVkIGR1cmluZyBERUZJTkUgZXhwcmVzc2lvbiBj b21waWxhdGlvbjoKKyAqCisgKiAgIE5BVl9TRVQ6ICAgICBzYXZlIGVjeHRfb3V0ZXJ0dXBsZSwg c3dhcCBpbiB0YXJnZXQgcm93IHZpYSBuYXZfc2xvdAorICogICAoZXZhbHVhdGUpOiAgYXJndW1l bnQgZXhwcmVzc2lvbiByZWFkcyBmcm9tIHN3YXBwZWQgc2xvdAorICogICBOQVZfUkVTVE9SRTog cmVzdG9yZSBvcmlnaW5hbCBlY3h0X291dGVydHVwbGUKICAqCi0gKiAgIGVjeHRfc2NhbnR1cGxl ICA9IHByZXZpb3VzIHJvdyAoZm9yIFBSRVYgcmVmZXJlbmNlKQotICogICBlY3h0X291dGVydHVw bGUgPSBjdXJyZW50IHJvdyAgKGRlZmF1bHQgcmVmZXJlbmNlKQotICogICBlY3h0X2lubmVydHVw bGUgPSBuZXh0IHJvdyAgICAgKGZvciBORVhUIHJlZmVyZW5jZSkKKyAqIG5hdl9zbG90IGNhY2hl cyB0aGUgbGFzdCBmZXRjaGVkIHBvc2l0aW9uIChuYXZfc2xvdF9wb3MpIHRvIGF2b2lkCisgKiBy ZWR1bmRhbnQgdHVwbGVzdG9yZSBsb29rdXBzIHdoZW4gbXVsdGlwbGUgUFJFVi9ORVhUIGNhbGxz IHRhcmdldAorICogdGhlIHNhbWUgcm93LgogICoKICAqIFRoZSB2YXJNYXRjaGVkIGFycmF5IGlz IHJlZmVyZW5jZWQgbGF0ZXIgaW4gUGhhc2UgMSAoTWF0Y2gpLgogICoKQEAgLTkwOCw4ICs5MjAs MTEgQEAKICAqCiAgKiAgICgyKSBBdCBydW50aW1lOiBpbml0aWFsaXplIHRoZSBuZmFWaXNpdGVk RWxlbXMgYml0bWFwIGltbWVkaWF0ZWx5IGJlZm9yZQogICogICAgICAgREZTIGV4cGFuc2lvbiBv ZiBlYWNoIHN0YXRlIHdpdGhpbiBhZHZhbmNlIChvbmNlIHBlciBzdGF0ZSkuCi0gKiAgICAgICBE dXJpbmcgREZTLCBzZXQgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbUlkeCBiaXQgd2hlbiB2aXNpdGlu ZyBlYWNoCi0gKiAgICAgICBlbGVtZW50LgorICogICAgICAgRHVyaW5nIERGUywgZXBzaWxvbiBl bGVtZW50cyAoRU5ELCBBTFQsIEJFR0lOKSBhcmUgbWFya2VkIGluIHRoZQorICogICAgICAgYml0 bWFwIGF0IG5mYV9hZHZhbmNlX3N0YXRlIGVudHJ5LiAgVkFSIGVsZW1lbnRzIGFyZSBtYXJrZWQg bGF0ZXIKKyAqICAgICAgIHdoZW4gYWRkZWQgdG8gdGhlIHN0YXRlIGxpc3QgKG5mYV9hZGRfc3Rh dGVfdW5pcXVlKSwgc28gdGhhdAorICogICAgICAgbGVnaXRpbWF0ZSBsb29wLWJhY2sgdG8gdGhl IHNhbWUgVkFSIGluIGEgbmV3IGdyb3VwIGl0ZXJhdGlvbgorICogICAgICAgKGUuZy4sIEVORCAt PiBBTFQgLT4gc2FtZSBWQVIpIGlzIG5vdCBibG9ja2VkLgogICogICAgICAgSWYgYSBwcmV2aW91 c2x5IHZpc2l0ZWQgZWxlbUlkeCBpcyByZXZpc2l0ZWQsIHRoYXQgcGF0aCBpcyB0ZXJtaW5hdGVk LgogICoKICAqICAgTm90ZTogdGhlIGJpdG1hcCB0cmFja3Mgb25seSBlbGVtSWR4IGFuZCBkb2Vz IG5vdCBjb25zaWRlciBjb3VudHMuCkBAIC0xMjE2LDExICsxMjMxLDExIEBACiAgKiAgICgzKSBT dGF0ZSBEZWR1cGxpY2F0aW9uIChJWC01KQogICoKICAqICAgICBEdXJpbmcgYWR2YW5jZSwgREZT IG1heSBnZW5lcmF0ZSBzdGF0ZXMgd2l0aCB0aGUgc2FtZSAoZWxlbUlkeCwKLSAqICAgICBjb3Vu dHMpIGNvbWJpbmF0aW9uIHRocm91Z2ggbXVsdGlwbGUgcGF0aHMuIEFkZGl0aW9uYWxseSwgdW5s aWtlCi0gKiAgICAgVkFSIHJlcGV0aXRpb24sIGdyb3VwIHJlcGV0aXRpb24gY2Fubm90IHBlcmZv cm0gYWJzb3JwdGlvbgotICogICAgIGNvbXBhcmlzb24gdXNpbmcgVkFSIHN0YXRlcywgc28gaW5s aW5lIGFkdmFuY2UgaXMgcGVyZm9ybWVkIGZyb20KLSAqICAgICBhZnRlciBQaGFzZSAxIG1hdGNo IHRocm91Z2ggdG8gRU5EOyB0aGlzIHByb2Nlc3MgY2FuIGFsc28gcHJvZHVjZQotICogICAgIGR1 cGxpY2F0ZSBzdGF0ZXMgcmVhY2hpbmcgdGhlIHNhbWUgRU5ELgorICogICAgIGNvdW50cykgY29t YmluYXRpb24gdGhyb3VnaCBtdWx0aXBsZSBwYXRocy4gQWRkaXRpb25hbGx5LCBmb3IKKyAqICAg ICBncm91cCBhYnNvcnB0aW9uLCBuZmFfbWF0Y2ggcGVyZm9ybXMgaW5saW5lIGFkdmFuY2UgZnJv bSBib3VuZGVkCisgKiAgICAgVkFScyAoY291bnQgPj0gbWF4KSB3aXRoaW4gdGhlIGFic29yYmFi bGUgcmVnaW9uIChBQlNPUkJBQkxFX0JSQU5DSCkKKyAqICAgICB0aHJvdWdoIEVORCBjaGFpbnMg dG8gcmVhY2ggdGhlIGp1ZGdtZW50IHBvaW50IChBQlNPUkJBQkxFIEVORCkuCisgKiAgICAgVGhp cyBwcm9jZXNzIGNhbiBhbHNvIHByb2R1Y2UgZHVwbGljYXRlIHN0YXRlcyByZWFjaGluZyB0aGUg c2FtZSBFTkQuCiAgKiAgICAgbmZhX2FkZF9zdGF0ZV91bmlxdWUoKSBibG9ja3MgZHVwbGljYXRl IGFkZGl0aW9uIG9mIGlkZW50aWNhbCBzdGF0ZXMKICAqICAgICBpbiBib3RoIGNhc2VzLgogICoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ycHIuYwppbmRleCAzZmI1ZDk0YWJlOS4uZDFlMDJlNTJlNTMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfcnByLmMKQEAgLTI2NSw3ICsyNjUsOCBAQCB2YWxpZGF0ZVJQUlBhdHRlcm5W YXJDb3VudChQYXJzZVN0YXRlICpwc3RhdGUsIFJQUlBhdHRlcm5Ob2RlICpub2RlLAogICoKICAq IFRoZW4gZm9yIGVhY2ggREVGSU5FIHZhcmlhYmxlOgogICogICAyLiBDaGVja3MgZm9yIGR1cGxp Y2F0ZSB2YXJpYWJsZSBuYW1lcyBpbiBERUZJTkUgY2xhdXNlCi0gKiAgIDMuIFRyYW5zZm9ybXMg ZXhwcmVzc2lvbnMgYW5kIGFkZHMgdG8gdGFyZ2V0bGlzdCB2aWEgZmluZFRhcmdldGxpc3RFbnRy eVNRTDk5CisgKiAgIDMuIFRyYW5zZm9ybXMgZXhwcmVzc2lvbiB2aWEgdHJhbnNmb3JtRXhwcigp IGFuZCBlbnN1cmVzIHJlZmVyZW5jZWQKKyAqICAgICAgVmFyIG5vZGVzIGFyZSBwcmVzZW50IGlu IHRoZSBxdWVyeSB0YXJnZXRsaXN0ICh2aWEgcHVsbF92YXJfY2xhdXNlKQogICogICA0LiBDcmVh dGVzIGRlZmluZUNsYXVzZSBlbnRyeSB3aXRoIHByb3BlciByZXNuYW1lIChwYXR0ZXJuIHZhcmlh YmxlIG5hbWUpCiAgKiAgIDUuIENvZXJjZXMgZXhwcmVzc2lvbnMgdG8gYm9vbGVhbiB0eXBlCiAg KiAgIDYuIE1hcmtzIGNvbHVtbiBvcmlnaW5zIGFuZCBhc3NpZ25zIGNvbGxhdGlvbiBpbmZvcm1h dGlvbgotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0021-Enable-JIT-PREV-NEXT-tests.txt" Content-Disposition: attachment; filename="nocfbot-0021-Enable-JIT-PREV-NEXT-tests.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfo7yf20 RnJvbSA3NDg4M2E1ZjdlYzIzZDIwZjAzNTJkNTk1OTU4MzkwOTliMTQxZjg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDYgQXByIDIwMjYgMDk6NDg6NTQgKzA5MDAKU3ViamVjdDogW1BBVENIXSBFbmFibGUg SklUIGNvbXBpbGF0aW9uIGZvciBQUkVWL05FWFQgbmF2aWdhdGlvbiB0ZXN0cyBpbiBSUFIKCi0t LQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0IHwgMiArKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcnByLnNxbCAgICAgIHwgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKaW5kZXggZGU2Y2U0ZmJhOGEuLjVhNDYw ZTliZDUyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CkBAIC0yMTU2LDYgKzIxNTYsNyBA QCBTRUxFQ1QgbWF0Y2hfZmlyc3QsIG1hdGNoX2xhc3QsIG1hdGNoX2xlbiBGUk9NIHJlc3VsdCBX SEVSRSBtYXRjaF9sZW4gPiAwOwogLS0gSklUIFBSRVYvTkVYVCBuYXZpZ2F0aW9uIHRlc3Q6IDEw MEsgcm93cyB3aXRoIFBSRVYgaW4gREVGSU5FLgogLS0gRXhlcmNpc2VzIEVFT1BfUlBSX05BVl9T RVQvUkVTVE9SRSBKSVQgY29kZSBwYXRocyAoaGFzX3Jwcl9uYXYgcmVsb2FkKQogLS0gYXQgc2Nh bGUuIFYtc2hhcGU6IHByaWNlIHJpc2VzIHRoZW4gZmFsbHMsIHJlcGVhdGVkIGFjcm9zcyBwYXJ0 aXRpb24uCitTRVQgaml0ID0gb247CiBTRVQgaml0X2Fib3ZlX2Nvc3QgPSAwOwogV0lUSCBkYXRh IEFTICgKICBTRUxFQ1QgaSwgYWJzKDUwMDAwIC0gaSkgQVMgcHJpY2UKQEAgLTIxODQsNiArMjE4 NSw3IEBAIEZST00gcmVzdWx0IFdIRVJFIG1hdGNoX2xlbiA+IDA7CiAoMSByb3cpCiAKIFJFU0VU IGppdF9hYm92ZV9jb3N0OworUkVTRVQgaml0OwogLS0KIC0tIElHTk9SRSBOVUxMUwogLS0KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHIuc3FsCmluZGV4IGIzYmJjODI1NGM0Li5lNDE3Nzg5ZWIyYiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHIuc3FsCkBAIC0xMDg3LDYgKzEwODcsNyBAQCBTRUxFQ1QgbWF0Y2hfZmlyc3QsIG1hdGNoX2xh c3QsIG1hdGNoX2xlbiBGUk9NIHJlc3VsdCBXSEVSRSBtYXRjaF9sZW4gPiAwOwogLS0gSklUIFBS RVYvTkVYVCBuYXZpZ2F0aW9uIHRlc3Q6IDEwMEsgcm93cyB3aXRoIFBSRVYgaW4gREVGSU5FLgog LS0gRXhlcmNpc2VzIEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBKSVQgY29kZSBwYXRocyAoaGFz X3Jwcl9uYXYgcmVsb2FkKQogLS0gYXQgc2NhbGUuIFYtc2hhcGU6IHByaWNlIHJpc2VzIHRoZW4g ZmFsbHMsIHJlcGVhdGVkIGFjcm9zcyBwYXJ0aXRpb24uCitTRVQgaml0ID0gb247CiBTRVQgaml0 X2Fib3ZlX2Nvc3QgPSAwOwogV0lUSCBkYXRhIEFTICgKICBTRUxFQ1QgaSwgYWJzKDUwMDAwIC0g aSkgQVMgcHJpY2UKQEAgLTExMTAsNiArMTExMSw3IEBAIHJlc3VsdCBBUyAoCiBTRUxFQ1QgY291 bnQoKikgQVMgbWF0Y2hlZF9yb3dzLCBtYXgobWF0Y2hfbGVuKSBBUyBsb25nZXN0X21hdGNoCiBG Uk9NIHJlc3VsdCBXSEVSRSBtYXRjaF9sZW4gPiAwOwogUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CitS RVNFVCBqaXQ7CiAKIC0tCiAtLSBJR05PUkUgTlVMTFMKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0022-Add-2-arg-PREV-NEXT-host-variable-test.txt" Content-Disposition: attachment; filename="nocfbot-0022-Add-2-arg-PREV-NEXT-host-variable-test.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfoaei21 RnJvbSBjMjlmM2ViMzRkMTNmMmMwMjExZDMwNzBhYmFmMTA2MmRhMDA5MGFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDYgQXByIDIwMjYgMDk6NTM6MTQgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgMi1h cmcgUFJFVi9ORVhUIHRlc3QgZm9yIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gd2l0aCBob3N0CiB2 YXJpYWJsZQoKLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgfCA2MyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3Fs ICAgICAgfCAxNiArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHIub3V0CmluZGV4IDVhNDYwZTliZDUyLi5jMDJkYmQ0YzA4ZCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMTQ5Miw2ICsxNDkyLDY5IEBAIEVYRUNV VEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CiBFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBu b3QgYmUgbmVnYXRpdmUKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKIEVSUk9SOiAg UFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRFIHRlc3RfcHJldl9v ZmZzZXQ7CistLSAyLWFyZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgd2l0aCBwb3NpdGl2ZSB2 YWx1ZQorLS0gRXhlcmNpc2VzIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgLT4gZXZhbF9uYXZf bWF4X29mZnNldCgpIHBhdGgKK1BSRVBBUkUgdGVzdF9wcmV2X29mZnNldChpbnQ4KSBBUworU0VM RUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291 bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZ IGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgcHJpY2UgPiBQ UkVWKHByaWNlLCAkMSkKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoMSk7CisgY29tcGFu eSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8 IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgMTAwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3 LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAz LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIw MjMgfCAgIDE0MCB8ICAgICAgICAgMTQwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMg fCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAg ICA5MCB8ICAgICAgICAgIDkwIHwgICAgIDMKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDEx MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8 ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAg ICAgICAgMTIwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAg IDUwIHwgICAgIDIKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAxNDAwIHwgICAg IDIKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgIDYwIHwgICAgIDMKKyBj b21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAxMjAwIHwgICAgIDIKKyBjb21wYW55MiB8 IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCitF WEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoMik7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJp Y2UgfCBmaXJzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8 ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAg ICAgICAgMjAwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAg IDMKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAyMDAwIHwgICAgIDIKKyBjb21wYW55MiB8 IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1 LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIw MjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMg fCAgMTEwMCB8ICAgICAgICAxMTAwIHwgICAgIDMKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAg MTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIw MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8 ICAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCiBERUFMTE9DQVRFIHRlc3RfcHJldl9v ZmZzZXQ7CiAtLSAyLWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBpbiBzYW1l IERFRklORSBjbGF1c2UKIC0tIEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJhY2sgYW5kIDItYmFj ayB2YWx1ZXMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCmluZGV4IGU0MTc3ODllYjJiLi40N2YzMzkwNDY5MCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHIuc3FsCkBAIC03MzIsNiArNzMyLDIyIEBAIEVYRUNVVEUgdGVzdF9wcmV2 X29mZnNldCgtMSk7CiBFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoTlVMTCk7CiBERUFMTE9DQVRF IHRlc3RfcHJldl9vZmZzZXQ7CiAKKy0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSB3 aXRoIHBvc2l0aXZlIHZhbHVlCistLSBFeGVyY2lzZXMgUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZB TCAtPiBldmFsX25hdl9tYXhfb2Zmc2V0KCkgcGF0aAorUFJFUEFSRSB0ZXN0X3ByZXZfb2Zmc2V0 KGludDgpIEFTCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAg ICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwg QiBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQorKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNl dCgxKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgyKTsKK0RFQUxMT0NBVEUgdGVzdF9wcmV2 X29mZnNldDsKKwogLS0gMi1hcmc6IHR3byBQUkVWIHdpdGggZGlmZmVyZW50IG9mZnNldHMgaW4g c2FtZSBERUZJTkUgY2xhdXNlCiAtLSBCOiBwcmljZSBleGNlZWRzIGJvdGggMS1iYWNrIGFuZCAy LWJhY2sgdmFsdWVzCiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAotLSAKMi41MC4xIChB cHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0023-Nav-Mark-Lookback-EXPLAIN.txt" Content-Disposition: attachment; filename="nocfbot-0023-Nav-Mark-Lookback-EXPLAIN.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfod9a22 RnJvbSA4YjFlZjAyMjdjYjNlMzUzYTkzYjM4YTA3NjAyZDUxY2FhMmEyNmQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDYgQXByIDIwMjYgMTA6NDY6MzggKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgTmF2 IE1hcmsgTG9va2JhY2sgdG8gRVhQTEFJTiBhbmQgZml4CiBjb21wdXRlX25hdl9tYXhfb2Zmc2V0 KCkKClNob3cgdGhlIHBsYW5uZXItY29tcHV0ZWQgbmF2TWF4T2Zmc2V0IGluIEVYUExBSU4gb3V0 cHV0IGFzCiJOYXYgTWFyayBMb29rYmFjayIgZm9yIFJQUiB3aW5kb3dzLCBzbyB0aGF0IHR1cGxl c3RvcmUgdHJpbQpiZWhhdmlvciBpcyB2aXNpYmxlIGluIHF1ZXJ5IHBsYW5zLiAgRGlzcGxheWVk IGFzIGFuIGludGVnZXIgZm9yCmNvbnN0YW50IG9mZnNldHMsICJydW50aW1lIiBmb3Igbm9uLWNv bnN0YW50IChQYXJhbSkgb2Zmc2V0cywgYW5kCiJyZXRhaW4gYWxsIiB3aGVuIHRoZSBlbnRpcmUg cGFydGl0aW9uIG11c3QgYmUgcHJlc2VydmVkLgoKRml4IGNvbXB1dGVfbmF2X21heF9vZmZzZXQo KSB0byByZXR1cm4gdGhlIHdhbGtlci1zZXQgdmFsdWUgaW5zdGVhZApvZiB1bmNvbmRpdGlvbmFs bHkgcmV0dXJuaW5nIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgd2hlbiB0aGUKd2Fsa2VyIHN0 b3BzIGVhcmx5LgoKQWRkIHJlZ3Jlc3Npb24gdGVzdHMgY292ZXJpbmcgY29uc3RhbnQgb2Zmc2V0 cywgTkVYVC1vbmx5LCBtdWx0aXBsZQpQUkVWIG9mZnNldHMsIGFuZCBob3N0IHZhcmlhYmxlIG9m ZnNldHMgdW5kZXIgYm90aCBjdXN0b20gYW5kIGdlbmVyaWMKcGxhbnMuCi0tLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgICAgICAgIHwgMjMxICsrKysrKy0tLS0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0ICAgICB8IDM5NyArKysrKysrKysr KysrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dCB8 ICAyNSArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsICAgICAgICAgIHwg IDcxICsrKysKIDYgZmlsZXMgY2hhbmdlZCwgNTYwIGluc2VydGlvbnMoKyksIDE3NSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggOTMzZWFkYWI3MWUuLjE4NDhkZTlkZTdh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0zMjU0LDYgKzMyNTQsMTUgQEAgc2hvd193aW5k b3dfZGVmKFdpbmRvd0FnZ1N0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2VzdG9ycywgRXhwbGFp blN0YXRlICplcykKIAkJCUV4cGxhaW5Qcm9wZXJ0eVRleHQoIlBhdHRlcm4iLCBwYXR0ZXJuU3Ry LCBlcyk7CiAJCQlwZnJlZShwYXR0ZXJuU3RyKTsKIAkJfQorCisJCS8qIFNob3cgbmF2aWdhdGlv biBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0gKi8KKwkJaWYgKHdhZ2ctPm5hdk1heE9mZnNl dCA9PSBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMKQorCQkJRXhwbGFpblByb3BlcnR5VGV4dCgi TmF2IE1hcmsgTG9va2JhY2siLCAicmV0YWluIGFsbCIsIGVzKTsKKwkJZWxzZSBpZiAod2FnZy0+ bmF2TWF4T2Zmc2V0ID09IFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwpCisJCQlFeHBsYWluUHJv cGVydHlUZXh0KCJOYXYgTWFyayBMb29rYmFjayIsICJydW50aW1lIiwgZXMpOworCQllbHNlCisJ CQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJOYXYgTWFyayBMb29rYmFjayIsIE5VTEwsCisJCQkJ CQkJCSAgIHdhZ2ctPm5hdk1heE9mZnNldCwgZXMpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vY3JlYXRlcGxhbi5jCmluZGV4IGVlMmQ1M2I1OTI0Li44ZWUzY2NmNmQwZCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCisrKyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpAQCAtMjU1Myw3ICsyNTUzLDcg QEAgY29tcHV0ZV9uYXZfbWF4X29mZnNldChMaXN0ICpkZWZpbmVDbGF1c2UpCiAJCVRhcmdldEVu dHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOwogCiAJCWlmIChuYXZfbWF4X29m ZnNldF93YWxrZXIoKE5vZGUgKikgdGUtPmV4cHIsICZtYXhPZmZzZXQpKQotCQkJcmV0dXJuIFJQ Ul9OQVZfT0ZGU0VUX05FRURTX0VWQUw7CisJCQlyZXR1cm4gbWF4T2Zmc2V0OwkvKiBORUVEU19F VkFMIG9yIFJFVEFJTl9BTEwgKi8KIAl9CiAKIAlyZXR1cm4gbWF4T2Zmc2V0OwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRleCAzN2FhODFlYmRlYS4uMWU0NTBhMDdjZWQg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0zMDY1LDEwICszMDY1 LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQogICAgUGF0dGVybjogYXszfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0 CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZTogQXsyfSBB ezN9IC0+IGF7NX0KIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTMwODAsMTAgKzMwODEsMTEgQEAg V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQ YXR0ZXJuOiBhezV9CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAg ICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiBy b3dzKQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUgVkFSIG1lcmdlOiBBKyBBKiAtPiBhKwog RVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzA5NSwxMCArMzA5NywxMSBAQCBXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIgor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTog aWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3Mp CiAKIC0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZTogQSBBKyAtPiBhezIsfQogLS0gVGVzdHMgbGlu ZSAyNTE6IGNoaWxkLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiBicmFuY2ggaW4gbWVyZ2VDb25z ZWN1dGl2ZVZhcnMKQEAgLTMxMTIsMTAgKzMxMTUsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdp bmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhezIsfSIKKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAt LSBDb25zZWN1dGl2ZSBHUk9VUCBtZXJnZSB3aXRoIGZpbml0ZSBxdWFudGlmaWVyczogKChBIEIp ezV9KSAoKEEgQil7MTB9KSAtPiBtZXJnZWQKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTMxMjcs MTAgKzMxMzEsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSBiKXsxNX0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBDb25zZWN1dGl2ZSBHUk9V UCBtZXJnZSB3aXRoIHVuYm91bmRlZDogKEEgQikrIChBIEIpKyAtPiAoYSBiKXsyLH0KIEVYUExB SU4gKENPU1RTIE9GRikKQEAgLTMxNDIsMTAgKzMxNDcsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwog IFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYicpezIs fSIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBL ZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyBy b3dzKQogCiAtLSBDb25zZWN1dGl2ZSBHUk9VUCBtZXJnZTogKEEgQil7Mn0gKEEgQikrIC0+IChh IGIpezMsfQogLS0gVGVzdHMgbGluZSAzMjU6IGNoaWxkLT5tYXggPT0gUlBSX1FVQU5USVRZX0lO RiBicmFuY2ggaW4gbWVyZ2VDb25zZWN1dGl2ZUdyb3VwcwpAQCAtMzE1OSwxMCArMzE2NSwxMSBA QCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46IChhJyBiJyl7Myx9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBT b3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf cGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFBSRUZJWCBtZXJnZTogQSBCIChBIEIpKyAt PiAoYSBiKXsyLH0KIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTMxNzQsMTAgKzMxODEsMTEgQEAg V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQ YXR0ZXJuOiAoYScgYicpezIsfSIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29y dAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3Bs YW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBQUkVGSVggYW5kIFNVRkZJWCBtZXJnZTogQSBC IChBIEIpKyBBIEIgLT4gKGEgYil7Myx9CiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zMTg5LDEw ICszMTk3LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKXszLH0iCisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gRmxhdHRlbiBuZXN0ZWQ6 IEEgKChCKSAoQykpIC0+IGEgYiBjCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zMjA0LDEwICsz MjEzLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogYSBiIGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAg U29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBEYXRhIGV4ZWN1dGlvbjogU0VRIGZsYXR0 ZW4gcHJvZHVjZXMgY29ycmVjdCByZXN1bHRzCiBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZF UiB3IEFTIGNudApAQCAtMzIzOSwxMCArMzI0OSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2lu ZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYiB8IGMpKwor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTog aWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3Mp CiAKIC0tIEFMVCBkZWR1cGxpY2F0ZTogKEEgfCBCIHwgQSkgLT4gKGEgfCBiKQogRVhQTEFJTiAo Q09TVFMgT0ZGKQpAQCAtMzI1NCwxMCArMzI2NSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2lu ZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYikrCisgICBO YXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAog ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAog LS0gRGF0YSBleGVjdXRpb246IEFMVCBkZWR1cCBwcm9kdWNlcyBjb3JyZWN0IHJlc3VsdHMKIFNF TEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CkBAIC0zMjg5LDEwICszMzAxLDEx IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQog ICAgUGF0dGVybjogYXs2fQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAg ICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgot KDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFF1YW50aWZpZXIgbXVsdGlwbHkgd2l0aCBjaGlsZCBy YW5nZTogKEF7MiwzfSl7M30gLT4gYXs2LDl9CiAtLSBvdXRlciBleGFjdCwgY2hpbGQgcmFuZ2Ug LSBvcHRpbWl6YXRpb24gYXBwbGllcwpAQCAtMzMwNSwxMCArMzMxOCwxMSBAQCBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7 Niw5fQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0 IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3 IHJvd3MpCiAKIC0tIFF1YW50aWZpZXIgTk8gbXVsdGlwbHk6IChBezJ9KXsyLDN9IHN0YXlzIGFz IChhezJ9KXsyLDN9CiAtLSBvdXRlciByYW5nZSAtIGdhcHMgd291bGQgb2NjdXIgKDQsNiBub3Qg NCw1LDYpLCBubyBvcHRpbWl6YXRpb24KQEAgLTMzMjEsMTAgKzMzMzUsMTEgQEAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAo YXsyfSl7MiwzfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAg ICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93 cykKKyg3IHJvd3MpCiAKIC0tIFF1YW50aWZpZXIgTk8gbXVsdGlwbHk6IChBezJ9KXsyLH0gc3Rh eXMgYXMgKGF7Mn0pezIsfQogLS0gb3V0ZXIgdW5ib3VuZGVkIC0gZ2FwcyB3b3VsZCBvY2N1ciAo NCw2LDgsLi4uIG5vdCA0LDUsNiwuLi4pLCBubyBvcHRpbWl6YXRpb24KQEAgLTMzMzcsMTAgKzMz NTIsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiAoYXsyfScpezIsfSIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBRdWFudGlmaWVyIG11bHRpcGx5 OiAoQSl7Mix9IC0+IGF7Mix9CiAtLSBjaGlsZCBleGFjdCAxIC0gbm8gZ2Fwcywgb3B0aW1pemF0 aW9uIGFwcGxpZXMKQEAgLTMzNTMsMTAgKzMzNjksMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdp bmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhezIsfSIKKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAt LSBRdWFudGlmaWVyIG11bHRpcGx5OiAoQSkrIC0+IGErCiAtLSBjaGlsZCBleGFjdCAxIC0gbm8g Z2Fwcywgb3B0aW1pemF0aW9uIGFwcGxpZXMKQEAgLTMzNjksMTAgKzMzODYsMTEgQEAgV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJu OiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29y dCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCiso NyByb3dzKQogCiAtLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXsyfSl7Myw1fSBzdGF5cyBh cyAoYXsyfSl7Myw1fQogLS0gb3V0ZXIgcmFuZ2UsIGNoaWxkIGV4YWN0ID4gMSAtIGdhcHMgd291 bGQgb2NjdXIgKDYsOCwxMCBub3QgNiw3LDgsOSwxMCkKQEAgLTMzODUsMTAgKzM0MDMsMTEgQEAg V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQ YXR0ZXJuOiAoYXsyfSl7Myw1fQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0 CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFF1YW50aWZpZXIgTk8gbXVsdGlwbHk6IChBezIs M30pezIsM30gc3RheXMgYXMgKGF7MiwzfSl7MiwzfQogLS0gb3V0ZXIgcmFuZ2UsIGNoaWxkIHJh bmdlIC0gZ2FwcyBwb3NzaWJsZSAoZS5nLiwgKEF7NCw1fSl7MiwzfSBtaXNzZXMgMTEpCkBAIC0z NDAxLDEwICszNDIwLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRv dzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGF7MiwzfSl7MiwzfQorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIE5lc3RlZCB1 bmJvdW5kZWQ6IChBKikqIC0+IGEqCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zNDE2LDEwICsz NDM2LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogYSoiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNv cnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9w bGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gTmVzdGVkIHVuYm91bmRlZDogKEErKSogLT4g YSoKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM0MzEsMTAgKzM0NTIsMTEgQEAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBh KiIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBL ZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyBy b3dzKQogCiAtLSBOZXN0ZWQgdW5ib3VuZGVkOiAoQSspKyAtPiBhKwogRVhQTEFJTiAoQ09TVFMg T0ZGKQpAQCAtMzQ0NiwxMCArMzQ2OCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdn CiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFVud3JhcCBH Uk9VUHsxLDF9OiAoQSkgLT4gYQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzQ2MSwxMCArMzQ4 NCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IGEKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAog ICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4K LSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBVbndyYXAgR1JPVVB7MSwxfTogKEEgQikgLT4gYSBi CiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zNDc2LDEwICszNTAwLDExIEBAIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBi CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5 OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93 cykKIAogLS0gQ29tYmluZWQgb3B0aW1pemF0aW9uOiBBIEEgKEIgQikrIEIgQiBDIEMgQyAtPiBh ezJ9IChiezJ9KXsyLH0gY3szfQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzQ5MiwxMCArMzUx NywxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IGF7Mn0gKGJ7Mn0pezIsfSBjezN9CisgICBOYXYgTWFyayBMb29rYmFj azogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUg R1JPVVAgbWVyZ2Ugd2l0aCB1bmJvdW5kZWQ6IChBKykgKEErKSAtPiBhezIsfQogLS0gVGVzdHMg bWVyZ2VDb25zZWN1dGl2ZUdyb3VwcyB3aXRoIGNoaWxkLT5tYXggPT0gSU5GCkBAIC0zNTA4LDEw ICszNTM0LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogYXsyLH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAg LT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUgR1JPVVAgbWVy Z2UgZmluaXRlOiAoQXsxMH0pezIwfSAtPiBhezIwMH0KIC0tIFRlc3RzIG1lcmdlQ29uc2VjdXRp dmVHcm91cHMgd2l0aCBib3RoIGZpbml0ZQpAQCAtMzUyNCwxMCArMzU1MSwxMSBAQCBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IGF7MjAwfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBT b3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykK Kyg3IHJvd3MpCiAKIC0tIERpZmZlcmVudCBHUk9VUCBwcmV2ZW50cyBtZXJnZTogKEEgQil7Mn0g KEMgRCl7M30KIC0tIFRlc3RzIG1lcmdlQ29uc2VjdXRpdmVHcm91cHMgZmx1c2ggcHJldmlvdXMK QEAgLTM1NDIsMTAgKzM1NzAsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAg V2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSBiKXsyfSAoYyBkKXszfQorICAgTmF2 IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0t IERpZmZlcmVudCBjaGlsZHJlbiBjb3VudCBwcmV2ZW50cyBtZXJnZTogKEEgQikrIChBIEIgQykr CiAtLSBUZXN0cyBycHJQYXR0ZXJuQ2hpbGRyZW5FcXVhbCBsZW5ndGggY2hlY2sKQEAgLTM1NTks MTAgKzM1ODgsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYicpKyIgKGEgYiBjKSsKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBQUkVGSVgg b25seSBtZXJnZTogQSBCIChBIEIpKyAtPiAoYSBiKXsyLH0KIC0tIFRlc3RzIG1lcmdlR3JvdXBQ cmVmaXhTdWZmaXg6IGFic29yYiBwcmVjZWRpbmcgZWxlbWVudHMgaW50byBHUk9VUCBtaW4KQEAg LTM1NzUsMTAgKzM2MDUsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYicpezIsfSIKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBTVUZGSVgg b25seSBtZXJnZTogKEEgQikrIEEgQiAtPiAoYSBiKXsyLH0KIC0tIFRlc3RzIG1lcmdlR3JvdXBQ cmVmaXhTdWZmaXg6IGFic29yYiBmb2xsb3dpbmcgZWxlbWVudHMgaW50byBHUk9VUCBtaW4KQEAg LTM1OTEsMTAgKzM2MjIsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYicpezIsfSIKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBNdWx0aXBs ZSBTVUZGSVggYWJzb3JwdGlvbiB3aXRoIHNraXBVbnRpbDogKEEgQikrIEEgQiBBIEIgQwogLS0g VGVzdHMgbWVyZ2VHcm91cFByZWZpeFN1ZmZpeDogc2tpcCBhYnNvcmJlZCBzdWZmaXggZWxlbWVu dHMKQEAgLTM2MDgsMTAgKzM2NDAsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwog ICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYicpezMsfSIgYworICAgTmF2 IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0t IFBSRUZJWCBtZXJnZSB3aXRoIHJlbWFpbmluZyBwcmVmaXg6IEEgQiBDIEQgKEMgRCkrCiAtLSBU ZXN0cyBtZXJnZUdyb3VwUHJlZml4U3VmZml4OiB0cmltbWVkIGxpc3QgcmVjb25zdHJ1Y3Rpb24K QEAgLTM2MjYsMTAgKzM2NTksMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAg V2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIgKGMgZCl7Mix9CisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUFJF RklYIG1lcmdlIHdpdGggcXVhbnRpZmllcnM6IEEgQiogKEEgQiopKyAtPiAoYSBiKil7Mix9CiAt LSBUZXN0cyBtZXJnZUdyb3VwUHJlZml4U3VmZml4OiBxdWFudGlmaWVyIGNvbXBhcmlzb24gaW4g cnByUGF0dGVybkVxdWFsCkBAIC0zNjQzLDEwICszNjc3LDExIEBAIFdJTkRPVyB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK ICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgYiopezIs fQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtl eTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJv d3MpCiAKIC0tIFBSRUZJWCBtZXJnZSB3aXRoIG11bHRpcGxlIHF1YW50aWZpZXJzOiBBKyBCKiBD PyAoQSsgQiogQz8pKyAtPiAoYSsgYiogYz8pezIsfQogLS0gVGVzdHMgbWVyZ2VHcm91cFByZWZp eFN1ZmZpeDogY29tcGxleCBxdWFudGlmaWVyIHBhdHRlcm5zCkBAIC0zNjYwLDEwICszNjk1LDEx IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQog ICAgUGF0dGVybjogKGErIiBiKiBjPyl7Mix9CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAg LT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gU1VGRklYIG1lcmdlIHdpdGggcXVh bnRpZmllcnM6IChBIEIqKSsgQSBCKiAtPiAoYSBiKil7Mix9CiAtLSBUZXN0cyBtZXJnZUdyb3Vw UHJlZml4U3VmZml4OiBzdWZmaXggd2l0aCBxdWFudGlmaWVycwpAQCAtMzY3NywxMCArMzcxMywx MSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IChhIGIqKXsyLH0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAg U29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBVbndyYXAgR1JPVVB7MSwxfTogKChBIHwg QiB8IEMpKSAtPiAoYSB8IGIgfCBjKQogLS0gVGVzdHMgdHJ5VW53cmFwR3JvdXAgcmVtb3Zpbmcg cmVkdW5kYW50IG91dGVyIEdST1VQCkBAIC0zNjkzLDEwICszNzMwLDExIEBAIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEg fCBiIHwgYykKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAg U29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3Mp CisoNyByb3dzKQogCiAtLSBEYXRhIGV4ZWN1dGlvbjogR1JPVVAgdW53cmFwIHByb2R1Y2VzIGNv cnJlY3QgcmVzdWx0cwogU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKQEAg LTM3MjksMTAgKzM3NjcsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKz8gYQorICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVjdGFudCBvcHRp bWl6YXRpb24gYnlwYXNzOiBHUk9VUCBtZXJnZQogLS0gKEEgQikrPyAoQSBCKSBzdGF5cyBzZXBh cmF0ZSAoZ3JlZWR5IG1lcmdlcyB0byAoYSBiKXsyLH0pCkBAIC0zNzQ1LDEwICszNzg0LDExIEBA IFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogKGEgYikrPyBhIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29y dAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3Bs YW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5cGFz czogcXVhbnRpZmllciBtdWx0aXBseSAob3V0ZXIgcmVsdWN0YW50KQogLS0gKEF7Mn0pezN9PyBz dGF5cyBhcyAoYXsyfSl7M30/IChncmVlZHkgbWVyZ2VzIHRvIGF7Nn0pCkBAIC0zNzYxLDEwICsz ODAxLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogKGF7Mn0pezN9PworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVjdGFudCBvcHRpbWl6YXRp b24gYnlwYXNzOiBxdWFudGlmaWVyIG11bHRpcGx5IChpbm5lciByZWx1Y3RhbnQpCiAtLSAoQXsy fT8pezN9IHN0YXlzIGFzIChhezJ9Pyl7M30gKGdyZWVkeSBtZXJnZXMgdG8gYXs2fSkKQEAgLTM3 NzcsMTAgKzM4MTgsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93 OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYXsyfT8pezN9CisgICBOYXYgTWFyayBMb29rYmFj azogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUmVsdWN0YW50IG9w dGltaXphdGlvbiBieXBhc3M6IFBSRUZJWCBtZXJnZQogLS0gQSBCIChBIEIpKz8gc3RheXMgc2Vw YXJhdGUgKGdyZWVkeSBtZXJnZXMgdG8gKGEgYil7Mix9KQpAQCAtMzc5MywxMCArMzgzNSwxMSBA QCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46IGEgYiAoYSBiKSs/CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNv cnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9w bGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUmVsdWN0YW50IG9wdGltaXphdGlvbiBieXBh c3M6IFNVRkZJWCBtZXJnZQogLS0gKEEgQikrPyBBIEIgc3RheXMgc2VwYXJhdGUgKGdyZWVkeSBt ZXJnZXMgdG8gKGEgYil7Mix9KQpAQCAtMzgwOSwxMCArMzg1MiwxMSBAQCBXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIGIp Kz8gYSBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNv cnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQor KDcgcm93cykKIAogLS0gR1JPVVAgdW53cmFwIHdpdGggcXVhbnRpZmllciBwcm9wYWdhdGlvbjog KEEpPz8gQiAtPiBhPz8gYgogLS0gU2luZ2xlIFZBUiBjaGlsZCB7MSwxfSByZWNlaXZlcyBHUk9V UCdzIHF1YW50aWZpZXIgYW5kIHJlbHVjdGFudApAQCAtMzgyNSwxMCArMzg2OSwxMSBAQCBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IGE/PyBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAg IFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dz KQorKDcgcm93cykKIAogLS0gUmVsdWN0YW50IHByZXNlcnZlZCB0aHJvdWdoIEFMVCBmbGF0dGVu CiAtLSAoQSB8IChCIHwgQykpKz8gZmxhdHRlbnMgdG8gKGEgfCBiIHwgYykrPyAtIGlubmVyIEFM VCBmbGF0dGVuZWQsIHJlbHVjdGFudCBrZXB0CkBAIC0zODQxLDEwICszODg2LDExIEBAIFdJTkRP VyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVy bjogKGEgfCBiIHwgYykrPworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAg ICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgot KDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVjdGFudCBvcHRpbWl6YXRpb24gYnlwYXNzOiBh YnNvcnB0aW9uIGZsYWdzCiAtLSBBKz8gd2l0aCBTS0lQIFBBU1QgTEFTVCBST1cgLSBubyBhYnNv cnB0aW9uIG1hcmtlcnMgKGdyZWVkeSBBKyBnZXRzIGErIikKQEAgLTM4NTcsMTAgKzM5MDMsMTEg QEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAg ICBQYXR0ZXJuOiBhKz8KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAg ICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2 IHJvd3MpCisoNyByb3dzKQogCiAtLSBEdXBsaWNhdGUgR1JPVVAgcmVtb3ZhbDogKChBIHwgQikr IHwgKEEgfCBCKSspIC0+IChhIHwgYikrCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zODcyLDEw ICszOTE5LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBDb25zZWN1dGl2ZSBWQVIgbWVy Z2Ugd2l0aCB6ZXJvLW1pbjogQSogQSsgLT4gYSsKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM4 ODcsMTAgKzM5MzUsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93 OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBDb25zZWN1dGl2ZSBWQVIgbWVy Z2UgKDQtZWxlbWVudCk6IEEgQXsyfSBBKyBBezN9IC0+IGF7Nyx9CiBFWFBMQUlOIChDT1NUUyBP RkYpCkBAIC0zOTAyLDEwICszOTUxLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cK ICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYXs3LH0iCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUFJFRklY K1NVRkZJWCBtZXJnZSAoNS13YXkpOiBBIEIgQSBCIChBIEIpKyBBIEIgQSBCIC0+IChhIGIpezUs fQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzkxOCwxMCArMzk2OCwxMSBAQCBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChh JyBiJyl7NSx9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAg ICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93 cykKKyg3IHJvd3MpCiAKIC0tIFVud3JhcCBzaW5nbGUtaXRlbSBBTFQgYWZ0ZXIgZGVkdXA6IChB IHwgQSkrIC0+IGErCiAtLSBBTFQgZGVkdXAgcmVkdWNlcyB0byBzaW5nbGUtaXRlbSwgdGhlbiBH Uk9VUCB1bndyYXAKQEAgLTM5MzQsMTAgKzM5ODUsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdp bmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBH Uk9VUHsxLDF9IHRvIFNFUSB3aXRoIGZsYXR0ZW46ICgoQSBCKShDIEQpKSAtPiBhIGIgYyBkCiBF WFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zOTUxLDEwICs0MDAzLDExIEBAIFdJTkRPVyB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiIGMg ZAorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtl eTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJv d3MpCiAKIC0tIE5lc3RlZCBBTFQgcGF0dGVybjogKChBIEIpIHwgQykgRCB8IEEgQiBDCiBFWFBM QUlOIChDT1NUUyBPRkYpCkBAIC0zOTY4LDEwICs0MDIxLDExIEBAIFdJTkRPVyB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK ICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKChhIGIgfCBj KSBkIHwgYSBiIGMpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAg ICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiBy b3dzKQorKDcgcm93cykKIAogLS0gTmVzdGVkIEFMVCB3aXRoIHVuYm91bmRlZDogKChBKyBCKSB8 IEMpIEQgfCBBIEIgQwogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzk4NSwxMCArNDAzOSwxMSBA QCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46ICgoYSsiIGIgfCBjKSBkIHwgYSBiIGMpCisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBBYnNvcnB0 aW9uIEZsYWcgRGlzcGxheSBUZXN0cwpAQCAtNDAwNiwxMCArNDA2MSwxMSBAQCBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEr IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtl eTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJv d3MpCiAKIC0tIEdST1VQIHVuYm91bmRlZDogKEEgQikrIC0+IChhJyBiJykrIiAoYnJhbmNoICsg anVkZ21lbnQpCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MDIxLDEwICs0MDc3LDExIEBAIFdJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0 dGVybjogKGEnIGInKSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAg ICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0o NiByb3dzKQorKDcgcm93cykKIAogLS0gQUxUIGJvdGggYWJzb3JiYWJsZTogQSsgfCBCKyAtPiAo YSsiIHwgYisiKQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDAzNiwxMCArNDA5MywxMSBAQCBX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBh dHRlcm46IChhKyIgfCBiKyIpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQK ICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFu Ci0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQUxUIG9uZSBhYnNvcmJhYmxlOiBBKyB8IEIgLT4g KGErIiB8IGIpCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MDUxLDEwICs0MTA5LDExIEBAIFdJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0 dGVybjogKGErIiB8IGIpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAg ICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0o NiByb3dzKQorKDcgcm93cykKIAogLS0gU2VxdWVuY2Ugd2l0aCBhYnNvcmJhYmxlIHN0YXJ0OiBB KyBCIC0+IGErIiBiCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MDY2LDEwICs0MTI1LDExIEBA IFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAg ICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2 IHJvd3MpCisoNyByb3dzKQogCiAtLSBDb21wbGV4IG5lc3RlZDogKChBKyBCKSB8IEMpIEQgfCBB IEIgQyAtIGRlZXBseSBuZXN0ZWQgQUxUCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MDgyLDEw ICs0MTQyLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogKChhKyIgYiB8IGMpIGQgfCBhIGIgYykKKyAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBOZXN0 ZWQgdW5ib3VuZGVkOiAoQSsgfCBCKSsgLT4gKGErIiB8IGIpKyAoZmlyc3QgaXRlcmF0aW9uIGFi c29yYmFibGUpCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MDk4LDEwICs0MTU5LDExIEBAIFdJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0 dGVybjogKGErIiB8IGIpKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAg ICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgot KDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEFMVCBpbnNpZGUgdW5ib3VuZGVkIEdST1VQOiAoQSsg QiB8IEEgQikqIC0+IChhKyIgYiB8IGEgYikqIChmaXJzdCBpdGVyYXRpb24gYWJzb3JiYWJsZSkK IEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTQxMTQsMTAgKzQxNzYsMTEgQEAgV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSsi IGIgfCBhIGIpKgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAg ICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93 cykKKyg3IHJvd3MpCiAKIC0tIEZpeGVkLWxlbmd0aCBncm91cCBhYnNvcmJhYmxlOiAoQXsyfSBC ezN9KSsgLT4gKGF7Mn0nIGJ7M30nKXsyLH0iCiAtLSBBbGwgY2hpbGRyZW4gaGF2ZSBtaW4gPT0g bWF4LCBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0byB7MSwxfQpAQCAtNDEzMSwxMCArNDE5NCwx MSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IChhezJ9JyBiezN9JykrIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIE5lc3RlZCBmaXhlZC1sZW5ndGgg Z3JvdXA6IChBIChCIEMpezJ9IEQpKyAtPiBhYnNvcmJhYmxlCiBFWFBMQUlOIChDT1NUUyBPRkYp CkBAIC00MTQ3LDEwICs0MjExLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAg IFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIChiJyBjJyl7Mn0nIGQnKSsiCisg ICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBp ZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykK IAogLS0gTmVzdGVkIGZpeGVkLWxlbmd0aCB3aXRoIGlubmVyIHF1YW50aWZpZXI6ICgoQXsyfSBC ezN9KXsyfSkrIC0+IGFic29yYmFibGUKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTQxNjMsMTAg KzQyMjgsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiAoKGF7Mn0nIGJ7M30nKXsyfScpKyIKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBOb24tYWJz b3JiYWJsZSBmaXhlZC1sZW5ndGg6IChBIEJ7Miw1fSkrIC0+IG5vIG1hcmtlcnMgKG1pbiAhPSBt YXgpCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MTc5LDEwICs0MjQ1LDExIEBAIFdJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjog KGEgYnsyLDV9KSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAg ICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJv d3MpCisoNyByb3dzKQogCiAtLSBOb24tYWJzb3JiYWJsZSBmaXhlZC1sZW5ndGg6IChBIEI/KSsg LT4gbm8gbWFya2VycyAobWluICE9IG1heCkKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTQxOTUs MTAgKzQyNjIsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSBiPykrCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gTm9uLWFic29yYmFibGUgKHVu Ym91bmRlZCBub3QgYXQgc3RhcnQpOiBBIEIrIC0+IGEgYisgKG5vIG1hcmtlcnMpCiBFWFBMQUlO IChDT1NUUyBPRkYpCkBAIC00MjEwLDEwICs0Mjc4LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBX aW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiKworICAgTmF2 IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0t IE5vbi1hYnNvcmJhYmxlIChubyB1bmJvdW5kZWQgYnJhbmNoKTogKEEgfCBCKXsyLH0gLT4gKGEg fCBiKXsyLH0gKG5vIG1hcmtlcnMpCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MjI1LDEwICs0 Mjk0LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogKGEgfCBiKXsyLH0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBOb24tYWJzb3JiYWJsZSAoU0tJ UCBUTyBORVhUIFJPVyk6IEErIC0+IGErIChubyBtYXJrZXJzKQogRVhQTEFJTiAoQ09TVFMgT0ZG KQpAQCAtNDI0MCwxMCArNDMxMCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErCisgICBOYXYgTWFyayBMb29rYmFj azogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gTm9uLWFic29yYmFi bGUgKGxpbWl0ZWQgZnJhbWUpOiBBKyAtPiBhKyAobm8gbWFya2VycykKIEVYUExBSU4gKENPU1RT IE9GRikKQEAgLTQyNTUsMTAgKzQzMjYsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMTAgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBX aW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgJzEw Jzo6YmlnaW50IEZPTExPV0lORykKICAgIFBhdHRlcm46IGErCisgICBOYXYgTWFyayBMb29rYmFj azogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUmVsdWN0YW50IHsx fT8gcXVhbnRpZmllciBkZXBhcnNlCiAtLSBBezF9PyBpcyBhIHJlbHVjdGFudCB7MSwxfSBxdWFu dGlmaWVyLiAgVGhlIGRlcGFyc2UgY29kZSBtdXN0CkBAIC00Mjc3LDEwICs0MzQ5LDExIEBAIFdJ TkRPVyB3IEFTICgKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgdmFsIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IGF7MX0/IGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAg ICAgU29ydCBLZXk6IHZhbAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiBy b3dzKQorKDcgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBBYnNvcnB0aW9uIEFuYWx5c2lzIFRlc3RzCkBA IC00Nzc1LDEwICs0ODQ4LDExIEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cKICAgIFdpbmRv dzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGF7MjAwMDAwMDAwMH0pezJ9CisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9mYWxsYmFjawotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0t IEV4cGVjdGVkOiBGYWxsYmFjayAtIHBhdHRlcm4gbm90IG1lcmdlZCBkdWUgdG8gbWluIG92ZXJm bG93ICg0MDAwMDAwMDAwID4gSU5UMzJfTUFYKQogLS0gVGVzdDogbWF4LW9ubHkgcXVhbnRpZmll ciBvdmVyZmxvdyBjYXVzZXMgb3B0aW1pemF0aW9uIGZhbGxiYWNrCkBAIC00Nzk1LDEwICs0ODY5 LDExIEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQog ICAgUGF0dGVybjogKGF7MSwyMDAwMDAwMDAwfSl7Mn0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcnByX2ZhbGxiYWNrCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gRXhwZWN0ZWQ6IEZh bGxiYWNrIC0gbWluIE9LICgyKjE9MiksIGJ1dCBtYXggb3ZlcmZsb3cgKDIqMjAwMDAwMDAwMCA+ IElOVDMyX01BWCkKIC0tIFRlc3Q6IG1heCBxdWFudGlmaWVyIGV4Y2VlZHMgdmFsaWQgcmFuZ2Ug KDIxNDc0ODM2NDcgPSBJTlRfTUFYLCBsaW1pdCBpcyAyMTQ3NDgzNjQ2KQpAQCAtNDgyOCwxMCAr NDkwMywxMSBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IChhezIwMDAwMDAwMDAsfSIpezIwMDAwMDAwMDAsfQorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfZmFsbGJhY2sKLSg2IHJvd3MpCisoNyByb3dzKQogCiAt LSBFeHBlY3RlZDogRmFsbGJhY2sgLSBtaW4gb3ZlcmZsb3cgKDIwMDAwMDAwMDAgKiAyMDAwMDAw MDAwID4gSU5UMzJfTUFYKQogLS0gVGVzdDogcHJlZml4IG1pc21hdGNoIGNhdXNlcyBvcHRpbWl6 YXRpb24gZmFsbGJhY2sKQEAgLTQ4NDgsMTAgKzQ5MjQsMTEgQEAgV0lORE9XIHcgQVMgKAogIFdp bmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIgKGMgZCkrCisg ICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBp ZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9mYWxsYmFjawotKDYgcm93cykKKyg3IHJv d3MpCiAKIC0tIEV4cGVjdGVkOiBGYWxsYmFjayAtIHByZWZpeCBlbGVtZW50cyBkb24ndCBtYXRj aCBHUk9VUCBjb250ZW50CiBEUk9QIFRBQkxFIHJwcl9mYWxsYmFjazsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKaW5kZXggZGMzMDc1ZTZiZDMuLjc3YWIyNWEyMjg5 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dApAQCAtMzYsNiAr MzYsNyBAQAogLS0gICBXaW5kb3cgRnVuY3Rpb24gQ29tYmluYXRpb25zCiAtLSAgIERFRklORSBF eHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tICAgTGFyZ2UgU2NhbGUgU3RhdGlzdGljcyBWZXJpZmlj YXRpb24KKy0tICAgTmF2IE1hcmsgTG9va2JhY2sgKHR1cGxlc3RvcmUgdHJpbSkKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0gRmlsdGVyIGZ1bmN0aW9uIHRvIG5vcm1hbGl6ZSBwbGF0Zm9ybS1kZXBlbmRlbnQgbWVtb3J5 IHZhbHVlcyAobm90IE5GQSBzdGF0aXN0aWNzKS4KIC0tIE5GQSBzdGF0aXN0aWNzIHNob3VsZCBu b3QgY2hhbmdlIGJldHdlZW4gcGxhdGZvcm1zOyBpZiB0aGV5IGRvLCBpdCBjb3VsZApAQCAtMTQx LDEzICsxNDIsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAw LjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYgorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5G QSBTdGF0ZXM6IDIgcGVhaywgMTAxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAy IHBlYWssIDEwMSB0b3RhbCwgNjAgcHJ1bmVkCiAgICBORkE6IDIwIG1hdGNoZWQgKGxlbiAyLzIv Mi4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQgKGxlbiAx LzEvMS4wKQogICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAw LjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFBhdHRlcm4gd2l0aCBubyBt YXRjaGVzIC0gMCBtYXRjaGVkCiBDUkVBVEUgVklFVyBycHJfZXZfYmFzaWNfbm9tYXRjaCBBUwpA QCAtMTgwLDEyICsxODIsMTMgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IHggeSB6CisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5r QgogICAgTkZBIFN0YXRlczogMSBwZWFrLCAxMDEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29u dGV4dHM6IDIgcGVhaywgMTAxIHRvdGFsLCAxMDAgcHJ1bmVkCiAgICBORkE6IDAgbWF0Y2hlZCwg MCBtaXNtYXRjaGVkCiAgICAtPiAgU2VxIFNjYW4gb24gcnByX25mYV90ZXN0IChhY3R1YWwgcm93 cz0xMDAuMDAgbG9vcHM9MSkKLSg4IHJvd3MpCisoOSByb3dzKQogCiAtLSBQYXR0ZXJuIG1hdGNo aW5nIGV2ZXJ5IHJvdyAtIGhpZ2ggbWF0Y2ggY291bnQKIENSRUFURSBWSUVXIHJwcl9ldl9iYXNp Y19hbGxyb3dzIEFTCkBAIC0yMTgsMTIgKzIyMSwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93 QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjog cgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBT dG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDIgcGVhaywgMTAxIHRvdGFsLCAwIG1lcmdlZAog ICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMTAw IG1hdGNoZWQgKGxlbiAxLzEvMS4wKSwgMCBtaXNtYXRjaGVkCiAgICAtPiAgU2VxIFNjYW4gb24g cnByX25mYV90ZXN0IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg4IHJvd3MpCisoOSBy b3dzKQogCiAtLSBSZWdyZXNzaW9uIHRlc3Q6IFNwYWNlIGJlZm9yZSBwYXJlbnRoZXNpcyBpbiBw YXR0ZXJuIGRlcGFyc2UKIC0tIFZlcmlmaWVzIHRoYXQgIkEgKEIgfCBDKSIgY29ycmVjdGx5IG91 dHB1dHMgYXMgImEgKGIgfCBjKSIgd2l0aCBzcGFjZQpAQCAtMjU1LDEzICsyNTksMTQgQEAgV0lO RE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkKICAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogYSAoYiB8IGMpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAg U3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBw ZWFrLCAzNSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAyMSB0b3Rh bCwgNiBwcnVuZWQKICAgIE5GQTogNyBtYXRjaGVkIChsZW4gMi8yLzIuMCksIDAgbWlzbWF0Y2hl ZAogICAgTkZBOiAwIGFic29yYmVkLCA3IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3Bz PTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFJlZ3Jlc3Npb24gdGVzdDogU2VxdWVudGlh bCBhbHRlcm5hdGlvbnMgYXQgc2FtZSBkZXB0aAogLS0gVmVyaWZpZXMgdGhhdCAiKChCIHwgQykg KEQgfCBFKSkiIGNvcnJlY3RseSBvdXRwdXRzIGFzICIoYiB8IGMpIChkIHwgZSkiCkBAIC0yOTQs MTIgKzI5OSwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4w MCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhICgoYiB8IGMpIChkIHwgZSkpKgor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgNjEgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDMgcGVhaywgMzEgdG90YWwsIDI0IHBydW5lZAogICAgTkZBOiA2IG1hdGNo ZWQgKGxlbiAxLzEvMS4wKSwgMCBtaXNtYXRjaGVkCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKLSg4IHJvd3MpCiso OSByb3dzKQogCiAtLSBSZWdyZXNzaW9uIHRlc3Q6IFF1b3RlZCBpZGVudGlmaWVycyBpbiBFWFBM QUlOIHBhdHRlcm4gZGVwYXJzZQogLS0gTWl4ZWQgY2FzZSBuYW1lcyBtdXN0IGJlIHF1b3RlZCB0 byBwcmVzZXJ2ZSByb3VuZC10cmlwIHNhZmV0eQpAQCAtMzE3LDggKzMyMyw5IEBAIFdJTkRPVyB3 IEFTICgKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogIlN0YXJ0IiAiVXAiKwor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzCi0oNCByb3dzKQorKDUgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTdGF0ZSBTdGF0aXN0 aWNzIFRlc3RzIChwZWFrLCB0b3RhbCwgbWVyZ2VkKQpAQCAtMzU0LDEyICszNjEsMTMgQEAgV0lO RE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFn ZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA3 NiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA1MSB0b3RhbCwgMjUg cHJ1bmVkCiAgICBORkE6IDI1IG1hdGNoZWQgKGxlbiAxLzEvMS4wKSwgMCBtaXNtYXRjaGVkCiAg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAu MDAgbG9vcHM9MSkKLSg4IHJvd3MpCisoOSByb3dzKQogCiAtLSBBbHRlcm5hdGlvbiBwYXR0ZXJu IC0gbXVsdGlwbGUgc3RhdGUgYnJhbmNoZXMKIENSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHQg QVMKQEAgLTM5NiwxMyArNDA0LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVh bCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIgfCBj KSAoZCB8IGUpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBN YXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNiBwZWFrLCA1MjQgdG90YWwsIDAg bWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCAyMCBwcnVuZWQKICAg IE5GQTogMjAgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCA0MCBtaXNtYXRjaGVkIChsZW4gMi8yLzIu MCkKICAgIE5GQTogMCBhYnNvcmJlZCwgMjAgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAg U2VxIFNjYW4gb24gcnByX25mYV90ZXN0IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5 IHJvd3MpCisoMTAgcm93cykKIAogLS0gQ29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBzdGF0ZSBj b3VudAogQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2NvbXBsZXggQVMKQEAgLTQ0MSwxMyArNDUw LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29w cz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYiogYysKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEg U3RhdGVzOiA1IHBlYWssIDIzNSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBw ZWFrLCAxMDEgdG90YWwsIDM0IHBydW5lZAogICAgTkZBOiAzMyBtYXRjaGVkIChsZW4gMy8zLzMu MCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAzMyBza2lwcGVkIChsZW4gMS8x LzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gR3JvdXBlZCBw YXR0ZXJuIHdpdGggcXVhbnRpZmllciAtIHN0YXRlIGNvdW50IHdpdGggZ3JvdXBpbmcKIENSRUFU RSBWSUVXIHJwcl9ldl9zdGF0ZV9ncm91cF9xdWFudCBBUwpAQCAtNDgwLDEzICs0OTAsMTQgQEAg V0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczog NCBwZWFrLCA5MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA2MSB0 b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gNjAvNjAvNjAuMCksIDAgbWlz bWF0Y2hlZAogICAgTkZBOiAyOSBhYnNvcmJlZCAobGVuIDIvMi8yLjApLCAzMCBza2lwcGVkIChs ZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChh Y3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBTdGF0 ZSBleHBsb3Npb24gcGF0dGVybiAtIG1hbnkgYWx0ZXJuYXRpb25zCiAtLSBQYXR0ZXJuIChBfEIp KEF8QikoQXxCKShBfEIpIGNhbiBjcmVhdGUgbWFueSBwYXJhbGxlbCBzdGF0ZXMKQEAgLTUyMCwx MyArNTMxLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4w MCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIpezh9CisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgog ICAgTkZBIFN0YXRlczogMTcgcGVhaywgOTk1IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRl eHRzOiA4IHBlYWssIDEwMSB0b3RhbCwgMSBwcnVuZWQKICAgIE5GQTogMTIgbWF0Y2hlZCAobGVu IDgvOC84LjApLCAzIG1pc21hdGNoZWQgKGxlbiAyLzQvMy4wKQogICAgTkZBOiAwIGFic29yYmVk LCA4NCBza2lwcGVkIChsZW4gMS83LzQuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAg cm93cykKIAogLS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZvbGxvd2VkIGJ5IGRpZmZlcmVudCBB TFQKIC0tIFRlc3RzIG1lcmdlQ29uc2VjdXRpdmVBbHRzIGZsdXNoIG9uIEFMVCBjaGFuZ2U6IChB fEIpezJ9IChDfEQpCkBAIC01NjAsMTMgKzU3MiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93 QWdnIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAo YSB8IGIpezJ9IChjIHwgZCkKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBN ZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA3IHBlYWssIDE4MSB0 b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA0MSB0b3RhbCwgMTIgcHJ1 bmVkCiAgICBORkE6IDkgbWF0Y2hlZCAobGVuIDMvMy8zLjApLCAxIG1pc21hdGNoZWQgKGxlbiAy LzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVkLCAxOCBza2lwcGVkIChsZW4gMS8yLzEuNSkKICAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00MC4w MCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBDb25zZWN1dGl2ZSBBTFQgbWVy Z2UgZm9sbG93ZWQgYnkgbm9uLUFMVCBlbGVtZW50CiAtLSBUZXN0cyBtZXJnZUNvbnNlY3V0aXZl QWx0cyBmbHVzaCBvbiBub24tQUxUOiAoQXxCKXsyfSBjCkBAIC02MDAsMTMgKzYxMywxNCBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQogICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIpezJ9IGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVz OiA2IHBlYWssIDE3NyB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA0 MSB0b3RhbCwgMiBwcnVuZWQKICAgIE5GQTogMTIgbWF0Y2hlZCAobGVuIDMvMy8zLjApLCAyIG1p c21hdGNoZWQgKGxlbiAyLzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVkLCAyNCBza2lwcGVkIChs ZW4gMS8yLzEuNSkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChh Y3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBBTFQg cHJlZml4L3N1ZmZpeCBhYnNvcmJlZCBpbnRvIEdST1VQOiAoQXxCKSAoQXxCKSsgKEF8QikgLT4g KEF8Qil7Myx9CiBDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X2Fic29yYl9ncm91cCBBUwpA QCAtNjM5LDEzICs2NTMsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9NDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKXszLH0KKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCiAgICBORkEgU3RhdGVzOiA3IHBlYWssIDI0MyB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogMyBwZWFrLCA0MSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVk IChsZW4gNDAvNDAvNDAuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAzOSBz a2lwcGVkIChsZW4gMS8yLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nl cmllcyBzIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQog CiAtLSBIaWdoIHN0YXRlIGNvdW50IC0gYWx0ZXJuYXRpb24gd2l0aCBwbHVzIHF1YW50aWZpZXIK IENSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfcGx1cyBBUwpAQCAtNjc4LDEzICs2OTMsMTQg QEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEp CiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYiB8IGMpKyBkCisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZB IFN0YXRlczogMTYgcGVhaywgMTAwNCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czog NCBwZWFrLCAxMDEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDI1IG1hdGNoZWQgKGxlbiA0LzQv NC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDc1IHNraXBwZWQgKGxlbiAx LzMvMi4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTEwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBFYXJseSB0 ZXJtaW5hdGlvbjogZmlyc3QgQUxUIGJyYW5jaCAoQSkgcmVhY2hlcyBGSU4gaW1tZWRpYXRlbHks CiAtLSBwcnVuaW5nIHNlY29uZCBicmFuY2ggKEEgQispIGJlZm9yZSBpdCBjYW4gYWNjdW11bGF0 ZSBCIHJlcGV0aXRpb25zLgpAQCAtNzE4LDEyICs3MzQsMTMgQEAgV0lORE9XIHcgQVMgKAogIFdp bmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IChhIHwgYSBiKSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1v cnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA2IHBlYWssIDMwNiB0b3Rh bCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDk5IHBydW5l ZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiAxLzEvMS4wKSwgMCBtaXNtYXRjaGVkCiAgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxv b3BzPTEpCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gTmVzdGVkIHF1YW50aWZpZXJzIGNhdXNp bmcgc3RhdGUgZ3Jvd3RoCiBDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfbmVzdGVkX3F1YW50IEFT CkBAIC03NTYsMTMgKzc3MywxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwg cm93cz0xMDAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYikrCisg ICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3Jh Z2U6IE5rQgogICAgTkZBIFN0YXRlczogNiBwZWFrLCA1MDA0IHRvdGFsLCAwIG1lcmdlZAogICAg TkZBIENvbnRleHRzOiAzIHBlYWssIDEwMDEgdG90YWwsIDMzMyBwcnVuZWQKICAgIE5GQTogMzM0 IG1hdGNoZWQgKGxlbiAxLzIvMi4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQs IDMzMyBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEw IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gQ29udGV4dCBTdGF0aXN0aWNzIFRlc3RzIChwZWFrLCB0b3Rh bCwgcHJ1bmVkICsgYWJzb3JiZWQvc2tpcHBlZCkKQEAgLTc5OCwxMyArODE2LDE0IEBAIFdJTkRP VyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5k b3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFn ZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA5 MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA1MSB0b3RhbCwgMCBw cnVuZWQKICAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKICAg IE5GQTogMzAgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMTAgc2tpcHBlZCAobGVuIDEvMS8xLjAp CiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9 NTAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gTm8gYWJzb3JwdGlvbiAt IGJvdW5kZWQgcXVhbnRpZmllcgogQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19hYnNvcmIgQVMK QEAgLTgzNywxMyArODU2LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCBy b3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7Miw0fSBiCisgICBO YXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6 IE5rQgogICAgTkZBIFN0YXRlczogNyBwZWFrLCAxMDEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEg Q29udGV4dHM6IDUgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQg KGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDQwIHNraXBw ZWQgKGxlbiAxLzQvMi41KQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0t IENvbnRleHRzIHNraXBwZWQgYnkgU0tJUCBQQVNUIExBU1QgUk9XCiBDUkVBVEUgVklFVyBycHJf ZXZfY3R4X3NraXAgQVMKQEAgLTg3NiwxMyArODk2LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJu OiBhIGIgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4 aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDIgcGVhaywgMTAxIHRvdGFsLCAwIG1l cmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgODAgcHJ1bmVkCiAgICBO RkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJz b3JiZWQsIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQotKDkgcm93cykK KygxMCByb3dzKQogCiAtLSBIaWdoIGNvbnRleHQgYWJzb3JwdGlvbiAtIHVuYm91bmRlZCBncm91 cAogQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJfZ3JvdXAgQVMKQEAgLTkxNSwxMyArOTM2 LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29w cz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYicpKyIgYworICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5G QSBTdGF0ZXM6IDMgcGVhaywgMTM0IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAz IHBlYWssIDEwMSB0b3RhbCwgMzQgcHJ1bmVkCiAgICBORkE6IDMzIG1hdGNoZWQgKGxlbiAzLzMv My4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDMzIHNraXBwZWQgKGxlbiAx LzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTEwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBGaXhlZC1s ZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgQiBCKSsgQwogLS0gQiBCIG1lcmdlZCB0byBCezJ9 OyBhYnNvcmJhYmxlIHdpdGggZml4ZWQtbGVuZ3RoIGNoZWNrCkBAIC05NTYsMTMgKzk3OCwxNCBA QCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz03MC4wMCBsb29wcz0xKQog ICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYnsyfScpKyIgYworICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBT dGF0ZXM6IDMgcGVhaywgOTEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDQgcGVh aywgNzEgdG90YWwsIDQwIHBydW5lZAogICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gNy83LzcuMCks IDAgbWlzbWF0Y2hlZAogICAgTkZBOiAxMCBhYnNvcmJlZCAobGVuIDMvMy8zLjApLCAxMCBza2lw cGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz03MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAt LSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBF CiAtLSBzdGVwX3NpemUgPSAxICsgKDErMSkqMiArIDEgPSA2OyB2ICUgMTMgY3ljbGUgZ2l2ZXMg MiBpdGVyYXRpb25zICsgRQpAQCAtMTAwMCwxMyArMTAyMywxNCBAQCBXSU5ET1cgdyBBUyAoCiAg V2luZG93QWdnIChhY3R1YWwgcm93cz02NS4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0 ZXJuOiAoYScgKGInIGMnKXsyfScgZCcpKyIgZQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMg cGVhaywgNzYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDQgcGVhaywgNjYgdG90 YWwsIDUwIHBydW5lZAogICAgTkZBOiA1IG1hdGNoZWQgKGxlbiAxMy8xMy8xMy4wKSwgMCBtaXNt YXRjaGVkCiAgICBORkE6IDUgYWJzb3JiZWQgKGxlbiA2LzYvNi4wKSwgNSBza2lwcGVkIChsZW4g MS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1 YWwgcm93cz02NS4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBEb3VibHkg bmVzdGVkIGZpeGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoKEIgQ3szfSl7Mn0gRCl7 Mn0gRSkrIEYKIC0tIHN0ZXBfc2l6ZSA9IDEgKyAoKDErMykqMisxKSoyICsgMSA9IDIwOyB2ICUg NDEgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsgRgpAQCAtMTA1MiwxMyArMTA3NiwxNCBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz04Mi4wMCBsb29wcz0xKQogICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgKChiJyBjezN9Jyl7Mn0nIGQnKXsyfScgZScpKyIgZgor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgODcgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDQgcGVhaywgODMgdG90YWwsIDc2IHBydW5lZAogICAgTkZBOiAyIG1hdGNo ZWQgKGxlbiA0MS80MS80MS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDIgYWJzb3JiZWQgKGxl biAyMC8yMC8yMC4wKSwgMiBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz04Mi4wMCBsb29wcz0xKQotKDkg cm93cykKKygxMCByb3dzKQogCiAtLSAzLWxldmVsIEVORCBjaGFpbiBhYnNvcnB0aW9uOiAoKEEg KEIgQyl7Mn0pezJ9KSsKIC0tIHN0ZXBfc2l6ZSA9ICgxICsgKDErMSkqMikgKiAyID0gMTA7IHYg JSAyMSBjeWNsZSBnaXZlcyAyIGl0ZXJhdGlvbnMKQEAgLTEwOTcsMTMgKzExMjIsMTQgQEAgV0lO RE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDIuMDAgbG9vcHM9MSkKICAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogKChhJyAoYicgYycpezJ9Jyl7Mn0nKSsiCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAg TkZBIFN0YXRlczogNSBwZWFrLCA0NyB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czog NSBwZWFrLCA0MyB0b3RhbCwgMzAgcHJ1bmVkCiAgICBORkE6IDIgbWF0Y2hlZCAobGVuIDIwLzIw LzIwLjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMiBhYnNvcmJlZCAobGVuIDEwLzEwLzEwLjAp LCA4IHNraXBwZWQgKGxlbiAxLzUvMy4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQyLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJv d3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0gTWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMKQEAgLTExNDMs MTMgKzExNjksMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAw LjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYiBjIGQgZQorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IK ICAgIE5GQSBTdGF0ZXM6IDIgcGVhaywgMTAxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRl eHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgNjAgcHJ1bmVkCiAgICBORkE6IDIwIG1hdGNoZWQgKGxl biA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQg KGxlbiAxLzEvMS4wKQogICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJv d3M9MTAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFZhcmlhYmxlIGxl bmd0aCBtYXRjaGVzIC0gbWluL21heC9hdmcgZGlmZmVyCiBDUkVBVEUgVklFVyBycHJfZXZfbWxl bl92YXJpYWJsZSBBUwpAQCAtMTE4MiwxMyArMTIwOSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2lu ZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVy bjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDE5MSB0b3RhbCwgMCBt ZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAxMDEgdG90YWwsIDAgcHJ1bmVkCiAgICBO RkE6IDEwIG1hdGNoZWQgKGxlbiAxMC8xMC8xMC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDgw IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBs b29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBWZXJ5IGxvbmcgbWF0Y2hlcwogQ1JF QVRFIFZJRVcgcnByX2V2X21sZW5fbG9uZyBBUwpAQCAtMTIyMSwxMyArMTI0OSwxNCBAQCBXSU5E T1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0yMDAuMDAgbG9vcHM9MSkKICAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9y YWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWss IDM5NiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAyMDEgdG90YWws IDQgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hlZCAobGVuIDE5Ni8xOTYvMTk2LjApLCAwIG1pc21h dGNoZWQKICAgIE5GQTogMTk0IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEgc2tpcHBlZCAobGVu IDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0 dWFsIHJvd3M9MjAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFVuaWZv cm0gbWF0Y2ggbGVuZ3RoIHdpdGggbWlzbWF0Y2hlcyBmcm9tIGdhcCByb3dzICh2JTIwID0gMTEu LjE1KQogQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fd2l0aF9taXNtYXRjaCBBUwpAQCAtMTI2NCwx MyArMTI5MywxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAu MDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBO RkEgU3RhdGVzOiAzIHBlYWssIDE3MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czog MyBwZWFrLCAxMDEgdG90YWwsIDI1IHBydW5lZAogICAgTkZBOiA1IG1hdGNoZWQgKGxlbiA1LzUv NS4wKSwgNSBtaXNtYXRjaGVkIChsZW4gMTEvMTEvMTEuMCkKICAgIE5GQTogNjAgYWJzb3JiZWQg KGxlbiAxLzEvMS4wKSwgNSBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5 IHJvd3MpCisoMTAgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBNaXNtYXRjaCBMZW5ndGggU3RhdGlzdGlj cyBUZXN0cwpAQCAtMTMyMSwxMyArMTM1MSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdn IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsi IGIrIGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDE1MSB0b3RhbCwgMCBtZXJn ZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDYwIHBydW5lZAogICAgTkZB OiAxMCBtYXRjaGVkIChsZW4gNi82LzYuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAyMCBhYnNv cmJlZCAobGVuIDEvMS8xLjApLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9 MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gTG9uZyBwYXJ0aWFsIG1hdGNoZXMgdGhhdCBm YWlsCiBDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9sb25nX3BhcnRpYWwgQVMKQEAgLTEzODQsMTMg KzE0MTUsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAuMDAg bG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIrIGMKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBO RkEgU3RhdGVzOiAzIHBlYWssIDExNSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czog MyBwZWFrLCA2MSB0b3RhbCwgMTUgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hlZCAobGVuIDMwLzMw LzMwLjApLCAxIG1pc21hdGNoZWQgKGxlbiAyNi8yNi8yNi4wKQogICAgTkZBOiA0MiBhYnNvcmJl ZCAobGVuIDEvMS8xLjApLCAxIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIGkgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCi0o OSByb3dzKQorKDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gSlNPTiBGb3JtYXQgVGVzdHMKQEAgLTE0 MzQsNiArMTQ2Niw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAg ICAiV2luZG93IjogIncgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykiLCsKICAgICAgICAiUGF0dGVybiI6ICJhK1wiIGIrIiwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTmF2IE1hcmsgTG9v a2JhY2siOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK ICAgICAgICAiU3RvcmFnZSI6ICJNZW1vcnkiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKICAgICAgICAiTWF4aW11bSBTdG9yYWdlIjogMCwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICAiTkZBIFN0 YXRlcyBQZWFrIjogMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKQEAgLTE1MTEsNiArMTU0NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAiRGlzYWJs ZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKICAgICAgICAiV2luZG93IjogIncgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykiLCsKICAgICAgICAiUGF0dGVybiI6ICJhK1wiIGIiLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAi TmF2IE1hcmsgTG9va2JhY2siOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKICAgICAgICAiU3RvcmFnZSI6ICJNZW1vcnkiLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICAiTWF4aW11bSBTdG9yYWdl IjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAg ICAgICAiTkZBIFN0YXRlcyBQZWFrIjogMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKQEAgLTE1OTIsNiArMTYyNiw3IEBAIFdJTkRPVyB3IEFTICgKICAg ICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKICAgICAgICAiV2luZG93IjogIncgQVMgKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykiLCsKICAgICAgICAiUGF0dGVybiI6 ICJhIGIgYyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAiTmF2IE1hcmsgTG9va2JhY2siOiAwLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICAiU3RvcmFnZSI6ICJNZW1vcnkiLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICAiTWF4 aW11bSBTdG9yYWdlIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKICAgICAgICAiTkZBIFN0YXRlcyBQZWFrIjogMiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKQEAgLTE2NzIsNiArMTcwNyw3IEBAIFdJTkRP VyB3IEFTICgKICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICAiV2luZG93IjogIncgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykiLCsKICAgICAg ICAiUGF0dGVybiI6ICIoYSB8IGIpezh9IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAiTmF2IE1hcmsgTG9va2JhY2siOiAwLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICAiU3RvcmFnZSI6ICJN ZW1vcnkiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK ICAgICAgICAiTWF4aW11bSBTdG9yYWdlIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKICAgICAgICAiTkZBIFN0YXRlcyBQZWFrIjogMTcsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKQEAgLTE3NTUsNiArMTc5 MSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICA8RGlzYWJsZWQ+ZmFsc2U8L0Rpc2FibGVkPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgPFdp bmRvdz53IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpPC9XaW5kb3c+KwogICAgICAgIDxQYXR0ZXJuPmEgYjwvUGF0dGVybj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8TmF2LU1hcmst TG9va2JhY2s+MDwvTmF2LU1hcmstTG9va2JhY2s+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCiAgICAgICAgPFN0b3JhZ2U+TWVtb3J5PC9TdG9yYWdlPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgICAgIDxNYXhpbXVtLVN0b3JhZ2U+ MDwvTWF4aW11bS1TdG9yYWdlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK ICAgICAgICA8TkZBLVN0YXRlcy1QZWFrPjI8L05GQS1TdGF0ZXMtUGVhaz4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCkBAIC0xODM3LDYgKzE4NzQsNyBAQCBXSU5ET1cgdyBB UyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz05MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3 IEFTIChQQVJUSVRJT04gQlkgcC5wIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRl czogMyBwZWFrLCAxNjUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywg OTMgdG90YWwsIDAgcHJ1bmVkCkBAIC0xODQ4LDcgKzE4ODYsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTkwLjAwIGxvb3BzPTEpCiAgICAg ICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcCAoYWN0dWFs IHJvd3M9My4wMCBsb29wcz0xKQogICAgICAgICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHYgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTMpCi0oMTQgcm93cykK KygxNSByb3dzKQogCiAtLSBEaWZmZXJlbnQgcGF0dGVybiBiZWhhdmlvciBwZXIgcGFydGl0aW9u CiBDUkVBVEUgVklFVyBycHJfZXZfcGFydF9kaWZmIEFTCkBAIC0xODkzLDYgKzE5MzEsNyBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogICAg V2luZG93OiB3IEFTIChQQVJUSVRJT04gQlkgKENBU0UgV0hFTiAodi52IDw9IDI1KSBUSEVOIDEg RUxTRSAyIEVORCkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9y YWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWss IDc3IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDUyIHRvdGFsLCAy MSBwcnVuZWQKQEAgLTE5MDIsNyArMTk0MSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgIFNv cnQgS2V5OiAoQ0FTRSBXSEVOICh2LnYgPD0gMjUpIFRIRU4gMSBFTFNFIDIgRU5EKQogICAgICAg ICAgU29ydCBNZXRob2Q6IHF1aWNrc29ydCAgTWVtb3J5OiBOa0IKICAgICAgICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyB2IChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0x KQotKDEyIHJvd3MpCisoMTMgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBFZGdlIENhc2VzCkBAIC0xOTM4 LDggKzE5NzcsOSBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0wLjAw IGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYgorICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz0wLjAwIGxvb3BzPTEpCi0oNCByb3dzKQorKDUgcm93cykKIAogLS0gU2luZ2xlIHJvdwog Q1JFQVRFIFZJRVcgcnByX2V2X2VkZ2Vfc2luZ2xlX3JvdyBBUwpAQCAtMTk3MiwxMiArMjAxMiwx MyBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xLjAwIGxvb3BzPTEp CiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKICAgIFBhdHRlcm46IGEKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBT dG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAyIHBl YWssIDIgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMiB0b3RhbCwg MCBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0Y2hlZAog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEu MDAgbG9vcHM9MSkKLSg4IHJvd3MpCisoOSByb3dzKQogCiAtLSBQYXR0ZXJuIGxvbmdlciB0aGFu IGRhdGEKIENSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3BhdHRlcm5fbG9uZ2VyIEFTCkBAIC0yMDE0 LDEyICsyMDU1LDEzIEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUu MDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiIGMgZCBlIGYgZyBoIGkgagor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDIgcGVhaywgNiB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogMyBwZWFrLCA2IHRvdGFsLCA0IHBydW5lZAogICAgTkZBOiAwIG1hdGNoZWQs IDEgbWlzbWF0Y2hlZCAobGVuIDUvNS81LjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NS4wMCBsb29wcz0xKQotKDggcm93cykKKyg5IHJv d3MpCiAKIC0tIEFsbCByb3dzIG1hdGNoIGFzIHNpbmdsZSBtYXRjaAogQ1JFQVRFIFZJRVcgcnBy X2V2X2VkZ2Vfc2luZ2xlX21hdGNoIEFTCkBAIC0yMDUyLDEzICsyMDk0LDE0IEBAIFdJTkRPVyB3 IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6 IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgMTAxIHRv dGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDUxIHRvdGFsLCAwIHBydW5l ZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA1MC81MC81MC4wKSwgMCBtaXNtYXRjaGVkCiAgICBO RkE6IDQ5IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDAgc2tpcHBlZAogICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCi0o OSByb3dzKQorKDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQ29tcGxleCBQYXR0ZXJuIFRlc3RzCkBA IC0yMDk0LDEzICsyMTM3LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCBy b3dzPTYwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhJyBiJyBjJykrIgor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgODEgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDQgcGVhaywgNjEgdG90YWwsIDIwIHBydW5lZAogICAgTkZBOiAxIG1hdGNo ZWQgKGxlbiA2MC82MC82MC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDE5IGFic29yYmVkIChs ZW4gMy8zLzMuMCksIDIwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCi0oOSBy b3dzKQorKDEwIHJvd3MpCiAKIC0tIE11bHRpcGxlIGFsdGVybmF0aW9ucwogQ1JFQVRFIFZJRVcg cnByX2V2X2NweF9tdWx0aV9hbHQgQVMKQEAgLTIxMzcsMTMgKzIxODEsMTQgQEAgV0lORE9XIHcg QVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6 IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IChhIHwgYikgKGMgfCBkIHwgZSkKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVz OiA2IHBlYWssIDQyMyB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAx MDEgdG90YWwsIDQwIHBydW5lZAogICAgTkZBOiAyMCBtYXRjaGVkIChsZW4gMi8yLzIuMCksIDIw IG1pc21hdGNoZWQgKGxlbiAyLzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVkLCAyMCBza2lwcGVk IChsZW4gMS8xLzEuMCkKICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFjdHVhbCBy b3dzPTEwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBPcHRpb25hbCBl bGVtZW50cwogQ1JFQVRFIFZJRVcgcnByX2V2X2NweF9vcHRpb25hbCBBUwpAQCAtMjE3NiwxMyAr MjIyMSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBs b29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGI/IGMKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEg U3RhdGVzOiAzIHBlYWssIDY0IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBl YWssIDUxIHRvdGFsLCAyNSBwcnVuZWQKICAgIE5GQTogMTIgbWF0Y2hlZCAobGVuIDMvMy8zLjAp LCAxIG1pc21hdGNoZWQgKGxlbiAyLzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVkLCAxMiBza2lw cGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAt LSBCb3VuZGVkIHF1YW50aWZpZXJzCiBDUkVBVEUgVklFVyBycHJfZXZfY3B4X2JvdW5kZWQgQVMK QEAgLTIyMTUsMTMgKzIyNjEsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7Miw1fSBiCisg ICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3Jh Z2U6IE5rQgogICAgTkZBIFN0YXRlczogOSBwZWFrLCAzMTEgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDcgcGVhaywgMTAxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxMCBtYXRj aGVkIChsZW4gNi82LzYuMCksIDQwIG1pc21hdGNoZWQgKGxlbiA2LzYvNi4wKQogICAgTkZBOiAw IGFic29yYmVkLCA1MCBza2lwcGVkIChsZW4gMS81LzMuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2Fu IG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJv d3MpCisoMTAgcm93cykKIAogLS0gU3RhciBxdWFudGlmaWVyCiBDUkVBVEUgVklFVyBycHJfZXZf Y3B4X3N0YXIgQVMKQEAgLTIyNTQsMTMgKzIzMDEsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRv d0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjog YSBiKiBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA5MSB0b3RhbCwgMCBtZXJn ZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA1MSB0b3RhbCwgNDAgcHJ1bmVkCiAgICBORkE6 IDUgbWF0Y2hlZCAobGVuIDkvOS85LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJl ZCwgNSBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCBy b3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIFJlYWwtd29ybGQgUGF0dGVybiBFeGFtcGxlcwpAQCAtMjI5Niwx MyArMjM0NCwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4w MCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBkKyIgdSsKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBO RkEgU3RhdGVzOiA0IHBlYWssIDU4IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAz IHBlYWssIDMxIHRvdGFsLCAzIHBydW5lZAogICAgTkZBOiAzIG1hdGNoZWQgKGxlbiAzLzE0Lzgu MCksIDEgbWlzbWF0Y2hlZCAobGVuIDMvMy8zLjApCiAgICBORkE6IDkgYWJzb3JiZWQgKGxlbiAx LzEvMS4wKSwgMTQgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgU2VxIFNjYW4gb24gcnBy X25mYV9jb21wbGV4IChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCBy b3dzKQogCiAtLSBTdG9jayBwcmljZSBwYXR0ZXJuIC0gcGVhayAodXAsIHN0YWJsZSwgZG93bikK IENSRUFURSBWSUVXIHJwcl9ldl9yZWFsX3BlYWsgQVMKQEAgLTIzMzUsMTMgKzIzODQsMTQgQEAg V0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogdSsiIHMqIGQrCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczog NSBwZWFrLCA3NiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAzMSB0 b3RhbCwgMSBwcnVuZWQKICAgIE5GQTogNCBtYXRjaGVkIChsZW4gMy8xMS83LjIpLCAwIG1pc21h dGNoZWQKICAgIE5GQTogMTIgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMTMgc2tpcHBlZCAobGVu IDEvMS8xLjApCiAgICAtPiAgU2VxIFNjYW4gb24gcnByX25mYV9jb21wbGV4IChhY3R1YWwgcm93 cz0zMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBDb25zZWN1dGl2ZSBp bmNyZWFzaW5nIHZhbHVlcyAodXNpbmcgUFJFVikKIENSRUFURSBWSUVXIHJwcl9ldl9yZWFsX2lu Y3JlYXNpbmcgQVMKQEAgLTIzNzQsMTMgKzI0MjQsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRv d0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjog YXszLH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMQogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA5OSB0b3RhbCwgMCBtZXJn ZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTog MSBtYXRjaGVkIChsZW4gNTAvNTAvNTAuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiA0OSBhYnNv cmJlZCAobGVuIDEvMS8xLjApLCAwIHNraXBwZWQKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygx MCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIFBlcmZvcm1hbmNlLW9yaWVudGVkIFRlc3RzCkBAIC0yNDE2 LDEzICsyNDY3LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEw MDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAg TkZBIFN0YXRlczogMiBwZWFrLCAxMDAxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRz OiAyIHBlYWssIDEwMDEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDUwMCBtYXRjaGVkIChsZW4g Mi8yLzIuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCA1MDAgc2tpcHBlZCAo bGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9MTAwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBM YXJnZSBkYXRhc2V0IHdpdGggYWJzb3JwdGlvbgogQ1JFQVRFIFZJRVcgcnByX2V2X3BlcmZfbGFy Z2VfYWJzb3JiIEFTCkBAIC0yNDU1LDEzICsyNTA3LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTEwMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVy bjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDE5OTEgdG90YWwsIDAg bWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMTAwMSB0b3RhbCwgMCBwcnVuZWQKICAg IE5GQTogMTAgbWF0Y2hlZCAobGVuIDEwMC8xMDAvMTAwLjApLCAwIG1pc21hdGNoZWQKICAgIE5G QTogOTgwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEw MDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gSGlnaCBzdGF0ZSBtZXJn ZSByYXRpbwogQ1JFQVRFIFZJRVcgcnByX2V2X3BlcmZfaGlnaF9tZXJnZSBBUwpAQCAtMjQ5NCwx MyArMjU0NywxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01MDAu MDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKSsgYworICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IK ICAgIE5GQSBTdGF0ZXM6IDkgcGVhaywgMzAwNiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogMyBwZWFrLCA1MDEgdG90YWwsIDEgcHJ1bmVkCiAgICBORkE6IDE2NiBtYXRjaGVkIChs ZW4gMy8zLzMuMCksIDEgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjApCiAgICBORkE6IDAgYWJzb3Ji ZWQsIDMzMiBza2lwcGVkIChsZW4gMS8yLzEuNSkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCiso MTAgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLSBJTklUSUFMIHZzIG5vIElOSVRJQUwgY29tcGFyaXNvbgpA QCAtMjUzOCwxMyArMjU5MiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwg cm93cz01MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2 IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBO a0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgOTEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29u dGV4dHM6IDIgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQgKGxl biA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDMwIGFic29yYmVkIChsZW4gMS8xLzEu MCksIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEw IHJvd3MpCiAKIC0tIFdpdGhvdXQgSU5JVElBTCBrZXl3b3JkIChzYW1lIGJlaGF2aW9yIGN1cnJl bnRseSkKIENSRUFURSBWSUVXIHJwcl9ldl9pbml0aWFsX3dpdGhvdXQgQVMKQEAgLTI1NzcsMTMg KzI2MzIsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAg bG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEg U3RhdGVzOiAzIHBlYWssIDkxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBl YWssIDUxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gNS81LzUuMCks IDAgbWlzbWF0Y2hlZAogICAgTkZBOiAzMCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxMCBza2lw cGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tIFF1YW50aWZpZXIgVmFyaWF0aW9ucwpAQCAtMjYxOSwxMyArMjY3NSwxNCBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQogICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9y YWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWss IDcxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDQxIHRvdGFsLCAx MCBwcnVuZWQKICAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDMvMy8zLjApLCAwIG1pc21hdGNoZWQK ICAgIE5GQTogMjAgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMCBza2lwcGVkCiAgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9 MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gU3RhciBxdWFudGlmaWVyICh6ZXJvIG9yIG1v cmUpCiBDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfc3RhciBBUwpAQCAtMjY1OCwxMyArMjcxNSwx NCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0x KQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKiIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAK ICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6 IDQgcGVhaywgMTAyIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDQx IHRvdGFsLCAxMCBwcnVuZWQKICAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDMvMy8zLjApLCAwIG1p c21hdGNoZWQKICAgIE5GQTogMTAgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMTAgc2tpcHBlZCAo bGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gUXVl c3Rpb24gbWFyayAoemVybyBvciBvbmUpCiBDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfcXVlc3Rp b24gQVMKQEAgLTI2OTcsMTMgKzI3NTUsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAo YWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYT8gYiBj CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0 b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNCBwZWFrLCA4MiB0b3RhbCwgMCBtZXJnZWQKICAg IE5GQSBDb250ZXh0czogMyBwZWFrLCA0MSB0b3RhbCwgMTAgcHJ1bmVkCiAgICBORkE6IDEwIG1h dGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDIw IHNraXBwZWQgKGxlbiAxLzIvMS41KQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3Mp CiAKIC0tIEV4YWN0IGNvdW50IHtufQogQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X2V4YWN0IEFT CkBAIC0yNzM2LDEzICsyNzk1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVh bCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7M30gYgorICAg TmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdl OiBOa0IKICAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgNTEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEg Q29udGV4dHM6IDUgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQg KGxlbiA0LzQvNC4wKSwgMTAgbWlzbWF0Y2hlZCAobGVuIDQvNC80LjApCiAgICBORkE6IDAgYWJz b3JiZWQsIDMwIHNraXBwZWQgKGxlbiAxLzMvMi4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQor KDEwIHJvd3MpCiAKIC0tIFJhbmdlIHtuLG19CiBDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfcmFu Z2UgQVMKQEAgLTI3NzUsMTMgKzI4MzUsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAo YWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYXsyLDR9 IGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0g U3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA3IHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQK ICAgIE5GQSBDb250ZXh0czogNSBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMTAg bWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwg NDAgc2tpcHBlZCAobGVuIDEvNC8yLjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93 cykKIAogLS0gQXQgbGVhc3Qge24sfQogQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X2F0bGVhc3Qg QVMKQEAgLTI4MTQsMTMgKzI4NzUsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0 dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYXszLH0iIGIK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDg2IHRvdGFsLCAwIG1lcmdlZAogICAg TkZBIENvbnRleHRzOiAyIHBlYWssIDUxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiA1IG1hdGNo ZWQgKGxlbiAxMC8xMC8xMC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDQwIGFic29yYmVkIChs ZW4gMS8xLzEuMCksIDUgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJv d3MpCisoMTAgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBSZWdyZXNzaW9uIFRlc3RzIGZvciBTdGF0aXN0 aWNzIEFjY3VyYWN5CkBAIC0yODU3LDEzICsyOTE5LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCAzNyB0b3RhbCwgMCBtZXJn ZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAyMSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTog NCBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAxMiBhYnNvcmJl ZCAobGVuIDEvMS8xLjApLCA0IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCi0o OSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFZlcmlmeSBjb250ZXh0IGNvdW50IHdpdGgga25vd24g YWJzb3JwdGlvbgogQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19jdHhfYWJzb3JiIEFTCkBAIC0yODk2 LDEzICsyOTU5LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTMw LjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiIGMKKyAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAg ICBORkEgU3RhdGVzOiAzIHBlYWssIDUyIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRz OiAzIHBlYWssIDMxIHRvdGFsLCA2IHBydW5lZAogICAgTkZBOiAzIG1hdGNoZWQgKGxlbiA5Lzkv OS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDE4IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDMg c2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9z ZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykK IAogLS0gVmVyaWZ5IG1hdGNoIGxlbmd0aCB3aXRoIGZpeGVkLWxlbmd0aCBwYXR0ZXJuCiBDUkVB VEUgVklFVyBycHJfZXZfcmVnX21hdGNobGVuIEFTCkBAIC0yOTM1LDEzICsyOTk5LDE0IEBAIFdJ TkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCiAgICBX aW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IGEgYiBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMiBwZWFr LCAzMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAzMSB0b3RhbCwg MTAgcHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBtaXNtYXRjaGVk CiAgICBORkE6IDAgYWJzb3JiZWQsIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3Bz PTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQWx0ZXJuYXRpb24gUGF0dGVy biBUZXN0cwpAQCAtMjk3NywxMyArMzA0MiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdn IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEg fCBiKSBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNCBwZWFrLCAzMDMgdG90YWwsIDAgbWVy Z2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCA0MCBwcnVuZWQKICAgIE5G QTogMjAgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCAyMCBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkK ICAgIE5GQTogMCBhYnNvcmJlZCwgMjAgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgU2Vx IFNjYW4gb24gcnByX25mYV90ZXN0IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJv d3MpCisoMTAgcm93cykKIAogLS0gTXVsdGlwbGUgaXRlbXMgaW4gYWx0ZXJuYXRpb24KIENSRUFU RSBWSUVXIHJwcl9ldl9hbHRfbXVsdGlfaXRlbSBBUwpAQCAtMzAyMCwxMyArMzA4NiwxNCBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiIHwgYyB8IGQpIGUKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEg U3RhdGVzOiA2IHBlYWssIDUwNSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBw ZWFrLCAxMDEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDIwIG1hdGNoZWQgKGxlbiAyLzIvMi4w KSwgNjAgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjApCiAgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNr aXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0 dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIEFsdGVy bmF0aW9uIHdpdGggcXVhbnRpZmllcnMKIENSRUFURSBWSUVXIHJwcl9ldl9hbHRfd2l0aF9xdWFu dCBBUwpAQCAtMzA1OSwxMyArMzEyNiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChh Y3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIp KyBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVt IFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogOSBwZWFrLCAzMDYgdG90YWwsIDAgbWVyZ2Vk CiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNTEgdG90YWwsIDEgcHJ1bmVkCiAgICBORkE6IDE2 IG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5G QTogMCBhYnNvcmJlZCwgMzIgc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5 IHJvd3MpCisoMTAgcm93cykKIAogLS0gTXVsdGlwbGUgYWx0ZXJuYXRpdmVzICg0KykKIENSRUFU RSBWSUVXIHJwcl9ldl9hbHRfZm91cl9wbHVzIEFTCkBAIC0zMDk2LDEyICszMTY0LDEzIEBAIFdJ TkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIgfCBjIHwgZCB8IGUpCisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZB IFN0YXRlczogNyBwZWFrLCA2MDYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIg cGVhaywgMTAxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxMDAgbWF0Y2hlZCAobGVuIDEvMS8x LjApLCAwIG1pc21hdGNoZWQKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg4IHJvd3MpCisoOSByb3dzKQogCiAt LSBBbHRlcm5hdGlvbiBhdCBzdGFydAogQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9hdF9zdGFydCBB UwpAQCAtMzEzMiwxMyArMzIwMSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1 YWwgcm93cz02MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIpIGMg ZAorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBT dG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgMTgzIHRvdGFsLCAwIG1lcmdlZAog ICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDYxIHRvdGFsLCAxNiBwcnVuZWQKICAgIE5GQTogMTUg bWF0Y2hlZCAobGVuIDMvMy8zLjApLCAxNCBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5G QTogMCBhYnNvcmJlZCwgMTUgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKLSg5 IHJvd3MpCisoMTAgcm93cykKIAogLS0gTXVsdGlwbGUgc2VxdWVudGlhbCBhbHRlcm5hdGlvbnMK IENSRUFURSBWSUVXIHJwcl9ldl9hbHRfc2VxdWVudGlhbCBBUwpAQCAtMzE2OSwxMiArMzIzOSwx MyBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9 MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKSBjIChkIHwgZSkgZgorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IK ICAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgMzM3IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRl eHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgNjcgcHJ1bmVkCiAgICBORkE6IDAgbWF0Y2hlZCwgMzMg bWlzbWF0Y2hlZCAobGVuIDIvNC8zLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93 cykKIAogLS0gUXVhbnRpZmllZCBhbHRlcm5hdGl2ZXMKIENSRUFURSBWSUVXIHJwcl9ldl9hbHRf cXVhbnRpZmllZCBBUwpAQCAtMzIwNSwxMyArMzI3NiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2lu ZG93QWdnIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJu OiAoYSsiIHwgYisiKSBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVt b3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNSBwZWFrLCAyMjMgdG90 YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNjEgdG90YWwsIDEgcHJ1bmVk CiAgICBORkE6IDIwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgMTkgbWlzbWF0Y2hlZCAobGVuIDIv Mi8yLjApCiAgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAw IGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIEFsdGVybmF0aW9uIGF0IGVuZAog Q1JFQVRFIFZJRVcgcnByX2V2X2FsdF9hdF9lbmQgQVMKQEAgLTMyNDIsMTMgKzMzMTQsMTQgQEAg V0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogYSBiIChjIHwgZCkKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVz OiAzIHBlYWssIDg5IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDYx IHRvdGFsLCAzMiBwcnVuZWQKICAgIE5GQTogMTQgbWF0Y2hlZCAobGVuIDMvMy8zLjApLCAwIG1p c21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMTQgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAu MDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gTmVzdGVkIEFMVCBhdCBzdGFy dCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAogLS0gUGF0dGVybjogKEEgKChCIHwgQykgRCB8 IEUpKSAtIHByZWNlZGluZyBWQVIgKyBpbm5lciBBTFQgYXMgZmlyc3QgYnJhbmNoIGVsZW1lbnQK QEAgLTMyODAsMTIgKzMzNTMsMTMgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9MjAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSAoKGIgfCBjKSBk IHwgZSkKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDM3IHRvdGFsLCAwIG1lcmdl ZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDIxIHRvdGFsLCAxNyBwcnVuZWQKICAgIE5GQTog MCBtYXRjaGVkLCAzIG1pc21hdGNoZWQgKGxlbiAzLzMvMy4wKQogICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCi0oOCBy b3dzKQorKDkgcm93cykKIAogLS0gTmVzdGVkIEFMVCBhdCBlbmQgb2YgYnJhbmNoIGluc2lkZSBv dXRlciBBTFQKIC0tIFBhdHRlcm46IChDIChBIHwgQikgfCBEKSAtIGlubmVyIEFMVCBpcyBsYXN0 IGVsZW1lbnQgaW4gb3V0ZXIgYnJhbmNoCkBAIC0zMzE3LDEyICszMzkxLDEzIEBAIFdJTkRPVyB3 IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6 IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IChjIChhIHwgYikgfCBkKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDUg cGVhaywgNzMgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90 YWwsIDEwIHBydW5lZAogICAgTkZBOiA1IG1hdGNoZWQgKGxlbiAxLzEvMS4wKSwgNSBtaXNtYXRj aGVkIChsZW4gMi8yLzIuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQotKDggcm93cykKKyg5IHJvd3MpCiAKIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0gR3JvdXAgUGF0dGVybiBUZXN0cwpAQCAtMzM1OCwxMyArMzQzMywxNCBAQCBXSU5E T1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQogICAgV2lu ZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiAoYScgYicpKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBT dG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBl YWssIDYxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDQxIHRvdGFs LCAwIHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA0MC80MC80MC4wKSwgMCBtaXNtYXRj aGVkCiAgICBORkE6IDE5IGFic29yYmVkIChsZW4gMi8yLzIuMCksIDIwIHNraXBwZWQgKGxlbiAx LzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTQwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIEdyb3VwIHdp dGggYm91bmRlZCBxdWFudGlmaWVyCiBDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2JvdW5kZWQgQVMK QEAgLTMzOTcsMTMgKzM0NzMsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9NDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgYil7Miw0fQor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgNTEgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDMgcGVhaywgNDEgdG90YWwsIDUgcHJ1bmVkCiAgICBORkE6IDUgbWF0Y2hl ZCAobGVuIDgvOC84LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMzAgc2tp cHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAog LS0gTmVzdGVkIGdyb3VwcwogQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9uZXN0ZWQgQVMKQEAgLTM0 MzYsMTMgKzM1MTMsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9 NjAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKChhJyBiJyl7Mn0nKSsiCisg ICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3Jh Z2U6IE5rQgogICAgTkZBIFN0YXRlczogNSBwZWFrLCA3NiB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogNCBwZWFrLCA2MSB0b3RhbCwgMTUgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hl ZCAobGVuIDYwLzYwLzYwLjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMTQgYWJzb3JiZWQgKGxl biA0LzQvNC4wKSwgMzAgc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKLSg5IHJv d3MpCisoMTAgcm93cykKIAogLS0gRGVlcCBuZXN0aW5nICgzKyBsZXZlbHMpCiBDUkVBVEUgVklF VyBycHJfZXZfZ3JwX2RlZXAgQVMKQEAgLTM0NzMsMTMgKzM1NTEsMTQgQEAgV0lORE9XIHcgQVMg KAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogKGEgfCBiKSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBN ZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA2IHBlYWssIDI0MyB0 b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA0MSB0b3RhbCwgMCBwcnVu ZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gNDAvNDAvNDAuMCksIDAgbWlzbWF0Y2hlZAogICAg TkZBOiAwIGFic29yYmVkLCAzOSBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQot KDkgcm93cykKKygxMCByb3dzKQogCiAtLSBCb3VuZGVkIHF1YW50aWZpZXIgb24gYWx0ZXJuYXRp b24KIENSRUFURSBWSUVXIHJwcl9ldl9ncnBfYm91bmRlZF9hbHQgQVMKQEAgLTM1MTAsMTMgKzM1 ODksMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9v cHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKXsyLDN9IGMKKyAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAg ICBORkEgU3RhdGVzOiA4IHBlYWssIDMyMCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0 czogMyBwZWFrLCA2MSB0b3RhbCwgMiBwcnVuZWQKICAgIE5GQTogMTkgbWF0Y2hlZCAobGVuIDMv My8zLjApLCAxIG1pc21hdGNoZWQgKGxlbiAyLzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVkLCAz OCBza2lwcGVkIChsZW4gMS8yLzEuNSkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dz KQogCiAtLSBOZXN0ZWQgZ3JvdXBzIHdpdGggcXVhbnRpZmllcnMKIENSRUFURSBWSUVXIHJwcl9l dl9ncnBfbmVzdGVkX3F1YW50IEFTCkBAIC0zNTQ3LDEzICszNjI3LDE0IEBAIFdJTkRPVyB3IEFT ICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46ICgoYScgYicpKyIgYykqCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogOSBwZWFr LCAxNzggdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDQgcGVhaywgNjEgdG90YWws IDIwIHBydW5lZAogICAgTkZBOiAzIG1hdGNoZWQgKGxlbiAwLzU3LzE5LjApLCAwIG1pc21hdGNo ZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMzcgc2tpcHBlZCAobGVuIDEvMy8yLjApCiAgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9v cHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gUGFydGlhbCBuZXN0ZWQgcXVhbnRpZmlj YXRpb24KIENSRUFURSBWSUVXIHJwcl9ldl9ncnBfcGFydGlhbF9xdWFudCBBUwpAQCAtMzU4NCwx MyArMzY2NSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz02MC4w MCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSAoYiBjKSspKgorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IK ICAgIE5GQSBTdGF0ZXM6IDcgcGVhaywgMTYwIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRl eHRzOiA0IHBlYWssIDYxIHRvdGFsLCAyMCBwcnVuZWQKICAgIE5GQTogMyBtYXRjaGVkIChsZW4g MC81Ny8xOS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDM3IHNraXBwZWQg KGxlbiAxLzMvMi4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0gV2luZG93IEZ1bmN0aW9uIENvbWJpbmF0aW9ucwpAQCAtMzYyNiwxMyArMzcwOCwxNCBA QCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQog ICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMg cGVhaywgNTUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMzEgdG90 YWwsIDAgcHJ1bmVkCiAgICBORkE6IDYgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNo ZWQKICAgIE5GQTogMTggYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgNiBza2lwcGVkIChsZW4gMS8x LzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz0zMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBmaXJzdF92YWx1 ZSB3aXRoIHBhdHRlcm4KIENSRUFURSBWSUVXIHJwcl9ldl93Zm5fZmlyc3RfdmFsdWUgQVMKQEAg LTM2NjUsMTMgKzM3NDgsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9MzAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDU1IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRl eHRzOiAyIHBlYWssIDMxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiA2IG1hdGNoZWQgKGxlbiA1 LzUvNS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDE4IGFic29yYmVkIChsZW4gMS8xLzEuMCks IDYgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93 cykKIAogLS0gbGFzdF92YWx1ZSB3aXRoIHBhdHRlcm4KIENSRUFURSBWSUVXIHJwcl9ldl93Zm5f bGFzdF92YWx1ZSBBUwpAQCAtMzcwNCwxMyArMzc4OCwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2lu ZG93QWdnIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJu OiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4 aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgNTUgdG90YWwsIDAgbWVy Z2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMzEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6 IDYgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMTggYWJzb3Ji ZWQgKGxlbiAxLzEvMS4wKSwgNiBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQot KDkgcm93cykKKygxMCByb3dzKQogCiAtLSBNdWx0aXBsZSB3aW5kb3cgZnVuY3Rpb25zCiBDUkVB VEUgVklFVyBycHJfZXZfd2ZuX211bHRpIEFTCkBAIC0zNzQ5LDEzICszODM0LDE0IEBAIFdJTkRP VyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCiAgICBXaW5k b3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFn ZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA1 NSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAzMSB0b3RhbCwgMCBw cnVuZWQKICAgIE5GQTogNiBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAg TkZBOiAxOCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCA2IHNraXBwZWQgKGxlbiAxLzEvMS4wKQog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMw LjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gREVGSU5FIEV4 cHJlc3Npb24gVmFyaWF0aW9ucwpAQCAtMzc5NSwxMyArMzg4MSwxNCBAQCBXSU5ET1cgdyBBUyAo CiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFT IChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQ YXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgNzggdG90YWws IDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNTEgdG90YWwsIDYgcHJ1bmVkCiAg ICBORkE6IDE3IG1hdGNoZWQgKGxlbiAyLzMvMi42KSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDEw IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDE3IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxv b3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFVzaW5nIFBSRVYgZnVuY3Rpb24KIENS RUFURSBWSUVXIHJwcl9ldl9kZWZfcHJldiBBUwpAQCAtMzg0MCwxMiArMzkyNywxMyBAQCBXSU5E T1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQogICAgV2lu ZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiBzIHUrIGQrCisgICBOYXYgTWFyayBMb29rYmFjazogMQogICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNjAgcGVh aywgNDY2IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzMSBwZWFrLCAzMSB0b3Rh bCwgMSBwcnVuZWQKICAgIE5GQTogMCBtYXRjaGVkLCAyOSBtaXNtYXRjaGVkIChsZW4gMi8zMC8x Ni4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCBy b3dzPTMwLjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gVXNpbmcgMS1hcmcg UFJFViAoaW1wbGljaXQgb2Zmc2V0IDEpCiBDUkVBVEUgVklFVyBycHJfZXZfbmF2X3ByZXYxIEFT CkBAIC0zOTY0LDEzICs0MDUyLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVh bCByb3dzPTMwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBO YXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6 IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA1NSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBD b250ZXh0czogMiBwZWFrLCAzMSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogNiBtYXRjaGVkIChs ZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAxOCBhYnNvcmJlZCAobGVuIDEvMS8x LjApLCA2IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHYgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEw IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gTGFyZ2UgU2NhbGUgU3RhdGlzdGljcyBWZXJpZmljYXRpb24K QEAgLTQwMDYsMTMgKzQwOTUsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9NTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiIGMKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDg1MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogMyBwZWFrLCA1MDEgdG90YWwsIDEwMSBwcnVuZWQKICAgIE5GQTogNTAgbWF0 Y2hlZCAobGVuIDgvOS85LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMjk5IGFic29yYmVkIChs ZW4gMS8xLzEuMCksIDUwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwMC4wMCBsb29wcz0xKQotKDkg cm93cykKKygxMCByb3dzKQogCiAtLSBIaWdoIG1hdGNoIGNvdW50IHNjZW5hcmlvCiBDUkVBVEUg VklFVyBycHJfZXZfc2NhbGVfaGlnaF9tYXRjaCBBUwpAQCAtNDA0NSwxMyArNDEzNSwxNCBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01MDAuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogYSBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMiBwZWFr LCA1MDEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNTAxIHRvdGFs LCAwIHBydW5lZAogICAgTkZBOiAyNTAgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCAwIG1pc21hdGNo ZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMjUwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwMC4wMCBs b29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBIaWdoIHNraXAgY291bnQgc2NlbmFy aW8KIENSRUFURSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX3NraXAgQVMKQEAgLTQwOTQsMTMgKzQx ODUsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAwLjAwIGxv b3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYiBjIGQgZQorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5G QSBTdGF0ZXM6IDIgcGVhaywgNTAxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAz IHBlYWssIDUwMSB0b3RhbCwgNDkwIHBydW5lZAogICAgTkZBOiA1IG1hdGNoZWQgKGxlbiA1LzUv NS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDUgc2tpcHBlZCAobGVuIDEv MS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFs IHJvd3M9NTAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tCiAtLSBQbGFu bmVyIG9wdGltaXphdGlvbjogb3B0aW1pemVfd2luZG93X2NsYXVzZXMgbXVzdCBub3QgYWx0ZXIg UlBSIGZyYW1lCkBAIC00MTQ5LDEwICs0MjQxLDExIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBycHJfZXZfb3B0X3dpdGhfcnByOwogICAgLT4gIFdpbmRvd0FnZwogICAgICAg ICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBzLnYgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAg TmF2IE1hcmsgTG9va2JhY2s6IDEKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICBT b3J0IEtleTogcy52CiAgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcwotKDcgcm93cykKKyg4IHJvd3MpCiAKIC0tCiAtLSBQbGFubmVyIG9wdGltaXph dGlvbjogbm9uLVJQUiBhbmQgUlBSIHdpbmRvd3MgdGhhdCBzaGFyZSB0aGUgc2FtZSBiYXNlIGZy YW1lCkBAIC00MTc4LDEyICs0MjcxLDEzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICog RlJPTSBycHJfZXZfb3B0X21peGVkOwogICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAgV2luZG93 OiB3X3JwciBBUyAoT1JERVIgQlkgcy52IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORykKICAgICAgICAgIFBhdHRlcm46IGErIgorICAgICAgICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgICAgICAgIC0+ICBXaW5kb3dBZ2cKICAgICAgICAgICAgICAgIFdp bmRvdzogd19ub3JtYWwgQVMgKE9SREVSIEJZIHMudiBST1dTIFVOQk9VTkRFRCBQUkVDRURJTkcp CiAgICAgICAgICAgICAgICAtPiAgU29ydAogICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6 IHMudgogICAgICAgICAgICAgICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0KIC0tIFBsYW5uZXIgb3B0aW1pemF0 aW9uOiBmaW5kX3dpbmRvd19ydW5fY29uZGl0aW9ucyBtdXN0IG5vdCBwdXNoIGRvd24KQEAgLTQy NDIsOCArNDMzNiwxMzMgQEAgU0VMRUNUICogRlJPTSAoCiAgICAtPiAgV2luZG93QWdnCiAgICAg ICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAg ICBOYXYgTWFyayBMb29rYmFjazogMQogICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAg IFNvcnQgS2V5OiBzLnYKICAgICAgICAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzCi0oOCByb3dzKQorKDkgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBOYXYgTWFyayBM b29rYmFjayBUZXN0cworLS0gVmVyaWZpZXMgcGxhbm5lci1jb21wdXRlZCBuYXZpZ2F0aW9uIG9m ZnNldCBmb3IgdHVwbGVzdG9yZSB0cmltLgorLS0gTG9va2JhY2s6IGhvdyBmYXIgYmFjayBmcm9t IGN1cnJlbnRwb3MgKFBSRVYvTEFTVCkuCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFByZXBhcmUgc3RhdGVtZW50IGZv ciBob3N0IHZhcmlhYmxlIG9mZnNldCB0ZXN0IGJlbG93CitQUkVQQVJFIHJwcl9uYXZfb2Zmc2V0 X3ByZXAoaW50OCkgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUg QSBBUyB2ID4gUFJFVih2LCAkMSkKKyk7CistLSBObyBuYXZpZ2F0aW9uIGZ1bmN0aW9uOiBvZmZz ZXQgMAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgdiA+IDAKKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93 QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAK KyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCist LSBORVhUIG9ubHk6IG5vIGJhY2t3YXJkIG5hdmlnYXRpb24sIG9mZnNldCAwCitFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs MTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2 IDwgTkVYVCh2KQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg1IHJvd3MpCisKKy0tIFBSRVYodik6 IGltcGxpY2l0IG9mZnNldCAxCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2KQorKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiCisgICBO YXYgTWFyayBMb29rYmFjazogMQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMKKyg1IHJvd3MpCisKKy0tIFBSRVYodiwgMyk6IGV4cGxpY2l0IGNvbnN0YW50IG9mZnNl dCAzCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyB2ID4gUFJFVih2LCAzKQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29r YmFjazogMworICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg1IHJv d3MpCisKKy0tIFR3byBQUkVWIHdpdGggZGlmZmVyZW50IG9mZnNldHM6IG1heCgxLCA1KSA9IDUK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERF RklORSBBIEFTIFBSRVYodiwgMSkgPCB2IEFORCBQUkVWKHYsIDUpIDwgdgorKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiCisg ICBOYXYgTWFyayBMb29rYmFjazogNQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMKKyg1IHJvd3MpCisKKy0tIEhvc3QgdmFyaWFibGUgb2Zmc2V0OiBjdXN0b20gcGxh biByZXNvbHZlcyAkMT0yIHRvIGNvbnN0YW50IDIKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VU RSBycHJfbmF2X29mZnNldF9wcmVwKDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRv d0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAy CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93cykKKwor LS0gRm9yY2UgZ2VuZXJpYyBwbGFuOiBvZmZzZXQgYmVjb21lcyAicnVudGltZSIgKFBhcmFtIG5v ZGUpCitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBFWEVDVVRFIHJwcl9uYXZfb2Zmc2V0X3ByZXAoMik7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2 IE1hcmsgTG9va2JhY2s6IHJ1bnRpbWUKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzCisoNSByb3dzKQogCitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitERUFMTE9DQVRF IHJwcl9uYXZfb2Zmc2V0X3ByZXA7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9p bnRlZ3JhdGlvbi5vdXQKaW5kZXggYTIxYWM1YTg1ODguLjIwYzlmZTg5Y2VjIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CkBAIC02NiwxMCArNjYs MTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAt PiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cnByX2ludGVnCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBBMi4gUnVuIGNvbmRp dGlvbiBwdXNoZG93biBieXBhc3MKQEAgLTExMiwxMCArMTEzLDExIEBAIFNFTEVDVCAqIEZST00g KAogICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJf aW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQogICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDEK ICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICBTb3J0IEtleTogcnByX2ludGVnLmlk CiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCi0oOCByb3dzKQorKDkg cm93cykKIAogLS0gVmVyaWZ5IHJlc3VsdHMgYXJlIGNvcnJlY3QKIFNFTEVDVCAqIEZST00gKApA QCAtMTYwLDEwICsxNjIsMTEgQEAgV0lORE9XCiAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICBX aW5kb3c6IHdfcnByIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICBO YXYgTWFyayBMb29rYmFjazogMQogICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAgIFNv cnQgS2V5OiBpZAogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwotKDgg cm93cykKKyg5IHJvd3MpCiAKIC0tIFZlcmlmeSBib3RoIHByb2R1Y2UgZGlmZmVyZW50IHJlc3Vs dHMKIFNFTEVDVApAQCAtMjE4LDEzICsyMjEsMTUgQEAgV0lORE9XCiAgV2luZG93QWdnCiAgICBX aW5kb3c6IHcyIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIrCisgICBOYXYgTWFyayBMb29rYmFj azogMQogICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAgV2luZG93OiB3MSBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg ICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgICAg ICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKLSg5IHJvd3MpCisoMTEgcm93cykKIAogLS0gVmVy aWZ5IHJlc3VsdHMgZGlmZmVyCiBTRUxFQ1QKQEAgLTM4MywxMCArMzg4LDExIEBAIFdIRVJFIGNu dCA+IDA7CiAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICBOYXYgTWFyayBMb29rYmFj azogMQogICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBycHJfaW50 ZWcuaWQKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKLSg4IHJvd3Mp CisoOSByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tIEE5LiBERUZJTkUgZXhwcmVzc2lvbiBub24tcHJvcGFn YXRpb24KQEAgLTQxNSwxMiArNDIxLDEzIEBAIFdJTkRPVwogICAgICAgICAgT3V0cHV0OiBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHdfcnByCiAgICAgICAgICBXaW5kb3c6IHdfcnByIEFTIChPUkRF UiBCWSBycHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgTmF2IE1hcmsgTG9v a2JhY2s6IDEKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICBPdXRwdXQ6IGlkLCB2 YWwKICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKICAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMucnByX2ludGVnCiAgICAgICAgICAgICAgICAgICAgICBP dXRwdXQ6IGlkLCB2YWwKLSgxMiByb3dzKQorKDEzIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQTEwLiBS UFIgKyBMSU1JVApAQCAtNzEyLDEyICs3MTksMTMgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk CiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9wYXJ0LmlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAtPiAgU29ydAogICAgICAgICAgU29y dCBLZXk6IHJwcl9wYXJ0LmlkCiAgICAgICAgICAtPiAgQXBwZW5kCiAgICAgICAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX3BhcnRfMQogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9wYXJ0XzIKLSg4IHJvd3MpCisoOSByb3dzKQogCiBEUk9QIFRBQkxFIHJwcl9wYXJ0Owog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CkBAIC03OTgsOCArODA2LDkgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCiAgV2lu ZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAxCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBycHJfaW50ZWdfaWRfaWR4 IG9uIHJwcl9pbnRlZwotKDQgcm93cykKKyg1IHJvd3MpCiAKIFNFTEVDVCBpZCwgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CiBGUk9NIHJwcl9pbnRlZwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4 cGxhaW4uc3FsCmluZGV4IGUzMzllZGQ3ZTkxLi41MDgyY2MyYjVkZSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwcl9leHBsYWluLnNxbApAQCAtMzYsNiArMzYsNyBAQAogLS0gICBXaW5kb3cgRnVuY3Rp b24gQ29tYmluYXRpb25zCiAtLSAgIERFRklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tICAg TGFyZ2UgU2NhbGUgU3RhdGlzdGljcyBWZXJpZmljYXRpb24KKy0tICAgTmF2IE1hcmsgTG9va2Jh Y2sgKHR1cGxlc3RvcmUgdHJpbSkKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBGaWx0ZXIgZnVuY3Rpb24gdG8gbm9y bWFsaXplIHBsYXRmb3JtLWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzIChub3QgTkZBIHN0YXRpc3Rp Y3MpLgpAQCAtMjQ3NiwzICsyNDc3LDczIEBAIFNFTEVDVCAqIEZST00gKAogICAgICkKICkgdCBX SEVSRSBjbnQgPiAwOwogCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIE5hdiBNYXJrIExvb2tiYWNrIFRlc3RzCistLSBW ZXJpZmllcyBwbGFubmVyLWNvbXB1dGVkIG5hdmlnYXRpb24gb2Zmc2V0IGZvciB0dXBsZXN0b3Jl IHRyaW0uCistLSBMb29rYmFjazogaG93IGZhciBiYWNrIGZyb20gY3VycmVudHBvcyAoUFJFVi9M QVNUKS4KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorCistLSBQcmVwYXJlIHN0YXRlbWVudCBmb3IgaG9zdCB2YXJpYWJsZSBv ZmZzZXQgdGVzdCBiZWxvdworUFJFUEFSRSBycHJfbmF2X29mZnNldF9wcmVwKGludDgpIEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodiwg JDEpCispOworCistLSBObyBuYXZpZ2F0aW9uIGZ1bmN0aW9uOiBvZmZzZXQgMAorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg diA+IDAKKyk7CisKKy0tIE5FWFQgb25seTogbm8gYmFja3dhcmQgbmF2aWdhdGlvbiwgb2Zmc2V0 IDAKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIHYgPCBORVhUKHYpCispOworCistLSBQUkVWKHYpOiBpbXBsaWNpdCBvZmZz ZXQgMQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodikKKyk7CisKKy0tIFBSRVYodiwgMyk6IGV4cGxpY2l0 IGNvbnN0YW50IG9mZnNldCAzCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2LCAzKQorKTsKKworLS0gVHdv IFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0czogbWF4KDEsIDUpID0gNQorRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEw KSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJF Vih2LCAxKSA8IHYgQU5EIFBSRVYodiwgNSkgPCB2CispOworCistLSBIb3N0IHZhcmlhYmxlIG9m ZnNldDogY3VzdG9tIHBsYW4gcmVzb2x2ZXMgJDE9MiB0byBjb25zdGFudCAyCitFWFBMQUlOIChD T1NUUyBPRkYpIEVYRUNVVEUgcnByX25hdl9vZmZzZXRfcHJlcCgyKTsKKworLS0gRm9yY2UgZ2Vu ZXJpYyBwbGFuOiBvZmZzZXQgYmVjb21lcyAicnVudGltZSIgKFBhcmFtIG5vZGUpCitTRVQgcGxh bl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBF WEVDVVRFIHJwcl9uYXZfb2Zmc2V0X3ByZXAoMik7CitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitE RUFMTE9DQVRFIHJwcl9uYXZfb2Zmc2V0X3ByZXA7CisKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0024-Implement-FIRST-LAST-navigation-for-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0024-Implement-FIRST-LAST-navigation-for-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfogyr23 RnJvbSBlNWM3MDMzYjcxYThjMDMwMmZiM2ZhNDg3OTAxNTdmNmNkNzA1ODVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDUgQXByIDIwMjYgMDA6NTY6MjAgKzA5MDAKU3ViamVjdDogW1BBVENIXSBJbXBsZW1l bnQgRklSU1QvTEFTVCBhbmQgY29tcG91bmQgbmF2aWdhdGlvbiBmb3IgUlBSCgpBZGQgRklSU1Qo ZXhwciBbLCBvZmZzZXRdKSBhbmQgTEFTVChleHByIFssIG9mZnNldF0pIG5hdmlnYXRpb24KZnVu Y3Rpb25zIGZvciBERUZJTkUgY2xhdXNlcy4gIEZJUlNUIHJlZmVyZW5jZXMgdGhlIG1hdGNoIHN0 YXJ0IHJvdywKTEFTVCByZWZlcmVuY2VzIHRoZSBjdXJyZW50IHJvdy4gIEluY2x1ZGVzIHNsb3Qg c3dhcCBlbGlzaW9uLApwZXItY29udGV4dCBERUZJTkUgcmUtZXZhbHVhdGlvbiBmb3IgbWF0Y2hf c3RhcnQtZGVwZW5kZW50IHZhcmlhYmxlcywKYW5kIHBsYW5uZXItbGV2ZWwgYWJzb3JwdGlvbiBk aXNhYmxpbmcgd2hlbiBGSVJTVCBvciBMQVNULXdpdGgtb2Zmc2V0CmlzIHByZXNlbnQuCgpBZGQg Y29tcG91bmQgbmF2aWdhdGlvbjogUFJFVihGSVJTVCgpKSwgTkVYVChGSVJTVCgpKSwKUFJFVihM QVNUKCkpLCBORVhUKExBU1QoKSkgcGVyIFNRTCBzdGFuZGFyZCA1LjYuNC4gIFRoZSBwYXJzZXIK ZmxhdHRlbnMgbmVzdGVkIFJQUk5hdkV4cHIgaW50byBhIHNpbmdsZSBjb21wb3VuZCBub2RlIHdp dGggdHdvCm9mZnNldHMuICBUaGUgZXhlY3V0b3IgY29tcHV0ZXMgdGhlIHRhcmdldCBwb3NpdGlv biBpbiB0d28gc3RlcHMKd2l0aCByYW5nZSB2YWxpZGF0aW9uIGF0IGVhY2ggc3RlcC4gIHJ1bGV1 dGlscyByZXN0b3JlcyB0aGUgbmVzdGVkCnN5bnRheCBmb3IgZGVwYXJzaW5nLgoKRXh0ZW5kIHR1 cGxlc3RvcmUgdHJpbSB0byBoYW5kbGUgRklSU1QgbmF2aWdhdGlvbiB2aWEKaGFzRmlyc3ROYXYv bmF2Rmlyc3RPZmZzZXQsIGFsbG93aW5nIG1hcmsgYWR2YW5jZSBiYXNlZCBvbgpvbGRlc3QgYWN0 aXZlIGNvbnRleHQncyBtYXRjaFN0YXJ0Um93LiAgQ29tcG91bmQgb2Zmc2V0cyBhcmUKY29tcHV0 ZWQgYnkgdGhlIHVuaWZpZWQgbmF2X29mZnNldF93YWxrZXIgaW4gYSBzaW5nbGUgZXhwcmVzc2lv bgp0cmVlIHdhbGsuICBBZGQgIk5hdiBNYXJrIExvb2thaGVhZCIgdG8gRVhQTEFJTiBmb3IgRklS U1QtYmFzZWQKbmF2aWdhdGlvbi4KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5z Z21sICAgICAgICB8ICA1MyArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAg ICAgICAgfCAgNjggKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAg ICB8ICA1NSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgfCAx NTUgKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyAgICAgICAgICAgIHwgMTUy ICsrKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgICAgICB8IDM0MyAr KysrKysrKystLS0KIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAgIHwgMzg3ICsr KysrKysrKysrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAgICAgIHwg ICA2ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICB8ICA3MCAr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyAgICAgICAgICAgIHwgMTEyICsrKy0K IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgIHwgIDgxICsrLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMgICAgICAgfCAgNTYgKysKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgIHwgIDEyICsKIHNyYy9pbmNsdWRlL2V4 ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgICAgIHwgICA4ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaCAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oICAgICAgICAgICAgfCAgMTcgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5o ICAgICAgICAgICAgIHwgIDMwICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAg ICAgICAgICB8ICAzNyArLQogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oICAgICAgICAgICAg ICAgfCAgMTIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCAgICAgICAgIHwg NjUyICsrKysrKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2Jhc2Uub3V0ICAgIHwgMjU3ICsrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfZXhwbGFpbi5vdXQgfCA0MjUgKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwci5zcWwgICAgICAgICAgICAgIHwgMzc0ICsrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9iYXNlLnNxbCAgICAgICAgIHwgMTM2ICsrKystCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHJfZXhwbGFpbi5zcWwgICAgICB8IDI0MiArKysrKysrLQogc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgfCAgIDUgKwogMjcgZmlsZXMgY2hhbmdlZCwgMzUw OSBpbnNlcnRpb25zKCspLCAyNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93 LnNnbWwKaW5kZXggMWI5Yjk5M2E4MTcuLmFiODA2OTBmN2JlIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMt d2luZG93LnNnbWwKQEAgLTMzNywxMCArMzM3LDYzIEBACiAgICAgICAgPC9wYXJhPjwvZW50cnk+ CiAgICAgICA8L3Jvdz4KIAorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0 ZXJtPgorICAgICAgICAgPHByaW1hcnk+Zmlyc3Q8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0 ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+Zmlyc3Q8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFs dWU8L3BhcmFtZXRlcj4gPHR5cGU+YW55ZWxlbWVudDwvdHlwZT4gWywgPHBhcmFtZXRlcj5vZmZz ZXQ8L3BhcmFtZXRlcj4gPHR5cGU+YmlnaW50PC90eXBlPiBdICkKKyAgICAgICAgPHJldHVybnZh bHVlPmFueWVsZW1lbnQ8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSByb3cgPHBhcmFtZXRl cj5vZmZzZXQ8L3BhcmFtZXRlcj4KKyAgICAgICAgcm93cyBhZnRlciB0aGUgbWF0Y2ggc3RhcnQg cm93OworICAgICAgICByZXR1cm5zIE5VTEwgaWYgdGhlIHRhcmdldCByb3cgaXMgYmV5b25kIHRo ZSBjdXJyZW50IHJvdy4KKyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVm YXVsdHMgdG8gMCBpZiBvbWl0dGVkLCByZWZlcnJpbmcgdG8gdGhlCisgICAgICAgIG1hdGNoIHN0 YXJ0IHJvdyBpdHNlbGYuCisgICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11 c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlci4KKyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8 L3BhcmFtZXRlcj4gbXVzdCBub3QgYmUgTlVMTC4KKyAgICAgICAgQ2FuIG9ubHkgYmUgdXNlZCBp biBhIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlLgorICAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1 bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGlu ZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmxhc3Q8L3ByaW1hcnk+CisgICAgICAgIDwvaW5k ZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+bGFzdDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52 YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnllbGVtZW50PC90eXBlPiBbLCA8cGFyYW1ldGVyPm9m ZnNldDwvcGFyYW1ldGVyPiA8dHlwZT5iaWdpbnQ8L3R5cGU+IF0gKQorICAgICAgICA8cmV0dXJu dmFsdWU+YW55ZWxlbWVudDwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUgYXQgdGhlIHJvdyA8cGFyYW1l dGVyPm9mZnNldDwvcGFyYW1ldGVyPgorICAgICAgICByb3dzIGJlZm9yZSB0aGUgY3VycmVudCBy b3cgd2l0aGluIHRoZSBtYXRjaDsKKyAgICAgICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQg cm93IGlzIGJlZm9yZSB0aGUgbWF0Y2ggc3RhcnQgcm93LgorICAgICAgICA8cGFyYW1ldGVyPm9m ZnNldDwvcGFyYW1ldGVyPiBkZWZhdWx0cyB0byAwIGlmIG9taXR0ZWQsIHJlZmVycmluZyB0byB0 aGUKKyAgICAgICAgY3VycmVudCByb3cgaXRzZWxmLgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNl dDwvcGFyYW1ldGVyPiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuCisgICAgICAgIDxw YXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3Qgbm90IGJlIE5VTEwuCisgICAgICAgIENh biBvbmx5IGJlIHVzZWQgaW4gYSA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGNsYXVzZS4KKyAg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgIDwvdGJvZHk+CiAgICAg PC90Z3JvdXA+CiAgICA8L3RhYmxlPgogCisgICA8cGFyYT4KKyAgICA8ZnVuY3Rpb24+UFJFVjwv ZnVuY3Rpb24+IGFuZCA8ZnVuY3Rpb24+TkVYVDwvZnVuY3Rpb24+IG1heSB3cmFwCisgICAgPGZ1 bmN0aW9uPkZJUlNUPC9mdW5jdGlvbj4gb3IgPGZ1bmN0aW9uPkxBU1Q8L2Z1bmN0aW9uPiBmb3Ig Y29tcG91bmQKKyAgICBuYXZpZ2F0aW9uLiBGb3IgZXhhbXBsZSwKKyAgICA8bGl0ZXJhbD5QUkVW KEZJUlNUKHZhbCwgMiksIDMpPC9saXRlcmFsPiBmZXRjaGVzIHRoZSB2YWx1ZSBhdAorICAgIDMg cm93cyBiZWZvcmUgdGhlIHJvdyB0aGF0IGlzIDIgcm93cyBhZnRlciB0aGUgbWF0Y2ggc3RhcnQu CisgICAgVGhlIHJldmVyc2UgbmVzdGluZyAoPGZ1bmN0aW9uPkZJUlNUPC9mdW5jdGlvbj4vPGZ1 bmN0aW9uPkxBU1Q8L2Z1bmN0aW9uPgorICAgIHdyYXBwaW5nIDxmdW5jdGlvbj5QUkVWPC9mdW5j dGlvbj4vPGZ1bmN0aW9uPk5FWFQ8L2Z1bmN0aW9uPikgaXMgbm90CisgICAgcGVybWl0dGVkLiBT YW1lLWNhdGVnb3J5IG5lc3RpbmcgKGUuZy4sCisgICAgPGZ1bmN0aW9uPlBSRVY8L2Z1bmN0aW9u PiBpbnNpZGUgPGZ1bmN0aW9uPlBSRVY8L2Z1bmN0aW9uPikgaXMgYWxzbworICAgIHByb2hpYml0 ZWQuCisgICA8L3BhcmE+CisKICAgPG5vdGU+CiAgICA8cGFyYT4KICAgICBUaGUgU1FMIHN0YW5k YXJkIGRlZmluZXMgYSA8bGl0ZXJhbD5GUk9NIEZJUlNUPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5G Uk9NIExBU1Q8L2xpdGVyYWw+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBs YWluLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggMTg0OGRlOWRlN2Eu LjIyMWQ5YTQ5ZTBkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0zMjU1LDE0ICszMjU1LDY2 IEBAIHNob3dfd2luZG93X2RlZihXaW5kb3dBZ2dTdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNl c3RvcnMsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQlwZnJlZShwYXR0ZXJuU3RyKTsKIAkJfQogCi0J CS8qIFNob3cgbmF2aWdhdGlvbiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0gKi8KLQkJaWYg KHdhZ2ctPm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMKQotCQkJRXhw bGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2JhY2siLCAicmV0YWluIGFsbCIsIGVzKTsK LQkJZWxzZSBpZiAod2FnZy0+bmF2TWF4T2Zmc2V0ID09IFJQUl9OQVZfT0ZGU0VUX05FRURTX0VW QUwpCi0JCQlFeHBsYWluUHJvcGVydHlUZXh0KCJOYXYgTWFyayBMb29rYmFjayIsICJydW50aW1l IiwgZXMpOwotCQllbHNlCi0JCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJOYXYgTWFyayBMb29r YmFjayIsIE5VTEwsCi0JCQkJCQkJCSAgIHdhZ2ctPm5hdk1heE9mZnNldCwgZXMpOworCQkvKgor CQkgKiBTaG93IG5hdmlnYXRpb24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltLiAgRm9yIEVY UExBSU4gQU5BTFlaRSwKKwkJICogdXNlIHRoZSBleGVjdXRvci1yZXNvbHZlZCB2YWx1ZXMgKHdo aWNoIG1heSBkaWZmZXIgZnJvbSB0aGUgcGxhbgorCQkgKiB3aGVuIE5FRURTX0VWQUwgd2FzIHJl c29sdmVkIHRvIEZJWEVEIG9yIFJFVEFJTl9BTEwgYXQgaW5pdCkuCisJCSAqLworCQl7CisJCQlS UFJOYXZPZmZzZXRLaW5kIG1heEtpbmQgPSB3YWdnLT5uYXZNYXhPZmZzZXRLaW5kOworCQkJaW50 NjQJCW1heE9mZnNldCA9IHdhZ2ctPm5hdk1heE9mZnNldDsKKwkJCVJQUk5hdk9mZnNldEtpbmQg Zmlyc3RLaW5kID0gd2FnZy0+bmF2Rmlyc3RPZmZzZXRLaW5kOworCQkJaW50NjQJCWZpcnN0T2Zm c2V0ID0gd2FnZy0+bmF2Rmlyc3RPZmZzZXQ7CisKKwkJCWlmIChlcy0+YW5hbHl6ZSkKKwkJCXsK KwkJCQltYXhLaW5kID0gcGxhbnN0YXRlLT5uYXZNYXhPZmZzZXRLaW5kOworCQkJCW1heE9mZnNl dCA9IHBsYW5zdGF0ZS0+bmF2TWF4T2Zmc2V0OworCQkJCWZpcnN0S2luZCA9IHBsYW5zdGF0ZS0+ bmF2Rmlyc3RPZmZzZXRLaW5kOworCQkJCWZpcnN0T2Zmc2V0ID0gcGxhbnN0YXRlLT5uYXZGaXJz dE9mZnNldDsKKwkJCX0KKworCQkJc3dpdGNoIChtYXhLaW5kKQorCQkJeworCQkJCWNhc2UgUlBS X05BVl9PRkZTRVRfTkVFRFNfRVZBTDoKKwkJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiTmF2IE1h cmsgTG9va2JhY2siLCAicnVudGltZSIsIGVzKTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBSUFJf TkFWX09GRlNFVF9SRVRBSU5fQUxMOgorCQkJCQlFeHBsYWluUHJvcGVydHlUZXh0KCJOYXYgTWFy ayBMb29rYmFjayIsICJyZXRhaW4gYWxsIiwgZXMpOworCQkJCQlicmVhazsKKwkJCQljYXNlIFJQ Ul9OQVZfT0ZGU0VUX0ZJWEVEOgorCQkJCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJOYXYgTWFy ayBMb29rYmFjayIsIE5VTEwsCisJCQkJCQkJCQkJICAgbWF4T2Zmc2V0LCBlcyk7CisJCQkJCWJy ZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgUlBSIG5h diBvZmZzZXQga2luZDogJWQiLAorCQkJCQkJIG1heEtpbmQpOworCQkJCQlicmVhazsKKwkJCX0K KworCQkJaWYgKHdhZ2ctPmhhc0ZpcnN0TmF2KQorCQkJeworCQkJCXN3aXRjaCAoZmlyc3RLaW5k KQorCQkJCXsKKwkJCQkJY2FzZSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOgorCQkJCQkJRXhw bGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2FoZWFkIiwgInJ1bnRpbWUiLAorCQkJCQkJ CQkJCQllcyk7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX09GRlNFVF9SRVRBSU5f QUxMOgorCQkJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2FoZWFkIiwgInJl dGFpbiBhbGwiLAorCQkJCQkJCQkJCQllcyk7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJf TkFWX09GRlNFVF9GSVhFRDoKKwkJCQkJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5hdiBNYXJr IExvb2thaGVhZCIsIE5VTEwsCisJCQkJCQkJCQkJCSAgIGZpcnN0T2Zmc2V0LCBlcyk7CisJCQkJ CQlicmVhazsKKwkJCQkJZGVmYXVsdDoKKwkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQg UlBSIG5hdiBvZmZzZXQga2luZDogJWQiLAorCQkJCQkJCSBmaXJzdEtpbmQpOworCQkJCQkJYnJl YWs7CisJCQkJfQorCQkJfQorCQl9CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRl eCBkYmVkNGY0OGEwZi4uNjM0OWE1NjRhOTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAt MTIyNSwxMiArMTIyNSwxNiBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRl ICpzdGF0ZSwKIAkJY2FzZSBUX1JQUk5hdkV4cHI6CiAJCQl7CiAJCQkJLyoKLQkJCQkgKiBSUFIg bmF2aWdhdGlvbiBmdW5jdGlvbnMgKFBSRVYvTkVYVCkgYXJlIGNvbXBpbGVkIGludG8KLQkJCQkg KiBFRU9QX1JQUl9OQVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bjb2RlcyBpbnN0ZWFk IG9mCi0JCQkJICogYSBub3JtYWwgZnVuY3Rpb24gY2FsbC4gIFRoZSBTRVQgb3Bjb2RlIHN3YXBz Ci0JCQkJICogZWN4dF9vdXRlcnR1cGxlIHRvIHRoZSB0YXJnZXQgcm93LCB0aGUgYXJndW1lbnQg ZXhwcmVzc2lvbgotCQkJCSAqIGlzIGNvbXBpbGVkIG5vcm1hbGx5IChyZWFkcyBmcm9tIHRoZSBz d2FwcGVkIHNsb3QpLCBhbmQgdGhlCi0JCQkJICogUkVTVE9SRSBvcGNvZGUgcmVzdG9yZXMgdGhl IG9yaWdpbmFsIHNsb3QuCisJCQkJICogUlBSIG5hdmlnYXRpb24gZnVuY3Rpb25zIChQUkVWL05F WFQvRklSU1QvTEFTVCkgYXJlCisJCQkJICogY29tcGlsZWQgaW50byBFRU9QX1JQUl9OQVZfU0VU IC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUKKwkJCQkgKiBvcGNvZGVzIGluc3RlYWQgb2YgYSBub3Jt YWwgZnVuY3Rpb24gY2FsbC4gIFRoZSBTRVQgb3Bjb2RlCisJCQkJICogc3dhcHMgZWN4dF9vdXRl cnR1cGxlIHRvIHRoZSB0YXJnZXQgcm93LCB0aGUgYXJndW1lbnQKKwkJCQkgKiBleHByZXNzaW9u IGlzIGNvbXBpbGVkIG5vcm1hbGx5IChyZWFkcyBmcm9tIHRoZSBzd2FwcGVkCisJCQkJICogc2xv dCksIGFuZCB0aGUgUkVTVE9SRSBvcGNvZGUgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIHNsb3QuCisJ CQkJICoKKwkJCQkgKiBEZWZhdWx0IG9mZnNldCB3aGVuIG9mZnNldF9hcmcgaXMgTlVMTDogUFJF Vi9ORVhUOiAxCisJCQkJICogKHBoeXNpY2FsIG9mZnNldCBmcm9tIGN1cnJlbnRwb3MpIEZJUlNU L0xBU1Q6IDAgKGxvZ2ljYWwKKwkJCQkgKiBvZmZzZXQgZnJvbSBtYXRjaCBib3VuZGFyeSkKIAkJ CQkgKi8KIAkJCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOwogCQkJCVdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKQEAgLTEyNDMsMjUgKzEyNDcsNTIgQEAgRXhlY0luaXRF eHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJc2NyYXRjaC5kLnJwcl9u YXYud2luc3RhdGUgPSB3aW5zdGF0ZTsKIAkJCQlzY3JhdGNoLmQucnByX25hdi5raW5kID0gbmF2 LT5raW5kOwogCi0JCQkJaWYgKG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCWlmIChuYXYt PmtpbmQgPj0gUlBSX05BVl9QUkVWX0ZJUlNUKQogCQkJCXsKIAkJCQkJLyoKLQkJCQkJICogQWxs b2NhdGUgc3RvcmFnZSBmb3IgdGhlIHJ1bnRpbWUgb2Zmc2V0IHZhbHVlLiAgVGhlCi0JCQkJCSAq IG9mZnNldCBleHByZXNzaW9uIGlzIGNvbXBpbGVkIGJlbG93IHNvIGl0IHJ1bnMgYmVmb3JlCi0J CQkJCSAqIEVFT1BfUlBSX05BVl9TRVQuCisJCQkJCSAqIENvbXBvdW5kIG5hdmlnYXRpb246IGFs bG9jYXRlIGFycmF5IG9mIDIgZm9yIGlubmVyIFswXQorCQkJCQkgKiBhbmQgb3V0ZXIgWzFdIG9m ZnNldHMuCiAJCQkJCSAqLworCQkJCQlEYXR1bQkgICAqb2Zmc2V0X3ZhbHVlcyA9IHBhbGxvY19h cnJheShEYXR1bSwgMik7CisJCQkJCWJvb2wJICAgKm9mZnNldF9pc251bGxzID0gcGFsbG9jX2Fy cmF5KGJvb2wsIDIpOworCisJCQkJCS8qIElubmVyIG9mZnNldCAoZGVmYXVsdCAwIGZvciBGSVJT VC9MQVNUKSAqLworCQkJCQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJCQlFeGVj SW5pdEV4cHJSZWMobmF2LT5vZmZzZXRfYXJnLCBzdGF0ZSwKKwkJCQkJCQkJCQkmb2Zmc2V0X3Zh bHVlc1swXSwgJm9mZnNldF9pc251bGxzWzBdKTsKKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlv ZmZzZXRfdmFsdWVzWzBdID0gSW50NjRHZXREYXR1bSgwKTsKKwkJCQkJCW9mZnNldF9pc251bGxz WzBdID0gZmFsc2U7CisJCQkJCX0KKworCQkJCQkvKiBPdXRlciBvZmZzZXQgKGRlZmF1bHQgMSBm b3IgUFJFVi9ORVhUKSAqLworCQkJCQlpZiAobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnICE9IE5V TEwpCisJCQkJCQlFeGVjSW5pdEV4cHJSZWMobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnLCBzdGF0 ZSwKKwkJCQkJCQkJCQkmb2Zmc2V0X3ZhbHVlc1sxXSwgJm9mZnNldF9pc251bGxzWzFdKTsKKwkJ CQkJZWxzZQorCQkJCQl7CisJCQkJCQlvZmZzZXRfdmFsdWVzWzFdID0gSW50NjRHZXREYXR1bSgx KTsKKwkJCQkJCW9mZnNldF9pc251bGxzWzFdID0gZmFsc2U7CisJCQkJCX0KKworCQkJCQlzY3Jh dGNoLmQucnByX25hdi5vZmZzZXRfdmFsdWUgPSBvZmZzZXRfdmFsdWVzOworCQkJCQlzY3JhdGNo LmQucnByX25hdi5vZmZzZXRfaXNudWxsID0gb2Zmc2V0X2lzbnVsbHM7CisJCQkJfQorCQkJCWVs c2UgaWYgKG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCXsKKwkJCQkJLyogU2ltcGxlIG5h dmlnYXRpb24gd2l0aCBleHBsaWNpdCBvZmZzZXQgKi8KIAkJCQkJRGF0dW0JICAgKm9mZnNldF92 YWx1ZSA9IHBhbGxvY19vYmplY3QoRGF0dW0pOwogCQkJCQlib29sCSAgICpvZmZzZXRfaXNudWxs ID0gcGFsbG9jX29iamVjdChib29sKTsKIAotCQkJCQkvKiBDb21waWxlIHRoZSBvZmZzZXQgZXhw cmVzc2lvbiBpbnRvIHRoZSB0ZW1wIHN0b3JhZ2UgKi8KIAkJCQkJRXhlY0luaXRFeHByUmVjKG5h di0+b2Zmc2V0X2FyZywgc3RhdGUsCiAJCQkJCQkJCQlvZmZzZXRfdmFsdWUsIG9mZnNldF9pc251 bGwpOwotCiAJCQkJCXNjcmF0Y2guZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSA9IG9mZnNldF92YWx1 ZTsKIAkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbCA9IG9mZnNldF9pc251bGw7 CiAJCQkJfQogCQkJCWVsc2UKIAkJCQl7CisJCQkJCS8qIFNpbXBsZSBuYXZpZ2F0aW9uIHdpdGgg ZGVmYXVsdCBvZmZzZXQgKi8KIAkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X3ZhbHVlID0g TlVMTDsKIAkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbCA9IE5VTEw7CiAJCQkJ fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggZTQxZmFhOTViZTMuLjJl YzU3OTczMmNjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVy cC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTU5NDIs NyArNTk0MiwzNSBAQCBFeGVjQWdnUGxhaW5UcmFuc0J5UmVmKEFnZ1N0YXRlICphZ2dzdGF0ZSwg QWdnU3RhdGVQZXJUcmFucyBwZXJ0cmFucywKIH0KIAogLyoKLSAqIEV2YWx1YXRlIFJQUiBQUkVW L05FWFQgbmF2aWdhdGlvbjogc3dhcCBzbG90IHRvIHRhcmdldCByb3cuCisgKiBFeHRyYWN0IGNv bXBvdW5kIChvdXRlcikgb2Zmc2V0IGZyb20gc3RlcCBkYXRhLgorICogRm9yIGNvbXBvdW5kIG5h diwgb2Zmc2V0X3ZhbHVlIGlzIGFuIGFycmF5OiBbMF09aW5uZXIsIFsxXT1vdXRlci4KKyAqIFJl dHVybnMgdGhlIG91dGVyIG9mZnNldDsgZXJyb3JzIG9uIE5VTEwgb3IgbmVnYXRpdmUuCisgKiBE ZWZhdWx0IGlzIDEgKGxpa2UgUFJFVi9ORVhUIGltcGxpY2l0IG9mZnNldCkuCisgKi8KK3N0YXRp YyBpbnQ2NAorcnByX25hdl9nZXRfY29tcG91bmRfb2Zmc2V0KEV4cHJFdmFsU3RlcCAqb3ApCit7 CisJaW50NjQJCXZhbDsKKworCUFzc2VydChvcC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSAhPSBO VUxMKTsKKworCWlmIChvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251bGxbMV0pCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJ CQkgZXJybXNnKCJyb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBudWxs IikpKTsKKworCXZhbCA9IERhdHVtR2V0SW50NjQob3AtPmQucnByX25hdi5vZmZzZXRfdmFsdWVb MV0pOworCisJaWYgKHZhbCA8IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZygicm93IHBhdHRlcm4g bmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUiKSkpOworCisJcmV0dXJuIHZh bDsKK30KKworLyoKKyAqIEV2YWx1YXRlIFJQUiBuYXZpZ2F0aW9uIChQUkVWL05FWFQvRklSU1Qv TEFTVCk6IHN3YXAgc2xvdCB0byB0YXJnZXQgcm93LgogICoKICAqIFNhdmVzIHRoZSBjdXJyZW50 IG91dGVydHVwbGUgaW50byB3aW5zdGF0ZSBmb3IgbGF0ZXIgcmVzdG9yZSwgY29tcHV0ZXMKICAq IHRoZSB0YXJnZXQgcm93IHBvc2l0aW9uLCBmZXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHNsb3Qg ZnJvbSB0aGUKQEAgLTU5NjMsMjcgKzU5OTEsMzUgQEAgRXhlY0V2YWxSUFJOYXZTZXQoRXhwclN0 YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVjb250ZXh0KQogCXdp bnN0YXRlLT5uYXZfc2F2ZWRfb3V0ZXJ0dXBsZSA9IGVjb250ZXh0LT5lY3h0X291dGVydHVwbGU7 CiAKIAkvKgotCSAqIERldGVybWluZSB0aGUgdW5zaWduZWQgb2Zmc2V0LiAgRm9yIDItYXJnIFBS RVYvTkVYVCB0aGUgb2Zmc2V0Ci0JICogZXhwcmVzc2lvbiBoYXMgYWxyZWFkeSBiZWVuIGV2YWx1 YXRlZCBpbnRvIG9mZnNldF92YWx1ZS4gIE5VTEwgb3IKLQkgKiBuZWdhdGl2ZSBvZmZzZXRzIGFy ZSBlcnJvcnMgcGVyIHRoZSBTUUwgc3RhbmRhcmQgKElTTy9JRUMgOTA3NS0yLAotCSAqIFN1YmNs YXVzZSA1LjYuMikuCisJICogRGV0ZXJtaW5lIHRoZSBpbm5lciBvZmZzZXQuICBOVUxMIG9yIG5l Z2F0aXZlIG9mZnNldHMgYXJlIGVycm9ycyBwZXIKKwkgKiB0aGUgU1FMIHN0YW5kYXJkLgorCSAq CisJICogRGVmYXVsdCBvZmZzZXQgd2hlbiBvZmZzZXRfYXJnIGlzIE5VTEw6IFBSRVYvTkVYVDog MSAoc3RhbmRhcmQgNS42LjIpCisJICogRklSU1QvTEFTVCBhbmQgY29tcG91bmQ6IDAgZm9yIGlu bmVyLCAxIGZvciBvdXRlcgogCSAqLwogCWlmIChvcC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSAh PSBOVUxMKQogCXsKIAkJaWYgKCpvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251bGwpCiAJCQllcmVw b3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQp LAotCQkJCQkgZXJybXNnKCJQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwiKSkpOwor CQkJCQkgZXJybXNnKCJyb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBu dWxsIikpKTsKIAogCQlvZmZzZXQgPSBEYXR1bUdldEludDY0KCpvcC0+ZC5ycHJfbmF2Lm9mZnNl dF92YWx1ZSk7CiAKIAkJaWYgKG9mZnNldCA8IDApCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJIGVycm1zZygi UFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZSIpKSk7CisJCQkJCSBlcnJtc2co InJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlIikpKTsK IAl9CiAJZWxzZQotCQlvZmZzZXQgPSAxOworCXsKKwkJLyogRGVmYXVsdCBvZmZzZXQ6IDEgZm9y IHNpbXBsZSBQUkVWL05FWFQsIDAgb3RoZXJ3aXNlICovCisJCWlmIChvcC0+ZC5ycHJfbmF2Lmtp bmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQlvcC0+ZC5ycHJfbmF2LmtpbmQgPT0gUlBSX05BVl9O RVhUKQorCQkJb2Zmc2V0ID0gMTsKKwkJZWxzZQorCQkJb2Zmc2V0ID0gMDsKKwl9CiAKIAkvKgog CSAqIENhbGN1bGF0ZSB0YXJnZXQgcG9zaXRpb24gYmFzZWQgb24gbmF2aWdhdGlvbiBkaXJlY3Rp b24uICBPbiBvdmVyZmxvdywKQEAgLTU5OTksOCArNjAzNSwxMDcgQEAgRXhlY0V2YWxSUFJOYXZT ZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVjb250 ZXh0KQogCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3cod2luc3RhdGUtPmN1cnJlbnRwb3MsIG9m ZnNldCwgJnRhcmdldF9wb3MpKQogCQkJCXRhcmdldF9wb3MgPSAtMTsKIAkJCWJyZWFrOworCQlj YXNlIFJQUl9OQVZfRklSU1Q6CisJCQkvKiBGSVJTVDogb2Zmc2V0IGZyb20gbWF0Y2hfc3RhcnQs IGNsYW1wZWQgdG8gY3VycmVudHBvcyAqLworCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3cod2lu c3RhdGUtPm5hdl9tYXRjaF9zdGFydCwgb2Zmc2V0LCAmdGFyZ2V0X3BvcykpCisJCQkJdGFyZ2V0 X3BvcyA9IC0xOworCQkJZWxzZSBpZiAodGFyZ2V0X3BvcyA+IHdpbnN0YXRlLT5jdXJyZW50cG9z KQorCQkJCXRhcmdldF9wb3MgPSAtMTsJLyogYmV5b25kIGN1cnJlbnQgbWF0Y2ggcmFuZ2UgKi8K KwkJCWJyZWFrOworCQljYXNlIFJQUl9OQVZfTEFTVDoKKwkJCS8qIExBU1Q6IG9mZnNldCBiYWNr d2FyZCBmcm9tIGN1cnJlbnRwb3MsIGNsYW1wZWQgdG8gbWF0Y2hfc3RhcnQgKi8KKwkJCWlmIChw Z19zdWJfczY0X292ZXJmbG93KHdpbnN0YXRlLT5jdXJyZW50cG9zLCBvZmZzZXQsICZ0YXJnZXRf cG9zKSkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CisJCQllbHNlIGlmICh0YXJnZXRfcG9zIDwgd2lu c3RhdGUtPm5hdl9tYXRjaF9zdGFydCkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CS8qIGJlZm9yZSBt YXRjaF9zdGFydCAqLworCQkJYnJlYWs7CisKKwkJY2FzZSBSUFJfTkFWX1BSRVZfRklSU1Q6CisJ CWNhc2UgUlBSX05BVl9ORVhUX0ZJUlNUOgorCQkJeworCQkJCWludDY0CQljb21wb3VuZF9vZmZz ZXQ7CisJCQkJaW50NjQJCWlubmVyX3BvczsKKworCQkJCS8qIElubmVyOiBtYXRjaF9zdGFydCAr IG9mZnNldCAqLworCQkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KHdpbnN0YXRlLT5uYXZfbWF0 Y2hfc3RhcnQsIG9mZnNldCwgJmlubmVyX3BvcykpCisJCQkJeworCQkJCQl0YXJnZXRfcG9zID0g LTE7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlpZiAoaW5uZXJfcG9zID4gd2luc3RhdGUtPmN1 cnJlbnRwb3MgfHwgaW5uZXJfcG9zIDwgMCkKKwkJCQl7CisJCQkJCXRhcmdldF9wb3MgPSAtMTsK KwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJLyogT3V0ZXIgb2Zmc2V0ICovCisJCQkJY29tcG91 bmRfb2Zmc2V0ID0gcnByX25hdl9nZXRfY29tcG91bmRfb2Zmc2V0KG9wKTsKKworCQkJCS8qIEFw cGx5IG91dGVyOiBQUkVWIHN1YnRyYWN0cywgTkVYVCBhZGRzICovCisJCQkJaWYgKG9wLT5kLnJw cl9uYXYua2luZCA9PSBSUFJfTkFWX1BSRVZfRklSU1QpCisJCQkJeworCQkJCQlpZiAocGdfc3Vi X3M2NF9vdmVyZmxvdyhpbm5lcl9wb3MsIGNvbXBvdW5kX29mZnNldCwgJnRhcmdldF9wb3MpKQor CQkJCQkJdGFyZ2V0X3BvcyA9IC0xOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlpZiAo cGdfYWRkX3M2NF9vdmVyZmxvdyhpbm5lcl9wb3MsIGNvbXBvdW5kX29mZnNldCwgJnRhcmdldF9w b3MpKQorCQkJCQkJdGFyZ2V0X3BvcyA9IC0xOworCQkJCX0KKwkJCX0KKwkJCWJyZWFrOworCisJ CWNhc2UgUlBSX05BVl9QUkVWX0xBU1Q6CisJCWNhc2UgUlBSX05BVl9ORVhUX0xBU1Q6CisJCQl7 CisJCQkJaW50NjQJCWNvbXBvdW5kX29mZnNldDsKKwkJCQlpbnQ2NAkJaW5uZXJfcG9zOworCisJ CQkJLyogSW5uZXI6IGN1cnJlbnRwb3MgLSBvZmZzZXQgKi8KKwkJCQlpZiAocGdfc3ViX3M2NF9v dmVyZmxvdyh3aW5zdGF0ZS0+Y3VycmVudHBvcywgb2Zmc2V0LCAmaW5uZXJfcG9zKSkKKwkJCQl7 CisJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWlmIChpbm5l cl9wb3MgPCB3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0KQorCQkJCXsKKwkJCQkJdGFyZ2V0X3Bv cyA9IC0xOworCQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQkvKiBPdXRlciBvZmZzZXQgKi8KKwkJ CQljb21wb3VuZF9vZmZzZXQgPSBycHJfbmF2X2dldF9jb21wb3VuZF9vZmZzZXQob3ApOworCisJ CQkJLyogQXBwbHkgb3V0ZXI6IFBSRVYgc3VidHJhY3RzLCBORVhUIGFkZHMgKi8KKwkJCQlpZiAo b3AtPmQucnByX25hdi5raW5kID09IFJQUl9OQVZfUFJFVl9MQVNUKQorCQkJCXsKKwkJCQkJaWYg KHBnX3N1Yl9zNjRfb3ZlcmZsb3coaW5uZXJfcG9zLCBjb21wb3VuZF9vZmZzZXQsICZ0YXJnZXRf cG9zKSkKKwkJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJ CQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3coaW5uZXJfcG9zLCBjb21wb3VuZF9vZmZzZXQsICZ0 YXJnZXRfcG9zKSkKKwkJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQl9CisJCQl9CisJCQlicmVh azsKKwkJZGVmYXVsdDoKKwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgUlBSIG5hdmlnYXRp b24ga2luZDogJWQiLAorCQkJCSBvcC0+ZC5ycHJfbmF2LmtpbmQpOworCQkJYnJlYWs7CiAJfQog CisJLyoKKwkgKiBTbG90IHN3YXAgZWxpc2lvbjogaWYgdGFyZ2V0X3BvcyBpcyB0aGUgY3VycmVu dCByb3csIHNraXAgdGhlCisJICogdHVwbGVzdG9yZSBmZXRjaCBhbmQgc2xvdCBzd2FwIGVudGly ZWx5LiAgVGhpcyBiZW5lZml0cyBMQVNUKGV4cHIpLAorCSAqIFBSRVYoZXhwciwgMCksIE5FWFQo ZXhwciwgMCksIGFuZCBzaW1pbGFyIGNhc2VzLgorCSAqCisJICogV2UgbXVzdCBzdGlsbCBzZXQg bmF2X3NhdmVkX291dGVydHVwbGUgKGRvbmUgYWJvdmUpIHNvIHRoYXQKKwkgKiBFRU9QX1JQUl9O QVZfUkVTVE9SRSBpcyBhIGhhcm1sZXNzIG5vLW9wLgorCSAqLworCWlmICh0YXJnZXRfcG9zID09 IHdpbnN0YXRlLT5jdXJyZW50cG9zKQorCQlyZXR1cm47CisKIAkvKiBGZXRjaCB0YXJnZXQgcm93 IHNsb3QgKHJldHVybnMgbmF2X251bGxfc2xvdCBpZiBvdXQgb2YgcmFuZ2UpICovCiAJdGFyZ2V0 X3Nsb3QgPSBFeGVjUlBSTmF2R2V0U2xvdCh3aW5zdGF0ZSwgdGFyZ2V0X3Bvcyk7CiAKQEAgLTYw MTUsOSArNjE1MCwxMSBAQCBFeGVjRXZhbFJQUk5hdlNldChFeHByU3RhdGUgKnN0YXRlLCBFeHBy RXZhbFN0ZXAgKm9wLCBFeHByQ29udGV4dCAqZWNvbnRleHQpCiB9CiAKIC8qCi0gKiBFdmFsdWF0 ZSBSUFIgUFJFVi9ORVhUIG5hdmlnYXRpb246IHJlc3RvcmUgc2xvdCB0byBvcmlnaW5hbCByb3cu CisgKiBFdmFsdWF0ZSBSUFIgbmF2aWdhdGlvbjogcmVzdG9yZSBzbG90IHRvIG9yaWdpbmFsIHJv dy4KICAqCiAgKiBSZXN0b3JlcyBlY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlIGZyb20gdGhlIHNh dmVkIHNsb3QgaW4gd2luc3RhdGUuCisgKiBXaGVuIHNsb3Qgc3dhcCB3YXMgZWxpZGVkICh0YXJn ZXQgPT0gY3VycmVudHBvcyksIHRoaXMgaXMgYSBoYXJtbGVzcworICogbm8tb3Agc2luY2Ugc2F2 ZWQgYW5kIGN1cnJlbnQgc2xvdHMgYXJlIGlkZW50aWNhbC4KICAqIFRoZSBjYWxsZXIgaXMgcmVz cG9uc2libGUgZm9yIHVwZGF0aW5nIGFueSBsb2NhbCBzbG90IGNhY2hlLgogICovCiB2b2lkCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUlBSLmMKaW5kZXggOTk1YWNkZDdiZTUuLjYwZjBkOGIyZmExIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1JQUi5jCkBAIC00OCw2ICs0OCw3IEBACiAgKiAgICAgLSBzcmMvaW5jbHVkZS9u b2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgKHBsYW4gbm9kZSBkZWZpbml0aW9ucykKICAqICAg ICAtIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAoZXhlY3V0aW9uIHN0 YXRlIGRlZmluaXRpb25zKQogICogICAgIC0gc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oICAg ICAgICAgICAgICh0eXBlcyBhbmQgY29uc3RhbnRzKQorICogICAgIC0gc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIChuYXYgb2Zmc2V0IGNvbXB1dGF0aW9uKQogICoKICAq ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KICAqCkBAIC02MDksMjIgKzYxMCw2OSBAQAogICogICAgICAg cmVzdWx0ID0gRXhlY0V2YWxFeHByKGRlZmluZUNsYXVzZVtpXSkKICAqICAgICAgIHZhck1hdGNo ZWRbaV0gPSAobm90IG51bGwgYW5kIHRydWUpCiAgKgotICogVG8gc3VwcG9ydCByb3cgbmF2aWdh dGlvbiBvcGVyYXRvcnMgc3VjaCBhcyBQUkVWKCkgYW5kIE5FWFQoKSwKKyAqIFRvIHN1cHBvcnQg cm93IG5hdmlnYXRpb24gb3BlcmF0b3JzIChQUkVWLCBORVhULCBGSVJTVCwgTEFTVCksCiAgKiBh IDEtc2xvdCBtb2RlbCBpcyB1c2VkOiBvbmx5IGVjeHRfb3V0ZXJ0dXBsZSBpcyBzZXQgdG8gdGhl IGN1cnJlbnQKLSAqIHJvdy4gIFBSRVYvTkVYVCBuYXZpZ2F0aW9uIGlzIGhhbmRsZWQgYnkgRUVP UF9SUFJfTkFWX1NFVC9SRVNUT1JFCi0gKiBvcGNvZGVzIGVtaXR0ZWQgZHVyaW5nIERFRklORSBl eHByZXNzaW9uIGNvbXBpbGF0aW9uOgorICogcm93LiAgTmF2aWdhdGlvbiBpcyBoYW5kbGVkIGJ5 IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBvcGNvZGVzCisgKiBlbWl0dGVkIGR1cmluZyBERUZJ TkUgZXhwcmVzc2lvbiBjb21waWxhdGlvbjoKICAqCiAgKiAgIE5BVl9TRVQ6ICAgICBzYXZlIGVj eHRfb3V0ZXJ0dXBsZSwgc3dhcCBpbiB0YXJnZXQgcm93IHZpYSBuYXZfc2xvdAogICogICAoZXZh bHVhdGUpOiAgYXJndW1lbnQgZXhwcmVzc2lvbiByZWFkcyBmcm9tIHN3YXBwZWQgc2xvdAogICog ICBOQVZfUkVTVE9SRTogcmVzdG9yZSBvcmlnaW5hbCBlY3h0X291dGVydHVwbGUKICAqCisgKiBD b21wb3VuZCBuYXZpZ2F0aW9uIChQUkVWKEZJUlNUKCkpLCBORVhUKEZJUlNUKCkpLCBQUkVWKExB U1QoKSksCisgKiBORVhUKExBU1QoKSkpIGlzIGZsYXR0ZW5lZCBieSB0aGUgcGFyc2VyIGludG8g YSBzaW5nbGUgUlBSTmF2RXhwcgorICogd2l0aCBhIGNvbXBvdW5kIGtpbmQgKFJQUl9OQVZfUFJF Vl9GSVJTVCwgZXRjLikuICBUaGUgZXhlY3V0b3IKKyAqIGNvbXB1dGVzIHRoZSB0YXJnZXQgcG9z aXRpb24gaW4gdHdvIHN0ZXBzOiBmaXJzdCB0aGUgaW5uZXIgcmVmZXJlbmNlCisgKiBwb2ludCAo bWF0Y2hfc3RhcnQgKyBOIG9yIGN1cnJlbnRwb3MgLSBOKSB3aXRoIG1hdGNoLXJhbmdlIHZhbGlk YXRpb24sCisgKiB0aGVuIHRoZSBvdXRlciBhZGp1c3RtZW50ICjCsSBNKSB3aXRoIHBhcnRpdGlv bi1yYW5nZSB2YWxpZGF0aW9uLgorICogSWYgZWl0aGVyIHN0ZXAgaXMgb3V0IG9mIHJhbmdlLCB0 aGUgcmVzdWx0IGlzIE5VTEwuCisgKgogICogbmF2X3Nsb3QgY2FjaGVzIHRoZSBsYXN0IGZldGNo ZWQgcG9zaXRpb24gKG5hdl9zbG90X3BvcykgdG8gYXZvaWQKLSAqIHJlZHVuZGFudCB0dXBsZXN0 b3JlIGxvb2t1cHMgd2hlbiBtdWx0aXBsZSBQUkVWL05FWFQgY2FsbHMgdGFyZ2V0CisgKiByZWR1 bmRhbnQgdHVwbGVzdG9yZSBsb29rdXBzIHdoZW4gbXVsdGlwbGUgbmF2aWdhdGlvbiBjYWxscyB0 YXJnZXQKICAqIHRoZSBzYW1lIHJvdy4KICAqCiAgKiBUaGUgdmFyTWF0Y2hlZCBhcnJheSBpcyBy ZWZlcmVuY2VkIGxhdGVyIGluIFBoYXNlIDEgKE1hdGNoKS4KICAqCi0gKiBWSS00LiBFeGVjUlBS UHJvY2Vzc1JvdygpOiAzLVBoYXNlIFByb2Nlc3NpbmcKKyAqIFZJLTQuIFBlci1Db250ZXh0IFJl LWV2YWx1YXRpb24gKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCB2YXJpYWJsZXMpCisgKgorICogREVG SU5FIHZhcmlhYmxlcyB0aGF0IGRlcGVuZCBvbiBtYXRjaF9zdGFydCAodGhvc2UgY29udGFpbmlu ZyBGSVJTVCwKKyAqIExBU1Qtd2l0aC1vZmZzZXQsIG9yIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVY VF9GSVJTVC9QUkVWX0xBU1QvTkVYVF9MQVNUKQorICogYXJlIGlkZW50aWZpZWQgYXQgcGxhbiB0 aW1lIHZpYSBkZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50LiAgVGhlIHNoYXJlZAorICogZXZhbHVh dGlvbiBpbiBuZmFfZXZhbHVhdGVfcm93KCkgdXNlcyB0aGUgaGVhZCBjb250ZXh0J3MgbWF0Y2hT dGFydFJvdworICogZm9yIEZJUlNUL0xBU1QgYmFzZSBwb3NpdGlvbi4KKyAqCisgKiBXaGVuIHBy b2Nlc3NpbmcgYSBjb250ZXh0IHdob3NlIG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9tIHRoZSBz aGFyZWQKKyAqIHZhbHVlLCBuZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRfdmFycygpIHRlbXBvcmFy aWx5IHNldHMgbmF2X21hdGNoX3N0YXJ0CisgKiB0byB0aGF0IGNvbnRleHQncyBtYXRjaFN0YXJ0 Um93IGFuZCByZS1ldmFsdWF0ZXMgb25seSB0aGUgZGVwZW5kZW50CisgKiB2YXJpYWJsZXMuICBO byByZXN0b3JlIGlzIG5lZWRlZCBiZWNhdXNlIGNvbnRleHRzIGFyZSBvcmRlcmVkIGJ5CisgKiBt YXRjaFN0YXJ0Um93IChhc2NlbmRpbmcpLCBzbyBubyBsYXRlciBjb250ZXh0IHNoYXJlcyB0aGUg aGVhZCdzIHZhbHVlLgorICoKKyAqIFZJLTUuIFR1cGxlc3RvcmUgTWFyayBhbmQgVHJpbSAobm9k ZVdpbmRvd0FnZy5jKQorICoKKyAqIE5hdmlnYXRpb24gZnVuY3Rpb25zIHJlcXVpcmUgYWNjZXNz IHRvIHBhc3Qgcm93cyB2aWEgdGhlIHR1cGxlc3RvcmUuCisgKiBUbyBhbGxvdyB0dXBsZXN0b3Jl X3RyaW0oKSB0byBmcmVlIHJvd3MgdGhhdCBhcmUgbm8gbG9uZ2VyIHJlYWNoYWJsZSwKKyAqIHRo ZSBwbGFubmVyIGNvbXB1dGVzIHR3byBvZmZzZXRzIChzZWUgY29tcHV0ZV9uYXZfb2Zmc2V0cyk6 CisgKgorICogICBuYXZNYXhPZmZzZXQgKE5hdiBNYXJrIExvb2tiYWNrKToKKyAqICAgICBNYXhp bXVtIGJhY2t3YXJkIHJlYWNoIGZyb20gY3VycmVudHBvcy4gIENvbnRyaWJ1dGVkIGJ5IFBSRVYs CisgKiAgICAgTEFTVC13aXRoLW9mZnNldCwgYW5kIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xB U1QuCisgKiAgICAgTWFyayBwb3NpdGlvbjogY3VycmVudHBvcyAtIG5hdk1heE9mZnNldC4KKyAq CisgKiAgIG5hdkZpcnN0T2Zmc2V0IChOYXYgTWFyayBMb29rYWhlYWQpOgorICogICAgIE1pbmlt dW0gZm9yd2FyZCBvZmZzZXQgZnJvbSBtYXRjaF9zdGFydC4gIENvbnRyaWJ1dGVkIGJ5IEZJUlNU CisgKiAgICAgYW5kIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVC4gIENhbiBiZSBuZWdh dGl2ZSB3aGVuCisgKiAgICAgY29tcG91bmQgUFJFVl9GSVJTVCBsb29rcyBiZWZvcmUgbWF0Y2hf c3RhcnQuCisgKiAgICAgTWFyayBwb3NpdGlvbjogb2xkZXN0X2NvbnRleHQtPm1hdGNoU3RhcnRS b3cgKyBuYXZGaXJzdE9mZnNldC4KKyAqCisgKiBUaGUgYWN0dWFsIG1hcmsgaXMgc2V0IHRvOiBt aW4obG9va2JhY2tfbWFyaywgbG9va2FoZWFkX21hcmspLgorICogVGhpcyBlbnN1cmVzIGFsbCBy b3dzIHJlYWNoYWJsZSBieSBhbnkgbmF2aWdhdGlvbiBmdW5jdGlvbiBhcmUgcmV0YWluZWQuCisg KgorICogV2hlbiBvZmZzZXRzIGNvbnRhaW4gbm9uLWNvbnN0YW50IGV4cHJlc3Npb25zIChQYXJh bSksIHRoZSBwbGFubmVyIHNldHMKKyAqIG5hdk1heE9mZnNldEtpbmQvbmF2Rmlyc3RPZmZzZXRL aW5kIHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgYW5kIHRoZQorICogZXhlY3V0b3IgZXZh bHVhdGVzIHRoZW0gYXQgaW5pdCB0aW1lLiAgT24gb3ZlcmZsb3csIHRoZSBraW5kIGlzIHNldCB0 bworICogUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCwgZGlzYWJsaW5nIHRyaW0gZm9yIHRoYXQg ZGltZW5zaW9uLgorICoKKyAqIFZJLTYuIEV4ZWNSUFJQcm9jZXNzUm93KCk6IDMtUGhhc2UgUHJv Y2Vzc2luZwogICoKICAqIE5GQSBwcm9jZXNzaW5nIGZvciBhIHNpbmdsZSByb3cgaXMgZGl2aWRl ZCBpbnRvIHRocmVlIHBoYXNlczoKICAqCkBAIC03MDcsNiArNzU1LDIxIEBACiAgKgogICogVklJ SS0zLiBBYnNvcnB0aW9uIENvbmRpdGlvbnMKICAqCisgKiBQbGFubmVyLXRpbWUgcHJlcmVxdWlz aXRlcyAoYWxsIG11c3QgaG9sZCBmb3IgYWJzb3JwdGlvbiB0byBiZSBlbmFibGVkKToKKyAqCisg KiAgIChhKSBTS0lQIFBBU1QgTEFTVCBST1cuICBTS0lQIFRPIE5FWFQgUk9XIGNyZWF0ZXMgb3Zl cmxhcHBpbmcKKyAqICAgICAgIGNvbnRleHRzIHRoYXQgY2Fubm90IGJlIHNhZmVseSBhYnNvcmJl ZC4KKyAqICAgKGIpIFVuYm91bmRlZCBmcmFtZSAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQKKyAqICAgICAgIEZPTExPV0lORykuICBMaW1pdGVkIGZyYW1lcyBhcHBseSBk aWZmZXJlbnRseSB0byBlYWNoIGNvbnRleHQsCisgKiAgICAgICBicmVha2luZyB0aGUgbW9ub3Rv bmljaXR5IHByaW5jaXBsZS4KKyAqICAgKGMpIE5vIG1hdGNoX3N0YXJ0LWRlcGVuZGVudCBuYXZp Z2F0aW9uIGluIERFRklORS4gIEZJUlNULAorICogICAgICAgTEFTVC13aXRoLW9mZnNldCwgYW5k IGNvbXBvdW5kIG5hdmlnYXRpb24gcmVmZXJlbmNpbmcgbWF0Y2hfc3RhcnQKKyAqICAgICAgIChQ UkVWX0ZJUlNULCBORVhUX0ZJUlNULCBQUkVWX0xBU1QvTkVYVF9MQVNUIHdpdGggb2Zmc2V0KQor ICogICAgICAgY2F1c2UgZGlmZmVyZW50IGNvbnRleHRzIHRvIGV2YWx1YXRlIHRvIGRpZmZlcmVu dCB2YWx1ZXMgZm9yIHRoZQorICogICAgICAgc2FtZSByb3csIGJyZWFraW5nIG1vbm90b25pY2l0 eS4KKyAqCisgKiBSdW50aW1lIGNvbmRpdGlvbnMgKGV2YWx1YXRlZCBwZXIgY29udGV4dCBwYWly KToKKyAqCiAgKiAgICgxKSBUaGUgcGF0dGVybiBpcyBtYXJrZWQgYXMgaXNBYnNvcmJhYmxlIChz ZWUgSVYtNSkKICAqICAgKDIpIGFsbFN0YXRlc0Fic29yYmFibGUgb2YgdGhlIHRhcmdldCBjb250 ZXh0IGlzIHRydWUKICAqICAgKDMpIEFuIGVhcmxpZXIgY29udGV4dCAiY292ZXJzIiBhbGwgc3Rh dGVzIG9mIHRoZSB0YXJnZXQKQEAgLTk3OSw2ICsxMDQyLDE5IEBACiAgKiAgIE9ubHkgSU5JVElB TCBpcyBzdXBwb3J0ZWQsIHNlYXJjaGluZyBvbmx5IGZvciBtYXRjaGVzIHN0YXJ0aW5nIGF0IGVh Y2gKICAqICAgcm93IHBvc2l0aW9uIHBvcy4KICAqCisgKiBYLTQuIEJvdW5kZWQgRnJhbWUgSGFu ZGxpbmcKKyAqCisgKiAgIFdoZW4gdGhlIGZyYW1lIGlzIGJvdW5kZWQgKGUuZy4sIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgNQorICogICBGT0xMT1dJTkcpLCBFeGVjUlBSUHJvY2Vzc1Jv dyByZWNlaXZlcyBoYXNMaW1pdGVkRnJhbWU9dHJ1ZSBhbmQKKyAqICAgZnJhbWVPZmZzZXQgaW5k aWNhdGluZyB0aGUgdXBwZXIgYm91bmQuICBBZnRlciB0aGUgYWR2YW5jZSBwaGFzZSwKKyAqICAg YW55IGNvbnRleHQgd2hvc2UgbWF0Y2ggaGFzIGV4Y2VlZGVkIHRoZSBmcmFtZSBib3VuZGFyeQor ICogICAoY3VycmVudFBvcyAtIG1hdGNoU3RhcnRSb3cgPj0gZnJhbWVPZmZzZXQgKyAxKSBpcyBm aW5hbGl6ZWQgZWFybHkuCisgKiAgIFRoaXMgcHJldmVudHMgbWF0Y2hlcyBmcm9tIGV4dGVuZGlu ZyBiZXlvbmQgdGhlIHdpbmRvdyBmcmFtZS4KKyAqCisgKiAgIE5vdGUgdGhhdCBib3VuZGVkIGZy YW1lcyBhbHNvIGRpc2FibGUgY29udGV4dCBhYnNvcnB0aW9uIGF0IHRoZQorICogICBwbGFubmVy IGxldmVsIChzZWUgVklJSS0zKGIpKSwgc2luY2UgdGhlIGZyYW1lIGJvdW5kYXJ5IGJyZWFrcyB0 aGUKKyAqICAgbW9ub3RvbmljaXR5IGFzc3VtcHRpb24gcmVxdWlyZWQgZm9yIGNvcnJlY3QgYWJz b3JwdGlvbi4KKyAqCiAgKiBDaGFwdGVyIFhJICBXb3JrZWQgRXhhbXBsZTogRnVsbCBFeGVjdXRp b24gVHJhY2UKICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAqCkBAIC0xMzMwLDYgKzE0MDYsMTQg QEAKICAqICAgbmZhX2FkdmFuY2VfdmFyICAgICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAg ICAgIFZBUiBoYW5kbGluZwogICogICBuZmFfYWRkX3N0YXRlX3VuaXF1ZSAgICAgICAgICBleGVj UlBSLmMgICAgICAgICAgICAgRGVkdXBsaWNhdGlvbgogICogICBuZmFfc3RhdGVzX2NvdmVyZWQg ICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAgICAgQWJzb3JwdGlvbiBjaGVjaworICogICBu ZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRfdmFycyBleGVjUlBSLmMgICAgICAgICAgICAgUGVyLWNv bnRleHQgcmUtZXZhbAorICogICBFeGVjUlBSR2V0SGVhZENvbnRleHQgICAgICAgICBleGVjUlBS LmMgICAgICAgICAgICAgQ29udGV4dCBsb29rdXAKKyAqICAgRXhlY1JQUkZyZWVDb250ZXh0ICAg ICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIENvbnRleHQgZGVhbGxvY2F0aW9uCisgKiAg IEV4ZWNSUFJDbGVhbnVwRGVhZENvbnRleHRzICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBEZWFk IGNvbnRleHQgY2xlYW51cAorICogICBFeGVjUlBSRmluYWxpemVBbGxDb250ZXh0cyAgICBleGVj UlBSLmMgICAgICAgICAgICAgUGFydGl0aW9uLWVuZCBmaW5hbGl6ZQorICogICBFeGVjUlBSUmVj b3JkQ29udGV4dFN1Y2Nlc3MgICBleGVjUlBSLmMgICAgICAgICAgICAgU3RhdHM6IG1hdGNoIHN1 Y2Nlc3MKKyAqICAgRXhlY1JQUlJlY29yZENvbnRleHRGYWlsdXJlICAgZXhlY1JQUi5jICAgICAg ICAgICAgIFN0YXRzOiBtYXRjaCBmYWlsdXJlCisgKiAgIGNvbXB1dGVfbmF2X29mZnNldHMgICAg ICAgICAgIGNyZWF0ZXBsYW4uYyAgICAgICAgICBUcmltIG9mZnNldCBjb21wdXRhdGlvbgogICoK ICAqIEFwcGVuZGl4IEIuIERhdGEgU3RydWN0dXJlIFJlbGF0aW9uc2hpcCBEaWFncmFtCiAgKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CkBAIC0yOTg5LDYgKzMwNzMsNTYgQEAgRXhlY1JQUlJlY29yZENv bnRleHRGYWlsdXJlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgZmFpbGVkTGVuKQog CX0KIH0KIAorLyoKKyAqIG5mYV9yZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzCisgKgkJUmUtZXZh bHVhdGUgbWF0Y2hfc3RhcnQtZGVwZW5kZW50IERFRklORSB2YXJpYWJsZXMgZm9yIGEgc3BlY2lm aWMKKyAqCQljb250ZXh0IHdob3NlIG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9tIHRoZSBzaGFy ZWQgZXZhbHVhdGlvbidzCisgKgkJbmF2X21hdGNoX3N0YXJ0LgorICoKKyAqIE9ubHkgdmFyaWFi bGVzIGluIGRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQgYXJlIHJlLWV2YWx1YXRlZC4gIFRoZQor ICogY3VycmVudCByb3cncyBzbG90IChlY3h0X291dGVydHVwbGUpIG11c3QgYWxyZWFkeSBiZSBz ZXQgdXAgYnkKKyAqIG5mYV9ldmFsdWF0ZV9yb3coKS4KKyAqLworc3RhdGljIHZvaWQKK25mYV9y ZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZB Q29udGV4dCAqY3R4LAorCQkJCQkJCSAgaW50NjQgY3VycmVudFBvcykKK3sKKwlFeHByQ29udGV4 dCAqZWNvbnRleHQgPSB3aW5zdGF0ZS0+c3MucHMucHNfRXhwckNvbnRleHQ7CisJaW50NjQJCXNh dmVkX21hdGNoX3N0YXJ0ID0gd2luc3RhdGUtPm5hdl9tYXRjaF9zdGFydDsKKwlpbnQ2NAkJc2F2 ZWRfcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3M7CisJaW50CQkJdmFySWR4ID0gMDsKKwlMaXN0 Q2VsbCAgICpsYzsKKworCS8qIFRlbXBvcmFyaWx5IHNldCBuYXZfbWF0Y2hfc3RhcnQgYW5kIGN1 cnJlbnRwb3MgZm9yIEZJUlNUL0xBU1QgKi8KKwl3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0ID0g Y3R4LT5tYXRjaFN0YXJ0Um93OworCXdpbnN0YXRlLT5jdXJyZW50cG9zID0gY3VycmVudFBvczsK KworCS8qIEludmFsaWRhdGUgbmF2X3Nsb3QgY2FjaGUgc2luY2UgbWF0Y2hfc3RhcnQgY2hhbmdl ZCAqLworCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsKKworCWZvcmVhY2gobGMsIHdpbnN0 YXRlLT5kZWZpbmVDbGF1c2VMaXN0KQorCXsKKwkJaWYgKGJtc19pc19tZW1iZXIodmFySWR4LCB3 aW5zdGF0ZS0+ZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudCkpCisJCXsKKwkJCUV4cHJTdGF0ZSAg KmV4cHJTdGF0ZSA9IChFeHByU3RhdGUgKikgbGZpcnN0KGxjKTsKKwkJCURhdHVtCQlyZXN1bHQ7 CisJCQlib29sCQlpc251bGw7CisKKwkJCXJlc3VsdCA9IEV4ZWNFdmFsRXhwcihleHByU3RhdGUs IGVjb250ZXh0LCAmaXNudWxsKTsKKwkJCXdpbnN0YXRlLT5uZmFWYXJNYXRjaGVkW3ZhcklkeF0g PSAoIWlzbnVsbCAmJiBEYXR1bUdldEJvb2wocmVzdWx0KSk7CisJCX0KKworCQl2YXJJZHgrKzsK KwkJaWYgKHZhcklkeCA+PSBsaXN0X2xlbmd0aCh3aW5zdGF0ZS0+ZGVmaW5lVmFyaWFibGVMaXN0 KSkKKwkJCWJyZWFrOworCX0KKworCS8qIFJlc3RvcmUgb3JpZ2luYWwgbWF0Y2hfc3RhcnQsIGN1 cnJlbnRwb3MsIGFuZCBpbnZhbGlkYXRlIGNhY2hlICovCisJd2luc3RhdGUtPm5hdl9tYXRjaF9z dGFydCA9IHNhdmVkX21hdGNoX3N0YXJ0OworCXdpbnN0YXRlLT5jdXJyZW50cG9zID0gc2F2ZWRf cG9zOworCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsKK30KKwogLyoKICAqIEV4ZWNSUFJQ cm9jZXNzUm93CiAgKgpAQCAtMzAwMyw2ICszMTM3LDcgQEAgRXhlY1JQUlByb2Nlc3NSb3coV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zLAogewogCVJQUk5GQUNvbnRl eHQgKmN0eDsKIAlib29sCSAgICp2YXJNYXRjaGVkID0gd2luc3RhdGUtPm5mYVZhck1hdGNoZWQ7 CisJYm9vbAkJaGFzRGVwZW5kZW50ID0gIWJtc19pc19lbXB0eSh3aW5zdGF0ZS0+ZGVmaW5lTWF0 Y2hTdGFydERlcGVuZGVudCk7CiAKIAkvKiBBbGxvdyBxdWVyeSBjYW5jZWxsYXRpb24gb25jZSBw ZXIgcm93IGZvciBzaW1wbGUvbG93LXN0YXRlIHBhdHRlcm5zICovCiAJQ0hFQ0tfRk9SX0lOVEVS UlVQVFMoKTsKQEAgLTMwMjksNiArMzE2NCwxMyBAQCBFeGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1cnJlbnRQb3MsCiAJCQl9CiAJCX0KIAorCQkvKgor CQkgKiBJZiB0aGlzIGNvbnRleHQgaGFzIGEgZGlmZmVyZW50IG1hdGNoU3RhcnRSb3cgdGhhbiB0 aGUgb25lIHVzZWQgaW4KKwkJICogdGhlIHNoYXJlZCBldmFsdWF0aW9uLCByZS1ldmFsdWF0ZSBt YXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFibGVzCisJCSAqIHdpdGggdGhpcyBjb250ZXh0J3Mg bWF0Y2hTdGFydFJvdy4KKwkJICovCisJCWlmIChoYXNEZXBlbmRlbnQgJiYgY3R4LT5tYXRjaFN0 YXJ0Um93ICE9IHdpbnN0YXRlLT5uYXZfbWF0Y2hfc3RhcnQpCisJCQluZmFfcmVldmFsdWF0ZV9k ZXBlbmRlbnRfdmFycyh3aW5zdGF0ZSwgY3R4LCBjdXJyZW50UG9zKTsKIAkJbmZhX21hdGNoKHdp bnN0YXRlLCBjdHgsIHZhck1hdGNoZWQpOwogCQljdHgtPmxhc3RQcm9jZXNzZWRSb3cgPSBjdXJy ZW50UG9zOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dB Z2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCA5Nzg3ZWY3 NzU2Zi4uY2RiZTM1NmFiZDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVX aW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAg LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNz L2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJjYXRh bG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb25fZC5oIgpAQCAtMjQ1LDggKzI0Niw4IEBAIHN0 YXRpYyB2b2lkIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0 IHBvcyk7CiBzdGF0aWMgYm9vbCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmos IGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCk7CiAKIC8qIEZvcndhcmQgZGVjbGFyYXRpb25z IC0gbmF2aWdhdGlvbiBvZmZzZXQgZXZhbHVhdGlvbiAqLwotc3RhdGljIGJvb2wgY29sbGVjdF9w cmV2X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgTGlzdCAqKm9mZnNldHMpOwogc3RhdGljIHZv aWQgZXZhbF9uYXZfbWF4X29mZnNldChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIExpc3QgKmRl ZmluZUNsYXVzZSk7CitzdGF0aWMgdm9pZCBldmFsX25hdl9maXJzdF9vZmZzZXQoV2luZG93QWdn U3RhdGUgKndpbnN0YXRlLCBMaXN0ICpkZWZpbmVDbGF1c2UpOwogCiAvKgogICogTm90IG51bGwg aW5mbyBiaXQgYXJyYXkgY29uc2lzdHMgb2YgMi1iaXQgaXRlbXMKQEAgLTkzMiwyOCArOTMzLDcg QEAgZXZhbF93aW5kb3dhZ2dyZWdhdGVzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIAkgKiBo ZWFkLCBzbyB0aGF0IHR1cGxlc3RvcmUgY2FuIGRpc2NhcmQgdW5uZWNlc3Nhcnkgcm93cy4KIAkg Ki8KIAlpZiAoYWdnX3dpbm9iai0+bWFya3B0ciA+PSAwKQotCXsKLQkJaW50NjQJCW1hcmtwb3Mg PSB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zOwotCi0JCWlmIChycHJfaXNfZGVmaW5lZCh3aW5zdGF0 ZSkpCi0JCXsKLQkJCS8qCi0JCQkgKiBJZiBSUFIgaXMgdXNlZCwgUFJFViBtYXkgbmVlZCB0byBs b29rIGF0IHJvd3MgYmVmb3JlIHRoZSBmcmFtZQotCQkJICogaGVhZC4gIEFkanVzdCBtYXJrIGJ5 IG5hdk1heE9mZnNldCBpZiBrbm93biwgb3RoZXJ3aXNlIHJldGFpbgotCQkJICogZnJvbSBwb3Np dGlvbiAwLgotCQkJICovCi0JCQlpZiAod2luc3RhdGUtPm5hdk1heE9mZnNldCA+PSAwKQotCQkJ ewotCQkJCWlmIChtYXJrcG9zID4gd2luc3RhdGUtPm5hdk1heE9mZnNldCkKLQkJCQkJbWFya3Bv cyAtPSB3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0OwotCQkJCWVsc2UKLQkJCQkJbWFya3BvcyA9IDA7 Ci0JCQl9Ci0JCQllbHNlCi0JCQkJbWFya3BvcyA9IDA7Ci0JCX0KLQkJV2luU2V0TWFya1Bvc2l0 aW9uKGFnZ193aW5vYmosIG1hcmtwb3MpOwotCX0KKwkJV2luU2V0TWFya1Bvc2l0aW9uKGFnZ193 aW5vYmosIHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpOwogCiAJLyoKIAkgKiBOb3cgcmVzdGFydCB0 aGUgYWdncmVnYXRlcyB0aGF0IHJlcXVpcmUgaXQuCkBAIC0xMjc5LDE1ICsxMjU5LDE1IEBAIHBy ZXBhcmVfdHVwbGVzdG9yZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJaWYgKHdpbnN0YXRl LT5uYXZfd2lub2JqKQogCXsKIAkJLyoKLQkJICogQWxsb2NhdGUgbWFyayBhbmQgcmVhZCBwb2lu dGVycyBmb3IgUFJFVi9ORVhUIG5hdmlnYXRpb24uCisJCSAqIEFsbG9jYXRlIG1hcmsgYW5kIHJl YWQgcG9pbnRlcnMgZm9yIFJQUiBuYXZpZ2F0aW9uLgogCQkgKgotCQkgKiBJZiBuYXZNYXhPZmZz ZXQgPj0gMCwgd2UgYWR2YW5jZSB0aGUgbWFyayB0byAoY3VycmVudHBvcyAtCi0JCSAqIG5hdk1h eE9mZnNldCkgYXMgcm93cyBhcmUgcHJvY2Vzc2VkLCBhbGxvd2luZyB0dXBsZXN0b3JlX3RyaW0o KSB0bwotCQkgKiBmcmVlIHJvd3MgdGhhdCBhcmUgbm8gbG9uZ2VyIHJlYWNoYWJsZS4KKwkJICog SWYgbmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhFRCwgd2UgYWR2YW5jZSB0 aGUgbWFyaworCQkgKiBiYXNlZCBvbiAoY3VycmVudHBvcyAtIG5hdk1heE9mZnNldCkgYW5kIG9w dGlvbmFsbHkKKwkJICogKG5mYUNvbnRleHQtPm1hdGNoU3RhcnRSb3cgKyBuYXZGaXJzdE9mZnNl dCksIGFsbG93aW5nCisJCSAqIHR1cGxlc3RvcmVfdHJpbSgpIHRvIGZyZWUgcm93cyB0aGF0IGFy ZSBubyBsb25nZXIgcmVhY2hhYmxlLgogCQkgKgotCQkgKiBJZiBuYXZNYXhPZmZzZXQgPCAwIChS UFJfTkFWX09GRlNFVF9ORUVEU19FVkFMIG9yCi0JCSAqIFJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9B TEwpLCB0aGUgbWFyayBzdGF5cyBhdCAwLCByZXRhaW5pbmcgdGhlCi0JCSAqIGVudGlyZSBwYXJ0 aXRpb24gaW4gdGhlIHR1cGxlc3RvcmUuCisJCSAqIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwg aXMgcmVzb2x2ZWQgYXQgZXhlY3V0b3IgaW5pdDsgYnkgdGhpcworCQkgKiBwb2ludCBpdCBpcyBl aXRoZXIgRklYRUQgb3IgUkVUQUlOX0FMTC4KIAkJICovCiAJCXdpbnN0YXRlLT5uYXZfd2lub2Jq LT5tYXJrcHRyID0KIAkJCXR1cGxlc3RvcmVfYWxsb2NfcmVhZF9wb2ludGVyKHdpbnN0YXRlLT5i dWZmZXIsIDApOwpAQCAtMjUyNywxOCArMjUwNyw0MCBAQCBFeGVjV2luZG93QWdnKFBsYW5TdGF0 ZSAqcHN0YXRlKQogCiAJCS8qCiAJCSAqIEFkdmFuY2UgUlBSIG5hdmlnYXRpb24gbWFyayBwb2lu dGVyIGlmIHBvc3NpYmxlLCBzbyB0aGF0Ci0JCSAqIHR1cGxlc3RvcmVfdHJpbSgpIGNhbiBmcmVl IHJvd3Mgbm8gbG9uZ2VyIHJlYWNoYWJsZSBieSBQUkVWLgorCQkgKiB0dXBsZXN0b3JlX3RyaW0o KSBjYW4gZnJlZSByb3dzIG5vIGxvbmdlciByZWFjaGFibGUgYnkgbmF2aWdhdGlvbi4KIAkJICov CiAJCWlmICh3aW5zdGF0ZS0+bmF2X3dpbm9iaiAmJgogCQkJd2luc3RhdGUtPnJwUGF0dGVybiAh PSBOVUxMICYmCi0JCQl3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0ID49IDApCisJCQl3aW5zdGF0ZS0+ bmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhFRCkKIAkJewogCQkJaW50NjQJ CW5hdm1hcmtwb3M7CiAKKwkJCS8qIEJhY2t3YXJkIHJlYWNoIGZyb20gUFJFVi9MQVNUL2NvbXBv dW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QgKi8KIAkJCWlmICh3aW5zdGF0ZS0+Y3VycmVudHBvcyA+ IHdpbnN0YXRlLT5uYXZNYXhPZmZzZXQpCiAJCQkJbmF2bWFya3BvcyA9IHdpbnN0YXRlLT5jdXJy ZW50cG9zIC0gd2luc3RhdGUtPm5hdk1heE9mZnNldDsKIAkJCWVsc2UKIAkJCQluYXZtYXJrcG9z ID0gMDsKKworCQkJLyoKKwkJCSAqIElmIEZJUlNUIGlzIHVzZWQsIGFsc28gY29uc2lkZXIgbWF0 Y2hfc3RhcnQgKyBuYXZGaXJzdE9mZnNldC4KKwkJCSAqIFRoZSBvbGRlc3QgYWN0aXZlIGNvbnRl eHQgKG5mYUNvbnRleHQpIGhhcyB0aGUgc21hbGxlc3QKKwkJCSAqIG1hdGNoU3RhcnRSb3cuCisJ CQkgKi8KKwkJCWlmICh3aW5zdGF0ZS0+aGFzRmlyc3ROYXYgJiYKKwkJCQl3aW5zdGF0ZS0+bmF2 Rmlyc3RPZmZzZXRLaW5kID09IFJQUl9OQVZfT0ZGU0VUX0ZJWEVEICYmCisJCQkJd2luc3RhdGUt Pm5mYUNvbnRleHQgIT0gTlVMTCkKKwkJCXsKKwkJCQlpbnQ2NAkJZmlyc3RyZWFjaDsKKworCQkJ CWlmICh3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQgPiAtd2luc3RhdGUtPm5mYUNvbnRleHQtPm1h dGNoU3RhcnRSb3cpCisJCQkJCWZpcnN0cmVhY2ggPSB3aW5zdGF0ZS0+bmZhQ29udGV4dC0+bWF0 Y2hTdGFydFJvdworCQkJCQkJKyB3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQ7CisJCQkJZWxzZQor CQkJCQlmaXJzdHJlYWNoID0gMDsKKwkJCQlpZiAoZmlyc3RyZWFjaCA8IG5hdm1hcmtwb3MpCisJ CQkJCW5hdm1hcmtwb3MgPSBmaXJzdHJlYWNoOworCQkJfQorCiAJCQlpZiAobmF2bWFya3BvcyA+ IHdpbnN0YXRlLT5uYXZfd2lub2JqLT5tYXJrcG9zKQogCQkJCVdpblNldE1hcmtQb3NpdGlvbih3 aW5zdGF0ZS0+bmF2X3dpbm9iaiwgbmF2bWFya3Bvcyk7CiAJCX0KQEAgLTI3NzksNiArMjc4MSw3 IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGlu dCBlZmxhZ3MpCiAJCXdpbnN0YXRlLT5uYXZfbnVsbF9zbG90ID0gRXhlY1N0b3JlQWxsTnVsbFR1 cGxlKHdpbnN0YXRlLT5uYXZfbnVsbF9zbG90KTsKIAogCQl3aW5zdGF0ZS0+bmF2X3NhdmVkX291 dGVydHVwbGUgPSBOVUxMOworCQl3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0ID0gMDsKIAl9CiAK IAkvKgpAQCAtMjk4OCwxMCArMjk5MSwyMCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cg Km5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRlLT5ycFNraXBUbyA9 IG5vZGUtPnJwU2tpcFRvOwogCS8qIFNldCB1cCByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBQQVRU RVJOIGNsYXVzZSAoY29tcGlsZWQgTkZBKSAqLwogCXdpbnN0YXRlLT5ycFBhdHRlcm4gPSBub2Rl LT5ycFBhdHRlcm47Ci0JLyogU2V0IHVwIG1heCBQUkVWIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0 cmltICovCisJLyogU2V0IHVwIG5hdiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0gKi8KKwl3 aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0S2luZCA9IG5vZGUtPm5hdk1heE9mZnNldEtpbmQ7CiAJd2lu c3RhdGUtPm5hdk1heE9mZnNldCA9IG5vZGUtPm5hdk1heE9mZnNldDsKLQlpZiAod2luc3RhdGUt Pm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQorCWlmICh3aW5zdGF0 ZS0+bmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQogCQlldmFs X25hdl9tYXhfb2Zmc2V0KHdpbnN0YXRlLCBub2RlLT5kZWZpbmVDbGF1c2UpOworCXdpbnN0YXRl LT5oYXNGaXJzdE5hdiA9IG5vZGUtPmhhc0ZpcnN0TmF2OworCXdpbnN0YXRlLT5uYXZGaXJzdE9m ZnNldEtpbmQgPSBub2RlLT5uYXZGaXJzdE9mZnNldEtpbmQ7CisJd2luc3RhdGUtPm5hdkZpcnN0 T2Zmc2V0ID0gbm9kZS0+bmF2Rmlyc3RPZmZzZXQ7CisJaWYgKHdpbnN0YXRlLT5oYXNGaXJzdE5h diAmJgorCQl3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXRLaW5kID09IFJQUl9OQVZfT0ZGU0VUX05F RURTX0VWQUwpCisJCWV2YWxfbmF2X2ZpcnN0X29mZnNldCh3aW5zdGF0ZSwgbm9kZS0+ZGVmaW5l Q2xhdXNlKTsKKworCS8qIENvcHkgbWF0Y2hfc3RhcnQgZGVwZW5kZW5jeSBiaXRtYXBzZXQgZm9y IHBlci1jb250ZXh0IGV2YWx1YXRpb24gKi8KKwl3aW5zdGF0ZS0+ZGVmaW5lTWF0Y2hTdGFydERl cGVuZGVudCA9IGJtc19jb3B5KG5vZGUtPmRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQpOwogCiAJ LyogQ2FsY3VsYXRlIE5GQSBzdGF0ZSBzaXplIGFuZCBhbGxvY2F0ZSBjeWNsZSBkZXRlY3Rpb24g Yml0bWFwICovCiAJaWYgKG5vZGUtPnJwUGF0dGVybiAhPSBOVUxMKQpAQCAtMzkwMyw4NCArMzkx NiwyNTQgQEAgcHV0X25vdG51bGxfaW5mbyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3Ms IGludCBhcmdubywgYm9vbCBpc251bGwpCiB9CiAKIC8qCi0gKiBjb2xsZWN0X3ByZXZfb2Zmc2V0 X3dhbGtlcgotICoJCVdhbGsgZXhwcmVzc2lvbiB0cmVlIHRvIGNvbGxlY3QgUFJFViBvZmZzZXRf YXJnIGV4cHJlc3Npb25zLgorICogZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcgorICoJCUV2YWx1YXRl IGFuIG9mZnNldCBleHByZXNzaW9uIGF0IGV4ZWN1dG9yIGluaXQgdGltZSBmb3IgdHJpbQorICoJ CW9wdGltaXphdGlvbi4gIFJldHVybnMgdGhlIG9mZnNldCB2YWx1ZSwgb3IgMCBmb3IgTlVMTC9u ZWdhdGl2ZQorICoJCSh0aGVzZSB3aWxsIGNhdXNlIGEgcnVudGltZSBlcnJvciBkdXJpbmcgYWN0 dWFsIG5hdmlnYXRpb24sIHNvIHRoZQorICoJCXRyaW0gdmFsdWUgaXMgaXJyZWxldmFudCkuCisg Ki8KK3N0YXRpYyBpbnQ2NAorZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIEV4cHIgKm9mZnNldF9leHByLAorCQkJCQkgICBpbnQ2NCBkZWZhdWx0T2Zmc2V0 KQoreworCUV4cHJDb250ZXh0ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5wc19FeHByQ29u dGV4dDsKKwlFeHByU3RhdGUgICplc3RhdGU7CisJRGF0dW0JCXZhbDsKKwlib29sCQlpc251bGw7 CisJaW50NjQJCW9mZnNldDsKKworCWlmIChvZmZzZXRfZXhwciA9PSBOVUxMKQorCQlyZXR1cm4g ZGVmYXVsdE9mZnNldDsKKworCWVzdGF0ZSA9IEV4ZWNJbml0RXhwcihvZmZzZXRfZXhwciwgKFBs YW5TdGF0ZSAqKSB3aW5zdGF0ZSk7CisJdmFsID0gRXhlY0V2YWxFeHByU3dpdGNoQ29udGV4dChl c3RhdGUsIGVjb250ZXh0LCAmaXNudWxsKTsKKworCWlmIChpc251bGwpCisJCXJldHVybiAwOwor CisJb2Zmc2V0ID0gRGF0dW1HZXRJbnQ2NCh2YWwpOworCWlmIChvZmZzZXQgPCAwKQorCQlyZXR1 cm4gMDsKKworCXJldHVybiBvZmZzZXQ7Cit9CisKK3R5cGVkZWYgc3RydWN0Cit7CisJV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlOworCWludDY0CQltYXhPZmZzZXQ7CisJYm9vbAkJb3ZlcmZsb3c7 CQkvKiB0cnVlIGlmIG92ZXJmbG93IGRldGVjdGVkICovCit9IEV2YWxOYXZNYXhDb250ZXh0Owor CisvKgorICogZXZhbF9uYXZfbWF4X29mZnNldF93YWxrZXIKKyAqCQlXYWxrIGV4cHJlc3Npb24g dHJlZSBldmFsdWF0aW5nIGJhY2t3YXJkLXJlYWNoIG9mZnNldHMgYXQgcnVudGltZS4KKyAqCisg KiBIYW5kbGVzIHNpbXBsZSBQUkVWLCBMQVNULXdpdGgtb2Zmc2V0LCBhbmQgY29tcG91bmQgUFJF Vl9MQVNUL05FWFRfTEFTVC4KICAqLwogc3RhdGljIGJvb2wKLWNvbGxlY3RfcHJldl9vZmZzZXRf d2Fsa2VyKE5vZGUgKm5vZGUsIExpc3QgKipvZmZzZXRzKQorZXZhbF9uYXZfbWF4X29mZnNldF93 YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY3R4KQogeworCUV2YWxOYXZNYXhDb250ZXh0ICpjb250 ZXh0ID0gKEV2YWxOYXZNYXhDb250ZXh0ICopIGN0eDsKKwogCWlmIChub2RlID09IE5VTEwpCiAJ CXJldHVybiBmYWxzZTsKIAorCS8qIFNob3J0LWNpcmN1aXQgaWYgb3ZlcmZsb3cgYWxyZWFkeSBk ZXRlY3RlZCAqLworCWlmIChjb250ZXh0LT5vdmVyZmxvdykKKwkJcmV0dXJuIGZhbHNlOworCiAJ aWYgKElzQShub2RlLCBSUFJOYXZFeHByKSkKIAl7CiAJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJO YXZFeHByICopIG5vZGU7CisJCWludDY0CQlyZWFjaCA9IDA7CisKKwkJaWYgKG5hdi0+a2luZCA9 PSBSUFJfTkFWX1BSRVYpCisJCXsKKwkJCXJlYWNoID0gZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihj b250ZXh0LT53aW5zdGF0ZSwKKwkJCQkJCQkJCQkgICBuYXYtPm9mZnNldF9hcmcsIDEpOworCQl9 CisJCWVsc2UgaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX0xBU1QgJiYgbmF2LT5vZmZzZXRfYXJn ICE9IE5VTEwpCisJCXsKKwkJCXJlYWNoID0gZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihjb250ZXh0 LT53aW5zdGF0ZSwKKwkJCQkJCQkJCQkgICBuYXYtPm9mZnNldF9hcmcsIDApOworCQl9CisJCWVs c2UgaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfTEFTVCB8fAorCQkJCSBuYXYtPmtpbmQg PT0gUlBSX05BVl9ORVhUX0xBU1QpCisJCXsKKwkJCWludDY0CQlpbm5lciA9IGV2YWxfbmF2X29m ZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgbmF2LT5vZmZz ZXRfYXJnLCAwKTsKKwkJCWludDY0CQlvdXRlciA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29u dGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJn LCAxKTsKIAotCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViAmJiBuYXYtPm9mZnNldF9h cmcgIT0gTlVMTCkKLQkJCSpvZmZzZXRzID0gbGFwcGVuZCgqb2Zmc2V0cywgbmF2LT5vZmZzZXRf YXJnKTsKKwkJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xBU1QpCisJCQl7CisJCQkJ aWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3coaW5uZXIsIG91dGVyLCAmcmVhY2gpKQorCQkJCXsKKwkJ CQkJY29udGV4dC0+b3ZlcmZsb3cgPSB0cnVlOworCQkJCQlyZXR1cm4gZmFsc2U7CisJCQkJfQor CQkJfQorCQkJZWxzZQorCQkJCXJlYWNoID0gKGlubmVyID4gb3V0ZXIpID8gaW5uZXIgLSBvdXRl ciA6IDA7CisJCX0KIAotCQkvKiBEb24ndCB3YWxrIGludG8gUlBSTmF2RXhwciBjaGlsZHJlbiAq LwotCQlyZXR1cm4gZmFsc2U7CisJCWlmIChyZWFjaCA+IGNvbnRleHQtPm1heE9mZnNldCkKKwkJ CWNvbnRleHQtPm1heE9mZnNldCA9IHJlYWNoOworCisJCXJldHVybiBmYWxzZTsJCQkvKiBkb24n dCB3YWxrIGludG8gY2hpbGRyZW4gKi8KIAl9CiAKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dh bGtlcihub2RlLCBjb2xsZWN0X3ByZXZfb2Zmc2V0X3dhbGtlciwgb2Zmc2V0cyk7CisJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZXZhbF9uYXZfbWF4X29mZnNldF93YWxrZXIs IGN0eCk7CiB9CiAKIC8qCiAgKiBldmFsX25hdl9tYXhfb2Zmc2V0Ci0gKgkJRXZhbHVhdGUgbm9u LWNvbnN0YW50IFBSRVYgb2Zmc2V0cyBhdCBleGVjdXRvciBpbml0IHRpbWUuCisgKgkJRXZhbHVh dGUgbm9uLWNvbnN0YW50IGJhY2t3YXJkLXJlYWNoIG9mZnNldHMgYXQgZXhlY3V0b3IgaW5pdCB0 aW1lLgorICoKKyAqIENhbGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZNYXhPZmZzZXRLaW5k IHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwKKyAqIGJlY2F1c2Ugc29tZSBvZmZzZXQgaW4g UFJFViwgTEFTVC13aXRoLW9mZnNldCwgb3IgY29tcG91bmQgUFJFVl9MQVNULworICogTkVYVF9M QVNUIGNvbnRhaW5zIGEgcGFyYW1ldGVyIG9yIG5vbi1mb2xkYWJsZSBleHByZXNzaW9uLgogICoK LSAqIENhbGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZNYXhPZmZzZXQgdG8gUlBSX05BVl9P RkZTRVRfTkVFRFNfRVZBTAotICogYmVjYXVzZSBzb21lIFBSRVYgb2Zmc2V0IGNvbnRhaW5zIGEg cGFyYW1ldGVyIG9yIG5vbi1mb2xkYWJsZSBleHByZXNzaW9uLgotICogV2Fsa3MgdGhlIG9yaWdp bmFsIGRlZmluZUNsYXVzZSBleHByZXNzaW9uIHRyZWVzLCBjb21waWxlcyBhbmQgZXZhbHVhdGVz Ci0gKiBlYWNoIFBSRVYgb2Zmc2V0X2FyZywgYW5kIHN0b3JlcyB0aGUgbWF4aW11bSBpbiB3aW5z dGF0ZS0+bmF2TWF4T2Zmc2V0LgorICogT24gb3ZlcmZsb3csIHNldHMgbmF2TWF4T2Zmc2V0S2lu ZCB0byBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMIHNvIHRoYXQKKyAqIHR1cGxlc3RvcmUgdHJp bSBpcyBkaXNhYmxlZCBmb3IgYmFja3dhcmQgbmF2aWdhdGlvbi4KICAqLwogc3RhdGljIHZvaWQK IGV2YWxfbmF2X21heF9vZmZzZXQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBMaXN0ICpkZWZp bmVDbGF1c2UpCiB7Ci0JRXhwckNvbnRleHQgKmVjb250ZXh0ID0gd2luc3RhdGUtPnNzLnBzLnBz X0V4cHJDb250ZXh0OwotCUxpc3QJICAgKm9mZnNldHMgPSBOSUw7CisJRXZhbE5hdk1heENvbnRl eHQgY3R4OwogCUxpc3RDZWxsICAgKmxjOwotCWludDY0CQltYXhPZmZzZXQgPSAwOwogCi0JLyog Q29sbGVjdCBhbGwgUFJFViBvZmZzZXQgZXhwcmVzc2lvbnMgZnJvbSBERUZJTkUgY2xhdXNlICov CisJY3R4LndpbnN0YXRlID0gd2luc3RhdGU7CisJY3R4Lm1heE9mZnNldCA9IDA7CisJY3R4Lm92 ZXJmbG93ID0gZmFsc2U7CisKIAlmb3JlYWNoKGxjLCBkZWZpbmVDbGF1c2UpCiAJewogCQlUYXJn ZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKIAotCQljb2xsZWN0X3By ZXZfb2Zmc2V0X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJm9mZnNldHMpOworCQlldmFsX25h dl9tYXhfb2Zmc2V0X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJmN0eCk7CiAJfQogCi0JLyog RXZhbHVhdGUgZWFjaCBvZmZzZXQgYW5kIGZpbmQgbWF4aW11bSAqLwotCWZvcmVhY2gobGMsIG9m ZnNldHMpCisJaWYgKGN0eC5vdmVyZmxvdykKIAl7Ci0JCUV4cHIJICAgKm9mZnNldF9leHByID0g KEV4cHIgKikgbGZpcnN0KGxjKTsKLQkJRXhwclN0YXRlICAqZXN0YXRlOwotCQlEYXR1bQkJdmFs OwotCQlib29sCQlpc251bGw7Ci0JCWludDY0CQlvZmZzZXQ7CisJCXdpbnN0YXRlLT5uYXZNYXhP ZmZzZXRLaW5kID0gUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTDsKKwkJd2luc3RhdGUtPm5hdk1h eE9mZnNldCA9IDA7CisJfQorCWVsc2UKKwl7CisJCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXRLaW5k ID0gUlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPSBjdHgu bWF4T2Zmc2V0OworCX0KK30KIAotCQllc3RhdGUgPSBFeGVjSW5pdEV4cHIob2Zmc2V0X2V4cHIs IChQbGFuU3RhdGUgKikgd2luc3RhdGUpOwotCQl2YWwgPSBFeGVjRXZhbEV4cHJTd2l0Y2hDb250 ZXh0KGVzdGF0ZSwgZWNvbnRleHQsICZpc251bGwpOwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGU7CisJaW50NjQJCW1pbk9mZnNldDsKKwlib29sCQlmb3VuZDsK K30gRXZhbE5hdkZpcnN0Q29udGV4dDsKIAotCQkvKgotCQkgKiBOVUxMIG9yIG5lZ2F0aXZlIG9m ZnNldHMgd2lsbCBjYXVzZSBhIHJ1bnRpbWUgZXJyb3Igd2hlbiBQUkVWIGlzCi0JCSAqIGFjdHVh bGx5IGV2YWx1YXRlZC4gIEZvciB0cmltIHB1cnBvc2VzLCB0cmVhdCB0aGVtIGFzIDAuCi0JCSAq LwotCQlpZiAoaXNudWxsKQotCQkJY29udGludWU7CisvKgorICogZXZhbF9uYXZfZmlyc3Rfb2Zm c2V0X3dhbGtlcgorICoJCVdhbGsgZXhwcmVzc2lvbiB0cmVlIGV2YWx1YXRpbmcgZm9yd2FyZC1m cm9tLW1hdGNoX3N0YXJ0IG9mZnNldHMuCisgKgorICogSGFuZGxlcyBzaW1wbGUgRklSU1QgYW5k IGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVC4KKyAqLworc3RhdGljIGJvb2wKK2V2YWxf bmF2X2ZpcnN0X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY3R4KQoreworCUV2YWxO YXZGaXJzdENvbnRleHQgKmNvbnRleHQgPSAoRXZhbE5hdkZpcnN0Q29udGV4dCAqKSBjdHg7CiAK LQkJb2Zmc2V0ID0gRGF0dW1HZXRJbnQ2NCh2YWwpOwotCQlpZiAob2Zmc2V0IDwgMCkKLQkJCWNv bnRpbnVlOworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChJc0Eo bm9kZSwgUlBSTmF2RXhwcikpCisJeworCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAq KSBub2RlOworCQlpbnQ2NAkJY29tYmluZWQgPSBJTlQ2NF9NQVg7CiAKLQkJaWYgKG9mZnNldCA+ IG1heE9mZnNldCkKLQkJCW1heE9mZnNldCA9IG9mZnNldDsKKwkJaWYgKG5hdi0+a2luZCA9PSBS UFJfTkFWX0ZJUlNUKQorCQl7CisJCQljb250ZXh0LT5mb3VuZCA9IHRydWU7CisJCQljb21iaW5l ZCA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkJ CSAgbmF2LT5vZmZzZXRfYXJnLCAwKTsKKwkJfQorCQllbHNlIGlmIChuYXYtPmtpbmQgPT0gUlBS X05BVl9QUkVWX0ZJUlNUIHx8CisJCQkJIG5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRfRklSU1Qp CisJCXsKKwkJCWludDY0CQlpbm5lciA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+ d2luc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgbmF2LT5vZmZzZXRfYXJnLCAwKTsKKwkJCWludDY0 CQlvdXRlciA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJ CQkJCQkJCQkJICAgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnLCAxKTsKKworCQkJY29udGV4dC0+ Zm91bmQgPSB0cnVlOworCQkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfRklSU1QpCisJ CQl7CisJCQkJLyoKKwkJCQkgKiBjb21iaW5lZCA9IGlubmVyIC0gb3V0ZXIuICBCb3RoIGFyZSBu b24tbmVnYXRpdmUsIHNvIHRoZQorCQkJCSAqIHJlc3VsdCA+PSAtSU5UNjRfTUFYLCB3aGljaCBj YW5ub3QgdW5kZXJmbG93IGludDY0LgorCQkJCSAqLworCQkJCWNvbWJpbmVkID0gaW5uZXIgLSBv dXRlcjsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQkvKgorCQkJCSAqIE5FWFRfRklSU1Q6IGNv bWJpbmVkID0gaW5uZXIgKyBvdXRlci4gIFRoaXMgY2FuIG92ZXJmbG93LAorCQkJCSAqIGJ1dCB0 aGUgcmVzdWx0IGlzIGFsd2F5cyA+PSAwLCBzbyBpdCBuZXZlciB1cGRhdGVzCisJCQkJICogbWlu T2Zmc2V0ICh3aGljaCB0cmFja3MgdGhlIG1pbmltdW0pLiAgQ2xhbXAgdG8gSU5UNjRfTUFYCisJ CQkJICogb24gb3ZlcmZsb3cuCisJCQkJICovCisJCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3co aW5uZXIsIG91dGVyLCAmY29tYmluZWQpKQorCQkJCQljb21iaW5lZCA9IElOVDY0X01BWDsKKwkJ CX0KKwkJfQorCisJCWlmIChjb21iaW5lZCA8IGNvbnRleHQtPm1pbk9mZnNldCkKKwkJCWNvbnRl eHQtPm1pbk9mZnNldCA9IGNvbWJpbmVkOworCisJCXJldHVybiBmYWxzZTsKIAl9CiAKLQl3aW5z dGF0ZS0+bmF2TWF4T2Zmc2V0ID0gbWF4T2Zmc2V0OworCXJldHVybiBleHByZXNzaW9uX3RyZWVf d2Fsa2VyKG5vZGUsIGV2YWxfbmF2X2ZpcnN0X29mZnNldF93YWxrZXIsIGN0eCk7Cit9CisKKy8q CisgKiBldmFsX25hdl9maXJzdF9vZmZzZXQKKyAqCQlFdmFsdWF0ZSBub24tY29uc3RhbnQgZm9y d2FyZC1mcm9tLW1hdGNoX3N0YXJ0IG9mZnNldHMgYXQgZXhlY3V0b3IKKyAqCQlpbml0IHRpbWUu CisgKgorICogQ2FsbGVkIHdoZW4gdGhlIHBsYW5uZXIgc2V0IG5hdkZpcnN0T2Zmc2V0S2luZCB0 byBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMCisgKiBiZWNhdXNlIHNvbWUgb2Zmc2V0IGluIEZJ UlNUIG9yIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCBjb250YWlucworICogYSBwYXJh bWV0ZXIgb3Igbm9uLWZvbGRhYmxlIGV4cHJlc3Npb24uCisgKi8KK3N0YXRpYyB2b2lkCitldmFs X25hdl9maXJzdF9vZmZzZXQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBMaXN0ICpkZWZpbmVD bGF1c2UpCit7CisJRXZhbE5hdkZpcnN0Q29udGV4dCBjdHg7CisJTGlzdENlbGwgICAqbGM7CisK KwljdHgud2luc3RhdGUgPSB3aW5zdGF0ZTsKKwljdHgubWluT2Zmc2V0ID0gSU5UNjRfTUFYOwor CWN0eC5mb3VuZCA9IGZhbHNlOworCisJZm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQorCXsKKwkJ VGFyZ2V0RW50cnkgKnRlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CiAKLQlsaXN0X2Zy ZWUob2Zmc2V0cyk7CisJCWV2YWxfbmF2X2ZpcnN0X29mZnNldF93YWxrZXIoKE5vZGUgKikgdGUt PmV4cHIsICZjdHgpOworCX0KKworCWlmIChjdHguZm91bmQgJiYgY3R4Lm1pbk9mZnNldCA8IElO VDY0X01BWCkKKwl7CisJCXdpbnN0YXRlLT5uYXZGaXJzdE9mZnNldEtpbmQgPSBSUFJfTkFWX09G RlNFVF9GSVhFRDsKKwkJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0ID0gY3R4Lm1pbk9mZnNldDsK Kwl9CisJZWxzZQorCXsKKwkJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0S2luZCA9IFJQUl9OQVZf T0ZGU0VUX0ZJWEVEOworCQl3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQgPSAwOworCX0KIH0KIAog LyoKQEAgLTQyMTAsOCArNDM5MywxNCBAQCB1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmpl Y3Qgd2lub2JqLCBpbnQ2NCBwb3MpCiAKIAkJLyoKIAkJICogRXZhbHVhdGUgdmFyaWFibGVzIGZv ciB0aGlzIHJvdyAtIGRvbmUgb25seSBvbmNlLCBzaGFyZWQgYnkgYWxsCi0JCSAqIGNvbnRleHRz CisJCSAqIGNvbnRleHRzLgorCQkgKgorCQkgKiBTZXQgbmF2X21hdGNoX3N0YXJ0IHRvIHRoZSBo ZWFkIGNvbnRleHQncyBtYXRjaFN0YXJ0Um93IGZvcgorCQkgKiBGSVJTVC9MQVNUIG5hdmlnYXRp b24uICBNYXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFibGVzIChGSVJTVCwKKwkJICogTEFTVC13 aXRoLW9mZnNldCkgYXJlIHJlLWV2YWx1YXRlZCBwZXItY29udGV4dCBpbiBFeGVjUlBSUHJvY2Vz c1JvdworCQkgKiB3aGVuIG1hdGNoU3RhcnRSb3cgZGlmZmVycy4KIAkJICovCisJCXdpbnN0YXRl LT5uYXZfbWF0Y2hfc3RhcnQgPSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3c7CiAJCXJvd0V4aXN0 cyA9IG5mYV9ldmFsdWF0ZV9yb3cod2lub2JqLCBjdXJyZW50UG9zLCB3aW5zdGF0ZS0+bmZhVmFy TWF0Y2hlZCk7CiAKIAkJLyogTm8gbW9yZSByb3dzIGluIHBhcnRpdGlvbj8gRmluYWxpemUgYWxs IGNvbnRleHRzICovCkBAIC00Mjk5LDggKzQ0ODgsOCBAQCByZWdpc3Rlcl9yZXN1bHQ6CiAgKiB2 YXJNYXRjaGVkW2ldID0gdHJ1ZSBpZiB2YXJpYWJsZSBpIG1hdGNoZWQgYXQgY3VycmVudCByb3cu CiAgKgogICogVXNlcyAxLXNsb3QgbW9kZWw6IG9ubHkgZWN4dF9vdXRlcnR1cGxlIGlzIHNldCB0 byB0aGUgY3VycmVudCByb3cuCi0gKiBQUkVWL05FWFQgbmF2aWdhdGlvbiBpcyBoYW5kbGVkIGJ5 IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBvcGNvZGVzCi0gKiBkdXJpbmcgZXhwcmVzc2lvbiBl dmFsdWF0aW9uLCB3aGljaCB0ZW1wb3JhcmlseSBzd2FwIHRoZSBzbG90LgorICogUFJFVi9ORVhU L0ZJUlNUL0xBU1QgbmF2aWdhdGlvbiBpcyBoYW5kbGVkIGJ5IEVFT1BfUlBSX05BVl9TRVQvUkVT VE9SRQorICogb3Bjb2RlcyBkdXJpbmcgZXhwcmVzc2lvbiBldmFsdWF0aW9uLCB3aGljaCB0ZW1w b3JhcmlseSBzd2FwIHRoZSBzbG90LgogICovCiBzdGF0aWMgYm9vbAogbmZhX2V2YWx1YXRlX3Jv dyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIGJvb2wgKnZhck1hdGNoZWQpCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCmluZGV4IGQyZjE5NTg0MDcwLi42NmQzN2I3ODg5OCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMKQEAgLTIyMDcsNiArMjIwNyw4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1w bChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoZXhwci0+b2Zmc2V0X2Fy ZyAmJiBXQUxLKGV4cHItPm9mZnNldF9hcmcpKQogCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAo ZXhwci0+Y29tcG91bmRfb2Zmc2V0X2FyZyAmJiBXQUxLKGV4cHItPmNvbXBvdW5kX29mZnNldF9h cmcpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2Ny aXB0aW5nUmVmOgpAQCAtMzE0Niw2ICszMTQ4LDcgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3Jf aW1wbChOb2RlICpub2RlLAogCQkJCUZMQVRDT1BZKG5ld25vZGUsIG5hdiwgUlBSTmF2RXhwcik7 CiAJCQkJTVVUQVRFKG5ld25vZGUtPmFyZywgbmF2LT5hcmcsIEV4cHIgKik7CiAJCQkJTVVUQVRF KG5ld25vZGUtPm9mZnNldF9hcmcsIG5hdi0+b2Zmc2V0X2FyZywgRXhwciAqKTsKKwkJCQlNVVRB VEUobmV3bm9kZS0+Y29tcG91bmRfb2Zmc2V0X2FyZywgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJn LCBFeHByICopOwogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKaW5kZXggOGVlM2NjZjZkMGQu LjAyZDUxMTI2OWFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVh dGVwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCkBA IC0xNiw2ICsxNiw3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAi Y29tbW9uL2ludC5oIgogI2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCkBAIC0yOTIsNiAr MjkzLDcgQEAgc3RhdGljIFdpbmRvd0FnZyAqbWFrZV93aW5kb3dhZ2coTGlzdCAqdGxpc3QsIFdp bmRvd0NsYXVzZSAqd2MsCiAJCQkJCQkJCSBMaXN0ICpydW5Db25kaXRpb24sIFJQU2tpcFRvIHJw U2tpcFRvLAogCQkJCQkJCQkgUlBSUGF0dGVybiAqY29tcGlsZWRQYXR0ZXJuLAogCQkJCQkJCQkg TGlzdCAqZGVmaW5lQ2xhdXNlLAorCQkJCQkJCQkgQml0bWFwc2V0ICpkZWZpbmVNYXRjaFN0YXJ0 RGVwZW5kZW50LAogCQkJCQkJCQkgTGlzdCAqcXVhbCwgYm9vbCB0b3BXaW5kb3csCiAJCQkJCQkJ CSBQbGFuICpsZWZ0dHJlZSk7CiBzdGF0aWMgR3JvdXAgKm1ha2VfZ3JvdXAoTGlzdCAqdGxpc3Qs IExpc3QgKnF1YWwsIGludCBudW1Hcm91cENvbHMsCkBAIC0yNDYyLDE5ICsyNDY0LDcyIEBAIGNy ZWF0ZV9taW5tYXhhZ2dfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgTWluTWF4QWdnUGF0aCAqYmVz dF9wYXRoKQogfQogCiAvKgotICogbmF2X21heF9vZmZzZXRfd2Fsa2VyCi0gKgkJV2FsayBleHBy ZXNzaW9uIHRyZWUgdG8gZmluZCB0aGUgbWF4aW11bSBQUkVWIG9mZnNldC4KKyAqIE5hdk9mZnNl dENvbnRleHQgLSBjb250ZXh0IGZvciBjb21wdXRlX25hdl9vZmZzZXRzIHdhbGtlci4KICAqCi0g KiBPbmx5IFBSRVYgaXMgcmVsZXZhbnQgZm9yIHR1cGxlc3RvcmUgdHJpbSBzaW5jZSBpdCBsb29r cyBiYWNrd2FyZDsKLSAqIE5FWFQgbG9va3MgZm9yd2FyZCBhbmQgbmV2ZXIgcmVmZXJlbmNlcyBh bHJlYWR5LXRyaW1tZWQgcm93cy4KKyAqIENvbGxlY3RzIGJvdGggYmFja3dhcmQgcmVhY2ggKFBS RVYsIExBU1Qtd2l0aC1vZmZzZXQsIGNvbXBvdW5kCisgKiBQUkVWX0xBU1QvTkVYVF9MQVNUKSBh bmQgZm9yd2FyZC1mcm9tLW1hdGNoLXN0YXJ0IHJlYWNoIChGSVJTVCwKKyAqIGNvbXBvdW5kIFBS RVZfRklSU1QvTkVYVF9GSVJTVCkgaW4gYSBzaW5nbGUgdHJlZSB3YWxrLgorICovCit0eXBlZGVm IHN0cnVjdCBOYXZPZmZzZXRDb250ZXh0Cit7CisJaW50NjQJCW1heE9mZnNldDsJCS8qIG1heCBQ UkVWL0xBU1QgYmFja3dhcmQgb2Zmc2V0ICg+PSAwKSAqLworCWJvb2wJCW1heE5lZWRzRXZhbDsJ Lyogbm9uLWNvbnN0YW50IFBSRVYvTEFTVCBvZmZzZXQgZm91bmQgKi8KKwlib29sCQltYXhPdmVy ZmxvdzsJLyogY29uc3RhbnQgb2Zmc2V0IG92ZXJmbG93IGRldGVjdGVkICovCisJaW50NjQJCWZp cnN0T2Zmc2V0OwkvKiBtaW4gRklSU1Qgb2Zmc2V0ICg+PSAwKSwgb3IgLTEgaWYgbm9uZSAqLwor CWJvb2wJCWhhc0ZpcnN0OwkJLyogYW55IEZJUlNUIG5vZGUgZm91bmQgKi8KKwlib29sCQlmaXJz dE5lZWRzRXZhbDsgLyogbm9uLWNvbnN0YW50IEZJUlNUIG9mZnNldCBmb3VuZCAqLworfSBOYXZP ZmZzZXRDb250ZXh0OworCisvKgorICogSGVscGVyOiBleHRyYWN0IGNvbnN0YW50IG9mZnNldCBm cm9tIGFuIGV4cHJlc3Npb24sIGhhbmRsaW5nIE5VTEwvbmVnYXRpdmUuCisgKiBJZiBleHByIGlz IE5VTEwsIHJldHVybnMgZGVmYXVsdE9mZnNldC4KKyAqIFJldHVybnMgdHJ1ZSBpZiBjb25zdGFu dCwgZmFsc2UgaWYgbm9uLWNvbnN0YW50IChQYXJhbSwgY2FzdCwgZXRjLikuCisgKi8KK3N0YXRp YyBib29sCitleHRyYWN0X2NvbnN0X29mZnNldChFeHByICpleHByLCBpbnQ2NCBkZWZhdWx0T2Zm c2V0LCBpbnQ2NCAqcmVzdWx0KQoreworCWlmIChleHByID09IE5VTEwpCisJeworCQkqcmVzdWx0 ID0gZGVmYXVsdE9mZnNldDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaWYgKElzQShleHByLCBD b25zdCkpCisJeworCQlDb25zdAkgICAqYyA9IChDb25zdCAqKSBleHByOworCisJCWlmIChjLT5j b25zdGlzbnVsbCkKKwkJCSpyZXN1bHQgPSAwOwkJLyogcnVudGltZSBlcnJvcjsgc2FmZSBwbGFj ZWhvbGRlciAqLworCQllbHNlCisJCXsKKwkJCSpyZXN1bHQgPSBEYXR1bUdldEludDY0KGMtPmNv bnN0dmFsdWUpOworCQkJaWYgKCpyZXN1bHQgPCAwKQorCQkJCSpyZXN1bHQgPSAwOwkvKiBydW50 aW1lIGVycm9yOyBzYWZlIHBsYWNlaG9sZGVyICovCisJCX0KKwkJcmV0dXJuIHRydWU7CisJfQor CisJcmV0dXJuIGZhbHNlOwkJCQkvKiBub24tY29uc3RhbnQgKi8KK30KKworLyoKKyAqIG5hdl9v ZmZzZXRfd2Fsa2VyCisgKgkJRXhwcmVzc2lvbiB0cmVlIHdhbGtlciBmb3IgY29tcHV0ZV9uYXZf b2Zmc2V0cy4KKyAqCisgKiBGb3IgZWFjaCBSUFJOYXZFeHByIGZvdW5kLCBleHRyYWN0IGl0cyBj b25zdGFudCBvZmZzZXQocykgYW5kIHVwZGF0ZSB0aGUKKyAqIE5hdk9mZnNldENvbnRleHQgd2l0 aCB0aGUgbWF4aW11bSBiYWNrd2FyZCByZWFjaCAobWF4T2Zmc2V0KSBhbmQgbWluaW11bQorICog Zm9yd2FyZCByZWFjaCAoZmlyc3RPZmZzZXQpLiAgSGFuZGxlcyBzaW1wbGUgbmF2aWdhdGlvbiAo UFJFViwgTkVYVCwKKyAqIEZJUlNULCBMQVNUKSBhbmQgY29tcG91bmQgZm9ybXMgKFBSRVZfRklS U1QsIE5FWFRfRklSU1QsIFBSRVZfTEFTVCwKKyAqIE5FWFRfTEFTVCkgYnkgY29tYmluaW5nIGlu bmVyIGFuZCBvdXRlciBvZmZzZXRzLgogICoKLSAqIFJldHVybnMgdHJ1ZSAodG8gc3RvcCB3YWxr aW5nKSBpZiBhIG5vbi1jb25zdGFudCBQUkVWIG9mZnNldCBpcyBmb3VuZCwKLSAqIGluIHdoaWNo IGNhc2UgKm1heE9mZnNldCBpcyBzZXQgdG8gLTEuICBPdGhlcndpc2UgYWNjdW11bGF0ZXMgdGhl Ci0gKiBtYXhpbXVtIGNvbnN0YW50IG9mZnNldCB2YWx1ZS4KKyAqIE5vbi1jb25zdGFudCBvZmZz ZXRzIHNldCBtYXhOZWVkc0V2YWwgb3IgZmlyc3ROZWVkc0V2YWwuICBPdmVyZmxvdyBzZXRzCisg KiBtYXhPdmVyZmxvdyBvciBmaXJzdE92ZXJmbG93IGZvciBSRVRBSU5fQUxMIGZhbGxiYWNrLgog ICovCiBzdGF0aWMgYm9vbAotbmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIGludDY0 ICptYXhPZmZzZXQpCituYXZfb2Zmc2V0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjdHgpCiB7 CisJTmF2T2Zmc2V0Q29udGV4dCAqY29udGV4dCA9IChOYXZPZmZzZXRDb250ZXh0ICopIGN0eDsK KwogCWlmIChub2RlID09IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKIApAQCAtMjQ4Miw4MSArMjUz NywyOTQgQEAgbmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIGludDY0ICptYXhPZmZz ZXQpCiAJewogCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOwogCi0JCS8q IE9ubHkgUFJFViBsb29rcyBiYWNrd2FyZDsgTkVYVCBpcyBpcnJlbGV2YW50IGZvciB0cmltICov Ci0JCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWKQorCQkvKgorCQkgKiBTaW1wbGUgUFJF Vih2LCBOKSBhbmQgTEFTVCh2LCBOKTogYmFja3dhcmQgcmVhY2ggZnJvbSBjdXJyZW50cG9zLgor CQkgKiBMQVNUIHdpdGhvdXQgb2Zmc2V0ID0gY3VycmVudHBvcywgbm8gYmFja3dhcmQgcmVhY2gu IE5FWFQ6IGZvcndhcmQKKwkJICogb25seSwgaXJyZWxldmFudCBmb3IgdHJpbS4KKwkJICovCisJ CWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQkobmF2LT5raW5kID09IFJQUl9O QVZfTEFTVCAmJiBuYXYtPm9mZnNldF9hcmcgIT0gTlVMTCkpCiAJCXsKLQkJCWludDY0CQlvZmZz ZXQ7Ci0KLQkJCWlmIChuYXYtPm9mZnNldF9hcmcgPT0gTlVMTCkKKwkJCWlmICghY29udGV4dC0+ bWF4TmVlZHNFdmFsKQogCQkJewotCQkJCS8qIDEtYXJnIGZvcm06IGltcGxpY2l0IG9mZnNldCBv ZiAxICovCi0JCQkJb2Zmc2V0ID0gMTsKKwkJCQlpbnQ2NAkJb2Zmc2V0OworCisJCQkJaWYgKGV4 dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMSwgJm9mZnNldCkpCisJCQkJewor CQkJCQlpZiAob2Zmc2V0ID4gY29udGV4dC0+bWF4T2Zmc2V0KQorCQkJCQkJY29udGV4dC0+bWF4 T2Zmc2V0ID0gb2Zmc2V0OworCQkJCX0KKwkJCQllbHNlCisJCQkJCWNvbnRleHQtPm1heE5lZWRz RXZhbCA9IHRydWU7CiAJCQl9Ci0JCQllbHNlIGlmIChJc0EobmF2LT5vZmZzZXRfYXJnLCBDb25z dCkpCisJCX0KKworCQkvKgorCQkgKiBTaW1wbGUgRklSU1QodiwgTik6IGZvcndhcmQgcmVhY2gg ZnJvbSBtYXRjaF9zdGFydC4gU21hbGxlciBOIG1lYW5zCisJCSAqIG9sZGVyIHJvd3MgbmVlZGVk LgorCQkgKi8KKwkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX0ZJUlNUKQorCQl7CisJCQljb250 ZXh0LT5oYXNGaXJzdCA9IHRydWU7CisKKwkJCWlmICghY29udGV4dC0+Zmlyc3ROZWVkc0V2YWwp CiAJCQl7Ci0JCQkJQ29uc3QJICAgKmMgPSAoQ29uc3QgKikgbmF2LT5vZmZzZXRfYXJnOworCQkJ CWludDY0CQlvZmZzZXQ7CiAKLQkJCQlpZiAoYy0+Y29uc3Rpc251bGwpCisJCQkJaWYgKGV4dHJh Y3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMCwgJm9mZnNldCkpCiAJCQkJewotCQkJ CQkvKgotCQkJCQkgKiBOVUxMIG9mZnNldCBjYXVzZXMgYSBydW50aW1lIGVycm9yLCBzbyB0aGlz IHBhdGggaXMKLQkJCQkJICogbmV2ZXIgYWN0dWFsbHkgcmVhY2hlZCBkdXJpbmcgZXhlY3V0aW9u LiAgVXNlIDAgYXMgYQotCQkJCQkgKiBzYWZlIHBsYWNlaG9sZGVyIGZvciBwbGFubmluZyBwdXJw b3Nlcy4KLQkJCQkJICovCi0JCQkJCW9mZnNldCA9IDA7CisJCQkJCWlmIChvZmZzZXQgPCBjb250 ZXh0LT5maXJzdE9mZnNldCkKKwkJCQkJCWNvbnRleHQtPmZpcnN0T2Zmc2V0ID0gb2Zmc2V0Owog CQkJCX0KIAkJCQllbHNlCisJCQkJCWNvbnRleHQtPmZpcnN0TmVlZHNFdmFsID0gdHJ1ZTsKKwkJ CX0KKwkJfQorCisJCS8qCisJCSAqIENvbXBvdW5kIFBSRVZfTEFTVCAvIE5FWFRfTEFTVDogYmFz ZSA9IGN1cnJlbnRwb3MuIFBSRVZfTEFTVCh2LCBOLAorCQkgKiBNKTogdGFyZ2V0ID0gY3VycmVu dHBvcyAtIE4gLSBNIOKGkiBsb29rYmFjayA9IE4gKyBNIE5FWFRfTEFTVCh2LAorCQkgKiBOLCBN KTogdGFyZ2V0ID0gY3VycmVudHBvcyAtIE4gKyBNIOKGkiBsb29rYmFjayA9IG1heChOIC0gTSwg MCkKKwkJICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xBU1QgfHwKKwkJCW5h di0+a2luZCA9PSBSUFJfTkFWX05FWFRfTEFTVCkKKwkJeworCQkJaWYgKCFjb250ZXh0LT5tYXhO ZWVkc0V2YWwpCisJCQl7CisJCQkJaW50NjQJCWlubmVyLAorCQkJCQkJCW91dGVyLAorCQkJCQkJ CWNvbWJpbmVkOworCisJCQkJaWYgKGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2Fy ZywgMCwgJmlubmVyKSAmJgorCQkJCQlleHRyYWN0X2NvbnN0X29mZnNldChuYXYtPmNvbXBvdW5k X29mZnNldF9hcmcsIDEsICZvdXRlcikpCiAJCQkJewotCQkJCQlvZmZzZXQgPSBEYXR1bUdldElu dDY0KGMtPmNvbnN0dmFsdWUpOwotCQkJCQlpZiAob2Zmc2V0IDwgMCkKLQkJCQkJCW9mZnNldCA9 IDA7IC8qIG5lZ2F0aXZlIG9mZnNldCBjYXVzZXMgcnVudGltZSBlcnJvciAqLworCQkJCQlpZiAo bmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9MQVNUKQorCQkJCQl7CisJCQkJCQlpZiAocGdfYWRk X3M2NF9vdmVyZmxvdyhpbm5lciwgb3V0ZXIsICZjb21iaW5lZCkpCisJCQkJCQl7CisJCQkJCQkJ Y29udGV4dC0+bWF4T3ZlcmZsb3cgPSB0cnVlOworCQkJCQkJCXJldHVybiBmYWxzZTsKKwkJCQkJ CX0KKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQljb21iaW5lZCA9IChpbm5lciA+IG91dGVyKSA/ IGlubmVyIC0gb3V0ZXIgOiAwOworCisJCQkJCWlmIChjb21iaW5lZCA+IGNvbnRleHQtPm1heE9m ZnNldCkKKwkJCQkJCWNvbnRleHQtPm1heE9mZnNldCA9IGNvbWJpbmVkOwogCQkJCX0KKwkJCQll bHNlCisJCQkJCWNvbnRleHQtPm1heE5lZWRzRXZhbCA9IHRydWU7CiAJCQl9Ci0JCQllbHNlCisJ CX0KKworCQkvKgorCQkgKiBDb21wb3VuZCBQUkVWX0ZJUlNUIC8gTkVYVF9GSVJTVDogYmFzZSA9 IG1hdGNoX3N0YXJ0LiBQUkVWX0ZJUlNUKHYsCisJCSAqIE4sIE0pOiB0YXJnZXQgPSBtYXRjaF9z dGFydCArIE4gLSBNIE5FWFRfRklSU1QodiwgTiwgTSk6IHRhcmdldCA9CisJCSAqIG1hdGNoX3N0 YXJ0ICsgTiArIE0gVGhlIGNvbWJpbmVkIG9mZnNldCAoTsKxTSkgZnJvbSBtYXRjaF9zdGFydCBj YW4KKwkJICogYmUgbmVnYXRpdmUsIG1lYW5pbmcgcm93cyBiZWZvcmUgbWF0Y2hfc3RhcnQgYXJl IG5lZWRlZC4KKwkJICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0ZJUlNUIHx8 CisJCQluYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUX0ZJUlNUKQorCQl7CisJCQljb250ZXh0LT5o YXNGaXJzdCA9IHRydWU7CisKKwkJCWlmICghY29udGV4dC0+Zmlyc3ROZWVkc0V2YWwpCiAJCQl7 Ci0JCQkJLyoKLQkJCQkgKiBOb24tY29uc3RhbnQgb2Zmc2V0IChQYXJhbSwgc3RhYmxlIGZ1bmN0 aW9uLCBldGMuKS4gVGhlCi0JCQkJICogcGFyc2VyIGd1YXJhbnRlZXMgb2Zmc2V0IGlzIGEgcnVu dGltZSBjb25zdGFudCwgc28gaXQgY2FuCi0JCQkJICogYmUgZXZhbHVhdGVkIGF0IGV4ZWN1dG9y IGluaXQgdGltZS4KLQkJCQkgKi8KLQkJCQkqbWF4T2Zmc2V0ID0gUlBSX05BVl9PRkZTRVRfTkVF RFNfRVZBTDsKLQkJCQlyZXR1cm4gdHJ1ZTsJLyogc3RvcCB3YWxraW5nICovCisJCQkJaW50NjQJ CWlubmVyLAorCQkJCQkJCW91dGVyLAorCQkJCQkJCWNvbWJpbmVkOworCisJCQkJaWYgKGV4dHJh Y3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMCwgJmlubmVyKSAmJgorCQkJCQlleHRy YWN0X2NvbnN0X29mZnNldChuYXYtPmNvbXBvdW5kX29mZnNldF9hcmcsIDEsICZvdXRlcikpCisJ CQkJeworCQkJCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9GSVJTVCkKKwkJCQkJewor CQkJCQkJLyoKKwkJCQkJCSAqIGNvbWJpbmVkID0gaW5uZXIgLSBvdXRlci4gIEJvdGggYXJlIG5v bi1uZWdhdGl2ZSwKKwkJCQkJCSAqIHNvIHRoZSByZXN1bHQgPj0gLUlOVDY0X01BWCwgd2hpY2gg Y2Fubm90IHVuZGVyZmxvdworCQkJCQkJICogaW50NjQuICBObyBvdmVyZmxvdyBjaGVjayBuZWVk ZWQuCisJCQkJCQkgKi8KKwkJCQkJCWNvbWJpbmVkID0gaW5uZXIgLSBvdXRlcjsKKwkJCQkJfQor CQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBORVhUX0ZJUlNUOiBjb21iaW5l ZCA9IGlubmVyICsgb3V0ZXIuICBUaGlzIGNhbgorCQkJCQkJICogb3ZlcmZsb3csIGJ1dCB0aGUg cmVzdWx0IGlzIGFsd2F5cyA+PSAwLCBzbyBpdAorCQkJCQkJICogbmV2ZXIgdXBkYXRlcyBmaXJz dE9mZnNldCAod2hpY2ggdHJhY2tzIHRoZQorCQkJCQkJICogbWluaW11bSkuICBDbGFtcCB0byBJ TlQ2NF9NQVggb24gb3ZlcmZsb3cuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChwZ19hZGRfczY0X292 ZXJmbG93KGlubmVyLCBvdXRlciwgJmNvbWJpbmVkKSkKKwkJCQkJCQljb21iaW5lZCA9IElOVDY0 X01BWDsKKwkJCQkJfQorCisJCQkJCWlmIChjb21iaW5lZCA8IGNvbnRleHQtPmZpcnN0T2Zmc2V0 KQorCQkJCQkJY29udGV4dC0+Zmlyc3RPZmZzZXQgPSBjb21iaW5lZDsKKwkJCQl9CisJCQkJZWxz ZQorCQkJCQljb250ZXh0LT5maXJzdE5lZWRzRXZhbCA9IHRydWU7CiAJCQl9CisJCX0KIAotCQkJ aWYgKG9mZnNldCA+ICptYXhPZmZzZXQpCi0JCQkJKm1heE9mZnNldCA9IG9mZnNldDsKKwkJLyog RG9uJ3Qgd2FsayBpbnRvIFJQUk5hdkV4cHIgY2hpbGRyZW4gKi8KKwkJcmV0dXJuIGZhbHNlOwor CX0KKworCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG5hdl9vZmZzZXRfd2Fs a2VyLCBjdHgpOworfQorCisvKgorICogY29tcHV0ZV9uYXZfb2Zmc2V0cworICoJCUNvbXB1dGUg bmF2aWdhdGlvbiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0gaW4gYSBzaW5nbGUgcGFzcy4K KyAqCisgKiBXYWxrcyBhbGwgREVGSU5FIGNsYXVzZSBleHByZXNzaW9ucyBvbmNlLCBjb21wdXRp bmc6CisgKiAgIC0gbWF4T2Zmc2V0OiBtYXggYmFja3dhcmQgcmVhY2ggZnJvbSBQUkVWLCBMQVNU LXdpdGgtb2Zmc2V0LAorICogICAgIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QKKyAqICAg LSBoYXNGaXJzdC9maXJzdE9mZnNldDogbWluIGZvcndhcmQtZnJvbS1tYXRjaC1zdGFydCByZWFj aCBmcm9tCisgKiAgICAgRklSU1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVAorICov CitzdGF0aWMgdm9pZAorY29tcHV0ZV9uYXZfb2Zmc2V0cyhMaXN0ICpkZWZpbmVDbGF1c2UsCisJ CQkJCVJQUk5hdk9mZnNldEtpbmQgKm1heEtpbmQsIGludDY0ICptYXhSZXN1bHQsCisJCQkJCWJv b2wgKmhhc0ZpcnN0LAorCQkJCQlSUFJOYXZPZmZzZXRLaW5kICpmaXJzdEtpbmQsIGludDY0ICpm aXJzdFJlc3VsdCkKK3sKKwlOYXZPZmZzZXRDb250ZXh0IGN0eDsKKwlMaXN0Q2VsbCAgICpsYzsK KworCWN0eC5tYXhPZmZzZXQgPSAwOworCWN0eC5tYXhOZWVkc0V2YWwgPSBmYWxzZTsKKwljdHgu bWF4T3ZlcmZsb3cgPSBmYWxzZTsKKwljdHguZmlyc3RPZmZzZXQgPSBJTlQ2NF9NQVg7CS8qIHNl bnRpbmVsOiBubyBGSVJTVCBmb3VuZCB5ZXQgKi8KKwljdHguaGFzRmlyc3QgPSBmYWxzZTsKKwlj dHguZmlyc3ROZWVkc0V2YWwgPSBmYWxzZTsKKworCWZvcmVhY2gobGMsIGRlZmluZUNsYXVzZSkK Kwl7CisJCVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCisJ CW5hdl9vZmZzZXRfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCAmY3R4KTsKKwl9CisKKwkvKiBN YXggYmFja3dhcmQgb2Zmc2V0ICovCisJaWYgKGN0eC5tYXhPdmVyZmxvdykKKwl7CisJCSptYXhL aW5kID0gUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTDsKKwkJKm1heFJlc3VsdCA9IDA7CisJfQor CWVsc2UgaWYgKGN0eC5tYXhOZWVkc0V2YWwpCisJeworCQkqbWF4S2luZCA9IFJQUl9OQVZfT0ZG U0VUX05FRURTX0VWQUw7CisJCSptYXhSZXN1bHQgPSAwOworCX0KKwllbHNlCisJeworCQkqbWF4 S2luZCA9IFJQUl9OQVZfT0ZGU0VUX0ZJWEVEOworCQkqbWF4UmVzdWx0ID0gY3R4Lm1heE9mZnNl dDsKKwl9CisKKwkvKiBGaXJzdCBvZmZzZXQgKGNhbiBiZSBuZWdhdGl2ZSBmb3IgY29tcG91bmQg UFJFVl9GSVJTVCkgKi8KKwkqaGFzRmlyc3QgPSBjdHguaGFzRmlyc3Q7CisJaWYgKGN0eC5oYXNG aXJzdCkKKwl7CisJCWlmIChjdHguZmlyc3ROZWVkc0V2YWwpCisJCXsKKwkJCSpmaXJzdEtpbmQg PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOworCQkJKmZpcnN0UmVzdWx0ID0gMDsKKwkJfQor CQllbHNlIGlmIChjdHguZmlyc3RPZmZzZXQgPT0gSU5UNjRfTUFYKQorCQl7CisJCQkqZmlyc3RL aW5kID0gUlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCQkqZmlyc3RSZXN1bHQgPSAwOwkvKiBvbmx5 IGltcGxpY2l0IEZJUlNUKHYpICovCisJCX0KKwkJZWxzZQorCQl7CisJCQkqZmlyc3RLaW5kID0g UlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCQkqZmlyc3RSZXN1bHQgPSBjdHguZmlyc3RPZmZzZXQ7 IC8qIG1heSBiZSBuZWdhdGl2ZSAqLwogCQl9CisJfQorCWVsc2UKKwl7CisJCSpmaXJzdEtpbmQg PSBSUFJfTkFWX09GRlNFVF9GSVhFRDsKKwkJKmZpcnN0UmVzdWx0ID0gMDsKKwl9Cit9CiAKLQkJ LyogRG9uJ3Qgd2FsayBpbnRvIFJQUk5hdkV4cHIgY2hpbGRyZW4gLSBvZmZzZXRfYXJnIGFscmVh ZHkgaGFuZGxlZCAqLworLyoKKyAqIGhhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5CisgKgkJQ2hl Y2sgaWYgYW4gZXhwcmVzc2lvbiB0cmVlIGNvbnRhaW5zIG5hdmlnYXRpb24gdGhhdCBkZXBlbmRz IG9uCisgKgkJbWF0Y2hfc3RhcnQ6IEZJUlNULCBMQVNULXdpdGgtb2Zmc2V0LCBvciBjb21wb3Vu ZCBQUkVWX0ZJUlNULworICoJCU5FWFRfRklSU1QvUFJFVl9MQVNUL05FWFRfTEFTVCB3aXRoIG9m ZnNldC4gIFN1Y2ggZXhwcmVzc2lvbnMKKyAqCQlyZXF1aXJlIHBlci1jb250ZXh0IHJlLWV2YWx1 YXRpb24gZHVyaW5nIE5GQSBwcm9jZXNzaW5nLgorICoKKyAqIExBU1Qgd2l0aG91dCBvZmZzZXQg YWx3YXlzIHJlc29sdmVzIHRvIGN1cnJlbnRwb3MgYW5kIGlzCisgKiBtYXRjaF9zdGFydC1pbmRl cGVuZGVudC4KKyAqLworc3RhdGljIGJvb2wKK2hhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5KE5v ZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJu IGZhbHNlOworCisJaWYgKElzQShub2RlLCBSUFJOYXZFeHByKSkKKwl7CisJCVJQUk5hdkV4cHIg Km5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisKKwkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFW X0ZJUlNUKQorCQkJcmV0dXJuIHRydWU7CisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9MQVNU ICYmIG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJcmV0dXJuIHRydWU7CisKKwkJLyogQ29t cG91bmQga2luZHMgd2l0aCBGSVJTVCBiYXNlIGRlcGVuZCBvbiBtYXRjaF9zdGFydCAqLworCQlp ZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9GSVJTVCB8fAorCQkJbmF2LT5raW5kID09IFJQ Ul9OQVZfTkVYVF9GSVJTVCkKKwkJCXJldHVybiB0cnVlOworCisJCS8qCisJCSAqIFBSRVZfTEFT VC9ORVhUX0xBU1Q6IGlubmVyIGlzIExBU1QsIHdoaWNoIHVzZXMgY3VycmVudHBvcy4KKwkJICog bWF0Y2hfc3RhcnQtZGVwZW5kZW50IG9ubHkgaWYgaW5uZXIgaGFzIG9mZnNldCAoY2xhbXBlZCB0 bworCQkgKiBtYXRjaF9zdGFydCkuCisJCSAqLworCQlpZiAoKG5hdi0+a2luZCA9PSBSUFJfTkFW X1BSRVZfTEFTVCB8fAorCQkJIG5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRfTEFTVCkgJiYKKwkJ CW5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJcmV0dXJuIHRydWU7CisKKwkJLyogQ2hlY2sg Y2hpbGRyZW4gKGFyZyBtYXkgY29udGFpbiBmdXJ0aGVyIG5hdiBleHByZXNzaW9ucykgKi8KKwkJ cmV0dXJuIGhhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5KChOb2RlICopIG5hdi0+YXJnLCBjb250 ZXh0KTsKIAl9CiAKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBuYXZfbWF4 X29mZnNldF93YWxrZXIsIG1heE9mZnNldCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxr ZXIobm9kZSwgaGFzX21hdGNoX3N0YXJ0X2RlcGVuZGVuY3ksIE5VTEwpOwogfQogCiAvKgotICog Y29tcHV0ZV9uYXZfbWF4X29mZnNldAotICoJCUNvbXB1dGUgdGhlIG1heGltdW0gUFJFViBvZmZz ZXQgZnJvbSBERUZJTkUgY2xhdXNlIGV4cHJlc3Npb25zLgorICogY29tcHV0ZV9tYXRjaF9zdGFy dF9kZXBlbmRlbnQKKyAqCQlCdWlsZCBhIEJpdG1hcHNldCBvZiBERUZJTkUgdmFyaWFibGUgaW5k aWNlcyB3aG9zZSBleHByZXNzaW9ucworICoJCWRlcGVuZCBvbiBtYXRjaF9zdGFydCAoY29udGFp biBGSVJTVCwgTEFTVC13aXRoLW9mZnNldCwgb3IKKyAqCQljb21wb3VuZCBQUkVWX0ZJUlNUL05F WFRfRklSU1QvUFJFVl9MQVNUL05FWFRfTEFTVCB3aXRoIG9mZnNldCkuCiAgKgotICogUmV0dXJu cyB0aGUgbWF4aW11bSBjb25zdGFudCBvZmZzZXQgZm91bmQsIG9yIC0xIGlmIGFueSBQUkVWIG9m ZnNldAotICogY2Fubm90IGJlIGRldGVybWluZWQgc3RhdGljYWxseS4gIE5FWFQgb2Zmc2V0cyBh cmUgaWdub3JlZCBzaW5jZSB0aGV5Ci0gKiBsb29rIGZvcndhcmQgYW5kIGRvbid0IGFmZmVjdCB0 dXBsZXN0b3JlIHRyaW0uCisgKiBWYXJpYWJsZXMgaW4gdGhpcyBzZXQgcmVxdWlyZSBwZXItY29u dGV4dCByZS1ldmFsdWF0aW9uIGR1cmluZyBORkEKKyAqIHByb2Nlc3NpbmcsIGJlY2F1c2UgZGlm ZmVyZW50IGNvbnRleHRzIG1heSBoYXZlIGRpZmZlcmVudCBtYXRjaF9zdGFydAorICogdmFsdWVz LgogICovCi1zdGF0aWMgaW50NjQKLWNvbXB1dGVfbmF2X21heF9vZmZzZXQoTGlzdCAqZGVmaW5l Q2xhdXNlKQorc3RhdGljIEJpdG1hcHNldCAqCitjb21wdXRlX21hdGNoX3N0YXJ0X2RlcGVuZGVu dChMaXN0ICpkZWZpbmVDbGF1c2UpCiB7Ci0JaW50NjQJCW1heE9mZnNldCA9IDA7CisJQml0bWFw c2V0ICAqcmVzdWx0ID0gTlVMTDsKIAlMaXN0Q2VsbCAgICpsYzsKKwlpbnQJCQl2YXJJZHggPSAw OwogCiAJZm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQogCXsKIAkJVGFyZ2V0RW50cnkgKnRlID0g KFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CiAKLQkJaWYgKG5hdl9tYXhfb2Zmc2V0X3dhbGtl cigoTm9kZSAqKSB0ZS0+ZXhwciwgJm1heE9mZnNldCkpCi0JCQlyZXR1cm4gbWF4T2Zmc2V0Owkv KiBORUVEU19FVkFMIG9yIFJFVEFJTl9BTEwgKi8KKwkJaWYgKGhhc19tYXRjaF9zdGFydF9kZXBl bmRlbmN5KChOb2RlICopIHRlLT5leHByLCBOVUxMKSkKKwkJCXJlc3VsdCA9IGJtc19hZGRfbWVt YmVyKHJlc3VsdCwgdmFySWR4KTsKKworCQl2YXJJZHgrKzsKIAl9CiAKLQlyZXR1cm4gbWF4T2Zm c2V0OworCXJldHVybiByZXN1bHQ7CiB9CiAKIC8qCkBAIC0yNTg2LDYgKzI4NTQsNyBAQCBjcmVh dGVfd2luZG93YWdnX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIFdpbmRvd0FnZ1BhdGggKmJlc3Rf cGF0aCkKIAlMaXN0CSAgICpkZWZpbmVWYXJpYWJsZUxpc3QgPSBOSUw7CiAJTGlzdAkgICAqZmls dGVyZWREZWZpbmVDbGF1c2UgPSBOSUw7CiAJUlBSUGF0dGVybiAqY29tcGlsZWRQYXR0ZXJuID0g TlVMTDsKKwlCaXRtYXBzZXQgICptYXRjaFN0YXJ0RGVwZW5kZW50ID0gTlVMTDsKIAogCiAJLyoK QEAgLTI2NDgsMTEgKzI5MTcsMTUgQEAgY3JlYXRlX3dpbmRvd2FnZ19wbGFuKFBsYW5uZXJJbmZv ICpyb290LCBXaW5kb3dBZ2dQYXRoICpiZXN0X3BhdGgpCiAJCWJ1aWxkRGVmaW5lVmFyaWFibGVM aXN0KHdjLT5kZWZpbmVDbGF1c2UsICZkZWZpbmVWYXJpYWJsZUxpc3QpOwogCQlmaWx0ZXJlZERl ZmluZUNsYXVzZSA9IHdjLT5kZWZpbmVDbGF1c2U7CiAKKwkJLyogSWRlbnRpZnkgbWF0Y2hfc3Rh cnQtZGVwZW5kZW50IERFRklORSB2YXJpYWJsZXMgKi8KKwkJbWF0Y2hTdGFydERlcGVuZGVudCA9 IGNvbXB1dGVfbWF0Y2hfc3RhcnRfZGVwZW5kZW50KHdjLT5kZWZpbmVDbGF1c2UpOworCiAJCS8q IENvbXBpbGUgYW5kIG9wdGltaXplIFJQUiBwYXR0ZXJucyAqLwogCQljb21waWxlZFBhdHRlcm4g PSBidWlsZFJQUlBhdHRlcm4od2MtPnJwUGF0dGVybiwKIAkJCQkJCQkJCQkgIGRlZmluZVZhcmlh YmxlTGlzdCwKIAkJCQkJCQkJCQkgIHdjLT5ycFNraXBUbywKLQkJCQkJCQkJCQkgIHdjLT5mcmFt ZU9wdGlvbnMpOworCQkJCQkJCQkJCSAgd2MtPmZyYW1lT3B0aW9ucywKKwkJCQkJCQkJCQkgICFi bXNfaXNfZW1wdHkobWF0Y2hTdGFydERlcGVuZGVudCkpOwogCX0KIAogCS8qIEFuZCBmaW5hbGx5 IHdlIGNhbiBtYWtlIHRoZSBXaW5kb3dBZ2cgbm9kZSAqLwpAQCAtMjY3MCw2ICsyOTQzLDcgQEAg Y3JlYXRlX3dpbmRvd2FnZ19wbGFuKFBsYW5uZXJJbmZvICpyb290LCBXaW5kb3dBZ2dQYXRoICpi ZXN0X3BhdGgpCiAJCQkJCQkgIHdjLT5ycFNraXBUbywKIAkJCQkJCSAgY29tcGlsZWRQYXR0ZXJu LAogCQkJCQkJICBmaWx0ZXJlZERlZmluZUNsYXVzZSwKKwkJCQkJCSAgbWF0Y2hTdGFydERlcGVu ZGVudCwKIAkJCQkJCSAgYmVzdF9wYXRoLT5xdWFsLAogCQkJCQkJICBiZXN0X3BhdGgtPnRvcHdp bmRvdywKIAkJCQkJCSAgc3VicGxhbik7CkBAIC02NzQyLDYgKzcwMTYsNyBAQCBtYWtlX3dpbmRv d2FnZyhMaXN0ICp0bGlzdCwgV2luZG93Q2xhdXNlICp3YywKIAkJCSAgIExpc3QgKnJ1bkNvbmRp dGlvbiwgUlBTa2lwVG8gcnBTa2lwVG8sCiAJCQkgICBSUFJQYXR0ZXJuICpjb21waWxlZFBhdHRl cm4sCiAJCQkgICBMaXN0ICpkZWZpbmVDbGF1c2UsCisJCQkgICBCaXRtYXBzZXQgKmRlZmluZU1h dGNoU3RhcnREZXBlbmRlbnQsCiAJCQkgICBMaXN0ICpxdWFsLCBib29sIHRvcFdpbmRvdywgUGxh biAqbGVmdHRyZWUpCiB7CiAJV2luZG93QWdnICAqbm9kZSA9IG1ha2VOb2RlKFdpbmRvd0FnZyk7 CkBAIC02Nzc2LDggKzcwNTEsMTQgQEAgbWFrZV93aW5kb3dhZ2coTGlzdCAqdGxpc3QsIFdpbmRv d0NsYXVzZSAqd2MsCiAKIAlub2RlLT5kZWZpbmVDbGF1c2UgPSBkZWZpbmVDbGF1c2U7CiAKLQkv KiBDb21wdXRlIG1heCBQUkVWIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0cmltIG9wdGltaXphdGlv biAqLwotCW5vZGUtPm5hdk1heE9mZnNldCA9IGNvbXB1dGVfbmF2X21heF9vZmZzZXQoZGVmaW5l Q2xhdXNlKTsKKwkvKiBTdG9yZSBwcmUtY29tcHV0ZWQgbWF0Y2hfc3RhcnQgZGVwZW5kZW5jeSBi aXRtYXBzZXQgKi8KKwlub2RlLT5kZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50ID0gZGVmaW5lTWF0 Y2hTdGFydERlcGVuZGVudDsKKworCS8qIENvbXB1dGUgbmF2IG9mZnNldHMgZm9yIHR1cGxlc3Rv cmUgdHJpbSBvcHRpbWl6YXRpb24gKi8KKwljb21wdXRlX25hdl9vZmZzZXRzKGRlZmluZUNsYXVz ZSwKKwkJCQkJCSZub2RlLT5uYXZNYXhPZmZzZXRLaW5kLCAmbm9kZS0+bmF2TWF4T2Zmc2V0LAor CQkJCQkJJm5vZGUtPmhhc0ZpcnN0TmF2LAorCQkJCQkJJm5vZGUtPm5hdkZpcnN0T2Zmc2V0S2lu ZCwgJm5vZGUtPm5hdkZpcnN0T2Zmc2V0KTsKIAogCXBsYW4tPnRhcmdldGxpc3QgPSB0bGlzdDsK IAlwbGFuLT5sZWZ0dHJlZSA9IGxlZnR0cmVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRl eCBjMGU5ZDEzNGFhOS4uNzY3YTIxNDAxNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBA IC0xODkzLDcgKzE4OTMsOCBAQCBidWlsZERlZmluZVZhcmlhYmxlTGlzdChMaXN0ICpkZWZpbmVD bGF1c2UsIExpc3QgKipkZWZpbmVWYXJpYWJsZUxpc3QpCiAgKi8KIFJQUlBhdHRlcm4gKgogYnVp bGRSUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuLCBMaXN0ICpkZWZpbmVWYXJpYWJs ZUxpc3QsCi0JCQkJUlBTa2lwVG8gcnBTa2lwVG8sIGludCBmcmFtZU9wdGlvbnMpCisJCQkJUlBT a2lwVG8gcnBTa2lwVG8sIGludCBmcmFtZU9wdGlvbnMsCisJCQkJYm9vbCBoYXNNYXRjaFN0YXJ0 RGVwZW5kZW50KQogewogCVJQUlBhdHRlcm4gKnJlc3VsdDsKIAlSUFJQYXR0ZXJuTm9kZSAqb3B0 aW1pemVkOwpAQCAtMTk0Nyw3ICsxOTQ4LDggQEAgYnVpbGRSUFJQYXR0ZXJuKFJQUlBhdHRlcm5O b2RlICpwYXR0ZXJuLCBMaXN0ICpkZWZpbmVWYXJpYWJsZUxpc3QsCiAJaGFzTGltaXRlZEZyYW1l ID0gKGZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1JPV1MpICYmCiAJCSEoZnJhbWVPcHRpb25z ICYgRlJBTUVPUFRJT05fRU5EX1VOQk9VTkRFRF9GT0xMT1dJTkcpOwogCi0JaWYgKHJwU2tpcFRv ID09IFNUX1BBU1RfTEFTVF9ST1cgJiYgIWhhc0xpbWl0ZWRGcmFtZSkKKwlpZiAocnBTa2lwVG8g PT0gU1RfUEFTVF9MQVNUX1JPVyAmJiAhaGFzTGltaXRlZEZyYW1lICYmCisJCSFoYXNNYXRjaFN0 YXJ0RGVwZW5kZW50KQogCXsKIAkJLyogUnVudGltZSBjb25kaXRpb25zIG1ldCAtIGNoZWNrIHN0 cnVjdHVyYWwgYWJzb3JiYWJpbGl0eSAqLwogCQljb21wdXRlQWJzb3JiYWJpbGl0eShyZXN1bHQp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggZTE0ZmY0ZGM0OTQuLmFhNDVhOTg3MTNmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTc1NywzNSArNzU3LDc5IEBAIFBhcnNlRnVuY09y Q29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25hbWUsIExpc3QgKmZhcmdzLAog CWlmIChyZXRzZXQpCiAJCWNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChwc3RhdGUsIGxhc3Rfc3Jm LCBsb2NhdGlvbik7CiAKLQkvKiBuZXh0KCkgYW5kIHByZXYoKSBhcmUgb25seSBhbGxvd2VkIGlu IGEgV0lORE9XIERFRklORSBjbGF1c2UgKi8KKwkvKgorCSAqIFJQUiBuYXZpZ2F0aW9uIGZ1bmN0 aW9ucyAoUFJFVi9ORVhUL0ZJUlNUL0xBU1QpIGFyZSBvbmx5IG1lYW5pbmdmdWwKKwkgKiBpbnNp ZGUgYSBXSU5ET1cgREVGSU5FIGNsYXVzZS4KKwkgKgorCSAqIE91dHNpZGUgREVGSU5FLCB0aGVz ZSBwb2x5bW9ycGhpYyBwbGFjZWhvbGRlcnMgY2FuIHNoYWRvdyBjb2x1bW4gYWNjZXNzCisJICog dmlhIGZ1bmN0aW9uYWwgbm90YXRpb24gKGUuZy4sIGxhc3QoZikgbWVhbmluZyBmLmxhc3QpLiBG b3IgdGhlIDEtYXJnCisJICogZm9ybSwgdHJ5IGNvbHVtbiBwcm9qZWN0aW9uIGZpcnN0OyBpZiB0 aGF0IHN1Y2NlZWRzLCB1c2UgaXQgaW5zdGVhZC4KKwkgKiBPdGhlcndpc2UsIHJlcG9ydCBhIGNs ZWFyIHBhcnNlciBlcnJvci4KKwkgKi8KIAlpZiAoZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9OT1JN QUwgJiYKIAkJcHN0YXRlLT5wX2V4cHJfa2luZCAhPSBFWFBSX0tJTkRfUlBSX0RFRklORSAmJgog CQkoZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UIHx8IGZ1bmNpZCA9PSBGX05FWFRfQU5ZRUxF TUVOVCB8fAotCQkgZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwgZnVuY2lkID09 IEZfTkVYVF9BTllFTEVNRU5UX0lOVDgpKQorCQkgZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5U X0lOVDggfHwgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UX0lOVDggfHwKKwkJIGZ1bmNpZCA9 PSBGX0ZJUlNUX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfTEFTVF9BTllFTEVNRU5UIHx8CisJ CSBmdW5jaWQgPT0gRl9GSVJTVF9BTllFTEVNRU5UX0lOVDggfHwgZnVuY2lkID09IEZfTEFTVF9B TllFTEVNRU5UX0lOVDgpKQorCXsKKwkJLyogMS1hcmcgZm9ybTogdHJ5IGNvbHVtbiBwcm9qZWN0 aW9uIGJlZm9yZSBlcnJvcmluZyBvdXQgKi8KKwkJaWYgKG5hcmdzID09IDEgJiYgIWFnZ19zdGFy ICYmICFhZ2dfZGlzdGluY3QgJiYgb3ZlciA9PSBOVUxMICYmCisJCQlsaXN0X2xlbmd0aChmdW5j bmFtZSkgPT0gMSkKKwkJeworCQkJTm9kZQkgICAqcHJvamVjdGlvbjsKKworCQkJcHJvamVjdGlv biA9IFBhcnNlQ29tcGxleFByb2plY3Rpb24ocHN0YXRlLAorCQkJCQkJCQkJCQkJc3RyVmFsKGxp bml0aWFsKGZ1bmNuYW1lKSksCisJCQkJCQkJCQkJCQlsaW5pdGlhbChmYXJncyksCisJCQkJCQkJ CQkJCQlsb2NhdGlvbik7CisJCQlpZiAocHJvamVjdGlvbikKKwkJCQlyZXR1cm4gcHJvamVjdGlv bjsKKwkJfQorCisJCS8qIE5vdCBhIGNvbHVtbiBwcm9qZWN0aW9uIOKAlCByZXBvcnQgZXJyb3Ig Ki8KIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CiAJCQkJIGVycm1zZygiJXMgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiLAog CQkJCQkJTmFtZUxpc3RUb1N0cmluZyhmdW5jbmFtZSkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRp b24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwl9CiAKIAkvKiBidWlsZCB0aGUgYXBwcm9wcmlhdGUg b3V0cHV0IHN0cnVjdHVyZSAqLwogCWlmIChmZHJlc3VsdCA9PSBGVU5DREVUQUlMX05PUk1BTCAm JgorCQlwc3RhdGUtPnBfZXhwcl9raW5kID09IEVYUFJfS0lORF9SUFJfREVGSU5FICYmCiAJCShm dW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5U IHx8Ci0JCSBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5UOCB8fCBmdW5jaWQgPT0gRl9O RVhUX0FOWUVMRU1FTlRfSU5UOCkpCisJCSBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5U OCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCB8fAorCQkgZnVuY2lkID09IEZf RklSU1RfQU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9MQVNUX0FOWUVMRU1FTlQgfHwKKwkJIGZ1 bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlRfSU5UOCB8fCBmdW5jaWQgPT0gRl9MQVNUX0FOWUVM RU1FTlRfSU5UOCkpCiAJewogCQkvKgotCQkgKiBQUkVWKCkgYW5kIE5FWFQoKSBhcmUgY29tcGls ZWQgaW50byBFRU9QX1JQUl9OQVZfU0VUIC8KLQkJICogRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bj b2RlcyBpbnN0ZWFkIG9mIGEgbm9ybWFsIGZ1bmN0aW9uIGNhbGwuCi0JCSAqIFJlcHJlc2VudCB0 aGVtIGFzIFJQUk5hdkV4cHIgbm9kZXMgc28gdGhhdCBsYXRlciBzdGFnZXMgY2FuCi0JCSAqIGlk ZW50aWZ5IHRoZW0gd2l0aG91dCByZWx5aW5nIG9uIGZ1bmNpZCBjb21wYXJpc29ucy4KKwkJICog UlBSIG5hdmlnYXRpb24gZnVuY3Rpb25zIChQUkVWL05FWFQvRklSU1QvTEFTVCkgYXJlIGNvbXBp bGVkIGludG8KKwkJICogRUVPUF9SUFJfTkFWX1NFVCAvIEVFT1BfUlBSX05BVl9SRVNUT1JFIG9w Y29kZXMgaW5zdGVhZCBvZiBhIG5vcm1hbAorCQkgKiBmdW5jdGlvbiBjYWxsLiAgUmVwcmVzZW50 IHRoZW0gYXMgUlBSTmF2RXhwciBub2RlcyBzbyB0aGF0IGxhdGVyCisJCSAqIHN0YWdlcyBjYW4g aWRlbnRpZnkgdGhlbSB3aXRob3V0IHJlbHlpbmcgb24gZnVuY2lkIGNvbXBhcmlzb25zLgogCQkg Ki8KLQkJYm9vbAkJaXNfbmV4dCA9IChmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKLQkJ CQkJCQkgICBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7Ci0JCWJvb2wJCWhhc19v ZmZzZXQgPSAoZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwKLQkJCQkJCQkJICBm dW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7Ci0JCVJQUk5hdkV4cHIgKm5hdmV4cHIg PSBtYWtlTm9kZShSUFJOYXZFeHByKTsKKwkJUlBSTmF2S2luZAlraW5kOworCQlib29sCQloYXNf b2Zmc2V0OworCQlSUFJOYXZFeHByICpuYXZleHByOworCisJCWlmIChmdW5jaWQgPT0gRl9QUkVW X0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDgpCisJCQlraW5k ID0gUlBSX05BVl9QUkVWOworCQllbHNlIGlmIChmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQg fHwgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UX0lOVDgpCisJCQlraW5kID0gUlBSX05BVl9O RVhUOworCQllbHNlIGlmIChmdW5jaWQgPT0gRl9GSVJTVF9BTllFTEVNRU5UIHx8IGZ1bmNpZCA9 PSBGX0ZJUlNUX0FOWUVMRU1FTlRfSU5UOCkKKwkJCWtpbmQgPSBSUFJfTkFWX0ZJUlNUOworCQll bHNlCisJCQlraW5kID0gUlBSX05BVl9MQVNUOworCisJCWhhc19vZmZzZXQgPSAoZnVuY2lkID09 IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwKKwkJCQkJICBmdW5jaWQgPT0gRl9ORVhUX0FOWUVM RU1FTlRfSU5UOCB8fAorCQkJCQkgIGZ1bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlRfSU5UOCB8 fAorCQkJCQkgIGZ1bmNpZCA9PSBGX0xBU1RfQU5ZRUxFTUVOVF9JTlQ4KTsKKworCQluYXZleHBy ID0gbWFrZU5vZGUoUlBSTmF2RXhwcik7CiAKLQkJbmF2ZXhwci0+a2luZCA9IGlzX25leHQgPyBS UFJfTkFWX05FWFQgOiBSUFJfTkFWX1BSRVY7CisJCW5hdmV4cHItPmtpbmQgPSBraW5kOwogCQlu YXZleHByLT5hcmcgPSAoRXhwciAqKSBsaW5pdGlhbChmYXJncyk7CiAJCW5hdmV4cHItPm9mZnNl dF9hcmcgPSBoYXNfb2Zmc2V0ID8gKEV4cHIgKikgbHNlY29uZChmYXJncykgOiBOVUxMOwogCQlu YXZleHByLT5yZXN1bHR0eXBlID0gcmV0dHlwZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwppbmRleCBk MWUwMmU1MmU1My4uMDUwNzBjYjA0YmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKQEAgLTMzOSw4 ICszMzksOCBAQCB0cmFuc2Zvcm1EZWZpbmVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5k b3dDbGF1c2UgKndjLCBXaW5kb3dEZWYgKndpbmRlZiwKIAkJLyoKIAkJICogVHJhbnNmb3JtIHRo ZSBERUZJTkUgZXhwcmVzc2lvbi4gIFdlIG11c3QgTk9UIGFkZCB0aGUgd2hvbGUKIAkJICogZXhw cmVzc2lvbiB0byB0aGUgcXVlcnkgdGFyZ2V0bGlzdCwgYmVjYXVzZSBpdCBtYXkgY29udGFpbgot CQkgKiBSUFJOYXZFeHByIG5vZGVzIChQUkVWL05FWFQpIHRoYXQgY2FuIG9ubHkgYmUgZXZhbHVh dGVkIGluc2lkZSB0aGUKLQkJICogb3duaW5nIFdpbmRvd0FnZy4KKwkJICogUlBSTmF2RXhwciBu b2RlcyAoUFJFVi9ORVhUL0ZJUlNUL0xBU1QpIHRoYXQgY2FuIG9ubHkgYmUgZXZhbHVhdGVkCisJ CSAqIGluc2lkZSB0aGUgb3duaW5nIFdpbmRvd0FnZy4KIAkJICoKIAkJICogSW5zdGVhZCwgd2Ug dHJhbnNmb3JtIHRoZSBleHByZXNzaW9uIGRpcmVjdGx5IGFuZCBvbmx5IGVuc3VyZSB0aGF0CiAJ CSAqIHRoZSBpbmRpdmlkdWFsIFZhciBub2RlcyBpdCByZWZlcmVuY2VzIGFyZSBwcmVzZW50IGlu IHRoZQpAQCAtNDI5LDE0ICs0MjksMjEgQEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAvKgogICog Y2hlY2tfcnByX25hdl9leHByCiAgKgkJVmFsaWRhdGUgYSBzaW5nbGUgUlBSTmF2RXhwciBub2Rl IGJ5IHdhbGtpbmcgaXRzIGFyZyBhbmQgb2Zmc2V0X2FyZwotICoJCXN1YnRyZWVzIGluIGEgc2lu Z2xlIHBhc3MgZWFjaC4gIENoZWNrcyBmb3IgbmVzdGVkIFBSRVYvTkVYVCwgbWlzc2luZworICoJ CXN1YnRyZWVzIGluIGEgc2luZ2xlIHBhc3MgZWFjaC4gIENoZWNrcyBmb3IgaWxsZWdhbCBuZXN0 aW5nLCBtaXNzaW5nCiAgKgkJY29sdW1uIHJlZmVyZW5jZXMsIGFuZCBub24tY29uc3RhbnQgb2Zm c2V0IGV4cHJlc3Npb25zLgorICoKKyAqIE5lc3RpbmcgcnVsZXMgKFNRTCBzdGFuZGFyZCA1LjYu NCk6CisgKiAgIC0gUFJFVi9ORVhUIHdyYXBwaW5nIEZJUlNUL0xBU1Q6IGFsbG93ZWQgKGNvbXBv dW5kIG5hdmlnYXRpb24pCisgKiAgIC0gRklSU1QvTEFTVCB3cmFwcGluZyBQUkVWL05FWFQ6IHBy b2hpYml0ZWQKKyAqICAgLSBTYW1lLWNhdGVnb3J5IG5lc3RpbmcgKFBSRVYgaW5zaWRlIFBSRVYs IEZJUlNUIGluc2lkZSBGSVJTVCwgZXRjLik6CisgKiAgICAgcHJvaGliaXRlZAogICovCiB0eXBl ZGVmIHN0cnVjdAogewotCWJvb2wJCWhhc19uYXY7CQkvKiBSUFJOYXZFeHByIGZvdW5kIChuZXN0 aW5nKSAqLworCWludAkJCW5hdl9jb3VudDsJCS8qIG51bWJlciBvZiBSUFJOYXZFeHByIG5vZGVz IGZvdW5kICovCiAJYm9vbAkJaGFzX2NvbHVtbl9yZWY7IC8qIFZhciBmb3VuZCAqLwotfQkJCU5h dkNoZWNrUmVzdWx0OworCVJQUk5hdktpbmQJaW5uZXJfa2luZDsJCS8qIGtpbmQgb2YgZmlyc3Qg KG91dGVybW9zdCkgbmVzdGVkIFJQUk5hdkV4cHIgKi8KK30gTmF2Q2hlY2tSZXN1bHQ7CiAKIHN0 YXRpYyBib29sCiBuYXZfY2hlY2tfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCkBA IC00NDYsNyArNDUzLDExIEBAIG5hdl9jaGVja193YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29u dGV4dCkKIAlpZiAobm9kZSA9PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CiAJaWYgKElzQShub2Rl LCBSUFJOYXZFeHByKSkKLQkJcmVzdWx0LT5oYXNfbmF2ID0gdHJ1ZTsKKwl7CisJCWlmIChyZXN1 bHQtPm5hdl9jb3VudCA9PSAwKQorCQkJcmVzdWx0LT5pbm5lcl9raW5kID0gKChSUFJOYXZFeHBy ICopIG5vZGUpLT5raW5kOworCQlyZXN1bHQtPm5hdl9jb3VudCsrOworCX0KIAlpZiAoSXNBKG5v ZGUsIFZhcikpCiAJCXJlc3VsdC0+aGFzX2NvbHVtbl9yZWYgPSB0cnVlOwogCkBAIC00NTcsMTYg KzQ2OCw5MyBAQCBzdGF0aWMgdm9pZAogY2hlY2tfcnByX25hdl9leHByKFJQUk5hdkV4cHIgKm5h diwgUGFyc2VTdGF0ZSAqcHN0YXRlKQogewogCU5hdkNoZWNrUmVzdWx0IHJlc3VsdDsKKwlib29s CQlvdXRlcl9pc19waHlzaWNhbCA9IChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQkJ CQkJCQkgbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVCk7CiAKIAkvKiBDaGVjayBhcmcgc3VidHJl ZTogbmVzdGluZyArIGNvbHVtbiByZWZlcmVuY2UgaW4gb25lIHdhbGsgKi8KIAltZW1zZXQoJnJl c3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkpOwogCSh2b2lkKSBuYXZfY2hlY2tfd2Fsa2VyKChOb2Rl ICopIG5hdi0+YXJnLCAmcmVzdWx0KTsKIAotCWlmIChyZXN1bHQuaGFzX25hdikKLQkJZXJlcG9y dChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0J CQkJIGVycm1zZygiUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkIiksCi0JCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJaWYgKHJlc3VsdC5uYXZf Y291bnQgPiAwKQorCXsKKwkJYm9vbAkJaW5uZXJfaXNfcGh5c2ljYWwgPSAocmVzdWx0LmlubmVy X2tpbmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQkJCQkJCQkJIHJlc3VsdC5pbm5lcl9raW5kID09 IFJQUl9OQVZfTkVYVCk7CisKKwkJaWYgKG91dGVyX2lzX3BoeXNpY2FsICYmICFpbm5lcl9pc19w aHlzaWNhbCkKKwkJeworCQkJLyoKKwkJCSAqIFBSRVYvTkVYVCB3cmFwcGluZyBGSVJTVC9MQVNU OiBjb21wb3VuZCBuYXZpZ2F0aW9uIHBlciBTUUwKKwkJCSAqIHN0YW5kYXJkIDUuNi40LiAgRmxh dHRlbiB0aGUgbmVzdGVkIFJQUk5hdkV4cHIgaW50byBhIHNpbmdsZQorCQkJICogY29tcG91bmQg bm9kZS4gIFRoZSBpbm5lciBSUFJOYXZFeHByIG11c3QgYmUgdGhlIGRpcmVjdCBhcmcgb2YKKwkJ CSAqIHRoZSBvdXRlcjsgZXhwcmVzc2lvbnMgbGlrZSBQUkVWKHZhbCArIEZJUlNUKHYpKSBhcmUg bm90IHZhbGlkCisJCQkgKiBjb21wb3VuZCBuYXZpZ2F0aW9uLgorCQkJICovCisJCQlSUFJOYXZF eHByICppbm5lcjsKKworCQkJLyogUmVqZWN0IHRyaXBsZS1vci1kZWVwZXIgbmVzdGluZyAoZS5n LiBQUkVWKEZJUlNUKFBSRVYoeCkpKSkgKi8KKwkJCWlmIChyZXN1bHQubmF2X2NvdW50ID4gMSkK KwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkJIGVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBjYW5ub3QgYmUgbmVzdGVk IG1vcmUgdGhhbiB0d28gbGV2ZWxzIGRlZXAiKSwKKwkJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYo RklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBj b21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCisJCQlpZiAoIUlzQShuYXYtPmFyZywgUlBSTmF2 RXhwcikpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFY X0VSUk9SKSwKKwkJCQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9u IG11c3QgYmUgYSBkaXJlY3QgYXJndW1lbnQgb2YgdGhlIG91dGVyIG5hdmlnYXRpb24iKSwKKwkJ CQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJT VCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCQkJaW5u ZXIgPSAoUlBSTmF2RXhwciAqKSBuYXYtPmFyZzsKKworCQkJLyogRGV0ZXJtaW5lIGNvbXBvdW5k IGtpbmQgKi8KKwkJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWICYmIGlubmVyLT5raW5k ID09IFJQUl9OQVZfRklSU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9QUkVWX0ZJUlNUOwor CQkJZWxzZSBpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViAmJiBpbm5lci0+a2luZCA9PSBS UFJfTkFWX0xBU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9QUkVWX0xBU1Q7CisJCQllbHNl IGlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUICYmIGlubmVyLT5raW5kID09IFJQUl9OQVZf RklSU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9ORVhUX0ZJUlNUOworCQkJZWxzZSBpZiAo bmF2LT5raW5kID09IFJQUl9OQVZfTkVYVCAmJiBpbm5lci0+a2luZCA9PSBSUFJfTkFWX0xBU1Qp CisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9ORVhUX0xBU1Q7CisKKwkJCS8qIE1vdmUgb3V0ZXIg b2Zmc2V0IHRvIGNvbXBvdW5kX29mZnNldF9hcmcgKi8KKwkJCW5hdi0+Y29tcG91bmRfb2Zmc2V0 X2FyZyA9IG5hdi0+b2Zmc2V0X2FyZzsKKworCQkJLyogTW92ZSBpbm5lciBvZmZzZXQgYW5kIGFy ZyB1cCAqLworCQkJbmF2LT5vZmZzZXRfYXJnID0gaW5uZXItPm9mZnNldF9hcmc7CisJCQluYXYt PmFyZyA9IGlubmVyLT5hcmc7CisKKwkJCS8qIE5vIGZ1cnRoZXIgbmVzdGluZyBjaGVjayBuZWVk ZWQgLSBhbHJlYWR5IHZhbGlkYXRlZCAqLworCQkJcmV0dXJuOworCQl9CisJCWVsc2UgaWYgKCFv dXRlcl9pc19waHlzaWNhbCAmJiBpbm5lcl9pc19waHlzaWNhbCkKKwkJeworCQkJLyogRklSU1Qv TEFTVCB3cmFwcGluZyBQUkVWL05FWFQ6IHByb2hpYml0ZWQgYnkgc3RhbmRhcmQgKi8KKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJ IGVycm1zZygiRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUIiksCisJ CQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJT VCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJCX0KKwkJ ZWxzZSBpZiAob3V0ZXJfaXNfcGh5c2ljYWwgJiYgaW5uZXJfaXNfcGh5c2ljYWwpCisJCXsKKwkJ CS8qIFBSRVYvTkVYVCB3cmFwcGluZyBQUkVWL05FWFQ6IHByb2hpYml0ZWQgKi8KKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVy cm1zZygiUFJFViBhbmQgTkVYVCBjYW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQiKSwKKwkJCQkJ IGVycmhpbnQoIk9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkp LCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAorCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKKwkJfQorCQllbHNl CisJCXsKKwkJCS8qIEZJUlNUL0xBU1Qgd3JhcHBpbmcgRklSU1QvTEFTVDogcHJvaGliaXRlZCAq LworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkgZXJybXNnKCJGSVJTVCBhbmQgTEFTVCBjYW5ub3QgY29udGFpbiBGSVJTVCBvciBM QVNUIiksCisJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwg TkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dl ZC4iKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7 CisJCX0KKwl9CiAJaWYgKCFyZXN1bHQuaGFzX2NvbHVtbl9yZWYpCiAJCWVyZXBvcnQoRVJST1Is CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtNDgzLDcgKzU3MSw3IEBA IGNoZWNrX3Jwcl9uYXZfZXhwcihSUFJOYXZFeHByICpuYXYsIFBhcnNlU3RhdGUgKnBzdGF0ZSkK IAkJCWNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rpb25zKChOb2RlICopIG5hdi0+b2Zmc2V0X2FyZykp CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCi0JCQkJCSBlcnJtc2coIlBSRVYvTkVYVCBvZmZzZXQgbXVzdCBiZSBhIHJ1bi10 aW1lIGNvbnN0YW50IiksCisJCQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zm c2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudCIpLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMKaW5kZXggYTRmZTcyNTY0NmMuLjQ2NzczNmQ5MTQ2IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCkBAIC0xMDEwNiwxNiArMTAxMDYsODMgQEAgZ2V0X3J1bGVfZXhwcihOb2RlICpu b2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCWNhc2UgVF9SUFJOYXZFeHByOgogCQkJ ewogCQkJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisJCQkJY29uc3Qg Y2hhciAqb3V0ZXJfZnVuYyA9IE5VTEw7CisJCQkJY29uc3QgY2hhciAqaW5uZXJfZnVuYzsKIAot CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLAotCQkJCQkJCQkJICAgbmF2LT5raW5kID09 IFJQUl9OQVZfUFJFViA/ICJQUkVWKCIgOiAiTkVYVCgiKTsKLQkJCQlnZXRfcnVsZV9leHByKChO b2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOwotCQkJCWlmIChuYXYtPm9m ZnNldF9hcmcgIT0gTlVMTCkKKwkJCQlzd2l0Y2ggKG5hdi0+a2luZCkKIAkJCQl7Ci0JCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLCAiKTsKLQkJCQkJZ2V0X3J1bGVfZXhwcigoTm9k ZSAqKSBuYXYtPm9mZnNldF9hcmcsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisJCQkJCWNhc2Ug UlBSX05BVl9QUkVWOgorCQkJCQkJaW5uZXJfZnVuYyA9ICJQUkVWKCI7CisJCQkJCQlicmVhazsK KwkJCQkJY2FzZSBSUFJfTkFWX05FWFQ6CisJCQkJCQlpbm5lcl9mdW5jID0gIk5FWFQoIjsKKwkJ CQkJCWJyZWFrOworCQkJCQljYXNlIFJQUl9OQVZfRklSU1Q6CisJCQkJCQlpbm5lcl9mdW5jID0g IkZJUlNUKCI7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX0xBU1Q6CisJCQkJCQlp bm5lcl9mdW5jID0gIkxBU1QoIjsKKwkJCQkJCWJyZWFrOworCQkJCQljYXNlIFJQUl9OQVZfUFJF Vl9GSVJTVDoKKwkJCQkJCW91dGVyX2Z1bmMgPSAiUFJFVigiOworCQkJCQkJaW5uZXJfZnVuYyA9 ICJGSVJTVCgiOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlBSX05BVl9QUkVWX0xBU1Q6CisJ CQkJCQlvdXRlcl9mdW5jID0gIlBSRVYoIjsKKwkJCQkJCWlubmVyX2Z1bmMgPSAiTEFTVCgiOwor CQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlBSX05BVl9ORVhUX0ZJUlNUOgorCQkJCQkJb3V0ZXJf ZnVuYyA9ICJORVhUKCI7CisJCQkJCQlpbm5lcl9mdW5jID0gIkZJUlNUKCI7CisJCQkJCQlicmVh azsKKwkJCQkJY2FzZSBSUFJfTkFWX05FWFRfTEFTVDoKKwkJCQkJCW91dGVyX2Z1bmMgPSAiTkVY VCgiOworCQkJCQkJaW5uZXJfZnVuYyA9ICJMQVNUKCI7CisJCQkJCQlicmVhazsKKwkJCQkJZGVm YXVsdDoKKwkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgUlBSIG5hdmlnYXRpb24ga2lu ZDogJWQiLAorCQkJCQkJCSBuYXYtPmtpbmQpOworCQkJCQkJaW5uZXJfZnVuYyA9IE5VTEw7CS8q IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCWlmIChv dXRlcl9mdW5jICE9IE5VTEwpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBDb21wb3VuZDogUFJF VihGSVJTVChhcmcgWywgaW5uZXJfb2Zmc2V0XSkgWywKKwkJCQkJICogb3V0ZXJfb2Zmc2V0XSkK KwkJCQkJICovCisJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBvdXRlcl9mdW5jKTsK KwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIGlubmVyX2Z1bmMpOworCQkJCQlnZXRf cnVsZV9leHByKChOb2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJ CQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoYnVmLCAiLCAiKTsKKwkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbmF2 LT5vZmZzZXRfYXJnLCBjb250ZXh0LAorCQkJCQkJCQkJICBzaG93aW1wbGljaXQpOworCQkJCQl9 CisJCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKKwkJCQkJaWYgKG5hdi0+Y29t cG91bmRfb2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKGJ1ZiwgIiwgIik7CisJCQkJCQlnZXRfcnVsZV9leHByKChOb2RlICopIG5hdi0+Y29t cG91bmRfb2Zmc2V0X2FyZywKKwkJCQkJCQkJCSAgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKwkJ CQkJfQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7CisJCQkJfQorCQkJCWVs c2UKKwkJCQl7CisJCQkJCS8qIFNpbXBsZTogRlVOQyhhcmcgWywgb2Zmc2V0XSkgKi8KKwkJCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIGlubmVyX2Z1bmMpOworCQkJCQlnZXRfcnVsZV9l eHByKChOb2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJCQlpZiAo bmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoYnVmLCAiLCAiKTsKKwkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbmF2LT5vZmZz ZXRfYXJnLCBjb250ZXh0LAorCQkJCQkJCQkJICBzaG93aW1wbGljaXQpOworCQkJCQl9CisJCQkJ CWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKIAkJCQl9Ci0JCQkJYXBwZW5kU3RyaW5n SW5mb0NoYXIoYnVmLCAnKScpOwogCQkJfQogCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dp bmRvd2Z1bmNzLmMKaW5kZXggMDkxMjYwZDJjY2UuLjQyMGE0OTYyMzk1IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvd2luZG93ZnVuY3MuYwpAQCAtNzg1LDMgKzc4NSw1OSBAQCB3aW5kb3dfbmV4dF9vZmZz ZXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCSBlcnJtc2coIm5leHQoKSBjYW4gb25seSBiZSB1c2Vk IGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVh Y2hlZCAqLwogfQorCisvKgorICogZmlyc3QKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQ UidzIEZJUlNUIG5hdmlnYXRpb24gb3BlcmF0b3IuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3Ig ZGV0YWlscy4KKyAqLworRGF0dW0KK3dpbmRvd19maXJzdChQR19GVU5DVElPTl9BUkdTKQorewor CWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCisJCQkgZXJybXNnKCJmaXJzdCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xh dXNlIikpKTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCit9CisKKy8q CisgKiBsYXN0CisgKiBDYXRhbG9nIHBsYWNlaG9sZGVyIGZvciBSUFIncyBMQVNUIG5hdmlnYXRp b24gb3BlcmF0b3IuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3IgZGV0YWlscy4KKyAqLworRGF0 dW0KK3dpbmRvd19sYXN0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJZXJlcG9ydChFUlJPUiwKKwkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJtc2coImxh c3QoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJUEdfUkVUVVJO X05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLworfQorCisvKgorICogZmlyc3QodmFsdWUsIG9m ZnNldCkKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIEZJUlNUIG5hdmlnYXRpb24g b3BlcmF0b3Igd2l0aCBvZmZzZXQuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3IgZGV0YWlscy4K KyAqLworRGF0dW0KK3dpbmRvd19maXJzdF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwll cmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJIGVycm1zZygiZmlyc3QoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVz ZSIpKSk7CisJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLworfQorCisvKgor ICogbGFzdCh2YWx1ZSwgb2Zmc2V0KQorICogQ2F0YWxvZyBwbGFjZWhvbGRlciBmb3IgUlBSJ3Mg TEFTVCBuYXZpZ2F0aW9uIG9wZXJhdG9yIHdpdGggb2Zmc2V0LgorICogU2VlIHdpbmRvd19wcmV2 KCkgZm9yIGRldGFpbHMuCisgKi8KK0RhdHVtCit3aW5kb3dfbGFzdF9vZmZzZXQoUEdfRlVOQ1RJ T05fQVJHUykKK3sKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygibGFzdCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4g YSBERUZJTkUgY2xhdXNlIikpKTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVk ICovCit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA4ZTk1MTY5YjdiMC4uNmQ3MGVkMjNh ZWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTA5ODQsNiArMTA5ODQsMTggQEAKIHsg b2lkID0+ICc4MTI5JywgZGVzY3IgPT4gJ25leHQgdmFsdWUgYXQgb2Zmc2V0JywKICAgcHJvbmFt ZSA9PiAnbmV4dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3QgPT4gJ2YnLCBwcm9y ZXR0eXBlID0+ICdhbnllbGVtZW50JywKICAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQgaW50 OCcsIHByb3NyYyA9PiAnd2luZG93X25leHRfb2Zmc2V0JyB9LAoreyBvaWQgPT4gJzgxMzAnLCBk ZXNjciA9PiAnZmlyc3QgdmFsdWUgaW4gbWF0Y2gnLAorICBwcm9uYW1lID0+ICdmaXJzdCcsIHBy b3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVudCcsCisgIHByb2FyZ3R5 cGVzID0+ICdhbnllbGVtZW50JywgcHJvc3JjID0+ICd3aW5kb3dfZmlyc3QnIH0sCit7IG9pZCA9 PiAnODEzMicsIGRlc2NyID0+ICdmaXJzdCB2YWx1ZSBpbiBtYXRjaCBhdCBvZmZzZXQnLAorICBw cm9uYW1lID0+ICdmaXJzdCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3QgPT4gJ2Yn LCBwcm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1l bnQgaW50OCcsIHByb3NyYyA9PiAnd2luZG93X2ZpcnN0X29mZnNldCcgfSwKK3sgb2lkID0+ICc4 MTMxJywgZGVzY3IgPT4gJ2xhc3QgdmFsdWUgaW4gbWF0Y2gnLAorICBwcm9uYW1lID0+ICdsYXN0 JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywKKyAgcHJv YXJndHlwZXMgPT4gJ2FueWVsZW1lbnQnLCBwcm9zcmMgPT4gJ3dpbmRvd19sYXN0JyB9LAoreyBv aWQgPT4gJzgxMzMnLCBkZXNjciA9PiAnbGFzdCB2YWx1ZSBpbiBtYXRjaCBhdCBvZmZzZXQnLAor ICBwcm9uYW1lID0+ICdsYXN0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9pc3N0cmljdCA9PiAn ZicsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxl bWVudCBpbnQ4JywgcHJvc3JjID0+ICd3aW5kb3dfbGFzdF9vZmZzZXQnIH0sCiAKICMgZnVuY3Rp b25zIGZvciByYW5nZSB0eXBlcwogeyBvaWQgPT4gJzM4MzInLCBkZXNjciA9PiAnSS9PJywKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjRXhwci5oCmluZGV4IGZhYzM3Yzk2ODk2Li44MzQ4MDBhNDA2MiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjRXhwci5oCkBAIC02OTksMTAgKzY5OSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBF eHByRXZhbFN0ZXAKIAkJc3RydWN0CiAJCXsKIAkJCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsK LQkJCVJQUk5hdktpbmQJa2luZDsJLyogUFJFViBvciBORVhUICovCi0JCQlEYXR1bQkgICAqb2Zm c2V0X3ZhbHVlOwkvKiAyLWFyZzogcnVudGltZSBvZmZzZXQgdmFsdWUsIG9yCi0JCQkJCQkJCQkJ ICogTlVMTCAqLwotCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVsbDsJLyogMi1hcmc6IHJ1bnRpbWUg b2Zmc2V0IG51bGwgZmxhZyAqLworCQkJUlBSTmF2S2luZAlraW5kOwkvKiBuYXZpZ2F0aW9uIGtp bmQgKHNpbXBsZSBvciBjb21wb3VuZCkgKi8KKwkJCURhdHVtCSAgICpvZmZzZXRfdmFsdWU7CS8q IG9mZnNldCB2YWx1ZShzKSwgb3IgTlVMTCAqLworCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVsbDsJ Lyogb2Zmc2V0IG51bGwgZmxhZyhzKSAqLworCQkJLyogRm9yIGNvbXBvdW5kIG5hdjogb2Zmc2V0 X3ZhbHVlWzBdID0gaW5uZXIsIFsxXSA9IG91dGVyICovCiAJCX0JCQlycHJfbmF2OwogCiAJCS8q IGZvciBFRU9QX0FHR18qREVTRVJJQUxJWkUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggZmY2 ZDdkNzBhNjAuLjYwMmI3MmE2ZTBkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtMjYzOCw2ICsy NjM4LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93QWdnU3RhdGUKIAlTaXplCQluZmFTdGF0ZVNp emU7CS8qIHByZS1jYWxjdWxhdGVkIFJQUk5GQVN0YXRlIHNpemUgKi8KIAlib29sCSAgICpuZmFW YXJNYXRjaGVkOwkvKiBwZXItcm93IGNhY2hlOiB2YXJNYXRjaGVkW3ZhcklkXSBmb3IgdmFySWQK IAkJCQkJCQkJICogPCBudW1EZWZpbmVzICovCisJQml0bWFwc2V0ICAqZGVmaW5lTWF0Y2hTdGFy dERlcGVuZGVudDsJLyogREVGSU5FIHZhcnMgbmVlZGluZyBwZXItY29udGV4dAorCQkJCQkJCQkJ CQkgKiBldmFsdWF0aW9uCisJCQkJCQkJCQkJCSAqIChtYXRjaF9zdGFydC1kZXBlbmRlbnQpICov CiAJYml0bWFwd29yZCAqbmZhVmlzaXRlZEVsZW1zOwkvKiBlbGVtSWR4IHZpc2l0ZWQgYml0bWFw IGZvciBjeWNsZQogCQkJCQkJCQkJICogZGV0ZWN0aW9uICovCiAJaW50CQkJbmZhVmlzaXRlZE5X b3JkczsJLyogbnVtYmVyIG9mIGJpdG1hcHdvcmRzIGluCkBAIC0yNjkyLDEyICsyNjk1LDE3IEBA IHR5cGVkZWYgc3RydWN0IFdpbmRvd0FnZ1N0YXRlCiAJVHVwbGVUYWJsZVNsb3QgKnRlbXBfc2xv dF8yOwogCiAJLyogUlBSIG5hdmlnYXRpb24gKi8KLQlpbnQ2NAkJbmF2TWF4T2Zmc2V0OwkvKiBt YXggUFJFViBvZmZzZXQ7IHNlZSBSUFJfTkFWX09GRlNFVF8qICovCisJUlBSTmF2T2Zmc2V0S2lu ZCBuYXZNYXhPZmZzZXRLaW5kOwkvKiBzdGF0dXMgb2YgbmF2TWF4T2Zmc2V0ICovCisJaW50NjQJ CW5hdk1heE9mZnNldDsJLyogbWF4IGJhY2t3YXJkIG5hdiBvZmZzZXQgKHdoZW4gRklYRUQpICov CisJYm9vbAkJaGFzRmlyc3ROYXY7CS8qIEZJUlNUKCkgcHJlc2VudCBpbiBERUZJTkUgKi8KKwlS UFJOYXZPZmZzZXRLaW5kIG5hdkZpcnN0T2Zmc2V0S2luZDsJLyogc3RhdHVzIG9mIG5hdkZpcnN0 T2Zmc2V0ICovCisJaW50NjQJCW5hdkZpcnN0T2Zmc2V0OyAvKiBtaW4gRklSU1QoKSBvZmZzZXQg KHdoZW4gRklYRUQpICovCiAJc3RydWN0IFdpbmRvd09iamVjdERhdGEgKm5hdl93aW5vYmo7CS8q IHdpbm9iaiBmb3IgUlBSIG5hdiBmZXRjaCAqLwogCWludDY0CQluYXZfc2xvdF9wb3M7CS8qIHBv c2l0aW9uIGNhY2hlZCBpbiBuYXZfc2xvdCwgb3IgLTEgKi8KLQlUdXBsZVRhYmxlU2xvdCAqbmF2 X3Nsb3Q7CS8qIHNsb3QgZm9yIFBSRVYvTkVYVCB0YXJnZXQgcm93ICovCisJVHVwbGVUYWJsZVNs b3QgKm5hdl9zbG90OwkvKiBzbG90IGZvciBQUkVWL05FWFQvRklSU1QvTEFTVCB0YXJnZXQgcm93 ICovCiAJVHVwbGVUYWJsZVNsb3QgKm5hdl9zYXZlZF9vdXRlcnR1cGxlOwkvKiBzYXZlZCBzbG90 IGR1cmluZyBuYXYgc3dhcCAqLwogCVR1cGxlVGFibGVTbG90ICpuYXZfbnVsbF9zbG90OwkvKiBh bGwgTlVMTCBzbG90ICovCisJaW50NjQJCW5hdl9tYXRjaF9zdGFydDsJLyogbWF0Y2hfc3RhcnQg Zm9yIEZJUlNUL0xBU1QgbmF2ICovCiAKIAkvKiBSUFIgY3VycmVudCBtYXRjaCByZXN1bHQgKi8K IAlib29sCQlycHJfbWF0Y2hfdmFsaWQ7CS8qIHRydWUgaWYgYSBtYXRjaCByZXN1bHQgaXMgc2V0 ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYjkyNjYzNjg3YTYuLjFmZGY2MjU3NWNiIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC01ODYsOSArNTg2LDI0IEBAIHR5cGVkZWYgZW51bSBS UFNraXBUbwogCVNUX05PTkUsCQkJCQkvKiBubyBBRlRFUiBNQVRDSCBjbGF1c2U7IGRlZmF1bHQg Zm9yIG5vbi1SUFIKIAkJCQkJCQkJICogd2luZG93cyAqLwogCVNUX05FWFRfUk9XLAkJCQkvKiBT S0lQIFRPIE5FWFQgUk9XICovCi0JU1RfUEFTVF9MQVNUX1JPVywJCQkvKiBTS0lQIFRPIFBBU1Qg TEFTVCBST1cgKi8KKwlTVF9QQVNUX0xBU1RfUk9XCQkJLyogU0tJUCBUTyBQQVNUIExBU1QgUk9X ICovCiB9IFJQU2tpcFRvOwogCisvKgorICogUlBSTmF2T2Zmc2V0S2luZCAtIHN0YXR1cyBvZiBu YXZpZ2F0aW9uIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0cmltLgorICoKKyAqIFRoZSBwbGFubmVy IGNvbXB1dGVzIG5hdk1heE9mZnNldC9uYXZGaXJzdE9mZnNldCBmb3IgdHVwbGVzdG9yZSBtYXJr CisgKiBvcHRpbWl6YXRpb24uICBUaGlzIGVudW0gdHJhY2tzIHdoZXRoZXIgdGhlIHZhbHVlIGlz IGEgcmVzb2x2ZWQgY29uc3RhbnQsCisgKiBuZWVkcyBydW50aW1lIGV2YWx1YXRpb24sIG9yIGNh bm5vdCBiZSBkZXRlcm1pbmVkIChyZXRhaW4gYWxsIHJvd3MpLgorICovCit0eXBlZGVmIGVudW0g UlBSTmF2T2Zmc2V0S2luZAoreworCVJQUl9OQVZfT0ZGU0VUX0ZJWEVELAkJLyogcmVzb2x2ZWQg Y29uc3RhbnQ7IHVzZSB0aGUgb2Zmc2V0IHZhbHVlICovCisJUlBSX05BVl9PRkZTRVRfTkVFRFNf RVZBTCwJLyogbm9uLWNvbnN0YW50IG9mZnNldDsgZXZhbHVhdGUgYXQgZXhlY3V0b3IKKwkJCQkJ CQkJICogaW5pdCAqLworCVJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9BTEwJLyogY2Fubm90IGRldGVy bWluZTsgcmV0YWluIGFsbCByb3dzIChubyB0cmltKSAqLworfSBSUFJOYXZPZmZzZXRLaW5kOwor CiAvKgogICogUlBSUGF0dGVybk5vZGVUeXBlIC0gUm93IFBhdHRlcm4gUmVjb2duaXRpb24gcGF0 dGVybiBub2RlIHR5cGVzCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggMjdhMmU3YjQ4Yzcu LjkzY2U1MDVmMGQ0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTM4NywxNCArMTM4NywzNCBA QCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2cKIAlMaXN0CSAgICpkZWZpbmVDbGF1c2U7CiAKIAkv KgotCSAqIE1heGltdW0gUFJFViBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgbWFyayBvcHRpbWl6YXRp b24uID49IDA6IHN0YXRpY2FsbHkKLQkgKiBkZXRlcm1pbmVkIG1heCBvZmZzZXQgKG1hcmsgPSBj dXJyZW50cG9zIC0gb2Zmc2V0KS4KLQkgKiBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOiBoYXMg bm9uLWNvbnN0YW50IG9mZnNldDsgZXZhbHVhdGUgYXQKLQkgKiBleGVjdXRvciBpbml0LiAgUlBS X05BVl9PRkZTRVRfUkVUQUlOX0FMTDogbXVzdCByZXRhaW4gZW50aXJlIHBhcnRpdGlvbgotCSAq IChubyB0cmltIHBvc3NpYmxlKS4KKwkgKiBCaXRtYXBzZXQgb2YgREVGSU5FIHZhcmlhYmxlIGlu ZGljZXMgd2hvc2UgZXhwcmVzc2lvbnMgZGVwZW5kIG9uCisJICogbWF0Y2hfc3RhcnQgKGNvbnRh aW4gRklSU1QsIExBU1Qtd2l0aC1vZmZzZXQsIG9yIGNvbXBvdW5kCisJICogUFJFVl9GSVJTVC9O RVhUX0ZJUlNUL1BSRVZfTEFTVC9ORVhUX0xBU1Qgd2l0aCBvZmZzZXQpLiAgVmFyaWFibGVzIGlu CisJICogdGhpcyBzZXQgcmVxdWlyZSBwZXItY29udGV4dCByZS1ldmFsdWF0aW9uIGR1cmluZyBO RkEgcHJvY2Vzc2luZy4KIAkgKi8KKwlCaXRtYXBzZXQgICpkZWZpbmVNYXRjaFN0YXJ0RGVwZW5k ZW50OworCisJLyoKKwkgKiBOYXZpZ2F0aW9uIG9mZnNldCBzdGF0dXMgYW5kIHZhbHVlcyBmb3Ig dHVwbGVzdG9yZSBtYXJrIG9wdGltaXphdGlvbi4KKwkgKiBTZWUgUlBSTmF2T2Zmc2V0S2luZCBp biBub2Rlcy9wYXJzZW5vZGVzLmguCisJICoKKwkgKiBuYXZNYXhPZmZzZXQ6IG1heGltdW0gYmFj a3dhcmQgcmVhY2ggZnJvbSBjdXJyZW50cG9zIChjb250cmlidXRlZCBieQorCSAqIFBSRVYsIExB U1Qtd2l0aC1vZmZzZXQsIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QpLiAgT25seSB2YWxp ZCB3aGVuCisJICogbmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhFRC4KKwkg KgorCSAqIG5hdkZpcnN0T2Zmc2V0OiBtaW5pbXVtIGZvcndhcmQgb2Zmc2V0IGZyb20gbWF0Y2hf c3RhcnQgKGNvbnRyaWJ1dGVkIGJ5CisJICogRklSU1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVY VF9GSVJTVCkuICBDYW4gYmUgbmVnYXRpdmUgZm9yIGNvbXBvdW5kCisJICogUFJFVl9GSVJTVC4g IE9ubHkgdmFsaWQgd2hlbiBuYXZGaXJzdE9mZnNldEtpbmQgPT0gUlBSX05BVl9PRkZTRVRfRklY RUQKKwkgKiBhbmQgaGFzRmlyc3ROYXYgPT0gdHJ1ZS4KKwkgKi8KKwlSUFJOYXZPZmZzZXRLaW5k IG5hdk1heE9mZnNldEtpbmQ7CiAJaW50NjQJCW5hdk1heE9mZnNldDsKIAorCS8qIHRydWUgaWYg RklSU1QtYmFzZWQgbmF2aWdhdGlvbiAoRklSU1QsIFBSRVZfRklSU1QsIE5FWFRfRklSU1QpIGlz IHVzZWQgKi8KKwlib29sCQloYXNGaXJzdE5hdjsKKwlSUFJOYXZPZmZzZXRLaW5kIG5hdkZpcnN0 T2Zmc2V0S2luZDsKKwlpbnQ2NAkJbmF2Rmlyc3RPZmZzZXQ7CisKIAkvKgogCSAqIGZhbHNlIGZv ciBhbGwgYXBhcnQgZnJvbSB0aGUgV2luZG93QWdnIHRoYXQncyBjbG9zZXN0IHRvIHRoZSByb290 IG9mCiAJICogdGhlIHBsYW4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggOTQ3MjNhM2I5MDkuLjBh ZmNmYWNkNWQyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNjUxLDI3ICs2NTEsNTAgQEAgdHlw ZWRlZiBzdHJ1Y3QgV2luZG93RnVuY1J1bkNvbmRpdGlvbgogLyoKICAqIFJQUk5hdkV4cHIKICAq Ci0gKiBSZXByZXNlbnRzIGEgUFJFVigpIG9yIE5FWFQoKSBuYXZpZ2F0aW9uIGNhbGwgaW4gYW4g UlBSIERFRklORSBjbGF1c2UuCisgKiBSZXByZXNlbnRzIGEgUFJFVi9ORVhUL0ZJUlNUL0xBU1Qg bmF2aWdhdGlvbiBjYWxsIGluIGFuIFJQUiBERUZJTkUgY2xhdXNlLgogICogQXQgZXhwcmVzc2lv biBjb21waWxlIHRpbWUgdGhpcyBpcyB0cmFuc2xhdGVkIGludG8gRUVPUF9SUFJfTkFWX1NFVCAv CiAgKiBFRU9QX1JQUl9OQVZfUkVTVE9SRSBvcGNvZGVzIHJhdGhlciB0aGFuIGEgbm9ybWFsIGZ1 bmN0aW9uIGNhbGwuCiAgKgotICoga2luZDogICAgICAgUlBSX05BVl9QUkVWIG9yIFJQUl9OQVZf TkVYVAotICogYXJnOiAgICAgICAgdGhlIGV4cHJlc3Npb24gdG8gZXZhbHVhdGUgYWdhaW5zdCB0 aGUgdGFyZ2V0IHJvdwotICogb2Zmc2V0X2FyZzogb3B0aW9uYWwgZXhwbGljaXQgb2Zmc2V0IGV4 cHJlc3Npb24gKDItYXJnIGZvcm0pOyBOVUxMIGZvcgotICogICAgICAgICAgICAgdGhlIDEtYXJn IGZvcm0gd2hpY2ggdXNlcyBhbiBpbXBsaWNpdCBvZmZzZXQgb2YgMQorICogU2ltcGxlIG5hdmln YXRpb24gKFBSRVYvTkVYVC9GSVJTVC9MQVNUKToKKyAqICAga2luZDogICAgICAgUlBSX05BVl9Q UkVWLCBSUFJfTkFWX05FWFQsIFJQUl9OQVZfRklSU1QsIG9yIFJQUl9OQVZfTEFTVAorICogICBh cmc6ICAgICAgICB0aGUgZXhwcmVzc2lvbiB0byBldmFsdWF0ZSBhZ2FpbnN0IHRoZSB0YXJnZXQg cm93CisgKiAgIG9mZnNldF9hcmc6IG9wdGlvbmFsIGV4cGxpY2l0IG9mZnNldCBleHByZXNzaW9u ICgyLWFyZyBmb3JtKTsgTlVMTCBmb3IKKyAqICAgICAgICAgICAgICAgdGhlIDEtYXJnIGZvcm0g KGltcGxpY2l0IG9mZnNldDogMSBmb3IgUFJFVi9ORVhULCAwIGZvcgorICogICAgICAgICAgICAg ICBGSVJTVC9MQVNUKQorICoKKyAqIENvbXBvdW5kIG5hdmlnYXRpb24gKFBSRVYvTkVYVCB3cmFw cGluZyBGSVJTVC9MQVNUKToKKyAqICAga2luZDogICAgICAgICAgICAgIFJQUl9OQVZfUFJFVl9G SVJTVCwgUFJFVl9MQVNULCBORVhUX0ZJUlNULCBORVhUX0xBU1QKKyAqICAgYXJnOiAgICAgICAg ICAgICAgIHRoZSBleHByZXNzaW9uIHRvIGV2YWx1YXRlIGFnYWluc3QgdGhlIGZpbmFsIHRhcmdl dCByb3cKKyAqICAgb2Zmc2V0X2FyZzogICAgICAgIGlubmVyIG9mZnNldCAoRklSU1QvTEFTVCks IE5VTEwgPSBpbXBsaWNpdCBkZWZhdWx0CisgKiAgIGNvbXBvdW5kX29mZnNldF9hcmc6IG91dGVy IG9mZnNldCAoUFJFVi9ORVhUKSwgTlVMTCA9IGltcGxpY2l0IGRlZmF1bHQKKyAqCisgKiBDb21w b3VuZCB0YXJnZXQgY29tcHV0YXRpb246CisgKiAgIFBSRVZfRklSU1Q6IChtYXRjaF9zdGFydCAr IGlubmVyKSAtIG91dGVyCisgKiAgIE5FWFRfRklSU1Q6IChtYXRjaF9zdGFydCArIGlubmVyKSAr IG91dGVyCisgKiAgIFBSRVZfTEFTVDogIChjdXJyZW50cG9zICAtIGlubmVyKSAtIG91dGVyCisg KiAgIE5FWFRfTEFTVDogIChjdXJyZW50cG9zICAtIGlubmVyKSArIG91dGVyCiAgKi8KIHR5cGVk ZWYgZW51bSBSUFJOYXZLaW5kCiB7CiAJUlBSX05BVl9QUkVWLAogCVJQUl9OQVZfTkVYVCwKKwlS UFJfTkFWX0ZJUlNULAorCVJQUl9OQVZfTEFTVCwKKwkvKiBjb21wb3VuZDogb3V0ZXIoaW5uZXIo YXJnKSkgKi8KKwlSUFJfTkFWX1BSRVZfRklSU1QsCisJUlBSX05BVl9QUkVWX0xBU1QsCisJUlBS X05BVl9ORVhUX0ZJUlNULAorCVJQUl9OQVZfTkVYVF9MQVNUCiB9IFJQUk5hdktpbmQ7CiAKIHR5 cGVkZWYgc3RydWN0IFJQUk5hdkV4cHIKIHsKIAlFeHByCQl4cHI7Ci0JUlBSTmF2S2luZAlraW5k OwkJCS8qIFBSRVYgb3IgTkVYVCAqLworCVJQUk5hdktpbmQJa2luZDsJCQkvKiBuYXZpZ2F0aW9u IGtpbmQgKi8KIAlFeHByCSAgICphcmc7CQkJLyogYXJndW1lbnQgZXhwcmVzc2lvbiAqLwotCUV4 cHIJICAgKm9mZnNldF9hcmc7CQkvKiBvZmZzZXQgZXhwcmVzc2lvbiwgb3IgTlVMTCBmb3IgMS1h cmcgZm9ybSAqLworCUV4cHIJICAgKm9mZnNldF9hcmc7CQkvKiBvZmZzZXQgZXhwcmVzc2lvbiwg b3IgTlVMTCBmb3IgZGVmYXVsdCAqLworCUV4cHIJICAgKmNvbXBvdW5kX29mZnNldF9hcmc7CS8q IG91dGVyIG9mZnNldCBmb3IgY29tcG91bmQgbmF2LCBvcgorCQkJCQkJCQkJCSAqIE5VTEwgaWYg c2ltcGxlICovCiAJT2lkCQkJcmVzdWx0dHlwZTsJCS8qIHJlc3VsdCB0eXBlIChzYW1lIGFzIGFy ZydzIHR5cGUpICovCiAJLyogT0lEIG9mIGNvbGxhdGlvbiBvZiByZXN1bHQgKi8KIAlPaWQJCQly ZXN1bHRjb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jw ci5oCmluZGV4IDAwYTI4YWJlMmI0Li4wYTE0Y2ZhZDc5YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3Jwci5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaApAQCAt NTUsMTkgKzU1LDExIEBACiAjZGVmaW5lIFJQUkVsZW1Jc0ZpbihlKQkJCSgoZSktPnZhcklkID09 IFJQUl9WQVJJRF9GSU4pCiAjZGVmaW5lIFJQUkVsZW1DYW5Ta2lwKGUpCQkoKGUpLT5taW4gPT0g MCkKIAotLyoKLSAqIG5hdk1heE9mZnNldCBzZW50aW5lbCB2YWx1ZXMuCi0gKiBOb24tbmVnYXRp dmUgdmFsdWVzIHJlcHJlc2VudCBhIHN0YXRpY2FsbHkgZGV0ZXJtaW5lZCBtYXhpbXVtIFBSRVYg b2Zmc2V0LgotICovCi0jZGVmaW5lIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwJKC0xKQkvKiBo YXMgbm9uLWNvbnN0YW50IFBSRVYgb2Zmc2V0OwotCQkJCQkJCQkJCQkgKiBldmFsdWF0ZSBhdCBl eGVjdXRvciBpbml0ICovCi0jZGVmaW5lIFJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9BTEwJKC0yKQkv KiBtdXN0IHJldGFpbiBlbnRpcmUgcGFydGl0aW9uCi0JCQkJCQkJCQkJCSAqIChlLmcuLCBmdXR1 cmUgRklSU1QvTEFTVCkgKi8KLQogZXh0ZXJuIExpc3QgKmNvbGxlY3RQYXR0ZXJuVmFyaWFibGVz KFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKTsKIGV4dGVybiB2b2lkIGJ1aWxkRGVmaW5lVmFyaWFi bGVMaXN0KExpc3QgKmRlZmluZUNsYXVzZSwKIAkJCQkJCQkJCUxpc3QgKipkZWZpbmVWYXJpYWJs ZUxpc3QpOwogZXh0ZXJuIFJQUlBhdHRlcm4gKmJ1aWxkUlBSUGF0dGVybihSUFJQYXR0ZXJuTm9k ZSAqcGF0dGVybiwgTGlzdCAqZGVmaW5lVmFyaWFibGVMaXN0LAotCQkJCQkJCQkgICBSUFNraXBU byBycFNraXBUbywgaW50IGZyYW1lT3B0aW9ucyk7CisJCQkJCQkJCSAgIFJQU2tpcFRvIHJwU2tp cFRvLCBpbnQgZnJhbWVPcHRpb25zLAorCQkJCQkJCQkgICBib29sIGhhc01hdGNoU3RhcnREZXBl bmRlbnQpOwogCiAjZW5kaWYJCQkJCQkJLyogT1BUSU1JWkVSX1JQUl9IICovCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwci5vdXQKaW5kZXggYzAyZGJkNGMwOGQuLjA0ZWMyNWQ0Y2Y1IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHIub3V0CkBAIC0xMDQwLDkgKzEwNDAsMTAgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEEpCiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYocHJpY2Up KQogKTsKLUVSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkCitFUlJPUjogIFBS RVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUCiBMSU5FIDc6ICAgICBERUZJ TkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihwcmljZSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVY VChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4K IC0tIE5lc3RlZCBORVhUCiBTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawogV0lORE9XIHcgQVMgKApA QCAtMTA1Miw5ICsxMDUzLDEwIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKQogICAg IERFRklORSBBIEFTIHByaWNlID4gTkVYVChORVhUKHByaWNlKSkKICk7Ci1FUlJPUjogIFBSRVYg YW5kIE5FWFQgY2Fubm90IGJlIG5lc3RlZAorRVJST1I6ICBQUkVWIGFuZCBORVhUIGNhbm5vdCBj b250YWluIFBSRVYgb3IgTkVYVAogTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhU KE5FWFQocHJpY2UpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAg T25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFuZCBORVhU KExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuCiAtLSBQUkVWIG5lc3RlZCBpbnNp ZGUgTkVYVAogU0VMRUNUIHByaWNlIEZST00gc3RvY2sKIFdJTkRPVyB3IEFTICgKQEAgLTEwNjQs OSArMTA2NiwxMCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSkKICAgICBERUZJTkUg QSBBUyBwcmljZSA+IE5FWFQoUFJFVihwcmljZSkpCiApOwotRVJST1I6ICBQUkVWIGFuZCBORVhU IGNhbm5vdCBiZSBuZXN0ZWQKK0VSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgY29udGFpbiBQ UkVWIG9yIE5FWFQKIExJTkUgNzogICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChQUkVWKHBy aWNlKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIE9ubHkgUFJF VihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkp IGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgogLS0gUFJFViBuZXN0ZWQgaW5zaWRlIGV4cHJl c3Npb24gaW5zaWRlIE5FWFQKIFNFTEVDVCBwcmljZSBGUk9NIHN0b2NrCiBXSU5ET1cgdyBBUyAo CkBAIC0xMDc2LDkgKzEwNzksMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEpCiAg ICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKHByaWNlICogUFJFVihwcmljZSkpCiApOwotRVJS T1I6ICBQUkVWIGFuZCBORVhUIGNhbm5vdCBiZSBuZXN0ZWQKK0VSUk9SOiAgUFJFViBhbmQgTkVY VCBjYW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQKIExJTkUgNzogICAgIERFRklORSBBIEFTIHBy aWNlID4gTkVYVChwcmljZSAqIFBSRVYocHJpY2UpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCitISU5UOiAgT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQo RklSU1QoKSksIGFuZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuCiAt LSBUcmlwbGUgbmVzdGluZzogZXJyb3IgcmVwb3J0ZWQgYXQgb3V0ZXJtb3N0IFBSRVYKIFNFTEVD VCBwcmljZSBGUk9NIHN0b2NrCiBXSU5ET1cgdyBBUyAoCkBAIC0xMDg4LDkgKzEwOTIsMTAgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEpCiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQ UkVWKFBSRVYoUFJFVihwcmljZSkpKQogKTsKLUVSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3Qg YmUgbmVzdGVkCitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJFViBvciBO RVhUCiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihQUkVWKHByaWNl KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYo RklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBj b21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4KIC0tIE5vIGNvbHVtbiByZWZlcmVuY2UgaW4gUFJF Vi9ORVhUIGFyZ3VtZW50CiAtLSBQUkVWKDEpOiBjb25zdGFudCBvbmx5LCBubyBjb2x1bW4gcmVm ZXJlbmNlCiBTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawpAQCAtMTEzNyw3ICsxMTQyLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEpCiAgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwg cHJpY2UpID4gMAogKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IGJlIGEgcnVuLXRp bWUgY29uc3RhbnQKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBi ZSBhIHJ1bi10aW1lIGNvbnN0YW50CiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNl LCBwcmljZSkgPiAwCiAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBOb24tY29uc3RhbnQg b2Zmc2V0OiB2b2xhdGlsZSBmdW5jdGlvbiBhcyBvZmZzZXQKQEAgLTExNDksNyArMTE1NCw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKQogICAgIERFRklORSBBIEFTIFBSRVYocHJp Y2UsIHJhbmRvbSgpOjppbnQpID4gMAogKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0 IGJlIGEgcnVuLXRpbWUgY29uc3RhbnQKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBv ZmZzZXQgbXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50CiBMSU5FIDc6ICAgICBERUZJTkUgQSBB UyBQUkVWKHByaWNlLCByYW5kb20oKTo6aW50KSA+IDAKICAgICAgICAgICAgICAgICAgICAgICAg IF4KIC0tIE5vbi1jb25zdGFudCBvZmZzZXQ6IHN1YnF1ZXJ5IGFzIG9mZnNldApAQCAtMTQ0Miw3 ICsxNDQ3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBB IEFTIFBSRVYocHJpY2UsIC0xKSBJUyBOT1QgTlVMTAogKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9m ZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQorRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9u IG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQogLS0gMi1hcmcgUFJFVi9ORVhUOiBOVUxMIG9m ZnNldCAodHlwZWQpCiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShw cmljZSkgT1ZFUiB3CiBGUk9NIHN0b2NrCkBAIC0xNDUyLDcgKzE0NTcsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgTlVMTDo6 aW50OCkgSVMgTk9UIE5VTEwKICk7Ci1FUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3Qg YmUgbnVsbAorRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBi ZSBudWxsCiAtLSAyLWFyZyBQUkVWL05FWFQ6IE5VTEwgb2Zmc2V0ICh1bnR5cGVkKQogU0VMRUNU IGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdwogRlJPTSBz dG9jawpAQCAtMTQ2Miw3ICsxNDY3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEr KQogICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIE5VTEwpIElTIE5PVCBOVUxMCiApOwotRVJS T1I6ICBQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKK0VSUk9SOiAgcm93IHBhdHRl cm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbnVsbAogLS0gMi1hcmcgUFJFVi9ORVhU OiBob3N0IHZhcmlhYmxlIG5lZ2F0aXZlIGFuZCBOVUxMCiBQUkVQQVJFIHRlc3RfcHJldl9vZmZz ZXQoaW50OCkgQVMKIFNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcKQEAgLTE0NzQsOSArMTQ3OSw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJ TkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQogKTsKIEVYRUNVVEUgdGVzdF9wcmV2X29m ZnNldCgtMSk7Ci1FUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUK K0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRp dmUKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9m ZnNldCBtdXN0IG5vdCBiZSBudWxsCitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zm c2V0IG11c3Qgbm90IGJlIG51bGwKIERFQUxMT0NBVEUgdGVzdF9wcmV2X29mZnNldDsKIC0tIDIt YXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSB3aXRoIGV4cHJlc3Npb24gKDAgKyAkMSkKIFBS RVBBUkUgdGVzdF9wcmV2X29mZnNldChpbnQ4KSBBUwpAQCAtMTQ4OSw5ICsxNDk0LDkgQEAgV0lO RE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSwgMCArICQxKQog KTsKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7Ci1FUlJPUjogIFBSRVYvTkVYVCBvZmZz ZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBv ZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxM KTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitFUlJPUjogIHJv dyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKIERFQUxMT0NBVEUg dGVzdF9wcmV2X29mZnNldDsKIC0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSB3aXRo IHBvc2l0aXZlIHZhbHVlCiAtLSBFeGVyY2lzZXMgUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCAt PiBldmFsX25hdl9tYXhfb2Zmc2V0KCkgcGF0aApAQCAtMTYzMCw2ICsxNjM1LDYwNCBAQCBXSU5E T1cgdyBBUyAoCiAgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAogKDIwIHJvd3MpCiAKKy0tCistLSBGSVJTVC9MQVNUIG5hdmln YXRpb24KKy0tCistLSBUZXN0IGRhdGEgZm9yIEZJUlNUL0xBU1Q6IHZhbHVlcyBjeWNsZSBiYWNr IHNvIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCkKKy0tIGF0IHNwZWNpZmljIHBvc2l0aW9ucy4KK0NS RUFURSBURU1QIFRBQkxFIHJwcl9uYXYgKGlkIGludCwgdmFsIGludCk7CitJTlNFUlQgSU5UTyBy cHJfbmF2IFZBTFVFUyAoMSwxMCksKDIsMjApLCgzLDMwKSwoNCwxMCksKDUsNTApLCg2LDEwKTsK Ky0tIEZJUlNUKHZhbCkgPSBjb25zdGFudDogQiBtYXRjaGVzIHdoZW4gbWF0Y2hfc3RhcnQgaGFz IHZhbD0xMAorLS0gbWF0Y2hfc3RhcnQ9MSgxMCk6IEE9aWQxLCBCPWlkMiwgRklSU1QodmFsKT0x MCDihpIgbWF0Y2ggezEsMn0KKy0tIG1hdGNoX3N0YXJ0PTMoMzApOiBBPWlkMywgQj1pZDQsIEZJ UlNUKHZhbCk9MzDiiaAxMCDihpIgbm8gbWF0Y2gKKy0tIG1hdGNoX3N0YXJ0PTQoMTApOiBBPWlk NCwgQj1pZDUsIEZJUlNUKHZhbCk9MTAg4oaSIG1hdGNoIHs0LDV9CitTRUxFQ1QgaWQsIHZhbCwg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1s CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgRklSU1QodmFsKSA9IDEwCispOworIGlkIHwgdmFsIHwgbWYgfCBtbCAKKy0t LS0rLS0tLS0rLS0tLSstLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAyCisgIDIgfCAgMjAgfCAgICB8 ICAgCisgIDMgfCAgMzAgfCAgICB8ICAgCisgIDQgfCAgMTAgfCAgNCB8ICA1CisgIDUgfCAgNTAg fCAgICB8ICAgCisgIDYgfCAgMTAgfCAgICB8ICAgCisoNiByb3dzKQorCistLSBMQVNUKHZhbCk6 IGFsd2F5cyBlcXVhbHMgY3VycmVudCByb3cncyB2YWwgKG9mZnNldCAwIGRlZmF1bHQpCistLSBF cXVpdmFsZW50IHRvOiBCIEFTIHZhbCA+IDE1CitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9u YXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMg TEFTVCh2YWwpID4gMTUKKyk7CisgaWQgfCB2YWwgfCBtZiB8IG1sIAorLS0tLSstLS0tLSstLS0t Ky0tLS0KKyAgMSB8ICAxMCB8ICAxIHwgIDIKKyAgMiB8ICAyMCB8ICAgIHwgICAKKyAgMyB8ICAz MCB8ICAgIHwgICAKKyAgNCB8ICAxMCB8ICA0IHwgIDUKKyAgNSB8ICA1MCB8ICAgIHwgICAKKyAg NiB8ICAxMCB8ICAgIHwgICAKKyg2IHJvd3MpCisKKy0tIFJlbHVjdGFudCBBKz8gd2l0aCBGSVJT VCh2YWwpID0gTEFTVCh2YWwpOiBmaW5kIHNob3J0ZXN0IG1hdGNoIHdoZXJlCistLSBmaXJzdCBh bmQgbGFzdCByb3dzIGhhdmUgdGhlIHNhbWUgdmFsLgorLS0gbWF0Y2hfc3RhcnQ9MSgxMCk6IHJl bHVjdGFudCB0cmllcyBCIGVhcmx5OgorLS0gICBpZDIoMjDiiaAxMCksIGlkMygzMOKJoDEwKSwg aWQ0KDEwPTEwKSDihpIgbWF0Y2ggezEsMiwzLDR9CistLSBtYXRjaF9zdGFydD01KDUwKTogaWQ2 KDEw4omgNTApIOKGkiBubyBtYXRjaAorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWYsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtbAorRlJPTSBycHJfbmF2IFdJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklS U1QodmFsKSA9IExBU1QodmFsKQorKTsKKyBpZCB8IHZhbCB8IG1mIHwgbWwgCistLS0tKy0tLS0t Ky0tLS0rLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgNAorICAyIHwgIDIwIHwgICAgfCAgIAorICAz IHwgIDMwIHwgICAgfCAgIAorICA0IHwgIDEwIHwgICAgfCAgIAorICA1IHwgIDUwIHwgICAgfCAg IAorICA2IHwgIDEwIHwgICAgfCAgIAorKDYgcm93cykKKworLS0gR3JlZWR5IEErIHdpdGggRklS U1QodmFsKSA9IExBU1QodmFsKTogZmluZCBsb25nZXN0IG1hdGNoIHdoZXJlCistLSBmaXJzdCBh bmQgbGFzdCByb3dzIGhhdmUgdGhlIHNhbWUgdmFsLgorLS0gbWF0Y2hfc3RhcnQ9MSgxMCk6IGdy ZWVkeSBBIGVhdHMgYWxsLCBCIHRyaWVzIGxhc3Q6CistLSAgIGlkNigxMD0xMCkg4oaSIG1hdGNo IHsxLDIsMyw0LDUsNn0KK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKK0ZST00gcnByX25hdiBXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1QodmFsKSA9 IExBU1QodmFsKQorKTsKKyBpZCB8IHZhbCB8IG1mIHwgbWwgCistLS0tKy0tLS0tKy0tLS0rLS0t LQorICAxIHwgIDEwIHwgIDEgfCAgNgorICAyIHwgIDIwIHwgICAgfCAgIAorICAzIHwgIDMwIHwg ICAgfCAgIAorICA0IHwgIDEwIHwgICAgfCAgIAorICA1IHwgIDUwIHwgICAgfCAgIAorICA2IHwg IDEwIHwgICAgfCAgIAorKDYgcm93cykKKworLS0gU0tJUCBUTyBORVhUIFJPVyB3aXRoIEZJUlNU KHZhbCkgPSBMQVNUKHZhbCk6IG92ZXJsYXBwaW5nIG1hdGNoIGF0dGVtcHRzLgorLS0gV2l0aCBP TkUgUk9XIFBFUiBNQVRDSCwgZWFjaCByb3cgc2hvd3Mgb25seSBpdHMgZmlyc3QgbWF0Y2ggcmVz dWx0LgorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtbAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChB Kz8gQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCkK Kyk7CisgaWQgfCB2YWwgfCBtZiB8IG1sIAorLS0tLSstLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAx MCB8ICAxIHwgIDQKKyAgMiB8ICAyMCB8ICAgIHwgICAKKyAgMyB8ICAzMCB8ICAgIHwgICAKKyAg NCB8ICAxMCB8ICA0IHwgIDYKKyAgNSB8ICA1MCB8ICAgIHwgICAKKyAgNiB8ICAxMCB8ICAgIHwg ICAKKyg2IHJvd3MpCisKKy0tIEZJUlNUL0xBU1QgMi1hcmcgb2Zmc2V0IGZvcm0KKy0tCistLSBG SVJTVCh2YWwsIDApID0gRklSU1QodmFsKTogbWF0Y2hfc3RhcnQgcm93CitTRUxFQ1QgaWQsIHZh bCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAor RlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMg VFJVRSwgQiBBUyBGSVJTVCh2YWwsIDApID0gMTAKKyk7CisgaWQgfCB2YWwgfCBtZiB8IGNudCAK Ky0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgIDYKKyAgMiB8ICAyMCB8 ICAgIHwgICAwCisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwgICAgfCAgIDAKKyAg NSB8ICA1MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykKKworLS0g RklSU1QodmFsLCAxKTogbWF0Y2hfc3RhcnQgKyAxIHJvdyAoc2Vjb25kIHJvdyBvZiBtYXRjaCkK Ky0tIG1hdGNoX3N0YXJ0PTEoMTApOiBGSVJTVCh2YWwsMSk9MjAsIEIgbmVlZHMgdmFsPTIwIOKG kiBpZDIoMjApIG1hdGNoLCBpZDMoMzApIG5vCistLSBtYXRjaF9zdGFydD0zKDMwKTogRklSU1Qo dmFsLDEpPTEwLCBCIG5lZWRzIHZhbD0xMCDihpIgaWQ0KDEwKSBtYXRjaAorU0VMRUNUIGlkLCB2 YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQK K0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgdmFsID0gRklSU1QodmFsLCAxKQorKTsKKyBpZCB8IHZhbCB8IG1mIHwgY250 IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAgMgorICAyIHwgIDIw IHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAzIHwgICAyCisgIDQgfCAgMTAgfCAgICB8ICAgMAor ICA1IHwgIDUwIHwgIDUgfCAgIDIKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiByb3dzKQorCist LSBGSVJTVCh2YWwsIDk5KTogb2Zmc2V0IGJleW9uZCBtYXRjaCByYW5nZSDihpIgTlVMTCwgbm8g bWF0Y2gKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9u YXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFT IEZJUlNUKHZhbCwgOTkpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0tLSst LS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8 ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgMAor KDYgcm93cykKKworLS0gTEFTVCh2YWwsIDApID0gTEFTVCh2YWwpOiBjdXJyZW50IHJvdworU0VM RUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERF RklORSBBIEFTIFRSVUUsIEIgQVMgTEFTVCh2YWwsIDApID4gMTUKKyk7CisgaWQgfCB2YWwgfCBt ZiB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgIDMKKyAg MiB8ICAyMCB8ICAgIHwgICAwCisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwgIDQg fCAgIDIKKyAgNSB8ICA1MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93 cykKKworLS0gTEFTVCh2YWwsIDEpOiBvbmUgcm93IGJhY2sgZnJvbSBjdXJyZW50IChwcmV2aW91 cyBtYXRjaCByb3cpCistLSBBdCBCIGV2YWx1YXRpb24gb24gaWQyOiBMQVNUKHZhbCwxKSA9IHZh bCBhdCBpZDEgPSAxMAorLS0gQiBtYXRjaGVzIHdoZW4gcHJldmlvdXMgcm93IHZhbCA8IDMwCitT RUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAg REVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKHZhbCwgMSkgPCAzMAorKTsKKyBpZCB8IHZhbCB8 IG1mIHwgY250IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAgMwor ICAyIHwgIDIwIHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAgMTAgfCAg NCB8ICAgMgorICA1IHwgIDUwIHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiBy b3dzKQorCistLSBMQVNUKHZhbCwgOTkpOiBvZmZzZXQgYmVmb3JlIG1hdGNoX3N0YXJ0IOKGkiBO VUxMCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2 IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBM QVNUKHZhbCwgOTkpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0t LSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAg MAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgMAorKDYg cm93cykKKworLS0gRXJyb3I6IE5VTEwgb2Zmc2V0CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikg T1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBGSVJTVCh2YWwsIE5VTEw6OmludDgpIElTIE5VTEwK Kyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51 bGwKKy0tIEVycm9yOiBuZWdhdGl2ZSBvZmZzZXQKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIExBU1QodmFsLCAtMSkgSVMgTlVMTAorKTsKK0VSUk9S OiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKKy0t IEZJUlNUL0xBU1Qgb3V0c2lkZSBERUZJTkUgY2xhdXNlIChlcnJvciBjYXNlcykKK1NFTEVDVCBm aXJzdCh2YWwpIEZST00gcnByX25hdjsKK0VSUk9SOiAgZmlyc3QgY2FuIG9ubHkgYmUgdXNlZCBp biBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VMRUNUIGZpcnN0KHZhbCkgRlJPTSBycHJfbmF2 OworICAgICAgICAgICAgICAgXgorU0VMRUNUIGxhc3QodmFsKSBGUk9NIHJwcl9uYXY7CitFUlJP UjogIGxhc3QgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VM RUNUIGxhc3QodmFsKSBGUk9NIHJwcl9uYXY7CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgZmly c3QodmFsLCAxKSBGUk9NIHJwcl9uYXY7CitFUlJPUjogIGZpcnN0IGNhbiBvbmx5IGJlIHVzZWQg aW4gYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBmaXJzdCh2YWwsIDEpIEZST00gcnBy X25hdjsKKyAgICAgICAgICAgICAgIF4KKy0tIEZ1bmN0aW9uYWwgbm90YXRpb246IHNob3VsZCBh Y2Nlc3MgY29sdW1uLCBub3QgUlBSIG5hdmlnYXRpb24KK0NSRUFURSBURU1QIFRBQkxFIHJwcl9u YW1lcyAocHJldiBpbnQsIG5leHQgaW50LCBmaXJzdCB0ZXh0LCBsYXN0IHRleHQpOworSU5TRVJU IElOVE8gcnByX25hbWVzIFZBTFVFUyAoMSwgMiwgJ0pvZScsICdCbG93Jyk7CitTRUxFQ1QgcHJl dihmKSwgbmV4dChmKSwgZmlyc3QoZiksIGxhc3QoZikgRlJPTSBycHJfbmFtZXMgZjsKKyBwcmV2 IHwgbmV4dCB8IGZpcnN0IHwgbGFzdCAKKy0tLS0tLSstLS0tLS0rLS0tLS0tLSstLS0tLS0KKyAg ICAxIHwgICAgMiB8IEpvZSAgIHwgQmxvdworKDEgcm93KQorCitEUk9QIFRBQkxFIHJwcl9uYW1l czsKKy0tIENvbXBvdW5kIG5hdmlnYXRpb246IFBSRVYoRklSU1QodmFsKSwgTSkKKy0tIHJwcl9u YXY6ICgxLDEwKSwoMiwyMCksKDMsMzApLCg0LDEwKSwoNSw1MCksKDYsMTApCistLSBQUkVWKEZJ UlNUKHZhbCksIDEpOiB0YXJnZXQgPSBtYXRjaF9zdGFydCArIDAgLSAxID0gbWF0Y2hfc3RhcnQg LSAxCistLSBBdCBtYXRjaF9zdGFydD0xOiB0YXJnZXQ9MCDihpIgb3V0IG9mIHJhbmdlIOKGkiBO VUxMCistLSBBdCBtYXRjaF9zdGFydD0zOiB0YXJnZXQ9Mih2YWw9MjApIOKGkiAyMCA+IDAg4oaS IHRydWUKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBC KykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsKSwgMSkgPiAwCisp OworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8ICAx MCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAzIHwgIDMwIHwgICAgfCAgIDAK KyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwgIDEwIHwg ICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoRklSU1QodmFsLCAxKSwgMSk6IHRhcmdldCA9 IG1hdGNoX3N0YXJ0ICsgMSArIDEgPSBtYXRjaF9zdGFydCArIDIKKy0tIEF0IG1hdGNoX3N0YXJ0 PTEsIEIgb24gaWQyOiB0YXJnZXQ9MSsxKzE9Myh2YWw9MzApLCAzMD4wIOKGkiB0cnVlCitTRUxF Q1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCwgMSksIDEpID4gMAorKTsKKyBpZCB8 IHZhbCB8IG1mIHwgY250IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8 ICAgNgorICAyIHwgIDIwIHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAg MTAgfCAgICB8ICAgMAorICA1IHwgIDUwIHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAw CisoNiByb3dzKQorCistLSBQUkVWKExBU1QodmFsKSwgMik6IHRhcmdldCA9IGN1cnJlbnRwb3Mg LSAwIC0gMiA9IGN1cnJlbnRwb3MgLSAyCistLSBTYW1lIGJhY2t3YXJkIHJlYWNoIGFzIFBSRVYo dmFsLCAyKQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNv dW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChB IEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihMQVNUKHZhbCksIDIpIElTIE5P VCBOVUxMCispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0K KyAgMSB8ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAzIHwgIDMwIHwg ICAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2 IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoTEFTVCh2YWwsIDEpLCAyKTog dGFyZ2V0ID0gY3VycmVudHBvcyAtIDEgKyAyID0gY3VycmVudHBvcyArIDEKKy0tIExvb2tzIDEg cm93IGFoZWFkOiBzYW1lIGFzIE5FWFQodmFsLCAxKQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25h diBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMg TkVYVChMQVNUKHZhbCwgMSksIDIpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgbWYgfCBj bnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAxIHwgICA1CisgIDIgfCAg MjAgfCAgICB8ICAgMAorICAzIHwgIDMwIHwgICAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgIHwgICAw CisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisK Ky0tIENvbXBvdW5kOiBvdXRlciBvZmZzZXQgYmV5b25kIHBhcnRpdGlvbiAoUFJFViBmYXIgYmFj aykKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYg V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsKSwgOTkpIElTIE5PVCBOVUxMCispOwor IGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIg fCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAg fCAgIDAKKyAgNiB8ICAxMCB8ICAgMAorKDYgcm93cykKKworLS0gQ29tcG91bmQ6IG91dGVyIG9m ZnNldCBiZXlvbmQgcGFydGl0aW9uIChORVhUIGZhciBmb3J3YXJkKQorU0VMRUNUIGlkLCB2YWws IGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMg TkVYVChGSVJTVCh2YWwpLCA5OSkgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwgfCBjbnQgCist LS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwg IDMwIHwgICAwCisgIDQgfCAgMTAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDEwIHwg ICAwCisoNiByb3dzKQorCistLSBDb21wb3VuZDogaW5uZXIgb2Zmc2V0IGJleW9uZCBtYXRjaCBy YW5nZSAoRklSU1Qgb2Zmc2V0IHRvbyBsYXJnZSkKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1Qo dmFsLCA5OSksIDEpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0t LSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAg MAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgMAorKDYg cm93cykKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNldCBiZXlvbmQgbWF0Y2ggcmFuZ2UgKExB U1Qgb2Zmc2V0IHRvbyBsYXJnZSkKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMg Y250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwsIDk5KSwg MSkgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisg IDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAg MTAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDEwIHwgICAwCisoNiByb3dzKQorCist LSBDb21wb3VuZDogTlVMTCBvdXRlciBvZmZzZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxFQ1QgaWQs IHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKEZJUlNUKHZhbCks IE5VTEw6OmludDgpIElTIE5VTEwKKyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24g b2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKKy0tIENvbXBvdW5kOiBuZWdhdGl2ZSBvdXRlciBvZmZz ZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00g cnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyBORVhUKExBU1QodmFsKSwgLTEpIElTIE5VTEwKKyk7CitFUlJPUjogIHJv dyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlCistLSBDb21w b3VuZDogZGVmYXVsdCBvZmZzZXRzIG9uIGJvdGggc2lkZXMKKy0tIFBSRVYoRklSU1QodmFsKSk6 IGlubmVyPTAgKG1hdGNoX3N0YXJ0KSwgb3V0ZXI9MSDihpIgdGFyZ2V0ID0gbWF0Y2hfc3RhcnQg LSAxCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQisp CisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCkpIElTIE5PVCBOVUxM CispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8 ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAzIHwgIDMwIHwgICAgfCAg IDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwgIDEw IHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoTEFTVCh2YWwpKTogaW5uZXI9MCAoY3Vy cmVudHBvcyksIG91dGVyPTEg4oaSIHRhcmdldCA9IGN1cnJlbnRwb3MgKyAxCitTRUxFQ1QgaWQs IHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEg QVMgVFJVRSwgQiBBUyBORVhUKExBU1QodmFsKSkgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwg fCBtZiB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgIDUK KyAgMiB8ICAyMCB8ICAgIHwgICAwCisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwg ICAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYg cm93cykKKworLS0gQ29tcG91bmQ6IGlubmVyIE5VTEwgb2Zmc2V0IChydW50aW1lIGVycm9yKQor U0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihG SVJTVCh2YWwsIE5VTEw6OmludDgpLCAxKSBJUyBOVUxMCispOworRVJST1I6ICByb3cgcGF0dGVy biBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCistLSBDb21wb3VuZDogaW5uZXIg bmVnYXRpdmUgb2Zmc2V0IChydW50aW1lIGVycm9yKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCop IE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChMQVNUKHZhbCwgLTEpLCAxKSBJUyBOVUxM CispOworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBu ZWdhdGl2ZQorLS0gQ29tcG91bmQgKyBob3N0IHZhcmlhYmxlIG9mZnNldHMKK1BSRVBBUkUgdGVz dF9jb21wb3VuZF9vZmZzZXQoaW50OCwgaW50OCkgQVMKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9u YXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFT IFBSRVYoRklSU1QodmFsLCAkMSksICQyKSBJUyBOT1QgTlVMTAorKTsKK0VYRUNVVEUgdGVzdF9j b21wb3VuZF9vZmZzZXQoMCwgMSk7CisgaWQgfCB2YWwgfCBtZiB8IGNudCAKKy0tLS0rLS0tLS0r LS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAgfCAgIDAKKyAgMiB8ICAyMCB8ICAyIHwgICA1Cisg IDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwgICAgfCAgIDAKKyAgNSB8ICA1MCB8ICAg IHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykKKworRVhFQ1VURSB0ZXN0X2Nv bXBvdW5kX29mZnNldCgxLCAxKTsKKyBpZCB8IHZhbCB8IG1mIHwgY250IAorLS0tLSstLS0tLSst LS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAgNgorICAyIHwgIDIwIHwgICAgfCAgIDAKKyAg MyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAgMTAgfCAgICB8ICAgMAorICA1IHwgIDUwIHwgICAg fCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiByb3dzKQorCitERUFMTE9DQVRFIHRlc3Rf Y29tcG91bmRfb2Zmc2V0OworLS0gQ29tcG91bmQgKyBTS0lQIFRPIE5FWFQgUk9XOiBvdmVybGFw cGluZyBtYXRjaGVzIHdpdGggUFJFVihGSVJTVCgpKQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25h diBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBS RVYoRklSU1QodmFsKSwgMSkgPiAwCispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0t LS0tKy0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAg NQorICAzIHwgIDMwIHwgIDMgfCAgIDQKKyAgNCB8ICAxMCB8ICA0IHwgICAzCisgIDUgfCAgNTAg fCAgNSB8ICAgMgorICA2IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIENvbXBvdW5k ICsgbXVsdGlwbGUgcGFydGl0aW9ucworQ1JFQVRFIFRFTVAgVEFCTEUgcnByX25hdl9wYXJ0IChn aWQgaW50LCBpZCBpbnQsIHZhbCBpbnQpOworSU5TRVJUIElOVE8gcnByX25hdl9wYXJ0IFZBTFVF UworICAgICgxLDEsMTApLCgxLDIsMjApLCgxLDMsMzApLAorICAgICgyLDEsNDApLCgyLDIsNTAp LCgyLDMsNjApOworU0VMRUNUIGdpZCwgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2X3BhcnQgV0lORE9XIHcg QVMgKAorICAgIFBBUlRJVElPTiBCWSBnaWQgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUs IEIgQVMgTkVYVChGSVJTVCh2YWwpLCAxKSA+IDAKKyk7CisgZ2lkIHwgaWQgfCB2YWwgfCBtZiB8 IGNudCAKKy0tLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAgMSB8ICAxIHwgIDEwIHwgIDEg fCAgIDMKKyAgIDEgfCAgMiB8ICAyMCB8ICAgIHwgICAwCisgICAxIHwgIDMgfCAgMzAgfCAgICB8 ICAgMAorICAgMiB8ICAxIHwgIDQwIHwgIDEgfCAgIDMKKyAgIDIgfCAgMiB8ICA1MCB8ICAgIHwg ICAwCisgICAyIHwgIDMgfCAgNjAgfCAgICB8ICAgMAorKDYgcm93cykKKworRFJPUCBUQUJMRSBy cHJfbmF2X3BhcnQ7CistLSBSZXZlcnNlIG5lc3Rpbmc6IEZJUlNUIHdyYXBwaW5nIFBSRVYgaXMg cHJvaGliaXRlZAorU0VMRUNUIGlkLCB2YWwgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFT IEZJUlNUKFBSRVYodmFsKSkgPiAwCispOworRVJST1I6ICBGSVJTVCBhbmQgTEFTVCBjYW5ub3Qg Y29udGFpbiBQUkVWIG9yIE5FWFQKK0xJTkUgNTogICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMg RklSU1QoUFJFVih2YWwpKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkp LCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgorLS0gUmV2ZXJz ZSBuZXN0aW5nOiBMQVNUIHdyYXBwaW5nIE5FWFQgaXMgcHJvaGliaXRlZAorU0VMRUNUIGlkLCB2 YWwgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QoTkVYVCh2YWwpKSA+IDAKKyk7 CitFUlJPUjogIEZJUlNUIGFuZCBMQVNUIGNhbm5vdCBjb250YWluIFBSRVYgb3IgTkVYVAorTElO RSA1OiAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKE5FWFQodmFsKSkgPiAwCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYoRklSU1Qo KSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3Vu ZCBmb3JtcyBhcmUgYWxsb3dlZC4KK0RST1AgVEFCTEUgcnByX25hdjsKIC0tCiAtLSBTS0lQIFRP IC8gQmFja3RyYWNraW5nIC8gRnJhbWUgYm91bmRhcnkKIC0tCkBAIC0yMjQ3LDYgKzI4NTAsMjcg QEAgRlJPTSByZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKICAgICAgICAgICAgIDEgfCAgICAg ICAgIDk5OTk5CiAoMSByb3cpCiAKK1JFU0VUIGppdF9hYm92ZV9jb3N0OworUkVTRVQgaml0Owor LS0gSklUIGNvbXBvdW5kIG5hdmlnYXRpb24gdGVzdAorU0VUIGppdCA9IG9uOworU0VUIGppdF9h Ym92ZV9jb3N0ID0gMDsKK1NFTEVDVCBjb3VudCgqKSBBUyBtYXRjaGVkX3Jvd3MKK0ZST00gKAor IFNFTEVDVCB2LCBjb3VudCgqKSBPVkVSIHcgQVMgbWF0Y2hfbGVuCisgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwMCkgQVMgdCh2KQorIFdJTkRPVyB3IEFTICgKKyAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICBQQVRURVJOIChBIEIrKQorICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBS RVYoRklSU1QodiksIDEpID4gMAorICkKKykgc3ViIFdIRVJFIG1hdGNoX2xlbiA+IDA7CisgbWF0 Y2hlZF9yb3dzIAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIDEKKygxIHJvdykKKwogUkVT RVQgaml0X2Fib3ZlX2Nvc3Q7CiBSRVNFVCBqaXQ7CiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9iYXNlLm91dAppbmRleCAxZTQ1MGEwN2NlZC4uMDg0NTMxNjk2NWUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0xNjI5LDcgKzE2MjksNyBAQCBMSU5FIDY6 ICAgICBQQVRURVJOIChBeywyMTQ3NDgzNjQ3fSkKIC0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRp ZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgogRFJPUCBUQUJMRSBy cHJfYm91bmRzOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBOYXZpZ2F0aW9uIEZ1bmN0aW9ucyBUZXN0cyAoUFJFViAv IE5FWFQpCistLSBOYXZpZ2F0aW9uIEZ1bmN0aW9ucyBUZXN0cyAoUFJFViAvIE5FWFQgLyBGSVJT VCAvIExBU1QpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIENSRUFURSBUQUJMRSBycHJfbmF2IChpZCBJTlQsIHZhbCBJTlQp OwogSU5TRVJUIElOVE8gcnByX25hdiBWQUxVRVMKQEAgLTE3MzAsNiArMTczMCw4MSBAQCBFUlJP UjogIG5leHQgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKIExJTkUgMTogU0VM RUNUIE5FWFQoaWQpLCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CiAgICAgICAgICAg ICAgICBeCiAtLSBFeHBlY3RlZDogRVJST1I6IG5leHQgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERF RklORSBjbGF1c2UKKy0tIEZJUlNUIGZ1bmN0aW9uIC0gcmVmZXJlbmNlIG1hdGNoX3N0YXJ0IHJv dworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX25hdgor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAorICAgICAgICBCIEFTIHZhbCA+IEZJUlNUKHZhbCkK KykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAx IHwgIDEwIHwgICA1CisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMAorICA0IHwgIDI1 IHwgICAwCisgIDUgfCAgMzAgfCAgIDAKKyg1IHJvd3MpCisKKy0tIExBU1QgZnVuY3Rpb24gd2l0 aG91dCBvZmZzZXQgLSBlcXVpdmFsZW50IHRvIGN1cnJlbnQgcm93J3MgdmFsdWUKK1NFTEVDVCBp ZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgdmFsID4gMCwKKyAgICAgICAgQiBBUyBMQVNUKHZhbCkgPiBQUkVWKHZhbCkKKykKK09S REVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEw IHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMworICA0IHwgIDI1IHwgICAw CisgIDUgfCAgMzAgfCAgIDAKKyg1IHJvd3MpCisKKy0tIEZJUlNUIGFuZCBMQVNUIGNvbWJpbmVk CitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RQorICAgICAgICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgdmFsID4gRklSU1QodmFsKSBB TkQgTEFTVCh2YWwpID4gUFJFVih2YWwpCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNu dCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisg IDMgfCAgMTUgfCAgIDMKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgIDMwIHwgICAwCisoNSByb3dz KQorCistLSBGSVJTVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklO RQorU0VMRUNUIEZJUlNUKGlkKSwgaWQsIHZhbCBGUk9NIHJwcl9uYXY7CitFUlJPUjogIGZpcnN0 IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBGSVJT VChpZCksIGlkLCB2YWwgRlJPTSBycHJfbmF2OworICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0 ZWQ6IEVSUk9SOiBmaXJzdCBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorLS0g TEFTVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklORQorU0VMRUNU IExBU1QoaWQpLCBpZCwgdmFsIEZST00gcnByX25hdjsKK0VSUk9SOiAgbGFzdCBjYW4gb25seSBi ZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorTElORSAxOiBTRUxFQ1QgTEFTVChpZCksIGlkLCB2 YWwgRlJPTSBycHJfbmF2OworICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBs YXN0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCiBEUk9QIFRBQkxFIHJwcl9u YXY7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tIFNLSVAgVE8gLyBJTklUSUFMIFRlc3RzCkBAIC0yMjI3LDYgKzIzMDIs MTUwIEBAIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF92OCc6OnJlZ2NsYXNzKTsK ICAgIGQgQVMgKHZhbCA+IDMwKSApOwogKDEgcm93KQogCistLSBOYXZpZ2F0aW9uIGZ1bmN0aW9u IHNlcmlhbGl6YXRpb246IFBSRVYgd2l0aCBvZmZzZXQKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxf bmF2MSBBUworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfc2VyaWFs CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChB IEIrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgdmFsID4gUFJFVih2YWws IDIpKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9uYXYxJzo6cmVnY2xhc3Mp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNU IGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIg dyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgUEFUVEVSTiAoYSBiKykg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEgQVMgdHJ1ZSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYiBB UyAodmFsID4gUFJFVih2YWwsICgyKTo6YmlnaW50KSkgKTsKKygxIHJvdykKKworLS0gTmF2aWdh dGlvbiBmdW5jdGlvbiBzZXJpYWxpemF0aW9uOiBGSVJTVCBhbmQgTEFTVAorQ1JFQVRFIFZJRVcg cnByX3NlcmlhbF9uYXYyIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9N IHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAg IFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJT VCh2YWwpIDwgTEFTVCh2YWwsIDEpKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3Nlcmlh bF9uYXYyJzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19n ZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgU0VMRUNUIGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgUEFUVEVSTiAoYSBiKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEgQVMgdHJ1 ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgYiBBUyAoRklSU1QodmFsKSA8IExBU1QodmFsLCAoMSk6OmJpZ2ludCkp ICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29t cG91bmQgUFJFVihGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXYzIEFTCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAg ICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCwgMSksIDIpID4gMCk7 CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Myc6OnJlZ2NsYXNzKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBpZCwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgqKSBPVkVSIHcgQVMg Y291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGEgYispICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGIgQVMgKFBS RVYoRklSU1QodmFsLCAoMSk6OmJpZ2ludCksICgyKTo6YmlnaW50KSA+IDApICk7CisoMSByb3cp CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgTkVYVChM QVNUKCkpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjQgQVMKK1NFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk CisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUg QSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwpLCAyKSBJUyBOT1QgTlVMTCk7CitTRUxFQ1Qg cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2NCc6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBy cHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGEgYispICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgREVGSU5F ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGIgQVMgKE5FWFQoTEFTVCh2 YWwpLCAoMik6OmJpZ2ludCkgSVMgTk9UIE5VTEwpICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRp b24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgUFJFVihMQVNUKCkpCitDUkVBVEUg VklFVyBycHJfc2VyaWFsX25hdjUgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcK K0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFT IFBSRVYoTEFTVCh2YWwsIDEpLCAyKSA+IDApOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJf c2VyaWFsX25hdjUnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgaWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHZhbCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIEZST00gcnByX3NlcmlhbCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HICsKKyAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgSU5JVElBTCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICBQQVRURVJOIChhIGIrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIERFRklORSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYSBB UyB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICBiIEFTIChQUkVWKExBU1QodmFsLCAoMSk6OmJpZ2ludCksICgy KTo6YmlnaW50KSA+IDApICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2Vy aWFsaXphdGlvbjogY29tcG91bmQgTkVYVChGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3Nlcmlh bF9uYXY2IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJp YWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4g KEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZh bCksIDMpID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Nic6OnJl Z2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg IFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgq KSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKwor ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4g KGEgYispICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgIGIgQVMgKE5FWFQoRklSU1QodmFsKSwgKDMpOjpiaWdpbnQpID4gMCkgKTsKKygxIHJvdykK KwogLS0gUmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBkZXBhcnNlIHRocm91Z2ggcnVsZXV0aWxz CiBDUkVBVEUgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3YgQVMKIFNFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcKQEAgLTMwMjEsNiArMzI0MCw0MiBAQCBPUkRFUiBCWSBpZDsKICgzIHJv d3MpCiAKIERST1AgVEFCTEUgcnByX251bGw7CistLSBDb21wb3VuZCBuYXZpZ2F0aW9uOiBpbm5l ciBuYXYgbXVzdCBiZSBkaXJlY3QgYXJnIChub3QgbmVzdGVkIGluIGV4cHJlc3Npb24pCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2ICsgRklSU1Qo dikpID4gMAorKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVz dCBiZSBhIGRpcmVjdCBhcmd1bWVudCBvZiB0aGUgb3V0ZXIgbmF2aWdhdGlvbgorTElORSA2OiAg ICAgREVGSU5FIEEgQVMgUFJFVih2ICsgRklSU1QodikpID4gMAorICAgICAgICAgICAgICAgICAg ICAgICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJ UlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgorLS0g RklSU1QvTEFTVCB3cmFwcGluZyBGSVJTVC9MQVNUOiBwcm9oaWJpdGVkCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgRklSU1QoRklSU1QodikpID4gMAorKTsK K0VSUk9SOiAgRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gRklSU1Qgb3IgTEFTVAorTElO RSA2OiAgICAgREVGSU5FIEEgQVMgRklSU1QoRklSU1QodikpID4gMAorICAgICAgICAgICAgICAg ICAgICAgICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhU KEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgor LS0gVHJpcGxlIG5lc3Rpbmc6IHByb2hpYml0ZWQgKDMtbGV2ZWwgZGVlcCBuYXZpZ2F0aW9uKQor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYoRklSU1Qo UFJFVih2KSkpID4gMAorKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBjYW5ub3Qg YmUgbmVzdGVkIG1vcmUgdGhhbiB0d28gbGV2ZWxzIGRlZXAKK0xJTkUgNjogICAgIERFRklORSBB IEFTIFBSRVYoRklSU1QoUFJFVih2KSkpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgXgor SElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBh bmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBX aW5kb3cgRGVkdXBsaWNhdGlvbiBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDc3YWIyNWEyMjg5Li5kYzM1MjJmOTMwZiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTM2LDcgKzM2LDcgQEAK IC0tICAgV2luZG93IEZ1bmN0aW9uIENvbWJpbmF0aW9ucwogLS0gICBERUZJTkUgRXhwcmVzc2lv biBWYXJpYXRpb25zCiAtLSAgIExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCi0t LSAgIE5hdiBNYXJrIExvb2tiYWNrICh0dXBsZXN0b3JlIHRyaW0pCistLSAgIE5hdiBNYXJrIExv b2tiYWNrL0xvb2thaGVhZCAodHVwbGVzdG9yZSB0cmltKQogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBGaWx0ZXIgZnVu Y3Rpb24gdG8gbm9ybWFsaXplIHBsYXRmb3JtLWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzIChub3Qg TkZBIHN0YXRpc3RpY3MpLgogLS0gTkZBIHN0YXRpc3RpY3Mgc2hvdWxkIG5vdCBjaGFuZ2UgYmV0 d2VlbiBwbGF0Zm9ybXM7IGlmIHRoZXkgZG8sIGl0IGNvdWxkCkBAIC0xMTMxLDYgKzExMzEsMTI3 IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0xKQogKDEwIHJvd3MpCiAKKy0tIE5vIGFic29y cHRpb24gd2hlbiBERUZJTkUgdXNlcyBGSVJTVCAobWF0Y2hfc3RhcnQtZGVwZW5kZW50KQorLS0g U2FtZSBwYXR0ZXJuIGFzIHJwcl9ldl9jdHhfYWJzb3JiX3VuYm91bmRlZCBidXQgd2l0aCBGSVJT VCBpbiBERUZJTkUuCistLSBDb21wYXJlOiBhYnNvcmJlZCBjb3VudCBzaG91bGQgYmUgMCBoZXJl IHZzID4wIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19hYnNvcmJfZmlyc3QgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0g MCBBTkQgdiA+IEZJUlNUKHYpCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X25vX2Fic29yYl9maXJzdCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCitTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERF RklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwIEFORCB2ID4gRklSU1QodikKKyk7 Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93 cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyBiCisgICBOYXYgTWFy ayBMb29rYmFjazogMAorICAgTmF2IE1hcmsgTG9va2FoZWFkOiAwCisgICBTdG9yYWdlOiBNZW1v cnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA5IHBlYWssIDE1MSB0b3Rh bCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogNSBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQK KyAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTog MCBhYnNvcmJlZCwgNDAgc2tpcHBlZCAobGVuIDEvNC8yLjUpCisgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMSBy b3dzKQorCistLSBBYnNvcnB0aW9uIHByZXNlcnZlZCB3aGVuIERFRklORSB1c2VzIG9ubHkgTEFT VCB3aXRob3V0IG9mZnNldAorLS0gTEFTVCh2KSBpcyBtYXRjaF9zdGFydC1pbmRlcGVuZGVudCAo YWx3YXlzIGN1cnJlbnRwb3MpLCBzbyBhYnNvcnB0aW9uCistLSByZW1haW5zIGFjdGl2ZS4gIENv bXBhcmU6IGFic29yYmVkIGNvdW50IHNob3VsZCBiZSA+MCwgbGlrZSB0aGUKKy0tIFBSRVYtb25s eSBjYXNlIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJfbGFzdCBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgTEFTVCh2KSAlIDUg PSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9sYXN0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgUEFUVEVSTiAoYSsgYikgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4g MCwgQiBBUyBMQVNUKHYpICUgNSA9IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg IHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3 IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisg ICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgOTEgdG90 YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVk CisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6 IDMwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAw IGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gTm8gYWJzb3JwdGlvbiB3aXRoIGNvbXBvdW5kIFBS RVYoRklSU1QoKSkgKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCkKK0NSRUFURSBWSUVXIHJwcl9ldl9j dHhfbm9fYWJzb3JiX2NvbXBvdW5kIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMg diAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIFBSRVYoRklSU1QodiksIDEpIElTIE5PVCBO VUxMCispOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo QSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMCBBTkQgUFJF VihGSVJTVCh2KSwgMSkgSVMgTk9UIE5VTEwKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CisgICBQYXR0ZXJuOiBhKyBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgTmF2IE1hcmsg TG9va2FoZWFkOiAtMQorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgor ICAgTkZBIFN0YXRlczogOSBwZWFrLCAxNTEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4 dHM6IDUgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA0 LzUvNC45KSwgMSBtaXNtYXRjaGVkIChsZW4gNS81LzUuMCkKKyAgIE5GQTogMCBhYnNvcmJlZCwg Mzkgc2tpcHBlZCAobGVuIDEvNC8yLjUpCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMSByb3dzKQorCiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTQzNDMsOSAr NDQ2NCwxMCBAQCBTRUxFQ1QgKiBGUk9NICgKICg5IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTmF2IE1h cmsgTG9va2JhY2sgVGVzdHMKLS0tIFZlcmlmaWVzIHBsYW5uZXItY29tcHV0ZWQgbmF2aWdhdGlv biBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbS4KLS0tIExvb2tiYWNrOiBob3cgZmFyIGJhY2sg ZnJvbSBjdXJyZW50cG9zIChQUkVWL0xBU1QpLgorLS0gTmF2IE1hcmsgTG9va2JhY2svTG9va2Fo ZWFkIFRlc3RzCistLSBWZXJpZmllcyBwbGFubmVyLWNvbXB1dGVkIG5hdmlnYXRpb24gb2Zmc2V0 cyBmb3IgdHVwbGVzdG9yZSB0cmltLgorLS0gTG9va2JhY2s6IGhvdyBmYXIgYmFjayBmcm9tIGN1 cnJlbnRwb3MgKFBSRVYsIExBU1QsIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QpLgorLS0g TG9va2FoZWFkOiBob3cgZmFyIGZvcndhcmQgZnJvbSBtYXRjaF9zdGFydCAoRklSU1QsIGNvbXBv dW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCkuCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFByZXBhcmUgc3RhdGVtZW50 IGZvciBob3N0IHZhcmlhYmxlIG9mZnNldCB0ZXN0IGJlbG93CiBQUkVQQVJFIHJwcl9uYXZfb2Zm c2V0X3ByZXAoaW50OCkgQVMKQEAgLTQ0NjYsMyArNDU4OCwyOTggQEAgRVhQTEFJTiAoQ09TVFMg T0ZGKSBFWEVDVVRFIHJwcl9uYXZfb2Zmc2V0X3ByZXAoMik7CiAKIFJFU0VUIHBsYW5fY2FjaGVf bW9kZTsKIERFQUxMT0NBVEUgcnByX25hdl9vZmZzZXRfcHJlcDsKKy0tIEZJUlNUKHYpOiByZXRh aW4gYWxsIChyZWZlcmVuY2VzIG1hdGNoX3N0YXJ0IHJvdykKK0VYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHYgPiBGSVJTVCh2 KQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg UGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYgTWFyayBMb29rYWhl YWQ6IDAKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNiByb3dz KQorCistLSBMQVNUKHYsIDEpOiBiYWNrd2FyZCByZWFjaCAxLCBzYW1lIGFzIFBSRVYodiwgMSkK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERF RklORSBBIEFTIExBU1QodiwgMSkgPiAwCispOworICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdp bmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsgTG9va2JhY2s6 IDEKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQor CistLSBMQVNUKHYpIHdpdGhvdXQgb2Zmc2V0ICsgUFJFVih2KTogbm8gbWF0Y2hfc3RhcnQgZGVw ZW5kZW5jeSwgb2Zmc2V0IDEKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIExBU1QodikgPiBQUkVWKHYpCispOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcworKDUgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihGSVJTVCh2YWwsIDEpLCAy KTogbG9va2JhY2sgZnJvbSBtYXRjaF9zdGFydCwgZmlyc3RPZmZzZXQgPSAxLTIgPSAtMQorRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgUFJFVihGSVJTVCh2LCAxKSwgMikgPiAwCispOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKKyAgIE5hdiBNYXJrIExvb2thaGVhZDogLTEKKyAgIC0+ICBGdW5jdGlvbiBTY2Fu IG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNiByb3dzKQorCistLSBDb21wb3VuZCBORVhUKEZJUlNU KHZhbCksIDMpOiBmaXJzdE9mZnNldCA9IDArMyA9IDMKK0VYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1Qodiks IDMpID4gMAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRv dzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYgTWFyayBM b29rYWhlYWQ6IDMKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCiso NiByb3dzKQorCistLSBDb21wb3VuZCBQUkVWKExBU1QodmFsKSwgMik6IGxvb2tiYWNrID0gMCsy ID0gMgorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgUFJFVihMQVNUKHYpLCAyKSA+IDAKKyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1h cmsgTG9va2JhY2s6IDIKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz CisoNSByb3dzKQorCistLSBDb21wb3VuZCBORVhUKExBU1QodmFsLCAxKSwgMyk6IGxvb2tiYWNr ID0gbWF4KDEtMywgMCkgPSAwCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKExBU1QodiwgMSksIDMpID4gMAorKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVy bjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwg TiksIE0pOiBjb25zdGFudCBuZWFyLW92ZXJmbG93IChOK00ganVzdCBmaXRzIGludDY0KQorRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgUFJFVihMQVNUKHYsIDQ2MTE2ODYwMTg0MjczODc5MDMpLCA0NjExNjg2MDE4NDI3Mzg3 OTAzKSBJUyBOT1QgTlVMTAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cK KyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiA5MjIzMzcy MDM2ODU0Nzc1ODA2CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcwor KDUgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgTiksIE0pOiBjb25zdGFudCBv dmVyZmxvdyAtPiByZXRhaW4gYWxsCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgNDYxMTY4NjAxODQy NzM4NzkwNCksIDQ2MTE2ODYwMTg0MjczODc5MDQpIElTIE5PVCBOVUxMCispOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKworICAg TmF2IE1hcmsgTG9va2JhY2s6IHJldGFpbiBhbGwKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCistLSBDb21wb3VuZCBORVhUKEZJUlNUKHZhbCwg TiksIE0pOiBjb25zdGFudCBsb29rYWhlYWQgb3ZlcmZsb3cgLT4gbm8gdHJpbSBpbXBhY3QKKy0t IE4gKyBNIG92ZXJmbG93cyBpbnQ2NCwgYnV0IHRhcmdldCBpcyBmb3J3YXJkIGZyb20gbWF0Y2hf c3RhcnQgc28gaXQgbmV2ZXIKKy0tIGNvbnN0cmFpbnMgdHJpbS4gIExvb2thaGVhZCByZW1haW5z IGF0IGRlZmF1bHQgKDApLgorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChGSVJTVCh2LCA0NjExNjg2MDE4NDI3Mzg3 OTA0KSwgNDYxMTY4NjAxODQyNzM4NzkwNCkgSVMgTk9UIE5VTEwKKyk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErCisgICBOYXYg TWFyayBMb29rYmFjazogMAorICAgTmF2IE1hcmsgTG9va2FoZWFkOiAwCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDYgcm93cykKKworLS0gQ29tcG91bmQgUFJF VihMQVNUKHZhbCwgJDEpLCAkMik6IHBhcmFtZXRlciBsb29rYmFjayBvdmVyZmxvdyAtPiByZXRh aW4gYWxsCistLSBFWFBMQUlOIHNob3dzICJydW50aW1lIiAocGxhbi1sZXZlbCk7IEVYUExBSU4g QU5BTFlaRSBzaG93cyAicmV0YWluIGFsbCIKKy0tIChleGVjdXRvci1yZXNvbHZlZCkuCitQUkVQ QVJFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2soaW50OCwgaW50OCkgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgJDEpLCAkMikgSVMg Tk9UIE5VTEwKKyk7CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2soNDYxMTY4 NjAxODQyNzM4NzkwNCwgNDYxMTY4NjAxODQyNzM4NzkwNCk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErCisgICBOYXYgTWFyayBM b29rYmFjazogcnVudGltZQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMKKyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgQU5BTFlaRSwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCisgICAgRVhFQ1VURSB0ZXN0X292ZXJmbG93X2xvb2tiYWNrKDQ2MTE2ODYw MTg0MjczODc5MDQsIDQ2MTE2ODYwMTg0MjczODc5MDQpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRv dzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiByZXRhaW4gYWxsCisgICBT dG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogMTdrQgorICAgTkZBIFN0YXRlczogMSBw ZWFrLCAxMSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAxMSB0b3Rh bCwgMTAgcHJ1bmVkCisgICBORkE6IDAgbWF0Y2hlZCwgMCBtaXNtYXRjaGVkCisgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAuMDAgbG9vcHM9 MSkKKyg5IHJvd3MpCisKK1JFU0VUIHBsYW5fY2FjaGVfbW9kZTsKK0RFQUxMT0NBVEUgdGVzdF9v dmVyZmxvd19sb29rYmFjazsKKy0tIENvbXBvdW5kIE5FWFQoRklSU1QodmFsLCAkMSksICQyKTog cGFyYW1ldGVyIGxvb2thaGVhZCBvdmVyZmxvdyAtPiBubyB0cmltIGltcGFjdAorUFJFUEFSRSB0 ZXN0X292ZXJmbG93X2xvb2thaGVhZChpbnQ4LCBpbnQ4KSBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1QodiwgJDEpLCAkMikgSVMgTk9U IE5VTEwKKyk7CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworRVhQ TEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKKyAgICBF WEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2FoZWFkKDQ2MTE2ODYwMTg0MjczODc5MDQsIDQ2MTE2 ODYwMTg0MjczODc5MDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0Fn ZyAoYWN0dWFsIHJvd3M9MTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYgTWFyayBMb29rYWhlYWQ6IDAKKyAgIFN0 b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiAxN2tCCisgICBORkEgU3RhdGVzOiAxIHBl YWssIDExIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDExIHRvdGFs LCAxMCBwcnVuZWQKKyAgIE5GQTogMCBtYXRjaGVkLCAwIG1pc21hdGNoZWQKKyAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMC4wMCBsb29wcz0x KQorKDEwIHJvd3MpCisKK1JFU0VUIHBsYW5fY2FjaGVfbW9kZTsKK0RFQUxMT0NBVEUgdGVzdF9v dmVyZmxvd19sb29rYWhlYWQ7CistLSBQUkVWKHYpICsgUFJFVih2LCAkMSk6IE5FRURTX0VWQUwg cGF0aCBtdXN0IGFjY291bnQgZm9yIGltcGxpY2l0IGxvb2tiYWNrPTEKKy0tIFByZXZpb3VzbHks IGV2YWxfbmF2X21heF9vZmZzZXRfd2Fsa2VyIHNraXBwZWQgUFJFVih2KSB3aGVuIG9mZnNldF9h cmcgd2FzCistLSBOVUxMLCBjYXVzaW5nIG1heE9mZnNldD0wIHdoZW4gJDE9MCwgd2hpY2ggd291 bGQgdHJpbSB0aGUgcm93IG5lZWRlZCBieQorLS0gUFJFVih2KS4gIFZlcmlmeSB0aGlzIGV4ZWN1 dGVzIHdpdGhvdXQgImNhbm5vdCBmZXRjaCByb3cgYmVmb3JlIG1hcmsiIGVycm9yLgorUFJFUEFS RSB0ZXN0X3ByZXZfaW1wbGljaXRfb2Zmc2V0KGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2KSBJUyBOT1QgTlVMTCBBTkQgUFJFVih2 LCAkMSkgSVMgTk9UIE5VTEwKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9pbXBsaWNpdF9vZmZzZXQo MCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKyAgICAgOQorICAgICAwCisgICAgIDAKKyAg ICAgMAorICAgICAwCisgICAgIDAKKyAgICAgMAorICAgICAwCisgICAgIDAKKygxMCByb3dzKQor CitERUFMTE9DQVRFIHRlc3RfcHJldl9pbXBsaWNpdF9vZmZzZXQ7CistLSBSdW50aW1lIGVycm9y OiBuZWdhdGl2ZSBvZmZzZXQgYXQgZXhlY3V0aW9uIHRpbWUKK1BSRVBBUkUgdGVzdF9ydW50aW1l X25lZ19vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBQUkVWKHYsICQxKSBJUyBOT1QgTlVMTAorKTsKK0VYRUNVVEUgdGVzdF9ydW50 aW1lX25lZ19vZmZzZXQoLTEpOworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNl dCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQorREVBTExPQ0FURSB0ZXN0X3J1bnRpbWVfbmVnX29mZnNl dDsKKy0tIFJ1bnRpbWUgZXJyb3I6IG51bGwgb2Zmc2V0IGF0IGV4ZWN1dGlvbiB0aW1lCitQUkVQ QVJFIHRlc3RfcnVudGltZV9udWxsX29mZnNldChpbnQ4KSBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodiwgJDEpIElTIE5PVCBOVUxMCispOwor RVhFQ1VURSB0ZXN0X3J1bnRpbWVfbnVsbF9vZmZzZXQoTlVMTCk7CitFUlJPUjogIHJvdyBwYXR0 ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKK0RFQUxMT0NBVEUgdGVzdF9y dW50aW1lX251bGxfb2Zmc2V0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKaW5kZXggNDdmMzM5MDQ2OTAuLmEw NWI0MjljZTc0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKQEAgLTc3Niw2ICs3NzYsMzYzIEBAIFdJTkRP VyB3IEFTICgKICAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmlj ZSA8IE5FWFQocHJpY2UsIDEpCiApOwogCistLQorLS0gRklSU1QvTEFTVCBuYXZpZ2F0aW9uCist LQorCistLSBUZXN0IGRhdGEgZm9yIEZJUlNUL0xBU1Q6IHZhbHVlcyBjeWNsZSBiYWNrIHNvIEZJ UlNUKHZhbCkgPSBMQVNUKHZhbCkKKy0tIGF0IHNwZWNpZmljIHBvc2l0aW9ucy4KK0NSRUFURSBU RU1QIFRBQkxFIHJwcl9uYXYgKGlkIGludCwgdmFsIGludCk7CitJTlNFUlQgSU5UTyBycHJfbmF2 IFZBTFVFUyAoMSwxMCksKDIsMjApLCgzLDMwKSwoNCwxMCksKDUsNTApLCg2LDEwKTsKKworLS0g RklSU1QodmFsKSA9IGNvbnN0YW50OiBCIG1hdGNoZXMgd2hlbiBtYXRjaF9zdGFydCBoYXMgdmFs PTEwCistLSBtYXRjaF9zdGFydD0xKDEwKTogQT1pZDEsIEI9aWQyLCBGSVJTVCh2YWwpPTEwIOKG kiBtYXRjaCB7MSwyfQorLS0gbWF0Y2hfc3RhcnQ9MygzMCk6IEE9aWQzLCBCPWlkNCwgRklSU1Qo dmFsKT0zMOKJoDEwIOKGkiBubyBtYXRjaAorLS0gbWF0Y2hfc3RhcnQ9NCgxMCk6IEE9aWQ0LCBC PWlkNSwgRklSU1QodmFsKT0xMCDihpIgbWF0Y2ggezQsNX0KK1NFTEVDVCBpZCwgdmFsLCBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKK0ZS T00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgVFJV RSwgQiBBUyBGSVJTVCh2YWwpID0gMTAKKyk7CisKKy0tIExBU1QodmFsKTogYWx3YXlzIGVxdWFs cyBjdXJyZW50IHJvdydzIHZhbCAob2Zmc2V0IDAgZGVmYXVsdCkKKy0tIEVxdWl2YWxlbnQgdG86 IEIgQVMgdmFsID4gMTUKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKK0ZST00gcnByX25hdiBXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKHZhbCkgPiAx NQorKTsKKworLS0gUmVsdWN0YW50IEErPyB3aXRoIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCk6IGZp bmQgc2hvcnRlc3QgbWF0Y2ggd2hlcmUKKy0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2ZSB0aGUg c2FtZSB2YWwuCistLSBtYXRjaF9zdGFydD0xKDEwKTogcmVsdWN0YW50IHRyaWVzIEIgZWFybHk6 CistLSAgIGlkMigyMOKJoDEwKSwgaWQzKDMw4omgMTApLCBpZDQoMTA9MTApIOKGkiBtYXRjaCB7 MSwyLDMsNH0KKy0tIG1hdGNoX3N0YXJ0PTUoNTApOiBpZDYoMTDiiaA1MCkg4oaSIG5vIG1hdGNo CitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSs/ IEIpCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwpID0gTEFTVCh2YWwpCisp OworCistLSBHcmVlZHkgQSsgd2l0aCBGSVJTVCh2YWwpID0gTEFTVCh2YWwpOiBmaW5kIGxvbmdl c3QgbWF0Y2ggd2hlcmUKKy0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2ZSB0aGUgc2FtZSB2YWwu CistLSBtYXRjaF9zdGFydD0xKDEwKTogZ3JlZWR5IEEgZWF0cyBhbGwsIEIgdHJpZXMgbGFzdDoK Ky0tICAgaWQ2KDEwPTEwKSDihpIgbWF0Y2ggezEsMiwzLDQsNSw2fQorU0VMRUNUIGlkLCB2YWws IGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt bAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEg QVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwpID0gTEFTVCh2YWwpCispOworCistLSBTS0lQIFRPIE5F WFQgUk9XIHdpdGggRklSU1QodmFsKSA9IExBU1QodmFsKTogb3ZlcmxhcHBpbmcgbWF0Y2ggYXR0 ZW1wdHMuCistLSBXaXRoIE9ORSBST1cgUEVSIE1BVENILCBlYWNoIHJvdyBzaG93cyBvbmx5IGl0 cyBmaXJzdCBtYXRjaCByZXN1bHQuCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9uYXYgV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1Qo dmFsKSA9IExBU1QodmFsKQorKTsKKworLS0gRklSU1QvTEFTVCAyLWFyZyBvZmZzZXQgZm9ybQor LS0KKy0tIEZJUlNUKHZhbCwgMCkgPSBGSVJTVCh2YWwpOiBtYXRjaF9zdGFydCByb3cKK1NFTEVD VCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcg QVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZhbCwgMCkgPSAxMAorKTsKKworLS0gRklSU1QodmFs LCAxKTogbWF0Y2hfc3RhcnQgKyAxIHJvdyAoc2Vjb25kIHJvdyBvZiBtYXRjaCkKKy0tIG1hdGNo X3N0YXJ0PTEoMTApOiBGSVJTVCh2YWwsMSk9MjAsIEIgbmVlZHMgdmFsPTIwIOKGkiBpZDIoMjAp IG1hdGNoLCBpZDMoMzApIG5vCistLSBtYXRjaF9zdGFydD0zKDMwKTogRklSU1QodmFsLDEpPTEw LCBCIG5lZWRzIHZhbD0xMCDihpIgaWQ0KDEwKSBtYXRjaAorU0VMRUNUIGlkLCB2YWwsIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnBy X25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIg QVMgdmFsID0gRklSU1QodmFsLCAxKQorKTsKKworLS0gRklSU1QodmFsLCA5OSk6IG9mZnNldCBi ZXlvbmQgbWF0Y2ggcmFuZ2Ug4oaSIE5VTEwsIG5vIG1hdGNoCitTRUxFQ1QgaWQsIHZhbCwgY291 bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEg QispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwsIDk5KSBJUyBOT1QgTlVM TAorKTsKKworLS0gTEFTVCh2YWwsIDApID0gTEFTVCh2YWwpOiBjdXJyZW50IHJvdworU0VMRUNU IGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RSBBIEFTIFRSVUUsIEIgQVMgTEFTVCh2YWwsIDApID4gMTUKKyk7CisKKy0tIExBU1QodmFsLCAx KTogb25lIHJvdyBiYWNrIGZyb20gY3VycmVudCAocHJldmlvdXMgbWF0Y2ggcm93KQorLS0gQXQg QiBldmFsdWF0aW9uIG9uIGlkMjogTEFTVCh2YWwsMSkgPSB2YWwgYXQgaWQxID0gMTAKKy0tIEIg bWF0Y2hlcyB3aGVuIHByZXZpb3VzIHJvdyB2YWwgPCAzMAorU0VMRUNUIGlkLCB2YWwsIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnBy X25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIg QVMgTEFTVCh2YWwsIDEpIDwgMzAKKyk7CisKKy0tIExBU1QodmFsLCA5OSk6IG9mZnNldCBiZWZv cmUgbWF0Y2hfc3RhcnQg4oaSIE5VTEwKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcg QVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUgQSBBUyBUUlVFLCBCIEFTIExBU1QodmFsLCA5OSkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIEVy cm9yOiBOVUxMIG9mZnNldAorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJw cl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgRklSU1QodmFsLCBOVUxMOjppbnQ4KSBJUyBOVUxMCispOworCistLSBFcnJv cjogbmVnYXRpdmUgb2Zmc2V0CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00g cnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyBMQVNUKHZhbCwgLTEpIElTIE5VTEwKKyk7CisKKy0tIEZJUlNUL0xBU1Qg b3V0c2lkZSBERUZJTkUgY2xhdXNlIChlcnJvciBjYXNlcykKK1NFTEVDVCBmaXJzdCh2YWwpIEZS T00gcnByX25hdjsKK1NFTEVDVCBsYXN0KHZhbCkgRlJPTSBycHJfbmF2OworU0VMRUNUIGZpcnN0 KHZhbCwgMSkgRlJPTSBycHJfbmF2OworCistLSBGdW5jdGlvbmFsIG5vdGF0aW9uOiBzaG91bGQg YWNjZXNzIGNvbHVtbiwgbm90IFJQUiBuYXZpZ2F0aW9uCitDUkVBVEUgVEVNUCBUQUJMRSBycHJf bmFtZXMgKHByZXYgaW50LCBuZXh0IGludCwgZmlyc3QgdGV4dCwgbGFzdCB0ZXh0KTsKK0lOU0VS VCBJTlRPIHJwcl9uYW1lcyBWQUxVRVMgKDEsIDIsICdKb2UnLCAnQmxvdycpOworU0VMRUNUIHBy ZXYoZiksIG5leHQoZiksIGZpcnN0KGYpLCBsYXN0KGYpIEZST00gcnByX25hbWVzIGY7CitEUk9Q IFRBQkxFIHJwcl9uYW1lczsKKworLS0gQ29tcG91bmQgbmF2aWdhdGlvbjogUFJFVihGSVJTVCh2 YWwpLCBNKQorLS0gcnByX25hdjogKDEsMTApLCgyLDIwKSwoMywzMCksKDQsMTApLCg1LDUwKSwo NiwxMCkKKy0tIFBSRVYoRklSU1QodmFsKSwgMSk6IHRhcmdldCA9IG1hdGNoX3N0YXJ0ICsgMCAt IDEgPSBtYXRjaF9zdGFydCAtIDEKKy0tIEF0IG1hdGNoX3N0YXJ0PTE6IHRhcmdldD0wIOKGkiBv dXQgb2YgcmFuZ2Ug4oaSIE5VTEwKKy0tIEF0IG1hdGNoX3N0YXJ0PTM6IHRhcmdldD0yKHZhbD0y MCkg4oaSIDIwID4gMCDihpIgdHJ1ZQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJT VCh2YWwpLCAxKSA+IDAKKyk7CisKKy0tIE5FWFQoRklSU1QodmFsLCAxKSwgMSk6IHRhcmdldCA9 IG1hdGNoX3N0YXJ0ICsgMSArIDEgPSBtYXRjaF9zdGFydCArIDIKKy0tIEF0IG1hdGNoX3N0YXJ0 PTEsIEIgb24gaWQyOiB0YXJnZXQ9MSsxKzE9Myh2YWw9MzApLCAzMD4wIOKGkiB0cnVlCitTRUxF Q1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCwgMSksIDEpID4gMAorKTsKKworLS0g UFJFVihMQVNUKHZhbCksIDIpOiB0YXJnZXQgPSBjdXJyZW50cG9zIC0gMCAtIDIgPSBjdXJyZW50 cG9zIC0gMgorLS0gU2FtZSBiYWNrd2FyZCByZWFjaCBhcyBQUkVWKHZhbCwgMikKK1NFTEVDVCBp ZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMg Y250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUg QSBBUyBUUlVFLCBCIEFTIFBSRVYoTEFTVCh2YWwpLCAyKSBJUyBOT1QgTlVMTAorKTsKKworLS0g TkVYVChMQVNUKHZhbCwgMSksIDIpOiB0YXJnZXQgPSBjdXJyZW50cG9zIC0gMSArIDIgPSBjdXJy ZW50cG9zICsgMQorLS0gTG9va3MgMSByb3cgYWhlYWQ6IHNhbWUgYXMgTkVYVCh2YWwsIDEpCitT RUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAg REVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKExBU1QodmFsLCAxKSwgMikgSVMgTk9UIE5VTEwK Kyk7CisKKy0tIENvbXBvdW5kOiBvdXRlciBvZmZzZXQgYmV5b25kIHBhcnRpdGlvbiAoUFJFViBm YXIgYmFjaykKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJw cl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAg ICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsKSwgOTkpIElTIE5PVCBOVUxM CispOworCistLSBDb21wb3VuZDogb3V0ZXIgb2Zmc2V0IGJleW9uZCBwYXJ0aXRpb24gKE5FWFQg ZmFyIGZvcndhcmQpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJP TSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQisp CisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCksIDk5KSBJUyBOT1Qg TlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNldCBiZXlvbmQgbWF0Y2ggcmFuZ2Ug KEZJUlNUIG9mZnNldCB0b28gbGFyZ2UpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCwg OTkpLCAxKSBJUyBOT1QgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNldCBiZXlv bmQgbWF0Y2ggcmFuZ2UgKExBU1Qgb2Zmc2V0IHRvbyBsYXJnZSkKK1NFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5F WFQoTEFTVCh2YWwsIDk5KSwgMSkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIENvbXBvdW5kOiBOVUxM IG91dGVyIG9mZnNldCAocnVudGltZSBlcnJvcikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYoRklSU1QodmFsKSwgTlVMTDo6aW50OCkgSVMg TlVMTAorKTsKKworLS0gQ29tcG91bmQ6IG5lZ2F0aXZlIG91dGVyIG9mZnNldCAocnVudGltZSBl cnJvcikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfbmF2IFdJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFT IE5FWFQoTEFTVCh2YWwpLCAtMSkgSVMgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGRlZmF1bHQg b2Zmc2V0cyBvbiBib3RoIHNpZGVzCistLSBQUkVWKEZJUlNUKHZhbCkpOiBpbm5lcj0wIChtYXRj aF9zdGFydCksIG91dGVyPTEg4oaSIHRhcmdldCA9IG1hdGNoX3N0YXJ0IC0gMQorU0VMRUNUIGlk LCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBB IEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwpKSBJUyBOT1QgTlVMTAorKTsKKworLS0gTkVY VChMQVNUKHZhbCkpOiBpbm5lcj0wIChjdXJyZW50cG9zKSwgb3V0ZXI9MSDihpIgdGFyZ2V0ID0g Y3VycmVudHBvcyArIDEKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwpKSBJ UyBOT1QgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGlubmVyIE5VTEwgb2Zmc2V0IChydW50aW1l IGVycm9yKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEg QVMgUFJFVihGSVJTVCh2YWwsIE5VTEw6OmludDgpLCAxKSBJUyBOVUxMCispOworCistLSBDb21w b3VuZDogaW5uZXIgbmVnYXRpdmUgb2Zmc2V0IChydW50aW1lIGVycm9yKQorU0VMRUNUIGlkLCB2 YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChMQVNUKHZhbCwgLTEp LCAxKSBJUyBOVUxMCispOworCistLSBDb21wb3VuZCArIGhvc3QgdmFyaWFibGUgb2Zmc2V0cwor UFJFUEFSRSB0ZXN0X2NvbXBvdW5kX29mZnNldChpbnQ4LCBpbnQ4KSBBUworU0VMRUNUIGlkLCB2 YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQK K0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwsICQxKSwgJDIpIElTIE5PVCBOVUxMCispOworRVhF Q1VURSB0ZXN0X2NvbXBvdW5kX29mZnNldCgwLCAxKTsKK0VYRUNVVEUgdGVzdF9jb21wb3VuZF9v ZmZzZXQoMSwgMSk7CitERUFMTE9DQVRFIHRlc3RfY29tcG91bmRfb2Zmc2V0OworCistLSBDb21w b3VuZCArIFNLSVAgVE8gTkVYVCBST1c6IG92ZXJsYXBwaW5nIG1hdGNoZXMgd2l0aCBQUkVWKEZJ UlNUKCkpCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291 bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEIr KQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwpLCAxKSA+IDAKKyk7 CisKKy0tIENvbXBvdW5kICsgbXVsdGlwbGUgcGFydGl0aW9ucworQ1JFQVRFIFRFTVAgVEFCTEUg cnByX25hdl9wYXJ0IChnaWQgaW50LCBpZCBpbnQsIHZhbCBpbnQpOworSU5TRVJUIElOVE8gcnBy X25hdl9wYXJ0IFZBTFVFUworICAgICgxLDEsMTApLCgxLDIsMjApLCgxLDMsMzApLAorICAgICgy LDEsNDApLCgyLDIsNTApLCgyLDMsNjApOworU0VMRUNUIGdpZCwgaWQsIHZhbCwgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2 X3BhcnQgV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBnaWQgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERF RklORSBBIEFTIFRSVUUsIEIgQVMgTkVYVChGSVJTVCh2YWwpLCAxKSA+IDAKKyk7CitEUk9QIFRB QkxFIHJwcl9uYXZfcGFydDsKKworLS0gUmV2ZXJzZSBuZXN0aW5nOiBGSVJTVCB3cmFwcGluZyBQ UkVWIGlzIHByb2hpYml0ZWQKK1NFTEVDVCBpZCwgdmFsIEZST00gcnByX25hdiBXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgVFJV RSwgQiBBUyBGSVJTVChQUkVWKHZhbCkpID4gMAorKTsKKworLS0gUmV2ZXJzZSBuZXN0aW5nOiBM QVNUIHdyYXBwaW5nIE5FWFQgaXMgcHJvaGliaXRlZAorU0VMRUNUIGlkLCB2YWwgRlJPTSBycHJf bmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQikKKyAgICBE RUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QoTkVYVCh2YWwpKSA+IDAKKyk7CisKK0RST1AgVEFC TEUgcnByX25hdjsKKwogLS0KIC0tIFNLSVAgVE8gLyBCYWNrdHJhY2tpbmcgLyBGcmFtZSBib3Vu ZGFyeQogLS0KQEAgLTExMjksNiArMTQ4NiwyMyBAQCBGUk9NIHJlc3VsdCBXSEVSRSBtYXRjaF9s ZW4gPiAwOwogUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CiBSRVNFVCBqaXQ7CiAKKy0tIEpJVCBjb21w b3VuZCBuYXZpZ2F0aW9uIHRlc3QKK1NFVCBqaXQgPSBvbjsKK1NFVCBqaXRfYWJvdmVfY29zdCA9 IDA7CitTRUxFQ1QgY291bnQoKikgQVMgbWF0Y2hlZF9yb3dzCitGUk9NICgKKyBTRUxFQ1Qgdiwg Y291bnQoKikgT1ZFUiB3IEFTIG1hdGNoX2xlbgorIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEw MDApIEFTIHQodikKKyBXSU5ET1cgdyBBUyAoCisgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgUEFUVEVSTiAoQSBCKykKKyAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHYp LCAxKSA+IDAKKyApCispIHN1YiBXSEVSRSBtYXRjaF9sZW4gPiAwOworUkVTRVQgaml0X2Fib3Zl X2Nvc3Q7CitSRVNFVCBqaXQ7CisKIC0tCiAtLSBJR05PUkUgTlVMTFMKIC0tCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfYmFzZS5zcWwKaW5kZXggM2FjY2VjYjczYmEuLmY5ZDVhYTg5ZDdhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0xMjAyLDcgKzEyMDIsNyBAQCBXSU5ET1cgdyBBUyAoCiBE Uk9QIFRBQkxFIHJwcl9ib3VuZHM7CiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTmF2aWdhdGlvbiBGdW5jdGlvbnMg VGVzdHMgKFBSRVYgLyBORVhUKQorLS0gTmF2aWdhdGlvbiBGdW5jdGlvbnMgVGVzdHMgKFBSRVYg LyBORVhUIC8gRklSU1QgLyBMQVNUKQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIApAQCAtMTI3OCw2ICsxMjc4LDUzIEBA IFdJTkRPVyB3IEFTICgKIE9SREVSIEJZIGlkOwogLS0gRXhwZWN0ZWQ6IEVSUk9SOiBuZXh0IGNh biBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCiAKKy0tIEZJUlNUIGZ1bmN0aW9uIC0g cmVmZXJlbmNlIG1hdGNoX3N0YXJ0IHJvdworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIg dyBhcyBjbnQKK0ZST00gcnByX25hdgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAorICAgICAg ICBCIEFTIHZhbCA+IEZJUlNUKHZhbCkKKykKK09SREVSIEJZIGlkOworCistLSBMQVNUIGZ1bmN0 aW9uIHdpdGhvdXQgb2Zmc2V0IC0gZXF1aXZhbGVudCB0byBjdXJyZW50IHJvdydzIHZhbHVlCitT RUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQor ICAgICAgICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgTEFTVCh2YWwpID4gUFJFVih2YWwp CispCitPUkRFUiBCWSBpZDsKKworLS0gRklSU1QgYW5kIExBU1QgY29tYmluZWQKK1NFTEVDVCBp ZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgdmFsID4gMCwKKyAgICAgICAgQiBBUyB2YWwgPiBGSVJTVCh2YWwpIEFORCBMQVNUKHZh bCkgPiBQUkVWKHZhbCkKKykKK09SREVSIEJZIGlkOworCistLSBGSVJTVCBmdW5jdGlvbiBjYW5u b3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklORQorU0VMRUNUIEZJUlNUKGlkKSwgaWQsIHZh bCBGUk9NIHJwcl9uYXY7CistLSBFeHBlY3RlZDogRVJST1I6IGZpcnN0IGNhbiBvbmx5IGJlIHVz ZWQgaW4gYSBERUZJTkUgY2xhdXNlCisKKy0tIExBU1QgZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQg b3RoZXIgdGhhbiBpbiBERUZJTkUKK1NFTEVDVCBMQVNUKGlkKSwgaWQsIHZhbCBGUk9NIHJwcl9u YXY7CistLSBFeHBlY3RlZDogRVJST1I6IGxhc3QgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklO RSBjbGF1c2UKKwogRFJPUCBUQUJMRSBycHJfbmF2OwogCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE1NDgsNiArMTU5 NSw2NiBAQCBXSU5ET1cgdyBBUyAoCiBTRUxFQ1QgKiBGUk9NIHJwcl9zZXJpYWxfdjggT1JERVIg QlkgaWQ7CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfdjgnOjpyZWdjbGFzcyk7 CiAKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogUFJFViB3aXRoIG9mZnNl dAorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXYxIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQo KikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAg ICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMg VFJVRSwgQiBBUyB2YWwgPiBQUkVWKHZhbCwgMikpOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdy cHJfc2VyaWFsX25hdjEnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2Vy aWFsaXphdGlvbjogRklSU1QgYW5kIExBU1QKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfbmF2MiBB UworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfc2VyaWFsCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBIEIrKQor ICAgICAgICAgICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1QodmFsKSA8IExBU1QodmFs LCAxKSk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Mic6OnJlZ2NsYXNz KTsKKworLS0gTmF2aWdhdGlvbiBmdW5jdGlvbiBzZXJpYWxpemF0aW9uOiBjb21wb3VuZCBQUkVW KEZJUlNUKCkpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjMgQVMKK1NFTEVDVCBpZCwgdmFs LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJ TkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsLCAxKSwgMikgPiAwKTsKK1NFTEVDVCBw Z19nZXRfdmlld2RlZigncnByX3NlcmlhbF9uYXYzJzo6cmVnY2xhc3MpOworCistLSBOYXZpZ2F0 aW9uIGZ1bmN0aW9uIHNlcmlhbGl6YXRpb246IGNvbXBvdW5kIE5FWFQoTEFTVCgpKQorQ1JFQVRF IFZJRVcgcnByX3NlcmlhbF9uYXY0IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBB UyBORVhUKExBU1QodmFsKSwgMikgSVMgTk9UIE5VTEwpOworU0VMRUNUIHBnX2dldF92aWV3ZGVm KCdycHJfc2VyaWFsX25hdjQnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24g c2VyaWFsaXphdGlvbjogY29tcG91bmQgUFJFVihMQVNUKCkpCitDUkVBVEUgVklFVyBycHJfc2Vy aWFsX25hdjUgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3Nl cmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVS TiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoTEFTVCh2 YWwsIDEpLCAyKSA+IDApOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX25hdjUn OjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29t cG91bmQgTkVYVChGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXY2IEFTCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAg ICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCksIDMpID4gMCk7CitT RUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Nic6OnJlZ2NsYXNzKTsKKwogLS0g UmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBkZXBhcnNlIHRocm91Z2ggcnVsZXV0aWxzCiBDUkVB VEUgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3YgQVMKIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgq KSBPVkVSIHcKQEAgLTIxMjEsNiArMjIyOCwzMyBAQCBPUkRFUiBCWSBpZDsKIAogRFJPUCBUQUJM RSBycHJfbnVsbDsKIAorLS0gQ29tcG91bmQgbmF2aWdhdGlvbjogaW5uZXIgbmF2IG11c3QgYmUg ZGlyZWN0IGFyZyAobm90IG5lc3RlZCBpbiBleHByZXNzaW9uKQorU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodiArIEZJUlNUKHYpKSA+IDAKKyk7CisK Ky0tIEZJUlNUL0xBU1Qgd3JhcHBpbmcgRklSU1QvTEFTVDogcHJvaGliaXRlZAorU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIEZJUlNUKEZJUlNUKHYpKSA+IDAK Kyk7CisKKy0tIFRyaXBsZSBuZXN0aW5nOiBwcm9oaWJpdGVkICgzLWxldmVsIGRlZXAgbmF2aWdh dGlvbikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAp IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVW KEZJUlNUKFBSRVYodikpKSA+IDAKKyk7CisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gV2luZG93IERlZHVwbGljYXRp b24gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4 cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCmluZGV4IDUw ODJjYzJiNWRlLi5hMzc4OWU5MjYzMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnByX2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNx bApAQCAtMzYsNyArMzYsNyBAQAogLS0gICBXaW5kb3cgRnVuY3Rpb24gQ29tYmluYXRpb25zCiAt LSAgIERFRklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tICAgTGFyZ2UgU2NhbGUgU3RhdGlz dGljcyBWZXJpZmljYXRpb24KLS0tICAgTmF2IE1hcmsgTG9va2JhY2sgKHR1cGxlc3RvcmUgdHJp bSkKKy0tICAgTmF2IE1hcmsgTG9va2JhY2svTG9va2FoZWFkICh0dXBsZXN0b3JlIHRyaW0pCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIAogLS0gRmlsdGVyIGZ1bmN0aW9uIHRvIG5vcm1hbGl6ZSBwbGF0Zm9ybS1kZXBlbmRl bnQgbWVtb3J5IHZhbHVlcyAobm90IE5GQSBzdGF0aXN0aWNzKS4KQEAgLTcwNSw2ICs3MDUsNzYg QEAgV0lORE9XIHcgQVMgKAogICAgICAgICAgICBDIEFTIHYgJSAyMSBJTiAoMywgNSwgOCwgMTAs IDEzLCAxNSwgMTgsIDIwKQogKTsnKTsKIAorLS0gTm8gYWJzb3JwdGlvbiB3aGVuIERFRklORSB1 c2VzIEZJUlNUIChtYXRjaF9zdGFydC1kZXBlbmRlbnQpCistLSBTYW1lIHBhdHRlcm4gYXMgcnBy X2V2X2N0eF9hYnNvcmJfdW5ib3VuZGVkIGJ1dCB3aXRoIEZJUlNUIGluIERFRklORS4KKy0tIENv bXBhcmU6IGFic29yYmVkIGNvdW50IHNob3VsZCBiZSAwIGhlcmUgdnMgPjAgYWJvdmUuCitDUkVB VEUgVklFVyBycHJfZXZfY3R4X25vX2Fic29yYl9maXJzdCBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAg IERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwIEFORCB2ID4gRklSU1QodikK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9jdHhfbm9fYWJzb3JiX2ZpcnN0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0g MCBBTkQgdiA+IEZJUlNUKHYpCispOycpOworCistLSBBYnNvcnB0aW9uIHByZXNlcnZlZCB3aGVu IERFRklORSB1c2VzIG9ubHkgTEFTVCB3aXRob3V0IG9mZnNldAorLS0gTEFTVCh2KSBpcyBtYXRj aF9zdGFydC1pbmRlcGVuZGVudCAoYWx3YXlzIGN1cnJlbnRwb3MpLCBzbyBhYnNvcnB0aW9uCist LSByZW1haW5zIGFjdGl2ZS4gIENvbXBhcmU6IGFic29yYmVkIGNvdW50IHNob3VsZCBiZSA+MCwg bGlrZSB0aGUKKy0tIFBSRVYtb25seSBjYXNlIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0 eF9hYnNvcmJfbGFzdCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+ IDAsIEIgQVMgTEFTVCh2KSAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9sYXN0JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUg NSA8PiAwLCBCIEFTIExBU1QodikgJSA1ID0gMAorKTsnKTsKKworLS0gTm8gYWJzb3JwdGlvbiB3 aXRoIGNvbXBvdW5kIFBSRVYoRklSU1QoKSkgKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCkKK0NSRUFU RSBWSUVXIHJwcl9ldl9jdHhfbm9fYWJzb3JiX2NvbXBvdW5kIEFTCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisg ICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIFBSRVYoRklSU1Qo diksIDEpIElTIE5PVCBOVUxMCispOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYg JSA1ID0gMCBBTkQgUFJFVihGSVJTVCh2KSwgMSkgSVMgTk9UIE5VTEwKKyk7Jyk7CisKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0gTWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjQ3OCw5ICsy NTQ4LDEwIEBAIFNFTEVDVCAqIEZST00gKAogKSB0IFdIRVJFIGNudCA+IDA7CiAKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gTmF2IE1hcmsgTG9va2JhY2sgVGVzdHMKLS0tIFZlcmlmaWVzIHBsYW5uZXItY29tcHV0ZWQg bmF2aWdhdGlvbiBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbS4KLS0tIExvb2tiYWNrOiBob3cg ZmFyIGJhY2sgZnJvbSBjdXJyZW50cG9zIChQUkVWL0xBU1QpLgorLS0gTmF2IE1hcmsgTG9va2Jh Y2svTG9va2FoZWFkIFRlc3RzCistLSBWZXJpZmllcyBwbGFubmVyLWNvbXB1dGVkIG5hdmlnYXRp b24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltLgorLS0gTG9va2JhY2s6IGhvdyBmYXIgYmFj ayBmcm9tIGN1cnJlbnRwb3MgKFBSRVYsIExBU1QsIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xB U1QpLgorLS0gTG9va2FoZWFkOiBob3cgZmFyIGZvcndhcmQgZnJvbSBtYXRjaF9zdGFydCAoRklS U1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCkuCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gUHJlcGFy ZSBzdGF0ZW1lbnQgZm9yIGhvc3QgdmFyaWFibGUgb2Zmc2V0IHRlc3QgYmVsb3cKQEAgLTI1NDcs MyArMjYxOCwxNjYgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJwcl9uYXZfb2Zmc2V0 X3ByZXAoMik7CiBSRVNFVCBwbGFuX2NhY2hlX21vZGU7CiBERUFMTE9DQVRFIHJwcl9uYXZfb2Zm c2V0X3ByZXA7CiAKKy0tIEZJUlNUKHYpOiByZXRhaW4gYWxsIChyZWZlcmVuY2VzIG1hdGNoX3N0 YXJ0IHJvdykKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIHYgPiBGSVJTVCh2KQorKTsKKworLS0gTEFTVCh2LCAxKTogYmFj a3dhcmQgcmVhY2ggMSwgc2FtZSBhcyBQUkVWKHYsIDEpCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBMQVNUKHYsIDEpID4g MAorKTsKKworLS0gTEFTVCh2KSB3aXRob3V0IG9mZnNldCArIFBSRVYodik6IG5vIG1hdGNoX3N0 YXJ0IGRlcGVuZGVuY3ksIG9mZnNldCAxCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBMQVNUKHYpID4gUFJFVih2KQorKTsK KworLS0gQ29tcG91bmQgUFJFVihGSVJTVCh2YWwsIDEpLCAyKTogbG9va2JhY2sgZnJvbSBtYXRj aF9zdGFydCwgZmlyc3RPZmZzZXQgPSAxLTIgPSAtMQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihGSVJTVCh2LCAx KSwgMikgPiAwCispOworCistLSBDb21wb3VuZCBORVhUKEZJUlNUKHZhbCksIDMpOiBmaXJzdE9m ZnNldCA9IDArMyA9IDMKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1QodiksIDMpID4gMAorKTsKKworLS0g Q29tcG91bmQgUFJFVihMQVNUKHZhbCksIDIpOiBsb29rYmFjayA9IDArMiA9IDIKK0VYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFT IFBSRVYoTEFTVCh2KSwgMikgPiAwCispOworCistLSBDb21wb3VuZCBORVhUKExBU1QodmFsLCAx KSwgMyk6IGxvb2tiYWNrID0gbWF4KDEtMywgMCkgPSAwCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKExBU1Qodiwg MSksIDMpID4gMAorKTsKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgTiksIE0pOiBjb25z dGFudCBuZWFyLW92ZXJmbG93IChOK00ganVzdCBmaXRzIGludDY0KQorRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihM QVNUKHYsIDQ2MTE2ODYwMTg0MjczODc5MDMpLCA0NjExNjg2MDE4NDI3Mzg3OTAzKSBJUyBOT1Qg TlVMTAorKTsKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgTiksIE0pOiBjb25zdGFudCBv dmVyZmxvdyAtPiByZXRhaW4gYWxsCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgNDYxMTY4NjAxODQy NzM4NzkwNCksIDQ2MTE2ODYwMTg0MjczODc5MDQpIElTIE5PVCBOVUxMCispOworCistLSBDb21w b3VuZCBORVhUKEZJUlNUKHZhbCwgTiksIE0pOiBjb25zdGFudCBsb29rYWhlYWQgb3ZlcmZsb3cg LT4gbm8gdHJpbSBpbXBhY3QKKy0tIE4gKyBNIG92ZXJmbG93cyBpbnQ2NCwgYnV0IHRhcmdldCBp cyBmb3J3YXJkIGZyb20gbWF0Y2hfc3RhcnQgc28gaXQgbmV2ZXIKKy0tIGNvbnN0cmFpbnMgdHJp bS4gIExvb2thaGVhZCByZW1haW5zIGF0IGRlZmF1bHQgKDApLgorRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChGSVJT VCh2LCA0NjExNjg2MDE4NDI3Mzg3OTA0KSwgNDYxMTY4NjAxODQyNzM4NzkwNCkgSVMgTk9UIE5V TEwKKyk7CisKKy0tIENvbXBvdW5kIFBSRVYoTEFTVCh2YWwsICQxKSwgJDIpOiBwYXJhbWV0ZXIg bG9va2JhY2sgb3ZlcmZsb3cgLT4gcmV0YWluIGFsbAorLS0gRVhQTEFJTiBzaG93cyAicnVudGlt ZSIgKHBsYW4tbGV2ZWwpOyBFWFBMQUlOIEFOQUxZWkUgc2hvd3MgInJldGFpbiBhbGwiCistLSAo ZXhlY3V0b3ItcmVzb2x2ZWQpLgorUFJFUEFSRSB0ZXN0X292ZXJmbG93X2xvb2tiYWNrKGludDgs IGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg UFJFVihMQVNUKHYsICQxKSwgJDIpIElTIE5PVCBOVUxMCispOworU0VUIHBsYW5fY2FjaGVfbW9k ZSA9IGZvcmNlX2dlbmVyaWNfcGxhbjsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSB0ZXN0 X292ZXJmbG93X2xvb2tiYWNrKDQ2MTE2ODYwMTg0MjczODc5MDQsIDQ2MTE2ODYwMTg0MjczODc5 MDQpOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKKyAgICBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2soNDYxMTY4NjAxODQyNzM4Nzkw NCwgNDYxMTY4NjAxODQyNzM4NzkwNCk7CitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitERUFMTE9D QVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2s7CisKKy0tIENvbXBvdW5kIE5FWFQoRklSU1QodmFs LCAkMSksICQyKTogcGFyYW1ldGVyIGxvb2thaGVhZCBvdmVyZmxvdyAtPiBubyB0cmltIGltcGFj dAorUFJFUEFSRSB0ZXN0X292ZXJmbG93X2xvb2thaGVhZChpbnQ4LCBpbnQ4KSBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1QodiwgJDEp LCAkMikgSVMgTk9UIE5VTEwKKyk7CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJp Y19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKKyAgICBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2FoZWFkKDQ2MTE2ODYwMTg0Mjcz ODc5MDQsIDQ2MTE2ODYwMTg0MjczODc5MDQpOworUkVTRVQgcGxhbl9jYWNoZV9tb2RlOworREVB TExPQ0FURSB0ZXN0X292ZXJmbG93X2xvb2thaGVhZDsKKworLS0gUFJFVih2KSArIFBSRVYodiwg JDEpOiBORUVEU19FVkFMIHBhdGggbXVzdCBhY2NvdW50IGZvciBpbXBsaWNpdCBsb29rYmFjaz0x CistLSBQcmV2aW91c2x5LCBldmFsX25hdl9tYXhfb2Zmc2V0X3dhbGtlciBza2lwcGVkIFBSRVYo dikgd2hlbiBvZmZzZXRfYXJnIHdhcworLS0gTlVMTCwgY2F1c2luZyBtYXhPZmZzZXQ9MCB3aGVu ICQxPTAsIHdoaWNoIHdvdWxkIHRyaW0gdGhlIHJvdyBuZWVkZWQgYnkKKy0tIFBSRVYodikuICBW ZXJpZnkgdGhpcyBleGVjdXRlcyB3aXRob3V0ICJjYW5ub3QgZmV0Y2ggcm93IGJlZm9yZSBtYXJr IiBlcnJvci4KK1BSRVBBUkUgdGVzdF9wcmV2X2ltcGxpY2l0X29mZnNldChpbnQ4KSBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodikgSVMgTk9U IE5VTEwgQU5EIFBSRVYodiwgJDEpIElTIE5PVCBOVUxMCispOworRVhFQ1VURSB0ZXN0X3ByZXZf aW1wbGljaXRfb2Zmc2V0KDApOworREVBTExPQ0FURSB0ZXN0X3ByZXZfaW1wbGljaXRfb2Zmc2V0 OworCistLSBSdW50aW1lIGVycm9yOiBuZWdhdGl2ZSBvZmZzZXQgYXQgZXhlY3V0aW9uIHRpbWUK K1BSRVBBUkUgdGVzdF9ydW50aW1lX25lZ19vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHYsICQxKSBJUyBOT1QgTlVMTAor KTsKK0VYRUNVVEUgdGVzdF9ydW50aW1lX25lZ19vZmZzZXQoLTEpOworREVBTExPQ0FURSB0ZXN0 X3J1bnRpbWVfbmVnX29mZnNldDsKKworLS0gUnVudGltZSBlcnJvcjogbnVsbCBvZmZzZXQgYXQg ZXhlY3V0aW9uIHRpbWUKK1BSRVBBUkUgdGVzdF9ydW50aW1lX251bGxfb2Zmc2V0KGludDgpIEFT CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2LCAk MSkgSVMgTk9UIE5VTEwKKyk7CitFWEVDVVRFIHRlc3RfcnVudGltZV9udWxsX29mZnNldChOVUxM KTsKK0RFQUxMT0NBVEUgdGVzdF9ydW50aW1lX251bGxfb2Zmc2V0OwpkaWZmIC0tZ2l0IGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAppbmRleCAxNmRlMTQyMTMwMi4uYTNiMWE4NTVjZGMgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CkBAIC03NDcsNiArNzQ3LDggQEAgRXJyb3JEYXRhCiBFcnJvclNhdmVDb250ZXh0 CiBFc3RpbWF0ZURTTUZvcmVpZ25TY2FuX2Z1bmN0aW9uCiBFc3RpbWF0aW9uSW5mbworRXZhbE5h dkZpcnN0Q29udGV4dAorRXZhbE5hdk1heENvbnRleHQKIEV2ZW50VHJpZ2dlckNhY2hlRW50cnkK IEV2ZW50VHJpZ2dlckNhY2hlSXRlbQogRXZlbnRUcmlnZ2VyQ2FjaGVTdGF0ZVR5cGUKQEAgLTE4 MDEsNiArMTgwMyw4IEBAIE5hbWVkTFdMb2NrVHJhbmNoZVJlcXVlc3QKIE5hbWVkVHVwbGVzdG9y ZVNjYW4KIE5hbWVkVHVwbGVzdG9yZVNjYW5TdGF0ZQogTmFtZXNwYWNlSW5mbworTmF2Q2hlY2tS ZXN1bHQKK05hdk9mZnNldENvbnRleHQKIE5lc3RMb29wCiBOZXN0TG9vcFBhcmFtCiBOZXN0TG9v cFN0YXRlCkBAIC0yNDc5LDYgKzI0ODMsNyBAQCBRdWV1ZVBvc2l0aW9uCiBRdWl0U2lnbmFsUmVh c29uCiBSUFJOYXZFeHByCiBSUFJOYXZLaW5kCitSUFJOYXZPZmZzZXRLaW5kCiBSQlROb2RlCiBS QlRPcmRlckNvbnRyb2wKIFJCVHJlZQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0025-Guard-int64-overflow-bounded-frame.txt" Content-Disposition: attachment; filename="nocfbot-0025-Guard-int64-overflow-bounded-frame.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfojly24 RnJvbSBkNWM1ZWI3YjE3OTVlZWNkYWU3M2RiYjIzZGY3YzEyYmJkZGMzYTM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTM6MzE6NDQgKzA5MDAKU3ViamVjdDogW1BBVENIXSBHdWFyZCBh Z2FpbnN0IGludDY0IG92ZXJmbG93IGluIFJQUiBib3VuZGVkIGZyYW1lIGVuZAogY29tcHV0YXRp b24KCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIHwgMTYgKysrKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1JQUi5jCmluZGV4IDYwZjBkOGIyZmExLi5lZTRjNjdjOTU5NyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNSUFIuYwpAQCAtMjIsNiArMjIsNyBAQAogICovCiAjaW5jbHVkZSAicG9zdGdy ZXMuaCIKIAorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj UlBSLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKQEAgLTEwNDYsMTAgKzEwNDcsMTEgQEAKICAqCiAgKiAgIFdoZW4gdGhlIGZyYW1lIGlz IGJvdW5kZWQgKGUuZy4sIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgNQogICogICBGT0xM T1dJTkcpLCBFeGVjUlBSUHJvY2Vzc1JvdyByZWNlaXZlcyBoYXNMaW1pdGVkRnJhbWU9dHJ1ZSBh bmQKLSAqICAgZnJhbWVPZmZzZXQgaW5kaWNhdGluZyB0aGUgdXBwZXIgYm91bmQuICBBZnRlciB0 aGUgYWR2YW5jZSBwaGFzZSwKKyAqICAgZnJhbWVPZmZzZXQgaW5kaWNhdGluZyB0aGUgdXBwZXIg Ym91bmQuICBCZWZvcmUgdGhlIG1hdGNoIHBoYXNlLAogICogICBhbnkgY29udGV4dCB3aG9zZSBt YXRjaCBoYXMgZXhjZWVkZWQgdGhlIGZyYW1lIGJvdW5kYXJ5Ci0gKiAgIChjdXJyZW50UG9zIC0g bWF0Y2hTdGFydFJvdyA+PSBmcmFtZU9mZnNldCArIDEpIGlzIGZpbmFsaXplZCBlYXJseS4KLSAq ICAgVGhpcyBwcmV2ZW50cyBtYXRjaGVzIGZyb20gZXh0ZW5kaW5nIGJleW9uZCB0aGUgd2luZG93 IGZyYW1lLgorICogICAoY3VycmVudFBvcyA+PSBtYXRjaFN0YXJ0Um93ICsgZnJhbWVPZmZzZXQg KyAxKSBpcyBmaW5hbGl6ZWQgZWFybHkKKyAqICAgYnkgZm9yY2luZyBhIG1pc21hdGNoLiAgVGhp cyBwcmV2ZW50cyBtYXRjaGVzIGZyb20gZXh0ZW5kaW5nIGJleW9uZAorICogICB0aGUgd2luZG93 IGZyYW1lLiAgVGhlIHN1bSBpcyBjbGFtcGVkIHRvIFBHX0lOVDY0X01BWCBvbiBvdmVyZmxvdy4K ICAqCiAgKiAgIE5vdGUgdGhhdCBib3VuZGVkIGZyYW1lcyBhbHNvIGRpc2FibGUgY29udGV4dCBh YnNvcnB0aW9uIGF0IHRoZQogICogICBwbGFubmVyIGxldmVsIChzZWUgVklJSS0zKGIpKSwgc2lu Y2UgdGhlIGZyYW1lIGJvdW5kYXJ5IGJyZWFrcyB0aGUKQEAgLTMxNTQsNyArMzE1NiwxMiBAQCBF eGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1cnJlbnRQ b3MsCiAJCS8qIENoZWNrIGZyYW1lIGJvdW5kYXJ5IC0gZmluYWxpemUgaWYgZXhjZWVkZWQgKi8K IAkJaWYgKGhhc0xpbWl0ZWRGcmFtZSkKIAkJewotCQkJaW50NjQJCWN0eEZyYW1lRW5kID0gY3R4 LT5tYXRjaFN0YXJ0Um93ICsgZnJhbWVPZmZzZXQgKyAxOworCQkJaW50NjQJCWN0eEZyYW1lRW5k OworCisJCQkvKiBDbGFtcCB0byBJTlQ2NF9NQVggb24gb3ZlcmZsb3cgKi8KKwkJCWlmIChwZ19h ZGRfczY0X292ZXJmbG93KGN0eC0+bWF0Y2hTdGFydFJvdywgZnJhbWVPZmZzZXQgKyAxLAorCQkJ CQkJCQkJJmN0eEZyYW1lRW5kKSkKKwkJCQljdHhGcmFtZUVuZCA9IFBHX0lOVDY0X01BWDsKIAog CQkJaWYgKGN1cnJlbnRQb3MgPj0gY3R4RnJhbWVFbmQpCiAJCQl7CkBAIC0zMjA0LDYgKzMyMTEs NyBAQCBFeGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1 cnJlbnRQb3MsCiAJCSAqIGNvbnRleHQgaGVyZSBtdXN0IGJlIHdpdGhpbiBpdHMgZnJhbWUgYm91 bmRhcnkuCiAJCSAqLwogCQlBc3NlcnQoIWhhc0xpbWl0ZWRGcmFtZSB8fAorCQkJICAgY3R4LT5t YXRjaFN0YXJ0Um93ID4gUEdfSU5UNjRfTUFYIC0gZnJhbWVPZmZzZXQgLSAxIHx8CiAJCQkgICBj dXJyZW50UG9zIDwgY3R4LT5tYXRjaFN0YXJ0Um93ICsgZnJhbWVPZmZzZXQgKyAxKTsKIAogCQlu ZmFfYWR2YW5jZSh3aW5zdGF0ZSwgY3R4LCBjdXJyZW50UG9zKTsKLS0gCjIuNTAuMSAoQXBwbGUg R2l0LTE1NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0026-Fix-error-message-style.txt" Content-Disposition: attachment; filename="nocfbot-0026-Fix-error-message-style.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfom5825 RnJvbSBjM2RjMzgzMTYyNjZiZGRjNmQwZDE3YWZmNDcyMzViY2ZjNzliMzAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTE6MTU6MTIgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggUlBS IGVycm9yIG1lc3NhZ2Ugc3R5bGU6IGhpbnQgZm9ybWF0LCB0ZXJtaW5vbG9neSwKIGNhcGl0YWxp emF0aW9uCgpSZW1vdmUgY29sb24gaW4gZXJyaGludCAiVXNlOiBST1dTIGluc3RlYWQiIC0+ICJV c2UgUk9XUyBpbnN0ZWFkLiIKYW5kIGFkZCBtaXNzaW5nIHRyYWlsaW5nIHBlcmlvZC4gIFNob3J0 ZW4gInJvdyBwYXR0ZXJuIGRlZmluaXRpb24KdmFyaWFibGUgbmFtZSIgdG8gIkRFRklORSB2YXJp YWJsZSIgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIKZXJyb3IgbWVzc2FnZXMuICBDYXBpdGFs aXplIG5hdmlnYXRpb24gZnVuY3Rpb24gbmFtZXMgaW4gc3R1YgplcnJvciBtZXNzYWdlcyAocHJl diAtPiBQUkVWLCBldGMuKSB0byBtYXRjaCBTUUwgc3RhbmRhcmQga2V5d29yZApzdHlsZSB1c2Vk IGVsc2V3aGVyZSBpbiB0aGUgcGFyc2VyLgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9y cHIuYyAgICAgICAgIHwgIDYgKysrLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVu Y3MuYyAgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2Jhc2Uub3V0IHwgMTIgKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE3IGluc2Vy dGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwppbmRleCAwNTA3 MGNiMDRiYi4uOGZiZTEyZTE1MTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKQEAgLTc4LDcgKzc4 LDcgQEAgdHJhbnNmb3JtUlBSKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3Yywg V2luZG93RGVmICp3aW5kZWYsCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9XSU5ET1dJTkdfRVJST1IpLAogCQkJCSBlcnJtc2coIkZSQU1FIG9wdGlvbiBHUk9VUFMgaXMg bm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQiKSwKLQkJ CQkgZXJyaGludCgiVXNlOiBST1dTIGluc3RlYWQiKSwKKwkJCQkgZXJyaGludCgiVXNlIFJPV1Mg aW5zdGVhZC4iKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKIAkJCQkJCQkJCXdp bmRlZi0+ZnJhbWVMb2NhdGlvbiA+PSAwID8KIAkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlv biA6IHdpbmRlZi0+bG9jYXRpb24pKSk7CkBAIC04Niw3ICs4Niw3IEBAIHRyYW5zZm9ybVJQUihQ YXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAog CQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VSUk9SKSwK IAkJCQkgZXJybXNnKCJGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJv dyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQiKSwKLQkJCQkgZXJyaGludCgiVXNlOiBST1dT IGluc3RlYWQiKSwKKwkJCQkgZXJyaGludCgiVXNlIFJPV1MgaW5zdGVhZC4iKSwKIAkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKIAkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA+ PSAwID8KIAkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA6IHdpbmRlZi0+bG9jYXRpb24p KSk7CkBAIC0zMjksNyArMzI5LDcgQEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAJCQlpZiAoIXN0 cmNtcChuLCBuYW1lKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAotCQkJCQkJIGVycm1zZygicm93IHBhdHRlcm4gZGVmaW5pdGlvbiB2 YXJpYWJsZSBuYW1lIFwiJXNcIiBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlIGluIERFRklORSBjbGF1 c2UiLAorCQkJCQkJIGVycm1zZygiREVGSU5FIHZhcmlhYmxlIFwiJXNcIiBhcHBlYXJzIG1vcmUg dGhhbiBvbmNlIiwKIAkJCQkJCQkJbmFtZSksCiAJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIHIpKSkpOwogCQl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93 aW5kb3dmdW5jcy5jCmluZGV4IDQyMGE0OTYyMzk1Li5mYjk2NmNhZTQzYyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3dpbmRvd2Z1bmNzLmMKQEAgLTc0MCw3ICs3NDAsNyBAQCB3aW5kb3dfcHJldihQR19G VU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJwcmV2KCkgY2FuIG9ubHkgYmUgdXNl ZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOworCQkJIGVycm1zZygiUFJFVigpIGNhbiBvbmx5IGJl IHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5v dCByZWFjaGVkICovCiB9CiAKQEAgLTc1NCw3ICs3NTQsNyBAQCB3aW5kb3dfbmV4dChQR19GVU5D VElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJuZXh0KCkgY2FuIG9ubHkgYmUgdXNlZCBp biBhIERFRklORSBjbGF1c2UiKSkpOworCQkJIGVycm1zZygiTkVYVCgpIGNhbiBvbmx5IGJlIHVz ZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCBy ZWFjaGVkICovCiB9CiAKQEAgLTc2OCw3ICs3NjgsNyBAQCB3aW5kb3dfcHJldl9vZmZzZXQoUEdf RlVOQ1RJT05fQVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygicHJldigpIGNhbiBvbmx5IGJlIHVz ZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coIlBSRVYoKSBjYW4gb25seSBi ZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBu b3QgcmVhY2hlZCAqLwogfQogCkBAIC03ODIsNyArNzgyLDcgQEAgd2luZG93X25leHRfb2Zmc2V0 KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coIm5leHQoKSBjYW4gb25seSBi ZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJORVhUKCkgY2FuIG9u bHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxMKCk7CQkJ Lyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtNzk2LDcgKzc5Niw3IEBAIHdpbmRvd19maXJzdChQ R19GVU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJmaXJzdCgpIGNhbiBvbmx5IGJl IHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coIkZJUlNUKCkgY2FuIG9u bHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxMKCk7CQkJ Lyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtODEwLDcgKzgxMCw3IEBAIHdpbmRvd19sYXN0KFBH X0ZVTkNUSU9OX0FSR1MpCiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coImxhc3QoKSBjYW4gb25seSBiZSB1 c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJMQVNUKCkgY2FuIG9ubHkg YmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyog bm90IHJlYWNoZWQgKi8KIH0KIApAQCAtODI0LDcgKzgyNCw3IEBAIHdpbmRvd19maXJzdF9vZmZz ZXQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygiZmlyc3QoKSBjYW4gb25s eSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJGSVJTVCgpIGNh biBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgp OwkJCS8qIG5vdCByZWFjaGVkICovCiB9CiAKQEAgLTgzOCw2ICs4MzgsNiBAQCB3aW5kb3dfbGFz dF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygibGFzdCgpIGNh biBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coIkxBU1Qo KSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05V TEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLwogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9i YXNlLm91dAppbmRleCAwODQ1MzE2OTY1ZS4uOTEyYmQ3YjdjNzcgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0yMzIsNyArMjMyLDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIGlkID4gMCwgQSBBUyBpZCA8IDEwCiAp OwotRVJST1I6ICByb3cgcGF0dGVybiBkZWZpbml0aW9uIHZhcmlhYmxlIG5hbWUgImEiIGFwcGVh cnMgbW9yZSB0aGFuIG9uY2UgaW4gREVGSU5FIGNsYXVzZQorRVJST1I6ICBERUZJTkUgdmFyaWFi bGUgImEiIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UKIExJTkUgNzogICAgIERFRklORSBBIEFTIGlk ID4gMCwgQSBBUyBpZCA8IDEwCiAgICAgICAgICAgICAgICAgICAgXgogLS0gRXhwZWN0ZWQ6IEVS Uk9SOiByb3cgcGF0dGVybiBkZWZpbml0aW9uIHZhcmlhYmxlIG5hbWUgImEiIGFwcGVhcnMgbW9y ZSB0aGFuIG9uY2UgaW4gREVGSU5FIGNsYXVzZQpAQCAtNDY5LDcgKzQ2OSw3IEBAIFdJTkRPVyB3 IEFTICgKIEVSUk9SOiAgRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiBy b3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiBMSU5FIDU6ICAgICBSQU5HRSBCRVRXRUVO IFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTi4uLgogICAgICAgICAg ICAgXgotSElOVDogIFVzZTogUk9XUyBpbnN0ZWFkCitISU5UOiAgVXNlIFJPV1MgaW5zdGVhZC4K IC0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBwZXJtaXR0ZWQg d2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiAtLSBHUk9VUFMgZnJhbWUgbm90 IHN0YXJ0aW5nIGF0IENVUlJFTlQgUk9XCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC00ODMs NyArNDgzLDcgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBGUkFNRSBvcHRpb24gR1JPVVBTIGlz IG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiBMSU5F IDU6ICAgICBHUk9VUFMgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQg Rk9MTE9XSS4uLgogICAgICAgICAgICAgXgotSElOVDogIFVzZTogUk9XUyBpbnN0ZWFkCitISU5U OiAgVXNlIFJPV1MgaW5zdGVhZC4KIC0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9uIEdS T1VQUyBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNl ZAogLS0gU3RhcnRpbmcgd2l0aCBOIFBSRUNFRElORwogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpA QCAtNjQwLDcgKzY0MCw3IEBAIE9SREVSIEJZIGlkOwogRVJST1I6ICBGUkFNRSBvcHRpb24gUkFO R0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQK IExJTkUgNTogICAgIFJBTkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExPV0lORwog ICAgICAgICAgICAgXgotSElOVDogIFVzZTogUk9XUyBpbnN0ZWFkCitISU5UOiAgVXNlIFJPV1Mg aW5zdGVhZC4KIC0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBw ZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiAtLSBHUk9VUFMg ZnJhbWUgd2l0aCBSUFIgKG5vdCBwZXJtaXR0ZWQpCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikg T1ZFUiB3IGFzIGNudApAQCAtNjU2LDcgKzY1Niw3IEBAIE9SREVSIEJZIGlkOwogRVJST1I6ICBG UkFNRSBvcHRpb24gR1JPVVBTIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNv Z25pdGlvbiBpcyB1c2VkCiBMSU5FIDU6ICAgICBHUk9VUFMgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgMSBGT0xMT1dJTkcKICAgICAgICAgICAgIF4KLUhJTlQ6ICBVc2U6IFJPV1MgaW5zdGVhZAor SElOVDogIFVzZSBST1dTIGluc3RlYWQuCiAtLSBFeHBlY3RlZDogRVJST1I6IEZSQU1FIG9wdGlv biBHUk9VUFMgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlz IHVzZWQKIERST1AgVEFCTEUgcnByX2ZyYW1lOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC03MDUsNyArNzA1LDcgQEAg T1JERVIgQlkgaWQ7CiBFUlJPUjogIEZSQU1FIG9wdGlvbiBSQU5HRSBpcyBub3QgcGVybWl0dGVk IHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAogTElORSA2OiAgICAgUkFOR0Ug QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMTAgRk9MTE9XSU5HCiAgICAgICAgICAgICBeCi1ISU5U OiAgVXNlOiBST1dTIGluc3RlYWQKK0hJTlQ6ICBVc2UgUk9XUyBpbnN0ZWFkLgogLS0gRXhwZWN0 ZWQ6IEVSUk9SOiBGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBw YXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKIERST1AgVEFCTEUgcnByX3BhcnRpdGlvbjsKIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0027-Fix-comment-typos-grammar.txt" Content-Disposition: attachment; filename="nocfbot-0027-Fix-comment-typos-grammar.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfoogb26 RnJvbSBjNDhjNzBmNDk0ZmI2NTZmNDVlMjkyM2JjNDI2MGFkOGM4MmY1Nzg3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTA6MDk6NDEgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggY29t bWVudCB0eXBvcywgZ3JhbW1hciwgYW5kIGluYWNjdXJhY2llcyBpbiBSUFIgY29kZQoKLS0tCiBz cmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgICAgICAgICAgfCAgNyArKystLS0tCiBzcmMv YmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgICAgfCAyMCArKysrKysrKysrLS0tLS0t LS0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIHwgIDMgKystCiAz IGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYwppbmRleCBlZTRjNjdjOTU5Ny4uZGVkZTJkZmFiMGQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUlBSLmMKQEAgLTQxNiw3ICs0MTYsNiBAQAogICogdGhlIG5vcm1hbCBsb29wLWJhY2sg KHdoaWNoIGN5Y2xlIGRldGVjdGlvbiB3aWxsIGV2ZW50dWFsbHkga2lsbCkgYW5kCiAgKiBhIGZh c3QtZm9yd2FyZCBleGl0IGNsb25lIHRoYXQgYnlwYXNzZXMgdGhlIGxvb3AgZW50aXJlbHkuCiAg KiAoU2VlIElYLTQoYykgZm9yIGRldGFpbGVkIHJ1bnRpbWUgYmVoYXZpb3IuKQotICogICAgIC0g RW1wdHkgbWF0Y2ggaXMgaW1wb3NzaWJsZSBzaW5jZSBib2R5IGlzIG5vdCBudWxsYWJsZQogICoK ICAqIElWLTUuIEFic29yYmFiaWxpdHkgQW5hbHlzaXMgKFJQUl9FTEVNX0FCU09SQkFCTEUpCiAg KgpAQCAtNjQ1LDggKzY0NCw4IEBACiAgKiBXaGVuIHByb2Nlc3NpbmcgYSBjb250ZXh0IHdob3Nl IG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9tIHRoZSBzaGFyZWQKICAqIHZhbHVlLCBuZmFfcmVl dmFsdWF0ZV9kZXBlbmRlbnRfdmFycygpIHRlbXBvcmFyaWx5IHNldHMgbmF2X21hdGNoX3N0YXJ0 CiAgKiB0byB0aGF0IGNvbnRleHQncyBtYXRjaFN0YXJ0Um93IGFuZCByZS1ldmFsdWF0ZXMgb25s eSB0aGUgZGVwZW5kZW50Ci0gKiB2YXJpYWJsZXMuICBObyByZXN0b3JlIGlzIG5lZWRlZCBiZWNh dXNlIGNvbnRleHRzIGFyZSBvcmRlcmVkIGJ5Ci0gKiBtYXRjaFN0YXJ0Um93IChhc2NlbmRpbmcp LCBzbyBubyBsYXRlciBjb250ZXh0IHNoYXJlcyB0aGUgaGVhZCdzIHZhbHVlLgorICogdmFyaWFi bGVzLiAgVGhlIG9yaWdpbmFsIG5hdl9tYXRjaF9zdGFydCBhbmQgY3VycmVudHBvcyBhcmUgc2F2 ZWQgYW5kCisgKiByZXN0b3JlZCBhZnRlciByZS1ldmFsdWF0aW9uLgogICoKICAqIFZJLTUuIFR1 cGxlc3RvcmUgTWFyayBhbmQgVHJpbSAobm9kZVdpbmRvd0FnZy5jKQogICoKQEAgLTI3MTUsNyAr MjcxNCw3IEBAIG5mYV9hZHZhbmNlX3ZhcihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5G QUNvbnRleHQgKmN0eCwKIAkJYm9vbAkJcmVsdWN0YW50ID0gUlBSRWxlbUlzUmVsdWN0YW50KGVs ZW0pOwogCiAJCS8qCi0JCSAqIENsb25lIHN0YXRlIGZvciB0aGUgc2Vjb25kLXByaW9yaXR5IHBh dGguIEZvciBncmVlZHksIGNsb25lIGlzIHRoZQorCQkgKiBDbG9uZSBzdGF0ZSBmb3IgdGhlIGZp cnN0LXByaW9yaXR5IHBhdGguIEZvciBncmVlZHksIGNsb25lIGlzIHRoZQogCQkgKiBsb29wIHN0 YXRlOyBmb3IgcmVsdWN0YW50LCBjbG9uZSBpcyB0aGUgZXhpdCBzdGF0ZS4KIAkJICovCiAJCWlm IChyZWx1Y3RhbnQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93 QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggY2RiZTM1 NmFiZDcuLjg0OWViZjhhYmIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl V2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBA IC0zNzA1LDggKzM3MDUsOCBAQCBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFtZShXaW5kb3dP YmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCiAJewogCQkvKgogCQkgKiBFYXJseSBjaGVjayBpZiBy b3cgY291bGQgYmUgb3V0IG9mIHJlZHVjZWQgZnJhbWUuICBXaGVuIFJQUiBpcwotCQkgKiBlbmFi bGVkLCBFWENVREUgY2xhdXNlIGNhbm5vdCBiZSBzcGVjaWZpZWQgYW5kIHRoZSBmcmFtZSBpcyBh bHdheXMKLQkJICogY29udGlndW91cy4gIFNvIHdlIGNhbiBkbyB0aGUgY2hlY2sgZm9sbG93aW5n cyBzYWZlbHkuIE5vdGUsCisJCSAqIGVuYWJsZWQsIEVYQ0xVREUgY2xhdXNlIGNhbm5vdCBiZSBz cGVjaWZpZWQgYW5kIHRoZSBmcmFtZSBpcyBhbHdheXMKKwkJICogY29udGlndW91cy4gIFNvIHdl IGNhbiBzYWZlbHkgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGNoZWNrcy4gTm90ZSwKIAkJICogaG93 ZXZlciwgaXQgaXMgcG9zc2libGUgdGhhdCBhIHJvdyBpcyBvdXQgb2YgcmVkdWNlZCBmcmFtZSBp ZgogCQkgKiB0aGVyZSdzIGEgTlVMTCBpbiB0aGUgbWlkZGxlLiBTbyB3ZSBuZWVkIHRvIGNoZWNr IGl0IGluIHRoZQogCQkgKiBmb2xsb3dpbmcgZG8gbG9vcC4KQEAgLTQxNjgsNyArNDE2OCw3IEBA IGV2YWxfbmF2X2ZpcnN0X29mZnNldChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIExpc3QgKmRl ZmluZUNsYXVzZSkKIAogLyoKICAqIHJwcl9pc19kZWZpbmVkCi0gKiByZXR1cm4gdHJ1ZSBpZiBS b3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyBkZWZpbmVkLgorICogUmV0dXJuIHRydWUgaWYgcm93 IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgZGVmaW5lZC4KICAqLwogc3RhdGljIGJvb2wKIHJwcl9p c19kZWZpbmVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKQEAgLTQxODIsMTQgKzQxODIsMTQg QEAgcnByX2lzX2RlZmluZWQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogICogRGV0ZXJtaW5l IHdoZXRoZXIgYSByb3cgaXMgaW4gdGhlIGN1cnJlbnQgcm93J3MgcmVkdWNlZCB3aW5kb3cgZnJh bWUKICAqIGFjY29yZGluZyB0byByb3cgcGF0dGVybiBtYXRjaGluZwogICoKLSAqIFRoZSByb3cg bXVzdCBoYXMgYmVlbiBhbHJlYWR5IGRldGVybWluZWQgdGhhdCBpdCBpcyBpbiBhIGZ1bGwgd2lu ZG93IGZyYW1lCi0gKiBhbmQgZmV0Y2hlZCBpdCBpbnRvIHNsb3QuCisgKiBUaGUgcm93IG11c3Qg aGF2ZSBhbHJlYWR5IGJlZW4gZGV0ZXJtaW5lZCB0byBiZSBpbiBhIGZ1bGwgd2luZG93IGZyYW1l CisgKiBhbmQgZmV0Y2hlZCBpbnRvIHRoZSBzbG90LgogICoKICAqIFJldHVybnM6CiAgKiA9IDAs IFJQUiBpcyBub3QgZGVmaW5lZC4KICAqID4wLCBpZiB0aGUgcm93IGlzIHRoZSBmaXJzdCBpbiB0 aGUgcmVkdWNlZCBmcmFtZS4gUmV0dXJuIHRoZSBudW1iZXIgb2Ygcm93cwogICogaW4gdGhlIHJl ZHVjZWQgZnJhbWUuCi0gKiAtMSwgaWYgdGhlIHJvdyBpcyB1bm1hdGNoZWQgcm93CisgKiAtMSwg aWYgdGhlIHJvdyBpcyBhbiB1bm1hdGNoZWQgcm93CiAgKiAtMiwgaWYgdGhlIHJvdyBpcyBpbiB0 aGUgcmVkdWNlZCBmcmFtZSBidXQgbmVlZGVkIHRvIGJlIHNraXBwZWQgYmVjYXVzZSBvZgogICog QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCiAgKiAtLS0tLS0tLS0tLS0tLS0tLQpAQCAt NDIwNCw4ICs0MjA0LDggQEAgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdp bm9iaiwgaW50NjQgcG9zKQogCWlmICghcnByX2lzX2RlZmluZWQod2luc3RhdGUpKQogCXsKIAkJ LyoKLQkJICogUlBSIGlzIG5vdCBkZWZpbmVkLiBBc3N1bWUgdGhhdCB3ZSBhcmUgYWx3YXlzIGlu IHRoZSB0aGUgcmVkdWNlZAotCQkgKiB3aW5kb3cgZnJhbWUuCisJCSAqIFJQUiBpcyBub3QgZGVm aW5lZC4gQXNzdW1lIHRoYXQgd2UgYXJlIGFsd2F5cyBpbiB0aGUgcmVkdWNlZCB3aW5kb3cKKwkJ ICogZnJhbWUuCiAJCSAqLwogCQlydG4gPSAwOwogCQlyZXR1cm4gcnRuOwpAQCAtNDkzOCw4ICs0 OTM4LDggQEAgV2luR2V0RnVuY0FyZ0luRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFy Z25vLAogICogaXNvdXQ6IG91dHB1dCBhcmd1bWVudCwgc2V0IHRvIGluZGljYXRlIHdoZXRoZXIg dGFyZ2V0IHJvdyBwb3NpdGlvbgogICoJCWlzIG91dCBvZiBmcmFtZSAoY2FuIHBhc3MgTlVMTCBp ZiBjYWxsZXIgZG9lc24ndCBjYXJlIGFib3V0IHRoaXMpCiAgKgotICogUmV0dXJucyAwIGlmIHdl IHN1Y2Nlc3NmdWxseSBnb3QgdGhlIHNsb3QuIGZhbHNlIGlmIG91dCBvZiBmcmFtZS4KLSAqIChh bHNvIGlzb3V0IGlzIHNldCkKKyAqIFJldHVybnMgMCBpZiB3ZSBzdWNjZXNzZnVsbHkgZ290IHRo ZSBzbG90LCBvciBub256ZXJvIGlmIG91dCBvZiBmcmFtZS4KKyAqIChpc291dCBpcyBhbHNvIHNl dCBpbiB0aGUgbGF0dGVyIGNhc2UuKQogICovCiBzdGF0aWMgaW50CiBXaW5HZXRTbG90SW5GcmFt ZShXaW5kb3dPYmplY3Qgd2lub2JqLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwppbmRleCAwMmQ1MTEyNjlhYi4uNTA2NjhmM2I3YWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTI0NzUsNyArMjQ3 NSw4IEBAIHR5cGVkZWYgc3RydWN0IE5hdk9mZnNldENvbnRleHQKIAlpbnQ2NAkJbWF4T2Zmc2V0 OwkJLyogbWF4IFBSRVYvTEFTVCBiYWNrd2FyZCBvZmZzZXQgKD49IDApICovCiAJYm9vbAkJbWF4 TmVlZHNFdmFsOwkvKiBub24tY29uc3RhbnQgUFJFVi9MQVNUIG9mZnNldCBmb3VuZCAqLwogCWJv b2wJCW1heE92ZXJmbG93OwkvKiBjb25zdGFudCBvZmZzZXQgb3ZlcmZsb3cgZGV0ZWN0ZWQgKi8K LQlpbnQ2NAkJZmlyc3RPZmZzZXQ7CS8qIG1pbiBGSVJTVCBvZmZzZXQgKD49IDApLCBvciAtMSBp ZiBub25lICovCisJaW50NjQJCWZpcnN0T2Zmc2V0OwkvKiBtaW4gRklSU1Qgb2Zmc2V0IChtYXkg YmUgbmVnYXRpdmUgZm9yCisJCQkJCQkJCSAqIFBSRVZfRklSU1QpICovCiAJYm9vbAkJaGFzRmly c3Q7CQkvKiBhbnkgRklSU1Qgbm9kZSBmb3VuZCAqLwogCWJvb2wJCWZpcnN0TmVlZHNFdmFsOyAv KiBub24tY29uc3RhbnQgRklSU1Qgb2Zmc2V0IGZvdW5kICovCiB9IE5hdk9mZnNldENvbnRleHQ7 Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0028-Fix-documentation-synopsis-grammar.txt" Content-Disposition: attachment; filename="nocfbot-0028-Fix-documentation-synopsis-grammar.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfoqzm27 RnJvbSBkMzU5MDc5NDAwNGM2MjAwZGVlNTE3ODc5NWE4ZDk4M2YwMmQ0Mzc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTA6NTA6MzYgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggUlBS IGRvY3VtZW50YXRpb246IHN5bm9wc2lzLCBncmFtbWFyLCBhbmQgdGVybWlub2xvZ3kKClJlbW92 ZSBlcnJvbmVvdXMgY29tbWEgaW4gUEFUVEVSTiBzeW5vcHNpcy4gIEZpeCB0eXBvcyBpbgphZHZh bmNlZC5zZ21sICgiPj07IiBzdHJheSBzZW1pY29sb24sICJ3aXRoIHRoZSBhIHJvdyIsCiJGb3Ig ZXhhbXBsZSBmb2xsb3dpbmciKS4gIENvcnJlY3QgUFJFVi9ORVhUIGRlc2NyaXB0aW9uCmZyb20g IndpdGhpbiB0aGUgd2luZG93IGZyYW1lIiB0byAid2l0aGluIHRoZSBwYXJ0aXRpb24iCmFuZCBh ZGQgbWlzc2luZyAiREVGSU5FIGNsYXVzZSBvbmx5IiBub3RlLiAgQ2FwaXRhbGl6ZQoiUm93IFBh dHRlcm4gUmVjb2duaXRpb24iIGNvbnNpc3RlbnRseSBhY3Jvc3MgU0dNTCBmaWxlcy4KCkZpeCBu dW1lcm91cyBtaXNzaW5nIGFydGljbGVzIGFuZCBncmFtbWFyIGVycm9ycyBpbgpzZWxlY3Quc2dt bDogImFmdGVyIGEgbWF0Y2ggZm91bmQiIC0+ICJhZnRlciBhIG1hdGNoIGlzCmZvdW5kIiwgImRv IG5vdCBuZWNlc3NhcmlseSIgLT4gImRvZXMgbm90IG5lY2Vzc2FyaWx5IiwKYWRkIG1pc3Npbmcg InRoZSIgYmVmb3JlIGNsYXVzZSByZWZlcmVuY2VzLgotLS0KIGRvYy9zcmMvc2dtbC9hZHZhbmNl ZC5zZ21sICAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVu Yy13aW5kb3cuc2dtbCB8IDE0ICsrKysrKysrLS0tLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3NlbGVj dC5zZ21sICAgICAgIHwgMjggKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBj aGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvYWR2YW5jZWQuc2dtbCBiL2RvYy9zcmMvc2dtbC9hZHZhbmNlZC5zZ21sCmlu ZGV4IDBjYWY5ZmRhZmY2Li4xMWMyNDE2ZGY1MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Fk dmFuY2VkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2FkdmFuY2VkLnNnbWwKQEAgLTU1Myw4ICs1 NTMsOCBAQCBXSEVSRSBwb3MgJmx0OyAzOwogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBS b3cgcGF0dGVybiBjb21tb24gc3ludGF4IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gcm93IHBhdHRl cm4gcmVjb2duaXRpb24KLSAgICBpbiBhIHF1ZXJ5LiBUaGUgcm93IHBhdHRlcm4gY29tbW9uIHN5 bnRheCBpbmNsdWRlcyB0d28gc3ViCisgICAgUm93IFBhdHRlcm4gQ29tbW9uIFN5bnRheCBjYW4g YmUgdXNlZCB0byBwZXJmb3JtIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uCisgICAgaW4gYSBxdWVy eS4gVGhlIFJvdyBQYXR0ZXJuIENvbW1vbiBTeW50YXggaW5jbHVkZXMgdHdvIHN1YgogICAgIGNs YXVzZXM6IDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4KICAgICBhbmQgPGxpdGVyYWw+UEFUVEVS TjwvbGl0ZXJhbD4uIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gZGVmaW5lcwogICAgIHJvdyBw YXR0ZXJuIHZhcmlhYmxlcyBhbG9uZyB3aXRoIGFuIGV4cHJlc3Npb24uIFRoZSBleHByZXNzaW9u IG11c3QgYmUgYQpAQCAtNTg0LDEyICs1ODQsMTIgQEAgREVGSU5FCiAgICAgT25jZSA8bGl0ZXJh bD5ERUZJTkU8L2xpdGVyYWw+IGV4aXN0cywgPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gY2Fu IGJlCiAgICAgdXNlZC4gPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gZGVmaW5lcyBhIHNlcXVl bmNlIG9mIHJvd3MgdGhhdCBzYXRpc2ZpZXMKICAgICBjb25kaXRpb25zIGRlZmluZWQgaW4gdGhl IDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlLiAgRm9yIGV4YW1wbGUKLSAgICBmb2xs b3dpbmcgPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gZGVmaW5lcyBhIHNlcXVlbmNlIG9mIHJv d3Mgc3RhcnRpbmcKLSAgICB3aXRoIHRoZSBhIHJvdyBzYXRpc2Z5aW5nICJMT1dQUklDRSIsIHRo ZW4gb25lIG9yIG1vcmUgcm93cyBzYXRpc2Z5aW5nCisgICAgdGhlIGZvbGxvd2luZyA8bGl0ZXJh bD5QQVRURVJOPC9saXRlcmFsPiBkZWZpbmVzIGEgc2VxdWVuY2Ugb2Ygcm93cyBzdGFydGluZwor ICAgIHdpdGggYSByb3cgc2F0aXNmeWluZyAiTE9XUFJJQ0UiLCB0aGVuIG9uZSBvciBtb3JlIHJv d3Mgc2F0aXNmeWluZwogICAgICJVUCIgYW5kIGZpbmFsbHkgb25lIG9yIG1vcmUgcm93cyBzYXRp c2Z5aW5nICJET1dOIi4gUGF0dGVybiB2YXJpYWJsZXMgY2FuCiAgICAgYmUgZm9sbG93ZWQgYnkg cXVhbnRpZmllcnM6ICIrIiBtZWFucyBvbmUgb3IgbW9yZSBtYXRjaGVzLCAiKiIgbWVhbnMgemVy bwogICAgIG9yIG1vcmUgbWF0Y2hlcywgIj8iIG1lYW5zIHplcm8gb3Igb25lIG1hdGNoLCAie259 IiAobiAmZ3Q7IDApIG1lYW5zIGV4YWN0bHkKLSAgICBuIG1hdGNoZXMsICJ7bix9IiAobiAmZ3Q7 PTsgMCkgbWVhbnMgYXQgbGVhc3QgbiBtYXRjaGVzLCAieyxtfSIgKG0gJmd0OyAwKSBtZWFucwor ICAgIG4gbWF0Y2hlcywgIntuLH0iIChuICZndDs9IDApIG1lYW5zIGF0IGxlYXN0IG4gbWF0Y2hl cywgInssbX0iIChtICZndDsgMCkgbWVhbnMKICAgICBhdCBtb3N0IG0gbWF0Y2hlcywgYW5kICJ7 bixtfSIgKDAgJmx0Oz0gbiAmbHQ7PSBtLCAwICZsdDsgbSkgbWVhbnMgYmV0d2VlbiBuIGFuZCBt CiAgICAgbWF0Y2hlcy4gIFBhdHRlcm5zIGNhbiBiZSBncm91cGVkIHVzaW5nIHBhcmVudGhlc2Vz IGFuZCBjb21iaW5lZCB1c2luZwogICAgIGFsdGVybmF0aW9uICh0aGUgdmVydGljYWwgYmFyICJ8 IiBmb3IgT1IpLiBGb3IgZXhhbXBsZSwgIihVUCBET1dOKSsiCkBAIC02NDIsNyArNjQyLDcgQEAg RlJPTSBzdG9jawogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBSb3cgcGF0dGVybiByZWNv Z25pdGlvbiBpbnRlcm5hbGx5IHVzZXMgYSBub25kZXRlcm1pbmlzdGljIGZpbml0ZQorICAgIFJv dyBQYXR0ZXJuIFJlY29nbml0aW9uIGludGVybmFsbHkgdXNlcyBhIG5vbmRldGVybWluaXN0aWMg ZmluaXRlCiAgICAgYXV0b21hdG9uIChORkEpIHRvIG1hdGNoIHBhdHRlcm5zLiBGb3IgcGF0dGVy bnMgd2l0aCB1bmJvdW5kZWQKICAgICBxdWFudGlmaWVycyAoZS5nLiwgPGxpdGVyYWw+QSs8L2xp dGVyYWw+IG9yIDxsaXRlcmFsPihBIEIpKzwvbGl0ZXJhbD4pLAogICAgIHRoZSBORkEgbWF5IG5l ZWQgdG8gdHJhY2sgbWFueSBhY3RpdmUgbWF0Y2hpbmcgY29udGV4dHMgc2ltdWx0YW5lb3VzbHks CkBAIC02NzYsNyArNjc2LDcgQEAgRlJPTSBzdG9jawogICAgPC9wYXJhPgogCiAgICA8cGFyYT4K LSAgICBXaGVuIGV4YW1pbmluZyBxdWVyeSBwbGFucyBmb3Igcm93IHBhdHRlcm4gcmVjb2duaXRp b24gd2l0aAorICAgIFdoZW4gZXhhbWluaW5nIHF1ZXJ5IHBsYW5zIGZvciBSb3cgUGF0dGVybiBS ZWNvZ25pdGlvbiB3aXRoCiAgICAgPGNvbW1hbmQ+RVhQTEFJTjwvY29tbWFuZD4sIHRoZSBwYXR0 ZXJuIG91dHB1dCBtYXkgaW5jbHVkZSBzcGVjaWFsCiAgICAgbWFya2VycyB0aGF0IGluZGljYXRl IG9wdGltaXphdGlvbiBvcHBvcnR1bml0aWVzLiBBIGRvdWJsZSBxdW90ZQogICAgIDxsaXRlcmFs PiI8L2xpdGVyYWw+IG1hcmtzIHdoZXJlIHBhdHRlcm4gYWJzb3JwdGlvbiBjYW4gb2NjdXIsCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sIGIvZG9jL3NyYy9z Z21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbAppbmRleCBhYjgwNjkwZjdiZS4uZDEwOWEyZDIyYmMg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbApAQCAtMjc5LDkgKzI3OSw5IEBACiAgIDwv cGFyYT4KIAogICA8cGFyYT4KLSAgIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIG5hdmlnYXRpb24g ZnVuY3Rpb25zIGFyZSBsaXN0ZWQgaW4KKyAgIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIG5hdmln YXRpb24gZnVuY3Rpb25zIGFyZSBsaXN0ZWQgaW4KICAgIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9u cy1ycHItbmF2aWdhdGlvbi10YWJsZSIvPi4gIFRoZXNlIGZ1bmN0aW9ucwotICAgY2FuIGJlIHVz ZWQgdG8gZGVzY3JpYmUgREVGSU5FIGNsYXVzZSBvZiBSb3cgcGF0dGVybiByZWNvZ25pdGlvbi4K KyAgIGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIHRoZSBERUZJTkUgY2xhdXNlIG9mIFJvdyBQYXR0 ZXJuIFJlY29nbml0aW9uLgogICA8L3BhcmE+CiAKICAgIDx0YWJsZSBpZD0iZnVuY3Rpb25zLXJw ci1uYXZpZ2F0aW9uLXRhYmxlIj4KQEAgLTMwOSwxMiArMzA5LDEzIEBACiAgICAgICAgPC9wYXJh PgogICAgICAgIDxwYXJhPgogICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUgYXQgdGhl IHJvdyA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPgotICAgICAgICByb3dzIGJlZm9yZSB0 aGUgY3VycmVudCByb3cgd2l0aGluIHRoZSB3aW5kb3cgZnJhbWU7Ci0gICAgICAgIHJldHVybnMg TlVMTCBpZiB0aGUgdGFyZ2V0IHJvdyBpcyBvdXRzaWRlIHRoZSB3aW5kb3cgZnJhbWUuCisgICAg ICAgIHJvd3MgYmVmb3JlIHRoZSBjdXJyZW50IHJvdyB3aXRoaW4gdGhlIHBhcnRpdGlvbjsKKyAg ICAgICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHBhcnRp dGlvbi4KICAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8g MSBpZiBvbWl0dGVkLgogICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0 IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXI7CiAgICAgICAgIGFuIG9mZnNldCBvZiAwIHJlZmVy cyB0byB0aGUgY3VycmVudCByb3cgaXRzZWxmLgogICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwv cGFyYW1ldGVyPiBtdXN0IG5vdCBiZSBOVUxMLgorICAgICAgICBDYW4gb25seSBiZSB1c2VkIGlu IGEgPGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPiBjbGF1c2UuCiAgICAgICAgPC9wYXJhPjwvZW50 cnk+CiAgICAgICA8L3Jvdz4KIApAQCAtMzI4LDEyICszMjksMTMgQEAKICAgICAgICA8L3BhcmE+ CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFJldHVybnMgdGhlIGNvbHVtbiB2YWx1ZSBhdCB0aGUg cm93IDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+Ci0gICAgICAgIHJvd3MgYWZ0ZXIgdGhl IGN1cnJlbnQgcm93IHdpdGhpbiB0aGUgd2luZG93IGZyYW1lOwotICAgICAgICByZXR1cm5zIE5V TEwgaWYgdGhlIHRhcmdldCByb3cgaXMgb3V0c2lkZSB0aGUgd2luZG93IGZyYW1lLgorICAgICAg ICByb3dzIGFmdGVyIHRoZSBjdXJyZW50IHJvdyB3aXRoaW4gdGhlIHBhcnRpdGlvbjsKKyAgICAg ICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHBhcnRpdGlv bi4KICAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8gMSBp ZiBvbWl0dGVkLgogICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IGJl IGEgbm9uLW5lZ2F0aXZlIGludGVnZXI7CiAgICAgICAgIGFuIG9mZnNldCBvZiAwIHJlZmVycyB0 byB0aGUgY3VycmVudCByb3cgaXRzZWxmLgogICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFy YW1ldGVyPiBtdXN0IG5vdCBiZSBOVUxMLgorICAgICAgICBDYW4gb25seSBiZSB1c2VkIGluIGEg PGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPiBjbGF1c2UuCiAgICAgICAgPC9wYXJhPjwvZW50cnk+ CiAgICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwKaW5kZXggNWU0YmE5ZDNjYzYuLjUyNzJk NmMwYmZhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwKQEAgLTExMzMsMzQgKzExMzMsMzQgQEAgRVhDTFVE RSBOTyBPVEhFUlMKICAgIDxwYXJhPgogICAgIFRoZQogICAgIG9wdGlvbmFsIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb3dfcGF0dGVybl9jb21tb25fc3ludGF4PC9yZXBsYWNlYWJs ZT4KLSAgICBkZWZpbmVzIHRoZSA8Zmlyc3R0ZXJtPnJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGNv bmRpdGlvbjwvZmlyc3R0ZXJtPiBmb3IKKyAgICBkZWZpbmVzIHRoZSA8Zmlyc3R0ZXJtPlJvdyBQ YXR0ZXJuIFJlY29nbml0aW9uIGNvbmRpdGlvbjwvZmlyc3R0ZXJtPiBmb3IKICAgICB0aGlzCiAg ICAgd2luZG93LiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm93X3BhdHRlcm5fY29t bW9uX3N5bnRheDwvcmVwbGFjZWFibGU+Ci0gICAgaW5jbHVkZXMgZm9sbG93aW5nIHN1YmNsYXVz ZXMuCisgICAgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBzdWJjbGF1c2VzLgogCiA8c3lub3BzaXM+ CiBbIHsgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIHwgQUZURVIgTUFUQ0ggU0tJUCBU TyBORVhUIFJPVyB9IF0KIFsgSU5JVElBTCB8IFNFRUsgXQotUEFUVEVSTiAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuX3ZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBb IDxyZXBsYWNlYWJsZT5xdWFudGlmaWVyPC9yZXBsYWNlYWJsZT4gXSBbLCAuLi5dICkKK1BBVFRF Uk4gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybl92YXJpYWJsZV9uYW1l PC9yZXBsYWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+cXVhbnRpZmllcjwvcmVwbGFjZWFibGU+IF0g WyAuLi4gXSApCiBERUZJTkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmluaXRp b25fdmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXQogPC9zeW5vcHNpcz4KICAg ICA8bGl0ZXJhbD5BRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1c8L2xpdGVyYWw+IG9yIDxs aXRlcmFsPkFGVEVSIE1BVENICi0gICAgU0tJUCBUTyBORVhUIFJPVzwvbGl0ZXJhbD4gY29udHJv bHMgaG93IHRvIHByb2NlZWQgdG8gbmV4dCByb3cgcG9zaXRpb24KLSAgICBhZnRlciBhIG1hdGNo IGZvdW5kLiBXaXRoIDxsaXRlcmFsPkFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUCi0gICAgUk9X PC9saXRlcmFsPiAodGhlIGRlZmF1bHQpIG5leHQgcm93IHBvc2l0aW9uIGlzIG5leHQgdG8gdGhl IGxhc3Qgcm93IG9mCi0gICAgcHJldmlvdXMgbWF0Y2guIE9uIHRoZSBvdGhlciBoYW5kLCB3aXRo IDxsaXRlcmFsPkFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVAotICAgIFJPVzwvbGl0ZXJhbD4gbmV4 dCByb3cgcG9zaXRpb24gaXMgbmV4dCB0byB0aGUgZmlyc3Qgcm93IG9mIHByZXZpb3VzCi0gICAg bWF0Y2guIDxsaXRlcmFsPklOSVRJQUw8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlNFRUs8L2xpdGVy YWw+IGRlZmluZXMgaG93IGEKLSAgICBzdWNjZXNzZnVsIHBhdHRlcm4gbWF0Y2hpbmcgc3RhcnRz IGZyb20gd2hpY2ggcm93IGluIGEKLSAgICBmcmFtZS4gSWYgPGxpdGVyYWw+SU5JVElBTDwvbGl0 ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgbWF0Y2ggbXVzdCBzdGFydAorICAgIFNLSVAgVE8gTkVY VCBST1c8L2xpdGVyYWw+IGNvbnRyb2xzIGhvdyB0byBwcm9jZWVkIHRvIHRoZSBuZXh0IHJvdyBw b3NpdGlvbgorICAgIGFmdGVyIGEgbWF0Y2ggaXMgZm91bmQuIFdpdGggPGxpdGVyYWw+QUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QKKyAgICBST1c8L2xpdGVyYWw+ICh0aGUgZGVmYXVsdCkgdGhl IG5leHQgcm93IHBvc2l0aW9uIGlzIG5leHQgdG8gdGhlIGxhc3Qgcm93IG9mCisgICAgdGhlIHBy ZXZpb3VzIG1hdGNoLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2l0aCA8bGl0ZXJhbD5BRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQKKyAgICBST1c8L2xpdGVyYWw+IHRoZSBuZXh0IHJvdyBwb3NpdGlvbiBp cyBuZXh0IHRvIHRoZSBmaXJzdCByb3cgb2YgdGhlIHByZXZpb3VzCisgICAgbWF0Y2guIDxsaXRl cmFsPklOSVRJQUw8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlNFRUs8L2xpdGVyYWw+IHNwZWNpZmll cyBmcm9tCisgICAgd2hpY2ggcm93IGluIHRoZSBmcmFtZSBwYXR0ZXJuIG1hdGNoaW5nIGJlZ2lu cy4KKyAgICBJZiA8bGl0ZXJhbD5JTklUSUFMPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBt YXRjaCBtdXN0IHN0YXJ0CiAgICAgZnJvbSB0aGUgZmlyc3Qgcm93IGluIHRoZSBmcmFtZS4gSWYg PGxpdGVyYWw+U0VFSzwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLAotICAgIHRoZSBzZXQgb2YgbWF0 Y2hpbmcgcm93cyBkbyBub3QgbmVjZXNzYXJpbHkgc3RhcnQgZnJvbSB0aGUgZmlyc3Qgcm93LiBU aGUKKyAgICB0aGUgc2V0IG9mIG1hdGNoaW5nIHJvd3MgZG9lcyBub3QgbmVjZXNzYXJpbHkgc3Rh cnQgZnJvbSB0aGUgZmlyc3Qgcm93LiBUaGUKICAgICBkZWZhdWx0IGlzIDxsaXRlcmFsPklOSVRJ QUw8L2xpdGVyYWw+LiBDdXJyZW50bHkKICAgICBvbmx5IDxsaXRlcmFsPklOSVRJQUw8L2xpdGVy YWw+IGlzIHN1cHBvcnRlZC4gPGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPgogICAgIGRlZmluZXMg ZGVmaW5pdGlvbiB2YXJpYWJsZXMgYWxvbmcgd2l0aCBhIGJvb2xlYW4KICAgICBleHByZXNzaW9u LiA8bGl0ZXJhbD5QQVRURVJOPC9saXRlcmFsPiBkZWZpbmVzIGEgc2VxdWVuY2Ugb2Ygcm93cyB0 aGF0CiAgICAgc2F0aXNmaWVzIGNlcnRhaW4gY29uZGl0aW9ucyB1c2luZyB2YXJpYWJsZXMgZGVm aW5lZAotICAgIGluIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlIChhbiBlbXB0eSA8 bGl0ZXJhbD5QQVRURVJOKCk8L2xpdGVyYWw+CisgICAgaW4gdGhlIDxsaXRlcmFsPkRFRklORTwv bGl0ZXJhbD4gY2xhdXNlIChhbiBlbXB0eSA8bGl0ZXJhbD5QQVRURVJOKCk8L2xpdGVyYWw+CiAg ICAgaXMgbm90IHN1cHBvcnRlZCkuIEVhY2ggcGF0dGVybiB2YXJpYWJsZSBjYW4gYmUgZm9sbG93 ZWQgYnkgYSBxdWFudGlmaWVyCiAgICAgdG8gc3BlY2lmeSBob3cgbWFueSB0aW1lcyBpdCBzaG91 bGQgbWF0Y2g6CiAgICAgPGxpdGVyYWw+KjwvbGl0ZXJhbD4gKHplcm8gb3IgbW9yZSksCkBAIC0x MTk4LDcgKzExOTgsNyBAQCBERUZJTkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRl ZmluaXRpb25fdmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IEFTCiAKICAgIDxwYXJhPgogICAg IE5vdGUgdGhhdCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdW5pcXVlIHBhdHRlcm4gdmFyaWFibGVz Ci0gICAgdXNlZCBpbiA8bGl0ZXJhbD5QQVRURVJOPC9saXRlcmFsPiBjbGF1c2UgaXMgMjUxLgor ICAgIHVzZWQgaW4gdGhlIDxsaXRlcmFsPlBBVFRFUk48L2xpdGVyYWw+IGNsYXVzZSBpcyAyNTEu CiAgICAgSWYgdGhpcyBsaW1pdCBpcyBleGNlZWRlZCwgYW4gZXJyb3Igd2lsbCBiZSByYWlzZWQu CiAgICAgQWRkaXRpb25hbGx5LCB0aGUgbWF4aW11bSBuZXN0aW5nIGRlcHRoIG9mIHBhdHRlcm4g Z3JvdXBzCiAgICAgKHBhcmVudGhlc2VzKSBpcyAyNTMgbGV2ZWxzLgotLSAKMi41MC4xIChBcHBs ZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0029-Fix-nav_slot-pass-by-ref-dangling-pointer.txt" Content-Disposition: attachment; filename="nocfbot-0029-Fix-nav_slot-pass-by-ref-dangling-pointer.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfotay28 RnJvbSA2YTcxNmNkM2RjMWY4MDg0MzhkYmEzOTM2MDNlYzk1NWNhZTYzZTY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTM6NTk6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggbmF2 X3Nsb3QgcGFzcy1ieS1yZWYgZGFuZ2xpbmcgcG9pbnRlciBpbiBSUFIgbmF2aWdhdGlvbgoKV2hl biBhIERFRklORSBleHByZXNzaW9uIGNvbnRhaW5zIG11bHRpcGxlIG5hdmlnYXRpb24gY2FsbHMg dGFyZ2V0aW5nCmRpZmZlcmVudCBwb3NpdGlvbnMgKGUuZy4sIFBSRVYoeCwxKSA+IFBSRVYoeCwy KSksIHRoZSBzZWNvbmQgY2FsbApyZS1mZXRjaGVzIG5hdl9zbG90LCBmcmVlaW5nIHRoZSBwcmV2 aW91cyB0dXBsZSB2aWEgcGZyZWUuICBBbnkKcGFzcy1ieS1yZWYgZGF0dW0gZXh0cmFjdGVkIGZy b20gdGhlIGZpcnN0IG5hdmlnYXRpb24gYmVjb21lcyBhCmRhbmdsaW5nIHBvaW50ZXIuICBGaXgg YnkgY29weWluZyBwYXNzLWJ5LXJlZiByZXN1bHRzIGludG8gcGVyLXR1cGxlCm1lbW9yeSBpbiB0 aGUgUkVTVE9SRSBzdGVwLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAg ICAgfCAgNSArKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyB8IDIwICsr KysrKysKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgfCAgMiArCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgICAgIHwgODAgKysrKysrKysrKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAgICAgIHwgMzQgKysr KysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMKaW5kZXggNjM0OWE1NjRhOTguLjhkOGRhNjdlNzlmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMKQEAgLTEzMDQsNyArMTMwNCwxMiBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAq bm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAogCQkJCS8qIEVtaXQgUkVTVE9SRSBvcGNvZGU6IHJl c3RvcmUgb3JpZ2luYWwgc2xvdCAqLwogCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9SUFJfTkFW X1JFU1RPUkU7CisJCQkJc2NyYXRjaC5yZXN2YWx1ZSA9IHJlc3Y7CisJCQkJc2NyYXRjaC5yZXNu dWxsID0gcmVzbnVsbDsKIAkJCQlzY3JhdGNoLmQucnByX25hdi53aW5zdGF0ZSA9IHdpbnN0YXRl OworCQkJCWdldF90eXBsZW5ieXZhbChuYXYtPnJlc3VsdHR5cGUsCisJCQkJCQkJCSZzY3JhdGNo LmQucnByX25hdi5yZXN1bHR0eXBsZW4sCisJCQkJCQkJCSZzY3JhdGNoLmQucnByX25hdi5yZXN1 bHR0eXBieXZhbCk7CiAJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwogCQkJ CWJyZWFrOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJ bnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggMmVj NTc5NzMyY2MuLmUyZDQxYzMwOThmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJw LmMKQEAgLTYxNTYsNiArNjE1NiwxMyBAQCBFeGVjRXZhbFJQUk5hdlNldChFeHByU3RhdGUgKnN0 YXRlLCBFeHByRXZhbFN0ZXAgKm9wLCBFeHByQ29udGV4dCAqZWNvbnRleHQpCiAgKiBXaGVuIHNs b3Qgc3dhcCB3YXMgZWxpZGVkICh0YXJnZXQgPT0gY3VycmVudHBvcyksIHRoaXMgaXMgYSBoYXJt bGVzcwogICogbm8tb3Agc2luY2Ugc2F2ZWQgYW5kIGN1cnJlbnQgc2xvdHMgYXJlIGlkZW50aWNh bC4KICAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIGFueSBsb2NhbCBz bG90IGNhY2hlLgorICoKKyAqIEZvciBwYXNzLWJ5LXJlZmVyZW5jZSByZXN1bHQgdHlwZXMsIHRo ZSByZXN1bHQgZGF0dW0gcG9pbnRzIGludG8KKyAqIG5hdl9zbG90J3MgdHVwbGUgbWVtb3J5LiAg SWYgYSBzdWJzZXF1ZW50IG5hdmlnYXRpb24gaW4gdGhlIHNhbWUKKyAqIGV4cHJlc3Npb24gcmUt ZmV0Y2hlcyBuYXZfc2xvdCBmb3IgYSBkaWZmZXJlbnQgcG9zaXRpb24sIHRoZSBvbGQKKyAqIHR1 cGxlIGlzIGZyZWVkLCBsZWF2aW5nIGEgZGFuZ2xpbmcgcG9pbnRlci4gIFdlIHByZXZlbnQgdGhp cyBieQorICogY29weWluZyBwYXNzLWJ5LXJlZiByZXN1bHRzIGludG8gcGVyLXR1cGxlIG1lbW9y eSwgd2hpY2ggc3Vydml2ZXMKKyAqIHVudGlsIHRoZSBuZXh0IFJlc2V0RXhwckNvbnRleHQuCiAg Ki8KIHZvaWQKIEV4ZWNFdmFsUlBSTmF2UmVzdG9yZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZh bFN0ZXAgKm9wLApAQCAtNjE2NCw0ICs2MTcxLDE3IEBAIEV4ZWNFdmFsUlBSTmF2UmVzdG9yZShF eHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCVdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSA9IG9wLT5kLnJwcl9uYXYud2luc3RhdGU7CiAKIAllY29udGV4dC0+ZWN4dF9vdXRlcnR1 cGxlID0gd2luc3RhdGUtPm5hdl9zYXZlZF9vdXRlcnR1cGxlOworCisJLyogU3RhYmlsaXplIHBh c3MtYnktcmVmIHJlc3VsdCBhZ2FpbnN0IG5hdl9zbG90IHJlLWZldGNoICovCisJaWYgKCFvcC0+ ZC5ycHJfbmF2LnJlc3VsdHR5cGJ5dmFsICYmCisJCSEqb3AtPnJlc251bGwpCisJeworCQlNZW1v cnlDb250ZXh0IG9sZENvbnRleHQ7CisKKwkJb2xkQ29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhlY29udGV4dC0+ZWN4dF9wZXJfdHVwbGVfbWVtb3J5KTsKKwkJKm9wLT5yZXN2YWx1ZSA9 IGRhdHVtQ29weSgqb3AtPnJlc3ZhbHVlLAorCQkJCQkJCQkgIGZhbHNlLAorCQkJCQkJCQkgIG9w LT5kLnJwcl9uYXYucmVzdWx0dHlwbGVuKTsKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZENv bnRleHQpOworCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHBy LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IDgzNDgwMGE0MDYyLi5l NmIyYWIzMDQwNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAor KysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC03MDMsNiArNzAzLDggQEAg dHlwZWRlZiBzdHJ1Y3QgRXhwckV2YWxTdGVwCiAJCQlEYXR1bQkgICAqb2Zmc2V0X3ZhbHVlOwkv KiBvZmZzZXQgdmFsdWUocyksIG9yIE5VTEwgKi8KIAkJCWJvb2wJICAgKm9mZnNldF9pc251bGw7 CS8qIG9mZnNldCBudWxsIGZsYWcocykgKi8KIAkJCS8qIEZvciBjb21wb3VuZCBuYXY6IG9mZnNl dF92YWx1ZVswXSA9IGlubmVyLCBbMV0gPSBvdXRlciAqLworCQkJaW50MTYJCXJlc3VsdHR5cGxl bjsJLyogUkVTVE9SRTogcmVzdWx0IHR5cGUgbGVuZ3RoICovCisJCQlib29sCQlyZXN1bHR0eXBi eXZhbDsgLyogUkVTVE9SRTogcmVzdWx0IHBhc3MtYnktdmFsdWU/ICovCiAJCX0JCQlycHJfbmF2 OwogCiAJCS8qIGZvciBFRU9QX0FHR18qREVTRVJJQUxJWkUgKi8KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByLm91dAppbmRleCAwNGVjMjVkNGNmNS4uMzJhYThiYzM3MjIgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwci5vdXQKQEAgLTE2MzUsNiArMTYzNSw4NiBAQCBXSU5ET1cgdyBBUyAoCiAgY29tcGFu eTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAogKDIwIHJvd3MpCiAKKy0tIFBhc3MtYnktcmVmIHR5cGVzOiB0d28gUFJFViBjYWxscyB0YXJn ZXRpbmcgZGlmZmVyZW50IHBvc2l0aW9ucy4KKy0tIFZlcmlmaWVzIHRoYXQgZGF0dW1Db3B5IGlu IFJFU1RPUkUgcHJldmVudHMgZGFuZ2xpbmcgcG9pbnRlcnMgd2hlbgorLS0gbmF2X3Nsb3QgaXMg cmUtZmV0Y2hlZCBmb3IgdGhlIHNlY29uZCBuYXZpZ2F0aW9uLgorLS0gdGRhdGU6OnRleHQgZ2l2 ZXMgZGlzdGluY3QgdGV4dCB2YWx1ZXMgcGVyIHJvdyAoZS5nLiAnMDctMDEtMjAyMycpLgorLS0g QiBtYXRjaGVzIHdoZW4gMS1iYWNrIGRhdGUgdGV4dCA+IDItYmFjayBkYXRlIHRleHQgKGFsd2F5 cyB0cnVlIGZvcgorLS0gYXNjZW5kaW5nIGRhdGVzKSwgc28gQisgZXh0ZW5kcyB0aGUgZnVsbCBw YXJ0aXRpb24gYWZ0ZXIgQS4KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgdGRhdGU6OnRleHQgQVMg dGRhdGVfdGV4dCwKKyAgICAgICBmaXJzdF92YWx1ZSh0ZGF0ZTo6dGV4dCkgT1ZFUiB3LCBsYXN0 X3ZhbHVlKHRkYXRlOjp0ZXh0KSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBE RUZJTkUKKyAgICAgICAgQSBBUyBUUlVFLAorICAgICAgICBCIEFTIFBSRVYodGRhdGU6OnRleHQs IDEpID4gUFJFVih0ZGF0ZTo6dGV4dCwgMikKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwg dGRhdGVfdGV4dCB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAwNy0wMS0yMDIzIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAwNy0wMi0yMDIz IHwgMDctMDItMjAyMyAgfCAwNy0xMC0yMDIzIHwgICAgIDkKKyBjb21wYW55MSB8IDA3LTAzLTIw MjMgfCAwNy0wMy0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTA0LTIwMjMgfCAwNy0wNC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAwNy0wNS0yMDIzIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAwNy0wNi0y MDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3 LTIwMjMgfCAwNy0wNy0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTA4LTIwMjMgfCAwNy0wOC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAwNy0wOS0yMDIzIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAwNy0x MC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTAxLTIwMjMgfCAwNy0wMS0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAwNy0wMi0yMDIzIHwgMDctMDItMjAyMyAgfCAwNy0x MC0yMDIzIHwgICAgIDkKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAwNy0wMy0yMDIzIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAw Ny0wNC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTA1LTIwMjMgfCAwNy0wNS0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAwNy0wNi0yMDIzIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAwNy0wNy0yMDIzIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMg fCAwNy0wOC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTA5LTIwMjMgfCAwNy0wOS0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAwNy0xMC0yMDIzIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCistLSBudW1lcmljOiBQUkVWKHByaWNl OjpudW1lcmljLCAxKSA+IFBSRVYocHJpY2U6Om51bWVyaWMsIDIpCistLSBCIG1hdGNoZXMgd2hl biBwcmljZSAxLWJhY2sgPiBwcmljZSAyLWJhY2sgKGFzY2VuZGluZyBwYWlyKS4KK1NFTEVDVCBj b21wYW55LCB0ZGF0ZSwgcHJpY2U6Om51bWVyaWMgQVMgbnByaWNlLAorICAgICAgIGZpcnN0X3Zh bHVlKHByaWNlOjpudW1lcmljKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2U6Om51bWVyaWMpIE9W RVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFS VElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRS VUUsCisgICAgICAgIEIgQVMgUFJFVihwcmljZTo6bnVtZXJpYywgMSkgPiBQUkVWKHByaWNlOjpu dW1lcmljLCAyKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBucHJpY2UgfCBmaXJzdF92 YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAx LTIwMjMgfCAgICAxMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDItMjAyMyB8ICAgIDIwMCB8ICAgICAgICAgMjAwIHwgICAgICAgIDE1MCB8ICAg ICAyCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAgMTUwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgICAxNDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgIDE1 MCB8ICAgICAgICAgMTUwIHwgICAgICAgICA5MCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wNi0y MDIzIHwgICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTA3LTIwMjMgfCAgICAxMTAgfCAgICAgICAgIDExMCB8ICAgICAgICAxMjAgfCAgICAg MworIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAgMTIwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgICAxMzAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAy MyB8ICAgICA1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wMi0yMDIzIHwgICAyMDAwIHwgICAgICAgIDIwMDAgfCAgICAgICAxNTAwIHwgICAgIDIK KyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAgMTQwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgICAxNTAwIHwg ICAgICAgIDE1MDAgfCAgICAgICAgIDYwIHwgICAgIDIKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMg fCAgICAgNjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDctMjAyMyB8ICAgMTEwMCB8ICAgICAgICAxMTAwIHwgICAgICAgMTIwMCB8ICAgICAzCisg Y29tcGFueTIgfCAwNy0wOC0yMDIzIHwgICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgIDEyMDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAgMTMwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKwogLS0KIC0tIEZJUlNU L0xBU1QgbmF2aWdhdGlvbgogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw ci5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCmluZGV4IGEwNWI0MjljZTc0Li43 MjRkNDYwYjJkYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCkBAIC03NzYsNiArNzc2LDQwIEBAIFdJTkRP VyB3IEFTICgKICAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmlj ZSA8IE5FWFQocHJpY2UsIDEpCiApOwogCistLSBQYXNzLWJ5LXJlZiB0eXBlczogdHdvIFBSRVYg Y2FsbHMgdGFyZ2V0aW5nIGRpZmZlcmVudCBwb3NpdGlvbnMuCistLSBWZXJpZmllcyB0aGF0IGRh dHVtQ29weSBpbiBSRVNUT1JFIHByZXZlbnRzIGRhbmdsaW5nIHBvaW50ZXJzIHdoZW4KKy0tIG5h dl9zbG90IGlzIHJlLWZldGNoZWQgZm9yIHRoZSBzZWNvbmQgbmF2aWdhdGlvbi4KKy0tIHRkYXRl Ojp0ZXh0IGdpdmVzIGRpc3RpbmN0IHRleHQgdmFsdWVzIHBlciByb3cgKGUuZy4gJzA3LTAxLTIw MjMnKS4KKy0tIEIgbWF0Y2hlcyB3aGVuIDEtYmFjayBkYXRlIHRleHQgPiAyLWJhY2sgZGF0ZSB0 ZXh0IChhbHdheXMgdHJ1ZSBmb3IKKy0tIGFzY2VuZGluZyBkYXRlcyksIHNvIEIrIGV4dGVuZHMg dGhlIGZ1bGwgcGFydGl0aW9uIGFmdGVyIEEuCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHRkYXRl Ojp0ZXh0IEFTIHRkYXRlX3RleHQsCisgICAgICAgZmlyc3RfdmFsdWUodGRhdGU6OnRleHQpIE9W RVIgdywgbGFzdF92YWx1ZSh0ZGF0ZTo6dGV4dCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBC WSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEg QispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBQUkVWKHRk YXRlOjp0ZXh0LCAxKSA+IFBSRVYodGRhdGU6OnRleHQsIDIpCispOworCistLSBudW1lcmljOiBQ UkVWKHByaWNlOjpudW1lcmljLCAxKSA+IFBSRVYocHJpY2U6Om51bWVyaWMsIDIpCistLSBCIG1h dGNoZXMgd2hlbiBwcmljZSAxLWJhY2sgPiBwcmljZSAyLWJhY2sgKGFzY2VuZGluZyBwYWlyKS4K K1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2U6Om51bWVyaWMgQVMgbnByaWNlLAorICAgICAg IGZpcnN0X3ZhbHVlKHByaWNlOjpudW1lcmljKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2U6Om51 bWVyaWMpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAo CisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAg ICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgUFJFVihwcmljZTo6bnVtZXJpYywgMSkgPiBQUkVW KHByaWNlOjpudW1lcmljLCAyKQorKTsKKwogLS0KIC0tIEZJUlNUL0xBU1QgbmF2aWdhdGlvbgog LS0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0030-Add-inline-comments-design-notes.txt" Content-Disposition: attachment; filename="nocfbot-0030-Add-inline-comments-design-notes.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfowg929 RnJvbSBkMDk5MDhmMTYwMjUzMTlkYTc3NzFjNDA4OTJhM2E2NmRmNWZkYjdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMjA6NDk6MjcgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgaW5s aW5lIGNvbW1lbnRzIGZvciBjb21wbGV4IFJQUiBhbGdvcml0aG1zIGFuZCBkZXNpZ24KIG5vdGVz CgpEb2N1bWVudCBFTkQgY2hhaW4gdHJhdmVyc2FsIGluIG5mYV9tYXRjaCgpLCBmYXN0LWZvcndh cmQgcGF0aHMKaW4gbmZhX2FkdmFuY2VfZW5kKCksIGFic29ycHRpb24gc2FmZXR5IHJ1bGVzIHdp dGggbmF2aWdhdGlvbgpsb29rdXAgdGFibGUsIHBlci1jb250ZXh0IGV2YWx1YXRpb24gc3RyYXRl Z3kgdGFibGUsIGZpeGVkLWxlbmd0aApncm91cCB1bnJvbGxpbmcgcmF0aW9uYWxlLCBhbmQgQkVH SU4vRU5EIHBvaW50ZXIgbGF5b3V0IGRpYWdyYW0uCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1JQUi5jICAgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgfCA0MSArKysrKysrKysrKystLQogMiBmaWxlcyBj aGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1JQUi5jCmluZGV4IGRlZGUyZGZhYjBkLi4wMzdkM2IyZTIzMiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNS UFIuYwpAQCAtNDQwLDcgKzQ0MCwxNCBAQAogICogICBDYXNlIDI6IEdST1VQKyB3aXRoIGZpeGVk LWxlbmd0aCBjaGlsZHJlbiAobWluID09IG1heCwgcmVjdXJzaXZlbHkpCiAgKiAgICAgICAgICAg ZS5nLiwgKEEgQikrLCAoQSBCezJ9KSssICgoQSAoQiBDKXsyfSl7Mn0pKwogICogICAgICAgICAg IC0+IEFCU09SQkFCTEVfQlJBTkNIIG9uIGFsbCBlbGVtZW50cyB3aXRoaW4gdGhlIGdyb3VwLAot ICogICAgICAgICAgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNIIG9uIEVORAorICog ICAgICAgICAgICAgIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBvbiBFTkQKKyAqCisg KiAgICAgICAgICAgV2h5IHRoaXMgaXMgc2FmZTogd2hlbiBldmVyeSBjaGlsZCBoYXMgbWluID09 IG1heCwgdGhlIGdyb3VwCisgKiAgICAgICAgICAgaXMgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQg dG8gdW5yb2xsaW5nIGl0cyBib2R5IGludG8gezEsMX0KKyAqICAgICAgICAgICBlbGVtZW50cy4g IEUuZy4sIChBIEJ7Mn0pKyBiZWhhdmVzIGxpa2UgKEEgQiBCKSsuICBFYWNoCisgKiAgICAgICAg ICAgaXRlcmF0aW9uIGNvbnN1bWVzIGEgZml4ZWQgbnVtYmVyIG9mIHJvd3MsIHNvIGFuIGVhcmxp ZXIKKyAqICAgICAgICAgICBjb250ZXh0J3MgY291bnQgYWx3YXlzIGRvbWluYXRlcyBhIGxhdGVy IG9uZSdzIChtb25vdG9uaWNpdHkpLgorICoKICAqICAgQ2FzZSAzOiBHUk9VUCsgd2hvc2UgYm9k eSBzdGFydHMgd2l0aCBWQVIrIChlLmcuLCAoQSsgQikrKQogICogICAgICAgICAgIC0+IFJlY3Vy c2VzIGZyb20gQkVHSU4gaW50byB0aGUgYm9keSwgYXBwbHlpbmcgQ2FzZSAxLgogICogICAgICAg ICAgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNIIHNldCBvbiBBLgpAQCAtNjQ3LDYg KzY1NCwxOSBAQAogICogdmFyaWFibGVzLiAgVGhlIG9yaWdpbmFsIG5hdl9tYXRjaF9zdGFydCBh bmQgY3VycmVudHBvcyBhcmUgc2F2ZWQgYW5kCiAgKiByZXN0b3JlZCBhZnRlciByZS1ldmFsdWF0 aW9uLgogICoKKyAqIFN1bW1hcnkgb2YgZXZhbHVhdGlvbiBzdHJhdGVneSBieSBuYXZpZ2F0aW9u IGNvbnRlbnQ6CisgKgorICogICBOYXZpZ2F0aW9uIGNvbnRlbnQgICAgICAgICAgICAgICBldmFs dWF0aW9uCisgKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqICAgTm8gbmF2aWdhdGlvbiAgICAgICAgICAgICAgICAgICAgc2hhcmVk IChvbmNlIHBlciByb3cpCisgKiAgIFBSRVYvTkVYVCBvbmx5ICAgICAgICAgICAgICAgICAgIHNo YXJlZCAob25jZSBwZXIgcm93KQorICogICBMQVNUIChubyBvZmZzZXQpICAgICAgICAgICAgICAg ICBzaGFyZWQgKG9uY2UgcGVyIHJvdykKKyAqICAgTEFTVCAod2l0aCBvZmZzZXQpICAgICAgICAg ICAgICAgcGVyLWNvbnRleHQKKyAqICAgRklSU1QgKGFueSkgICAgICAgICAgICAgICAgICAgICAg cGVyLWNvbnRleHQKKyAqICAgQ29tcG91bmQgKGlubmVyIEZJUlNUKSAgICAgICAgICAgcGVyLWNv bnRleHQKKyAqICAgQ29tcG91bmQgKGlubmVyIExBU1QsIG5vIG9mZi4pICAgc2hhcmVkIChvbmNl IHBlciByb3cpCisgKiAgIENvbXBvdW5kIChpbm5lciBMQVNULCB3L29mZi4pICAgIHBlci1jb250 ZXh0CisgKgogICogVkktNS4gVHVwbGVzdG9yZSBNYXJrIGFuZCBUcmltIChub2RlV2luZG93QWdn LmMpCiAgKgogICogTmF2aWdhdGlvbiBmdW5jdGlvbnMgcmVxdWlyZSBhY2Nlc3MgdG8gcGFzdCBy b3dzIHZpYSB0aGUgdHVwbGVzdG9yZS4KQEAgLTc2MiwxMSArNzgyLDI2IEBACiAgKiAgIChiKSBV bmJvdW5kZWQgZnJhbWUgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVECiAg KiAgICAgICBGT0xMT1dJTkcpLiAgTGltaXRlZCBmcmFtZXMgYXBwbHkgZGlmZmVyZW50bHkgdG8g ZWFjaCBjb250ZXh0LAogICogICAgICAgYnJlYWtpbmcgdGhlIG1vbm90b25pY2l0eSBwcmluY2lw bGUuCi0gKiAgIChjKSBObyBtYXRjaF9zdGFydC1kZXBlbmRlbnQgbmF2aWdhdGlvbiBpbiBERUZJ TkUuICBGSVJTVCwKLSAqICAgICAgIExBU1Qtd2l0aC1vZmZzZXQsIGFuZCBjb21wb3VuZCBuYXZp Z2F0aW9uIHJlZmVyZW5jaW5nIG1hdGNoX3N0YXJ0Ci0gKiAgICAgICAoUFJFVl9GSVJTVCwgTkVY VF9GSVJTVCwgUFJFVl9MQVNUL05FWFRfTEFTVCB3aXRoIG9mZnNldCkKLSAqICAgICAgIGNhdXNl IGRpZmZlcmVudCBjb250ZXh0cyB0byBldmFsdWF0ZSB0byBkaWZmZXJlbnQgdmFsdWVzIGZvciB0 aGUKLSAqICAgICAgIHNhbWUgcm93LCBicmVha2luZyBtb25vdG9uaWNpdHkuCisgKiAgIChjKSBO byBtYXRjaF9zdGFydC1kZXBlbmRlbnQgbmF2aWdhdGlvbiBpbiBERUZJTkUuCisgKgorICogICAg ICAgTWVjaGFuaXNtOiBlYWNoIGNvbnRleHQgaGFzIGEgZGlmZmVyZW50IG1hdGNoU3RhcnRSb3cs IHNvIEZJUlNUCisgKiAgICAgICByZXNvbHZlcyB0byBhIGRpZmZlcmVudCByb3cgZm9yIGVhY2gg Y29udGV4dCBhdCB0aGUgc2FtZQorICogICAgICAgY3VycmVudHBvcy4gIEFuIGVhcmxpZXIgY29u dGV4dCdzIERFRklORSByZXN1bHQgbm8gbG9uZ2VyCisgKiAgICAgICBzdWJzdW1lcyBhIGxhdGVy IG9uZSdzLCBtYWtpbmcgY291bnQtZG9taW5hbmNlIGNvbXBhcmlzb24KKyAqICAgICAgIGludmFs aWQuICBSYXRoZXIgdGhhbiBjb21wYXJpbmcgbWF0Y2hTdGFydFJvdyBhdCBydW50aW1lCisgKiAg ICAgICAod2hpY2ggd291bGQgY29tcGxpY2F0ZSB0aGUgYWJzb3JiIHBhdGgpLCBhbnkgbWF0Y2hf c3RhcnQKKyAqICAgICAgIGRlcGVuZGVuY3kgZGlzYWJsZXMgYWJzb3JwdGlvbiBlbnRpcmVseS4K KyAqCisgKiAgICAgICBOYXZpZ2F0aW9uIGNvbnRlbnQgICAgICAgICAgICAgIG1hdGNoX3N0YXJ0 IGRlcC4gIGFic29ycHRpb24KKyAqICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgICAgTm8gbmF2aWdhdGlvbiAg ICAgICAgICAgICAgICAgICBub25lICAgICAgICAgICAgICBzYWZlCisgKiAgICAgICBQUkVWL05F WFQgb25seSAgICAgICAgICAgICAgICAgIG5vbmUgICAgICAgICAgICAgIHNhZmUKKyAqICAgICAg IExBU1QgKG5vIG9mZnNldCkgICAgICAgICAgICAgICAgbm9uZSAgICAgICAgICAgICAgc2FmZQor ICogICAgICAgTEFTVCAod2l0aCBvZmZzZXQpICAgICAgICAgICAgICBib3VuZGFyeSBjaGVjayAg ICB1bnNhZmUKKyAqICAgICAgIEZJUlNUIChhbnkpICAgICAgICAgICAgICAgICAgICAgZGlyZWN0 ICAgICAgICAgICAgdW5zYWZlCisgKiAgICAgICBDb21wb3VuZCAoaW5uZXIgRklSU1QpICAgICAg ICAgIGRpcmVjdCAgICAgICAgICAgIHVuc2FmZQorICogICAgICAgQ29tcG91bmQgKGlubmVyIExB U1QsIG5vIG9mZi4pICBub25lICAgICAgICAgICAgICBzYWZlCisgKiAgICAgICBDb21wb3VuZCAo aW5uZXIgTEFTVCwgdy9vZmYuKSAgIGJvdW5kYXJ5IGNoayAgICAgIHVuc2FmZQogICoKICAqIFJ1 bnRpbWUgY29uZGl0aW9ucyAoZXZhbHVhdGVkIHBlciBjb250ZXh0IHBhaXIpOgogICoKQEAgLTIy NjAsNyArMjI5NSwxMyBAQCBuZmFfYWJzb3JiX2NvbnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSkKICAqIG5mYV9ldmFsX3Zhcl9tYXRjaAogICoKICAqIEV2YWx1YXRlIGlmIGEgVkFSIGVs ZW1lbnQgbWF0Y2hlcyB0aGUgY3VycmVudCByb3cuCi0gKiBVbmRlZmluZWQgdmFyaWFibGVzICh2 YXJJZCA+PSBkZWZpbmVWYXJpYWJsZUxpc3QgbGVuZ3RoKSBkZWZhdWx0IHRvIFRSVUUuCisgKgor ICogdmFyTWF0Y2hlZCBpcyBhIHByZS1ldmFsdWF0ZWQgYm9vbGVhbiBhcnJheSBpbmRleGVkIGJ5 IHZhcklkLCBjb21wdXRlZAorICogb25jZSBwZXIgcm93IGJ5IGV2YWx1YXRpbmcgYWxsIERFRklO RSBleHByZXNzaW9ucy4gIE5VTEwgbWVhbnMgbm8gREVGSU5FCisgKiBjbGF1c2VzIGV4aXN0IChv bmx5IHBvc3NpYmxlIGR1cmluZyBlYXJseSBkZXZlbG9wbWVudC90ZXN0aW5nKS4KKyAqCisgKiBQ ZXIgU1FMOjIwMTYgUjAyMCwgcGF0dGVybiB2YXJpYWJsZXMgbm90IGxpc3RlZCBpbiBERUZJTkUg YXJlIGltcGxpY2l0bHkKKyAqIFRSVUUgLS0gdGhleSBtYXRjaCBldmVyeSByb3cuICBUaGlzIGlz IGNoZWNrZWQgdmlhIHZhcklkID49IGxpc3RfbGVuZ3RoLgogICovCiBzdGF0aWMgYm9vbAogbmZh X2V2YWxfdmFyX21hdGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSUGF0dGVybkVsZW1l bnQgKmVsZW0sCkBAIC0yMzM3LDkgKzIzNzgsMjAgQEAgbmZhX21hdGNoKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LCBib29sICp2YXJNYXRjaGVkKQogCiAJCQkJ LyoKIAkJCQkgKiBGb3IgVkFSIGF0IG1heCBjb3VudCB3aXRoIEVORCBuZXh0LCBhZHZhbmNlIHRo cm91Z2ggRU5ECi0JCQkJICogY2hhaW4gdG8gcmVhY2ggdGhlIGFic29ycHRpb24ganVkZ21lbnQg cG9pbnQuIE9ubHkKKwkJCQkgKiBjaGFpbiB0byByZWFjaCB0aGUgYWJzb3JwdGlvbiBqdWRnbWVu dCBwb2ludC4gIE9ubHkKIAkJCQkgKiBkZXRlcm1pbmlzdGljIGV4aXRzIChjb3VudCA+PSBtYXgs IG1heCBmaW5pdGUpIGFyZSBoYW5kbGVkOwogCQkJCSAqIHVuYm91bmRlZCBWQVJzIHN0YXkgZm9y IGFkdmFuY2UgcGhhc2UuCisJCQkJICoKKwkJCQkgKiBJbiBuZXN0ZWQgcGF0dGVybnMgbGlrZSAo KEEgQil7Mn0pezN9LCBhIFZBUiByZWFjaGluZyBpdHMKKwkJCQkgKiBtYXggdHJpZ2dlcnMgYW4g ZXhpdCBjYXNjYWRlOiBpbm5lciBFTkQgaW5jcmVtZW50cyBpbm5lcgorCQkJCSAqIGdyb3VwIGNv dW50LCB3aGljaCBtYXkgaXRzZWxmIHJlYWNoIG1heCwgcmVxdWlyaW5nIGFuIGV4aXQKKwkJCQkg KiB0byB0aGUgbmV4dCBvdXRlciBFTkQuICBUaGUgbG9vcCBiZWxvdyB3YWxrcyB0aGlzIGNoYWlu LgorCQkJCSAqCisJCQkJICogQUJTT1JCQUJMRV9CUkFOQ0ggbWFya3MgZWxlbWVudHMgaW5zaWRl IHRoZSBhYnNvcmJhYmxlCisJCQkJICogcmVnaW9uOyBBQlNPUkJBQkxFIG1hcmtzIHRoZSBvdXRl cm1vc3QganVkZ21lbnQgcG9pbnQKKwkJCQkgKiB3aGVyZSBjb3VudC1kb21pbmFuY2UgaXMgZXZh bHVhdGVkLiAgV2UgY2hhaW4gdGhyb3VnaAorCQkJCSAqIEJSQU5DSCBlbGVtZW50cyB1bnRpbCBy ZWFjaGluZyB0aGUgQUJTT1JCQUJMRSBwb2ludCBvcgorCQkJCSAqIGFuIGVsZW1lbnQgdGhhdCBj YW4gc3RpbGwgbG9vcCAoY291bnQgPCBtYXgpLgogCQkJCSAqLwogCQkJCWlmIChSUFJFbGVtSXNB YnNvcmJhYmxlQnJhbmNoKGVsZW0pICYmCiAJCQkJCSFSUFJFbGVtSXNBYnNvcmJhYmxlKGVsZW0p ICYmCkBAIC0yNTYxLDEyICsyNjEzLDI1IEBAIG5mYV9hZHZhbmNlX2VuZChXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJUlBSUGF0dGVybkVsZW1lbnQgKmp1 bXBFbGVtOwogCQlSUFJORkFTdGF0ZSAqZmZTdGF0ZSA9IE5VTEw7CiAKLQkJLyogU25hcHNob3Qg c3RhdGUgZm9yIGZmIHBhdGggYmVmb3JlIG1vZGlmeWluZyBmb3IgbG9vcC1iYWNrICovCisJCS8q CisJCSAqIFR3byBwYXRocyBhcmUgZXhwbG9yZWQgaW4gcGFyYWxsZWwgd2hlbiB0aGUgZ3JvdXAg Ym9keSBpcworCQkgKiBudWxsYWJsZSAoUlBSX0VMRU1fRU1QVFlfTE9PUCk6CisJCSAqCisJCSAq IDEuIFByaW1hcnkgcGF0aDogbG9vcCBiYWNrIGFuZCBhdHRlbXB0IHJlYWwgbWF0Y2hlcyBpbiB0 aGUKKwkJICogICAgbmV4dCBpdGVyYXRpb24gKHN0YXRlLCBtb2RpZmllZCBiZWxvdykuCisJCSAq CisJCSAqIDIuIEZhc3QtZm9yd2FyZCBwYXRoOiBza2lwIGRpcmVjdGx5IHRvIGFmdGVyIHRoZSBn cm91cCwKKwkJICogICAgdHJlYXRpbmcgYWxsIHJlbWFpbmluZyByZXF1aXJlZCBpdGVyYXRpb25z IGFzIGVtcHR5CisJCSAqICAgIG1hdGNoZXMgKGZmU3RhdGUsIGhhbmRsZWQgYWZ0ZXIgdGhlIHBy aW1hcnkgcGF0aCkuCisJCSAqCisJCSAqIFRoZSBzbmFwc2hvdCBtdXN0IGJlIHRha2VuIEJFRk9S RSBtb2RpZnlpbmcgc3RhdGUgZm9yIHRoZQorCQkgKiBsb29wLWJhY2ssIHNpbmNlIGJvdGggcGF0 aHMgZGl2ZXJnZSBmcm9tIHRoZSBzYW1lIHBvaW50LgorCQkgKi8KIAkJaWYgKFJQUkVsZW1DYW5F bXB0eUxvb3AoZWxlbSkpCiAJCQlmZlN0YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwg c3RhdGUtPmVsZW1JZHgsCiAJCQkJCQkJCQkgICBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNv cmJhYmxlKTsKIAotCQkvKiBMb29wIGJhY2sgZm9yIHJlYWwgbWF0Y2hlcyAocHJpbWFyeSBwYXRo KSAqLworCQkvKiBQcmltYXJ5IHBhdGg6IGxvb3AgYmFjayBmb3IgcmVhbCBtYXRjaGVzICovCiAJ CWZvciAoaW50IGQgPSBkZXB0aCArIDE7IGQgPCBwYXR0ZXJuLT5tYXhEZXB0aDsgZCsrKQogCQkJ c3RhdGUtPmNvdW50c1tkXSA9IDA7CiAJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+anVtcDsKQEAg LTI1NzUsMTIgKzI2NDAsMTIgQEAgbmZhX2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkJCQkJICBjdXJyZW50UG9zKTsKIAogCQkvKgot CQkgKiBGYXN0LWZvcndhcmQgZmFsbGJhY2sgZm9yIG51bGxhYmxlIGJvZGllcy4gIEUuZy4gKEE/ KXsyLDN9IHdoZW4gQQotCQkgKiBkb2Vzbid0IG1hdGNoOiB0aGUgbG9vcC1iYWNrIHByb2R1Y2Vz IGVtcHR5IGl0ZXJhdGlvbnMgdGhhdCBjeWNsZQotCQkgKiBkZXRlY3Rpb24gd291bGQga2lsbC4g IEluc3RlYWQsIGV4aXQgZGlyZWN0bHkgdHJlYXRpbmcgYWxsCi0JCSAqIHJlbWFpbmluZyByZXF1 aXJlZCBpdGVyYXRpb25zIGFzIGVtcHR5LiAgUm91dGUgdG8gZWxlbS0+bmV4dCAobm90Ci0JCSAq IG5mYV9hZHZhbmNlX2VuZCkgdG8gYXZvaWQgY3JlYXRpbmcgY29tcGV0aW5nIGdyZWVkeS9yZWx1 Y3RhbnQgbG9vcAotCQkgKiBzdGF0ZXMuCisJCSAqIEZhc3QtZm9yd2FyZCBwYXRoIGZvciBudWxs YWJsZSBib2RpZXMuICBFLmcuIChBPyl7MiwzfSB3aGVuCisJCSAqIEEgZG9lc24ndCBtYXRjaDog dGhlIHByaW1hcnkgbG9vcC1iYWNrIHByb2R1Y2VzIGVtcHR5CisJCSAqIGl0ZXJhdGlvbnMgdGhh dCBjeWNsZSBkZXRlY3Rpb24gd291bGQga2lsbC4gIEluc3RlYWQsIGV4aXQKKwkJICogZGlyZWN0 bHkgd2l0aCBjb3VudCBzYXRpc2ZpZWQuICBSb3V0ZSB0byBlbGVtLT5uZXh0IChub3QKKwkJICog bmZhX2FkdmFuY2VfZW5kKSB0byBhdm9pZCBjcmVhdGluZyBjb21wZXRpbmcgZ3JlZWR5L3JlbHVj dGFudAorCQkgKiBsb29wIHN0YXRlcy4KIAkJICovCiAJCWlmIChmZlN0YXRlICE9IE5VTEwpCiAJ CXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKaW5kZXggNzY3YTIxNDAxNmMuLjc1NGZjZDUzMDk5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYworKysgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwpAQCAtNDc4LDYgKzQ3OCwxOSBAQCBtZXJnZUNv bnNlY3V0aXZlQWx0cyhMaXN0ICpjaGlsZHJlbikKICAqIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXgK ICAqCQlNZXJnZSBzZXF1ZW5jZSBwcmVmaXgvc3VmZml4IGludG8gR1JPVVAgd2l0aCBtYXRjaGlu ZyBjaGlsZHJlbi4KICAqCisgKiBXaGVuIGEgR1JPVVAncyBjaGlsZHJlbiBhcHBlYXIgYXMgYSBw cmVmaXggYmVmb3JlIGFuZC9vciBzdWZmaXggYWZ0ZXIKKyAqIHRoZSBHUk9VUCBpbiBhIFNFUSwg YWJzb3JiIHRoZW0gYnkgaW5jcmVtZW50aW5nIHRoZSBHUk9VUCdzIHF1YW50aWZpZXIuCisgKiBU aGlzIHJ1bnMgaXRlcmF0aXZlbHk6IEEgQiBBIEIgKEEgQikrIEEgQiAtPiAoQSBCKXs1LH0uCisg KgorICogQWxnb3JpdGhtOgorICogICBGb3IgZWFjaCBHUk9VUCBlbmNvdW50ZXJlZCBpbiB0aGUg c2VxdWVuY2U6CisgKiAgIDEuIFBSRUZJWCBwaGFzZTogY29tcGFyZSB0aGUgbGFzdCBOIGVsZW1l bnRzIGFscmVhZHkgaW4gdGhlIHJlc3VsdAorICogICAgICBsaXN0IGFnYWluc3QgdGhlIEdST1VQ J3MgY2hpbGRyZW4uICBPbiBtYXRjaCwgcmVtb3ZlIHRoZW0gZnJvbQorICogICAgICByZXN1bHQg YW5kIGluY3JlbWVudCB0aGUgR1JPVVAncyBtaW4vbWF4LiAgUmVwZWF0IHVudGlsIG5vIG1hdGNo LgorICogICAyLiBTVUZGSVggcGhhc2U6IGNvbXBhcmUgdGhlIG5leHQgTiBlbGVtZW50cyBpbiB0 aGUgaW5wdXQgYWdhaW5zdAorICogICAgICB0aGUgR1JPVVAncyBjaGlsZHJlbi4gIE9uIG1hdGNo LCBza2lwIHRoZW0gKHZpYSBza2lwVW50aWwpIGFuZAorICogICAgICBpbmNyZW1lbnQgbWluL21h eC4gIFJlcGVhdCB1bnRpbCBubyBtYXRjaC4KKyAqCiAgKiBFeGFtcGxlczoKICAqICAgQSBCIChB IEIpKyAtPiAoQSBCKXsyLH0KICAqICAgKEEgQikrIEEgQiAtPiAoQSBCKXsyLH0KQEAgLTgxMyw4 ICs4MjYsMTYgQEAgdHJ5TXVsdGlwbHlRdWFudGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVy bikKIAl9CiAKIAkvKgotCSAqIENhc2UgMi8zOiBTYWZlIHdoZW4gY2hpbGQgaXMgZmluaXRlIEFO RCAob3V0ZXIgaXMgZXhhY3QgT1IgY2hpbGQgaXMKLQkgKiB7MSwxfSkKKwkgKiBDYXNlIDI6IE91 dGVyIGV4YWN0IChtaW4gPT0gbWF4KTogKEF7MiwzfSl7NH0gLT4gQXs4LDEyfS4KKwkgKiAgICAg ICAgIFNhZmUgYmVjYXVzZSBldmVyeSBpdGVyYXRpb24gcHJvZHVjZXMgdGhlIHNhbWUgcmFuZ2Uu CisJICoKKwkgKiBDYXNlIDM6IENoaWxkIHsxLDF9OiAoQSl7Miw1fSAtPiBBezIsNX0uCisJICog ICAgICAgICBTYWZlIGJlY2F1c2UgdGhlIGNoaWxkIGNvbnRyaWJ1dGVzIGV4YWN0bHkgb25lIHBl cgorCSAqICAgICAgICAgaXRlcmF0aW9uLCBzbyB0aGUgb3V0ZXIgcmFuZ2UgbWFwcyBkaXJlY3Rs eS4KKwkgKgorCSAqIFVuc2FmZSBleGFtcGxlOiAoQXsyfSl7MiwzfSBwcm9kdWNlcyBjb3VudHMg NCBvciA2IG9ubHksIG5vdAorCSAqIHRoZSBmdWxsIHJhbmdlIDQuLjYsIHNvIHdlIGNhbm5vdCBm bGF0dGVuIHdoZW4gY2hpbGQgaGFzIGEKKwkgKiBub24tdHJpdmlhbCByYW5nZSBBTkQgb3V0ZXIg aXMgYWxzbyBhIHJhbmdlLgogCSAqLwogCWlmIChjaGlsZC0+bWF4ICE9IFJQUl9RVUFOVElUWV9J TkYgJiYKIAkJKHBhdHRlcm4tPm1pbiA9PSBwYXR0ZXJuLT5tYXggfHwKQEAgLTgyNCw2ICs4NDUs NyBAQCB0cnlNdWx0aXBseVF1YW50aWZpZXJzKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKQogCQlp ZiAobmV3X21pbl82NCA+PSBSUFJfUVVBTlRJVFlfSU5GKQogCQkJcmV0dXJuIHBhdHRlcm47CiAK KwkJLyogT3V0ZXIgdW5ib3VuZGVkOiByZXN1bHQgaXMgdW5ib3VuZGVkIHJlZ2FyZGxlc3Mgb2Yg Y2hpbGQgKi8KIAkJaWYgKHBhdHRlcm4tPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GKQogCQkJbmV3 X21heF82NCA9IFJQUl9RVUFOVElUWV9JTkY7CiAJCWVsc2UKQEAgLTExODYsOCArMTIwOCwxOSBA QCBmaWxsUlBSUGF0dGVyblZhcihSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0 LCBpbnQgKmlkeCwgUlBSRGVwdGggZGVwdAogICogZmlsbFJQUlBhdHRlcm5Hcm91cAogICoJCUZp bGwgYSBHUk9VUCBwYXR0ZXJuIGFuZCBpdHMgY2hpbGRyZW4uCiAgKgotICogQ3JlYXRlcyBlbGVt ZW50cyBmb3IgZ3JvdXAgY29udGVudCBhdCBpbmNyZWFzZWQgZGVwdGgsIHBsdXMgYW4gRU5EIG1h cmtlcgotICogaWYgdGhlIGdyb3VwIGhhcyBhIG5vbi10cml2aWFsIHF1YW50aWZpZXIuCisgKiBD cmVhdGVzIGVsZW1lbnRzIGZvciBncm91cCBjb250ZW50IGF0IGluY3JlYXNlZCBkZXB0aCwgcGx1 cyBCRUdJTi9FTkQKKyAqIG1hcmtlciBwYWlyIGlmIHRoZSBncm91cCBoYXMgYSBub24tdHJpdmlh bCBxdWFudGlmaWVyIChub3QgezEsMX0pLgorICoKKyAqIEVsZW1lbnQgbGF5b3V0IGZvciAoQSBC KXsyLDN9OgorICoKKyAqICAgW0JFR0lOXSAgW0FdICBbQl0gIFtFTkRdICBbbmV4dCBlbGVtZW50 Li4uXQorICogICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIF4KKyAqICAgICB8ICAg ICAgICAgICAgICAgICAgKy0tIGp1bXAgLS0rIChsb29wIGJhY2sgdG8gZmlyc3QgY2hpbGQpCisg KiAgICAgKy0tLS0ganVtcCAtLS0tLS0tLS0tLS0tLS0tLS0tKyAoc2tpcCB0byBhZnRlciBFTkQp CisgKgorICogQkVHSU4uanVtcCBwb2ludHMgcGFzdCBFTkQgKHNraXAgcGF0aCB3aGVuIGNvdW50 ID49IG1heCBvciBtaW4gPT0gMCkuCisgKiBFTkQuanVtcCBwb2ludHMgdG8gdGhlIGZpcnN0IGNo aWxkIChsb29wLWJhY2sgcGF0aCkuCisgKiBCRUdJTi5uZXh0IGFuZCBFTkQubmV4dCBhcmUgc2V0 IGxhdGVyIGJ5IGZpbmFsaXplUlBSUGF0dGVybigpLgogICoKICAqIFJldHVybnMgdHJ1ZSBpZiB0 aGlzIGdyb3VwIGlzIG51bGxhYmxlLiAgQSBncm91cCBpcyBudWxsYWJsZSB3aGVuIGl0cwogICog bWluIGlzIDAgKGNhbiBiZSBza2lwcGVkIGVudGlyZWx5KSBvciBpdHMgYm9keSBpcyBudWxsYWJs ZSAoZXZlcnkgcGF0aAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0031-Remove-unused-include-fix-header-ordering.txt" Content-Disposition: attachment; filename="nocfbot-0031-Remove-unused-include-fix-header-ordering.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnvfoz0e30 RnJvbSAyOWU4YWFhMDFiYjMyMWRhOWViMjIyODgzMmNjMjU5NzI1YWM3ODQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMjA6NTI6MTMgKzA5MDAKU3ViamVjdDogW1BBVENIXSBSZW1vdmUg dW51c2VkIGluY2x1ZGUgYW5kIGZpeCBoZWFkZXIgb3JkZXJpbmcgaW4gUlBSIGZpbGVzCgotLS0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgfCAyICstCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgIHwgMyArLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9ycHIuYyAgICAgICAgfCAzICstLQogMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5k ZXggZTJkNDFjMzA5OGYuLjU4YjY2OTNlZDc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKQEAgLTU2LDggKzU2LDggQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAK LSNpbmNsdWRlICJjb21tb24vaW50LmgiCiAjaW5jbHVkZSAiYWNjZXNzL2hlYXB0b2FzdC5oIgor I2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHVwY29udmVydC5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNl LmgiCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggODQ5ZWJmOGFiYjAuLjAy ZjE3ZTU0NzJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdn LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC0zNCwxMCAr MzQsOSBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9k ZXRhaWxzLmgiCi0jaW5jbHVkZSAiY29tbW9uL2ludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2Jq ZWN0YWNjZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKLSNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbGxhdGlvbl9kLmgiCisjaW5jbHVkZSAiY29tbW9uL2ludC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY1JQUi5oIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3Jwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4 IDhmYmUxMmUxNTE4Li44ODY0YjIwZTZjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpAQCAtMzAs OSArMzAsOCBAQAogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgIm9wdGlt aXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCi0jaW5jbHVkZSAi cGFyc2VyL3BhcnNlX2NsYXVzZS5oIgotI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJz ZV9jb2xsYXRlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJw YXJzZXIvcGFyc2VfcnByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgotLSAK Mi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000016da6c064f3e4dc0--