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 1w3bu4-001OJ3-0H for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 15:36:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w3bu2-006nKA-29 for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 15:36:47 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w3bu1-006nK2-1o for pgsql-hackers@lists.postgresql.org; Fri, 20 Mar 2026 15:36:46 +0000 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w3bto-00000000Bfs-3Nrs for pgsql-hackers@postgresql.org; Fri, 20 Mar 2026 15:36:44 +0000 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-35b95e21ccaso1454705a91.0 for ; Fri, 20 Mar 2026 08:36:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774020992; cv=none; d=google.com; s=arc-20240605; b=Ib3iR30T830SuGgFSHDN0CzRJDENSEt7hBa5IurnHWYejdVQe4165BtcfwtoHHUhk/ XrXo/U6e9m2tziZE+zynpGXNkRV8pGZ1Dtr1El05RFJHN8knP4dDHQ8y9AX+oM6tLyFz P1zvNOgxZa1VBu3DiEWoR027otBtevJbZqlfl1kvDqYnMZjiGAaV4hsrvY8l5RwPPu1T 0bOzJLN9BevRjzPWZckKgIwhwSvsleJuSVFYm2psxv+l/Z1IdbAAF+Qg8PGuJC7NDXr4 OH/mqVp4E5HWnqlfweswNxGjdyjDr1QRi/uLwMH8jMDcpFlP2+n+qBV2qadeNBnFFwrC RjOg== 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=aAF1J85VQUizX7vAdvJO6KCXZgcFdU9+27dlKgIxKCQ=; fh=FWEhvkGvtJBe0NsBugFk63pARTO7tcpQG3ejeedVJxY=; b=bmgXEn4roqjuIwuhfgCdecm38A+uMsK8qxKhxLCSUj7EjMIm0AtVfhKvnxgnZbv/2N BH44/RjfuT6GZENC3FN0f+7Prx1gP0MEkWDIyOt9xuVd8qfio+t1fLb3HRziWGQ/dzyI q6Z2dEKT+ZpyEoDJwDbbDRF50wDPrWXbv5iDG30W4HhucxDyawggKr3+UrDgh9S6Okf/ NNcNykPscHGVdXPWiwbh6Bd2Ti53DgST8AuVUBepEEY7VDhzVxfKe4v/d9Hza8d3sDw+ sjmG/JEGElf+oHwKZgefQm+SGo5uCmpTLbHBDlRfFaHUWUoi/XRmKi0kByKWSRinc8zx YpUA==; 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=20230601; t=1774020992; x=1774625792; 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=aAF1J85VQUizX7vAdvJO6KCXZgcFdU9+27dlKgIxKCQ=; b=VpDByMCbf1UX0uFZjKbk3iIj+c0ET4LOZsDRs7FnlZZIce/RzZAwAacTwFoXcRr/Lt cf+IwGBHnUMmYn2y2V2yYd+Hk94O/7oypsxRR1yxsMZz+dod2q2iFYbspN2OBASG4Jk7 ipUl86IfVh2uNPYeUkVgzwv9tIKXxaR3SuQjss+9/cZJhEQnr1pMhGMSYZne7mxWhwZE 7AzQQgQxxTvyPwnqrjkeg2NCQHr+bxJ/NcsGXbaJk6Xm0L7Zl7n+uQLSEF7DPlID41yi IE0LULBeZpi5W/FQXGeKh1MitBqcE9fWAHfR8b8qvP09+VORXqMdSoEznlc9tj/IINUZ Gu8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774020992; x=1774625792; 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=aAF1J85VQUizX7vAdvJO6KCXZgcFdU9+27dlKgIxKCQ=; b=Ld03s8bfyM6HQnaGYYt/1Z8Tb5DlO/qww5trlgHDcQ9HCObf33i8Q1x7l04dxHTG2a twqh7y0TfAgRgR4PJZB54t1N5EK1olGAiBovUTNTUdqrbSM6905xIB0MzOSs5azVoUCm t0O3FG9WMFpiqEnz+U9twJAum5I8na0n8aLK86+BQpcYg4GZB7LQ3/AO9V3iFKtMsPX8 jFYB4/14GxTjz8YBFPdjLIfdyJvVowtNxkGUvwhTJqVDA29VhAsiRW1Jw2up8YvTZ6Ki LPa2ywLZZtE78BucfQCahhauALeh9lB5eYLpBkP1FcDXHAEZ3Hhqak8hc7ytODPd16oD Psng== X-Forwarded-Encrypted: i=1; AJvYcCUhQjZj94sY4f/VZrY+L1KM/V2SHUPzA7vSn6pr9ag2KyKCCqu9fv6VpyGqwpcQOAS/jD50io3WoYmALkP/@postgresql.org X-Gm-Message-State: AOJu0Yzg4lZMRSrKSGFNXM8GiXwV99xHK/XXLu30JcrCQ3QzKk/jdJJ1 7RlrlU8WHxSRT8INnFtxxRp5mtelxpcHYu20gNpdloXF6t8fAWuYkQwgN6+GsT+aVDj57MIDB/5 zVE+ZemWLj2cuwLnqUoLMMaUZuX/e8iU= X-Gm-Gg: ATEYQzyAvmoZB5tbzVG5GI4oOgo6uMEYlZS8P8gsQf5Hal/+LqhdULgpntbSzIUQ6dm xhkMbghQH/t55CBwcITulytAzfhlIdYC5rP6HwaDL2y66PqFCQKbxb4qQzAJ8t7QjrfSeD7CZ4L fs9yqjLHh0z4uC7rt96ZrVlkJGi+2N+cwpP3MubUxhqf+Zn8PqC8GaA4Rt/TV79+BnJ+WzdH2cX qzc87sJ224ERVOCYoauEkCxJyqyIEQzsfigjRBjG3/14xylfB2kpiwjZUC0NUgGjGq5nAZsDghd 0MSL1FkRSXgpq2F+37bp59N5P6zCNC488oceVgj6 X-Received: by 2002:a17:903:8c3:b0:2ae:4aa8:cab8 with SMTP id d9443c01a7336-2b082702646mr26156805ad.4.1774020991535; Fri, 20 Mar 2026 08:36:31 -0700 (PDT) MIME-Version: 1.0 References: <20260319.103930.390354862957599874.ishii@postgresql.org> <20260319.121550.1075916211106201460.ishii@postgresql.org> <20260319.191035.328225166092779523.ishii@postgresql.org> In-Reply-To: <20260319.191035.328225166092779523.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Sat, 21 Mar 2026 00:36:18 +0900 X-Gm-Features: AaiRm53EpDkk77WiQpAmiKshaXZgKn-IuFPgfxzcEvrfcm1YyWTLi1NMuNIoQ9Q 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="00000000000006699e064d7673c8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000006699e064d7673c8 Content-Type: multipart/alternative; boundary="00000000000006699d064d7673c6" --00000000000006699d064d7673c6 Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, Sorry for sending these before your next revision of v45 -- I'll be busy with a project proposal for the next couple of weeks, so I wanted to share them before that. Here are the patches on top of v45, incorporating the fixes and improvements I mentioned earlier, plus additional changes from a thorough code review. There are quite a few patches since I went ahead without prior discussion -- please review each one individually and feel free to drop any that you disagree with. Here's a summary of each patch (to be applied on top of v45): 0001: Fix mergeGroupPrefixSuffix() max increment When absorbing prefix/suffix, child->max was not incremented, causing incorrect quantifier bounds. (reported by Zsolt) 0002: Fix RPR error codes and GROUPS typo Use ERRCODE_WINDOWING_ERROR instead of ERRCODE_SYNTAX_ERROR for semantic window-frame violations. Fix "GROUP" typo to "GROUPS" in frame validation error message. (reported by Zsolt) 0003: Add check_stack_depth() and CHECK_FOR_INTERRUPTS() Add stack depth protection to recursive pattern optimization and interrupt checks to NFA engine loops. 0004: Fix window_last_value set_mark during RPR Restore set_mark=true in window_last_value (normal behavior) and add an RPR-specific override inside WinGetFuncArgInFrame. This keeps the RPR workaround localized rather than changing the caller's semantics unconditionally. 0005: Fix row_is_in_reduced_frame in WINDOW_SEEK_TAIL Pass frameheadpos directly to row_is_in_reduced_frame instead of frameheadpos+relpos. Currently only last_value() calls this path with relpos=0 so no actual bug, but the old expression would be incorrect for negative relpos. Also add a bounds check for future callers. 0006: Clarify ST_NONE intent Add comment explaining ST_NONE = 0 is the default for non-RPR windows. 0007: Clarify inverse transition optimization comment Document why RPR disables inverse transition: the reduced frame changes row by row. 0008: Reject unused DEFINE variables I know you preferred silently ignoring unused DEFINE variables [1], and I agree the standard doesn't mandate an error. However, if we later add qualified column references (e.g. B AS A.price > 100), B's expression depends on A being present. If A is not used in PATTERN and the planner silently removes it, B's reference to A becomes dangling. I worry that silently allowing this now could create forward-compatibility problems once qualified references are introduced. For that reason, I'm inclined to think rejecting them now may be safer than changing behavior later, which would be a user-visible compatibility break. This is also consistent with Oracle's behavior (ORA-62503), as SungJun reported, and it helps catch user typos in DEFINE variable names at parse time. 0009: Clarify RPR documentation in advanced.sgml Improve absorption explanation and clarify non-match row aggregation behavior with concrete examples. 0010: Fix typos in RPR comments and parser README 0011: Clarify excludeLocation and empty quantifier in gram.y Add comments explaining the conditional location assignment pattern and the empty quantifier rule. 0012: Clarify RPR_VARID_MAX definition Document varId range 0-250 and reserved control element values 252+. 0013: Move local variables to function scope In row_is_in_reduced_frame, move declarations out of switch case blocks. 0014: Reset reduced_frame_map pointer in release_partition Set reduced_frame_map = NULL and alloc_sz = 0 to prevent dangling pointer after partition context reset. 0015: Remove redundant list manipulation in nfa_add_matched_state Simplify doubly-linked list operation that was duplicated by the subsequent ExecRPRFreeContext() call. experimental: Implement 1-slot PREV/NEXT navigation The slot-based PREV/NEXT approach I mentioned earlier. This no longer needs attno_map, so the plan cache mutation issue is gone. PREV/NEXT now also accepts an optional second argument for offset, e.g. PREV(price, 2). Note: all existing regression tests pass with this patch, but my understanding of TupleSlot internals and JIT is still shallow -- the implementation largely copies surrounding patterns, so there may be issues I haven't caught yet. I'd like to keep this as a separate patch on top of v46 until it is trustworthy enough, rather than folding it into the main series. I'll continue reviewing and hardening it. One design decision regarding PREV/NEXT: the SQL standard requires that the first argument of PREV/NEXT contain at least one column reference [2] -- e.g. PREV(1) is a syntax error. Beyond the standard's rationale (no starting row for offsetting), there is a practical reason: when the target row falls outside the frame, PREV should return NULL, but a constant expression like PREV(42) would still evaluate to 42 since it never reads from the slot. I think it's correct to follow the standard and reject PREV/NEXT without a column reference. What do you think? [1] https://www.postgresql.org/message-id/20260305.142049.1864331791480656300.ishii%40postgresql.org [2] ISO/IEC 19075-5, Subclause 5.6.2 Best regards, Henson --00000000000006699d064d7673c6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tatsuo,

Sorry for sending these before your next= revision of v45 --
I'll be busy with a project proposal for the nex= t couple of
weeks, so I wanted to share them before that.

Here ar= e the patches on top of v45, incorporating the fixes and
improvements I = mentioned earlier, plus additional changes from a
thorough code review. = There are quite a few patches since I went
ahead without prior discussio= n -- please review each one individually
and feel free to drop any that = you disagree with.

Here's a summary of each patch (to be applied= on top of v45):

=C2=A0 0001: Fix mergeGroupPrefixSuffix() max incre= ment
=C2=A0 =C2=A0 =C2=A0 =C2=A0 When absorbing prefix/suffix, child->= ;max was not incremented,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 causing incorrect = quantifier bounds. (reported by Zsolt)

=C2=A0 0002: Fix RPR error co= des and GROUPS typo
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Use ERRCODE_WINDOWING_ER= ROR instead of ERRCODE_SYNTAX_ERROR
=C2=A0 =C2=A0 =C2=A0 =C2=A0 for sema= ntic window-frame violations. Fix "GROUP" typo to
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 "GROUPS" in frame validation error message. (re= ported by Zsolt)

=C2=A0 0003: Add check_stack_depth() and CHECK_FOR_= INTERRUPTS()
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Add stack depth protection to r= ecursive pattern optimization
=C2=A0 =C2=A0 =C2=A0 =C2=A0 and interrupt = checks to NFA engine loops.

=C2=A0 0004: Fix window_last_value set_m= ark during RPR
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Restore set_mark=3Dtrue in wi= ndow_last_value (normal behavior)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 and add an= RPR-specific override inside WinGetFuncArgInFrame.
=C2=A0 =C2=A0 =C2=A0= =C2=A0 This keeps the RPR workaround localized rather than changing
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 the caller's semantics unconditionally.
=C2=A0 0005: Fix row_is_in_reduced_frame in WINDOW_SEEK_TAIL
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 Pass frameheadpos directly to row_is_in_reduced_frame
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 instead of frameheadpos+relpos. Currently only = last_value()
=C2=A0 =C2=A0 =C2=A0 =C2=A0 calls this path with relpos=3D0= so no actual bug, but the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 old expression wo= uld be incorrect for negative relpos.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Also a= dd a bounds check for future callers.

=C2=A0 0006: Clarify ST_NONE i= ntent
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Add comment explaining ST_NONE =3D 0 i= s the default for
=C2=A0 =C2=A0 =C2=A0 =C2=A0 non-RPR windows.

= =C2=A0 0007: Clarify inverse transition optimization comment
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 Document why RPR disables inverse transition: the reduced=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 frame changes row by row.

=C2=A0 000= 8: Reject unused DEFINE variables
=C2=A0 =C2=A0 =C2=A0 =C2=A0 I know you= preferred silently ignoring unused DEFINE
=C2=A0 =C2=A0 =C2=A0 =C2=A0 v= ariables [1], and I agree the standard doesn't mandate
=C2=A0 =C2=A0= =C2=A0 =C2=A0 an error. However, if we later add qualified column
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 references (e.g. B AS A.price > 100), B's e= xpression
=C2=A0 =C2=A0 =C2=A0 =C2=A0 depends on A being present. If A i= s not used in PATTERN
=C2=A0 =C2=A0 =C2=A0 =C2=A0 and the planner silent= ly removes it, B's reference to A
=C2=A0 =C2=A0 =C2=A0 =C2=A0 become= s dangling. I worry that silently allowing this now
=C2=A0 =C2=A0 =C2=A0= =C2=A0 could create forward-compatibility problems once qualified
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 references are introduced. For that reason, I'= m inclined
=C2=A0 =C2=A0 =C2=A0 =C2=A0 to think rejecting them now may b= e safer than changing
=C2=A0 =C2=A0 =C2=A0 =C2=A0 behavior later, which = would be a user-visible compatibility
=C2=A0 =C2=A0 =C2=A0 =C2=A0 break.= This is also consistent with Oracle's behavior
=C2=A0 =C2=A0 =C2=A0= =C2=A0 (ORA-62503), as SungJun reported, and it helps catch user
=C2=A0= =C2=A0 =C2=A0 =C2=A0 typos in DEFINE variable names at parse time.

= =C2=A0 0009: Clarify RPR documentation in advanced.sgml
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 Improve absorption explanation and clarify non-match row
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 aggregation behavior with concrete examples.
=C2=A0 0010: Fix typos in RPR comments and parser README

=C2=A0= 0011: Clarify excludeLocation and empty quantifier in gram.y
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 Add comments explaining the conditional location assignme= nt
=C2=A0 =C2=A0 =C2=A0 =C2=A0 pattern and the empty quantifier rule.
=C2=A0 0012: Clarify RPR_VARID_MAX definition
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 Document varId range 0-250 and reserved control element
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 values 252+.

=C2=A0 0013: Move local variables = to function scope
=C2=A0 =C2=A0 =C2=A0 =C2=A0 In row_is_in_reduced_frame= , move declarations out of
=C2=A0 =C2=A0 =C2=A0 =C2=A0 switch case block= s.

=C2=A0 0014: Reset reduced_frame_map pointer in release_partition=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Set reduced_frame_map =3D NULL and alloc_sz= =3D 0 to prevent
=C2=A0 =C2=A0 =C2=A0 =C2=A0 dangling pointer after par= tition context reset.

=C2=A0 0015: Remove redundant list manipulatio= n in nfa_add_matched_state
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Simplify doubly-l= inked list operation that was duplicated
=C2=A0 =C2=A0 =C2=A0 =C2=A0 by = the subsequent ExecRPRFreeContext() call.

=C2=A0 experimental: Imple= ment 1-slot PREV/NEXT navigation
=C2=A0 =C2=A0 =C2=A0 =C2=A0 The slot-ba= sed PREV/NEXT approach I mentioned earlier.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = This no longer needs attno_map, so the plan cache mutation
=C2=A0 =C2=A0= =C2=A0 =C2=A0 issue is gone. PREV/NEXT now also accepts an optional
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 second argument for offset, e.g. PREV(price, 2).
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Note: all existing regression tests pass = with this patch,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 but my understanding of Tup= leSlot internals and JIT is still
=C2=A0 =C2=A0 =C2=A0 =C2=A0 shallow --= the implementation largely copies surrounding
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 patterns, so there may be issues I haven't caught yet. I'd
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 like to keep this as a separate patch on top of= v46 until it
=C2=A0 =C2=A0 =C2=A0 =C2=A0 is trustworthy enough, rather = than folding it into the main
=C2=A0 =C2=A0 =C2=A0 =C2=A0 series. I'= ll continue reviewing and hardening it.

One design decision regardin= g PREV/NEXT: the SQL standard
requires that the first argument of PREV/N= EXT contain at least
one column reference [2] -- e.g. PREV(1) is a synta= x error.
Beyond the standard's rationale (no starting row for offset= ting),
there is a practical reason: when the target row falls outsidethe frame, PREV should return NULL, but a constant expression
like PREV= (42) would still evaluate to 42 since it never reads
from the slot. I th= ink it's correct to follow the standard and
reject PREV/NEXT without= a column reference. What do you think?

[1] https://www.postgresql.org/message-id/20260305.142049.18643317914= 80656300.ishii%40postgresql.org
[2] ISO/IEC 19075-5, Subclause 5.6.2=

Best regards,
Henson
--00000000000006699d064d7673c6-- --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0001-Fix-mergeGroupPrefixSuffix-max-increment.txt" Content-Disposition: attachment; filename="nocfbot-0001-Fix-mergeGroupPrefixSuffix-max-increment.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz28w3r0 RnJvbSBhOWM3MDE3NTI0YTE0ODIwZjA3OTU1MzY2Y2NhNWU2YTJhMTU0MzE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDE5IE1hciAyMDI2IDExOjM3OjM0ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IG1l cmdlR3JvdXBQcmVmaXhTdWZmaXgoKSB0byBhbHNvIGluY3JlbWVudCBtYXggd2hlbgogYWJzb3Ji aW5nIHByZWZpeC9zdWZmaXgKCldoZW4gbWVyZ2VHcm91cFByZWZpeFN1ZmZpeCgpIGZvdW5kIGEg cHJlZml4IG9yIHN1ZmZpeCB0aGF0IG1hdGNoZWQgYSBHUk9VUApub2RlJ3MgY2hpbGRyZW4sIGl0 IGluY3JlbWVudGVkIEdST1VQJ3MgbWluIHF1YW50aWZpZXIgYnV0IGxlZnQgbWF4IHVuY2hhbmdl ZC4KVGhpcyBwcm9kdWNlZCBpbnZhbGlkIHF1YW50aWZpZXIgc3RhdGUgKG1pbiA+IG1heCkgd2hl biB0aGUgR1JPVVAgaGFkIGEgZmluaXRlCm1heCBib3VuZC4KCkZpeCBieSBhbHNvIGluY3JlbWVu dGluZyBtYXggd2hlbiBpdCBpcyBmaW5pdGUuIEd1YXJkIGJvdGggdGhlIHByZWZpeCBhbmQKc3Vm Zml4IGNhc2VzIHdpdGggYW4gb3ZlcmZsb3cgY2hlY2sgKG1pbiA8IFJQUl9RVUFOVElUWV9JTkYg LSAxKSB0byBwcmV2ZW50CndyYXBhcm91bmQgaW50byB0aGUgc2VudGluZWwgdmFsdWUuCgpBZGQg QXNzZXJ0KCkgY2FsbHMgaW4gZmlsbFJQUlBhdHRlcm5WYXIoKSwgZmlsbFJQUlBhdHRlcm5Hcm91 cCgpLCBhbmQKZmluYWxpemVSUFJQYXR0ZXJuKCkgdG8gY2F0Y2ggaW52YWxpZCBtaW4vbWF4IGNv bWJpbmF0aW9ucyBhdCBwYXR0ZXJuCmNvbXBpbGF0aW9uIHRpbWUuCi0tLQogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcnByLmMgIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCB8IDM1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgICAgICB8IDIzICsr KysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnBy LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRleCBiOTU4MjgwZTk0Yy4u YzUwY2JkYzE4ZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBAIC01NDEsMTMgKzU0MSwx NyBAQCBtZXJnZUdyb3VwUHJlZml4U3VmZml4KExpc3QgKmNoaWxkcmVuKQogCiAJCQkJLyogQ29t cGFyZSB3aXRoIEdST1VQJ3MgKHBvc3NpYmx5IHVud3JhcHBlZCkgY2hpbGRyZW4gKi8KIAkJCQlp ZiAocnByUGF0dGVybkNoaWxkcmVuRXF1YWwocHJlZml4RWxlbWVudHMsIGdyb3VwQ29udGVudCkg JiYKLQkJCQkJY2hpbGQtPm1pbiA8IFJQUl9RVUFOVElUWV9JTkYpCisJCQkJCWNoaWxkLT5taW4g PCBSUFJfUVVBTlRJVFlfSU5GIC0gMSAmJgorCQkJCQkoY2hpbGQtPm1heCA9PSBSUFJfUVVBTlRJ VFlfSU5GIHx8CisJCQkJCSBjaGlsZC0+bWF4IDwgUlBSX1FVQU5USVRZX0lORiAtIDEpKQogCQkJ CXsKIAkJCQkJLyoKLQkJCQkJICogTWF0Y2ghIE1lcmdlIGJ5IGluY3JlbWVudGluZyBHUk9VUCdz IG1pbi4gUmVtb3ZlIHRoZQotCQkJCQkgKiBwcmVmaXggZWxlbWVudHMgZnJvbSBvdXRwdXQuCisJ CQkJCSAqIE1hdGNoISBNZXJnZSBieSBpbmNyZW1lbnRpbmcgR1JPVVAncyBxdWFudGlmaWVyLiBS ZW1vdmUKKwkJCQkJICogdGhlIHByZWZpeCBlbGVtZW50cyBmcm9tIG91dHB1dC4KIAkJCQkJICov CiAJCQkJCWNoaWxkLT5taW4gKz0gMTsKKwkJCQkJaWYgKGNoaWxkLT5tYXggIT0gUlBSX1FVQU5U SVRZX0lORikKKwkJCQkJCWNoaWxkLT5tYXggKz0gMTsKIAogCQkJCQkvKiBSZWJ1aWxkIHJlc3Vs dCB3aXRob3V0IG1hdGNoZWQgcHJlZml4ICovCiAJCQkJCXRyaW1tZWQgPSBOSUw7CkBAIC01OTUs MTIgKzU5OSwxNyBAQCBtZXJnZUdyb3VwUHJlZml4U3VmZml4KExpc3QgKmNoaWxkcmVuKQogCQkJ CS8qIENvbXBhcmUgd2l0aCBHUk9VUCdzIGNoaWxkcmVuICovCiAJCQkJaWYgKGxpc3RfbGVuZ3Ro KHN1ZmZpeEVsZW1lbnRzKSA9PSBncm91cENoaWxkQ291bnQgJiYKIAkJCQkJcnByUGF0dGVybkNo aWxkcmVuRXF1YWwoc3VmZml4RWxlbWVudHMsIGdyb3VwQ29udGVudCkgJiYKLQkJCQkJY2hpbGQt Pm1pbiA8IFJQUl9RVUFOVElUWV9JTkYpCisJCQkJCWNoaWxkLT5taW4gPCBSUFJfUVVBTlRJVFlf SU5GIC0gMSAmJgorCQkJCQkoY2hpbGQtPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIHx8CisJCQkJ CSBjaGlsZC0+bWF4IDwgUlBSX1FVQU5USVRZX0lORiAtIDEpKQogCQkJCXsKIAkJCQkJLyoKLQkJ CQkJICogTWF0Y2ghIEFic29yYiBzdWZmaXggYnkgaW5jcmVtZW50aW5nIG1pbiBhbmQgc2tpcHBp bmcuCisJCQkJCSAqIE1hdGNoISBBYnNvcmIgc3VmZml4IGJ5IGluY3JlbWVudGluZyBxdWFudGlm aWVyIGFuZAorCQkJCQkgKiBza2lwcGluZy4KIAkJCQkJICovCiAJCQkJCWNoaWxkLT5taW4gKz0g MTsKKwkJCQkJaWYgKGNoaWxkLT5tYXggIT0gUlBSX1FVQU5USVRZX0lORikKKwkJCQkJCWNoaWxk LT5tYXggKz0gMTsKIAkJCQkJc2tpcFVudGlsID0gc3VmZml4U3RhcnQgKyBncm91cENoaWxkQ291 bnQ7CiAKIAkJCQkJLyoKQEAgLTExNTIsNiArMTE2MSw5IEBAIGZpbGxSUFJQYXR0ZXJuVmFyKFJQ UlBhdHRlcm5Ob2RlICpub2RlLCBSUFJQYXR0ZXJuICpwYXQsIGludCAqaWR4LCBSUFJEZXB0aCBk ZXB0CiAJZWxlbS0+ZGVwdGggPSBkZXB0aDsKIAllbGVtLT5taW4gPSBub2RlLT5taW47CiAJZWxl bS0+bWF4ID0gKG5vZGUtPm1heCA9PSBJTlRfTUFYKSA/IFJQUl9RVUFOVElUWV9JTkYgOiBub2Rl LT5tYXg7CisJQXNzZXJ0KGVsZW0tPm1pbiA+PSAwICYmIGVsZW0tPm1pbiA8IFJQUl9RVUFOVElU WV9JTkYgJiYKKwkJICAgZWxlbS0+bWF4ID49IDEgJiYKKwkJICAgKGVsZW0tPm1heCA9PSBSUFJf UVVBTlRJVFlfSU5GIHx8IGVsZW0tPm1pbiA8PSBlbGVtLT5tYXgpKTsKIAllbGVtLT5uZXh0ID0g UlBSX0VMRU1JRFhfSU5WQUxJRDsKIAllbGVtLT5qdW1wID0gUlBSX0VMRU1JRFhfSU5WQUxJRDsK IAlpZiAobm9kZS0+cmVsdWN0YW50KQpAQCAtMTE5MSw2ICsxMjAzLDkgQEAgZmlsbFJQUlBhdHRl cm5Hcm91cChSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LCBpbnQgKmlkeCwg UlBSRGVwdGggZGUKIAkJZWxlbS0+ZGVwdGggPSBkZXB0aDsKIAkJZWxlbS0+bWluID0gbm9kZS0+ bWluOwogCQllbGVtLT5tYXggPSAobm9kZS0+bWF4ID09IElOVF9NQVgpID8gUlBSX1FVQU5USVRZ X0lORiA6IG5vZGUtPm1heDsKKwkJQXNzZXJ0KGVsZW0tPm1pbiA+PSAwICYmIGVsZW0tPm1pbiA8 IFJQUl9RVUFOVElUWV9JTkYgJiYKKwkJCSAgIGVsZW0tPm1heCA+PSAxICYmCisJCQkgICAoZWxl bS0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwgZWxlbS0+bWluIDw9IGVsZW0tPm1heCkpOwog CQllbGVtLT5uZXh0ID0gUlBSX0VMRU1JRFhfSU5WQUxJRDsJLyogc2V0IGJ5IGZpbmFsaXplICov CiAJCWVsZW0tPmp1bXAgPSBSUFJfRUxFTUlEWF9JTlZBTElEOwkvKiBzZXQgYWZ0ZXIgRU5EICov CiAJCWlmIChub2RlLT5yZWx1Y3RhbnQpCkBAIC0xMjE2LDYgKzEyMzEsOSBAQCBmaWxsUlBSUGF0 dGVybkdyb3VwKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBSUFJQYXR0ZXJuICpwYXQsIGludCAqaWR4 LCBSUFJEZXB0aCBkZQogCQllbmRFbGVtLT5kZXB0aCA9IGRlcHRoOwogCQllbmRFbGVtLT5taW4g PSBub2RlLT5taW47CiAJCWVuZEVsZW0tPm1heCA9IChub2RlLT5tYXggPT0gSU5UX01BWCkgPyBS UFJfUVVBTlRJVFlfSU5GIDogbm9kZS0+bWF4OworCQlBc3NlcnQoZW5kRWxlbS0+bWluID49IDAg JiYgZW5kRWxlbS0+bWluIDwgUlBSX1FVQU5USVRZX0lORiAmJgorCQkJICAgZW5kRWxlbS0+bWF4 ID49IDEgJiYKKwkJCSAgIChlbmRFbGVtLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8fCBlbmRF bGVtLT5taW4gPD0gZW5kRWxlbS0+bWF4KSk7CiAJCWVuZEVsZW0tPm5leHQgPSBSUFJfRUxFTUlE WF9JTlZBTElEOwogCQllbmRFbGVtLT5qdW1wID0gZ3JvdXBTdGFydElkeDsJLyogbG9vcCB0byBm aXJzdCBjaGlsZCAqLwogCQlpZiAobm9kZS0+cmVsdWN0YW50KQpAQCAtMTM5OCw2ICsxNDE2LDEx IEBAIGZpbmFsaXplUlBSUGF0dGVybihSUFJQYXR0ZXJuICpyZXN1bHQpCiAKIAkJaWYgKGVsZW0t Pm5leHQgPT0gUlBSX0VMRU1JRFhfSU5WQUxJRCkKIAkJCWVsZW0tPm5leHQgPSAoaSA8IGZpbklk eCAtIDEpID8gaSArIDEgOiBmaW5JZHg7CisKKwkJLyogVmVyaWZ5IHF1YW50aWZpZXIgcmFuZ2Ug aXMgdmFsaWQgKi8KKwkJQXNzZXJ0KGVsZW0tPm1pbiA+PSAwICYmIGVsZW0tPm1pbiA8IFJQUl9R VUFOVElUWV9JTkYgJiYKKwkJCSAgIGVsZW0tPm1heCA+PSAxICYmCisJCQkgICAoZWxlbS0+bWF4 ID09IFJQUl9RVUFOVElUWV9JTkYgfHwgZWxlbS0+bWluIDw9IGVsZW0tPm1heCkpOwogCX0KIAog CS8qIEFkZCBGSU4gbWFya2VyIGF0IHRoZSBlbmQgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91 dAppbmRleCBlY2JlODM1Y2JiNC4uZTcyMTcxMDUwYzcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw ci5vdXQKQEAgLTU4OCw2ICs1ODgsNDEgQEAgU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwg Y291bnQoKikgT1ZFUiB3CiAgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgMAog KDIwIHJvd3MpCiAKKy0tIHRlc3QgcHJlZml4L3N1ZmZpeCBtZXJnZSBvcHRpbWl6YXRpb24gd2l0 aCBib3VuZGVkIHF1YW50aWZpZXIKKy0tIFBhdHRlcm4gQSBCIChBIEIpezEsMn0gQSBCIHNob3Vs ZCBiZSBvcHRpbWl6ZWQgdG8gKEEgQil7Myw0fQorQ1JFQVRFIFRFTVAgVEFCTEUgcnByX3QgKGlk IGludCwgdmFsIHRleHQpOworSU5TRVJUIElOVE8gcnByX3QgVkFMVUVTCisgICgxLCdBJyksKDIs J0InKSwKKyAgKDMsJ0EnKSwoNCwnQicpLAorICAoNSwnQScpLCg2LCdCJyksCisgICg3LCdBJyks KDgsJ0InKSwKKyAgKDksJ1gnKTsKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMg bWF0Y2hfY291bnQKK0ZST00gcnByX3QKK1dJTkRPVyB3IEFTICgKKyAgT1JERVIgQlkgaWQKKyAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgIEFGVEVS IE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgSU5JVElBTAorICBQQVRURVJOIChBIEIgKEEgQil7 MSwyfSBBIEIpCisgIERFRklORQorICAgIEEgQVMgdmFsID0gJ0EnLAorICAgIEIgQVMgdmFsID0g J0InCispOworIGlkIHwgdmFsIHwgbWF0Y2hfY291bnQgCistLS0tKy0tLS0tKy0tLS0tLS0tLS0t LS0KKyAgMSB8IEEgICB8ICAgICAgICAgICA4CisgIDIgfCBCICAgfCAgICAgICAgICAgMAorICAz IHwgQSAgIHwgICAgICAgICAgIDYKKyAgNCB8IEIgICB8ICAgICAgICAgICAwCisgIDUgfCBBICAg fCAgICAgICAgICAgMAorICA2IHwgQiAgIHwgICAgICAgICAgIDAKKyAgNyB8IEEgICB8ICAgICAg ICAgICAwCisgIDggfCBCICAgfCAgICAgICAgICAgMAorICA5IHwgWCAgIHwgICAgICAgICAgIDAK Kyg5IHJvd3MpCisKK0RST1AgVEFCTEUgcnByX3Q7CiAtLSBsYXN0X3ZhbHVlKCkgc2hvdWxkIHJl bWFpbiBjb25zaXN0ZW50CiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBsYXN0X3ZhbHVl KHByaWNlKSBPVkVSIHcKICBGUk9NIHN0b2NrCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAppbmRleCBiMzA4Zjhk N2NiNC4uOTU3OTRkNDA5ZTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbApAQCAtMjQ5LDYgKzI0OSwyOSBA QCBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKICAgQSBBUyBw cmljZSA+IDEwMAogKTsKIAorLS0gdGVzdCBwcmVmaXgvc3VmZml4IG1lcmdlIG9wdGltaXphdGlv biB3aXRoIGJvdW5kZWQgcXVhbnRpZmllcgorLS0gUGF0dGVybiBBIEIgKEEgQil7MSwyfSBBIEIg c2hvdWxkIGJlIG9wdGltaXplZCB0byAoQSBCKXszLDR9CitDUkVBVEUgVEVNUCBUQUJMRSBycHJf dCAoaWQgaW50LCB2YWwgdGV4dCk7CitJTlNFUlQgSU5UTyBycHJfdCBWQUxVRVMKKyAgKDEsJ0En KSwoMiwnQicpLAorICAoMywnQScpLCg0LCdCJyksCisgICg1LCdBJyksKDYsJ0InKSwKKyAgKDcs J0EnKSwoOCwnQicpLAorICAoOSwnWCcpOworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIg dyBBUyBtYXRjaF9jb3VudAorRlJPTSBycHJfdAorV0lORE9XIHcgQVMgKAorICBPUkRFUiBCWSBp ZAorICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg QUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICBJTklUSUFMCisgIFBBVFRFUk4gKEEgQiAo QSBCKXsxLDJ9IEEgQikKKyAgREVGSU5FCisgICAgQSBBUyB2YWwgPSAnQScsCisgICAgQiBBUyB2 YWwgPSAnQicKKyk7CitEUk9QIFRBQkxFIHJwcl90OworCiAtLSBsYXN0X3ZhbHVlKCkgc2hvdWxk IHJlbWFpbiBjb25zaXN0ZW50CiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBsYXN0X3Zh bHVlKHByaWNlKSBPVkVSIHcKICBGUk9NIHN0b2NrCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUp Cgo= --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0002-Fix-RPR-error-codes-and-GROUPS-typo.txt" Content-Disposition: attachment; filename="nocfbot-0002-Fix-RPR-error-codes-and-GROUPS-typo.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz28xy81 RnJvbSA5YWJjN2E1OGI0OGQzODllMjc5ZDFhMzY3NjM1MWYzNmI5ZWJjNmMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDE5IE1hciAyMDI2IDE2OjQwOjM1ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IFJQ UiBlcnJvciBjb2RlcyBhbmQgR1JPVVBTIHR5cG8gaW4gZnJhbWUgdmFsaWRhdGlvbgoKRnJhbWUg dmFsaWRhdGlvbiBlcnJvcnMgaW4gdHJhbnNmb3JtUlBSKCkgd2VyZSByZXBvcnRlZCB3aXRoCkVS UkNPREVfU1lOVEFYX0VSUk9SLiBUaGVzZSBhcmUgc2VtYW50aWMgZXJyb3JzIGRldGVjdGVkIGFm dGVyIHBhcnNpbmcsCnNvIEVSUkNPREVfV0lORE9XSU5HX0VSUk9SIGlzIHRoZSBjb3JyZWN0IGNv ZGUgcGVyIFNRTCBzdGFuZGFyZC4KCkFsc28gZml4IGEgdHlwbyBpbiB0aGUgZXJyb3IgbWVzc2Fn ZTogIkZSQU1FIG9wdGlvbiBHUk9VUCIgLT4KIkZSQU1FIG9wdGlvbiBHUk9VUFMiIHRvIG1hdGNo IHRoZSBhY3R1YWwgU1FMIGtleXdvcmQuCi0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jw ci5jICAgICAgICAgfCAxMCArKysrKy0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9iYXNlLm91dCB8ICA4ICsrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5z cWwgICAgICB8ICA0ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTEg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4IGU1NzRiNjlkOWI1Li42NjI1 MmNkMTg1ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpAQCAtNzIsMTUgKzcyLDE1IEBAIHRyYW5z Zm9ybVJQUihQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAq d2luZGVmLAogCS8qIEZyYW1lIHR5cGUgbXVzdCBiZSAiUk9XIiAqLwogCWlmICh3Yy0+ZnJhbWVP cHRpb25zICYgRlJBTUVPUFRJT05fR1JPVVBTKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJj b2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKLQkJCQkgZXJybXNnKCJGUkFNRSBvcHRpb24gR1JP VVAgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQi KSwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dJTkRPV0lOR19FUlJPUiksCisJCQkJIGVycm1zZygi RlJBTUUgb3B0aW9uIEdST1VQUyBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVj b2duaXRpb24gaXMgdXNlZCIpLAogCQkJCSBlcnJoaW50KCJVc2U6IFJPV1MgaW5zdGVhZCIpLAog CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAogCQkJCQkJCQkJd2luZGVmLT5mcmFtZUxv Y2F0aW9uID49IDAgPwogCQkJCQkJCQkJd2luZGVmLT5mcmFtZUxvY2F0aW9uIDogd2luZGVmLT5s b2NhdGlvbikpKTsKIAlpZiAod2MtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1JBTkdFKQog CQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX1dJTkRPV0lOR19FUlJPUiksCiAJCQkJIGVycm1zZygiRlJBTUUg b3B0aW9uIFJBTkdFIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlv biBpcyB1c2VkIiksCiAJCQkJIGVycmhpbnQoIlVzZTogUk9XUyBpbnN0ZWFkIiksCiAJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCkBAIC0xMDcsNyArMTA3LDcgQEAgdHJhbnNmb3JtUlBS KFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYs CiAJCQkgICAod2MtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1NUQVJUX09GRlNFVF9GT0xM T1dJTkcpKTsKIAogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFY X0VSUk9SKSwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dJTkRPV0lOR19FUlJPUiksCiAJCQkJIGVy cm1zZygiRlJBTUUgbXVzdCBzdGFydCBhdCBDVVJSRU5UIFJPVyB3aGVuIHJvdyBwYXR0ZXJuIHJl Y29nbml0aW9uIGlzIHVzZWQiKSwKIAkJCQkgZXJyZGV0YWlsKCJDdXJyZW50IGZyYW1lIHN0YXJ0 cyB3aXRoICVzLiIsIHN0YXJ0Qm91bmQpLAogCQkJCSBlcnJoaW50KCJVc2U6ICVzIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIC4uLiIsIGZyYW1lVHlwZSksCkBAIC0xMzMsNyArMTMzLDcgQEAgdHJh bnNmb3JtUlBSKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVm ICp3aW5kZWYsCiAJCQkgICAod2MtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX0VYQ0xVREVf VElFUykpOwogCiAJCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VSUk9SKSwKIAkJCQkgZXJy bXNnKCJFWENMVURFIG9wdGlvbnMgYXJlIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiBy ZWNvZ25pdGlvbiBpcyB1c2VkIiksCiAJCQkJIGVycmRldGFpbCgiRnJhbWUgZGVmaW5pdGlvbiBp bmNsdWRlcyAlcy4iLCBleGNsdWRlVHlwZSksCiAJCQkJIGVycmhpbnQoIlJlbW92ZSB0aGUgRVhD TFVERSBjbGF1c2UgZnJvbSB0aGUgd2luZG93IGRlZmluaXRpb24uIiksCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IDc5MzFhZDA3ZDdkLi41MGE5ZTdkYWVhOSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKQEAgLTQ4MywxMSArNDgzLDExIEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAw CiApOwotRVJST1I6ICBGUkFNRSBvcHRpb24gR1JPVVAgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJv dyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKK0VSUk9SOiAgRlJBTUUgb3B0aW9uIEdST1VQ UyBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAog TElORSA1OiAgICAgR1JPVVBTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgVU5CT1VO REVEIEZPTExPV0kuLi4KICAgICAgICAgICAgIF4KIEhJTlQ6ICBVc2U6IFJPV1MgaW5zdGVhZAot LS0gRXhwZWN0ZWQ6IEVSUk9SOiBGUkFNRSBvcHRpb24gR1JPVVAgaXMgbm90IHBlcm1pdHRlZCB3 aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJPUjog RlJBTUUgb3B0aW9uIEdST1VQUyBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVj b2duaXRpb24gaXMgdXNlZAogLS0gU3RhcnRpbmcgd2l0aCBOIFBSRUNFRElORwogU0VMRUNUIENP VU5UKCopIE9WRVIgdwogRlJPTSBycHJfZnJhbWUKQEAgLTY1NiwxMSArNjU2LDExIEBAIFdJTkRP VyB3IEFTICgKICAgICBERUZJTkUgQSBBUyB2YWwgPj0gMCwgQiBBUyB2YWwgPj0gMAogKQogT1JE RVIgQlkgaWQ7Ci1FUlJPUjogIEZSQU1FIG9wdGlvbiBHUk9VUCBpcyBub3QgcGVybWl0dGVkIHdo ZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAorRVJST1I6ICBGUkFNRSBvcHRpb24g R1JPVVBTIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1 c2VkCiBMSU5FIDU6ICAgICBHUk9VUFMgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMSBGT0xMT1dJ TkcKICAgICAgICAgICAgIF4KIEhJTlQ6ICBVc2U6IFJPV1MgaW5zdGVhZAotLS0gRXhwZWN0ZWQ6 IEVSUk9SOiBGUkFNRSBvcHRpb24gR1JPVVAgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0 ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9u IEdST1VQUyBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMg dXNlZAogRFJPUCBUQUJMRSBycHJfZnJhbWU7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFBBUlRJVElPTiBCWSArIEZS QU1FIFRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKaW5kZXggZjg4MTVjNzM3NmEuLmU1 NGQ1NGU0MDBhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0zOTcsNyArMzk3LDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHZhbCA+ IDAKICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IEZSQU1FIG9wdGlvbiBHUk9VUCBpcyBub3QgcGVy bWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAorLS0gRXhwZWN0ZWQ6 IEVSUk9SOiBGUkFNRSBvcHRpb24gR1JPVVBTIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0 dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiAKIC0tIFN0YXJ0aW5nIHdpdGggTiBQUkVDRURJTkcK IFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTUxNyw3ICs1MTcsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgREVGSU5FIEEgQVMgdmFsID49IDAsIEIgQVMgdmFsID49IDAKICkKIE9SREVSIEJZIGlk OwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBGUkFNRSBvcHRpb24gR1JPVVAgaXMgbm90IHBlcm1pdHRl ZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKKy0tIEV4cGVjdGVkOiBFUlJP UjogRlJBTUUgb3B0aW9uIEdST1VQUyBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4g cmVjb2duaXRpb24gaXMgdXNlZAogCiBEUk9QIFRBQkxFIHJwcl9mcmFtZTsKIAotLSAKMi41MC4x IChBcHBsZSBHaXQtMTU1KQoK --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0003-Add-check_stack_depth-to-RPR-engine.txt" Content-Disposition: attachment; filename="nocfbot-0003-Add-check_stack_depth-to-RPR-engine.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz290492 RnJvbSAwYmVhMTUxZWI3MGFlMjY2Y2YyOWVlMjQzOTVlOGQxNzhiZWNlOTE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDE0IE1hciAyMDI2IDA5OjQ0OjQwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIGNo ZWNrX3N0YWNrX2RlcHRoKCkgYW5kIENIRUNLX0ZPUl9JTlRFUlJVUFRTKCkgdG8gUlBSCiBlbmdp bmUKClNldmVyYWwgcmVjdXJzaXZlIGZ1bmN0aW9ucyBpbiB0aGUgUlBSIGltcGxlbWVudGF0aW9u IGxhY2tlZCBzdGFjawpvdmVyZmxvdyBwcm90ZWN0aW9uLCBhbmQgdGhlIE5GQSBldmFsdWF0aW9u IGxvb3AgbGFja2VkIGludGVycnVwdApoYW5kbGluZy4KCkFkZCBjaGVja19zdGFja19kZXB0aCgp IHRvIGFsbCByZWN1cnNpdmUgUlBSIGZ1bmN0aW9uczoKLSBleGVjUlBSLmM6IG5mYV9hZHZhbmNl X3N0YXRlKCkgKE5GQSBlcHNpbG9uLWNsb3N1cmUgREZTKQotIHJwci5jOiBvcHRpbWl6ZVJQUlBh dHRlcm4oKSwgc2NhblJQUlBhdHRlcm5SZWN1cnNpdmUoKSwKICBmaWxsUlBSUGF0dGVybigpLCBj b21wdXRlQWJzb3JiYWJpbGl0eVJlY3Vyc2l2ZSgpLAogIGNvbGxlY3RQYXR0ZXJuVmFyaWFibGVz UmVjdXJzaXZlKCkKLSBwYXJzZV9ycHIuYzogdmFsaWRhdGVSUFJQYXR0ZXJuVmFyQ291bnQoKQoK QWRkIENIRUNLX0ZPUl9JTlRFUlJVUFRTKCkgaW4gdGhlIG1haW4gTkZBIHByb2Nlc3NpbmcgbG9v cHMgaW4KZXhlY1JQUi5jIHRvIGFsbG93IHF1ZXJ5IGNhbmNlbGxhdGlvbiBkdXJpbmcgbG9uZyBw YXR0ZXJuIG1hdGNoZXMuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAgfCAx NyArKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgfCAx MSArKysrKysrKysrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jICAgfCAgMyArKysK IDMgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYwppbmRleCAwZDViYTc1MTZlOS4uMDY5MzRiOTVkYTMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUlBSLmMKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNS UFIuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgogI2luY2x1ZGUgIm9wdGltaXplci9ycHIuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGls cy5oIgogCkBAIC0xOTk0LDYgKzE5OTUsOCBAQCBuZmFfdXBkYXRlX2Fic29ycHRpb25fZmxhZ3Mo UlBSTkZBQ29udGV4dCAqY3R4KQogCSAqLwogCWZvciAoc3RhdGUgPSBjdHgtPnN0YXRlczsgc3Rh dGUgIT0gTlVMTDsgc3RhdGUgPSBzdGF0ZS0+bmV4dCkKIAl7CisJCUNIRUNLX0ZPUl9JTlRFUlJV UFRTKCk7CisKIAkJaWYgKHN0YXRlLT5pc0Fic29yYmFibGUpCiAJCQloYXNBYnNvcmJhYmxlID0g dHJ1ZTsKIAkJZWxzZQpAQCAtMjAzNSw2ICsyMDM4LDggQEAgbmZhX3N0YXRlc19jb3ZlcmVkKFJQ UlBhdHRlcm4gKnBhdHRlcm4sIFJQUk5GQUNvbnRleHQgKm9sZGVyLCBSUFJORkFDb250ZXh0ICpu ZXcKIAogCQlmb3IgKG9sZGVyU3RhdGUgPSBvbGRlci0+c3RhdGVzOyBvbGRlclN0YXRlICE9IE5V TEw7IG9sZGVyU3RhdGUgPSBvbGRlclN0YXRlLT5uZXh0KQogCQl7CisJCQlDSEVDS19GT1JfSU5U RVJSVVBUUygpOworCiAJCQkvKiBDb3ZlcmluZyBzdGF0ZSBtdXN0IGFsc28gYmUgYWJzb3JiYWJs ZSAqLwogCQkJaWYgKG9sZGVyU3RhdGUtPmlzQWJzb3JiYWJsZSAmJgogCQkJCW9sZGVyU3RhdGUt PmVsZW1JZHggPT0gbmV3ZXJTdGF0ZS0+ZWxlbUlkeCAmJgpAQCAtMjE5NSw2ICsyMjAwLDggQEAg bmZhX21hdGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LCBi b29sICp2YXJNYXRjaGVkKQogCXsKIAkJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0gPSAmZWxlbWVu dHNbc3RhdGUtPmVsZW1JZHhdOwogCisJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisKIAkJbmV4 dFN0YXRlID0gc3RhdGUtPm5leHQ7CiAKIAkJaWYgKFJQUkVsZW1Jc1ZhcihlbGVtKSkKQEAgLTI2 NzAsNiArMjY3Nyw5IEBAIG5mYV9hZHZhbmNlX3N0YXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCiAJQXNzZXJ0KHN0YXRlLT5lbGVtSWR4ID49IDAgJiYg c3RhdGUtPmVsZW1JZHggPCBwYXR0ZXJuLT5udW1FbGVtZW50cyk7CiAKKwkvKiBQcm90ZWN0IGFn YWluc3Qgc3RhY2sgb3ZlcmZsb3cgZm9yIGRlZXBseSBjb21wbGV4IHBhdHRlcm5zICovCisJY2hl Y2tfc3RhY2tfZGVwdGgoKTsKKwogCS8qIEN5Y2xlIGRldGVjdGlvbjogaWYgdGhpcyBlbGVtSWR4 IHdhcyBhbHJlYWR5IHZpc2l0ZWQgaW4gdGhpcyBERlMsIGJhaWwgKi8KIAlpZiAod2luc3RhdGUt Pm5mYVZpc2l0ZWRFbGVtc1tXT1JETlVNKHN0YXRlLT5lbGVtSWR4KV0gJgogCQkoKGJpdG1hcHdv cmQpIDEgPDwgQklUTlVNKHN0YXRlLT5lbGVtSWR4KSkpCkBAIC0yNzIyLDEzICsyNzMyLDE1IEBA IG5mYV9hZHZhbmNlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4 LCBpbnQ2NCBjdXJyZW50UG9zKQogewogCVJQUk5GQVN0YXRlICpzdGF0ZXMgPSBjdHgtPnN0YXRl czsKIAlSUFJORkFTdGF0ZSAqc3RhdGU7CisJUlBSTkZBU3RhdGUgKnNhdmVkTWF0Y2hlZFN0YXRl OwogCiAJY3R4LT5zdGF0ZXMgPSBOVUxMOwkJCS8qIFdpbGwgcmVidWlsZCAqLwogCiAJLyogUHJv Y2VzcyBlYWNoIHN0YXRlIGluIGxleGljYWwgb3JkZXIgKERGUyBvcmRlciBmcm9tIHByZXZpb3Vz IGFkdmFuY2UpICovCiAJd2hpbGUgKHN0YXRlcyAhPSBOVUxMKQogCXsKLQkJUlBSTkZBU3RhdGUg KnNhdmVkTWF0Y2hlZFN0YXRlID0gY3R4LT5tYXRjaGVkU3RhdGU7CisJCUNIRUNLX0ZPUl9JTlRF UlJVUFRTKCk7CisJCXNhdmVkTWF0Y2hlZFN0YXRlID0gY3R4LT5tYXRjaGVkU3RhdGU7CiAKIAkJ LyogQ2xlYXIgdmlzaXRlZCBiaXRtYXAgYmVmb3JlIGVhY2ggc3RhdGUncyBERlMgZXhwYW5zaW9u ICovCiAJCW1lbXNldCh3aW5zdGF0ZS0+bmZhVmlzaXRlZEVsZW1zLCAwLApAQCAtMjkxMiw2ICsy OTI0LDkgQEAgRXhlY1JQUlByb2Nlc3NSb3coV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2 NCBjdXJyZW50UG9zLAogCVJQUk5GQUNvbnRleHQgKmN0eDsKIAlib29sCSAgICp2YXJNYXRjaGVk ID0gd2luc3RhdGUtPm5mYVZhck1hdGNoZWQ7CiAKKwkvKiBBbGxvdyBxdWVyeSBjYW5jZWxsYXRp b24gb25jZSBwZXIgcm93IGZvciBzaW1wbGUvbG93LXN0YXRlIHBhdHRlcm5zICovCisJQ0hFQ0tf Rk9SX0lOVEVSUlVQVFMoKTsKKwogCS8qCiAJICogUGhhc2UgMTogTWF0Y2ggYWxsIGNvbnRleHRz IChjb252ZXJnZW5jZSkuICBFdmFsdWF0ZSBWQVIgZWxlbWVudHMsCiAJICogdXBkYXRlIGNvdW50 cywgcmVtb3ZlIGRlYWQgc3RhdGVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRleCBjNTBj YmRjMThmMS4uMGI0ZDkzYjkzM2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBAIC0zNyw2 ICszNyw3IEBACiAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAibWlzY2FkbWlu LmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3Jw ci5oIgogCkBAIC05MzMsNiArOTM0LDggQEAgb3B0aW1pemVSUFJQYXR0ZXJuKFJQUlBhdHRlcm5O b2RlICpwYXR0ZXJuKQogCS8qIFBhdHRlcm4gbm9kZXMgZnJvbSBwYXJzZXIgYXJlIG5ldmVyIE5V TEwgKi8KIAlBc3NlcnQocGF0dGVybiAhPSBOVUxMKTsKIAorCWNoZWNrX3N0YWNrX2RlcHRoKCk7 CisKIAlzd2l0Y2ggKHBhdHRlcm4tPm5vZGVUeXBlKQogCXsKIAkJY2FzZSBSUFJfUEFUVEVSTl9W QVI6CkBAIC05OTEsNiArOTk0LDggQEAgc2NhblJQUlBhdHRlcm5SZWN1cnNpdmUoUlBSUGF0dGVy bk5vZGUgKm5vZGUsIGNoYXIgKip2YXJOYW1lcywgaW50ICpudW1WYXJzLAogCS8qIFBhdHRlcm4g bm9kZXMgZnJvbSBwYXJzZXIgYXJlIG5ldmVyIE5VTEwgKi8KIAlBc3NlcnQobm9kZSAhPSBOVUxM KTsKIAorCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisKIAkvKiBDaGVjayByZWN1cnNpb24gZGVwdGgg bGltaXQgYmVmb3JlIG92ZXJmbG93IG9jY3VycyAqLwogCWlmIChkZXB0aCA+PSBSUFJfREVQVEhf TUFYKQogCQllcmVwb3J0KEVSUk9SLApAQCAtMTM2Nyw2ICsxMzcyLDggQEAgZmlsbFJQUlBhdHRl cm4oUlBSUGF0dGVybk5vZGUgKm5vZGUsIFJQUlBhdHRlcm4gKnBhdCwgaW50ICppZHgsIFJQUkRl cHRoIGRlcHRoKQogCS8qIFBhdHRlcm4gbm9kZXMgZnJvbSBwYXJzZXIgYXJlIG5ldmVyIE5VTEwg Ki8KIAlBc3NlcnQobm9kZSAhPSBOVUxMKTsKIAorCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisKIAlz d2l0Y2ggKG5vZGUtPm5vZGVUeXBlKQogCXsKIAkJY2FzZSBSUFJfUEFUVEVSTl9TRVE6CkBAIC0x NjA5LDYgKzE2MTYsOCBAQCBjb21wdXRlQWJzb3JiYWJpbGl0eVJlY3Vyc2l2ZShSUFJQYXR0ZXJu ICpwYXR0ZXJuLCBSUFJFbGVtSWR4IHN0YXJ0SWR4LAogewogCVJQUlBhdHRlcm5FbGVtZW50ICpl bGVtID0gJnBhdHRlcm4tPmVsZW1lbnRzW3N0YXJ0SWR4XTsKIAorCWNoZWNrX3N0YWNrX2RlcHRo KCk7CisKIAlpZiAoUlBSRWxlbUlzQWx0KGVsZW0pKQogCXsKIAkJLyogQUxUOiByZWN1cnNpdmVs eSBjaGVjayBlYWNoIGJyYW5jaCAqLwpAQCAtMTcxNiw2ICsxNzI1LDggQEAgY29sbGVjdFBhdHRl cm5WYXJpYWJsZXNSZWN1cnNpdmUoUlBSUGF0dGVybk5vZGUgKm5vZGUsIExpc3QgKip2YXJOYW1l cykKIAogCUFzc2VydChub2RlICE9IE5VTEwpOwogCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsKKwog CXN3aXRjaCAobm9kZS0+bm9kZVR5cGUpCiAJewogCQljYXNlIFJQUl9QQVRURVJOX1ZBUjoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9ycHIuYwppbmRleCA2NjI1MmNkMTg1ZS4uOTJmZWYyZDliYTcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfcnByLmMKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgInBvc3RncmVzLmgi CiAKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIK ICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgi CkBAIC0xNzUsNiArMTc2LDggQEAgdmFsaWRhdGVSUFJQYXR0ZXJuVmFyQ291bnQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBSUFJQYXR0ZXJuTm9kZSAqbm9kZSwKIAkvKiBQYXR0ZXJuIG5vZGUgbXVzdCBl eGlzdCAtIHBhcnNlciBhbHdheXMgcHJvdmlkZXMgbm9uLU5VTEwgcm9vdCAqLwogCUFzc2VydChu b2RlICE9IE5VTEwpOwogCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsKKwogCXN3aXRjaCAobm9kZS0+ bm9kZVR5cGUpCiAJewogCQljYXNlIFJQUl9QQVRURVJOX1ZBUjoKLS0gCjIuNTAuMSAoQXBwbGUg R2l0LTE1NSkKCg== --00000000000006699e064d7673c8 Content-Type: text/plain; charset="UTF-8"; name="nocfbot-0004-Fix-window_last_value-set_mark-during-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0004-Fix-window_last_value-set_mark-during-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz2925g3 RnJvbSBkZGYxMWFjMDI5NjliMDAzZDFmOWI0Mjk2ZDI4MDZkZDY0Yzg4NDY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDEzOjM5OjIwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IHdp bmRvd19sYXN0X3ZhbHVlIHNldF9tYXJrIHRvIG5vdCBhZHZhbmNlIG1hcmsgZHVyaW5nIFJQUgoK d2luZG93X2xhc3RfdmFsdWUgcGFzc2VzIHNldF9tYXJrPXRydWUgdG8gV2luR2V0RnVuY0FyZ0lu RnJhbWUsIHdoaWNoIGlzCmNvcnJlY3QgZm9yIG5vcm1hbCB1c2U6IGFkdmFuY2luZyB0aGUgbWFy ayBhbGxvd3MgdGhlIHR1cGxlc3RvcmUgdG8gZGlzY2FyZApyb3dzIG5vIGxvbmdlciBuZWVkZWQs IHJlZHVjaW5nIG1lbW9yeSB1c2FnZS4KCkhvd2V2ZXIsIHdoZW4gUlBSIGlzIGFjdGl2ZSwgdGhl IHJlZHVjZWQgZnJhbWUgY2hhbmdlcyByb3cgYnkgcm93LiBBZHZhbmNpbmcKdGhlIG1hcmsgd291 bGQgcHJldmVudCByZXZpc2l0aW5nIGVhcmxpZXIgcm93cyB0aGF0IHN0aWxsIGZhbGwgd2l0aGlu IGEgZnV0dXJlCnJvdydzIHJlZHVjZWQgZnJhbWUsIHByb2R1Y2luZyBpbmNvcnJlY3QgcmVzdWx0 cy4KClJhdGhlciB0aGFuIHJlcXVpcmluZyBlYWNoIGNhbGxlciB0byBrbm93IGFib3V0IFJQUiwg YWRkIGFuIG92ZXJyaWRlIGluCldpbkdldEZ1bmNBcmdJbkZyYW1lOiBpZiBSUFIgaXMgZGVmaW5l ZCwgZm9yY2Ugc2V0X21hcms9ZmFsc2UgcmVnYXJkbGVzcwpvZiB3aGF0IHRoZSBjYWxsZXIgcGFz c2VkLiBUaGlzIGtlZXBzIHRoZSBmaXggbG9jYWxpemVkIGFuZCB0cmFuc3BhcmVudAp0byBleGlz dGluZyBjYWxsZXJzLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8 IDcgKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMgIHwgMiArLQog MiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggMGE5YmE1YmQ0ZTcuLmQzY2U5ODk3YTRmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC00NzAwLDYgKzQ3MDAsMTMgQEAg V2luR2V0RnVuY0FyZ0luRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLAogCWVj b250ZXh0ID0gd2luc3RhdGUtPnNzLnBzLnBzX0V4cHJDb250ZXh0OwogCXNsb3QgPSB3aW5zdGF0 ZS0+dGVtcF9zbG90XzE7CiAKKwkvKgorCSAqIFdoZW4gUlBSIGlzIGFjdGl2ZSwgdGhlIHJlZHVj ZWQgZnJhbWUgY2hhbmdlcyByb3cgYnkgcm93LCBzbyB3ZSBtdXN0CisJICogbm90IGFkdmFuY2Ug dGhlIG1hcmsg4oCUIGRvaW5nIHNvIHdvdWxkIHByZXZlbnQgcmV2aXNpdGluZyBlYXJsaWVyIHJv d3MuCisJICovCisJaWYgKHJwcl9pc19kZWZpbmVkKHdpbnN0YXRlKSkKKwkJc2V0X21hcmsgPSBm YWxzZTsKKwogCWlmICh3aW5vYmotPmlnbm9yZV9udWxscyA9PSBJR05PUkVfTlVMTFMpCiAJCXJl dHVybiBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFtZSh3aW5vYmosIGFyZ25vLCByZWxwb3Ms IHNlZWt0eXBlLAogCQkJCQkJCQkJCQkgc2V0X21hcmssIGlzbnVsbCwgaXNvdXQpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvd2luZG93ZnVuY3MuYwppbmRleCBlZmI2MGM5OTA1Mi4uNzRlZjEwOWY3MmUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jCkBAIC02ODIsNyArNjgyLDcgQEAgd2luZG93 X2xhc3RfdmFsdWUoUEdfRlVOQ1RJT05fQVJHUykKIAogCVdpbkNoZWNrQW5kSW5pdGlhbGl6ZU51 bGxUcmVhdG1lbnQod2lub2JqLCB0cnVlLCBmY2luZm8pOwogCXJlc3VsdCA9IFdpbkdldEZ1bmNB cmdJbkZyYW1lKHdpbm9iaiwgMCwKLQkJCQkJCQkJICAwLCBXSU5ET1dfU0VFS19UQUlMLCBmYWxz ZSwKKwkJCQkJCQkJICAwLCBXSU5ET1dfU0VFS19UQUlMLCB0cnVlLAogCQkJCQkJCQkgICZpc251 bGwsIE5VTEwpOwogCWlmIChpc251bGwpCiAJCVBHX1JFVFVSTl9OVUxMKCk7Ci0tIAoyLjUwLjEg KEFwcGxlIEdpdC0xNTUpCgo= --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0005-Fix-row_is_in_reduced_frame-SEEK_TAIL.txt" Content-Disposition: attachment; filename="nocfbot-0005-Fix-row_is_in_reduced_frame-SEEK_TAIL.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz294m44 RnJvbSA0MGE1ZDNhZTBiM2Y3NmZmYjJhZDczMTAwZDgzZDRlZmIyYTNmY2M2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDE0OjE0OjE3ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IHJv d19pc19pbl9yZWR1Y2VkX2ZyYW1lIGFyZ3VtZW50IGFuZCBhZGQgYm91bmRzIGNoZWNrIGluCiBX SU5ET1dfU0VFS19UQUlMCgpJbiBXaW5HZXRTbG90SW5GcmFtZSwgdGhlIFdJTkRPV19TRUVLX1RB SUwgY2FzZSBwYXNzZWQgZnJhbWVoZWFkcG9zK3JlbHBvcwp0byByb3dfaXNfaW5fcmVkdWNlZF9m cmFtZSB0byBkZXRlcm1pbmUgdGhlIHJlZHVjZWQgZnJhbWUgc2l6ZS4gU2luY2UgcmVscG9zCmlz IG5vbi1wb3NpdGl2ZSwgdGhpcyBxdWVyaWVzIGEgcG9zaXRpb24gYXQgb3IgYmVmb3JlIHRoZSBm cmFtZSBoZWFkLiBXaGVuCnJlbHBvcyBpcyBuZWdhdGl2ZSB0aGUgcXVlcmllZCBwb3NpdGlvbiBm YWxscyBvdXRzaWRlIHRoZSBmcmFtZSBlbnRpcmVseSwKd2hpY2ggaXMgaW52YWxpZCBhbmQgY291 bGQgdHJpZ2dlciBpbnRlcm5hbCBBc3NlcnQgZmFpbHVyZXMuCgpUaGUgY29ycmVjdCBhcmd1bWVu dCBpcyBmcmFtZWhlYWRwb3M6IHRoZSByZWR1Y2VkIGZyYW1lIGFsd2F5cyBzdGFydHMgdGhlcmUs CmFuZCBpdHMgc2l6ZSBOIGdpdmVzIHRoZSB0YWlsIHBvc2l0aW9uIGFzIGZyYW1laGVhZHBvcytO LTEuIFBhc3MgZnJhbWVoZWFkcG9zCmRpcmVjdGx5IGluc3RlYWQuCgpBbHNvIGFkZCBhIGJvdW5k cyBjaGVjayAoLXJlbHBvcyA+PSBOIC0+IG91dF9vZl9mcmFtZSkgdG8gaGFuZGxlIGZ1dHVyZQpj YWxsZXJzIHRoYXQgbWF5IHBhc3MgbmVnYXRpdmUgcmVscG9zIHZhbHVlcy4gQ3VycmVudGx5IG9u bHkgbGFzdF92YWx1ZSgpCmNhbGxzIHRoaXMgcGF0aCB3aXRoIHJlbHBvcz0wLCBzbyB0aGUgY2hl Y2sgaGFzIG5vIGVmZmVjdCBhdCBwcmVzZW50LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVXaW5kb3dBZ2cuYyB8IDYgKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdp bmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IGQz Y2U5ODk3YTRmLi5jOTIyMzVjNTRjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cu YwpAQCAtNDkwNiwxMiArNDkwNiwxNiBAQCBXaW5HZXRTbG90SW5GcmFtZShXaW5kb3dPYmplY3Qg d2lub2JqLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAkJCX0KIAogCQkJbnVtX3JlZHVjZWRfZnJh bWUgPSByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZSh3aW5vYmosCi0JCQkJCQkJCQkJCQkJCXdpbnN0 YXRlLT5mcmFtZWhlYWRwb3MgKyByZWxwb3MpOworCQkJCQkJCQkJCQkJCQl3aW5zdGF0ZS0+ZnJh bWVoZWFkcG9zKTsKIAkJCWlmIChudW1fcmVkdWNlZF9mcmFtZSA8IDApCiAJCQkJZ290byBvdXRf b2ZfZnJhbWU7CiAJCQllbHNlIGlmIChudW1fcmVkdWNlZF9mcmFtZSA+IDApCisJCQl7CisJCQkJ aWYgKC1yZWxwb3MgPj0gbnVtX3JlZHVjZWRfZnJhbWUpCisJCQkJCWdvdG8gb3V0X29mX2ZyYW1l OwogCQkJCWFic19wb3MgPSB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zICsgcmVscG9zICsKIAkJCQkJ bnVtX3JlZHVjZWRfZnJhbWUgLSAxOworCQkJfQogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIHdpbmRvdyBzZWVrIHR5cGU6ICVkIiwgc2Vla3R5cGUp OwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0006-Clarify-ST_NONE-intent.txt" Content-Disposition: attachment; filename="nocfbot-0006-Clarify-ST_NONE-intent.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz296zb5 RnJvbSBlMjY3ZTRmMWU0MGJkNjkxOWVmYjRlYmVmNzY5ZTYwZGEzYTdhYzRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDE2OjU5OjIxICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQ2xhcmlm eSBTVF9OT05FIGludGVudCBpbiBSUFNraXBUbyBlbnVtIGFuZCBXaW5kb3dDbGF1c2UKIGluaXRp YWxpemF0aW9uCgpTVF9OT05FIHNlcnZlcyBhcyB0aGUgc2VudGluZWwgdmFsdWUgKDApIGluZGlj YXRpbmcgdGhhdCBhIFdpbmRvd0NsYXVzZQpoYXMgbm8gUlBSIEFGVEVSIE1BVENIIGNsYXVzZS4g VGhpcyB3YXMgaW1wbGljaXQgdmlhIHBhbGxvYzAgemVyby1maWxsaW5nCmJ1dCBub3QgZG9jdW1l bnRlZC4KCkFkZCBhIGNvbW1lbnQgdG8gdGhlIFNUX05PTkUgZW51bSB2YWx1ZSBleHBsYWluaW5n IGl0cyByb2xlIGFzIHRoZSBkZWZhdWx0CmZvciBub24tUlBSIHdpbmRvd3MsIGFuZCBhZGQgYW4g ZXhwbGljaXQgYXNzaWdubWVudCBpbgp0cmFuc2Zvcm1XaW5kb3dEZWZpbml0aW9ucygpIHRvIG1h a2UgdGhlIGludGVudCBjbGVhciBpbiBjb2RlLgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9jbGF1c2UuYyB8IDIgKysKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICB8IDMg KystCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCBiMzBjMjI5MzNlYy4uMzc5NmE2OWFjM2EgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAgLTI4ODksNiArMjg4OSw4IEBAIHRyYW5zZm9y bVdpbmRvd0RlZmluaXRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJICogQW5kIHByZXBhcmUg dGhlIG5ldyBXaW5kb3dDbGF1c2UuCiAJCSAqLwogCQl3YyA9IG1ha2VOb2RlKFdpbmRvd0NsYXVz ZSk7CisJCXdjLT5ycFNraXBUbyA9IFNUX05PTkU7IC8qIFNUX05PTkUgbWFya3MgdGhpcyBhcyBh IG5vbi1SUFIgd2luZG93OworCQkJCQkJCQkgKiBvdmVycmlkZGVuIGJ5IHRyYW5zZm9ybVJQUigp IGlmIFJQUiBpcyB1c2VkICovCiAJCXdjLT5uYW1lID0gd2luZGVmLT5uYW1lOwogCQl3Yy0+cmVm bmFtZSA9IHdpbmRlZi0+cmVmbmFtZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDQzMmIw NTczOTkwLi5jNWJmMmNlODBiZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNTgzLDcgKzU4 Myw4IEBAIHR5cGVkZWYgc3RydWN0IFNvcnRCeQogICovCiB0eXBlZGVmIGVudW0gUlBTa2lwVG8K IHsKLQlTVF9OT05FLAkJCQkJLyogQUZURVIgTUFUQ0ggb21pdHRlZCAqLworCVNUX05PTkUsCQkJ CQkvKiBubyBBRlRFUiBNQVRDSCBjbGF1c2U7IGRlZmF1bHQgZm9yIG5vbi1SUFIKKwkJCQkJCQkJ ICogd2luZG93cyAqLwogCVNUX05FWFRfUk9XLAkJCQkvKiBTS0lQIFRPIE5FWFQgUk9XICovCiAJ U1RfUEFTVF9MQVNUX1JPVywJCQkvKiBTS0lQIFRPIFBBU1QgTEFTVCBST1cgKi8KIH0gUlBTa2lw VG87Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0007-Clarify-RPR-inverse-transition-comment.txt" Content-Disposition: attachment; filename="nocfbot-0007-Clarify-RPR-inverse-transition-comment.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz2996u6 RnJvbSAxMjQxMTllZjY0OWQwNWJjZDNlMjBmNWU1YTFjMzUzYTE4NmY5OWRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDE5OjAxOjQzICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQ2xhcmlm eSB3aHkgUlBSIGRpc2FibGVzIGludmVyc2UgdHJhbnNpdGlvbiBvcHRpbWl6YXRpb24KCldoZW4g UlBSIGlzIGFjdGl2ZSwgdGhlIHJlZHVjZWQgZnJhbWUgZGVwZW5kcyBvbiBwYXR0ZXJuIG1hdGNo aW5nIHJlc3VsdHMKd2hpY2ggY2FuIGRpZmZlciBlbnRpcmVseSBmcm9tIHJvdyB0byByb3cuIFRo aXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0bwp1c2UgdGhlIGludmVyc2UgdHJhbnNpdGlvbiBmdW5j dGlvbiB0byBpbmNyZW1lbnRhbGx5IHJlbW92ZSByb3dzIGZyb20gdGhlCmFnZ3JlZ2F0ZSBzdGF0 ZSwgc28gYSBmdWxsIHJlc3RhcnQgaXMgcmVxdWlyZWQgZm9yIGV2ZXJ5IHJvdy4KCkFkZCBhIGNv bW1lbnQgZXhwbGFpbmluZyB0aGlzIHJlYXNvbmluZyBhdCB0aGUgcmVzdGFydCBkZWNpc2lvbiBs b2dpYy4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgfCA0ICsrKy0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggYzkyMjM1YzU0YzcuLmQxNDRmYTM5Mzc1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC04NTMsNyArODUzLDkgQEAgZXZh bF93aW5kb3dhZ2dyZWdhdGVzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIAkgKgkgICB0cmFu c2l0aW9uIGZ1bmN0aW9uLCBvcgogCSAqCSAtIHdlIGhhdmUgYW4gRVhDTFVTSU9OIGNsYXVzZSwg b3IKIAkgKgkgLSBpZiB0aGUgbmV3IGZyYW1lIGRvZXNuJ3Qgb3ZlcmxhcCB0aGUgb2xkIG9uZQot CSAqICAgLSBpZiBSUFIgaXMgZW5hYmxlZAorCSAqICAgLSBpZiBSUFIgKFJvdyBQYXR0ZXJuIFJl Y29nbml0aW9uKSBpcyBlbmFibGVkLCBiZWNhdXNlIHRoZSByZWR1Y2VkCisJICogICAgIGZyYW1l IGRlcGVuZHMgb24gcGF0dGVybiBtYXRjaGluZyByZXN1bHRzIHdoaWNoIGNhbiBkaWZmZXIgZW50 aXJlbHkKKwkgKiAgICAgZnJvbSByb3cgdG8gcm93LCBtYWtpbmcgaW52ZXJzZSB0cmFuc2l0aW9u IG9wdGltaXphdGlvbiBpbmFwcGxpY2FibGUKIAkgKgogCSAqIE5vdGUgdGhhdCB3ZSBkb24ndCBz dHJpY3RseSBuZWVkIHRvIHJlc3RhcnQgaW4gdGhlIGxhc3QgY2FzZSwgYnV0IGlmCiAJICogd2Un cmUgZ29pbmcgdG8gcmVtb3ZlIGFsbCByb3dzIGZyb20gdGhlIGFnZ3JlZ2F0aW9uIGFueXdheSwg YSByZXN0YXJ0Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000006699e064d7673c8 Content-Type: text/plain; charset="UTF-8"; name="nocfbot-0008-Reject-unused-DEFINE-variables.txt" Content-Disposition: attachment; filename="nocfbot-0008-Reject-unused-DEFINE-variables.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz29bp87 RnJvbSAyMTM2NTBkYmVlOTk2MjQ5MmJmZGQ2NWNlM2VkNjFmZWU2NzRlNWI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDE5OjQyOjI3ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gUmVqZWN0 IERFRklORSB2YXJpYWJsZXMgbm90IHVzZWQgaW4gUEFUVEVSTgoKREVGSU5FIHZhcmlhYmxlcyB0 aGF0IGRvIG5vdCBhcHBlYXIgaW4gUEFUVEVSTiBhcmUgbm93IHJlamVjdGVkIHdpdGgKYW4gZXJy b3IgYXQgcGFyc2UgdGltZS4gV2hlbiBERUZJTkUgc3VwcG9ydHMgcXVhbGlmaWVkIGNvbHVtbiBy ZWZlcmVuY2VzCihlLmcuIEEucHJpY2UpLCBhIERFRklORSBleHByZXNzaW9uIG1heSByZWZlcmVu Y2Ugb3RoZXIgcGF0dGVybiB2YXJpYWJsZXMuCklmIHRoZSBwbGFubmVyIHNpbGVudGx5IHJlbW92 ZXMgdW51c2VkIHZhcmlhYmxlcywgdGhvc2UgcmVmZXJlbmNlcyBiZWNvbWUKZGFuZ2xpbmcsIGxl YWRpbmcgdG8gaW5jb3JyZWN0IGV2YWx1YXRpb24uIFJlamVjdGluZyBhdCBwYXJzZSB0aW1lIGF2 b2lkcwp0aGlzIGNsYXNzIG9mIGJ1Z3MgZW50aXJlbHkuCgpSZW1vdmUgZmlsdGVyRGVmaW5lQ2xh dXNlKCkgZnJvbSB0aGUgcGxhbm5lciBhbmQgcmVwbGFjZSBpdCB3aXRoCmJ1aWxkRGVmaW5lVmFy aWFibGVMaXN0KCksIHdoaWNoIGJ1aWxkcyB0aGUgdmFyaWFibGUgbmFtZSBsaXN0IHdpdGhvdXQK ZmlsdGVyaW5nLiBVcGRhdGUgcmVncmVzc2lvbiB0ZXN0cyBhY2NvcmRpbmdseS4KLS0tCiBzcmMv YmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgICAgICAgICAgfCAgNSArLQogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIHwgMTUgKystLS0KIHNyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3Jwci5jICAgICAgICB8IDM0ICsrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9ycHIuYyAgICAgICAgICB8ICA5ICsrLQogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jw ci5oICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jh c2Uub3V0ICB8IDgyICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwcl9iYXNlLnNxbCAgICAgICB8IDQ2ICsrLS0tLS0tLS0tLS0tCiA3IGZpbGVzIGNoYW5n ZWQsIDQzIGluc2VydGlvbnMoKyksIDE1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBS LmMKaW5kZXggMDY5MzRiOTVkYTMuLmEwYTQ2MjI1NmFkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5j CkBAIC0yMDQsOCArMjA0LDcgQEAKICAqIElWLTEuIEVudHJ5IFBvaW50CiAgKgogICogICBjcmVh dGVfd2luZG93YWdnX3BsYW4oKSAoY3JlYXRlcGxhbi5jKQotICogICAgICstLSBjb2xsZWN0UGF0 dGVyblZhcmlhYmxlcygpICAgQ29sbGVjdCB2YXJpYWJsZSBuYW1lcwotICogICAgICstLSBmaWx0 ZXJEZWZpbmVDbGF1c2UoKSAgICAgICAgUmVtb3ZlIHVudXNlZCBERUZJTkUgZW50cmllcworICog ICAgICstLSBidWlsZERlZmluZVZhcmlhYmxlTGlzdCgpICAgIEJ1aWxkIHZhcmlhYmxlIG5hbWUg bGlzdCBmcm9tIERFRklORQogICogICAgICstLSBidWlsZFJQUlBhdHRlcm4oKSAgICAgICAgICAg TkZBIGNvbXBpbGF0aW9uICg2IHBoYXNlcykKICAqCiAgKiBJVi0yLiBUaGUgNiBQaGFzZXMgb2Yg YnVpbGRSUFJQYXR0ZXJuKCkKQEAgLTEyOTcsNyArMTI5Niw3IEBACiAgKiAgIHRyYW5zZm9ybVJQ UiAgICAgICAgICAgICAgICAgIHBhcnNlX3Jwci5jICAgICAgICAgICBQYXJzZXIgZW50cnkgcG9p bnQKICAqICAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlICAgICAgICAgcGFyc2VfcnByLmMgICAgICAg ICAgIERFRklORSB0cmFuc2Zvcm1hdGlvbgogICogICBjb2xsZWN0UGF0dGVyblZhcmlhYmxlcyAg ICAgICBycHIuYyAgICAgICAgICAgICAgICAgVmFyaWFibGUgY29sbGVjdGlvbgotICogICBmaWx0 ZXJEZWZpbmVDbGF1c2UgICAgICAgICAgICBycHIuYyAgICAgICAgICAgICAgICAgREVGSU5FIGZp bHRlcmluZworICogICBidWlsZERlZmluZVZhcmlhYmxlTGlzdCAgICAgICBycHIuYyAgICAgICAg ICAgICAgICAgREVGSU5FIHZhcmlhYmxlIGxpc3QKICAqICAgYnVpbGRSUFJQYXR0ZXJuICAgICAg ICAgICAgICAgcnByLmMgICAgICAgICAgICAgICAgIE5GQSBjb21waWxhdGlvbiBtYWluCiAgKiAg IG9wdGltaXplUlBSUGF0dGVybiAgICAgICAgICAgIHJwci5jICAgICAgICAgICAgICAgICBBU1Qg b3B0aW1pemF0aW9uCiAgKiAgIGZpbGxSUFJQYXR0ZXJuICAgICAgICAgICAgICAgIHJwci5jICAg ICAgICAgICAgICAgICBORkEgZWxlbWVudCBnZW5lcmF0aW9uCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9jcmVhdGVwbGFuLmMKaW5kZXggZGE3MWU3ZjNkNjQuLjlhYzI0Y2MyMjJkIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKKysrIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCkBAIC0yNTM5LDE5ICsyNTM5LDE2IEBA IGNyZWF0ZV93aW5kb3dhZ2dfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgV2luZG93QWdnUGF0aCAq YmVzdF9wYXRoKQogCQlvcmROdW1Db2xzKys7CiAJfQogCi0JLyogQnVpbGQgUlBSIHBhdHRlcm4g YW5kIGZpbHRlciBkZWZpbmVDbGF1c2UgKi8KKwkvKiBCdWlsZCBSUFIgcGF0dGVybiBhbmQgZGVm aW5lVmFyaWFibGVMaXN0ICovCiAJaWYgKHdjLT5ycFBhdHRlcm4pCiAJewotCQlMaXN0CSAgICpw YXR0ZXJuVmFyczsKLQogCQkvKgotCQkgKiBGaWx0ZXIgZGVmaW5lQ2xhdXNlIHRvIGluY2x1ZGUg b25seSB2YXJpYWJsZXMgdXNlZCBpbiBQQVRURVJOLiBUaGlzCi0JCSAqIGVsaW1pbmF0ZXMgdW5u ZWNlc3NhcnkgREVGSU5FIGV2YWx1YXRpb25zIGF0IHJ1bnRpbWUuCisJCSAqIEJ1aWxkIGRlZmlu ZVZhcmlhYmxlTGlzdCBmcm9tIGRlZmluZUNsYXVzZS4gIFRoZSBwYXJzZXIgYWxyZWFkeQorCQkg KiByZWplY3RzIERFRklORSB2YXJpYWJsZXMgbm90IHVzZWQgaW4gUEFUVEVSTiwgc28gbm8gZmls dGVyaW5nIGlzCisJCSAqIG5lZWRlZC4KIAkJICovCi0JCXBhdHRlcm5WYXJzID0gY29sbGVjdFBh dHRlcm5WYXJpYWJsZXMod2MtPnJwUGF0dGVybik7Ci0JCWZpbHRlcmVkRGVmaW5lQ2xhdXNlID0g ZmlsdGVyRGVmaW5lQ2xhdXNlKHdjLT5kZWZpbmVDbGF1c2UsCi0JCQkJCQkJCQkJCQkgIHBhdHRl cm5WYXJzLAotCQkJCQkJCQkJCQkJICAmZGVmaW5lVmFyaWFibGVMaXN0KTsKKwkJYnVpbGREZWZp bmVWYXJpYWJsZUxpc3Qod2MtPmRlZmluZUNsYXVzZSwgJmRlZmluZVZhcmlhYmxlTGlzdCk7CisJ CWZpbHRlcmVkRGVmaW5lQ2xhdXNlID0gd2MtPmRlZmluZUNsYXVzZTsKIAogCQkvKiBDb21waWxl IGFuZCBvcHRpbWl6ZSBSUFIgcGF0dGVybnMgKi8KIAkJY29tcGlsZWRQYXR0ZXJuID0gYnVpbGRS UFJQYXR0ZXJuKHdjLT5ycFBhdHRlcm4sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9ycHIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCmluZGV4IDBi NGQ5M2I5MzNlLi44NWIxYTAwZDA5NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcnByLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKQEAgLTE3 NzEsNTAgKzE3NzEsMjggQEAgY29sbGVjdFBhdHRlcm5WYXJpYWJsZXMoUlBSUGF0dGVybk5vZGUg KnBhdHRlcm4pCiB9CiAKIC8qCi0gKiBmaWx0ZXJEZWZpbmVDbGF1c2UKLSAqCQlGaWx0ZXIgZGVm aW5lQ2xhdXNlIHRvIGluY2x1ZGUgb25seSB2YXJpYWJsZXMgdXNlZCBpbiBQQVRURVJOLgorICog YnVpbGREZWZpbmVWYXJpYWJsZUxpc3QKKyAqCQlCdWlsZCBkZWZpbmVWYXJpYWJsZUxpc3QgZnJv bSBkZWZpbmVDbGF1c2UuCiAgKgotICogVGhpcyBlbGltaW5hdGVzIHVubmVjZXNzYXJ5IERFRklO RSBldmFsdWF0aW9ucyBhdCBydW50aW1lLgotICogQWxzbyBidWlsZHMgZGVmaW5lVmFyaWFibGVM aXN0IGZyb20gdGhlIGZpbHRlcmVkIHJlc3VsdC4KKyAqIFRoZSBwYXJzZXIgYWxyZWFkeSBlbnN1 cmVzIHRoYXQgYWxsIERFRklORSB2YXJpYWJsZXMgYXBwZWFyIGluIFBBVFRFUk4sCisgKiBzbyBu byBmaWx0ZXJpbmcgaXMgbmVlZGVkIGhlcmUuCiAgKgotICogUmV0dXJucyBmaWx0ZXJlZCBkZWZp bmVDbGF1c2UgKGxpc3Qgb2YgVGFyZ2V0RW50cnkpLgogICogU2V0cyAqZGVmaW5lVmFyaWFibGVM aXN0IHRvIGxpc3Qgb2YgdmFyaWFibGUgbmFtZXMgKFN0cmluZyBub2RlcykuCiAgKi8KLUxpc3Qg KgotZmlsdGVyRGVmaW5lQ2xhdXNlKExpc3QgKmRlZmluZUNsYXVzZSwgTGlzdCAqcGF0dGVyblZh cnMsCi0JCQkJICAgTGlzdCAqKmRlZmluZVZhcmlhYmxlTGlzdCkKK3ZvaWQKK2J1aWxkRGVmaW5l VmFyaWFibGVMaXN0KExpc3QgKmRlZmluZUNsYXVzZSwgTGlzdCAqKmRlZmluZVZhcmlhYmxlTGlz dCkKIHsKLQlMaXN0CSAgICpmaWx0ZXJlZERlZmluZUNsYXVzZSA9IE5JTDsKIAlMaXN0Q2VsbCAg ICpsYzsKLQlMaXN0Q2VsbCAgICpsYzI7CiAKIAkqZGVmaW5lVmFyaWFibGVMaXN0ID0gTklMOwog Ci0JLyogRmlsdGVyIGRlZmluZUNsYXVzZToga2VlcCBvbmx5IHZhcmlhYmxlcyB1c2VkIGluIFBB VFRFUk4gKi8KIAlmb3JlYWNoKGxjLCBkZWZpbmVDbGF1c2UpCiAJewogCQlUYXJnZXRFbnRyeSAq dGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKIAotCQlmb3JlYWNoKGxjMiwgcGF0dGVy blZhcnMpCi0JCXsKLQkJCWlmIChzdHJjbXAoc3RyVmFsKGxmaXJzdChsYzIpKSwgdGUtPnJlc25h bWUpID09IDApCi0JCQl7Ci0JCQkJZmlsdGVyZWREZWZpbmVDbGF1c2UgPSBsYXBwZW5kKGZpbHRl cmVkRGVmaW5lQ2xhdXNlLCB0ZSk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQkvKiBC dWlsZCBkZWZpbmVWYXJpYWJsZUxpc3QgZnJvbSBmaWx0ZXJlZCBkZWZpbmVDbGF1c2UgKi8KLQlm b3JlYWNoKGxjLCBmaWx0ZXJlZERlZmluZUNsYXVzZSkKLQl7Ci0JCVRhcmdldEVudHJ5ICp0ZSA9 IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOwotCiAJCSpkZWZpbmVWYXJpYWJsZUxpc3QgPSBs YXBwZW5kKCpkZWZpbmVWYXJpYWJsZUxpc3QsCiAJCQkJCQkJCQkgIG1ha2VTdHJpbmcocHN0cmR1 cCh0ZS0+cmVzbmFtZSkpKTsKIAl9Ci0KLQlyZXR1cm4gZmlsdGVyZWREZWZpbmVDbGF1c2U7CiB9 CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKaW5kZXggOTJmZWYyZDliYTcuLjU1MjgzYWI0YmJl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCkBAIC0yNDQsOCArMjQ0LDExIEBAIHZhbGlkYXRlUlBS UGF0dGVyblZhckNvdW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUlBSUGF0dGVybk5vZGUgKm5vZGUs CiAJCQkJfQogCQkJfQogCQkJaWYgKCFmb3VuZCkKLQkJCQkqdmFyTmFtZXMgPSBsYXBwZW5kKCp2 YXJOYW1lcywKLQkJCQkJCQkJCW1ha2VTdHJpbmcocHN0cmR1cChydC0+bmFtZSkpKTsKKwkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJ CQkJIGVycm1zZygiREVGSU5FIHZhcmlhYmxlIFwiJXNcIiBpcyBub3QgdXNlZCBpbiBQQVRURVJO IiwKKwkJCQkJCQkJcnQtPm5hbWUpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IHJ0LT5sb2NhdGlvbikpKTsKIAkJfQogCX0KIH0KQEAgLTI2NSw3ICsyNjgsNyBAQCB2YWxpZGF0 ZVJQUlBhdHRlcm5WYXJDb3VudChQYXJzZVN0YXRlICpwc3RhdGUsIFJQUlBhdHRlcm5Ob2RlICpu b2RlLAogICogICA2LiBNYXJrcyBjb2x1bW4gb3JpZ2lucyBhbmQgYXNzaWducyBjb2xsYXRpb24g aW5mb3JtYXRpb24KICAqCiAgKiBOb3RlOiBWYXJpYWJsZXMgbm90IGluIERFRklORSBhcmUgZXZh bHVhdGVkIGFzIFRSVUUgYnkgdGhlIGV4ZWN1dG9yLgotICogVmFyaWFibGVzIGluIERFRklORSBi dXQgbm90IGluIFBBVFRFUk4gYXJlIGZpbHRlcmVkIG91dCBieSB0aGUgcGxhbm5lci4KKyAqIFZh cmlhYmxlcyBpbiBERUZJTkUgYnV0IG5vdCBpbiBQQVRURVJOIGFyZSByZWplY3RlZCBhcyBhbiBl cnJvci4KICAqCiAgKiBYWFggUGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVy ZW5jZXMgaW4gREVGSU5FIChlLmcuCiAgKiAiQS5wcmljZSIpIGFyZSBub3QgeWV0IHN1cHBvcnRl ZC4gIEN1cnJlbnRseSByZWplY3RlZCBieQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1p emVyL3Jwci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCmluZGV4IGZhMmQwNzU5MjVj Li5mOTNhMTI4MDk2YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCisr KyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaApAQCAtNTIsOCArNTIsOCBAQAogI2RlZmlu ZSBSUFJFbGVtQ2FuU2tpcChlKQkJKChlKS0+bWluID09IDApCiAKIGV4dGVybiBMaXN0ICpjb2xs ZWN0UGF0dGVyblZhcmlhYmxlcyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybik7Ci1leHRlcm4gTGlz dCAqZmlsdGVyRGVmaW5lQ2xhdXNlKExpc3QgKmRlZmluZUNsYXVzZSwgTGlzdCAqcGF0dGVyblZh cnMsCi0JCQkJCQkJCUxpc3QgKipkZWZpbmVWYXJpYWJsZUxpc3QpOworZXh0ZXJuIHZvaWQgYnVp bGREZWZpbmVWYXJpYWJsZUxpc3QoTGlzdCAqZGVmaW5lQ2xhdXNlLAorCQkJCQkJCQkJTGlzdCAq KmRlZmluZVZhcmlhYmxlTGlzdCk7CiBleHRlcm4gUlBSUGF0dGVybiAqYnVpbGRSUFJQYXR0ZXJu KFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuLCBMaXN0ICpkZWZpbmVWYXJpYWJsZUxpc3QsCiAJCQkJ CQkJCSAgIFJQU2tpcFRvIHJwU2tpcFRvLCBpbnQgZnJhbWVPcHRpb25zKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRleCA1MGE5ZTdkYWVhOS4uMzE2ODQ2OGQwYWUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0zNTMsMTIgKzM1Myw5 IEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUgQSBBUyBpZCA+IDAsIEIgQVMgaWQgPiA1ICAt LSBCIG5vdCBpbiBwYXR0ZXJuCiApCiBPUkRFUiBCWSBpZDsKLSBpZCB8IGNudCAKLS0tLS0rLS0t LS0KLSAgMSB8ICAgMgotICAyIHwgICAwCi0oMiByb3dzKQotCitFUlJPUjogIERFRklORSB2YXJp YWJsZSAiYiIgaXMgbm90IHVzZWQgaW4gUEFUVEVSTgorTElORSA3OiAgICAgREVGSU5FIEEgQVMg aWQgPiAwLCBCIEFTIGlkID4gNSAgLS0gQiBub3QgaW4gcGF0dGVybgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiBEUk9QIFRBQkxFIHJwcl91bnVzZWQ7CiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEZS QU1FIE9wdGlvbnMgVGVzdHMKQEAgLTI4NjAsOSArMjg1Nyw5IEBAIFdJTkRPVyB3IEFTICgKICAg ICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIEIudmFsID4gMAog KTsKLUVSUk9SOiAgcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAi Yi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gREVGSU5FIGNsYXVzZQorRVJST1I6ICBERUZJTkUg dmFyaWFibGUgImIiIGlzIG5vdCB1c2VkIGluIFBBVFRFUk4KIExJTkUgNzogICAgIERFRklORSBB IEFTIHZhbCA+IDAsIEIgQVMgQi52YWwgPiAwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIEV4cGVj dGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAi Yi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKIC0tIEZST00tY2xhdXNlIHJhbmdlIHZhcmlhYmxlIHF1 YWxpZmllZCBuYW1lOiBub3QgYWxsb3dlZCAocHJvaGliaXRlZCBieSDCpzYuNSkKIFNFTEVDVCBD T1VOVCgqKSBPVkVSIHcKQEAgLTI5NDEsMTIgKzI5MzgsOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAg REVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiA1LCBDIEFTIHZhbCA+IDEwCiApCiBPUkRF UiBCWSBpZDsKLSBpZCB8IHZhbCB8IGNudCAKLS0tLS0rLS0tLS0rLS0tLS0KLSAgMSB8ICAxMCB8 ICAgMgotICAyIHwgIDIwIHwgICAwCi0oMiByb3dzKQotCitFUlJPUjogIERFRklORSB2YXJpYWJs ZSAiYiIgaXMgbm90IHVzZWQgaW4gUEFUVEVSTgorTElORSA3OiAgICAgREVGSU5FIEEgQVMgdmFs ID4gMCwgQiBBUyB2YWwgPiA1LCBDIEFTIHZhbCA+IDEwCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiBEUk9QIFRBQkxFIHJwcl9lcnI7CiAtLSBOVUxMIGhhbmRsaW5nCiBDUkVB VEUgVEFCTEUgcnByX251bGwgKGlkIElOVCwgdmFsIElOVCk7CkBAIC01NjcwLDcgKzU2NjQsNyBA QCBEUk9QIFRBQkxFIHJwcl9zdHJlc3M7CiAtLSBUZXN0cyBmb3IgZXJyb3IgY29uZGl0aW9ucyBp biBycHIuYwogQ1JFQVRFIFRBQkxFIHJwcl9lcnJvcnMgKGlkIElOVCwgdmFsIElOVCk7CiBJTlNF UlQgSU5UTyBycHJfZXJyb3JzIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOwotLS0gVGVzdDogUEFU VEVSTiB2YXJpYWJsZSB3aXRob3V0IERFRklORSAoQSksIERFRklORSB2YXJpYWJsZSBub3QgaW4g UEFUVEVSTiAoQikKKy0tIFRlc3Q6IERFRklORSB2YXJpYWJsZSBub3QgaW4gUEFUVEVSTiAoZXJy b3IpCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2Vycm9ycwogV0lO RE9XIHcgQVMgKAogICAgIE9SREVSIEJZIGlkCkBAIC01Njc5LDU1ICs1NjczLDExIEBAIFdJTkRP VyB3IEFTICgKICAgICBERUZJTkUKICAgICAgIEIgQVMgVFJVRQogKTsKLSBpZCB8IHZhbCB8IGNv dW50IAotLS0tLSstLS0tLSstLS0tLS0tCi0gIDEgfCAgMTAgfCAgICAgMAotICAyIHwgIDIwIHwg ICAgIDAKLSgyIHJvd3MpCi0KLS0tIEV4cGVjdGVkOiBTdWNjZXNzIC0gQSBpcyBpbXBsaWNpdGx5 IFRSVUUsIEIgaXMgZmlsdGVyZWQgb3V0Ci0tLSBUZXN0OiAzIHZhcmlhYmxlcyBpbiBQQVRURVJO LCAyNTMgaW4gREVGSU5FIChERUZJTkUgZmlsdGVyaW5nIHRlc3QpCi1TRUxFQ1QgQ09VTlQoKikg T1ZFUiB3IEZST00gcnByX2Vycm9ycwotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0g ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAg UEFUVEVSTiAoVjEgVjIgVjMpCi0gICAgREVGSU5FCi0gICAgVjEgQVMgdmFsID4gMCwgVjIgQVMg dmFsID4gMCwgVjMgQVMgdmFsID4gMCwgVjQgQVMgdmFsID4gMCwgVjUgQVMgdmFsID4gMCwgVjYg QVMgdmFsID4gMCwgVjcgQVMgdmFsID4gMCwgVjggQVMgdmFsID4gMCwgVjkgQVMgdmFsID4gMCwg VjEwIEFTIHZhbCA+IDAsCi0gICAgVjExIEFTIHZhbCA+IDAsIFYxMiBBUyB2YWwgPiAwLCBWMTMg QVMgdmFsID4gMCwgVjE0IEFTIHZhbCA+IDAsIFYxNSBBUyB2YWwgPiAwLCBWMTYgQVMgdmFsID4g MCwgVjE3IEFTIHZhbCA+IDAsIFYxOCBBUyB2YWwgPiAwLCBWMTkgQVMgdmFsID4gMCwgVjIwIEFT IHZhbCA+IDAsCi0gICAgVjIxIEFTIHZhbCA+IDAsIFYyMiBBUyB2YWwgPiAwLCBWMjMgQVMgdmFs ID4gMCwgVjI0IEFTIHZhbCA+IDAsIFYyNSBBUyB2YWwgPiAwLCBWMjYgQVMgdmFsID4gMCwgVjI3 IEFTIHZhbCA+IDAsIFYyOCBBUyB2YWwgPiAwLCBWMjkgQVMgdmFsID4gMCwgVjMwIEFTIHZhbCA+ IDAsCi0gICAgVjMxIEFTIHZhbCA+IDAsIFYzMiBBUyB2YWwgPiAwLCBWMzMgQVMgdmFsID4gMCwg VjM0IEFTIHZhbCA+IDAsIFYzNSBBUyB2YWwgPiAwLCBWMzYgQVMgdmFsID4gMCwgVjM3IEFTIHZh bCA+IDAsIFYzOCBBUyB2YWwgPiAwLCBWMzkgQVMgdmFsID4gMCwgVjQwIEFTIHZhbCA+IDAsCi0g ICAgVjQxIEFTIHZhbCA+IDAsIFY0MiBBUyB2YWwgPiAwLCBWNDMgQVMgdmFsID4gMCwgVjQ0IEFT IHZhbCA+IDAsIFY0NSBBUyB2YWwgPiAwLCBWNDYgQVMgdmFsID4gMCwgVjQ3IEFTIHZhbCA+IDAs IFY0OCBBUyB2YWwgPiAwLCBWNDkgQVMgdmFsID4gMCwgVjUwIEFTIHZhbCA+IDAsCi0gICAgVjUx IEFTIHZhbCA+IDAsIFY1MiBBUyB2YWwgPiAwLCBWNTMgQVMgdmFsID4gMCwgVjU0IEFTIHZhbCA+ IDAsIFY1NSBBUyB2YWwgPiAwLCBWNTYgQVMgdmFsID4gMCwgVjU3IEFTIHZhbCA+IDAsIFY1OCBB UyB2YWwgPiAwLCBWNTkgQVMgdmFsID4gMCwgVjYwIEFTIHZhbCA+IDAsCi0gICAgVjYxIEFTIHZh bCA+IDAsIFY2MiBBUyB2YWwgPiAwLCBWNjMgQVMgdmFsID4gMCwgVjY0IEFTIHZhbCA+IDAsIFY2 NSBBUyB2YWwgPiAwLCBWNjYgQVMgdmFsID4gMCwgVjY3IEFTIHZhbCA+IDAsIFY2OCBBUyB2YWwg PiAwLCBWNjkgQVMgdmFsID4gMCwgVjcwIEFTIHZhbCA+IDAsCi0gICAgVjcxIEFTIHZhbCA+IDAs IFY3MiBBUyB2YWwgPiAwLCBWNzMgQVMgdmFsID4gMCwgVjc0IEFTIHZhbCA+IDAsIFY3NSBBUyB2 YWwgPiAwLCBWNzYgQVMgdmFsID4gMCwgVjc3IEFTIHZhbCA+IDAsIFY3OCBBUyB2YWwgPiAwLCBW NzkgQVMgdmFsID4gMCwgVjgwIEFTIHZhbCA+IDAsCi0gICAgVjgxIEFTIHZhbCA+IDAsIFY4MiBB UyB2YWwgPiAwLCBWODMgQVMgdmFsID4gMCwgVjg0IEFTIHZhbCA+IDAsIFY4NSBBUyB2YWwgPiAw LCBWODYgQVMgdmFsID4gMCwgVjg3IEFTIHZhbCA+IDAsIFY4OCBBUyB2YWwgPiAwLCBWODkgQVMg dmFsID4gMCwgVjkwIEFTIHZhbCA+IDAsCi0gICAgVjkxIEFTIHZhbCA+IDAsIFY5MiBBUyB2YWwg PiAwLCBWOTMgQVMgdmFsID4gMCwgVjk0IEFTIHZhbCA+IDAsIFY5NSBBUyB2YWwgPiAwLCBWOTYg QVMgdmFsID4gMCwgVjk3IEFTIHZhbCA+IDAsIFY5OCBBUyB2YWwgPiAwLCBWOTkgQVMgdmFsID4g MCwgVjEwMCBBUyB2YWwgPiAwLAotICAgIFYxMDEgQVMgdmFsID4gMCwgVjEwMiBBUyB2YWwgPiAw LCBWMTAzIEFTIHZhbCA+IDAsIFYxMDQgQVMgdmFsID4gMCwgVjEwNSBBUyB2YWwgPiAwLCBWMTA2 IEFTIHZhbCA+IDAsIFYxMDcgQVMgdmFsID4gMCwgVjEwOCBBUyB2YWwgPiAwLCBWMTA5IEFTIHZh bCA+IDAsIFYxMTAgQVMgdmFsID4gMCwKLSAgICBWMTExIEFTIHZhbCA+IDAsIFYxMTIgQVMgdmFs ID4gMCwgVjExMyBBUyB2YWwgPiAwLCBWMTE0IEFTIHZhbCA+IDAsIFYxMTUgQVMgdmFsID4gMCwg VjExNiBBUyB2YWwgPiAwLCBWMTE3IEFTIHZhbCA+IDAsIFYxMTggQVMgdmFsID4gMCwgVjExOSBB UyB2YWwgPiAwLCBWMTIwIEFTIHZhbCA+IDAsCi0gICAgVjEyMSBBUyB2YWwgPiAwLCBWMTIyIEFT IHZhbCA+IDAsIFYxMjMgQVMgdmFsID4gMCwgVjEyNCBBUyB2YWwgPiAwLCBWMTI1IEFTIHZhbCA+ IDAsIFYxMjYgQVMgdmFsID4gMCwgVjEyNyBBUyB2YWwgPiAwLCBWMTI4IEFTIHZhbCA+IDAsIFYx MjkgQVMgdmFsID4gMCwgVjEzMCBBUyB2YWwgPiAwLAotICAgIFYxMzEgQVMgdmFsID4gMCwgVjEz MiBBUyB2YWwgPiAwLCBWMTMzIEFTIHZhbCA+IDAsIFYxMzQgQVMgdmFsID4gMCwgVjEzNSBBUyB2 YWwgPiAwLCBWMTM2IEFTIHZhbCA+IDAsIFYxMzcgQVMgdmFsID4gMCwgVjEzOCBBUyB2YWwgPiAw LCBWMTM5IEFTIHZhbCA+IDAsIFYxNDAgQVMgdmFsID4gMCwKLSAgICBWMTQxIEFTIHZhbCA+IDAs IFYxNDIgQVMgdmFsID4gMCwgVjE0MyBBUyB2YWwgPiAwLCBWMTQ0IEFTIHZhbCA+IDAsIFYxNDUg QVMgdmFsID4gMCwgVjE0NiBBUyB2YWwgPiAwLCBWMTQ3IEFTIHZhbCA+IDAsIFYxNDggQVMgdmFs ID4gMCwgVjE0OSBBUyB2YWwgPiAwLCBWMTUwIEFTIHZhbCA+IDAsCi0gICAgVjE1MSBBUyB2YWwg PiAwLCBWMTUyIEFTIHZhbCA+IDAsIFYxNTMgQVMgdmFsID4gMCwgVjE1NCBBUyB2YWwgPiAwLCBW MTU1IEFTIHZhbCA+IDAsIFYxNTYgQVMgdmFsID4gMCwgVjE1NyBBUyB2YWwgPiAwLCBWMTU4IEFT IHZhbCA+IDAsIFYxNTkgQVMgdmFsID4gMCwgVjE2MCBBUyB2YWwgPiAwLAotICAgIFYxNjEgQVMg dmFsID4gMCwgVjE2MiBBUyB2YWwgPiAwLCBWMTYzIEFTIHZhbCA+IDAsIFYxNjQgQVMgdmFsID4g MCwgVjE2NSBBUyB2YWwgPiAwLCBWMTY2IEFTIHZhbCA+IDAsIFYxNjcgQVMgdmFsID4gMCwgVjE2 OCBBUyB2YWwgPiAwLCBWMTY5IEFTIHZhbCA+IDAsIFYxNzAgQVMgdmFsID4gMCwKLSAgICBWMTcx IEFTIHZhbCA+IDAsIFYxNzIgQVMgdmFsID4gMCwgVjE3MyBBUyB2YWwgPiAwLCBWMTc0IEFTIHZh bCA+IDAsIFYxNzUgQVMgdmFsID4gMCwgVjE3NiBBUyB2YWwgPiAwLCBWMTc3IEFTIHZhbCA+IDAs IFYxNzggQVMgdmFsID4gMCwgVjE3OSBBUyB2YWwgPiAwLCBWMTgwIEFTIHZhbCA+IDAsCi0gICAg VjE4MSBBUyB2YWwgPiAwLCBWMTgyIEFTIHZhbCA+IDAsIFYxODMgQVMgdmFsID4gMCwgVjE4NCBB UyB2YWwgPiAwLCBWMTg1IEFTIHZhbCA+IDAsIFYxODYgQVMgdmFsID4gMCwgVjE4NyBBUyB2YWwg PiAwLCBWMTg4IEFTIHZhbCA+IDAsIFYxODkgQVMgdmFsID4gMCwgVjE5MCBBUyB2YWwgPiAwLAot ICAgIFYxOTEgQVMgdmFsID4gMCwgVjE5MiBBUyB2YWwgPiAwLCBWMTkzIEFTIHZhbCA+IDAsIFYx OTQgQVMgdmFsID4gMCwgVjE5NSBBUyB2YWwgPiAwLCBWMTk2IEFTIHZhbCA+IDAsIFYxOTcgQVMg dmFsID4gMCwgVjE5OCBBUyB2YWwgPiAwLCBWMTk5IEFTIHZhbCA+IDAsIFYyMDAgQVMgdmFsID4g MCwKLSAgICBWMjAxIEFTIHZhbCA+IDAsIFYyMDIgQVMgdmFsID4gMCwgVjIwMyBBUyB2YWwgPiAw LCBWMjA0IEFTIHZhbCA+IDAsIFYyMDUgQVMgdmFsID4gMCwgVjIwNiBBUyB2YWwgPiAwLCBWMjA3 IEFTIHZhbCA+IDAsIFYyMDggQVMgdmFsID4gMCwgVjIwOSBBUyB2YWwgPiAwLCBWMjEwIEFTIHZh bCA+IDAsCi0gICAgVjIxMSBBUyB2YWwgPiAwLCBWMjEyIEFTIHZhbCA+IDAsIFYyMTMgQVMgdmFs ID4gMCwgVjIxNCBBUyB2YWwgPiAwLCBWMjE1IEFTIHZhbCA+IDAsIFYyMTYgQVMgdmFsID4gMCwg VjIxNyBBUyB2YWwgPiAwLCBWMjE4IEFTIHZhbCA+IDAsIFYyMTkgQVMgdmFsID4gMCwgVjIyMCBB UyB2YWwgPiAwLAotICAgIFYyMjEgQVMgdmFsID4gMCwgVjIyMiBBUyB2YWwgPiAwLCBWMjIzIEFT IHZhbCA+IDAsIFYyMjQgQVMgdmFsID4gMCwgVjIyNSBBUyB2YWwgPiAwLCBWMjI2IEFTIHZhbCA+ IDAsIFYyMjcgQVMgdmFsID4gMCwgVjIyOCBBUyB2YWwgPiAwLCBWMjI5IEFTIHZhbCA+IDAsIFYy MzAgQVMgdmFsID4gMCwKLSAgICBWMjMxIEFTIHZhbCA+IDAsIFYyMzIgQVMgdmFsID4gMCwgVjIz MyBBUyB2YWwgPiAwLCBWMjM0IEFTIHZhbCA+IDAsIFYyMzUgQVMgdmFsID4gMCwgVjIzNiBBUyB2 YWwgPiAwLCBWMjM3IEFTIHZhbCA+IDAsIFYyMzggQVMgdmFsID4gMCwgVjIzOSBBUyB2YWwgPiAw LCBWMjQwIEFTIHZhbCA+IDAsCi0gICAgVjI0MSBBUyB2YWwgPiAwLCBWMjQyIEFTIHZhbCA+IDAs IFYyNDMgQVMgdmFsID4gMCwgVjI0NCBBUyB2YWwgPiAwLCBWMjQ1IEFTIHZhbCA+IDAsIFYyNDYg QVMgdmFsID4gMCwgVjI0NyBBUyB2YWwgPiAwLCBWMjQ4IEFTIHZhbCA+IDAsIFYyNDkgQVMgdmFs ID4gMCwgVjI1MCBBUyB2YWwgPiAwLAotICAgIFYyNTEgQVMgdmFsID4gMCwgVjI1MiBBUyB2YWwg PiAwLCBWMjUzIEFTIHZhbCA+IDAKLSk7Ci0gY291bnQgCi0tLS0tLS0tCi0gICAgIDAKLSAgICAg MAotKDIgcm93cykKLQotLS0gRXhwZWN0ZWQ6IFN1Y2Nlc3MgLSB1bnVzZWQgREVGSU5FIHZhcmlh YmxlcyBhcmUgZmlsdGVyZWQgb3V0Ci0tLSBUZXN0OiAyNTEgdmFyaWFibGVzIGluIFBBVFRFUk4s IDI1MiBpbiBERUZJTkUgKGJvdW5kYXJ5IC0gc2hvdWxkIHN1Y2NlZWQpCitFUlJPUjogIERFRklO RSB2YXJpYWJsZSAiYiIgaXMgbm90IHVzZWQgaW4gUEFUVEVSTgorTElORSA3OiAgICAgICBCIEFT IFRSVUUKKyAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVycm9yIC0gQiBpcyBub3QgdXNl ZCBpbiBQQVRURVJOCistLSBUZXN0OiAyNTEgdmFyaWFibGVzIGluIFBBVFRFUk4gYW5kIERFRklO RSAoYm91bmRhcnkgLSBzaG91bGQgc3VjY2VlZCkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJP TSBycHJfZXJyb3JzCiBXSU5ET1cgdyBBUyAoCiAgICAgT1JERVIgQlkgaWQKQEAgLTU3NTksNyAr NTcwOSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBWMjIxIEFTIHZhbCA+IDAsIFYyMjIgQVMgdmFs ID4gMCwgVjIyMyBBUyB2YWwgPiAwLCBWMjI0IEFTIHZhbCA+IDAsIFYyMjUgQVMgdmFsID4gMCwg VjIyNiBBUyB2YWwgPiAwLCBWMjI3IEFTIHZhbCA+IDAsIFYyMjggQVMgdmFsID4gMCwgVjIyOSBB UyB2YWwgPiAwLCBWMjMwIEFTIHZhbCA+IDAsCiAgICAgVjIzMSBBUyB2YWwgPiAwLCBWMjMyIEFT IHZhbCA+IDAsIFYyMzMgQVMgdmFsID4gMCwgVjIzNCBBUyB2YWwgPiAwLCBWMjM1IEFTIHZhbCA+ IDAsIFYyMzYgQVMgdmFsID4gMCwgVjIzNyBBUyB2YWwgPiAwLCBWMjM4IEFTIHZhbCA+IDAsIFYy MzkgQVMgdmFsID4gMCwgVjI0MCBBUyB2YWwgPiAwLAogICAgIFYyNDEgQVMgdmFsID4gMCwgVjI0 MiBBUyB2YWwgPiAwLCBWMjQzIEFTIHZhbCA+IDAsIFYyNDQgQVMgdmFsID4gMCwgVjI0NSBBUyB2 YWwgPiAwLCBWMjQ2IEFTIHZhbCA+IDAsIFYyNDcgQVMgdmFsID4gMCwgVjI0OCBBUyB2YWwgPiAw LCBWMjQ5IEFTIHZhbCA+IDAsIFYyNTAgQVMgdmFsID4gMCwKLSAgICBWMjUxIEFTIHZhbCA+IDAs IFYyNTIgQVMgdmFsID4gMAorICAgIFYyNTEgQVMgdmFsID4gMAogKTsKICBjb3VudCAKIC0tLS0t LS0KQEAgLTU3NjcsNyArNTcxNyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgMAogKDIgcm93cykK IAotLS0gRXhwZWN0ZWQ6IFN1Y2Nlc3MgLSB1bnVzZWQgREVGSU5FIHZhcmlhYmxlcyBhcmUgZmls dGVyZWQgb3V0CistLSBFeHBlY3RlZDogU3VjY2VzcyAtIGV4YWN0bHkgYXQgUlBSX1ZBUklEX01B WCBib3VuZGFyeQogLS0gVGVzdDogMjUyIHZhcmlhYmxlcyBpbiBQQVRURVJOLCAyNTEgaW4gREVG SU5FIChleGNlZWRzIGxpbWl0IHdpdGggaW1wbGljaXQgVFJVRSkKIFNFTEVDVCBDT1VOVCgqKSBP VkVSIHcgRlJPTSBycHJfZXJyb3JzCiBXSU5ET1cgdyBBUyAoCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFz ZS5zcWwKaW5kZXggZTU0ZDU0ZTQwMGEuLmNmNmMwNjJhZTg1IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2Jhc2Uuc3FsCkBAIC0zNjM5LDcgKzM2MzksNyBAQCBEUk9QIFRBQkxFIHJwcl9zdHJlc3M7CiBD UkVBVEUgVEFCTEUgcnByX2Vycm9ycyAoaWQgSU5ULCB2YWwgSU5UKTsKIElOU0VSVCBJTlRPIHJw cl9lcnJvcnMgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7CiAKLS0tIFRlc3Q6IFBBVFRFUk4gdmFy aWFibGUgd2l0aG91dCBERUZJTkUgKEEpLCBERUZJTkUgdmFyaWFibGUgbm90IGluIFBBVFRFUk4g KEIpCistLSBUZXN0OiBERUZJTkUgdmFyaWFibGUgbm90IGluIFBBVFRFUk4gKGVycm9yKQogU0VM RUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9lcnJvcnMKIFdJTkRPVyB3IEFT ICgKICAgICBPUkRFUiBCWSBpZApAQCAtMzY0OCw0NSArMzY0OCw5IEBAIFdJTkRPVyB3IEFTICgK ICAgICBERUZJTkUKICAgICAgIEIgQVMgVFJVRQogKTsKLS0tIEV4cGVjdGVkOiBTdWNjZXNzIC0g QSBpcyBpbXBsaWNpdGx5IFRSVUUsIEIgaXMgZmlsdGVyZWQgb3V0CistLSBFeHBlY3RlZDogRXJy b3IgLSBCIGlzIG5vdCB1c2VkIGluIFBBVFRFUk4KIAotLS0gVGVzdDogMyB2YXJpYWJsZXMgaW4g UEFUVEVSTiwgMjUzIGluIERFRklORSAoREVGSU5FIGZpbHRlcmluZyB0ZXN0KQotU0VMRUNUIENP VU5UKCopIE9WRVIgdyBGUk9NIHJwcl9lcnJvcnMKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBC WSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwotICAgIFBBVFRFUk4gKFYxIFYyIFYzKQotICAgIERFRklORQotICAgIFYxIEFTIHZhbCA+IDAs IFYyIEFTIHZhbCA+IDAsIFYzIEFTIHZhbCA+IDAsIFY0IEFTIHZhbCA+IDAsIFY1IEFTIHZhbCA+ IDAsIFY2IEFTIHZhbCA+IDAsIFY3IEFTIHZhbCA+IDAsIFY4IEFTIHZhbCA+IDAsIFY5IEFTIHZh bCA+IDAsIFYxMCBBUyB2YWwgPiAwLAotICAgIFYxMSBBUyB2YWwgPiAwLCBWMTIgQVMgdmFsID4g MCwgVjEzIEFTIHZhbCA+IDAsIFYxNCBBUyB2YWwgPiAwLCBWMTUgQVMgdmFsID4gMCwgVjE2IEFT IHZhbCA+IDAsIFYxNyBBUyB2YWwgPiAwLCBWMTggQVMgdmFsID4gMCwgVjE5IEFTIHZhbCA+IDAs IFYyMCBBUyB2YWwgPiAwLAotICAgIFYyMSBBUyB2YWwgPiAwLCBWMjIgQVMgdmFsID4gMCwgVjIz IEFTIHZhbCA+IDAsIFYyNCBBUyB2YWwgPiAwLCBWMjUgQVMgdmFsID4gMCwgVjI2IEFTIHZhbCA+ IDAsIFYyNyBBUyB2YWwgPiAwLCBWMjggQVMgdmFsID4gMCwgVjI5IEFTIHZhbCA+IDAsIFYzMCBB UyB2YWwgPiAwLAotICAgIFYzMSBBUyB2YWwgPiAwLCBWMzIgQVMgdmFsID4gMCwgVjMzIEFTIHZh bCA+IDAsIFYzNCBBUyB2YWwgPiAwLCBWMzUgQVMgdmFsID4gMCwgVjM2IEFTIHZhbCA+IDAsIFYz NyBBUyB2YWwgPiAwLCBWMzggQVMgdmFsID4gMCwgVjM5IEFTIHZhbCA+IDAsIFY0MCBBUyB2YWwg PiAwLAotICAgIFY0MSBBUyB2YWwgPiAwLCBWNDIgQVMgdmFsID4gMCwgVjQzIEFTIHZhbCA+IDAs IFY0NCBBUyB2YWwgPiAwLCBWNDUgQVMgdmFsID4gMCwgVjQ2IEFTIHZhbCA+IDAsIFY0NyBBUyB2 YWwgPiAwLCBWNDggQVMgdmFsID4gMCwgVjQ5IEFTIHZhbCA+IDAsIFY1MCBBUyB2YWwgPiAwLAot ICAgIFY1MSBBUyB2YWwgPiAwLCBWNTIgQVMgdmFsID4gMCwgVjUzIEFTIHZhbCA+IDAsIFY1NCBB UyB2YWwgPiAwLCBWNTUgQVMgdmFsID4gMCwgVjU2IEFTIHZhbCA+IDAsIFY1NyBBUyB2YWwgPiAw LCBWNTggQVMgdmFsID4gMCwgVjU5IEFTIHZhbCA+IDAsIFY2MCBBUyB2YWwgPiAwLAotICAgIFY2 MSBBUyB2YWwgPiAwLCBWNjIgQVMgdmFsID4gMCwgVjYzIEFTIHZhbCA+IDAsIFY2NCBBUyB2YWwg PiAwLCBWNjUgQVMgdmFsID4gMCwgVjY2IEFTIHZhbCA+IDAsIFY2NyBBUyB2YWwgPiAwLCBWNjgg QVMgdmFsID4gMCwgVjY5IEFTIHZhbCA+IDAsIFY3MCBBUyB2YWwgPiAwLAotICAgIFY3MSBBUyB2 YWwgPiAwLCBWNzIgQVMgdmFsID4gMCwgVjczIEFTIHZhbCA+IDAsIFY3NCBBUyB2YWwgPiAwLCBW NzUgQVMgdmFsID4gMCwgVjc2IEFTIHZhbCA+IDAsIFY3NyBBUyB2YWwgPiAwLCBWNzggQVMgdmFs ID4gMCwgVjc5IEFTIHZhbCA+IDAsIFY4MCBBUyB2YWwgPiAwLAotICAgIFY4MSBBUyB2YWwgPiAw LCBWODIgQVMgdmFsID4gMCwgVjgzIEFTIHZhbCA+IDAsIFY4NCBBUyB2YWwgPiAwLCBWODUgQVMg dmFsID4gMCwgVjg2IEFTIHZhbCA+IDAsIFY4NyBBUyB2YWwgPiAwLCBWODggQVMgdmFsID4gMCwg Vjg5IEFTIHZhbCA+IDAsIFY5MCBBUyB2YWwgPiAwLAotICAgIFY5MSBBUyB2YWwgPiAwLCBWOTIg QVMgdmFsID4gMCwgVjkzIEFTIHZhbCA+IDAsIFY5NCBBUyB2YWwgPiAwLCBWOTUgQVMgdmFsID4g MCwgVjk2IEFTIHZhbCA+IDAsIFY5NyBBUyB2YWwgPiAwLCBWOTggQVMgdmFsID4gMCwgVjk5IEFT IHZhbCA+IDAsIFYxMDAgQVMgdmFsID4gMCwKLSAgICBWMTAxIEFTIHZhbCA+IDAsIFYxMDIgQVMg dmFsID4gMCwgVjEwMyBBUyB2YWwgPiAwLCBWMTA0IEFTIHZhbCA+IDAsIFYxMDUgQVMgdmFsID4g MCwgVjEwNiBBUyB2YWwgPiAwLCBWMTA3IEFTIHZhbCA+IDAsIFYxMDggQVMgdmFsID4gMCwgVjEw OSBBUyB2YWwgPiAwLCBWMTEwIEFTIHZhbCA+IDAsCi0gICAgVjExMSBBUyB2YWwgPiAwLCBWMTEy IEFTIHZhbCA+IDAsIFYxMTMgQVMgdmFsID4gMCwgVjExNCBBUyB2YWwgPiAwLCBWMTE1IEFTIHZh bCA+IDAsIFYxMTYgQVMgdmFsID4gMCwgVjExNyBBUyB2YWwgPiAwLCBWMTE4IEFTIHZhbCA+IDAs IFYxMTkgQVMgdmFsID4gMCwgVjEyMCBBUyB2YWwgPiAwLAotICAgIFYxMjEgQVMgdmFsID4gMCwg VjEyMiBBUyB2YWwgPiAwLCBWMTIzIEFTIHZhbCA+IDAsIFYxMjQgQVMgdmFsID4gMCwgVjEyNSBB UyB2YWwgPiAwLCBWMTI2IEFTIHZhbCA+IDAsIFYxMjcgQVMgdmFsID4gMCwgVjEyOCBBUyB2YWwg PiAwLCBWMTI5IEFTIHZhbCA+IDAsIFYxMzAgQVMgdmFsID4gMCwKLSAgICBWMTMxIEFTIHZhbCA+ IDAsIFYxMzIgQVMgdmFsID4gMCwgVjEzMyBBUyB2YWwgPiAwLCBWMTM0IEFTIHZhbCA+IDAsIFYx MzUgQVMgdmFsID4gMCwgVjEzNiBBUyB2YWwgPiAwLCBWMTM3IEFTIHZhbCA+IDAsIFYxMzggQVMg dmFsID4gMCwgVjEzOSBBUyB2YWwgPiAwLCBWMTQwIEFTIHZhbCA+IDAsCi0gICAgVjE0MSBBUyB2 YWwgPiAwLCBWMTQyIEFTIHZhbCA+IDAsIFYxNDMgQVMgdmFsID4gMCwgVjE0NCBBUyB2YWwgPiAw LCBWMTQ1IEFTIHZhbCA+IDAsIFYxNDYgQVMgdmFsID4gMCwgVjE0NyBBUyB2YWwgPiAwLCBWMTQ4 IEFTIHZhbCA+IDAsIFYxNDkgQVMgdmFsID4gMCwgVjE1MCBBUyB2YWwgPiAwLAotICAgIFYxNTEg QVMgdmFsID4gMCwgVjE1MiBBUyB2YWwgPiAwLCBWMTUzIEFTIHZhbCA+IDAsIFYxNTQgQVMgdmFs ID4gMCwgVjE1NSBBUyB2YWwgPiAwLCBWMTU2IEFTIHZhbCA+IDAsIFYxNTcgQVMgdmFsID4gMCwg VjE1OCBBUyB2YWwgPiAwLCBWMTU5IEFTIHZhbCA+IDAsIFYxNjAgQVMgdmFsID4gMCwKLSAgICBW MTYxIEFTIHZhbCA+IDAsIFYxNjIgQVMgdmFsID4gMCwgVjE2MyBBUyB2YWwgPiAwLCBWMTY0IEFT IHZhbCA+IDAsIFYxNjUgQVMgdmFsID4gMCwgVjE2NiBBUyB2YWwgPiAwLCBWMTY3IEFTIHZhbCA+ IDAsIFYxNjggQVMgdmFsID4gMCwgVjE2OSBBUyB2YWwgPiAwLCBWMTcwIEFTIHZhbCA+IDAsCi0g ICAgVjE3MSBBUyB2YWwgPiAwLCBWMTcyIEFTIHZhbCA+IDAsIFYxNzMgQVMgdmFsID4gMCwgVjE3 NCBBUyB2YWwgPiAwLCBWMTc1IEFTIHZhbCA+IDAsIFYxNzYgQVMgdmFsID4gMCwgVjE3NyBBUyB2 YWwgPiAwLCBWMTc4IEFTIHZhbCA+IDAsIFYxNzkgQVMgdmFsID4gMCwgVjE4MCBBUyB2YWwgPiAw LAotICAgIFYxODEgQVMgdmFsID4gMCwgVjE4MiBBUyB2YWwgPiAwLCBWMTgzIEFTIHZhbCA+IDAs IFYxODQgQVMgdmFsID4gMCwgVjE4NSBBUyB2YWwgPiAwLCBWMTg2IEFTIHZhbCA+IDAsIFYxODcg QVMgdmFsID4gMCwgVjE4OCBBUyB2YWwgPiAwLCBWMTg5IEFTIHZhbCA+IDAsIFYxOTAgQVMgdmFs ID4gMCwKLSAgICBWMTkxIEFTIHZhbCA+IDAsIFYxOTIgQVMgdmFsID4gMCwgVjE5MyBBUyB2YWwg PiAwLCBWMTk0IEFTIHZhbCA+IDAsIFYxOTUgQVMgdmFsID4gMCwgVjE5NiBBUyB2YWwgPiAwLCBW MTk3IEFTIHZhbCA+IDAsIFYxOTggQVMgdmFsID4gMCwgVjE5OSBBUyB2YWwgPiAwLCBWMjAwIEFT IHZhbCA+IDAsCi0gICAgVjIwMSBBUyB2YWwgPiAwLCBWMjAyIEFTIHZhbCA+IDAsIFYyMDMgQVMg dmFsID4gMCwgVjIwNCBBUyB2YWwgPiAwLCBWMjA1IEFTIHZhbCA+IDAsIFYyMDYgQVMgdmFsID4g MCwgVjIwNyBBUyB2YWwgPiAwLCBWMjA4IEFTIHZhbCA+IDAsIFYyMDkgQVMgdmFsID4gMCwgVjIx MCBBUyB2YWwgPiAwLAotICAgIFYyMTEgQVMgdmFsID4gMCwgVjIxMiBBUyB2YWwgPiAwLCBWMjEz IEFTIHZhbCA+IDAsIFYyMTQgQVMgdmFsID4gMCwgVjIxNSBBUyB2YWwgPiAwLCBWMjE2IEFTIHZh bCA+IDAsIFYyMTcgQVMgdmFsID4gMCwgVjIxOCBBUyB2YWwgPiAwLCBWMjE5IEFTIHZhbCA+IDAs IFYyMjAgQVMgdmFsID4gMCwKLSAgICBWMjIxIEFTIHZhbCA+IDAsIFYyMjIgQVMgdmFsID4gMCwg VjIyMyBBUyB2YWwgPiAwLCBWMjI0IEFTIHZhbCA+IDAsIFYyMjUgQVMgdmFsID4gMCwgVjIyNiBB UyB2YWwgPiAwLCBWMjI3IEFTIHZhbCA+IDAsIFYyMjggQVMgdmFsID4gMCwgVjIyOSBBUyB2YWwg PiAwLCBWMjMwIEFTIHZhbCA+IDAsCi0gICAgVjIzMSBBUyB2YWwgPiAwLCBWMjMyIEFTIHZhbCA+ IDAsIFYyMzMgQVMgdmFsID4gMCwgVjIzNCBBUyB2YWwgPiAwLCBWMjM1IEFTIHZhbCA+IDAsIFYy MzYgQVMgdmFsID4gMCwgVjIzNyBBUyB2YWwgPiAwLCBWMjM4IEFTIHZhbCA+IDAsIFYyMzkgQVMg dmFsID4gMCwgVjI0MCBBUyB2YWwgPiAwLAotICAgIFYyNDEgQVMgdmFsID4gMCwgVjI0MiBBUyB2 YWwgPiAwLCBWMjQzIEFTIHZhbCA+IDAsIFYyNDQgQVMgdmFsID4gMCwgVjI0NSBBUyB2YWwgPiAw LCBWMjQ2IEFTIHZhbCA+IDAsIFYyNDcgQVMgdmFsID4gMCwgVjI0OCBBUyB2YWwgPiAwLCBWMjQ5 IEFTIHZhbCA+IDAsIFYyNTAgQVMgdmFsID4gMCwKLSAgICBWMjUxIEFTIHZhbCA+IDAsIFYyNTIg QVMgdmFsID4gMCwgVjI1MyBBUyB2YWwgPiAwCi0pOwotLS0gRXhwZWN0ZWQ6IFN1Y2Nlc3MgLSB1 bnVzZWQgREVGSU5FIHZhcmlhYmxlcyBhcmUgZmlsdGVyZWQgb3V0Ci0KLS0tIFRlc3Q6IDI1MSB2 YXJpYWJsZXMgaW4gUEFUVEVSTiwgMjUyIGluIERFRklORSAoYm91bmRhcnkgLSBzaG91bGQgc3Vj Y2VlZCkKKy0tIFRlc3Q6IDI1MSB2YXJpYWJsZXMgaW4gUEFUVEVSTiBhbmQgREVGSU5FIChib3Vu ZGFyeSAtIHNob3VsZCBzdWNjZWVkKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9l cnJvcnMKIFdJTkRPVyB3IEFTICgKICAgICBPUkRFUiBCWSBpZApAQCAtMzcxOCw5ICszNjgyLDkg QEAgV0lORE9XIHcgQVMgKAogICAgIFYyMjEgQVMgdmFsID4gMCwgVjIyMiBBUyB2YWwgPiAwLCBW MjIzIEFTIHZhbCA+IDAsIFYyMjQgQVMgdmFsID4gMCwgVjIyNSBBUyB2YWwgPiAwLCBWMjI2IEFT IHZhbCA+IDAsIFYyMjcgQVMgdmFsID4gMCwgVjIyOCBBUyB2YWwgPiAwLCBWMjI5IEFTIHZhbCA+ IDAsIFYyMzAgQVMgdmFsID4gMCwKICAgICBWMjMxIEFTIHZhbCA+IDAsIFYyMzIgQVMgdmFsID4g MCwgVjIzMyBBUyB2YWwgPiAwLCBWMjM0IEFTIHZhbCA+IDAsIFYyMzUgQVMgdmFsID4gMCwgVjIz NiBBUyB2YWwgPiAwLCBWMjM3IEFTIHZhbCA+IDAsIFYyMzggQVMgdmFsID4gMCwgVjIzOSBBUyB2 YWwgPiAwLCBWMjQwIEFTIHZhbCA+IDAsCiAgICAgVjI0MSBBUyB2YWwgPiAwLCBWMjQyIEFTIHZh bCA+IDAsIFYyNDMgQVMgdmFsID4gMCwgVjI0NCBBUyB2YWwgPiAwLCBWMjQ1IEFTIHZhbCA+IDAs IFYyNDYgQVMgdmFsID4gMCwgVjI0NyBBUyB2YWwgPiAwLCBWMjQ4IEFTIHZhbCA+IDAsIFYyNDkg QVMgdmFsID4gMCwgVjI1MCBBUyB2YWwgPiAwLAotICAgIFYyNTEgQVMgdmFsID4gMCwgVjI1MiBB UyB2YWwgPiAwCisgICAgVjI1MSBBUyB2YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IFN1Y2Nlc3Mg LSB1bnVzZWQgREVGSU5FIHZhcmlhYmxlcyBhcmUgZmlsdGVyZWQgb3V0CistLSBFeHBlY3RlZDog U3VjY2VzcyAtIGV4YWN0bHkgYXQgUlBSX1ZBUklEX01BWCBib3VuZGFyeQogCiAtLSBUZXN0OiAy NTIgdmFyaWFibGVzIGluIFBBVFRFUk4sIDI1MSBpbiBERUZJTkUgKGV4Y2VlZHMgbGltaXQgd2l0 aCBpbXBsaWNpdCBUUlVFKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9lcnJvcnMK LS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000006699e064d7673c8 Content-Type: text/plain; charset="UTF-8"; name="nocfbot-0009-Clarify-RPR-documentation-advanced-sgml.txt" Content-Disposition: attachment; filename="nocfbot-0009-Clarify-RPR-documentation-advanced-sgml.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz29e4z8 RnJvbSBjNDk0M2YyZjRmYmUyNjQyMzhiODA2ZTQ5ZTNhYjQ4NmUxNTUzNGRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIwOjQ1OjIwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQ2xhcmlm eSBSUFIgZG9jdW1lbnRhdGlvbiBpbiBhZHZhbmNlZC5zZ21sCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu Y29kaW5nOiA4Yml0CgpNYWtlIHRoZSBhYnNvcnB0aW9uIG9wdGltaXphdGlvbiBwYXJhZ3JhcGgg ZXhwbGljaXRseSByZWZlcmVuY2UgdGhlCk8obsKyKSBjb21wbGV4aXR5IGl0IG1pdGlnYXRlcywg cmF0aGVyIHRoYW4gdXNpbmcgYW4gYW1iaWd1b3VzICJ0aGlzIgp0aGF0IGNvdWxkIGJlIG1pc3Jl YWQgYXMgcmVmZXJyaW5nIHRvIHRoZSBwYXR0ZXJuIHNpbXBsaWZpY2F0aW9uCnBhcmFncmFwaCBp bW1lZGlhdGVseSBhYm92ZS4KCkFsc28gY2xhcmlmeSB0aGUgYWdncmVnYXRlIGJlaGF2aW9yIGRl c2NyaXB0aW9uIGZvciBub24tc3RhcnRpbmcgcm93czoKcmVwbGFjZSB0aGUgdmFndWUgIk5VTEwg b3IgMCBkZXBlbmRpbmcgb24gaXRzIGFnZ3JlZ2F0aW9uIGRlZmluaXRpb24iCndpdGggY29uY3Jl dGUgZXhhbXBsZXMgKGNvdW50KCkgcmV0dXJucyAwLCBzdW0oKSByZXR1cm5zIE5VTEwpLgotLS0K IGRvYy9zcmMvc2dtbC9hZHZhbmNlZC5zZ21sIHwgMTIgKysrKysrKy0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9hZHZhbmNlZC5zZ21sIGIvZG9jL3NyYy9zZ21sL2FkdmFuY2VkLnNnbWwKaW5kZXgg M2U2OTZlZWZjNjYuLjEzMzZmMmRhYTE0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvYWR2YW5j ZWQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYWR2YW5jZWQuc2dtbApAQCAtNTg1LDEwICs1ODUs MTEgQEAgREVGSU5FCiAgICAgcm93cyB3aGljaCBzYXRpc2ZpZXMgdGhlIFBBVFRFUk4gaXMgZm91 bmQsIGluIHRoZSBzdGFydGluZyByb3cgYWxsIGNvbHVtbnMKICAgICBvciBmdW5jdGlvbnMgYXJl IHNob3duIGluIHRoZSB0YXJnZXQgbGlzdC4gTm90ZSB0aGF0IGFnZ3JlZ2F0aW9ucyBvbmx5CiAg ICAgbG9vayBpbnRvIHRoZSBtYXRjaGVkIHJvd3MsIHJhdGhlciB0aGFuIHRoZSB3aG9sZSBmcmFt ZS4gT24gdGhlIHNlY29uZCBvcgotICAgIHN1YnNlcXVlbnQgcm93cyBhbGwgd2luZG93IGZ1bmN0 aW9ucyBhcmUgc2hvd24gYXMgTlVMTC4gQWdncmVnYXRlcyBhcmUKLSAgICBOVUxMIG9yIDAgZGVw ZW5kaW5nIG9uIGl0cyBhZ2dyZWdhdGlvbiBkZWZpbml0aW9uLiBBIGNvdW50KCkgYWdncmVnYXRl Ci0gICAgc2hvd3MgMC4gRm9yIHJvd3MgdGhhdCBkbyBub3QgbWF0Y2ggb24gdGhlIFBBVFRFUk4s IGNvbHVtbnMgYXJlIHNob3duIEFTCi0gICAgTlVMTCB0b28uIEV4YW1wbGUgb2YgYSA8bGl0ZXJh bD5TRUxFQ1Q8L2xpdGVyYWw+IHVzaW5nCisgICAgc3Vic2VxdWVudCByb3dzIGFsbCB3aW5kb3cg ZnVuY3Rpb25zIGFyZSBzaG93biBhcyBOVUxMLiBBZ2dyZWdhdGVzIG9uCisgICAgbm9uLXN0YXJ0 aW5nIHJvd3MgcmV0dXJuIHRoZWlyIGluaXRpYWwgdmFsdWU6IGZvciBleGFtcGxlLAorICAgIDxm dW5jdGlvbj5jb3VudCgpPC9mdW5jdGlvbj4gcmV0dXJucyAwIGFuZCA8ZnVuY3Rpb24+c3VtKCk8 L2Z1bmN0aW9uPgorICAgIHJldHVybnMgTlVMTC4gRm9yIHJvd3MgdGhhdCBkbyBub3QgbWF0Y2gg dGhlIFBBVFRFUk4sIGNvbHVtbnMgYXJlIHNob3duCisgICAgYXMgTlVMTCB0b28uIEV4YW1wbGUg b2YgYSA8bGl0ZXJhbD5TRUxFQ1Q8L2xpdGVyYWw+IHVzaW5nCiAgICAgdGhlIDxsaXRlcmFsPkRF RklORTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlBBVFRFUk48L2xpdGVyYWw+IGNsYXVzZSBpcyBh cwogICAgIGZvbGxvd3MuCiAKQEAgLTY1Myw3ICs2NTQsOCBAQCBGUk9NIHN0b2NrCiAgICA8L3Bh cmE+CiAKICAgIDxwYXJhPgotICAgIFRvIG1pdGlnYXRlIHRoaXMsIDxwcm9kdWN0bmFtZT5Qb3N0 Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZW1wbG95cworICAgIFRvIG1pdGlnYXRlIHRoZSBPKG48c3Vw ZXJzY3JpcHQ+Mjwvc3VwZXJzY3JpcHQ+KSBjb21wbGV4aXR5IGRlc2NyaWJlZAorICAgIGFib3Zl LCA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGFsc28gZW1wbG95cwogICAg IGEgY29udGV4dCBhYnNvcnB0aW9uIG9wdGltaXphdGlvbi4gV2hlbiBhIHBhdHRlcm4gc3RhcnRz IHdpdGggYSBncmVlZHkKICAgICB1bmJvdW5kZWQgZWxlbWVudCwgbmV3ZXIgbWF0Y2hpbmcgY29u dGV4dHMgY2Fubm90IHByb2R1Y2UgbG9uZ2VyIG1hdGNoZXMKICAgICB0aGFuIG9sZGVyIGNvbnRl eHRzLiBCeSBkZXRlY3RpbmcgYW5kIGVsaW1pbmF0aW5nIHRoZXNlIHJlZHVuZGFudAotLSAKMi41 MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000006699e064d7673c8 Content-Type: text/plain; charset="UTF-8"; name="nocfbot-0010-Fix-typos-in-RPR-comments.txt" Content-Disposition: attachment; filename="nocfbot-0010-Fix-typos-in-RPR-comments.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz29gyi9 RnJvbSBjZTlkOTg2NzE0NmM5ZDFmYWRlMjczZWY1YjNhOWZlMTUyNzkyMDBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIxOjE1OjAzICswOTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IHR5 cG9zIGluIFJQUiBjb21tZW50cyBhbmQgcGFyc2VyIFJFQURNRQoKRml4ICJkbyBsb3BwIiB0byAi ZG8gbG9vcCIgYW5kICJzdWNjZXNzZnVsbHQiIHRvICJzdWNjZXNzZnVsbHkiIGluCm5vZGVXaW5k b3dBZ2cuYy4gQWxzbyBmaXggdGFiLXNwYWNlIG1peCBmb3IgdGhlIHBhcnNlX3Jwci5jIGVudHJ5 CmluIHBhcnNlci9SRUFETUUuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0Fn Zy5jIHwgNyArKysrLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvUkVBRE1FICAgICAgICAgICAgfCAy ICstCiAyIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggZDE0NGZhMzkzNzUuLjk0MmYwNzFi NDU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC0zNzI5LDcgKzM3Mjks NyBAQCBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBp bnQgYXJnbm8sCiAJCSAqIGNvbnRpZ3VvdXMuICBTbyB3ZSBjYW4gZG8gdGhlIGNoZWNrIGZvbGxv d2luZ3Mgc2FmZWx5LiBOb3RlLAogCQkgKiBob3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0aGF0IGEg cm93IGlzIG91dCBvZiByZWR1Y2VkIGZyYW1lIGlmCiAJCSAqIHRoZXJlJ3MgYSBOVUxMIGluIHRo ZSBtaWRkbGUuIFNvIHdlIG5lZWQgdG8gY2hlY2sgaXQgaW4gdGhlCi0JCSAqIGZvbGxvd2luZyBk byBsb3BwLgorCQkgKiBmb2xsb3dpbmcgZG8gbG9vcC4KIAkJICovCiAJCWlmIChzZWVrdHlwZSA9 PSBXSU5ET1dfU0VFS19IRUFEICYmIHJlbHBvcyA+PSBudW1fcmVkdWNlZF9mcmFtZSkKIAkJCWdv dG8gb3V0X29mX2ZyYW1lOwpAQCAtNDcwNCw3ICs0NzA0LDggQEAgV2luR2V0RnVuY0FyZ0luRnJh bWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLAogCiAJLyoKIAkgKiBXaGVuIFJQUiBp cyBhY3RpdmUsIHRoZSByZWR1Y2VkIGZyYW1lIGNoYW5nZXMgcm93IGJ5IHJvdywgc28gd2UgbXVz dAotCSAqIG5vdCBhZHZhbmNlIHRoZSBtYXJrIOKAlCBkb2luZyBzbyB3b3VsZCBwcmV2ZW50IHJl dmlzaXRpbmcgZWFybGllciByb3dzLgorCSAqIG5vdCBhZHZhbmNlIHRoZSBtYXJrIOKAlCBkb2lu ZyBzbyB3b3VsZCBwcmV2ZW50IHJldmlzaXRpbmcgZWFybGllcgorCSAqIHJvd3MuCiAJICovCiAJ aWYgKHJwcl9pc19kZWZpbmVkKHdpbnN0YXRlKSkKIAkJc2V0X21hcmsgPSBmYWxzZTsKQEAgLTQ3 MzksNyArNDc0MCw3IEBAIFdpbkdldEZ1bmNBcmdJbkZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmos IGludCBhcmdubywKICAqIGlzb3V0OiBvdXRwdXQgYXJndW1lbnQsIHNldCB0byBpbmRpY2F0ZSB3 aGV0aGVyIHRhcmdldCByb3cgcG9zaXRpb24KICAqCQlpcyBvdXQgb2YgZnJhbWUgKGNhbiBwYXNz IE5VTEwgaWYgY2FsbGVyIGRvZXNuJ3QgY2FyZSBhYm91dCB0aGlzKQogICoKLSAqIFJldHVybnMg MCBpZiB3ZSBzdWNjZXNzZnVsbHQgZ290IHRoZSBzbG90LiBmYWxzZSBpZiBvdXQgb2YgZnJhbWUu CisgKiBSZXR1cm5zIDAgaWYgd2Ugc3VjY2Vzc2Z1bGx5IGdvdCB0aGUgc2xvdC4gZmFsc2UgaWYg b3V0IG9mIGZyYW1lLgogICogKGFsc28gaXNvdXQgaXMgc2V0KQogICovCiBzdGF0aWMgaW50CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvUkVBRE1FIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L1JFQURNRQppbmRleCAyYmFmZmE5NTE3ZS4uMjJhNWU5MWM4Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9SRUFETUUKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL1JFQURNRQpAQCAt MjYsNyArMjYsNyBAQCBwYXJzZV9ub2RlLmMJY3JlYXRlIG5vZGVzIGZvciB2YXJpb3VzIHN0cnVj dHVyZXMKIHBhcnNlX29wZXIuYwloYW5kbGUgb3BlcmF0b3JzIGluIGV4cHJlc3Npb25zCiBwYXJz ZV9wYXJhbS5jCWhhbmRsZSBQYXJhbXMgKGZvciB0aGUgY2FzZXMgdXNlZCBpbiB0aGUgY29yZSBi YWNrZW5kKQogcGFyc2VfcmVsYXRpb24uYyBzdXBwb3J0IHJvdXRpbmVzIGZvciB0YWJsZXMgYW5k IGNvbHVtbiBoYW5kbGluZwotcGFyc2VfcnByLmMJICAgIGhhbmRsZSBSb3cgUGF0dGVybiBSZWNv Z25pdGlvbgorcGFyc2VfcnByLmMJaGFuZGxlIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uCiBwYXJz ZV90YXJnZXQuYwloYW5kbGUgdGhlIHJlc3VsdCBsaXN0IG9mIHRoZSBxdWVyeQogcGFyc2VfdHlw ZS5jCXN1cHBvcnQgcm91dGluZXMgZm9yIGRhdGEgdHlwZSBoYW5kbGluZwogcGFyc2VfdXRpbGNt ZC5jCXBhcnNlIGFuYWx5c2lzIGZvciB1dGlsaXR5IGNvbW1hbmRzIChkb25lIGF0IGV4ZWN1dGlv biB0aW1lKQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0011-Clarify-excludeLocation-and-empty-quantifier.txt" Content-Disposition: attachment; filename="nocfbot-0011-Clarify-excludeLocation-and-empty-quantifier.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz29kc610 RnJvbSA3YjlkN2ZiNzM1YTQ2N2ZmMzkxODk4ZWQ0ZWJjMTFiZDZlZjMxNWZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIxOjIxOjU4ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIGNs YXJpZnlpbmcgY29tbWVudHMgZm9yIGV4Y2x1ZGVMb2NhdGlvbiBhbmQgZW1wdHkKIHF1YW50aWZp ZXIgaW4gZ3JhbS55CgpBZGQgY29tbWVudHMgZXhwbGFpbmluZyB0aGF0IGV4Y2x1ZGVMb2NhdGlv biBpcyBzZXQgdG8gLTEgd2hlbiBubwpFWENMVURFIGNsYXVzZSBpcyBwcmVzZW50IChvcHRfd2lu ZG93X2V4Y2x1c2lvbl9jbGF1c2UgcmV0dXJucyAwKSwKYW5kIHRoYXQgdGhlIEVNUFRZIHF1YW50 aWZpZXIgcnVsZSdzIEAkIGxvY2F0aW9uIGlzIHVudXNlZCBzaW5jZQptaW49bWF4PTEgbmV2ZXIg cHJvZHVjZXMgYW4gZXJyb3IuCi0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSB8IDcgKysr KysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CmluZGV4IDlkY2FjNjNiZGM3Li42ZDM5MDI1ODUzMiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0x Njc1Nyw2ICsxNjc1Nyw3IEBAIG9wdF9mcmFtZV9jbGF1c2U6CiAJCQkJCW4tPmZyYW1lT3B0aW9u cyB8PSBGUkFNRU9QVElPTl9OT05ERUZBVUxUIHwgRlJBTUVPUFRJT05fUkFOR0U7CiAJCQkJCW4t PmZyYW1lT3B0aW9ucyB8PSAkMzsKIAkJCQkJbi0+ZnJhbWVMb2NhdGlvbiA9IEAxOworCQkJCQkv KiAtMSB3aGVuIG5vIEVYQ0xVREUgY2xhdXNlIChvcHRfd2luZG93X2V4Y2x1c2lvbl9jbGF1c2Ug cmV0dXJucyAwKSAqLwogCQkJCQluLT5leGNsdWRlTG9jYXRpb24gPSAoJDMgIT0gMCkgPyBAMyA6 IC0xOwogCQkJCQkkJCA9IG47CiAJCQkJfQpAQCAtMTY3NjcsNiArMTY3NjgsNyBAQCBvcHRfZnJh bWVfY2xhdXNlOgogCQkJCQluLT5mcmFtZU9wdGlvbnMgfD0gRlJBTUVPUFRJT05fTk9OREVGQVVM VCB8IEZSQU1FT1BUSU9OX1JPV1M7CiAJCQkJCW4tPmZyYW1lT3B0aW9ucyB8PSAkMzsKIAkJCQkJ bi0+ZnJhbWVMb2NhdGlvbiA9IEAxOworCQkJCQkvKiAtMSB3aGVuIG5vIEVYQ0xVREUgY2xhdXNl IChvcHRfd2luZG93X2V4Y2x1c2lvbl9jbGF1c2UgcmV0dXJucyAwKSAqLwogCQkJCQluLT5leGNs dWRlTG9jYXRpb24gPSAoJDMgIT0gMCkgPyBAMyA6IC0xOwogCQkJCQkkJCA9IG47CiAJCQkJfQpA QCAtMTY3NzcsNiArMTY3NzksNyBAQCBvcHRfZnJhbWVfY2xhdXNlOgogCQkJCQluLT5mcmFtZU9w dGlvbnMgfD0gRlJBTUVPUFRJT05fTk9OREVGQVVMVCB8IEZSQU1FT1BUSU9OX0dST1VQUzsKIAkJ CQkJbi0+ZnJhbWVPcHRpb25zIHw9ICQzOwogCQkJCQluLT5mcmFtZUxvY2F0aW9uID0gQDE7CisJ CQkJCS8qIC0xIHdoZW4gbm8gRVhDTFVERSBjbGF1c2UgKG9wdF93aW5kb3dfZXhjbHVzaW9uX2Ns YXVzZSByZXR1cm5zIDApICovCiAJCQkJCW4tPmV4Y2x1ZGVMb2NhdGlvbiA9ICgkMyAhPSAwKSA/ IEAzIDogLTE7CiAJCQkJCSQkID0gbjsKIAkJCQl9CkBAIC0xNzA2OSw3ICsxNzA3Miw5IEBAIHJv d19wYXR0ZXJuX3ByaW1hcnk6CiAJCTsKIAogcm93X3BhdHRlcm5fcXVhbnRpZmllcl9vcHQ6Ci0J CQkvKiBFTVBUWSAqLwkJCQl7ICQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMSwgMSwg LTEsIEAkLCB5eXNjYW5uZXIpOyB9CisJCQkvKiBFTVBUWSAtIG5vIHF1YW50aWZpZXIgbWVhbnMg ZXhhY3RseSBvbmNlOyBAJCBpcyB1bnVzZWQgc2luY2UKKwkJCSAqIG1pbj1tYXg9MSBuZXZlciBw cm9kdWNlcyBhbiBlcnJvciAqLworCQkJeyAkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVy KDEsIDEsIC0xLCBAJCwgeXlzY2FubmVyKTsgfQogCQkJfCAnKicJCQkJCXsgJCQgPSAoTm9kZSAq KSBtYWtlUlBSUXVhbnRpZmllcigwLCBJTlRfTUFYLCAtMSwgQDEsIHl5c2Nhbm5lcik7IH0KIAkJ CXwgJysnCQkJCQl7ICQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMSwgSU5UX01BWCwg LTEsIEAxLCB5eXNjYW5uZXIpOyB9CiAJCQl8IE9wCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUp Cgo= --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0012-Clarify-RPR_VARID_MAX-definition.txt" Content-Disposition: attachment; filename="nocfbot-0012-Clarify-RPR_VARID_MAX-definition.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz29mnr11 RnJvbSBmN2QwY2QzMDU3M2U3Y2EyYWI3MmM4MGE0ZWQ2NTM3YjU0NTFjZGI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIxOjI3OjMzICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQ2xhcmlm eSBSUFJfVkFSSURfTUFYIGRlZmluaXRpb24gaW4gcnByLmgKClJQUl9WQVJJRF9NQVggPSAyNTEg YWxsb3dzIHZhcklkIDAgdGhyb3VnaCAyNTAsIGdpdmluZyBhIG1heGltdW0gb2YKMjUxIHVuaXF1 ZSBwYXR0ZXJuIHZhcmlhYmxlcy4gVmFsdWVzIGZyb20gMjUyIG9ud2FyZCBhcmUgcmVzZXJ2ZWQg Zm9yCmNvbnRyb2wgZWxlbWVudHMgKEJFR0lOLCBFTkQsIEFMVCwgRklOKS4gQWRkIGEgY29tbWVu dCBleHBsYWluaW5nIHRoaXMKbGF5b3V0LgotLS0KIHNyYy9pbmNsdWRlL29wdGltaXplci9ycHIu aCB8IDYgKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oIGIvc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3Jwci5oCmluZGV4IGY5M2ExMjgwOTZiLi5lNzgwOTI2NzhiYiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGlt aXplci9ycHIuaApAQCAtMTcsNyArMTcsMTEgQEAKICNpbmNsdWRlICJub2Rlcy9wbGFubm9kZXMu aCIKIAogLyogTGltaXRzIGFuZCBzcGVjaWFsIHZhbHVlcyAqLwotI2RlZmluZSBSUFJfVkFSSURf TUFYCQkyNTEgLyogbWF4IHBhdHRlcm4gdmFyaWFibGVzOiAyNTEgKi8KKy8qCisgKiBNYXhpbXVt IG51bWJlciBvZiB1bmlxdWUgcGF0dGVybiB2YXJpYWJsZXMgKHZhcklkIDAgdG8gUlBSX1ZBUklE X01BWCAtIDEpLgorICogVmFsdWVzIGZyb20gUlBSX1ZBUklEX0JFR0lOICgyNTIpIG9ud2FyZCBh cmUgcmVzZXJ2ZWQgZm9yIGNvbnRyb2wgZWxlbWVudHMuCisgKi8KKyNkZWZpbmUgUlBSX1ZBUklE X01BWAkJMjUxCiAjZGVmaW5lIFJQUl9RVUFOVElUWV9JTkYJSU5UMzJfTUFYCS8qIHVuYm91bmRl ZCBxdWFudGlmaWVyICovCiAjZGVmaW5lIFJQUl9DT1VOVF9NQVgJCUlOVDMyX01BWAkvKiBtYXgg cnVudGltZSBjb3VudCAoTkZBIHN0YXRlKSAqLwogI2RlZmluZSBSUFJfRUxFTUlEWF9NQVgJCUlO VDE2X01BWAkvKiBtYXggcGF0dGVybiBlbGVtZW50cyAqLwotLSAKMi41MC4xIChBcHBsZSBHaXQt MTU1KQoK --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0013-Move-variables-to-function-scope.txt" Content-Disposition: attachment; filename="nocfbot-0013-Move-variables-to-function-scope.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz29otv12 RnJvbSAwZTk0NDY2ODU2OGE3M2MzMzg3NjM2ZTI5ZGM1MmJkMDU2OTA3NDM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIxOjQwOjA1ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gTW92ZSBs b2NhbCB2YXJpYWJsZXMgdG8gZnVuY3Rpb24gc2NvcGUgaW4KIHJvd19pc19pbl9yZWR1Y2VkX2Zy YW1lCgpWYXJpYWJsZXMgaSBhbmQgbnVtX3JlZHVjZWRfcm93cyB3ZXJlIGRlY2xhcmVkIGluc2lk ZSB0aGUgc3dpdGNoIGJsb2NrCmJlZm9yZSB0aGUgZmlyc3QgY2FzZSBsYWJlbC4gTW92ZSB0aGVt IHRvIHRoZSBmdW5jdGlvbiB0b3AgdG8gZm9sbG93ClBvc3RncmVTUUwgY29kaW5nIGNvbnZlbnRp b25zLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDUgKystLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDk0MmYwNzFiNDU3Li42NTc1Y2Y5ZGQ5NiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtMzk2OSw2ICszOTY5LDggQEAg cm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKQog CVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7CiAJaW50CQkJc3Rh dGU7CiAJaW50CQkJcnRuOworCWludDY0CQlpOworCWludAkJCW51bV9yZWR1Y2VkX3Jvd3M7CiAK IAlpZiAoIXJwcl9pc19kZWZpbmVkKHdpbnN0YXRlKSkKIAl7CkBAIC0zOTk2LDkgKzM5OTgsNiBA QCByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3Mp CiAKIAlzd2l0Y2ggKHN0YXRlKQogCXsKLQkJCWludDY0CQlpOwotCQkJaW50CQkJbnVtX3JlZHVj ZWRfcm93czsKLQogCQljYXNlIFJGX0ZSQU1FX0hFQUQ6CiAJCQludW1fcmVkdWNlZF9yb3dzID0g MTsKIAkJCWZvciAoaSA9IHBvcyArIDE7Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0014-Reset-reduced_frame_map-in-release_partition.txt" Content-Disposition: attachment; filename="nocfbot-0014-Reset-reduced_frame_map-in-release_partition.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz29rby13 RnJvbSA2ZmJkMWUwMzY2NWY5YzY1ZDIwZDgxNTljZDI5MjNlNDZmMjViZmY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIxOjQ4OjM2ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gUmVzZXQg cmVkdWNlZF9mcmFtZV9tYXAgcG9pbnRlciBpbiByZWxlYXNlX3BhcnRpdGlvbgoKQWZ0ZXIgTWVt b3J5Q29udGV4dFJlc2V0KHBhcnRjb250ZXh0KSwgcmVkdWNlZF9mcmFtZV9tYXAgYmVjb21lcyBh CmRhbmdsaW5nIHBvaW50ZXIuIFNldCBpdCB0byBOVUxMIGFuZCByZXNldCBhbGxvY19zeiB0byB6 ZXJvIHNvIHRoYXQKY3JlYXRlX3JlZHVjZWRfZnJhbWVfbWFwIHN0YXJ0cyBmcmVzaCBmb3IgdGhl IG5leHQgcGFydGl0aW9uLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cu YyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCA2NTc1Y2Y5ZGQ5Ni4uZjFmOWQ2MGIzOWQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTE1ODAsNiArMTU4MCwxMCBAQCByZWxl YXNlX3BhcnRpdGlvbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJd2luc3RhdGUtPnBhcnRp dGlvbl9zcG9vbGVkID0gZmFsc2U7CiAJd2luc3RhdGUtPm5leHRfcGFydGl0aW9uID0gdHJ1ZTsK IAorCS8qIFJlc2V0IFJQUiByZWR1Y2VkIGZyYW1lIG1hcCAqLworCXdpbnN0YXRlLT5yZWR1Y2Vk X2ZyYW1lX21hcCA9IE5VTEw7CisJd2luc3RhdGUtPmFsbG9jX3N6ID0gMDsKKwogCS8qIFJlc2V0 IE5GQSBzdGF0ZSBmb3IgbmV3IHBhcnRpdGlvbiAqLwogCXdpbnN0YXRlLT5uZmFDb250ZXh0ID0g TlVMTDsKIAl3aW5zdGF0ZS0+bmZhQ29udGV4dFRhaWwgPSBOVUxMOwotLSAKMi41MC4xIChBcHBs ZSBHaXQtMTU1KQoK --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0015-Remove-redundant-nfa_add_matched_state.txt" Content-Disposition: attachment; filename="nocfbot-0015-Remove-redundant-nfa_add_matched_state.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz29t5y14 RnJvbSBhMjI0ZWQxODI2MWEwOWQ1YjFlNjVhYmEzYzk3ZmM1NzQxMjM0NTg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIyOjExOjMwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gUmVtb3Zl IHJlZHVuZGFudCBsaXN0IG1hbmlwdWxhdGlvbiBpbiBuZmFfYWRkX21hdGNoZWRfc3RhdGUKCm5m YV9hZGRfbWF0Y2hlZF9zdGF0ZSgpIG1hbnVhbGx5IHVubGlua2VkIHBydW5lZCBjb250ZXh0cyBi ZWZvcmUKY2FsbGluZyBFeGVjUlBSRnJlZUNvbnRleHQoKSwgd2hpY2ggaW50ZXJuYWxseSBjYWxs cyBuZmFfdW5saW5rX2NvbnRleHQoKQp0byBwZXJmb3JtIHRoZSBzYW1lIGxpc3Qgb3BlcmF0aW9u cy4gUmVtb3ZlIHRoZSBtYW51YWwgZm9yd2FyZC1saW5rCnVwZGF0ZSBhbmQgdGhlIHBvc3QtbG9v cCB0YWlsIGZpeHVwLCBsZXR0aW5nIG5mYV91bmxpbmtfY29udGV4dCgpCmhhbmRsZSBmb3J3YXJk IGxpbmssIGJhY2t3YXJkIGxpbmssIGFuZCB0YWlsIHVwZGF0ZSBjb25zaXN0ZW50bHkuCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIHwgNiArLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5k ZXggYTBhNDYyMjU2YWQuLmJhYjUyNTdmNjhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC0x ODA4LDE0ICsxODA4LDEyIEBAIG5mYV9hZGRfbWF0Y2hlZF9zdGF0ZShXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkvKiBQcnVuZSBjb250ZXh0cyB0aGF0IHN0 YXJ0ZWQgd2l0aGluIHRoaXMgbWF0Y2gncyByYW5nZSAqLwogCWlmICh3aW5zdGF0ZS0+cnBTa2lw VG8gPT0gU1RfUEFTVF9MQVNUX1JPVykKIAl7Ci0JCVJQUk5GQUNvbnRleHQgKm5leHRDdHg7CiAJ CWludDY0CQlza2lwcGVkTGVuOwogCiAJCXdoaWxlIChjdHgtPm5leHQgIT0gTlVMTCAmJgogCQkJ ICAgY3R4LT5uZXh0LT5tYXRjaFN0YXJ0Um93IDw9IG1hdGNoRW5kUm93KQogCQl7Ci0JCQluZXh0 Q3R4ID0gY3R4LT5uZXh0OwotCQkJY3R4LT5uZXh0ID0gY3R4LT5uZXh0LT5uZXh0OworCQkJUlBS TkZBQ29udGV4dCAqbmV4dEN0eCA9IGN0eC0+bmV4dDsKIAogCQkJQXNzZXJ0KG5leHRDdHgtPmxh c3RQcm9jZXNzZWRSb3cgPj0gbmV4dEN0eC0+bWF0Y2hTdGFydFJvdyk7CiAJCQlza2lwcGVkTGVu ID0gbmV4dEN0eC0+bGFzdFByb2Nlc3NlZFJvdyAtIG5leHRDdHgtPm1hdGNoU3RhcnRSb3cgKyAx OwpAQCAtMTgyMyw4ICsxODIxLDYgQEAgbmZhX2FkZF9tYXRjaGVkX3N0YXRlKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCiAJCQlFeGVjUlBSRnJlZUNvbnRl eHQod2luc3RhdGUsIG5leHRDdHgpOwogCQl9Ci0JCWlmIChjdHgtPm5leHQgPT0gTlVMTCkKLQkJ CXdpbnN0YXRlLT5uZmFDb250ZXh0VGFpbCA9IGN0eDsKIAl9CiB9CiAKLS0gCjIuNTAuMSAoQXBw bGUgR2l0LTE1NSkKCg== --00000000000006699e064d7673c8 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-experimental-Implement-1-slot-PREV-NEXT-navigation.txt" Content-Disposition: attachment; filename="nocfbot-experimental-Implement-1-slot-PREV-NEXT-navigation.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmz29w7d15 RnJvbSBmMjJmOGU5MDE2M2U4OWJiYjIzNWEzNjNkYjNjZmNhYzViOTVmNTIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIzOjQ3OjEyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gSW1wbGVt ZW50IDEtc2xvdCBQUkVWL05FWFQgbmF2aWdhdGlvbiBmb3IgUlBSCgpBZGQgUFJFVih2YWx1ZSBb LCBvZmZzZXRdKSBhbmQgTkVYVCh2YWx1ZSBbLCBvZmZzZXRdKSBuYXZpZ2F0aW9uIGZ1bmN0aW9u cwpmb3IgdXNlIGluIHRoZSBERUZJTkUgY2xhdXNlIG9mIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9u LgoKVGhlc2UgZnVuY3Rpb25zIHJldHVybiB0aGUgY29sdW1uIHZhbHVlIGF0IGEgcm93IG9mZnNl dCByb3dzIGJlZm9yZS9hZnRlcgp0aGUgY3VycmVudCByb3cgd2l0aGluIHRoZSB3aW5kb3cgZnJh bWUsIHJldHVybmluZyBOVUxMIGlmIHRoZSB0YXJnZXQgcm93CmlzIG91dHNpZGUgdGhlIGZyYW1l LiBUaGUgb2Zmc2V0IGRlZmF1bHRzIHRvIDEgaWYgb21pdHRlZDsgb2Zmc2V0PTAgcmVmZXJzCnRv IHRoZSBjdXJyZW50IHJvdyBpdHNlbGY7IE5VTEwgb2Zmc2V0IHJldHVybnMgTlVMTC4KCkltcGxl bWVudGF0aW9uIGFkZHMgbmF2X3Nsb3QgYW5kIG5hdl9udWxsX3Nsb3QgdG8gV2luZG93QWdnU3Rh dGUgdG8gZmV0Y2gKdGhlIHRhcmdldCByb3cgd2l0aG91dCBkaXN0dXJiaW5nIHRoZSBtYWluIGV2 YWx1YXRpb24gc2xvdCwgYWxvbmcgd2l0aCBhCmRlZGljYXRlZCBuYXZfd2lub2JqIGZvciBuYXZp Z2F0aW9uIHJlYWRzLiBUaGUgUlBSTmF2RXhwciBub2RlIGNhcnJpZXMKdGhlIG9mZnNldCBleHBy ZXNzaW9uIGFuZCBkaXJlY3Rpb24gKFBSRVYvTkVYVCk7IGl0IGlzIGV2YWx1YXRlZCB2aWEgYQpu ZXcgRUVPUF9SUFJfTkFWIGV4cHJlc3Npb24gc3RlcCBpbiB0aGUgZXhwcmVzc2lvbiBpbnRlcnBy ZXRlciAoYW5kCmNvcnJlc3BvbmRpbmcgTExWTSBKSVQgcGF0aCkuCgpQYXJzZXIgY2hhbmdlczog UFJFVi9ORVhUIGFyZSBwYXJzZWQgYXMgZnVuY3Rpb24gY2FsbHMgYW5kIHRyYW5zZm9ybWVkIGlu dG8KUlBSTmF2RXhwciBub2RlcyBpbiB0cmFuc2Zvcm1EZWZpbmVDbGF1c2UoKS4gVmFsaWRhdGlv biByZWplY3RzIG5lc3RlZApQUkVWL05FWFQgY2FsbHMsIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBj b2x1bW4gcmVmZXJlbmNlIGluIHRoZSBmaXJzdAphcmd1bWVudCwgYW5kIGVuc3VyZXMgdGhlIG9m ZnNldCBhcmd1bWVudCBpcyBhIHJ1bi10aW1lIGNvbnN0YW50LgpEb2N1bWVudGF0aW9uIHVwZGF0 ZWQgdG8gcmVmbGVjdCB0aGUgMi1hcmd1bWVudCBmb3JtIGFuZCBOVUxMLW9mZnNldApiZWhhdmlv ci4KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sICAgICAgICB8ICAyMiAr LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgfCAgNTcgKysrCiBz cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICB8IDEwNSArKysrKwogc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICAgICAgfCAyNDAgKysrKystLS0tLS0K IHNyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jICAgICAgIHwgIDI5ICsrCiBzcmMv YmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMgICAgICB8ICAgMiArCiBzcmMvYmFja2Vu ZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICB8ICAzMyArKwogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgfCAgMzAgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9ycHIuYyAgICAgICAgICAgIHwgIDc5ICsrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYyAgICAgICAgIHwgIDE2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dm dW5jcy5jICAgICAgIHwgIDUyICsrLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAg ICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaCAgICAgICAg ICAgfCAgMTkgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5oICAgICAgfCAg IDMgKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgfCAgMTAgKy0K IHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgIHwgIDMxICsrCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgICAgICAgICB8IDQ5MyArKysrKysrKysrKysr KysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCB8IDEx NCArKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbCAgICAgICAgICAgICAgfCAyOTEg KysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsICAgICAg fCAgODQgKysrLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgfCAg IDMgKy0KIDIxIGZpbGVzIGNoYW5nZWQsIDE1MjQgaW5zZXJ0aW9ucygrKSwgMTk1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCmluZGV4IGFlMzZlMGYzMTM1Li5jYjFh ODUyYzRkMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCkBAIC0zMDQsMTIgKzMwNCwx NyBAQAogICAgICAgICA8aW5kZXh0ZXJtPgogICAgICAgICAgPHByaW1hcnk+cHJldjwvcHJpbWFy eT4KICAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDxmdW5jdGlvbj5wcmV2PC9mdW5jdGlv bj4gKCA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+ ICkKKyAgICAgICAgPGZ1bmN0aW9uPnByZXY8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFsdWU8 L3BhcmFtZXRlcj4gPHR5cGU+YW55ZWxlbWVudDwvdHlwZT4gWywgPHBhcmFtZXRlcj5vZmZzZXQ8 L3BhcmFtZXRlcj4gPHR5cGU+YmlnaW50PC90eXBlPiBdICkKICAgICAgICAgPHJldHVybnZhbHVl PmFueWVsZW1lbnQ8L3JldHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4K LSAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSBwcmV2aW91cyByb3c7Ci0g ICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGVyZSBpcyBubyBwcmV2aW91cyByb3cgaW4gdGhlIHdp bmRvdyBmcmFtZS4KKyAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSByb3cg PHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4KKyAgICAgICAgcm93cyBiZWZvcmUgdGhlIGN1 cnJlbnQgcm93IHdpdGhpbiB0aGUgd2luZG93IGZyYW1lOworICAgICAgICByZXR1cm5zIE5VTEwg aWYgdGhlIHRhcmdldCByb3cgaXMgb3V0c2lkZSB0aGUgd2luZG93IGZyYW1lLgorICAgICAgICA8 cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBkZWZhdWx0cyB0byAxIGlmIG9taXR0ZWQuCisg ICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3QgYmUgYSBub24tbmVnYXRp dmUgaW50ZWdlcjsKKyAgICAgICAgYW4gb2Zmc2V0IG9mIDAgcmVmZXJzIHRvIHRoZSBjdXJyZW50 IHJvdyBpdHNlbGYuCisgICAgICAgIElmIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IGlz IE5VTEwsIE5VTEwgaXMgcmV0dXJuZWQuCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8 L3Jvdz4KIApAQCAtMzE4LDEyICszMjMsMTcgQEAKICAgICAgICAgPGluZGV4dGVybT4KICAgICAg ICAgIDxwcmltYXJ5Pm5leHQ8L3ByaW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAg ICA8ZnVuY3Rpb24+bmV4dDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVy PiA8dHlwZT5hbnllbGVtZW50PC90eXBlPiApCisgICAgICAgIDxmdW5jdGlvbj5uZXh0PC9mdW5j dGlvbj4gKCA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5 cGU+IFssIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IDx0eXBlPmJpZ2ludDwvdHlwZT4g XSApCiAgICAgICAgIDxyZXR1cm52YWx1ZT5hbnllbGVtZW50PC9yZXR1cm52YWx1ZT4KICAgICAg ICA8L3BhcmE+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFJldHVybnMgdGhlIGNvbHVtbiB2YWx1 ZSBhdCB0aGUgbmV4dCByb3c7Ci0gICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGVyZSBpcyBubyBu ZXh0IHJvdyBpbiB0aGUgd2luZG93IGZyYW1lLgorICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4g dmFsdWUgYXQgdGhlIHJvdyA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPgorICAgICAgICBy b3dzIGFmdGVyIHRoZSBjdXJyZW50IHJvdyB3aXRoaW4gdGhlIHdpbmRvdyBmcmFtZTsKKyAgICAg ICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHdpbmRvdyBm cmFtZS4KKyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8g MSBpZiBvbWl0dGVkLgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0 IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXI7CisgICAgICAgIGFuIG9mZnNldCBvZiAwIHJlZmVy cyB0byB0aGUgY3VycmVudCByb3cgaXRzZWxmLgorICAgICAgICBJZiA8cGFyYW1ldGVyPm9mZnNl dDwvcGFyYW1ldGVyPiBpcyBOVUxMLCBOVUxMIGlzIHJldHVybmVkLgogICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICAgPC9yb3c+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IDA4OGVj YTI0MDIxLi5hODEzNjYzODYxOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0xMTg5LDYg KzExODksNjMgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUs CiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQl7CisJCQkJLyoK KwkJCQkgKiBSUFIgbmF2aWdhdGlvbiBmdW5jdGlvbnMgKFBSRVYvTkVYVCkgYXJlIGNvbXBpbGVk IGludG8KKwkJCQkgKiBFRU9QX1JQUl9OQVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bj b2RlcyBpbnN0ZWFkIG9mCisJCQkJICogYSBub3JtYWwgZnVuY3Rpb24gY2FsbC4gIFRoZSBTRVQg b3Bjb2RlIHN3YXBzCisJCQkJICogZWN4dF9vdXRlcnR1cGxlIHRvIHRoZSB0YXJnZXQgcm93LCB0 aGUgYXJndW1lbnQgZXhwcmVzc2lvbgorCQkJCSAqIGlzIGNvbXBpbGVkIG5vcm1hbGx5IChyZWFk cyBmcm9tIHRoZSBzd2FwcGVkIHNsb3QpLCBhbmQgdGhlCisJCQkJICogUkVTVE9SRSBvcGNvZGUg cmVzdG9yZXMgdGhlIG9yaWdpbmFsIHNsb3QuCisJCQkJICovCisJCQkJUlBSTmF2RXhwciAqbmF2 ID0gKFJQUk5hdkV4cHIgKikgbm9kZTsKKwkJCQlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7CisK KwkJCQlBc3NlcnQoc3RhdGUtPnBhcmVudCAmJiBJc0Eoc3RhdGUtPnBhcmVudCwgV2luZG93QWdn U3RhdGUpKTsKKwkJCQl3aW5zdGF0ZSA9IChXaW5kb3dBZ2dTdGF0ZSAqKSBzdGF0ZS0+cGFyZW50 OworCisJCQkJLyogRW1pdCBTRVQgb3Bjb2RlOiBzd2FwIHNsb3QgdG8gdGFyZ2V0IHJvdyAqLwor CQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9SUFJfTkFWX1NFVDsKKwkJCQlzY3JhdGNoLmQucnBy X25hdi53aW5zdGF0ZSA9IHdpbnN0YXRlOworCQkJCXNjcmF0Y2guZC5ycHJfbmF2Lm9mZnNldCA9 IG5hdi0+a2luZDsJLyogUlBSX05BVl9QUkVWPS0xLAorCQkJCQkJCQkJCQkJCQkgKiBSUFJfTkFW X05FWFQ9MSAqLworCisJCQkJaWYgKG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCXsKKwkJ CQkJLyoKKwkJCQkJICogQWxsb2NhdGUgc3RvcmFnZSBmb3IgdGhlIHJ1bnRpbWUgb2Zmc2V0IHZh bHVlLiAgVGhlCisJCQkJCSAqIG9mZnNldCBleHByZXNzaW9uIGlzIGNvbXBpbGVkIGJlbG93IHNv IGl0IHJ1bnMgYmVmb3JlCisJCQkJCSAqIEVFT1BfUlBSX05BVl9TRVQuCisJCQkJCSAqLworCQkJ CQlEYXR1bQkgICAqb2Zmc2V0X3ZhbHVlID0gcGFsbG9jX29iamVjdChEYXR1bSk7CisJCQkJCWJv b2wJICAgKm9mZnNldF9pc251bGwgPSBwYWxsb2Nfb2JqZWN0KGJvb2wpOworCisJCQkJCS8qIENv bXBpbGUgdGhlIG9mZnNldCBleHByZXNzaW9uIGludG8gdGhlIHRlbXAgc3RvcmFnZSAqLworCQkJ CQlFeGVjSW5pdEV4cHJSZWMobmF2LT5vZmZzZXRfYXJnLCBzdGF0ZSwKKwkJCQkJCQkJCW9mZnNl dF92YWx1ZSwgb2Zmc2V0X2lzbnVsbCk7CisKKwkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0 X3ZhbHVlID0gb2Zmc2V0X3ZhbHVlOworCQkJCQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRfaXNu dWxsID0gb2Zmc2V0X2lzbnVsbDsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJc2NyYXRj aC5kLnJwcl9uYXYub2Zmc2V0X3ZhbHVlID0gTlVMTDsKKwkJCQkJc2NyYXRjaC5kLnJwcl9uYXYu b2Zmc2V0X2lzbnVsbCA9IE5VTEw7CisJCQkJfQorCisJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0 ZSwgJnNjcmF0Y2gpOworCisJCQkJLyogQ29tcGlsZSB0aGUgYXJndW1lbnQgZXhwcmVzc2lvbiBu b3JtYWxseSAqLworCQkJCUV4ZWNJbml0RXhwclJlYyhuYXYtPmFyZywgc3RhdGUsIHJlc3YsIHJl c251bGwpOworCisJCQkJLyogRW1pdCBSRVNUT1JFIG9wY29kZTogcmVzdG9yZSBvcmlnaW5hbCBz bG90ICovCisJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX1JQUl9OQVZfUkVTVE9SRTsKKwkJCQlz Y3JhdGNoLmQucnByX25hdi53aW5zdGF0ZSA9IHdpbnN0YXRlOworCQkJCUV4cHJFdmFsUHVzaFN0 ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIFRfRnVuY0V4 cHI6CiAJCQl7CiAJCQkJRnVuY0V4cHIgICAqZnVuYyA9IChGdW5jRXhwciAqKSBub2RlOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggNjFmZjVkZGM3NGMuLjc4OWI4ZjBj MWM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTU2LDExICs1Niwx MyBAQAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImNvbW1vbi9pbnQu aCIKICNpbmNsdWRlICJhY2Nlc3MvaGVhcHRvYXN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKICNpbmNsdWRlICJleGVjdXRv ci9leGVjRXhwci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCisjaW5jbHVk ZSAiZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9taXNjbm9kZXMuaCIKQEAgLTU3Niw2 ICs1NzgsOCBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAq ZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJJiZDQVNFX0VFT1BfV0lORE9XX0ZVTkMsCiAJCSYm Q0FTRV9FRU9QX01FUkdFX1NVUFBPUlRfRlVOQywKIAkJJiZDQVNFX0VFT1BfU1VCUExBTiwKKwkJ JiZDQVNFX0VFT1BfUlBSX05BVl9TRVQsCisJCSYmQ0FTRV9FRU9QX1JQUl9OQVZfUkVTVE9SRSwK IAkJJiZDQVNFX0VFT1BfQUdHX1NUUklDVF9ERVNFUklBTElaRSwKIAkJJiZDQVNFX0VFT1BfQUdH X0RFU0VSSUFMSVpFLAogCQkmJkNBU0VfRUVPUF9BR0dfU1RSSUNUX0lOUFVUX0NIRUNLX0FSR1Ms CkBAIC0yMDAzLDYgKzIwMDcsMjQgQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwg RXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCQlFRU9fTkVYVCgpOwogCQl9 CiAKKwkJLyogUlBSIG5hdmlnYXRpb246IHN3YXAgc2xvdCB0byB0YXJnZXQgcm93ICovCisJCUVF T19DQVNFKEVFT1BfUlBSX05BVl9TRVQpCisJCXsKKwkJCUV4ZWNFdmFsUlBSTmF2U2V0KHN0YXRl LCBvcCwgZWNvbnRleHQpOworCQkJb3V0ZXJzbG90ID0gZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBs ZTsKKworCQkJRUVPX05FWFQoKTsKKwkJfQorCisJCS8qIFJQUiBuYXZpZ2F0aW9uOiByZXN0b3Jl IHNsb3QgdG8gb3JpZ2luYWwgcm93ICovCisJCUVFT19DQVNFKEVFT1BfUlBSX05BVl9SRVNUT1JF KQorCQl7CisJCQlFeGVjRXZhbFJQUk5hdlJlc3RvcmUoc3RhdGUsIG9wLCBlY29udGV4dCk7CisJ CQlvdXRlcnNsb3QgPSBlY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlOworCisJCQlFRU9fTkVYVCgp OworCQl9CisKIAkJLyogZXZhbHVhdGUgYSBzdHJpY3QgYWdncmVnYXRlIGRlc2VyaWFsaXphdGlv biBmdW5jdGlvbiAqLwogCQlFRU9fQ0FTRShFRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkUpCiAJ CXsKQEAgLTU5MTgsMyArNTk0MCw4NiBAQCBFeGVjQWdnUGxhaW5UcmFuc0J5UmVmKEFnZ1N0YXRl ICphZ2dzdGF0ZSwgQWdnU3RhdGVQZXJUcmFucyBwZXJ0cmFucywKIAogCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRDb250ZXh0KTsKIH0KKworLyoKKyAqIEV2YWx1YXRlIFJQUiBQUkVWL05FWFQg bmF2aWdhdGlvbjogc3dhcCBzbG90IHRvIHRhcmdldCByb3cuCisgKgorICogU2F2ZXMgdGhlIGN1 cnJlbnQgb3V0ZXJ0dXBsZSBpbnRvIHdpbnN0YXRlIGZvciBsYXRlciByZXN0b3JlLCBjb21wdXRl cworICogdGhlIHRhcmdldCByb3cgcG9zaXRpb24sIGZldGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcg c2xvdCBmcm9tIHRoZQorICogdHVwbGVzdG9yZSwgYW5kIHJlcGxhY2VzIGVjb250ZXh0LT5lY3h0 X291dGVydHVwbGUgd2l0aCBpdC4KKyAqCisgKiBUaGlzIGlzIGNhbGxlZCBib3RoIGZyb20gdGhl IGludGVycHJldGVyIGlubGluZSBoYW5kbGVyIGFuZCBmcm9tCisgKiBKSVQtY29tcGlsZWQgZXhw cmVzc2lvbnMgdmlhIGJ1aWxkX0V2YWxYRnVuYy4KKyAqLwordm9pZAorRXhlY0V2YWxSUFJOYXZT ZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVjb250 ZXh0KQoreworCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSA9IG9wLT5kLnJwcl9uYXYud2luc3Rh dGU7CisJaW50NjQJCW9mZnNldDsKKwlpbnQ2NAkJdGFyZ2V0X3BvczsKKwlUdXBsZVRhYmxlU2xv dCAqdGFyZ2V0X3Nsb3Q7CisKKwkvKiBTYXZlIGN1cnJlbnQgc2xvdCBmb3IgbGF0ZXIgcmVzdG9y ZSAqLworCXdpbnN0YXRlLT5uYXZfc2F2ZWRfb3V0ZXJ0dXBsZSA9IGVjb250ZXh0LT5lY3h0X291 dGVydHVwbGU7CisKKwkvKgorCSAqIERldGVybWluZSB0aGUgc2lnbmVkIG9mZnNldC4gIEZvciAy LWFyZyBQUkVWL05FWFQgdGhlIG9mZnNldCBleHByZXNzaW9uCisJICogaGFzIGFscmVhZHkgYmVl biBldmFsdWF0ZWQgaW50byBvZmZzZXRfdmFsdWUuICBOVUxMIG9yIG5lZ2F0aXZlIG9mZnNldHMK KwkgKiBhcmUgZXJyb3JzIChtYXRjaGluZyBPcmFjbGUgYmVoYXZpb3IpLgorCSAqLworCWlmIChv cC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSAhPSBOVUxMKQorCXsKKwkJaW50NjQJCXJhd19vZmZz ZXQ7CisKKwkJaWYgKCpvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251bGwpCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJ CQkgZXJybXNnKCJQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwiKSkpOworCisJCXJh d19vZmZzZXQgPSBEYXR1bUdldEludDY0KCpvcC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSk7CisK KwkJaWYgKHJhd19vZmZzZXQgPCAwKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCSBlcnJtc2coIlBSRVYvTkVY VCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUiKSkpOworCisJCS8qIEFwcGx5IGRpcmVjdGlv biBzaWduOiBQUkVWIHN1YnRyYWN0cywgTkVYVCBhZGRzICovCisJCW9mZnNldCA9IHJhd19vZmZz ZXQgKiBvcC0+ZC5ycHJfbmF2Lm9mZnNldDsKKwl9CisJZWxzZQorCQlvZmZzZXQgPSBvcC0+ZC5y cHJfbmF2Lm9mZnNldDsKKworCS8qCisJICogQ2FsY3VsYXRlIHRhcmdldCBwb3NpdGlvbi4gIE9u IG92ZXJmbG93LCB1c2UgLTEgc28gdGhhdAorCSAqIEV4ZWNSUFJOYXZHZXRTbG90IHRyZWF0cyBp dCBhcyBvdXQgb2YgcmFuZ2UuCisJICovCisJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3cod2luc3Rh dGUtPmN1cnJlbnRwb3MsIG9mZnNldCwgJnRhcmdldF9wb3MpKQorCQl0YXJnZXRfcG9zID0gLTE7 CisKKwkvKiBGZXRjaCB0YXJnZXQgcm93IHNsb3QgKHJldHVybnMgbmF2X251bGxfc2xvdCBpZiBv dXQgb2YgcmFuZ2UpICovCisJdGFyZ2V0X3Nsb3QgPSBFeGVjUlBSTmF2R2V0U2xvdCh3aW5zdGF0 ZSwgdGFyZ2V0X3Bvcyk7CisKKwkvKgorCSAqIFVwZGF0ZSBlY29udGV4dCB0byBwb2ludCB0byB0 aGUgdGFyZ2V0IHNsb3QuICBBbHNvIGRlY29tcHJlc3MgdGhlIG5ldworCSAqIHNsb3QncyBhdHRy aWJ1dGVzIHNpbmNlIEZFVENIU09NRSBhbHJlYWR5IHJhbiBmb3IgdGhlIG9yaWdpbmFsIHNsb3Qu CisJICogVGhlIGNhbGxlciAoaW50ZXJwcmV0ZXIgb3IgSklUKSBpcyByZXNwb25zaWJsZSBmb3Ig dXBkYXRpbmcgYW55IGxvY2FsCisJICogc2xvdCBjYWNoZSAoZS5nLiBvdXRlcnNsb3QpIGZyb20g ZWNvbnRleHQgYWZ0ZXIgd2UgcmV0dXJuLgorCSAqLworCXNsb3RfZ2V0YWxsYXR0cnModGFyZ2V0 X3Nsb3QpOworCWVjb250ZXh0LT5lY3h0X291dGVydHVwbGUgPSB0YXJnZXRfc2xvdDsKK30KKwor LyoKKyAqIEV2YWx1YXRlIFJQUiBQUkVWL05FWFQgbmF2aWdhdGlvbjogcmVzdG9yZSBzbG90IHRv IG9yaWdpbmFsIHJvdy4KKyAqCisgKiBSZXN0b3JlcyBlY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxl IGZyb20gdGhlIHNhdmVkIHNsb3QgaW4gd2luc3RhdGUuCisgKiBUaGUgY2FsbGVyIGlzIHJlc3Bv bnNpYmxlIGZvciB1cGRhdGluZyBhbnkgbG9jYWwgc2xvdCBjYWNoZS4KKyAqLwordm9pZAorRXhl Y0V2YWxSUFJOYXZSZXN0b3JlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCisJ CQkJCSAgRXhwckNvbnRleHQgKmVjb250ZXh0KQoreworCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSA9IG9wLT5kLnJwcl9uYXYud2luc3RhdGU7CisKKwllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxl ID0gd2luc3RhdGUtPm5hdl9zYXZlZF9vdXRlcnR1cGxlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVdpbmRvd0FnZy5jCmluZGV4IGYxZjlkNjBiMzlkLi44MzM3N2I0ZjE4ZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUgInV0aWxz L2FjbC5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0 dW0uaCIKLSNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2V4cGFu ZGVkZGF0dW0uaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGls cy9tZW11dGlscy5oIgpAQCAtMTc2LDE0ICsxNzUsNiBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dT dGF0ZVBlckFnZ0RhdGEKIAlib29sCQlyZXN0YXJ0OwkJLyogbmVlZCB0byByZXN0YXJ0IHRoaXMg YWdnIGluIHRoaXMgY3ljbGU/ICovCiB9IFdpbmRvd1N0YXRlUGVyQWdnRGF0YTsKIAotLyoKLSAq IFN0cnVjdHVyZSB1c2VkIGJ5IGNoZWNrX3Jwcl9uYXZpZ2F0aW9uKCkgYW5kIHJwcl9uYXZpZ2F0 aW9uX3dhbGtlcigpLgotICovCi10eXBlZGVmIHN0cnVjdCBOYXZpZ2F0aW9uSW5mbwotewotCWJv b2wJCWlzX3ByZXY7CQkvKiB0cnVlIGlmIFBSRVYgKi8KLQlpbnQJCQludW1fdmFyczsJCS8qIG51 bWJlciBvZiB2YXIgbm9kZXMgKi8KLX0gTmF2aWdhdGlvbkluZm87CiAKIHN0YXRpYyB2b2lkIGlu aXRpYWxpemVfd2luZG93YWdncmVnYXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwKIAkJCQkJ CQkJCSAgIFdpbmRvd1N0YXRlUGVyRnVuYyBwZXJmdW5jc3RhdGUsCkBAIC0yNDIsOSArMjMzLDYg QEAgc3RhdGljIHVpbnQ4IGdldF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwKIAkJ CQkJCQkgIGludDY0IHBvcywgaW50IGFyZ25vKTsKIHN0YXRpYyB2b2lkIHB1dF9ub3RudWxsX2lu Zm8oV2luZG93T2JqZWN0IHdpbm9iaiwKIAkJCQkJCQkgaW50NjQgcG9zLCBpbnQgYXJnbm8sIGJv b2wgaXNudWxsKTsKLXN0YXRpYyB2b2lkIGF0dG5vX21hcChOb2RlICpub2RlKTsKLXN0YXRpYyBi b29sIGF0dG5vX21hcF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7Ci0KIHN0YXRp YyBib29sIHJwcl9pc19kZWZpbmVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7CiBzdGF0aWMg aW50CXJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBv cyk7CiAKQEAgLTI1NSw5ICsyNDMsNiBAQCBzdGF0aWMgdm9pZCByZWdpc3Rlcl9yZWR1Y2VkX2Zy YW1lX21hcChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcywKIAkJCQkJCQkJCSAg IGludCB2YWwpOwogc3RhdGljIHZvaWQgdXBkYXRlX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0 IHdpbm9iaiwgaW50NjQgcG9zKTsKIAotc3RhdGljIHZvaWQgY2hlY2tfcnByX25hdmlnYXRpb24o Tm9kZSAqbm9kZSwgYm9vbCBpc19wcmV2KTsKLXN0YXRpYyBib29sIHJwcl9uYXZpZ2F0aW9uX3dh bGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKLQogLyogRm9yd2FyZCBkZWNsYXJhdGlv bnMgLSBORkEgcm93IGV2YWx1YXRpb24gKi8KIHN0YXRpYyBib29sIG5mYV9ldmFsdWF0ZV9yb3co V2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBib29sICp2YXJNYXRjaGVkKTsKIApAQCAt MTMwMSw2ICsxMjg2LDIxIEBAIHByZXBhcmVfdHVwbGVzdG9yZShXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUpCiAJCX0KIAl9CiAKKwkvKiBDcmVhdGUgcmVhZC9tYXJrIHBvaW50ZXJzIGZvciBSUFIg bmF2aWdhdGlvbiBpZiBuZWVkZWQgKi8KKwlpZiAod2luc3RhdGUtPm5hdl93aW5vYmopCisJewor CQkvKgorCQkgKiBBbGxvY2F0ZSBhIG1hcmsgcG9pbnRlciBwaW5uZWQgYXQgcG9zaXRpb24gMCBz byB0aGF0IHRoZSB0dXBsZXN0b3JlCisJCSAqIG5ldmVyIHRydW5jYXRlcyByb3dzIHRoYXQgYSBQ UkVWKGV4cHIsIE4pIG1pZ2h0IG5lZWQuCisJCSAqLworCQl3aW5zdGF0ZS0+bmF2X3dpbm9iai0+ bWFya3B0ciA9CisJCQl0dXBsZXN0b3JlX2FsbG9jX3JlYWRfcG9pbnRlcih3aW5zdGF0ZS0+YnVm ZmVyLCAwKTsKKwkJd2luc3RhdGUtPm5hdl93aW5vYmotPnJlYWRwdHIgPQorCQkJdHVwbGVzdG9y ZV9hbGxvY19yZWFkX3BvaW50ZXIod2luc3RhdGUtPmJ1ZmZlciwKKwkJCQkJCQkJCQkgIEVYRUNf RkxBR19CQUNLV0FSRCk7CisJCXdpbnN0YXRlLT5uYXZfd2lub2JqLT5tYXJrcG9zID0gMDsKKwl9 CisKIAkvKgogCSAqIElmIHdlIGFyZSBpbiBSQU5HRSBvciBHUk9VUFMgbW9kZSwgdGhlbiBkZXRl cm1pbmluZyBmcmFtZSBib3VuZGFyaWVzCiAJICogcmVxdWlyZXMgcGh5c2ljYWwgYWNjZXNzIHRv IHRoZSBmcmFtZSBlbmRwb2ludCByb3dzLCBleGNlcHQgaW4gY2VydGFpbgpAQCAtMTQxMSw2ICsx NDExLDEzIEBAIGJlZ2luX3BhcnRpdGlvbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJCXdp bnN0YXRlLT5hZ2dyZWdhdGVkdXB0byA9IDA7CiAJfQogCisJLyogcmVzZXQgbWFyayBhbmQgc2Vl ayBwb3NpdGlvbnMgZm9yIFJQUiBuYXZpZ2F0aW9uICovCisJaWYgKHdpbnN0YXRlLT5uYXZfd2lu b2JqKQorCXsKKwkJd2luc3RhdGUtPm5hdl93aW5vYmotPm1hcmtwb3MgPSAtMTsKKwkJd2luc3Rh dGUtPm5hdl93aW5vYmotPnNlZWtwb3MgPSAtMTsKKwl9CisKIAkvKiByZXNldCBtYXJrIGFuZCBz ZWVrIHBvc2l0aW9ucyBmb3IgZWFjaCByZWFsIHdpbmRvdyBmdW5jdGlvbiAqLwogCWZvciAoaW50 IGkgPSAwOyBpIDwgbnVtZnVuY3M7IGkrKykKIAl7CkBAIC0yNzU2LDE1ICsyNzYzLDE4IEBAIEV4 ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxh Z3MpCiAJd2luc3RhdGUtPnRlbXBfc2xvdF8yID0gRXhlY0luaXRFeHRyYVR1cGxlU2xvdChlc3Rh dGUsIHNjYW5EZXNjLAogCQkJCQkJCQkJCQkJICAgJlRUU09wc01pbmltYWxUdXBsZSk7CiAKLQl3 aW5zdGF0ZS0+cHJldl9zbG90ID0gRXhlY0luaXRFeHRyYVR1cGxlU2xvdChlc3RhdGUsIHNjYW5E ZXNjLAotCQkJCQkJCQkJCQkJICZUVFNPcHNNaW5pbWFsVHVwbGUpOworCWlmIChub2RlLT5ycFBh dHRlcm4gIT0gTlVMTCkKKwl7CisJCXdpbnN0YXRlLT5uYXZfc2xvdCA9IEV4ZWNJbml0RXh0cmFU dXBsZVNsb3QoZXN0YXRlLCBzY2FuRGVzYywKKwkJCQkJCQkJCQkJCQkmVFRTT3BzTWluaW1hbFR1 cGxlKTsKKwkJd2luc3RhdGUtPm5hdl9zbG90X3BvcyA9IC0xOwogCi0Jd2luc3RhdGUtPm5leHRf c2xvdCA9IEV4ZWNJbml0RXh0cmFUdXBsZVNsb3QoZXN0YXRlLCBzY2FuRGVzYywKLQkJCQkJCQkJ CQkJCSAmVFRTT3BzTWluaW1hbFR1cGxlKTsKKwkJd2luc3RhdGUtPm5hdl9udWxsX3Nsb3QgPSBF eGVjSW5pdEV4dHJhVHVwbGVTbG90KGVzdGF0ZSwgc2NhbkRlc2MsCisJCQkJCQkJCQkJCQkJCSAm VFRTT3BzTWluaW1hbFR1cGxlKTsKKwkJd2luc3RhdGUtPm5hdl9udWxsX3Nsb3QgPSBFeGVjU3Rv cmVBbGxOdWxsVHVwbGUod2luc3RhdGUtPm5hdl9udWxsX3Nsb3QpOwogCi0Jd2luc3RhdGUtPm51 bGxfc2xvdCA9IEV4ZWNJbml0RXh0cmFUdXBsZVNsb3QoZXN0YXRlLCBzY2FuRGVzYywKLQkJCQkJ CQkJCQkJCSAmVFRTT3BzTWluaW1hbFR1cGxlKTsKLQl3aW5zdGF0ZS0+bnVsbF9zbG90ID0gRXhl Y1N0b3JlQWxsTnVsbFR1cGxlKHdpbnN0YXRlLT5udWxsX3Nsb3QpOworCQl3aW5zdGF0ZS0+bmF2 X3NhdmVkX291dGVydHVwbGUgPSBOVUxMOworCX0KIAogCS8qCiAJICogY3JlYXRlIGZyYW1lIGhl YWQgYW5kIHRhaWwgc2xvdHMgb25seSBpZiBuZWVkZWQgKG11c3QgY3JlYXRlIHNsb3RzIGluCkBA IC0yOTM0LDYgKzI5NDQsMjMgQEAgRXhlY0luaXRXaW5kb3dBZ2coV2luZG93QWdnICpub2RlLCBF U3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAkJd2luc3RhdGUtPmFnZ193aW5vYmogPSBhZ2df d2lub2JqOwogCX0KIAorCS8qCisJICogU2V0IHVwIFdpbmRvd09iamVjdCBmb3IgUlBSIG5hdmln YXRpb24gb3Bjb2Rlcy4gIFRoaXMgaXMgc2VwYXJhdGUgZnJvbQorCSAqIGFnZ193aW5vYmogYmVj YXVzZSBpdCBuZWVkcyBpdHMgb3duIHJlYWQgcG9pbnRlciB0byBhdm9pZCBpbnRlcmZlcmluZwor CSAqIHdpdGggYWdncmVnYXRlIHByb2Nlc3NpbmcuCisJICovCisJaWYgKG5vZGUtPnJwUGF0dGVy biAhPSBOVUxMKQorCXsKKwkJV2luZG93T2JqZWN0IG5hdl93aW5vYmogPSBtYWtlTm9kZShXaW5k b3dPYmplY3REYXRhKTsKKworCQluYXZfd2lub2JqLT53aW5zdGF0ZSA9IHdpbnN0YXRlOworCQlu YXZfd2lub2JqLT5hcmdzdGF0ZXMgPSBOSUw7CisJCW5hdl93aW5vYmotPmxvY2FsbWVtID0gTlVM TDsKKwkJbmF2X3dpbm9iai0+bWFya3B0ciA9IC0xOworCQluYXZfd2lub2JqLT5yZWFkcHRyID0g LTE7CisJCXdpbnN0YXRlLT5uYXZfd2lub2JqID0gbmF2X3dpbm9iajsKKwl9CisKIAkvKiBTZXQg dGhlIHN0YXR1cyB0byBydW5uaW5nICovCiAJd2luc3RhdGUtPnN0YXR1cyA9IFdJTkRPV0FHR19S VU47CiAKQEAgLTI5NzQsNyArMzAwMSw5IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAq bm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJaWYgKG5vZGUtPmRlZmluZUNsYXVz ZSAhPSBOSUwpCiAJewogCQkvKgotCQkgKiBUd2VhayBhcmcgdmFyIG9mIFBSRVYvTkVYVCBzbyB0 aGF0IGl0IHJlZmVycyB0byBzY2FuL2lubmVyIHNsb3QuCisJCSAqIENvbXBpbGUgREVGSU5FIGNs YXVzZSBleHByZXNzaW9ucy4gIFBSRVYvTkVYVCBuYXZpZ2F0aW9uIGlzIGhhbmRsZWQKKwkJICog YnkgRUVPUF9SUFJfTkFWX1NFVC9SRVNUT1JFIG9wY29kZXMgZW1pdHRlZCBkdXJpbmcgRXhlY0lu aXRFeHByLCBzbworCQkgKiBubyB2YXJubyByZXdyaXRpbmcgaXMgbmVlZGVkIGhlcmUuCiAJCSAq LwogCQlmb3JlYWNoKGwsIG5vZGUtPmRlZmluZUNsYXVzZSkKIAkJewpAQCAtMjk5MSw3ICszMDIw LDYgQEAgRXhlY0luaXRXaW5kb3dBZ2coV2luZG93QWdnICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwg aW50IGVmbGFncykKIAkJCXdpbnN0YXRlLT5kZWZpbmVWYXJpYWJsZUxpc3QgPQogCQkJCWxhcHBl bmQod2luc3RhdGUtPmRlZmluZVZhcmlhYmxlTGlzdCwKIAkJCQkJCW1ha2VTdHJpbmcocHN0cmR1 cChuYW1lKSkpOwotCQkJYXR0bm9fbWFwKChOb2RlICopIGV4cHIpOwogCQkJZXhwcyA9IEV4ZWNJ bml0RXhwcihleHByLCAoUGxhblN0YXRlICopIHdpbnN0YXRlKTsKIAkJCXdpbnN0YXRlLT5kZWZp bmVDbGF1c2VMaXN0ID0KIAkJCQlsYXBwZW5kKHdpbnN0YXRlLT5kZWZpbmVDbGF1c2VMaXN0LCBl eHBzKTsKQEAgLTMwMjYsMTA3ICszMDU0LDM5IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0Fn ZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiB9CiAKIC8qCi0gKiBSZXdyaXRl IHZhcm5vIG9mIFZhciBub2RlcyB0aGF0IGFyZSB0aGUgYXJndW1lbnQgb2YgUFJFVi9ORVQgc28g dGhhdCB0aGV5Ci0gKiBzZWUgc2NhbiB0dXBsZSAoUFJFVikgb3IgaW5uZXIgdHVwbGUgKE5FWFQp LiAgQWxzbyB3ZSBjaGVjayB0aGUgYXJndW1lbnRzCi0gKiBvZiBQUkVWL05FWFQgaW5jbHVkZSBh dCBsZWFzdCAxIGNvbHVtbiByZWZlcmVuY2UuIFRoaXMgaXMgcmVxdWlyZWQgYnkgdGhlCi0gKiBT UUwgc3RhbmRhcmQuCisgKiBFeGVjUlBSTmF2R2V0U2xvdAorICoKKyAqIEZldGNoIHR1cGxlIGF0 IGdpdmVuIHBvc2l0aW9uIGZvciBSUFIgbmF2aWdhdGlvbiBvcGNvZGVzLgorICogUmV0dXJucyBu YXZfc2xvdCB3aXRoIHRoZSB0dXBsZSBsb2FkZWQsIG9yIG5hdl9udWxsX3Nsb3QgaWYgb3V0IG9m IHJhbmdlLgorICogQ2FsbGVkIGZyb20gRUVPUF9SUFJfTkFWX1NFVCBoYW5kbGVyIGluIGV4ZWNF eHBySW50ZXJwLmMuCiAgKi8KLXN0YXRpYyB2b2lkCi1hdHRub19tYXAoTm9kZSAqbm9kZSkKK1R1 cGxlVGFibGVTbG90ICoKK0V4ZWNSUFJOYXZHZXRTbG90KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgaW50NjQgcG9zKQogewotCSh2b2lkKSBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGF0 dG5vX21hcF93YWxrZXIsIE5VTEwpOwotfQorCVdpbmRvd09iamVjdCB3aW5vYmogPSB3aW5zdGF0 ZS0+bmF2X3dpbm9iajsKKwlUdXBsZVRhYmxlU2xvdCAqc2xvdCA9IHdpbnN0YXRlLT5uYXZfc2xv dDsKIAotc3RhdGljIGJvb2wKLWF0dG5vX21hcF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29u dGV4dCkKLXsKLQlGdW5jRXhwciAgICpmdW5jOwotCWludAkJCW5hcmdzOwotCWJvb2wJCWlzX3By ZXY7CisJaWYgKHBvcyA8IDApCisJCXJldHVybiB3aW5zdGF0ZS0+bmF2X251bGxfc2xvdDsKIAot CWlmIChub2RlID09IE5VTEwpCi0JCXJldHVybiBmYWxzZTsKKwkvKgorCSAqIElmIG5hdl9zbG90 IGFscmVhZHkgaG9sZHMgdGhpcyBwb3NpdGlvbiwgcmV0dXJuIGl0IHdpdGhvdXQgcmUtZmV0Y2hp bmcuCisJICogVGhpcyBpcyBjcml0aWNhbCB3aGVuIG11bHRpcGxlIFBSRVYvTkVYVCBjYWxscyBp biB0aGUgc2FtZSBleHByZXNzaW9uCisJICogbmF2aWdhdGUgdG8gdGhlIHNhbWUgcm93LCBiZWNh dXNlIHJlLWZldGNoaW5nIHdvdWxkIGZyZWUgdGhlIHNsb3QncworCSAqIHR1cGxlIG1lbW9yeSBh bmQgaW52YWxpZGF0ZSBhbnkgcGFzcy1ieS1yZWYgRGF0dW0gcG9pbnRlcnMgZnJvbSBlYXJsaWVy CisJICogbmF2aWdhdGlvbiByZXN1bHRzLgorCSAqLworCWlmICh3aW5zdGF0ZS0+bmF2X3Nsb3Rf cG9zID09IHBvcykKKwkJcmV0dXJuIHNsb3Q7CiAKLQlpZiAoSXNBKG5vZGUsIEZ1bmNFeHByKSkK KwlpZiAoIXdpbmRvd19nZXR0dXBsZXNsb3Qod2lub2JqLCBwb3MsIHNsb3QpKQogCXsKLQkJZnVu YyA9IChGdW5jRXhwciAqKSBub2RlOwotCi0JCWlmIChmdW5jLT5mdW5jaWQgPT0gRl9QUkVWIHx8 IGZ1bmMtPmZ1bmNpZCA9PSBGX05FWFQpCi0JCXsKLQkJCS8qCi0JCQkgKiBUaGUgU1FMIHN0YW5k YXJkIGFsbG93cyB0byBoYXZlIHR3byBtb3JlIGFyZ3VtZW50cyBmb3JtIG9mCi0JCQkgKiBQUkVW L05FWFQuICBCdXQgY3VycmVudGx5IHdlIGFsbG93IG9ubHkgMSBhcmd1bWVudCBmb3JtLgotCQkJ ICovCi0JCQluYXJncyA9IGxpc3RfbGVuZ3RoKGZ1bmMtPmFyZ3MpOwotCQkJaWYgKGxpc3RfbGVu Z3RoKGZ1bmMtPmFyZ3MpICE9IDEpCi0JCQkJZWxvZyhFUlJPUiwgIlBSRVYvTkVYVCBtdXN0IGhh dmUgMSBhcmd1bWVudCBidXQgZnVuY3Rpb24gJWQgaGFzICVkIGFyZ3MiLAotCQkJCQkgZnVuYy0+ ZnVuY2lkLCBuYXJncyk7Ci0KLQkJCS8qCi0JCQkgKiBDaGVjayBleHByIG9mIFBSRVYvTkVYVCBh cnVndW1lbnRzIGFuZCByZXBsYWNlIHZhcm5vLgotCQkJICovCi0JCQlpc19wcmV2ID0gKGZ1bmMt PmZ1bmNpZCA9PSBGX1BSRVYpID8gdHJ1ZSA6IGZhbHNlOwotCQkJY2hlY2tfcnByX25hdmlnYXRp b24obm9kZSwgaXNfcHJldik7Ci0JCX0KKwkJd2luc3RhdGUtPm5hdl9zbG90X3BvcyA9IC0xOwor CQlyZXR1cm4gd2luc3RhdGUtPm5hdl9udWxsX3Nsb3Q7CiAJfQotCXJldHVybiBleHByZXNzaW9u X3RyZWVfd2Fsa2VyKG5vZGUsIGF0dG5vX21hcF93YWxrZXIsIE5VTEwpOwotfQogCi0vKgotICog UmV3cml0ZSB2YXJubyBvZiBWYXIgb2YgUlBSIG5hdmlnYXRpb24gb3BlcmF0aW9ucyAoUFJFVi9O RVhUKS4KLSAqIElmIGlzX3ByZXYgaXMgdHJ1ZSwgd2UgdGFrZSBjYXJlIFBSRVYsIG90aGVyd2lz ZSBORVhULgotICovCi1zdGF0aWMgdm9pZAotY2hlY2tfcnByX25hdmlnYXRpb24oTm9kZSAqbm9k ZSwgYm9vbCBpc19wcmV2KQotewotCU5hdmlnYXRpb25JbmZvIGNvbnRleHQ7Ci0KLQljb250ZXh0 LmlzX3ByZXYgPSBpc19wcmV2OwotCWNvbnRleHQubnVtX3ZhcnMgPSAwOwotCSh2b2lkKSBleHBy ZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHJwcl9uYXZpZ2F0aW9uX3dhbGtlciwgJmNvbnRleHQp OwotCWlmIChjb250ZXh0Lm51bV92YXJzIDwgMSkKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQllcnJt c2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uJ3MgYXJndW1lbnQgbXVzdCBpbmNs dWRlIGF0IGxlYXN0IG9uZSBjb2x1bW4gcmVmZXJlbmNlIikpOwotfQotCi1zdGF0aWMgYm9vbAot cnByX25hdmlnYXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCi17Ci0JTmF2 aWdhdGlvbkluZm8gKm5hdiA9IChOYXZpZ2F0aW9uSW5mbyAqKSBjb250ZXh0OwotCi0JaWYgKG5v ZGUgPT0gTlVMTCkKLQkJcmV0dXJuIGZhbHNlOwotCi0Jc3dpdGNoIChub2RlVGFnKG5vZGUpKQot CXsKLQkJY2FzZSBUX1ZhcjoKLQkJCXsKLQkJCQlWYXIJCSAgICp2YXIgPSAoVmFyICopIG5vZGU7 Ci0KLQkJCQluYXYtPm51bV92YXJzKys7Ci0KLQkJCQlpZiAobmF2LT5pc19wcmV2KQotCQkJCXsK LQkJCQkJLyoKLQkJCQkJICogUmV3cml0ZSB2YXJubyBmcm9tIE9VVEVSX1ZBUiB0byByZWd1bGFy IHZhciBubyBzbyB0aGF0Ci0JCQkJCSAqIHRoZSB2YXIgcmVmZXJlbmNlcyBzY2FuIHR1cGxlLgot CQkJCQkgKi8KLQkJCQkJdmFyLT52YXJubyA9IHZhci0+dmFybm9zeW47Ci0JCQkJfQotCQkJCWVs c2UKLQkJCQkJdmFyLT52YXJubyA9IElOTkVSX1ZBUjsKLQkJCX0KLQkJCWJyZWFrOwotCQljYXNl IFRfQ29uc3Q6Ci0JCWNhc2UgVF9GdW5jRXhwcjoKLQkJY2FzZSBUX09wRXhwcjoKLQkJCWJyZWFr OwotCi0JCWRlZmF1bHQ6Ci0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQllcnJtc2coInJvdyBwYXR0 ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uJ3MgYXJndW1lbnQgaW5jbHVkZXMgdW5zdXBwb3J0ZWQg ZXhwcmVzc2lvbiIpKTsKLQl9Ci0JcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwg cnByX25hdmlnYXRpb25fd2Fsa2VyLCBjb250ZXh0KTsKKwl3aW5zdGF0ZS0+bmF2X3Nsb3RfcG9z ID0gcG9zOworCXJldHVybiBzbG90OwogfQogCiAKQEAgLTMxODcsOCArMzE0Nyw4IEBAIEV4ZWNS ZVNjYW5XaW5kb3dBZ2coV2luZG93QWdnU3RhdGUgKm5vZGUpCiAJRXhlY0NsZWFyVHVwbGUobm9k ZS0+YWdnX3Jvd19zbG90KTsKIAlFeGVjQ2xlYXJUdXBsZShub2RlLT50ZW1wX3Nsb3RfMSk7CiAJ RXhlY0NsZWFyVHVwbGUobm9kZS0+dGVtcF9zbG90XzIpOwotCUV4ZWNDbGVhclR1cGxlKG5vZGUt PnByZXZfc2xvdCk7Ci0JRXhlY0NsZWFyVHVwbGUobm9kZS0+bmV4dF9zbG90KTsKKwlpZiAobm9k ZS0+bmF2X3Nsb3QpCisJCUV4ZWNDbGVhclR1cGxlKG5vZGUtPm5hdl9zbG90KTsKIAlpZiAobm9k ZS0+ZnJhbWVoZWFkX3Nsb3QpCiAJCUV4ZWNDbGVhclR1cGxlKG5vZGUtPmZyYW1laGVhZF9zbG90 KTsKIAlpZiAobm9kZS0+ZnJhbWV0YWlsX3Nsb3QpCkBAIC00Mjc3LDYgKzQyMzcsMTAgQEAgcmVn aXN0ZXJfcmVzdWx0OgogICogUmV0dXJucyB0cnVlIGlmIHRoZSByb3cgZXhpc3RzLCBmYWxzZSBp ZiBvdXQgb2YgcGFydGl0aW9uLgogICogSWYgcm93IGV4aXN0cywgZmlsbHMgdmFyTWF0Y2hlZCBh cnJheS4KICAqIHZhck1hdGNoZWRbaV0gPSB0cnVlIGlmIHZhcmlhYmxlIGkgbWF0Y2hlZCBhdCBj dXJyZW50IHJvdy4KKyAqCisgKiBVc2VzIDEtc2xvdCBtb2RlbDogb25seSBlY3h0X291dGVydHVw bGUgaXMgc2V0IHRvIHRoZSBjdXJyZW50IHJvdy4KKyAqIFBSRVYvTkVYVCBuYXZpZ2F0aW9uIGlz IGhhbmRsZWQgYnkgRUVPUF9SUFJfTkFWX1NFVC9SRVNUT1JFIG9wY29kZXMKKyAqIGR1cmluZyBl eHByZXNzaW9uIGV2YWx1YXRpb24sIHdoaWNoIHRlbXBvcmFyaWx5IHN3YXAgdGhlIHNsb3QuCiAg Ki8KIHN0YXRpYyBib29sCiBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGlu dDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCkKQEAgLTQyODcsMzcgKzQyNTEsMjUgQEAgbmZhX2V2 YWx1YXRlX3JvdyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIGJvb2wgKnZhck1hdGNo ZWQpCiAJTGlzdENlbGwgICAqbGM7CiAJaW50CQkJdmFySWR4ID0gMDsKIAlUdXBsZVRhYmxlU2xv dCAqc2xvdDsKKwlpbnQ2NAkJc2F2ZWRfcG9zOwogCi0JLyoKLQkgKiBTZXQgdXAgc2xvdHMgZm9y IGN1cnJlbnQsIHByZXZpb3VzLCBhbmQgbmV4dCByb3dzLiBXZSBkb24ndCBjYWxsCi0JICogZ2V0 X3Nsb3RzKCkgaGVyZSB0byBhdm9pZCByZWN1cnNpb24gdGhyb3VnaCByb3dfaXNfaW5fZnJhbWUg LT4KLQkgKiB1cGRhdGVfcmVkdWNlZF9mcmFtZSAtPiBFeGVjUlBSUHJvY2Vzc1Jvdy4KLQkgKi8K LQotCS8qIEN1cnJlbnQgcm93IC0+IGVjeHRfb3V0ZXJ0dXBsZSAqLworCS8qIEZldGNoIGN1cnJl bnQgcm93IGludG8gdGVtcF9zbG90XzEgKi8KIAlzbG90ID0gd2luc3RhdGUtPnRlbXBfc2xvdF8x OwogCWlmICghd2luZG93X2dldHR1cGxlc2xvdCh3aW5vYmosIHBvcywgc2xvdCkpCiAJCXJldHVy biBmYWxzZTsJCQkvKiBObyByb3cgZXhpc3RzICovCisKKwkvKiBTZXQgdXAgMS1zbG90IGNvbnRl eHQ6IG9ubHkgZWN4dF9vdXRlcnR1cGxlICovCiAJZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBsZSA9 IHNsb3Q7CiAKLQkvKiBQcmV2aW91cyByb3cgLT4gZWN4dF9zY2FudHVwbGUgKGZvciBQUkVWKSAq LwotCWlmIChwb3MgPiAwKQotCXsKLQkJc2xvdCA9IHdpbnN0YXRlLT5wcmV2X3Nsb3Q7Ci0JCWlm ICghd2luZG93X2dldHR1cGxlc2xvdCh3aW5vYmosIHBvcyAtIDEsIHNsb3QpKQotCQkJZWNvbnRl eHQtPmVjeHRfc2NhbnR1cGxlID0gd2luc3RhdGUtPm51bGxfc2xvdDsKLQkJZWxzZQotCQkJZWNv bnRleHQtPmVjeHRfc2NhbnR1cGxlID0gc2xvdDsKLQl9Ci0JZWxzZQotCQllY29udGV4dC0+ZWN4 dF9zY2FudHVwbGUgPSB3aW5zdGF0ZS0+bnVsbF9zbG90OworCS8qCisJICogU2F2ZSBhbmQgc2V0 IGN1cnJlbnRwb3Mgc28gdGhhdCBFRU9QX1JQUl9OQVZfU0VUIG9wY29kZXMgY2FuIGNhbGN1bGF0 ZQorCSAqIHRhcmdldCBwb3NpdGlvbnMgKGN1cnJlbnRwb3MgKy8tIG9mZnNldCkuCisJICovCisJ c2F2ZWRfcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3M7CisJd2luc3RhdGUtPmN1cnJlbnRwb3Mg PSBwb3M7CiAKLQkvKiBOZXh0IHJvdyAtPiBlY3h0X2lubmVydHVwbGUgKGZvciBORVhUKSAqLwot CXNsb3QgPSB3aW5zdGF0ZS0+bmV4dF9zbG90OwotCWlmICghd2luZG93X2dldHR1cGxlc2xvdCh3 aW5vYmosIHBvcyArIDEsIHNsb3QpKQotCQllY29udGV4dC0+ZWN4dF9pbm5lcnR1cGxlID0gd2lu c3RhdGUtPm51bGxfc2xvdDsKLQllbHNlCi0JCWVjb250ZXh0LT5lY3h0X2lubmVydHVwbGUgPSBz bG90OworCS8qIEludmFsaWRhdGUgbmF2X3Nsb3QgY2FjaGUgc28gUFJFVi9ORVhUIHJlLWZldGNo IGZvciBuZXcgcm93ICovCisJd2luc3RhdGUtPm5hdl9zbG90X3BvcyA9IC0xOwogCiAJZm9yZWFj aChsYywgd2luc3RhdGUtPmRlZmluZUNsYXVzZUxpc3QpCiAJewpAQCAtNDMzNSw2ICs0Mjg3LDgg QEAgbmZhX2V2YWx1YXRlX3JvdyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIGJvb2wg KnZhck1hdGNoZWQpCiAJCQlicmVhazsKIAl9CiAKKwl3aW5zdGF0ZS0+Y3VycmVudHBvcyA9IHNh dmVkX3BvczsKKwogCXJldHVybiB0cnVlOwkJCQkvKiBSb3cgZXhpc3RzICovCiB9CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQv aml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggNjUwZjFkNDJhOTMuLjE1MGExYTcyMjZjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMv YmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMjQzMiw2ICsyNDMyLDM1IEBAIGxs dm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJTExWTUJ1aWxkQnIoYiwgb3Bi bG9ja3Nbb3BubyArIDFdKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBFRU9QX1JQUl9OQVZfU0VU OgorCQkJCWJ1aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFJQUk5hdlNldCIsCisJCQkJ CQkJCXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKKworCQkJCS8qCisJCQkJICogUmVsb2FkIHZf b3V0ZXJzbG90IGZyb20gZWNvbnRleHQgc2luY2UgdGhlIEMgZnVuY3Rpb24KKwkJCQkgKiBzd2Fw cGVkIGVjeHRfb3V0ZXJ0dXBsZSB0byBhIGRpZmZlcmVudCByb3cuCisJCQkJICovCisJCQkJdl9v dXRlcnNsb3QgPSBsX2xvYWRfc3RydWN0X2dlcChiLAorCQkJCQkJCQkJCQkJU3RydWN0RXhwckNv bnRleHQsCisJCQkJCQkJCQkJCQl2X2Vjb250ZXh0LAorCQkJCQkJCQkJCQkJRklFTEROT19FWFBS Q09OVEVYVF9PVVRFUlRVUExFLAorCQkJCQkJCQkJCQkJInZfb3V0ZXJzbG90Iik7CisJCQkJTExW TUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKKwkJCQlicmVhazsKKworCQkJY2FzZSBF RU9QX1JQUl9OQVZfUkVTVE9SRToKKwkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2 YWxSUFJOYXZSZXN0b3JlIiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOworCisJ CQkJLyogUmVsb2FkIHZfb3V0ZXJzbG90IGFmdGVyIHJlc3RvcmUgKi8KKwkJCQl2X291dGVyc2xv dCA9IGxfbG9hZF9zdHJ1Y3RfZ2VwKGIsCisJCQkJCQkJCQkJCQlTdHJ1Y3RFeHByQ29udGV4dCwK KwkJCQkJCQkJCQkJCXZfZWNvbnRleHQsCisJCQkJCQkJCQkJCQlGSUVMRE5PX0VYUFJDT05URVhU X09VVEVSVFVQTEUsCisJCQkJCQkJCQkJCQkidl9vdXRlcnNsb3QiKTsKKwkJCQlMTFZNQnVpbGRC cihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOworCQkJCWJyZWFrOworCiAJCQljYXNlIEVFT1BfQUdH X1NUUklDVF9ERVNFUklBTElaRToKIAkJCWNhc2UgRUVPUF9BR0dfREVTRVJJQUxJWkU6CiAJCQkJ ewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF90eXBlcy5jIGIvc3Jj L2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF90eXBlcy5jCmluZGV4IGM4YTFmODQxMjkzLi5lNzhi MzFkNzc1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF90eXBlcy5j CisrKyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfdHlwZXMuYwpAQCAtMTY4LDYgKzE2 OCw4IEBAIHZvaWQJICAgKnJlZmVyZW5jZWRfZnVuY3Rpb25zW10gPQogCUV4ZWNFdmFsU2NhbGFy QXJyYXlPcCwKIAlFeGVjRXZhbEhhc2hlZFNjYWxhckFycmF5T3AsCiAJRXhlY0V2YWxTdWJQbGFu LAorCUV4ZWNFdmFsUlBSTmF2U2V0LAorCUV4ZWNFdmFsUlBSTmF2UmVzdG9yZSwKIAlFeGVjRXZh bFN5c1ZhciwKIAlFeGVjRXZhbFdob2xlUm93VmFyLAogCUV4ZWNFdmFsWG1sRXhwciwKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMKaW5kZXggZGRmNjgxMmQ3YjAuLjA3OTljYTExMDhmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYwpAQCAtNjksNiArNjksOSBAQCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQlj YXNlIFRfTWVyZ2VTdXBwb3J0RnVuYzoKIAkJCXR5cGUgPSAoKGNvbnN0IE1lcmdlU3VwcG9ydEZ1 bmMgKikgZXhwciktPm1zZnR5cGU7CiAJCQlicmVhazsKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJ CQl0eXBlID0gKChjb25zdCBSUFJOYXZFeHByICopIGV4cHIpLT5yZXN1bHR0eXBlOworCQkJYnJl YWs7CiAJCWNhc2UgVF9TdWJzY3JpcHRpbmdSZWY6CiAJCQl0eXBlID0gKChjb25zdCBTdWJzY3Jp cHRpbmdSZWYgKikgZXhwciktPnJlZnJlc3R5cGU7CiAJCQlicmVhazsKQEAgLTg0OCw2ICs4NTEs OSBAQCBleHByQ29sbGF0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9NZXJnZVN1cHBv cnRGdW5jOgogCQkJY29sbCA9ICgoY29uc3QgTWVyZ2VTdXBwb3J0RnVuYyAqKSBleHByKS0+bXNm Y29sbGlkOwogCQkJYnJlYWs7CisJCWNhc2UgVF9SUFJOYXZFeHByOgorCQkJY29sbCA9ICgoY29u c3QgUlBSTmF2RXhwciAqKSBleHByKS0+cmVzdWx0Y29sbGlkOworCQkJYnJlYWs7CiAJCWNhc2Ug VF9TdWJzY3JpcHRpbmdSZWY6CiAJCQljb2xsID0gKChjb25zdCBTdWJzY3JpcHRpbmdSZWYgKikg ZXhwciktPnJlZmNvbGxpZDsKIAkJCWJyZWFrOwpAQCAtMTE0Niw2ICsxMTUyLDkgQEAgZXhwclNl dENvbGxhdGlvbihOb2RlICpleHByLCBPaWQgY29sbGF0aW9uKQogCQljYXNlIFRfTWVyZ2VTdXBw b3J0RnVuYzoKIAkJCSgoTWVyZ2VTdXBwb3J0RnVuYyAqKSBleHByKS0+bXNmY29sbGlkID0gY29s bGF0aW9uOwogCQkJYnJlYWs7CisJCWNhc2UgVF9SUFJOYXZFeHByOgorCQkJKChSUFJOYXZFeHBy ICopIGV4cHIpLT5yZXN1bHRjb2xsaWQgPSBjb2xsYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBU X1N1YnNjcmlwdGluZ1JlZjoKIAkJCSgoU3Vic2NyaXB0aW5nUmVmICopIGV4cHIpLT5yZWZjb2xs aWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKQEAgLTE0MTgsNiArMTQyNyw5IEBAIGV4cHJMb2Nh dGlvbihjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfTWVyZ2VTdXBwb3J0RnVuYzoKIAkJCWxv YyA9ICgoY29uc3QgTWVyZ2VTdXBwb3J0RnVuYyAqKSBleHByKS0+bG9jYXRpb247CiAJCQlicmVh azsKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQlsb2MgPSAoKGNvbnN0IFJQUk5hdkV4cHIgKikg ZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9TdWJzY3JpcHRpbmdSZWY6CiAJ CQkvKiBqdXN0IHVzZSBjb250YWluZXIgYXJndW1lbnQncyBsb2NhdGlvbiAqLwogCQkJbG9jID0g ZXhwckxvY2F0aW9uKChOb2RlICopICgoY29uc3QgU3Vic2NyaXB0aW5nUmVmICopIGV4cHIpLT5y ZWZleHByKTsKQEAgLTIxNzgsNiArMjE5MCwxNiBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2lt cGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2Fz ZSBUX1JQUk5hdkV4cHI6CisJCQl7CisJCQkJUlBSTmF2RXhwciAqZXhwciA9IChSUFJOYXZFeHBy ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhleHByLT5hcmcpKQorCQkJCQlyZXR1cm4gdHJ1ZTsK KwkJCQlpZiAoZXhwci0+b2Zmc2V0X2FyZyAmJiBXQUxLKGV4cHItPm9mZnNldF9hcmcpKQorCQkJ CQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVm OgogCQkJewogCQkJCVN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmID0gKFN1YnNjcmlwdGluZ1JlZiAq KSBub2RlOwpAQCAtMzA4MSw2ICszMTAzLDE3IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2lt cGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJCX0KIAkJCWJy ZWFrOworCQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCXsKKwkJCQlSUFJOYXZFeHByICpuYXYgPSAo UlBSTmF2RXhwciAqKSBub2RlOworCQkJCVJQUk5hdkV4cHIgKm5ld25vZGU7CisKKwkJCQlGTEFU Q09QWShuZXdub2RlLCBuYXYsIFJQUk5hdkV4cHIpOworCQkJCU1VVEFURShuZXdub2RlLT5hcmcs IG5hdi0+YXJnLCBFeHByICopOworCQkJCU1VVEFURShuZXdub2RlLT5vZmZzZXRfYXJnLCBuYXYt Pm9mZnNldF9hcmcsIEV4cHIgKik7CisJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CisJCQl9 CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCXsKIAkJCQlTdWJzY3Jp cHRpbmdSZWYgKnNic3JlZiA9IChTdWJzY3JpcHRpbmdSZWYgKikgbm9kZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZnVuYy5jCmluZGV4IGJhOTUyM2FlM2Q0Li5jMjVlMmM0ZDNhNyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZnVuYy5jCkBAIC03NjAsNyArNzYwLDggQEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBMaXN0ICpmdW5jbmFtZSwgTGlzdCAqZmFyZ3MsCiAJLyogbmV4dCgpIGFuZCBw cmV2KCkgYXJlIG9ubHkgYWxsb3dlZCBpbiBhIFdJTkRPVyBERUZJTkUgY2xhdXNlICovCiAJaWYg KGZkcmVzdWx0ID09IEZVTkNERVRBSUxfTk9STUFMICYmCiAJCXBzdGF0ZS0+cF9leHByX2tpbmQg IT0gRVhQUl9LSU5EX1JQUl9ERUZJTkUgJiYKLQkJKGZ1bmNpZCA9PSBGX1BSRVYgfHwgZnVuY2lk ID09IEZfTkVYVCkpCisJCShmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09 IEZfTkVYVF9BTllFTEVNRU5UIHx8CisJCSBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5U OCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCkpCiAJCWVyZXBvcnQoRVJST1Is CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCSBlcnJtc2coIiVzIGNh biBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIiwKQEAgLTc2OCw3ICs3NjksMzIgQEAg UGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpmdW5jbmFtZSwgTGlz dCAqZmFyZ3MsCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwog CiAJLyogYnVpbGQgdGhlIGFwcHJvcHJpYXRlIG91dHB1dCBzdHJ1Y3R1cmUgKi8KLQlpZiAoZmRy ZXN1bHQgPT0gRlVOQ0RFVEFJTF9OT1JNQUwgfHwgZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9QUk9D RURVUkUpCisJaWYgKGZkcmVzdWx0ID09IEZVTkNERVRBSUxfTk9STUFMICYmCisJCShmdW5jaWQg PT0gRl9QUkVWX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UIHx8CisJ CSBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5UOCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FO WUVMRU1FTlRfSU5UOCkpCisJeworCQkvKgorCQkgKiBQUkVWKCkgYW5kIE5FWFQoKSBhcmUgY29t cGlsZWQgaW50byBFRU9QX1JQUl9OQVZfU0VUIC8KKwkJICogRUVPUF9SUFJfTkFWX1JFU1RPUkUg b3Bjb2RlcyBpbnN0ZWFkIG9mIGEgbm9ybWFsIGZ1bmN0aW9uIGNhbGwuCisJCSAqIFJlcHJlc2Vu dCB0aGVtIGFzIFJQUk5hdkV4cHIgbm9kZXMgc28gdGhhdCBsYXRlciBzdGFnZXMgY2FuCisJCSAq IGlkZW50aWZ5IHRoZW0gd2l0aG91dCByZWx5aW5nIG9uIGZ1bmNpZCBjb21wYXJpc29ucy4KKwkJ ICovCisJCWJvb2wJCWlzX25leHQgPSAoZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UIHx8CisJ CQkJCQkJICAgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UX0lOVDgpOworCQlib29sCQloYXNf b2Zmc2V0ID0gKGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxFTUVOVF9JTlQ4IHx8CisJCQkJCQkJCSAg ZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UX0lOVDgpOworCQlSUFJOYXZFeHByICpuYXZleHBy ID0gbWFrZU5vZGUoUlBSTmF2RXhwcik7CisKKwkJbmF2ZXhwci0+a2luZCA9IGlzX25leHQgPyBS UFJfTkFWX05FWFQgOiBSUFJfTkFWX1BSRVY7CisJCW5hdmV4cHItPmFyZyA9IChFeHByICopIGxp bml0aWFsKGZhcmdzKTsKKwkJbmF2ZXhwci0+b2Zmc2V0X2FyZyA9IGhhc19vZmZzZXQgPyAoRXhw ciAqKSBsc2Vjb25kKGZhcmdzKSA6IE5VTEw7CisJCW5hdmV4cHItPnJlc3VsdHR5cGUgPSByZXR0 eXBlOworCQkvKiByZXN1bHRjb2xsaWQgd2lsbCBiZSBzZXQgYnkgcGFyc2VfY29sbGF0ZS5jICov CisJCW5hdmV4cHItPmxvY2F0aW9uID0gbG9jYXRpb247CisKKwkJcmV0dmFsID0gKE5vZGUgKikg bmF2ZXhwcjsKKwl9CisJZWxzZSBpZiAoZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9OT1JNQUwgfHwg ZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9QUk9DRURVUkUpCiAJewogCQlGdW5jRXhwciAgICpmdW5j ZXhwciA9IG1ha2VOb2RlKEZ1bmNFeHByKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3Jwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4IDU1 MjgzYWI0YmJlLi43YzYwMDFlZWM5ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpAQCAtMjgsNiAr MjgsNyBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5j cy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgIm9wdGltaXplci9v cHRpbWl6ZXIuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX2NsYXVzZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCkBAIC00 MSw2ICs0Miw5IEBAIHN0YXRpYyB2b2lkIHZhbGlkYXRlUlBSUGF0dGVyblZhckNvdW50KFBhcnNl U3RhdGUgKnBzdGF0ZSwgUlBSUGF0dGVybk5vZGUgKm5vZGUsCiAJCQkJCQkJCQkgICBMaXN0ICpy cERlZnMsIExpc3QgKip2YXJOYW1lcyk7CiBzdGF0aWMgTGlzdCAqdHJhbnNmb3JtRGVmaW5lQ2xh dXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywKIAkJCQkJCQkJICAgV2lu ZG93RGVmICp3aW5kZWYsIExpc3QgKip0YXJnZXRsaXN0KTsKK3N0YXRpYyBib29sIGNvbnRhaW5z X3Jwcl9uYXZfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOworc3RhdGljIGJvb2wg Y29udGFpbnNfY29sdW1uX3JlZl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7Citz dGF0aWMgYm9vbCBjaGVja19ycHJfbmF2X25lc3Rpbmdfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQg KmNvbnRleHQpOwogCiAvKgogICogdHJhbnNmb3JtUlBSCkBAIC00MDAsNiArNDA0LDEwIEBAIHRy YW5zZm9ybURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2Ms IFdpbmRvd0RlZiAqd2luZGVmLAogCWZvcmVhY2hfcHRyKFRhcmdldEVudHJ5LCB0ZSwgZGVmaW5l Q2xhdXNlKQogCQl0ZS0+ZXhwciA9IChFeHByICopIGNvZXJjZV90b19ib29sZWFuKHBzdGF0ZSwg KE5vZGUgKikgdGUtPmV4cHIsICJERUZJTkUiKTsKIAorCS8qIGNoZWNrIGZvciBuZXN0ZWQgUFJF Vi9ORVhUIGFuZCBtaXNzaW5nIGNvbHVtbiByZWZlcmVuY2VzICovCisJZm9yZWFjaF9wdHIoVGFy Z2V0RW50cnksIHRlLCBkZWZpbmVDbGF1c2UpCisJCSh2b2lkKSBjaGVja19ycHJfbmF2X25lc3Rp bmdfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCBwc3RhdGUpOworCiAJLyogbWFyayBjb2x1bW4g b3JpZ2lucyAqLwogCW1hcmtUYXJnZXRMaXN0T3JpZ2lucyhwc3RhdGUsIGRlZmluZUNsYXVzZSk7 CiAKQEAgLTQwOCwzICs0MTYsNzQgQEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAKIAlyZXR1cm4g ZGVmaW5lQ2xhdXNlOwogfQorCisvKgorICogY29udGFpbnNfcnByX25hdl93YWxrZXIKKyAqCQlS ZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiB0cmVlIGNvbnRhaW5zIGEgUFJFViBvciBORVhU IGNhbGwuCisgKi8KK3N0YXRpYyBib29sCitjb250YWluc19ycHJfbmF2X3dhbGtlcihOb2RlICpu b2RlLCB2b2lkICpjb250ZXh0KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxz ZTsKKwlpZiAoSXNBKG5vZGUsIFJQUk5hdkV4cHIpKQorCQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4g ZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBjb250YWluc19ycHJfbmF2X3dhbGtlciwgY29u dGV4dCk7Cit9CisKKy8qCisgKiBjb250YWluc19jb2x1bW5fcmVmX3dhbGtlcgorICoJCVJldHVy biB0cnVlIGlmIHRoZSBleHByZXNzaW9uIHRyZWUgY29udGFpbnMgYXQgbGVhc3Qgb25lIFZhciBu b2RlCisgKgkJKGNvbHVtbiByZWZlcmVuY2UpLgorICovCitzdGF0aWMgYm9vbAorY29udGFpbnNf Y29sdW1uX3JlZl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKK3sKKwlpZiAobm9k ZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKElzQShub2RlLCBWYXIpKQorCQlyZXR1 cm4gdHJ1ZTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBjb250YWluc19j b2x1bW5fcmVmX3dhbGtlciwgY29udGV4dCk7Cit9CisKKy8qCisgKiBjaGVja19ycHJfbmF2X25l c3Rpbmdfd2Fsa2VyCisgKgkJUmFpc2UgYW4gZXJyb3IgaWYgUFJFViBvciBORVhUIGFwcGVhcnMg bmVzdGVkIGluc2lkZSBhbm90aGVyIFBSRVYvTkVYVCwKKyAqCQlpZiB0aGUgZmlyc3QgYXJndW1l bnQgY29udGFpbnMgbm8gY29sdW1uIHJlZmVyZW5jZSwgb3IgaWYgdGhlIG9wdGlvbmFsCisgKgkJ b2Zmc2V0IGFyZ3VtZW50IGlzIG5vdCBhIHJ1bi10aW1lIGNvbnN0YW50IChpLmUuLCBpdCBjb250 YWlucyBhIGNvbHVtbgorICoJCXJlZmVyZW5jZSkuCisgKi8KK3N0YXRpYyBib29sCitjaGVja19y cHJfbmF2X25lc3Rpbmdfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCit7CisJaWYg KG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChJc0Eobm9kZSwgUlBSTmF2RXhw cikpCisJeworCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOworCisJCWlm IChjb250YWluc19ycHJfbmF2X3dhbGtlcigoTm9kZSAqKSBuYXYtPmFyZywgTlVMTCkpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCisJCQkJCSBlcnJtc2coIlBSRVYgYW5kIE5FWFQgY2Fubm90IGJlIG5lc3RlZCIpLAorCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKChQYXJzZVN0YXRlICopIGNvbnRleHQsCisJCQkJCQkJCQkJ bmF2LT5sb2NhdGlvbikpKTsKKwkJaWYgKCFjb250YWluc19jb2x1bW5fcmVmX3dhbGtlcigoTm9k ZSAqKSBuYXYtPmFyZywgTlVMTCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImFyZ3VtZW50IG9mIHJvdyBwYXR0 ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1u IHJlZmVyZW5jZSIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKChQYXJzZVN0YXRlICopIGNv bnRleHQsCisJCQkJCQkJCQkJbmF2LT5sb2NhdGlvbikpKTsKKwkJaWYgKG5hdi0+b2Zmc2V0X2Fy ZyAhPSBOVUxMICYmCisJCQkoY29udGFpbnNfY29sdW1uX3JlZl93YWxrZXIoKE5vZGUgKikgbmF2 LT5vZmZzZXRfYXJnLCBOVUxMKSB8fAorCQkJIGNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rpb25zKChO b2RlICopIG5hdi0+b2Zmc2V0X2FyZykpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJQUkVWL05F WFQgb2Zmc2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudCIpLAorCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKChQYXJzZVN0YXRlICopIGNvbnRleHQsCisJCQkJCQkJCQkJbmF2LT5sb2NhdGlv bikpKTsKKwkJLyogZG9uJ3QgcmVjdXJzZSBpbnRvIGFyZzsgbmVzdGluZyBhbHJlYWR5IGNoZWNr ZWQgYWJvdmUgKi8KKwkJcmV0dXJuIGZhbHNlOworCX0KKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVl X3dhbGtlcihub2RlLCBjaGVja19ycHJfbmF2X25lc3Rpbmdfd2Fsa2VyLCBjb250ZXh0KTsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA5MjhiZWQyZTlmYi4uZDE5ZjM3MThiMzAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTk1ODEsNiArOTU4MSwyMiBAQCBnZXRf cnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCWdldF9m dW5jX2V4cHIoKEZ1bmNFeHByICopIG5vZGUsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CiAJCQli cmVhazsKIAorCQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCXsKKwkJCQlSUFJOYXZFeHByICpuYXYg PSAoUlBSTmF2RXhwciAqKSBub2RlOworCisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYs CisJCQkJCQkJCQkgICBuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWID8gIlBSRVYoIiA6ICJORVhU KCIpOworCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbmF2LT5hcmcsIGNvbnRleHQsIHNob3dp bXBsaWNpdCk7CisJCQkJaWYgKG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCXsKKwkJCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIsICIpOworCQkJCQlnZXRfcnVsZV9leHByKChO b2RlICopIG5hdi0+b2Zmc2V0X2FyZywgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKwkJCQl9CisJ CQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKScpOworCQkJfQorCQkJYnJlYWs7CisKIAkJ Y2FzZSBUX05hbWVkQXJnRXhwcjoKIAkJCXsKIAkJCQlOYW1lZEFyZ0V4cHIgKm5hID0gKE5hbWVk QXJnRXhwciAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRv d2Z1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYwppbmRleCA3NGVm MTA5ZjcyZS4uMDkxMjYwZDJjY2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93 aW5kb3dmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jCkBA IC03MjYsMjIgKzcyNiw2MiBAQCB3aW5kb3dfbnRoX3ZhbHVlKFBHX0ZVTkNUSU9OX0FSR1MpCiAK IC8qCiAgKiBwcmV2Ci0gKiBEdW1teSBmdW5jdGlvbiB0byBpbnZva2UgUlBSJ3MgbmF2aWdhdGlv biBvcGVyYXRvciAiUFJFViIuCi0gKiBUaGlzIGlzICpub3QqIGEgd2luZG93IGZ1bmN0aW9uLgor ICogQ2F0YWxvZyBwbGFjZWhvbGRlciBmb3IgUlBSJ3MgUFJFViBuYXZpZ2F0aW9uIG9wZXJhdG9y LgorICoKKyAqIFRoZSBwYXJzZXIgdHJhbnNmb3JtcyBwcmV2KCkgY2FsbHMgaW5zaWRlIERFRklO RSBpbnRvIFJQUk5hdkV4cHIgbm9kZXMsCisgKiBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5ldmVyIHJl YWNoZWQgZHVyaW5nIG5vcm1hbCBSUFIgZXhlY3V0aW9uLiAgSXQgZXhpc3RzCisgKiBvbmx5IHNv IHRoYXQgdGhlIHBhcnNlciBjYW4gcmVzb2x2ZSB0aGUgZnVuY3Rpb24gbmFtZSBmcm9tIHBnX3By b2MuCisgKiBDYWxscyBvdXRzaWRlIERFRklORSBhcmUgcmVqZWN0ZWQgYnkgcGFyc2VfZnVuYy5j IChFWFBSX0tJTkRfUlBSX0RFRklORQorICogY2hlY2spLiAgVGhlIGVycm9yIGJlbG93IGlzIGEg ZGVmZW5zaXZlIG1lYXN1cmUgaW4gY2FzZSB0aGF0IGNoZWNrIGlzCisgKiBieXBhc3NlZCAoZS5n LiwgZGlyZWN0IEMtbGV2ZWwgZnVuY3Rpb24gaW52b2NhdGlvbikuCiAgKi8KIERhdHVtCiB3aW5k b3dfcHJldihQR19GVU5DVElPTl9BUkdTKQogewotCVBHX1JFVFVSTl9EQVRVTShQR19HRVRBUkdf REFUVU0oMCkpOworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJwcmV2KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiBh IERFRklORSBjbGF1c2UiKSkpOworCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQg Ki8KIH0KIAogLyoKICAqIG5leHQKLSAqIER1bW15IGZ1bmN0aW9uIHRvIGludm9rZSBSUFIncyBu YXZpZ2F0aW9uIG9wZXJhdGlvbiAiTkVYVCIuCi0gKiBUaGlzIGlzICpub3QqIGEgd2luZG93IGZ1 bmN0aW9uLgorICogQ2F0YWxvZyBwbGFjZWhvbGRlciBmb3IgUlBSJ3MgTkVYVCBuYXZpZ2F0aW9u IG9wZXJhdG9yLgorICogU2VlIHdpbmRvd19wcmV2KCkgZm9yIGRldGFpbHMuCiAgKi8KIERhdHVt CiB3aW5kb3dfbmV4dChQR19GVU5DVElPTl9BUkdTKQogewotCVBHX1JFVFVSTl9EQVRVTShQR19H RVRBUkdfREFUVU0oMCkpOworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJuZXh0KCkgY2FuIG9ubHkgYmUgdXNl ZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOworCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJl YWNoZWQgKi8KK30KKworLyoKKyAqIHByZXYodmFsdWUsIG9mZnNldCkKKyAqIENhdGFsb2cgcGxh Y2Vob2xkZXIgZm9yIFJQUidzIFBSRVYgbmF2aWdhdGlvbiBvcGVyYXRvciB3aXRoIG9mZnNldC4K KyAqIFNlZSB3aW5kb3dfcHJldigpIGZvciBkZXRhaWxzLgorICovCitEYXR1bQord2luZG93X3By ZXZfb2Zmc2V0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJtc2coInByZXYoKSBj YW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJUEdfUkVUVVJOX05VTEwo KTsJCQkvKiBub3QgcmVhY2hlZCAqLworfQorCisvKgorICogbmV4dCh2YWx1ZSwgb2Zmc2V0KQor ICogQ2F0YWxvZyBwbGFjZWhvbGRlciBmb3IgUlBSJ3MgTkVYVCBuYXZpZ2F0aW9uIG9wZXJhdG9y IHdpdGggb2Zmc2V0LgorICogU2VlIHdpbmRvd19wcmV2KCkgZm9yIGRldGFpbHMuCisgKi8KK0Rh dHVtCit3aW5kb3dfbmV4dF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwllcmVwb3J0KEVS Uk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVy cm1zZygibmV4dCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwlQ R19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCiB9CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAppbmRleCA3ZGRhZWYzZDA0YS4uODQ5NmMxYmFiYzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdApAQCAtMTA5NTcsOSArMTA5NTcsMTUgQEAKIHsgb2lkID0+ICc4MTI2JywgZGVzY3IgPT4g J3ByZXZpb3VzIHZhbHVlJywKICAgcHJvbmFtZSA9PiAncHJldicsIHByb3ZvbGF0aWxlID0+ICdz JywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVudCcsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnllbGVt ZW50JywgcHJvc3JjID0+ICd3aW5kb3dfcHJldicgfSwKK3sgb2lkID0+ICc4MTI4JywgZGVzY3Ig PT4gJ3ByZXZpb3VzIHZhbHVlIGF0IG9mZnNldCcsCisgIHByb25hbWUgPT4gJ3ByZXYnLCBwcm92 b2xhdGlsZSA9PiAncycsIHByb2lzc3RyaWN0ID0+ICdmJywgcHJvcmV0dHlwZSA9PiAnYW55ZWxl bWVudCcsCisgIHByb2FyZ3R5cGVzID0+ICdhbnllbGVtZW50IGludDgnLCBwcm9zcmMgPT4gJ3dp bmRvd19wcmV2X29mZnNldCcgfSwKIHsgb2lkID0+ICc4MTI3JywgZGVzY3IgPT4gJ25leHQgdmFs dWUnLAogICBwcm9uYW1lID0+ICduZXh0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBl ID0+ICdhbnllbGVtZW50JywKICAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQnLCBwcm9zcmMg PT4gJ3dpbmRvd19uZXh0JyB9LAoreyBvaWQgPT4gJzgxMjknLCBkZXNjciA9PiAnbmV4dCB2YWx1 ZSBhdCBvZmZzZXQnLAorICBwcm9uYW1lID0+ICduZXh0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBw cm9pc3N0cmljdCA9PiAnZicsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0 eXBlcyA9PiAnYW55ZWxlbWVudCBpbnQ4JywgcHJvc3JjID0+ICd3aW5kb3dfbmV4dF9vZmZzZXQn IH0sCiAKICMgZnVuY3Rpb25zIGZvciByYW5nZSB0eXBlcwogeyBvaWQgPT4gJzM4MzInLCBkZXNj ciA9PiAnSS9PJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgg Yi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IGFhOWIzNjFmYTMxLi42MDY3 ZjNiNmZmOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysg Yi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0yNzQsNiArMjc0LDEwIEBAIHR5 cGVkZWYgZW51bSBFeHByRXZhbE9wCiAJRUVPUF9NRVJHRV9TVVBQT1JUX0ZVTkMsCiAJRUVPUF9T VUJQTEFOLAogCisJLyogcm93IHBhdHRlcm4gbmF2aWdhdGlvbiAoUlBSIFBSRVYvTkVYVCkgKi8K KwlFRU9QX1JQUl9OQVZfU0VULAorCUVFT1BfUlBSX05BVl9SRVNUT1JFLAorCiAJLyogYWdncmVn YXRpb24gcmVsYXRlZCBub2RlcyAqLwogCUVFT1BfQUdHX1NUUklDVF9ERVNFUklBTElaRSwKIAlF RU9QX0FHR19ERVNFUklBTElaRSwKQEAgLTY5MSw2ICs2OTUsMTcgQEAgdHlwZWRlZiBzdHJ1Y3Qg RXhwckV2YWxTdGVwCiAJCQlTdWJQbGFuU3RhdGUgKnNzdGF0ZTsKIAkJfQkJCXN1YnBsYW47CiAK KwkJLyogZm9yIEVFT1BfUlBSX05BVl9TRVQgLyBFRU9QX1JQUl9OQVZfUkVTVE9SRSAqLworCQlz dHJ1Y3QKKwkJeworCQkJV2luZG93QWdnU3RhdGUgKndpbnN0YXRlOworCQkJaW50NjQJCW9mZnNl dDsgLyogMS1hcmc6IHN0YXRpYyBzaWduZWQgb2Zmc2V0IChQUkVWPS0xLAorCQkJCQkJCQkgKiBO RVhUPSsxKSAqLworCQkJRGF0dW0JICAgKm9mZnNldF92YWx1ZTsJLyogMi1hcmc6IHJ1bnRpbWUg b2Zmc2V0IHZhbHVlLCBvcgorCQkJCQkJCQkJCSAqIE5VTEwgKi8KKwkJCWJvb2wJICAgKm9mZnNl dF9pc251bGw7CS8qIDItYXJnOiBydW50aW1lIG9mZnNldCBudWxsIGZsYWcgKi8KKwkJfQkJCXJw cl9uYXY7CisKIAkJLyogZm9yIEVFT1BfQUdHXypERVNFUklBTElaRSAqLwogCQlzdHJ1Y3QKIAkJ ewpAQCAtODk4LDYgKzkxMywxMCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbE1lcmdlU3VwcG9ydEZ1 bmMoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJCSBFeHByQ29u dGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxTdWJQbGFuKEV4cHJTdGF0ZSAq c3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJRXhwckNvbnRleHQgKmVjb250ZXh0KTsK K2V4dGVybiB2b2lkIEV4ZWNFdmFsUlBSTmF2U2V0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFs U3RlcCAqb3AsCisJCQkJCQkJICBFeHByQ29udGV4dCAqZWNvbnRleHQpOworZXh0ZXJuIHZvaWQg RXhlY0V2YWxSUFJOYXZSZXN0b3JlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3As CisJCQkJCQkJCSAgRXhwckNvbnRleHQgKmVjb250ZXh0KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFs V2hvbGVSb3dWYXIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJ RXhwckNvbnRleHQgKmVjb250ZXh0KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsU3lzVmFyKEV4cHJT dGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9l eGVjdXRvci9ub2RlV2luZG93QWdnLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlV2luZG93 QWdnLmgKaW5kZXggYWRhNGExYzQ1OGMuLmY2ZjY2NDUxMzFjIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9leGVjdXRvci9ub2RlV2luZG93QWdnLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv bm9kZVdpbmRvd0FnZy5oCkBAIC0yMCw0ICsyMCw3IEBAIGV4dGVybiBXaW5kb3dBZ2dTdGF0ZSAq RXhlY0luaXRXaW5kb3dBZ2coV2luZG93QWdnICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVm CiBleHRlcm4gdm9pZCBFeGVjRW5kV2luZG93QWdnKFdpbmRvd0FnZ1N0YXRlICpub2RlKTsKIGV4 dGVybiB2b2lkIEV4ZWNSZVNjYW5XaW5kb3dBZ2coV2luZG93QWdnU3RhdGUgKm5vZGUpOwogCisv KiBSUFIgbmF2aWdhdGlvbiBzdXBwb3J0IGZvciBleHByZXNzaW9uIGV2YWx1YXRpb24gb3Bjb2Rl cyAqLworZXh0ZXJuIFR1cGxlVGFibGVTbG90ICpFeGVjUlBSTmF2R2V0U2xvdChXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcyk7CisKICNlbmRpZgkJCQkJCQkvKiBOT0RFV0lORE9X QUdHX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggMzY4MWQ5MDViZGUuLjljNjkyMzAxMzEz IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtMjcwNCwxMCArMjcwNCwxMiBAQCB0eXBlZGVmIHN0 cnVjdCBXaW5kb3dBZ2dTdGF0ZQogCVR1cGxlVGFibGVTbG90ICp0ZW1wX3Nsb3RfMTsKIAlUdXBs ZVRhYmxlU2xvdCAqdGVtcF9zbG90XzI7CiAKLQkvKiB0ZW1wb3Jhcnkgc2xvdHMgZm9yIFJQUiAq LwotCVR1cGxlVGFibGVTbG90ICpwcmV2X3Nsb3Q7CS8qIFBSRVYgcm93IG5hdmlnYXRpb24gb3Bl cmF0b3IgKi8KLQlUdXBsZVRhYmxlU2xvdCAqbmV4dF9zbG90OwkvKiBORVhUIHJvdyBuYXZpZ2F0 aW9uIG9wZXJhdG9yICovCi0JVHVwbGVUYWJsZVNsb3QgKm51bGxfc2xvdDsJLyogYWxsIE5VTEwg c2xvdCAqLworCS8qIFJQUiBuYXZpZ2F0aW9uICovCisJc3RydWN0IFdpbmRvd09iamVjdERhdGEg Km5hdl93aW5vYmo7CS8qIHdpbm9iaiBmb3IgUlBSIG5hdiBmZXRjaCAqLworCWludDY0CQluYXZf c2xvdF9wb3M7CS8qIHBvc2l0aW9uIGNhY2hlZCBpbiBuYXZfc2xvdCwgb3IgLTEgKi8KKwlUdXBs ZVRhYmxlU2xvdCAqbmF2X3Nsb3Q7CS8qIHNsb3QgZm9yIFBSRVYvTkVYVCB0YXJnZXQgcm93ICov CisJVHVwbGVUYWJsZVNsb3QgKm5hdl9zYXZlZF9vdXRlcnR1cGxlOwkvKiBzYXZlZCBzbG90IGR1 cmluZyBuYXYgc3dhcCAqLworCVR1cGxlVGFibGVTbG90ICpuYXZfbnVsbF9zbG90OwkvKiBhbGwg TlVMTCBzbG90ICovCiAKIAkvKgogCSAqIEVhY2ggYnl0ZSBjb3JyZXNwb25kcyB0byBhIHJvdyBw b3NpdGlvbmVkIGF0IGFic29sdXRlIGl0cyBwb3MgaW4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXgg Mzg0ZGY1MGM4MGEuLjcxNDM1NzBmNGUwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNjQ4LDYg KzY0OCwzNyBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dGdW5jUnVuQ29uZGl0aW9uCiAJRXhwcgkg ICAqYXJnOwogfSBXaW5kb3dGdW5jUnVuQ29uZGl0aW9uOwogCisvKgorICogUlBSTmF2RXhwcgor ICoKKyAqIFJlcHJlc2VudHMgYSBQUkVWKCkgb3IgTkVYVCgpIG5hdmlnYXRpb24gY2FsbCBpbiBh biBSUFIgREVGSU5FIGNsYXVzZS4KKyAqIEF0IGV4cHJlc3Npb24gY29tcGlsZSB0aW1lIHRoaXMg aXMgdHJhbnNsYXRlZCBpbnRvIEVFT1BfUlBSX05BVl9TRVQgLworICogRUVPUF9SUFJfTkFWX1JF U1RPUkUgb3Bjb2RlcyByYXRoZXIgdGhhbiBhIG5vcm1hbCBmdW5jdGlvbiBjYWxsLgorICoKKyAq IGtpbmQ6ICAgICAgIFJQUl9OQVZfUFJFViAoLTEpIG9yIFJQUl9OQVZfTkVYVCAoKzEpCisgKiBh cmc6ICAgICAgICB0aGUgZXhwcmVzc2lvbiB0byBldmFsdWF0ZSBhZ2FpbnN0IHRoZSB0YXJnZXQg cm93CisgKiBvZmZzZXRfYXJnOiBvcHRpb25hbCBleHBsaWNpdCBvZmZzZXQgZXhwcmVzc2lvbiAo Mi1hcmcgZm9ybSk7IE5VTEwgZm9yCisgKiAgICAgICAgICAgICB0aGUgMS1hcmcgZm9ybSB3aGlj aCB1c2VzIGFuIGltcGxpY2l0IG9mZnNldCBvZiAxCisgKi8KK3R5cGVkZWYgZW51bSBSUFJOYXZL aW5kCit7CisJUlBSX05BVl9QUkVWID0gLTEsCisJUlBSX05BVl9ORVhUID0gMSwKK30gUlBSTmF2 S2luZDsKKwordHlwZWRlZiBzdHJ1Y3QgUlBSTmF2RXhwcgoreworCUV4cHIJCXhwcjsKKwlSUFJO YXZLaW5kCWtpbmQ7CQkJLyogUFJFViBvciBORVhUICovCisJRXhwcgkgICAqYXJnOwkJCS8qIGFy Z3VtZW50IGV4cHJlc3Npb24gKi8KKwlFeHByCSAgICpvZmZzZXRfYXJnOwkJLyogb2Zmc2V0IGV4 cHJlc3Npb24sIG9yIE5VTEwgZm9yIDEtYXJnIGZvcm0gKi8KKwlPaWQJCQlyZXN1bHR0eXBlOwkJ LyogcmVzdWx0IHR5cGUgKHNhbWUgYXMgYXJnJ3MgdHlwZSkgKi8KKwkvKiBPSUQgb2YgY29sbGF0 aW9uIG9mIHJlc3VsdCAqLworCU9pZAkJCXJlc3VsdGNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlf anVtYmxlX2lnbm9yZSk7CisJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8K KwlQYXJzZUxvYwlsb2NhdGlvbjsKK30gUlBSTmF2RXhwcjsKKwogLyoKICAqIE1lcmdlU3VwcG9y dEZ1bmMKICAqCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKaW5kZXggZTcyMTcxMDUwYzcuLjc5 YjVlNjNhNjU3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CkBAIC0xMDE4LDYgKzEwMTgs NDk3IEBAIFdJTkRPVyB3IEFTICgKICAgNSB8ICAgICAwLjEgfCAgICAgMAogKDUgcm93cykKIAor LS0KKy0tIEVycm9yIGNhc2VzOiBQUkVWL05FWFQgdXNhZ2UgcmVzdHJpY3Rpb25zCistLQorLS0g UFJFViBvdXRzaWRlIERFRklORSBjbGF1c2UKK1NFTEVDVCBwcmV2KHByaWNlKSBGUk9NIHN0b2Nr OworRVJST1I6ICBwcmV2IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCitMSU5F IDE6IFNFTEVDVCBwcmV2KHByaWNlKSBGUk9NIHN0b2NrOworICAgICAgICAgICAgICAgXgorLS0g TkVYVCBvdXRzaWRlIERFRklORSBjbGF1c2UKK1NFTEVDVCBuZXh0KHByaWNlKSBGUk9NIHN0b2Nr OworRVJST1I6ICBuZXh0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCitMSU5F IDE6IFNFTEVDVCBuZXh0KHByaWNlKSBGUk9NIHN0b2NrOworICAgICAgICAgICAgICAgXgorLS0g TmVzdGVkIFBSRVYKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAg UEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJ TkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihwcmljZSkpCispOworRVJST1I6ICBQUkVWIGFuZCBO RVhUIGNhbm5vdCBiZSBuZXN0ZWQKK0xJTkUgNzogICAgIERFRklORSBBIEFTIHByaWNlID4gUFJF VihQUkVWKHByaWNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gTmVz dGVkIE5FWFQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFS VElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUg QSBBUyBwcmljZSA+IE5FWFQoTkVYVChwcmljZSkpCispOworRVJST1I6ICBQUkVWIGFuZCBORVhU IGNhbm5vdCBiZSBuZXN0ZWQKK0xJTkUgNzogICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChO RVhUKHByaWNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gUFJFViBu ZXN0ZWQgaW5zaWRlIE5FWFQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAo CisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAg ICBERUZJTkUgQSBBUyBwcmljZSA+IE5FWFQoUFJFVihwcmljZSkpCispOworRVJST1I6ICBQUkVW IGFuZCBORVhUIGNhbm5vdCBiZSBuZXN0ZWQKK0xJTkUgNzogICAgIERFRklORSBBIEFTIHByaWNl ID4gTkVYVChQUkVWKHByaWNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor LS0gUFJFViBuZXN0ZWQgaW5zaWRlIGV4cHJlc3Npb24gaW5zaWRlIE5FWFQKK1NFTEVDVCBwcmlj ZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJ TklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IE5FWFQocHJp Y2UgKiBQUkVWKHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGJlIG5l c3RlZAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKHByaWNlICogUFJFVihw cmljZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFRyaXBsZSBuZXN0 aW5nOiBlcnJvciByZXBvcnRlZCBhdCBvdXRlcm1vc3QgUFJFVgorU0VMRUNUIHByaWNlIEZST00g c3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwK KyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihQUkVWKFBSRVYo cHJpY2UpKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGJlIG5lc3RlZAorTElO RSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYoUFJFVihwcmljZSkpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBObyBjb2x1bW4gcmVmZXJlbmNlIGlu IFBSRVYvTkVYVCBhcmd1bWVudAorLS0gUFJFVigxKTogY29uc3RhbnQgb25seSwgbm8gY29sdW1u IHJlZmVyZW5jZQorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQ QVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklO RSBBIEFTIFBSRVYoMSkgPiAwCispOworRVJST1I6ICBhcmd1bWVudCBvZiByb3cgcGF0dGVybiBu YXZpZ2F0aW9uIG9wZXJhdGlvbiBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZl cmVuY2UKK0xJTkUgNzogICAgIERFRklORSBBIEFTIFBSRVYoMSkgPiAwCisgICAgICAgICAgICAg ICAgICAgICAgICBeCistLSBORVhUKDEgKyAyKTogY29uc3RhbnQgZXhwcmVzc2lvbiwgbm8gY29s dW1uIHJlZmVyZW5jZQorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAg ICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERF RklORSBBIEFTIE5FWFQoMSArIDIpID4gMAorKTsKK0VSUk9SOiAgYXJndW1lbnQgb2Ygcm93IHBh dHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBjb2x1 bW4gcmVmZXJlbmNlCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBORVhUKDEgKyAyKSA+IDAKKyAg ICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIDItYXJnIGZvcm06IFBSRVYoMSwgMSk6IGNvbnN0 YW50IGV4cHJlc3Npb24gYXMgZmlyc3QgYXJnCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lO RE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRF Uk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVigxLCAxKSA+IDAKKyk7CitFUlJPUjogIGFyZ3Vt ZW50IG9mIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uIG11c3QgaW5jbHVkZSBhdCBs ZWFzdCBvbmUgY29sdW1uIHJlZmVyZW5jZQorTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJFVigx LCAxKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIE5vbi1jb25zdGFudCBvZmZz ZXQ6IGNvbHVtbiByZWZlcmVuY2UgYXMgb2Zmc2V0CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBB VFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgcHJpY2UpID4gMAorKTsKK0VS Uk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IGJlIGEgcnVuLXRpbWUgY29uc3RhbnQKK0xJTkUg NzogICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIHByaWNlKSA+IDAKKyAgICAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIE5vbi1jb25zdGFudCBvZmZzZXQ6IHZvbGF0aWxlIGZ1bmN0aW9uIGFz IG9mZnNldAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJU SVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBB IEFTIFBSRVYocHJpY2UsIHJhbmRvbSgpOjppbnQpID4gMAorKTsKK0VSUk9SOiAgUFJFVi9ORVhU IG9mZnNldCBtdXN0IGJlIGEgcnVuLXRpbWUgY29uc3RhbnQKK0xJTkUgNzogICAgIERFRklORSBB IEFTIFBSRVYocHJpY2UsIHJhbmRvbSgpOjppbnQpID4gMAorICAgICAgICAgICAgICAgICAgICAg ICAgXgorLS0KKy0tIDItYXJnIFBSRVYvTkVYVDogZnVuY3Rpb25hbCB0ZXN0cworLS0KKy0tIFBS RVYocHJpY2UsIDIpOiBtYXRjaCByb3dzIHdoZXJlIGN1cnJlbnQgcHJpY2UgPiBwcmljZSAyIHJv d3MgYmFjaworLS0gc3RvY2s6IDEwMCwgOTAsIDgwLCA5NSwgMTEwCistLSBQYXR0ZXJuIChBIEIr KTogQT1hbnksIEIgd2hlcmUgcHJpY2UgPiBQUkVWKHByaWNlLCAyKQorLS0gQXQgcG9zIDIgKDgw KTogQSBtYXRjaGVzLiBwb3MgMyAoOTUpOiA5NSA+IFBSRVYoOTUsMik9OTAgVFJVRS4KKy0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgNCAoMTEwKTogMTEwID4gUFJFVigxMTAsMik9 ODAgVFJVRS4gTWF0Y2ghCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZp cnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQo KikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNv bXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAg ICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgcHJpY2UgPiBQUkVWKHByaWNlLCAyKQorKTsKKyBj b21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8 IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAg MjAwIHwgICAgICAgICAyMDAgfCAgICAgICAgMTUwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTAz LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAg ICAgICAgIDExMCB8ICAgICAgICAxMjAgfCAgICAgMworIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8 ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAy MDAwIHwgICAgICAgMTUwMCB8ICAgICAyCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAy MyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAgIDExMDAgfCAg ICAgICAxMjAwIHwgICAgIDMKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEy MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAt MjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dz KQorCistLSBORVhUKHByaWNlLCAyKTogbWF0Y2ggcm93cyB3aGVyZSBjdXJyZW50IHByaWNlID4g cHJpY2UgMiByb3dzIGFoZWFkCistLSBwb3MgMCAoMTAwKTogTkVYVCgxMDAsMik9ODAsIDEwMD44 MCBUUlVFLiBwb3MgMSAoOTApOiBORVhUKDkwLDIpPTk1LCA5MD45NSBGQUxTRS4gTWF0Y2ggZW5k cy4KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJp Y2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBC WSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChwcmlj ZSwgMikKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8 IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8 ICAgMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgMjAwIHwgICAgICAgIDIwMCB8ICAgICAxCisgY29t cGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgICAgICAxNDAgfCAgICAg ICAgMTUwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDctMjAy MyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8 IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIw MDAgfCAgICAgICAgMjAwMCB8ICAgICAgIDIwMDAgfCAgICAgMQorIGNvbXBhbnkyIHwgMDctMDMt MjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAxNDAwIHwgICAgICAgMTUwMCB8ICAgICAy CisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwg IDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDct MDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisoMjAgcm93cykKKworLS0gRXhwcmVzc2lvbnMgaW5zaWRlIFBSRVYvTkVYVCBhcmc6IGV4 cHIgaXMgZXZhbHVhdGVkIG9uIHRhcmdldCByb3cKKy0tIFBSRVYocHJpY2UgLSA1MCwgMSk6IGZl dGNoZXMgKHByaWNlIC0gNTApIGZyb20gMSByb3cgYmFjaworU0VMRUNUIGNvbXBhbnksIHRkYXRl LCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAor ICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKHByaWNlIC0gNTAsIDEpCispOworIGNvbXBhbnkg IHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQg CistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAg ICAgICAgIDIwMCB8ICAgICAgICAyMDAgfCAgICAgMQorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8 ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgMTQwIHwgICAgICAgIDE1MCB8ICAgICAyCisgY29t cGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAg MTEwIHwgICAgICAgIDEzMCB8ICAgICA0CisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAy MyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8 IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgIDIwMDAgfCAg ICAgICAyMDAwIHwgICAgIDEKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0 MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUt MjAyMyB8ICAxNTAwIHwgICAgICAgIDE1MDAgfCAgICAgICAxNTAwIHwgICAgIDEKKyBjb21wYW55 MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDEz MDAgfCAgICAgMgorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwg IDEzMDAgfCAgICAgICAgMTMwMCB8ICAgICAgIDEzMDAgfCAgICAgMQorKDIwIHJvd3MpCisKKy0t IE5FWFQocHJpY2UgKiAyLCAxKTogZmV0Y2hlcyAocHJpY2UgKiAyKSBmcm9tIDEgcm93IGFoZWFk CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNl KSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9N IHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkg dGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA8IE5FWFQocHJpY2Ug KiAyLCAxKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGZpcnN0X3ZhbHVl IHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIz IHwgICAxMDAgfCAgICAgICAgIDEwMCB8ICAgICAgICAxMjAgfCAgICAgOQorIGNvbXBhbnkxIHwg MDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5 MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNy0y MDIzIHwgICAxMTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkx IHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAg ICAgICAgNTAgfCAgICAgICAxNDAwIHwgICAgIDQKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAg MjAwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0w My0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgICAgICA2 MCB8ICAgICAgIDEyMDAgfCAgICAgNAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMg fCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKygyMCByb3dzKQorCistLSBMYXJnZSBvZmZzZXQ6IFBSRVYodmFsLCA5OTkpIG9uIDEw MDAtcm93IHNlcmllcyBtYXRjaGVzIG9ubHkgbGFzdCByb3cKKy0tIE5FWFQodmFsLCA5OTkpIG1h dGNoZXMgb25seSBmaXJzdCByb3cKK1NFTEVDVCB2YWwsIGZpcnN0X3ZhbHVlKHZhbCkgT1ZFUiB3 LCBsYXN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDEwMDApIEFTIHQodmFsKQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQor ICAgIERFRklORSBBIEFTIFBSRVYodmFsLCA5OTkpID0gMQorKQorT1JERVIgQlkgdmFsIERFU0Mg TElNSVQgMzsKKyB2YWwgIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIDEwMDAgfCAgICAgICAgMTAw MCB8ICAgICAgIDEwMDAgfCAgICAgMQorICA5OTkgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorICA5OTggfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDMgcm93 cykKKworU0VMRUNUIHZhbCwgZmlyc3RfdmFsdWUodmFsKSBPVkVSIHcsIGxhc3RfdmFsdWUodmFs KSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkg QVMgdCh2YWwpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg TkVYVCh2YWwsIDk5OSkgPSAxMDAwCispCitMSU1JVCAzOworIHZhbCB8IGZpcnN0X3ZhbHVlIHwg bGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLQorICAgMSB8ICAgICAgICAgICAxIHwgICAgICAgICAgMSB8ICAgICAxCisgICAyIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyAgIDMgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorKDMgcm93cykKKworLS0gUFJFVihwcmljZSwgMCk6IG9mZnNldCAwIG1l YW5zIGN1cnJlbnQgcm93LCBhbHdheXMgZXF1YWwgdG8gcHJpY2UKKy0tIEErIG1hdGNoZXMgZW50 aXJlIHBhcnRpdGlvbiBhcyBvbmUgZ3JvdXA7IGNvdW50ID0gcGFydGl0aW9uIHNpemUKK1NFTEVD VCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIg dywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sK K1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIDApID0gcHJpY2UKKyk7 CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFs dWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwg ICAgICAgICAxMDAgfCAgICAgICAgMTMwIHwgICAgMTAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMg fCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAw Ny0wMy0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIw MjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEg fCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgIDUwIHwg ICAgICAgMTMwMCB8ICAgIDEwCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAx NTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0 LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8 ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAg cm93cykKKworLS0gMi1hcmcgUFJFVi9ORVhUIG91dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNU IHByZXYocHJpY2UsIDIpIEZST00gc3RvY2s7CitFUlJPUjogIHByZXYgY2FuIG9ubHkgYmUgdXNl ZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VMRUNUIHByZXYocHJpY2UsIDIpIEZST00g c3RvY2s7CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgbmV4dChwcmljZSwgMikgRlJPTSBzdG9j azsKK0VSUk9SOiAgbmV4dCBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorTElO RSAxOiBTRUxFQ1QgbmV4dChwcmljZSwgMikgRlJPTSBzdG9jazsKKyAgICAgICAgICAgICAgIF4K Ky0tIDItYXJnIFBSRVYvTkVYVDogbmVnYXRpdmUgb2Zmc2V0CitTRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cg dyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCAtMSkgSVMgTk9UIE5VTEwKKyk7CitF UlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKKy0tIDItYXJnIFBS RVYvTkVYVDogTlVMTCBvZmZzZXQgKHR5cGVkKQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmlj ZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAor ICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgTlVMTDo6aW50OCkgSVMgTk9UIE5VTEwKKyk7CitF UlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbnVsbAorLS0gMi1hcmcgUFJFVi9O RVhUOiBOVUxMIG9mZnNldCAodW50eXBlZCkKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us IGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAg ICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIFBSRVYocHJpY2UsIE5VTEwpIElTIE5PVCBOVUxMCispOworRVJST1I6ICBQ UkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKKy0tIDItYXJnIFBSRVYvTkVYVDogaG9z dCB2YXJpYWJsZSBuZWdhdGl2ZSBhbmQgTlVMTAorUFJFUEFSRSB0ZXN0X3ByZXZfb2Zmc2V0KGlu dDgpIEFTCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkg T1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBh bnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+ IFBSRVYocHJpY2UsICQxKQorKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CitFUlJP UjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKK0VYRUNVVEUgdGVzdF9w cmV2X29mZnNldChOVUxMKTsKK0VSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBu dWxsCitERUFMTE9DQVRFIHRlc3RfcHJldl9vZmZzZXQ7CistLSAyLWFyZyBQUkVWL05FWFQ6IGhv c3QgdmFyaWFibGUgd2l0aCBleHByZXNzaW9uICgwICsgJDEpCitQUkVQQVJFIHRlc3RfcHJldl9v ZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVl KHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04g QlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFT IHByaWNlID4gUFJFVihwcmljZSwgMCArICQxKQorKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNl dCgtMSk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKK0VY RUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKK0VSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBt dXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRFIHRlc3RfcHJldl9vZmZzZXQ7CistLSAyLWFyZzog dHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBpbiBzYW1lIERFRklORSBjbGF1c2UKKy0t IEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJhY2sgYW5kIDItYmFjayB2YWx1ZXMKK1NFTEVDVCBj b21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywg bGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJ TkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVG SU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBwcmljZSA+IFBSRVYocHJpY2Us IDEpIEFORCBwcmljZSA+IFBSRVYocHJpY2UsIDIpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAg ICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0K KyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAg IDE0MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0w NS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgICAg IDEzMCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMg fCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIw MjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDEzMDAgfCAgICAgMgor IGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKKy0tIDItYXJnOiBQUkVW IGFuZCBORVhUIHdpdGggZXhwbGljaXQgb2Zmc2V0cyBpbiBzYW1lIERFRklORSBjbGF1c2UKKy0t IEE6IHByaWNlIGV4Y2VlZHMgMS1iYWNrIGFuZCBpcyBiZWxvdyAxLWFoZWFkIChhc2NlbmRpbmcg aW50ZXJpb3IgcG9pbnQpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZp cnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQo KikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNv bXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFO RCBwcmljZSA8IE5FWFQocHJpY2UsIDEpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHBy aWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21w YW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNS0yMDIz IHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwg MDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgICAgIDExMCB8 ICAgICAxCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEz MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0y MDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnky IHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAg ICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0w Ny0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDExMDAgfCAgICAgMQorIGNvbXBh bnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKIC0tCiAtLSBTS0lQIFRPIC8gQmFj a3RyYWNraW5nIC8gRnJhbWUgYm91bmRhcnkKIC0tCkBAIC0xNDc5LDcgKzE5NzAsNyBAQCBjb3Vu dCgqKSBPVkVSIHcKICgxNCByb3dzKQogCiAtLSBSZVNjYW4gdGVzdDogTEFURVJBTCBqb2luIGZv cmNlcyBXaW5kb3dBZ2cgcmVzY2FuIHdpdGggUlBSCi0tLSBUZXN0cyBFeGVjUmVTY2FuV2luZG93 QWdnIGNsZWFyaW5nIHByZXZfc2xvdC9uZXh0X3Nsb3QKKy0tIFRlc3RzIEV4ZWNSZVNjYW5XaW5k b3dBZ2cgY2xlYXJpbmcgbmF2X3Nsb3QKIFNFTEVDVCBnLngsIHN1Yi4qCiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAyKSBnKHgpLAogTEFURVJBTCAoCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2V4cGxhaW4ub3V0CmluZGV4IGJkMzQ1OTA2MTMzLi4wZDJiNzU1MGVhOCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTM2NDYsOSArMzY0Niw4OSBA QCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMg cyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLS0tIFVzaW5nIE5VTEwg Y29tcGFyaXNvbnMKKy0tIFVzaW5nIDEtYXJnIFBSRVYgKGltcGxpY2l0IG9mZnNldCAxKQogQ1JF QVRFIFZJRVcgcnByX2V2ODMgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyBUUlVFLAorICAgICAgICBCIEFTIHYgPiBQUkVWKHYpCispOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4MycpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworICAg ICAgICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFU VEVSTiAoYSBiKykgCisgICBERUZJTkUKKyAgIGIgQVMgKHYgPiBQUkVWKHYpKSApOworKDMgcm93 cykKKworLS0gVXNpbmcgMS1hcmcgTkVYVCAoaW1wbGljaXQgb2Zmc2V0IDEpCitDUkVBVEUgVklF VyBycHJfZXY4NCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRS VUUsCisgICAgICAgIEIgQVMgdiA8IE5FWFQodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjg0JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8TkVYVCc7CisgICAgICAgICAg bGluZSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChh IGIrKSAKKyAgIERFRklORQorICAgYiBBUyAodiA8IE5FWFQodikpICk7CisoMyByb3dzKQorCist LSBVc2luZyAyLWFyZyBQUkVWIChleHBsaWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXY4 NSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAg ICAgIEIgQVMgdiA+IFBSRVYodiwgMikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjg1JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8TkVYVCc7CisgICAgICAgICAgICAgICAg IGxpbmUgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgIFBBVFRFUk4gKGEgYispIAorICAgREVGSU5FCisgICBiIEFTICh2ID4gUFJFVih2 LCAoMik6OmJpZ2ludCkpICk7CisoMyByb3dzKQorCistLSBVc2luZyAyLWFyZyBORVhUIChleHBs aWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXY4NiBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAg IERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgdiA8IE5FWFQodiwgMikK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjg2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVG SU5FfFBSRVZ8TkVYVCc7CisgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgYisp IAorICAgREVGSU5FCisgICBiIEFTICh2IDwgTkVYVCh2LCAoMik6OmJpZ2ludCkpICk7CisoMyBy b3dzKQorCistLSBVc2luZyBOVUxMIGNvbXBhcmlzb25zCitDUkVBVEUgVklFVyBycHJfZXY4NyBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIENBU0UgV0hFTiB2 ICUgNSA9IDAgVEhFTiBOVUxMIEVMU0UgdiBFTkQgQVMgdgogICAgIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDMwKSB2CkBAIC0zNjU5LDcgKzM3MzksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2IElTIE5PVCBOVUxMLCBCIEFTIHYgSVMgTlVM TAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2ODMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjg3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAg ICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSsgYikg CkBAIC0zNjk1LDcgKzM3NzUsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBMYXJnZSBTY2FsZSBTdGF0 aXN0aWNzIFZlcmlmaWNhdGlvbgogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSA1MDAgcm93cyAtIHZlcmlmeSBzdGF0aXN0 aWNzIHNjYWxlIGNvcnJlY3RseQotQ1JFQVRFIFZJRVcgcnByX2V2ODQgQVMKK0NSRUFURSBWSUVX IHJwcl9ldjg4IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM3MDQsNyArMzc4NCw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEw IDwgNywgQiBBUyB2ICUgMTAgPSA3LCBDIEFTIHYgJSAxMCA9IDgKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjg0JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4OCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiIGMpIApAQCAtMzczNCw3ICsz ODE0LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gSGlnaCBtYXRjaCBjb3VudCBz Y2VuYXJpbwotQ1JFQVRFIFZJRVcgcnByX2V2ODUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjg5IEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM3NDMsNyArMzgyMyw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAy ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2ODUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjg5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwog ICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGEgYikg CkBAIC0zNzczLDcgKzM4NTMsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAtLSBIaWdo IHNraXAgY291bnQgc2NlbmFyaW8KLUNSRUFURSBWSUVXIHJwcl9ldjg2IEFTCitDUkVBVEUgVklF VyBycHJfZXY5MCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zNzg3LDcgKzM4NjcsNyBAQCBX SU5ET1cgdyBBUyAoCiAgICAgICAgIEQgQVMgdiAlIDEwMCA9IDQsCiAgICAgICAgIEUgQVMgdiAl IDEwMCA9IDUKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjg2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY5MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKICAgICAgICAgICBsaW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg ICBQQVRURVJOIChhIGIgYyBkIGUpIApAQCAtMzgzMSwxNyArMzkxMSwxNyBAQCBXSU5ET1cgdyBB UyAoCiAtLSBUZXN0IHdpdGggcm93X251bWJlcigpIGFzIHJlcHJlc2VudGF0aXZlIGNhc2UuCiAt LQogLS0gV2l0aG91dCBSUFI6IHJvd19udW1iZXIoKSBmcmFtZSBpcyBvcHRpbWl6ZWQgdG8gUk9X UyBVTkJPVU5ERUQgUFJFQ0VESU5HCi1DUkVBVEUgVklFVyBycHJfZXY4NyBBUworQ1JFQVRFIFZJ RVcgcnByX2V2OTEgQVMKIFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIHYKICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICk7Ci1F WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcnByX2V2ODc7CitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gcnByX2V2OTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTdWJxdWVyeSBT Y2FuIG9uIHJwcl9ldjg3CisgU3VicXVlcnkgU2NhbiBvbiBycHJfZXY5MQogICAgLT4gIFdpbmRv d0FnZwogICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBzLnYgUk9XUyBVTkJPVU5ERUQg UFJFQ0VESU5HKQogICAgICAgICAgLT4gIFNvcnQKQEAgLTM4NTAsNyArMzkzMCw3IEBAIEVYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4NzsKICg2IHJvd3MpCiAKIC0tIFdp dGggUlBSOiBmcmFtZSBtdXN0IHJlbWFpbiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKLUNSRUFURSBWSUVXIHJwcl9ldjg4IEFTCitDUkVBVEUgVklFVyBy cHJfZXY5MiBBUwogU0VMRUNUIHJvd19udW1iZXIoKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zODYxLDEwICszOTQxLDEwIEBA IFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUKICAgICAgICAgQiBBUyB2ID4gUFJFVih2KQogKTsK LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4ODsKK0VYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY5MjsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24g cnByX2V2ODgKKyBTdWJxdWVyeSBTY2FuIG9uIHJwcl9ldjkyCiAgICAtPiAgV2luZG93QWdnCiAg ICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCkBAIC0z ODc3LDcgKzM5NTcsNyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcnByX2V2 ODg7CiAtLSBQbGFubmVyIG9wdGltaXphdGlvbjogbm9uLVJQUiBhbmQgUlBSIHdpbmRvd3MgdGhh dCBzaGFyZSB0aGUgc2FtZSBiYXNlIGZyYW1lCiAtLSBhZnRlciBmcmFtZSBvcHRpbWl6YXRpb24g YXJlIGtlcHQgYXMgc2VwYXJhdGUgV2luZG93QWdnIG5vZGVzLgogLS0KLUNSRUFURSBWSUVXIHJw cl9ldjg5IEFTCitDUkVBVEUgVklFVyBycHJfZXY5MyBBUwogU0VMRUNUCiAgICAgcm93X251bWJl cigpIE9WRVIgd19ub3JtYWwgQVMgcm5fbm9ybWFsLAogICAgIHJvd19udW1iZXIoKSBPVkVSIHdf cnByIEFTIHJuX3JwcgpAQCAtMzg5MCwxMCArMzk3MCwxMCBAQCBXSU5ET1cKICAgICAgICAgUEFU VEVSTiAoQSspCiAgICAgICAgIERFRklORSBBIEFTIHYgPiAxCiAgICAgKTsKLUVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4OTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBycHJfZXY5MzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gU3VicXVlcnkgU2NhbiBvbiBycHJf ZXY4OQorIFN1YnF1ZXJ5IFNjYW4gb24gcnByX2V2OTMKICAgIC0+ICBXaW5kb3dBZ2cKICAgICAg ICAgIFdpbmRvdzogd19ycHIgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhKyIKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHIuc3FsCmluZGV4IDk1Nzk0ZDQwOWUxLi43ODdlYmRkY2FlYyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIu c3FsCkBAIC00NDAsNiArNDQwLDI5NSBAQCBXSU5ET1cgdyBBUyAoCiAgIEIgQVMgdmFsID4gUFJF Vih2YWwpICogMC45OQogKTsKIAorLS0KKy0tIEVycm9yIGNhc2VzOiBQUkVWL05FWFQgdXNhZ2Ug cmVzdHJpY3Rpb25zCistLQorCistLSBQUkVWIG91dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNU IHByZXYocHJpY2UpIEZST00gc3RvY2s7CisKKy0tIE5FWFQgb3V0c2lkZSBERUZJTkUgY2xhdXNl CitTRUxFQ1QgbmV4dChwcmljZSkgRlJPTSBzdG9jazsKKworLS0gTmVzdGVkIFBSRVYKK1NFTEVD VCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBh bnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBS RVYoUFJFVihwcmljZSkpCispOworCistLSBOZXN0ZWQgTkVYVAorU0VMRUNUIHByaWNlIEZST00g c3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwK KyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChORVhUKHByaWNl KSkKKyk7CisKKy0tIFBSRVYgbmVzdGVkIGluc2lkZSBORVhUCitTRUxFQ1QgcHJpY2UgRlJPTSBz dG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAor ICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKFBSRVYocHJpY2Up KQorKTsKKworLS0gUFJFViBuZXN0ZWQgaW5zaWRlIGV4cHJlc3Npb24gaW5zaWRlIE5FWFQKK1NF TEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNv bXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+ IE5FWFQocHJpY2UgKiBQUkVWKHByaWNlKSkKKyk7CisKKy0tIFRyaXBsZSBuZXN0aW5nOiBlcnJv ciByZXBvcnRlZCBhdCBvdXRlcm1vc3QgUFJFVgorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJ TkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRU RVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihQUkVWKFBSRVYocHJpY2UpKSkK Kyk7CisKKy0tIE5vIGNvbHVtbiByZWZlcmVuY2UgaW4gUFJFVi9ORVhUIGFyZ3VtZW50CistLSBQ UkVWKDEpOiBjb25zdGFudCBvbmx5LCBubyBjb2x1bW4gcmVmZXJlbmNlCitTRUxFQ1QgcHJpY2Ug RlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5J VElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVigxKSA+IDAKKyk7CisK Ky0tIE5FWFQoMSArIDIpOiBjb25zdGFudCBleHByZXNzaW9uLCBubyBjb2x1bW4gcmVmZXJlbmNl CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBC WSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgTkVY VCgxICsgMikgPiAwCispOworCistLSAyLWFyZyBmb3JtOiBQUkVWKDEsIDEpOiBjb25zdGFudCBl eHByZXNzaW9uIGFzIGZpcnN0IGFyZworU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3 IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChB KQorICAgIERFRklORSBBIEFTIFBSRVYoMSwgMSkgPiAwCispOworCistLSBOb24tY29uc3RhbnQg b2Zmc2V0OiBjb2x1bW4gcmVmZXJlbmNlIGFzIG9mZnNldAorU0VMRUNUIHByaWNlIEZST00gc3Rv Y2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAg ICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIHByaWNlKSA+IDAKKyk7 CisKKy0tIE5vbi1jb25zdGFudCBvZmZzZXQ6IHZvbGF0aWxlIGZ1bmN0aW9uIGFzIG9mZnNldAor U0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkg Y29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFBSRVYo cHJpY2UsIHJhbmRvbSgpOjppbnQpID4gMAorKTsKKworLS0KKy0tIDItYXJnIFBSRVYvTkVYVDog ZnVuY3Rpb25hbCB0ZXN0cworLS0KKworLS0gUFJFVihwcmljZSwgMik6IG1hdGNoIHJvd3Mgd2hl cmUgY3VycmVudCBwcmljZSA+IHByaWNlIDIgcm93cyBiYWNrCistLSBzdG9jazogMTAwLCA5MCwg ODAsIDk1LCAxMTAKKy0tIFBhdHRlcm4gKEEgQispOiBBPWFueSwgQiB3aGVyZSBwcmljZSA+IFBS RVYocHJpY2UsIDIpCistLSBBdCBwb3MgMiAoODApOiBBIG1hdGNoZXMuIHBvcyAzICg5NSk6IDk1 ID4gUFJFVig5NSwyKT05MCBUUlVFLgorLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv cyA0ICgxMTApOiAxMTAgPiBQUkVWKDExMCwyKT04MCBUUlVFLiBNYXRjaCEKK1NFTEVDVCBjb21w YW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFz dF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRP VyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBw cmljZSA+IFBSRVYocHJpY2UsIDIpCispOworCistLSBORVhUKHByaWNlLCAyKTogbWF0Y2ggcm93 cyB3aGVyZSBjdXJyZW50IHByaWNlID4gcHJpY2UgMiByb3dzIGFoZWFkCistLSBwb3MgMCAoMTAw KTogTkVYVCgxMDAsMik9ODAsIDEwMD44MCBUUlVFLiBwb3MgMSAoOTApOiBORVhUKDkwLDIpPTk1 LCA5MD45NSBGQUxTRS4gTWF0Y2ggZW5kcy4KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us CisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZF UiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJU SVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklO RSBBIEFTIHByaWNlID4gTkVYVChwcmljZSwgMikKKyk7CisKKy0tIEV4cHJlc3Npb25zIGluc2lk ZSBQUkVWL05FWFQgYXJnOiBleHByIGlzIGV2YWx1YXRlZCBvbiB0YXJnZXQgcm93CistLSBQUkVW KHByaWNlIC0gNTAsIDEpOiBmZXRjaGVzIChwcmljZSAtIDUwKSBmcm9tIDEgcm93IGJhY2sKK1NF TEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9W RVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3Rv Y2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0 ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSAtIDUw LCAxKQorKTsKKworLS0gTkVYVChwcmljZSAqIDIsIDEpOiBmZXRjaGVzIChwcmljZSAqIDIpIGZy b20gMSByb3cgYWhlYWQKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmly c3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgq KSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29t cGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHByaWNl IDwgTkVYVChwcmljZSAqIDIsIDEpCispOworCistLSBMYXJnZSBvZmZzZXQ6IFBSRVYodmFsLCA5 OTkpIG9uIDEwMDAtcm93IHNlcmllcyBtYXRjaGVzIG9ubHkgbGFzdCByb3cKKy0tIE5FWFQodmFs LCA5OTkpIG1hdGNoZXMgb25seSBmaXJzdCByb3cKK1NFTEVDVCB2YWwsIGZpcnN0X3ZhbHVlKHZh bCkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHQodmFsKQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodmFsLCA5OTkpID0gMQorKQorT1JERVIgQlkg dmFsIERFU0MgTElNSVQgMzsKKworU0VMRUNUIHZhbCwgZmlyc3RfdmFsdWUodmFsKSBPVkVSIHcs IGxhc3RfdmFsdWUodmFsKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwMCkgQVMgdCh2YWwpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgTkVYVCh2YWwsIDk5OSkgPSAxMDAwCispCitMSU1JVCAzOworCistLSBQ UkVWKHByaWNlLCAwKTogb2Zmc2V0IDAgbWVhbnMgY3VycmVudCByb3csIGFsd2F5cyBlcXVhbCB0 byBwcmljZQorLS0gQSsgbWF0Y2hlcyBlbnRpcmUgcGFydGl0aW9uIGFzIG9uZSBncm91cDsgY291 bnQgPSBwYXJ0aXRpb24gc2l6ZQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAg ICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNv dW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBC WSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg UFJFVihwcmljZSwgMCkgPSBwcmljZQorKTsKKworLS0gMi1hcmcgUFJFVi9ORVhUIG91dHNpZGUg REVGSU5FIGNsYXVzZQorU0VMRUNUIHByZXYocHJpY2UsIDIpIEZST00gc3RvY2s7CitTRUxFQ1Qg bmV4dChwcmljZSwgMikgRlJPTSBzdG9jazsKKworLS0gMi1hcmcgUFJFVi9ORVhUOiBuZWdhdGl2 ZSBvZmZzZXQKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNl KSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29t cGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYo cHJpY2UsIC0xKSBJUyBOT1QgTlVMTAorKTsKKworLS0gMi1hcmcgUFJFVi9ORVhUOiBOVUxMIG9m ZnNldCAodHlwZWQpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShw cmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZ IGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQ UkVWKHByaWNlLCBOVUxMOjppbnQ4KSBJUyBOT1QgTlVMTAorKTsKKworLS0gMi1hcmcgUFJFVi9O RVhUOiBOVUxMIG9mZnNldCAodW50eXBlZCkKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us IGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAg ICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIFBSRVYocHJpY2UsIE5VTEwpIElTIE5PVCBOVUxMCispOworCistLSAyLWFy ZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgbmVnYXRpdmUgYW5kIE5VTEwKK1BSRVBBUkUgdGVz dF9wcmV2X29mZnNldChpbnQ4KSBBUworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmly c3RfdmFsdWUocHJpY2UpIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBB UlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVG SU5FIEEgQVMgcHJpY2UgPiBQUkVWKHByaWNlLCAkMSkKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9v ZmZzZXQoLTEpOworRVhFQ1VURSB0ZXN0X3ByZXZfb2Zmc2V0KE5VTEwpOworREVBTExPQ0FURSB0 ZXN0X3ByZXZfb2Zmc2V0OworCistLSAyLWFyZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgd2l0 aCBleHByZXNzaW9uICgwICsgJDEpCitQUkVQQVJFIHRlc3RfcHJldl9vZmZzZXQoaW50OCkgQVMK K1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcK K0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRF UiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihw cmljZSwgMCArICQxKQorKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CitFWEVDVVRF IHRlc3RfcHJldl9vZmZzZXQoTlVMTCk7CitERUFMTE9DQVRFIHRlc3RfcHJldl9vZmZzZXQ7CisK Ky0tIDItYXJnOiB0d28gUFJFViB3aXRoIGRpZmZlcmVudCBvZmZzZXRzIGluIHNhbWUgREVGSU5F IGNsYXVzZQorLS0gQjogcHJpY2UgZXhjZWVkcyBib3RoIDEtYmFjayBhbmQgMi1iYWNrIHZhbHVl cworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJP TSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZ IHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBC KykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBUUlVFLAorICAgICAgICBCIEFTIHByaWNlID4g UFJFVihwcmljZSwgMSkgQU5EIHByaWNlID4gUFJFVihwcmljZSwgMikKKyk7CisKKy0tIDItYXJn OiBQUkVWIGFuZCBORVhUIHdpdGggZXhwbGljaXQgb2Zmc2V0cyBpbiBzYW1lIERFRklORSBjbGF1 c2UKKy0tIEE6IHByaWNlIGV4Y2VlZHMgMS1iYWNrIGFuZCBpcyBiZWxvdyAxLWFoZWFkIChhc2Nl bmRpbmcgaW50ZXJpb3IgcG9pbnQpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAg ICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywg Y291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9O IEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2Us IDEpIEFORCBwcmljZSA8IE5FWFQocHJpY2UsIDEpCispOworCiAtLQogLS0gU0tJUCBUTyAvIEJh Y2t0cmFja2luZyAvIEZyYW1lIGJvdW5kYXJ5CiAtLQpAQCAtNjcxLDcgKzk2MCw3IEBAIGNvdW50 KCopIE9WRVIgdwogKTsKIAogLS0gUmVTY2FuIHRlc3Q6IExBVEVSQUwgam9pbiBmb3JjZXMgV2lu ZG93QWdnIHJlc2NhbiB3aXRoIFJQUgotLS0gVGVzdHMgRXhlY1JlU2NhbldpbmRvd0FnZyBjbGVh cmluZyBwcmV2X3Nsb3QvbmV4dF9zbG90CistLSBUZXN0cyBFeGVjUmVTY2FuV2luZG93QWdnIGNs ZWFyaW5nIG5hdl9zbG90CiBTRUxFQ1QgZy54LCBzdWIuKgogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMikgZyh4KSwKIExBVEVSQUwgKApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnByX2V4cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCmlu ZGV4IDkzZTA2YjBjYmRmLi5jMmNiZTJlZGQ1OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBs YWluLnNxbApAQCAtMjA4OCw5ICsyMDg4LDY1IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgRCBB UyB2IDwgUFJFVih2KQogKTsnKTsKIAotLS0gVXNpbmcgTlVMTCBjb21wYXJpc29ucworLS0gVXNp bmcgMS1hcmcgUFJFViAoaW1wbGljaXQgb2Zmc2V0IDEpCiBDUkVBVEUgVklFVyBycHJfZXY4MyBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAg IEIgQVMgdiA+IFBSRVYodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjgzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8TkVYVCc7CisKKy0tIFVzaW5nIDEtYXJnIE5FWFQg KGltcGxpY2l0IG9mZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2ODQgQVMKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBC KykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBUUlVFLAorICAgICAgICBCIEFTIHYgPCBORVhU KHYpCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY4NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO fERFRklORXxQUkVWfE5FWFQnOworCistLSBVc2luZyAyLWFyZyBQUkVWIChleHBsaWNpdCBvZmZz ZXQpCitDUkVBVEUgVklFVyBycHJfZXY4NSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQor ICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgdiA+IFBSRVYodiwgMikKKyk7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djg1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8 TkVYVCc7CisKKy0tIFVzaW5nIDItYXJnIE5FWFQgKGV4cGxpY2l0IG9mZnNldCkKK0NSRUFURSBW SUVXIHJwcl9ldjg2IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg VFJVRSwKKyAgICAgICAgQiBBUyB2IDwgTkVYVCh2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2ODYnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKworLS0g VXNpbmcgTlVMTCBjb21wYXJpc29ucworQ1JFQVRFIFZJRVcgcnByX2V2ODcgQVMKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKIEZST00gKAogICAgIFNFTEVDVCBDQVNFIFdIRU4gdiAlIDUgPSAwIFRI RU4gTlVMTCBFTFNFIHYgRU5EIEFTIHYKICAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkg dgpAQCAtMjEwMSw3ICsyMTU3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIp CiAgICAgREVGSU5FIEEgQVMgdiBJUyBOT1QgTlVMTCwgQiBBUyB2IElTIE5VTEwKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djgzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4Nycp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMTIx LDcgKzIxNzcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gNTAwIHJvd3MgLSB2ZXJp Znkgc3RhdGlzdGljcyBzY2FsZSBjb3JyZWN0bHkKLUNSRUFURSBWSUVXIHJwcl9ldjg0IEFTCitD UkVBVEUgVklFVyBycHJfZXY4OCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMTMwLDcgKzIx ODYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQiBDKQogICAgIERFRklORSBB IEFTIHYgJSAxMCA8IDcsIEIgQVMgdiAlIDEwID0gNywgQyBBUyB2ICUgMTAgPSA4CiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXY4NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2ODgn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjE0 Myw3ICsyMTk5LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gSGlnaCBtYXRjaCBjb3Vu dCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcgcnByX2V2ODUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjg5 IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDAp IEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIxNTIsNyArMjIwOCw3IEBAIFdJTkRPVyB3IEFT ICgKICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYg JSAyID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2ODUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjg5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTIxNjUsNyArMjIyMSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0t IEhpZ2ggc2tpcCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcgcnByX2V2ODYgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldjkwIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIxNzksNyArMjIzNSw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgRCBBUyB2ICUgMTAwID0gNCwKICAgICAgICAgRSBB UyB2ICUgMTAwID0gNQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2ODYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjkwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTIyMDcsNyArMjI2Myw3IEBAIFdJTkRPVyB3IEFTICgKIC0tCiAK IC0tIFdpdGhvdXQgUlBSOiByb3dfbnVtYmVyKCkgZnJhbWUgaXMgb3B0aW1pemVkIHRvIFJPV1Mg VU5CT1VOREVEIFBSRUNFRElORwotQ1JFQVRFIFZJRVcgcnByX2V2ODcgQVMKK0NSRUFURSBWSUVX IHJwcl9ldjkxIEFTCiBTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIyMTUsMTAgKzIyNzEsMTAg QEAgV0lORE9XIHcgQVMgKAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwogKTsKIAotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJw cl9ldjg3OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldjkxOwogCiAt LSBXaXRoIFJQUjogZnJhbWUgbXVzdCByZW1haW4gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCi1DUkVBVEUgVklFVyBycHJfZXY4OCBBUworQ1JFQVRFIFZJ RVcgcnByX2V2OTIgQVMKIFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjIzMCwxMyArMjI4Niwx MyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEIgQVMgdiA+IFBSRVYodikKICk7CiAKLUVYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4ODsKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBycHJfZXY5MjsKIAogLS0KIC0tIFBsYW5uZXIgb3B0aW1pemF0aW9u OiBub24tUlBSIGFuZCBSUFIgd2luZG93cyB0aGF0IHNoYXJlIHRoZSBzYW1lIGJhc2UgZnJhbWUK IC0tIGFmdGVyIGZyYW1lIG9wdGltaXphdGlvbiBhcmUga2VwdCBhcyBzZXBhcmF0ZSBXaW5kb3dB Z2cgbm9kZXMuCiAtLQotQ1JFQVRFIFZJRVcgcnByX2V2ODkgQVMKK0NSRUFURSBWSUVXIHJwcl9l djkzIEFTCiBTRUxFQ1QKICAgICByb3dfbnVtYmVyKCkgT1ZFUiB3X25vcm1hbCBBUyBybl9ub3Jt YWwsCiAgICAgcm93X251bWJlcigpIE9WRVIgd19ycHIgQVMgcm5fcnByCkBAIC0yMjUwLDcgKzIz MDYsNyBAQCBXSU5ET1cKICAgICAgICAgREVGSU5FIEEgQVMgdiA+IDEKICAgICApOwogCi1FWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcnByX2V2ODk7CitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gcnByX2V2OTM7CiAKIC0tCiAtLSBQbGFubmVyIG9wdGltaXphdGlv bjogZmluZF93aW5kb3dfcnVuX2NvbmRpdGlvbnMgbXVzdCBub3QgcHVzaCBkb3duCmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CmluZGV4IDM2MDkxZjU2NDE4Li5jYTlmYWFiYzdlMyAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE3NzUsNyArMTc3NSw2IEBAIE5hbWVkTFdMb2NrVHJhbmNo ZVJlcXVlc3QKIE5hbWVkVHVwbGVzdG9yZVNjYW4KIE5hbWVkVHVwbGVzdG9yZVNjYW5TdGF0ZQog TmFtZXNwYWNlSW5mbwotTmF2aWdhdGlvbkluZm8KIE5lc3RMb29wCiBOZXN0TG9vcFBhcmFtCiBO ZXN0TG9vcFN0YXRlCkBAIC0yNDQxLDYgKzI0NDAsOCBAQCBRdWVyeVNvdXJjZQogUXVldWVCYWNr ZW5kU3RhdHVzCiBRdWV1ZVBvc2l0aW9uCiBRdWl0U2lnbmFsUmVhc29uCitSUFJOYXZFeHByCitS UFJOYXZLaW5kCiBSQlROb2RlCiBSQlRPcmRlckNvbnRyb2wKIFJCVHJlZQotLSAKMi41MC4xIChB cHBsZSBHaXQtMTU1KQoK --00000000000006699e064d7673c8--